@dylanpiercey/work 0.0.117 → 0.0.119

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 (260) hide show
  1. package/dist/_BIDn_RW1.js +2 -0
  2. package/dist/{_4-M1FiLt.js → _BIhoUpsW.js} +92 -93
  3. package/dist/{_BBnpIqz1.js → _BOIUqihs.js} +35 -18
  4. package/dist/{_b8Fct3kh.js → _DE2RUdbF.js} +29 -11
  5. package/dist/index.mjs +893 -1016
  6. package/dist/public/assets/{_Rw9EiWl4.js → _1bmjwuWH.js} +1 -1
  7. package/dist/public/assets/_1bmjwuWH.js.br +0 -0
  8. package/dist/public/assets/{_7MvaMNIr.js → _5YlmpA6X.js} +1 -1
  9. package/dist/public/assets/_5YlmpA6X.js.br +0 -0
  10. package/dist/public/assets/{_CqCBTa4i2.js → _AqmX0pBH2.js} +1 -1
  11. package/dist/public/assets/_AqmX0pBH2.js.br +0 -0
  12. package/dist/public/assets/{_Cc0zTPig.js → _B2LXCPdE.js} +1 -1
  13. package/dist/public/assets/_B2LXCPdE.js.br +0 -0
  14. package/dist/public/assets/{_BdVI9Fdo.js → _B2g0gJmZ.js} +1 -1
  15. package/dist/public/assets/_B2g0gJmZ.js.br +0 -0
  16. package/dist/public/assets/_B62GzYdT.js +1536 -0
  17. package/dist/public/assets/_B62GzYdT.js.br +0 -0
  18. package/dist/public/assets/{_CGfW8lhA.js → _B7w9Jp5h.js} +1 -1
  19. package/dist/public/assets/_B7w9Jp5h.js.br +0 -0
  20. package/dist/public/assets/{_KkA9wgSQ.js → _BD68UZIf.js} +1 -1
  21. package/dist/public/assets/_BD68UZIf.js.br +0 -0
  22. package/dist/public/assets/{_6WLgQe1U2.js → _BD9TBsnM2.js} +1 -1
  23. package/dist/public/assets/_BD9TBsnM2.js.br +0 -0
  24. package/dist/public/assets/{_BmgHXWoi.js → _BE3wNPJo.js} +1 -1
  25. package/dist/public/assets/_BE3wNPJo.js.br +0 -0
  26. package/dist/public/assets/{_ulYs8wvn.js → _BNQgBkwF.js} +1 -1
  27. package/dist/public/assets/_BNQgBkwF.js.br +0 -0
  28. package/dist/public/assets/{_CKsCeryF.js → _BRiOyxeF.js} +1 -1
  29. package/dist/public/assets/_BRiOyxeF.js.br +0 -0
  30. package/dist/public/assets/{_BdCj3x0L2.js → _BSsp7Z4i2.js} +1 -1
  31. package/dist/public/assets/_BSsp7Z4i2.js.br +0 -0
  32. package/dist/public/assets/{_C52Kc8e02.js → _BYYDEuFR2.js} +1 -1
  33. package/dist/public/assets/_BYYDEuFR2.js.br +0 -0
  34. package/dist/public/assets/{_BybHWkEd.js → _BgnvPND_.js} +1 -1
  35. package/dist/public/assets/_BgnvPND_.js.br +0 -0
  36. package/dist/public/assets/{_qR1knnaE.js → _Bhwci4Zy.js} +1 -1
  37. package/dist/public/assets/_Bhwci4Zy.js.br +0 -0
  38. package/dist/public/assets/{_BZO0Y-8B.js → _BijwdXvp.js} +1 -1
  39. package/dist/public/assets/_BijwdXvp.js.br +0 -0
  40. package/dist/public/assets/{_DmOEoBSj.js → _BkTJUq-u.js} +1 -1
  41. package/dist/public/assets/{_DIcIfpSi2.js → _BlVrxgss2.js} +1 -1
  42. package/dist/public/assets/_BlVrxgss2.js.br +0 -0
  43. package/dist/public/assets/{_BWPyMgyP2.js → _Bp1b0XWB2.js} +1 -1
  44. package/dist/public/assets/_Bp1b0XWB2.js.br +0 -0
  45. package/dist/public/assets/{_BqGtsnPj.js → _Bq2fn_8D.js} +1 -1
  46. package/dist/public/assets/_Bq2fn_8D.js.br +0 -0
  47. package/dist/public/assets/{_CN6zO7Nx.js → _BsOtzbIC.js} +1 -1
  48. package/dist/public/assets/_BsOtzbIC.js.br +0 -0
  49. package/dist/public/assets/{_CBhJbYqJ.js → _Bsk9ewWF.js} +1 -1
  50. package/dist/public/assets/_Bsk9ewWF.js.br +0 -0
  51. package/dist/public/assets/{_CkvKurj3.js → _Btt4k5w3.js} +1 -1
  52. package/dist/public/assets/_Btt4k5w3.js.br +0 -0
  53. package/dist/public/assets/{_E92w3rhc.js → _C8DWM9rr.js} +1 -1
  54. package/dist/public/assets/_C8DWM9rr.js.br +0 -0
  55. package/dist/public/assets/{_VPFo3zSh.js → _CEWjw4lq.js} +1 -1
  56. package/dist/public/assets/_CEWjw4lq.js.br +0 -0
  57. package/dist/public/assets/{_CD2VZxgc.js → _CGOYaUuV.js} +1 -1
  58. package/dist/public/assets/_CGOYaUuV.js.br +0 -0
  59. package/dist/public/assets/{_BD7DcChF2.js → _CIFN7c1t2.js} +1 -1
  60. package/dist/public/assets/_CIFN7c1t2.js.br +0 -0
  61. package/dist/public/assets/{_Dza3l03i2.js → _CJT7ujcv2.js} +1 -1
  62. package/dist/public/assets/_CJT7ujcv2.js.br +0 -0
  63. package/dist/public/assets/{_D2CBcmy92.js → _CUjnrp_u2.js} +1 -1
  64. package/dist/public/assets/_CUjnrp_u2.js.br +0 -0
  65. package/dist/public/assets/{_CH6beBRd.js → _CWNv7bdi.js} +1 -1
  66. package/dist/public/assets/_CWNv7bdi.js.br +0 -0
  67. package/dist/public/assets/{_Cxc4x3kp2.js → _CXQ_K2Vh2.js} +1 -1
  68. package/dist/public/assets/_CXQ_K2Vh2.js.br +0 -0
  69. package/dist/public/assets/{_CxAIftOa.js → _CZejW_fq.js} +1 -1
  70. package/dist/public/assets/_CZejW_fq.js.br +0 -0
  71. package/dist/public/assets/{_DIiQj1WK2.js → _CZzZOY4P2.js} +1 -1
  72. package/dist/public/assets/_CZzZOY4P2.js.br +0 -0
  73. package/dist/public/assets/{_C8S11_GE.js → _CegJB2vl.js} +1 -1
  74. package/dist/public/assets/_CegJB2vl.js.br +0 -0
  75. package/dist/public/assets/{_D-lWfj_d.js → _CkuVE2zK.js} +1 -1
  76. package/dist/public/assets/_CkuVE2zK.js.br +0 -0
  77. package/dist/public/assets/{_Ds-nHHU4.js → _CnKbN1QV.js} +1 -1
  78. package/dist/public/assets/_CnKbN1QV.js.br +0 -0
  79. package/dist/public/assets/{_BSES323S.js → _CoStmjbL.js} +1 -1
  80. package/dist/public/assets/_CoStmjbL.js.br +0 -0
  81. package/dist/public/assets/{_tGNZxau42.js → _Cp-yobQE2.js} +1 -1
  82. package/dist/public/assets/{_nKN2u-0c2.js → _CpRKjPVO2.js} +1 -1
  83. package/dist/public/assets/_CpRKjPVO2.js.br +0 -0
  84. package/dist/public/assets/{_CT_4aU9v.js → _CqDb111T.js} +1 -1
  85. package/dist/public/assets/_CqDb111T.js.br +0 -0
  86. package/dist/public/assets/{_C8tBcmDQ2.js → _Ctuh4IDL2.js} +1 -1
  87. package/dist/public/assets/_Ctuh4IDL2.js.br +0 -0
  88. package/dist/public/assets/{_Yb5xKwv4.js → _Cv9Hgy8P.js} +1 -1
  89. package/dist/public/assets/_Cv9Hgy8P.js.br +0 -0
  90. package/dist/public/assets/{_bwdm3qFa.js → _CvnxxlPb.js} +1 -1
  91. package/dist/public/assets/_CvnxxlPb.js.br +0 -0
  92. package/dist/public/assets/{_B_vKus4A2.js → _Cym2lUeD2.js} +1 -1
  93. package/dist/public/assets/_Cym2lUeD2.js.br +0 -0
  94. package/dist/public/assets/{_DZBUwVb4.js → _CzI2QhH4.js} +1 -1
  95. package/dist/public/assets/_CzI2QhH4.js.br +0 -0
  96. package/dist/public/assets/{_DJF1Yq0V.js → _D8raMSvy.js} +1 -1
  97. package/dist/public/assets/_D8raMSvy.js.br +0 -0
  98. package/dist/public/assets/{_BzVV11vP.js → _DBJ43cPF.js} +1 -1
  99. package/dist/public/assets/_DBJ43cPF.js.br +0 -0
  100. package/dist/public/assets/{_D1v40D0_.js → _DKciAPQl.js} +1 -1
  101. package/dist/public/assets/_DKciAPQl.js.br +0 -0
  102. package/dist/public/assets/{_18MJzEZM.js → _DMHXo8uX.js} +1 -1
  103. package/dist/public/assets/_DMHXo8uX.js.br +0 -0
  104. package/dist/public/assets/{_RD4UJVHf.js → _DO4n-NwM.js} +1 -1
  105. package/dist/public/assets/_DO4n-NwM.js.br +0 -0
  106. package/dist/public/assets/{_C9uj0n8L.js → _DS628Dnv.js} +1 -1
  107. package/dist/public/assets/_DS628Dnv.js.br +0 -0
  108. package/dist/public/assets/{_BUfH9de1.js → _DYngS949.js} +1 -1
  109. package/dist/public/assets/_DYngS949.js.br +0 -0
  110. package/dist/public/assets/{_CK_oq_Zy.js → _Dhu480me.js} +1 -1
  111. package/dist/public/assets/_Dhu480me.js.br +0 -0
  112. package/dist/public/assets/{_CD9LUiA1.js → _DlZyjzE_.js} +1 -1
  113. package/dist/public/assets/_DlZyjzE_.js.br +0 -0
  114. package/dist/public/assets/{_ghie1-zD2.js → _Dni1s_3Q2.js} +1 -1
  115. package/dist/public/assets/{_tejT-pAf2.js → _DtLQVzKB2.js} +1 -1
  116. package/dist/public/assets/_DtLQVzKB2.js.br +0 -0
  117. package/dist/public/assets/{_9m5DBxeF.js → _Du5pjG7G.js} +1 -1
  118. package/dist/public/assets/_Du5pjG7G.js.br +0 -0
  119. package/dist/public/assets/{_DcQSDUkF.js → _Dzy9r1lm.js} +1 -1
  120. package/dist/public/assets/_Dzy9r1lm.js.br +0 -0
  121. package/dist/public/assets/{_KIdOm5wV.js → _ER-_pvil.js} +1 -1
  122. package/dist/public/assets/_ER-_pvil.js.br +0 -0
  123. package/dist/public/assets/{_snEbm2Ar2.js → _LUNsNRnJ2.js} +1 -1
  124. package/dist/public/assets/_LUNsNRnJ2.js.br +0 -0
  125. package/dist/public/assets/{_BBji3Y6b.js → _MofKWwY9.js} +1 -1
  126. package/dist/public/assets/_MofKWwY9.js.br +0 -0
  127. package/dist/public/assets/{_-Z8UOkRe.js → _N0vzdKCD.js} +1 -1
  128. package/dist/public/assets/_N0vzdKCD.js.br +0 -0
  129. package/dist/public/assets/{_DoJIySsK2.js → _O8R4l7yw2.js} +1 -1
  130. package/dist/public/assets/_O8R4l7yw2.js.br +0 -0
  131. package/dist/public/assets/{_Dev6jrQa.js → _Rf_7ZEPL.js} +1 -1
  132. package/dist/public/assets/_Rf_7ZEPL.js.br +0 -0
  133. package/dist/public/assets/_RhYe7Uqa.js +86 -0
  134. package/dist/public/assets/_RhYe7Uqa.js.br +0 -0
  135. package/dist/public/assets/{_B9EjUGkg2.js → _T2999saD2.js} +1 -1
  136. package/dist/public/assets/_T2999saD2.js.br +0 -0
  137. package/dist/public/assets/{_Qnv2YVI1.js → _XgOGaUKD.js} +1 -1
  138. package/dist/public/assets/_XgOGaUKD.js.br +0 -0
  139. package/dist/public/assets/{_BRsp-Ky6.js → _c1YZLlfE.js} +1 -1
  140. package/dist/public/assets/_c1YZLlfE.js.br +0 -0
  141. package/dist/public/assets/{_BK807sss2.js → _duTaTgEk2.js} +1 -1
  142. package/dist/public/assets/_duTaTgEk2.js.br +0 -0
  143. package/dist/public/assets/{_Ddhg8pUf2.js → _iDn41XPe2.js} +1 -1
  144. package/dist/public/assets/_iDn41XPe2.js.br +0 -0
  145. package/dist/public/assets/{_DMyeY0fg.js → _l9vJoVeP.js} +1 -1
  146. package/dist/public/assets/_l9vJoVeP.js.br +0 -0
  147. package/dist/public/assets/{_DPYxtc2v.js → _qj_i_cqe.js} +1 -1
  148. package/dist/public/assets/_qj_i_cqe.js.br +0 -0
  149. package/dist/public/assets/_sWLklcDZ.js +1 -0
  150. package/dist/public/assets/{_DY5rDZr62.js → _szXVEFuj2.js} +1 -1
  151. package/dist/public/assets/_szXVEFuj2.js.br +0 -0
  152. package/dist/public/assets/{_BTgPFRhu2.js → _yTOoKAfM2.js} +1 -1
  153. package/dist/public/assets/_yTOoKAfM2.js.br +0 -0
  154. package/dist/public/assets/{_DANBCOm8.js → _zPAwS_-H.js} +1 -1
  155. package/dist/public/assets/_zPAwS_-H.js.br +0 -0
  156. package/dist/public/assets/app-page-BXbewHHv.css +1 -0
  157. package/dist/public/assets/app-page-BXbewHHv.css.br +0 -0
  158. package/dist/public/assets/diff-view-BJ1RAVYB.css +1 -0
  159. package/dist/public/assets/diff-view-BJ1RAVYB.css.br +0 -0
  160. package/dist/public/assets/new-DUXTU7jB.js +1 -0
  161. package/dist/public/assets/settings-DUXTU7jB.js +1 -0
  162. package/dist/public/assets/shiki-wasm-stub-sWLklcDZ.js +1 -0
  163. package/dist/public/assets/w-DUXTU7jB.js +1 -0
  164. package/dist/public/assets/w._-DUXTU7jB.js +1 -0
  165. package/dist/public/assets/w._-bwrmfhu0.js +1 -0
  166. package/dist/public/assets/{worker-DZo603XT.js → worker-hTZla-j_.js} +1 -1
  167. package/dist/public/assets/worker-hTZla-j_.js.br +0 -0
  168. package/lib/setup/doctor.mjs +15 -1
  169. package/package.json +1 -1
  170. package/scripts/migrate.mjs +25 -0
  171. package/dist/_DHnrMF7e.js +0 -2
  172. package/dist/public/assets/_-Z8UOkRe.js.br +0 -0
  173. package/dist/public/assets/_18MJzEZM.js.br +0 -0
  174. package/dist/public/assets/_6WLgQe1U2.js.br +0 -0
  175. package/dist/public/assets/_7MvaMNIr.js.br +0 -0
  176. package/dist/public/assets/_9m5DBxeF.js.br +0 -0
  177. package/dist/public/assets/_B9EjUGkg2.js.br +0 -0
  178. package/dist/public/assets/_BBji3Y6b.js.br +0 -0
  179. package/dist/public/assets/_BD7DcChF2.js.br +0 -0
  180. package/dist/public/assets/_BK807sss2.js.br +0 -0
  181. package/dist/public/assets/_BRsp-Ky6.js.br +0 -0
  182. package/dist/public/assets/_BSES323S.js.br +0 -0
  183. package/dist/public/assets/_BTgPFRhu2.js.br +0 -0
  184. package/dist/public/assets/_BUfH9de1.js.br +0 -0
  185. package/dist/public/assets/_BWPyMgyP2.js.br +0 -0
  186. package/dist/public/assets/_BZO0Y-8B.js.br +0 -0
  187. package/dist/public/assets/_B_vKus4A2.js.br +0 -0
  188. package/dist/public/assets/_BdCj3x0L2.js.br +0 -0
  189. package/dist/public/assets/_BdVI9Fdo.js.br +0 -0
  190. package/dist/public/assets/_BmgHXWoi.js.br +0 -0
  191. package/dist/public/assets/_BnjxR4X6.js +0 -1
  192. package/dist/public/assets/_BnjxR4X6.js.br +0 -0
  193. package/dist/public/assets/_BqGtsnPj.js.br +0 -0
  194. package/dist/public/assets/_BrtordPT.js +0 -86
  195. package/dist/public/assets/_BrtordPT.js.br +0 -0
  196. package/dist/public/assets/_BybHWkEd.js.br +0 -0
  197. package/dist/public/assets/_BzVV11vP.js.br +0 -0
  198. package/dist/public/assets/_C52Kc8e02.js.br +0 -0
  199. package/dist/public/assets/_C8S11_GE.js.br +0 -0
  200. package/dist/public/assets/_C8tBcmDQ2.js.br +0 -0
  201. package/dist/public/assets/_C9uj0n8L.js.br +0 -0
  202. package/dist/public/assets/_CBhJbYqJ.js.br +0 -0
  203. package/dist/public/assets/_CD2VZxgc.js.br +0 -0
  204. package/dist/public/assets/_CD9LUiA1.js.br +0 -0
  205. package/dist/public/assets/_CGfW8lhA.js.br +0 -0
  206. package/dist/public/assets/_CH6beBRd.js.br +0 -0
  207. package/dist/public/assets/_CK_oq_Zy.js.br +0 -0
  208. package/dist/public/assets/_CKsCeryF.js.br +0 -0
  209. package/dist/public/assets/_CN6zO7Nx.js.br +0 -0
  210. package/dist/public/assets/_CT_4aU9v.js.br +0 -0
  211. package/dist/public/assets/_Cc0zTPig.js.br +0 -0
  212. package/dist/public/assets/_CkvKurj3.js.br +0 -0
  213. package/dist/public/assets/_CqCBTa4i2.js.br +0 -0
  214. package/dist/public/assets/_CxAIftOa.js.br +0 -0
  215. package/dist/public/assets/_Cxc4x3kp2.js.br +0 -0
  216. package/dist/public/assets/_D-lWfj_d.js.br +0 -0
  217. package/dist/public/assets/_D1v40D0_.js.br +0 -0
  218. package/dist/public/assets/_D2CBcmy92.js.br +0 -0
  219. package/dist/public/assets/_DANBCOm8.js.br +0 -0
  220. package/dist/public/assets/_DFxITRGV.js +0 -1536
  221. package/dist/public/assets/_DFxITRGV.js.br +0 -0
  222. package/dist/public/assets/_DIcIfpSi2.js.br +0 -0
  223. package/dist/public/assets/_DIiQj1WK2.js.br +0 -0
  224. package/dist/public/assets/_DJF1Yq0V.js.br +0 -0
  225. package/dist/public/assets/_DMyeY0fg.js.br +0 -0
  226. package/dist/public/assets/_DPYxtc2v.js.br +0 -0
  227. package/dist/public/assets/_DY5rDZr62.js.br +0 -0
  228. package/dist/public/assets/_DZBUwVb4.js.br +0 -0
  229. package/dist/public/assets/_DcQSDUkF.js.br +0 -0
  230. package/dist/public/assets/_Ddhg8pUf2.js.br +0 -0
  231. package/dist/public/assets/_Dev6jrQa.js.br +0 -0
  232. package/dist/public/assets/_DoJIySsK2.js.br +0 -0
  233. package/dist/public/assets/_Ds-nHHU4.js.br +0 -0
  234. package/dist/public/assets/_Dza3l03i2.js.br +0 -0
  235. package/dist/public/assets/_E92w3rhc.js.br +0 -0
  236. package/dist/public/assets/_KIdOm5wV.js.br +0 -0
  237. package/dist/public/assets/_KkA9wgSQ.js.br +0 -0
  238. package/dist/public/assets/_Qnv2YVI1.js.br +0 -0
  239. package/dist/public/assets/_RD4UJVHf.js.br +0 -0
  240. package/dist/public/assets/_Rw9EiWl4.js.br +0 -0
  241. package/dist/public/assets/_VPFo3zSh.js.br +0 -0
  242. package/dist/public/assets/_Yb5xKwv4.js.br +0 -0
  243. package/dist/public/assets/_bwdm3qFa.js.br +0 -0
  244. package/dist/public/assets/_nKN2u-0c2.js.br +0 -0
  245. package/dist/public/assets/_qR1knnaE.js.br +0 -0
  246. package/dist/public/assets/_snEbm2Ar2.js.br +0 -0
  247. package/dist/public/assets/_tejT-pAf2.js.br +0 -0
  248. package/dist/public/assets/_ulYs8wvn.js.br +0 -0
  249. package/dist/public/assets/app-page-DuEXAcnI.css +0 -1
  250. package/dist/public/assets/app-page-DuEXAcnI.css.br +0 -0
  251. package/dist/public/assets/diff-view-BK4TD-oL.css +0 -1
  252. package/dist/public/assets/diff-view-BK4TD-oL.css.br +0 -0
  253. package/dist/public/assets/new-gddPZdgU.js +0 -1
  254. package/dist/public/assets/settings-gddPZdgU.js +0 -1
  255. package/dist/public/assets/w-gddPZdgU.js +0 -1
  256. package/dist/public/assets/w._-E2EHSRw5.js +0 -1
  257. package/dist/public/assets/w._-gddPZdgU.js +0 -1
  258. package/dist/public/assets/wasm-S0UXjx1m.js +0 -1
  259. package/dist/public/assets/wasm-S0UXjx1m.js.br +0 -0
  260. package/dist/public/assets/worker-DZo603XT.js.br +0 -0
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 setSetting, A as setScrapedPhase, B as saveSubscription, C as agentBadge, D as agentMeta, E as agentLabel, F as manifest, G as agentChoices, H as subscribe, I as normalizeAccent, J as enabledAgents, K as allPrefs, L as setInstance, M as ACCENT_RE, N as getInstance, O as clearAgentPhase, P as iconSvg, Q as setPref, R as deleteSubscription, S as blankRow, T as agentFromCommand, U as subscriberCount, V as publish, W as subscriberJoins, X as preferredAgent, Y as getSetting, Z as setDisabledAgents, _ as tmuxName, _t as run, a as ensureTmuxServer, at as which, b as readHookPayload, c as killWorkspaceSessions, ct as agentById, d as newSessionArgs, dt as db, et as discoverAgents, ft as get, g as sessionStates, gt as git, h as sendToSession, ht as gh, i as disposeSessions, it as setupPath, j as setSessionViewers, k as setAgentPhase, l as listSessions, lt as toolById, m as renameSession, mt as TMUX_SOCKET, n as clearTmuxStarted, nt as ghKnownHosts, o as getSession, ot as DEFAULT_GITHUB_HOST, p as panePids, pt as workspacePath, q as disabledAgents, r as createSession, rt as miseVersions, s as killSession, st as TOOLS, t as cleanEnv, tt as doctor, u as markTmuxStarted, ut as all, v as tmuxWasStarted, vt as tmux, w as agentFamily, x as reportsWorking, y as AGENTS, yt as config, z as pushPublicKey } from "./_b8Fct3kh.js";
3
- import { $ as _content, A as repoLabel, At as attrTag, B as phase, C as sideNavOpen, Ct as _serialize_if, D as icon_xmark_default, Dt as _to_text, E as toast_default, Et as _template, H as $global, I as iconBtnRow, J as _attr_or, K as _attr_input_value, L as iconBtnXs, M as setPrimaryHost, Mt as withPageAssets, N as btnLg, Nt as writeScope, O as icon_base_default, Ot as _trailers, P as btnSm, Q as _attrs_partial, R as inputLg, S as setWorkspaceTab, St as _serialize_guard, T as workspaceTab, Tt as _subscribe, U as _attr, V as tone, W as _attr_class, X as _attr_style, Y as _attr_select_value, Z as _attrs, _t as _scope_id, at as _escape, bt as _script, c as icon_arrow_up_default, ct as _for_of, d as iconBtn$2, dt as _html, et as _content_resume, f as row, ft as _id, gt as _resume_branch, ht as _resume, i as icon_sidebar_default, it as _el_resume, j as repoWebUrl$1, jt as forOf, k as parseRepoUrl, kt as _var, l as icon_back_default, lt as _hoist, mt as _peek_scope_id, n as findIconBtn, o as rankRepos, ot as _existing_scope, p as sectionCount$1, pt as _if, q as _attr_option_value, r as findInput, rt as _el_read_error, s as icon_search_default, st as _flush_head, t as icon_arrow_down_default, tt as _dynamic_tag, u as icon_refresh_default, ut as _hoist_read_error, v as ignoredSsoOrgs, vt as _scope_reason, w as theme, wt as _set_serialize_reason, x as setTheme, xt as _sep, yt as _scope_with_id, z as metaTrunc } from "./_BBnpIqz1.js";
2
+ import { $ as setSetting, A as setScrapedPhase, B as saveSubscription, C as agentBadge, D as agentMeta, E as agentLabel, F as manifest, G as agentChoices, H as subscribe, I as normalizeAccent, J as enabledAgents, K as allPrefs, L as setInstance, M as ACCENT_RE, N as getInstance, O as clearAgentPhase, P as iconSvg, Q as setPref, R as deleteSubscription, S as blankRow, T as agentFromCommand, U as subscriberCount, V as publish, W as subscriberJoins, X as preferredAgent, Y as getSetting, Z as setDisabledAgents, _ as tmuxName, _t as run, a as ensureTmuxServer, at as which, b as readHookPayload, c as killWorkspaceSessions, ct as agentById, d as newSessionArgs, dt as db, et as discoverAgents, ft as get, g as sessionStates, gt as git, h as sendToSession, ht as gh, i as disposeSessions, it as setupPath, j as setSessionViewers, k as setAgentPhase, l as listSessions, lt as toolById, m as renameSession, mt as TMUX_SOCKET, n as clearTmuxStarted, nt as ghKnownHosts, o as getSession, ot as DEFAULT_GITHUB_HOST, p as panePids, pt as workspacePath, q as disabledAgents, r as createSession, rt as miseVersions, s as killSession, st as TOOLS, t as cleanEnv, tt as doctor, u as markTmuxStarted, ut as all, v as tmuxWasStarted, vt as tmux, w as agentFamily, x as reportsWorking, y as AGENTS, yt as config, z as pushPublicKey } from "./_DE2RUdbF.js";
3
+ import { $ as _attrs_partial, A as parseRepoUrl, At as _var, B as metaTrunc, C as setWorkspaceTab, Ct as _serialize_guard, D as toast_default, Dt as _template, E as workspaceTab, Et as _subscribe, F as btnSm, G as _attr_class, H as tone, J as _attr_option_value, L as iconBtnRow, M as repoWebUrl$1, Mt as forOf, N as setPrimaryHost, Nt as withPageAssets, O as icon_xmark_default, Ot as _to_text, P as btnLg, Pt as writeScope, Q as _attrs, R as iconBtnXs, S as setTheme, St as _sep, T as theme, Tt as _set_serialize_reason, U as $global, V as phase, W as _attr, X as _attr_select_value, Y as _attr_or, Z as _attr_style, _t as _resume_branch, at as _el_resume, bt as _scope_with_id, c as icon_arrow_up_default, ct as _flush_head, d as icon_refresh_default, dt as _hoist_read_error, et as _content, f as iconBtn$2, ft as _html, gt as _resume, ht as _peek_scope_id, i as icon_sidebar_default, it as _el_read_error, j as repoLabel, jt as attrTag, k as icon_base_default, kt as _trailers, l as icon_chevron_right_default, lt as _for_of, m as sectionCount$1, mt as _if, n as findIconBtn, nt as _dynamic_tag, o as rankRepos, ot as _escape, p as row, pt as _id, q as _attr_input_value, r as findInput, s as icon_search_default, st as _existing_scope, t as icon_arrow_down_default, tt as _content_resume, u as icon_back_default, ut as _hoist, vt as _scope_id, w as sideNavOpen, wt as _serialize_if, xt as _script, y as ignoredSsoOrgs, yt as _scope_reason, z as inputLg } from "./_BOIUqihs.js";
4
4
  import fs from "node:fs";
5
5
  import { createServer } from "node:http";
6
6
  import path from "node:path";
@@ -1619,7 +1619,7 @@ function swr(ttlMs, load, seed) {
1619
1619
  }
1620
1620
  //#endregion
1621
1621
  //#region src/server/github.ts
1622
- var TTL_MS$3 = 9e5;
1622
+ var TTL_MS$4 = 9e5;
1623
1623
  /** github.com keeps the historical file name; Enterprise hosts get their own. */
1624
1624
  var cachePath = (host) => path.join(config.dataDir, host === DEFAULT_HOST ? "repos.json" : `repos.${host}.json`);
1625
1625
  /**
@@ -1644,7 +1644,7 @@ async function repoCatalog(refresh = false) {
1644
1644
  ...sso.length ? { sso } : {}
1645
1645
  };
1646
1646
  }
1647
- var catalog = swr(TTL_MS$3, fetchCatalog, readDiskCache);
1647
+ var catalog = swr(TTL_MS$4, fetchCatalog, readDiskCache);
1648
1648
  function readDiskCache(host) {
1649
1649
  try {
1650
1650
  const cached = JSON.parse(fs.readFileSync(cachePath(host), "utf8"));
@@ -1662,8 +1662,10 @@ var LIST_FIELDS = "nameWithOwner,defaultBranchRef,isArchived,parent";
1662
1662
  var LIST_FIELDS_NO_PARENT = "nameWithOwner,defaultBranchRef,isArchived";
1663
1663
  /** Orgs that still need SAML SSO for this host's gh token. Memberships
1664
1664
  * list them even when unauthorized; probing `orgs/<login>` yields the
1665
- * authorize URL via `X-GitHub-SSO`. URLs expire (~1h) short TTL only. */
1666
- var ssoCache = swr(6e4, (host) => probePendingSso(host));
1665
+ * authorize URL via `X-GitHub-SSO`. Authorize URLs live ~1 h; both
1666
+ * authorize flows pass `refresh=true`, so a 15 min TTL is enough and
1667
+ * keeps the status poll from re-probing every minute. */
1668
+ var ssoCache = swr(9e5, (host) => probePendingSso(host));
1667
1669
  function pendingSsoOrgs(host, refresh = false) {
1668
1670
  return ssoCache(host, refresh);
1669
1671
  }
