@dylanpiercey/work 0.0.125 → 0.0.127
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/{_BJcBOXUi.js → _B30PhyQg.js} +2 -2
- package/dist/{_DOBRRnfU.js → _BerH0QBf.js} +177 -31
- package/dist/_Bhd3BMas.js +2 -0
- package/dist/{_930ti7l4.js → _ClRtSKMs.js} +4 -4
- package/dist/_DLULQXOg.js +2 -0
- package/dist/{_WjoDGkKH.js → _DxyCe0aR.js} +13 -13
- package/dist/_PwfoxOUv.js +2 -0
- package/dist/index.mjs +40 -39
- package/dist/public/assets/{_B-29SYo2.js → _0OqIY_oa.js} +1 -1
- package/dist/public/assets/_0OqIY_oa.js.br +0 -0
- package/dist/public/assets/{_DQmUOt0Z2.js → _0UBcCdXI2.js} +1 -1
- package/dist/public/assets/_0UBcCdXI2.js.br +0 -0
- package/dist/public/assets/{_BJN1qXCa2.js → _1l4GNsSP2.js} +1 -1
- package/dist/public/assets/_1l4GNsSP2.js.br +0 -0
- package/dist/public/assets/{_BE4dhpwJ.js → _B7ABFrdL.js} +1 -1
- package/dist/public/assets/_B7ABFrdL.js.br +0 -0
- package/dist/public/assets/{_DUUGRyNk.js → _B7cutdHQ.js} +1 -1
- package/dist/public/assets/_B7cutdHQ.js.br +0 -0
- package/dist/public/assets/{_BYsfbbzd.js → _BAYLyxTF.js} +1 -1
- package/dist/public/assets/_BAYLyxTF.js.br +0 -0
- package/dist/public/assets/{_Da89rUC2.js → _BLfwHTyW.js} +1 -1
- package/dist/public/assets/_BLfwHTyW.js.br +0 -0
- package/dist/public/assets/{_qq1sg2fo.js → _BMicSlM7.js} +1 -1
- package/dist/public/assets/_BMicSlM7.js.br +0 -0
- package/dist/public/assets/{_DPXUEcYm2.js → _BMrUCfDB2.js} +1 -1
- package/dist/public/assets/_BMrUCfDB2.js.br +0 -0
- package/dist/public/assets/{_JN2O0QAG.js → _BOEAFiNc.js} +1 -1
- package/dist/public/assets/_BOEAFiNc.js.br +0 -0
- package/dist/public/assets/{_BR5CEgiJ2.js → _BSgpkWeG2.js} +1 -1
- package/dist/public/assets/_BSgpkWeG2.js.br +0 -0
- package/dist/public/assets/{_Dzrr4qlL.js → _BW_6s178.js} +1 -1
- package/dist/public/assets/{_BMWDi0SW2.js → _Bb4SPfXq2.js} +1 -1
- package/dist/public/assets/_Bb4SPfXq2.js.br +0 -0
- package/dist/public/assets/{_DXqSdWGX.js → _BihwC5tS.js} +1 -1
- package/dist/public/assets/_BihwC5tS.js.br +0 -0
- package/dist/public/assets/{_BzZXh-F4.js → _BosyJtbl.js} +4 -4
- package/dist/public/assets/_BosyJtbl.js.br +0 -0
- package/dist/public/assets/{_B25bQHHn2.js → _BuDL8K-B2.js} +1 -1
- package/dist/public/assets/_BuDL8K-B2.js.br +0 -0
- package/dist/public/assets/{_4gRGCOIS.js → _BuLVH2X-.js} +1 -1
- package/dist/public/assets/_BuLVH2X-.js.br +0 -0
- package/dist/public/assets/{_DcomP0ij2.js → _Bx5VaawO2.js} +1 -1
- package/dist/public/assets/{_DOiVRQI2.js → _Bz47SoPw.js} +1 -1
- package/dist/public/assets/_Bz47SoPw.js.br +0 -0
- package/dist/public/assets/{_CQ0mr2yi.js → _C0h0wi_E.js} +1 -1
- package/dist/public/assets/_C0h0wi_E.js.br +0 -0
- package/dist/public/assets/{_s0GGSJ_A.js → _C15_hmIx.js} +1 -1
- package/dist/public/assets/_C15_hmIx.js.br +0 -0
- package/dist/public/assets/{_CRvx7Xp-2.js → _C2bz1iNl2.js} +1 -1
- package/dist/public/assets/_C2bz1iNl2.js.br +0 -0
- package/dist/public/assets/{_uxqtnPbF.js → _C3JHGzvW.js} +1 -1
- package/dist/public/assets/_C3JHGzvW.js.br +0 -0
- package/dist/public/assets/{_DR9kG8qf2.js → _C4U6CgHl2.js} +1 -1
- package/dist/public/assets/_C4U6CgHl2.js.br +0 -0
- package/dist/public/assets/{_Cqulz6RB.js → _C70vMp9x.js} +1 -1
- package/dist/public/assets/_C70vMp9x.js.br +0 -0
- package/dist/public/assets/{_BnPlTl-32.js → _C7mf5JlF2.js} +1 -1
- package/dist/public/assets/_C7mf5JlF2.js.br +0 -0
- package/dist/public/assets/{_D5qw3Zii.js → _CBJgkhp4.js} +1 -1
- package/dist/public/assets/_CBJgkhp4.js.br +0 -0
- package/dist/public/assets/{_CjHQhy_5.js → _CIp0kFpa.js} +1 -1
- package/dist/public/assets/_CIp0kFpa.js.br +0 -0
- package/dist/public/assets/{_DU1yHNZe.js → _CKnhEM_s.js} +1 -1
- package/dist/public/assets/_CKnhEM_s.js.br +0 -0
- package/dist/public/assets/{_D-jttVew2.js → _CLrm4PKi2.js} +1 -1
- package/dist/public/assets/_CLrm4PKi2.js.br +0 -0
- package/dist/public/assets/{_DA4orPXm2.js → _COwh9xd62.js} +1 -1
- package/dist/public/assets/_COwh9xd62.js.br +0 -0
- package/dist/public/assets/{_-R93qVtH.js → _CQLqXTuP.js} +1 -1
- package/dist/public/assets/_CQLqXTuP.js.br +0 -0
- package/dist/public/assets/{_DI83ytqx.js → _CQwAYP8H.js} +1 -1
- package/dist/public/assets/_CQwAYP8H.js.br +0 -0
- package/dist/public/assets/{_DVW3M51M.js → _CS5NJN5T.js} +24 -24
- package/dist/public/assets/_CS5NJN5T.js.br +0 -0
- package/dist/public/assets/{_B8OJTbg-.js → _CSktm2e_.js} +1 -1
- package/dist/public/assets/_CSktm2e_.js.br +0 -0
- package/dist/public/assets/{_DaTjL0hs.js → _CV1b_-qF.js} +1 -1
- package/dist/public/assets/_CV1b_-qF.js.br +0 -0
- package/dist/public/assets/{_CZeH6oLm.js → _CVJwjn-3.js} +1 -1
- package/dist/public/assets/_CVJwjn-3.js.br +0 -0
- package/dist/public/assets/{_DSUh3ijW.js → _CWdF1x9U.js} +1 -1
- package/dist/public/assets/_CWdF1x9U.js.br +0 -0
- package/dist/public/assets/{_Bgn1dDb6.js → _CXoYOoC6.js} +1 -1
- package/dist/public/assets/_CXoYOoC6.js.br +0 -0
- package/dist/public/assets/{_CtAYcZpO.js → _CsRJlP6E.js} +1 -1
- package/dist/public/assets/_CsRJlP6E.js.br +0 -0
- package/dist/public/assets/{_C622hBLY.js → _CvTvccCO.js} +1 -1
- package/dist/public/assets/_CvTvccCO.js.br +0 -0
- package/dist/public/assets/{_CeZkA_Zt.js → _D0GM5bjt.js} +1 -1
- package/dist/public/assets/_D0GM5bjt.js.br +0 -0
- package/dist/public/assets/{_DBRm5nAL.js → _D8LywV07.js} +1 -1
- package/dist/public/assets/_D8LywV07.js.br +0 -0
- package/dist/public/assets/{_DJb-8rdD2.js → _DF2_1kBg2.js} +1 -1
- package/dist/public/assets/_DF2_1kBg2.js.br +0 -0
- package/dist/public/assets/{_CrxfpsAz2.js → _DFCkDvE32.js} +1 -1
- package/dist/public/assets/_DFCkDvE32.js.br +0 -0
- package/dist/public/assets/{_B2ZCYtHE.js → _DGwnanjW.js} +1 -1
- package/dist/public/assets/_DGwnanjW.js.br +0 -0
- package/dist/public/assets/{_mwYty2eA.js → _DKujArVl.js} +1 -1
- package/dist/public/assets/_DKujArVl.js.br +0 -0
- package/dist/public/assets/{_DhiSrB_n2.js → _DM8LWYEr2.js} +1 -1
- package/dist/public/assets/_DM8LWYEr2.js.br +0 -0
- package/dist/public/assets/{_Bq7Q25uD.js → _DPj2YHTk.js} +1 -1
- package/dist/public/assets/_DPj2YHTk.js.br +0 -0
- package/dist/public/assets/{_CMc9TcWl.js → _D_ZV8LlG.js} +1 -1
- package/dist/public/assets/_D_ZV8LlG.js.br +0 -0
- package/dist/public/assets/{_YbzODI2D2.js → _DgNTtTl42.js} +1 -1
- package/dist/public/assets/_DgNTtTl42.js.br +0 -0
- package/dist/public/assets/{_BAMoy2A4.js → _DipGujtJ.js} +1 -1
- package/dist/public/assets/_DipGujtJ.js.br +0 -0
- package/dist/public/assets/{_D9AN2KVo.js → _Dj94fa3U.js} +1 -1
- package/dist/public/assets/_Dj94fa3U.js.br +0 -0
- package/dist/public/assets/{_C0tjbf4T2.js → _DkQYY8r62.js} +1 -1
- package/dist/public/assets/_DkQYY8r62.js.br +0 -0
- package/dist/public/assets/{_CfRidFom2.js → _DkbZtm4H2.js} +1 -1
- package/dist/public/assets/_DkbZtm4H2.js.br +0 -0
- package/dist/public/assets/{_CkFRdMeb.js → _E6Kzddef.js} +1 -1
- package/dist/public/assets/_E6Kzddef.js.br +0 -0
- package/dist/public/assets/{_DZEbz-HB.js → _ETRp4Dkx.js} +1 -1
- package/dist/public/assets/_ETRp4Dkx.js.br +0 -0
- package/dist/public/assets/{_PzNqdkDp.js → _JKJV30m7.js} +1 -1
- package/dist/public/assets/_JKJV30m7.js.br +0 -0
- package/dist/public/assets/{_ARGpSrxa.js → _LFb7Eooe.js} +1 -1
- package/dist/public/assets/_LFb7Eooe.js.br +0 -0
- package/dist/public/assets/{_DVRR8_qs2.js → _QesvKbOa2.js} +1 -1
- package/dist/public/assets/_QesvKbOa2.js.br +0 -0
- package/dist/public/assets/{_vgh4NunL2.js → _RBSjxlpg2.js} +1 -1
- package/dist/public/assets/_RBSjxlpg2.js.br +0 -0
- package/dist/public/assets/{_DOmR7pnN.js → _RfbisAlu.js} +1 -1
- package/dist/public/assets/_RfbisAlu.js.br +0 -0
- package/dist/public/assets/{_CvcVoymB2.js → _SyFIuzj92.js} +1 -1
- package/dist/public/assets/_SyFIuzj92.js.br +0 -0
- package/dist/public/assets/{_gzfvLUOm.js → _ZhayJ-qQ.js} +1 -1
- package/dist/public/assets/_ZhayJ-qQ.js.br +0 -0
- package/dist/public/assets/{_DPHSykud.js → _cqG6c_wj.js} +1 -1
- package/dist/public/assets/_cqG6c_wj.js.br +0 -0
- package/dist/public/assets/{_BFHO0e322.js → _d2apwwMm2.js} +1 -1
- package/dist/public/assets/{_Db8eKygL2.js → _iQyMxbuN2.js} +1 -1
- package/dist/public/assets/_iQyMxbuN2.js.br +0 -0
- package/dist/public/assets/{_5OqmzNcc.js → _jwhRT4Zh.js} +1 -1
- package/dist/public/assets/_jwhRT4Zh.js.br +0 -0
- package/dist/public/assets/{_CeJ_wAwZ.js → _mkwsaBCP.js} +1 -1
- package/dist/public/assets/_mkwsaBCP.js.br +0 -0
- package/dist/public/assets/{_ByOuWH5y.js → _nk9Ndt8F.js} +1 -1
- package/dist/public/assets/_nk9Ndt8F.js.br +0 -0
- package/dist/public/assets/{_D35NGvAL.js → _rGnGy01d.js} +1 -1
- package/dist/public/assets/_rGnGy01d.js.br +0 -0
- package/dist/public/assets/{_BlBWsvTO.js → _rmB_eng0.js} +1 -1
- package/dist/public/assets/_rmB_eng0.js.br +0 -0
- package/dist/public/assets/{_6G4xyCBp.js → _sn5IO56l.js} +1 -1
- package/dist/public/assets/_sn5IO56l.js.br +0 -0
- package/dist/public/assets/{_D-vypASA2.js → _t1zPIDHD2.js} +1 -1
- package/dist/public/assets/_t1zPIDHD2.js.br +0 -0
- package/dist/public/assets/{_BMYEg37K.js → _uay_kEL4.js} +1 -1
- package/dist/public/assets/_uay_kEL4.js.br +0 -0
- package/dist/public/assets/{_Cen52N19.js → _wogBSoP_.js} +1 -1
- package/dist/public/assets/_wogBSoP_.js.br +0 -0
- package/dist/public/assets/{app-page-BiVbfTT1.css → app-page-CY5YskjL.css} +1 -1
- package/dist/public/assets/app-page-CY5YskjL.css.br +0 -0
- package/dist/public/assets/{diff-view-BGCq8VEy.css → diff-view-Bgr-jkmA.css} +1 -1
- package/dist/public/assets/diff-view-Bgr-jkmA.css.br +0 -0
- package/dist/public/assets/new-ClSnajcQ.js +1 -0
- package/dist/public/assets/settings-ClSnajcQ.js +1 -0
- package/dist/public/assets/w-ClSnajcQ.js +1 -0
- package/dist/public/assets/w._-ClSnajcQ.js +1 -0
- package/dist/public/assets/w._-DnNpxcOV.js +1 -0
- package/lib/setup/agents.json +16 -0
- package/package.json +1 -1
- package/dist/_8GaDFTzQ.js +0 -2
- package/dist/_CrVv317N.js +0 -2
- package/dist/_iX5oUHA_.js +0 -2
- package/dist/public/assets/_-R93qVtH.js.br +0 -0
- package/dist/public/assets/_4gRGCOIS.js.br +0 -0
- package/dist/public/assets/_5OqmzNcc.js.br +0 -0
- package/dist/public/assets/_6G4xyCBp.js.br +0 -0
- package/dist/public/assets/_ARGpSrxa.js.br +0 -0
- package/dist/public/assets/_B-29SYo2.js.br +0 -0
- package/dist/public/assets/_B25bQHHn2.js.br +0 -0
- package/dist/public/assets/_B2ZCYtHE.js.br +0 -0
- package/dist/public/assets/_B8OJTbg-.js.br +0 -0
- package/dist/public/assets/_BAMoy2A4.js.br +0 -0
- package/dist/public/assets/_BE4dhpwJ.js.br +0 -0
- package/dist/public/assets/_BJN1qXCa2.js.br +0 -0
- package/dist/public/assets/_BMWDi0SW2.js.br +0 -0
- package/dist/public/assets/_BMYEg37K.js.br +0 -0
- package/dist/public/assets/_BR5CEgiJ2.js.br +0 -0
- package/dist/public/assets/_BYsfbbzd.js.br +0 -0
- package/dist/public/assets/_Bgn1dDb6.js.br +0 -0
- package/dist/public/assets/_BlBWsvTO.js.br +0 -0
- package/dist/public/assets/_BnPlTl-32.js.br +0 -0
- package/dist/public/assets/_Bq7Q25uD.js.br +0 -0
- package/dist/public/assets/_ByOuWH5y.js.br +0 -0
- package/dist/public/assets/_BzZXh-F4.js.br +0 -0
- package/dist/public/assets/_C0tjbf4T2.js.br +0 -0
- package/dist/public/assets/_C622hBLY.js.br +0 -0
- package/dist/public/assets/_CMc9TcWl.js.br +0 -0
- package/dist/public/assets/_CQ0mr2yi.js.br +0 -0
- package/dist/public/assets/_CRvx7Xp-2.js.br +0 -0
- package/dist/public/assets/_CZeH6oLm.js.br +0 -0
- package/dist/public/assets/_CeJ_wAwZ.js.br +0 -0
- package/dist/public/assets/_CeZkA_Zt.js.br +0 -0
- package/dist/public/assets/_Cen52N19.js.br +0 -0
- package/dist/public/assets/_CfRidFom2.js.br +0 -0
- package/dist/public/assets/_CjHQhy_5.js.br +0 -0
- package/dist/public/assets/_CkFRdMeb.js.br +0 -0
- package/dist/public/assets/_Cqulz6RB.js.br +0 -0
- package/dist/public/assets/_CrxfpsAz2.js.br +0 -0
- package/dist/public/assets/_CtAYcZpO.js.br +0 -0
- package/dist/public/assets/_CvcVoymB2.js.br +0 -0
- package/dist/public/assets/_D-jttVew2.js.br +0 -0
- package/dist/public/assets/_D-vypASA2.js.br +0 -0
- package/dist/public/assets/_D35NGvAL.js.br +0 -0
- package/dist/public/assets/_D5qw3Zii.js.br +0 -0
- package/dist/public/assets/_D9AN2KVo.js.br +0 -0
- package/dist/public/assets/_DA4orPXm2.js.br +0 -0
- package/dist/public/assets/_DBRm5nAL.js.br +0 -0
- package/dist/public/assets/_DI83ytqx.js.br +0 -0
- package/dist/public/assets/_DJb-8rdD2.js.br +0 -0
- package/dist/public/assets/_DOiVRQI2.js.br +0 -0
- package/dist/public/assets/_DOmR7pnN.js.br +0 -0
- package/dist/public/assets/_DPHSykud.js.br +0 -0
- package/dist/public/assets/_DPXUEcYm2.js.br +0 -0
- package/dist/public/assets/_DQmUOt0Z2.js.br +0 -0
- package/dist/public/assets/_DR9kG8qf2.js.br +0 -0
- package/dist/public/assets/_DSUh3ijW.js.br +0 -0
- package/dist/public/assets/_DU1yHNZe.js.br +0 -0
- package/dist/public/assets/_DUUGRyNk.js.br +0 -0
- package/dist/public/assets/_DVRR8_qs2.js.br +0 -0
- package/dist/public/assets/_DVW3M51M.js.br +0 -0
- package/dist/public/assets/_DXqSdWGX.js.br +0 -0
- package/dist/public/assets/_DZEbz-HB.js.br +0 -0
- package/dist/public/assets/_Da89rUC2.js.br +0 -0
- package/dist/public/assets/_DaTjL0hs.js.br +0 -0
- package/dist/public/assets/_Db8eKygL2.js.br +0 -0
- package/dist/public/assets/_DhiSrB_n2.js.br +0 -0
- package/dist/public/assets/_JN2O0QAG.js.br +0 -0
- package/dist/public/assets/_PzNqdkDp.js.br +0 -0
- package/dist/public/assets/_YbzODI2D2.js.br +0 -0
- package/dist/public/assets/_gzfvLUOm.js.br +0 -0
- package/dist/public/assets/_mwYty2eA.js.br +0 -0
- package/dist/public/assets/_qq1sg2fo.js.br +0 -0
- package/dist/public/assets/_s0GGSJ_A.js.br +0 -0
- package/dist/public/assets/_uxqtnPbF.js.br +0 -0
- package/dist/public/assets/_vgh4NunL2.js.br +0 -0
- package/dist/public/assets/app-page-BiVbfTT1.css.br +0 -0
- package/dist/public/assets/diff-view-BGCq8VEy.css.br +0 -0
- package/dist/public/assets/new-BstpwR5D.js +0 -1
- package/dist/public/assets/settings-BstpwR5D.js +0 -1
- package/dist/public/assets/w-BstpwR5D.js +0 -1
- package/dist/public/assets/w._-BstpwR5D.js +0 -1
- package/dist/public/assets/w._-DKGM-YvG.js +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { U as subscriberCount, V as publish, W as subscriberJoins, dt as all, ft as db, g as sessionStates, l as listSessions } from "./
|
|
2
|
-
import { A as portsByWorkspace, J as hostToken, K as forgetToken, M as headOid, Q as ownsBranch, R as repoParent, V as DEFAULT_HOST, Y as joinRepo, Z as splitRepo, h as listWorkspaces, o as pushFailureFor, q as graphqlUrl, z as swr } from "./
|
|
1
|
+
import { U as subscriberCount, V as publish, W as subscriberJoins, dt as all, ft as db, g as sessionStates, l as listSessions } from "./_BerH0QBf.js";
|
|
2
|
+
import { A as portsByWorkspace, J as hostToken, K as forgetToken, M as headOid, Q as ownsBranch, R as repoParent, V as DEFAULT_HOST, Y as joinRepo, Z as splitRepo, h as listWorkspaces, o as pushFailureFor, q as graphqlUrl, z as swr } from "./_ClRtSKMs.js";
|
|
3
3
|
import path from "node:path";
|
|
4
4
|
//#region src/server/github-api.ts
|
|
5
5
|
/** Run a GraphQL query against one host.
|
|
@@ -229,6 +229,18 @@ var agents_default = [
|
|
|
229
229
|
"reauth": "grok",
|
|
230
230
|
"pathDirs": ["~/.grok/bin"]
|
|
231
231
|
},
|
|
232
|
+
{
|
|
233
|
+
"id": "opencode",
|
|
234
|
+
"label": "opencode",
|
|
235
|
+
"bins": ["opencode"],
|
|
236
|
+
"install": {
|
|
237
|
+
"url": "https://opencode.ai/install",
|
|
238
|
+
"shell": "bash"
|
|
239
|
+
},
|
|
240
|
+
"icon": "M6 4.5h12v15H6V4.5zM9 7.5v9h6v-9H9zM9 13.5v3h6v-3H9z",
|
|
241
|
+
"reauth": "opencode auth login",
|
|
242
|
+
"pathDirs": ["~/.opencode/bin"]
|
|
243
|
+
},
|
|
232
244
|
{
|
|
233
245
|
"id": "pi",
|
|
234
246
|
"label": "Pi",
|
|
@@ -6556,7 +6568,7 @@ function publishChange(sessionId) {
|
|
|
6556
6568
|
const row = get("SELECT workspace_id FROM sessions WHERE id = ?", sessionId);
|
|
6557
6569
|
if (row?.workspace_id) {
|
|
6558
6570
|
const workspaceId = row.workspace_id;
|
|
6559
|
-
import("./
|
|
6571
|
+
import("./_PwfoxOUv.js").then((m) => m.notifySessionsChanged(workspaceId));
|
|
6560
6572
|
return;
|
|
6561
6573
|
}
|
|
6562
6574
|
publish("sessions.changed");
|
|
@@ -6629,7 +6641,7 @@ function cleanSummary(text) {
|
|
|
6629
6641
|
if (!flat) return void 0;
|
|
6630
6642
|
return flat.length > 180 ? `${flat.slice(0, 177)}…` : flat;
|
|
6631
6643
|
}
|
|
6632
|
-
var meta_default$
|
|
6644
|
+
var meta_default$6 = {
|
|
6633
6645
|
id: "claude",
|
|
6634
6646
|
label: "Claude",
|
|
6635
6647
|
bins: ["claude"],
|
|
@@ -6639,7 +6651,7 @@ var meta_default$5 = {
|
|
|
6639
6651
|
},
|
|
6640
6652
|
icon: "M4.709 15.955l4.72-2.647.08-.23-.08-.128H9.2l-.79-.048-2.698-.073-2.339-.097-2.266-.122-.571-.121L0 11.784l.055-.352.48-.321.686.06 1.52.103 2.278.158 1.652.097 2.449.255h.389l.055-.157-.134-.098-.103-.097-2.358-1.596-2.552-1.688-1.336-.972-.724-.491-.364-.462-.158-1.008.656-.722.881.06.225.061.893.686 1.908 1.476 2.491 1.833.365.304.145-.103.019-.073-.164-.274-1.355-2.446-1.446-2.49-.644-1.032-.17-.619a2.97 2.97 0 01-.104-.729L6.283.134 6.696 0l.996.134.42.364.62 1.414 1.002 2.229 1.555 3.03.456.898.243.832.091.255h.158V9.01l.128-1.706.237-2.095.23-2.695.08-.76.376-.91.747-.492.584.28.48.685-.067.444-.286 1.851-.559 2.903-.364 1.942h.212l.243-.242.985-1.306 1.652-2.064.73-.82.85-.904.547-.431h1.033l.76 1.129-.34 1.166-1.064 1.347-.881 1.142-1.264 1.7-.79 1.36.073.11.188-.02 2.856-.606 1.543-.28 1.841-.315.833.388.091.395-.328.807-1.969.486-2.309.462-3.439.813-.042.03.049.061 1.549.146.662.036h1.622l3.02.225.79.522.474.638-.079.485-1.215.62-1.64-.389-3.829-.91-1.312-.329h-.182v.11l1.093 1.068 2.006 1.81 2.509 2.33.127.578-.322.455-.34-.049-2.205-1.657-.851-.747-1.926-1.62h-.128v.17l.444.649 2.345 3.521.122 1.08-.17.353-.608.213-.668-.122-1.374-1.925-1.415-2.167-1.143-1.943-.14.08-.674 7.254-.316.37-.729.28-.607-.461-.322-.747.322-1.476.389-1.924.315-1.53.286-1.9.17-.632-.012-.042-.14.018-1.434 1.967-2.18 2.945-1.726 1.845-.414.164-.717-.37.067-.662.401-.589 2.388-3.036 1.44-1.882.93-1.086-.006-.158h-.055L4.132 18.56l-1.13.146-.487-.456.061-.746.231-.243 1.908-1.312-.006.006z"
|
|
6641
6653
|
};
|
|
6642
|
-
var meta_default$
|
|
6654
|
+
var meta_default$5 = {
|
|
6643
6655
|
id: "codex",
|
|
6644
6656
|
label: "Codex",
|
|
6645
6657
|
bins: ["codex"],
|
|
@@ -6651,7 +6663,7 @@ var meta_default$4 = {
|
|
|
6651
6663
|
reauth: "codex login",
|
|
6652
6664
|
pathDirs: ["~/.codex/bin"]
|
|
6653
6665
|
};
|
|
6654
|
-
var meta_default$
|
|
6666
|
+
var meta_default$4 = {
|
|
6655
6667
|
id: "copilot",
|
|
6656
6668
|
label: "Copilot",
|
|
6657
6669
|
bins: ["copilot"],
|
|
@@ -6662,7 +6674,7 @@ var meta_default$3 = {
|
|
|
6662
6674
|
icon: "M19.245 5.364c1.322 1.36 1.877 3.216 2.11 5.817.622 0 1.2.135 1.592.654l.73.964c.21.278.323.61.323.955v2.62c0 .339-.173.669-.453.868C20.239 19.602 16.157 21.5 12 21.5c-4.6 0-9.205-2.583-11.547-4.258-.28-.2-.452-.53-.453-.868v-2.62c0-.345.113-.679.321-.956l.73-.963c.392-.517.974-.654 1.593-.654l.029-.297c.25-2.446.81-4.213 2.082-5.52 2.461-2.54 5.71-2.851 7.146-2.864h.198c1.436.013 4.685.323 7.146 2.864zm-7.244 4.328c-.284 0-.613.016-.962.05-.123.447-.305.85-.57 1.108-1.05 1.023-2.316 1.18-2.994 1.18-.638 0-1.306-.13-1.851-.464-.516.165-1.012.403-1.044.996a65.882 65.882 0 00-.063 2.884l-.002.48c-.002.563-.005 1.126-.013 1.69.002.326.204.63.51.765 2.482 1.102 4.83 1.657 6.99 1.657 2.156 0 4.504-.555 6.985-1.657a.854.854 0 00.51-.766c.03-1.682.006-3.372-.076-5.053-.031-.596-.528-.83-1.046-.996-.546.333-1.212.464-1.85.464-.677 0-1.942-.157-2.993-1.18-.266-.258-.447-.661-.57-1.108-.32-.032-.64-.049-.96-.05zm-2.525 4.013c.539 0 .976.426.976.95v1.753c0 .525-.437.95-.976.95a.964.964 0 01-.976-.95v-1.752c0-.525.437-.951.976-.951zm5 0c.539 0 .976.426.976.95v1.753c0 .525-.437.95-.976.95a.964.964 0 01-.976-.95v-1.752c0-.525.437-.951.976-.951zM7.635 5.087c-1.05.102-1.935.438-2.385.906-.975 1.037-.765 3.668-.21 4.224.405.394 1.17.657 1.995.657h.09c.649-.013 1.785-.176 2.73-1.11.435-.41.705-1.433.675-2.47-.03-.834-.27-1.52-.63-1.813-.39-.336-1.275-.482-2.265-.394zm6.465.394c-.36.292-.6.98-.63 1.813-.03 1.037.24 2.06.675 2.47.968.957 2.136 1.104 2.776 1.11h.044c.825 0 1.59-.263 1.995-.657.555-.556.765-3.187-.21-4.224-.45-.468-1.335-.804-2.385-.906-.99-.088-1.875.058-2.265.394zM12 7.615c-.24 0-.525.015-.84.044.03.16.045.336.06.526l-.001.159a2.94 2.94 0 01-.014.25c.225-.022.425-.027.612-.028h.366c.187 0 .387.006.612.028-.015-.146-.015-.277-.015-.409.015-.19.03-.365.06-.526a9.29 9.29 0 00-.84-.044z",
|
|
6663
6675
|
reauth: "gh auth login"
|
|
6664
6676
|
};
|
|
6665
|
-
var meta_default$
|
|
6677
|
+
var meta_default$3 = {
|
|
6666
6678
|
id: "cursor",
|
|
6667
6679
|
label: "Cursor",
|
|
6668
6680
|
bins: ["cursor-agent"],
|
|
@@ -6673,7 +6685,7 @@ var meta_default$2 = {
|
|
|
6673
6685
|
icon: "M22.106 5.68L12.5.135a.998.998 0 00-.998 0L1.893 5.68a.84.84 0 00-.419.726v11.186c0 .3.16.577.42.727l9.607 5.547a.999.999 0 00.998 0l9.608-5.547a.84.84 0 00.42-.727V6.407a.84.84 0 00-.42-.726zm-.603 1.176L12.228 22.92c-.063.108-.228.064-.228-.061V12.34a.59.59 0 00-.295-.51l-9.11-5.26c-.107-.062-.063-.228.062-.228h18.55c.264 0 .428.286.296.514z",
|
|
6674
6686
|
reauth: "cursor-agent login"
|
|
6675
6687
|
};
|
|
6676
|
-
var meta_default$
|
|
6688
|
+
var meta_default$2 = {
|
|
6677
6689
|
id: "grok",
|
|
6678
6690
|
label: "Grok",
|
|
6679
6691
|
bins: ["grok"],
|
|
@@ -6685,6 +6697,18 @@ var meta_default$1 = {
|
|
|
6685
6697
|
reauth: "grok",
|
|
6686
6698
|
pathDirs: ["~/.grok/bin"]
|
|
6687
6699
|
};
|
|
6700
|
+
var meta_default$1 = {
|
|
6701
|
+
id: "opencode",
|
|
6702
|
+
label: "opencode",
|
|
6703
|
+
bins: ["opencode"],
|
|
6704
|
+
install: {
|
|
6705
|
+
"url": "https://opencode.ai/install",
|
|
6706
|
+
"shell": "bash"
|
|
6707
|
+
},
|
|
6708
|
+
icon: "M6 4.5h12v15H6V4.5zM9 7.5v9h6v-9H9zM9 13.5v3h6v-3H9z",
|
|
6709
|
+
reauth: "opencode auth login",
|
|
6710
|
+
pathDirs: ["~/.opencode/bin"]
|
|
6711
|
+
};
|
|
6688
6712
|
var meta_default = {
|
|
6689
6713
|
id: "pi",
|
|
6690
6714
|
label: "Pi",
|
|
@@ -6700,6 +6724,7 @@ var meta_default = {
|
|
|
6700
6724
|
//#region src/agents/meta.ts
|
|
6701
6725
|
/** Alphabetical, which is also the order every picker shows. */
|
|
6702
6726
|
var AGENT_METAS = [
|
|
6727
|
+
meta_default$6,
|
|
6703
6728
|
meta_default$5,
|
|
6704
6729
|
meta_default$4,
|
|
6705
6730
|
meta_default$3,
|
|
@@ -7115,7 +7140,7 @@ async function claudeRow(account) {
|
|
|
7115
7140
|
* Its Notification hook fires for permission prompts and questions —
|
|
7116
7141
|
* and for the idle nudge, which readClaudeStyle downgrades. */
|
|
7117
7142
|
var claude = {
|
|
7118
|
-
meta: meta_default$
|
|
7143
|
+
meta: meta_default$6,
|
|
7119
7144
|
launchFlags: () => ["--settings", JSON.stringify({ hooks: claudeStyleHooks([
|
|
7120
7145
|
["UserPromptSubmit", "working"],
|
|
7121
7146
|
["PreToolUse", "working"],
|
|
@@ -7203,7 +7228,7 @@ async function codexRow() {
|
|
|
7203
7228
|
}
|
|
7204
7229
|
//#endregion
|
|
7205
7230
|
//#region src/agents/codex/index.ts
|
|
7206
|
-
var meta$
|
|
7231
|
+
var meta$5 = meta_default$5;
|
|
7207
7232
|
/** Codex hook events → state. PermissionRequest fires just before the
|
|
7208
7233
|
* approval prompt (PostToolUse clears it once the approved call has run,
|
|
7209
7234
|
* or the next PreToolUse does if a reviewer auto-decided). */
|
|
@@ -7261,7 +7286,7 @@ function launchFlags() {
|
|
|
7261
7286
|
flags.push("-c", `hooks.state={${state.join(",")}}`);
|
|
7262
7287
|
return flags;
|
|
7263
7288
|
}
|
|
7264
|
-
function readHook$
|
|
7289
|
+
function readHook$3(p, reported) {
|
|
7265
7290
|
const read = readClaudeStyle(p, reported);
|
|
7266
7291
|
if (!read.summary && p.hook_event_name === "PermissionRequest") {
|
|
7267
7292
|
const input = p.tool_input;
|
|
@@ -7271,11 +7296,11 @@ function readHook$2(p, reported) {
|
|
|
7271
7296
|
return read;
|
|
7272
7297
|
}
|
|
7273
7298
|
var codex = {
|
|
7274
|
-
meta: meta$
|
|
7299
|
+
meta: meta$5,
|
|
7275
7300
|
launchFlags,
|
|
7276
7301
|
reportsWorking: () => true,
|
|
7277
7302
|
envPrefixes: ["CODEX_"],
|
|
7278
|
-
readHook: readHook$
|
|
7303
|
+
readHook: readHook$3,
|
|
7279
7304
|
usage: () => codexRow().then((row) => [row])
|
|
7280
7305
|
};
|
|
7281
7306
|
//#endregion
|
|
@@ -7409,7 +7434,7 @@ async function copilotRow() {
|
|
|
7409
7434
|
}
|
|
7410
7435
|
//#endregion
|
|
7411
7436
|
//#region src/agents/copilot/index.ts
|
|
7412
|
-
var meta$
|
|
7437
|
+
var meta$4 = meta_default$4;
|
|
7413
7438
|
/** Copilot hook events (Claude-format names, which make it emit Claude's
|
|
7414
7439
|
* snake_case payloads) → state. Notification rather than PermissionRequest
|
|
7415
7440
|
* for "needs input": the latter fires before Copilot's own allow rules, the
|
|
@@ -7461,7 +7486,7 @@ var CHATTER = /* @__PURE__ */ new Set([
|
|
|
7461
7486
|
"factory_completed",
|
|
7462
7487
|
"unclassified"
|
|
7463
7488
|
]);
|
|
7464
|
-
function readHook$
|
|
7489
|
+
function readHook$2(p, reported) {
|
|
7465
7490
|
if (CHATTER.has(notificationType(p))) return { ignore: true };
|
|
7466
7491
|
const read = readClaudeStyle(p, reported);
|
|
7467
7492
|
if (!read.summary && reported === "done") read.summary = lastMessageFromTranscript(p);
|
|
@@ -7494,11 +7519,11 @@ function lastMessageFromTranscript(p) {
|
|
|
7494
7519
|
} catch {}
|
|
7495
7520
|
}
|
|
7496
7521
|
var copilot = {
|
|
7497
|
-
meta: meta$
|
|
7522
|
+
meta: meta$4,
|
|
7498
7523
|
launchFlags: () => ["--plugin-dir", pluginDir()],
|
|
7499
7524
|
reportsWorking: () => true,
|
|
7500
7525
|
envPrefixes: ["COPILOT_"],
|
|
7501
|
-
readHook: readHook$
|
|
7526
|
+
readHook: readHook$2,
|
|
7502
7527
|
usage: () => copilotRow().then((row) => [row])
|
|
7503
7528
|
};
|
|
7504
7529
|
//#endregion
|
|
@@ -7613,7 +7638,7 @@ async function cursorRow() {
|
|
|
7613
7638
|
* so its sessions get working/idle from pane activity (see scraper.ts) and
|
|
7614
7639
|
* nothing else — a stopped turn and a question look the same. */
|
|
7615
7640
|
var cursor = {
|
|
7616
|
-
meta: meta_default$
|
|
7641
|
+
meta: meta_default$3,
|
|
7617
7642
|
usage: () => cursorRow().then((row) => [row])
|
|
7618
7643
|
};
|
|
7619
7644
|
//#endregion
|
|
@@ -7718,7 +7743,7 @@ async function grokRow() {
|
|
|
7718
7743
|
}
|
|
7719
7744
|
//#endregion
|
|
7720
7745
|
//#region src/agents/grok/index.ts
|
|
7721
|
-
var meta$
|
|
7746
|
+
var meta$2 = meta_default$2;
|
|
7722
7747
|
/** Grok hook events → state. Payloads are camelCase (hookEventName,
|
|
7723
7748
|
* notificationType, lastAssistantMessage). Notification is matched to the
|
|
7724
7749
|
* two kinds that mean a prompt is on screen; Stop fires on shutdown too,
|
|
@@ -7778,7 +7803,7 @@ function registerHooks() {
|
|
|
7778
7803
|
}
|
|
7779
7804
|
return registered;
|
|
7780
7805
|
}
|
|
7781
|
-
function readHook(p, reported) {
|
|
7806
|
+
function readHook$1(p, reported) {
|
|
7782
7807
|
if (str$1(p.subagentType)) return { ignore: true };
|
|
7783
7808
|
if (p.hookEventName === "stop" && str$1(p.reason) && p.reason !== "end_turn") return { ignore: true };
|
|
7784
7809
|
const read = readClaudeStyle(p, reported);
|
|
@@ -7788,6 +7813,124 @@ function readHook(p, reported) {
|
|
|
7788
7813
|
}
|
|
7789
7814
|
return read;
|
|
7790
7815
|
}
|
|
7816
|
+
var grok = {
|
|
7817
|
+
meta: meta$2,
|
|
7818
|
+
launchFlags: () => {
|
|
7819
|
+
registerHooks();
|
|
7820
|
+
return [];
|
|
7821
|
+
},
|
|
7822
|
+
reportsWorking: () => registered,
|
|
7823
|
+
promptAsArgv: true,
|
|
7824
|
+
envPrefixes: ["GROK_"],
|
|
7825
|
+
readHook: readHook$1,
|
|
7826
|
+
usage: () => grokRow().then((row) => [row])
|
|
7827
|
+
};
|
|
7828
|
+
//#endregion
|
|
7829
|
+
//#region src/agents/opencode/index.ts
|
|
7830
|
+
var meta$1 = meta_default$1;
|
|
7831
|
+
/** opencode has no command hooks: state comes from a plugin, a JS module
|
|
7832
|
+
* subscribed to the same event bus its TUI renders from. The plugin posts
|
|
7833
|
+
* the reports itself rather than shelling out to curl, so this is the one
|
|
7834
|
+
* family whose payload work wrote — `readHook` only has to unwrap it. */
|
|
7835
|
+
var PLUGIN = (appPort) => `// Generated by work. Reports this
|
|
7836
|
+
// session's working / needs-input / done state to the app; edits are
|
|
7837
|
+
// overwritten. Port and session id come from the env tmux gave the pane.
|
|
7838
|
+
const post = async (state, reason, summary) => {
|
|
7839
|
+
const session = process.env.WORK_SESSION_ID;
|
|
7840
|
+
if (!session) return;
|
|
7841
|
+
const port = process.env.WORK_APP_PORT || "${appPort}";
|
|
7842
|
+
const qs =
|
|
7843
|
+
\`session=\${encodeURIComponent(session)}&state=\${state}\` +
|
|
7844
|
+
(reason ? \`&reason=\${reason}\` : "");
|
|
7845
|
+
try {
|
|
7846
|
+
await fetch(\`http://127.0.0.1:\${port}/api/agent-state?\${qs}\`, {
|
|
7847
|
+
method: "POST",
|
|
7848
|
+
headers: { "content-type": "application/json" },
|
|
7849
|
+
body: JSON.stringify({ summary }),
|
|
7850
|
+
signal: AbortSignal.timeout(3000),
|
|
7851
|
+
});
|
|
7852
|
+
} catch {}
|
|
7853
|
+
};
|
|
7854
|
+
|
|
7855
|
+
export const WorkSessionState = async () => {
|
|
7856
|
+
// A subagent's turn is not the pane's: task sessions carry a parentID,
|
|
7857
|
+
// and their busy/idle would otherwise end the turn the user is watching.
|
|
7858
|
+
const children = new Set();
|
|
7859
|
+
const roles = new Map();
|
|
7860
|
+
const lastText = new Map();
|
|
7861
|
+
const mine = (id) => !!id && !children.has(id);
|
|
7862
|
+
return {
|
|
7863
|
+
event: async ({ event }) => {
|
|
7864
|
+
const type = event?.type;
|
|
7865
|
+
const p = event?.properties || {};
|
|
7866
|
+
if (type === "session.created" || type === "session.updated") {
|
|
7867
|
+
if (p.info?.parentID) children.add(p.info.id);
|
|
7868
|
+
return;
|
|
7869
|
+
}
|
|
7870
|
+
// Text parts carry no role; the message they belong to does, and a
|
|
7871
|
+
// summary must not quote the user's own prompt back at them.
|
|
7872
|
+
if (type === "message.updated" && p.info?.id) {
|
|
7873
|
+
roles.set(p.info.id, p.info.role);
|
|
7874
|
+
return;
|
|
7875
|
+
}
|
|
7876
|
+
if (type === "message.part.updated" && p.part?.type === "text") {
|
|
7877
|
+
if (roles.get(p.part.messageID) === "assistant" && p.part.text)
|
|
7878
|
+
lastText.set(p.part.sessionID, p.part.text);
|
|
7879
|
+
return;
|
|
7880
|
+
}
|
|
7881
|
+
if (!mine(p.sessionID)) return;
|
|
7882
|
+
if (type === "session.status" && p.status?.type === "busy")
|
|
7883
|
+
return post("working");
|
|
7884
|
+
if (type === "session.idle") {
|
|
7885
|
+
const summary = lastText.get(p.sessionID);
|
|
7886
|
+
lastText.delete(p.sessionID);
|
|
7887
|
+
roles.clear();
|
|
7888
|
+
return post("waiting", "done", summary);
|
|
7889
|
+
}
|
|
7890
|
+
if (type === "session.error")
|
|
7891
|
+
return post(
|
|
7892
|
+
"waiting",
|
|
7893
|
+
"attention",
|
|
7894
|
+
p.error?.data?.message || p.error?.name,
|
|
7895
|
+
);
|
|
7896
|
+
// A prompt is on screen and nothing moves until it is answered.
|
|
7897
|
+
if (type === "permission.asked")
|
|
7898
|
+
return post(
|
|
7899
|
+
"waiting",
|
|
7900
|
+
"attention",
|
|
7901
|
+
[p.permission, p.metadata?.command || p.patterns?.[0]]
|
|
7902
|
+
.filter(Boolean)
|
|
7903
|
+
.join(": "),
|
|
7904
|
+
);
|
|
7905
|
+
if (type === "permission.replied") return post("working");
|
|
7906
|
+
},
|
|
7907
|
+
};
|
|
7908
|
+
};
|
|
7909
|
+
`;
|
|
7910
|
+
/** Whether the plugin is on disk for opencode to load — without it the
|
|
7911
|
+
* screen has to speak for the session. */
|
|
7912
|
+
var installed = false;
|
|
7913
|
+
/** opencode resolves a `plugin` entry that looks like a path as a local
|
|
7914
|
+
* file, and reads `OPENCODE_CONFIG_CONTENT` as one more config layer that
|
|
7915
|
+
* merges over the user's own. Together that loads work's plugin from
|
|
7916
|
+
* work's data dir without writing a line into ~/.config/opencode. */
|
|
7917
|
+
function pluginConfig() {
|
|
7918
|
+
const file = path.join(config.dataDir, "opencode-plugin.js");
|
|
7919
|
+
try {
|
|
7920
|
+
writeIfChanged(file, PLUGIN(config.appPort));
|
|
7921
|
+
installed = true;
|
|
7922
|
+
} catch {
|
|
7923
|
+
installed = false;
|
|
7924
|
+
}
|
|
7925
|
+
return JSON.stringify({ plugin: [file] });
|
|
7926
|
+
}
|
|
7927
|
+
function readHook(p, reported) {
|
|
7928
|
+
const summary = str$1(p.summary);
|
|
7929
|
+
return {
|
|
7930
|
+
reason: reported,
|
|
7931
|
+
summary: summary ? cleanSummary(summary) : void 0
|
|
7932
|
+
};
|
|
7933
|
+
}
|
|
7791
7934
|
//#endregion
|
|
7792
7935
|
//#region src/agents/index.ts
|
|
7793
7936
|
/** Every agent family work integrates with, one folder each. Order is the
|
|
@@ -7798,17 +7941,13 @@ var AGENTS = [
|
|
|
7798
7941
|
codex,
|
|
7799
7942
|
copilot,
|
|
7800
7943
|
cursor,
|
|
7944
|
+
grok,
|
|
7801
7945
|
{
|
|
7802
7946
|
meta: meta$1,
|
|
7803
|
-
|
|
7804
|
-
|
|
7805
|
-
|
|
7806
|
-
|
|
7807
|
-
reportsWorking: () => registered,
|
|
7808
|
-
promptAsArgv: true,
|
|
7809
|
-
envPrefixes: ["GROK_"],
|
|
7810
|
-
readHook,
|
|
7811
|
-
usage: () => grokRow().then((row) => [row])
|
|
7947
|
+
launchEnv: () => ({ OPENCODE_CONFIG_CONTENT: pluginConfig() }),
|
|
7948
|
+
reportsWorking: () => installed,
|
|
7949
|
+
envPrefixes: ["OPENCODE_"],
|
|
7950
|
+
readHook
|
|
7812
7951
|
},
|
|
7813
7952
|
{
|
|
7814
7953
|
meta: meta_default,
|
|
@@ -7824,6 +7963,11 @@ function agentFor(id) {
|
|
|
7824
7963
|
function agentLaunchFlags(id) {
|
|
7825
7964
|
return agentFor(id)?.launchFlags?.() ?? [];
|
|
7826
7965
|
}
|
|
7966
|
+
/** Env for a spawned pane so the agent CLI reports state — the families
|
|
7967
|
+
* configured by environment rather than argv. */
|
|
7968
|
+
function agentLaunchEnv(id) {
|
|
7969
|
+
return agentFor(id)?.launchEnv?.() ?? {};
|
|
7970
|
+
}
|
|
7827
7971
|
/** Whether the agent says when it *starts* working, not just when it stops
|
|
7828
7972
|
* — believing the screen over that costs it the state its own hook just
|
|
7829
7973
|
* reported, so the pane scraper leaves these alone. */
|
|
@@ -8148,7 +8292,7 @@ function newSessionArgs(session, wsPath, mode, initialPrompt, size) {
|
|
|
8148
8292
|
tmuxName(session.id),
|
|
8149
8293
|
"-c",
|
|
8150
8294
|
wsPath,
|
|
8151
|
-
...sessionEnvArgs(session.id),
|
|
8295
|
+
...sessionEnvArgs(session.id, session.agent),
|
|
8152
8296
|
...loginShellCommand(session.agent, initialPrompt)
|
|
8153
8297
|
];
|
|
8154
8298
|
}
|
|
@@ -8212,13 +8356,15 @@ function sessionCommand(agent) {
|
|
|
8212
8356
|
return command ? [command] : [];
|
|
8213
8357
|
}
|
|
8214
8358
|
/** tmux new-session env flags so the agent's hooks can report back which
|
|
8215
|
-
* session they belong to
|
|
8216
|
-
|
|
8359
|
+
* session they belong to, plus whatever the family needs to load its own
|
|
8360
|
+
* hooks (opencode names its plugin here — tmux quotes it, not the shell). */
|
|
8361
|
+
function sessionEnvArgs(sessionId, agent) {
|
|
8217
8362
|
return [
|
|
8218
8363
|
"-e",
|
|
8219
8364
|
`WORK_SESSION_ID=${sessionId}`,
|
|
8220
8365
|
"-e",
|
|
8221
|
-
`WORK_APP_PORT=${config.appPort}
|
|
8366
|
+
`WORK_APP_PORT=${config.appPort}`,
|
|
8367
|
+
...Object.entries(agentLaunchEnv(agent)).flatMap(([key, value]) => ["-e", `${key}=${value}`])
|
|
8222
8368
|
];
|
|
8223
8369
|
}
|
|
8224
8370
|
function tmuxName(sessionId) {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { $ as setSetting, V as publish, Y as getSetting, _t as git, bt as config, c as killWorkspaceSessions, dt as all, ft as db, gt as gh, i as disposeSessions, l as listSessions, nt as ghKnownHosts, ot as DEFAULT_GITHUB_HOST, p as panePids, pt as get, vt as run } from "./
|
|
1
|
+
import { $ as setSetting, V as publish, Y as getSetting, _t as git, bt as config, c as killWorkspaceSessions, dt as all, ft as db, gt as gh, i as disposeSessions, l as listSessions, nt as ghKnownHosts, ot as DEFAULT_GITHUB_HOST, p as panePids, pt as get, vt as run } from "./_BerH0QBf.js";
|
|
2
2
|
import fs from "node:fs";
|
|
3
3
|
import path from "node:path";
|
|
4
4
|
import { AsyncLocalStorage } from "node:async_hooks";
|
|
@@ -1005,7 +1005,7 @@ async function materializeWorkspace(id) {
|
|
|
1005
1005
|
repo.default_branch = defaultBranch;
|
|
1006
1006
|
db.prepare("UPDATE repos SET base_branch = ?, default_branch = ? WHERE workspace_id = ? AND full_name = ?").run(repo.base_branch, defaultBranch, id, repo.full_name);
|
|
1007
1007
|
}
|
|
1008
|
-
(await import("./
|
|
1008
|
+
(await import("./_Bhd3BMas.js")).muteAutoPush(repo.full_name, ws.branch);
|
|
1009
1009
|
await addWorkspaceWorktree(bare, path.join(ws.path, repo.worktree), ws.branch, repo.base_branch);
|
|
1010
1010
|
added.push(repo);
|
|
1011
1011
|
});
|
|
@@ -1639,7 +1639,7 @@ async function noteRemoteRef(fullName, branch, oid) {
|
|
|
1639
1639
|
if (await revParse(barePath(fullName), `refs/heads/${branch}`) !== oid) return;
|
|
1640
1640
|
rememberPushed(k, oid);
|
|
1641
1641
|
if (failures.delete(k)) {
|
|
1642
|
-
const { pokeStatusWatch } = await import("./
|
|
1642
|
+
const { pokeStatusWatch } = await import("./_DLULQXOg.js");
|
|
1643
1643
|
pokeStatusWatch();
|
|
1644
1644
|
}
|
|
1645
1645
|
}
|
|
@@ -1704,7 +1704,7 @@ async function pushOnce(fullName, branch, bases) {
|
|
|
1704
1704
|
}
|
|
1705
1705
|
async function fail(k, why) {
|
|
1706
1706
|
failures.set(k, why);
|
|
1707
|
-
const { pokeStatusWatch } = await import("./
|
|
1707
|
+
const { pokeStatusWatch } = await import("./_DLULQXOg.js");
|
|
1708
1708
|
pokeStatusWatch();
|
|
1709
1709
|
return why;
|
|
1710
1710
|
}
|
|
@@ -2027,7 +2027,7 @@ var diff_file_default = _template("h", (input) => {
|
|
|
2027
2027
|
_scope_reason();
|
|
2028
2028
|
const $scope0_id = _scope_id();
|
|
2029
2029
|
_el($scope0_id, "h0");
|
|
2030
|
-
_html(`<div${_attr_class(["
|
|
2030
|
+
_html(`<div${_attr_class(["_h1", input.class])}></div>${_el_resume($scope0_id, "a")}`);
|
|
2031
2031
|
_script($scope0_id, "h1");
|
|
2032
2032
|
writeScope($scope0_id, {
|
|
2033
2033
|
e: input.file,
|
|
@@ -2434,7 +2434,7 @@ var review_section_default = _template("w", (input) => {
|
|
|
2434
2434
|
});
|
|
2435
2435
|
_resume_branch($scope0_id);
|
|
2436
2436
|
});
|
|
2437
|
-
var fileFilter = "
|
|
2437
|
+
var fileFilter = "_h3 _l";
|
|
2438
2438
|
//#endregion
|
|
2439
2439
|
//#region src/tags/file-filter.marko
|
|
2440
2440
|
var file_filter_default = _template("n", (input) => {
|
|
@@ -2464,7 +2464,7 @@ var file_filter_default = _template("n", (input) => {
|
|
|
2464
2464
|
pending = v;
|
|
2465
2465
|
box.timer = setTimeout(flush, 150);
|
|
2466
2466
|
}, "n2", $scope0_id);
|
|
2467
|
-
_html(`<div${_attr_class("
|
|
2467
|
+
_html(`<div${_attr_class("_h2")}><input${_attr_input_value($scope0_id, "b", draft, _resume(function(v) {
|
|
2468
2468
|
type(v);
|
|
2469
2469
|
}, "n0", $scope0_id))}${_attr_class(fileFilter)} type=search placeholder="Filter files…" aria-label="Filter files">${_el_resume($scope0_id, "b")}</div>`);
|
|
2470
2470
|
_script($scope0_id, "n3");
|
|
@@ -2792,9 +2792,9 @@ var diff_file_sheet_default = _template("g", (input) => {
|
|
|
2792
2792
|
_if(() => {
|
|
2793
2793
|
if (open) {
|
|
2794
2794
|
const $scope1_id = _scope_id();
|
|
2795
|
-
_html(`<div${_attr_class("
|
|
2795
|
+
_html(`<div${_attr_class("_gH")}></div>${_el_resume($scope1_id, "a")}<div${_attr_class("_gI")} role=dialog aria-label="Jump to file"><div${_attr_class("_gJ")}><strong${_attr_class("_gG")}>Files</strong><span${_attr_class("_gK")}>${_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, "_gF"])} title=Close aria-label=Close>`);
|
|
2796
2796
|
icon_xmark_default({ size: 16 });
|
|
2797
|
-
_html(`</button>${_el_resume($scope1_id, "h")}</div><div${_attr_class("
|
|
2797
|
+
_html(`</button>${_el_resume($scope1_id, "h")}</div><div${_attr_class("_gS")}>`);
|
|
2798
2798
|
_set_serialize_reason(2);
|
|
2799
2799
|
const $childScope = _peek_scope_id();
|
|
2800
2800
|
file_filter_default({
|
|
@@ -2803,28 +2803,28 @@ var diff_file_sheet_default = _template("g", (input) => {
|
|
|
2803
2803
|
filter = _new_filter;
|
|
2804
2804
|
}, "g1", $scope1_id)
|
|
2805
2805
|
});
|
|
2806
|
-
_html(`</div><div${_attr_class("
|
|
2806
|
+
_html(`</div><div${_attr_class("_gL")}>`);
|
|
2807
2807
|
_for_of(groups, (group) => {
|
|
2808
2808
|
const $scope2_id = _scope_id();
|
|
2809
|
-
_html(`<div${_attr_class("
|
|
2809
|
+
_html(`<div${_attr_class("_gM")}><div${_attr_class("_gN")}>${_escape(group.repo)}${_el_resume($scope2_id, "c", $sg__input_files)}</div>`);
|
|
2810
2810
|
_for_of(group.dirs, ({ dir, files }) => {
|
|
2811
2811
|
const $scope3_id = _scope_id();
|
|
2812
|
-
_html(`<div${_attr_class("
|
|
2812
|
+
_html(`<div${_attr_class("_gO")}>`);
|
|
2813
2813
|
_if(() => {
|
|
2814
2814
|
if (dir) {
|
|
2815
2815
|
const $scope5_id = _scope_id();
|
|
2816
|
-
_html(`<div${_attr_class("
|
|
2816
|
+
_html(`<div${_attr_class("_gQ")}${_attr("title", dir)}><bdi>${_escape(dir)}${_el_resume($scope5_id, "b", $sg__input_files)}/</bdi></div>${_el_resume($scope5_id, "a", $sg__input_files)}`);
|
|
2817
2817
|
$si__input_files && writeScope($scope5_id, { _: _scope_with_id($scope3_id) });
|
|
2818
2818
|
return 0;
|
|
2819
2819
|
}
|
|
2820
2820
|
}, $scope3_id, "b", $sg__input_files, $sg__input_files, $sg__input_files, 0, 1);
|
|
2821
2821
|
_for_of(files, ({ file, name }) => {
|
|
2822
2822
|
const $scope4_id = _scope_id();
|
|
2823
|
-
_html(`<a${_attr("href", hrefFor(file.key))}${_attr_class(["
|
|
2823
|
+
_html(`<a${_attr("href", hrefFor(file.key))}${_attr_class(["_gP", "_w"])}><span${_attr_class("_gW")}${_attr("data-status", file.status)}>${_escape(file.status)}${_el_resume($scope4_id, "c", $sg__input_files)}</span>${_el_resume($scope4_id, "b", $sg__input_files)}<span${_attr_class("_gR")}><bdi>${_escape(name)}${_el_resume($scope4_id, "e", $sg__input_files)}</bdi></span>`);
|
|
2824
2824
|
_if(() => {
|
|
2825
2825
|
if (newKeys.has(file.key)) {
|
|
2826
2826
|
const $scope6_id = _scope_id();
|
|
2827
|
-
_html(`<span${_attr_class(["_y", "
|
|
2827
|
+
_html(`<span${_attr_class(["_y", "_gU"])} title="Changed since your last visit"></span>`);
|
|
2828
2828
|
_serialize_if($scope0_reason, 1) && writeScope($scope6_id, {});
|
|
2829
2829
|
return 0;
|
|
2830
2830
|
}
|
|
@@ -2834,7 +2834,7 @@ var diff_file_sheet_default = _template("g", (input) => {
|
|
|
2834
2834
|
const $scope7_id = _scope_id();
|
|
2835
2835
|
icon_comment_default({
|
|
2836
2836
|
size: 12,
|
|
2837
|
-
class: "
|
|
2837
|
+
class: "_gV"
|
|
2838
2838
|
});
|
|
2839
2839
|
_serialize_if($scope0_reason, 0) && writeScope($scope7_id, {});
|
|
2840
2840
|
return 0;
|
|
@@ -2859,7 +2859,7 @@ var diff_file_sheet_default = _template("g", (input) => {
|
|
|
2859
2859
|
_if(() => {
|
|
2860
2860
|
if (!input.files.length) {
|
|
2861
2861
|
const $scope8_id = _scope_id();
|
|
2862
|
-
_html(`<p${_attr_class("
|
|
2862
|
+
_html(`<p${_attr_class("_gT")}>No files match.</p>`);
|
|
2863
2863
|
$si__input_files_length && writeScope($scope8_id, {});
|
|
2864
2864
|
return 0;
|
|
2865
2865
|
}
|