@dylanpiercey/work 0.0.65 → 0.0.67

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (250) hide show
  1. package/bin/work.mjs +17 -1
  2. package/dist/{_CJOORMBO.js → _B9UH2f9c.js} +61 -37
  3. package/dist/_C8-SYmgW.js +2 -0
  4. package/dist/{_CSvmyeWI.js → _D78MdEM0.js} +1205 -999
  5. package/dist/{_Dp9_KYvx.js → _mSrLyFdO.js} +9 -1
  6. package/dist/index.mjs +1071 -830
  7. package/dist/public/assets/{_tyL67pnw.js → _3k9q7qTZ.js} +1 -1
  8. package/dist/public/assets/_3k9q7qTZ.js.br +0 -0
  9. package/dist/public/assets/{_CeiVaZaE2.js → _6Uv2mA8-2.js} +1 -1
  10. package/dist/public/assets/_6Uv2mA8-2.js.br +0 -0
  11. package/dist/public/assets/{_BdX2kLzM.js → _AMWZA0be.js} +1 -1
  12. package/dist/public/assets/_AMWZA0be.js.br +0 -0
  13. package/dist/public/assets/{_BlzJNKIq.js → _B1ZCEYOD.js} +1 -1
  14. package/dist/public/assets/_B1ZCEYOD.js.br +0 -0
  15. package/dist/public/assets/{_Dla_sQtT.js → _B1vmwnMa.js} +1 -1
  16. package/dist/public/assets/_B1vmwnMa.js.br +0 -0
  17. package/dist/public/assets/{_BThtwt0w.js → _B5iCC67h.js} +1 -1
  18. package/dist/public/assets/_B5iCC67h.js.br +0 -0
  19. package/dist/public/assets/{_DRy7E0y4.js → _BL7XgPZ_.js} +1 -1
  20. package/dist/public/assets/_BL7XgPZ_.js.br +0 -0
  21. package/dist/public/assets/{_DQnRz4N-2.js → _BSNS3UMH2.js} +1 -1
  22. package/dist/public/assets/_BSNS3UMH2.js.br +0 -0
  23. package/dist/public/assets/{_IQRs4Vxk2.js → _BV3Xd3ki2.js} +1 -1
  24. package/dist/public/assets/{_B0K8ONkz.js → _BW1UpUrT.js} +1 -1
  25. package/dist/public/assets/_BW1UpUrT.js.br +0 -0
  26. package/dist/public/assets/{_BoY3-Vy52.js → _BW81rf1H2.js} +1 -1
  27. package/dist/public/assets/_BW81rf1H2.js.br +0 -0
  28. package/dist/public/assets/{_BQQEle5V2.js → _BXCZuUQA2.js} +1 -1
  29. package/dist/public/assets/_BXCZuUQA2.js.br +0 -0
  30. package/dist/public/assets/{_BtQw2bmP.js → _B_cZqSdw.js} +1 -1
  31. package/dist/public/assets/_B_cZqSdw.js.br +0 -0
  32. package/dist/public/assets/{_DGSiyVF7.js → _BaoSUC_i.js} +1 -1
  33. package/dist/public/assets/_BaoSUC_i.js.br +0 -0
  34. package/dist/public/assets/{_DW89HP67.js → _BkgwhUlf.js} +1 -1
  35. package/dist/public/assets/_BkgwhUlf.js.br +0 -0
  36. package/dist/public/assets/{_DktisilP.js → _Bs3zDe42.js} +1 -1
  37. package/dist/public/assets/_Bs3zDe42.js.br +0 -0
  38. package/dist/public/assets/{_Dhz04q_D.js → _BtsudbJn.js} +1 -1
  39. package/dist/public/assets/_BtsudbJn.js.br +0 -0
  40. package/dist/public/assets/{_DIqr-isS2.js → _BwQNx6NX2.js} +1 -1
  41. package/dist/public/assets/_BwQNx6NX2.js.br +0 -0
  42. package/dist/public/assets/{_COmbCgXJ.js → _Bx58LnKm.js} +1 -1
  43. package/dist/public/assets/_Bx58LnKm.js.br +0 -0
  44. package/dist/public/assets/{_zBoBE4zG2.js → _BzP13oLI2.js} +1 -1
  45. package/dist/public/assets/_BzP13oLI2.js.br +0 -0
  46. package/dist/public/assets/{_C8nC95yB.js → _C13mV9Vy.js} +1 -1
  47. package/dist/public/assets/_C13mV9Vy.js.br +0 -0
  48. package/dist/public/assets/{_dGG0GxLJ.js → _C7_gIQ1W.js} +1 -1
  49. package/dist/public/assets/_C7_gIQ1W.js.br +0 -0
  50. package/dist/public/assets/{_DSl96WfX.js → _C8IzwQRq.js} +1 -1
  51. package/dist/public/assets/_C8IzwQRq.js.br +0 -0
  52. package/dist/public/assets/{_GAJYC2Mn.js → _C9ETD15k.js} +1 -1
  53. package/dist/public/assets/_C9ETD15k.js.br +0 -0
  54. package/dist/public/assets/{_BZ1m666c2.js → _CBo0xAjA2.js} +1 -1
  55. package/dist/public/assets/{_CITgMOC9.js → _CCbKzznD.js} +1 -1
  56. package/dist/public/assets/_CCbKzznD.js.br +0 -0
  57. package/dist/public/assets/{_DsedTKoi2.js → _CHxLUwRe2.js} +1 -1
  58. package/dist/public/assets/_CHxLUwRe2.js.br +0 -0
  59. package/dist/public/assets/{_CaI2OErv2.js → _CPi3B_vr2.js} +1 -1
  60. package/dist/public/assets/_CPi3B_vr2.js.br +0 -0
  61. package/dist/public/assets/{_DIPk3FlP.js → _CS_y_5bW.js} +1 -1
  62. package/dist/public/assets/_CS_y_5bW.js.br +0 -0
  63. package/dist/public/assets/{_CioERcnr2.js → _CYMzncSB2.js} +1 -1
  64. package/dist/public/assets/_CYMzncSB2.js.br +0 -0
  65. package/dist/public/assets/{_Dj5rhxkK2.js → _CZyTbXSO2.js} +1 -1
  66. package/dist/public/assets/_CZyTbXSO2.js.br +0 -0
  67. package/dist/public/assets/{_BUgZMYtw.js → _Cc8KMyAp.js} +1 -1
  68. package/dist/public/assets/_Cc8KMyAp.js.br +0 -0
  69. package/dist/public/assets/{_DvCKkq4p.js → _CcdwqB39.js} +1 -1
  70. package/dist/public/assets/_CcdwqB39.js.br +0 -0
  71. package/dist/public/assets/{_CaKapByl.js → _CduHXYfC.js} +45 -45
  72. package/dist/public/assets/_CduHXYfC.js.br +0 -0
  73. package/dist/public/assets/{_BboF69sq.js → _CgMtsYIH.js} +1 -1
  74. package/dist/public/assets/_CgMtsYIH.js.br +0 -0
  75. package/dist/public/assets/{_CrV-j-_J2.js → _CgdPOrhX2.js} +1 -1
  76. package/dist/public/assets/_CgdPOrhX2.js.br +0 -0
  77. package/dist/public/assets/{_Dk0TvYyB.js → _Chsu042s.js} +1 -1
  78. package/dist/public/assets/_Chsu042s.js.br +0 -0
  79. package/dist/public/assets/{_Ig-G3Vb-2.js → _CjxTlEOw2.js} +1 -1
  80. package/dist/public/assets/_CjxTlEOw2.js.br +0 -0
  81. package/dist/public/assets/{_DTg6G0mG2.js → _ClECf4L52.js} +1 -1
  82. package/dist/public/assets/_ClECf4L52.js.br +0 -0
  83. package/dist/public/assets/{_DmhJqFxg.js → _CnQdBazT.js} +1 -1
  84. package/dist/public/assets/_CnQdBazT.js.br +0 -0
  85. package/dist/public/assets/{_DVhX7A38.js → _CsVHdEro.js} +1 -1
  86. package/dist/public/assets/{_BCM54uP7.js → _CsdnwX6C.js} +1 -1
  87. package/dist/public/assets/_CsdnwX6C.js.br +0 -0
  88. package/dist/public/assets/{_B7r33ix3.js → _CsuFzJmI.js} +1 -1
  89. package/dist/public/assets/_CsuFzJmI.js.br +0 -0
  90. package/dist/public/assets/{_DdWJlopw.js → _CuUYX7O6.js} +1 -1
  91. package/dist/public/assets/_CuUYX7O6.js.br +0 -0
  92. package/dist/public/assets/{_bAkDCn_T2.js → _Cvm7LApl2.js} +1 -1
  93. package/dist/public/assets/_Cvm7LApl2.js.br +0 -0
  94. package/dist/public/assets/{_D4ERlOIt.js → _CzJu_xMs.js} +1 -1
  95. package/dist/public/assets/_CzJu_xMs.js.br +0 -0
  96. package/dist/public/assets/{_C4xR-bcw.js → _D3ardbW_.js} +1 -1
  97. package/dist/public/assets/_D3ardbW_.js.br +0 -0
  98. package/dist/public/assets/{_CIkG14ic.js → _D6UgA7_X.js} +1 -1
  99. package/dist/public/assets/_D6UgA7_X.js.br +0 -0
  100. package/dist/public/assets/{_CqwvvARM2.js → _D6hi7ua72.js} +1 -1
  101. package/dist/public/assets/_D6hi7ua72.js.br +0 -0
  102. package/dist/public/assets/{_CTuqiWc4.js → _D9eCCnFe.js} +1 -1
  103. package/dist/public/assets/_D9eCCnFe.js.br +0 -0
  104. package/dist/public/assets/{_DXx38Nka.js → _DHLcQgxi.js} +1 -1
  105. package/dist/public/assets/_DHLcQgxi.js.br +0 -0
  106. package/dist/public/assets/{_DHM4stpd.js → _DLfp1TG-.js} +1 -1
  107. package/dist/public/assets/_DLfp1TG-.js.br +0 -0
  108. package/dist/public/assets/{_C-9k1_iP.js → _DRbnn8C_.js} +1 -1
  109. package/dist/public/assets/_DRbnn8C_.js.br +0 -0
  110. package/dist/public/assets/{_DBsRrJl2.js → _DTD1tZCR.js} +1 -1
  111. package/dist/public/assets/_DTD1tZCR.js.br +0 -0
  112. package/dist/public/assets/{_Bp8I3szc.js → _DX5zvNmD.js} +1 -1
  113. package/dist/public/assets/_DX5zvNmD.js.br +0 -0
  114. package/dist/public/assets/{_BxbPiayr.js → _DbEBleKv.js} +1 -1
  115. package/dist/public/assets/_DbEBleKv.js.br +0 -0
  116. package/dist/public/assets/{_DobhJicG2.js → _DeKPlPsD2.js} +1 -1
  117. package/dist/public/assets/_DeKPlPsD2.js.br +0 -0
  118. package/dist/public/assets/{_DkrY5R_L.js → _DfBlfnwv.js} +1 -1
  119. package/dist/public/assets/_DfBlfnwv.js.br +0 -0
  120. package/dist/public/assets/{_CTT6B6-b.js → _DiAj-Esd.js} +1 -1
  121. package/dist/public/assets/_DiAj-Esd.js.br +0 -0
  122. package/dist/public/assets/{_DAEfR_pv2.js → _DlpIObWk2.js} +1 -1
  123. package/dist/public/assets/_DlpIObWk2.js.br +0 -0
  124. package/dist/public/assets/{_DMSaSonW.js → _Dlrc6R2N.js} +20 -20
  125. package/dist/public/assets/_Dlrc6R2N.js.br +0 -0
  126. package/dist/public/assets/{_DbucXXAA.js → _Ds1l_cNr.js} +1 -1
  127. package/dist/public/assets/_Ds1l_cNr.js.br +0 -0
  128. package/dist/public/assets/{_CerQ_0732.js → _Dzm4iymN2.js} +1 -1
  129. package/dist/public/assets/_Dzm4iymN2.js.br +0 -0
  130. package/dist/public/assets/{_BmiI8e9v.js → _NElrm0bu.js} +1 -1
  131. package/dist/public/assets/_NElrm0bu.js.br +0 -0
  132. package/dist/public/assets/{_DwFgGl5j.js → _QqRd5Qfx.js} +1 -1
  133. package/dist/public/assets/_QqRd5Qfx.js.br +0 -0
  134. package/dist/public/assets/{_COIRZlBz.js → _VuWoXkq_.js} +1 -1
  135. package/dist/public/assets/_VuWoXkq_.js.br +0 -0
  136. package/dist/public/assets/{_CqRLihbS.js → _W9tsjAUN.js} +1 -1
  137. package/dist/public/assets/_W9tsjAUN.js.br +0 -0
  138. package/dist/public/assets/{_Cs1TioRL.js → _g4l6Vz4T.js} +1 -1
  139. package/dist/public/assets/_g4l6Vz4T.js.br +0 -0
  140. package/dist/public/assets/{_C5wBIhjz.js → _iFcqMrGB.js} +1 -1
  141. package/dist/public/assets/_iFcqMrGB.js.br +0 -0
  142. package/dist/public/assets/{_CUyMzA_n2.js → _m3dEhGTX2.js} +1 -1
  143. package/dist/public/assets/_m3dEhGTX2.js.br +0 -0
  144. package/dist/public/assets/{_JJ2tpZIq2.js → _pfnxgR1W2.js} +1 -1
  145. package/dist/public/assets/_pfnxgR1W2.js.br +0 -0
  146. package/dist/public/assets/{_BEfV6dr52.js → _sNxRRogh2.js} +1 -1
  147. package/dist/public/assets/_sNxRRogh2.js.br +0 -0
  148. package/dist/public/assets/{_BH1orsGI.js → _uDnfyVmG.js} +1 -1
  149. package/dist/public/assets/_uDnfyVmG.js.br +0 -0
  150. package/dist/public/assets/{_CWbBPRed.js → _u_iVn6qP.js} +1 -1
  151. package/dist/public/assets/_u_iVn6qP.js.br +0 -0
  152. package/dist/public/assets/{_Bo6_Newo.js → _y4Ul_ohO.js} +1 -1
  153. package/dist/public/assets/_y4Ul_ohO.js.br +0 -0
  154. package/dist/public/assets/{_CZn9N_LK2.js → _ypxye8UD2.js} +1 -1
  155. package/dist/public/assets/_ypxye8UD2.js.br +0 -0
  156. package/dist/public/assets/app-page-DZhaOCYJ.css +1 -0
  157. package/dist/public/assets/app-page-DZhaOCYJ.css.br +0 -0
  158. package/dist/public/assets/diff-view-QQN-PSAx.css +1 -0
  159. package/dist/public/assets/diff-view-QQN-PSAx.css.br +0 -0
  160. package/dist/public/assets/new-Cia2P5u6.js +1 -0
  161. package/dist/public/assets/settings-Cia2P5u6.js +1 -0
  162. package/dist/public/assets/w-Cia2P5u6.js +1 -0
  163. package/dist/public/assets/w._-BwIlYQ_7.js +1 -0
  164. package/dist/public/assets/w._-Cia2P5u6.js +1 -0
  165. package/lib/review/markdown.d.mts +37 -0
  166. package/lib/review/markdown.mjs +117 -0
  167. package/package.json +1 -1
  168. package/dist/_CTJQVrRJ.js +0 -2
  169. package/dist/public/assets/_B0K8ONkz.js.br +0 -0
  170. package/dist/public/assets/_B7r33ix3.js.br +0 -0
  171. package/dist/public/assets/_BCM54uP7.js.br +0 -0
  172. package/dist/public/assets/_BEfV6dr52.js.br +0 -0
  173. package/dist/public/assets/_BH1orsGI.js.br +0 -0
  174. package/dist/public/assets/_BQQEle5V2.js.br +0 -0
  175. package/dist/public/assets/_BThtwt0w.js.br +0 -0
  176. package/dist/public/assets/_BUgZMYtw.js.br +0 -0
  177. package/dist/public/assets/_BboF69sq.js.br +0 -0
  178. package/dist/public/assets/_BdX2kLzM.js.br +0 -0
  179. package/dist/public/assets/_BlzJNKIq.js.br +0 -0
  180. package/dist/public/assets/_BmiI8e9v.js.br +0 -0
  181. package/dist/public/assets/_Bo6_Newo.js.br +0 -0
  182. package/dist/public/assets/_BoY3-Vy52.js.br +0 -0
  183. package/dist/public/assets/_Bp8I3szc.js.br +0 -0
  184. package/dist/public/assets/_BtQw2bmP.js.br +0 -0
  185. package/dist/public/assets/_BxbPiayr.js.br +0 -0
  186. package/dist/public/assets/_C-9k1_iP.js.br +0 -0
  187. package/dist/public/assets/_C4xR-bcw.js.br +0 -0
  188. package/dist/public/assets/_C5wBIhjz.js.br +0 -0
  189. package/dist/public/assets/_C8nC95yB.js.br +0 -0
  190. package/dist/public/assets/_CITgMOC9.js.br +0 -0
  191. package/dist/public/assets/_CIkG14ic.js.br +0 -0
  192. package/dist/public/assets/_COIRZlBz.js.br +0 -0
  193. package/dist/public/assets/_COmbCgXJ.js.br +0 -0
  194. package/dist/public/assets/_CTT6B6-b.js.br +0 -0
  195. package/dist/public/assets/_CTuqiWc4.js.br +0 -0
  196. package/dist/public/assets/_CUyMzA_n2.js.br +0 -0
  197. package/dist/public/assets/_CWbBPRed.js.br +0 -0
  198. package/dist/public/assets/_CZn9N_LK2.js.br +0 -0
  199. package/dist/public/assets/_CaI2OErv2.js.br +0 -0
  200. package/dist/public/assets/_CaKapByl.js.br +0 -0
  201. package/dist/public/assets/_CeiVaZaE2.js.br +0 -0
  202. package/dist/public/assets/_CerQ_0732.js.br +0 -0
  203. package/dist/public/assets/_CioERcnr2.js.br +0 -0
  204. package/dist/public/assets/_CqRLihbS.js.br +0 -0
  205. package/dist/public/assets/_CqwvvARM2.js.br +0 -0
  206. package/dist/public/assets/_CrV-j-_J2.js.br +0 -0
  207. package/dist/public/assets/_Cs1TioRL.js.br +0 -0
  208. package/dist/public/assets/_D4ERlOIt.js.br +0 -0
  209. package/dist/public/assets/_DAEfR_pv2.js.br +0 -0
  210. package/dist/public/assets/_DBsRrJl2.js.br +0 -0
  211. package/dist/public/assets/_DGSiyVF7.js.br +0 -0
  212. package/dist/public/assets/_DHM4stpd.js.br +0 -0
  213. package/dist/public/assets/_DIPk3FlP.js.br +0 -0
  214. package/dist/public/assets/_DIqr-isS2.js.br +0 -0
  215. package/dist/public/assets/_DMSaSonW.js.br +0 -0
  216. package/dist/public/assets/_DQnRz4N-2.js.br +0 -0
  217. package/dist/public/assets/_DRy7E0y4.js.br +0 -0
  218. package/dist/public/assets/_DSl96WfX.js.br +0 -0
  219. package/dist/public/assets/_DTg6G0mG2.js.br +0 -0
  220. package/dist/public/assets/_DW89HP67.js.br +0 -0
  221. package/dist/public/assets/_DXx38Nka.js.br +0 -0
  222. package/dist/public/assets/_DbucXXAA.js.br +0 -0
  223. package/dist/public/assets/_DdWJlopw.js.br +0 -0
  224. package/dist/public/assets/_Dhz04q_D.js.br +0 -0
  225. package/dist/public/assets/_Dj5rhxkK2.js.br +0 -0
  226. package/dist/public/assets/_Dk0TvYyB.js.br +0 -0
  227. package/dist/public/assets/_DkrY5R_L.js.br +0 -0
  228. package/dist/public/assets/_DktisilP.js.br +0 -0
  229. package/dist/public/assets/_Dla_sQtT.js.br +0 -0
  230. package/dist/public/assets/_DmhJqFxg.js.br +0 -0
  231. package/dist/public/assets/_DobhJicG2.js.br +0 -0
  232. package/dist/public/assets/_DsedTKoi2.js.br +0 -0
  233. package/dist/public/assets/_DvCKkq4p.js.br +0 -0
  234. package/dist/public/assets/_DwFgGl5j.js.br +0 -0
  235. package/dist/public/assets/_GAJYC2Mn.js.br +0 -0
  236. package/dist/public/assets/_Ig-G3Vb-2.js.br +0 -0
  237. package/dist/public/assets/_JJ2tpZIq2.js.br +0 -0
  238. package/dist/public/assets/_bAkDCn_T2.js.br +0 -0
  239. package/dist/public/assets/_dGG0GxLJ.js.br +0 -0
  240. package/dist/public/assets/_tyL67pnw.js.br +0 -0
  241. package/dist/public/assets/_zBoBE4zG2.js.br +0 -0
  242. package/dist/public/assets/app-page-BDcrPm2k.css +0 -1
  243. package/dist/public/assets/app-page-BDcrPm2k.css.br +0 -0
  244. package/dist/public/assets/diff-view-UombrS99.css +0 -1
  245. package/dist/public/assets/diff-view-UombrS99.css.br +0 -0
  246. package/dist/public/assets/new-CzSXygvC.js +0 -1
  247. package/dist/public/assets/settings-CzSXygvC.js +0 -1
  248. package/dist/public/assets/w-CzSXygvC.js +0 -1
  249. package/dist/public/assets/w._-CzSXygvC.js +0 -1
  250. package/dist/public/assets/w._-q-GIPDIo.js +0 -1
package/dist/index.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  import { a as __toCommonJS, i as __require, n as __esmMin, o as __toESM, r as __exportAll, t as __commonJSMin } from "./_BMI-E3GI.js";
2
- import { $ as get, A as subscribe, B as setPref, C as setScrapedPhase, D as pushPublicKey, E as deleteSubscription, F as disabledAgents, G as setupPath, H as doctor, I as enabledAgents, J as TOOLS, K as which, L as getSetting, M as subscriberJoins, N as agentChoices, O as saveSubscription, P as allPrefs, Q as db, R as preferredAgent, S as setAgentPhase, T as summaryFromHookPayload, U as ghKnownHosts, V as setSetting, W as miseVersions, X as toolById, Y as agentById, Z as all, _ as tmuxName, a as ensureTmuxServer, at as tmux, b as clearAgentPhase, c as killWorkspaceSessions, d as newSessionArgs, et as workspacePath, g as sessionStates, h as sendToSession, i as disposeSessions, it as run, j as subscriberCount, k as publish, l as listSessions, m as renameSession, n as clearTmuxStarted, nt as gh, o as getSession, ot as config, p as panePids, q as DEFAULT_GITHUB_HOST, r as createSession, rt as git, s as killSession, t as cleanEnv, tt as TMUX_SOCKET, u as markTmuxStarted, v as tmuxWasStarted, w as setSessionViewers, x as reasonFromHookPayload, y as reportsWorking, z as setDisabledAgents } from "./_Dp9_KYvx.js";
3
- import { $ as _hoist, A as tone, B as _attrs, C as btnSm, Ct as attrTag, D as inputLg, E as iconBtnXs, F as _attr_input_value, G as _dynamic_tag, H as _await, I as _attr_option_value, J as _el_resume, L as _attr_or, M as _attr, N as _attr_class, O as metaTrunc, Q as _for_of, R as _attr_select_value, S as btnLg, St as _var, T as iconBtnRow, Tt as writeScope, U as _content, V as _attrs_partial, W as _content_resume, X as _existing_scope, Y as _escape, Z as _flush_head, _ as sectionCount$1, _t as _subscribe, at as _resume, b as repoWebUrl$1, bt as _trailers, c as workspaceTab, ct as _scope_reason, d as icon_search_default, dt as _sep, et as _hoist_read_error, f as icon_back_default, ft as _serialize_guard, g as row, gt as _show_start, h as iconBtn$2, ht as _show_end, it as _peek_scope_id, j as $global, k as phase, lt as _scope_with_id, m as icon_base_default, mt as _set_serialize_reason, n as findInput, nt as _id, o as setWorkspaceTab, ot as _resume_branch, p as icon_refresh_default, pt as _serialize_if, q as _el_read_error, r as icon_sidebar_default, rt as _if, s as sideNavOpen, st as _scope_id, t as findIconBtn, tt as _html, u as rankRepos, ut as _script, v as toast_default, vt as _template, wt as withPageAssets, x as setPrimaryHost, xt as _try, y as repoLabel, yt as _to_text, z as _attr_style } from "./_CJOORMBO.js";
2
+ import { $ as get, A as subscribe, B as setPref, C as setScrapedPhase, D as pushPublicKey, E as deleteSubscription, F as disabledAgents, G as setupPath, H as doctor, I as enabledAgents, J as TOOLS, K as which, L as getSetting, M as subscriberJoins, N as agentChoices, O as saveSubscription, P as allPrefs, Q as db, R as preferredAgent, S as setAgentPhase, T as summaryFromHookPayload, U as ghKnownHosts, V as setSetting, W as miseVersions, X as toolById, Y as agentById, Z as all, _ as tmuxName, a as ensureTmuxServer, at as tmux, b as clearAgentPhase, c as killWorkspaceSessions, d as newSessionArgs, et as workspacePath, g as sessionStates, h as sendToSession, i as disposeSessions, it as run, j as subscriberCount, k as publish, l as listSessions, m as renameSession, n as clearTmuxStarted, nt as gh, o as getSession, ot as config, p as panePids, q as DEFAULT_GITHUB_HOST, r as createSession, rt as git, s as killSession, t as cleanEnv, tt as TMUX_SOCKET, u as markTmuxStarted, v as tmuxWasStarted, w as setSessionViewers, x as reasonFromHookPayload, y as reportsWorking, z as setDisabledAgents } from "./_mSrLyFdO.js";
3
+ import { $ as _flush_head, A as metaTrunc, B as _attr_select_value, C as setPrimaryHost, Ct as _try, D as iconBtnRow, Dt as writeScope, Et as withPageAssets, F as _attr_class, G as _content, H as _attrs, K as _content_resume, L as _attr_input_value, M as tone, N as $global, O as iconBtnXs, P as _attr, Q as _existing_scope, R as _attr_option_value, S as repoWebUrl$1, St as _trailers, T as btnSm, Tt as attrTag, U as _attrs_partial, V as _attr_style, W as _await, X as _el_resume, Y as _el_read_error, Z as _escape, _ as sectionCount$1, _t as _show_end, at as _if, b as icon_base_default, bt as _template, c as sideNavOpen, ct as _resume_branch, d as rankRepos, dt as _scope_with_id, et as _for_of, f as icon_search_default, ft as _script, g as row, gt as _set_serialize_reason, h as iconBtn$2, ht as _serialize_if, it as _id, j as phase, k as inputLg, l as workspaceTab, lt as _scope_id, m as icon_refresh_default, mt as _serialize_guard, n as findInput, nt as _hoist_read_error, ot as _peek_scope_id, p as icon_back_default, pt as _sep, q as _dynamic_tag, r as icon_sidebar_default, rt as _html, s as setWorkspaceTab, st as _resume, t as findIconBtn, tt as _hoist, ut as _scope_reason, v as toast_default, vt as _show_start, w as btnLg, wt as _var, x as repoLabel, xt as _to_text, y as icon_xmark_default, yt as _subscribe, z as _attr_or } from "./_B9UH2f9c.js";
4
4
  import fs from "node:fs";
5
5
  import { createServer } from "node:http";
6
6
  import path from "node:path";
@@ -12,7 +12,7 @@ import os from "node:os";
12
12
  import { spawn } from "node:child_process";
13
13
  import { DatabaseSync } from "node:sqlite";
14
14
  import fsp from "node:fs/promises";
15
- import crypto from "node:crypto";
15
+ import crypto, { createHash } from "node:crypto";
16
16
  import pty from "node-pty";
17
17
  //#region node_modules/.pnpm/@marko+run@0.11.9_@types+node@26.2.0_esbuild@0.27.7_marko@6.3.34/node_modules/@marko/run/dist/adapter/middleware.js