@@ -1930,7 +1932,15 @@ function inside(cwd, root) {
1930
1932
  async function portsByWorkspace(paths) {
1931
1933
  const result = /* @__PURE__ */ new Map();
1932
1934
  const canonical = new Map([...paths].map(([wsId, p]) => [wsId, realPath(p)]));
1933
- const [ports, cwds] = await Promise.all([listeningPorts(), processCwds()]);
1935
+ const [ports, cwds] = darwin ? await Promise.all([listeningPorts(), processCwds()]) : await (async () => {
1936
+ const ports = await listeningPorts();
1937
+ const cwds = /* @__PURE__ */ new Map();
1938
+ await Promise.all([...new Set(ports.map((p) => p.pid))].map(async (pid) => {
1939
+ const cwd = await readCwd(pid);
1940
+ if (cwd) cwds.set(pid, cwd);
1941
+ }));
1942
+ return [ports, cwds];
1943
+ })();
1934
1944
  for (const info of ports) {
1935
1945
  const cwd = cwds.get(info.pid);
1936
1946
  if (!cwd) continue;
@@ -2165,10 +2175,10 @@ async function createWorkspace(name, repos) {
2165
2175
  const added = [];
2166
2176
  fs.mkdirSync(dir, { recursive: true });
2167
2177
  try {
2168
- for (const repo of repos) {
2178
+ const results = await Promise.allSettled(repos.map(async (repo) => {
2169
2179
  const worktree = siblings.get(repo.fullName);
2170
2180
  const fullName = await resolveFork(repo);
2171
- const row = await withRepoLock(fullName, async () => {
2181
+ return withRepoLock(fullName, async () => {
2172
2182
  const bare = await ensureBare(fullName);
2173
2183
  const defaultBranch = await bareDefaultBranch(bare);
2174
2184
  const base = repo.baseBranch || defaultBranch;
@@ -2180,8 +2190,10 @@ async function createWorkspace(name, repos) {
2180
2190
  default_branch: defaultBranch
2181
2191
  };
2182
2192
  });
2183
- added.push(row);
2184
- }
2193
+ }));
2194
+ for (const r of results) if (r.status === "fulfilled") added.push(r.value);
2195
+ const failed = results.find((r) => r.status === "rejected");
2196
+ if (failed && failed.status === "rejected") throw failed.reason;
2185
2197
  } catch (err) {
2186
2198
  for (const r of added) await withRepoLock(r.full_name, () => git([
2187
2199
  "worktree",
@@ -2286,6 +2298,7 @@ async function deleteWorkspace(id) {
2286
2298
  const sessions = listSessions(id);
2287
2299
  db.prepare("DELETE FROM workspaces WHERE id = ?").run(id);
2288
2300
  db.prepare("DELETE FROM settings WHERE key = ?").run(`review.seen:${id}`);
2301
+ db.prepare("DELETE FROM settings WHERE key IN (?, ?, ?)").run(`ui.tab:${id}`, `ui.diff-filter:${id}`, `ui.diff-pos:${id}`);
2289
2302
  notifyWorkspacesChanged();
2290
2303
  progress$1(`Stopping sessions and processes…`);
2291
2304
  await disposeSessions(sessions);
@@ -3106,7 +3119,7 @@ function head1(context) {
3106
3119
  }
3107
3120
  //#endregion
3108
3121
  //#region src/server/usage/index.ts
3109
- var TTL_MS$2 = 6e4;
3122
+ var TTL_MS$3 = 6e4;
3110
3123
  /** Plan/quota usage across every agent account this machine is signed into.
3111
3124
  *
3112
3125
  * Each provider is one blocking HTTPS round trip against the same endpoint its
@@ -3125,7 +3138,7 @@ function staleSeconds(source) {
3125
3138
  const match = /^stale-cache\s+(\d+)s/.exec(source);
3126
3139
  return match ? Number(match[1]) : void 0;
3127
3140
  }
3128
- var cached$2 = swr(TTL_MS$2, (_key, _refresh) => collect());
3141
+ var cached$2 = swr(TTL_MS$3, (_key, _refresh) => collect());
3129
3142
  function shape(rows) {
3130
3143
  return { agents: rows.map((row) => ({
3131
3144
  agent: row.agent,
@@ -3189,7 +3202,7 @@ async function graphql(query, host = DEFAULT_HOST) {
3189
3202
  }
3190
3203
  //#endregion
3191
3204
  //#region src/server/prs.ts
3192
- var TTL_MS$1 = 12e4;
3205
+ var TTL_MS$2 = 12e4;
3193
3206
  /** PRs whose head is the workspace branch or one of its `-topic` lanes.
3194
3207
  * `exclude` lists other workspaces' branches — slugs are user-chosen, so
3195
3208
  * another workspace's branch can extend this prefix and its PRs must not
@@ -3206,7 +3219,7 @@ var branchKey = (fullName, branch) => `${fullName}#${branch}`;
3206
3219
  * a recency window over all of a repo's PRs, fetched roughly twice what it
3207
3220
  * kept here and still aged a quiet workspace out on a busy repo.
3208
3221
  * Key: `fullName#branch`. */
3209
- var branchPrs = swr(TTL_MS$1, async (key, refresh) => {
3222
+ var branchPrs = swr(TTL_MS$2, async (key, refresh) => {
3210
3223
  const sep = key.indexOf("#");
3211
3224
  const fullName = key.slice(0, sep);
3212
3225
  const { host, name } = splitRepo(fullName);
@@ -3350,13 +3363,15 @@ function withoutDismissed(workspaceId, fullName, list) {
3350
3363
  }
3351
3364
  //#endregion
3352
3365
  //#region src/server/git-refs.ts
3353
- /** The checked-out commit of a worktree, read off disk instead of spawned.
3366
+ /** The checked-out commit (and branch name) of a worktree, read off disk
3367
+ * instead of spawned.
3354
3368
  *
3355
- * Every status tick needs this for every repo of every active workspace —
3369
+ * Every status tick needs the oid for every repo of every active workspace —
3356
3370
  * it is what tells an open review that an agent committed, since a local
3357
- * commit reaches GitHub through nothing the app can be told about. As a
3358
- * process per repo per tick that was the bulk of the git the server ran;
3359
- * the same answer is three small file reads.
3371
+ * commit reaches GitHub through nothing the app can be told about. Diff
3372
+ * loads also need the branch; both answers come from the same HEAD read.
3373
+ * As a process per repo per tick that was the bulk of the git the server
3374
+ * ran; the same answer is three small file reads.
3360
3375
  *
3361
3376
  * `git` stays the authority for anything this cannot read confidently: a
3362
3377
  * ref backend it does not understand, a chain that does not end in an oid,
@@ -3364,7 +3379,17 @@ function withoutDismissed(workspaceId, fullName, list) {
3364
3379
  * because the drift banner reads a stale oid as "your checkout differs
3365
3380
  * from the review". */
3366
3381
  async function headOid(dir) {
3367
- return await readHead(dir).catch(() => "") || spawnHead(dir);
3382
+ const read = await readHead(dir).catch(() => null);
3383
+ if (read) return read;
3384
+ const [oid, branch] = await Promise.all([spawnHead(dir), git([
3385
+ "rev-parse",
3386
+ "--abbrev-ref",
3387
+ "HEAD"
3388
+ ], dir).catch(() => "HEAD")]);
3389
+ return {
3390
+ oid,
3391
+ branch
3392
+ };
3368
3393
  }
3369
3394
  var spawnHead = (dir) => git(["rev-parse", "HEAD"], dir).catch(() => "");
3370
3395
  /** Both hash algorithms, since a repo may be SHA-256. */
@@ -3373,8 +3398,17 @@ var OID = /^[0-9a-f]{40}(?:[0-9a-f]{24})?$/;
3373
3398
  var MAX_HOPS = 5;
3374
3399
  async function readHead(dir) {
3375
3400
  const { gitDir, common } = await gitDirs(dir);
3376
- if (await exists(path.join(common, "reftable"))) return "";
3401
+ if (await exists(path.join(common, "reftable"))) return null;
3377
3402
  let ref = (await fsp.readFile(path.join(gitDir, "HEAD"), "utf8")).trim();
3403
+ let branch = "HEAD";
3404
+ if (ref.startsWith("ref: ")) {
3405
+ const name = ref.slice(5).trim();
3406
+ if (name.startsWith("refs/heads/")) branch = name.slice(11);
3407
+ } else if (OID.test(ref)) return {
3408
+ oid: ref,
3409
+ branch: "HEAD"
3410
+ };
3411
+ else return null;
3378
3412
  for (let hop = 0; ref.startsWith("ref: ") && hop < MAX_HOPS; hop++) {
3379
3413
  const name = ref.slice(5).trim();
3380
3414
  const loose = await read(path.join(gitDir, name)) ?? await read(path.join(common, name));
@@ -3383,12 +3417,21 @@ async function readHead(dir) {
3383
3417
  continue;
3384
3418
  }
3385
3419
  const packed = await read(path.join(common, "packed-refs"));
3386
- if (packed === void 0) return "";
3420
+ if (packed === void 0) return {
3421
+ oid: "",
3422
+ branch
3423
+ };
3387
3424
  const line = packed.split("\n").find((l) => !l.startsWith("^") && l.endsWith(` ${name}`));
3388
- if (!line) return "";
3425
+ if (!line) return {
3426
+ oid: "",
3427
+ branch
3428
+ };
3389
3429
  ref = line.slice(0, line.indexOf(" "));
3390
3430
  }
3391
- return OID.test(ref) ? ref : "";
3431
+ return OID.test(ref) ? {
3432
+ oid: ref,
3433
+ branch
3434
+ } : null;
3392
3435
  }
3393
3436
  /** A worktree's `.git` is a file pointing at its admin directory inside the
3394
3437
  * shared bare cache, which in turn points back at the common ref store. */
@@ -3406,20 +3449,20 @@ var exists = (file) => fsp.stat(file).then(() => true, () => false);
3406
3449
  var isDir = (file) => fsp.stat(file).then((s) => s.isDirectory(), () => false);
3407
3450
  //#endregion
3408
3451
  //#region src/server/status.ts
3409
- var TTL_MS = 2e3;
3452
+ var TTL_MS$1 = 2e3;
3410
3453
  var snapshot$2 = null;
3411
- var inflight = null;
3454
+ var inflight$1 = null;
3412
3455
  var snapshotGen = 0;
3413
3456
  /** Drop the cached snapshot AND detach any in-flight compute — callers
3414
3457
  * after an invalidation get a computation that starts from fresh state. */
3415
3458
  function invalidateSnapshot() {
3416
3459
  snapshot$2 = null;
3417
3460
  snapshotGen++;
3418
- inflight = null;
3461
+ inflight$1 = null;
3419
3462
  }
3420
3463
  function statusForAll() {
3421
- if (snapshot$2 && Date.now() - snapshot$2.at < TTL_MS) return Promise.resolve(snapshot$2.value);
3422
- if (!inflight) {
3464
+ if (snapshot$2 && Date.now() - snapshot$2.at < TTL_MS$1) return Promise.resolve(snapshot$2.value);
3465
+ if (!inflight$1) {
3423
3466
  const gen = snapshotGen;
3424
3467
  const run = computeStatus().then((value) => {
3425
3468
  if (gen === snapshotGen) snapshot$2 = {
@@ -3428,11 +3471,11 @@ function statusForAll() {
3428
3471
  };
3429
3472
  return value;
3430
3473
  }).finally(() => {
3431
- if (inflight === run) inflight = null;
3474
+ if (inflight$1 === run) inflight$1 = null;
3432
3475
  });
3433
- inflight = run;
3476
+ inflight$1 = run;
3434
3477
  }
3435
- return inflight;
3478
+ return inflight$1;
3436
3479
  }
3437
3480
  /** Push-based freshness: while any events-bus client is connected,
3438
3481
  * recompute the (shared, deduped) snapshot on a slow tick and publish it
@@ -3531,7 +3574,7 @@ async function computeStatus() {
3531
3574
  }
3532
3575
  async function repoStatus(ws, repo, foreign) {
3533
3576
  const dir = path.join(ws.path, repo.worktree);
3534
- const [repoPrs, localHead] = await Promise.all([workspacePrs(repo.full_name, ws.branch, foreign).then((list) => withoutDismissed(ws.id, repo.full_name, list)), headOid(dir)]);
3577
+ const [repoPrs, localHead] = await Promise.all([workspacePrs(repo.full_name, ws.branch, foreign).then((list) => withoutDismissed(ws.id, repo.full_name, list)), headOid(dir).then((h) => h.oid)]);
3535
3578
  return {
3536
3579
  full_name: repo.full_name,
3537
3580
  worktree: repo.worktree,
@@ -3580,11 +3623,12 @@ var QUICK_MS = 80;
3580
3623
  var _middleware_default$3 = Run.ALL(async (_ctx, next) => {
3581
3624
  const statusP = statusForAll();
3582
3625
  const quick = await Promise.race([statusP.then((s) => ({ s })), sleep(QUICK_MS).then(() => null)]).catch(() => null);
3626
+ const agents = enabledAgents();
3583
3627
  const res = await next({
3584
3628
  workspaces: listWorkspaces(),
3585
3629
  settings: {
3586
- preferredAgent: preferredAgent(),
3587
- agents: enabledAgents(),
3630
+ preferredAgent: preferredAgent(agents),
3631
+ agents,
3588
3632
  instance: getInstance()
3589
3633
  },
3590
3634
  prefs: allPrefs(),
@@ -3800,18 +3844,48 @@ function duration(ms) {
3800
3844
  }
3801
3845
  //#endregion
3802
3846
  //#region src/client/usage.ts
3847
+ /** One client-side copy of /api/usage, shared by Settings and the session
3848
+ * switcher. The server already caches per minute and revalidates in the
3849
+ * background; this only stops two surfaces on one page from asking twice
3850
+ * within that minute. A forced refresh bypasses both. */
3851
+ var TTL_MS = 6e4;
3803
3852
  var cached$1 = null;
3804
- function lastUsage$1() {
3853
+ var inflight = null;
3854
+ var subscribers = /* @__PURE__ */ new Set();
3855
+ function setCached(value) {
3856
+ cached$1 = {
3857
+ at: Date.now(),
3858
+ value
3859
+ };
3860
+ for (const listener of subscribers) listener(value);
3861
+ }
3862
+ function lastUsage() {
3805
3863
  return cached$1?.value ?? null;
3806
3864
  }
3807
3865
  /** Prime the store with the server's cached snapshot (SSR and resume), so
3808
3866
  * the first render has numbers. Stamped as fresh: the server already
3809
3867
  * revalidates its own copy in the background. */
3810
3868
  function seedUsage(value) {
3811
- if (value && !cached$1) cached$1 = {
3812
- at: Date.now(),
3813
- value
3814
- };
3869
+ if (value && !cached$1) setCached(value);
3870
+ }
3871
+ function getUsage(refresh = false) {
3872
+ if (!refresh) {
3873
+ if (cached$1 && Date.now() - cached$1.at < TTL_MS) return Promise.resolve(cached$1.value);
3874
+ if (inflight) return inflight;
3875
+ }
3876
+ inflight = api$7(`/api/usage${refresh ? "?refresh" : ""}`).then((value) => {
3877
+ setCached(value);
3878
+ return value;
3879
+ }).catch((err) => {
3880
+ const error = String(err.message || err);
3881
+ return {
3882
+ ...cached$1?.value,
3883
+ error
3884
+ };
3885
+ }).finally(() => {
3886
+ inflight = null;
3887
+ });
3888
+ return inflight;
3815
3889
  }
3816
3890
  /** The plan row an agent instance draws on: its own account (`claude2`)
3817
3891
  * when the provider reports per account, else the family's (`codex`). */
@@ -3942,28 +4016,28 @@ function applyInstance(inst) {
3942
4016
  }
3943
4017
  //#endregion
3944
4018
  //#region src/tags/settings-page.css.ts
3945
- var content$2 = "_cb _bo _bp";
3946
- var agentGrid = "_cf _bz";
3947
- var toolGrid = "_cp _bz";
3948
- var themeSeg = "_cE _5";
3949
- var swatches = "_cM _5";
4019
+ var content$2 = "_cc _bF _bG";
4020
+ var agentGrid = "_ci _br";
4021
+ var toolGrid = "_cs _br";
4022
+ var themeSeg = "_cH _6";
4023
+ var swatches = "_cP _6";
3950
4024
  //#endregion
3951
4025
  //#region src/tags/page-head.marko
3952
4026
  var page_head_default = _template("r", (input) => {
3953
4027
  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);
3954
4028
  const $scope0_id = _scope_id();
3955
- _html(`<header${_attr_class("_bq")}>`);
4029
+ _html(`<header${_attr_class("_bH")}>`);
3956
4030
  _if(() => {
3957
4031
  if (input.backHref) {
3958
4032
  const $scope1_id = _scope_id();
3959
- _html(`<a${_attr("href", input.backHref)}${_attr_class([iconBtnRow, "_cT"])}${_attr_or("title", input.backTitle, " title=\"Back (Esc)\"")}${_attr_or("aria-label", input.backTitle, " aria-label=Back")}>`);
4033
+ _html(`<a${_attr("href", input.backHref)}${_attr_class([iconBtnRow, "_c2"])}${_attr_or("title", input.backTitle, " title=\"Back (Esc)\"")}${_attr_or("aria-label", input.backTitle, " aria-label=Back")}>`);
3960
4034
  icon_back_default({ size: 16 });
3961
4035
  _html(`</a>${_el_resume($scope1_id, "a", _serialize_guard($scope0_reason, 0))}`);
3962
4036
  _serialize_if($scope0_reason, 2) && writeScope($scope1_id, { _: _serialize_if($scope0_reason, 0) && _scope_with_id($scope0_id) });
3963
4037
  return 0;
3964
4038
  } else if (input.onBack) {
3965
4039
  const $scope2_id = _scope_id();
3966
- _html(`<button${_attr_class([iconBtnRow, "_cT"])}${_attr_or("title", input.backTitle, " title=\"Back (Esc)\"")}${_attr_or("aria-label", input.backTitle, " aria-label=Back")}>`);
4040
+ _html(`<button${_attr_class([iconBtnRow, "_c2"])}${_attr_or("title", input.backTitle, " title=\"Back (Esc)\"")}${_attr_or("aria-label", input.backTitle, " aria-label=Back")}>`);
3967
4041
  icon_back_default({ size: 16 });
3968
4042
  _html(`</button>${_el_resume($scope2_id, "a")}`);
3969
4043
  _script($scope2_id, "r0");
@@ -3971,11 +4045,11 @@ var page_head_default = _template("r", (input) => {
3971
4045
  return 1;
3972
4046
  }
3973
4047
  }, $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);
3974
- _html(`<div${_attr_class("_bs")}><h1${_attr("id", input.titleId)}${_attr_class("_br")}>${_escape(input.title)}${_el_resume($scope0_id, "e", _serialize_guard($scope0_reason, 5))}</h1>${_el_resume($scope0_id, "d", _serialize_guard($scope0_reason, 4))}`);
4048
+ _html(`<div${_attr_class("_bJ")}><h1${_attr("id", input.titleId)}${_attr_class("_bI")}>${_escape(input.title)}${_el_resume($scope0_id, "e", _serialize_guard($scope0_reason, 5))}</h1>${_el_resume($scope0_id, "d", _serialize_guard($scope0_reason, 4))}`);
3975
4049
  _if(() => {
3976
4050
  if (input.meta) {
3977
4051
  const $scope3_id = _scope_id();
3978
- _html(`<p${_attr_class("_bt")}>`);
4052
+ _html(`<p${_attr_class("_bK")}>`);
3979
4053
  _dynamic_tag($scope3_id, "b", input.meta, {}, 0, 0, $sg__input_meta);
3980
4054
  _html("</p>");
3981
4055
  $si__input_meta && writeScope($scope3_id, { _: _scope_with_id($scope0_id) });
@@ -3986,7 +4060,7 @@ var page_head_default = _template("r", (input) => {
3986
4060
  _if(() => {
3987
4061
  if (input.actions) {
3988
4062
  const $scope4_id = _scope_id();
3989
- _html(`<div${_attr_class("_bu")}>`);
4063
+ _html(`<div${_attr_class("_bL")}>`);
3990
4064
  _dynamic_tag($scope4_id, "b", input.actions, {}, 0, 0, $sg__input_actions);
3991
4065
  _html("</div>");
3992
4066
  $si__input_actions && writeScope($scope4_id, { _: _scope_with_id($scope0_id) });
@@ -4054,7 +4128,7 @@ var icon_agent_default = _template("G", (input) => {
4054
4128
  n: $badge__closures
4055
4129
  });
4056
4130
  });
4057
- var usageNote = "_e6 _R";
4131
+ var usageNote = "_dM _R";
4058
4132
  //#endregion
4059
4133
  //#region src/tags/icons/icon-warning.marko
4060
4134
  var icon_warning_default = _template("jb", (input) => {
@@ -4084,11 +4158,11 @@ var usage_meters_default = _template("D", (input) => {
4084
4158
  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);
4085
4159
  const $scope0_id = _scope_id();
4086
4160
  const agent = input.agent;
4087
- _html(`<div${_attr_class(["_e0", { ["_e1"]: input.hideName }])}><div${_attr_class("_e2")}>`);
4161
+ _html(`<div${_attr_class(["_dG", { ["_dH"]: input.hideName }])}><div${_attr_class("_dI")}>`);
4088
4162
  _if(() => {
4089
4163
  if (!input.hideName) {
4090
4164
  const $scope1_id = _scope_id();
4091
- _html(`<strong${_attr_class("_fk")}>${_escape(agent.agent)}${_el_resume($scope1_id, "b", $sg__input_agent)}</strong>`);
4165
+ _html(`<strong${_attr_class("_d1")}>${_escape(agent.agent)}${_el_resume($scope1_id, "b", $sg__input_agent)}</strong>`);
4092
4166
  $si__input_agent__OR__input_hideName && writeScope($scope1_id, { _: $si__input_agent && _scope_with_id($scope0_id) });
4093
4167
  return 0;
4094
4168
  }
@@ -4096,7 +4170,7 @@ var usage_meters_default = _template("D", (input) => {
4096
4170
  _if(() => {
4097
4171
  if (agent.plan && agent.plan.toLowerCase() !== agent.agent.toLowerCase()) {
4098
4172
  const $scope2_id = _scope_id();
4099
- _html(`<span${_attr_class("_e3")}>${_escape(agent.plan.replace(/^default_/, "").replaceAll("_", " "))}${_el_resume($scope2_id, "b", $sg__input_agent)}</span>`);
4173
+ _html(`<span${_attr_class("_dJ")}>${_escape(agent.plan.replace(/^default_/, "").replaceAll("_", " "))}${_el_resume($scope2_id, "b", $sg__input_agent)}</span>`);
4100
4174
  $si__input_agent && writeScope($scope2_id, { _: _scope_with_id($scope0_id) });
4101
4175
  return 0;
4102
4176
  }
@@ -4104,21 +4178,21 @@ var usage_meters_default = _template("D", (input) => {
4104
4178
  _if(() => {
4105
4179
  if (agent.stale_seconds != null) {
4106
4180
  const $scope3_id = _scope_id();
4107
- _html(`<span${_attr_class("_e4")}${_attr("title", `${agent.note || "provider unreachable"}. Last cached numbers, ${duration(agent.stale_seconds * 1e3)} old`)}>`);
4181
+ _html(`<span${_attr_class("_dK")}${_attr("title", `${agent.note || "provider unreachable"}. Last cached numbers, ${duration(agent.stale_seconds * 1e3)} old`)}>`);
4108
4182
  icon_warning_default({ size: 12 });
4109
4183
  _html(` ${_sep($sg__input_agent)}${_escape(duration(agent.stale_seconds * 1e3))}${_el_resume($scope3_id, "c", $sg__input_agent)} old</span>${_el_resume($scope3_id, "a", $sg__input_agent)}`);
4110
4184
  $si__input_agent && writeScope($scope3_id, { _: _scope_with_id($scope0_id) });
4111
4185
  return 0;
4112
4186
  }
4113
4187
  }, $scope0_id, "e", $sg__input_agent, $sg__input_agent, $sg__input_agent__OR__input_hideName, 0, 1);
4114
- _html(`</div><div${_attr_class(["_e5", { ["_fl"]: agent.stale_seconds != null }])}>`);
4188
+ _html(`</div><div${_attr_class(["_dL", { ["_d2"]: agent.stale_seconds != null }])}>`);
4115
4189
  _for_of(agent.windows || [], (win) => {
4116
4190
  const $scope4_id = _scope_id();
4117
4191
  const pct = pctText(win.used_percent);
4118
4192
  const label = resetLabel(win.resets_at, agent.stale_seconds != null);
4119
- const fillClass = win.used_percent >= 90 ? "_fd" : win.used_percent >= 70 ? "_fc" : win.used_percent >= 40 ? "_fb" : "_fa";
4120
- const pctClass = win.used_percent >= 90 ? "_fi" : win.used_percent >= 70 ? "_fh" : win.used_percent >= 40 ? "_fg" : "_ff";
4121
- _html(`<div${_attr_class("_e7")}${_attr("title", `${win.window}: ${pct} used${win.resets_at ? `, resets ${new Date(win.resets_at).toLocaleString()}` : ""}`)}><span${_attr_class("_e8")}>${_escape(win.window)}${_el_resume($scope4_id, "c", $sg__input_agent)}</span><span${_attr_class("_e9")}><span${_attr_class(["_e_", 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(["_fe", pctClass])}>${_escape(pct)}${_el_resume($scope4_id, "g", $sg__input_agent)}</span>${_el_resume($scope4_id, "f", $sg__input_agent)}<span${_attr_class("_fj")}>`);
4193
+ const fillClass = win.used_percent >= 90 ? "_dU" : win.used_percent >= 70 ? "_dT" : win.used_percent >= 40 ? "_dS" : "_dR";
4194
+ const pctClass = win.used_percent >= 90 ? "_dZ" : win.used_percent >= 70 ? "_dY" : win.used_percent >= 40 ? "_dX" : "_dW";
4195
+ _html(`<div${_attr_class("_dN")}${_attr("title", `${win.window}: ${pct} used${win.resets_at ? `, resets ${new Date(win.resets_at).toLocaleString()}` : ""}`)}><span${_attr_class("_dO")}>${_escape(win.window)}${_el_resume($scope4_id, "c", $sg__input_agent)}</span><span${_attr_class("_dP")}><span${_attr_class(["_dQ", 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(["_dV", pctClass])}>${_escape(pct)}${_el_resume($scope4_id, "g", $sg__input_agent)}</span>${_el_resume($scope4_id, "f", $sg__input_agent)}<span${_attr_class("_d0")}>`);
4122
4196
  _if(() => {
4123
4197
  if (label) {
4124
4198
  const $scope6_id = _scope_id();
@@ -4150,6 +4224,7 @@ var usage_meters_default = _template("D", (input) => {
4150
4224
  q: $si__input_agent && agent?.note
4151
4225
  });
4152
4226
  });
4227
+ var orgSkip = "_d8 _1 _j";
4153
4228
  //#endregion
4154
4229
  //#region src/tags/sso-auth.marko
4155
4230
  var api$6;
@@ -4197,14 +4272,14 @@ var sso_auth_default = _template("z", (input) => {
4197
4272
  localCode = null;
4198
4273
  }
4199
4274
  }, "z0", $scope0_id);
4200
- _html(`<div${_attr_class("_eO")}>`);
4275
+ _html(`<div${_attr_class("_d5")}>`);
4201
4276
  _if(() => {
4202
4277
  if (input.items.length) {
4203
4278
  const $scope1_id = _scope_id();
4204
- _html(`<p${_attr_class("_eZ")}>GitHub CLI needs org SSO for ${_sep($sg__input_items)}${_escape(input.items.map((s) => s.org).join(", "))}${_el_resume($scope1_id, "b", $sg__input_items)}.</p><ul${_attr_class("_eP")}>`);
4279
+ _html(`<p${_attr_class("_ef")}>GitHub CLI needs org SSO for ${_sep($sg__input_items)}${_escape(input.items.map((s) => s.org).join(", "))}${_el_resume($scope1_id, "b", $sg__input_items)}.</p><ul${_attr_class("_d6")}>`);
4205
4280
  _for_of(input.items, (s) => {
4206
4281
  const $scope2_id = _scope_id();
4207
- _html(`<li${_attr_class("_eQ")}>${_escape(s.org)}${_el_resume($scope2_id, "b", $sg__input_items)}<button type=button${_attr_class("_eR")}${_attr("title", `Skip ${s.org}`)}${_attr("aria-label", `Skip ${s.org}`)}${_attr("disabled", busy)}>`);
4282
+ _html(`<li${_attr_class("_d7")}>${_escape(s.org)}${_el_resume($scope2_id, "b", $sg__input_items)}<button type=button${_attr_class(orgSkip)}${_attr("title", `Skip ${s.org}`)}${_attr("aria-label", `Skip ${s.org}`)}${_attr("disabled", busy)}>`);
4208
4283
  icon_xmark_default({ size: 11 });
4209
4284
  _html(`</button>${_el_resume($scope2_id, "c")}</li>`);
4210
4285
  _script($scope2_id, "z1");
@@ -4213,17 +4288,17 @@ var sso_auth_default = _template("z", (input) => {
4213
4288
  _: _scope_with_id($scope1_id)
4214
4289
  }));
4215
4290
  }, "org", $scope1_id, "c", $sg__input_items, $sg__input_items, $sg__input_items, "</ul>", 1);
4216
- _html(`<div${_attr_class("_eS")}>`);
4291
+ _html(`<div${_attr_class("_d9")}>`);
4217
4292
  _if(() => {
4218
4293
  if (busy && authCode$2) {
4219
4294
  const $scope5_id = _scope_id();
4220
- _html(`<span${_attr_class("_eT")}><span${_attr_class("_E")}></span> Enter code <strong${_attr_class("_eU")}>${_escape(authCode$2)}${_el_resume($scope5_id, "d")}</strong> at <a${_attr("href", `https://${host}/login/device`)}${_attr_class("_eV")}>${_escape(host)}${_el_resume($scope5_id, "f", _serialize_guard($scope0_reason, 3))}/login/device</a>${_el_resume($scope5_id, "e")}</span>`);
4295
+ _html(`<span${_attr_class("_d_")}><span${_attr_class("_E")}></span> Enter code <strong${_attr_class("_ea")}>${_escape(authCode$2)}${_el_resume($scope5_id, "d")}</strong> at <a${_attr("href", `https://${host}/login/device`)}${_attr_class("_eb")}>${_escape(host)}${_el_resume($scope5_id, "f", _serialize_guard($scope0_reason, 3))}/login/device</a>${_el_resume($scope5_id, "e")}</span>`);
4221
4296
  _script($scope5_id, "z2");
4222
4297
  _subscribe($authCode__closures, _subscribe($si__input_items_0_host && $host__closures, writeScope($scope5_id, {})));
4223
4298
  return 0;
4224
4299
  } else if (busy) {
4225
4300
  const $scope8_id = _scope_id();
4226
- _html(`<span${_attr_class("_eT")}><span${_attr_class("_E")}></span>Starting GitHub re-authorization…</span>`);
4301
+ _html(`<span${_attr_class("_d_")}><span${_attr_class("_E")}></span>Starting GitHub re-authorization…</span>`);
4227
4302
  writeScope($scope8_id, {});
4228
4303
  return 1;
4229
4304
  } else {
@@ -4237,7 +4312,7 @@ var sso_auth_default = _template("z", (input) => {
4237
4312
  _if(() => {
4238
4313
  if (localError) {
4239
4314
  const $scope6_id = _scope_id();
4240
- _html(`<p${_attr_class("_eZ")}>${_escape(localError)}${_el_resume($scope6_id, "b")}</p>`);
4315
+ _html(`<p${_attr_class("_ef")}>${_escape(localError)}${_el_resume($scope6_id, "b")}</p>`);
4241
4316
  _subscribe($localError__closures, writeScope($scope6_id, {}));
4242
4317
  return 0;
4243
4318
  }
@@ -4249,10 +4324,10 @@ var sso_auth_default = _template("z", (input) => {
4249
4324
  _if(() => {
4250
4325
  if (skipped$1.length) {
4251
4326
  const $scope3_id = _scope_id();
4252
- _html(`<p${_attr_class("_eW")}>Skipped SSO for `);
4327
+ _html(`<p${_attr_class("_ec")}>Skipped SSO for `);
4253
4328
  _for_of(skipped$1, (s) => {
4254
4329
  const $scope4_id = _scope_id();
4255
- _html(`<span${_attr_class("_eX")}>${_escape(s.org)}${_el_resume($scope4_id, "b", $sg__input_skipped)}<button type=button${_attr_class("_eY")}${_attr("title", `Show ${s.org} again`)}>(undo)</button>${_el_resume($scope4_id, "c")}</span>`);
4330
+ _html(`<span${_attr_class("_ed")}>${_escape(s.org)}${_el_resume($scope4_id, "b", $sg__input_skipped)}<button type=button${_attr_class("_ee")}${_attr("title", `Show ${s.org} again`)}>(undo)</button>${_el_resume($scope4_id, "c")}</span>`);
4256
4331
  _script($scope4_id, "z4");
4257
4332
  writeScope($scope4_id, {
4258
4333
  f: s?.org,
@@ -4327,7 +4402,7 @@ var modal_view_default = _template("p", (input) => {
4327
4402
  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;
4328
4403
  const dismissable = input.dismissable !== false;
4329
4404
  let open = input.open;
4330
- _html(`<dialog${_attr_class(["_gv", inputClass])}${_attr("aria-labelledby", inputLabelledBy)}${inputLabelledBy ? _attr("aria-label", inputAriaLabel) : _attr("aria-label", inputAriaLabel || label)} closedby=${dismissable ? "any" : "none"}${_attrs_partial({
4405
+ _html(`<dialog${_attr_class(["_fu", inputClass])}${_attr("aria-labelledby", inputLabelledBy)}${inputLabelledBy ? _attr("aria-label", inputAriaLabel) : _attr("aria-label", inputAriaLabel || label)} closedby=${dismissable ? "any" : "none"}${_attrs_partial({
4331
4406
  ...htmlInput,
4332
4407
  open: null
4333
4408
  }, {
@@ -4337,20 +4412,20 @@ var modal_view_default = _template("p", (input) => {
4337
4412
  closedby: 1,
4338
4413
  "on-cancel": 1,
4339
4414
  "on-close": 1
4340
- }, "a", $scope0_id, "dialog")}><div${_attr_class("_gw")}>`);
4415
+ }, "a", $scope0_id, "dialog")}><div${_attr_class("_fv")}>`);
4341
4416
  _dynamic_tag($scope0_id, "c", content, {}, 0, 0, _serialize_guard($scope0_reason, 6));
4342
4417
  _html("</div>");
4343
4418
  _if(() => {
4344
4419
  if (footer) {
4345
4420
  const $scope1_id = _scope_id();
4346
- _html(`<form method=dialog${_attr_class("_gx")}>`);
4421
+ _html(`<form method=dialog${_attr_class("_fw")}>`);
4347
4422
  _dynamic_tag($scope1_id, "b", footer.content, {}, 0, 0, _serialize_guard($scope0_reason, 7));
4348
4423
  _html("</form>");
4349
4424
  $si__input_openChange__OR__input_footer && writeScope($scope1_id, { _: _serialize_if($scope0_reason, 7) && _scope_with_id($scope0_id) });
4350
4425
  return 0;
4351
4426
  } else if (input.openChange) {
4352
4427
  const $scope2_id = _scope_id();
4353
- _html(`<form method=dialog${_attr_class("_gx")}>`);
4428
+ _html(`<form method=dialog${_attr_class("_fw")}>`);
4354
4429
  dialog_close_default({
4355
4430
  class: ["_o", "_p"],
4356
4431
  content: _content("p0", () => {
@@ -4409,7 +4484,7 @@ var prompt_dialog_default = _template("s", (input) => {
4409
4484
  const $childScope = _peek_scope_id();
4410
4485
  modal_view_default({
4411
4486
  label: input.label,
4412
- class: "_eM",
4487
+ class: "_d3",
4413
4488
  open: input.open,
4414
4489
  openChange: input.openChange,
4415
4490
  "aria-labelledby": titleId,
@@ -4432,7 +4507,7 @@ var prompt_dialog_default = _template("s", (input) => {
4432
4507
  content: _content("s6", () => {
4433
4508
  _scope_reason();
4434
4509
  const $scope2_id = _scope_id();
4435
- _html(`<h2${_attr_class("_eN")}${_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) => {
4510
+ _html(`<h2${_attr_class("_d4")}${_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) => {
4436
4511
  value = _new_value;
4437
4512
  }, "s0", $scope2_id))}${_attr("placeholder", input.placeholder)}>${_el_resume($scope2_id, "c")}`);
4438
4513
  _script($scope2_id, "s4");
@@ -4471,22 +4546,11 @@ function familyOf(usageAgent, families) {
4471
4546
  return families.find((f) => new RegExp(`^${f.id}\\d*$`).test(usageAgent))?.id ?? null;
4472
4547
  }
4473
4548
  var lastSetup = null;
4474
- var lastUsage = null;
4475
4549
  var lastSkills = null;
4476
- function skillInstalls(n) {
4477
- if (n >= 1e6) return `${(n / 1e6).toFixed(1)}M`;
4478
- if (n >= 1e3) return `${Math.round(n / 1e3)}k`;
4479
- return String(n);
4480
- }
4481
- function looksLikeSource(q) {
4482
- const s = q.trim();
4483
- return s.includes("/") && !/\s/.test(s);
4484
- }
4485
4550
  var settings_page_default = _template("v", (input) => {
4486
4551
  const $scope0_reason = _scope_reason(), $sg__input_backHref__OR__input_onExit = _serialize_guard($scope0_reason, 1), $sg__input_agents = _serialize_guard($scope0_reason, 5), $sg__input_instance_accent = _serialize_guard($scope0_reason, 6), $si__input_instance__OR__input_instanceChange = _serialize_if($scope0_reason, 0), $si__input_preferred = _serialize_if($scope0_reason, 3), $si__input_setupChange = _serialize_if($scope0_reason, 2);
4487
4552
  const $scope0_id = _scope_id();
4488
4553
  const $setup_missing__closures = /* @__PURE__ */ new Set();
4489
- const $setup2__closures = /* @__PURE__ */ new Set();
4490
4554
  const $refreshing__closures = /* @__PURE__ */ new Set();
4491
4555
  const $error__closures = /* @__PURE__ */ new Set();
4492
4556
  const $self_latest__closures = /* @__PURE__ */ new Set();
@@ -4499,12 +4563,20 @@ var settings_page_default = _template("v", (input) => {
4499
4563
  const $refresh2__closures = /* @__PURE__ */ new Set();
4500
4564
  const $run2__closures = /* @__PURE__ */ new Set();
4501
4565
  const $self_install__closures = /* @__PURE__ */ new Set();
4566
+ const $selfUpdating__closures = /* @__PURE__ */ new Set();
4502
4567
  const $hits__closures = /* @__PURE__ */ new Set();
4503
4568
  const $query__closures = /* @__PURE__ */ new Set();
4569
+ const $searching__closures = /* @__PURE__ */ new Set();
4570
+ const $search2__closures = /* @__PURE__ */ new Set();
4504
4571
  const $confirmingSkill__closures = /* @__PURE__ */ new Set();
4572
+ const $skills__closures = /* @__PURE__ */ new Set();
4573
+ const $skills_available__closures = /* @__PURE__ */ new Set();
4505
4574
  const $skillQuery__closures = /* @__PURE__ */ new Set();
4575
+ const $skillHits__closures = /* @__PURE__ */ new Set();
4576
+ const $skillSearching__closures = /* @__PURE__ */ new Set();
4577
+ const $searchSkills2__closures = /* @__PURE__ */ new Set();
4506
4578
  let setup = input.setup || lastSetup;
4507
- let usage = lastUsage;
4579
+ let usage = lastUsage();
4508
4580
  let error = null;
4509
4581
  let refreshing = false;
4510
4582
  let usageRefreshing = false;
@@ -4527,6 +4599,8 @@ var settings_page_default = _template("v", (input) => {
4527
4599
  let skillSearching = false;
4528
4600
  let confirmingSkill = null;
4529
4601
  const skillTimer = { id: 0 };
4602
+ let machineOpen = false;
4603
+ let skillsOpen = false;
4530
4604
  const setThemeMode = _resume((mode) => {
4531
4605
  themeMode = mode;
4532
4606
  setTheme(mode);
@@ -4536,6 +4610,7 @@ var settings_page_default = _template("v", (input) => {
4536
4610
  const applySetup = _resume((s) => {
4537
4611
  setup = s;
4538
4612
  lastSetup = s;
4613
+ if (!s.ready) machineOpen = true;
4539
4614
  setPrimaryHost(s.github);
4540
4615
  input.setupChange?.(s);
4541
4616
  }, "v8", $scope0_id);
@@ -4584,14 +4659,9 @@ var settings_page_default = _template("v", (input) => {
4584
4659
  };
4585
4660
  setTimeout(tick, 4e3);
4586
4661
  }, "v12", $scope0_id);
4587
- const loadUsage = _resume(async (refresh) => {
4588
- try {
4589
- usage = await api$5(`/api/usage${refresh ? "?refresh" : ""}`);
4590
- } catch (err) {
4591
- usage = { error: String(err.message || err) };
4592
- }
4593
- lastUsage = usage;
4594
- }, "v13", $scope0_id);
4662
+ const loadUsage = _resume((refresh) => getUsage(refresh).then((u) => {
4663
+ usage = u;
4664
+ }), "v13", $scope0_id);
4595
4665
  const refresh = _resume(async () => {
4596
4666
  refreshing = true;
4597
4667
  await Promise.all([loadSetup(true), loadSelf(true)]);
@@ -4814,43 +4884,29 @@ var settings_page_default = _template("v", (input) => {
4814
4884
  const githubId = _id();
4815
4885
  const machineId = _id();
4816
4886
  const skillsId = _id();
4817
- _html(`<div${_attr_class("_bm")} role=region${_attr("aria-labelledby", titleId)}><div${_attr_class("_bn")}><div${_attr_class(content$2)}>`);
4887
+ _html(`<div${_attr_class("_bD")} role=region${_attr("aria-labelledby", titleId)}><div${_attr_class("_bE")}><div${_attr_class(content$2)}>`);
4818
4888
  _set_serialize_reason({
4819
4889
  0: _serialize_guard($scope0_reason, 4),
4820
4890
  1: $sg__input_backHref__OR__input_onExit,
4821
4891
  2: $sg__input_backHref__OR__input_onExit,
4822
- 3: $sg__input_backHref__OR__input_onExit
4892
+ 3: 1,
4893
+ 6: 1
4823
4894
  });
4895
+ let $meta;
4896
+ if (setup && !setup.ready) $meta = attrTag({ content: _content_resume("v37", () => {
4897
+ _scope_reason();
4898
+ const $scope5_id = _scope_id();
4899
+ _html(`<span${_attr_class("_ce")}>Not ready</span>. Missing <!>${_escape(setup.missing.map((m) => MISSING_LABEL[m] || m).join(", "))}${_el_resume($scope5_id, "b")}.`);
4900
+ _subscribe($setup_missing__closures, writeScope($scope5_id, { _: _scope_with_id($scope0_id) }));
4901
+ _resume_branch($scope5_id);
4902
+ }, $scope0_id) });
4824
4903
  const $childScope2 = _peek_scope_id();
4825
4904
  page_head_default({
4826
4905
  title: "Settings",
4827
4906
  titleId,
4828
4907
  backHref: input.backHref,
4829
4908
  onBack: input.onExit && _resume(() => input.onExit?.(), "v29", $scope0_id),
4830
- meta: attrTag({ content: _content_resume("v37", () => {
4831
- _scope_reason();
4832
- const $scope5_id = _scope_id();
4833
- _if(() => {
4834
- if (!setup) {
4835
- const $scope66_id = _scope_id();
4836
- _html("Checking this machine…");
4837
- writeScope($scope66_id, {});
4838
- return 0;
4839
- } else if (setup.ready) {
4840
- const $scope67_id = _scope_id();
4841
- _html(`<span${_attr_class("_cd")}>Ready</span>. Tools, GitHub, and an agent are all in place.`);
4842
- writeScope($scope67_id, {});
4843
- return 1;
4844
- } else {
4845
- const $scope6_id = _scope_id();
4846
- _html(`<span${_attr_class("_ce")}>Not ready</span>. Missing <!>${_escape(setup.missing.map((m) => MISSING_LABEL[m] || m).join(", "))}${_el_resume($scope6_id, "b")}.`);
4847
- _subscribe($setup_missing__closures, writeScope($scope6_id, {}));
4848
- return 2;
4849
- }
4850
- }, $scope5_id, "a");
4851
- _subscribe($setup2__closures, writeScope($scope5_id, { _: _scope_with_id($scope0_id) }));
4852
- _resume_branch($scope5_id);
4853
- }, $scope0_id) }),
4909
+ meta: $meta,
4854
4910
  actions: attrTag({ content: _content_resume("v38", () => {
4855
4911
  _scope_reason();
4856
4912
  const $scope10_id = _scope_id();
@@ -4892,40 +4948,40 @@ var settings_page_default = _template("v", (input) => {
4892
4948
  }, $scope0_id, "e", 1, 1, 1, 0, 1);
4893
4949
  _if(() => {
4894
4950
  if (selfUpdatePending || selfUpdating) {
4895
- const $scope45_id = _scope_id();
4896
- _html(`<div${_attr_class("_cI")} role=status><div${_attr_class("_cJ")}>`);
4951
+ const $scope46_id = _scope_id();
4952
+ _html(`<div${_attr_class("_cL")} role=status><div${_attr_class("_cM")}>`);
4897
4953
  _if(() => {
4898
4954
  if (selfUpdating) {
4899
4955
  const $scope68_id = _scope_id();
4900
- _html(`<span${_attr_class("_cK")}><span${_attr_class("_E")}></span> Updating work…</span><span${_attr_class("_cL")}>The app restarts and reloads when it is done.</span>`);
4956
+ _html(`<span${_attr_class("_cN")}><span${_attr_class("_E")}></span> Updating work…</span><span${_attr_class("_cO")}>The app restarts and reloads when it is done.</span>`);
4901
4957
  writeScope($scope68_id, {});
4902
4958
  return 0;
4903
4959
  } else {
4904
- const $scope46_id = _scope_id();
4905
- _html(`<span${_attr_class("_cK")}>Update available</span><span${_attr_class("_cL")}>v<!>${_escape(self.version)}${_el_resume($scope46_id, "c")} → v<!>${_escape(self.latest)}${_el_resume($scope46_id, "d")}</span>`);
4906
- _subscribe($self_version__closures, _subscribe($self_latest__closures, writeScope($scope46_id, {})));
4960
+ const $scope47_id = _scope_id();
4961
+ _html(`<span${_attr_class("_cN")}>Update available</span><span${_attr_class("_cO")}>v<!>${_escape(self.version)}${_el_resume($scope47_id, "c")} → v<!>${_escape(self.latest)}${_el_resume($scope47_id, "d")}</span>`);
4962
+ _subscribe($self_version__closures, _subscribe($self_latest__closures, writeScope($scope47_id, {})));
4907
4963
  return 1;
4908
4964
  }
4909
- }, $scope45_id, "b", 1, 1, 1, "</div>");
4965
+ }, $scope46_id, "b", 1, 1, 1, "</div>");
4910
4966
  _if(() => {
4911
4967
  if (!selfUpdating) {
4912
- const $scope47_id = _scope_id();
4913
- _html(`<button${_attr_class(["_o", "_p"])}${_attr("title", `Update work to v${self.latest} and restart`)}>Update and restart</button>${_el_resume($scope47_id, "a")}`);
4914
- _script($scope47_id, "v40");
4915
- _subscribe($self_latest__closures, writeScope($scope47_id, { Cf2: 1 }));
4968
+ const $scope48_id = _scope_id();
4969
+ _html(`<button${_attr_class(["_o", "_p"])}${_attr("title", `Update work to v${self.latest} and restart`)}>Update and restart</button>${_el_resume($scope48_id, "a")}`);
4970
+ _script($scope48_id, "v40");
4971
+ _subscribe($self_latest__closures, writeScope($scope48_id, { Cf4: 1 }));
4916
4972
  return 0;
4917
4973
  }
4918
- }, $scope45_id, "c", 1, 1, 1, 0, 1);
4974
+ }, $scope46_id, "c", 1, 1, 1, 0, 1);
4919
4975
  _html("</div>");
4920
- writeScope($scope45_id, {});
4976
+ writeScope($scope46_id, {});
4921
4977
  return 0;
4922
4978
  }
4923
4979
  }, $scope0_id, "f", 1, 1, 1, 0, 1);
4924
- _html(`<section${_attr_class("_bw")}${_attr("aria-labelledby", agentsId)}><div${_attr_class("_bx")}><h2${_attr("id", agentsId)}${_attr_class("_bK")}>Agents</h2><div${_attr_class("_x")}></div><label${_attr_class("_ch")}><span${_attr_class("_R")}>Default</span><span${_attr_class("_m")}>`);
4980
+ _html(`<section${_attr_class("_bo")}${_attr("aria-labelledby", agentsId)}><div${_attr_class("_bp")}><h2${_attr("id", agentsId)}${_attr_class("_bC")}>Agents</h2><div${_attr_class("_x")}></div><label${_attr_class("_ck")}><span${_attr_class("_R")}>Default</span><span${_attr_class("_m")}>`);
4925
4981
  _attr_select_value($scope0_id, "n", input.preferred, _resume(function(v) {
4926
4982
  setPreferred(v);
4927
4983
  }, "v2", $scope0_id), () => {
4928
- _html(`<select${_attr_class(["_n", "_ci"])} aria-label="Default agent (starts when a workspace has no session yet)" title="Starts when a workspace has no session yet">`);
4984
+ _html(`<select${_attr_class(["_n", "_cl"])} aria-label="Default agent (starts when a workspace has no session yet)" title="Starts when a workspace has no session yet">`);
4929
4985
  _for_of(input.agents.filter((a) => a !== "shell"), (id) => {
4930
4986
  const $scope69_id = _scope_id();
4931
4987
  _html(`<option${_attr_option_value(id)}>${_escape(agentLabel(id))}${_el_resume($scope69_id, "b", $sg__input_agents)}</option>${_el_resume($scope69_id, "a", $sg__input_agents)}`);
@@ -4946,14 +5002,14 @@ var settings_page_default = _template("v", (input) => {
4946
5002
  const rows = lone ? [] : a.instances;
4947
5003
  const loneAccounts = lone && lone.enabled ? accountsFor(lone.id) : [];
4948
5004
  const extraAccounts = a.installed ? strayAccountsFor(a) : [];
4949
- _html(`<li${_attr_class(["_bB", "_cg"])}><div${_attr_class(["_cj", { ["_cm"]: lone && !lone.enabled }])}>`);
5005
+ _html(`<li${_attr_class(["_bt", "_cj"])}><div${_attr_class(["_cm", { ["_cp"]: lone && !lone.enabled }])}>`);
4950
5006
  _set_serialize_reason(12);
4951
5007
  const $childScope4 = _peek_scope_id();
4952
5008
  icon_agent_default({
4953
5009
  agent: a.id,
4954
5010
  size: 18
4955
5011
  });
4956
- _html(`<div${_attr_class("_bC")}><span${_attr_class("_bE")}><span${_attr_class("_bD")}>${_escape(a.label)}${_el_resume($scope1_id, "g")}</span>`);
5012
+ _html(`<div${_attr_class("_bu")}><span${_attr_class("_bw")}><span${_attr_class("_bv")}>${_escape(a.label)}${_el_resume($scope1_id, "g")}</span>`);
4957
5013
  _if(() => {
4958
5014
  if (lone && input.preferred === lone.id) {
4959
5015
  const $scope70_id = _scope_id();
@@ -4966,12 +5022,12 @@ var settings_page_default = _template("v", (input) => {
4966
5022
  _if(() => {
4967
5023
  if (active.has(a.id)) {
4968
5024
  const $scope11_id = _scope_id();
4969
- _html(`<span${_attr_class("_cc")}><span${_attr_class("_E")}></span><!>${_escape(active.get(a.id) || "Starting…")}${_el_resume($scope11_id, "c")}</span>`);
5025
+ _html(`<span${_attr_class("_cd")}><span${_attr_class("_E")}></span><!>${_escape(active.get(a.id) || "Starting…")}${_el_resume($scope11_id, "c")}</span>`);
4970
5026
  _subscribe($active__closures, writeScope($scope11_id, {}));
4971
5027
  return 0;
4972
5028
  } else if (!a.installed) {
4973
5029
  const $scope71_id = _scope_id();
4974
- _html(`<span${_attr_class("_bF")}>Not installed</span>`);
5030
+ _html(`<span${_attr_class("_bx")}>Not installed</span>`);
4975
5031
  writeScope($scope71_id, {});
4976
5032
  return 1;
4977
5033
  }
@@ -4979,23 +5035,23 @@ var settings_page_default = _template("v", (input) => {
4979
5035
  _html("</div>");
4980
5036
  _if(() => {
4981
5037
  if (!a.installed && !active.has(a.id)) {
4982
- const $scope56_id = _scope_id();
4983
- _html(`<button${_attr_class(btnSm)}>Install</button>${_el_resume($scope56_id, "a")}`);
4984
- _script($scope56_id, "v41");
4985
- writeScope($scope56_id, {});
5038
+ const $scope58_id = _scope_id();
5039
+ _html(`<button${_attr_class(btnSm)}>Install</button>${_el_resume($scope58_id, "a")}`);
5040
+ _script($scope58_id, "v41");
5041
+ writeScope($scope58_id, {});
4986
5042
  return 0;
4987
5043
  }
4988
5044
  }, $scope1_id, "j", 1, 1, 1, 0, 1);
4989
5045
  _if(() => {
4990
5046
  if (lone) {
4991
- const $scope63_id = _scope_id();
5047
+ const $scope65_id = _scope_id();
4992
5048
  _html(`<button${_attr_class([
4993
5049
  "_H",
4994
5050
  "_J",
4995
5051
  { [tone.ok]: lone.enabled }
4996
- ])} 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($scope63_id, "b")}</button>${_el_resume($scope63_id, "a")}`);
4997
- _script($scope63_id, "v42");
4998
- writeScope($scope63_id, {});
5052
+ ])} 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($scope65_id, "b")}</button>${_el_resume($scope65_id, "a")}`);
5053
+ _script($scope65_id, "v42");
5054
+ writeScope($scope65_id, {});
4999
5055
  return 0;
5000
5056
  }
5001
5057
  }, $scope1_id, "k", 1, 1, 1, 0, 1);
@@ -5003,18 +5059,18 @@ var settings_page_default = _template("v", (input) => {
5003
5059
  _if(() => {
5004
5060
  if (rows.length || loneAccounts.length || extraAccounts.length) {
5005
5061
  const $scope2_id = _scope_id();
5006
- _html(`<ul${_attr_class("_co")}>`);
5062
+ _html(`<ul${_attr_class("_cr")}>`);
5007
5063
  _for_of(rows, (inst) => {
5008
5064
  const $scope3_id = _scope_id();
5009
5065
  const accounts = inst.enabled ? accountsFor(inst.id) : [];
5010
- _html(`<li${_attr_class("_ck")}><div${_attr_class(["_cl", { ["_cm"]: !inst.enabled }])}>`);
5066
+ _html(`<li${_attr_class("_cn")}><div${_attr_class(["_co", { ["_cp"]: !inst.enabled }])}>`);
5011
5067
  _set_serialize_reason(12);
5012
5068
  const $childScope5 = _peek_scope_id();
5013
5069
  icon_agent_default({
5014
5070
  agent: inst.id,
5015
5071
  size: 15
5016
5072
  });
5017
- _html(`<span${_attr_class(["_cn", "_w"])}>${_escape(inst.command)}${_el_resume($scope3_id, "e")}</span>`);
5073
+ _html(`<span${_attr_class(["_cq", "_w"])}>${_escape(inst.command)}${_el_resume($scope3_id, "e")}</span>`);
5018
5074
  _if(() => {
5019
5075
  if (input.preferred === inst.id) {
5020
5076
  const $scope72_id = _scope_id();
@@ -5089,7 +5145,7 @@ var settings_page_default = _template("v", (input) => {
5089
5145
  }, "id", $scope0_id, "r", 1, 1, 1, 0, 1);
5090
5146
  _for_of(otherUsage, (u) => {
5091
5147
  const $scope76_id = _scope_id();
5092
- _html(`<li${_attr_class(["_bB", "_cg"])}>`);
5148
+ _html(`<li${_attr_class(["_bt", "_cj"])}>`);
5093
5149
  _set_serialize_reason(6);
5094
5150
  const $childScope9 = _peek_scope_id();
5095
5151
  usage_meters_default({ agent: u });
@@ -5100,17 +5156,17 @@ var settings_page_default = _template("v", (input) => {
5100
5156
  _if(() => {
5101
5157
  if (!usage && families.length) {
5102
5158
  const $scope77_id = _scope_id();
5103
- _html(`<p${_attr_class("_bH")}><span${_attr_class("_E")}></span> Loading usage…</p>`);
5159
+ _html(`<p${_attr_class("_bz")}><span${_attr_class("_E")}></span> Loading usage…</p>`);
5104
5160
  writeScope($scope77_id, {});
5105
5161
  return 0;
5106
5162
  } else if (usage?.error) {
5107
5163
  const $scope7_id = _scope_id();
5108
- _html(`<p${_attr_class("_bH")}>${_escape(usage.error)}${_el_resume($scope7_id, "b")}</p>`);
5164
+ _html(`<p${_attr_class("_bz")}>${_escape(usage.error)}${_el_resume($scope7_id, "b")}</p>`);
5109
5165
  writeScope($scope7_id, {});
5110
5166
  return 1;
5111
5167
  }
5112
5168
  }, $scope0_id, "t", 1, 1, 1, 0, 1);
5113
- _html(`</section><section${_attr_class("_bw")}${_attr("aria-labelledby", githubId)}><div${_attr_class("_bx")}><h2${_attr("id", githubId)}${_attr_class("_bK")}>GitHub</h2></div><ul${_attr_class("_bz")}>`);
5169
+ _html(`</section><section${_attr_class("_bo")}${_attr("aria-labelledby", githubId)}><div${_attr_class("_bp")}><h2${_attr("id", githubId)}${_attr_class("_bC")}>GitHub</h2></div><ul${_attr_class("_br")}>`);
5114
5170
  _for_of(setup?.github || [], (h) => {
5115
5171
  const $scope12_id = _scope_id();
5116
5172
  const $for_content4__h_host__closures = /* @__PURE__ */ new Set();
@@ -5124,7 +5180,7 @@ var settings_page_default = _template("v", (input) => {
5124
5180
  const skippedSso = (() => {
5125
5181
  return (h.sso || []).filter((s) => ignoredSso.has(s.org));
5126
5182
  })();
5127
- _html(`<li${_attr_class(["_bB", "_cy"])}><div${_attr_class("_cz")}><div${_attr_class("_bC")}><span${_attr_class("_bE")}><span${_attr_class(["_bD", "_w"])}>${_escape(h.host)}${_el_resume($scope12_id, "f")}</span>`);
5183
+ _html(`<li${_attr_class(["_bt", "_cB"])}><div${_attr_class("_cC")}><div${_attr_class("_bu")}><span${_attr_class("_bw")}><span${_attr_class(["_bv", "_w"])}>${_escape(h.host)}${_el_resume($scope12_id, "f")}</span>`);
5128
5184
  _if(() => {
5129
5185
  if (h.isEnterprise) {
5130
5186
  const $scope80_id = _scope_id();
@@ -5136,23 +5192,23 @@ var settings_page_default = _template("v", (input) => {
5136
5192
  _html("</span>");
5137
5193
  _if(() => {
5138
5194
  if (active.has(h.host) && authCodes.has(h.host)) {
5139
- const $scope32_id = _scope_id();
5140
- _html(`<span${_attr_class("_cc")}><span${_attr_class("_E")}></span> Enter code <strong${_attr_class("_cw")}>${_escape(authCodes.get(h.host))}${_el_resume($scope32_id, "d")}</strong> at <a${_attr("href", `https://${h.host}/login/device`)} target=_blank rel=noopener${_attr_class("_cx")}>${_escape(h.host)}${_el_resume($scope32_id, "f")}/login/device</a>${_el_resume($scope32_id, "e")}</span>`);
5141
- _subscribe($authCodes__closures, writeScope($scope32_id, { Ces: 1 }));
5195
+ const $scope33_id = _scope_id();
5196
+ _html(`<span${_attr_class("_cd")}><span${_attr_class("_E")}></span> Enter code <strong${_attr_class("_cz")}>${_escape(authCodes.get(h.host))}${_el_resume($scope33_id, "d")}</strong> at <a${_attr("href", `https://${h.host}/login/device`)} target=_blank rel=noopener${_attr_class("_cA")}>${_escape(h.host)}${_el_resume($scope33_id, "f")}/login/device</a>${_el_resume($scope33_id, "e")}</span>`);
5197
+ _subscribe($authCodes__closures, writeScope($scope33_id, { Cet: 1 }));
5142
5198
  return 0;
5143
5199
  } else if (active.has(h.host)) {
5144
5200
  const $scope13_id = _scope_id();
5145
- _html(`<span${_attr_class("_cc")}><span${_attr_class("_E")}></span><!>${_escape(active.get(h.host) || "Starting…")}${_el_resume($scope13_id, "c")}</span>`);
5146
- _subscribe($active__closures, writeScope($scope13_id, { Ceq: 1 }));
5201
+ _html(`<span${_attr_class("_cd")}><span${_attr_class("_E")}></span><!>${_escape(active.get(h.host) || "Starting…")}${_el_resume($scope13_id, "c")}</span>`);
5202
+ _subscribe($active__closures, writeScope($scope13_id, { Cer: 1 }));
5147
5203
  return 1;
5148
5204
  } else if (h.authed) {
5149
5205
  const $scope78_id = _scope_id();
5150
- _html(`<span${_attr_class("_bF")}>Signed in<!>${h.user ? ` as ${_escape(`${_to_text(h.user)}`)}` : ""}${_el_resume($scope78_id, "b")}</span>`);
5206
+ _html(`<span${_attr_class("_bx")}>Signed in<!>${h.user ? ` as ${_escape(`${_to_text(h.user)}`)}` : ""}${_el_resume($scope78_id, "b")}</span>`);
5151
5207
  writeScope($scope78_id, {});
5152
5208
  return 2;
5153
5209
  } else {
5154
5210
  const $scope79_id = _scope_id();
5155
- _html(`<span${_attr_class("_bF")}>${_escape(h.error || "Not signed in")}${_el_resume($scope79_id, "b")}</span>`);
5211
+ _html(`<span${_attr_class("_bx")}>${_escape(h.error || "Not signed in")}${_el_resume($scope79_id, "b")}</span>`);
5156
5212
  writeScope($scope79_id, {});
5157
5213
  return 3;
5158
5214
  }
@@ -5160,32 +5216,32 @@ var settings_page_default = _template("v", (input) => {
5160
5216
  _html("</div>");
5161
5217
  _if(() => {
5162
5218
  if (!active.has(h.host)) {
5163
- const $scope33_id = _scope_id();
5219
+ const $scope34_id = _scope_id();
5164
5220
  _if(() => {
5165
5221
  if (!h.authed) {
5166
- const $scope57_id = _scope_id();
5167
- _html(`<button${_attr_class(btnSm)}>Sign in</button>${_el_resume($scope57_id, "a")}`);
5168
- _script($scope57_id, "v44");
5169
- writeScope($scope57_id, {});
5222
+ const $scope59_id = _scope_id();
5223
+ _html(`<button${_attr_class(btnSm)}>Sign in</button>${_el_resume($scope59_id, "a")}`);
5224
+ _script($scope59_id, "v44");
5225
+ writeScope($scope59_id, {});
5170
5226
  return 0;
5171
5227
  } else {
5172
- const $scope34_id = _scope_id();
5228
+ const $scope35_id = _scope_id();
5173
5229
  _html(`<button${_attr_class([btnSm, {
5174
5230
  ["_r"]: confirmingRemove === `out:${h.host}`,
5175
5231
  ["_q"]: confirmingRemove === `out:${h.host}`
5176
- }])}${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($scope34_id, "b")}</button>${_el_resume($scope34_id, "a")}`);
5177
- _script($scope34_id, "v45");
5178
- _subscribe($for_content4__h_host__closures, _subscribe($confirmingRemove__closures, writeScope($scope34_id, {})));
5232
+ }])}${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($scope35_id, "b")}</button>${_el_resume($scope35_id, "a")}`);
5233
+ _script($scope35_id, "v45");
5234
+ _subscribe($for_content4__h_host__closures, _subscribe($confirmingRemove__closures, writeScope($scope35_id, {})));
5179
5235
  return 1;
5180
5236
  }
5181
- }, $scope33_id, "a", 1, 1, 1, 0, 1);
5237
+ }, $scope34_id, "a", 1, 1, 1, 0, 1);
5182
5238
  _if(() => {
5183
5239
  if (h.isEnterprise) {
5184
- const $scope35_id = _scope_id();
5240
+ const $scope36_id = _scope_id();
5185
5241
  _html(`<button${_attr_class([
5186
- "_bG",
5187
- "_1",
5242
+ "_by",
5188
5243
  "_2",
5244
+ "_3",
5189
5245
  { ["_q"]: confirmingRemove === h.host }
5190
5246
  ])}${confirmingRemove === h.host ? _attr("title", `Forget ${h.host}? (gh stays signed in)`) : _attr("title", `Forget ${h.host}`)}>`);
5191
5247
  _if(() => {
@@ -5200,16 +5256,16 @@ var settings_page_default = _template("v", (input) => {
5200
5256
  writeScope($scope82_id, {});
5201
5257
  return 1;
5202
5258
  }
5203
- }, $scope35_id, "a", 1, 1, 1, "</button>");
5204
- _script($scope35_id, "v46");
5205
- _subscribe($for_content4__h_host__closures, _subscribe($confirmingRemove__closures, writeScope($scope35_id, {
5206
- Cet: 1,
5259
+ }, $scope36_id, "a", 1, 1, 1, "</button>");
5260
+ _script($scope36_id, "v46");
5261
+ _subscribe($for_content4__h_host__closures, _subscribe($confirmingRemove__closures, writeScope($scope36_id, {
5262
+ Ceu: 1,
5207
5263
  Ca2: 1
5208
5264
  })));
5209
5265
  return 0;
5210
5266
  }
5211
- }, $scope33_id, "b", 1, 1, 1, 0, 1);
5212
- writeScope($scope33_id, {});
5267
+ }, $scope34_id, "b", 1, 1, 1, 0, 1);
5268
+ writeScope($scope34_id, {});
5213
5269
  return 0;
5214
5270
  }
5215
5271
  }, $scope12_id, "i");
@@ -5236,7 +5292,7 @@ var settings_page_default = _template("v", (input) => {
5236
5292
  });
5237
5293
  _subscribe($run2__closures, _subscribe($si__input_setupChange && $refresh2__closures, _subscribe($authCodes__closures, _subscribe($active__closures, writeScope($scope14_id, {
5238
5294
  a: _existing_scope($childScope10),
5239
- Ceq: 2
5295
+ Cer: 2
5240
5296
  })))));
5241
5297
  return 0;
5242
5298
  }
@@ -5259,564 +5315,359 @@ var settings_page_default = _template("v", (input) => {
5259
5315
  _if(() => {
5260
5316
  if (setup && !setup.github.length) {
5261
5317
  const $scope83_id = _scope_id();
5262
- _html(`<p${_attr_class("_bH")}>Install the GitHub CLI below to sign in.</p>`);
5318
+ _html(`<p${_attr_class("_bz")}>Install the GitHub CLI below to sign in.</p>`);
5263
5319
  writeScope($scope83_id, {});
5264
5320
  return 0;
5265
5321
  }
5266
5322
  }, $scope0_id, "y", 1, 1, 1, 0, 1);
5267
5323
  _if(() => {
5268
5324
  if (setup) {
5269
- const $scope43_id = _scope_id();
5270
- _html(`<form${_attr_class("_cv")}><label${_attr_class("_V")}>`);
5325
+ const $scope44_id = _scope_id();
5326
+ _html(`<form${_attr_class("_cy")}><label${_attr_class("_V")}>`);
5271
5327
  icon_plus_default({
5272
5328
  size: 14,
5273
5329
  class: "_W"
5274
5330
  });
5275
- _html(`<input${_attr_input_value($scope43_id, "d", hostInput, _resume((_new_hostInput) => {
5331
+ _html(`<input${_attr_input_value($scope44_id, "d", hostInput, _resume((_new_hostInput) => {
5276
5332
  hostInput = _new_hostInput;
5277
- }, "v3", $scope43_id))}${_attr_class([inputLg, "_X"])} type=text placeholder="Add a GitHub Enterprise host, e.g. github.example.com" aria-label="GitHub Enterprise host" autocomplete=off spellcheck=false>${_el_resume($scope43_id, "d")}</label><button${_attr_class(btnSm)} type=submit${_attr("disabled", !hostInput.trim() || hostBusy)}>${hostBusy ? "Adding…" : "Add host"}${_el_resume($scope43_id, "f")}</button>${_el_resume($scope43_id, "e")}</form>${_el_resume($scope43_id, "a")}`);
5278
- _script($scope43_id, "v47");
5279
- writeScope($scope43_id, {});
5333
+ }, "v3", $scope44_id))}${_attr_class([inputLg, "_X"])} type=text placeholder="Add a GitHub Enterprise host, e.g. github.example.com" aria-label="GitHub Enterprise host" autocomplete=off spellcheck=false>${_el_resume($scope44_id, "d")}</label><button${_attr_class(btnSm)} type=submit${_attr("disabled", !hostInput.trim() || hostBusy)}>${hostBusy ? "Adding…" : "Add host"}${_el_resume($scope44_id, "f")}</button>${_el_resume($scope44_id, "e")}</form>${_el_resume($scope44_id, "a")}`);
5334
+ _script($scope44_id, "v47");
5335
+ writeScope($scope44_id, {});
5280
5336
  return 0;
5281
5337
  }
5282
5338
  }, $scope0_id, "z", 1, 1, 1, 0, 1);
5283
- _html(`</section><section${_attr_class("_bw")}${_attr("aria-labelledby", machineId)}><div${_attr_class("_bx")}><h2${_attr("id", machineId)}${_attr_class("_bK")}>Machine</h2>`);
5339
+ _html(`</section><section${_attr_class("_bo")}${_attr("aria-labelledby", machineId)}><div${_attr_class("_bp")}><h2${_attr("id", machineId)}${_attr_class("_bC")}><button${_attr_class("_cf")} aria-expanded=${machineOpen ? "true" : "false"}>`);
5340
+ _set_serialize_reason(1);
5341
+ const $childScope11 = _peek_scope_id();
5342
+ icon_chevron_right_default({
5343
+ size: 11,
5344
+ class: ["_cg", { ["_ch"]: machineOpen }]
5345
+ });
5346
+ _html(` Machine</button>${_el_resume($scope0_id, "a3")}</h2>`);
5284
5347
  _if(() => {
5285
5348
  if (missingCount) {
5286
- const $scope64_id = _scope_id();
5287
- _html(`<span${_attr_class(sectionCount$1)}>${_escape(missingCount)}${_el_resume($scope64_id, "b")} missing</span>`);
5288
- writeScope($scope64_id, {});
5349
+ const $scope66_id = _scope_id();
5350
+ _html(`<span${_attr_class(sectionCount$1)}>${_escape(missingCount)}${_el_resume($scope66_id, "b")} missing</span>`);
5351
+ writeScope($scope66_id, {});
5289
5352
  return 0;
5290
5353
  }
5291
- }, $scope0_id, "a3", 1, 1, 1, 0, 1);
5354
+ }, $scope0_id, "a5", 1, 1, 1, 0, 1);
5292
5355
  _if(() => {
5293
5356
  if (outdatedIds.length) {
5294
- const $scope65_id = _scope_id();
5295
- _html(`<span${_attr_class(sectionCount$1)}>${_escape(outdatedIds.length)}${_el_resume($scope65_id, "b")} outdated</span>`);
5296
- writeScope($scope65_id, {});
5357
+ const $scope67_id = _scope_id();
5358
+ _html(`<span${_attr_class(sectionCount$1)}>${_escape(outdatedIds.length)}${_el_resume($scope67_id, "b")} outdated</span>`);
5359
+ writeScope($scope67_id, {});
5297
5360
  return 0;
5298
5361
  }
5299
- }, $scope0_id, "a4", 1, 1, 1, 0, 1);
5362
+ }, $scope0_id, "a6", 1, 1, 1, 0, 1);
5300
5363
  _html(`<div${_attr_class("_x")}></div>`);
5301
5364
  _if(() => {
5302
- if (outdatedIds.length > 1) {
5365
+ if (machineOpen && outdatedIds.length > 1) {
5303
5366
  const $scope15_id = _scope_id();
5304
5367
  _html(`<button${_attr_class(btnSm)}${_attr("disabled", active.size > 0)}>Update all</button>${_el_resume($scope15_id, "a")}`);
5305
5368
  _script($scope15_id, "v48");
5306
5369
  writeScope($scope15_id, {});
5307
5370
  return 0;
5308
5371
  }
5309
- }, $scope0_id, "a6", 1, 1, 1, 0, 1);
5372
+ }, $scope0_id, "a8", 1, 1, 1, 0, 1);
5310
5373
  _if(() => {
5311
- if (missingInstallable.length > 1) {
5374
+ if (machineOpen && missingInstallable.length > 1) {
5312
5375
  const $scope16_id = _scope_id();
5313
5376
  _html(`<button${_attr_class(btnSm)}${_attr("disabled", active.size > 0)}>Install missing</button>${_el_resume($scope16_id, "a")}`);
5314
5377
  _script($scope16_id, "v49");
5315
5378
  writeScope($scope16_id, {});
5316
5379
  return 0;
5317
5380
  }
5318
- }, $scope0_id, "a7", 1, 1, 1, 0, 1);
5381
+ }, $scope0_id, "a9", 1, 1, 1, 0, 1);
5319
5382
  _html("</div>");
5320
5383
  _if(() => {
5321
- if (setup && !setup.mise.installed) {
5322
- const $scope17_id = _scope_id();
5323
- _html(`<p${_attr_class("_bH")}>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($scope17_id, "c")}</button>${_el_resume($scope17_id, "b")}</p>`);
5324
- _script($scope17_id, "v50");
5325
- writeScope($scope17_id, {});
5326
- return 0;
5327
- }
5328
- }, $scope0_id, "a8", 1, 1, 1, 0, 1);
5329
- _html(`<ul${_attr_class(toolGrid)}>`);
5330
- _if(() => {
5331
- if (self) {
5332
- const $scope48_id = _scope_id();
5333
- _html(`<li${_attr_class(row)}><span${_attr_class(["_cr", "_w"])}>work</span>`);
5384
+ if (machineOpen) {
5385
+ const $scope6_id = _scope_id();
5334
5386
  _if(() => {
5335
- if (selfUpdating) {
5336
- const $scope84_id = _scope_id();
5337
- _html(`<span${_attr_class("_cc")}><span${_attr_class("_E")}></span>Updating the app restarts and reloads when it is done…</span>`);
5338
- writeScope($scope84_id, {});
5387
+ if (setup && !setup.mise.installed) {
5388
+ const $scope17_id = _scope_id();
5389
+ _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($scope17_id, "c")}</button>${_el_resume($scope17_id, "b")}</p>`);
5390
+ _script($scope17_id, "v50");
5391
+ _subscribe($active__closures, writeScope($scope17_id, { Cer: 3 }));
5339
5392
  return 0;
5340
- } else {
5393
+ }
5394
+ }, $scope6_id, "a", 1, 1, 1, 0, 1);
5395
+ _html(`<ul${_attr_class(toolGrid)}>`);
5396
+ _if(() => {
5397
+ if (self) {
5341
5398
  const $scope49_id = _scope_id();
5342
- _html(`<span${_attr_class(["_w", metaTrunc])} title="Running version">v<!>${_escape(self.version)}${_el_resume($scope49_id, "b")}</span>`);
5399
+ _html(`<li${_attr_class(row)}><span${_attr_class(["_cu", "_w"])}>work</span>`);
5343
5400
  _if(() => {
5344
- if (self.install === "source") {
5345
- const $scope85_id = _scope_id();
5346
- _html(`<span${_attr_class(metaTrunc)} title="Started from a checkout, not the published package">source checkout update with git</span>`);
5347
- writeScope($scope85_id, {});
5401
+ if (selfUpdating) {
5402
+ const $scope84_id = _scope_id();
5403
+ _html(`<span${_attr_class("_cd")}><span${_attr_class("_E")}></span>Updating the app restarts and reloads when it is done…</span>`);
5404
+ writeScope($scope84_id, {});
5348
5405
  return 0;
5349
- } else if (self.latest && self.latest !== self.version) {
5406
+ } else {
5350
5407
  const $scope50_id = _scope_id();
5351
- _html(`<button${_attr_class([btnSm, "_ct"])}${_attr("title", `Update work to v${self.latest} and restart`)}>`);
5352
- icon_arrow_up_default({ size: 12 });
5353
- _html(` <!>${_escape(self.latest)}${_el_resume($scope50_id, "c")}</button>${_el_resume($scope50_id, "a")}`);
5354
- _script($scope50_id, "v51");
5355
- _subscribe($self_latest__closures, writeScope($scope50_id, { Cf2: 3 }));
5408
+ _html(`<span${_attr_class(["_w", metaTrunc])} title="Running version">v<!>${_escape(self.version)}${_el_resume($scope50_id, "b")}</span>`);
5409
+ _if(() => {
5410
+ if (self.install === "source") {
5411
+ const $scope85_id = _scope_id();
5412
+ _html(`<span${_attr_class(metaTrunc)} title="Started from a checkout, not the published package">source checkout — update with git</span>`);
5413
+ writeScope($scope85_id, {});
5414
+ return 0;
5415
+ } else if (self.latest && self.latest !== self.version) {
5416
+ const $scope51_id = _scope_id();
5417
+ _html(`<button${_attr_class([btnSm, "_cw"])}${_attr("title", `Update work to v${self.latest} and restart`)}>`);
5418
+ icon_arrow_up_default({ size: 12 });
5419
+ _html(` <!>${_escape(self.latest)}${_el_resume($scope51_id, "c")}</button>${_el_resume($scope51_id, "a")}`);
5420
+ _script($scope51_id, "v51");
5421
+ _subscribe($self_latest__closures, writeScope($scope51_id, { Cf4: 3 }));
5422
+ return 1;
5423
+ } else if (self.latest) {
5424
+ const $scope86_id = _scope_id();
5425
+ _html(`<span${_attr_class(metaTrunc)}>up to date</span>`);
5426
+ writeScope($scope86_id, {});
5427
+ return 2;
5428
+ }
5429
+ }, $scope50_id, "c", 1, 1, 1, 0, 1);
5430
+ _subscribe($self_version__closures, _subscribe($self_latest__closures, _subscribe($self_install__closures, writeScope($scope50_id, {
5431
+ Cf4: 2,
5432
+ Cf5: 1
5433
+ }))));
5356
5434
  return 1;
5357
- } else if (self.latest) {
5358
- const $scope86_id = _scope_id();
5359
- _html(`<span${_attr_class(metaTrunc)}>up to date</span>`);
5360
- writeScope($scope86_id, {});
5361
- return 2;
5362
5435
  }
5363
- }, $scope49_id, "c", 1, 1, 1, 0, 1);
5364
- _subscribe($self_version__closures, _subscribe($self_latest__closures, _subscribe($self_install__closures, writeScope($scope49_id, {
5365
- Cf2: 2,
5366
- Cf3: 1
5367
- }))));
5368
- return 1;
5369
- }
5370
- }, $scope48_id, "c");
5371
- _html(`<span${_attr_class("_x")}></span>`);
5372
- _if(() => {
5373
- if (!selfUpdating) {
5374
- const $scope87_id = _scope_id();
5375
- _html(`<span${_attr_class("_H")}>app</span>`);
5376
- writeScope($scope87_id, {});
5436
+ }, $scope49_id, "c");
5437
+ _html(`<span${_attr_class("_x")}></span>`);
5438
+ _if(() => {
5439
+ if (!selfUpdating) {
5440
+ const $scope87_id = _scope_id();
5441
+ _html(`<span${_attr_class("_H")}>app</span>`);
5442
+ writeScope($scope87_id, {});
5443
+ return 0;
5444
+ }
5445
+ }, $scope49_id, "e", 1, 1, 1, 0, 1);
5446
+ _html("</li>");
5447
+ _subscribe($selfUpdating__closures, writeScope($scope49_id, {}));
5377
5448
  return 0;
5378
5449
  }
5379
- }, $scope48_id, "e", 1, 1, 1, 0, 1);
5380
- _html("</li>");
5381
- writeScope($scope48_id, {});
5382
- return 0;
5383
- }
5384
- }, $scope0_id, "aa", 1, 1, 1, 0, 1);
5385
- _for_of(tools, (t) => {
5386
- const $scope18_id = _scope_id();
5387
- const $for_content5__t_label__closures = /* @__PURE__ */ new Set();
5388
- const $for_content5__t_version__closures = /* @__PURE__ */ new Set();
5389
- const $for_content5__t_path__closures = /* @__PURE__ */ new Set();
5390
- const $for_content5__t_latest__closures = /* @__PURE__ */ new Set();
5391
- const $for_content5__t_id__closures = /* @__PURE__ */ new Set();
5392
- _html(`<li${_attr_class([row, { ["_cq"]: !t.installed }])}><span${_attr_class(["_cr", "_w"])}>${_escape(t.label)}${_el_resume($scope18_id, "c")}</span>`);
5393
- _if(() => {
5394
- if (active.has(t.id)) {
5395
- const $scope19_id = _scope_id();
5396
- _html(`<span${_attr_class("_cc")}><span${_attr_class("_E")}></span><!>${_escape(active.get(t.id) || "Starting…")}${_el_resume($scope19_id, "c")}</span>`);
5397
- _subscribe($active__closures, writeScope($scope19_id, { Ceq: 3 }));
5398
- return 0;
5399
- } else if (t.installed) {
5400
- const $scope39_id = _scope_id();
5401
- _if(() => {
5402
- if (t.version) {
5403
- const $scope40_id = _scope_id();
5404
- _html(`<button${_attr_class(["_cs", "_w"])}${_attr("title", `${t.path || t.label}. Pin a version`)}>v<!>${_escape(t.version)}${_el_resume($scope40_id, "b")}</button>${_el_resume($scope40_id, "a")}`);
5405
- _script($scope40_id, "v52");
5406
- _subscribe($for_content5__t_path__closures, _subscribe($for_content5__t_version__closures, _subscribe($for_content5__t_label__closures, writeScope($scope40_id, { Cu: 1 }))));
5407
- return 0;
5408
- } else {
5409
- const $scope88_id = _scope_id();
5410
- _html(`<span${_attr_class([metaTrunc, "_w"])}${_attr("title", t.path)}>${_escape(t.path)}${_el_resume($scope88_id, "b")}</span>${_el_resume($scope88_id, "a")}`);
5411
- _subscribe($for_content5__t_path__closures, writeScope($scope88_id, { Cx: 1 }));
5412
- return 1;
5413
- }
5414
- }, $scope39_id, "a", 1, 1, 1, 0, 1);
5415
- _if(() => {
5416
- if (outdated(t)) {
5417
- const $scope58_id = _scope_id();
5418
- _html(`<button${_attr_class([btnSm, "_ct"])}${_attr("title", `Update to v${t.latest}`)}>`);
5419
- icon_arrow_up_default({ size: 12 });
5420
- _html(` <!>${_escape(t.latest)}${_el_resume($scope58_id, "c")}</button>${_el_resume($scope58_id, "a")}`);
5421
- _script($scope58_id, "v53");
5422
- _subscribe($for_content5__t_latest__closures, writeScope($scope58_id, {}));
5423
- return 0;
5424
- }
5425
- }, $scope39_id, "b", 1, 1, 1, 0, 1);
5426
- writeScope($scope39_id, {});
5427
- return 1;
5428
- } else if (t.installable) {
5429
- const $scope89_id = _scope_id();
5430
- _html(`<span${_attr_class(metaTrunc)}>not installed</span>`);
5431
- writeScope($scope89_id, {});
5432
- return 2;
5433
- } else {
5434
- const $scope90_id = _scope_id();
5435
- _html(`<span${_attr_class(metaTrunc)} title="Installed with the system package manager">system package</span>`);
5436
- writeScope($scope90_id, {});
5437
- return 3;
5438
- }
5439
- }, $scope18_id, "d");
5440
- _html(`<span${_attr_class("_x")}></span>`);
5441
- _if(() => {
5442
- if (!active.has(t.id)) {
5443
- const $scope36_id = _scope_id();
5444
- _if(() => {
5445
- if (t.required) {
5446
- const $scope91_id = _scope_id();
5447
- _html(`<span${_attr_class("_H")}>required</span>`);
5448
- writeScope($scope91_id, {});
5449
- return 0;
5450
- }
5451
- }, $scope36_id, "a", 1, 1, 1, 0, 1);
5450
+ }, $scope6_id, "c", 1, 1, 1, 0, 1);
5451
+ _for_of(tools, (t) => {
5452
+ const $scope18_id = _scope_id();
5453
+ const $for_content5__t_label__closures = /* @__PURE__ */ new Set();
5454
+ const $for_content5__t_version__closures = /* @__PURE__ */ new Set();
5455
+ const $for_content5__t_path__closures = /* @__PURE__ */ new Set();
5456
+ const $for_content5__t_latest__closures = /* @__PURE__ */ new Set();
5457
+ const $for_content5__t_id__closures = /* @__PURE__ */ new Set();
5458
+ _html(`<li${_attr_class([row, { ["_ct"]: !t.installed }])}><span${_attr_class(["_cu", "_w"])}>${_escape(t.label)}${_el_resume($scope18_id, "c")}</span>`);
5452
5459
  _if(() => {
5453
- if (!t.installed && t.installable) {
5454
- const $scope59_id = _scope_id();
5455
- _html(`<button${_attr_class(btnSm)}>Install</button>${_el_resume($scope59_id, "a")}`);
5456
- _script($scope59_id, "v54");
5457
- writeScope($scope59_id, {});
5460
+ if (active.has(t.id)) {
5461
+ const $scope19_id = _scope_id();
5462
+ _html(`<span${_attr_class("_cd")}><span${_attr_class("_E")}></span><!>${_escape(active.get(t.id) || "Starting…")}${_el_resume($scope19_id, "c")}</span>`);
5463
+ _subscribe($active__closures, writeScope($scope19_id, { Cer: 5 }));
5458
5464
  return 0;
5459
- } else if (t.installed && t.version && !t.required) {
5460
- const $scope37_id = _scope_id();
5461
- _html(`<button${_attr_class([
5462
- iconBtnXs,
5463
- "_1",
5464
- "_2",
5465
- { ["_q"]: confirmingRemove === t.id }
5466
- ])}${confirmingRemove === t.id ? _attr("title", `Remove ${t.label}?`) : _attr("title", `Remove ${t.label}`)}>`);
5465
+ } else if (t.installed) {
5466
+ const $scope40_id = _scope_id();
5467
5467
  _if(() => {
5468
- if (confirmingRemove === t.id) {
5469
- const $scope92_id = _scope_id();
5470
- _html("Remove?");
5471
- writeScope($scope92_id, {});
5468
+ if (t.version) {
5469
+ const $scope41_id = _scope_id();
5470
+ _html(`<button${_attr_class(["_cv", "_w"])}${_attr("title", `${t.path || t.label}. Pin a version`)}>v<!>${_escape(t.version)}${_el_resume($scope41_id, "b")}</button>${_el_resume($scope41_id, "a")}`);
5471
+ _script($scope41_id, "v52");
5472
+ _subscribe($for_content5__t_path__closures, _subscribe($for_content5__t_version__closures, _subscribe($for_content5__t_label__closures, writeScope($scope41_id, { Cu: 1 }))));
5472
5473
  return 0;
5473
5474
  } else {
5474
- const $scope93_id = _scope_id();
5475
- icon_xmark_default({ size: 13 });
5476
- writeScope($scope93_id, {});
5475
+ const $scope88_id = _scope_id();
5476
+ _html(`<span${_attr_class([metaTrunc, "_w"])}${_attr("title", t.path)}>${_escape(t.path)}${_el_resume($scope88_id, "b")}</span>${_el_resume($scope88_id, "a")}`);
5477
+ _subscribe($for_content5__t_path__closures, writeScope($scope88_id, { Cx: 1 }));
5477
5478
  return 1;
5478
5479
  }
5479
- }, $scope37_id, "a", 1, 1, 1, "</button>");
5480
- _script($scope37_id, "v55");
5481
- _subscribe($for_content5__t_id__closures, _subscribe($for_content5__t_label__closures, _subscribe($confirmingRemove__closures, writeScope($scope37_id, { Cet: 2 }))));
5480
+ }, $scope40_id, "a", 1, 1, 1, 0, 1);
5481
+ _if(() => {
5482
+ if (outdated(t)) {
5483
+ const $scope60_id = _scope_id();
5484
+ _html(`<button${_attr_class([btnSm, "_cw"])}${_attr("title", `Update to v${t.latest}`)}>`);
5485
+ icon_arrow_up_default({ size: 12 });
5486
+ _html(` <!>${_escape(t.latest)}${_el_resume($scope60_id, "c")}</button>${_el_resume($scope60_id, "a")}`);
5487
+ _script($scope60_id, "v53");
5488
+ _subscribe($for_content5__t_latest__closures, writeScope($scope60_id, {}));
5489
+ return 0;
5490
+ }
5491
+ }, $scope40_id, "b", 1, 1, 1, 0, 1);
5492
+ writeScope($scope40_id, {});
5482
5493
  return 1;
5494
+ } else if (t.installable) {
5495
+ const $scope89_id = _scope_id();
5496
+ _html(`<span${_attr_class(metaTrunc)}>not installed</span>`);
5497
+ writeScope($scope89_id, {});
5498
+ return 2;
5499
+ } else {
5500
+ const $scope90_id = _scope_id();
5501
+ _html(`<span${_attr_class(metaTrunc)} title="Installed with the system package manager">system package</span>`);
5502
+ writeScope($scope90_id, {});
5503
+ return 3;
5483
5504
  }
5484
- }, $scope36_id, "b", 1, 1, 1, 0, 1);
5485
- writeScope($scope36_id, {});
5486
- return 0;
5487
- }
5488
- }, $scope18_id, "f");
5489
- _html(`</li>${_el_resume($scope18_id, "a")}`);
5490
- writeScope($scope18_id, {
5491
- h: t,
5492
- i: t?.installed,
5493
- j: t?.label,
5494
- k: t?.id,
5495
- m: t?.version,
5496
- n: t?.path,
5497
- o: t?.latest,
5498
- p: t?.installable,
5499
- r: t?.required,
5500
- u: $for_content5__t_label__closures,
5501
- w: $for_content5__t_version__closures,
5502
- x: $for_content5__t_path__closures,
5503
- y: $for_content5__t_latest__closures,
5504
- v: $for_content5__t_id__closures
5505
- });
5506
- }, "id", $scope0_id, "ab", 1, 1, 1, 0, 1);
5507
- _html("</ul>");
5508
- _if(() => {
5509
- if (setup && setup.mise.installed) {
5510
- const $scope20_id = _scope_id();
5511
- _html(`<div><label${_attr_class("_V")}>`);
5512
- icon_search_default({
5513
- size: 14,
5514
- class: "_W"
5515
- });
5516
- _html(`<input${_attr_input_value($scope20_id, "c", query, search)}${_attr_class([inputLg, "_X"])} type=text placeholder="Add a tool from the mise registry…" aria-label="Search the mise registry" autocomplete=off>${_el_resume($scope20_id, "c")}</label>`);
5517
- _if(() => {
5518
- if (hits && hits.length) {
5519
- const $scope21_id = _scope_id();
5520
- _html(`<ul${_attr_class([toolGrid, "_cu"])}>`);
5521
- _for_of(hits, (h) => {
5522
- const $scope22_id = _scope_id();
5523
- _html(`<li${_attr_class(row)}><div${_attr_class("_bC")}><span${_attr_class(["_cr", "_w"])}>${_escape(h.name)}${_el_resume($scope22_id, "d")}</span>`);
5505
+ }, $scope18_id, "d");
5506
+ _html(`<span${_attr_class("_x")}></span>`);
5507
+ _if(() => {
5508
+ if (!active.has(t.id)) {
5509
+ const $scope37_id = _scope_id();
5524
5510
  _if(() => {
5525
- if (active.has(h.name)) {
5526
- const $scope23_id = _scope_id();
5527
- _html(`<span${_attr_class("_cc")}><span${_attr_class("_E")}></span><!>${_escape(active.get(h.name) || "Starting…")}${_el_resume($scope23_id, "c")}</span>`);
5528
- _subscribe($active__closures, writeScope($scope23_id, { Ceq: 5 }));
5511
+ if (t.required) {
5512
+ const $scope91_id = _scope_id();
5513
+ _html(`<span${_attr_class("_H")}>required</span>`);
5514
+ writeScope($scope91_id, {});
5529
5515
  return 0;
5530
- } else if (h.description) {
5531
- const $scope94_id = _scope_id();
5532
- _html(`<span${_attr_class("_bF")}${_attr("title", h.description)}>${_escape(h.description)}${_el_resume($scope94_id, "b")}</span>${_el_resume($scope94_id, "a")}`);
5533
- writeScope($scope94_id, {});
5534
- return 1;
5535
5516
  }
5536
- }, $scope22_id, "e", 1, 1, 1, 0, 1);
5537
- _html("</div>");
5517
+ }, $scope37_id, "a", 1, 1, 1, 0, 1);
5538
5518
  _if(() => {
5539
- if (!active.has(h.name)) {
5540
- const $scope41_id = _scope_id();
5519
+ if (!t.installed && t.installable) {
5520
+ const $scope61_id = _scope_id();
5521
+ _html(`<button${_attr_class(btnSm)}>Install</button>${_el_resume($scope61_id, "a")}`);
5522
+ _script($scope61_id, "v54");
5523
+ writeScope($scope61_id, {});
5524
+ return 0;
5525
+ } else if (t.installed && t.version && !t.required) {
5526
+ const $scope38_id = _scope_id();
5527
+ _html(`<button${_attr_class([
5528
+ iconBtnXs,
5529
+ "_2",
5530
+ "_3",
5531
+ { ["_q"]: confirmingRemove === t.id }
5532
+ ])}${confirmingRemove === t.id ? _attr("title", `Remove ${t.label}?`) : _attr("title", `Remove ${t.label}`)}>`);
5541
5533
  _if(() => {
5542
- if (h.installed) {
5543
- const $scope95_id = _scope_id();
5544
- _html(`<span${_attr_class("_H")}>installed</span>`);
5545
- writeScope($scope95_id, {});
5534
+ if (confirmingRemove === t.id) {
5535
+ const $scope92_id = _scope_id();
5536
+ _html("Remove?");
5537
+ writeScope($scope92_id, {});
5546
5538
  return 0;
5547
5539
  } else {
5548
- const $scope42_id = _scope_id();
5549
- _html(`<button${_attr_class(btnSm)}>Install</button>${_el_resume($scope42_id, "a")}<button${_attr_class(btnSm)} title="Install a specific version">@…</button>${_el_resume($scope42_id, "b")}`);
5550
- _script($scope42_id, "v56");
5551
- writeScope($scope42_id, {});
5540
+ const $scope93_id = _scope_id();
5541
+ icon_xmark_default({ size: 13 });
5542
+ writeScope($scope93_id, {});
5552
5543
  return 1;
5553
5544
  }
5554
- }, $scope41_id, "a");
5555
- writeScope($scope41_id, {});
5556
- return 0;
5545
+ }, $scope38_id, "a", 1, 1, 1, "</button>");
5546
+ _script($scope38_id, "v55");
5547
+ _subscribe($for_content5__t_id__closures, _subscribe($for_content5__t_label__closures, _subscribe($confirmingRemove__closures, writeScope($scope38_id, { Ceu: 2 }))));
5548
+ return 1;
5557
5549
  }
5558
- }, $scope22_id, "f");
5559
- _html("</li>");
5560
- _subscribe($active__closures, writeScope($scope22_id, {
5561
- i: h?.name,
5562
- k: h?.description,
5563
- m: h?.installed,
5564
- Ceq: 4
5565
- }));
5566
- }, "name", $scope21_id, "a", 1, 1, 1, "</ul>", 1);
5567
- _subscribe($hits__closures, writeScope($scope21_id, {}));
5568
- return 0;
5569
- } else if (hits && !searching) {
5570
- const $scope44_id = _scope_id();
5571
- _html(`<p${_attr_class("_bH")}>No tools match "<!>${_escape(query)}${_el_resume($scope44_id, "b")}".</p>`);
5572
- _subscribe($query__closures, writeScope($scope44_id, {}));
5573
- return 1;
5574
- }
5575
- }, $scope20_id, "d", 1, 1, 1, 0, 1);
5576
- _html("</div>");
5577
- _script($scope20_id, "v57");
5578
- writeScope($scope20_id, {});
5579
- return 0;
5580
- }
5581
- }, $scope0_id, "ac", 1, 1, 1, 0, 1);
5582
- _html(`</section><section${_attr_class("_bw")}${_attr("aria-labelledby", skillsId)}><div${_attr_class("_bx")}><h2${_attr("id", skillsId)}${_attr_class("_bK")}>Skills</h2>`);
5583
- _if(() => {
5584
- if (skills?.global.length) {
5585
- const $scope52_id = _scope_id();
5586
- _html(`<span${_attr_class(sectionCount$1)}>${_escape(skills.global.length)}${_el_resume($scope52_id, "b")}</span>`);
5587
- writeScope($scope52_id, {});
5588
- return 0;
5589
- }
5590
- }, $scope0_id, "ag", 1, 1, 1, 0, 1);
5591
- _html("</div>");
5592
- _if(() => {
5593
- if (skills && !skills.agents.length) {
5594
- const $scope96_id = _scope_id();
5595
- _html(`<p${_attr_class("_bH")}>No agent CLIs are installed, so a skill would have nowhere to go.</p>`);
5596
- writeScope($scope96_id, {});
5597
- return 0;
5598
- } else if (skills && !skills.available) {
5599
- const $scope24_id = _scope_id();
5600
- _html(`<p${_attr_class("_bH")}>The skills CLI is not installed, so these can be listed but not changed. <button${_attr_class(btnSm)}${_attr("disabled", active.has("skills"))}>${active.has("skills") ? "Installing…" : "Install it"}${_el_resume($scope24_id, "c")}</button>${_el_resume($scope24_id, "b")}</p>`);
5601
- _script($scope24_id, "v58");
5602
- writeScope($scope24_id, {});
5603
- return 1;
5604
- }
5605
- }, $scope0_id, "ah", 1, 1, 1, 0, 1);
5606
- _html(`<ul${_attr_class("_bz")}>`);
5607
- _for_of(skills?.global || [], (s) => {
5608
- const $scope25_id = _scope_id();
5609
- _html(`<li${_attr_class("_bB")}><div${_attr_class("_bC")}><span${_attr_class(["_bD", "_w"])}>${_escape(s.name)}${_el_resume($scope25_id, "d")}</span>`);
5610
- _if(() => {
5611
- if (active.has(s.id)) {
5612
- const $scope26_id = _scope_id();
5613
- _html(`<span${_attr_class("_cc")}><span${_attr_class("_E")}></span><!>${_escape(active.get(s.id) || "Starting…")}${_el_resume($scope26_id, "c")}</span>`);
5614
- _subscribe($active__closures, writeScope($scope26_id, { Ceq: 6 }));
5615
- return 0;
5616
- } else if (s.description) {
5617
- const $scope97_id = _scope_id();
5618
- _html(`<span${_attr_class("_bF")}${_attr("title", s.description)}>${_escape(s.description)}${_el_resume($scope97_id, "b")}</span>${_el_resume($scope97_id, "a")}`);
5619
- writeScope($scope97_id, {});
5620
- return 1;
5621
- }
5622
- }, $scope25_id, "e", 1, 1, 1, 0, 1);
5623
- _if(() => {
5624
- if (s.sourceUrl) {
5625
- const $scope98_id = _scope_id();
5626
- _html(`<a${_attr_class(["_bF", "_cS"])}${_attr("href", s.sourceUrl)} target=_blank rel=noopener${_attr("title", `Open ${s.source} on GitHub`)}>${_escape(s.source)}${_el_resume($scope98_id, "b")}</a>${_el_resume($scope98_id, "a")}`);
5627
- writeScope($scope98_id, {});
5628
- return 0;
5629
- } else if (s.source) {
5630
- const $scope99_id = _scope_id();
5631
- _html(`<span${_attr_class("_bF")}>${_escape(s.source)}${_el_resume($scope99_id, "b")}</span>`);
5632
- writeScope($scope99_id, {});
5633
- return 1;
5634
- } else {
5635
- const $scope101_id = _scope_id();
5636
- _html(`<span${_attr_class(["_bF", "_v"])} title="Not installed from a source, so it cannot be updated">local only</span>`);
5637
- writeScope($scope101_id, {});
5638
- return 2;
5639
- }
5640
- }, $scope25_id, "f", 1, 1, 1, 0, 1);
5641
- _html("</div>");
5642
- _if(() => {
5643
- if (skills && s.agents.length < skills.agents.length) {
5644
- const $scope100_id = _scope_id();
5645
- _html(`<span${_attr_class("_bE")}><span${_attr_class("_H")}${_attr("title", `Only installed for ${s.agents.map(agentLabel).join(", ")}`)}>${_escape(s.agents.map(agentLabel).join(", "))}${_el_resume($scope100_id, "c")} only</span>${_el_resume($scope100_id, "b")}</span>`);
5646
- writeScope($scope100_id, {});
5647
- return 0;
5648
- }
5649
- }, $scope25_id, "g", 1, 1, 1, 0, 1);
5650
- _if(() => {
5651
- if (!active.has(s.id) && skills?.available) {
5652
- const $scope55_id = _scope_id();
5653
- _if(() => {
5654
- if (s.source) {
5655
- const $scope60_id = _scope_id();
5656
- _html(`<button${_attr_class(btnSm)}>Update</button>${_el_resume($scope60_id, "a")}`);
5657
- _script($scope60_id, "v59");
5658
- writeScope($scope60_id, {});
5659
- return 0;
5660
- }
5661
- }, $scope55_id, "a", 1, 1, 1, 0, 1);
5662
- _html(`<button${_attr_class([
5663
- iconBtnXs,
5664
- "_1",
5665
- "_2",
5666
- { ["_q"]: confirmingSkill === s.id }
5667
- ])}${confirmingSkill === s.id ? _attr("title", `Remove ${s.name}?`) : _attr("title", `Remove ${s.name}`)}>`);
5668
- _if(() => {
5669
- if (confirmingSkill === s.id) {
5670
- const $scope102_id = _scope_id();
5671
- _html("Remove?");
5672
- writeScope($scope102_id, {});
5550
+ }, $scope37_id, "b", 1, 1, 1, 0, 1);
5551
+ writeScope($scope37_id, {});
5673
5552
  return 0;
5674
- } else {
5675
- const $scope103_id = _scope_id();
5676
- icon_xmark_default({ size: 13 });
5677
- writeScope($scope103_id, {});
5678
- return 1;
5679
5553
  }
5680
- }, $scope55_id, "b", 1, 1, 1, "</button>");
5681
- _script($scope55_id, "v60");
5682
- _subscribe($confirmingSkill__closures, writeScope($scope55_id, {}));
5683
- return 0;
5684
- }
5685
- }, $scope25_id, "h");
5686
- _html("</li>");
5687
- writeScope($scope25_id, {
5688
- k: s?.name,
5689
- l: s?.id,
5690
- n: s?.description,
5691
- p: s?.sourceUrl,
5692
- q: s?.source,
5693
- s: s?.agents
5694
- });
5695
- }, "id", $scope0_id, "ai", 1, 1, 1, "</ul>", 1);
5696
- _if(() => {
5697
- if (skills && !skills.global.length) {
5698
- const $scope104_id = _scope_id();
5699
- _html(`<p${_attr_class("_bH")}>No skills installed. Search below, or paste an owner/repo.</p>`);
5700
- writeScope($scope104_id, {});
5701
- return 0;
5702
- }
5703
- }, $scope0_id, "aj", 1, 1, 1, 0, 1);
5704
- _if(() => {
5705
- if (skills?.available && skills.agents.length) {
5706
- const $scope27_id = _scope_id();
5707
- _html(`<div><label${_attr_class("_V")}>`);
5708
- icon_search_default({
5709
- size: 14,
5710
- class: "_W"
5711
- });
5712
- _html(`<input${_attr_input_value($scope27_id, "c", skillQuery, searchSkills)}${_attr_class([inputLg, "_X"])} type=text placeholder="Search skills, or paste owner/repo…" aria-label="Search for a skill" autocomplete=off spellcheck=false>${_el_resume($scope27_id, "c")}</label><ul${_attr_class([toolGrid, "_cu"])}${_attr("hidden", !skillQuery.trim())}>`);
5554
+ }, $scope18_id, "f");
5555
+ _html(`</li>${_el_resume($scope18_id, "a")}`);
5556
+ _subscribe($active__closures, writeScope($scope18_id, {
5557
+ h: t,
5558
+ i: t?.installed,
5559
+ j: t?.label,
5560
+ k: t?.id,
5561
+ m: t?.version,
5562
+ n: t?.path,
5563
+ o: t?.latest,
5564
+ p: t?.installable,
5565
+ r: t?.required,
5566
+ u: $for_content5__t_label__closures,
5567
+ w: $for_content5__t_version__closures,
5568
+ x: $for_content5__t_path__closures,
5569
+ y: $for_content5__t_latest__closures,
5570
+ v: $for_content5__t_id__closures,
5571
+ Cer: 4
5572
+ }));
5573
+ }, "id", $scope6_id, "d", 1, 1, 1, 0, 1);
5574
+ _html("</ul>");
5713
5575
  _if(() => {
5714
- if (looksLikeSource(skillQuery)) {
5715
- const $scope28_id = _scope_id();
5716
- _html(`<li${_attr_class(row)}><div${_attr_class("_bC")}><span${_attr_class(["_cr", "_w"])}>${_escape(skillQuery.trim())}${_el_resume($scope28_id, "d")}</span>`);
5576
+ if (setup && setup.mise.installed) {
5577
+ const $scope20_id = _scope_id();
5578
+ _html(`<div><label${_attr_class("_V")}>`);
5579
+ icon_search_default({
5580
+ size: 14,
5581
+ class: "_W"
5582
+ });
5583
+ _html(`<input${_attr_input_value($scope20_id, "c", query, search)}${_attr_class([inputLg, "_X"])} type=text placeholder="Add a tool from the mise registry…" aria-label="Search the mise registry" autocomplete=off>${_el_resume($scope20_id, "c")}</label>`);
5717
5584
  _if(() => {
5718
- if (active.has(skillQuery.trim())) {
5719
- const $scope29_id = _scope_id();
5720
- _html(`<span${_attr_class("_cc")}><span${_attr_class("_E")}></span><!>${_escape(active.get(skillQuery.trim()) || "Starting…")}${_el_resume($scope29_id, "c")}</span>`);
5721
- _subscribe($skillQuery__closures, _subscribe($active__closures, writeScope($scope29_id, {
5722
- Ceq: 8,
5723
- Cfa: 1
5724
- })));
5585
+ if (hits && hits.length) {
5586
+ const $scope21_id = _scope_id();
5587
+ _html(`<ul${_attr_class([toolGrid, "_cx"])}>`);
5588
+ _for_of(hits, (h) => {
5589
+ const $scope22_id = _scope_id();
5590
+ _html(`<li${_attr_class(row)}><div${_attr_class("_bu")}><span${_attr_class(["_cu", "_w"])}>${_escape(h.name)}${_el_resume($scope22_id, "d")}</span>`);
5591
+ _if(() => {
5592
+ if (active.has(h.name)) {
5593
+ const $scope23_id = _scope_id();
5594
+ _html(`<span${_attr_class("_cd")}><span${_attr_class("_E")}></span><!>${_escape(active.get(h.name) || "Starting…")}${_el_resume($scope23_id, "c")}</span>`);
5595
+ _subscribe($active__closures, writeScope($scope23_id, { Cer: 7 }));
5596
+ return 0;
5597
+ } else if (h.description) {
5598
+ const $scope94_id = _scope_id();
5599
+ _html(`<span${_attr_class("_bx")}${_attr("title", h.description)}>${_escape(h.description)}${_el_resume($scope94_id, "b")}</span>${_el_resume($scope94_id, "a")}`);
5600
+ writeScope($scope94_id, {});
5601
+ return 1;
5602
+ }
5603
+ }, $scope22_id, "e", 1, 1, 1, 0, 1);
5604
+ _html("</div>");
5605
+ _if(() => {
5606
+ if (!active.has(h.name)) {
5607
+ const $scope42_id = _scope_id();
5608
+ _if(() => {
5609
+ if (h.installed) {
5610
+ const $scope95_id = _scope_id();
5611
+ _html(`<span${_attr_class("_H")}>installed</span>`);
5612
+ writeScope($scope95_id, {});
5613
+ return 0;
5614
+ } else {
5615
+ const $scope43_id = _scope_id();
5616
+ _html(`<button${_attr_class(btnSm)}>Install</button>${_el_resume($scope43_id, "a")}<button${_attr_class(btnSm)} title="Install a specific version">@…</button>${_el_resume($scope43_id, "b")}`);
5617
+ _script($scope43_id, "v56");
5618
+ writeScope($scope43_id, {});
5619
+ return 1;
5620
+ }
5621
+ }, $scope42_id, "a");
5622
+ writeScope($scope42_id, {});
5623
+ return 0;
5624
+ }
5625
+ }, $scope22_id, "f");
5626
+ _html("</li>");
5627
+ _subscribe($active__closures, writeScope($scope22_id, {
5628
+ i: h?.name,
5629
+ k: h?.description,
5630
+ m: h?.installed,
5631
+ Cer: 6
5632
+ }));
5633
+ }, "name", $scope21_id, "a", 1, 1, 1, "</ul>", 1);
5634
+ _subscribe($hits__closures, writeScope($scope21_id, { Cf1: 1 }));
5725
5635
  return 0;
5726
- } else {
5727
- const $scope105_id = _scope_id();
5728
- _html(`<span${_attr_class("_bF")}>Add straight from this source</span>`);
5729
- writeScope($scope105_id, {});
5636
+ } else if (hits && !searching) {
5637
+ const $scope45_id = _scope_id();
5638
+ _html(`<p${_attr_class("_bz")}>No tools match "<!>${_escape(query)}${_el_resume($scope45_id, "b")}".</p>`);
5639
+ _subscribe($query__closures, writeScope($scope45_id, { Cf0: 1 }));
5730
5640
  return 1;
5731
5641
  }
5732
- }, $scope28_id, "e", 1, 1, 1, 0, 1);
5642
+ }, $scope20_id, "d", 1, 1, 1, 0, 1);
5733
5643
  _html("</div>");
5734
- _if(() => {
5735
- if (!active.has(skillQuery.trim())) {
5736
- const $scope53_id = _scope_id();
5737
- _html(`<button${_attr_class(btnSm)}>Add</button>${_el_resume($scope53_id, "a")}`);
5738
- _script($scope53_id, "v61");
5739
- writeScope($scope53_id, {});
5740
- return 0;
5741
- }
5742
- }, $scope28_id, "f", 1, 1, 1, 0, 1);
5743
- _html("</li>");
5744
- _subscribe($skillQuery__closures, _subscribe($active__closures, writeScope($scope28_id, { Ceq: 7 })));
5745
- return 0;
5746
- }
5747
- }, $scope27_id, "e", 1, 1, 1, 0, 1);
5748
- _for_of(skillHits || [], (h) => {
5749
- const $scope30_id = _scope_id();
5750
- const $for_content8__h_installs__closures = /* @__PURE__ */ new Set();
5751
- _html(`<li${_attr_class(row)}><div${_attr_class("_bC")}><span${_attr_class(["_cr", "_w"])}>${_escape(h.name)}${_el_resume($scope30_id, "d")}</span>`);
5752
- _if(() => {
5753
- if (active.has(h.skillId)) {
5754
- const $scope31_id = _scope_id();
5755
- _html(`<span${_attr_class("_cc")}><span${_attr_class("_E")}></span><!>${_escape(active.get(h.skillId) || "Starting…")}${_el_resume($scope31_id, "c")}</span>`);
5756
- _subscribe($active__closures, writeScope($scope31_id, { Ceq: 10 }));
5757
- return 0;
5758
- } else {
5759
- const $scope106_id = _scope_id();
5760
- _html(`<span${_attr_class("_bF")}${_attr("title", h.source)}>${_escape(h.source)}${_el_resume($scope106_id, "b")}</span>${_el_resume($scope106_id, "a")}`);
5761
- writeScope($scope106_id, {});
5762
- return 1;
5763
- }
5764
- }, $scope30_id, "e", 1, 1, 1, 0, 1);
5765
- _html("</div>");
5766
- _if(() => {
5767
- if (!active.has(h.skillId)) {
5768
- const $scope61_id = _scope_id();
5769
- _if(() => {
5770
- if (h.installs) {
5771
- const $scope107_id = _scope_id();
5772
- _html(`<span${_attr_class(["_H", "_I"])}${_attr("title", `${h.installs} installs`)}>${_escape(skillInstalls(h.installs))}${_el_resume($scope107_id, "b")}</span>${_el_resume($scope107_id, "a")}`);
5773
- _subscribe($for_content8__h_installs__closures, writeScope($scope107_id, {}));
5774
- return 0;
5775
- }
5776
- }, $scope61_id, "a", 1, 1, 1, 0, 1);
5777
- _if(() => {
5778
- if (h.installed) {
5779
- const $scope108_id = _scope_id();
5780
- _html(`<span${_attr_class("_H")}>installed</span>`);
5781
- writeScope($scope108_id, {});
5782
- return 0;
5783
- } else {
5784
- const $scope62_id = _scope_id();
5785
- _html(`<button${_attr_class(btnSm)}>Add</button>${_el_resume($scope62_id, "a")}`);
5786
- _script($scope62_id, "v62");
5787
- writeScope($scope62_id, {});
5788
- return 1;
5789
- }
5790
- }, $scope61_id, "b", 1, 1, 1, 0, 1);
5791
- writeScope($scope61_id, {});
5792
- return 0;
5793
- }
5794
- }, $scope30_id, "f");
5795
- _html("</li>");
5796
- _subscribe($active__closures, writeScope($scope30_id, {
5797
- j: h?.skillId,
5798
- l: h?.source,
5799
- m: h?.installs,
5800
- n: h?.installed,
5801
- q: $for_content8__h_installs__closures,
5802
- Ceq: 9
5803
- }));
5804
- }, "skillId", $scope27_id, "f", 1, 1, 1, 0, 1);
5805
- _html(`</ul>${_el_resume($scope27_id, "d")}`);
5806
- _if(() => {
5807
- if (skillHits && !skillHits.length && !skillSearching && !looksLikeSource(skillQuery)) {
5808
- const $scope54_id = _scope_id();
5809
- _html(`<p${_attr_class("_bH")}>No skills match "<!>${_escape(skillQuery)}${_el_resume($scope54_id, "b")}".</p>`);
5810
- _subscribe($skillQuery__closures, writeScope($scope54_id, { Cfa: 2 }));
5644
+ _script($scope20_id, "v57");
5645
+ _subscribe($search2__closures, _subscribe($searching__closures, _subscribe($hits__closures, _subscribe($query__closures, writeScope($scope20_id, {})))));
5811
5646
  return 0;
5812
5647
  }
5813
- }, $scope27_id, "g", 1, 1, 1, 0, 1);
5814
- _html("</div>");
5815
- _script($scope27_id, "v63");
5816
- writeScope($scope27_id, {});
5648
+ }, $scope6_id, "e", 1, 1, 1, 0, 1);
5649
+ writeScope($scope6_id, {});
5817
5650
  return 0;
5818
5651
  }
5819
- }, $scope0_id, "ak", 1, 1, 1, 0, 1);
5652
+ }, $scope0_id, "aa");
5653
+ _html(`</section><section${_attr_class("_bo")}${_attr("aria-labelledby", skillsId)}><div${_attr_class("_bp")}><h2${_attr("id", skillsId)}${_attr_class("_bC")}><button${_attr_class("_cf")} aria-expanded=false>`);
5654
+ _set_serialize_reason(1);
5655
+ const $childScope12 = _peek_scope_id();
5656
+ icon_chevron_right_default({
5657
+ size: 11,
5658
+ class: ["_cg", { ["_ch"]: skillsOpen }]
5659
+ });
5660
+ _html(` Skills</button>${_el_resume($scope0_id, "ae")}</h2>`);
5661
+ _if(() => {
5662
+ if (skills?.global.length) {
5663
+ const $scope53_id = _scope_id();
5664
+ _html(`<span${_attr_class(sectionCount$1)}>${_escape(skills.global.length)}${_el_resume($scope53_id, "b")}</span>`);
5665
+ writeScope($scope53_id, {});
5666
+ return 0;
5667
+ }
5668
+ }, $scope0_id, "ag", 1, 1, 1, 0, 1);
5669
+ _html("</div>");
5670
+ _if(() => {}, $scope0_id, "ah");
5820
5671
  const themeOpts = [
5821
5672
  {
5822
5673
  id: "system",
@@ -5831,56 +5682,56 @@ var settings_page_default = _template("v", (input) => {
5831
5682
  label: "Dark"
5832
5683
  }
5833
5684
  ];
5834
- _html(`</section><section${_attr_class("_bw")}${_attr("aria-labelledby", appearanceId)}><div${_attr_class("_bx")}><h2${_attr("id", appearanceId)}${_attr_class("_bK")}>Appearance</h2></div><div${_attr_class(["_bB", "_cA"])}><label${_attr_class("_cB")}><span${_attr_class("_cC")}>Name</span><input${_attr_input_value($scope0_id, "ar", input.instance.name, _resume(function(v) {
5685
+ _html(`</section><section${_attr_class("_bo")}${_attr("aria-labelledby", appearanceId)}><div${_attr_class("_bp")}><h2${_attr("id", appearanceId)}${_attr_class("_bC")}>Appearance</h2></div><div${_attr_class(["_bt", "_cD"])}><label${_attr_class("_cE")}><span${_attr_class("_cF")}>Name</span><input${_attr_input_value($scope0_id, "ao", input.instance.name, _resume(function(v) {
5835
5686
  setInstance({ name: v });
5836
- }, "v4", $scope0_id))}${_attr_class(["_T", "_cD"])} type=text placeholder="Tab title" maxlength=32 autocomplete=off spellcheck=false>${_el_resume($scope0_id, "ar")}</label><div${_attr_class("_cB")}><span${_attr_class("_cC")}>Theme</span><span${_attr_class("_cF")}><span${_attr_class(themeSeg)} role=radiogroup aria-label="Color theme">`);
5687
+ }, "v4", $scope0_id))}${_attr_class(["_T", "_cG"])} type=text placeholder="Tab title" maxlength=32 autocomplete=off spellcheck=false>${_el_resume($scope0_id, "ao")}</label><div${_attr_class("_cE")}><span${_attr_class("_cF")}>Theme</span><span${_attr_class("_cI")}><span${_attr_class(themeSeg)} role=radiogroup aria-label="Color theme">`);
5837
5688
  _for_of(themeOpts, (opt) => {
5838
- const $scope51_id = _scope_id();
5839
- _html(`<button type=button${_attr_class(["_7", { ["_6"]: themeMode === opt.id }])} role=radio aria-checked=${themeMode === opt.id ? "true" : "false"}>${_escape(opt.label)}</button>${_el_resume($scope51_id, "a")}`);
5840
- _script($scope51_id, "v64");
5841
- writeScope($scope51_id, {
5689
+ const $scope52_id = _scope_id();
5690
+ _html(`<button type=button${_attr_class(["_8", { ["_7"]: themeMode === opt.id }])} role=radio aria-checked=${themeMode === opt.id ? "true" : "false"}>${_escape(opt.label)}</button>${_el_resume($scope52_id, "a")}`);
5691
+ _script($scope52_id, "v65");
5692
+ writeScope($scope52_id, {
5842
5693
  e: opt?.id,
5843
5694
  _: _scope_with_id($scope0_id)
5844
5695
  });
5845
- }, "id", $scope0_id, "av", 1, 0, 1, 0, 1);
5846
- _html(`</span><span${_attr_class(["_m", "_cG"])}>`);
5847
- _attr_select_value($scope0_id, "ax", themeMode, _resume(function(v) {
5696
+ }, "id", $scope0_id, "as", 1, 0, 1, 0, 1);
5697
+ _html(`</span><span${_attr_class(["_m", "_cJ"])}>`);
5698
+ _attr_select_value($scope0_id, "au", themeMode, _resume(function(v) {
5848
5699
  setThemeMode(v);
5849
5700
  }, "v5", $scope0_id), () => {
5850
- _html(`<select${_attr_class(["_n", "_cH"])} aria-label="Color theme">`);
5701
+ _html(`<select${_attr_class(["_n", "_cK"])} aria-label="Color theme">`);
5851
5702
  forOf(themeOpts, (opt) => {
5852
5703
  _scope_id();
5853
5704
  _html(`<option${_attr_option_value(opt.id)}>${_escape(opt.label)}</option>`);
5854
5705
  });
5855
5706
  _html("</select>");
5856
5707
  });
5857
- _html(`${_el_resume($scope0_id, "ax")}</span></span></div><div${_attr_class("_cB")}><span${_attr_class("_cC")}>Accent</span><span${_attr_class(swatches)} role=radiogroup aria-label="Accent colour"><button type=button${_attr_class([
5858
- "_cN",
5859
- "_cP",
5860
- { ["_cO"]: !input.instance.accent }
5861
- ])} role=radio aria-checked=${!input.instance.accent ? "true" : "false"} title="Default (blue)" aria-label="Default (blue)"></button>${_el_resume($scope0_id, "b1")}`);
5708
+ _html(`${_el_resume($scope0_id, "au")}</span></span></div><div${_attr_class("_cE")}><span${_attr_class("_cF")}>Accent</span><span${_attr_class(swatches)} role=radiogroup aria-label="Accent colour"><button type=button${_attr_class([
5709
+ "_cQ",
5710
+ "_cS",
5711
+ { ["_cR"]: !input.instance.accent }
5712
+ ])} role=radio aria-checked=${!input.instance.accent ? "true" : "false"} title="Default (blue)" aria-label="Default (blue)"></button>${_el_resume($scope0_id, "ay")}`);
5862
5713
  _for_of(ACCENT_PRESETS, (p) => {
5863
5714
  const $scope4_id = _scope_id();
5864
- _html(`<button type=button${_attr_class(["_cN", { ["_cO"]: input.instance.accent === p.value }])}${_attr_style(`--swatch:${p.value}`)} role=radio aria-checked=${input.instance.accent === p.value ? "true" : "false"}${_attr("title", p.name)}${_attr("aria-label", p.name)}></button>${_el_resume($scope4_id, "a")}`);
5865
- _script($scope4_id, "v65");
5715
+ _html(`<button type=button${_attr_class(["_cQ", { ["_cR"]: input.instance.accent === p.value }])}${_attr_style(`--swatch:${p.value}`)} role=radio aria-checked=${input.instance.accent === p.value ? "true" : "false"}${_attr("title", p.name)}${_attr("aria-label", p.name)}></button>${_el_resume($scope4_id, "a")}`);
5716
+ _script($scope4_id, "v66");
5866
5717
  writeScope($scope4_id, {
5867
5718
  d: p?.value,
5868
5719
  _: _scope_with_id($scope0_id)
5869
5720
  });
5870
- }, "value", $scope0_id, "b2", $sg__input_instance_accent, 0, 1, 0, 1);
5721
+ }, "value", $scope0_id, "az", $sg__input_instance_accent, 0, 1, 0, 1);
5871
5722
  const customOn = !!input.instance.accent && !ACCENT_PRESETS.some((p) => p.value === input.instance.accent);
5872
5723
  _html(`<label${_attr_class([
5873
- "_cN",
5874
5724
  "_cQ",
5875
- { ["_cO"]: customOn }
5876
- ])}${customOn ? _attr_style(`--swatch:${input.instance.accent}`) : ""} title="Custom colour"><input${_attr_input_value($scope0_id, "b4", input.instance.accent || "#3556d8", _resume(function(v) {
5725
+ "_cT",
5726
+ { ["_cR"]: customOn }
5727
+ ])}${customOn ? _attr_style(`--swatch:${input.instance.accent}`) : ""} title="Custom colour"><input${_attr_input_value($scope0_id, "b1", input.instance.accent || "#3556d8", _resume(function(v) {
5877
5728
  setInstance({ accent: v });
5878
- }, "v6", $scope0_id))}${_attr_class("_cR")} type=color aria-label="Custom accent colour">${_el_resume($scope0_id, "b4")}<span aria-hidden=true>+</span></label>${_el_resume($scope0_id, "b3", $sg__input_instance_accent)}</span></div></div></section></div></div></div>`);
5729
+ }, "v6", $scope0_id))}${_attr_class("_cU")} type=color aria-label="Custom accent colour">${_el_resume($scope0_id, "b1")}<span aria-hidden=true>+</span></label>${_el_resume($scope0_id, "b0", $sg__input_instance_accent)}</span></div></div></section></div></div></div>`);
5879
5730
  _if(() => {
5880
5731
  if (versionPick) {
5881
- const $scope38_id = _scope_id();
5732
+ const $scope39_id = _scope_id();
5882
5733
  _set_serialize_reason(14);
5883
- const $childScope11 = _peek_scope_id();
5734
+ const $childScope13 = _peek_scope_id();
5884
5735
  prompt_dialog_default({
5885
5736
  label: `Pin ${versionPick.label}: latest, lts, a prefix (22), or exact (22.11.0)`,
5886
5737
  placeholder: "latest",
@@ -5889,126 +5740,141 @@ var settings_page_default = _template("v", (input) => {
5889
5740
  open: versionPick != null,
5890
5741
  openChange: _resume(function(o) {
5891
5742
  if (!o) versionPick = null;
5892
- }, "v34", $scope38_id),
5743
+ }, "v34", $scope39_id),
5893
5744
  onSubmit: _resume(function(v) {
5894
5745
  const pick = versionPick;
5895
5746
  versionPick = null;
5896
5747
  run(pick.id, "install", v);
5897
- }, "v35", $scope38_id)
5748
+ }, "v35", $scope39_id)
5898
5749
  });
5899
- writeScope($scope38_id, { a: _existing_scope($childScope11) });
5750
+ writeScope($scope39_id, { a: _existing_scope($childScope13) });
5900
5751
  return 0;
5901
5752
  }
5902
- }, $scope0_id, "b5", 1, 1, 1, 0, 1);
5903
- _script($scope0_id, "v66");
5753
+ }, $scope0_id, "b2", 1, 1, 1, 0, 1);
5904
5754
  _script($scope0_id, "v67");
5755
+ _script($scope0_id, "v68");
5905
5756
  writeScope($scope0_id, {
5906
- b9: input.setupChange,
5907
- ba: input.agentsChange,
5908
- bb: input.preferred,
5909
- bc: input.preferredChange,
5910
- be: input.instance,
5911
- bf: input.instanceChange,
5912
- bh: input.onExit,
5913
- bj: $si__input_instance__OR__input_instanceChange && input.instance?.name,
5914
- bk: $si__input_instance__OR__input_instanceChange && input.instance?.accent,
5915
- bl: setup,
5916
- bm: setup?.agents,
5917
- bo: setup?.missing,
5918
- bq: usage,
5919
- br: usage?.agents,
5920
- bs: usage?.error,
5921
- bt: error,
5922
- bu: refreshing,
5923
- bw: active,
5924
- bx: active?.size,
5925
- by: authCodes,
5926
- bz: confirmingRemove,
5927
- c0: versionPick,
5928
- c1: versionPick?.label,
5929
- c2: versionPick?.current,
5930
- c3: hostInput,
5931
- c4: hostBusy,
5932
- c5: query,
5933
- c6: hits,
5934
- c7: self,
5935
- c8: self?.install,
5936
- c9: self?.latest,
5937
- ca: self?.version,
5938
- cb: selfUpdating,
5939
- ce: searching,
5940
- cg: searchTimer.id,
5941
- ci: skills,
5942
- ck: skills?.global?.length,
5943
- cn: skills?.available,
5944
- co: skillQuery,
5945
- cp: skillHits,
5946
- cq: skillSearching,
5947
- cr: confirmingSkill,
5948
- ct: skillTimer.id,
5949
- cv: setThemeMode,
5950
- cz: applySetup,
5951
- d1: syncAgents,
5952
- d2: loadSetup,
5953
- d3: loadSelf,
5954
- d5: updateSelf,
5955
- d6: loadUsage,
5956
- d8: refresh,
5957
- d9: refreshUsage,
5958
- da: setActive,
5959
- dc: run,
5960
- dd: applySkills,
5961
- df: loadSkills,
5962
- dg: runSkill,
5963
- dh: searchSkills,
5964
- di: changeHost,
5965
- dj: runEach,
5966
- dk: setPreferred,
5967
- dn: saveTimer.id,
5968
- dp: setInstance,
5969
- ds: setEnabled,
5970
- dt: search,
5971
- du: outdated,
5972
- dx: missingInstallable,
5757
+ b6: input.setupChange,
5758
+ b7: input.agentsChange,
5759
+ b8: input.preferred,
5760
+ b9: input.preferredChange,
5761
+ bb: input.instance,
5762
+ bc: input.instanceChange,
5763
+ be: input.onExit,
5764
+ bg: $si__input_instance__OR__input_instanceChange && input.instance?.name,
5765
+ bh: $si__input_instance__OR__input_instanceChange && input.instance?.accent,
5766
+ bi: setup,
5767
+ bj: setup?.agents,
5768
+ bl: setup?.missing,
5769
+ bn: usage,
5770
+ bo: usage?.agents,
5771
+ bp: usage?.error,
5772
+ bq: error,
5773
+ br: refreshing,
5774
+ bt: active,
5775
+ bu: active?.size,
5776
+ bv: authCodes,
5777
+ bw: confirmingRemove,
5778
+ bx: versionPick,
5779
+ by: versionPick?.label,
5780
+ bz: versionPick?.current,
5781
+ c0: hostInput,
5782
+ c1: hostBusy,
5783
+ c2: query,
5784
+ c3: hits,
5785
+ c4: self,
5786
+ c5: self?.install,
5787
+ c6: self?.latest,
5788
+ c7: self?.version,
5789
+ c8: selfUpdating,
5790
+ cb: searching,
5791
+ cd: searchTimer.id,
5792
+ cf: skills,
5793
+ cg: skills?.global,
5794
+ ch: skills?.global?.length,
5795
+ cj: skills?.agents?.length,
5796
+ ck: skills?.available,
5797
+ cl: skillQuery,
5798
+ cm: skillHits,
5799
+ cn: skillSearching,
5800
+ co: confirmingSkill,
5801
+ cq: skillTimer.id,
5802
+ cs: machineOpen,
5803
+ ct: skillsOpen,
5804
+ cu: setThemeMode,
5805
+ cy: applySetup,
5806
+ d0: syncAgents,
5807
+ d1: loadSetup,
5808
+ d2: loadSelf,
5809
+ d4: updateSelf,
5810
+ d5: loadUsage,
5811
+ d7: refresh,
5812
+ d8: refreshUsage,
5813
+ d9: setActive,
5814
+ db: run,
5815
+ dc: applySkills,
5816
+ de: loadSkills,
5817
+ df: runSkill,
5818
+ dg: searchSkills,
5819
+ dh: changeHost,
5820
+ di: runEach,
5821
+ dj: setPreferred,
5822
+ dm: saveTimer.id,
5823
+ do: setInstance,
5824
+ dr: setEnabled,
5825
+ ds: search,
5826
+ dt: outdated,
5827
+ du: tools,
5828
+ dw: missingInstallable,
5829
+ dx: missingInstallable?.length,
5973
5830
  dz: missingCount,
5974
5831
  e0: outdatedIds,
5975
5832
  e1: outdatedIds?.length,
5976
- e2: families,
5977
- e4: families.length,
5978
- e6: instanceIds,
5979
- e8: accountsFor,
5980
- e9: strayAccountsFor,
5981
- em: $setup_missing__closures,
5982
- el: $setup2__closures,
5983
- ep: $refreshing__closures,
5984
- d: _serialize_if($scope0_reason, 1) && _existing_scope($childScope2),
5985
- eo: $error__closures,
5986
- f2: $self_latest__closures,
5987
- f3: $self_version__closures,
5833
+ e3: families,
5834
+ e5: families.length,
5835
+ e7: instanceIds,
5836
+ e9: accountsFor,
5837
+ ea: strayAccountsFor,
5838
+ en: $setup_missing__closures,
5839
+ eq: $refreshing__closures,
5840
+ d: _existing_scope($childScope2),
5841
+ ep: $error__closures,
5842
+ f4: $self_latest__closures,
5843
+ f5: $self_version__closures,
5988
5844
  p: _existing_scope($childScope3),
5989
- eq: $active__closures,
5990
- ej: $si__input_preferred && $input_preferred__closures,
5991
- fl: $accountsFor2__closures,
5992
- es: $authCodes__closures,
5993
- et: $confirmingRemove__closures,
5994
- fe: $si__input_setupChange && $refresh2__closures,
5995
- ff: $run2__closures,
5996
- f1: $self_install__closures,
5997
- f0: $hits__closures,
5998
- ez: $query__closures,
5999
- fd: $confirmingSkill__closures,
6000
- fa: $skillQuery__closures
5845
+ er: $active__closures,
5846
+ ek: $si__input_preferred && $input_preferred__closures,
5847
+ fq: $accountsFor2__closures,
5848
+ et: $authCodes__closures,
5849
+ eu: $confirmingRemove__closures,
5850
+ fi: $si__input_setupChange && $refresh2__closures,
5851
+ fj: $run2__closures,
5852
+ a4: _existing_scope($childScope11),
5853
+ f3: $self_install__closures,
5854
+ f6: $selfUpdating__closures,
5855
+ f1: $hits__closures,
5856
+ f0: $query__closures,
5857
+ f8: $searching__closures,
5858
+ fl: $search2__closures,
5859
+ af: _existing_scope($childScope12),
5860
+ fh: $confirmingSkill__closures,
5861
+ f9: $skills__closures,
5862
+ fd: $skills_available__closures,
5863
+ fe: $skillQuery__closures,
5864
+ ff: $skillHits__closures,
5865
+ fg: $skillSearching__closures,
5866
+ fk: $searchSkills2__closures
6001
5867
  });
6002
5868
  _resume_branch($scope0_id);
6003
5869
  });
6004
5870
  //#endregion
6005
5871
  //#region src/tags/new-workspace.css.ts
6006
- var content$1 = "_bL _bo";
6007
- var section$1 = "_bP _bw";
6008
- var curBase = "_bU _S _R";
6009
- var archived = "_bZ _bw";
6010
- var archivedHint = "_b0 _R";
6011
- var archivedCard = "_b1 _bB";
5872
+ var content$1 = "_bM _bF";
5873
+ var section$1 = "_bQ _bo";
5874
+ var curBase = "_bV _S _R";
5875
+ var archived = "_b0 _bo";
5876
+ var archivedHint = "_b1 _R";
5877
+ var archivedCard = "_b2 _bt";
6012
5878
  //#endregion
6013
5879
  //#region src/tags/icons/icon-check.marko
6014
5880
  var icon_check_default = _template("P", (input) => {
@@ -6043,7 +5909,7 @@ var icon_branch_default = _template("O", (input) => {
6043
5909
  });
6044
5910
  _serialize_if($scope0_reason, 0) && writeScope($scope0_id, { a: _existing_scope($childScope) });
6045
5911
  });
6046
- var resultBranch = "_c1 _Y _j";
5912
+ var resultBranch = "_c_ _Y _j";
6047
5913
  //#endregion
6048
5914
  //#region src/tags/branch-pick.marko
6049
5915
  var branch_pick_default = _template("d", (input) => {
@@ -6056,11 +5922,11 @@ var branch_pick_default = _template("d", (input) => {
6056
5922
  let branchFilter = "";
6057
5923
  let reloadTick = 0;
6058
5924
  let refreshing = false;
6059
- _html(`<div${_attr_class("_c3")}>`);
5925
+ _html(`<div${_attr_class("_db")}>`);
6060
5926
  _if(() => {
6061
5927
  {
6062
5928
  const $scope4_id = _scope_id();
6063
- _html(`<p${_attr_class("_bH")}><span${_attr_class("_E")}></span> Loading branches…</p>`);
5929
+ _html(`<p${_attr_class("_bz")}><span${_attr_class("_E")}></span> Loading branches…</p>`);
6064
5930
  writeScope($scope4_id, {});
6065
5931
  return 0;
6066
5932
  }
@@ -6138,11 +6004,11 @@ var repo_picker_default = _template("t", (input) => {
6138
6004
  const ignored = new Set(prefs$1?.ignoredSsoOrgs?.() ?? []);
6139
6005
  return (catalog?.sso || []).filter((s) => !ignored.has(s.org));
6140
6006
  })();
6141
- _html(`<div${_attr_class("_cU")}>`);
6007
+ _html(`<div${_attr_class("_c3")}>`);
6142
6008
  _if(() => {
6143
6009
  if (ssoPending.length) {
6144
6010
  const $scope7_id = _scope_id();
6145
- _html(`<div${_attr_class("_cV")}>`);
6011
+ _html(`<div${_attr_class("_c4")}>`);
6146
6012
  _set_serialize_reason(154);
6147
6013
  const $childScope = _peek_scope_id();
6148
6014
  sso_auth_default({
@@ -6172,16 +6038,16 @@ var repo_picker_default = _template("t", (input) => {
6172
6038
  _if(() => {
6173
6039
  if (pasted) {
6174
6040
  const $scope1_id = _scope_id();
6175
- _html(`<ul${_attr_class("_cW")}><li><div${_attr_class(["_cY", "_cX"])}><button${_attr_class("_cZ")}${pasteWillFork ? _attr("title", `Fork ${pasted} to your account and add the fork`) : _attr("title", `Add ${pasted} as-is (pushes go to that repo)`)}>`);
6041
+ _html(`<ul${_attr_class("_c5")}><li><div${_attr_class(["_c7", "_c6"])}><button${_attr_class("_c8")}${pasteWillFork ? _attr("title", `Fork ${pasted} to your account and add the fork`) : _attr("title", `Add ${pasted} as-is (pushes go to that repo)`)}>`);
6176
6042
  icon_plus_default({
6177
6043
  size: 12,
6178
- class: "_c5"
6044
+ class: "_dd"
6179
6045
  });
6180
- _html(`<span${_attr_class("_c6")}>${_escape(repoLabel(pasted))}${_el_resume($scope1_id, "f")}</span></button>${_el_resume($scope1_id, "c")}`);
6046
+ _html(`<span${_attr_class("_de")}>${_escape(repoLabel(pasted))}${_el_resume($scope1_id, "f")}</span></button>${_el_resume($scope1_id, "c")}`);
6181
6047
  _if(() => {
6182
6048
  if (pastedForkable) {
6183
6049
  const $scope8_id = _scope_id();
6184
- _html(`<button${_attr_class(["_c2", { ["_c0"]: pasteWillFork }])}${pasteWillFork ? " title=\"Will fork to your account; click to clone as-is instead\"" : _attr("title", `Fork ${pasted} to your account and clone the fork`)} aria-pressed=${pasteWillFork ? "true" : "false"}>`);
6050
+ _html(`<button${_attr_class(["_da", { ["_c9"]: pasteWillFork }])}${pasteWillFork ? " title=\"Will fork to your account; click to clone as-is instead\"" : _attr("title", `Fork ${pasted} to your account and clone the fork`)} aria-pressed=${pasteWillFork ? "true" : "false"}>`);
6185
6051
  _if(() => {
6186
6052
  if (pasteWillFork) {
6187
6053
  const $scope10_id = _scope_id();
@@ -6201,7 +6067,7 @@ var repo_picker_default = _template("t", (input) => {
6201
6067
  return 0;
6202
6068
  }
6203
6069
  }, $scope1_id, "g", 1, 1, 1, 0, 1);
6204
- _html(`<button${_attr_class([resultBranch, { ["_c0"]: branchesFor === pasted }])}${_attr("title", `Pick a base branch for ${pasted}`)}${_attr("aria-label", `Pick a base branch for ${pasted}`)}>`);
6070
+ _html(`<button${_attr_class([resultBranch, { ["_c9"]: branchesFor === pasted }])}${_attr("title", `Pick a base branch for ${pasted}`)}${_attr("aria-label", `Pick a base branch for ${pasted}`)}>`);
6205
6071
  icon_branch_default({ size: 12 });
6206
6072
  _html(`</button>${_el_resume($scope1_id, "h")}</div>`);
6207
6073
  _if(() => {
@@ -6228,7 +6094,7 @@ var repo_picker_default = _template("t", (input) => {
6228
6094
  return 0;
6229
6095
  } else if (filter && !catalog) {
6230
6096
  const $scope9_id = _scope_id();
6231
- _html(`<p${_attr_class("_bH")}>Loading repos…</p>`);
6097
+ _html(`<p${_attr_class("_bz")}>Loading repos…</p>`);
6232
6098
  writeScope($scope9_id, {});
6233
6099
  return 1;
6234
6100
  }
@@ -6236,15 +6102,15 @@ var repo_picker_default = _template("t", (input) => {
6236
6102
  _if(() => {
6237
6103
  if (results.length) {
6238
6104
  const $scope3_id = _scope_id();
6239
- _html(`<ul${_attr_class("_cW")}>`);
6105
+ _html(`<ul${_attr_class("_c5")}>`);
6240
6106
  _for_of(results, (repo, i) => {
6241
6107
  const $scope4_id = _scope_id();
6242
- _html(`<li><div${_attr_class(["_cY", { ["_cX"]: i === highlight }])}><button${_attr_class("_cZ")}>`);
6108
+ _html(`<li><div${_attr_class(["_c7", { ["_c6"]: i === highlight }])}><button${_attr_class("_c8")}>`);
6243
6109
  icon_plus_default({
6244
6110
  size: 12,
6245
- class: "_c5"
6111
+ class: "_dd"
6246
6112
  });
6247
- _html(`<span${_attr_class("_c6")}>${_escape(repoLabel(repo.nameWithOwner))}${_el_resume($scope4_id, "e")}</span></button>${_el_resume($scope4_id, "b")}<button${_attr_class([resultBranch, { ["_c0"]: branchesFor === repo.nameWithOwner }])}${_attr("title", `Pick a base branch for ${repo.nameWithOwner}`)}${_attr("aria-label", `Pick a base branch for ${repo.nameWithOwner}`)}>`);
6113
+ _html(`<span${_attr_class("_de")}>${_escape(repoLabel(repo.nameWithOwner))}${_el_resume($scope4_id, "e")}</span></button>${_el_resume($scope4_id, "b")}<button${_attr_class([resultBranch, { ["_c9"]: branchesFor === repo.nameWithOwner }])}${_attr("title", `Pick a base branch for ${repo.nameWithOwner}`)}${_attr("aria-label", `Pick a base branch for ${repo.nameWithOwner}`)}>`);
6248
6114
  icon_branch_default({ size: 12 });
6249
6115
  _html(`</button>${_el_resume($scope4_id, "f")}</div>${_el_resume($scope4_id, "a")}`);
6250
6116
  _if(() => {
@@ -6279,7 +6145,7 @@ var repo_picker_default = _template("t", (input) => {
6279
6145
  return 0;
6280
6146
  } else if (filter && catalog && !pasted) {
6281
6147
  const $scope6_id = _scope_id();
6282
- _html(`<p${_attr_class("_bH")}>No repos match "<!>${_escape(filter)}${_el_resume($scope6_id, "b")}". Paste a clone URL to add any repo.</p>`);
6148
+ _html(`<p${_attr_class("_bz")}>No repos match "<!>${_escape(filter)}${_el_resume($scope6_id, "b")}". Paste a clone URL to add any repo.</p>`);
6283
6149
  writeScope($scope6_id, {});
6284
6150
  return 1;
6285
6151
  }
@@ -6420,7 +6286,7 @@ var new_workspace_default = _template("q", (input) => {
6420
6286
  }
6421
6287
  }, "q6", $scope0_id);
6422
6288
  const titleId = _id();
6423
- _html(`<div${_attr_class("_bm")} role=region${_attr("aria-labelledby", titleId)}><div${_attr_class("_bn")}><div${_attr_class(content$1)}>`);
6289
+ _html(`<div${_attr_class("_bD")} role=region${_attr("aria-labelledby", titleId)}><div${_attr_class("_bE")}><div${_attr_class(content$1)}>`);
6424
6290
  _set_serialize_reason({
6425
6291
  0: _serialize_guard($scope0_reason, 2),
6426
6292
  1: $sg__input_backHref__OR__input_onExit,
@@ -6459,23 +6325,23 @@ var new_workspace_default = _template("q", (input) => {
6459
6325
  return 0;
6460
6326
  }
6461
6327
  }, $scope0_id, "e", 1, 1, 1, 0, 1);
6462
- _html(`<label${_attr_class("_bO")}><span${_attr_class("_bK")}>Name</span><input${_attr_input_value($scope0_id, "h", name, _resume((_new_name) => {
6328
+ _html(`<label${_attr_class("_bP")}><span${_attr_class("_bC")}>Name</span><input${_attr_input_value($scope0_id, "h", name, _resume((_new_name) => {
6463
6329
  name = _new_name;
6464
- }, "q0", $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("_bQ")}><h2${_attr_class("_bK")}>Repos</h2><button${_attr_class(iconBtnRow)} title="Refresh repo list" aria-label="Refresh repo list"${_attr("disabled", catalogRefreshing)}>`);
6330
+ }, "q0", $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("_bR")}><h2${_attr_class("_bC")}>Repos</h2><button${_attr_class(iconBtnRow)} title="Refresh repo list" aria-label="Refresh repo list"${_attr("disabled", catalogRefreshing)}>`);
6465
6331
  _set_serialize_reason(1);
6466
6332
  const $childScope2 = _peek_scope_id();
6467
6333
  icon_refresh_default({
6468
6334
  size: 14,
6469
6335
  class: catalogRefreshing && "_D"
6470
6336
  });
6471
- _html(`</button>${_el_resume($scope0_id, "l")}</div><ul${_attr_class("_bR")}>`);
6337
+ _html(`</button>${_el_resume($scope0_id, "l")}</div><ul${_attr_class("_bS")}>`);
6472
6338
  _for_of(selected, (repo) => {
6473
6339
  const $scope2_id = _scope_id();
6474
- _html(`<li><div${_attr_class(row)}><span${_attr_class("_bS")}>${_escape(repoLabel(repo.fullName))}${_el_resume($scope2_id, "c")}</span>`);
6340
+ _html(`<li><div${_attr_class(row)}><span${_attr_class("_bT")}>${_escape(repoLabel(repo.fullName))}${_el_resume($scope2_id, "c")}</span>`);
6475
6341
  _if(() => {
6476
6342
  if (repo.fork !== void 0) {
6477
6343
  const $scope3_id = _scope_id();
6478
- _html(`<button${_attr_class(["_bV", { ["_bT"]: repo.fork }])}${repo.fork ? _attr("title", `${repo.fullName} will be forked to your account; click to clone as-is instead`) : _attr("title", `Fork ${repo.fullName} to your account and clone the fork`)} aria-pressed=${repo.fork ? "true" : "false"}${_attr("disabled", busy)}>`);
6344
+ _html(`<button${_attr_class(["_bW", { ["_bU"]: repo.fork }])}${repo.fork ? _attr("title", `${repo.fullName} will be forked to your account; click to clone as-is instead`) : _attr("title", `Fork ${repo.fullName} to your account and clone the fork`)} aria-pressed=${repo.fork ? "true" : "false"}${_attr("disabled", busy)}>`);
6479
6345
  _if(() => {
6480
6346
  if (repo.fork) {
6481
6347
  const $scope12_id = _scope_id();
@@ -6498,10 +6364,10 @@ var new_workspace_default = _template("q", (input) => {
6498
6364
  _html(`<button${_attr_class([
6499
6365
  curBase,
6500
6366
  "_w",
6501
- { ["_bT"]: branchesFor === repo.fullName }
6367
+ { ["_bU"]: branchesFor === repo.fullName }
6502
6368
  ])}${_attr("title", `Change base branch for ${repo.fullName}`)}${_attr("aria-label", `Change base branch for ${repo.fullName}`)}${_attr("disabled", busy)}>`);
6503
6369
  icon_branch_default({ size: 12 });
6504
- _html(`<!>${repo.baseBranch ? ` ${_escape(`${_to_text(repo.baseBranch)}`)}` : ""}${_el_resume($scope2_id, "g")}</button>${_el_resume($scope2_id, "e")}<button${_attr_class([iconBtnXs, "_1"])}${_attr("title", `Remove ${repo.fullName}`)}${_attr("disabled", busy)}>`);
6370
+ _html(`<!>${repo.baseBranch ? ` ${_escape(`${_to_text(repo.baseBranch)}`)}` : ""}${_el_resume($scope2_id, "g")}</button>${_el_resume($scope2_id, "e")}<button${_attr_class([iconBtnXs, "_2"])}${_attr("title", `Remove ${repo.fullName}`)}${_attr("disabled", busy)}>`);
6505
6371
  icon_xmark_default({ size: 12 });
6506
6372
  _html(`</button>${_el_resume($scope2_id, "h")}</div>`);
6507
6373
  _if(() => {
@@ -6534,7 +6400,7 @@ var new_workspace_default = _template("q", (input) => {
6534
6400
  _if(() => {
6535
6401
  if (!selected.length) {
6536
6402
  const $scope14_id = _scope_id();
6537
- _html(`<li${_attr_class("_bH")}>No repos yet. Search below to add one, or create it empty.</li>`);
6403
+ _html(`<li${_attr_class("_bz")}>No repos yet. Search below to add one, or create it empty.</li>`);
6538
6404
  writeScope($scope14_id, {});
6539
6405
  return 0;
6540
6406
  }
@@ -6559,10 +6425,10 @@ var new_workspace_default = _template("q", (input) => {
6559
6425
  _if(() => {
6560
6426
  if (busy && steps$1.length) {
6561
6427
  const $scope9_id = _scope_id();
6562
- _html(`<ul${_attr_class("_bW")}>`);
6428
+ _html(`<ul${_attr_class("_bX")}>`);
6563
6429
  _for_of(steps$1, (step$1, i) => {
6564
6430
  const $scope10_id = _scope_id();
6565
- _html(`<li${_attr_class(["_b2", { ["_bX"]: i === steps$1.length - 1 }])}>`);
6431
+ _html(`<li${_attr_class(["_b3", { ["_bY"]: i === steps$1.length - 1 }])}>`);
6566
6432
  _if(() => {
6567
6433
  if (i === steps$1.length - 1) {
6568
6434
  const $scope15_id = _scope_id();
@@ -6571,7 +6437,7 @@ var new_workspace_default = _template("q", (input) => {
6571
6437
  return 0;
6572
6438
  } else {
6573
6439
  const $scope16_id = _scope_id();
6574
- _html(`<span${_attr_class("_bY")}>`);
6440
+ _html(`<span${_attr_class("_bZ")}>`);
6575
6441
  icon_check_default({ size: 14 });
6576
6442
  _html("</span>");
6577
6443
  writeScope($scope16_id, {});
@@ -6585,7 +6451,7 @@ var new_workspace_default = _template("q", (input) => {
6585
6451
  return 0;
6586
6452
  }
6587
6453
  }, $scope0_id, "s", 1, 1, 1, 0, 1);
6588
- _html(`<div${_attr_class("_bM")}>`);
6454
+ _html(`<div${_attr_class("_bN")}>`);
6589
6455
  _if(() => {
6590
6456
  if (input.onExit || busy) {
6591
6457
  const $scope1_id = _scope_id();
@@ -6598,15 +6464,15 @@ var new_workspace_default = _template("q", (input) => {
6598
6464
  _html(`<button type=button${_attr_class([
6599
6465
  btnLg,
6600
6466
  "_p",
6601
- "_bN"
6467
+ "_bO"
6602
6468
  ])}${_attr("disabled", busy || !!restoring || !name.trim())}>${busy ? "Creating…" : "Create workspace"}${_el_resume($scope0_id, "w")}</button>${_el_resume($scope0_id, "v")}</div>`);
6603
6469
  _if(() => {
6604
6470
  if (archived$1.length) {
6605
6471
  const $scope4_id = _scope_id();
6606
- _html(`<section${_attr_class(archived)}><div${_attr_class("_bQ")}><h2${_attr_class("_bK")}>Archived</h2><span${_attr_class(sectionCount$1)}>${_escape(archived$1.length)}${_el_resume($scope4_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("_bz")}>`);
6472
+ _html(`<section${_attr_class(archived)}><div${_attr_class("_bR")}><h2${_attr_class("_bC")}>Archived</h2><span${_attr_class(sectionCount$1)}>${_escape(archived$1.length)}${_el_resume($scope4_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")}>`);
6607
6473
  _for_of(archived$1, (ws) => {
6608
6474
  const $scope5_id = _scope_id();
6609
- _html(`<li${_attr_class(archivedCard)}><div${_attr_class("_bC")}><span${_attr_class("_bD")}>${_escape(ws.name)}${_el_resume($scope5_id, "d", $sg__input_workspaces)}</span><span${_attr_class([metaTrunc, "_w"])}${_attr("title", ws.display_path || ws.path)}>${_escape(ws.display_path || ws.path)}${_el_resume($scope5_id, "f", $sg__input_workspaces)}</span>${_el_resume($scope5_id, "e", $sg__input_workspaces)}</div><button type=button${_attr_class(btnLg)}${_attr("disabled", busy || !!restoring)}>`);
6475
+ _html(`<li${_attr_class(archivedCard)}><div${_attr_class("_bu")}><span${_attr_class("_bv")}>${_escape(ws.name)}${_el_resume($scope5_id, "d", $sg__input_workspaces)}</span><span${_attr_class([metaTrunc, "_w"])}${_attr("title", ws.display_path || ws.path)}>${_escape(ws.display_path || ws.path)}${_el_resume($scope5_id, "f", $sg__input_workspaces)}</span>${_el_resume($scope5_id, "e", $sg__input_workspaces)}</div><button type=button${_attr_class(btnLg)}${_attr("disabled", busy || !!restoring)}>`);
6610
6476
  _if(() => {
6611
6477
  if (restoring === ws.id) {
6612
6478
  const $scope17_id = _scope_id();
@@ -6712,8 +6578,8 @@ function vapidKey(base64) {
6712
6578
  const raw = atob(padded.replace(/-/g, "+").replace(/_/g, "/"));
6713
6579
  return Uint8Array.from(raw, (c) => c.charCodeAt(0));
6714
6580
  }
6715
- var iconBtn$1 = "_db _j";
6716
- var navToggle = "_dg _j";
6581
+ var iconBtn$1 = "_dk _j";
6582
+ var navToggle = "_dp _j";
6717
6583
  _template("N", (input) => {
6718
6584
  const $scope0_reason = _scope_reason(), $sg__input_size__OR__input_class = _serialize_guard($scope0_reason, 0);
6719
6585
  const $scope0_id = _scope_id();
@@ -6756,12 +6622,12 @@ var ARM_MS = 3500;
6756
6622
  function disarmLater(fn) {
6757
6623
  return setTimeout(fn, ARM_MS);
6758
6624
  }
6759
- var railBtn = "_fJ _j";
6760
- var rowIcon = "_fS _Y _j";
6761
- var close = "_fT _Y _j _1";
6625
+ var railBtn = "_fB _j";
6626
+ var rowIcon = "_fK _Y _j";
6627
+ var close = "_fL _1 _j _2";
6762
6628
  //#endregion
6763
6629
  //#region src/styles/session-pop.css.ts
6764
- var sessionPop = "_fs _3";
6630
+ var sessionPop = "_fx _4";
6765
6631
  //#endregion
6766
6632
  //#region src/client/status.ts
6767
6633
  /** Workspace activity dot from its polled status counts. */
@@ -6828,22 +6694,22 @@ var usage_pcts_default = _template("E", (input) => {
6828
6694
  if (windows.length) {
6829
6695
  const $scope1_id = _scope_id();
6830
6696
  _html(`<span${_attr_class([
6831
- "_fm",
6697
+ "_f1",
6832
6698
  input.class,
6833
- { ["_fn"]: agent.stale_seconds != null }
6699
+ { ["_f2"]: agent.stale_seconds != null }
6834
6700
  ])}${agent.stale_seconds != null ? _attr("title", `${agent.note || "provider unreachable"}; last cached numbers`) : " title=\"Plan usage\""}>`);
6835
6701
  _for_of(windows, (win$1, i) => {
6836
6702
  const $scope2_id = _scope_id();
6837
- _html(`<span${_attr_class("_fo")}>`);
6703
+ _html(`<span${_attr_class("_f3")}>`);
6838
6704
  _if(() => {
6839
6705
  if (i) {
6840
6706
  const $scope3_id = _scope_id();
6841
- _html(`<span${_attr_class("_fr")} aria-hidden=true>·</span>`);
6707
+ _html(`<span${_attr_class("_f6")} aria-hidden=true>·</span>`);
6842
6708
  $si__input_agent && writeScope($scope3_id, {});
6843
6709
  return 0;
6844
6710
  }
6845
6711
  }, $scope2_id, "b", $sg__input_agent, $sg__input_agent, $sg__input_agent, 0, 1);
6846
- _html(`<span${_attr_class("_fp")}>${_escape(win$1.window)}${_el_resume($scope2_id, "d", $sg__input_agent)}</span><span${_attr_class(["_fq", win$1.used_percent >= 90 ? "_fi" : win$1.used_percent >= 70 ? "_fh" : win$1.used_percent >= 40 ? "_fg" : "_ff"])}>${_escape(pctText(win$1.used_percent))}${_el_resume($scope2_id, "f", $sg__input_agent)}</span>${_el_resume($scope2_id, "e", $sg__input_agent)}</span>`);
6712
+ _html(`<span${_attr_class("_f4")}>${_escape(win$1.window)}${_el_resume($scope2_id, "d", $sg__input_agent)}</span><span${_attr_class(["_f5", win$1.used_percent >= 90 ? "_dZ" : win$1.used_percent >= 70 ? "_dY" : win$1.used_percent >= 40 ? "_dX" : "_dW"])}>${_escape(pctText(win$1.used_percent))}${_el_resume($scope2_id, "f", $sg__input_agent)}</span>${_el_resume($scope2_id, "e", $sg__input_agent)}</span>`);
6847
6713
  $si__input_agent && writeScope($scope2_id, {});
6848
6714
  }, "window", $scope1_id, "a", $sg__input_agent, $sg__input_agent__OR__input_class, $sg__input_agent, "</span>", 1);
6849
6715
  $si__input_agent__OR__input_class && writeScope($scope1_id, { _: _scope_with_id($scope0_id) });
@@ -6874,12 +6740,12 @@ var icon_edit_default = _template("X", (input) => {
6874
6740
  });
6875
6741
  _serialize_if($scope0_reason, 0) && writeScope($scope0_id, { a: _existing_scope($childScope) });
6876
6742
  });
6877
- var prChip = "_hr _s _hq";
6878
- var portChip = "_hs _s _hq";
6743
+ var prChip = "_hy _s _hx";
6744
+ var portChip = "_hz _s _hx";
6879
6745
  var prState = {
6880
- open: "_hw",
6881
- merged: "_hx",
6882
- closed: "_hy"
6746
+ open: "_hD",
6747
+ merged: "_hE",
6748
+ closed: "_hF"
6883
6749
  };
6884
6750
  //#endregion
6885
6751
  //#region src/tags/side-nav-chips.marko
@@ -6951,7 +6817,7 @@ var side_nav_chips_default = _template("w", (input) => {
6951
6817
  const name = repo.full_name.split("/").at(-1);
6952
6818
  return repos.some((r) => r.full_name !== repo.full_name && r.full_name.split("/").at(-1) === name) ? repoLabel(repo.full_name) : name;
6953
6819
  }, "w4", $scope1_id);
6954
- _html(`<div${_attr_class("_hp")}>`);
6820
+ _html(`<div${_attr_class("_hw")}>`);
6955
6821
  _for_of(repos, (repo) => {
6956
6822
  const $scope2_id = _scope_id();
6957
6823
  const $for_content__repo_worktree__closures = /* @__PURE__ */ new Set();
@@ -6967,11 +6833,11 @@ var side_nav_chips_default = _template("w", (input) => {
6967
6833
  [prState.merged]: pr.state === "MERGED",
6968
6834
  [prState.closed]: pr.state === "CLOSED"
6969
6835
  }
6970
- ])}${_attr("title", prTitle(repo, pr))}><a${_attr_class(["_ht", { ["_hA"]: !open }])}${_attr("href", pr.url)} target=_blank rel=noopener>${_escape(repoLabel$1(repo))}${_el_resume($scope3_id, "c")}#<!>${_escape(pr.number)}${_el_resume($scope3_id, "d")}</a>${_el_resume($scope3_id, "b")}`);
6836
+ ])}${_attr("title", prTitle(repo, pr))}><a${_attr_class(["_hA", { ["_hH"]: !open }])}${_attr("href", pr.url)} target=_blank rel=noopener>${_escape(repoLabel$1(repo))}${_el_resume($scope3_id, "c")}#<!>${_escape(pr.number)}${_el_resume($scope3_id, "d")}</a>${_el_resume($scope3_id, "b")}`);
6971
6837
  _if(() => {
6972
6838
  if (open) {
6973
6839
  const $scope4_id = _scope_id();
6974
- _html(`<a${_attr_class(["_ht", "_hu"])}${_attr("href", `/w/${input.workspaceId}/review?pr=${encodeURIComponent(`${repo.worktree}/${pr.number}`)}`)}${_attr("title", `Review #${pr.number} changes`)}>`);
6840
+ _html(`<a${_attr_class(["_hA", "_hB"])}${_attr("href", `/w/${input.workspaceId}/review?pr=${encodeURIComponent(`${repo.worktree}/${pr.number}`)}`)}${_attr("title", `Review #${pr.number} changes`)}>`);
6975
6841
  icon_diff_default({ size: 12 });
6976
6842
  _html(`</a>${_el_resume($scope4_id, "a")}`);
6977
6843
  _subscribe($for_content__repo_worktree__closures, _subscribe($si__input_workspaceId && $input_workspaceId__closures, writeScope($scope4_id, {})));
@@ -6979,9 +6845,9 @@ var side_nav_chips_default = _template("w", (input) => {
6979
6845
  } else {
6980
6846
  const $scope6_id = _scope_id();
6981
6847
  _html(`<button type=button${_attr_class([
6982
- "_ht",
6983
- "_hu",
6984
- "_hv"
6848
+ "_hA",
6849
+ "_hB",
6850
+ "_hC"
6985
6851
  ])}${_attr("title", `Dismiss #${pr.number}`)}>`);
6986
6852
  icon_xmark_default({ size: 12 });
6987
6853
  _html(`</button>${_el_resume($scope6_id, "a")}`);
@@ -7002,10 +6868,10 @@ var side_nav_chips_default = _template("w", (input) => {
7002
6868
  }, "full_name", $scope1_id, "b");
7003
6869
  _for_of(ports, (p) => {
7004
6870
  const $scope5_id = _scope_id();
7005
- _html(`<span${_attr_class(["_s", portChip])}${_attr("title", p.cmd)}><button type=button${_attr_class(["_ht", "_hz"])}${_attr("title", `Open http://${typeof location === "undefined" ? "localhost" : location.hostname}:${p.port}`)}>:<!>${_escape(p.port)}${_el_resume($scope5_id, "c")}</button>${_el_resume($scope5_id, "b")}<button type=button${_attr_class([
7006
- "_ht",
7007
- "_hu",
7008
- "_hv",
6871
+ _html(`<span${_attr_class(["_s", portChip])}${_attr("title", p.cmd)}><button type=button${_attr_class(["_hA", "_hG"])}${_attr("title", `Open http://${typeof location === "undefined" ? "localhost" : location.hostname}:${p.port}`)}>:<!>${_escape(p.port)}${_el_resume($scope5_id, "c")}</button>${_el_resume($scope5_id, "b")}<button type=button${_attr_class([
6872
+ "_hA",
6873
+ "_hB",
6874
+ "_hC",
7009
6875
  { ["_q"]: armedPid === p.pid }
7010
6876
  ])}${armedPid === p.pid ? " title=Kill?" : _attr("title", `Kill ${p.cmd} (pid ${p.pid})`)}>`);
7011
6877
  icon_xmark_default({ size: 12 });
@@ -7048,7 +6914,7 @@ var side_nav_chips_default = _template("w", (input) => {
7048
6914
  //#endregion
7049
6915
  //#region src/tags/side-nav-item.marko
7050
6916
  var side_nav_item_default = _template("x", (input) => {
7051
- 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, 24), $si__input_sessions = _serialize_if($scope0_reason, 24), $si__input_page__OR__input_sessions__OR__input_workspaceId__OR__input_status = _serialize_if($scope0_reason, 10), $sg__input_page__OR__input_sessions__OR__input_workspaceId__OR__input_status = _serialize_guard($scope0_reason, 10), $si__input_current = _serialize_if($scope0_reason, 21), $sg__input_page = _serialize_guard($scope0_reason, 22), $sg__input_workspaces__OR__input_workspaceId = _serialize_guard($scope0_reason, 0), $si__input_agents = _serialize_if($scope0_reason, 30), $sg__input_onNewSession = _serialize_guard($scope0_reason, 29), $sg__input_onNewSession__OR__input_onReview = _serialize_guard($scope0_reason, 2), $sg__input_onReview = _serialize_guard($scope0_reason, 31), $sg__input_rail = _serialize_guard($scope0_reason, 23), $si__input_rail = _serialize_if($scope0_reason, 23), $si__input_workspaceId = _serialize_if($scope0_reason, 26), $si__input_current__OR__input_page__OR__input_rail__OR__input_workspaces__OR__input_workspaceId = _serialize_if($scope0_reason, 13), $si__input_page__OR__input_rail__OR__input_workspaces__OR__input_workspaceId = _serialize_if($scope0_reason, 9), $si__input_current__OR__input_page__OR__input_rail__OR__input_sessions__OR__input_currentTab = _serialize_if($scope0_reason, 12), $si__input_rail__OR__input_workspaces__OR__input_workspaceId = _serialize_if($scope0_reason, 4), $si__input_index = _serialize_if($scope0_reason, 27), $si__input_onNewSession = _serialize_if($scope0_reason, 29), $si__input_onReview = _serialize_if($scope0_reason, 31), $si__input_managing = _serialize_if($scope0_reason, 32), $si__input_currentTab = _serialize_if($scope0_reason, 25), $si__input_page = _serialize_if($scope0_reason, 22), $si__input_railPop = _serialize_if($scope0_reason, 28);
6917
+ 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, 24), $sg__input_page__OR__input_sessions__OR__input_workspaceId__OR__input_status = _serialize_guard($scope0_reason, 10), $si__input_current = _serialize_if($scope0_reason, 21), $sg__input_page = _serialize_guard($scope0_reason, 22), $sg__input_workspaces__OR__input_workspaceId = _serialize_guard($scope0_reason, 0), $si__input_agents = _serialize_if($scope0_reason, 30), $sg__input_onNewSession = _serialize_guard($scope0_reason, 29), $sg__input_onNewSession__OR__input_onReview = _serialize_guard($scope0_reason, 2), $sg__input_onReview = _serialize_guard($scope0_reason, 31), $si__input_sessions = _serialize_if($scope0_reason, 24), $si__input_page__OR__input_sessions__OR__input_workspaceId__OR__input_status = _serialize_if($scope0_reason, 10), $sg__input_rail = _serialize_guard($scope0_reason, 23), $si__input_rail = _serialize_if($scope0_reason, 23), $si__input_workspaceId = _serialize_if($scope0_reason, 26), $si__input_current__OR__input_page__OR__input_rail__OR__input_workspaces__OR__input_workspaceId = _serialize_if($scope0_reason, 13), $si__input_page__OR__input_rail__OR__input_workspaces__OR__input_workspaceId = _serialize_if($scope0_reason, 9), $si__input_current__OR__input_page__OR__input_rail__OR__input_sessions__OR__input_currentTab = _serialize_if($scope0_reason, 12), $si__input_rail__OR__input_workspaces__OR__input_workspaceId = _serialize_if($scope0_reason, 4), $si__input_index = _serialize_if($scope0_reason, 27), $si__input_onNewSession = _serialize_if($scope0_reason, 29), $si__input_onReview = _serialize_if($scope0_reason, 31), $si__input_managing = _serialize_if($scope0_reason, 32), $si__input_currentTab = _serialize_if($scope0_reason, 25), $si__input_page = _serialize_if($scope0_reason, 22), $si__input_railPop = _serialize_if($scope0_reason, 28);
7052
6918
  const $scope0_id = _scope_id();
7053
6919
  const $input_current__closures = /* @__PURE__ */ new Set();
7054
6920
  const $input_index__closures = /* @__PURE__ */ new Set();
@@ -7084,7 +6950,7 @@ var side_nav_item_default = _template("x", (input) => {
7084
6950
  renamingId = null;
7085
6951
  input.onRenameSession?.(s, renameValue.trim());
7086
6952
  }, "x2", $scope0_id);
7087
- let usage = lastUsage$1();
6953
+ let usage = lastUsage();
7088
6954
  const openSess = (() => {
7089
6955
  if (!input.current || input.page || input.rail) return null;
7090
6956
  const list = input.sessions || [];
@@ -7101,10 +6967,10 @@ var side_nav_item_default = _template("x", (input) => {
7101
6967
  _if(() => {
7102
6968
  if (input.rail) {
7103
6969
  const $scope2_id = _scope_id();
7104
- _html(`<a${_attr("href", `/w/${ws$1.id}`)}${_attr_class([railBtn, { ["_fH"]: input.current }])}${_attr("title", ws$1.name)}>${_escape((input.index ?? 0) + 1)}${_el_resume($scope2_id, "b", _serialize_guard($scope0_reason, 27))}<span${_attr_class([
6970
+ _html(`<a${_attr("href", `/w/${ws$1.id}`)}${_attr_class([railBtn, { ["_fz"]: input.current }])}${_attr("title", ws$1.name)}>${_escape((input.index ?? 0) + 1)}${_el_resume($scope2_id, "b", _serialize_guard($scope0_reason, 27))}<span${_attr_class([
7105
6971
  "_y",
7106
6972
  phase[dot],
7107
- "_fK"
6973
+ "_fC"
7108
6974
  ])}></span>${_el_resume($scope2_id, "c", $sg__input_workspaceId__OR__input_status)}</a>${_el_resume($scope2_id, "a", _serialize_guard($scope0_reason, 3))}`);
7109
6975
  _serialize_if($scope0_reason, 18) && _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) })))));
7110
6976
  return 0;
@@ -7112,15 +6978,15 @@ var side_nav_item_default = _template("x", (input) => {
7112
6978
  const $scope3_id = _scope_id();
7113
6979
  const sessions$1 = input.sessions || [];
7114
6980
  const phaseLabel = dot === "working" ? "Working" : dot === "waiting" ? "Needs input" : dot === "idle" ? "Idle" : "Not running";
7115
- _html(`<section${_attr_class(["_fM", {
7116
- ["_fH"]: input.current,
7117
- ["_4"]: input.current,
7118
- ["_fN"]: input.railPop,
7119
- ["_fL"]: input.page
7120
- }])}><div${_attr_class("_fO")}><a${_attr("href", `/w/${ws$1.id}`)}${_attr_class("_fP")}><span${_attr_class([
6981
+ _html(`<section${_attr_class(["_fE", {
6982
+ ["_fz"]: input.current,
6983
+ ["_5"]: input.current,
6984
+ ["_fF"]: input.railPop,
6985
+ ["_fD"]: input.page
6986
+ }])}><div${_attr_class("_fG")}><a${_attr("href", `/w/${ws$1.id}`)}${_attr_class("_fH")}><span${_attr_class([
7121
6987
  "_y",
7122
6988
  phase[dot],
7123
- "_f2"
6989
+ "_fT"
7124
6990
  ])}${_attr("title", phaseLabel)}></span>${_el_resume($scope3_id, "d", $sg__input_workspaceId__OR__input_status)}`);
7125
6991
  _if(() => {
7126
6992
  if (sessions$1.length === 1) {
@@ -7133,7 +6999,7 @@ var side_nav_item_default = _template("x", (input) => {
7133
6999
  icon_agent_default({
7134
7000
  agent: activeAgent(sessions$1[0]),
7135
7001
  size: 12,
7136
- class: "_fU"
7002
+ class: "_fM"
7137
7003
  });
7138
7004
  $si__input_sessions && writeScope($scope14_id, {
7139
7005
  _: _scope_with_id($scope3_id),
@@ -7142,19 +7008,14 @@ var side_nav_item_default = _template("x", (input) => {
7142
7008
  return 0;
7143
7009
  }
7144
7010
  }, $scope3_id, "e", $sg__input_sessions, $sg__input_sessions);
7145
- const metaText = sessions$1.length === 0 ? phaseLabel : sessions$1.length === 1 ? sessions$1[0].title || "" : `${sessions$1.length} sessions`;
7146
- _html(`<span${_attr_class("_fV")}><span${_attr_class("_fW")}>${_escape(ws$1.name)}${_el_resume($scope3_id, "h", $sg__input_workspaces__OR__input_workspaceId)}</span>`);
7011
+ const metaText = sessions$1.length === 0 ? phaseLabel : sessions$1.length > 1 ? `${sessions$1.length} sessions` : "";
7012
+ _html(`<span${_attr_class("_fN")}><span${_attr_class("_fO")}>${_escape(ws$1.name)}${_el_resume($scope3_id, "h", $sg__input_workspaces__OR__input_workspaceId)}</span>`);
7147
7013
  _if(() => {
7148
7014
  if (input.page && metaText) {
7149
- const $scope16_id = _scope_id();
7150
- _html(`<span${_attr_class("_f0")}>${_escape(metaText)}${_el_resume($scope16_id, "b", _serialize_guard($scope0_reason, 7))}</span>`);
7151
- $si__input_page__OR__input_sessions__OR__input_workspaceId__OR__input_status && writeScope($scope16_id, { _: _serialize_if($scope0_reason, 7) && _scope_with_id($scope3_id) });
7152
- return 0;
7153
- } else if (sessions$1.length === 1 && sessions$1[0].title) {
7154
7015
  const $scope15_id = _scope_id();
7155
- _html(`<span${_attr_class("_fX")}>${_escape(sessions$1[0].title)}${_el_resume($scope15_id, "b", $sg__input_sessions)}</span>`);
7156
- $si__input_page__OR__input_sessions__OR__input_workspaceId__OR__input_status && writeScope($scope15_id, { _: $si__input_sessions && _scope_with_id($scope3_id) });
7157
- return 1;
7016
+ _html(`<span${_attr_class("_fR")}>${_escape(metaText)}${_el_resume($scope15_id, "b", _serialize_guard($scope0_reason, 7))}</span>`);
7017
+ $si__input_page__OR__input_sessions__OR__input_workspaceId__OR__input_status && writeScope($scope15_id, { _: _serialize_if($scope0_reason, 7) && _scope_with_id($scope3_id) });
7018
+ return 0;
7158
7019
  }
7159
7020
  }, $scope3_id, "i", $sg__input_page__OR__input_sessions__OR__input_workspaceId__OR__input_status, $sg__input_page__OR__input_sessions__OR__input_workspaceId__OR__input_status, 1, 0, 1);
7160
7021
  _html("</span>");
@@ -7165,7 +7026,7 @@ var side_nav_item_default = _template("x", (input) => {
7165
7026
  "_H",
7166
7027
  "_Q",
7167
7028
  "_J",
7168
- "_f1"
7029
+ "_fS"
7169
7030
  ])}>${input.current ? "Open" : ""}${_el_resume($scope4_id, "b", _serialize_guard($scope0_reason, 21))}</span>`);
7170
7031
  $si__input_current__OR__input_page__OR__input_rail__OR__input_workspaces__OR__input_workspaceId && _subscribe($si__input_current && $input_current__closures, writeScope($scope4_id, {
7171
7032
  _: _scope_with_id($scope3_id),
@@ -7178,7 +7039,7 @@ var side_nav_item_default = _template("x", (input) => {
7178
7039
  _if(() => {
7179
7040
  if (!input.page) {
7180
7041
  const $scope5_id = _scope_id();
7181
- _html(`<div${_attr_class("_fQ")}>`);
7042
+ _html(`<div${_attr_class("_fI")}>`);
7182
7043
  _if(() => {
7183
7044
  if (input.onNewSession) {
7184
7045
  const $scope6_id = _scope_id();
@@ -7192,7 +7053,7 @@ var side_nav_item_default = _template("x", (input) => {
7192
7053
  _html(`</button>${_el_resume($scope6_id, "a")}<div${_attr("id", newPopId)} popover=auto${_attr_class(sessionPop)}>`);
7193
7054
  _for_of([], (agent) => {
7194
7055
  const $scope7_id = _scope_id();
7195
- _html(`<button${_attr_class("_ft")}>`);
7056
+ _html(`<button${_attr_class("_fy")}>`);
7196
7057
  _set_serialize_reason(12);
7197
7058
  const $childScope2 = _peek_scope_id();
7198
7059
  icon_agent_default({
@@ -7227,7 +7088,7 @@ var side_nav_item_default = _template("x", (input) => {
7227
7088
  return 0;
7228
7089
  }
7229
7090
  }, $scope5_id, "c", $sg__input_onReview, $sg__input_onReview, $sg__input_onNewSession__OR__input_onReview, 0, 1);
7230
- _html(`<a${input.managing ? _attr("href", `/w/${ws$1.id}`) : _attr("href", `/w/${ws$1.id}/manage`)}${_attr_class([rowIcon, { ["_fI"]: input.managing }])} title=${input.managing ? "\"Back to terminal\"" : "\"Manage workspace\""}${input.managing ? " aria-current=page" : ""}>`);
7091
+ _html(`<a${input.managing ? _attr("href", `/w/${ws$1.id}`) : _attr("href", `/w/${ws$1.id}/manage`)}${_attr_class([rowIcon, { ["_fA"]: input.managing }])} title=${input.managing ? "\"Back to terminal\"" : "\"Manage workspace\""}${input.managing ? " aria-current=page" : ""}>`);
7231
7092
  icon_manage_default({ size: 12 });
7232
7093
  _html(`</a>${_el_resume($scope5_id, "d", _serialize_guard($scope0_reason, 8))}</div>`);
7233
7094
  _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, {
@@ -7237,7 +7098,7 @@ var side_nav_item_default = _template("x", (input) => {
7237
7098
  return 0;
7238
7099
  }
7239
7100
  }, $scope3_id, "k", $sg__input_page, $sg__input_page, 1, 0, 1);
7240
- _html(`</div><div${_attr_class("_f7")}>`);
7101
+ _html(`</div><div${_attr_class("_fY")}>`);
7241
7102
  _if(() => {
7242
7103
  if (sessions$1.length === 1 && openPlan) {
7243
7104
  const $scope11_id = _scope_id();
@@ -7245,7 +7106,7 @@ var side_nav_item_default = _template("x", (input) => {
7245
7106
  const $childScope3 = _peek_scope_id();
7246
7107
  usage_pcts_default({
7247
7108
  agent: openPlan,
7248
- class: "_fY"
7109
+ class: "_fP"
7249
7110
  });
7250
7111
  _subscribe($openPlan__closures, writeScope($scope11_id, {
7251
7112
  a: _existing_scope($childScope3),
@@ -7256,14 +7117,14 @@ var side_nav_item_default = _template("x", (input) => {
7256
7117
  }, $scope3_id, "m");
7257
7118
  _for_of(sessions$1.length > 1 ? sessions$1 : [], (s) => {
7258
7119
  const $scope8_id = _scope_id();
7259
- _html(`<div${_attr_class(["_fR", { ["_fH"]: s.id === input.currentTab }])}>`);
7120
+ _html(`<div${_attr_class(["_fJ", { ["_fz"]: s.id === input.currentTab }])}>`);
7260
7121
  _if(() => {
7261
7122
  if (renamingId === s.id) {
7262
7123
  const $scope10_id = _scope_id();
7263
7124
  _html(`<span${_attr_class([
7264
7125
  "_y",
7265
7126
  phase[sessionPhase(s.state)],
7266
- "_f5"
7127
+ "_fW"
7267
7128
  ])}></span>${_el_resume($scope10_id, "a", $sg__input_sessions)}`);
7268
7129
  _set_serialize_reason({
7269
7130
  1: $sg__input_sessions,
@@ -7273,17 +7134,17 @@ var side_nav_item_default = _template("x", (input) => {
7273
7134
  icon_agent_default({
7274
7135
  agent: activeAgent(s),
7275
7136
  size: 13,
7276
- class: "_f9"
7137
+ class: "_f0"
7277
7138
  });
7278
7139
  _html(`<input${_attr_input_value($scope10_id, "c", renameValue, _resume((_new_renameValue) => {
7279
7140
  renameValue = _new_renameValue;
7280
- }, "x0", $scope10_id))}${_attr_class(["_T", "_f6"])} aria-label="Session name">${_el_resume($scope10_id, "c")}`);
7141
+ }, "x0", $scope10_id))}${_attr_class(["_T", "_fX"])} aria-label="Session name">${_el_resume($scope10_id, "c")}`);
7281
7142
  _script($scope10_id, "x5");
7282
7143
  _subscribe($renameValue__closures, writeScope($scope10_id, { b: $si__input_sessions && _existing_scope($childScope4) }));
7283
7144
  return 0;
7284
7145
  } else {
7285
7146
  const $scope9_id = _scope_id();
7286
- _html(`<a${_attr("href", `/w/${ws$1.id}?s=${s.id}`)}${_attr_class("_f8")}><span${_attr_class(["_y", phase[sessionPhase(s.state)]])}></span>${_el_resume($scope9_id, "b", $sg__input_sessions)}`);
7147
+ _html(`<a${_attr("href", `/w/${ws$1.id}?s=${s.id}`)}${_attr_class("_fZ")}><span${_attr_class(["_y", phase[sessionPhase(s.state)]])}></span>${_el_resume($scope9_id, "b", $sg__input_sessions)}`);
7287
7148
  _set_serialize_reason({
7288
7149
  1: $sg__input_sessions,
7289
7150
  2: $sg__input_sessions
@@ -7292,9 +7153,9 @@ var side_nav_item_default = _template("x", (input) => {
7292
7153
  icon_agent_default({
7293
7154
  agent: activeAgent(s),
7294
7155
  size: 13,
7295
- class: "_f9"
7156
+ class: "_f0"
7296
7157
  });
7297
- _html(`<span${_attr_class("_f3")}>${_escape(s.title || activeAgent(s))}${_el_resume($scope9_id, "e", $sg__input_sessions)}</span></a>${_el_resume($scope9_id, "a", _serialize_guard($scope0_reason, 6))}<div${_attr_class("_f4")}><button${_attr_class(rowIcon)} title="Rename session">`);
7158
+ _html(`<span${_attr_class("_fU")}>${_escape(s.title || activeAgent(s))}${_el_resume($scope9_id, "e", $sg__input_sessions)}</span></a>${_el_resume($scope9_id, "a", _serialize_guard($scope0_reason, 6))}<div${_attr_class("_fV")}><button${_attr_class(rowIcon)} title="Rename session">`);
7298
7159
  icon_edit_default({ size: 12 });
7299
7160
  _html(`</button>${_el_resume($scope9_id, "g")}<button${_attr_class([close, { ["_q"]: armedKill === s.id }])} title=${armedKill === s.id ? "Close?" : "\"Close session\""}>`);
7300
7161
  icon_xmark_default({ size: 12 });
@@ -7306,7 +7167,7 @@ var side_nav_item_default = _template("x", (input) => {
7306
7167
  const $childScope6 = _peek_scope_id();
7307
7168
  usage_pcts_default({
7308
7169
  agent: openPlan,
7309
- class: "_fZ"
7170
+ class: "_fQ"
7310
7171
  });
7311
7172
  _subscribe($openPlan__closures, writeScope($scope12_id, {
7312
7173
  a: _existing_scope($childScope6),
@@ -7344,9 +7205,8 @@ var side_nav_item_default = _template("x", (input) => {
7344
7205
  _subscribe($si__input_workspaces__OR__input_workspaceId && $ws_name__closures, _subscribe($si__input_workspaces__OR__input_workspaceId && $ws_id__closures, _subscribe($openPlan__closures, _subscribe($si__input_railPop && $input_railPop__closures, _subscribe($si__input_workspaceId && $input_workspaceId__closures, _subscribe($si__input_sessions && $input_sessions__closures, _subscribe($si__input_page && $input_page__closures, _subscribe($si__input_current && $input_current__closures, writeScope($scope3_id, {
7345
7206
  r: sessions$1.length,
7346
7207
  t: $si__input_sessions && sessions$1[0],
7347
- u: $si__input_page__OR__input_sessions__OR__input_workspaceId__OR__input_status && sessions$1[0]?.title,
7348
- v: $si__input_sessions && phaseLabel,
7349
- x: $si__input_page__OR__input_sessions__OR__input_workspaceId__OR__input_status && metaText,
7208
+ u: $si__input_sessions && phaseLabel,
7209
+ w: $si__input_page__OR__input_sessions__OR__input_workspaceId__OR__input_status && metaText,
7350
7210
  _: _scope_with_id($scope1_id),
7351
7211
  o: _serialize_if($scope0_reason, 1) && _existing_scope($childScope7),
7352
7212
  Cac: $si__input_current && 1,
@@ -7365,6 +7225,7 @@ var side_nav_item_default = _template("x", (input) => {
7365
7225
  }
7366
7226
  }, $scope0_id, "a", _serialize_guard($scope0_reason, 11), $sg__input_workspaces__OR__input_workspaceId, $sg__input_workspaces__OR__input_workspaceId);
7367
7227
  _script($scope0_id, "x8");
7228
+ _script($scope0_id, "x9");
7368
7229
  writeScope($scope0_id, {
7369
7230
  d: input.onRenameSession,
7370
7231
  e: _serialize_if($scope0_reason, 19) && input.current,
@@ -7501,34 +7362,34 @@ var side_nav_default = _template("y", (input) => {
7501
7362
  const iconSrc = `/api/instance/icon${input.instanceAccent ? `?v=${input.instanceAccent.slice(1)}` : ""}`;
7502
7363
  const otherIds = itemIds.filter((id) => id !== ws.id);
7503
7364
  const listIds = isPage ? [ws.id, ...otherIds] : itemIds;
7504
- _html(`<aside${_attr_class(["_df", {
7505
- ["_dd"]: !navOpen,
7506
- ["_de"]: isPage
7365
+ _html(`<aside${_attr_class(["_do", {
7366
+ ["_dm"]: !navOpen,
7367
+ ["_dn"]: isPage
7507
7368
  }])}${_attr("hidden", view === "diff")}>`);
7508
7369
  _if(() => {
7509
7370
  if (isPage) {
7510
7371
  const $scope1_id = _scope_id();
7511
- _html(`<header${_attr_class("_di")}><div${_attr_class("_dr")}>`);
7372
+ _html(`<header${_attr_class("_dr")}><div${_attr_class("_dA")}>`);
7512
7373
  _if(() => {
7513
7374
  if (input.instanceName) {
7514
7375
  const $scope2_id = _scope_id();
7515
- _html(`<div${_attr_class("_do")} title="This work server (Settings → Appearance)"><img${_attr_class("_dp")}${_attr("src", iconSrc)} alt aria-hidden=true>${_el_resume($scope2_id, "b", $sg__input_instanceAccent)}<span${_attr_class("_dq")}>${_escape(input.instanceName)}${_el_resume($scope2_id, "d", $sg__input_instanceName)}</span></div>`);
7376
+ _html(`<div${_attr_class("_dx")} title="This work server (Settings → Appearance)"><img${_attr_class("_dy")}${_attr("src", iconSrc)} alt aria-hidden=true>${_el_resume($scope2_id, "b", $sg__input_instanceAccent)}<span${_attr_class("_dz")}>${_escape(input.instanceName)}${_el_resume($scope2_id, "d", $sg__input_instanceName)}</span></div>`);
7516
7377
  _subscribe($si__input_instanceAccent && $iconSrc__closures, _subscribe($si__input_instanceName && $input_instanceName__closures, writeScope($scope2_id, { _: _scope_with_id($scope1_id) })));
7517
7378
  return 0;
7518
7379
  }
7519
7380
  }, $scope1_id, "c", $sg__input_instanceName, $sg__input_instanceName, 1, 0, 1);
7520
- _html(`<h1${_attr_class("_dj")}>Workspaces</h1></div><div${_attr_class("_dk")}>`);
7381
+ _html(`<h1${_attr_class("_ds")}>Workspaces</h1></div><div${_attr_class("_dt")}>`);
7521
7382
  _if(() => {}, $scope1_id, "f", 1, 1, 1, 0, 1);
7522
7383
  _html(`<a${view === "settings" ? _attr("href", backHref) : " href=/settings"}${_attr_class([
7523
7384
  iconBtn$1,
7524
- "_dl",
7525
- { ["_da"]: view === "settings" }
7385
+ "_du",
7386
+ { ["_dj"]: view === "settings" }
7526
7387
  ])} title=${view === "settings" ? "\"Back to workspace\"" : "Settings"}${view === "settings" ? " aria-current=page" : ""}>`);
7527
7388
  icon_settings_default({ size: 16 });
7528
7389
  _if(() => {
7529
7390
  if (input.setupReady === false) {
7530
7391
  const $scope12_id = _scope_id();
7531
- _html(`<span${_attr_class(["_y", "_dc"])} title="Machine setup incomplete"></span>`);
7392
+ _html(`<span${_attr_class(["_y", "_dl"])} title="Machine setup incomplete"></span>`);
7532
7393
  $si__input_setupReady && writeScope($scope12_id, {});
7533
7394
  return 0;
7534
7395
  }
@@ -7541,18 +7402,18 @@ var side_nav_default = _template("y", (input) => {
7541
7402
  _if(() => {
7542
7403
  if (!isPage && input.instanceName) {
7543
7404
  const $scope3_id = _scope_id();
7544
- _html(`<div${_attr_class("_do")} title="This work server (Settings → Appearance)"><img${_attr_class("_dp")}${_attr("src", iconSrc)} alt aria-hidden=true>${_el_resume($scope3_id, "b", $sg__input_instanceAccent)}<span${_attr_class("_dq")}>${_escape(input.instanceName)}${_el_resume($scope3_id, "d", $sg__input_instanceName)}</span></div>`);
7405
+ _html(`<div${_attr_class("_dx")} title="This work server (Settings → Appearance)"><img${_attr_class("_dy")}${_attr("src", iconSrc)} alt aria-hidden=true>${_el_resume($scope3_id, "b", $sg__input_instanceAccent)}<span${_attr_class("_dz")}>${_escape(input.instanceName)}${_el_resume($scope3_id, "d", $sg__input_instanceName)}</span></div>`);
7545
7406
  writeScope($scope3_id, {});
7546
7407
  return 0;
7547
7408
  }
7548
7409
  }, $scope0_id, "c", 1, 1, 1, 0, 1);
7549
- _html(`<div${_attr_class("_ds")}>`);
7410
+ _html(`<div${_attr_class("_dB")}>`);
7550
7411
  _for_of(listIds, (wsId) => {
7551
7412
  const $scope4_id = _scope_id();
7552
7413
  _if(() => {
7553
7414
  if (isPage && wsId === ws.id) {
7554
7415
  const $scope13_id = _scope_id();
7555
- _html(`<h2${_attr_class(["_bK", "_dm"])}>Current</h2>`);
7416
+ _html(`<h2${_attr_class(["_bC", "_dv"])}>Current</h2>`);
7556
7417
  writeScope($scope13_id, {});
7557
7418
  return 0;
7558
7419
  }
@@ -7560,7 +7421,7 @@ var side_nav_default = _template("y", (input) => {
7560
7421
  _if(() => {
7561
7422
  if (isPage && wsId !== ws.id && wsId === otherIds[0]) {
7562
7423
  const $scope14_id = _scope_id();
7563
- _html(`<h2${_attr_class(["_bK", "_dm"])}>Other workspaces</h2>`);
7424
+ _html(`<h2${_attr_class(["_bC", "_dv"])}>Other workspaces</h2>`);
7564
7425
  writeScope($scope14_id, {});
7565
7426
  return 0;
7566
7427
  }
@@ -7644,7 +7505,7 @@ var side_nav_default = _template("y", (input) => {
7644
7505
  railHover = null;
7645
7506
  }, 150);
7646
7507
  }, "y6", $scope5_id);
7647
- _html(`<div${_attr_class("_dt")}>`);
7508
+ _html(`<div${_attr_class("_dC")}>`);
7648
7509
  _for_of(itemIds, (wsId, i) => {
7649
7510
  const $scope6_id = _scope_id();
7650
7511
  _html("<span>");
@@ -7698,7 +7559,7 @@ var side_nav_default = _template("y", (input) => {
7698
7559
  if (railHover) {
7699
7560
  const $scope7_id = _scope_id();
7700
7561
  const hoverId = railHover.id;
7701
- _html(`<div${_attr_class(["_3", "_dw"])}${_attr_style(`top:${railHover.top}px;left:${railHover.left}px`)}>`);
7562
+ _html(`<div${_attr_class(["_4", "_dF"])}${_attr_style(`top:${railHover.top}px;left:${railHover.left}px`)}>`);
7702
7563
  _set_serialize_reason({
7703
7564
  0: 1,
7704
7565
  1: 1,
@@ -7783,7 +7644,7 @@ var side_nav_default = _template("y", (input) => {
7783
7644
  return 0;
7784
7645
  }
7785
7646
  }, $scope0_id, "e");
7786
- _html(`<div${_attr_class("_du")}>`);
7647
+ _html(`<div${_attr_class("_dD")}>`);
7787
7648
  _if(() => {
7788
7649
  if (isPage) {
7789
7650
  const $scope9_id = _scope_id();
@@ -7791,7 +7652,7 @@ var side_nav_default = _template("y", (input) => {
7791
7652
  "_o",
7792
7653
  "_p",
7793
7654
  btnLg,
7794
- "_dn"
7655
+ "_dw"
7795
7656
  ])} title=${view === "new" ? "\"Back to workspace\"" : "\"New workspace\""}${view === "new" ? " aria-current=page" : ""}>`);
7796
7657
  icon_folder_plus_default({ size: 16 });
7797
7658
  _html(` New workspace</a>${_el_resume($scope9_id, "a")}`);
@@ -7813,19 +7674,19 @@ var side_nav_default = _template("y", (input) => {
7813
7674
  return 1;
7814
7675
  }
7815
7676
  }, $scope8_id, "a", 1, 1, 1, "</button>", 1);
7816
- _html(`<div${_attr_class(["_x", "_dv"])}></div>`);
7677
+ _html(`<div${_attr_class(["_x", "_dE"])}></div>`);
7817
7678
  _if(() => {}, $scope8_id, "c", 1, 1, 1, 0, 1);
7818
- _html(`<a${view === "settings" ? _attr("href", backHref) : " href=/settings"}${_attr_class([iconBtn$1, { ["_da"]: view === "settings" }])} title=${view === "settings" ? "\"Back to workspace\"" : "Settings"}${view === "settings" ? " aria-current=page" : ""}>`);
7679
+ _html(`<a${view === "settings" ? _attr("href", backHref) : " href=/settings"}${_attr_class([iconBtn$1, { ["_dj"]: view === "settings" }])} title=${view === "settings" ? "\"Back to workspace\"" : "Settings"}${view === "settings" ? " aria-current=page" : ""}>`);
7819
7680
  icon_settings_default({ size: 15 });
7820
7681
  _if(() => {
7821
7682
  if (input.setupReady === false) {
7822
7683
  const $scope17_id = _scope_id();
7823
- _html(`<span${_attr_class(["_y", "_dc"])} title="Machine setup incomplete"></span>`);
7684
+ _html(`<span${_attr_class(["_y", "_dl"])} title="Machine setup incomplete"></span>`);
7824
7685
  $si__input_setupReady && writeScope($scope17_id, {});
7825
7686
  return 0;
7826
7687
  }
7827
7688
  }, $scope8_id, "f", $sg__input_setupReady, $sg__input_setupReady, 1, 0, 1);
7828
- _html(`</a>${_el_resume($scope8_id, "d")}<a${view === "new" ? _attr("href", backHref) : " href=/new"}${_attr_class([iconBtn$1, { ["_da"]: view === "new" }])} title=${view === "new" ? "\"Back to workspace\"" : "\"New workspace\""}${view === "new" ? " aria-current=page" : ""}>`);
7689
+ _html(`</a>${_el_resume($scope8_id, "d")}<a${view === "new" ? _attr("href", backHref) : " href=/new"}${_attr_class([iconBtn$1, { ["_dj"]: view === "new" }])} title=${view === "new" ? "\"Back to workspace\"" : "\"New workspace\""}${view === "new" ? " aria-current=page" : ""}>`);
7829
7690
  icon_folder_plus_default({ size: 16 });
7830
7691
  _html(`</a>${_el_resume($scope8_id, "g")}`);
7831
7692
  _script($scope8_id, "y15");
@@ -7891,11 +7752,11 @@ var side_nav_default = _template("y", (input) => {
7891
7752
  _resume_branch($scope0_id);
7892
7753
  });
7893
7754
  var iconBtn = "_Z _j";
7894
- var sectionCount = "_by _H _I";
7895
- var content = "_ea _bo";
7896
- var pageMeta = "_eb _bt";
7897
- var pathMeta = "_ee _w";
7898
- var dangerHint = "_ek _R";
7755
+ var sectionCount = "_bq _H _I";
7756
+ var content = "_eg _bF";
7757
+ var pageMeta = "_eh _bK";
7758
+ var pathMeta = "_ek _w";
7759
+ var dangerHint = "_ep _R";
7899
7760
  //#endregion
7900
7761
  //#region src/tags/manage-workspace.marko
7901
7762
  var api$2;
@@ -8026,7 +7887,7 @@ var manage_workspace_default = _template("o", (input) => {
8026
7887
  setTimeout(() => loadProcs(void 0), 500);
8027
7888
  }, "o7", $scope0_id);
8028
7889
  const titleId = _id();
8029
- _html(`<div${_attr_class("_bm")} role=region${_attr("aria-labelledby", titleId)}><div${_attr_class("_bn")}><div${_attr_class(content)}>`);
7890
+ _html(`<div${_attr_class("_bD")} role=region${_attr("aria-labelledby", titleId)}><div${_attr_class("_bE")}><div${_attr_class(content)}>`);
8030
7891
  _set_serialize_reason(30);
8031
7892
  const $childScope = _peek_scope_id();
8032
7893
  page_head_default({
@@ -8039,7 +7900,7 @@ var manage_workspace_default = _template("o", (input) => {
8039
7900
  meta: attrTag({ content: _content_resume("o13", () => {
8040
7901
  _scope_reason();
8041
7902
  const $scope13_id = _scope_id();
8042
- _html(`<span${_attr_class(pageMeta)}${_attr("title", ws.display_path || ws.path)}><span${_attr_class("_ec")}>${_escape(ws.name)}${_el_resume($scope13_id, "c")}</span>`);
7903
+ _html(`<span${_attr_class(pageMeta)}${_attr("title", ws.display_path || ws.path)}><span${_attr_class("_ei")}>${_escape(ws.name)}${_el_resume($scope13_id, "c")}</span>`);
8043
7904
  _if(() => {
8044
7905
  if (ws.status !== "active") {
8045
7906
  const $scope17_id = _scope_id();
@@ -8048,7 +7909,7 @@ var manage_workspace_default = _template("o", (input) => {
8048
7909
  return 0;
8049
7910
  }
8050
7911
  }, $scope13_id, "d", 1, 1, 1, 0, 1);
8051
- _html(`<span${_attr_class("_ed")} aria-hidden=true>·</span><span${_attr_class(pathMeta)}>${_escape(ws.display_path || ws.path)}${_el_resume($scope13_id, "g")}</span></span>${_el_resume($scope13_id, "a")}`);
7912
+ _html(`<span${_attr_class("_ej")} aria-hidden=true>·</span><span${_attr_class(pathMeta)}>${_escape(ws.display_path || ws.path)}${_el_resume($scope13_id, "g")}</span></span>${_el_resume($scope13_id, "a")}`);
8052
7913
  _subscribe($ws_status__closures, _subscribe($ws_name__closures, _subscribe($ws_path__closures, _subscribe($ws_display_path__closures, writeScope($scope13_id, { _: _scope_with_id($scope0_id) })))));
8053
7914
  _resume_branch($scope13_id);
8054
7915
  }, $scope0_id) })
@@ -8076,22 +7937,42 @@ var manage_workspace_default = _template("o", (input) => {
8076
7937
  _if(() => {
8077
7938
  if (pendingAction && actionStep) {
8078
7939
  const $scope11_id = _scope_id();
8079
- _html(`<p${_attr_class("_bv")}><span${_attr_class("_E")}></span><!>${_escape(actionStep)}${_el_resume($scope11_id, "c")}</p>`);
7940
+ _html(`<p${_attr_class("_bn")}><span${_attr_class("_E")}></span><!>${_escape(actionStep)}${_el_resume($scope11_id, "c")}</p>`);
8080
7941
  writeScope($scope11_id, {});
8081
7942
  return 0;
8082
7943
  }
8083
7944
  }, $scope0_id, "f", 1, 1, 1, 0, 1);
8084
- _html(`<section${_attr_class("_bw")}><div${_attr_class("_bx")}><h2${_attr_class("_bK")}>Repos</h2><span${_attr_class(sectionCount)}>${_escape(ws.repos.length)}${_el_resume($scope0_id, "k")}</span><div${_attr_class("_x")}></div><button${_attr_class(iconBtn)} title="Refresh repo list" aria-label="Refresh repo list"${_attr("disabled", catalogRefreshing)}>`);
7945
+ _html(`<section${_attr_class("_bo")}><div${_attr_class("_bp")}><h2${_attr_class("_bC")}>Workspace</h2></div><div${_attr_class("_eo")}>`);
7946
+ _if(() => {
7947
+ if (ws.status === "active") {
7948
+ const $scope8_id = _scope_id();
7949
+ _html(`<button type=button${_attr_class(btnLg)}${_attr("disabled", !!pendingAction)}>${pendingAction === "archive" ? "Archiving…" : "Archive"}${_el_resume($scope8_id, "b")}</button>${_el_resume($scope8_id, "a")}`);
7950
+ _script($scope8_id, "o15");
7951
+ writeScope($scope8_id, {});
7952
+ return 0;
7953
+ } else {
7954
+ const $scope9_id = _scope_id();
7955
+ _html(`<button type=button${_attr_class(btnLg)}${_attr("disabled", !!pendingAction)}>Restore</button>${_el_resume($scope9_id, "a")}`);
7956
+ _script($scope9_id, "o16");
7957
+ writeScope($scope9_id, {});
7958
+ return 1;
7959
+ }
7960
+ }, $scope0_id, "k", 1, 1, 1, 0, 1);
7961
+ _html(`<button type=button${_attr_class([
7962
+ btnLg,
7963
+ "_r",
7964
+ { ["_q"]: confirmingDelete }
7965
+ ])}${_attr("disabled", !!pendingAction)}>${pendingAction === "delete" ? "Deleting…" : "Delete"}${_el_resume($scope0_id, "m")}</button>${_el_resume($scope0_id, "l")}</div><p${_attr_class(dangerHint)}>Archive hides the workspace from the list. Delete removes it and its worktrees.</p></section><section${_attr_class("_bo")}><div${_attr_class("_bp")}><h2${_attr_class("_bC")}>Repos</h2><span${_attr_class(sectionCount)}>${_escape(ws.repos.length)}${_el_resume($scope0_id, "s")}</span><div${_attr_class("_x")}></div><button${_attr_class(iconBtn)} title="Refresh repo list" aria-label="Refresh repo list"${_attr("disabled", catalogRefreshing)}>`);
8085
7966
  _set_serialize_reason(1);
8086
7967
  const $childScope2 = _peek_scope_id();
8087
7968
  icon_refresh_default({
8088
7969
  size: 14,
8089
7970
  class: catalogRefreshing && "_D"
8090
7971
  });
8091
- _html(`</button>${_el_resume($scope0_id, "m")}</div><ul${_attr_class("_bz")}>`);
7972
+ _html(`</button>${_el_resume($scope0_id, "u")}</div><ul${_attr_class("_br")}>`);
8092
7973
  _for_of(ws.repos, (row) => {
8093
7974
  const $scope1_id = _scope_id();
8094
- _html(`<li${_attr_class("_bB")}><div${_attr_class("_bC")}><span${_attr_class(["_bD", "_w"])}>${_escape(row.worktree)}${_el_resume($scope1_id, "d")}/</span><span${_attr_class("_bE")}><a${_attr_class(["_bF", "_eg"])}${_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")}`);
7975
+ _html(`<li${_attr_class("_bt")}><div${_attr_class("_bu")}><span${_attr_class(["_bv", "_w"])}>${_escape(row.worktree)}${_el_resume($scope1_id, "d")}/</span><span${_attr_class("_bw")}><a${_attr_class(["_bx", "_em"])}${_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")}`);
8095
7976
  _if(() => {
8096
7977
  if (row.base_branch !== row.default_branch) {
8097
7978
  const $scope18_id = _scope_id();
@@ -8112,9 +7993,9 @@ var manage_workspace_default = _template("o", (input) => {
8112
7993
  } else {
8113
7994
  const $scope10_id = _scope_id();
8114
7995
  _html(`<button${_attr_class([
8115
- "_bG",
8116
- "_1",
7996
+ "_by",
8117
7997
  "_2",
7998
+ "_3",
8118
7999
  { ["_q"]: confirmingRemove === row.full_name }
8119
8000
  ])}${confirmingRemove === row.full_name ? _attr("title", `Remove ${row.worktree}/? Uncommitted changes are lost.`) : _attr("title", `Remove ${row.worktree}/`)}>`);
8120
8001
  _if(() => {
@@ -8130,7 +8011,7 @@ var manage_workspace_default = _template("o", (input) => {
8130
8011
  return 1;
8131
8012
  }
8132
8013
  }, $scope10_id, "a", 1, 1, 1, "</button>");
8133
- _script($scope10_id, "o15");
8014
+ _script($scope10_id, "o17");
8134
8015
  _subscribe($confirmingRemove__closures, writeScope($scope10_id, {}));
8135
8016
  return 1;
8136
8017
  }
@@ -8142,22 +8023,22 @@ var manage_workspace_default = _template("o", (input) => {
8142
8023
  m: row?.full_name,
8143
8024
  o: row?.base_branch
8144
8025
  });
8145
- }, "full_name", $scope0_id, "p", 1, 1, 1, 0, 1);
8026
+ }, "full_name", $scope0_id, "x", 1, 1, 1, 0, 1);
8146
8027
  _for_of([...busy].filter((n) => !inWorkspace.has(n)), (name) => {
8147
8028
  const $scope22_id = _scope_id();
8148
- _html(`<li${_attr_class(["_bB", "_bA"])}><span${_attr_class("_E")}></span><div${_attr_class("_bC")}><span${_attr_class("_bF")}>Adding <!>${_escape(name)}${_el_resume($scope22_id, "e")}…</span></div></li>`);
8029
+ _html(`<li${_attr_class(["_bt", "_bs"])}><span${_attr_class("_E")}></span><div${_attr_class("_bu")}><span${_attr_class("_bx")}>Adding <!>${_escape(name)}${_el_resume($scope22_id, "e")}…</span></div></li>`);
8149
8030
  writeScope($scope22_id, {});
8150
- }, (n) => n, $scope0_id, "q", 1, 1, 1, 0, 1);
8031
+ }, (n) => n, $scope0_id, "y", 1, 1, 1, 0, 1);
8151
8032
  _html("</ul>");
8152
8033
  _if(() => {
8153
8034
  if (!ws.repos.length && !busy.size) {
8154
8035
  const $scope23_id = _scope_id();
8155
- _html(`<p${_attr_class("_bH")}>No repos yet. Search below to add one.</p>`);
8036
+ _html(`<p${_attr_class("_bz")}>No repos yet. Search below to add one.</p>`);
8156
8037
  writeScope($scope23_id, {});
8157
8038
  return 0;
8158
8039
  }
8159
- }, $scope0_id, "r", 1, 1, 1, 0, 1);
8160
- _html(`<div${_attr_class("_ef")}>`);
8040
+ }, $scope0_id, "z", 1, 1, 1, 0, 1);
8041
+ _html(`<div${_attr_class("_el")}>`);
8161
8042
  const $childScope3 = _peek_scope_id();
8162
8043
  let refreshCatalog = repo_picker_default({
8163
8044
  exclude: inWorkspace,
@@ -8171,14 +8052,14 @@ var manage_workspace_default = _template("o", (input) => {
8171
8052
  catalogRefreshing = busy;
8172
8053
  }, "o12", $scope0_id)
8173
8054
  });
8174
- _var($scope0_id, "u", $childScope3, "o16");
8055
+ _var($scope0_id, "a2", $childScope3, "o18");
8175
8056
  const wsSkills = skills?.workspace || [];
8176
8057
  const repoSkills = (skills?.repo || []).filter((s) => !wsSkills.some((w) => w.id === s.id));
8177
8058
  _html("</div></section>");
8178
8059
  _if(() => {
8179
8060
  if (wsSkills.length || repoSkills.length) {
8180
8061
  const $scope2_id = _scope_id();
8181
- _html(`<section${_attr_class("_bw")}><div${_attr_class("_bx")}><h2${_attr_class("_bK")}>Skills</h2>`);
8062
+ _html(`<section${_attr_class("_bo")}><div${_attr_class("_bp")}><h2${_attr_class("_bC")}>Skills</h2>`);
8182
8063
  _if(() => {
8183
8064
  if (wsSkills.length) {
8184
8065
  const $scope24_id = _scope_id();
@@ -8187,10 +8068,10 @@ var manage_workspace_default = _template("o", (input) => {
8187
8068
  return 0;
8188
8069
  }
8189
8070
  }, $scope2_id, "d", 1, 1, 1, 0, 1);
8190
- _html(`</div><ul${_attr_class("_bz")}>`);
8071
+ _html(`</div><ul${_attr_class("_br")}>`);
8191
8072
  _for_of(wsSkills, (s) => {
8192
8073
  const $scope3_id = _scope_id();
8193
- _html(`<li${_attr_class("_bB")}><div${_attr_class("_bC")}><span${_attr_class(["_bD", "_w"])}>${_escape(s.name)}${_el_resume($scope3_id, "d")}</span><span${_attr_class("_bE")}>`);
8074
+ _html(`<li${_attr_class("_bt")}><div${_attr_class("_bu")}><span${_attr_class(["_bv", "_w"])}>${_escape(s.name)}${_el_resume($scope3_id, "d")}</span><span${_attr_class("_bw")}>`);
8194
8075
  _if(() => {
8195
8076
  if (s.broken) {
8196
8077
  const $scope25_id = _scope_id();
@@ -8228,7 +8109,7 @@ var manage_workspace_default = _template("o", (input) => {
8228
8109
  _if(() => {
8229
8110
  if (s.description) {
8230
8111
  const $scope28_id = _scope_id();
8231
- _html(`<span${_attr_class("_bF")}${_attr("title", s.description)}>${_escape(s.description)}${_el_resume($scope28_id, "b")}</span>${_el_resume($scope28_id, "a")}`);
8112
+ _html(`<span${_attr_class("_bx")}${_attr("title", s.description)}>${_escape(s.description)}${_el_resume($scope28_id, "b")}</span>${_el_resume($scope28_id, "a")}`);
8232
8113
  writeScope($scope28_id, {});
8233
8114
  return 0;
8234
8115
  }
@@ -8236,7 +8117,7 @@ var manage_workspace_default = _template("o", (input) => {
8236
8117
  _if(() => {
8237
8118
  if (s.sourceUrl) {
8238
8119
  const $scope29_id = _scope_id();
8239
- _html(`<a${_attr_class(["_bF", "_eg"])}${_attr("href", s.sourceUrl)} target=_blank rel=noopener${_attr("title", `Open ${s.source} on GitHub`)}>${_escape(s.source)}${_el_resume($scope29_id, "b")}</a>${_el_resume($scope29_id, "a")}`);
8120
+ _html(`<a${_attr_class(["_bx", "_em"])}${_attr("href", s.sourceUrl)} target=_blank rel=noopener${_attr("title", `Open ${s.source} on GitHub`)}>${_escape(s.source)}${_el_resume($scope29_id, "b")}</a>${_el_resume($scope29_id, "a")}`);
8240
8121
  writeScope($scope29_id, {});
8241
8122
  return 0;
8242
8123
  }
@@ -8251,9 +8132,9 @@ var manage_workspace_default = _template("o", (input) => {
8251
8132
  } else {
8252
8133
  const $scope12_id = _scope_id();
8253
8134
  _html(`<button${_attr_class([
8254
- "_bG",
8255
- "_1",
8135
+ "_by",
8256
8136
  "_2",
8137
+ "_3",
8257
8138
  { ["_q"]: confirmingSkill === s.id }
8258
8139
  ])}${confirmingSkill === s.id ? _attr("title", `Remove ${s.name} from this workspace?`) : s.linked ? _attr("title", `Stop using ${s.name} here`) : _attr("title", `Remove ${s.name}`)}>`);
8259
8140
  _if(() => {
@@ -8269,7 +8150,7 @@ var manage_workspace_default = _template("o", (input) => {
8269
8150
  return 1;
8270
8151
  }
8271
8152
  }, $scope12_id, "a", 1, 1, 1, "</button>");
8272
- _script($scope12_id, "o17");
8153
+ _script($scope12_id, "o19");
8273
8154
  _subscribe($confirmingSkill__closures, writeScope($scope12_id, {}));
8274
8155
  return 1;
8275
8156
  }
@@ -8289,10 +8170,10 @@ var manage_workspace_default = _template("o", (input) => {
8289
8170
  _if(() => {
8290
8171
  if (repoSkills.length) {
8291
8172
  const $scope4_id = _scope_id();
8292
- _html(`<ul${_attr_class("_bz")}>`);
8173
+ _html(`<ul${_attr_class("_br")}>`);
8293
8174
  _for_of(repoSkills, (s) => {
8294
8175
  const $scope5_id = _scope_id();
8295
- _html(`<li${_attr_class("_bB")}><div${_attr_class("_bC")}><span${_attr_class(["_bD", "_w"])}>${_escape(s.name)}${_el_resume($scope5_id, "d")}</span><span${_attr_class("_bE")}><span${_attr_class(["_bF", "_w"])}>${_escape(s.worktree)}${_el_resume($scope5_id, "g")}/</span>`);
8176
+ _html(`<li${_attr_class("_bt")}><div${_attr_class("_bu")}><span${_attr_class(["_bv", "_w"])}>${_escape(s.name)}${_el_resume($scope5_id, "d")}</span><span${_attr_class("_bw")}><span${_attr_class(["_bx", "_w"])}>${_escape(s.worktree)}${_el_resume($scope5_id, "g")}/</span>`);
8296
8177
  _if(() => {
8297
8178
  if (s.shadows) {
8298
8179
  const $scope34_id = _scope_id();
@@ -8305,7 +8186,7 @@ var manage_workspace_default = _template("o", (input) => {
8305
8186
  _if(() => {
8306
8187
  if (s.description) {
8307
8188
  const $scope35_id = _scope_id();
8308
- _html(`<span${_attr_class("_bF")}${_attr("title", s.description)}>${_escape(s.description)}${_el_resume($scope35_id, "b")}</span>${_el_resume($scope35_id, "a")}`);
8189
+ _html(`<span${_attr_class("_bx")}${_attr("title", s.description)}>${_escape(s.description)}${_el_resume($scope35_id, "b")}</span>${_el_resume($scope35_id, "a")}`);
8309
8190
  writeScope($scope35_id, {});
8310
8191
  return 0;
8311
8192
  }
@@ -8320,7 +8201,7 @@ var manage_workspace_default = _template("o", (input) => {
8320
8201
  } else if (!s.shadows) {
8321
8202
  const $scope14_id = _scope_id();
8322
8203
  _html(`<button${_attr_class(btnSm)}${_attr("title", `Link ${s.name} into this workspace`)}>Use here</button>${_el_resume($scope14_id, "a")}`);
8323
- _script($scope14_id, "o18");
8204
+ _script($scope14_id, "o20");
8324
8205
  writeScope($scope14_id, {});
8325
8206
  return 1;
8326
8207
  }
@@ -8343,33 +8224,33 @@ var manage_workspace_default = _template("o", (input) => {
8343
8224
  writeScope($scope2_id, {});
8344
8225
  return 0;
8345
8226
  }
8346
- }, $scope0_id, "v", 1, 1, 1, 0, 1);
8227
+ }, $scope0_id, "a3", 1, 1, 1, 0, 1);
8347
8228
  const running = procs || [];
8348
8229
  _if(() => {
8349
8230
  if (running.length) {
8350
8231
  const $scope15_id = _scope_id();
8351
- _html(`<section${_attr_class("_bw")}><div${_attr_class("_bx")}><h2${_attr_class("_bK")}>Running</h2><span${_attr_class(sectionCount)}>${_escape(running.length)}${_el_resume($scope15_id, "e")}</span></div><ul${_attr_class("_bz")}>`);
8232
+ _html(`<section${_attr_class("_bo")}><div${_attr_class("_bp")}><h2${_attr_class("_bC")}>Running</h2><span${_attr_class(sectionCount)}>${_escape(running.length)}${_el_resume($scope15_id, "e")}</span></div><ul${_attr_class("_br")}>`);
8352
8233
  _for_of(running, (p) => {
8353
8234
  const $scope16_id = _scope_id();
8354
- _html(`<li${_attr_class("_bB")}><div${_attr_class("_bC")}${_attr("title", p.args)}><span${_attr_class(["_bD", "_w"])}>${_escape(p.cmd)}${_el_resume($scope16_id, "d")}</span>`);
8235
+ _html(`<li${_attr_class("_bt")}><div${_attr_class("_bu")}${_attr("title", p.args)}><span${_attr_class(["_bv", "_w"])}>${_escape(p.cmd)}${_el_resume($scope16_id, "d")}</span>`);
8355
8236
  _if(() => {
8356
8237
  if (p.ports.length) {
8357
8238
  const $scope37_id = _scope_id();
8358
- _html(`<span${_attr_class("_bE")}>`);
8239
+ _html(`<span${_attr_class("_bw")}>`);
8359
8240
  _for_of(p.ports, (port) => {
8360
8241
  const $scope38_id = _scope_id();
8361
- _html(`<button${_attr_class(["_s", "_eh"])}${_attr("title", `Open http://${typeof location === "undefined" ? "localhost" : location.hostname}:${port}`)}>:<!>${_escape(port)}${_el_resume($scope38_id, "b")}</button>${_el_resume($scope38_id, "a")}`);
8362
- _script($scope38_id, "o19");
8242
+ _html(`<button${_attr_class(["_s", "_en"])}${_attr("title", `Open http://${typeof location === "undefined" ? "localhost" : location.hostname}:${port}`)}>:<!>${_escape(port)}${_el_resume($scope38_id, "b")}</button>${_el_resume($scope38_id, "a")}`);
8243
+ _script($scope38_id, "o21");
8363
8244
  writeScope($scope38_id, { d: port });
8364
8245
  }, (x) => String(x), $scope37_id, "a", 1, 1, 1, "</span>", 1);
8365
8246
  writeScope($scope37_id, {});
8366
8247
  return 0;
8367
8248
  }
8368
8249
  }, $scope16_id, "e", 1, 1, 1, 0, 1);
8369
- _html(`</div>${_el_resume($scope16_id, "b")}<button${_attr_class(["_bG", "_1"])} type=button${_attr("title", `Kill process ${p.pid}`)}${_attr("aria-label", `Kill process ${p.pid}`)}>`);
8250
+ _html(`</div>${_el_resume($scope16_id, "b")}<button${_attr_class(["_by", "_2"])} type=button${_attr("title", `Kill process ${p.pid}`)}${_attr("aria-label", `Kill process ${p.pid}`)}>`);
8370
8251
  icon_xmark_default({ size: 14 });
8371
8252
  _html(`</button>${_el_resume($scope16_id, "f")}</li>`);
8372
- _script($scope16_id, "o20");
8253
+ _script($scope16_id, "o22");
8373
8254
  writeScope($scope16_id, {
8374
8255
  l: p?.ports,
8375
8256
  n: p?.pid
@@ -8379,28 +8260,8 @@ var manage_workspace_default = _template("o", (input) => {
8379
8260
  writeScope($scope15_id, {});
8380
8261
  return 0;
8381
8262
  }
8382
- }, $scope0_id, "w", 1, 1, 1, 0, 1);
8383
- _html(`<section${_attr_class(["_bw", "_ei"])}><div${_attr_class("_bx")}><h2${_attr_class("_bK")}>Workspace</h2></div><div${_attr_class("_ej")}>`);
8384
- _if(() => {
8385
- if (ws.status === "active") {
8386
- const $scope8_id = _scope_id();
8387
- _html(`<button type=button${_attr_class(btnLg)}${_attr("disabled", !!pendingAction)}>${pendingAction === "archive" ? "Archiving…" : "Archive"}${_el_resume($scope8_id, "b")}</button>${_el_resume($scope8_id, "a")}`);
8388
- _script($scope8_id, "o21");
8389
- writeScope($scope8_id, {});
8390
- return 0;
8391
- } else {
8392
- const $scope9_id = _scope_id();
8393
- _html(`<button type=button${_attr_class(btnLg)}${_attr("disabled", !!pendingAction)}>Restore</button>${_el_resume($scope9_id, "a")}`);
8394
- _script($scope9_id, "o22");
8395
- writeScope($scope9_id, {});
8396
- return 1;
8397
- }
8398
- }, $scope0_id, "a1", 1, 1, 1, 0, 1);
8399
- _html(`<button type=button${_attr_class([
8400
- btnLg,
8401
- "_r",
8402
- { ["_q"]: confirmingDelete }
8403
- ])}${_attr("disabled", !!pendingAction)}>${pendingAction === "delete" ? "Deleting…" : "Delete"}${_el_resume($scope0_id, "a3")}</button>${_el_resume($scope0_id, "a2")}</div><p${_attr_class(dangerHint)}>Archive hides the workspace from the list. Delete removes it and its worktrees.</p></section></div></div></div>`);
8263
+ }, $scope0_id, "a4", 1, 1, 1, 0, 1);
8264
+ _html("</div></div></div>");
8404
8265
  _script($scope0_id, "o23");
8405
8266
  _script($scope0_id, "o24");
8406
8267
  writeScope($scope0_id, {
@@ -8447,9 +8308,9 @@ var manage_workspace_default = _template("o", (input) => {
8447
8308
  by: $ws_status__closures,
8448
8309
  d: _existing_scope($childScope),
8449
8310
  bp: $error__closures,
8450
- n: _existing_scope($childScope2),
8311
+ v: _existing_scope($childScope2),
8451
8312
  br: $confirmingRemove__closures,
8452
- t: _existing_scope($childScope3),
8313
+ a1: _existing_scope($childScope3),
8453
8314
  c0: $wsSkills_length__closures,
8454
8315
  bu: $confirmingSkill__closures,
8455
8316
  bo: $busy__closures,
@@ -8494,19 +8355,19 @@ var term_find_default = _template("A", (input) => {
8494
8355
  const canStep = hasQuery && open;
8495
8356
  const keybar = input.placement === "keybar";
8496
8357
  _html(`<div${_attr_class([
8497
- "_fA",
8498
- keybar ? "_fC" : "_fB",
8499
- !open && "_fE"
8500
- ])} aria-hidden=${open ? "false" : "true"}><div${_attr_class(["_fv", keybar ? "_fD" : "_fx"])}><input${_attr_input_value($scope0_id, "c", query, _resume(function(v) {
8358
+ "_gg",
8359
+ keybar ? "_gi" : "_gh",
8360
+ !open && "_gk"
8361
+ ])} aria-hidden=${open ? "false" : "true"}><div${_attr_class(["_gb", keybar ? "_gj" : "_gd"])}><input${_attr_input_value($scope0_id, "c", query, _resume(function(v) {
8501
8362
  if (!open) return;
8502
8363
  query = v;
8503
8364
  live.query = v;
8504
8365
  run(0);
8505
- }, "A0", $scope0_id))}${_attr_class([findInput, keybar && "_fF"])} 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 && "_fG"])} title="Previous match"${_attr("disabled", !canStep)} tabindex=${open ? "0" : "-1"}>`);
8366
+ }, "A0", $scope0_id))}${_attr_class([findInput, keybar && "_gl"])} 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 && "_gm"])} title="Previous match"${_attr("disabled", !canStep)} tabindex=${open ? "0" : "-1"}>`);
8506
8367
  icon_arrow_up_default({ size: 14 });
8507
- _html(`</button>${_el_resume($scope0_id, "d")}<button type=button${_attr_class([findIconBtn, keybar && "_fG"])} title="Next match"${_attr("disabled", !canStep)} tabindex=${open ? "0" : "-1"}>`);
8368
+ _html(`</button>${_el_resume($scope0_id, "d")}<button type=button${_attr_class([findIconBtn, keybar && "_gm"])} title="Next match"${_attr("disabled", !canStep)} tabindex=${open ? "0" : "-1"}>`);
8508
8369
  icon_arrow_down_default({ size: 14 });
8509
- _html(`</button>${_el_resume($scope0_id, "f")}<button type=button${_attr_class([findIconBtn, keybar && "_fG"])} title="Close find" tabindex=${open ? "0" : "-1"}>`);
8370
+ _html(`</button>${_el_resume($scope0_id, "f")}<button type=button${_attr_class([findIconBtn, keybar && "_gm"])} title="Close find" tabindex=${open ? "0" : "-1"}>`);
8510
8371
  icon_xmark_default({ size: 14 });
8511
8372
  _html(`</button>${_el_resume($scope0_id, "h")}</div>${_el_resume($scope0_id, "b", _serialize_guard($scope0_reason, 2))}</div>${_el_resume($scope0_id, "a")}`);
8512
8373
  _script($scope0_id, "A4");
@@ -8840,7 +8701,7 @@ var term_default = _template("B", (input) => {
8840
8701
  trapOpen = true;
8841
8702
  }
8842
8703
  }, "B14", $scope0_id);
8843
- _html(`<div${_attr("hidden", !onTermPage)}${_attr_class("_dx")}><div${_attr_class("_dy")}></div>${_el_resume($scope0_id, "b")}`);
8704
+ _html(`<div${_attr("hidden", !onTermPage)}${_attr_class("_eq")}><div${_attr_class("_er")}></div>${_el_resume($scope0_id, "b")}`);
8844
8705
  _if(() => {
8845
8706
  if (findOpen) {
8846
8707
  const $scope12_id = _scope_id();
@@ -8867,7 +8728,7 @@ var term_default = _template("B", (input) => {
8867
8728
  _if(() => {
8868
8729
  if (uploading) {
8869
8730
  const $scope19_id = _scope_id();
8870
- _html(`<div${_attr_class("_dE")}>uploading…</div>`);
8731
+ _html(`<div${_attr_class("_ex")}>uploading…</div>`);
8871
8732
  writeScope($scope19_id, {});
8872
8733
  return 0;
8873
8734
  }
@@ -8875,7 +8736,7 @@ var term_default = _template("B", (input) => {
8875
8736
  _if(() => {
8876
8737
  if (copiedFlash) {
8877
8738
  const $scope20_id = _scope_id();
8878
- _html(`<div${_attr_class("_dD")}>Copied</div>`);
8739
+ _html(`<div${_attr_class("_ew")}>Copied</div>`);
8879
8740
  writeScope($scope20_id, {});
8880
8741
  return 0;
8881
8742
  }
@@ -8884,7 +8745,7 @@ var term_default = _template("B", (input) => {
8884
8745
  _if(() => {
8885
8746
  if (trapOpen) {
8886
8747
  const $scope11_id = _scope_id();
8887
- _html(`<div${_attr_class("_dF")}><div${_attr_class("_dG")}><p${_attr_class("_d_")}>Long-press the field below and choose Paste</p><input placeholder="Paste here…">${_el_resume($scope11_id, "d")}<button${_attr_class("_o")}>Cancel</button>${_el_resume($scope11_id, "e")}</div>${_el_resume($scope11_id, "b")}</div>${_el_resume($scope11_id, "a")}`);
8748
+ _html(`<div${_attr_class("_ey")}><div${_attr_class("_ez")}><p${_attr_class("_e3")}>Long-press the field below and choose Paste</p><input placeholder="Paste here…">${_el_resume($scope11_id, "d")}<button${_attr_class("_o")}>Cancel</button>${_el_resume($scope11_id, "e")}</div>${_el_resume($scope11_id, "b")}</div>${_el_resume($scope11_id, "a")}`);
8888
8749
  _script($scope11_id, "B25");
8889
8750
  _script($scope11_id, "B26");
8890
8751
  writeScope($scope11_id, {});
@@ -8988,7 +8849,7 @@ var work_view_default = _template("F", (input) => {
8988
8849
  let DiffView = null;
8989
8850
  const loadDiffView = _resume(() => {
8990
8851
  if (DiffView) return;
8991
- import("./_4-M1FiLt.js").then((m) => {
8852
+ import("./_BIhoUpsW.js").then((m) => {
8992
8853
  DiffView = m.default;
8993
8854
  });
8994
8855
  }, "F6", $scope0_id);
@@ -9176,10 +9037,10 @@ var work_view_default = _template("F", (input) => {
9176
9037
  toggleDiff();
9177
9038
  }
9178
9039
  }, "F21", $scope0_id);
9179
- _html(`<div${_attr_class(["_b5", {
9180
- ["_b3"]: view === "nav",
9181
- ["_b4"]: !input.active
9182
- }])}><div${_attr_class("_b6")}>`);
9040
+ _html(`<div${_attr_class(["_b6", {
9041
+ ["_b4"]: view === "nav",
9042
+ ["_b5"]: !input.active
9043
+ }])}><div${_attr_class("_b7")}>`);
9183
9044
  _set_serialize_reason({
9184
9045
  0: _serialize_guard($scope0_reason, 0),
9185
9046
  1: 1,
@@ -9248,7 +9109,7 @@ var work_view_default = _template("F", (input) => {
9248
9109
  });
9249
9110
  }, "F30", $scope0_id)
9250
9111
  });
9251
- _html(`</div><div${_attr_class("_b7")}>`);
9112
+ _html(`</div><div${_attr_class("_b8")}>`);
9252
9113
  _if(() => {
9253
9114
  if (error) {
9254
9115
  const $scope8_id = _scope_id();
@@ -9271,7 +9132,7 @@ var work_view_default = _template("F", (input) => {
9271
9132
  _if(() => {
9272
9133
  if (diffMounted && DiffView) {
9273
9134
  const $scope1_id = _scope_id();
9274
- _html(`<div${_attr_class("_b8")}${_attr_or("data-live", view === "diff", "")}${_attr("inert", view !== "diff")}>`);
9135
+ _html(`<div${_attr_class("_b9")}${_attr_or("data-live", view === "diff", "")}${_attr("inert", view !== "diff")}>`);
9275
9136
  _dynamic_tag($scope1_id, "b", DiffView, {
9276
9137
  workspaceId: ws.id,
9277
9138
  workspaceBranch: ws.branch,
@@ -9311,7 +9172,7 @@ var work_view_default = _template("F", (input) => {
9311
9172
  _if(() => {
9312
9173
  if (manageMounted) {
9313
9174
  const $scope2_id = _scope_id();
9314
- _html(`<div${_attr_class("_b8")}${_attr_or("data-live", view === "manage", "")}${_attr("inert", view !== "manage")}>`);
9175
+ _html(`<div${_attr_class("_b9")}${_attr_or("data-live", view === "manage", "")}${_attr("inert", view !== "manage")}>`);
9315
9176
  _set_serialize_reason(_serialize_guard($scope0_reason, 16));
9316
9177
  const $childScope2 = _peek_scope_id();
9317
9178
  manage_workspace_default({
@@ -9334,7 +9195,7 @@ var work_view_default = _template("F", (input) => {
9334
9195
  _if(() => {
9335
9196
  if (settingsMounted) {
9336
9197
  const $scope3_id = _scope_id();
9337
- _html(`<div${_attr_class("_b8")}${_attr_or("data-live", view === "settings", "")}${_attr("inert", view !== "settings")}>`);
9198
+ _html(`<div${_attr_class("_b9")}${_attr_or("data-live", view === "settings", "")}${_attr("inert", view !== "settings")}>`);
9338
9199
  _set_serialize_reason({
9339
9200
  0: _serialize_guard($scope0_reason, 1),
9340
9201
  1: $sg__input_workspace,
@@ -9375,7 +9236,7 @@ var work_view_default = _template("F", (input) => {
9375
9236
  _if(() => {
9376
9237
  if (newMounted) {
9377
9238
  const $scope4_id = _scope_id();
9378
- _html(`<div${_attr_class("_b8")}${_attr_or("data-live", view === "new", "")}${_attr("inert", view !== "new")}>`);
9239
+ _html(`<div${_attr_class("_b9")}${_attr_or("data-live", view === "new", "")}${_attr("inert", view !== "new")}>`);
9379
9240
  _set_serialize_reason({
9380
9241
  0: 1,
9381
9242
  1: $sg__input_allWorkspaces,
@@ -9402,13 +9263,13 @@ var work_view_default = _template("F", (input) => {
9402
9263
  return 0;
9403
9264
  }
9404
9265
  }, $scope0_id, "i", 1, 1, 1, 0, 1);
9405
- _html(`<div${_attr_class(["_b_", { ["_b9"]: view !== "term" }])}>`);
9266
+ _html(`<div${_attr_class(["_ca", { ["_b_"]: view !== "term" }])}>`);
9406
9267
  _if(() => {
9407
9268
  if (shownSessions) {
9408
9269
  const $scope5_id = _scope_id();
9409
9270
  _for_of(input.active ? shownSessions : shownSessions.filter((x) => x.id === curTab), (s) => {
9410
9271
  const $scope6_id = _scope_id();
9411
- _html(`<div${_attr_class("_ca")}${_attr_or("data-live", s.id === curTab, "")}${_attr("inert", s.id !== curTab)}>`);
9272
+ _html(`<div${_attr_class("_cb")}${_attr_or("data-live", s.id === curTab, "")}${_attr("inert", s.id !== curTab)}>`);
9412
9273
  _set_serialize_reason({
9413
9274
  0: 1,
9414
9275
  1: 1,
@@ -9468,7 +9329,7 @@ var work_view_default = _template("F", (input) => {
9468
9329
  _if(() => {
9469
9330
  if (!shownSessions.length && view === "term") {
9470
9331
  const $scope7_id = _scope_id();
9471
- _html(`<div${_attr_class("_bI")}><span>No sessions in this workspace.</span><button${_attr_class(["_o", "_p"])}${_attr("disabled", spawning)}>${spawning ? "Starting…" : `Start ${_escape(`${input.preferred || "shell"}`)}`}${_el_resume($scope7_id, "c")}</button>${_el_resume($scope7_id, "b")}</div>`);
9332
+ _html(`<div${_attr_class("_bA")}><span>No sessions in this workspace.</span><button${_attr_class(["_o", "_p"])}${_attr("disabled", spawning)}>${spawning ? "Starting…" : `Start ${_escape(`${input.preferred || "shell"}`)}`}${_el_resume($scope7_id, "c")}</button>${_el_resume($scope7_id, "b")}</div>`);
9472
9333
  _script($scope7_id, "F50");
9473
9334
  _subscribe($spawning__closures, _subscribe($si__input_preferred && $input_preferred__closures, writeScope($scope7_id, {})));
9474
9335
  return 0;
@@ -9478,7 +9339,7 @@ var work_view_default = _template("F", (input) => {
9478
9339
  return 0;
9479
9340
  } else {
9480
9341
  const $scope10_id = _scope_id();
9481
- _html(`<p${_attr_class("_bI")}>Loading sessions…</p>`);
9342
+ _html(`<p${_attr_class("_bA")}>Loading sessions…</p>`);
9482
9343
  writeScope($scope10_id, {});
9483
9344
  return 1;
9484
9345
  }
@@ -11157,11 +11018,15 @@ var Pref = /* @__PURE__ */ object({
11157
11018
  key: /* @__PURE__ */ pipe(/* @__PURE__ */ string(), /* @__PURE__ */ maxLength(120)),
11158
11019
  value: /* @__PURE__ */ nullable(/* @__PURE__ */ pipe(/* @__PURE__ */ string(), /* @__PURE__ */ maxLength(4096)))
11159
11020
  });
11021
+ /** Per-workspace UI prefs — the workspace id is the suffix after the last `:`. */
11022
+ var OWNED = /^(?:tab|diff-filter|diff-pos):(.+)$/;
11160
11023
  var GET$19 = Run.GET(() => Response.json(allPrefs()));
11161
11024
  //#endregion
11162
11025
  //#region __marko-run__api.prefs.js
11163
11026
  var postHandler$14 = normalizeHandler(Run.POST({ json: Pref }, async (ctx) => {
11164
11027
  const body = await readBody(ctx);
11028
+ const owned = OWNED.exec(body.key);
11029
+ if (owned && !get("SELECT id FROM workspaces WHERE id = ?", owned[1])) return Response.json({ ok: true });
11165
11030
  setPref(body.key, body.value);
11166
11031
  return Response.json({ ok: true });
11167
11032
  }), "POST");
@@ -11378,10 +11243,12 @@ var Patch = /* @__PURE__ */ object({
11378
11243
  }))
11379
11244
  });
11380
11245
  function snapshot$1() {
11246
+ const catalog = agentChoices();
11247
+ const agents = catalog.filter((a) => a.enabled && a.id !== "shell").map((a) => a.id);
11381
11248
  return {
11382
- preferredAgent: preferredAgent(),
11383
- agents: enabledAgents(),
11384
- catalog: agentChoices(),
11249
+ preferredAgent: preferredAgent(agents),
11250
+ agents,
11251
+ catalog,
11385
11252
  disabledAgents: [...disabledAgents()],
11386
11253
  instance: getInstance()
11387
11254
  };
@@ -12290,10 +12157,27 @@ async function resolveBase(dir, wsBranch, baseBranch, headBranch, foreign, baseR
12290
12157
  missing: true
12291
12158
  };
12292
12159
  }
12160
+ /** Memo keyed on resolved shas — never on ref names, or a fetch/commit
12161
+ * would pin a stale `contained` and silently diff the wrong side.
12162
+ * Size-capped (Map insertion order = oldest first): an open review that
12163
+ * auto-reloads on every agent commit would otherwise grow without bound
12164
+ * for the life of the process. */
12165
+ var CONTAINED_CACHE_MAX = 1e3;
12166
+ var containedCache = /* @__PURE__ */ new Map();
12293
12167
  /** True when merging `head` into `base` is a no-op (head's unique work
12294
12168
  * is already in `base` — the squash-merge case). A conflict is not
12295
12169
  * containment; the caller falls through to three-dot. */
12296
- async function treeContainedIn(dir, base, head) {
12170
+ function treeContainedIn(dir, baseSha, headSha) {
12171
+ const key = `${dir}\0${baseSha}\0${headSha}`;
12172
+ let hit = containedCache.get(key);
12173
+ if (!hit) {
12174
+ hit = treeContainedInUncached(dir, baseSha, headSha);
12175
+ containedCache.set(key, hit);
12176
+ if (containedCache.size > CONTAINED_CACHE_MAX) containedCache.delete(containedCache.keys().next().value);
12177
+ }
12178
+ return hit;
12179
+ }
12180
+ async function treeContainedInUncached(dir, base, head) {
12297
12181
  try {
12298
12182
  return (await git([
12299
12183
  "merge-tree",
@@ -12316,12 +12200,7 @@ async function workspaceDiff(ws, opts = {}) {
12316
12200
  const seen = reviewSeen(ws.id);
12317
12201
  return (await Promise.all(ws.repos.map(async (repo) => {
12318
12202
  const dir = path.join(ws.path, repo.worktree);
12319
- const branch = await git([
12320
- "rev-parse",
12321
- "--abbrev-ref",
12322
- "HEAD"
12323
- ], dir).catch(() => "HEAD");
12324
- const localHead = await headOid(dir);
12203
+ const { oid: localHead, branch } = await headOid(dir);
12325
12204
  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}`));
12326
12205
  let list;
12327
12206
  if (open.length) list = await Promise.all(open.map((p) => prDiff(dir, repo, p, {
@@ -12365,8 +12244,8 @@ async function prDiff(dir, repo, pr, ctx) {
12365
12244
  await freshenBaseRefs(dir, repo.full_name, [pr.baseRefName, pr.headRefName]);
12366
12245
  const headRef = `origin/${pr.headRefName}`;
12367
12246
  const baseRef = `origin/${pr.baseRefName}`;
12368
- const head = await git(["rev-parse", headRef], dir).catch(() => "") || pr.headRefOid || "";
12369
- const baseSha = await git(["rev-parse", baseRef], dir).catch(() => "");
12247
+ const [headResolved, baseSha] = await Promise.all([git(["rev-parse", headRef], dir).catch(() => ""), git(["rev-parse", baseRef], dir).catch(() => "")]);
12248
+ const head = headResolved || pr.headRefOid || "";
12370
12249
  const base = {
12371
12250
  id: `${repo.worktree}#${pr.number}`,
12372
12251
  worktree: repo.worktree,
@@ -12389,7 +12268,7 @@ async function prDiff(dir, repo, pr, ctx) {
12389
12268
  baseRef,
12390
12269
  head
12391
12270
  ], dir).catch(() => "");
12392
- const contained = await treeContainedIn(dir, baseRef, head);
12271
+ const contained = await treeContainedIn(dir, baseSha, head);
12393
12272
  const files = await collectFiles(dir, contained ? head : mergeBase || baseRef, head, ctx.scope);
12394
12273
  const githubDrift = !!pr.headRefOid && head !== pr.headRefOid;
12395
12274
  return {
@@ -12441,10 +12320,9 @@ async function localDiff(dir, ws, repo, branch, localHead, baseRef, scope) {
12441
12320
  baseMissing: true,
12442
12321
  files: []
12443
12322
  };
12444
- const contained = !missing && !emptyRemote && await treeContainedIn(dir, ref, "HEAD");
12445
- const against = contained ? "HEAD" : mergeBase;
12446
12323
  const baseSha = missing ? localHead : emptyRemote ? mergeBase : await git(["rev-parse", ref], dir).catch(() => mergeBase);
12447
- const files = await collectFiles(dir, against, "HEAD", scope);
12324
+ const contained = !missing && !emptyRemote && !!baseSha && await treeContainedIn(dir, baseSha, localHead);
12325
+ const files = await collectFiles(dir, contained ? "HEAD" : mergeBase, "HEAD", scope);
12448
12326
  return {
12449
12327
  ...base,
12450
12328
  head: localHead,
@@ -12513,8 +12391,7 @@ async function collectFiles(dir, oldRev, newRev, scope) {
12513
12391
  status: "A"
12514
12392
  });
12515
12393
  const stats = parseNumstat(numstat);
12516
- const olds = await batchContents(dir, oldRev, entries.filter((e) => e.status !== "A").map((e) => e.path));
12517
- const news = uncommitted ? null : await batchContents(dir, newRev, entries.filter((e) => e.status !== "D").map((e) => e.path));
12394
+ const [olds, news] = await Promise.all([batchContents(dir, oldRev, entries.filter((e) => e.status !== "A").map((e) => e.path)), uncommitted ? Promise.resolve(null) : batchContents(dir, newRev, entries.filter((e) => e.status !== "D").map((e) => e.path))]);
12518
12395
  const files = await Promise.all(entries.map(async (e) => {
12519
12396
  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));
12520
12397
  if (!news && dirtyPaths.has(e.path)) file.hash = createHash("sha1").update(e.status).update(file.new ?? "").digest("hex").slice(0, 16);
@@ -17963,4 +17840,4 @@ server.listen(port, () => {
17963
17840
  //#endregion
17964
17841
  export {};
17965
17842
 
17966
- ;var __MARKO_MANIFEST__={"ibphXY4":{"block":[2,"stylesheet#/assets/app-page-DuEXAcnI.css",6,"<link",0," rel=\"stylesheet\" crossorigin href=\"",1,"assets/app-page-DuEXAcnI.css\"",">"],"defer":[2,"/assets/w._-gddPZdgU.js",6,"<script",0," async type=\"module\" crossorigin src=\"",1,"assets/w._-gddPZdgU.js\"","></script>",2,"modulepreload#/assets/_BrtordPT.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_BrtordPT.js\"",">"]},"ZLT8joi":{"block":[2,"stylesheet#/assets/app-page-DuEXAcnI.css",6,"<link",0," rel=\"stylesheet\" crossorigin href=\"",1,"assets/app-page-DuEXAcnI.css\"",">"],"defer":[2,"/assets/new-gddPZdgU.js",6,"<script",0," async type=\"module\" crossorigin src=\"",1,"assets/new-gddPZdgU.js\"","></script>",2,"modulepreload#/assets/_BrtordPT.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_BrtordPT.js\"",">"]},"T$MNY0k":{"block":[2,"stylesheet#/assets/app-page-DuEXAcnI.css",6,"<link",0," rel=\"stylesheet\" crossorigin href=\"",1,"assets/app-page-DuEXAcnI.css\"",">"],"defer":[2,"/assets/w._-E2EHSRw5.js",6,"<script",0," async type=\"module\" crossorigin src=\"",1,"assets/w._-E2EHSRw5.js\"","></script>",2,"modulepreload#/assets/_BrtordPT.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_BrtordPT.js\"",">"]},"AA0T2xt":{"block":[2,"stylesheet#/assets/app-page-DuEXAcnI.css",6,"<link",0," rel=\"stylesheet\" crossorigin href=\"",1,"assets/app-page-DuEXAcnI.css\"",">"],"defer":[2,"/assets/settings-gddPZdgU.js",6,"<script",0," async type=\"module\" crossorigin src=\"",1,"assets/settings-gddPZdgU.js\"","></script>",2,"modulepreload#/assets/_BrtordPT.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_BrtordPT.js\"",">"]},"LH2lXAg":{"block":[2,"stylesheet#/assets/app-page-DuEXAcnI.css",6,"<link",0," rel=\"stylesheet\" crossorigin href=\"",1,"assets/app-page-DuEXAcnI.css\"",">"],"defer":[2,"/assets/w-gddPZdgU.js",6,"<script",0," async type=\"module\" crossorigin src=\"",1,"assets/w-gddPZdgU.js\"","></script>",2,"modulepreload#/assets/_BrtordPT.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_BrtordPT.js\"",">"]}};
17843
+ ;var __MARKO_MANIFEST__={"ZLT8joi":{"block":[2,"stylesheet#/assets/app-page-BXbewHHv.css",6,"<link",0," rel=\"stylesheet\" crossorigin href=\"",1,"assets/app-page-BXbewHHv.css\"",">"],"defer":[2,"/assets/new-DUXTU7jB.js",6,"<script",0," async type=\"module\" crossorigin src=\"",1,"assets/new-DUXTU7jB.js\"","></script>",2,"modulepreload#/assets/_RhYe7Uqa.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_RhYe7Uqa.js\"",">"]},"LH2lXAg":{"block":[2,"stylesheet#/assets/app-page-BXbewHHv.css",6,"<link",0," rel=\"stylesheet\" crossorigin href=\"",1,"assets/app-page-BXbewHHv.css\"",">"],"defer":[2,"/assets/w-DUXTU7jB.js",6,"<script",0," async type=\"module\" crossorigin src=\"",1,"assets/w-DUXTU7jB.js\"","></script>",2,"modulepreload#/assets/_RhYe7Uqa.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_RhYe7Uqa.js\"",">"]},"AA0T2xt":{"block":[2,"stylesheet#/assets/app-page-BXbewHHv.css",6,"<link",0," rel=\"stylesheet\" crossorigin href=\"",1,"assets/app-page-BXbewHHv.css\"",">"],"defer":[2,"/assets/settings-DUXTU7jB.js",6,"<script",0," async type=\"module\" crossorigin src=\"",1,"assets/settings-DUXTU7jB.js\"","></script>",2,"modulepreload#/assets/_RhYe7Uqa.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_RhYe7Uqa.js\"",">"]},"T$MNY0k":{"block":[2,"stylesheet#/assets/app-page-BXbewHHv.css",6,"<link",0," rel=\"stylesheet\" crossorigin href=\"",1,"assets/app-page-BXbewHHv.css\"",">"],"defer":[2,"/assets/w._-DUXTU7jB.js",6,"<script",0," async type=\"module\" crossorigin src=\"",1,"assets/w._-DUXTU7jB.js\"","></script>",2,"modulepreload#/assets/_RhYe7Uqa.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_RhYe7Uqa.js\"",">"]},"ibphXY4":{"block":[2,"stylesheet#/assets/app-page-BXbewHHv.css",6,"<link",0," rel=\"stylesheet\" crossorigin href=\"",1,"assets/app-page-BXbewHHv.css\"",">"],"defer":[2,"/assets/w._-bwrmfhu0.js",6,"<script",0," async type=\"module\" crossorigin src=\"",1,"assets/w._-bwrmfhu0.js\"","></script>",2,"modulepreload#/assets/_RhYe7Uqa.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_RhYe7Uqa.js\"",">"]}};