18
18
  function getOrigin(req, trustProxy) {
@@ -1851,6 +1851,7 @@ async function deleteWorkspace(id) {
1851
1851
  if (!ws) throw new Error(`unknown workspace: ${id}`);
1852
1852
  const sessions = listSessions(id);
1853
1853
  db.prepare("DELETE FROM workspaces WHERE id = ?").run(id);
1854
+ db.prepare("DELETE FROM settings WHERE key = ?").run(`review.seen:${id}`);
1854
1855
  notifyWorkspacesChanged();
1855
1856
  progress$1(`Stopping sessions and processes…`);
1856
1857
  await disposeSessions(sessions);
@@ -2169,9 +2170,11 @@ ${repos.map((r) => `- \`${r.worktree}/\`: ${r.full_name} (base: \`${r.base_branc
2169
2170
  - **Ask \`work\` for facts:** the \`work\` CLI answers from the same data as
2170
2171
  the app: \`work workspace\` (this workspace: repos, base branches, open PRs,
2171
2172
  sessions, running procs/ports), \`work repos\`, \`work procs\`,
2172
- \`work workspaces\`, \`work doctor\` (installed tools / agents / GitHub
2173
- sign-in), \`work usage\` (agent plan quotas). Add \`--json\` for machine
2174
- output. Prefer these over guessing from the filesystem or calling GitHub.
2173
+ \`work review\` (review comments the user left on the diff and has not
2174
+ sent yet, as markdown), \`work workspaces\`, \`work doctor\` (installed
2175
+ tools / agents / GitHub sign-in), \`work usage\` (agent plan quotas). Add
2176
+ \`--json\` for machine output. Prefer these over guessing from the
2177
+ filesystem or calling GitHub.
2175
2178
  `;
2176
2179
  fs.writeFileSync(path.join(dir, "AGENTS.md"), content);
2177
2180
  const claudeMd = path.join(dir, "CLAUDE.md");
@@ -3052,7 +3055,7 @@ var _middleware_default = Run.ALL((ctx, next) => {
3052
3055
  var mware3 = normalizeHandler(_middleware_default$3);
3053
3056
  var mware7 = normalizeHandler(_middleware_default$2);
3054
3057
  var mware11 = normalizeHandler(_middleware_default$1);
3055
- var mware34 = normalizeHandler(_middleware_default);
3058
+ var mware33 = normalizeHandler(_middleware_default);
3056
3059
  //#endregion
3057
3060
  //#region \0marko-link-assets.mjs
3058
3061
  var base = "/";
@@ -3188,26 +3191,26 @@ function agentFromCommand(command) {
3188
3191
  }
3189
3192
  //#endregion
3190
3193
  //#region src/tags/settings-page.css.ts
3191
- var content$2 = "_bU _bg _bh";
3192
- var agentGrid = "_bY _br";
3193
- var toolGrid = "_b8 _br";
3194
+ var content$2 = "_b3 _bh _bi";
3195
+ var agentGrid = "_b7 _bs";
3196
+ var toolGrid = "_cg _bs";
3194
3197
  //#endregion
3195
3198
  //#region src/tags/page-head.marko
3196
3199
  var page_head_default = _template("o", (input) => {
3197
3200
  const $scope0_reason = _scope_reason(), $sg__input_backHref__OR__input_onBack__OR__input_meta__OR__input_actions = _serialize_guard($scope0_reason, 3), $sg__input_meta = _serialize_guard($scope0_reason, 6), $sg__input_actions = _serialize_guard($scope0_reason, 7), $si__input_backHref__OR__input_onBack = _serialize_if($scope0_reason, 1), $si__input_meta = _serialize_if($scope0_reason, 6), $si__input_actions = _serialize_if($scope0_reason, 7);
3198
3201
  const $scope0_id = _scope_id();
3199
- _html(`<header${_attr_class("_bi")}>`);
3202
+ _html(`<header${_attr_class("_bj")}>`);
3200
3203
  _if(() => {
3201
3204
  if (input.backHref) {
3202
3205
  const $scope1_id = _scope_id();
3203
- _html(`<a${_attr("href", input.backHref)}${_attr_class([iconBtnRow, "_cg"])}${_attr_or("title", input.backTitle, " title=\"Back (Esc)\"")}${_attr_or("aria-label", input.backTitle, " aria-label=Back")}>`);
3206
+ _html(`<a${_attr("href", input.backHref)}${_attr_class([iconBtnRow, "_cp"])}${_attr_or("title", input.backTitle, " title=\"Back (Esc)\"")}${_attr_or("aria-label", input.backTitle, " aria-label=Back")}>`);
3204
3207
  icon_back_default({ size: 16 });
3205
3208
  _html(`</a>${_el_resume($scope1_id, "a", _serialize_guard($scope0_reason, 0))}`);
3206
3209
  _serialize_if($scope0_reason, 2) && writeScope($scope1_id, { _: _serialize_if($scope0_reason, 0) && _scope_with_id($scope0_id) });
3207
3210
  return 0;
3208
3211
  } else if (input.onBack) {
3209
3212
  const $scope2_id = _scope_id();
3210
- _html(`<button${_attr_class([iconBtnRow, "_cg"])}${_attr_or("title", input.backTitle, " title=\"Back (Esc)\"")}${_attr_or("aria-label", input.backTitle, " aria-label=Back")}>`);
3213
+ _html(`<button${_attr_class([iconBtnRow, "_cp"])}${_attr_or("title", input.backTitle, " title=\"Back (Esc)\"")}${_attr_or("aria-label", input.backTitle, " aria-label=Back")}>`);
3211
3214
  icon_back_default({ size: 16 });
3212
3215
  _html(`</button>${_el_resume($scope2_id, "a")}`);
3213
3216
  _script($scope2_id, "o0");
@@ -3215,11 +3218,11 @@ var page_head_default = _template("o", (input) => {
3215
3218
  return 1;
3216
3219
  }
3217
3220
  }, $scope0_id, "b", _serialize_guard($scope0_reason, 2), _serialize_guard($scope0_reason, 1), $sg__input_backHref__OR__input_onBack__OR__input_meta__OR__input_actions, 0, 1);
3218
- _html(`<div${_attr_class("_bk")}><h1${_attr("id", input.titleId)}${_attr_class("_bj")}>${_escape(input.title)}${_el_resume($scope0_id, "e", _serialize_guard($scope0_reason, 5))}</h1>${_el_resume($scope0_id, "d", _serialize_guard($scope0_reason, 4))}`);
3221
+ _html(`<div${_attr_class("_bl")}><h1${_attr("id", input.titleId)}${_attr_class("_bk")}>${_escape(input.title)}${_el_resume($scope0_id, "e", _serialize_guard($scope0_reason, 5))}</h1>${_el_resume($scope0_id, "d", _serialize_guard($scope0_reason, 4))}`);
3219
3222
  _if(() => {
3220
3223
  if (input.meta) {
3221
3224
  const $scope3_id = _scope_id();
3222
- _html(`<p${_attr_class("_bl")}>`);
3225
+ _html(`<p${_attr_class("_bm")}>`);
3223
3226
  _dynamic_tag($scope3_id, "b", input.meta, {}, 0, 0, $sg__input_meta);
3224
3227
  _html("</p>");
3225
3228
  $si__input_meta && writeScope($scope3_id, { _: _scope_with_id($scope0_id) });
@@ -3230,7 +3233,7 @@ var page_head_default = _template("o", (input) => {
3230
3233
  _if(() => {
3231
3234
  if (input.actions) {
3232
3235
  const $scope4_id = _scope_id();
3233
- _html(`<div${_attr_class("_bm")}>`);
3236
+ _html(`<div${_attr_class("_bn")}>`);
3234
3237
  _dynamic_tag($scope4_id, "b", input.actions, {}, 0, 0, $sg__input_actions);
3235
3238
  _html("</div>");
3236
3239
  $si__input_actions && writeScope($scope4_id, { _: _scope_with_id($scope0_id) });
@@ -3255,7 +3258,7 @@ var PATHS = {
3255
3258
  copilot: "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",
3256
3259
  cursor: "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"
3257
3260
  };
3258
- var icon_agent_default = _template("A", (input) => {
3261
+ var icon_agent_default = _template("B", (input) => {
3259
3262
  const $scope0_reason = _scope_reason(), $sg__input_agent = _serialize_guard($scope0_reason, 2), $sg__input_size__OR__input_class = _serialize_guard($scope0_reason, 0), $si__input_size__OR__input_class = _serialize_if($scope0_reason, 0), $si__input_size__OR__input_agent__OR__input_class = _serialize_if($scope0_reason, 1), $si__input_agent = _serialize_if($scope0_reason, 2);
3260
3263
  const $scope0_id = _scope_id();
3261
3264
  const $badge__closures = /* @__PURE__ */ new Set();
@@ -3305,7 +3308,7 @@ var icon_agent_default = _template("A", (input) => {
3305
3308
  n: $badge__closures
3306
3309
  });
3307
3310
  });
3308
- var usageNote = "_cx _P";
3311
+ var usageNote = "_cy _P";
3309
3312
  //#endregion
3310
3313
  //#region src/tags/usage-meters.marko
3311
3314
  function duration(ms) {
@@ -3325,15 +3328,15 @@ function resetLabel(iso, stale) {
3325
3328
  if (ms <= 0) return stale ? null : "now";
3326
3329
  return duration(ms);
3327
3330
  }
3328
- var usage_meters_default = _template("y", (input) => {
3331
+ var usage_meters_default = _template("z", (input) => {
3329
3332
  const $scope0_reason = _scope_reason(), $sg__input_agent__OR__input_hideName = _serialize_guard($scope0_reason, 0), $sg__input_agent = _serialize_guard($scope0_reason, 1), $si__input_agent = _serialize_if($scope0_reason, 1), $sg__input_hideName = _serialize_guard($scope0_reason, 2), $si__input_agent__OR__input_hideName = _serialize_if($scope0_reason, 0);
3330
3333
  const $scope0_id = _scope_id();
3331
3334
  const agent = input.agent;
3332
- _html(`<div${_attr_class(["_cr", { ["_cs"]: input.hideName }])}><div${_attr_class("_ct")}>`);
3335
+ _html(`<div${_attr_class(["_cs", { ["_ct"]: input.hideName }])}><div${_attr_class("_cu")}>`);
3333
3336
  _if(() => {
3334
3337
  if (!input.hideName) {
3335
3338
  const $scope1_id = _scope_id();
3336
- _html(`<strong${_attr_class("_cM")}>${_escape(agent.agent)}${_el_resume($scope1_id, "b", $sg__input_agent)}</strong>`);
3339
+ _html(`<strong${_attr_class("_cN")}>${_escape(agent.agent)}${_el_resume($scope1_id, "b", $sg__input_agent)}</strong>`);
3337
3340
  $si__input_agent__OR__input_hideName && writeScope($scope1_id, { _: $si__input_agent && _scope_with_id($scope0_id) });
3338
3341
  return 0;
3339
3342
  }
@@ -3341,7 +3344,7 @@ var usage_meters_default = _template("y", (input) => {
3341
3344
  _if(() => {
3342
3345
  if (agent.plan && agent.plan.toLowerCase() !== agent.agent.toLowerCase()) {
3343
3346
  const $scope2_id = _scope_id();
3344
- _html(`<span${_attr_class("_cu")}>${_escape(agent.plan.replace(/^default_/, "").replaceAll("_", " "))}${_el_resume($scope2_id, "b", $sg__input_agent)}</span>`);
3347
+ _html(`<span${_attr_class("_cv")}>${_escape(agent.plan.replace(/^default_/, "").replaceAll("_", " "))}${_el_resume($scope2_id, "b", $sg__input_agent)}</span>`);
3345
3348
  $si__input_agent && writeScope($scope2_id, { _: _scope_with_id($scope0_id) });
3346
3349
  return 0;
3347
3350
  }
@@ -3349,19 +3352,19 @@ var usage_meters_default = _template("y", (input) => {
3349
3352
  _if(() => {
3350
3353
  if (agent.stale_seconds != null) {
3351
3354
  const $scope3_id = _scope_id();
3352
- _html(`<span${_attr_class("_cv")}${_attr("title", `${agent.note || "provider unreachable"}. Last cached numbers, ${duration(agent.stale_seconds * 1e3)} old`)}>⚠ ${_sep($sg__input_agent)}${_escape(duration(agent.stale_seconds * 1e3))}${_el_resume($scope3_id, "b", $sg__input_agent)} old</span>${_el_resume($scope3_id, "a", $sg__input_agent)}`);
3355
+ _html(`<span${_attr_class("_cw")}${_attr("title", `${agent.note || "provider unreachable"}. Last cached numbers, ${duration(agent.stale_seconds * 1e3)} old`)}>⚠ ${_sep($sg__input_agent)}${_escape(duration(agent.stale_seconds * 1e3))}${_el_resume($scope3_id, "b", $sg__input_agent)} old</span>${_el_resume($scope3_id, "a", $sg__input_agent)}`);
3353
3356
  $si__input_agent && writeScope($scope3_id, { _: _scope_with_id($scope0_id) });
3354
3357
  return 0;
3355
3358
  }
3356
3359
  }, $scope0_id, "e", $sg__input_agent, $sg__input_agent, $sg__input_agent__OR__input_hideName, 0, 1);
3357
- _html(`</div><div${_attr_class(["_cw", { ["_cN"]: agent.stale_seconds != null }])}>`);
3360
+ _html(`</div><div${_attr_class(["_cx", { ["_cO"]: agent.stale_seconds != null }])}>`);
3358
3361
  _for_of(agent.windows || [], (win) => {
3359
3362
  const $scope4_id = _scope_id();
3360
3363
  const pct = pctText(win.used_percent);
3361
3364
  const label = resetLabel(win.resets_at, agent.stale_seconds != null);
3362
- const fillClass = win.used_percent >= 90 ? "_cF" : win.used_percent >= 70 ? "_cE" : win.used_percent >= 40 ? "_cD" : "_cC";
3363
- const pctClass = win.used_percent >= 90 ? "_cK" : win.used_percent >= 70 ? "_cJ" : win.used_percent >= 40 ? "_cI" : "_cH";
3364
- _html(`<div${_attr_class("_cy")}${_attr("title", `${win.window}: ${pct} used${win.resets_at ? `, resets ${new Date(win.resets_at).toLocaleString()}` : ""}`)}><span${_attr_class("_cz")}>${_escape(win.window)}${_el_resume($scope4_id, "c", $sg__input_agent)}</span><span${_attr_class("_cA")}><span${_attr_class(["_cB", fillClass])}${_attr_style(`width:${Math.min(100, Math.max(2, win.used_percent))}%`)}></span>${_el_resume($scope4_id, "e", $sg__input_agent)}</span><span${_attr_class(["_cG", pctClass])}>${_escape(pct)}${_el_resume($scope4_id, "g", $sg__input_agent)}</span>${_el_resume($scope4_id, "f", $sg__input_agent)}<span${_attr_class("_cL")}>${label ? `↻ ${_escape(`${_to_text(label)}`)}` : ""}${_el_resume($scope4_id, "i", $sg__input_agent)}</span></div>${_el_resume($scope4_id, "a", $sg__input_agent)}`);
3365
+ const fillClass = win.used_percent >= 90 ? "_cG" : win.used_percent >= 70 ? "_cF" : win.used_percent >= 40 ? "_cE" : "_cD";
3366
+ const pctClass = win.used_percent >= 90 ? "_cL" : win.used_percent >= 70 ? "_cK" : win.used_percent >= 40 ? "_cJ" : "_cI";
3367
+ _html(`<div${_attr_class("_cz")}${_attr("title", `${win.window}: ${pct} used${win.resets_at ? `, resets ${new Date(win.resets_at).toLocaleString()}` : ""}`)}><span${_attr_class("_cA")}>${_escape(win.window)}${_el_resume($scope4_id, "c", $sg__input_agent)}</span><span${_attr_class("_cB")}><span${_attr_class(["_cC", fillClass])}${_attr_style(`width:${Math.min(100, Math.max(2, win.used_percent))}%`)}></span>${_el_resume($scope4_id, "e", $sg__input_agent)}</span><span${_attr_class(["_cH", pctClass])}>${_escape(pct)}${_el_resume($scope4_id, "g", $sg__input_agent)}</span>${_el_resume($scope4_id, "f", $sg__input_agent)}<span${_attr_class("_cM")}>${label ? `↻ ${_escape(`${_to_text(label)}`)}` : ""}${_el_resume($scope4_id, "i", $sg__input_agent)}</span></div>${_el_resume($scope4_id, "a", $sg__input_agent)}`);
3365
3368
  $si__input_agent && writeScope($scope4_id, { _: _scope_with_id($scope0_id) });
3366
3369
  }, "window", $scope0_id, "g", $sg__input_agent, $sg__input_agent, $sg__input_agent, 0, 1);
3367
3370
  _if(() => {
@@ -3382,7 +3385,7 @@ var usage_meters_default = _template("y", (input) => {
3382
3385
  });
3383
3386
  //#endregion
3384
3387
  //#region src/tags/icons/icon-plus.marko
3385
- var icon_plus_default = _template("N", (input) => {
3388
+ var icon_plus_default = _template("O", (input) => {
3386
3389
  const $scope0_reason = _scope_reason(), $sg__input_size__OR__input_class = _serialize_guard($scope0_reason, 0);
3387
3390
  const $scope0_id = _scope_id();
3388
3391
  _set_serialize_reason({
@@ -3420,7 +3423,7 @@ var modal_view_default = _template("m", (input) => {
3420
3423
  const { label, class: inputClass, open: _open, openChange: _openChange, dismissable: _dismissable, content, footer, closedby: _closedby, onCancel: _onCancel, onClose: _onClose, "aria-label": inputAriaLabel, "aria-labelledby": inputLabelledBy, ...htmlInput } = input;
3421
3424
  const dismissable = input.dismissable !== false;
3422
3425
  let open = input.open;
3423
- _html(`<dialog${_attr_class(["_c1", inputClass])}${_attr("aria-labelledby", inputLabelledBy)}${inputLabelledBy ? _attr("aria-label", inputAriaLabel) : _attr("aria-label", inputAriaLabel || label)} closedby=${dismissable ? "any" : "none"}${_attrs_partial({
3426
+ _html(`<dialog${_attr_class(["_eE", inputClass])}${_attr("aria-labelledby", inputLabelledBy)}${inputLabelledBy ? _attr("aria-label", inputAriaLabel) : _attr("aria-label", inputAriaLabel || label)} closedby=${dismissable ? "any" : "none"}${_attrs_partial({
3424
3427
  ...htmlInput,
3425
3428
  open: null
3426
3429
  }, {
@@ -3430,20 +3433,20 @@ var modal_view_default = _template("m", (input) => {
3430
3433
  closedby: 1,
3431
3434
  "on-cancel": 1,
3432
3435
  "on-close": 1
3433
- }, "a", $scope0_id, "dialog")}><div${_attr_class("_c2")}>`);
3436
+ }, "a", $scope0_id, "dialog")}><div${_attr_class("_eF")}>`);
3434
3437
  _dynamic_tag($scope0_id, "c", content, {}, 0, 0, _serialize_guard($scope0_reason, 6));
3435
3438
  _html("</div>");
3436
3439
  _if(() => {
3437
3440
  if (footer) {
3438
3441
  const $scope1_id = _scope_id();
3439
- _html(`<form method=dialog${_attr_class("_c3")}>`);
3442
+ _html(`<form method=dialog${_attr_class("_eG")}>`);
3440
3443
  _dynamic_tag($scope1_id, "b", footer.content, {}, 0, 0, _serialize_guard($scope0_reason, 7));
3441
3444
  _html("</form>");
3442
3445
  $si__input_openChange__OR__input_footer && writeScope($scope1_id, { _: _serialize_if($scope0_reason, 7) && _scope_with_id($scope0_id) });
3443
3446
  return 0;
3444
3447
  } else if (input.openChange) {
3445
3448
  const $scope2_id = _scope_id();
3446
- _html(`<form method=dialog${_attr_class("_c3")}>`);
3449
+ _html(`<form method=dialog${_attr_class("_eG")}>`);
3447
3450
  dialog_close_default({
3448
3451
  class: ["_l", "_m"],
3449
3452
  content: _content("m0", () => {
@@ -3502,7 +3505,7 @@ var prompt_dialog_default = _template("p", (input) => {
3502
3505
  const $childScope = _peek_scope_id();
3503
3506
  modal_view_default({
3504
3507
  label: input.label,
3505
- class: "_cp",
3508
+ class: "_cq",
3506
3509
  open: input.open,
3507
3510
  openChange: input.openChange,
3508
3511
  "aria-labelledby": titleId,
@@ -3525,7 +3528,7 @@ var prompt_dialog_default = _template("p", (input) => {
3525
3528
  content: _content("p6", () => {
3526
3529
  _scope_reason();
3527
3530
  const $scope2_id = _scope_id();
3528
- _html(`<h2${_attr_class("_cq")}${_attr("id", titleId)}>${_escape(input.label)}${_el_resume($scope2_id, "b", $sg__input_label)}</h2><input${_attr_input_value($scope2_id, "c", value, _resume((_new_value) => {
3531
+ _html(`<h2${_attr_class("_cr")}${_attr("id", titleId)}>${_escape(input.label)}${_el_resume($scope2_id, "b", $sg__input_label)}</h2><input${_attr_input_value($scope2_id, "c", value, _resume((_new_value) => {
3529
3532
  value = _new_value;
3530
3533
  }, "p0", $scope2_id))}${_attr("placeholder", input.placeholder)}>${_el_resume($scope2_id, "c")}`);
3531
3534
  _script($scope2_id, "p4");
@@ -3565,7 +3568,7 @@ function familyOf(usageAgent, families) {
3565
3568
  }
3566
3569
  var lastSetup = null;
3567
3570
  var lastUsage = null;
3568
- var settings_page_default = _template("r", (input) => {
3571
+ var settings_page_default = _template("s", (input) => {
3569
3572
  const $scope0_reason = _scope_reason(), $sg__input_backHref__OR__input_onExit = _serialize_guard($scope0_reason, 0), $sg__input_agents = _serialize_guard($scope0_reason, 3), $si__input_preferred = _serialize_if($scope0_reason, 1);
3570
3573
  const $scope0_id = _scope_id();
3571
3574
  const $setup_missing__closures = /* @__PURE__ */ new Set();
@@ -3599,21 +3602,21 @@ var settings_page_default = _template("r", (input) => {
3599
3602
  lastSetup = s;
3600
3603
  setPrimaryHost(s.github);
3601
3604
  input.setupChange?.(s);
3602
- }, "r3", $scope0_id);
3605
+ }, "s3", $scope0_id);
3603
3606
  const syncAgents = _resume(async () => {
3604
3607
  try {
3605
3608
  const snap = await api$6("/api/settings");
3606
3609
  input.agentsChange?.(snap.agents);
3607
3610
  if (snap.preferredAgent !== input.preferred) input.preferredChange?.(snap.preferredAgent);
3608
3611
  } catch {}
3609
- }, "r4", $scope0_id);
3612
+ }, "s4", $scope0_id);
3610
3613
  const loadSetup = _resume(async (refresh) => {
3611
3614
  try {
3612
3615
  applySetup(await api$6(`/api/setup${refresh ? "?refresh" : ""}`));
3613
3616
  } catch (err) {
3614
3617
  error = String(err.message || err);
3615
3618
  }
3616
- }, "r5", $scope0_id);
3619
+ }, "s5", $scope0_id);
3617
3620
  const loadUsage = _resume(async (refresh) => {
3618
3621
  try {
3619
3622
  usage = await api$6(`/api/usage${refresh ? "?refresh" : ""}`);
@@ -3621,23 +3624,23 @@ var settings_page_default = _template("r", (input) => {
3621
3624
  usage = { error: String(err.message || err) };
3622
3625
  }
3623
3626
  lastUsage = usage;
3624
- }, "r6", $scope0_id);
3627
+ }, "s6", $scope0_id);
3625
3628
  const refresh = _resume(async () => {
3626
3629
  refreshing = true;
3627
3630
  await loadSetup(true);
3628
3631
  refreshing = false;
3629
- }, "r7", $scope0_id);
3632
+ }, "s7", $scope0_id);
3630
3633
  const refreshUsage = _resume(async () => {
3631
3634
  usageRefreshing = true;
3632
3635
  await loadUsage(true);
3633
3636
  usageRefreshing = false;
3634
- }, "r8", $scope0_id);
3637
+ }, "s8", $scope0_id);
3635
3638
  const setActive = _resume((id, line) => {
3636
3639
  const next = new Map(active);
3637
3640
  if (line === null) next.delete(id);
3638
3641
  else next.set(id, line);
3639
3642
  active = next;
3640
- }, "r9", $scope0_id);
3643
+ }, "s9", $scope0_id);
3641
3644
  const run = _resume(async (id, action, version) => {
3642
3645
  if (active.has(id)) return;
3643
3646
  error = null;
@@ -3668,7 +3671,7 @@ var settings_page_default = _template("r", (input) => {
3668
3671
  watcher.stop();
3669
3672
  setActive(id, null);
3670
3673
  }
3671
- }, "r10", $scope0_id);
3674
+ }, "s10", $scope0_id);
3672
3675
  const changeHost = _resume(async (host, remove) => {
3673
3676
  hostBusy = true;
3674
3677
  error = null;
@@ -3687,10 +3690,10 @@ var settings_page_default = _template("r", (input) => {
3687
3690
  } finally {
3688
3691
  hostBusy = false;
3689
3692
  }
3690
- }, "r11", $scope0_id);
3693
+ }, "s11", $scope0_id);
3691
3694
  const runEach = _resume(async (ids, action) => {
3692
3695
  for (const id of ids) await run(id, action);
3693
- }, "r12", $scope0_id);
3696
+ }, "s12", $scope0_id);
3694
3697
  const setPreferred = _resume(async (agent) => {
3695
3698
  input.preferredChange?.(agent);
3696
3699
  try {
@@ -3702,7 +3705,7 @@ var settings_page_default = _template("r", (input) => {
3702
3705
  } catch (err) {
3703
3706
  error = String(err.message || err);
3704
3707
  }
3705
- }, "r13", $scope0_id);
3708
+ }, "s13", $scope0_id);
3706
3709
  const setEnabled = _resume(async (id, on) => {
3707
3710
  if (!setup) return;
3708
3711
  const off = new Set(setup.agents.flatMap((f) => f.instances.filter((i) => !i.enabled).map((i) => i.id)));
@@ -3729,7 +3732,7 @@ var settings_page_default = _template("r", (input) => {
3729
3732
  } catch (err) {
3730
3733
  error = String(err.message || err);
3731
3734
  }
3732
- }, "r14", $scope0_id);
3735
+ }, "s14", $scope0_id);
3733
3736
  const search = _resume((q) => {
3734
3737
  query = q;
3735
3738
  clearTimeout(searchTimer.id);
@@ -3749,22 +3752,22 @@ var settings_page_default = _template("r", (input) => {
3749
3752
  if (query === q) searching = false;
3750
3753
  }
3751
3754
  }, 250);
3752
- }, "r0", $scope0_id);
3753
- const outdated = _resume((t) => !!(t.installed && t.latest && t.latest !== t.version), "r15");
3755
+ }, "s0", $scope0_id);
3756
+ const outdated = _resume((t) => !!(t.installed && t.latest && t.latest !== t.version), "s15");
3754
3757
  const tools = setup?.tools || [];
3755
3758
  const missingInstallable = tools.filter((t) => t.recommended && !t.installed && t.installable);
3756
3759
  const missingCount = tools.filter((t) => t.recommended && !t.installed).length;
3757
3760
  const outdatedIds = tools.filter(outdated).map((t) => t.id);
3758
3761
  const families = setup?.agents || [];
3759
3762
  const instanceIds = new Set(families.flatMap((f) => f.instances.map((i) => i.id)));
3760
- const accountsFor = _resume((id) => (usage?.agents || []).filter((u) => u.agent === id), "r16", $scope0_id);
3761
- const strayAccountsFor = _resume((f) => (usage?.agents || []).filter((u) => !instanceIds.has(u.agent) && familyOf(u.agent, families) === f.id), "r17", $scope0_id);
3763
+ const accountsFor = _resume((id) => (usage?.agents || []).filter((u) => u.agent === id), "s16", $scope0_id);
3764
+ const strayAccountsFor = _resume((f) => (usage?.agents || []).filter((u) => !instanceIds.has(u.agent) && familyOf(u.agent, families) === f.id), "s17", $scope0_id);
3762
3765
  const otherUsage = (usage?.agents || []).filter((u) => familyOf(u.agent, families) === null);
3763
3766
  const titleId = _id();
3764
3767
  const agentsId = _id();
3765
3768
  const githubId = _id();
3766
3769
  const machineId = _id();
3767
- _html(`<div${_attr_class("_be")} role=region${_attr("aria-labelledby", titleId)}><div${_attr_class("_bf")}><div${_attr_class(content$2)}>`);
3770
+ _html(`<div${_attr_class("_bf")} role=region${_attr("aria-labelledby", titleId)}><div${_attr_class("_bg")}><div${_attr_class(content$2)}>`);
3768
3771
  _set_serialize_reason({
3769
3772
  0: _serialize_guard($scope0_reason, 2),
3770
3773
  1: $sg__input_backHref__OR__input_onExit,
@@ -3776,8 +3779,8 @@ var settings_page_default = _template("r", (input) => {
3776
3779
  title: "Settings",
3777
3780
  titleId,
3778
3781
  backHref: input.backHref,
3779
- onBack: input.onExit && _resume(() => input.onExit?.(), "r18", $scope0_id),
3780
- meta: attrTag({ content: _content_resume("r23", () => {
3782
+ onBack: input.onExit && _resume(() => input.onExit?.(), "s18", $scope0_id),
3783
+ meta: attrTag({ content: _content_resume("s23", () => {
3781
3784
  _scope_reason();
3782
3785
  const $scope4_id = _scope_id();
3783
3786
  _if(() => {
@@ -3788,12 +3791,12 @@ var settings_page_default = _template("r", (input) => {
3788
3791
  return 0;
3789
3792
  } else if (setup.ready) {
3790
3793
  const $scope43_id = _scope_id();
3791
- _html(`<span${_attr_class("_bW")}>Ready</span>. Tools, GitHub, and an agent are all in place.`);
3794
+ _html(`<span${_attr_class("_b5")}>Ready</span>. Tools, GitHub, and an agent are all in place.`);
3792
3795
  writeScope($scope43_id, {});
3793
3796
  return 1;
3794
3797
  } else {
3795
3798
  const $scope5_id = _scope_id();
3796
- _html(`<span${_attr_class("_bX")}>Not ready</span>. Missing <!>${_escape(setup.missing.map((m) => MISSING_LABEL[m] || m).join(", "))}${_el_resume($scope5_id, "b")}.`);
3799
+ _html(`<span${_attr_class("_b6")}>Not ready</span>. Missing <!>${_escape(setup.missing.map((m) => MISSING_LABEL[m] || m).join(", "))}${_el_resume($scope5_id, "b")}.`);
3797
3800
  _subscribe($setup_missing__closures, writeScope($scope5_id, {}));
3798
3801
  return 2;
3799
3802
  }
@@ -3801,7 +3804,7 @@ var settings_page_default = _template("r", (input) => {
3801
3804
  _subscribe($setup2__closures, writeScope($scope4_id, { _: _scope_with_id($scope0_id) }));
3802
3805
  _resume_branch($scope4_id);
3803
3806
  }, $scope0_id) }),
3804
- actions: attrTag({ content: _content_resume("r24", () => {
3807
+ actions: attrTag({ content: _content_resume("s24", () => {
3805
3808
  _scope_reason();
3806
3809
  const $scope9_id = _scope_id();
3807
3810
  _html(`<button${_attr_class(iconBtnRow)} title="Re-check this machine" aria-label="Re-check this machine"${_attr("disabled", refreshing)}>`);
@@ -3812,7 +3815,7 @@ var settings_page_default = _template("r", (input) => {
3812
3815
  class: refreshing && "_B"
3813
3816
  });
3814
3817
  _html(`</button>${_el_resume($scope9_id, "a")}`);
3815
- _script($scope9_id, "r22");
3818
+ _script($scope9_id, "s22");
3816
3819
  _subscribe($refreshing__closures, writeScope($scope9_id, {
3817
3820
  _: _scope_with_id($scope0_id),
3818
3821
  b: _existing_scope($childScope)
@@ -3827,8 +3830,8 @@ var settings_page_default = _template("r", (input) => {
3827
3830
  placement: "inline",
3828
3831
  onDismiss: _resume(function() {
3829
3832
  error = null;
3830
- }, "r19", $scope7_id),
3831
- content: _content_resume("r25", () => {
3833
+ }, "s19", $scope7_id),
3834
+ content: _content_resume("s25", () => {
3832
3835
  _scope_reason();
3833
3836
  const $scope8_id = _scope_id();
3834
3837
  _html(`${_escape(error)}${_el_resume($scope8_id, "a")}`);
@@ -3840,11 +3843,11 @@ var settings_page_default = _template("r", (input) => {
3840
3843
  return 0;
3841
3844
  }
3842
3845
  }, $scope0_id, "e", 1, 1, 1, 0, 1);
3843
- _html(`<section${_attr_class("_bo")}${_attr("aria-labelledby", agentsId)}><div${_attr_class("_bp")}><h2${_attr("id", agentsId)}${_attr_class("_bD")}>Agents</h2><div${_attr_class("_v")}></div><label${_attr_class("_b0")}><span${_attr_class("_P")}>Default</span><span${_attr_class("_j")}>`);
3846
+ _html(`<section${_attr_class("_bp")}${_attr("aria-labelledby", agentsId)}><div${_attr_class("_bq")}><h2${_attr("id", agentsId)}${_attr_class("_bE")}>Agents</h2><div${_attr_class("_v")}></div><label${_attr_class("_b9")}><span${_attr_class("_P")}>Default</span><span${_attr_class("_j")}>`);
3844
3847
  _attr_select_value($scope0_id, "m", input.preferred, _resume(function(v) {
3845
3848
  setPreferred(v);
3846
- }, "r1", $scope0_id), () => {
3847
- _html(`<select${_attr_class(["_k", "_b1"])} aria-label="Default agent (starts when a workspace has no session yet)" title="Starts when a workspace has no session yet">`);
3849
+ }, "s1", $scope0_id), () => {
3850
+ _html(`<select${_attr_class(["_k", "_b_"])} aria-label="Default agent (starts when a workspace has no session yet)" title="Starts when a workspace has no session yet">`);
3848
3851
  _for_of(input.agents.filter((a) => a !== "shell"), (id) => {
3849
3852
  const $scope44_id = _scope_id();
3850
3853
  _html(`<option${_attr_option_value(id)}>${_escape(agentLabel(id))}${_el_resume($scope44_id, "b", $sg__input_agents)}</option>${_el_resume($scope44_id, "a", $sg__input_agents)}`);
@@ -3865,14 +3868,14 @@ var settings_page_default = _template("r", (input) => {
3865
3868
  const rows = lone ? [] : a.instances;
3866
3869
  const loneAccounts = lone && lone.enabled ? accountsFor(lone.id) : [];
3867
3870
  const extraAccounts = a.installed ? strayAccountsFor(a) : [];
3868
- _html(`<li${_attr_class(["_bt", "_bZ"])}><div${_attr_class(["_b2", { ["_b5"]: lone && !lone.enabled }])}>`);
3871
+ _html(`<li${_attr_class(["_bu", "_b8"])}><div${_attr_class(["_ca", { ["_cd"]: lone && !lone.enabled }])}>`);
3869
3872
  _set_serialize_reason(12);
3870
3873
  const $childScope4 = _peek_scope_id();
3871
3874
  icon_agent_default({
3872
3875
  agent: a.id,
3873
3876
  size: 18
3874
3877
  });
3875
- _html(`<div${_attr_class("_bu")}><span${_attr_class("_bw")}><span${_attr_class("_bv")}>${_escape(a.label)}${_el_resume($scope1_id, "g")}</span>`);
3878
+ _html(`<div${_attr_class("_bv")}><span${_attr_class("_bx")}><span${_attr_class("_bw")}>${_escape(a.label)}${_el_resume($scope1_id, "g")}</span>`);
3876
3879
  _if(() => {
3877
3880
  if (lone && input.preferred === lone.id) {
3878
3881
  const $scope45_id = _scope_id();
@@ -3885,12 +3888,12 @@ var settings_page_default = _template("r", (input) => {
3885
3888
  _if(() => {
3886
3889
  if (active.has(a.id)) {
3887
3890
  const $scope10_id = _scope_id();
3888
- _html(`<span${_attr_class("_bV")}><span${_attr_class("_C")}></span><!>${_escape(active.get(a.id) || "Starting…")}${_el_resume($scope10_id, "c")}</span>`);
3891
+ _html(`<span${_attr_class("_b4")}><span${_attr_class("_C")}></span><!>${_escape(active.get(a.id) || "Starting…")}${_el_resume($scope10_id, "c")}</span>`);
3889
3892
  _subscribe($active__closures, writeScope($scope10_id, {}));
3890
3893
  return 0;
3891
3894
  } else if (!a.installed) {
3892
3895
  const $scope46_id = _scope_id();
3893
- _html(`<span${_attr_class("_bx")}>Not installed</span>`);
3896
+ _html(`<span${_attr_class("_by")}>Not installed</span>`);
3894
3897
  writeScope($scope46_id, {});
3895
3898
  return 1;
3896
3899
  }
@@ -3900,7 +3903,7 @@ var settings_page_default = _template("r", (input) => {
3900
3903
  if (!a.installed && !active.has(a.id)) {
3901
3904
  const $scope35_id = _scope_id();
3902
3905
  _html(`<button${_attr_class(btnSm)}>Install</button>${_el_resume($scope35_id, "a")}`);
3903
- _script($scope35_id, "r26");
3906
+ _script($scope35_id, "s26");
3904
3907
  writeScope($scope35_id, {});
3905
3908
  return 0;
3906
3909
  }
@@ -3913,7 +3916,7 @@ var settings_page_default = _template("r", (input) => {
3913
3916
  "_H",
3914
3917
  { [tone.ok]: lone.enabled }
3915
3918
  ])} role=switch aria-checked=${lone.enabled ? "true" : "false"} title=${lone.enabled ? "\"Shown in session pickers. Hide it\"" : "\"Hidden from session pickers. Show it\""}>${lone.enabled ? "on" : "off"}${_el_resume($scope39_id, "b")}</button>${_el_resume($scope39_id, "a")}`);
3916
- _script($scope39_id, "r27");
3919
+ _script($scope39_id, "s27");
3917
3920
  writeScope($scope39_id, {});
3918
3921
  return 0;
3919
3922
  }
@@ -3922,18 +3925,18 @@ var settings_page_default = _template("r", (input) => {
3922
3925
  _if(() => {
3923
3926
  if (rows.length || loneAccounts.length || extraAccounts.length) {
3924
3927
  const $scope2_id = _scope_id();
3925
- _html(`<ul${_attr_class("_b7")}>`);
3928
+ _html(`<ul${_attr_class("_cf")}>`);
3926
3929
  _for_of(rows, (inst) => {
3927
3930
  const $scope3_id = _scope_id();
3928
3931
  const accounts = inst.enabled ? accountsFor(inst.id) : [];
3929
- _html(`<li${_attr_class("_b3")}><div${_attr_class(["_b4", { ["_b5"]: !inst.enabled }])}>`);
3932
+ _html(`<li${_attr_class("_cb")}><div${_attr_class(["_cc", { ["_cd"]: !inst.enabled }])}>`);
3930
3933
  _set_serialize_reason(12);
3931
3934
  const $childScope5 = _peek_scope_id();
3932
3935
  icon_agent_default({
3933
3936
  agent: inst.id,
3934
3937
  size: 15
3935
3938
  });
3936
- _html(`<span${_attr_class(["_b6", "_u"])}>${_escape(inst.command)}${_el_resume($scope3_id, "e")}</span>`);
3939
+ _html(`<span${_attr_class(["_ce", "_u"])}>${_escape(inst.command)}${_el_resume($scope3_id, "e")}</span>`);
3937
3940
  _if(() => {
3938
3941
  if (input.preferred === inst.id) {
3939
3942
  const $scope47_id = _scope_id();
@@ -3958,7 +3961,7 @@ var settings_page_default = _template("r", (input) => {
3958
3961
  writeScope($scope48_id, { a: _existing_scope($childScope6) });
3959
3962
  }, (u) => `${u.agent}-${u.account || ""}`, $scope3_id, "j", 1, 1, 1, 0, 1);
3960
3963
  _html("</li>");
3961
- _script($scope3_id, "r28");
3964
+ _script($scope3_id, "s28");
3962
3965
  _subscribe($accountsFor2__closures, _subscribe($si__input_preferred && $input_preferred__closures, writeScope($scope3_id, {
3963
3966
  m: inst?.enabled,
3964
3967
  n: inst?.id,
@@ -4008,7 +4011,7 @@ var settings_page_default = _template("r", (input) => {
4008
4011
  }, "id", $scope0_id, "q", 1, 1, 1, 0, 1);
4009
4012
  _for_of(otherUsage, (u) => {
4010
4013
  const $scope51_id = _scope_id();
4011
- _html(`<li${_attr_class(["_bt", "_bZ"])}>`);
4014
+ _html(`<li${_attr_class(["_bu", "_b8"])}>`);
4012
4015
  _set_serialize_reason(6);
4013
4016
  const $childScope9 = _peek_scope_id();
4014
4017
  usage_meters_default({ agent: u });
@@ -4019,21 +4022,21 @@ var settings_page_default = _template("r", (input) => {
4019
4022
  _if(() => {
4020
4023
  if (!usage && families.length) {
4021
4024
  const $scope52_id = _scope_id();
4022
- _html(`<p${_attr_class("_bz")}><span${_attr_class("_C")}></span> Loading usage…</p>`);
4025
+ _html(`<p${_attr_class("_bA")}><span${_attr_class("_C")}></span> Loading usage…</p>`);
4023
4026
  writeScope($scope52_id, {});
4024
4027
  return 0;
4025
4028
  } else if (usage?.error) {
4026
4029
  const $scope6_id = _scope_id();
4027
- _html(`<p${_attr_class("_bz")}>${_escape(usage.error)}${_el_resume($scope6_id, "b")}</p>`);
4030
+ _html(`<p${_attr_class("_bA")}>${_escape(usage.error)}${_el_resume($scope6_id, "b")}</p>`);
4028
4031
  writeScope($scope6_id, {});
4029
4032
  return 1;
4030
4033
  }
4031
4034
  }, $scope0_id, "s", 1, 1, 1, 0, 1);
4032
- _html(`</section><section${_attr_class("_bo")}${_attr("aria-labelledby", githubId)}><div${_attr_class("_bp")}><h2${_attr("id", githubId)}${_attr_class("_bD")}>GitHub</h2></div><ul${_attr_class("_br")}>`);
4035
+ _html(`</section><section${_attr_class("_bp")}${_attr("aria-labelledby", githubId)}><div${_attr_class("_bq")}><h2${_attr("id", githubId)}${_attr_class("_bE")}>GitHub</h2></div><ul${_attr_class("_bs")}>`);
4033
4036
  _for_of(setup?.github || [], (h) => {
4034
4037
  const $scope11_id = _scope_id();
4035
4038
  const $for_content3__h_host__closures = /* @__PURE__ */ new Set();
4036
- _html(`<li${_attr_class("_bt")}><div${_attr_class("_bu")}><span${_attr_class("_bw")}><span${_attr_class(["_bv", "_u"])}>${_escape(h.host)}${_el_resume($scope11_id, "e")}</span>`);
4039
+ _html(`<li${_attr_class("_bu")}><div${_attr_class("_bv")}><span${_attr_class("_bx")}><span${_attr_class(["_bw", "_u"])}>${_escape(h.host)}${_el_resume($scope11_id, "e")}</span>`);
4037
4040
  _if(() => {
4038
4041
  if (h.isEnterprise) {
4039
4042
  const $scope55_id = _scope_id();
@@ -4046,22 +4049,22 @@ var settings_page_default = _template("r", (input) => {
4046
4049
  _if(() => {
4047
4050
  if (active.has(h.host) && authCodes.has(h.host)) {
4048
4051
  const $scope22_id = _scope_id();
4049
- _html(`<span${_attr_class("_bV")}><span${_attr_class("_C")}></span> Enter code <strong${_attr_class("_ce")}>${_escape(authCodes.get(h.host))}${_el_resume($scope22_id, "d")}</strong> at <a${_attr("href", `https://${h.host}/login/device`)} target=_blank rel=noopener${_attr_class("_cf")}>${_escape(h.host)}${_el_resume($scope22_id, "f")}/login/device</a>${_el_resume($scope22_id, "e")}</span>`);
4052
+ _html(`<span${_attr_class("_b4")}><span${_attr_class("_C")}></span> Enter code <strong${_attr_class("_cn")}>${_escape(authCodes.get(h.host))}${_el_resume($scope22_id, "d")}</strong> at <a${_attr("href", `https://${h.host}/login/device`)} target=_blank rel=noopener${_attr_class("_co")}>${_escape(h.host)}${_el_resume($scope22_id, "f")}/login/device</a>${_el_resume($scope22_id, "e")}</span>`);
4050
4053
  _subscribe($authCodes__closures, writeScope($scope22_id, {}));
4051
4054
  return 0;
4052
4055
  } else if (active.has(h.host)) {
4053
4056
  const $scope12_id = _scope_id();
4054
- _html(`<span${_attr_class("_bV")}><span${_attr_class("_C")}></span><!>${_escape(active.get(h.host) || "Starting…")}${_el_resume($scope12_id, "c")}</span>`);
4057
+ _html(`<span${_attr_class("_b4")}><span${_attr_class("_C")}></span><!>${_escape(active.get(h.host) || "Starting…")}${_el_resume($scope12_id, "c")}</span>`);
4055
4058
  _subscribe($active__closures, writeScope($scope12_id, { Cck: 1 }));
4056
4059
  return 1;
4057
4060
  } else if (h.authed) {
4058
4061
  const $scope53_id = _scope_id();
4059
- _html(`<span${_attr_class("_bx")}>Signed in<!>${h.user ? ` as ${_escape(`${_to_text(h.user)}`)}` : ""}${_el_resume($scope53_id, "b")}</span>`);
4062
+ _html(`<span${_attr_class("_by")}>Signed in<!>${h.user ? ` as ${_escape(`${_to_text(h.user)}`)}` : ""}${_el_resume($scope53_id, "b")}</span>`);
4060
4063
  writeScope($scope53_id, {});
4061
4064
  return 2;
4062
4065
  } else {
4063
4066
  const $scope54_id = _scope_id();
4064
- _html(`<span${_attr_class("_bx")}>${_escape(h.error || "Not signed in")}${_el_resume($scope54_id, "b")}</span>`);
4067
+ _html(`<span${_attr_class("_by")}>${_escape(h.error || "Not signed in")}${_el_resume($scope54_id, "b")}</span>`);
4065
4068
  writeScope($scope54_id, {});
4066
4069
  return 3;
4067
4070
  }
@@ -4074,7 +4077,7 @@ var settings_page_default = _template("r", (input) => {
4074
4077
  if (!h.authed) {
4075
4078
  const $scope36_id = _scope_id();
4076
4079
  _html(`<button${_attr_class(btnSm)}>Sign in</button>${_el_resume($scope36_id, "a")}`);
4077
- _script($scope36_id, "r29");
4080
+ _script($scope36_id, "s29");
4078
4081
  writeScope($scope36_id, {});
4079
4082
  return 0;
4080
4083
  } else {
@@ -4083,7 +4086,7 @@ var settings_page_default = _template("r", (input) => {
4083
4086
  ["_o"]: confirmingRemove === `out:${h.host}`,
4084
4087
  ["_n"]: confirmingRemove === `out:${h.host}`
4085
4088
  }])}${confirmingRemove === `out:${h.host}` ? _attr("title", `Sign out of ${h.host}?`) : _attr("title", `Sign out of ${h.host}`)}>${confirmingRemove === `out:${h.host}` ? "Sign out?" : "Sign out"}${_el_resume($scope24_id, "b")}</button>${_el_resume($scope24_id, "a")}`);
4086
- _script($scope24_id, "r30");
4089
+ _script($scope24_id, "s30");
4087
4090
  _subscribe($for_content3__h_host__closures, _subscribe($confirmingRemove__closures, writeScope($scope24_id, {})));
4088
4091
  return 1;
4089
4092
  }
@@ -4092,11 +4095,25 @@ var settings_page_default = _template("r", (input) => {
4092
4095
  if (h.isEnterprise) {
4093
4096
  const $scope25_id = _scope_id();
4094
4097
  _html(`<button${_attr_class([
4095
- "_by",
4098
+ "_bz",
4096
4099
  "_Z",
4100
+ "_0",
4097
4101
  { ["_n"]: confirmingRemove === h.host }
4098
- ])}${confirmingRemove === h.host ? _attr("title", `Forget ${h.host}? (gh stays signed in)`) : _attr("title", `Forget ${h.host}`)}>${confirmingRemove === h.host ? "Forget?" : "×"}${_el_resume($scope25_id, "b")}</button>${_el_resume($scope25_id, "a")}`);
4099
- _script($scope25_id, "r31");
4102
+ ])}${confirmingRemove === h.host ? _attr("title", `Forget ${h.host}? (gh stays signed in)`) : _attr("title", `Forget ${h.host}`)}>`);
4103
+ _if(() => {
4104
+ if (confirmingRemove === h.host) {
4105
+ const $scope56_id = _scope_id();
4106
+ _html("Forget?");
4107
+ writeScope($scope56_id, {});
4108
+ return 0;
4109
+ } else {
4110
+ const $scope57_id = _scope_id();
4111
+ icon_xmark_default({ size: 13 });
4112
+ writeScope($scope57_id, {});
4113
+ return 1;
4114
+ }
4115
+ }, $scope25_id, "a", 1, 1, 1, "</button>");
4116
+ _script($scope25_id, "s31");
4100
4117
  _subscribe($for_content3__h_host__closures, _subscribe($confirmingRemove__closures, writeScope($scope25_id, {
4101
4118
  Ccn: 1,
4102
4119
  Cr: 1
@@ -4120,29 +4137,29 @@ var settings_page_default = _template("r", (input) => {
4120
4137
  }, "host", $scope0_id, "w", 1, 1, 1, "</ul>", 1);
4121
4138
  _if(() => {
4122
4139
  if (setup && !setup.github.length) {
4123
- const $scope56_id = _scope_id();
4124
- _html(`<p${_attr_class("_bz")}>Install the GitHub CLI below to sign in.</p>`);
4125
- writeScope($scope56_id, {});
4140
+ const $scope58_id = _scope_id();
4141
+ _html(`<p${_attr_class("_bA")}>Install the GitHub CLI below to sign in.</p>`);
4142
+ writeScope($scope58_id, {});
4126
4143
  return 0;
4127
4144
  }
4128
4145
  }, $scope0_id, "x", 1, 1, 1, 0, 1);
4129
4146
  _if(() => {
4130
4147
  if (setup) {
4131
4148
  const $scope33_id = _scope_id();
4132
- _html(`<form${_attr_class("_cd")}><label${_attr_class("_T")}>`);
4149
+ _html(`<form${_attr_class("_cm")}><label${_attr_class("_T")}>`);
4133
4150
  icon_plus_default({
4134
4151
  size: 14,
4135
4152
  class: "_U"
4136
4153
  });
4137
4154
  _html(`<input${_attr_input_value($scope33_id, "d", hostInput, _resume((_new_hostInput) => {
4138
4155
  hostInput = _new_hostInput;
4139
- }, "r2", $scope33_id))}${_attr_class([inputLg, "_V"])} type=text placeholder="Add a GitHub Enterprise host, e.g. github.example.com" aria-label="GitHub Enterprise host" autocomplete=off spellcheck=false>${_el_resume($scope33_id, "d")}</label><button${_attr_class(btnSm)} type=submit${_attr("disabled", !hostInput.trim() || hostBusy)}>${hostBusy ? "Adding…" : "Add host"}${_el_resume($scope33_id, "f")}</button>${_el_resume($scope33_id, "e")}</form>${_el_resume($scope33_id, "a")}`);
4140
- _script($scope33_id, "r32");
4156
+ }, "s2", $scope33_id))}${_attr_class([inputLg, "_V"])} type=text placeholder="Add a GitHub Enterprise host, e.g. github.example.com" aria-label="GitHub Enterprise host" autocomplete=off spellcheck=false>${_el_resume($scope33_id, "d")}</label><button${_attr_class(btnSm)} type=submit${_attr("disabled", !hostInput.trim() || hostBusy)}>${hostBusy ? "Adding…" : "Add host"}${_el_resume($scope33_id, "f")}</button>${_el_resume($scope33_id, "e")}</form>${_el_resume($scope33_id, "a")}`);
4157
+ _script($scope33_id, "s32");
4141
4158
  writeScope($scope33_id, {});
4142
4159
  return 0;
4143
4160
  }
4144
4161
  }, $scope0_id, "y", 1, 1, 1, 0, 1);
4145
- _html(`</section><section${_attr_class("_bo")}${_attr("aria-labelledby", machineId)}><div${_attr_class("_bp")}><h2${_attr("id", machineId)}${_attr_class("_bD")}>Machine</h2>`);
4162
+ _html(`</section><section${_attr_class("_bp")}${_attr("aria-labelledby", machineId)}><div${_attr_class("_bq")}><h2${_attr("id", machineId)}${_attr_class("_bE")}>Machine</h2>`);
4146
4163
  _if(() => {
4147
4164
  if (missingCount) {
4148
4165
  const $scope40_id = _scope_id();
@@ -4164,7 +4181,7 @@ var settings_page_default = _template("r", (input) => {
4164
4181
  if (outdatedIds.length > 1) {
4165
4182
  const $scope13_id = _scope_id();
4166
4183
  _html(`<button${_attr_class(btnSm)}${_attr("disabled", active.size > 0)}>Update all</button>${_el_resume($scope13_id, "a")}`);
4167
- _script($scope13_id, "r33");
4184
+ _script($scope13_id, "s33");
4168
4185
  writeScope($scope13_id, {});
4169
4186
  return 0;
4170
4187
  }
@@ -4173,7 +4190,7 @@ var settings_page_default = _template("r", (input) => {
4173
4190
  if (missingInstallable.length > 1) {
4174
4191
  const $scope14_id = _scope_id();
4175
4192
  _html(`<button${_attr_class(btnSm)}${_attr("disabled", active.size > 0)}>Install missing</button>${_el_resume($scope14_id, "a")}`);
4176
- _script($scope14_id, "r34");
4193
+ _script($scope14_id, "s34");
4177
4194
  writeScope($scope14_id, {});
4178
4195
  return 0;
4179
4196
  }
@@ -4182,8 +4199,8 @@ var settings_page_default = _template("r", (input) => {
4182
4199
  _if(() => {
4183
4200
  if (setup && !setup.mise.installed) {
4184
4201
  const $scope15_id = _scope_id();
4185
- _html(`<p${_attr_class("_bz")}>mise is not installed. It provides every tool below. <button${_attr_class(btnSm)}${_attr("disabled", active.has("mise"))}>${active.has("mise") ? "Installing…" : "Install mise"}${_el_resume($scope15_id, "c")}</button>${_el_resume($scope15_id, "b")}</p>`);
4186
- _script($scope15_id, "r35");
4202
+ _html(`<p${_attr_class("_bA")}>mise is not installed. It provides every tool below. <button${_attr_class(btnSm)}${_attr("disabled", active.has("mise"))}>${active.has("mise") ? "Installing…" : "Install mise"}${_el_resume($scope15_id, "c")}</button>${_el_resume($scope15_id, "b")}</p>`);
4203
+ _script($scope15_id, "s35");
4187
4204
  writeScope($scope15_id, {});
4188
4205
  return 0;
4189
4206
  }
@@ -4196,11 +4213,11 @@ var settings_page_default = _template("r", (input) => {
4196
4213
  const $for_content4__t_path__closures = /* @__PURE__ */ new Set();
4197
4214
  const $for_content4__t_latest__closures = /* @__PURE__ */ new Set();
4198
4215
  const $for_content4__t_id__closures = /* @__PURE__ */ new Set();
4199
- _html(`<li${_attr_class([row, { ["_b9"]: !t.installed }])}><span${_attr_class(["_b_", "_u"])}>${_escape(t.label)}${_el_resume($scope16_id, "c")}</span>`);
4216
+ _html(`<li${_attr_class([row, { ["_ch"]: !t.installed }])}><span${_attr_class(["_ci", "_u"])}>${_escape(t.label)}${_el_resume($scope16_id, "c")}</span>`);
4200
4217
  _if(() => {
4201
4218
  if (active.has(t.id)) {
4202
4219
  const $scope17_id = _scope_id();
4203
- _html(`<span${_attr_class("_bV")}><span${_attr_class("_C")}></span><!>${_escape(active.get(t.id) || "Starting…")}${_el_resume($scope17_id, "c")}</span>`);
4220
+ _html(`<span${_attr_class("_b4")}><span${_attr_class("_C")}></span><!>${_escape(active.get(t.id) || "Starting…")}${_el_resume($scope17_id, "c")}</span>`);
4204
4221
  _subscribe($active__closures, writeScope($scope17_id, { Cck: 2 }));
4205
4222
  return 0;
4206
4223
  } else if (t.installed) {
@@ -4208,22 +4225,22 @@ var settings_page_default = _template("r", (input) => {
4208
4225
  _if(() => {
4209
4226
  if (t.version) {
4210
4227
  const $scope30_id = _scope_id();
4211
- _html(`<button${_attr_class(["_ca", "_u"])}${_attr("title", `${t.path || t.label}. Pin a version`)}>v<!>${_escape(t.version)}${_el_resume($scope30_id, "b")}</button>${_el_resume($scope30_id, "a")}`);
4212
- _script($scope30_id, "r36");
4228
+ _html(`<button${_attr_class(["_cj", "_u"])}${_attr("title", `${t.path || t.label}. Pin a version`)}>v<!>${_escape(t.version)}${_el_resume($scope30_id, "b")}</button>${_el_resume($scope30_id, "a")}`);
4229
+ _script($scope30_id, "s36");
4213
4230
  _subscribe($for_content4__t_path__closures, _subscribe($for_content4__t_version__closures, _subscribe($for_content4__t_label__closures, writeScope($scope30_id, { Cu: 1 }))));
4214
4231
  return 0;
4215
4232
  } else {
4216
- const $scope57_id = _scope_id();
4217
- _html(`<span${_attr_class([metaTrunc, "_u"])}${_attr("title", t.path)}>${_escape(t.path)}${_el_resume($scope57_id, "b")}</span>${_el_resume($scope57_id, "a")}`);
4218
- _subscribe($for_content4__t_path__closures, writeScope($scope57_id, { Cx: 1 }));
4233
+ const $scope59_id = _scope_id();
4234
+ _html(`<span${_attr_class([metaTrunc, "_u"])}${_attr("title", t.path)}>${_escape(t.path)}${_el_resume($scope59_id, "b")}</span>${_el_resume($scope59_id, "a")}`);
4235
+ _subscribe($for_content4__t_path__closures, writeScope($scope59_id, { Cx: 1 }));
4219
4236
  return 1;
4220
4237
  }
4221
4238
  }, $scope29_id, "a", 1, 1, 1, 0, 1);
4222
4239
  _if(() => {
4223
4240
  if (outdated(t)) {
4224
4241
  const $scope37_id = _scope_id();
4225
- _html(`<button${_attr_class([btnSm, "_cb"])}${_attr("title", `Update to v${t.latest}`)}>↑ <!>${_escape(t.latest)}${_el_resume($scope37_id, "b")}</button>${_el_resume($scope37_id, "a")}`);
4226
- _script($scope37_id, "r37");
4242
+ _html(`<button${_attr_class([btnSm, "_ck"])}${_attr("title", `Update to v${t.latest}`)}>↑ <!>${_escape(t.latest)}${_el_resume($scope37_id, "b")}</button>${_el_resume($scope37_id, "a")}`);
4243
+ _script($scope37_id, "s37");
4227
4244
  _subscribe($for_content4__t_latest__closures, writeScope($scope37_id, {}));
4228
4245
  return 0;
4229
4246
  }
@@ -4231,14 +4248,14 @@ var settings_page_default = _template("r", (input) => {
4231
4248
  writeScope($scope29_id, {});
4232
4249
  return 1;
4233
4250
  } else if (t.installable) {
4234
- const $scope58_id = _scope_id();
4251
+ const $scope60_id = _scope_id();
4235
4252
  _html(`<span${_attr_class(metaTrunc)}>not installed</span>`);
4236
- writeScope($scope58_id, {});
4253
+ writeScope($scope60_id, {});
4237
4254
  return 2;
4238
4255
  } else {
4239
- const $scope59_id = _scope_id();
4256
+ const $scope61_id = _scope_id();
4240
4257
  _html(`<span${_attr_class(metaTrunc)} title="Installed with the system package manager">system package</span>`);
4241
- writeScope($scope59_id, {});
4258
+ writeScope($scope61_id, {});
4242
4259
  return 3;
4243
4260
  }
4244
4261
  }, $scope16_id, "d");
@@ -4248,9 +4265,9 @@ var settings_page_default = _template("r", (input) => {
4248
4265
  const $scope26_id = _scope_id();
4249
4266
  _if(() => {
4250
4267
  if (t.required) {
4251
- const $scope60_id = _scope_id();
4268
+ const $scope62_id = _scope_id();
4252
4269
  _html(`<span${_attr_class("_F")}>required</span>`);
4253
- writeScope($scope60_id, {});
4270
+ writeScope($scope62_id, {});
4254
4271
  return 0;
4255
4272
  }
4256
4273
  }, $scope26_id, "a", 1, 1, 1, 0, 1);
@@ -4258,7 +4275,7 @@ var settings_page_default = _template("r", (input) => {
4258
4275
  if (!t.installed && t.installable) {
4259
4276
  const $scope38_id = _scope_id();
4260
4277
  _html(`<button${_attr_class(btnSm)}>Install</button>${_el_resume($scope38_id, "a")}`);
4261
- _script($scope38_id, "r38");
4278
+ _script($scope38_id, "s38");
4262
4279
  writeScope($scope38_id, {});
4263
4280
  return 0;
4264
4281
  } else if (t.installed && t.version && !t.required) {
@@ -4266,9 +4283,23 @@ var settings_page_default = _template("r", (input) => {
4266
4283
  _html(`<button${_attr_class([
4267
4284
  iconBtnXs,
4268
4285
  "_Z",
4286
+ "_0",
4269
4287
  { ["_n"]: confirmingRemove === t.id }
4270
- ])}${confirmingRemove === t.id ? _attr("title", `Remove ${t.label}?`) : _attr("title", `Remove ${t.label}`)}>${confirmingRemove === t.id ? "Remove?" : "×"}${_el_resume($scope27_id, "b")}</button>${_el_resume($scope27_id, "a")}`);
4271
- _script($scope27_id, "r39");
4288
+ ])}${confirmingRemove === t.id ? _attr("title", `Remove ${t.label}?`) : _attr("title", `Remove ${t.label}`)}>`);
4289
+ _if(() => {
4290
+ if (confirmingRemove === t.id) {
4291
+ const $scope63_id = _scope_id();
4292
+ _html("Remove?");
4293
+ writeScope($scope63_id, {});
4294
+ return 0;
4295
+ } else {
4296
+ const $scope64_id = _scope_id();
4297
+ icon_xmark_default({ size: 13 });
4298
+ writeScope($scope64_id, {});
4299
+ return 1;
4300
+ }
4301
+ }, $scope27_id, "a", 1, 1, 1, "</button>");
4302
+ _script($scope27_id, "s39");
4272
4303
  _subscribe($for_content4__t_id__closures, _subscribe($for_content4__t_label__closures, _subscribe($confirmingRemove__closures, writeScope($scope27_id, { Ccn: 2 }))));
4273
4304
  return 1;
4274
4305
  }
@@ -4307,20 +4338,20 @@ var settings_page_default = _template("r", (input) => {
4307
4338
  _if(() => {
4308
4339
  if (hits && hits.length) {
4309
4340
  const $scope19_id = _scope_id();
4310
- _html(`<ul${_attr_class([toolGrid, "_cc"])}>`);
4341
+ _html(`<ul${_attr_class([toolGrid, "_cl"])}>`);
4311
4342
  _for_of(hits, (h) => {
4312
4343
  const $scope20_id = _scope_id();
4313
- _html(`<li${_attr_class(row)}><div${_attr_class("_bu")}><span${_attr_class(["_b_", "_u"])}>${_escape(h.name)}${_el_resume($scope20_id, "d")}</span>`);
4344
+ _html(`<li${_attr_class(row)}><div${_attr_class("_bv")}><span${_attr_class(["_ci", "_u"])}>${_escape(h.name)}${_el_resume($scope20_id, "d")}</span>`);
4314
4345
  _if(() => {
4315
4346
  if (active.has(h.name)) {
4316
4347
  const $scope21_id = _scope_id();
4317
- _html(`<span${_attr_class("_bV")}><span${_attr_class("_C")}></span><!>${_escape(active.get(h.name) || "Starting…")}${_el_resume($scope21_id, "c")}</span>`);
4348
+ _html(`<span${_attr_class("_b4")}><span${_attr_class("_C")}></span><!>${_escape(active.get(h.name) || "Starting…")}${_el_resume($scope21_id, "c")}</span>`);
4318
4349
  _subscribe($active__closures, writeScope($scope21_id, { Cck: 4 }));
4319
4350
  return 0;
4320
4351
  } else if (h.description) {
4321
- const $scope61_id = _scope_id();
4322
- _html(`<span${_attr_class("_bx")}${_attr("title", h.description)}>${_escape(h.description)}${_el_resume($scope61_id, "b")}</span>${_el_resume($scope61_id, "a")}`);
4323
- writeScope($scope61_id, {});
4352
+ const $scope65_id = _scope_id();
4353
+ _html(`<span${_attr_class("_by")}${_attr("title", h.description)}>${_escape(h.description)}${_el_resume($scope65_id, "b")}</span>${_el_resume($scope65_id, "a")}`);
4354
+ writeScope($scope65_id, {});
4324
4355
  return 1;
4325
4356
  }
4326
4357
  }, $scope20_id, "e", 1, 1, 1, 0, 1);
@@ -4330,14 +4361,14 @@ var settings_page_default = _template("r", (input) => {
4330
4361
  const $scope31_id = _scope_id();
4331
4362
  _if(() => {
4332
4363
  if (h.installed) {
4333
- const $scope62_id = _scope_id();
4364
+ const $scope66_id = _scope_id();
4334
4365
  _html(`<span${_attr_class("_F")}>installed</span>`);
4335
- writeScope($scope62_id, {});
4366
+ writeScope($scope66_id, {});
4336
4367
  return 0;
4337
4368
  } else {
4338
4369
  const $scope32_id = _scope_id();
4339
4370
  _html(`<button${_attr_class(btnSm)}>Install</button>${_el_resume($scope32_id, "a")}<button${_attr_class(btnSm)} title="Install a specific version">@…</button>${_el_resume($scope32_id, "b")}`);
4340
- _script($scope32_id, "r40");
4371
+ _script($scope32_id, "s40");
4341
4372
  writeScope($scope32_id, {});
4342
4373
  return 1;
4343
4374
  }
@@ -4358,13 +4389,13 @@ var settings_page_default = _template("r", (input) => {
4358
4389
  return 0;
4359
4390
  } else if (hits && !searching) {
4360
4391
  const $scope34_id = _scope_id();
4361
- _html(`<p${_attr_class("_bz")}>No tools match "<!>${_escape(query)}${_el_resume($scope34_id, "b")}".</p>`);
4392
+ _html(`<p${_attr_class("_bA")}>No tools match "<!>${_escape(query)}${_el_resume($scope34_id, "b")}".</p>`);
4362
4393
  _subscribe($query__closures, writeScope($scope34_id, {}));
4363
4394
  return 1;
4364
4395
  }
4365
4396
  }, $scope18_id, "d", 1, 1, 1, 0, 1);
4366
4397
  _html("</div>");
4367
- _script($scope18_id, "r41");
4398
+ _script($scope18_id, "s41");
4368
4399
  writeScope($scope18_id, {});
4369
4400
  return 0;
4370
4401
  }
@@ -4383,19 +4414,19 @@ var settings_page_default = _template("r", (input) => {
4383
4414
  open: versionPick != null,
4384
4415
  openChange: _resume(function(o) {
4385
4416
  if (!o) versionPick = null;
4386
- }, "r20", $scope28_id),
4417
+ }, "s20", $scope28_id),
4387
4418
  onSubmit: _resume(function(v) {
4388
4419
  const pick = versionPick;
4389
4420
  versionPick = null;
4390
4421
  run(pick.id, "install", v);
4391
- }, "r21", $scope28_id)
4422
+ }, "s21", $scope28_id)
4392
4423
  });
4393
4424
  writeScope($scope28_id, { a: _existing_scope($childScope10) });
4394
4425
  return 0;
4395
4426
  }
4396
4427
  }, $scope0_id, "aa", 1, 1, 1, 0, 1);
4397
- _script($scope0_id, "r42");
4398
- _script($scope0_id, "r43");
4428
+ _script($scope0_id, "s42");
4429
+ _script($scope0_id, "s43");
4399
4430
  writeScope($scope0_id, {
4400
4431
  ae: input.setupChange,
4401
4432
  af: input.agentsChange,
@@ -4464,14 +4495,14 @@ var settings_page_default = _template("r", (input) => {
4464
4495
  });
4465
4496
  //#endregion
4466
4497
  //#region src/tags/new-workspace.css.ts
4467
- var content$1 = "_bE _bg";
4468
- var section$1 = "_bI _bo";
4469
- var curBase = "_bM _Q _P";
4470
- var archived = "_bQ _bo";
4471
- var archivedHint = "_bR _P";
4472
- var archivedCard = "_bS _bt";
4473
- var resultBranch = "_cU _W _g";
4474
- var branchInput = "_cZ _S _R";
4498
+ var content$1 = "_bF _bh";
4499
+ var section$1 = "_bJ _bp";
4500
+ var curBase = "_bN _Q _P";
4501
+ var archived = "_bR _bp";
4502
+ var archivedHint = "_bS _P";
4503
+ var archivedCard = "_bT _bu";
4504
+ var resultBranch = "_cV _W _g";
4505
+ var branchInput = "_c0 _S _R";
4475
4506
  //#endregion
4476
4507
  //#region src/tags/repo-picker.marko
4477
4508
  var api$5;
@@ -4521,7 +4552,7 @@ var repo_picker_default = _template("q", (input) => {
4521
4552
  input.onError?.(String(err.message || err));
4522
4553
  }
4523
4554
  }, "q5", $scope0_id);
4524
- _html(`<div${_attr_class("_cO")}><label${_attr_class("_T")}>`);
4555
+ _html(`<div${_attr_class("_cP")}><label${_attr_class("_T")}>`);
4525
4556
  icon_search_default({
4526
4557
  size: 14,
4527
4558
  class: "_U"
@@ -4533,7 +4564,7 @@ var repo_picker_default = _template("q", (input) => {
4533
4564
  _if(() => {
4534
4565
  if (filter && !catalog) {
4535
4566
  const $scope8_id = _scope_id();
4536
- _html(`<p${_attr_class("_bz")}>Loading repos…</p>`);
4567
+ _html(`<p${_attr_class("_bA")}>Loading repos…</p>`);
4537
4568
  writeScope($scope8_id, {});
4538
4569
  return 0;
4539
4570
  }
@@ -4541,23 +4572,23 @@ var repo_picker_default = _template("q", (input) => {
4541
4572
  _if(() => {
4542
4573
  if (results.length) {
4543
4574
  const $scope2_id = _scope_id();
4544
- _html(`<ul${_attr_class("_cP")}>`);
4575
+ _html(`<ul${_attr_class("_cQ")}>`);
4545
4576
  _for_of(results, (repo, i) => {
4546
4577
  const $scope3_id = _scope_id();
4547
- _html(`<li><div${_attr_class(["_cR", { ["_cQ"]: i === highlight }])}><button${_attr_class("_cS")}>`);
4578
+ _html(`<li><div${_attr_class(["_cS", { ["_cR"]: i === highlight }])}><button${_attr_class("_cT")}>`);
4548
4579
  icon_plus_default({
4549
4580
  size: 12,
4550
- class: "_cX"
4581
+ class: "_cY"
4551
4582
  });
4552
- _html(`<span${_attr_class("_cY")}>${_escape(repoLabel(repo.nameWithOwner))}${_el_resume($scope3_id, "e")}</span></button>${_el_resume($scope3_id, "b")}<button${_attr_class([resultBranch, { ["_cT"]: branchesFor === repo.nameWithOwner }])}${_attr("title", `Pick a base branch for ${repo.nameWithOwner}`)}${_attr("aria-label", `Pick a base branch for ${repo.nameWithOwner}`)}>⎇</button>${_el_resume($scope3_id, "f")}</div>${_el_resume($scope3_id, "a")}`);
4583
+ _html(`<span${_attr_class("_cZ")}>${_escape(repoLabel(repo.nameWithOwner))}${_el_resume($scope3_id, "e")}</span></button>${_el_resume($scope3_id, "b")}<button${_attr_class([resultBranch, { ["_cU"]: branchesFor === repo.nameWithOwner }])}${_attr("title", `Pick a base branch for ${repo.nameWithOwner}`)}${_attr("aria-label", `Pick a base branch for ${repo.nameWithOwner}`)}>⎇</button>${_el_resume($scope3_id, "f")}</div>${_el_resume($scope3_id, "a")}`);
4553
4584
  _if(() => {
4554
4585
  if (branchesFor === repo.nameWithOwner) {
4555
4586
  const $scope4_id = _scope_id();
4556
- _html(`<div${_attr_class("_cV")}>`);
4587
+ _html(`<div${_attr_class("_cW")}>`);
4557
4588
  _if(() => {
4558
4589
  if (!branches) {
4559
4590
  const $scope9_id = _scope_id();
4560
- _html(`<p${_attr_class("_bz")}><span${_attr_class("_C")}></span> Loading branches…</p>`);
4591
+ _html(`<p${_attr_class("_bA")}><span${_attr_class("_C")}></span> Loading branches…</p>`);
4561
4592
  writeScope($scope9_id, {});
4562
4593
  return 0;
4563
4594
  } else {
@@ -4574,17 +4605,17 @@ var repo_picker_default = _template("q", (input) => {
4574
4605
  }
4575
4606
  }, $scope5_id, "a", 1, 1, 1, 0, 1);
4576
4607
  const shown = (branchFilter ? branches.filter((b) => b.toLowerCase().includes(branchFilter.toLowerCase())) : branches).slice(0, 12);
4577
- _html(`<ul${_attr_class("_cW")}>`);
4608
+ _html(`<ul${_attr_class("_cX")}>`);
4578
4609
  _for_of(shown, (branch) => {
4579
4610
  const $scope7_id = _scope_id();
4580
- _html(`<li><button${_attr_class(["_cS", "_c0"])}><span${_attr_class(["_cY", "_u"])}>${_escape(branch)}${_el_resume($scope7_id, "c")}</span></button>${_el_resume($scope7_id, "a")}</li>`);
4611
+ _html(`<li><button${_attr_class(["_cT", "_c1"])}><span${_attr_class(["_cZ", "_u"])}>${_escape(branch)}${_el_resume($scope7_id, "c")}</span></button>${_el_resume($scope7_id, "a")}</li>`);
4581
4612
  _script($scope7_id, "q7");
4582
4613
  writeScope($scope7_id, { e: branch });
4583
4614
  }, (b) => b, $scope5_id, "c", 1, 1, 1, 0, 1);
4584
4615
  _if(() => {
4585
4616
  if (!shown.length) {
4586
4617
  const $scope10_id = _scope_id();
4587
- _html(`<li><p${_attr_class("_bz")}>No branches match.</p></li>`);
4618
+ _html(`<li><p${_attr_class("_bA")}>No branches match.</p></li>`);
4588
4619
  writeScope($scope10_id, {});
4589
4620
  return 0;
4590
4621
  }
@@ -4609,7 +4640,7 @@ var repo_picker_default = _template("q", (input) => {
4609
4640
  return 0;
4610
4641
  } else if (filter && catalog) {
4611
4642
  const $scope1_id = _scope_id();
4612
- _html(`<p${_attr_class("_bz")}>No repos match "<!>${_escape(filter)}${_el_resume($scope1_id, "b")}".</p>`);
4643
+ _html(`<p${_attr_class("_bA")}>No repos match "<!>${_escape(filter)}${_el_resume($scope1_id, "b")}".</p>`);
4613
4644
  writeScope($scope1_id, {});
4614
4645
  return 1;
4615
4646
  }
@@ -4727,7 +4758,7 @@ var new_workspace_default = _template("n", (input) => {
4727
4758
  }
4728
4759
  }, "n4", $scope0_id);
4729
4760
  const titleId = _id();
4730
- _html(`<div${_attr_class("_be")} role=region${_attr("aria-labelledby", titleId)}><div${_attr_class("_bf")}><div${_attr_class(content$1)}>`);
4761
+ _html(`<div${_attr_class("_bf")} role=region${_attr("aria-labelledby", titleId)}><div${_attr_class("_bg")}><div${_attr_class(content$1)}>`);
4731
4762
  _set_serialize_reason({
4732
4763
  0: _serialize_guard($scope0_reason, 2),
4733
4764
  1: $sg__input_backHref__OR__input_onExit,
@@ -4766,19 +4797,19 @@ var new_workspace_default = _template("n", (input) => {
4766
4797
  return 0;
4767
4798
  }
4768
4799
  }, $scope0_id, "e", 1, 1, 1, 0, 1);
4769
- _html(`<label${_attr_class("_bH")}><span${_attr_class("_bD")}>Name</span><input${_attr_input_value($scope0_id, "h", name, _resume((_new_name) => {
4800
+ _html(`<label${_attr_class("_bI")}><span${_attr_class("_bE")}>Name</span><input${_attr_input_value($scope0_id, "h", name, _resume((_new_name) => {
4770
4801
  name = _new_name;
4771
- }, "n0", $scope0_id))}${_attr_class(inputLg)} placeholder=my-feature${_attr("disabled", busy)} autofocus>${_el_resume($scope0_id, "h")}</label><section${_attr_class(section$1)}><div${_attr_class("_bJ")}><h2${_attr_class("_bD")}>Repos</h2><button${_attr_class(iconBtnRow)} title="Refresh repo list" aria-label="Refresh repo list"${_attr("disabled", catalogRefreshing)}>`);
4802
+ }, "n0", $scope0_id))}${_attr_class(inputLg)} placeholder=my-feature${_attr("disabled", busy)} autofocus>${_el_resume($scope0_id, "h")}</label><section${_attr_class(section$1)}><div${_attr_class("_bK")}><h2${_attr_class("_bE")}>Repos</h2><button${_attr_class(iconBtnRow)} title="Refresh repo list" aria-label="Refresh repo list"${_attr("disabled", catalogRefreshing)}>`);
4772
4803
  _set_serialize_reason(1);
4773
4804
  const $childScope2 = _peek_scope_id();
4774
4805
  icon_refresh_default({
4775
4806
  size: 14,
4776
4807
  class: catalogRefreshing && "_B"
4777
4808
  });
4778
- _html(`</button>${_el_resume($scope0_id, "l")}</div><ul${_attr_class("_bK")}>`);
4809
+ _html(`</button>${_el_resume($scope0_id, "l")}</div><ul${_attr_class("_bL")}>`);
4779
4810
  _for_of(selected, (repo) => {
4780
4811
  const $scope2_id = _scope_id();
4781
- _html(`<li${_attr_class(row)}><span${_attr_class("_bL")}>${_escape(repoLabel(repo.fullName))}${_el_resume($scope2_id, "c")}</span>`);
4812
+ _html(`<li${_attr_class(row)}><span${_attr_class("_bM")}>${_escape(repoLabel(repo.fullName))}${_el_resume($scope2_id, "c")}</span>`);
4782
4813
  _if(() => {
4783
4814
  if (repo.baseBranch) {
4784
4815
  const $scope10_id = _scope_id();
@@ -4787,17 +4818,19 @@ var new_workspace_default = _template("n", (input) => {
4787
4818
  return 0;
4788
4819
  }
4789
4820
  }, $scope2_id, "d", 1, 1, 1, 0, 1);
4790
- _html(`<button${_attr_class([iconBtnXs, "_Z"])}${_attr("title", `Remove ${repo.fullName}`)}${_attr("disabled", busy)}>×</button>${_el_resume($scope2_id, "e")}</li>`);
4821
+ _html(`<button${_attr_class([iconBtnXs, "_Z"])}${_attr("title", `Remove ${repo.fullName}`)}${_attr("disabled", busy)}>`);
4822
+ icon_xmark_default({ size: 12 });
4823
+ _html(`</button>${_el_resume($scope2_id, "e")}</li>`);
4791
4824
  _script($scope2_id, "n12");
4792
4825
  writeScope($scope2_id, {
4793
- h: repo?.fullName,
4794
- i: repo?.baseBranch
4826
+ i: repo?.fullName,
4827
+ j: repo?.baseBranch
4795
4828
  });
4796
4829
  }, "fullName", $scope0_id, "o", 1, 1, 1, 0, 1);
4797
4830
  _if(() => {
4798
4831
  if (!selected.length) {
4799
4832
  const $scope11_id = _scope_id();
4800
- _html(`<li${_attr_class("_bz")}>No repos yet. Search below to add one, or create it empty.</li>`);
4833
+ _html(`<li${_attr_class("_bA")}>No repos yet. Search below to add one, or create it empty.</li>`);
4801
4834
  writeScope($scope11_id, {});
4802
4835
  return 0;
4803
4836
  }
@@ -4822,10 +4855,10 @@ var new_workspace_default = _template("n", (input) => {
4822
4855
  _if(() => {
4823
4856
  if (busy && steps$1.length) {
4824
4857
  const $scope7_id = _scope_id();
4825
- _html(`<ul${_attr_class("_bN")}>`);
4858
+ _html(`<ul${_attr_class("_bO")}>`);
4826
4859
  _for_of(steps$1, (step$1, i) => {
4827
4860
  const $scope8_id = _scope_id();
4828
- _html(`<li${_attr_class(["_bT", { ["_bO"]: i === steps$1.length - 1 }])}>`);
4861
+ _html(`<li${_attr_class(["_bU", { ["_bP"]: i === steps$1.length - 1 }])}>`);
4829
4862
  _if(() => {
4830
4863
  if (i === steps$1.length - 1) {
4831
4864
  const $scope12_id = _scope_id();
@@ -4834,7 +4867,7 @@ var new_workspace_default = _template("n", (input) => {
4834
4867
  return 0;
4835
4868
  } else {
4836
4869
  const $scope13_id = _scope_id();
4837
- _html(`<span${_attr_class("_bP")}>✓</span>`);
4870
+ _html(`<span${_attr_class("_bQ")}>✓</span>`);
4838
4871
  writeScope($scope13_id, {});
4839
4872
  return 1;
4840
4873
  }
@@ -4846,7 +4879,7 @@ var new_workspace_default = _template("n", (input) => {
4846
4879
  return 0;
4847
4880
  }
4848
4881
  }, $scope0_id, "s", 1, 1, 1, 0, 1);
4849
- _html(`<div${_attr_class("_bF")}>`);
4882
+ _html(`<div${_attr_class("_bG")}>`);
4850
4883
  _if(() => {
4851
4884
  if (input.onExit || busy) {
4852
4885
  const $scope1_id = _scope_id();
@@ -4859,15 +4892,15 @@ var new_workspace_default = _template("n", (input) => {
4859
4892
  _html(`<button type=button${_attr_class([
4860
4893
  btnLg,
4861
4894
  "_m",
4862
- "_bG"
4895
+ "_bH"
4863
4896
  ])}${_attr("disabled", busy || !!restoring || !name.trim())}>${busy ? "Creating…" : "Create workspace"}${_el_resume($scope0_id, "w")}</button>${_el_resume($scope0_id, "v")}</div>`);
4864
4897
  _if(() => {
4865
4898
  if (archived$1.length) {
4866
4899
  const $scope3_id = _scope_id();
4867
- _html(`<section${_attr_class(archived)}><div${_attr_class("_bJ")}><h2${_attr_class("_bD")}>Archived</h2><span${_attr_class(sectionCount$1)}>${_escape(archived$1.length)}${_el_resume($scope3_id, "e", $sg__input_workspaces)}</span></div><p${_attr_class(archivedHint)}>Restore an archived workspace instead of creating a new one.</p><ul${_attr_class("_br")}>`);
4900
+ _html(`<section${_attr_class(archived)}><div${_attr_class("_bK")}><h2${_attr_class("_bE")}>Archived</h2><span${_attr_class(sectionCount$1)}>${_escape(archived$1.length)}${_el_resume($scope3_id, "e", $sg__input_workspaces)}</span></div><p${_attr_class(archivedHint)}>Restore an archived workspace instead of creating a new one.</p><ul${_attr_class("_bs")}>`);
4868
4901
  _for_of(archived$1, (ws) => {
4869
4902
  const $scope4_id = _scope_id();
4870
- _html(`<li${_attr_class(archivedCard)}><div${_attr_class("_bu")}><span${_attr_class("_bv")}>${_escape(ws.name)}${_el_resume($scope4_id, "d", $sg__input_workspaces)}</span><span${_attr_class([metaTrunc, "_u"])}${_attr("title", ws.display_path || ws.path)}>${_escape(ws.display_path || ws.path)}${_el_resume($scope4_id, "f", $sg__input_workspaces)}</span>${_el_resume($scope4_id, "e", $sg__input_workspaces)}</div><button type=button${_attr_class(btnLg)}${_attr("disabled", busy || !!restoring)}>`);
4903
+ _html(`<li${_attr_class(archivedCard)}><div${_attr_class("_bv")}><span${_attr_class("_bw")}>${_escape(ws.name)}${_el_resume($scope4_id, "d", $sg__input_workspaces)}</span><span${_attr_class([metaTrunc, "_u"])}${_attr("title", ws.display_path || ws.path)}>${_escape(ws.display_path || ws.path)}${_el_resume($scope4_id, "f", $sg__input_workspaces)}</span>${_el_resume($scope4_id, "e", $sg__input_workspaces)}</div><button type=button${_attr_class(btnLg)}${_attr("disabled", busy || !!restoring)}>`);
4871
4904
  _if(() => {
4872
4905
  if (restoring === ws.id) {
4873
4906
  const $scope14_id = _scope_id();
@@ -5008,9 +5041,9 @@ function activeAgent(session) {
5008
5041
  const command = session.state?.command?.trim();
5009
5042
  return command && agentFromCommand(command) || session.agent;
5010
5043
  }
5011
- var iconBtn$1 = "_c5 _g";
5012
- var navToggle = "_c_ _g";
5013
- _template("D", (input) => {
5044
+ var iconBtn$1 = "_dd _g";
5045
+ var navToggle = "_di _g";
5046
+ _template("E", (input) => {
5014
5047
  const $scope0_reason = _scope_reason(), $sg__input_size__OR__input_class = _serialize_guard($scope0_reason, 0);
5015
5048
  const $scope0_id = _scope_id();
5016
5049
  _set_serialize_reason({
@@ -5027,7 +5060,7 @@ _template("D", (input) => {
5027
5060
  });
5028
5061
  //#endregion
5029
5062
  //#region src/tags/icons/icon-settings.marko
5030
- var icon_settings_default = _template("Q", (input) => {
5063
+ var icon_settings_default = _template("R", (input) => {
5031
5064
  const $scope0_reason = _scope_reason(), $sg__input_size__OR__input_class = _serialize_guard($scope0_reason, 0);
5032
5065
  const $scope0_id = _scope_id();
5033
5066
  _set_serialize_reason({
@@ -5052,15 +5085,15 @@ var ARM_MS = 3500;
5052
5085
  function disarmLater(fn) {
5053
5086
  return setTimeout(fn, ARM_MS);
5054
5087
  }
5055
- var railBtn = "_fg _g";
5056
- var rowIcon = "_fp _W _g";
5057
- var close = "_fq _W _g _Z";
5088
+ var railBtn = "_eY _g";
5089
+ var rowIcon = "_e7 _W _g";
5090
+ var close = "_e8 _W _g _Z";
5058
5091
  //#endregion
5059
5092
  //#region src/styles/session-pop.css.ts
5060
- var sessionPop = "_fc _0";
5093
+ var sessionPop = "_eU _1";
5061
5094
  //#endregion
5062
5095
  //#region src/tags/icons/icon-diff.marko
5063
- var icon_diff_default = _template("G", (input) => {
5096
+ var icon_diff_default = _template("H", (input) => {
5064
5097
  const $scope0_reason = _scope_reason(), $sg__input_size__OR__input_class = _serialize_guard($scope0_reason, 0);
5065
5098
  const $scope0_id = _scope_id();
5066
5099
  _set_serialize_reason({
@@ -5077,7 +5110,7 @@ var icon_diff_default = _template("G", (input) => {
5077
5110
  });
5078
5111
  //#endregion
5079
5112
  //#region src/tags/icons/icon-manage.marko
5080
- var icon_manage_default = _template("M", (input) => {
5113
+ var icon_manage_default = _template("N", (input) => {
5081
5114
  const $scope0_reason = _scope_reason(), $sg__input_size__OR__input_class = _serialize_guard($scope0_reason, 0);
5082
5115
  const $scope0_id = _scope_id();
5083
5116
  _set_serialize_reason({
@@ -5094,7 +5127,7 @@ var icon_manage_default = _template("M", (input) => {
5094
5127
  });
5095
5128
  //#endregion
5096
5129
  //#region src/tags/icons/icon-edit.marko
5097
- var icon_edit_default = _template("I", (input) => {
5130
+ var icon_edit_default = _template("J", (input) => {
5098
5131
  const $scope0_reason = _scope_reason(), $sg__input_size__OR__input_class = _serialize_guard($scope0_reason, 0);
5099
5132
  const $scope0_id = _scope_id();
5100
5133
  _set_serialize_reason({
@@ -5109,31 +5142,14 @@ var icon_edit_default = _template("I", (input) => {
5109
5142
  });
5110
5143
  _serialize_if($scope0_reason, 0) && writeScope($scope0_id, { a: _existing_scope($childScope) });
5111
5144
  });
5112
- var prChip = "_f8 _p _f7";
5113
- var portChip = "_f9 _p _f7";
5145
+ var prChip = "_gm _p _gl";
5146
+ var portChip = "_gn _p _gl";
5114
5147
  var prState = {
5115
- open: "_gc",
5116
- merged: "_gd",
5117
- closed: "_ge"
5148
+ open: "_gr",
5149
+ merged: "_gs",
5150
+ closed: "_gt"
5118
5151
  };
5119
5152
  //#endregion
5120
- //#region src/tags/icons/icon-xmark.marko
5121
- var icon_xmark_default = _template("V", (input) => {
5122
- const $scope0_reason = _scope_reason(), $sg__input_size__OR__input_class = _serialize_guard($scope0_reason, 0);
5123
- const $scope0_id = _scope_id();
5124
- _set_serialize_reason({
5125
- 0: $sg__input_size__OR__input_class,
5126
- 1: $sg__input_size__OR__input_class
5127
- });
5128
- const $childScope = _peek_scope_id();
5129
- icon_base_default({
5130
- d: "M6.75827 17.2426L12.0009 12M17.2435 6.75736L12.0009 12M12.0009 12L6.75827 6.75736M12.0009 12L17.2435 17.2426",
5131
- size: input.size,
5132
- class: input.class
5133
- });
5134
- _serialize_if($scope0_reason, 0) && writeScope($scope0_id, { a: _existing_scope($childScope) });
5135
- });
5136
- //#endregion
5137
5153
  //#region src/tags/side-nav-chips.marko
5138
5154
  var prTitle = (repo, pr) => {
5139
5155
  const parts = [`${repo.worktree}: ${pr.title}`];
@@ -5144,7 +5160,7 @@ var prTitle = (repo, pr) => {
5144
5160
  return parts.join(" · ");
5145
5161
  };
5146
5162
  var isOpen = (pr) => !pr.state || pr.state === "OPEN";
5147
- var side_nav_chips_default = _template("s", (input) => {
5163
+ var side_nav_chips_default = _template("t", (input) => {
5148
5164
  const $scope0_reason = _scope_reason(), $sg__input_status_repos = _serialize_guard($scope0_reason, 4), $si__input_status_repos = _serialize_if($scope0_reason, 4), $sg__input_status_ports = _serialize_guard($scope0_reason, 5), $sg__input_status_repos__OR__input_status_ports = _serialize_guard($scope0_reason, 1), $si__input_status_repos__OR__input_status_ports = _serialize_if($scope0_reason, 1), $si__input_workspaceId = _serialize_if($scope0_reason, 3);
5149
5165
  const $scope0_id = _scope_id();
5150
5166
  const $input_workspaceId__closures = /* @__PURE__ */ new Set();
@@ -5157,7 +5173,7 @@ var side_nav_chips_default = _template("s", (input) => {
5157
5173
  armBox.timer = disarmLater(() => {
5158
5174
  armedPid = null;
5159
5175
  });
5160
- }, "s0", $scope0_id);
5176
+ }, "t0", $scope0_id);
5161
5177
  const dismissPr = _resume((fullName, number) => {
5162
5178
  fetch(`/api/workspaces/${input.workspaceId}/prs`, {
5163
5179
  method: "POST",
@@ -5167,7 +5183,7 @@ var side_nav_chips_default = _template("s", (input) => {
5167
5183
  number
5168
5184
  })
5169
5185
  }).catch(() => {});
5170
- }, "s1", $scope0_id);
5186
+ }, "t1", $scope0_id);
5171
5187
  const repos = input.status?.repos || [];
5172
5188
  const ports = input.status?.ports || [];
5173
5189
  _if(() => {
@@ -5178,8 +5194,8 @@ var side_nav_chips_default = _template("s", (input) => {
5178
5194
  if (repos.length < 2) return "";
5179
5195
  const name = repo.full_name.split("/").at(-1);
5180
5196
  return repos.some((r) => r.full_name !== repo.full_name && r.full_name.split("/").at(-1) === name) ? repoLabel(repo.full_name) : name;
5181
- }, "s2", $scope1_id);
5182
- _html(`<div${_attr_class("_f6")}>`);
5197
+ }, "t2", $scope1_id);
5198
+ _html(`<div${_attr_class("_gk")}>`);
5183
5199
  _for_of(repos, (repo) => {
5184
5200
  const $scope2_id = _scope_id();
5185
5201
  const $for_content__repo_worktree__closures = /* @__PURE__ */ new Set();
@@ -5195,11 +5211,11 @@ var side_nav_chips_default = _template("s", (input) => {
5195
5211
  [prState.merged]: pr.state === "MERGED",
5196
5212
  [prState.closed]: pr.state === "CLOSED"
5197
5213
  }
5198
- ])}${_attr("title", prTitle(repo, pr))}><a${_attr_class(["_f_", { ["_gg"]: !open }])}${_attr("href", pr.url)} target=_blank rel=noopener>${_escape(repoLabel$1(repo))}${_el_resume($scope3_id, "c", $sg__input_status_repos)}#${_sep($sg__input_status_repos)}${_escape(pr.number)}${_el_resume($scope3_id, "d", $sg__input_status_repos)}</a>${_el_resume($scope3_id, "b", $sg__input_status_repos)}`);
5214
+ ])}${_attr("title", prTitle(repo, pr))}><a${_attr_class(["_go", { ["_gv"]: !open }])}${_attr("href", pr.url)} target=_blank rel=noopener>${_escape(repoLabel$1(repo))}${_el_resume($scope3_id, "c", $sg__input_status_repos)}#${_sep($sg__input_status_repos)}${_escape(pr.number)}${_el_resume($scope3_id, "d", $sg__input_status_repos)}</a>${_el_resume($scope3_id, "b", $sg__input_status_repos)}`);
5199
5215
  _if(() => {
5200
5216
  if (open) {
5201
5217
  const $scope4_id = _scope_id();
5202
- _html(`<a${_attr_class(["_f_", "_ga"])}${_attr("href", `/w/${input.workspaceId}/review?pr=${encodeURIComponent(`${repo.worktree}/${pr.number}`)}`)}${_attr("title", `Review #${pr.number} changes`)}>`);
5218
+ _html(`<a${_attr_class(["_go", "_gp"])}${_attr("href", `/w/${input.workspaceId}/review?pr=${encodeURIComponent(`${repo.worktree}/${pr.number}`)}`)}${_attr("title", `Review #${pr.number} changes`)}>`);
5203
5219
  icon_diff_default({ size: 12 });
5204
5220
  _html(`</a>${_el_resume($scope4_id, "a", _serialize_guard($scope0_reason, 0))}`);
5205
5221
  _serialize_if($scope0_reason, 2) && _subscribe($si__input_status_repos && $for_content__repo_worktree__closures, _subscribe($si__input_workspaceId && $input_workspaceId__closures, writeScope($scope4_id, { _: _scope_with_id($scope3_id) })));
@@ -5207,13 +5223,13 @@ var side_nav_chips_default = _template("s", (input) => {
5207
5223
  } else {
5208
5224
  const $scope6_id = _scope_id();
5209
5225
  _html(`<button type=button${_attr_class([
5210
- "_f_",
5211
- "_ga",
5212
- "_gb"
5226
+ "_go",
5227
+ "_gp",
5228
+ "_gq"
5213
5229
  ])}${_attr("title", `Dismiss #${pr.number}`)}>`);
5214
5230
  icon_xmark_default({ size: 12 });
5215
5231
  _html(`</button>${_el_resume($scope6_id, "a")}`);
5216
- _script($scope6_id, "s3");
5232
+ _script($scope6_id, "t3");
5217
5233
  writeScope($scope6_id, { _: _scope_with_id($scope3_id) });
5218
5234
  return 1;
5219
5235
  }
@@ -5234,15 +5250,15 @@ var side_nav_chips_default = _template("s", (input) => {
5234
5250
  }, "full_name", $scope1_id, "b", $sg__input_status_repos, $sg__input_status_repos, $sg__input_status_repos__OR__input_status_ports);
5235
5251
  _for_of(ports, (p) => {
5236
5252
  const $scope5_id = _scope_id();
5237
- _html(`<span${_attr_class(["_p", portChip])}${_attr("title", p.cmd)}><button type=button${_attr_class(["_f_", "_gf"])}${_attr("title", `Open http://${typeof location === "undefined" ? "localhost" : location.hostname}:${p.port}`)}>:${_sep($sg__input_status_ports)}${_escape(p.port)}${_el_resume($scope5_id, "c", $sg__input_status_ports)}</button>${_el_resume($scope5_id, "b")}<button type=button${_attr_class([
5238
- "_f_",
5239
- "_ga",
5240
- "_gb",
5253
+ _html(`<span${_attr_class(["_p", portChip])}${_attr("title", p.cmd)}><button type=button${_attr_class(["_go", "_gu"])}${_attr("title", `Open http://${typeof location === "undefined" ? "localhost" : location.hostname}:${p.port}`)}>:${_sep($sg__input_status_ports)}${_escape(p.port)}${_el_resume($scope5_id, "c", $sg__input_status_ports)}</button>${_el_resume($scope5_id, "b")}<button type=button${_attr_class([
5254
+ "_go",
5255
+ "_gp",
5256
+ "_gq",
5241
5257
  { ["_n"]: armedPid === p.pid }
5242
5258
  ])}${armedPid === p.pid ? " title=Kill?" : _attr("title", `Kill ${p.cmd} (pid ${p.pid})`)}>`);
5243
5259
  icon_xmark_default({ size: 12 });
5244
5260
  _html(`</button>${_el_resume($scope5_id, "d")}</span>${_el_resume($scope5_id, "a", $sg__input_status_ports)}`);
5245
- _script($scope5_id, "s4");
5261
+ _script($scope5_id, "t4");
5246
5262
  _subscribe($armedPid__closures, writeScope($scope5_id, {
5247
5263
  h: p?.cmd,
5248
5264
  i: p?.port,
@@ -5275,7 +5291,7 @@ var side_nav_chips_default = _template("s", (input) => {
5275
5291
  });
5276
5292
  //#endregion
5277
5293
  //#region src/tags/side-nav-item.marko
5278
- var side_nav_item_default = _template("t", (input) => {
5294
+ var side_nav_item_default = _template("u", (input) => {
5279
5295
  const $scope0_reason = _scope_reason(), $si__input_workspaces__OR__input_workspaceId = _serialize_if($scope0_reason, 0), $sg__input_workspaceId__OR__input_status = _serialize_guard($scope0_reason, 1), $sg__input_sessions = _serialize_guard($scope0_reason, 22), $si__input_sessions = _serialize_if($scope0_reason, 22), $si__input_workspaceId__OR__input_status__OR__input_sessions__OR__input_page = _serialize_if($scope0_reason, 12), $sg__input_workspaceId__OR__input_status__OR__input_sessions__OR__input_page = _serialize_guard($scope0_reason, 12), $si__input_current = _serialize_if($scope0_reason, 20), $sg__input_page = _serialize_guard($scope0_reason, 24), $sg__input_workspaces__OR__input_workspaceId = _serialize_guard($scope0_reason, 0), $si__input_agents = _serialize_if($scope0_reason, 26), $sg__input_onNewSession = _serialize_guard($scope0_reason, 25), $sg__input_onNewSession__OR__input_onReview = _serialize_guard($scope0_reason, 2), $sg__input_onReview = _serialize_guard($scope0_reason, 27), $sg__input_rail = _serialize_guard($scope0_reason, 19), $si__input_rail = _serialize_if($scope0_reason, 19), $si__input_workspaceId = _serialize_if($scope0_reason, 18), $si__input_workspaces__OR__input_workspaceId__OR__input_rail = _serialize_if($scope0_reason, 3), $si__input_workspaces__OR__input_workspaceId__OR__input_rail__OR__input_current__OR__input_page = _serialize_if($scope0_reason, 13), $si__input_workspaces__OR__input_workspaceId__OR__input_rail__OR__input_page = _serialize_if($scope0_reason, 11), $si__input_index = _serialize_if($scope0_reason, 21), $si__input_onNewSession = _serialize_if($scope0_reason, 25), $si__input_onReview = _serialize_if($scope0_reason, 27), $si__input_managing = _serialize_if($scope0_reason, 28), $si__input_currentTab = _serialize_if($scope0_reason, 29), $si__input_railPop = _serialize_if($scope0_reason, 23), $si__input_page = _serialize_if($scope0_reason, 24);
5280
5296
  const $scope0_id = _scope_id();
5281
5297
  const $input_current__closures = /* @__PURE__ */ new Set();
@@ -5302,7 +5318,7 @@ var side_nav_item_default = _template("t", (input) => {
5302
5318
  armBox.timer = disarmLater(() => {
5303
5319
  armedKill = null;
5304
5320
  });
5305
- }, "t1", $scope0_id);
5321
+ }, "u1", $scope0_id);
5306
5322
  let renamingId = null;
5307
5323
  let renameValue = "";
5308
5324
  const commitRename = _resume((s) => {
@@ -5310,7 +5326,7 @@ var side_nav_item_default = _template("t", (input) => {
5310
5326
  const title = renameValue.trim();
5311
5327
  renamingId = null;
5312
5328
  if (title) input.onRenameSession?.(s, title);
5313
- }, "t2", $scope0_id);
5329
+ }, "u2", $scope0_id);
5314
5330
  const ws$1 = input.workspaces.find((w) => w.id === input.workspaceId);
5315
5331
  _if(() => {
5316
5332
  if (ws$1) {
@@ -5320,10 +5336,10 @@ var side_nav_item_default = _template("t", (input) => {
5320
5336
  _if(() => {
5321
5337
  if (input.rail) {
5322
5338
  const $scope2_id = _scope_id();
5323
- _html(`<a${_attr("href", `/w/${ws$1.id}`)}${_attr_class([railBtn, { ["_fe"]: input.current }])}${_attr("title", ws$1.name)}>${_escape((input.index ?? 0) + 1)}${_el_resume($scope2_id, "b", _serialize_guard($scope0_reason, 21))}<span${_attr_class([
5339
+ _html(`<a${_attr("href", `/w/${ws$1.id}`)}${_attr_class([railBtn, { ["_eW"]: input.current }])}${_attr("title", ws$1.name)}>${_escape((input.index ?? 0) + 1)}${_el_resume($scope2_id, "b", _serialize_guard($scope0_reason, 21))}<span${_attr_class([
5324
5340
  "_w",
5325
5341
  phase[dot],
5326
- "_fh"
5342
+ "_eZ"
5327
5343
  ])}></span>${_el_resume($scope2_id, "c", $sg__input_workspaceId__OR__input_status)}</a>${_el_resume($scope2_id, "a", _serialize_guard($scope0_reason, 4))}`);
5328
5344
  _serialize_if($scope0_reason, 16) && _subscribe($si__input_workspaces__OR__input_workspaceId && $ws_name__closures, _subscribe($si__input_workspaces__OR__input_workspaceId && $ws_id__closures, _subscribe($si__input_index && $input_index__closures, _subscribe($si__input_current && $input_current__closures, writeScope($scope2_id, { _: _scope_with_id($scope1_id) })))));
5329
5345
  return 0;
@@ -5331,15 +5347,15 @@ var side_nav_item_default = _template("t", (input) => {
5331
5347
  const $scope3_id = _scope_id();
5332
5348
  const sessions$1 = input.sessions || [];
5333
5349
  const phaseLabel = dot === "working" ? "Working" : dot === "waiting" ? "Needs input" : dot === "idle" ? "Idle" : "Not running";
5334
- _html(`<section${_attr_class(["_fj", {
5335
- ["_fe"]: input.current,
5336
- ["_1"]: input.current,
5337
- ["_fk"]: input.railPop,
5338
- ["_fi"]: input.page
5339
- }])}><div${_attr_class("_fl")}><a${_attr("href", `/w/${ws$1.id}`)}${_attr_class("_fm")}><span${_attr_class([
5350
+ _html(`<section${_attr_class(["_e1", {
5351
+ ["_eW"]: input.current,
5352
+ ["_2"]: input.current,
5353
+ ["_e2"]: input.railPop,
5354
+ ["_e0"]: input.page
5355
+ }])}><div${_attr_class("_e3")}><a${_attr("href", `/w/${ws$1.id}`)}${_attr_class("_e4")}><span${_attr_class([
5340
5356
  "_w",
5341
5357
  phase[dot],
5342
- "_fx"
5358
+ "_fe"
5343
5359
  ])}${_attr("title", phaseLabel)}></span>${_el_resume($scope3_id, "d", $sg__input_workspaceId__OR__input_status)}`);
5344
5360
  _if(() => {
5345
5361
  if (sessions$1.length === 1) {
@@ -5352,7 +5368,7 @@ var side_nav_item_default = _template("t", (input) => {
5352
5368
  icon_agent_default({
5353
5369
  agent: activeAgent(sessions$1[0]),
5354
5370
  size: 12,
5355
- class: "_fr"
5371
+ class: "_e9"
5356
5372
  });
5357
5373
  $si__input_sessions && writeScope($scope12_id, {
5358
5374
  _: _scope_with_id($scope3_id),
@@ -5362,16 +5378,16 @@ var side_nav_item_default = _template("t", (input) => {
5362
5378
  }
5363
5379
  }, $scope3_id, "e", $sg__input_sessions, $sg__input_sessions, $sg__input_workspaceId__OR__input_status__OR__input_sessions__OR__input_page);
5364
5380
  const metaText = sessions$1.length === 0 ? phaseLabel : sessions$1.length === 1 ? sessions$1[0].title || "" : `${sessions$1.length} sessions`;
5365
- _html(`<span${_attr_class("_fs")}><span${_attr_class("_ft")}>${_escape(ws$1.name)}${_el_resume($scope3_id, "h", $sg__input_workspaces__OR__input_workspaceId)}</span>`);
5381
+ _html(`<span${_attr_class("_e_")}><span${_attr_class("_fa")}>${_escape(ws$1.name)}${_el_resume($scope3_id, "h", $sg__input_workspaces__OR__input_workspaceId)}</span>`);
5366
5382
  _if(() => {
5367
5383
  if (input.page && metaText) {
5368
5384
  const $scope14_id = _scope_id();
5369
- _html(`<span${_attr_class("_fv")}>${_escape(metaText)}${_el_resume($scope14_id, "b", _serialize_guard($scope0_reason, 8))}</span>`);
5385
+ _html(`<span${_attr_class("_fc")}>${_escape(metaText)}${_el_resume($scope14_id, "b", _serialize_guard($scope0_reason, 8))}</span>`);
5370
5386
  $si__input_workspaceId__OR__input_status__OR__input_sessions__OR__input_page && writeScope($scope14_id, { _: _serialize_if($scope0_reason, 8) && _scope_with_id($scope3_id) });
5371
5387
  return 0;
5372
5388
  } else if (sessions$1.length === 1 && sessions$1[0].title) {
5373
5389
  const $scope13_id = _scope_id();
5374
- _html(`<span${_attr_class("_fu")}>${_escape(sessions$1[0].title)}${_el_resume($scope13_id, "b", $sg__input_sessions)}</span>`);
5390
+ _html(`<span${_attr_class("_fb")}>${_escape(sessions$1[0].title)}${_el_resume($scope13_id, "b", $sg__input_sessions)}</span>`);
5375
5391
  $si__input_workspaceId__OR__input_status__OR__input_sessions__OR__input_page && writeScope($scope13_id, { _: $si__input_sessions && _scope_with_id($scope3_id) });
5376
5392
  return 1;
5377
5393
  }
@@ -5384,7 +5400,7 @@ var side_nav_item_default = _template("t", (input) => {
5384
5400
  "_F",
5385
5401
  "_O",
5386
5402
  "_H",
5387
- "_fw"
5403
+ "_fd"
5388
5404
  ])}>${input.current ? "Open" : ""}${_el_resume($scope4_id, "b", _serialize_guard($scope0_reason, 20))}</span>`);
5389
5405
  $si__input_workspaces__OR__input_workspaceId__OR__input_rail__OR__input_current__OR__input_page && _subscribe($si__input_current && $input_current__closures, writeScope($scope4_id, {
5390
5406
  _: _scope_with_id($scope3_id),
@@ -5397,7 +5413,7 @@ var side_nav_item_default = _template("t", (input) => {
5397
5413
  _if(() => {
5398
5414
  if (!input.page) {
5399
5415
  const $scope5_id = _scope_id();
5400
- _html(`<div${_attr_class("_fn")}>`);
5416
+ _html(`<div${_attr_class("_e5")}>`);
5401
5417
  _if(() => {
5402
5418
  if (input.onNewSession) {
5403
5419
  const $scope6_id = _scope_id();
@@ -5411,7 +5427,7 @@ var side_nav_item_default = _template("t", (input) => {
5411
5427
  _html(`</button>${_el_resume($scope6_id, "a")}<div${_attr("id", newPopId)} popover=auto${_attr_class(sessionPop)}>`);
5412
5428
  _for_of([], (agent) => {
5413
5429
  const $scope7_id = _scope_id();
5414
- _html(`<button${_attr_class("_fd")}>`);
5430
+ _html(`<button${_attr_class("_eV")}>`);
5415
5431
  _set_serialize_reason(12);
5416
5432
  const $childScope2 = _peek_scope_id();
5417
5433
  icon_agent_default({
@@ -5419,13 +5435,13 @@ var side_nav_item_default = _template("t", (input) => {
5419
5435
  size: 14
5420
5436
  });
5421
5437
  _html(`<!>${_escape(agent)}${_el_resume($scope7_id, "c")}</button>${_el_resume($scope7_id, "a")}`);
5422
- _script($scope7_id, "t3");
5438
+ _script($scope7_id, "u3");
5423
5439
  writeScope($scope7_id, {
5424
5440
  e: agent,
5425
5441
  b: _existing_scope($childScope2)
5426
5442
  });
5427
5443
  }, (a) => a, $scope6_id, "c", 1, 1, 1, "</div>", 1);
5428
- _script($scope6_id, "t4");
5444
+ _script($scope6_id, "u4");
5429
5445
  _subscribe($si__input_agents && $input_agents__closures, writeScope($scope6_id, {
5430
5446
  e: $si__input_agents && pickerReady,
5431
5447
  _: _scope_with_id($scope5_id)
@@ -5446,7 +5462,7 @@ var side_nav_item_default = _template("t", (input) => {
5446
5462
  return 0;
5447
5463
  }
5448
5464
  }, $scope5_id, "c", $sg__input_onReview, $sg__input_onReview, $sg__input_onNewSession__OR__input_onReview, 0, 1);
5449
- _html(`<a${_attr("href", `/w/${ws$1.id}/manage`)}${_attr_class([rowIcon, { ["_ff"]: input.managing }])} title="Manage workspace"${input.managing ? " aria-current=page" : ""}>`);
5465
+ _html(`<a${_attr("href", `/w/${ws$1.id}/manage`)}${_attr_class([rowIcon, { ["_eX"]: input.managing }])} title="Manage workspace"${input.managing ? " aria-current=page" : ""}>`);
5450
5466
  icon_manage_default({ size: 12 });
5451
5467
  _html(`</a>${_el_resume($scope5_id, "d", _serialize_guard($scope0_reason, 6))}</div>`);
5452
5468
  _subscribe($si__input_workspaces__OR__input_workspaceId && $ws_id__closures, _subscribe($si__input_managing && $input_managing__closures, _subscribe($si__input_onReview && $input_onReview__closures, _subscribe($si__input_onNewSession && $input_onNewSession__closures, writeScope($scope5_id, {
@@ -5456,17 +5472,17 @@ var side_nav_item_default = _template("t", (input) => {
5456
5472
  return 0;
5457
5473
  }
5458
5474
  }, $scope3_id, "k", $sg__input_page, $sg__input_page, $sg__input_workspaceId__OR__input_status__OR__input_sessions__OR__input_page, 0, 1);
5459
- _html(`</div><div${_attr_class("_fC")}>`);
5475
+ _html(`</div><div${_attr_class("_fj")}>`);
5460
5476
  _for_of(sessions$1.length > 1 ? sessions$1 : [], (s) => {
5461
5477
  const $scope8_id = _scope_id();
5462
- _html(`<div${_attr_class(["_fo", { ["_fe"]: s.id === input.currentTab }])}>`);
5478
+ _html(`<div${_attr_class(["_e6", { ["_eW"]: s.id === input.currentTab }])}>`);
5463
5479
  _if(() => {
5464
5480
  if (renamingId === s.id) {
5465
5481
  const $scope10_id = _scope_id();
5466
5482
  _html(`<span${_attr_class([
5467
5483
  "_w",
5468
5484
  phase[sessionPhase(s.state)],
5469
- "_fA"
5485
+ "_fh"
5470
5486
  ])}></span>${_el_resume($scope10_id, "a", $sg__input_sessions)}`);
5471
5487
  _set_serialize_reason({
5472
5488
  1: $sg__input_sessions,
@@ -5476,17 +5492,17 @@ var side_nav_item_default = _template("t", (input) => {
5476
5492
  icon_agent_default({
5477
5493
  agent: activeAgent(s),
5478
5494
  size: 13,
5479
- class: "_fE"
5495
+ class: "_fl"
5480
5496
  });
5481
5497
  _html(`<input${_attr_input_value($scope10_id, "c", renameValue, _resume((_new_renameValue) => {
5482
5498
  renameValue = _new_renameValue;
5483
- }, "t0", $scope10_id))}${_attr_class(["_R", "_fB"])} aria-label="Session name">${_el_resume($scope10_id, "c")}`);
5484
- _script($scope10_id, "t5");
5499
+ }, "u0", $scope10_id))}${_attr_class(["_R", "_fi"])} aria-label="Session name">${_el_resume($scope10_id, "c")}`);
5500
+ _script($scope10_id, "u5");
5485
5501
  _subscribe($renameValue__closures, writeScope($scope10_id, { b: $si__input_sessions && _existing_scope($childScope3) }));
5486
5502
  return 0;
5487
5503
  } else {
5488
5504
  const $scope9_id = _scope_id();
5489
- _html(`<a${_attr("href", `/w/${ws$1.id}?s=${s.id}`)}${_attr_class("_fD")}><span${_attr_class(["_w", phase[sessionPhase(s.state)]])}></span>${_el_resume($scope9_id, "b", $sg__input_sessions)}`);
5505
+ _html(`<a${_attr("href", `/w/${ws$1.id}?s=${s.id}`)}${_attr_class("_fk")}><span${_attr_class(["_w", phase[sessionPhase(s.state)]])}></span>${_el_resume($scope9_id, "b", $sg__input_sessions)}`);
5490
5506
  _set_serialize_reason({
5491
5507
  1: $sg__input_sessions,
5492
5508
  2: $sg__input_sessions
@@ -5495,12 +5511,14 @@ var side_nav_item_default = _template("t", (input) => {
5495
5511
  icon_agent_default({
5496
5512
  agent: activeAgent(s),
5497
5513
  size: 13,
5498
- class: "_fE"
5514
+ class: "_fl"
5499
5515
  });
5500
- _html(`<span${_attr_class("_fy")}>${_escape(s.title || activeAgent(s))}${_el_resume($scope9_id, "e", $sg__input_sessions)}</span></a>${_el_resume($scope9_id, "a", _serialize_guard($scope0_reason, 5))}<div${_attr_class("_fz")}><button${_attr_class(rowIcon)} title="Rename session">`);
5516
+ _html(`<span${_attr_class("_ff")}>${_escape(s.title || activeAgent(s))}${_el_resume($scope9_id, "e", $sg__input_sessions)}</span></a>${_el_resume($scope9_id, "a", _serialize_guard($scope0_reason, 5))}<div${_attr_class("_fg")}><button${_attr_class(rowIcon)} title="Rename session">`);
5501
5517
  icon_edit_default({ size: 12 });
5502
- _html(`</button>${_el_resume($scope9_id, "g")}<button${_attr_class([close, { ["_n"]: armedKill === s.id }])} title=${armedKill === s.id ? "Close?" : "\"Close session\""}>×</button>${_el_resume($scope9_id, "i")}</div>`);
5503
- _script($scope9_id, "t6");
5518
+ _html(`</button>${_el_resume($scope9_id, "g")}<button${_attr_class([close, { ["_n"]: armedKill === s.id }])} title=${armedKill === s.id ? "Close?" : "\"Close session\""}>`);
5519
+ icon_xmark_default({ size: 12 });
5520
+ _html(`</button>${_el_resume($scope9_id, "i")}</div>`);
5521
+ _script($scope9_id, "u6");
5504
5522
  _subscribe($si__input_workspaces__OR__input_workspaceId && $ws_id__closures, _subscribe($armedKill__closures, writeScope($scope9_id, {
5505
5523
  c: $si__input_sessions && _existing_scope($childScope4),
5506
5524
  Cam: $si__input_workspaces__OR__input_workspaceId && 3
@@ -5531,7 +5549,7 @@ var side_nav_item_default = _template("t", (input) => {
5531
5549
  status: st
5532
5550
  });
5533
5551
  _html(`</div></section>${_el_resume($scope3_id, "a")}`);
5534
- _script($scope3_id, "t7");
5552
+ _script($scope3_id, "u7");
5535
5553
  _subscribe($si__input_workspaces__OR__input_workspaceId && $ws_name__closures, _subscribe($si__input_workspaces__OR__input_workspaceId && $ws_id__closures, _subscribe($si__input_page && $input_page__closures, _subscribe($si__input_railPop && $input_railPop__closures, _subscribe($si__input_sessions && $input_sessions__closures, _subscribe($si__input_current && $input_current__closures, _subscribe($si__input_workspaceId && $input_workspaceId__closures, writeScope($scope3_id, {
5536
5554
  p: $si__input_workspaceId__OR__input_status__OR__input_sessions__OR__input_page && sessions$1.length,
5537
5555
  q: $si__input_sessions && sessions$1[0],
@@ -5602,7 +5620,7 @@ var side_nav_item_default = _template("t", (input) => {
5602
5620
  });
5603
5621
  //#endregion
5604
5622
  //#region src/tags/icons/icon-folder-plus.marko
5605
- var icon_folder_plus_default = _template("J", (input) => {
5623
+ var icon_folder_plus_default = _template("K", (input) => {
5606
5624
  const $scope0_reason = _scope_reason(), $sg__input_size__OR__input_class = _serialize_guard($scope0_reason, 0);
5607
5625
  const $scope0_id = _scope_id();
5608
5626
  _set_serialize_reason({
@@ -5619,7 +5637,7 @@ var icon_folder_plus_default = _template("J", (input) => {
5619
5637
  });
5620
5638
  //#endregion
5621
5639
  //#region src/tags/icons/icon-sidebar-collapse.marko
5622
- var icon_sidebar_collapse_default = _template("R", (input) => {
5640
+ var icon_sidebar_collapse_default = _template("S", (input) => {
5623
5641
  const $scope0_reason = _scope_reason(), $sg__input_size__OR__input_class = _serialize_guard($scope0_reason, 0);
5624
5642
  const $scope0_id = _scope_id();
5625
5643
  _set_serialize_reason({
@@ -5636,7 +5654,7 @@ var icon_sidebar_collapse_default = _template("R", (input) => {
5636
5654
  });
5637
5655
  //#endregion
5638
5656
  //#region src/tags/side-nav.marko
5639
- var side_nav_default = _template("u", (input) => {
5657
+ var side_nav_default = _template("v", (input) => {
5640
5658
  const $scope0_reason = _scope_reason(), $sg__input_setupReady = _serialize_guard($scope0_reason, 9), $sg__input_workspace__OR__input_allWorkspaces = _serialize_guard($scope0_reason, 0), $sg__input_workspace__OR__input_allWorkspaces__OR__input_allStatus = _serialize_guard($scope0_reason, 1), $sg__input_agents = _serialize_guard($scope0_reason, 11), $si__input_workspace = _serialize_if($scope0_reason, 2), $si__input_workspace__OR__input_allWorkspaces = _serialize_if($scope0_reason, 0), $si__input_allStatus = _serialize_if($scope0_reason, 8), $si__input_setupReady = _serialize_if($scope0_reason, 9), $si__input_onSelectWorkspace = _serialize_if($scope0_reason, 10), $si__input_agents = _serialize_if($scope0_reason, 11), $si__input_onNewSession = _serialize_if($scope0_reason, 12), $si__input_onReviewOpened = _serialize_if($scope0_reason, 13), $si__input_sessions = _serialize_if($scope0_reason, 14), $si__input_onRenameSession = _serialize_if($scope0_reason, 15), $si__input_onCloseSession = _serialize_if($scope0_reason, 16);
5641
5659
  const $scope0_id = _scope_id();
5642
5660
  const $notifyOn__closures = /* @__PURE__ */ new Set();
@@ -5660,7 +5678,7 @@ var side_nav_default = _template("u", (input) => {
5660
5678
  let canPush = false;
5661
5679
  const leaveNav = _resume(() => {
5662
5680
  if (view === "nav") view = "term";
5663
- }, "u0", $scope0_id);
5681
+ }, "v0", $scope0_id);
5664
5682
  const toggleNotify = _resume(async () => {
5665
5683
  try {
5666
5684
  if (notifyOn) {
@@ -5674,7 +5692,7 @@ var side_nav_default = _template("u", (input) => {
5674
5692
  notifyOn = false;
5675
5693
  input.onError?.(`Notifications failed: ${String(err.message || err)}`);
5676
5694
  }
5677
- }, "u1", $scope0_id);
5695
+ }, "v1", $scope0_id);
5678
5696
  const itemIds = input.allWorkspaces?.length ? input.allWorkspaces.filter((w) => w.status === "active").map((w) => w.id) : [ws.id];
5679
5697
  const workspaces = input.allWorkspaces || [ws];
5680
5698
  const allStatus = input.allStatus || {};
@@ -5682,25 +5700,25 @@ var side_nav_default = _template("u", (input) => {
5682
5700
  const isPage = view === "nav";
5683
5701
  const otherIds = itemIds.filter((id) => id !== ws.id);
5684
5702
  const listIds = isPage ? [ws.id, ...otherIds] : itemIds;
5685
- _html(`<aside${_attr_class(["_c9", {
5686
- ["_c7"]: !navOpen,
5687
- ["_c8"]: isPage
5703
+ _html(`<aside${_attr_class(["_dh", {
5704
+ ["_df"]: !navOpen,
5705
+ ["_dg"]: isPage
5688
5706
  }])}${_attr("hidden", view === "diff")}>`);
5689
5707
  _if(() => {
5690
5708
  if (isPage) {
5691
5709
  const $scope1_id = _scope_id();
5692
- _html(`<header${_attr_class("_db")}><h1${_attr_class("_dc")}>Workspaces</h1><div${_attr_class("_dd")}>`);
5710
+ _html(`<header${_attr_class("_dk")}><h1${_attr_class("_dl")}>Workspaces</h1><div${_attr_class("_dm")}>`);
5693
5711
  _if(() => {}, $scope1_id, "d", 1, 1, 1, 0, 1);
5694
5712
  _html(`<a href=/settings${_attr_class([
5695
5713
  iconBtn$1,
5696
- "_de",
5697
- { ["_c4"]: view === "settings" }
5714
+ "_dn",
5715
+ { ["_dc"]: view === "settings" }
5698
5716
  ])} title=Settings${view === "settings" ? " aria-current=page" : ""}>`);
5699
5717
  icon_settings_default({ size: 16 });
5700
5718
  _if(() => {
5701
5719
  if (input.setupReady === false) {
5702
5720
  const $scope10_id = _scope_id();
5703
- _html(`<span${_attr_class(["_w", "_c6"])} title="Machine setup incomplete"></span>`);
5721
+ _html(`<span${_attr_class(["_w", "_de"])} title="Machine setup incomplete"></span>`);
5704
5722
  $si__input_setupReady && writeScope($scope10_id, {});
5705
5723
  return 0;
5706
5724
  }
@@ -5710,13 +5728,13 @@ var side_nav_default = _template("u", (input) => {
5710
5728
  return 0;
5711
5729
  }
5712
5730
  }, $scope0_id, "b", 1, 1, 1, 0, 1);
5713
- _html(`<div${_attr_class("_dh")}>`);
5731
+ _html(`<div${_attr_class("_dq")}>`);
5714
5732
  _for_of(listIds, (wsId) => {
5715
5733
  const $scope2_id = _scope_id();
5716
5734
  _if(() => {
5717
5735
  if (isPage && wsId === ws.id) {
5718
5736
  const $scope11_id = _scope_id();
5719
- _html(`<h2${_attr_class(["_bD", "_df"])}>Current</h2>`);
5737
+ _html(`<h2${_attr_class(["_bE", "_do"])}>Current</h2>`);
5720
5738
  writeScope($scope11_id, {});
5721
5739
  return 0;
5722
5740
  }
@@ -5724,7 +5742,7 @@ var side_nav_default = _template("u", (input) => {
5724
5742
  _if(() => {
5725
5743
  if (isPage && wsId !== ws.id && wsId === otherIds[0]) {
5726
5744
  const $scope12_id = _scope_id();
5727
- _html(`<h2${_attr_class(["_bD", "_df"])}>Other workspaces</h2>`);
5745
+ _html(`<h2${_attr_class(["_bE", "_do"])}>Other workspaces</h2>`);
5728
5746
  writeScope($scope12_id, {});
5729
5747
  return 0;
5730
5748
  }
@@ -5771,12 +5789,12 @@ var side_nav_default = _template("u", (input) => {
5771
5789
  leaveNav();
5772
5790
  input.onSelectWorkspace?.(wsId);
5773
5791
  } else if (view === "nav" || view === "manage" || view === "settings" || view === "new") view = "term";
5774
- }, "u2", $scope2_id),
5792
+ }, "v2", $scope2_id),
5775
5793
  agents: input.agents,
5776
5794
  onNewSession: _resume(function(agent) {
5777
5795
  leaveNav();
5778
5796
  input.onNewSession(wsId, agent);
5779
- }, "u3", $scope2_id),
5797
+ }, "v3", $scope2_id),
5780
5798
  onReview: _resume(function() {
5781
5799
  if (wsId === ws.id) {
5782
5800
  if (view === "diff") view = "term";
@@ -5785,7 +5803,7 @@ var side_nav_default = _template("u", (input) => {
5785
5803
  requestDiff(wsId);
5786
5804
  input.onSelectWorkspace?.(wsId);
5787
5805
  }
5788
- }, "u4", $scope2_id),
5806
+ }, "v4", $scope2_id),
5789
5807
  sessions: wsId === ws.id && input.sessions ? input.sessions : allStatus[wsId]?.sessions || [],
5790
5808
  currentTab: wsId === ws.id && view === "term" ? tab : null,
5791
5809
  onRenameSession: input.onRenameSession,
@@ -5801,14 +5819,14 @@ var side_nav_default = _template("u", (input) => {
5801
5819
  const $scope3_id = _scope_id();
5802
5820
  let railHover = null;
5803
5821
  const railHoverBox = { timer: 0 };
5804
- const railKeep = _resume(() => clearTimeout(railHoverBox.timer), "u5", $scope3_id);
5822
+ const railKeep = _resume(() => clearTimeout(railHoverBox.timer), "v5", $scope3_id);
5805
5823
  const railHide = _resume(() => {
5806
5824
  clearTimeout(railHoverBox.timer);
5807
5825
  railHoverBox.timer = setTimeout(() => {
5808
5826
  railHover = null;
5809
5827
  }, 150);
5810
- }, "u6", $scope3_id);
5811
- _html(`<div${_attr_class("_di")}>`);
5828
+ }, "v6", $scope3_id);
5829
+ _html(`<div${_attr_class("_dr")}>`);
5812
5830
  _for_of(itemIds, (wsId, i) => {
5813
5831
  const $scope4_id = _scope_id();
5814
5832
  _html("<span>");
@@ -5845,10 +5863,10 @@ var side_nav_default = _template("u", (input) => {
5845
5863
  onSelect: _resume(function() {
5846
5864
  if (wsId !== ws.id) input.onSelectWorkspace?.(wsId);
5847
5865
  else if (view === "manage" || view === "settings" || view === "new") view = "term";
5848
- }, "u7", $scope4_id)
5866
+ }, "v7", $scope4_id)
5849
5867
  });
5850
5868
  _html(`</span>${_el_resume($scope4_id, "a")}`);
5851
- _script($scope4_id, "u12");
5869
+ _script($scope4_id, "v12");
5852
5870
  _subscribe($si__input_allStatus && $allStatus__closures, _subscribe($si__input_workspace__OR__input_allWorkspaces && $workspaces__closures, _subscribe($si__input_workspace && $ws_id__closures, writeScope($scope4_id, {
5853
5871
  d: wsId,
5854
5872
  _: _scope_with_id($scope3_id),
@@ -5859,7 +5877,7 @@ var side_nav_default = _template("u", (input) => {
5859
5877
  if (railHover) {
5860
5878
  const $scope5_id = _scope_id();
5861
5879
  const hoverId = railHover.id;
5862
- _html(`<div${_attr_class(["_0", "_dl"])}${_attr_style(`top:${railHover.top}px;left:${railHover.left}px`)}>`);
5880
+ _html(`<div${_attr_class(["_1", "_du"])}${_attr_style(`top:${railHover.top}px;left:${railHover.left}px`)}>`);
5863
5881
  _set_serialize_reason({
5864
5882
  0: 1,
5865
5883
  1: 1,
@@ -5900,12 +5918,12 @@ var side_nav_default = _template("u", (input) => {
5900
5918
  railHover = null;
5901
5919
  if (hoverId !== ws.id) input.onSelectWorkspace?.(hoverId);
5902
5920
  else if (view === "manage" || view === "settings" || view === "new") view = "term";
5903
- }, "u8", $scope5_id),
5921
+ }, "v8", $scope5_id),
5904
5922
  agents: input.agents,
5905
5923
  onNewSession: _resume(function(agent) {
5906
5924
  railHover = null;
5907
5925
  input.onNewSession(hoverId, agent);
5908
- }, "u9", $scope5_id),
5926
+ }, "v9", $scope5_id),
5909
5927
  onReview: _resume(function() {
5910
5928
  railHover = null;
5911
5929
  if (hoverId === ws.id) {
@@ -5915,14 +5933,14 @@ var side_nav_default = _template("u", (input) => {
5915
5933
  requestDiff(hoverId);
5916
5934
  input.onSelectWorkspace?.(hoverId);
5917
5935
  }
5918
- }, "u10", $scope5_id),
5936
+ }, "v10", $scope5_id),
5919
5937
  sessions: hoverId === ws.id && input.sessions ? input.sessions : allStatus[hoverId]?.sessions || [],
5920
5938
  currentTab: hoverId === ws.id && view === "term" ? tab : null,
5921
5939
  onRenameSession: input.onRenameSession,
5922
5940
  onCloseSession: input.onCloseSession
5923
5941
  });
5924
5942
  _html(`</div>${_el_resume($scope5_id, "a")}`);
5925
- _script($scope5_id, "u13");
5943
+ _script($scope5_id, "v13");
5926
5944
  _subscribe($si__input_allStatus && $allStatus__closures, _subscribe($si__input_workspace__OR__input_allWorkspaces && $workspaces__closures, _subscribe($view__closures, _subscribe($tab__closures, _subscribe($si__input_workspace && $ws_id__closures, _subscribe($si__input_onCloseSession && $input_onCloseSession__closures, _subscribe($si__input_onRenameSession && $input_onRenameSession__closures, _subscribe($si__input_sessions && $input_sessions__closures, _subscribe($si__input_onReviewOpened && $input_onReviewOpened__closures, _subscribe($si__input_onNewSession && $input_onNewSession__closures, _subscribe($si__input_agents && $input_agents__closures, _subscribe($si__input_onSelectWorkspace && $input_onSelectWorkspace__closures, writeScope($scope5_id, {
5927
5945
  c: hoverId,
5928
5946
  b: _existing_scope($childScope3),
@@ -5944,7 +5962,7 @@ var side_nav_default = _template("u", (input) => {
5944
5962
  return 0;
5945
5963
  }
5946
5964
  }, $scope0_id, "d");
5947
- _html(`<div${_attr_class("_dj")}>`);
5965
+ _html(`<div${_attr_class("_ds")}>`);
5948
5966
  _if(() => {
5949
5967
  if (isPage) {
5950
5968
  const $scope7_id = _scope_id();
@@ -5952,7 +5970,7 @@ var side_nav_default = _template("u", (input) => {
5952
5970
  "_l",
5953
5971
  "_m",
5954
5972
  btnLg,
5955
- "_dg"
5973
+ "_dp"
5956
5974
  ])} title="New workspace"${view === "new" ? " aria-current=page" : ""}>`);
5957
5975
  icon_folder_plus_default({ size: 16 });
5958
5976
  _html(` New workspace</a>${_el_resume($scope7_id, "a")}`);
@@ -5974,29 +5992,29 @@ var side_nav_default = _template("u", (input) => {
5974
5992
  return 1;
5975
5993
  }
5976
5994
  }, $scope6_id, "a", 1, 1, 1, "</button>", 1);
5977
- _html(`<div${_attr_class(["_v", "_dk"])}></div>`);
5995
+ _html(`<div${_attr_class(["_v", "_dt"])}></div>`);
5978
5996
  _if(() => {}, $scope6_id, "c", 1, 1, 1, 0, 1);
5979
- _html(`<a href=/settings${_attr_class([iconBtn$1, { ["_c4"]: view === "settings" }])} title=Settings${view === "settings" ? " aria-current=page" : ""}>`);
5997
+ _html(`<a href=/settings${_attr_class([iconBtn$1, { ["_dc"]: view === "settings" }])} title=Settings${view === "settings" ? " aria-current=page" : ""}>`);
5980
5998
  icon_settings_default({ size: 15 });
5981
5999
  _if(() => {
5982
6000
  if (input.setupReady === false) {
5983
6001
  const $scope15_id = _scope_id();
5984
- _html(`<span${_attr_class(["_w", "_c6"])} title="Machine setup incomplete"></span>`);
6002
+ _html(`<span${_attr_class(["_w", "_de"])} title="Machine setup incomplete"></span>`);
5985
6003
  $si__input_setupReady && writeScope($scope15_id, {});
5986
6004
  return 0;
5987
6005
  }
5988
6006
  }, $scope6_id, "f", $sg__input_setupReady, $sg__input_setupReady, 1, 0, 1);
5989
- _html(`</a>${_el_resume($scope6_id, "d")}<a href=/new${_attr_class([iconBtn$1, { ["_c4"]: view === "new" }])} title="New workspace"${view === "new" ? " aria-current=page" : ""}>`);
6007
+ _html(`</a>${_el_resume($scope6_id, "d")}<a href=/new${_attr_class([iconBtn$1, { ["_dc"]: view === "new" }])} title="New workspace"${view === "new" ? " aria-current=page" : ""}>`);
5990
6008
  icon_folder_plus_default({ size: 16 });
5991
6009
  _html(`</a>${_el_resume($scope6_id, "g")}`);
5992
- _script($scope6_id, "u15");
6010
+ _script($scope6_id, "v15");
5993
6011
  writeScope($scope6_id, {});
5994
6012
  return 1;
5995
6013
  }
5996
6014
  }, $scope0_id, "e", 1, 1, 1, "</div>");
5997
6015
  _html(`</aside>${_el_resume($scope0_id, "a")}`);
5998
- _script($scope0_id, "u16");
5999
- _script($scope0_id, "u17");
6016
+ _script($scope0_id, "v16");
6017
+ _script($scope0_id, "v17");
6000
6018
  writeScope($scope0_id, {
6001
6019
  i: _serialize_if($scope0_reason, 4) && input.tab,
6002
6020
  j: _serialize_if($scope0_reason, 3) && input.tabChange,
@@ -6047,11 +6065,11 @@ var side_nav_default = _template("u", (input) => {
6047
6065
  _resume_branch($scope0_id);
6048
6066
  });
6049
6067
  var iconBtn = "_X _g";
6050
- var sectionCount = "_bq _F _G";
6051
- var content = "_dm _bg";
6052
- var pageMeta = "_dn _bl";
6053
- var pathMeta = "_dq _u";
6054
- var dangerHint = "_dw _P";
6068
+ var sectionCount = "_br _F _G";
6069
+ var content = "_c2 _bh";
6070
+ var pageMeta = "_c3 _bm";
6071
+ var pathMeta = "_c6 _u";
6072
+ var dangerHint = "_db _P";
6055
6073
  //#endregion
6056
6074
  //#region src/tags/manage-workspace.marko
6057
6075
  var api$2;
@@ -6149,7 +6167,7 @@ var manage_workspace_default = _template("l", (input) => {
6149
6167
  setTimeout(() => loadProcs(void 0), 500);
6150
6168
  }, "l5", $scope0_id);
6151
6169
  const titleId = _id();
6152
- _html(`<div${_attr_class("_be")} role=region${_attr("aria-labelledby", titleId)}><div${_attr_class("_bf")}><div${_attr_class(content)}>`);
6170
+ _html(`<div${_attr_class("_bf")} role=region${_attr("aria-labelledby", titleId)}><div${_attr_class("_bg")}><div${_attr_class(content)}>`);
6153
6171
  _set_serialize_reason(30);
6154
6172
  const $childScope = _peek_scope_id();
6155
6173
  page_head_default({
@@ -6162,7 +6180,7 @@ var manage_workspace_default = _template("l", (input) => {
6162
6180
  meta: attrTag({ content: _content_resume("l11", () => {
6163
6181
  _scope_reason();
6164
6182
  const $scope8_id = _scope_id();
6165
- _html(`<span${_attr_class(pageMeta)}${_attr("title", ws.display_path || ws.path)}><span${_attr_class("_do")}>${_escape(ws.name)}${_el_resume($scope8_id, "c")}</span>`);
6183
+ _html(`<span${_attr_class(pageMeta)}${_attr("title", ws.display_path || ws.path)}><span${_attr_class("_c4")}>${_escape(ws.name)}${_el_resume($scope8_id, "c")}</span>`);
6166
6184
  _if(() => {
6167
6185
  if (ws.status !== "active") {
6168
6186
  const $scope11_id = _scope_id();
@@ -6171,7 +6189,7 @@ var manage_workspace_default = _template("l", (input) => {
6171
6189
  return 0;
6172
6190
  }
6173
6191
  }, $scope8_id, "d", 1, 1, 1, 0, 1);
6174
- _html(`<span${_attr_class("_dp")} aria-hidden=true>·</span><span${_attr_class(pathMeta)}>${_escape(ws.display_path || ws.path)}${_el_resume($scope8_id, "g")}</span></span>${_el_resume($scope8_id, "a")}`);
6192
+ _html(`<span${_attr_class("_c5")} aria-hidden=true>·</span><span${_attr_class(pathMeta)}>${_escape(ws.display_path || ws.path)}${_el_resume($scope8_id, "g")}</span></span>${_el_resume($scope8_id, "a")}`);
6175
6193
  _subscribe($ws_status__closures, _subscribe($ws_name__closures, _subscribe($ws_path__closures, _subscribe($ws_display_path__closures, writeScope($scope8_id, { _: _scope_with_id($scope0_id) })))));
6176
6194
  _resume_branch($scope8_id);
6177
6195
  }, $scope0_id) })
@@ -6199,22 +6217,22 @@ var manage_workspace_default = _template("l", (input) => {
6199
6217
  _if(() => {
6200
6218
  if (pendingAction && actionStep) {
6201
6219
  const $scope7_id = _scope_id();
6202
- _html(`<p${_attr_class("_bn")}><span${_attr_class("_C")}></span><!>${_escape(actionStep)}${_el_resume($scope7_id, "c")}</p>`);
6220
+ _html(`<p${_attr_class("_bo")}><span${_attr_class("_C")}></span><!>${_escape(actionStep)}${_el_resume($scope7_id, "c")}</p>`);
6203
6221
  writeScope($scope7_id, {});
6204
6222
  return 0;
6205
6223
  }
6206
6224
  }, $scope0_id, "f", 1, 1, 1, 0, 1);
6207
- _html(`<section${_attr_class("_bo")}><div${_attr_class("_bp")}><h2${_attr_class("_bD")}>Repos</h2><span${_attr_class(sectionCount)}>${_escape(ws.repos.length)}${_el_resume($scope0_id, "k")}</span><div${_attr_class("_v")}></div><button${_attr_class(iconBtn)} title="Refresh repo list" aria-label="Refresh repo list"${_attr("disabled", catalogRefreshing)}>`);
6225
+ _html(`<section${_attr_class("_bp")}><div${_attr_class("_bq")}><h2${_attr_class("_bE")}>Repos</h2><span${_attr_class(sectionCount)}>${_escape(ws.repos.length)}${_el_resume($scope0_id, "k")}</span><div${_attr_class("_v")}></div><button${_attr_class(iconBtn)} title="Refresh repo list" aria-label="Refresh repo list"${_attr("disabled", catalogRefreshing)}>`);
6208
6226
  _set_serialize_reason(1);
6209
6227
  const $childScope2 = _peek_scope_id();
6210
6228
  icon_refresh_default({
6211
6229
  size: 14,
6212
6230
  class: catalogRefreshing && "_B"
6213
6231
  });
6214
- _html(`</button>${_el_resume($scope0_id, "m")}</div><ul${_attr_class("_br")}>`);
6232
+ _html(`</button>${_el_resume($scope0_id, "m")}</div><ul${_attr_class("_bs")}>`);
6215
6233
  _for_of(ws.repos, (row) => {
6216
6234
  const $scope1_id = _scope_id();
6217
- _html(`<li${_attr_class("_bt")}><div${_attr_class("_bu")}><span${_attr_class(["_bv", "_u"])}>${_escape(row.worktree)}${_el_resume($scope1_id, "d")}/</span><span${_attr_class("_bw")}><a${_attr_class(["_bx", "_ds"])}${_attr("href", repoWebUrl$1(row.full_name))} target=_blank rel=noopener${_attr("title", `Open ${row.full_name} on GitHub`)}>${_escape(repoLabel(row.full_name))}${_el_resume($scope1_id, "g")}</a>${_el_resume($scope1_id, "f")}`);
6235
+ _html(`<li${_attr_class("_bu")}><div${_attr_class("_bv")}><span${_attr_class(["_bw", "_u"])}>${_escape(row.worktree)}${_el_resume($scope1_id, "d")}/</span><span${_attr_class("_bx")}><a${_attr_class(["_by", "_c8"])}${_attr("href", repoWebUrl$1(row.full_name))} target=_blank rel=noopener${_attr("title", `Open ${row.full_name} on GitHub`)}>${_escape(repoLabel(row.full_name))}${_el_resume($scope1_id, "g")}</a>${_el_resume($scope1_id, "f")}`);
6218
6236
  _if(() => {
6219
6237
  if (row.base_branch !== row.default_branch) {
6220
6238
  const $scope12_id = _scope_id();
@@ -6233,10 +6251,24 @@ var manage_workspace_default = _template("l", (input) => {
6233
6251
  } else {
6234
6252
  const $scope6_id = _scope_id();
6235
6253
  _html(`<button${_attr_class([
6236
- "_by",
6254
+ "_bz",
6237
6255
  "_Z",
6256
+ "_0",
6238
6257
  { ["_n"]: confirmingRemove === row.full_name }
6239
- ])}${confirmingRemove === row.full_name ? _attr("title", `Remove ${row.worktree}/? Uncommitted changes are lost.`) : _attr("title", `Remove ${row.worktree}/`)}>${confirmingRemove === row.full_name ? "Remove?" : "×"}${_el_resume($scope6_id, "b")}</button>${_el_resume($scope6_id, "a")}`);
6258
+ ])}${confirmingRemove === row.full_name ? _attr("title", `Remove ${row.worktree}/? Uncommitted changes are lost.`) : _attr("title", `Remove ${row.worktree}/`)}>`);
6259
+ _if(() => {
6260
+ if (confirmingRemove === row.full_name) {
6261
+ const $scope14_id = _scope_id();
6262
+ _html("Remove?");
6263
+ writeScope($scope14_id, {});
6264
+ return 0;
6265
+ } else {
6266
+ const $scope15_id = _scope_id();
6267
+ icon_xmark_default({ size: 13 });
6268
+ writeScope($scope15_id, {});
6269
+ return 1;
6270
+ }
6271
+ }, $scope6_id, "a", 1, 1, 1, "</button>");
6240
6272
  _script($scope6_id, "l13");
6241
6273
  _subscribe($confirmingRemove__closures, writeScope($scope6_id, {}));
6242
6274
  return 1;
@@ -6251,20 +6283,20 @@ var manage_workspace_default = _template("l", (input) => {
6251
6283
  });
6252
6284
  }, "full_name", $scope0_id, "p", 1, 1, 1, 0, 1);
6253
6285
  _for_of([...busy].filter((n) => !inWorkspace.has(n)), (name) => {
6254
- const $scope14_id = _scope_id();
6255
- _html(`<li${_attr_class(["_bt", "_bs"])}><span${_attr_class("_C")}></span><div${_attr_class("_bu")}><span${_attr_class("_bx")}>Adding <!>${_escape(name)}${_el_resume($scope14_id, "e")}…</span></div></li>`);
6256
- writeScope($scope14_id, {});
6286
+ const $scope16_id = _scope_id();
6287
+ _html(`<li${_attr_class(["_bu", "_bt"])}><span${_attr_class("_C")}></span><div${_attr_class("_bv")}><span${_attr_class("_by")}>Adding <!>${_escape(name)}${_el_resume($scope16_id, "e")}…</span></div></li>`);
6288
+ writeScope($scope16_id, {});
6257
6289
  }, (n) => n, $scope0_id, "q", 1, 1, 1, 0, 1);
6258
6290
  _html("</ul>");
6259
6291
  _if(() => {
6260
6292
  if (!ws.repos.length && !busy.size) {
6261
- const $scope15_id = _scope_id();
6262
- _html(`<p${_attr_class("_bz")}>No repos yet. Search below to add one.</p>`);
6263
- writeScope($scope15_id, {});
6293
+ const $scope17_id = _scope_id();
6294
+ _html(`<p${_attr_class("_bA")}>No repos yet. Search below to add one.</p>`);
6295
+ writeScope($scope17_id, {});
6264
6296
  return 0;
6265
6297
  }
6266
6298
  }, $scope0_id, "r", 1, 1, 1, 0, 1);
6267
- _html(`<div${_attr_class("_dr")}>`);
6299
+ _html(`<div${_attr_class("_c7")}>`);
6268
6300
  const $childScope3 = _peek_scope_id();
6269
6301
  let refreshCatalog = repo_picker_default({
6270
6302
  exclude: inWorkspace,
@@ -6284,29 +6316,31 @@ var manage_workspace_default = _template("l", (input) => {
6284
6316
  _if(() => {
6285
6317
  if (running.length) {
6286
6318
  const $scope9_id = _scope_id();
6287
- _html(`<section${_attr_class("_bo")}><div${_attr_class("_bp")}><h2${_attr_class("_bD")}>Running</h2><span${_attr_class(sectionCount)}>${_escape(running.length)}${_el_resume($scope9_id, "e")}</span></div><ul${_attr_class("_br")}>`);
6319
+ _html(`<section${_attr_class("_bp")}><div${_attr_class("_bq")}><h2${_attr_class("_bE")}>Running</h2><span${_attr_class(sectionCount)}>${_escape(running.length)}${_el_resume($scope9_id, "e")}</span></div><ul${_attr_class("_bs")}>`);
6288
6320
  _for_of(running, (p) => {
6289
6321
  const $scope10_id = _scope_id();
6290
- _html(`<li${_attr_class("_bt")}><div${_attr_class("_bu")}${_attr("title", p.args)}><span${_attr_class(["_bv", "_u"])}>${_escape(p.cmd)}${_el_resume($scope10_id, "d")}</span>`);
6322
+ _html(`<li${_attr_class("_bu")}><div${_attr_class("_bv")}${_attr("title", p.args)}><span${_attr_class(["_bw", "_u"])}>${_escape(p.cmd)}${_el_resume($scope10_id, "d")}</span>`);
6291
6323
  _if(() => {
6292
6324
  if (p.ports.length) {
6293
- const $scope16_id = _scope_id();
6294
- _html(`<span${_attr_class("_bw")}>`);
6325
+ const $scope18_id = _scope_id();
6326
+ _html(`<span${_attr_class("_bx")}>`);
6295
6327
  _for_of(p.ports, (port) => {
6296
- const $scope17_id = _scope_id();
6297
- _html(`<button${_attr_class(["_p", "_dt"])}${_attr("title", `Open http://${typeof location === "undefined" ? "localhost" : location.hostname}:${port}`)}>:<!>${_escape(port)}${_el_resume($scope17_id, "b")}</button>${_el_resume($scope17_id, "a")}`);
6298
- _script($scope17_id, "l15");
6299
- writeScope($scope17_id, { d: port });
6300
- }, (x) => String(x), $scope16_id, "a", 1, 1, 1, "</span>", 1);
6301
- writeScope($scope16_id, {});
6328
+ const $scope19_id = _scope_id();
6329
+ _html(`<button${_attr_class(["_p", "_c9"])}${_attr("title", `Open http://${typeof location === "undefined" ? "localhost" : location.hostname}:${port}`)}>:<!>${_escape(port)}${_el_resume($scope19_id, "b")}</button>${_el_resume($scope19_id, "a")}`);
6330
+ _script($scope19_id, "l15");
6331
+ writeScope($scope19_id, { d: port });
6332
+ }, (x) => String(x), $scope18_id, "a", 1, 1, 1, "</span>", 1);
6333
+ writeScope($scope18_id, {});
6302
6334
  return 0;
6303
6335
  }
6304
6336
  }, $scope10_id, "e", 1, 1, 1, 0, 1);
6305
- _html(`</div>${_el_resume($scope10_id, "b")}<button${_attr_class(["_by", "_Z"])} type=button${_attr("title", `Kill process ${p.pid}`)}${_attr("aria-label", `Kill process ${p.pid}`)}>×</button>${_el_resume($scope10_id, "f")}</li>`);
6337
+ _html(`</div>${_el_resume($scope10_id, "b")}<button${_attr_class(["_bz", "_Z"])} type=button${_attr("title", `Kill process ${p.pid}`)}${_attr("aria-label", `Kill process ${p.pid}`)}>`);
6338
+ icon_xmark_default({ size: 14 });
6339
+ _html(`</button>${_el_resume($scope10_id, "f")}</li>`);
6306
6340
  _script($scope10_id, "l16");
6307
6341
  writeScope($scope10_id, {
6308
- k: p?.ports,
6309
- m: p?.pid
6342
+ l: p?.ports,
6343
+ n: p?.pid
6310
6344
  });
6311
6345
  }, "pid", $scope9_id, "f", 1, 1, 1, "</ul>", 1);
6312
6346
  _html("</section>");
@@ -6314,7 +6348,7 @@ var manage_workspace_default = _template("l", (input) => {
6314
6348
  return 0;
6315
6349
  }
6316
6350
  }, $scope0_id, "v", 1, 1, 1, 0, 1);
6317
- _html(`<section${_attr_class(["_bo", "_du"])}><div${_attr_class("_bp")}><h2${_attr_class("_bD")}>Workspace</h2></div><div${_attr_class("_dv")}>`);
6351
+ _html(`<section${_attr_class(["_bp", "_c_"])}><div${_attr_class("_bq")}><h2${_attr_class("_bE")}>Workspace</h2></div><div${_attr_class("_da")}>`);
6318
6352
  _if(() => {
6319
6353
  if (ws.status === "active") {
6320
6354
  const $scope4_id = _scope_id();
@@ -6381,7 +6415,7 @@ var manage_workspace_default = _template("l", (input) => {
6381
6415
  });
6382
6416
  //#endregion
6383
6417
  //#region src/tags/term-find.marko
6384
- var term_find_default = _template("v", (input) => {
6418
+ var term_find_default = _template("w", (input) => {
6385
6419
  const $scope0_reason = _scope_reason();
6386
6420
  const $scope0_id = _scope_id();
6387
6421
  let open = input.open;
@@ -6398,58 +6432,60 @@ var term_find_default = _template("v", (input) => {
6398
6432
  if (!live.open) return;
6399
6433
  const search = input.onSearch;
6400
6434
  if (search) search(live.query, dir);
6401
- }, "v1", $scope0_id);
6435
+ }, "w1", $scope0_id);
6402
6436
  const close = _resume(() => {
6403
6437
  open = false;
6404
6438
  live.open = false;
6405
6439
  const clear = input.onClear;
6406
6440
  if (clear) clear();
6407
- }, "v2", $scope0_id);
6441
+ }, "w2", $scope0_id);
6408
6442
  const focusInput = _resume(() => {
6409
6443
  const el = ((findEl) => findEl())(_el_read_error);
6410
6444
  if (!el) return;
6411
6445
  el.focus();
6412
6446
  if (document.activeElement !== el) setTimeout(() => el.focus(), 0);
6413
- }, "v3", $scope0_id);
6447
+ }, "w3", $scope0_id);
6414
6448
  const hasQuery = !!query.trim();
6415
6449
  const canStep = hasQuery && open;
6416
6450
  const keybar = input.placement === "keybar";
6417
6451
  _html(`<div${_attr_class([
6418
- "_e6",
6419
- keybar ? "_e8" : "_e7",
6420
- !open && "_e_"
6421
- ])} aria-hidden=${open ? "false" : "true"}><div${_attr_class(["_e1", keybar ? "_e9" : "_e3"])}><input${_attr_input_value($scope0_id, "c", query, _resume(function(v) {
6452
+ "_eN",
6453
+ keybar ? "_eP" : "_eO",
6454
+ !open && "_eR"
6455
+ ])} aria-hidden=${open ? "false" : "true"}><div${_attr_class(["_eI", keybar ? "_eQ" : "_eK"])}><input${_attr_input_value($scope0_id, "c", query, _resume(function(v) {
6422
6456
  if (!open) return;
6423
6457
  query = v;
6424
6458
  live.query = v;
6425
6459
  run(0);
6426
- }, "v0", $scope0_id))}${_attr_class([findInput, keybar && "_fa"])} type=search enterkeyhint=search autocomplete=off tabindex=${open ? "0" : "-1"} placeholder="Find in terminal" aria-label="Find in terminal">${_el_resume($scope0_id, "c")}<button type=button${_attr_class([findIconBtn, keybar && "_fb"])} title="Previous match"${_attr("disabled", !canStep)} tabindex=${open ? "0" : "-1"}>↑</button>${_el_resume($scope0_id, "d")}<button type=button${_attr_class([findIconBtn, keybar && "_fb"])} title="Next match"${_attr("disabled", !canStep)} tabindex=${open ? "0" : "-1"}>↓</button>${_el_resume($scope0_id, "e")}<button type=button${_attr_class([findIconBtn, keybar && "_fb"])} title="Close find" tabindex=${open ? "0" : "-1"}>×</button>${_el_resume($scope0_id, "f")}</div>${_el_resume($scope0_id, "b", _serialize_guard($scope0_reason, 2))}</div>${_el_resume($scope0_id, "a")}`);
6427
- _script($scope0_id, "v4");
6428
- _script($scope0_id, "v5");
6429
- _script($scope0_id, "v6");
6460
+ }, "w0", $scope0_id))}${_attr_class([findInput, keybar && "_eS"])} type=search enterkeyhint=search autocomplete=off tabindex=${open ? "0" : "-1"} placeholder="Find in terminal" aria-label="Find in terminal">${_el_resume($scope0_id, "c")}<button type=button${_attr_class([findIconBtn, keybar && "_eT"])} title="Previous match"${_attr("disabled", !canStep)} tabindex=${open ? "0" : "-1"}>↑</button>${_el_resume($scope0_id, "d")}<button type=button${_attr_class([findIconBtn, keybar && "_eT"])} title="Next match"${_attr("disabled", !canStep)} tabindex=${open ? "0" : "-1"}>↓</button>${_el_resume($scope0_id, "e")}<button type=button${_attr_class([findIconBtn, keybar && "_eT"])} title="Close find" tabindex=${open ? "0" : "-1"}>`);
6461
+ icon_xmark_default({ size: 14 });
6462
+ _html(`</button>${_el_resume($scope0_id, "f")}</div>${_el_resume($scope0_id, "b", _serialize_guard($scope0_reason, 2))}</div>${_el_resume($scope0_id, "a")}`);
6463
+ _script($scope0_id, "w4");
6464
+ _script($scope0_id, "w5");
6465
+ _script($scope0_id, "w6");
6430
6466
  writeScope($scope0_id, {
6431
- i: _serialize_if($scope0_reason, 1) && input.open,
6432
- j: _serialize_if($scope0_reason, 0) && input.openChange,
6433
- l: input.onSearch,
6434
- m: input.onClear,
6435
- n: input.focusRef,
6436
- o: input.tick,
6437
- q: open,
6438
- s: query,
6439
- u: live.open,
6440
- w: live.query,
6441
- z: box.tick,
6442
- a0: box.wasOpen,
6443
- a1: run,
6444
- a3: close,
6445
- a4: focusInput,
6446
- a7: hasQuery,
6447
- aa: keybar,
6448
- r: input.openChange || void 0
6467
+ j: _serialize_if($scope0_reason, 1) && input.open,
6468
+ k: _serialize_if($scope0_reason, 0) && input.openChange,
6469
+ m: input.onSearch,
6470
+ n: input.onClear,
6471
+ o: input.focusRef,
6472
+ p: input.tick,
6473
+ r: open,
6474
+ t: query,
6475
+ v: live.open,
6476
+ x: live.query,
6477
+ a0: box.tick,
6478
+ a1: box.wasOpen,
6479
+ a2: run,
6480
+ a4: close,
6481
+ a5: focusInput,
6482
+ a8: hasQuery,
6483
+ ab: keybar,
6484
+ s: input.openChange || void 0
6449
6485
  });
6450
6486
  _resume_branch($scope0_id);
6451
6487
  });
6452
- _template("U", (input) => {
6488
+ _template("V", (input) => {
6453
6489
  const $scope0_reason = _scope_reason(), $sg__input_size__OR__input_class = _serialize_guard($scope0_reason, 0);
6454
6490
  const $scope0_id = _scope_id();
6455
6491
  _set_serialize_reason({
@@ -6464,7 +6500,7 @@ _template("U", (input) => {
6464
6500
  });
6465
6501
  _serialize_if($scope0_reason, 0) && writeScope($scope0_id, { a: _existing_scope($childScope) });
6466
6502
  });
6467
- _template("H", (input) => {
6503
+ _template("I", (input) => {
6468
6504
  const $scope0_reason = _scope_reason(), $sg__input_size__OR__input_class = _serialize_guard($scope0_reason, 0);
6469
6505
  const $scope0_id = _scope_id();
6470
6506
  _set_serialize_reason({
@@ -6479,7 +6515,7 @@ _template("H", (input) => {
6479
6515
  });
6480
6516
  _serialize_if($scope0_reason, 0) && writeScope($scope0_id, { a: _existing_scope($childScope) });
6481
6517
  });
6482
- _template("L", (input) => {
6518
+ _template("M", (input) => {
6483
6519
  const $scope0_reason = _scope_reason(), $sg__input_size__OR__input_class = _serialize_guard($scope0_reason, 0);
6484
6520
  const $scope0_id = _scope_id();
6485
6521
  _set_serialize_reason({
@@ -6494,7 +6530,7 @@ _template("L", (input) => {
6494
6530
  });
6495
6531
  _serialize_if($scope0_reason, 0) && writeScope($scope0_id, { a: _existing_scope($childScope) });
6496
6532
  });
6497
- _template("F", (input) => {
6533
+ _template("G", (input) => {
6498
6534
  const $scope0_reason = _scope_reason(), $sg__input_size__OR__input_class = _serialize_guard($scope0_reason, 0);
6499
6535
  const $scope0_id = _scope_id();
6500
6536
  _set_serialize_reason({
@@ -6513,25 +6549,25 @@ _template("F", (input) => {
6513
6549
  //#region src/tags/term.marko
6514
6550
  var REPEAT_DELAY = 400;
6515
6551
  var REPEAT_EVERY = 55;
6516
- var term_default = _template("w", (input) => {
6552
+ var term_default = _template("x", (input) => {
6517
6553
  const $scope0_reason = _scope_reason();
6518
- _serialize_guard($scope0_reason, 5);
6554
+ _serialize_guard($scope0_reason, 4);
6519
6555
  _serialize_guard($scope0_reason, 0);
6520
6556
  _serialize_guard($scope0_reason, 1);
6557
+ _serialize_guard($scope0_reason, 9);
6521
6558
  _serialize_guard($scope0_reason, 10);
6522
- _serialize_guard($scope0_reason, 11);
6523
- const $si__input_sessions = _serialize_if($scope0_reason, 10);
6559
+ const $si__input_sessions = _serialize_if($scope0_reason, 9);
6524
6560
  _serialize_guard($scope0_reason, 2);
6525
- _serialize_guard($scope0_reason, 7);
6526
- const $si__input_onRenameSession = _serialize_if($scope0_reason, 11);
6561
+ _serialize_guard($scope0_reason, 6);
6562
+ const $si__input_onRenameSession = _serialize_if($scope0_reason, 10);
6563
+ _serialize_guard($scope0_reason, 11);
6564
+ const $si__input_agents = _serialize_if($scope0_reason, 11), $si__input_mode = _serialize_if($scope0_reason, 4), $si__input_agent__OR__input_sessionState = _serialize_if($scope0_reason, 1);
6565
+ _serialize_guard($scope0_reason, 3);
6566
+ _serialize_guard($scope0_reason, 8);
6527
6567
  _serialize_guard($scope0_reason, 12);
6528
- const $si__input_agents = _serialize_if($scope0_reason, 12), $si__input_mode = _serialize_if($scope0_reason, 5), $si__input_agent__OR__input_sessionState = _serialize_if($scope0_reason, 1);
6529
- _serialize_guard($scope0_reason, 4);
6530
- _serialize_guard($scope0_reason, 9);
6531
- _serialize_guard($scope0_reason, 13);
6532
- const $si__input_sessionState = _serialize_if($scope0_reason, 6), $si__input_onCloseSession = _serialize_if($scope0_reason, 7), $si__input_sessionId = _serialize_if($scope0_reason, 8), $si__input_workspaceName = _serialize_if($scope0_reason, 13);
6568
+ const $si__input_sessionState = _serialize_if($scope0_reason, 5), $si__input_onCloseSession = _serialize_if($scope0_reason, 6), $si__input_sessionId = _serialize_if($scope0_reason, 7), $si__input_workspaceName = _serialize_if($scope0_reason, 12);
6533
6569
  const $scope0_id = _scope_id();
6534
- _hoist($scope0_id, "w20");
6570
+ _hoist($scope0_id, "x20");
6535
6571
  const $findOpen__closures = /* @__PURE__ */ new Set();
6536
6572
  const $findTick__closures = /* @__PURE__ */ new Set();
6537
6573
  const $input_onCloseSession__closures = /* @__PURE__ */ new Set();
@@ -6553,7 +6589,7 @@ var term_default = _template("w", (input) => {
6553
6589
  let findOpen = false;
6554
6590
  const $openChange = _resume((_new_findOpen) => {
6555
6591
  findOpen = _new_findOpen;
6556
- }, "w1", $scope0_id);
6592
+ }, "x1", $scope0_id);
6557
6593
  let findTick = 0;
6558
6594
  const ioBox = { current: null };
6559
6595
  const searchBox = {
@@ -6561,7 +6597,7 @@ var term_default = _template("w", (input) => {
6561
6597
  query: "",
6562
6598
  refreshTimer: 0
6563
6599
  };
6564
- const findFocusRef = { focus: _resume(function() {}, "w2") };
6600
+ const findFocusRef = { focus: _resume(function() {}, "x2") };
6565
6601
  const scheduleFindRefresh = _resume(() => {
6566
6602
  if (!searchBox.query.trim() || !searchBox.overlay) return;
6567
6603
  if (searchBox.refreshTimer) clearTimeout(searchBox.refreshTimer);
@@ -6569,7 +6605,7 @@ var term_default = _template("w", (input) => {
6569
6605
  searchBox.refreshTimer = 0;
6570
6606
  searchBox.overlay?.refresh();
6571
6607
  }, 32);
6572
- }, "w3", $scope0_id);
6608
+ }, "x3", $scope0_id);
6573
6609
  const runFind = _resume((query, dir) => {
6574
6610
  const overlay = searchBox.overlay;
6575
6611
  if (!overlay) return;
@@ -6583,7 +6619,7 @@ var term_default = _template("w", (input) => {
6583
6619
  return;
6584
6620
  }
6585
6621
  overlay.search(query, dir);
6586
- }, "w4", $scope0_id);
6622
+ }, "x4", $scope0_id);
6587
6623
  const clearFind = _resume(() => {
6588
6624
  if (searchBox.refreshTimer) {
6589
6625
  clearTimeout(searchBox.refreshTimer);
@@ -6591,7 +6627,7 @@ var term_default = _template("w", (input) => {
6591
6627
  }
6592
6628
  searchBox.query = "";
6593
6629
  searchBox.overlay?.clear();
6594
- }, "w5", $scope0_id);
6630
+ }, "x5", $scope0_id);
6595
6631
  const openFind = _resume(() => {
6596
6632
  if (kb) {
6597
6633
  kb = false;
@@ -6601,7 +6637,7 @@ var term_default = _template("w", (input) => {
6601
6637
  findOpen = true;
6602
6638
  findTick++;
6603
6639
  findFocusRef.focus();
6604
- }, "w6", $scope0_id);
6640
+ }, "x6", $scope0_id);
6605
6641
  const toggleFind = _resume(() => {
6606
6642
  if (findOpen) {
6607
6643
  findOpen = false;
@@ -6610,7 +6646,7 @@ var term_default = _template("w", (input) => {
6610
6646
  return;
6611
6647
  }
6612
6648
  openFind();
6613
- }, "w7", $scope0_id);
6649
+ }, "x7", $scope0_id);
6614
6650
  const onTermPage = input.mode == null || input.mode === "term";
6615
6651
  const canKeys = onTermPage || input.mode === "diff";
6616
6652
  const findLit = onTermPage ? findOpen : input.mode === "diff" && !!input.reviewFindOpen;
@@ -6621,7 +6657,7 @@ var term_default = _template("w", (input) => {
6621
6657
  return;
6622
6658
  }
6623
6659
  if (input.mode === "diff") input.onToggleReviewFind?.();
6624
- }, "w8", $scope0_id);
6660
+ }, "x8", $scope0_id);
6625
6661
  const thisAgent = activeAgent({
6626
6662
  agent: input.agent || "shell",
6627
6663
  state: input.sessionState
@@ -6633,7 +6669,7 @@ var term_default = _template("w", (input) => {
6633
6669
  copyFlashBox.timer = setTimeout(() => {
6634
6670
  copiedFlash = false;
6635
6671
  }, 1200);
6636
- }, "w9", $scope0_id);
6672
+ }, "x9", $scope0_id);
6637
6673
  const holdBox = { current: null };
6638
6674
  const startHold = _resume((seq) => {
6639
6675
  ((stopHold) => stopHold())(_hoist_read_error);
@@ -6643,7 +6679,7 @@ var term_default = _template("w", (input) => {
6643
6679
  state.repeat = setInterval(() => ioBox.current?.send(seq), REPEAT_EVERY);
6644
6680
  }, REPEAT_DELAY);
6645
6681
  holdBox.current = state;
6646
- }, "w10", $scope0_id);
6682
+ }, "x10", $scope0_id);
6647
6683
  const stopHold = _resume(() => {
6648
6684
  const hold = holdBox.current;
6649
6685
  if (hold) {
@@ -6651,7 +6687,7 @@ var term_default = _template("w", (input) => {
6651
6687
  clearInterval(hold.repeat);
6652
6688
  holdBox.current = null;
6653
6689
  }
6654
- }, "w11", $scope0_id);
6690
+ }, "x11", $scope0_id);
6655
6691
  const uploadAsset = _resume(async (file) => {
6656
6692
  if (!file) return;
6657
6693
  uploading = true;
@@ -6664,7 +6700,7 @@ var term_default = _template("w", (input) => {
6664
6700
  } finally {
6665
6701
  uploading = false;
6666
6702
  }
6667
- }, "w12", $scope0_id);
6703
+ }, "x12", $scope0_id);
6668
6704
  const handlePasted = _resume(async (clipboardData) => {
6669
6705
  const files = [...clipboardData?.files || []];
6670
6706
  for (const file of files) await uploadAsset(file);
@@ -6673,7 +6709,7 @@ var term_default = _template("w", (input) => {
6673
6709
  if (text) ioBox.current?.send(text);
6674
6710
  }
6675
6711
  trapOpen = false;
6676
- }, "w13", $scope0_id);
6712
+ }, "x13", $scope0_id);
6677
6713
  const pasteClipboard = _resume(async () => {
6678
6714
  if (!navigator.clipboard?.read) {
6679
6715
  trapOpen = true;
@@ -6693,8 +6729,8 @@ var term_default = _template("w", (input) => {
6693
6729
  } catch {
6694
6730
  trapOpen = true;
6695
6731
  }
6696
- }, "w14", $scope0_id);
6697
- _html(`<div${_attr("hidden", !onTermPage)}${_attr_class("_dx")}><div${_attr_class("_dy")}></div>${_el_resume($scope0_id, "b")}`);
6732
+ }, "x14", $scope0_id);
6733
+ _html(`<div${_attr("hidden", !onTermPage)}${_attr_class("_dv")}><div${_attr_class("_dw")}></div>${_el_resume($scope0_id, "b")}`);
6698
6734
  _if(() => {
6699
6735
  if (findOpen) {
6700
6736
  const $scope12_id = _scope_id();
@@ -6708,11 +6744,11 @@ var term_default = _template("w", (input) => {
6708
6744
  focusRef: findFocusRef,
6709
6745
  onSearch: _resume(function(q, dir) {
6710
6746
  runFind(q, dir);
6711
- }, "w15", $scope12_id),
6747
+ }, "x15", $scope12_id),
6712
6748
  onClear: _resume(function() {
6713
6749
  clearFind();
6714
6750
  ioBox.current?.setFindMode(false);
6715
- }, "w16", $scope12_id)
6751
+ }, "x16", $scope12_id)
6716
6752
  });
6717
6753
  writeScope($scope12_id, { a: _existing_scope($childScope) });
6718
6754
  return 0;
@@ -6721,7 +6757,7 @@ var term_default = _template("w", (input) => {
6721
6757
  _if(() => {
6722
6758
  if (uploading) {
6723
6759
  const $scope19_id = _scope_id();
6724
- _html(`<div${_attr_class("_dE")}>uploading…</div>`);
6760
+ _html(`<div${_attr_class("_dC")}>uploading…</div>`);
6725
6761
  writeScope($scope19_id, {});
6726
6762
  return 0;
6727
6763
  }
@@ -6729,7 +6765,7 @@ var term_default = _template("w", (input) => {
6729
6765
  _if(() => {
6730
6766
  if (copiedFlash) {
6731
6767
  const $scope20_id = _scope_id();
6732
- _html(`<div${_attr_class("_dD")}>Copied</div>`);
6768
+ _html(`<div${_attr_class("_dB")}>Copied</div>`);
6733
6769
  writeScope($scope20_id, {});
6734
6770
  return 0;
6735
6771
  }
@@ -6738,18 +6774,18 @@ var term_default = _template("w", (input) => {
6738
6774
  _if(() => {
6739
6775
  if (trapOpen) {
6740
6776
  const $scope11_id = _scope_id();
6741
- _html(`<div${_attr_class("_dF")}><div${_attr_class("_dG")}><p${_attr_class("_d9")}>Long-press the field below and choose Paste</p><input placeholder="Paste here…">${_el_resume($scope11_id, "d")}<button${_attr_class("_l")}>Cancel</button>${_el_resume($scope11_id, "e")}</div>${_el_resume($scope11_id, "b")}</div>${_el_resume($scope11_id, "a")}`);
6742
- _script($scope11_id, "w24");
6743
- _script($scope11_id, "w25");
6777
+ _html(`<div${_attr_class("_dD")}><div${_attr_class("_dE")}><p${_attr_class("_d7")}>Long-press the field below and choose Paste</p><input placeholder="Paste here…">${_el_resume($scope11_id, "d")}<button${_attr_class("_l")}>Cancel</button>${_el_resume($scope11_id, "e")}</div>${_el_resume($scope11_id, "b")}</div>${_el_resume($scope11_id, "a")}`);
6778
+ _script($scope11_id, "x24");
6779
+ _script($scope11_id, "x25");
6744
6780
  writeScope($scope11_id, {});
6745
6781
  return 0;
6746
6782
  }
6747
6783
  }, $scope0_id, "g", 1, 1, 1, 0, 1);
6748
6784
  _html(`</div>${_el_resume($scope0_id, "a")}`);
6749
6785
  _if(() => {}, $scope0_id, "h", 1, 1, 1, 0, 1);
6750
- _script($scope0_id, "w40");
6751
- _script($scope0_id, "w41");
6752
- _script($scope0_id, "w42");
6786
+ _script($scope0_id, "x40");
6787
+ _script($scope0_id, "x41");
6788
+ _script($scope0_id, "x42");
6753
6789
  writeScope($scope0_id, {
6754
6790
  k: input.mode,
6755
6791
  l: input.reviewFindOpen,
@@ -6816,7 +6852,7 @@ var term_default = _template("w", (input) => {
6816
6852
  //#region src/tags/work-view.marko
6817
6853
  var api$1;
6818
6854
  var isTransientApiError$1;
6819
- var work_view_default = _template("z", (input) => {
6855
+ var work_view_default = _template("A", (input) => {
6820
6856
  const $scope0_reason = _scope_reason(), $sg__input_workspace = _serialize_guard($scope0_reason, 4), $sg__input_agents = _serialize_guard($scope0_reason, 10), $sg__input_allWorkspaces = _serialize_guard($scope0_reason, 9), $si__input_workspace = _serialize_if($scope0_reason, 4), $si__input_active = _serialize_if($scope0_reason, 6), $si__input_agents = _serialize_if($scope0_reason, 10), $si__input_preferred = _serialize_if($scope0_reason, 7);
6821
6857
  const $scope0_id = _scope_id();
6822
6858
  const $error__closures = /* @__PURE__ */ new Set();
@@ -6841,43 +6877,49 @@ var work_view_default = _template("z", (input) => {
6841
6877
  let DiffView = null;
6842
6878
  const loadDiffView = _resume(() => {
6843
6879
  if (DiffView) return;
6844
- import("./_CSvmyeWI.js").then((m) => {
6880
+ import("./_D78MdEM0.js").then((m) => {
6845
6881
  DiffView = m.default;
6846
6882
  });
6847
- }, "z4", $scope0_id);
6883
+ }, "A6", $scope0_id);
6848
6884
  let manageMounted = input.initialView === "manage";
6849
6885
  let settingsMounted = input.initialView === "settings";
6850
6886
  let newMounted = input.initialView === "new";
6851
6887
  let reviewFindOpen = false;
6852
6888
  let reviewFindTick = 0;
6853
- const reviewFindFocus = { focus: _resume(function() {}, "z0") };
6889
+ const reviewFindFocus = { focus: _resume(function() {}, "A0") };
6854
6890
  let focusPr = input.initialPr ?? "";
6855
6891
  let focusNonce = 0;
6892
+ let reviewScope = input.initialScope ?? null;
6893
+ let reviewFile = input.initialFile ?? null;
6894
+ let focusFile = input.initialFile ?? "";
6895
+ let focusFileNonce = 0;
6856
6896
  let error = null;
6857
6897
  let spawning = false;
6858
6898
  const ws = input.workspace;
6859
- const openDiff = _resume((pr) => {
6899
+ const openDiff = _resume((pr, file) => {
6860
6900
  focusPr = pr || "";
6861
6901
  if (pr) focusNonce++;
6902
+ focusFile = file || "";
6903
+ if (file) focusFileNonce++;
6862
6904
  loadDiffView();
6863
6905
  diffMounted = true;
6864
6906
  view = "diff";
6865
- }, "z5", $scope0_id);
6907
+ }, "A7", $scope0_id);
6866
6908
  const openManage = _resume(() => {
6867
6909
  manageMounted = true;
6868
6910
  view = "manage";
6869
- }, "z6", $scope0_id);
6911
+ }, "A8", $scope0_id);
6870
6912
  const openSettings = _resume(() => {
6871
6913
  settingsMounted = true;
6872
6914
  view = "settings";
6873
- }, "z7", $scope0_id);
6915
+ }, "A9", $scope0_id);
6874
6916
  const toggleNav = _resume(() => {
6875
6917
  view = view === "nav" ? "term" : "nav";
6876
- }, "z8", $scope0_id);
6918
+ }, "A10", $scope0_id);
6877
6919
  const toggleDiff = _resume(() => {
6878
6920
  if (view === "diff") view = "term";
6879
6921
  else openDiff();
6880
- }, "z9", $scope0_id);
6922
+ }, "A11", $scope0_id);
6881
6923
  const shownSessions = sessions ?? input.allStatus?.[ws.id]?.sessions ?? null;
6882
6924
  const curTab = (() => {
6883
6925
  if (tab && shownSessions?.some((s) => s.id === tab)) return tab;
@@ -6894,13 +6936,15 @@ var work_view_default = _template("z", (input) => {
6894
6936
  reviewFindOpen = true;
6895
6937
  reviewFindTick++;
6896
6938
  reviewFindFocus.focus();
6897
- }, "z10", $scope0_id);
6939
+ }, "A12", $scope0_id);
6898
6940
  const exitCreate = _resume(() => {
6899
6941
  if (view === "new") view = "term";
6900
- }, "z11", $scope0_id);
6942
+ }, "A13", $scope0_id);
6901
6943
  const applyView = _resume((v) => {
6902
- if (v.view === "diff") openDiff(v.pr);
6903
- else if (v.view === "manage") openManage();
6944
+ if (v.view === "diff") {
6945
+ if (v.scope !== void 0) reviewScope = v.scope ?? null;
6946
+ openDiff(v.pr, v.file);
6947
+ } else if (v.view === "manage") openManage();
6904
6948
  else if (v.view === "settings") openSettings();
6905
6949
  else if (v.view === "new") input.onNew?.();
6906
6950
  else {
@@ -6910,7 +6954,7 @@ var work_view_default = _template("z", (input) => {
6910
6954
  }
6911
6955
  view = "term";
6912
6956
  }
6913
- }, "z12", $scope0_id);
6957
+ }, "A14", $scope0_id);
6914
6958
  const createSession = _resume(async (agent, select) => {
6915
6959
  spawning = true;
6916
6960
  try {
@@ -6931,7 +6975,7 @@ var work_view_default = _template("z", (input) => {
6931
6975
  } finally {
6932
6976
  spawning = false;
6933
6977
  }
6934
- }, "z13", $scope0_id);
6978
+ }, "A15", $scope0_id);
6935
6979
  const loadMem = {
6936
6980
  wanted: false,
6937
6981
  run: void 0
@@ -6957,11 +7001,11 @@ var work_view_default = _template("z", (input) => {
6957
7001
  if (isTransientApiError$1(err)) return;
6958
7002
  error = String(err.message || err);
6959
7003
  }
6960
- }, "z14", $scope0_id);
7004
+ }, "A16", $scope0_id);
6961
7005
  const loadSessions = _resume((autoCreate) => {
6962
7006
  if (autoCreate) loadMem.wanted = true;
6963
7007
  return (loadMem.run ??= coalesce(loadBody))();
6964
- }, "z15", $scope0_id);
7008
+ }, "A17", $scope0_id);
6965
7009
  const closeSession = _resume(async (id) => {
6966
7010
  try {
6967
7011
  sessions = (sessions || []).filter((s) => s.id !== id);
@@ -6971,7 +7015,7 @@ var work_view_default = _template("z", (input) => {
6971
7015
  error = `Close session failed: ${String(err.message || err)}`;
6972
7016
  loadSessions(false);
6973
7017
  }
6974
- }, "z16", $scope0_id);
7018
+ }, "A18", $scope0_id);
6975
7019
  const renameSession = _resume(async (id, title) => {
6976
7020
  title = title.trim();
6977
7021
  if (!title) return;
@@ -6984,7 +7028,7 @@ var work_view_default = _template("z", (input) => {
6984
7028
  headers: { "content-type": "application/json" },
6985
7029
  body: JSON.stringify({ title })
6986
7030
  });
6987
- }, "z17", $scope0_id);
7031
+ }, "A19", $scope0_id);
6988
7032
  const newSession = _resume(async (wsId, agent) => {
6989
7033
  if (wsId === ws.id) {
6990
7034
  const session = await createSession(agent, true);
@@ -7002,7 +7046,7 @@ var work_view_default = _template("z", (input) => {
7002
7046
  } catch (err) {
7003
7047
  error = String(err.message || err);
7004
7048
  }
7005
- }, "z18", $scope0_id);
7049
+ }, "A20", $scope0_id);
7006
7050
  const onKey = _resume((e) => {
7007
7051
  const target = e.target;
7008
7052
  const typing = !!target && !target.closest(".xterm") && (target.tagName === "INPUT" || target.tagName === "TEXTAREA" || target.tagName === "SELECT" || target.isContentEditable);
@@ -7016,8 +7060,8 @@ var work_view_default = _template("z", (input) => {
7016
7060
  e.preventDefault();
7017
7061
  toggleDiff();
7018
7062
  }
7019
- }, "z19", $scope0_id);
7020
- _html(`<div${_attr_class(["_ci", { ["_ch"]: view === "nav" }])}><div${_attr_class("_cj")}>`);
7063
+ }, "A21", $scope0_id);
7064
+ _html(`<div${_attr_class(["_bW", { ["_bV"]: view === "nav" }])}><div${_attr_class("_bX")}>`);
7021
7065
  _set_serialize_reason({
7022
7066
  0: _serialize_guard($scope0_reason, 0),
7023
7067
  1: _serialize_guard($scope0_reason, 1),
@@ -7043,45 +7087,45 @@ var work_view_default = _template("z", (input) => {
7043
7087
  tab: curTab,
7044
7088
  tabChange: _resume(function(id) {
7045
7089
  tab = id;
7046
- }, "z20", $scope0_id),
7090
+ }, "A22", $scope0_id),
7047
7091
  view,
7048
7092
  viewChange: _resume((_new_view) => {
7049
7093
  view = _new_view;
7050
- }, "z21", $scope0_id),
7094
+ }, "A23", $scope0_id),
7051
7095
  allWorkspaces: input.allWorkspaces,
7052
7096
  allStatus: input.allStatus,
7053
7097
  agents: input.agents,
7054
7098
  onError: _resume(function(message) {
7055
7099
  error = message;
7056
- }, "z22", $scope0_id),
7100
+ }, "A24", $scope0_id),
7057
7101
  onSelectWorkspace: _resume(function(id) {
7058
7102
  exitCreate();
7059
7103
  input.onSelectWorkspace?.(id);
7060
- }, "z23", $scope0_id),
7104
+ }, "A25", $scope0_id),
7061
7105
  onNewSession: _resume(function(wsId, agent) {
7062
7106
  exitCreate();
7063
7107
  newSession(wsId, agent);
7064
- }, "z24", $scope0_id),
7108
+ }, "A26", $scope0_id),
7065
7109
  onCloseSession: _resume(function(id) {
7066
7110
  closeSession(id);
7067
- }, "z25", $scope0_id),
7111
+ }, "A27", $scope0_id),
7068
7112
  onRenameSession: _resume(function(s, title) {
7069
7113
  renameSession(s.id, title);
7070
- }, "z26", $scope0_id),
7114
+ }, "A28", $scope0_id),
7071
7115
  onReviewOpened: _resume(function(pr) {
7072
7116
  exitCreate();
7073
7117
  openDiff(pr);
7074
- }, "z27", $scope0_id)
7118
+ }, "A29", $scope0_id)
7075
7119
  });
7076
- _html(`</div><div${_attr_class("_ck")}>`);
7120
+ _html(`</div><div${_attr_class("_bY")}>`);
7077
7121
  _if(() => {
7078
7122
  if (error) {
7079
7123
  const $scope8_id = _scope_id();
7080
7124
  toast_default({
7081
7125
  onDismiss: _resume(function() {
7082
7126
  error = null;
7083
- }, "z28", $scope8_id),
7084
- content: _content_resume("z45", () => {
7127
+ }, "A30", $scope8_id),
7128
+ content: _content_resume("A47", () => {
7085
7129
  _scope_reason();
7086
7130
  const $scope9_id = _scope_id();
7087
7131
  _html(`${_escape(error)}${_el_resume($scope9_id, "a")}`);
@@ -7106,19 +7150,28 @@ var work_view_default = _template("z", (input) => {
7106
7150
  active: input.active && view === "diff",
7107
7151
  focusPr,
7108
7152
  focusNonce,
7153
+ focusFile,
7154
+ focusFileNonce,
7155
+ scope: reviewScope,
7156
+ onScopeChange: _resume(function(s) {
7157
+ reviewScope = s === "committed" ? null : s;
7158
+ }, "A1", $scope1_id),
7159
+ onFileChange: _resume(function(f) {
7160
+ reviewFile = f;
7161
+ }, "A2", $scope1_id),
7109
7162
  findOpen: reviewFindOpen,
7110
7163
  findOpenChange: _resume((_new_reviewFindOpen) => {
7111
7164
  reviewFindOpen = _new_reviewFindOpen;
7112
- }, "z1", $scope1_id),
7165
+ }, "A3", $scope1_id),
7113
7166
  findTick: reviewFindTick,
7114
7167
  findFocusRef: reviewFindFocus,
7115
7168
  onSent: _resume(function(sessionId) {
7116
7169
  tab = sessionId;
7117
7170
  view = "term";
7118
- }, "z2", $scope1_id),
7171
+ }, "A4", $scope1_id),
7119
7172
  onExit: _resume(function() {
7120
7173
  view = "term";
7121
- }, "z3", $scope1_id)
7174
+ }, "A5", $scope1_id)
7122
7175
  });
7123
7176
  _show_end($scope1_id, "d", $show);
7124
7177
  writeScope($scope1_id, {});
@@ -7136,13 +7189,13 @@ var work_view_default = _template("z", (input) => {
7136
7189
  workspace: ws,
7137
7190
  workspaceChange: _resume(function(next) {
7138
7191
  input.onWorkspaceChange?.(next);
7139
- }, "z29", $scope2_id),
7192
+ }, "A31", $scope2_id),
7140
7193
  onExit: _resume(function() {
7141
7194
  view = "term";
7142
- }, "z30", $scope2_id),
7195
+ }, "A32", $scope2_id),
7143
7196
  onDeleted: _resume(function() {
7144
7197
  input.onWorkspaceDeleted?.(ws.id);
7145
- }, "z31", $scope2_id)
7198
+ }, "A33", $scope2_id)
7146
7199
  });
7147
7200
  _show_end($scope2_id, "d", $show2);
7148
7201
  writeScope($scope2_id, { b: _serialize_if($scope0_reason, 2) && _existing_scope($childScope2) });
@@ -7167,17 +7220,17 @@ var work_view_default = _template("z", (input) => {
7167
7220
  backHref: `/w/${ws.id}`,
7168
7221
  onExit: _resume(function() {
7169
7222
  view = "term";
7170
- }, "z32", $scope3_id),
7223
+ }, "A34", $scope3_id),
7171
7224
  setup: input.setup,
7172
7225
  setupChange: _resume(function(s) {
7173
7226
  input.onSetupChange?.(s);
7174
- }, "z33", $scope3_id),
7227
+ }, "A35", $scope3_id),
7175
7228
  preferredChange: _resume(function(agent) {
7176
7229
  input.onPreferredChange?.(agent);
7177
- }, "z34", $scope3_id),
7230
+ }, "A36", $scope3_id),
7178
7231
  agentsChange: _resume(function(agents) {
7179
7232
  input.onAgentsChange?.(agents);
7180
- }, "z35", $scope3_id)
7233
+ }, "A37", $scope3_id)
7181
7234
  });
7182
7235
  _show_end($scope3_id, "d", $show3);
7183
7236
  writeScope($scope3_id, { b: _serialize_if($scope0_reason, 3) && _existing_scope($childScope3) });
@@ -7200,28 +7253,28 @@ var work_view_default = _template("z", (input) => {
7200
7253
  backHref: `/w/${ws.id}`,
7201
7254
  onExit: _resume(function() {
7202
7255
  exitCreate();
7203
- }, "z36", $scope4_id),
7256
+ }, "A38", $scope4_id),
7204
7257
  onCreate: _resume(function(ws) {
7205
7258
  input.onCreated?.(ws);
7206
- }, "z37", $scope4_id),
7259
+ }, "A39", $scope4_id),
7207
7260
  onRestore: _resume(function(next) {
7208
7261
  input.onWorkspaceChange?.(next);
7209
7262
  input.onSelectWorkspace?.(next.id);
7210
7263
  exitCreate();
7211
- }, "z38", $scope4_id)
7264
+ }, "A40", $scope4_id)
7212
7265
  });
7213
7266
  _show_end($scope4_id, "d", $show4);
7214
7267
  writeScope($scope4_id, { b: _existing_scope($childScope4) });
7215
7268
  return 0;
7216
7269
  }
7217
7270
  }, $scope0_id, "i");
7218
- _html(`<div${_attr_class(["_cm", { ["_cl"]: view !== "term" }])}>`);
7271
+ _html(`<div${_attr_class(["_b0", { ["_bZ"]: view !== "term" }])}>`);
7219
7272
  _if(() => {
7220
7273
  if (shownSessions) {
7221
7274
  const $scope5_id = _scope_id();
7222
7275
  _for_of(shownSessions, (s) => {
7223
7276
  const $scope6_id = _scope_id();
7224
- _html(`<div${_attr_class(["_cn", { ["_co"]: s.id === curTab }])}>`);
7277
+ _html(`<div${_attr_class(["_b1", { ["_b2"]: s.id === curTab }])}>`);
7225
7278
  _set_serialize_reason({
7226
7279
  0: 1,
7227
7280
  1: 1,
@@ -7234,9 +7287,8 @@ var work_view_default = _template("z", (input) => {
7234
7287
  8: 1,
7235
7288
  9: 1,
7236
7289
  10: 1,
7237
- 11: 1,
7238
- 12: $sg__input_agents,
7239
- 13: $sg__input_workspace
7290
+ 11: $sg__input_agents,
7291
+ 12: $sg__input_workspace
7240
7292
  });
7241
7293
  const $childScope5 = _peek_scope_id();
7242
7294
  term_default({
@@ -7250,26 +7302,26 @@ var work_view_default = _template("z", (input) => {
7250
7302
  onNewSession: _resume(function(agent) {
7251
7303
  view = "term";
7252
7304
  newSession(ws.id, agent);
7253
- }, "z39", $scope6_id),
7305
+ }, "A41", $scope6_id),
7254
7306
  onOpenTab: _resume(function(id) {
7255
7307
  tab = id;
7256
7308
  view = "term";
7257
- }, "z40", $scope6_id),
7309
+ }, "A42", $scope6_id),
7258
7310
  onCloseSession: _resume(function(id) {
7259
7311
  closeSession(id);
7260
- }, "z41", $scope6_id),
7312
+ }, "A43", $scope6_id),
7261
7313
  onRenameSession: _resume(function(id, title) {
7262
7314
  renameSession(id, title);
7263
- }, "z42", $scope6_id),
7315
+ }, "A44", $scope6_id),
7264
7316
  active: input.active && view === "term" && s.id === curTab,
7265
7317
  mode: view,
7266
7318
  onOpenNav: _resume(function() {
7267
7319
  toggleNav();
7268
- }, "z43", $scope6_id),
7320
+ }, "A45", $scope6_id),
7269
7321
  reviewFindOpen,
7270
7322
  onToggleReviewFind: _resume(function() {
7271
7323
  toggleReviewFind();
7272
- }, "z44", $scope6_id)
7324
+ }, "A46", $scope6_id)
7273
7325
  });
7274
7326
  _html(`</div>${_el_resume($scope6_id, "a")}`);
7275
7327
  _subscribe($newSession2__closures, _subscribe($renameSession2__closures, _subscribe($closeSession2__closures, _subscribe($toggleReviewFind2__closures, _subscribe($curTab__closures, _subscribe($shownSessions__closures, _subscribe($si__input_workspace && $ws_name__closures, _subscribe($si__input_workspace && $ws_id__closures, _subscribe($reviewFindOpen__closures, _subscribe($view__closures, _subscribe($si__input_agents && $input_agents__closures, _subscribe($si__input_active && $input_active__closures, writeScope($scope6_id, {
@@ -7280,8 +7332,8 @@ var work_view_default = _template("z", (input) => {
7280
7332
  _if(() => {
7281
7333
  if (!shownSessions.length && view === "term") {
7282
7334
  const $scope7_id = _scope_id();
7283
- _html(`<div${_attr_class("_bA")}><span>No sessions in this workspace.</span><button${_attr_class(["_l", "_m"])}${_attr("disabled", spawning)}>${spawning ? "Starting…" : `Start ${_escape(`${input.preferred || "shell"}`)}`}${_el_resume($scope7_id, "c")}</button>${_el_resume($scope7_id, "b")}</div>`);
7284
- _script($scope7_id, "z46");
7335
+ _html(`<div${_attr_class("_bB")}><span>No sessions in this workspace.</span><button${_attr_class(["_l", "_m"])}${_attr("disabled", spawning)}>${spawning ? "Starting…" : `Start ${_escape(`${input.preferred || "shell"}`)}`}${_el_resume($scope7_id, "c")}</button>${_el_resume($scope7_id, "b")}</div>`);
7336
+ _script($scope7_id, "A48");
7285
7337
  _subscribe($spawning__closures, _subscribe($si__input_preferred && $input_preferred__closures, writeScope($scope7_id, {})));
7286
7338
  return 0;
7287
7339
  }
@@ -7290,95 +7342,99 @@ var work_view_default = _template("z", (input) => {
7290
7342
  return 0;
7291
7343
  } else {
7292
7344
  const $scope10_id = _scope_id();
7293
- _html(`<p${_attr_class("_bA")}>Loading sessions…</p>`);
7345
+ _html(`<p${_attr_class("_bB")}>Loading sessions…</p>`);
7294
7346
  writeScope($scope10_id, {});
7295
7347
  return 1;
7296
7348
  }
7297
7349
  }, $scope0_id, "j", 1, 1, 1, "</div>");
7298
7350
  _html(`</div></div>${_el_resume($scope0_id, "a")}`);
7299
- _script($scope0_id, "z47");
7300
- _script($scope0_id, "z48");
7301
- _script($scope0_id, "z49");
7302
- _script($scope0_id, "z50");
7303
- _script($scope0_id, "z51");
7304
- _script($scope0_id, "z52");
7305
- _script($scope0_id, "z53");
7306
- _script($scope0_id, "z54");
7307
- _script($scope0_id, "z55");
7351
+ _script($scope0_id, "A49");
7352
+ _script($scope0_id, "A50");
7353
+ _script($scope0_id, "A51");
7354
+ _script($scope0_id, "A52");
7355
+ _script($scope0_id, "A53");
7356
+ _script($scope0_id, "A54");
7357
+ _script($scope0_id, "A55");
7358
+ _script($scope0_id, "A56");
7359
+ _script($scope0_id, "A57");
7308
7360
  writeScope($scope0_id, {
7309
7361
  n: input.initialView,
7310
- q: input.allStatus,
7311
- r: input.active,
7312
- s: input.creating,
7313
- t: input.onExitCreate,
7314
- u: input.onNew,
7315
- v: input.onRouteChange,
7316
- w: input.preferred,
7317
- x: input.onSelectWorkspace,
7318
- y: input.setup,
7319
- z: input.allWorkspaces,
7320
- a0: input.agents,
7321
- a1: input.onWorkspaceChange,
7322
- a2: input.onWorkspaceDeleted,
7323
- a3: input.onSetupChange,
7324
- a4: input.onPreferredChange,
7325
- a5: input.onAgentsChange,
7326
- a6: input.onCreated,
7327
- a7: sessions,
7328
- a8: tab,
7329
- a9: view,
7330
- ab: diffMounted,
7331
- ac: DiffView,
7332
- ae: loadDiffView,
7333
- aj: reviewFindOpen,
7334
- al: reviewFindTick,
7335
- am: reviewFindFocus,
7336
- ao: focusPr,
7337
- ap: focusNonce,
7338
- ar: error,
7339
- as: spawning,
7340
- at: ws,
7341
- au: ws?.id,
7342
- ay: ws?.status,
7343
- az: ws?.branch,
7344
- b0: ws?.name,
7345
- b1: openDiff,
7346
- b3: openManage,
7347
- b5: openSettings,
7348
- b8: toggleNav,
7349
- b9: toggleDiff,
7350
- ba: shownSessions,
7351
- bc: shownSessions?.length,
7352
- bd: curTab,
7353
- bg: createGate.open,
7354
- bi: toggleReviewFind,
7355
- bj: exitCreate,
7356
- bn: applyView,
7357
- bp: createSession,
7358
- bs: loadMem.wanted,
7359
- bu: loadMem.run,
7360
- bv: loadBody,
7361
- bx: loadSessions,
7362
- c0: closeSession,
7363
- c1: renameSession,
7364
- c2: newSession,
7365
- c4: onKey,
7362
+ s: input.allStatus,
7363
+ t: input.active,
7364
+ u: input.creating,
7365
+ v: input.onExitCreate,
7366
+ w: input.onNew,
7367
+ x: input.onRouteChange,
7368
+ y: input.preferred,
7369
+ z: input.onSelectWorkspace,
7370
+ a0: input.setup,
7371
+ a1: input.allWorkspaces,
7372
+ a2: input.agents,
7373
+ a3: input.onWorkspaceChange,
7374
+ a4: input.onWorkspaceDeleted,
7375
+ a5: input.onSetupChange,
7376
+ a6: input.onPreferredChange,
7377
+ a7: input.onAgentsChange,
7378
+ a8: input.onCreated,
7379
+ a9: sessions,
7380
+ aa: tab,
7381
+ ab: view,
7382
+ ad: diffMounted,
7383
+ ae: DiffView,
7384
+ ag: loadDiffView,
7385
+ al: reviewFindOpen,
7386
+ an: reviewFindTick,
7387
+ ao: reviewFindFocus,
7388
+ aq: focusPr,
7389
+ ar: focusNonce,
7390
+ as: reviewScope,
7391
+ at: reviewFile,
7392
+ au: focusFile,
7393
+ av: focusFileNonce,
7394
+ ax: error,
7395
+ ay: spawning,
7396
+ az: ws,
7397
+ b0: ws?.id,
7398
+ b4: ws?.status,
7399
+ b5: ws?.branch,
7400
+ b6: ws?.name,
7401
+ b7: openDiff,
7402
+ b9: openManage,
7403
+ bb: openSettings,
7404
+ be: toggleNav,
7405
+ bf: toggleDiff,
7406
+ bg: shownSessions,
7407
+ bi: shownSessions?.length,
7408
+ bj: curTab,
7409
+ bm: createGate.open,
7410
+ bo: toggleReviewFind,
7411
+ bp: exitCreate,
7412
+ bt: applyView,
7413
+ bv: createSession,
7414
+ by: loadMem.wanted,
7415
+ c0: loadMem.run,
7416
+ c1: loadBody,
7417
+ c3: loadSessions,
7418
+ c6: closeSession,
7419
+ c7: renameSession,
7420
+ c8: newSession,
7421
+ ca: onKey,
7366
7422
  c: _existing_scope($childScope),
7367
- cp: $error__closures,
7368
- c6: $si__input_active && $input_active__closures,
7369
- cb: $si__input_agents && $input_agents__closures,
7370
- ci: $view__closures,
7371
- ck: $reviewFindOpen__closures,
7372
- cs: $si__input_workspace && $ws_id__closures,
7373
- cu: $si__input_workspace && $ws_name__closures,
7374
- cv: $shownSessions__closures,
7375
- cx: $curTab__closures,
7376
- cy: $toggleReviewFind2__closures,
7377
- d0: $closeSession2__closures,
7378
- d1: $renameSession2__closures,
7379
- d2: $newSession2__closures,
7380
- c7: $si__input_preferred && $input_preferred__closures,
7381
- cq: $spawning__closures
7423
+ cy: $error__closures,
7424
+ cc: $si__input_active && $input_active__closures,
7425
+ ch: $si__input_agents && $input_agents__closures,
7426
+ co: $view__closures,
7427
+ cq: $reviewFindOpen__closures,
7428
+ d1: $si__input_workspace && $ws_id__closures,
7429
+ d3: $si__input_workspace && $ws_name__closures,
7430
+ d4: $shownSessions__closures,
7431
+ d6: $curTab__closures,
7432
+ d7: $toggleReviewFind2__closures,
7433
+ d9: $closeSession2__closures,
7434
+ da: $renameSession2__closures,
7435
+ db: $newSession2__closures,
7436
+ cd: $si__input_preferred && $input_preferred__closures,
7437
+ cz: $spawning__closures
7382
7438
  });
7383
7439
  _resume_branch($scope0_id);
7384
7440
  });
@@ -7395,6 +7451,8 @@ var app_shell_default = _template("c", (input) => {
7395
7451
  const $initial_view__closures = /* @__PURE__ */ new Set();
7396
7452
  const $initial_sessionId__closures = /* @__PURE__ */ new Set();
7397
7453
  const $initial_pr__closures = /* @__PURE__ */ new Set();
7454
+ const $initial_scope__closures = /* @__PURE__ */ new Set();
7455
+ const $initial_file__closures = /* @__PURE__ */ new Set();
7398
7456
  const $workspaces__closures = /* @__PURE__ */ new Set();
7399
7457
  const $status__closures = /* @__PURE__ */ new Set();
7400
7458
  const $settings__closures = /* @__PURE__ */ new Set();
@@ -7600,13 +7658,17 @@ var app_shell_default = _template("c", (input) => {
7600
7658
  initialView: ws.id === initial.workspaceId || !initial.workspaceId ? initial.view : void 0,
7601
7659
  initialTab: ws.id === initial.workspaceId ? initial.sessionId ?? null : null,
7602
7660
  initialPr: ws.id === initial.workspaceId ? initial.pr ?? null : null,
7661
+ initialScope: ws.id === initial.workspaceId ? initial.scope ?? null : null,
7662
+ initialFile: ws.id === initial.workspaceId ? initial.file ?? null : null,
7603
7663
  onRouteChange: _resume(function(r) {
7604
7664
  if (ws.id !== selectedId) return;
7605
7665
  route = {
7606
7666
  workspaceId: ws.id,
7607
7667
  view: r.view,
7608
7668
  sessionId: r.sessionId,
7609
- pr: r.pr
7669
+ pr: r.pr,
7670
+ scope: r.scope,
7671
+ file: r.file
7610
7672
  };
7611
7673
  }, "c12", $scope2_id),
7612
7674
  onPreferredChange: _resume(function(agent) {
@@ -7645,7 +7707,7 @@ var app_shell_default = _template("c", (input) => {
7645
7707
  }, "c20", $scope2_id)
7646
7708
  });
7647
7709
  _show_end($scope2_id, "d", $show);
7648
- _subscribe($openWorkspace2__closures, _subscribe($applyWorkspaces2__closures, _subscribe($setup2__closures, _subscribe($creating__closures, _subscribe($selectedId__closures, _subscribe($settings__closures, _subscribe($status__closures, _subscribe($workspaces__closures, _subscribe($si__input_initial && $initial_pr__closures, _subscribe($si__input_initial && $initial_sessionId__closures, _subscribe($si__input_initial && $initial_view__closures, _subscribe($si__input_initial && $initial_workspaceId__closures, writeScope($scope2_id, { b: _existing_scope($childScope3) })))))))))))));
7710
+ _subscribe($openWorkspace2__closures, _subscribe($applyWorkspaces2__closures, _subscribe($setup2__closures, _subscribe($creating__closures, _subscribe($selectedId__closures, _subscribe($settings__closures, _subscribe($status__closures, _subscribe($workspaces__closures, _subscribe($si__input_initial && $initial_file__closures, _subscribe($si__input_initial && $initial_scope__closures, _subscribe($si__input_initial && $initial_pr__closures, _subscribe($si__input_initial && $initial_sessionId__closures, _subscribe($si__input_initial && $initial_view__closures, _subscribe($si__input_initial && $initial_workspaceId__closures, writeScope($scope2_id, { b: _existing_scope($childScope3) })))))))))))))));
7649
7711
  return 0;
7650
7712
  }
7651
7713
  }, $scope1_id, "a");
@@ -7665,41 +7727,45 @@ var app_shell_default = _template("c", (input) => {
7665
7727
  t: initial.view,
7666
7728
  u: initial.sessionId,
7667
7729
  v: initial.pr,
7668
- w: workspaces,
7669
- x: status,
7670
- y: settings,
7671
- z: $si__input_initial && last,
7672
- a0: $si__input_initial && bootActive,
7673
- a2: $si__input_initial && bootActive?.length,
7674
- a4: selectedId,
7675
- a5: openIds,
7676
- a8: creating,
7677
- a9: route,
7678
- ab: lastUrl.route,
7679
- ad: setup,
7680
- ae: wantSetup,
7681
- af: showSetup,
7682
- ah: error,
7683
- ai: applyWorkspaces,
7684
- aj: load,
7685
- ak: patchStatusSessions,
7686
- am: statusMem.fresh,
7687
- an: statusMem.run,
7688
- ap: loadStatus,
7689
- aq: openWorkspace,
7690
- b2: $error__closures,
7691
- as: $si__input_initial && $initial_workspaceId__closures,
7692
- at: $si__input_initial && $initial_view__closures,
7693
- au: $si__input_initial && $initial_sessionId__closures,
7694
- av: $si__input_initial && $initial_pr__closures,
7695
- aw: $workspaces__closures,
7696
- ax: $status__closures,
7697
- ay: $settings__closures,
7698
- az: $selectedId__closures,
7699
- b0: $creating__closures,
7700
- b1: $setup2__closures,
7701
- b3: $applyWorkspaces2__closures,
7702
- b4: $openWorkspace2__closures
7730
+ w: initial.scope,
7731
+ x: initial.file,
7732
+ y: workspaces,
7733
+ z: status,
7734
+ a0: settings,
7735
+ a1: $si__input_initial && last,
7736
+ a2: $si__input_initial && bootActive,
7737
+ a4: $si__input_initial && bootActive?.length,
7738
+ a6: selectedId,
7739
+ a7: openIds,
7740
+ aa: creating,
7741
+ ab: route,
7742
+ ad: lastUrl.route,
7743
+ af: setup,
7744
+ ag: wantSetup,
7745
+ ah: showSetup,
7746
+ aj: error,
7747
+ ak: applyWorkspaces,
7748
+ al: load,
7749
+ am: patchStatusSessions,
7750
+ ao: statusMem.fresh,
7751
+ ap: statusMem.run,
7752
+ ar: loadStatus,
7753
+ as: openWorkspace,
7754
+ b6: $error__closures,
7755
+ au: $si__input_initial && $initial_workspaceId__closures,
7756
+ av: $si__input_initial && $initial_view__closures,
7757
+ aw: $si__input_initial && $initial_sessionId__closures,
7758
+ ax: $si__input_initial && $initial_pr__closures,
7759
+ ay: $si__input_initial && $initial_scope__closures,
7760
+ az: $si__input_initial && $initial_file__closures,
7761
+ b0: $workspaces__closures,
7762
+ b1: $status__closures,
7763
+ b2: $settings__closures,
7764
+ b3: $selectedId__closures,
7765
+ b4: $creating__closures,
7766
+ b5: $setup2__closures,
7767
+ b7: $applyWorkspaces2__closures,
7768
+ b8: $openWorkspace2__closures
7703
7769
  });
7704
7770
  _resume_branch($scope0_id);
7705
7771
  });
@@ -7799,7 +7865,7 @@ var app_page_default = _template("b", (input) => {
7799
7865
  });
7800
7866
  //#endregion
7801
7867
  //#region src/routes/_app/new/+page.marko
7802
- var _page_default$4 = _template("W", (input) => {
7868
+ var _page_default$4 = _template("X", (input) => {
7803
7869
  _scope_reason();
7804
7870
  _scope_id();
7805
7871
  app_page_default({ initial: {
@@ -7841,7 +7907,7 @@ var GET$18 = Run.GET(async (_ctx, next) => {
7841
7907
  });
7842
7908
  //#endregion
7843
7909
  //#region src/routes/_app/settings/+page.marko
7844
- var _page_default$3 = _template("X", (input) => {
7910
+ var _page_default$3 = _template("Y", (input) => {
7845
7911
  _scope_reason();
7846
7912
  _scope_id();
7847
7913
  app_page_default({ initial: {
@@ -7878,7 +7944,7 @@ function head3(context) {
7878
7944
  }
7879
7945
  //#endregion
7880
7946
  //#region src/routes/_app/w/$id/+page.marko
7881
- var _page_default$2 = _template("Y", (input) => {
7947
+ var _page_default$2 = _template("Z", (input) => {
7882
7948
  _scope_reason();
7883
7949
  _scope_id();
7884
7950
  app_page_default({ initial: {
@@ -7915,7 +7981,7 @@ function head4(context) {
7915
7981
  }
7916
7982
  //#endregion
7917
7983
  //#region src/routes/_app/w/$id/manage/+page.marko
7918
- var _page_default$1 = _template("Z", (input) => {
7984
+ var _page_default$1 = _template("$", (input) => {
7919
7985
  _scope_reason();
7920
7986
  _scope_id();
7921
7987
  app_page_default({ initial: {
@@ -7951,13 +8017,17 @@ function head5(context) {
7951
8017
  }
7952
8018
  //#endregion
7953
8019
  //#region src/routes/_app/w/$id/review/+page.marko
7954
- var _page_default = _template("$", (input) => {
8020
+ var _page_default = _template("ab", (input) => {
7955
8021
  _scope_reason();
7956
8022
  _scope_id();
8023
+ const q = $global().url.searchParams;
8024
+ const scope = q.get("scope");
7957
8025
  app_page_default({ initial: {
7958
8026
  workspaceId: $global().params.id,
7959
8027
  view: "diff",
7960
- pr: $global().url.searchParams.get("pr")
8028
+ pr: q.get("pr"),
8029
+ scope: scope === "working" || scope === "dirty" ? scope : null,
8030
+ file: q.get("file")
7961
8031
  } });
7962
8032
  });
7963
8033
  //#endregion
@@ -8126,6 +8196,21 @@ function _getStandardProps(context) {
8126
8196
  return cached;
8127
8197
  }
8128
8198
  /**
8199
+ * Disallows inherited object properties and prevents object prototype
8200
+ * pollution by disallowing certain keys.
8201
+ *
8202
+ * @param object The object to check.
8203
+ * @param key The key to check.
8204
+ *
8205
+ * @returns Whether the key is allowed.
8206
+ *
8207
+ * @internal
8208
+ */
8209
+ /* @__NO_SIDE_EFFECTS__ */
8210
+ function _isValidObjectKey(object$1, key) {
8211
+ return Object.prototype.hasOwnProperty.call(object$1, key) && key !== "__proto__" && key !== "prototype" && key !== "constructor";
8212
+ }
8213
+ /**
8129
8214
  * Joins multiple `expects` values with the given separator.
8130
8215
  *
8131
8216
  * @param values The `expects` values.
@@ -8545,6 +8630,74 @@ function picklist(options, message$1) {
8545
8630
  };
8546
8631
  }
8547
8632
  /* @__NO_SIDE_EFFECTS__ */
8633
+ function record(key, value$1, message$1) {
8634
+ return {
8635
+ kind: "schema",
8636
+ type: "record",
8637
+ reference: record,
8638
+ expects: "Object",
8639
+ async: false,
8640
+ key,
8641
+ value: value$1,
8642
+ message: message$1,
8643
+ get "~standard"() {
8644
+ return /* @__PURE__ */ _getStandardProps(this);
8645
+ },
8646
+ "~run"(dataset, config$1) {
8647
+ const input = dataset.value;
8648
+ if (input && typeof input === "object") {
8649
+ dataset.typed = true;
8650
+ dataset.value = {};
8651
+ for (const entryKey in input) if (/* @__PURE__ */ _isValidObjectKey(input, entryKey)) {
8652
+ const entryValue = input[entryKey];
8653
+ const keyDataset = this.key["~run"]({ value: entryKey }, config$1);
8654
+ if (keyDataset.issues) {
8655
+ const pathItem = {
8656
+ type: "object",
8657
+ origin: "key",
8658
+ input,
8659
+ key: entryKey,
8660
+ value: entryValue
8661
+ };
8662
+ for (const issue of keyDataset.issues) {
8663
+ issue.path = [pathItem];
8664
+ dataset.issues?.push(issue);
8665
+ }
8666
+ if (!dataset.issues) dataset.issues = keyDataset.issues;
8667
+ if (config$1.abortEarly) {
8668
+ dataset.typed = false;
8669
+ break;
8670
+ }
8671
+ }
8672
+ const valueDataset = this.value["~run"]({ value: entryValue }, config$1);
8673
+ if (valueDataset.issues) {
8674
+ const pathItem = {
8675
+ type: "object",
8676
+ origin: "value",
8677
+ input,
8678
+ key: entryKey,
8679
+ value: entryValue
8680
+ };
8681
+ for (const issue of valueDataset.issues) {
8682
+ if (issue.path) issue.path.unshift(pathItem);
8683
+ else issue.path = [pathItem];
8684
+ dataset.issues?.push(issue);
8685
+ }
8686
+ if (!dataset.issues) dataset.issues = valueDataset.issues;
8687
+ if (config$1.abortEarly) {
8688
+ dataset.typed = false;
8689
+ break;
8690
+ }
8691
+ }
8692
+ if (!keyDataset.typed || !valueDataset.typed) dataset.typed = false;
8693
+ if (keyDataset.typed) dataset.value[keyDataset.value] = valueDataset.value;
8694
+ }
8695
+ } else _addIssue(this, "type", dataset, config$1);
8696
+ return dataset;
8697
+ }
8698
+ };
8699
+ }
8700
+ /* @__NO_SIDE_EFFECTS__ */
8548
8701
  function string(message$1) {
8549
8702
  return {
8550
8703
  kind: "schema",
@@ -9081,45 +9234,9 @@ function head17(context) {
9081
9234
  return stripResponseBody(get17(context));
9082
9235
  }
9083
9236
  //#endregion
9084
- //#region src/server/review.ts
9085
- function reviewState(workspaceId) {
9086
- return { comments: all("SELECT * FROM review_comments WHERE workspace_id = ? ORDER BY worktree, path, line_start", workspaceId) };
9087
- }
9088
- function addComment(workspaceId, comment) {
9089
- const { lastInsertRowid } = db.prepare(`INSERT INTO review_comments
9090
- (workspace_id, worktree, path, side, line_start, line_end, text)
9091
- VALUES (?, ?, ?, ?, ?, ?, ?)`).run(workspaceId, comment.worktree, comment.path, comment.side, comment.line_start, comment.line_end, comment.text);
9092
- publish("review.changed", { workspaceId });
9093
- return get("SELECT * FROM review_comments WHERE id = ?", lastInsertRowid);
9094
- }
9095
- function deleteComment(id) {
9096
- const row = get("SELECT workspace_id FROM review_comments WHERE id = ?", id);
9097
- db.prepare("DELETE FROM review_comments WHERE id = ?").run(id);
9098
- if (row) publish("review.changed", { workspaceId: row.workspace_id });
9099
- }
9100
- function clearComments(workspaceId) {
9101
- db.prepare("DELETE FROM review_comments WHERE workspace_id = ?").run(workspaceId);
9102
- publish("review.changed", { workspaceId });
9103
- }
9104
- //#endregion
9105
- //#region __marko-run__api.review-comments.$.js
9106
- var deleteHandler$2 = normalizeHandler(Run.DELETE({ params({ id }) {
9107
- const n = Number(id);
9108
- if (!Number.isInteger(n)) throw httpError(400, "invalid comment id");
9109
- return { id: n };
9110
- } }, (ctx) => {
9111
- deleteComment(ctx.params.id);
9112
- return Response.json({ ok: true });
9113
- }), "DELETE");
9114
- var delete18_options = mergeOptions(mware11, deleteHandler$2);
9115
- function delete18(context) {
9116
- const __deleteHandler = (data) => call(deleteHandler$2, noContent, context, data);
9117
- return call(mware11, __deleteHandler, context);
9118
- }
9119
- //#endregion
9120
9237
  //#region src/routes/api/sessions/$id/+handler.ts
9121
9238
  var Rename = /* @__PURE__ */ object({ title: /* @__PURE__ */ pipe(/* @__PURE__ */ string(), /* @__PURE__ */ trim(), /* @__PURE__ */ minLength(1), /* @__PURE__ */ maxLength(60)) });
9122
- var DELETE$1 = Run.DELETE(async (ctx) => {
9239
+ var DELETE$2 = Run.DELETE(async (ctx) => {
9123
9240
  await killSession(ctx.params.id);
9124
9241
  return Response.json({ ok: true });
9125
9242
  });
@@ -9130,14 +9247,14 @@ var patchHandler = normalizeHandler(Run.PATCH({ json: Rename }, async (ctx) => {
9130
9247
  renameSession(ctx.params.id, body.title);
9131
9248
  return Response.json({ ok: true });
9132
9249
  }), "PATCH");
9133
- var deleteHandler$1 = normalizeHandler(DELETE$1, "DELETE");
9134
- var delete19_options = mergeOptions(mware11, deleteHandler$1);
9135
- var patch19_options = mergeOptions(mware11, patchHandler);
9136
- function delete19(context) {
9137
- const __deleteHandler = (data) => call(deleteHandler$1, noContent, context, data);
9250
+ var deleteHandler$2 = normalizeHandler(DELETE$2, "DELETE");
9251
+ var delete18_options = mergeOptions(mware11, deleteHandler$2);
9252
+ var patch18_options = mergeOptions(mware11, patchHandler);
9253
+ function delete18(context) {
9254
+ const __deleteHandler = (data) => call(deleteHandler$2, noContent, context, data);
9138
9255
  return call(mware11, __deleteHandler, context);
9139
9256
  }
9140
- function patch19(context) {
9257
+ function patch18(context) {
9141
9258
  const __patchHandler = (data) => call(patchHandler, noContent, context, data);
9142
9259
  return call(mware11, __patchHandler, context);
9143
9260
  }
@@ -9158,8 +9275,8 @@ var postHandler$8 = normalizeHandler(Run.POST({ json: Send }, async (ctx) => {
9158
9275
  } : void 0);
9159
9276
  return Response.json({ ok: true });
9160
9277
  }), "POST");
9161
- var post20_options = mergeOptions(mware11, postHandler$8);
9162
- function post20(context) {
9278
+ var post19_options = mergeOptions(mware11, postHandler$8);
9279
+ function post19(context) {
9163
9280
  const __postHandler = (data) => call(postHandler$8, noContent, context, data);
9164
9281
  return call(mware11, __postHandler, context);
9165
9282
  }
@@ -9191,31 +9308,31 @@ var putHandler = normalizeHandler(Run.PUT({ json: Patch }, async (ctx) => {
9191
9308
  return Response.json(snapshot());
9192
9309
  }), "PUT");
9193
9310
  var getHandler$10 = normalizeHandler(GET$10, "GET");
9194
- var get21_options = mergeOptions(mware11, getHandler$10);
9195
- var head21_options = mergeOptions(mware11);
9196
- var put21_options = mergeOptions(mware11, putHandler);
9197
- function get21(context) {
9311
+ var get20_options = mergeOptions(mware11, getHandler$10);
9312
+ var head20_options = mergeOptions(mware11);
9313
+ var put20_options = mergeOptions(mware11, putHandler);
9314
+ function get20(context) {
9198
9315
  const __getHandler = (data) => call(getHandler$10, noContent, context, data);
9199
9316
  return call(mware11, __getHandler, context);
9200
9317
  }
9201
- function head21(context) {
9202
- return stripResponseBody(get21(context));
9318
+ function head20(context) {
9319
+ return stripResponseBody(get20(context));
9203
9320
  }
9204
- function put21(context) {
9321
+ function put20(context) {
9205
9322
  const __putHandler = (data) => call(putHandler, noContent, context, data);
9206
9323
  return call(mware11, __putHandler, context);
9207
9324
  }
9208
9325
  //#endregion
9209
9326
  //#region __marko-run__api.setup.js
9210
9327
  var getHandler$9 = normalizeHandler(Run.GET({ search: (value) => ({ refresh: "refresh" in value }) }, async (ctx) => Response.json(await getSetup(ctx.search.refresh))), "GET");
9211
- var get22_options = mergeOptions(mware11, getHandler$9);
9212
- var head22_options = mergeOptions(mware11);
9213
- function get22(context) {
9328
+ var get21_options = mergeOptions(mware11, getHandler$9);
9329
+ var head21_options = mergeOptions(mware11);
9330
+ function get21(context) {
9214
9331
  const __getHandler = (data) => call(getHandler$9, noContent, context, data);
9215
9332
  return call(mware11, __getHandler, context);
9216
9333
  }
9217
- function head22(context) {
9218
- return stripResponseBody(get22(context));
9334
+ function head21(context) {
9335
+ return stripResponseBody(get21(context));
9219
9336
  }
9220
9337
  //#endregion
9221
9338
  //#region src/routes/api/setup/$id/+handler.ts
@@ -9235,34 +9352,34 @@ var postHandler$7 = normalizeHandler(Run.POST({ json: Body }, async (ctx) => {
9235
9352
  const body = await readBody(ctx);
9236
9353
  return Response.json(await runSetupAction(ctx.params.id, body.action, { version: body.version }));
9237
9354
  }), "POST");
9238
- var post23_options = mergeOptions(mware11, postHandler$7);
9239
- function post23(context) {
9355
+ var post22_options = mergeOptions(mware11, postHandler$7);
9356
+ function post22(context) {
9240
9357
  const __postHandler = (data) => call(postHandler$7, noContent, context, data);
9241
9358
  return call(mware11, __postHandler, context);
9242
9359
  }
9243
9360
  //#endregion
9244
9361
  //#region __marko-run__api.setup.search.js
9245
9362
  var getHandler$8 = normalizeHandler(Run.GET({ search: (value) => ({ q: typeof value.q === "string" ? value.q : "" }) }, async (ctx) => Response.json(await searchMise(ctx.search.q))), "GET");
9246
- var get24_options = mergeOptions(mware11, getHandler$8);
9247
- var head24_options = mergeOptions(mware11);
9248
- function get24(context) {
9363
+ var get23_options = mergeOptions(mware11, getHandler$8);
9364
+ var head23_options = mergeOptions(mware11);
9365
+ function get23(context) {
9249
9366
  const __getHandler = (data) => call(getHandler$8, noContent, context, data);
9250
9367
  return call(mware11, __getHandler, context);
9251
9368
  }
9252
- function head24(context) {
9253
- return stripResponseBody(get24(context));
9369
+ function head23(context) {
9370
+ return stripResponseBody(get23(context));
9254
9371
  }
9255
9372
  //#endregion
9256
9373
  //#region __marko-run__api.status.js
9257
9374
  var getHandler$7 = normalizeHandler(Run.GET({ search: (value) => ({ fresh: "fresh" in value }) }, async (ctx) => Response.json(await (ctx.search.fresh ? statusForAllFresh() : statusForAll()))), "GET");
9258
- var get25_options = mergeOptions(mware11, getHandler$7);
9259
- var head25_options = mergeOptions(mware11);
9260
- function get25(context) {
9375
+ var get24_options = mergeOptions(mware11, getHandler$7);
9376
+ var head24_options = mergeOptions(mware11);
9377
+ function get24(context) {
9261
9378
  const __getHandler = (data) => call(getHandler$7, noContent, context, data);
9262
9379
  return call(mware11, __getHandler, context);
9263
9380
  }
9264
- function head25(context) {
9265
- return stripResponseBody(get25(context));
9381
+ function head24(context) {
9382
+ return stripResponseBody(get24(context));
9266
9383
  }
9267
9384
  //#endregion
9268
9385
  //#region src/server/usage/shared.ts
@@ -10013,14 +10130,14 @@ var usage = async (refresh = false) => {
10013
10130
  //#endregion
10014
10131
  //#region __marko-run__api.usage.js
10015
10132
  var getHandler$6 = normalizeHandler(Run.GET({ search: (value) => ({ refresh: "refresh" in value }) }, async (ctx) => Response.json(await usage(ctx.search.refresh))), "GET");
10016
- var get26_options = mergeOptions(mware11, getHandler$6);
10017
- var head26_options = mergeOptions(mware11);
10018
- function get26(context) {
10133
+ var get25_options = mergeOptions(mware11, getHandler$6);
10134
+ var head25_options = mergeOptions(mware11);
10135
+ function get25(context) {
10019
10136
  const __getHandler = (data) => call(getHandler$6, noContent, context, data);
10020
10137
  return call(mware11, __getHandler, context);
10021
10138
  }
10022
- function head26(context) {
10023
- return stripResponseBody(get26(context));
10139
+ function head25(context) {
10140
+ return stripResponseBody(get25(context));
10024
10141
  }
10025
10142
  //#endregion
10026
10143
  //#region src/routes/api/workspaces/+handler.ts
@@ -10042,17 +10159,17 @@ var postHandler$6 = normalizeHandler(Run.POST({ json: CreateWorkspace }, async (
10042
10159
  return Response.json(await withProgressOp(body.opId ?? "", () => createWorkspace(body.name, body.repos)));
10043
10160
  }), "POST");
10044
10161
  var getHandler$5 = normalizeHandler(GET$5, "GET");
10045
- var get27_options = mergeOptions(mware11, getHandler$5);
10046
- var head27_options = mergeOptions(mware11);
10047
- var post27_options = mergeOptions(mware11, postHandler$6);
10048
- function get27(context) {
10162
+ var get26_options = mergeOptions(mware11, getHandler$5);
10163
+ var head26_options = mergeOptions(mware11);
10164
+ var post26_options = mergeOptions(mware11, postHandler$6);
10165
+ function get26(context) {
10049
10166
  const __getHandler = (data) => call(getHandler$5, noContent, context, data);
10050
10167
  return call(mware11, __getHandler, context);
10051
10168
  }
10052
- function head27(context) {
10053
- return stripResponseBody(get27(context));
10169
+ function head26(context) {
10170
+ return stripResponseBody(get26(context));
10054
10171
  }
10055
- function post27(context) {
10172
+ function post26(context) {
10056
10173
  const __postHandler = (data) => call(postHandler$6, noContent, context, data);
10057
10174
  return call(mware11, __postHandler, context);
10058
10175
  }
@@ -10075,11 +10192,11 @@ var postHandler$5 = normalizeHandler(Run.POST({ json: WorkspaceAction }, async (
10075
10192
  });
10076
10193
  return Response.json({ ok: true });
10077
10194
  }), "POST");
10078
- var post28_options = mergeOptions(mware11, mware34, postHandler$5);
10079
- function post28(context) {
10195
+ var post27_options = mergeOptions(mware11, mware33, postHandler$5);
10196
+ function post27(context) {
10080
10197
  const __postHandler = (data) => call(postHandler$5, noContent, context, data);
10081
- const __mware34 = (data) => call(mware34, __postHandler, context, data);
10082
- return call(mware11, __mware34, context);
10198
+ const __mware33 = (data) => call(mware33, __postHandler, context, data);
10199
+ return call(mware11, __mware33, context);
10083
10200
  }
10084
10201
  //#endregion
10085
10202
  //#region src/routes/api/workspaces/$id/assets/+handler.ts
@@ -10098,11 +10215,49 @@ var postHandler$4 = normalizeHandler(Run.POST({ search: (value) => ({ name: type
10098
10215
  fs.writeFileSync(path.join(ws.path, relative), data);
10099
10216
  return Response.json({ path: relative });
10100
10217
  }), "POST");
10101
- var post29_options = mergeOptions(mware11, mware34, postHandler$4);
10102
- function post29(context) {
10218
+ var post28_options = mergeOptions(mware11, mware33, postHandler$4);
10219
+ function post28(context) {
10103
10220
  const __postHandler = (data) => call(postHandler$4, noContent, context, data);
10104
- const __mware34 = (data) => call(mware34, __postHandler, context, data);
10105
- return call(mware11, __mware34, context);
10221
+ const __mware33 = (data) => call(mware33, __postHandler, context, data);
10222
+ return call(mware11, __mware33, context);
10223
+ }
10224
+ //#endregion
10225
+ //#region src/server/review.ts
10226
+ function reviewState(workspaceId) {
10227
+ return { comments: all("SELECT * FROM review_comments WHERE workspace_id = ? ORDER BY worktree, path, line_start", workspaceId) };
10228
+ }
10229
+ function addComment(workspaceId, comment) {
10230
+ const { lastInsertRowid } = db.prepare(`INSERT INTO review_comments
10231
+ (workspace_id, worktree, path, side, line_start, line_end, text, head, snippet)
10232
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`).run(workspaceId, comment.worktree, comment.path, comment.side, comment.line_start, comment.line_end, comment.text, comment.head ?? null, comment.snippet ?? null);
10233
+ publish("review.changed", { workspaceId });
10234
+ return get("SELECT * FROM review_comments WHERE id = ?", lastInsertRowid);
10235
+ }
10236
+ function deleteComment(id) {
10237
+ const row = get("SELECT workspace_id FROM review_comments WHERE id = ?", id);
10238
+ db.prepare("DELETE FROM review_comments WHERE id = ?").run(id);
10239
+ if (row) publish("review.changed", { workspaceId: row.workspace_id });
10240
+ }
10241
+ function clearComments(workspaceId) {
10242
+ db.prepare("DELETE FROM review_comments WHERE workspace_id = ?").run(workspaceId);
10243
+ publish("review.changed", { workspaceId });
10244
+ }
10245
+ var seenKey = (workspaceId) => `review.seen:${workspaceId}`;
10246
+ function reviewSeen(workspaceId) {
10247
+ const raw = getSetting(seenKey(workspaceId));
10248
+ if (!raw) return null;
10249
+ try {
10250
+ const parsed = JSON.parse(raw);
10251
+ return {
10252
+ heads: parsed.heads || {},
10253
+ dirty: parsed.dirty || {}
10254
+ };
10255
+ } catch {
10256
+ return null;
10257
+ }
10258
+ }
10259
+ function markReviewSeen(workspaceId, seen) {
10260
+ setSetting(seenKey(workspaceId), JSON.stringify(seen));
10106
10261
  }
10107
10262
  //#endregion
10108
10263
  //#region src/server/diff.ts
@@ -10200,12 +10355,13 @@ async function treeContainedIn(dir, base, head) {
10200
10355
  }
10201
10356
  /** Open PRs as GitHub's files tab (remote head vs the PR's `--base`).
10202
10357
  * Repos with no open PR fall back to the local checkout vs the derived
10203
- * base. `pr` (`worktree/number`) focuses one PR. `uncommitted` overlays
10204
- * the working tree on the PR whose head is the current branch. */
10358
+ * base. `pr` (`worktree/number`) focuses one PR. `scope` (see DiffScope)
10359
+ * overlays the working tree on the PR whose head is the current branch. */
10205
10360
  async function workspaceDiff(ws, opts = {}) {
10206
- const { baseRef, uncommitted = false, pr: focus, refresh = false } = opts;
10361
+ const { baseRef, scope = "committed", pr: focus, refresh = false } = opts;
10207
10362
  if (refresh) for (const repo of ws.repos) lastFetch.delete(repo.full_name);
10208
10363
  const foreign = otherWorkspaceBranches(ws.id);
10364
+ const seen = reviewSeen(ws.id);
10209
10365
  return (await Promise.all(ws.repos.map(async (repo) => {
10210
10366
  const dir = path.join(ws.path, repo.worktree);
10211
10367
  const branch = await git([
@@ -10215,15 +10371,44 @@ async function workspaceDiff(ws, opts = {}) {
10215
10371
  ], dir).catch(() => "HEAD");
10216
10372
  const localHead = await headOid(dir);
10217
10373
  const open = (await workspacePrs(repo.full_name, ws.branch, foreign, refresh)).filter((p) => p.state === "OPEN" && p.baseRefName && p.headRefName && (!focus || focus === `${repo.worktree}/${p.number}`));
10218
- if (open.length) return Promise.all(open.map((p) => prDiff(dir, repo, p, {
10219
- uncommitted: uncommitted && branch === p.headRefName,
10374
+ let list;
10375
+ if (open.length) list = await Promise.all(open.map((p) => prDiff(dir, repo, p, {
10376
+ scope: branch === p.headRefName ? scope : "committed",
10220
10377
  localHead,
10221
10378
  branch
10222
10379
  })));
10223
- if (focus) return [];
10224
- return [await localDiff(dir, ws, repo, branch, localHead, baseRef, uncommitted)];
10380
+ else if (focus) list = [];
10381
+ else list = [await localDiff(dir, ws, repo, branch, localHead, baseRef, scope)];
10382
+ for (const section of list) await markChangedSince(dir, section, seen);
10383
+ return list;
10225
10384
  }))).flat();
10226
10385
  }
10386
+ /** Flag files touched since the reviewer's last visit: committed changes
10387
+ * between the seen head and this head, plus working-tree files whose
10388
+ * content fingerprint moved. Nothing is flagged on the first visit. */
10389
+ async function markChangedSince(dir, section, seen) {
10390
+ if (!seen) return;
10391
+ const seenHead = seen.heads[section.worktree];
10392
+ if (!seenHead) return;
10393
+ section.seenHead = seenHead;
10394
+ const committed = /* @__PURE__ */ new Set();
10395
+ if (seenHead !== section.head) {
10396
+ const names = await git([
10397
+ "diff",
10398
+ "--name-only",
10399
+ "-z",
10400
+ "--no-renames",
10401
+ seenHead,
10402
+ section.head
10403
+ ], dir).catch(() => "");
10404
+ for (const p of names.split("\0")) if (p) committed.add(p);
10405
+ }
10406
+ for (const file of section.files) {
10407
+ const key = `${section.worktree}/${file.path}`;
10408
+ const dirtyMoved = file.hash != null && seen.dirty[key] !== file.hash;
10409
+ if (committed.has(file.path) || dirtyMoved) file.changedSince = true;
10410
+ }
10411
+ }
10227
10412
  async function prDiff(dir, repo, pr, ctx) {
10228
10413
  await freshenBaseRefs(dir, repo.full_name, [pr.baseRefName, pr.headRefName]);
10229
10414
  const headRef = `origin/${pr.headRefName}`;
@@ -10250,7 +10435,7 @@ async function prDiff(dir, repo, pr, ctx) {
10250
10435
  head
10251
10436
  ], dir).catch(() => "");
10252
10437
  const contained = await treeContainedIn(dir, baseRef, head);
10253
- const files = await collectFiles(dir, contained ? head : mergeBase || baseRef, head, ctx.uncommitted);
10438
+ const files = await collectFiles(dir, contained ? head : mergeBase || baseRef, head, ctx.scope);
10254
10439
  const githubDrift = !!pr.headRefOid && head !== pr.headRefOid;
10255
10440
  return {
10256
10441
  id: `${repo.worktree}#${pr.number}`,
@@ -10268,7 +10453,8 @@ async function prDiff(dir, repo, pr, ctx) {
10268
10453
  files
10269
10454
  };
10270
10455
  }
10271
- async function localDiff(dir, ws, repo, branch, localHead, baseRef, uncommitted) {
10456
+ async function localDiff(dir, ws, repo, branch, localHead, baseRef, scope) {
10457
+ const uncommitted = scope !== "committed";
10272
10458
  await freshenBaseRefs(dir, repo.full_name, [
10273
10459
  ws.branch,
10274
10460
  ...branch !== "HEAD" ? [branch] : [],
@@ -10290,7 +10476,7 @@ async function localDiff(dir, ws, repo, branch, localHead, baseRef, uncommitted)
10290
10476
  const contained = !missing && await treeContainedIn(dir, ref, "HEAD");
10291
10477
  const against = contained ? "HEAD" : mergeBase;
10292
10478
  const baseSha = missing ? localHead : await git(["rev-parse", ref], dir).catch(() => mergeBase);
10293
- const files = await collectFiles(dir, against, "HEAD", uncommitted);
10479
+ const files = await collectFiles(dir, against, "HEAD", scope);
10294
10480
  return {
10295
10481
  id: repo.worktree,
10296
10482
  worktree: repo.worktree,
@@ -10315,7 +10501,9 @@ function prMeta(pr) {
10315
10501
  ...pr.headRefOid && { headRefOid: pr.headRefOid }
10316
10502
  };
10317
10503
  }
10318
- async function collectFiles(dir, oldRev, newRev, uncommitted) {
10504
+ async function collectFiles(dir, oldRev, newRev, scope) {
10505
+ if (scope === "dirty") oldRev = newRev;
10506
+ const uncommitted = scope !== "committed";
10319
10507
  const nameArgs = uncommitted ? [
10320
10508
  "diff",
10321
10509
  "--name-status",
@@ -10344,7 +10532,7 @@ async function collectFiles(dir, oldRev, newRev, uncommitted) {
10344
10532
  oldRev,
10345
10533
  newRev
10346
10534
  ];
10347
- const [nameStatus, numstat, untracked] = await Promise.all([
10535
+ const [nameStatus, numstat, untracked, dirtyNames] = await Promise.all([
10348
10536
  git(nameArgs, dir).catch(() => ""),
10349
10537
  git(numArgs, dir).catch(() => ""),
10350
10538
  uncommitted ? git([
@@ -10352,8 +10540,17 @@ async function collectFiles(dir, oldRev, newRev, uncommitted) {
10352
10540
  "--others",
10353
10541
  "--exclude-standard",
10354
10542
  "-z"
10543
+ ], dir).catch(() => "") : Promise.resolve(""),
10544
+ uncommitted ? git([
10545
+ "diff",
10546
+ "--name-only",
10547
+ "-z",
10548
+ "--no-renames",
10549
+ "HEAD"
10355
10550
  ], dir).catch(() => "") : Promise.resolve("")
10356
10551
  ]);
10552
+ const dirtyPaths = new Set(dirtyNames.split("\0").filter(Boolean));
10553
+ for (const file of untracked.split("\0")) if (file) dirtyPaths.add(file);
10357
10554
  const entries = [];
10358
10555
  const parts = nameStatus.split("\0").filter(Boolean);
10359
10556
  for (let i = 0; i + 1 < parts.length; i += 2) entries.push({
@@ -10369,6 +10566,7 @@ async function collectFiles(dir, oldRev, newRev, uncommitted) {
10369
10566
  const news = uncommitted ? null : await batchContents(dir, newRev, entries.filter((e) => e.status !== "D").map((e) => e.path));
10370
10567
  const files = await Promise.all(entries.map(async (e) => {
10371
10568
  const file = news ? fromBlobs(e.path, e.status, olds.get(e.path), news.get(e.path)) : await loadWorktreeFile(dir, e.path, e.status, olds.get(e.path));
10569
+ if (!news && dirtyPaths.has(e.path)) file.hash = createHash("sha1").update(e.status).update(file.new ?? "").digest("hex").slice(0, 16);
10372
10570
  const st = stats.get(e.path);
10373
10571
  if (st) {
10374
10572
  file.additions = st.additions;
@@ -10501,40 +10699,47 @@ async function loadWorktreeFile(dir, filePath, status, old) {
10501
10699
  return result;
10502
10700
  }
10503
10701
  //#endregion
10702
+ //#region src/routes/api/workspaces/$id/diff/+handler.ts
10703
+ var SCOPES = [
10704
+ "committed",
10705
+ "working",
10706
+ "dirty"
10707
+ ];
10708
+ //#endregion
10504
10709
  //#region __marko-run__api.workspaces.$.diff.js
10505
10710
  var getHandler$4 = normalizeHandler(Run.GET({ search: (value) => ({
10506
10711
  base: typeof value.base === "string" && value.base ? value.base : void 0,
10507
- uncommitted: value.uncommitted === "1" || value.uncommitted === "true",
10712
+ scope: SCOPES.includes(value.scope) ? value.scope : value.uncommitted === "1" || value.uncommitted === "true" ? "working" : "committed",
10508
10713
  pr: typeof value.pr === "string" && value.pr ? value.pr : void 0,
10509
10714
  refresh: "refresh" in value
10510
10715
  }) }, async (ctx) => Response.json(await workspaceDiff(ctx.data.workspace, {
10511
10716
  baseRef: ctx.search.base,
10512
- uncommitted: ctx.search.uncommitted,
10717
+ scope: ctx.search.scope,
10513
10718
  pr: ctx.search.pr,
10514
10719
  refresh: ctx.search.refresh
10515
10720
  }))), "GET");
10516
- var get30_options = mergeOptions(mware11, mware34, getHandler$4);
10517
- var head30_options = mergeOptions(mware11, mware34);
10518
- function get30(context) {
10721
+ var get29_options = mergeOptions(mware11, mware33, getHandler$4);
10722
+ var head29_options = mergeOptions(mware11, mware33);
10723
+ function get29(context) {
10519
10724
  const __getHandler = (data) => call(getHandler$4, noContent, context, data);
10520
- const __mware34 = (data) => call(mware34, __getHandler, context, data);
10521
- return call(mware11, __mware34, context);
10725
+ const __mware33 = (data) => call(mware33, __getHandler, context, data);
10726
+ return call(mware11, __mware33, context);
10522
10727
  }
10523
- function head30(context) {
10524
- return stripResponseBody(get30(context));
10728
+ function head29(context) {
10729
+ return stripResponseBody(get29(context));
10525
10730
  }
10526
10731
  //#endregion
10527
10732
  //#region __marko-run__api.workspaces.$.procs.js
10528
10733
  var getHandler$3 = normalizeHandler(Run.GET(async (ctx) => Response.json(await workspaceProcs(ctx.data.workspace.path))), "GET");
10529
- var get31_options = mergeOptions(mware11, mware34, getHandler$3);
10530
- var head31_options = mergeOptions(mware11, mware34);
10531
- function get31(context) {
10734
+ var get30_options = mergeOptions(mware11, mware33, getHandler$3);
10735
+ var head30_options = mergeOptions(mware11, mware33);
10736
+ function get30(context) {
10532
10737
  const __getHandler = (data) => call(getHandler$3, noContent, context, data);
10533
- const __mware34 = (data) => call(mware34, __getHandler, context, data);
10534
- return call(mware11, __mware34, context);
10738
+ const __mware33 = (data) => call(mware33, __getHandler, context, data);
10739
+ return call(mware11, __mware33, context);
10535
10740
  }
10536
- function head31(context) {
10537
- return stripResponseBody(get31(context));
10741
+ function head30(context) {
10742
+ return stripResponseBody(get30(context));
10538
10743
  }
10539
10744
  //#endregion
10540
10745
  //#region src/routes/api/workspaces/$id/prs/+handler.ts
@@ -10581,21 +10786,21 @@ async function listPrs(ws, refresh) {
10581
10786
  //#region __marko-run__api.workspaces.$.prs.js
10582
10787
  var postHandler$3 = normalizeHandler(POST$3, "POST");
10583
10788
  var getHandler$2 = normalizeHandler(GET$2, "GET");
10584
- var get32_options = mergeOptions(mware11, mware34, getHandler$2);
10585
- var head32_options = mergeOptions(mware11, mware34);
10586
- var post32_options = mergeOptions(mware11, mware34, postHandler$3);
10587
- function get32(context) {
10789
+ var get31_options = mergeOptions(mware11, mware33, getHandler$2);
10790
+ var head31_options = mergeOptions(mware11, mware33);
10791
+ var post31_options = mergeOptions(mware11, mware33, postHandler$3);
10792
+ function get31(context) {
10588
10793
  const __getHandler = (data) => call(getHandler$2, noContent, context, data);
10589
- const __mware34 = (data) => call(mware34, __getHandler, context, data);
10590
- return call(mware11, __mware34, context);
10794
+ const __mware33 = (data) => call(mware33, __getHandler, context, data);
10795
+ return call(mware11, __mware33, context);
10591
10796
  }
10592
- function head32(context) {
10593
- return stripResponseBody(get32(context));
10797
+ function head31(context) {
10798
+ return stripResponseBody(get31(context));
10594
10799
  }
10595
- function post32(context) {
10800
+ function post31(context) {
10596
10801
  const __postHandler = (data) => call(postHandler$3, noContent, context, data);
10597
- const __mware34 = (data) => call(mware34, __postHandler, context, data);
10598
- return call(mware11, __mware34, context);
10802
+ const __mware33 = (data) => call(mware33, __postHandler, context, data);
10803
+ return call(mware11, __mware33, context);
10599
10804
  }
10600
10805
  //#endregion
10601
10806
  //#region src/routes/api/workspaces/$id/repos/+handler.ts
@@ -10609,35 +10814,45 @@ var postHandler$2 = normalizeHandler(Run.POST({ json: AddRepo }, async (ctx) =>
10609
10814
  const body = await readBody(ctx);
10610
10815
  return Response.json(await withProgressOp(ctx.params.id, () => addRepo$1(ctx.params.id, body.fullName, body.baseBranch)));
10611
10816
  }), "POST");
10612
- var post33_options = mergeOptions(mware11, mware34, postHandler$2);
10613
- function post33(context) {
10817
+ var post32_options = mergeOptions(mware11, mware33, postHandler$2);
10818
+ function post32(context) {
10614
10819
  const __postHandler = (data) => call(postHandler$2, noContent, context, data);
10615
- const __mware34 = (data) => call(mware34, __postHandler, context, data);
10616
- return call(mware11, __mware34, context);
10820
+ const __mware33 = (data) => call(mware33, __postHandler, context, data);
10821
+ return call(mware11, __mware33, context);
10617
10822
  }
10618
10823
  //#endregion
10619
10824
  //#region __marko-run__api.workspaces.$.repos.$.js
10620
- var deleteHandler = normalizeHandler(Run.DELETE(async (ctx) => {
10825
+ var deleteHandler$1 = normalizeHandler(Run.DELETE(async (ctx) => {
10621
10826
  await withProgressOp(ctx.params.id, () => removeRepo(ctx.params.id, ctx.params.worktree));
10622
10827
  return Response.json({ ok: true });
10623
10828
  }), "DELETE");
10624
- var delete34_options = mergeOptions(mware11, mware34, deleteHandler);
10625
- function delete34(context) {
10626
- const __deleteHandler = (data) => call(deleteHandler, noContent, context, data);
10627
- const __mware34 = (data) => call(mware34, __deleteHandler, context, data);
10628
- return call(mware11, __mware34, context);
10829
+ var delete33_options = mergeOptions(mware11, mware33, deleteHandler$1);
10830
+ function delete33(context) {
10831
+ const __deleteHandler = (data) => call(deleteHandler$1, noContent, context, data);
10832
+ const __mware33 = (data) => call(mware33, __deleteHandler, context, data);
10833
+ return call(mware11, __mware33, context);
10629
10834
  }
10630
10835
  //#endregion
10631
10836
  //#region src/routes/api/workspaces/$id/review/+handler.ts
10632
- var ReviewAction = /* @__PURE__ */ union([/* @__PURE__ */ object({
10633
- action: /* @__PURE__ */ literal("comment"),
10634
- worktree: /* @__PURE__ */ string(),
10635
- path: /* @__PURE__ */ string(),
10636
- side: /* @__PURE__ */ picklist(["additions", "deletions"]),
10637
- line_start: /* @__PURE__ */ pipe(/* @__PURE__ */ number(), /* @__PURE__ */ integer(), /* @__PURE__ */ minValue(1)),
10638
- line_end: /* @__PURE__ */ pipe(/* @__PURE__ */ number(), /* @__PURE__ */ integer(), /* @__PURE__ */ minValue(1)),
10639
- text: /* @__PURE__ */ pipe(/* @__PURE__ */ string(), /* @__PURE__ */ trim(), /* @__PURE__ */ minLength(1))
10640
- }), /* @__PURE__ */ object({ action: /* @__PURE__ */ literal("clear") })]);
10837
+ var ReviewAction = /* @__PURE__ */ union([
10838
+ /* @__PURE__ */ object({
10839
+ action: /* @__PURE__ */ literal("comment"),
10840
+ worktree: /* @__PURE__ */ string(),
10841
+ path: /* @__PURE__ */ string(),
10842
+ side: /* @__PURE__ */ picklist(["additions", "deletions"]),
10843
+ line_start: /* @__PURE__ */ pipe(/* @__PURE__ */ number(), /* @__PURE__ */ integer(), /* @__PURE__ */ minValue(1)),
10844
+ line_end: /* @__PURE__ */ pipe(/* @__PURE__ */ number(), /* @__PURE__ */ integer(), /* @__PURE__ */ minValue(1)),
10845
+ text: /* @__PURE__ */ pipe(/* @__PURE__ */ string(), /* @__PURE__ */ trim(), /* @__PURE__ */ minLength(1)),
10846
+ head: /* @__PURE__ */ optional(/* @__PURE__ */ string()),
10847
+ snippet: /* @__PURE__ */ optional(/* @__PURE__ */ string())
10848
+ }),
10849
+ /* @__PURE__ */ object({ action: /* @__PURE__ */ literal("clear") }),
10850
+ /* @__PURE__ */ object({
10851
+ action: /* @__PURE__ */ literal("seen"),
10852
+ heads: /* @__PURE__ */ record(/* @__PURE__ */ string(), /* @__PURE__ */ string()),
10853
+ dirty: /* @__PURE__ */ record(/* @__PURE__ */ string(), /* @__PURE__ */ string())
10854
+ })
10855
+ ]);
10641
10856
  var GET$1 = Run.GET((ctx) => {
10642
10857
  return Response.json(reviewState(ctx.params.id));
10643
10858
  });
@@ -10650,25 +10865,48 @@ var postHandler$1 = normalizeHandler(Run.POST({ json: ReviewAction }, async (ctx
10650
10865
  if (comment.line_end < comment.line_start) [comment.line_start, comment.line_end] = [comment.line_end, comment.line_start];
10651
10866
  return Response.json(addComment(ctx.params.id, comment));
10652
10867
  }
10868
+ if (body.action === "seen") {
10869
+ markReviewSeen(ctx.params.id, {
10870
+ heads: body.heads,
10871
+ dirty: body.dirty
10872
+ });
10873
+ return Response.json({ ok: true });
10874
+ }
10653
10875
  clearComments(ctx.params.id);
10654
10876
  return Response.json({ ok: true });
10655
10877
  }), "POST");
10656
10878
  var getHandler$1 = normalizeHandler(GET$1, "GET");
10657
- var get35_options = mergeOptions(mware11, mware34, getHandler$1);
10658
- var head35_options = mergeOptions(mware11, mware34);
10659
- var post35_options = mergeOptions(mware11, mware34, postHandler$1);
10660
- function get35(context) {
10879
+ var get34_options = mergeOptions(mware11, mware33, getHandler$1);
10880
+ var head34_options = mergeOptions(mware11, mware33);
10881
+ var post34_options = mergeOptions(mware11, mware33, postHandler$1);
10882
+ function get34(context) {
10661
10883
  const __getHandler = (data) => call(getHandler$1, noContent, context, data);
10662
- const __mware34 = (data) => call(mware34, __getHandler, context, data);
10663
- return call(mware11, __mware34, context);
10884
+ const __mware33 = (data) => call(mware33, __getHandler, context, data);
10885
+ return call(mware11, __mware33, context);
10664
10886
  }
10665
- function head35(context) {
10666
- return stripResponseBody(get35(context));
10887
+ function head34(context) {
10888
+ return stripResponseBody(get34(context));
10667
10889
  }
10668
- function post35(context) {
10890
+ function post34(context) {
10669
10891
  const __postHandler = (data) => call(postHandler$1, noContent, context, data);
10670
- const __mware34 = (data) => call(mware34, __postHandler, context, data);
10671
- return call(mware11, __mware34, context);
10892
+ const __mware33 = (data) => call(mware33, __postHandler, context, data);
10893
+ return call(mware11, __mware33, context);
10894
+ }
10895
+ //#endregion
10896
+ //#region __marko-run__api.workspaces.$.review.$.js
10897
+ var deleteHandler = normalizeHandler(Run.DELETE((ctx) => {
10898
+ const commentId = Number(ctx.params.commentId);
10899
+ if (!Number.isInteger(commentId)) throw httpError(400, "invalid comment id");
10900
+ const row = get("SELECT workspace_id FROM review_comments WHERE id = ?", commentId);
10901
+ if (!row || row.workspace_id !== ctx.params.id) throw httpError(404, "no such comment");
10902
+ deleteComment(commentId);
10903
+ return Response.json({ ok: true });
10904
+ }), "DELETE");
10905
+ var delete35_options = mergeOptions(mware11, mware33, deleteHandler);
10906
+ function delete35(context) {
10907
+ const __deleteHandler = (data) => call(deleteHandler, noContent, context, data);
10908
+ const __mware33 = (data) => call(mware33, __deleteHandler, context, data);
10909
+ return call(mware11, __mware33, context);
10672
10910
  }
10673
10911
  //#endregion
10674
10912
  //#region src/routes/api/workspaces/$id/sessions/+handler.ts
@@ -10687,21 +10925,21 @@ var postHandler = normalizeHandler(Run.POST({ json: CreateSession }, async (ctx)
10687
10925
  return Response.json(createSession(ctx.params.id, body.agent || preferredAgent()));
10688
10926
  }), "POST");
10689
10927
  var getHandler = normalizeHandler(GET, "GET");
10690
- var get36_options = mergeOptions(mware11, mware34, getHandler);
10691
- var head36_options = mergeOptions(mware11, mware34);
10692
- var post36_options = mergeOptions(mware11, mware34, postHandler);
10928
+ var get36_options = mergeOptions(mware11, mware33, getHandler);
10929
+ var head36_options = mergeOptions(mware11, mware33);
10930
+ var post36_options = mergeOptions(mware11, mware33, postHandler);
10693
10931
  function get36(context) {
10694
10932
  const __getHandler = (data) => call(getHandler, noContent, context, data);
10695
- const __mware34 = (data) => call(mware34, __getHandler, context, data);
10696
- return call(mware11, __mware34, context);
10933
+ const __mware33 = (data) => call(mware33, __getHandler, context, data);
10934
+ return call(mware11, __mware33, context);
10697
10935
  }
10698
10936
  function head36(context) {
10699
10937
  return stripResponseBody(get36(context));
10700
10938
  }
10701
10939
  function post36(context) {
10702
10940
  const __postHandler = (data) => call(postHandler, noContent, context, data);
10703
- const __mware34 = (data) => call(mware34, __postHandler, context, data);
10704
- return call(mware11, __mware34, context);
10941
+ const __mware33 = (data) => call(mware33, __postHandler, context, data);
10942
+ return call(mware11, __mware33, context);
10705
10943
  }
10706
10944
  //#endregion
10707
10945
  //#region __marko-run__router.js
@@ -10826,38 +11064,38 @@ function match_internal(method, pathname) {
10826
11064
  meta: {}
10827
11065
  };
10828
11066
  case "settings": return {
10829
- handler: get21,
11067
+ handler: get20,
10830
11068
  path: "/api/settings",
10831
11069
  params: {},
10832
- options: get21_options,
11070
+ options: get20_options,
10833
11071
  meta: {}
10834
11072
  };
10835
11073
  case "setup": return {
10836
- handler: get22,
11074
+ handler: get21,
10837
11075
  path: "/api/setup",
10838
11076
  params: {},
10839
- options: get22_options,
11077
+ options: get21_options,
10840
11078
  meta: {}
10841
11079
  };
10842
11080
  case "status": return {
10843
- handler: get25,
11081
+ handler: get24,
10844
11082
  path: "/api/status",
10845
11083
  params: {},
10846
- options: get25_options,
11084
+ options: get24_options,
10847
11085
  meta: {}
10848
11086
  };
10849
11087
  case "usage": return {
10850
- handler: get26,
11088
+ handler: get25,
10851
11089
  path: "/api/usage",
10852
11090
  params: {},
10853
- options: get26_options,
11091
+ options: get25_options,
10854
11092
  meta: {}
10855
11093
  };
10856
11094
  case "workspaces": return {
10857
- handler: get27,
11095
+ handler: get26,
10858
11096
  path: "/api/workspaces",
10859
11097
  params: {},
10860
- options: get27_options,
11098
+ options: get26_options,
10861
11099
  meta: {}
10862
11100
  };
10863
11101
  }
@@ -10881,10 +11119,10 @@ function match_internal(method, pathname) {
10881
11119
  const i3 = pathname.indexOf("/", 11) + 1;
10882
11120
  if (!i3 || i3 === len) {
10883
11121
  if (pathname.slice(11, i3 ? -1 : len) === "search") return {
10884
- handler: get24,
11122
+ handler: get23,
10885
11123
  path: "/api/setup/search",
10886
11124
  params: {},
10887
- options: get24_options,
11125
+ options: get23_options,
10888
11126
  meta: {}
10889
11127
  };
10890
11128
  }
@@ -10898,31 +11136,31 @@ function match_internal(method, pathname) {
10898
11136
  const i4 = pathname.indexOf("/", i3) + 1;
10899
11137
  if (!i4 || i4 === len) switch (pathname.slice(i3, i4 ? -1 : len)) {
10900
11138
  case "diff": return {
10901
- handler: get30,
11139
+ handler: get29,
10902
11140
  path: "/api/workspaces/$id/diff",
10903
11141
  params: { id: s3 },
10904
- options: get30_options,
11142
+ options: get29_options,
10905
11143
  meta: {}
10906
11144
  };
10907
11145
  case "procs": return {
10908
- handler: get31,
11146
+ handler: get30,
10909
11147
  path: "/api/workspaces/$id/procs",
10910
11148
  params: { id: s3 },
10911
- options: get31_options,
11149
+ options: get30_options,
10912
11150
  meta: {}
10913
11151
  };
10914
11152
  case "prs": return {
10915
- handler: get32,
11153
+ handler: get31,
10916
11154
  path: "/api/workspaces/$id/prs",
10917
11155
  params: { id: s3 },
10918
- options: get32_options,
11156
+ options: get31_options,
10919
11157
  meta: {}
10920
11158
  };
10921
11159
  case "review": return {
10922
- handler: get35,
11160
+ handler: get34,
10923
11161
  path: "/api/workspaces/$id/review",
10924
11162
  params: { id: s3 },
10925
- options: get35_options,
11163
+ options: get34_options,
10926
11164
  meta: {}
10927
11165
  };
10928
11166
  case "sessions": return {
@@ -11050,38 +11288,38 @@ function match_internal(method, pathname) {
11050
11288
  meta: {}
11051
11289
  };
11052
11290
  case "settings": return {
11053
- handler: head21,
11291
+ handler: head20,
11054
11292
  path: "/api/settings",
11055
11293
  params: {},
11056
- options: head21_options,
11294
+ options: head20_options,
11057
11295
  meta: {}
11058
11296
  };
11059
11297
  case "setup": return {
11060
- handler: head22,
11298
+ handler: head21,
11061
11299
  path: "/api/setup",
11062
11300
  params: {},
11063
- options: head22_options,
11301
+ options: head21_options,
11064
11302
  meta: {}
11065
11303
  };
11066
11304
  case "status": return {
11067
- handler: head25,
11305
+ handler: head24,
11068
11306
  path: "/api/status",
11069
11307
  params: {},
11070
- options: head25_options,
11308
+ options: head24_options,
11071
11309
  meta: {}
11072
11310
  };
11073
11311
  case "usage": return {
11074
- handler: head26,
11312
+ handler: head25,
11075
11313
  path: "/api/usage",
11076
11314
  params: {},
11077
- options: head26_options,
11315
+ options: head25_options,
11078
11316
  meta: {}
11079
11317
  };
11080
11318
  case "workspaces": return {
11081
- handler: head27,
11319
+ handler: head26,
11082
11320
  path: "/api/workspaces",
11083
11321
  params: {},
11084
- options: head27_options,
11322
+ options: head26_options,
11085
11323
  meta: {}
11086
11324
  };
11087
11325
  }
@@ -11105,10 +11343,10 @@ function match_internal(method, pathname) {
11105
11343
  const i3 = pathname.indexOf("/", 11) + 1;
11106
11344
  if (!i3 || i3 === len) {
11107
11345
  if (pathname.slice(11, i3 ? -1 : len) === "search") return {
11108
- handler: head24,
11346
+ handler: head23,
11109
11347
  path: "/api/setup/search",
11110
11348
  params: {},
11111
- options: head24_options,
11349
+ options: head23_options,
11112
11350
  meta: {}
11113
11351
  };
11114
11352
  }
@@ -11122,31 +11360,31 @@ function match_internal(method, pathname) {
11122
11360
  const i4 = pathname.indexOf("/", i3) + 1;
11123
11361
  if (!i4 || i4 === len) switch (pathname.slice(i3, i4 ? -1 : len)) {
11124
11362
  case "diff": return {
11125
- handler: head30,
11363
+ handler: head29,
11126
11364
  path: "/api/workspaces/$id/diff",
11127
11365
  params: { id: s3 },
11128
- options: head30_options,
11366
+ options: head29_options,
11129
11367
  meta: {}
11130
11368
  };
11131
11369
  case "procs": return {
11132
- handler: head31,
11370
+ handler: head30,
11133
11371
  path: "/api/workspaces/$id/procs",
11134
11372
  params: { id: s3 },
11135
- options: head31_options,
11373
+ options: head30_options,
11136
11374
  meta: {}
11137
11375
  };
11138
11376
  case "prs": return {
11139
- handler: head32,
11377
+ handler: head31,
11140
11378
  path: "/api/workspaces/$id/prs",
11141
11379
  params: { id: s3 },
11142
- options: head32_options,
11380
+ options: head31_options,
11143
11381
  meta: {}
11144
11382
  };
11145
11383
  case "review": return {
11146
- handler: head35,
11384
+ handler: head34,
11147
11385
  path: "/api/workspaces/$id/review",
11148
11386
  params: { id: s3 },
11149
- options: head35_options,
11387
+ options: head34_options,
11150
11388
  meta: {}
11151
11389
  };
11152
11390
  case "sessions": return {
@@ -11202,10 +11440,10 @@ function match_internal(method, pathname) {
11202
11440
  meta: {}
11203
11441
  };
11204
11442
  case "workspaces": return {
11205
- handler: post27,
11443
+ handler: post26,
11206
11444
  path: "/api/workspaces",
11207
11445
  params: {},
11208
- options: post27_options,
11446
+ options: post26_options,
11209
11447
  meta: {}
11210
11448
  };
11211
11449
  }
@@ -11233,10 +11471,10 @@ function match_internal(method, pathname) {
11233
11471
  const i4 = pathname.indexOf("/", i3) + 1;
11234
11472
  if (!i4 || i4 === len) {
11235
11473
  if (pathname.slice(i3, i4 ? -1 : len) === "send") return {
11236
- handler: post20,
11474
+ handler: post19,
11237
11475
  path: "/api/sessions/$id/send",
11238
11476
  params: { id: s3 },
11239
- options: post20_options,
11477
+ options: post19_options,
11240
11478
  meta: {}
11241
11479
  };
11242
11480
  }
@@ -11250,10 +11488,10 @@ function match_internal(method, pathname) {
11250
11488
  if (!i3 || i3 === len) {
11251
11489
  const s3 = decodeURIComponent(pathname.slice(11, i3 ? -1 : len));
11252
11490
  if (s3) return {
11253
- handler: post23,
11491
+ handler: post22,
11254
11492
  path: "/api/setup/$id",
11255
11493
  params: { id: s3 },
11256
- options: post23_options,
11494
+ options: post22_options,
11257
11495
  meta: {}
11258
11496
  };
11259
11497
  }
@@ -11264,10 +11502,10 @@ function match_internal(method, pathname) {
11264
11502
  if (!i3 || i3 === len) {
11265
11503
  const s3 = decodeURIComponent(pathname.slice(16, i3 ? -1 : len));
11266
11504
  if (s3) return {
11267
- handler: post28,
11505
+ handler: post27,
11268
11506
  path: "/api/workspaces/$id",
11269
11507
  params: { id: s3 },
11270
- options: post28_options,
11508
+ options: post27_options,
11271
11509
  meta: {}
11272
11510
  };
11273
11511
  } else {
@@ -11276,31 +11514,31 @@ function match_internal(method, pathname) {
11276
11514
  const i4 = pathname.indexOf("/", i3) + 1;
11277
11515
  if (!i4 || i4 === len) switch (pathname.slice(i3, i4 ? -1 : len)) {
11278
11516
  case "assets": return {
11279
- handler: post29,
11517
+ handler: post28,
11280
11518
  path: "/api/workspaces/$id/assets",
11281
11519
  params: { id: s3 },
11282
- options: post29_options,
11520
+ options: post28_options,
11283
11521
  meta: {}
11284
11522
  };
11285
11523
  case "prs": return {
11286
- handler: post32,
11524
+ handler: post31,
11287
11525
  path: "/api/workspaces/$id/prs",
11288
11526
  params: { id: s3 },
11289
- options: post32_options,
11527
+ options: post31_options,
11290
11528
  meta: {}
11291
11529
  };
11292
11530
  case "repos": return {
11293
- handler: post33,
11531
+ handler: post32,
11294
11532
  path: "/api/workspaces/$id/repos",
11295
11533
  params: { id: s3 },
11296
- options: post33_options,
11534
+ options: post32_options,
11297
11535
  meta: {}
11298
11536
  };
11299
11537
  case "review": return {
11300
- handler: post35,
11538
+ handler: post34,
11301
11539
  path: "/api/workspaces/$id/review",
11302
11540
  params: { id: s3 },
11303
- options: post35_options,
11541
+ options: post34_options,
11304
11542
  meta: {}
11305
11543
  };
11306
11544
  case "sessions": return {
@@ -11328,10 +11566,10 @@ function match_internal(method, pathname) {
11328
11566
  const i2 = pathname.indexOf("/", 5) + 1;
11329
11567
  if (!i2 || i2 === len) {
11330
11568
  if (pathname.slice(5, i2 ? -1 : len) === "settings") return {
11331
- handler: put21,
11569
+ handler: put20,
11332
11570
  path: "/api/settings",
11333
11571
  params: {},
11334
- options: put21_options,
11572
+ options: put20_options,
11335
11573
  meta: {}
11336
11574
  };
11337
11575
  }
@@ -11370,31 +11608,16 @@ function match_internal(method, pathname) {
11370
11608
  }
11371
11609
  }
11372
11610
  break;
11373
- case "review-comments":
11374
- {
11375
- const i3 = pathname.indexOf("/", 21) + 1;
11376
- if (!i3 || i3 === len) {
11377
- const s3 = decodeURIComponent(pathname.slice(21, i3 ? -1 : len));
11378
- if (s3) return {
11379
- handler: delete18,
11380
- path: "/api/review-comments/$id",
11381
- params: { id: s3 },
11382
- options: delete18_options,
11383
- meta: {}
11384
- };
11385
- }
11386
- }
11387
- break;
11388
11611
  case "sessions":
11389
11612
  {
11390
11613
  const i3 = pathname.indexOf("/", 14) + 1;
11391
11614
  if (!i3 || i3 === len) {
11392
11615
  const s3 = decodeURIComponent(pathname.slice(14, i3 ? -1 : len));
11393
11616
  if (s3) return {
11394
- handler: delete19,
11617
+ handler: delete18,
11395
11618
  path: "/api/sessions/$id",
11396
11619
  params: { id: s3 },
11397
- options: delete19_options,
11620
+ options: delete18_options,
11398
11621
  meta: {}
11399
11622
  };
11400
11623
  }
@@ -11406,19 +11629,37 @@ function match_internal(method, pathname) {
11406
11629
  const s3 = decodeURIComponent(pathname.slice(16, i3 - 1));
11407
11630
  if (s3) {
11408
11631
  const i4 = pathname.indexOf("/", i3) + 1;
11409
- if (i4 && i4 !== len) {
11410
- if (pathname.slice(i3, i4 - 1) === "repos") {
11632
+ if (i4 && i4 !== len) switch (pathname.slice(i3, i4 - 1)) {
11633
+ case "repos":
11634
+ {
11635
+ const i5 = pathname.indexOf("/", i4) + 1;
11636
+ if (!i5 || i5 === len) {
11637
+ const s5 = decodeURIComponent(pathname.slice(i4, i5 ? -1 : len));
11638
+ if (s5) return {
11639
+ handler: delete33,
11640
+ path: "/api/workspaces/$id/repos/$worktree",
11641
+ params: {
11642
+ id: s3,
11643
+ worktree: s5
11644
+ },
11645
+ options: delete33_options,
11646
+ meta: {}
11647
+ };
11648
+ }
11649
+ }
11650
+ break;
11651
+ case "review": {
11411
11652
  const i5 = pathname.indexOf("/", i4) + 1;
11412
11653
  if (!i5 || i5 === len) {
11413
11654
  const s5 = decodeURIComponent(pathname.slice(i4, i5 ? -1 : len));
11414
11655
  if (s5) return {
11415
- handler: delete34,
11416
- path: "/api/workspaces/$id/repos/$worktree",
11656
+ handler: delete35,
11657
+ path: "/api/workspaces/$id/review/$commentId",
11417
11658
  params: {
11418
11659
  id: s3,
11419
- worktree: s5
11660
+ commentId: s5
11420
11661
  },
11421
- options: delete34_options,
11662
+ options: delete35_options,
11422
11663
  meta: {}
11423
11664
  };
11424
11665
  }
@@ -11445,10 +11686,10 @@ function match_internal(method, pathname) {
11445
11686
  if (!i3 || i3 === len) {
11446
11687
  const s3 = decodeURIComponent(pathname.slice(14, i3 ? -1 : len));
11447
11688
  if (s3) return {
11448
- handler: patch19,
11689
+ handler: patch18,
11449
11690
  path: "/api/sessions/$id",
11450
11691
  params: { id: s3 },
11451
- options: patch19_options,
11692
+ options: patch18_options,
11452
11693
  meta: {}
11453
11694
  };
11454
11695
  }
@@ -13554,7 +13795,7 @@ var require_websocket = /* @__PURE__ */ __commonJSMin(((exports, module) => {
13554
13795
  var http$1 = __require("http");
13555
13796
  var net = __require("net");
13556
13797
  var tls = __require("tls");
13557
- var { randomBytes, createHash: createHash$1 } = __require("crypto");
13798
+ var { randomBytes, createHash: createHash$2 } = __require("crypto");
13558
13799
  var { Duplex: Duplex$2, Readable: Readable$1 } = __require("stream");
13559
13800
  var { URL: URL$1 } = __require("url");
13560
13801
  var PerMessageDeflate = require_permessage_deflate();
@@ -14226,7 +14467,7 @@ var require_websocket = /* @__PURE__ */ __commonJSMin(((exports, module) => {
14226
14467
  abortHandshake(websocket, socket, "Invalid Upgrade header");
14227
14468
  return;
14228
14469
  }
14229
- const digest = createHash$1("sha1").update(key + GUID).digest("base64");
14470
+ const digest = createHash$2("sha1").update(key + GUID).digest("base64");
14230
14471
  if (res.headers["sec-websocket-accept"] !== digest) {
14231
14472
  abortHandshake(websocket, socket, "Invalid Sec-WebSocket-Accept header");
14232
14473
  return;
@@ -14700,7 +14941,7 @@ var require_websocket_server = /* @__PURE__ */ __commonJSMin(((exports, module)
14700
14941
  var EventEmitter = __require("events");
14701
14942
  var http = __require("http");
14702
14943
  var { Duplex } = __require("stream");
14703
- var { createHash } = __require("crypto");
14944
+ var { createHash: createHash$1 } = __require("crypto");
14704
14945
  var extension = require_extension();
14705
14946
  var PerMessageDeflate = require_permessage_deflate();
14706
14947
  var subprotocol = require_subprotocol();
@@ -14970,7 +15211,7 @@ var require_websocket_server = /* @__PURE__ */ __commonJSMin(((exports, module)
14970
15211
  "HTTP/1.1 101 Switching Protocols",
14971
15212
  "Upgrade: websocket",
14972
15213
  "Connection: Upgrade",
14973
- `Sec-WebSocket-Accept: ${createHash("sha1").update(key + GUID).digest("base64")}`
15214
+ `Sec-WebSocket-Accept: ${createHash$1("sha1").update(key + GUID).digest("base64")}`
14974
15215
  ];
14975
15216
  const ws = new this.options.WebSocket(null, void 0, this.options);
14976
15217
  if (protocols.size) {
@@ -15449,4 +15690,4 @@ server.listen(port, () => {
15449
15690
  //#endregion
15450
15691
  export {};
15451
15692
 
15452
- ;var __MARKO_MANIFEST__={"T$MNY0k":{"block":[2,"stylesheet#/assets/app-page-BDcrPm2k.css",6,"<link",0," rel=\"stylesheet\" crossorigin href=\"",1,"assets/app-page-BDcrPm2k.css\"",">"],"defer":[2,"/assets/w._-CzSXygvC.js",6,"<script",0," async type=\"module\" crossorigin src=\"",1,"assets/w._-CzSXygvC.js\"","></script>",2,"modulepreload#/assets/_DMSaSonW.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_DMSaSonW.js\"",">"]},"ZLT8joi":{"block":[2,"stylesheet#/assets/app-page-BDcrPm2k.css",6,"<link",0," rel=\"stylesheet\" crossorigin href=\"",1,"assets/app-page-BDcrPm2k.css\"",">"],"defer":[2,"/assets/new-CzSXygvC.js",6,"<script",0," async type=\"module\" crossorigin src=\"",1,"assets/new-CzSXygvC.js\"","></script>",2,"modulepreload#/assets/_DMSaSonW.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_DMSaSonW.js\"",">"]},"AA0T2xt":{"block":[2,"stylesheet#/assets/app-page-BDcrPm2k.css",6,"<link",0," rel=\"stylesheet\" crossorigin href=\"",1,"assets/app-page-BDcrPm2k.css\"",">"],"defer":[2,"/assets/settings-CzSXygvC.js",6,"<script",0," async type=\"module\" crossorigin src=\"",1,"assets/settings-CzSXygvC.js\"","></script>",2,"modulepreload#/assets/_DMSaSonW.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_DMSaSonW.js\"",">"]},"LH2lXAg":{"block":[2,"stylesheet#/assets/app-page-BDcrPm2k.css",6,"<link",0," rel=\"stylesheet\" crossorigin href=\"",1,"assets/app-page-BDcrPm2k.css\"",">"],"defer":[2,"/assets/w-CzSXygvC.js",6,"<script",0," async type=\"module\" crossorigin src=\"",1,"assets/w-CzSXygvC.js\"","></script>",2,"modulepreload#/assets/_DMSaSonW.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_DMSaSonW.js\"",">"]},"ibphXY4":{"block":[2,"stylesheet#/assets/app-page-BDcrPm2k.css",6,"<link",0," rel=\"stylesheet\" crossorigin href=\"",1,"assets/app-page-BDcrPm2k.css\"",">"],"defer":[2,"/assets/w._-q-GIPDIo.js",6,"<script",0," async type=\"module\" crossorigin src=\"",1,"assets/w._-q-GIPDIo.js\"","></script>",2,"modulepreload#/assets/_DMSaSonW.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_DMSaSonW.js\"",">"]}};
15693
+ ;var __MARKO_MANIFEST__={"ZLT8joi":{"block":[2,"stylesheet#/assets/app-page-DZhaOCYJ.css",6,"<link",0," rel=\"stylesheet\" crossorigin href=\"",1,"assets/app-page-DZhaOCYJ.css\"",">"],"defer":[2,"/assets/new-Cia2P5u6.js",6,"<script",0," async type=\"module\" crossorigin src=\"",1,"assets/new-Cia2P5u6.js\"","></script>",2,"modulepreload#/assets/_Dlrc6R2N.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_Dlrc6R2N.js\"",">"]},"LH2lXAg":{"block":[2,"stylesheet#/assets/app-page-DZhaOCYJ.css",6,"<link",0," rel=\"stylesheet\" crossorigin href=\"",1,"assets/app-page-DZhaOCYJ.css\"",">"],"defer":[2,"/assets/w-Cia2P5u6.js",6,"<script",0," async type=\"module\" crossorigin src=\"",1,"assets/w-Cia2P5u6.js\"","></script>",2,"modulepreload#/assets/_Dlrc6R2N.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_Dlrc6R2N.js\"",">"]},"AA0T2xt":{"block":[2,"stylesheet#/assets/app-page-DZhaOCYJ.css",6,"<link",0," rel=\"stylesheet\" crossorigin href=\"",1,"assets/app-page-DZhaOCYJ.css\"",">"],"defer":[2,"/assets/settings-Cia2P5u6.js",6,"<script",0," async type=\"module\" crossorigin src=\"",1,"assets/settings-Cia2P5u6.js\"","></script>",2,"modulepreload#/assets/_Dlrc6R2N.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_Dlrc6R2N.js\"",">"]},"ibphXY4":{"block":[2,"stylesheet#/assets/app-page-DZhaOCYJ.css",6,"<link",0," rel=\"stylesheet\" crossorigin href=\"",1,"assets/app-page-DZhaOCYJ.css\"",">"],"defer":[2,"/assets/w._-Cia2P5u6.js",6,"<script",0," async type=\"module\" crossorigin src=\"",1,"assets/w._-Cia2P5u6.js\"","></script>",2,"modulepreload#/assets/_Dlrc6R2N.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_Dlrc6R2N.js\"",">"]},"T$MNY0k":{"block":[2,"stylesheet#/assets/app-page-DZhaOCYJ.css",6,"<link",0," rel=\"stylesheet\" crossorigin href=\"",1,"assets/app-page-DZhaOCYJ.css\"",">"],"defer":[2,"/assets/w._-BwIlYQ_7.js",6,"<script",0," async type=\"module\" crossorigin src=\"",1,"assets/w._-BwIlYQ_7.js\"","></script>",2,"modulepreload#/assets/_Dlrc6R2N.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_Dlrc6R2N.js\"",">"]}};