@dylanpiercey/work 0.0.116 → 0.0.118

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 (262) hide show
  1. package/bin/work.mjs +7 -29
  2. package/dist/_BIDn_RW1.js +2 -0
  3. package/dist/{_BHPrqqev.js → _CeVZfkIY.js} +95 -79
  4. package/dist/{_CmheBYWi.js → _DE2RUdbF.js} +43 -26
  5. package/dist/{_CEKO5mam.js → _EzN3zMKL.js} +39 -39
  6. package/dist/index.mjs +555 -526
  7. package/dist/public/assets/{_C5GxdpIx.js → _5MxjuuKr.js} +1 -1
  8. package/dist/public/assets/_5MxjuuKr.js.br +0 -0
  9. package/dist/public/assets/{_CmwkZmX02.js → _6hN6Ymx42.js} +1 -1
  10. package/dist/public/assets/_6hN6Ymx42.js.br +0 -0
  11. package/dist/public/assets/{_DbphB3_Y.js → _6nWMLOH4.js} +1 -1
  12. package/dist/public/assets/_6nWMLOH4.js.br +0 -0
  13. package/dist/public/assets/{_BNuVdL222.js → _A2tLqg9y2.js} +1 -1
  14. package/dist/public/assets/_A2tLqg9y2.js.br +0 -0
  15. package/dist/public/assets/{_DJfRmyos.js → _Ar4UEz40.js} +1 -1
  16. package/dist/public/assets/_Ar4UEz40.js.br +0 -0
  17. package/dist/public/assets/{_DwnEEAN3.js → _B-wISkbs.js} +1 -1
  18. package/dist/public/assets/_B-wISkbs.js.br +0 -0
  19. package/dist/public/assets/{_DvlwodnH2.js → _B0HJN5ud2.js} +1 -1
  20. package/dist/public/assets/_B0HJN5ud2.js.br +0 -0
  21. package/dist/public/assets/{_BlLpqMok.js → _B6RbG5-A.js} +1 -1
  22. package/dist/public/assets/_B6RbG5-A.js.br +0 -0
  23. package/dist/public/assets/{_Cy6vUvOf.js → _B7cCygGe.js} +1 -1
  24. package/dist/public/assets/_B7cCygGe.js.br +0 -0
  25. package/dist/public/assets/{_CXfVimxX2.js → _B7n-BASn2.js} +1 -1
  26. package/dist/public/assets/{_BFDzSRUb.js → _BBPUNQgX.js} +1 -1
  27. package/dist/public/assets/_BBPUNQgX.js.br +0 -0
  28. package/dist/public/assets/{_BbZSZ8_I2.js → _BHhGmIxX2.js} +1 -1
  29. package/dist/public/assets/_BHhGmIxX2.js.br +0 -0
  30. package/dist/public/assets/{_bNejHwcl2.js → _BJjI-m6s2.js} +1 -1
  31. package/dist/public/assets/_BJjI-m6s2.js.br +0 -0
  32. package/dist/public/assets/{_BE2qRsPs.js → _BJz-Y1HI.js} +1 -1
  33. package/dist/public/assets/_BJz-Y1HI.js.br +0 -0
  34. package/dist/public/assets/{_CSBn-Hvt2.js → _BLeHC7zC2.js} +1 -1
  35. package/dist/public/assets/_BLeHC7zC2.js.br +0 -0
  36. package/dist/public/assets/{_zGSRZWQr.js → _BO_BKeKC.js} +1 -1
  37. package/dist/public/assets/_BO_BKeKC.js.br +0 -0
  38. package/dist/public/assets/{_DM1EXBbo.js → _BVhnP3T6.js} +1 -1
  39. package/dist/public/assets/_BVhnP3T6.js.br +0 -0
  40. package/dist/public/assets/{_DB_C0F-Z2.js → _BXK6LHvo2.js} +1 -1
  41. package/dist/public/assets/_BXK6LHvo2.js.br +0 -0
  42. package/dist/public/assets/{_CfRbL_Ta2.js → _BYPDDEEO2.js} +1 -1
  43. package/dist/public/assets/_BYPDDEEO2.js.br +0 -0
  44. package/dist/public/assets/{_BZou6DQD.js → _BbB3wFGa.js} +1 -1
  45. package/dist/public/assets/_BbB3wFGa.js.br +0 -0
  46. package/dist/public/assets/{_CASdx3AE.js → _BicOIlC8.js} +1 -1
  47. package/dist/public/assets/_BicOIlC8.js.br +0 -0
  48. package/dist/public/assets/{_DzazkU0O.js → _BjVuWYXf.js} +1 -1
  49. package/dist/public/assets/_BjVuWYXf.js.br +0 -0
  50. package/dist/public/assets/{_BYis3bU3.js → _BjeXgSse.js} +1 -1
  51. package/dist/public/assets/_BjeXgSse.js.br +0 -0
  52. package/dist/public/assets/{_DmHNNuUl2.js → _Bk7GDGa82.js} +1 -1
  53. package/dist/public/assets/_Bk7GDGa82.js.br +0 -0
  54. package/dist/public/assets/{_CDwswGat.js → _BmJ9IUv4.js} +1 -1
  55. package/dist/public/assets/_BmJ9IUv4.js.br +0 -0
  56. package/dist/public/assets/{_chJ5r2KH2.js → _BtxdHY0V2.js} +1 -1
  57. package/dist/public/assets/_BtxdHY0V2.js.br +0 -0
  58. package/dist/public/assets/{_DAcB8FCB.js → _Bu7Rb2KV.js} +1 -1
  59. package/dist/public/assets/_Bu7Rb2KV.js.br +0 -0
  60. package/dist/public/assets/{_R6H7Mgwp.js → _BzIW49zC.js} +1 -1
  61. package/dist/public/assets/_BzIW49zC.js.br +0 -0
  62. package/dist/public/assets/{_p7Nk6TN_.js → _C1oox0_T.js} +1 -1
  63. package/dist/public/assets/_C1oox0_T.js.br +0 -0
  64. package/dist/public/assets/{_BzAD6TBo.js → _C45kLCWD.js} +8 -8
  65. package/dist/public/assets/_C45kLCWD.js.br +0 -0
  66. package/dist/public/assets/{_ClccdQK9.js → _C4B_GVHB.js} +1 -1
  67. package/dist/public/assets/_C4B_GVHB.js.br +0 -0
  68. package/dist/public/assets/{_BqkNbZMs.js → _C4tiWhG4.js} +1 -1
  69. package/dist/public/assets/_C4tiWhG4.js.br +0 -0
  70. package/dist/public/assets/{_C9TtAENI.js → _C7wuWtJ1.js} +1 -1
  71. package/dist/public/assets/{_DAHhUiki.js → _CE6eJWkd.js} +1 -1
  72. package/dist/public/assets/_CE6eJWkd.js.br +0 -0
  73. package/dist/public/assets/{_BY4vFN-X.js → _CHWTX_c6.js} +1 -1
  74. package/dist/public/assets/_CHWTX_c6.js.br +0 -0
  75. package/dist/public/assets/{_B0e3Ak7A.js → _CK9tV5oJ.js} +1 -1
  76. package/dist/public/assets/_CK9tV5oJ.js.br +0 -0
  77. package/dist/public/assets/{_B5uwAcaB.js → _CQRIuNJi.js} +1 -1
  78. package/dist/public/assets/_CQRIuNJi.js.br +0 -0
  79. package/dist/public/assets/{_B4Nu-wag.js → _CUgERK7S.js} +1 -1
  80. package/dist/public/assets/_CUgERK7S.js.br +0 -0
  81. package/dist/public/assets/{_B_qJHbwz.js → _CV5RGu5i.js} +1 -1
  82. package/dist/public/assets/_CV5RGu5i.js.br +0 -0
  83. package/dist/public/assets/{_JMdaap6W.js → _CVtWHYIm.js} +21 -21
  84. package/dist/public/assets/_CVtWHYIm.js.br +0 -0
  85. package/dist/public/assets/{_BB3PfRLa2.js → _CYUpTPHg2.js} +1 -1
  86. package/dist/public/assets/_CYUpTPHg2.js.br +0 -0
  87. package/dist/public/assets/{_mbrwXzyQ.js → _CYemOBLN.js} +1 -1
  88. package/dist/public/assets/_CYemOBLN.js.br +0 -0
  89. package/dist/public/assets/{_Ht8V87dw2.js → _CZ0_xhSs2.js} +1 -1
  90. package/dist/public/assets/{_CMtRRt5X2.js → _C_mUeGVh2.js} +1 -1
  91. package/dist/public/assets/_C_mUeGVh2.js.br +0 -0
  92. package/dist/public/assets/{_D5BeGelx.js → _Cb-dgrCB.js} +1 -1
  93. package/dist/public/assets/_Cb-dgrCB.js.br +0 -0
  94. package/dist/public/assets/{_C2NMRiCh.js → _CdAkLhxG.js} +1 -1
  95. package/dist/public/assets/_CdAkLhxG.js.br +0 -0
  96. package/dist/public/assets/{_Da_nvZ5y.js → _Cf4M5kpG.js} +1 -1
  97. package/dist/public/assets/_Cf4M5kpG.js.br +0 -0
  98. package/dist/public/assets/{_BaJXK68-.js → _CoGdSkvu.js} +1 -1
  99. package/dist/public/assets/_CoGdSkvu.js.br +0 -0
  100. package/dist/public/assets/{_ChrrA5fF.js → _Cpm5RoWi.js} +1 -1
  101. package/dist/public/assets/_Cpm5RoWi.js.br +0 -0
  102. package/dist/public/assets/{_CbbUwTEJ.js → _CpuBCvd6.js} +1 -1
  103. package/dist/public/assets/_CpuBCvd6.js.br +0 -0
  104. package/dist/public/assets/{_CTlZ1Lkv2.js → _CsM5ftwz2.js} +1 -1
  105. package/dist/public/assets/_CsM5ftwz2.js.br +0 -0
  106. package/dist/public/assets/{_Ddq_uzCH2.js → _CtcH3ZyQ2.js} +1 -1
  107. package/dist/public/assets/_CtcH3ZyQ2.js.br +0 -0
  108. package/dist/public/assets/{_DN-QtD1c.js → _CyDfS08K.js} +1 -1
  109. package/dist/public/assets/_CyDfS08K.js.br +0 -0
  110. package/dist/public/assets/{_BshAqMBd2.js → _D5qcTAVE2.js} +1 -1
  111. package/dist/public/assets/_D5qcTAVE2.js.br +0 -0
  112. package/dist/public/assets/{_BbXYlhz_2.js → _DAGSDF8g2.js} +1 -1
  113. package/dist/public/assets/_DAGSDF8g2.js.br +0 -0
  114. package/dist/public/assets/{_CXKoguEA.js → _DIBThzVN.js} +1 -1
  115. package/dist/public/assets/_DIBThzVN.js.br +0 -0
  116. package/dist/public/assets/{_BVkMt2PY2.js → _DJEzPcA82.js} +1 -1
  117. package/dist/public/assets/_DJEzPcA82.js.br +0 -0
  118. package/dist/public/assets/{_DCM_uGbe.js → _DLBE7zID.js} +1 -1
  119. package/dist/public/assets/_DLBE7zID.js.br +0 -0
  120. package/dist/public/assets/{_C6_jrqyQ2.js → _DP-5FfqK2.js} +1 -1
  121. package/dist/public/assets/_DP-5FfqK2.js.br +0 -0
  122. package/dist/public/assets/{_Cj0z289t.js → _DglnXAKo.js} +1 -1
  123. package/dist/public/assets/_DglnXAKo.js.br +0 -0
  124. package/dist/public/assets/{_BynYlMA5.js → _Dh3HoKhq.js} +1 -1
  125. package/dist/public/assets/_Dh3HoKhq.js.br +0 -0
  126. package/dist/public/assets/{_NlAtY9z9.js → _DkxpDwXy.js} +1 -1
  127. package/dist/public/assets/_DkxpDwXy.js.br +0 -0
  128. package/dist/public/assets/{_BomcrPR22.js → _DoWF8ByT2.js} +1 -1
  129. package/dist/public/assets/_DoWF8ByT2.js.br +0 -0
  130. package/dist/public/assets/{_Rwpt_eYd.js → _HSgzwAmZ.js} +1 -1
  131. package/dist/public/assets/_HSgzwAmZ.js.br +0 -0
  132. package/dist/public/assets/{_BoLijUVS.js → _J22ldpof.js} +1 -1
  133. package/dist/public/assets/_J22ldpof.js.br +0 -0
  134. package/dist/public/assets/{_yu6_Donv2.js → _J98Rxkdb2.js} +1 -1
  135. package/dist/public/assets/_J98Rxkdb2.js.br +0 -0
  136. package/dist/public/assets/{_DZMpOq_k2.js → _JVw8w_7p2.js} +1 -1
  137. package/dist/public/assets/_JVw8w_7p2.js.br +0 -0
  138. package/dist/public/assets/{_BSIklgtS.js → _JoWlQVpX.js} +1 -1
  139. package/dist/public/assets/_JoWlQVpX.js.br +0 -0
  140. package/dist/public/assets/{_BvXxAv4T.js → _TbUx96Br.js} +1 -1
  141. package/dist/public/assets/_TbUx96Br.js.br +0 -0
  142. package/dist/public/assets/{_Dz1I8UR4.js → _akTAmktB.js} +1 -1
  143. package/dist/public/assets/_akTAmktB.js.br +0 -0
  144. package/dist/public/assets/{_BK6OZyLT2.js → _dFDJ9A9g2.js} +1 -1
  145. package/dist/public/assets/_dFDJ9A9g2.js.br +0 -0
  146. package/dist/public/assets/{_BhTLJW2Y.js → _gHuYn_71.js} +1 -1
  147. package/dist/public/assets/_gHuYn_71.js.br +0 -0
  148. package/dist/public/assets/{_Df3c1-mC.js → _j9TQP7q5.js} +1 -1
  149. package/dist/public/assets/_j9TQP7q5.js.br +0 -0
  150. package/dist/public/assets/_sWLklcDZ.js +1 -0
  151. package/dist/public/assets/{_Bp0PawFO.js → _tshHvoEk.js} +1 -1
  152. package/dist/public/assets/_tshHvoEk.js.br +0 -0
  153. package/dist/public/assets/{_2AY1cevg.js → _xVSWwNNy.js} +1 -1
  154. package/dist/public/assets/_xVSWwNNy.js.br +0 -0
  155. package/dist/public/assets/{_-3KGdeyo.js → _x_T0NsDl.js} +1 -1
  156. package/dist/public/assets/_x_T0NsDl.js.br +0 -0
  157. package/dist/public/assets/app-page-LDZ2KXKs.css +1 -0
  158. package/dist/public/assets/app-page-LDZ2KXKs.css.br +0 -0
  159. package/dist/public/assets/diff-view-0Uofj0Dv.css +1 -0
  160. package/dist/public/assets/diff-view-0Uofj0Dv.css.br +0 -0
  161. package/dist/public/assets/new-CwlftYMt.js +1 -0
  162. package/dist/public/assets/settings-CwlftYMt.js +1 -0
  163. package/dist/public/assets/shiki-wasm-stub-sWLklcDZ.js +1 -0
  164. package/dist/public/assets/w-CwlftYMt.js +1 -0
  165. package/dist/public/assets/w._-BGFF38Oe.js +1 -0
  166. package/dist/public/assets/w._-CwlftYMt.js +1 -0
  167. package/dist/public/assets/{worker-DZo603XT.js → worker-hTZla-j_.js} +1 -1
  168. package/dist/public/assets/worker-hTZla-j_.js.br +0 -0
  169. package/lib/setup/doctor.d.mts +0 -2
  170. package/lib/setup/doctor.mjs +17 -3
  171. package/lib/usage/format.d.mts +2 -0
  172. package/lib/usage/format.mjs +22 -0
  173. package/package.json +1 -1
  174. package/scripts/migrate.mjs +25 -0
  175. package/dist/_BBEL67Rf.js +0 -2
  176. package/dist/public/assets/_-3KGdeyo.js.br +0 -0
  177. package/dist/public/assets/_2AY1cevg.js.br +0 -0
  178. package/dist/public/assets/_B0e3Ak7A.js.br +0 -0
  179. package/dist/public/assets/_B4Nu-wag.js.br +0 -0
  180. package/dist/public/assets/_B5uwAcaB.js.br +0 -0
  181. package/dist/public/assets/_BB3PfRLa2.js.br +0 -0
  182. package/dist/public/assets/_BE2qRsPs.js.br +0 -0
  183. package/dist/public/assets/_BFDzSRUb.js.br +0 -0
  184. package/dist/public/assets/_BK6OZyLT2.js.br +0 -0
  185. package/dist/public/assets/_BNuVdL222.js.br +0 -0
  186. package/dist/public/assets/_BSIklgtS.js.br +0 -0
  187. package/dist/public/assets/_BVkMt2PY2.js.br +0 -0
  188. package/dist/public/assets/_BY4vFN-X.js.br +0 -0
  189. package/dist/public/assets/_BYis3bU3.js.br +0 -0
  190. package/dist/public/assets/_BZou6DQD.js.br +0 -0
  191. package/dist/public/assets/_B_qJHbwz.js.br +0 -0
  192. package/dist/public/assets/_BaJXK68-.js.br +0 -0
  193. package/dist/public/assets/_BbXYlhz_2.js.br +0 -0
  194. package/dist/public/assets/_BbZSZ8_I2.js.br +0 -0
  195. package/dist/public/assets/_BhTLJW2Y.js.br +0 -0
  196. package/dist/public/assets/_BlLpqMok.js.br +0 -0
  197. package/dist/public/assets/_BnjxR4X6.js +0 -1
  198. package/dist/public/assets/_BnjxR4X6.js.br +0 -0
  199. package/dist/public/assets/_BoLijUVS.js.br +0 -0
  200. package/dist/public/assets/_BomcrPR22.js.br +0 -0
  201. package/dist/public/assets/_Bp0PawFO.js.br +0 -0
  202. package/dist/public/assets/_BqkNbZMs.js.br +0 -0
  203. package/dist/public/assets/_BshAqMBd2.js.br +0 -0
  204. package/dist/public/assets/_BvXxAv4T.js.br +0 -0
  205. package/dist/public/assets/_BynYlMA5.js.br +0 -0
  206. package/dist/public/assets/_BzAD6TBo.js.br +0 -0
  207. package/dist/public/assets/_C2NMRiCh.js.br +0 -0
  208. package/dist/public/assets/_C5GxdpIx.js.br +0 -0
  209. package/dist/public/assets/_C6_jrqyQ2.js.br +0 -0
  210. package/dist/public/assets/_CASdx3AE.js.br +0 -0
  211. package/dist/public/assets/_CDwswGat.js.br +0 -0
  212. package/dist/public/assets/_CMtRRt5X2.js.br +0 -0
  213. package/dist/public/assets/_CSBn-Hvt2.js.br +0 -0
  214. package/dist/public/assets/_CTlZ1Lkv2.js.br +0 -0
  215. package/dist/public/assets/_CXKoguEA.js.br +0 -0
  216. package/dist/public/assets/_CbbUwTEJ.js.br +0 -0
  217. package/dist/public/assets/_CfRbL_Ta2.js.br +0 -0
  218. package/dist/public/assets/_ChrrA5fF.js.br +0 -0
  219. package/dist/public/assets/_Cj0z289t.js.br +0 -0
  220. package/dist/public/assets/_ClccdQK9.js.br +0 -0
  221. package/dist/public/assets/_CmwkZmX02.js.br +0 -0
  222. package/dist/public/assets/_Cy6vUvOf.js.br +0 -0
  223. package/dist/public/assets/_D5BeGelx.js.br +0 -0
  224. package/dist/public/assets/_DAHhUiki.js.br +0 -0
  225. package/dist/public/assets/_DAcB8FCB.js.br +0 -0
  226. package/dist/public/assets/_DB_C0F-Z2.js.br +0 -0
  227. package/dist/public/assets/_DCM_uGbe.js.br +0 -0
  228. package/dist/public/assets/_DJfRmyos.js.br +0 -0
  229. package/dist/public/assets/_DM1EXBbo.js.br +0 -0
  230. package/dist/public/assets/_DN-QtD1c.js.br +0 -0
  231. package/dist/public/assets/_DZMpOq_k2.js.br +0 -0
  232. package/dist/public/assets/_Da_nvZ5y.js.br +0 -0
  233. package/dist/public/assets/_DbphB3_Y.js.br +0 -0
  234. package/dist/public/assets/_Ddq_uzCH2.js.br +0 -0
  235. package/dist/public/assets/_Df3c1-mC.js.br +0 -0
  236. package/dist/public/assets/_DmHNNuUl2.js.br +0 -0
  237. package/dist/public/assets/_DvlwodnH2.js.br +0 -0
  238. package/dist/public/assets/_DwnEEAN3.js.br +0 -0
  239. package/dist/public/assets/_Dz1I8UR4.js.br +0 -0
  240. package/dist/public/assets/_DzazkU0O.js.br +0 -0
  241. package/dist/public/assets/_JMdaap6W.js.br +0 -0
  242. package/dist/public/assets/_NlAtY9z9.js.br +0 -0
  243. package/dist/public/assets/_R6H7Mgwp.js.br +0 -0
  244. package/dist/public/assets/_Rwpt_eYd.js.br +0 -0
  245. package/dist/public/assets/_bNejHwcl2.js.br +0 -0
  246. package/dist/public/assets/_chJ5r2KH2.js.br +0 -0
  247. package/dist/public/assets/_mbrwXzyQ.js.br +0 -0
  248. package/dist/public/assets/_p7Nk6TN_.js.br +0 -0
  249. package/dist/public/assets/_yu6_Donv2.js.br +0 -0
  250. package/dist/public/assets/_zGSRZWQr.js.br +0 -0
  251. package/dist/public/assets/app-page-xZ7ggaFZ.css +0 -1
  252. package/dist/public/assets/app-page-xZ7ggaFZ.css.br +0 -0
  253. package/dist/public/assets/diff-view-COEkSsJh.css +0 -1
  254. package/dist/public/assets/diff-view-COEkSsJh.css.br +0 -0
  255. package/dist/public/assets/new-B4TVUCf9.js +0 -1
  256. package/dist/public/assets/settings-B4TVUCf9.js +0 -1
  257. package/dist/public/assets/w-B4TVUCf9.js +0 -1
  258. package/dist/public/assets/w._-B4TVUCf9.js +0 -1
  259. package/dist/public/assets/w._-CJLLzbFK.js +0 -1
  260. package/dist/public/assets/wasm-S0UXjx1m.js +0 -1
  261. package/dist/public/assets/wasm-S0UXjx1m.js.br +0 -0
  262. 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 "./_CmheBYWi.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 "./_CEKO5mam.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 _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 "./_EzN3zMKL.js";
4
4
  import fs from "node:fs";
5
5
  import { createServer } from "node:http";
6
6
  import path from "node:path";
@@ -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
  }
@@ -1921,15 +1923,28 @@ var branches = swr(3e5, async (fullName) => {
1921
1923
  //#endregion
1922
1924
  //#region src/server/procs.ts
1923
1925
  var darwin = process.platform === "darwin";
1926
+ /** Is `cwd` the workspace root or somewhere under it? The trailing slash is
1927
+ * the whole point: a sibling `…/work-2` must not read as inside `…/work`. */
1928
+ function inside(cwd, root) {
1929
+ return cwd === root || cwd.startsWith(root + "/");
1930
+ }
1924
1931
  /** Listening TCP ports attributed to workspaces by the owning process's cwd. */
1925
1932
  async function portsByWorkspace(paths) {
1926
1933
  const result = /* @__PURE__ */ new Map();
1927
1934
  const canonical = new Map([...paths].map(([wsId, p]) => [wsId, realPath(p)]));
1928
- 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
+ })();
1929
1944
  for (const info of ports) {
1930
1945
  const cwd = cwds.get(info.pid);
1931
1946
  if (!cwd) continue;
1932
- for (const [wsId, wsPath] of canonical) if (cwd === wsPath || cwd.startsWith(wsPath + "/")) {
1947
+ for (const [wsId, wsPath] of canonical) if (inside(cwd, wsPath)) {
1933
1948
  const list = result.get(wsId) || [];
1934
1949
  list.push(info);
1935
1950
  result.set(wsId, list);
@@ -1949,7 +1964,7 @@ async function workspaceProcs(wsPath) {
1949
1964
  for (const { port, pid } of ports) portsByPid.set(pid, [...portsByPid.get(pid) || [], port]);
1950
1965
  const procs = [];
1951
1966
  for (const [pid, cwd] of cwds) {
1952
- if (cwd !== wsPath && !cwd.startsWith(wsPath + "/")) continue;
1967
+ if (!inside(cwd, wsPath)) continue;
1953
1968
  const parts = await procArgs(pid);
1954
1969
  if (!parts.length) continue;
1955
1970
  const cmd = parts[0].split("/").pop() || parts[0];
@@ -1975,10 +1990,7 @@ async function killWorkspaceProcs(wsPath) {
1975
1990
  async function killWorkspaceProc(pid, wsPaths) {
1976
1991
  const cwd = await readCwd(pid);
1977
1992
  if (!cwd) return false;
1978
- if (!wsPaths.some((p) => {
1979
- const root = realPath(p);
1980
- return cwd === root || cwd.startsWith(root + "/");
1981
- })) return false;
1993
+ if (!wsPaths.some((p) => inside(cwd, realPath(p)))) return false;
1982
1994
  try {
1983
1995
  process.kill(pid, "SIGTERM");
1984
1996
  } catch {
@@ -2146,10 +2158,10 @@ function getWorkspace(id) {
2146
2158
  const ws = get("SELECT * FROM workspaces WHERE id = ?", id);
2147
2159
  return ws && hydrate(ws);
2148
2160
  }
2161
+ var home$1 = os.homedir();
2149
2162
  function hydrate(ws) {
2150
- const home = os.homedir();
2151
2163
  ws.repos = all("SELECT full_name, worktree, base_branch, default_branch FROM repos WHERE workspace_id = ? ORDER BY worktree", ws.id);
2152
- ws.display_path = ws.path.startsWith(home) ? `~${ws.path.slice(home.length)}` : ws.path;
2164
+ ws.display_path = ws.path.startsWith(home$1) ? `~${ws.path.slice(home$1.length)}` : ws.path;
2153
2165
  return ws;
2154
2166
  }
2155
2167
  async function createWorkspace(name, repos) {
@@ -2163,10 +2175,10 @@ async function createWorkspace(name, repos) {
2163
2175
  const added = [];
2164
2176
  fs.mkdirSync(dir, { recursive: true });
2165
2177
  try {
2166
- for (const repo of repos) {
2178
+ const results = await Promise.allSettled(repos.map(async (repo) => {
2167
2179
  const worktree = siblings.get(repo.fullName);
2168
2180
  const fullName = await resolveFork(repo);
2169
- const row = await withRepoLock(fullName, async () => {
2181
+ return withRepoLock(fullName, async () => {
2170
2182
  const bare = await ensureBare(fullName);
2171
2183
  const defaultBranch = await bareDefaultBranch(bare);
2172
2184
  const base = repo.baseBranch || defaultBranch;
@@ -2178,8 +2190,10 @@ async function createWorkspace(name, repos) {
2178
2190
  default_branch: defaultBranch
2179
2191
  };
2180
2192
  });
2181
- added.push(row);
2182
- }
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;
2183
2197
  } catch (err) {
2184
2198
  for (const r of added) await withRepoLock(r.full_name, () => git([
2185
2199
  "worktree",
@@ -2284,6 +2298,7 @@ async function deleteWorkspace(id) {
2284
2298
  const sessions = listSessions(id);
2285
2299
  db.prepare("DELETE FROM workspaces WHERE id = ?").run(id);
2286
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}`);
2287
2302
  notifyWorkspacesChanged();
2288
2303
  progress$1(`Stopping sessions and processes…`);
2289
2304
  await disposeSessions(sessions);
@@ -2599,12 +2614,7 @@ async function pruneLaneBranch(workspaceId, fullName, lane, headOid) {
2599
2614
  if (!ws.repos.some((r) => r.full_name === fullName)) return false;
2600
2615
  return withRepoLock(fullName, async () => {
2601
2616
  const bare = barePath(fullName);
2602
- const local = await git([
2603
- "rev-parse",
2604
- "--verify",
2605
- `refs/heads/${lane}`
2606
- ], bare).catch(() => "");
2607
- if (!local || local !== headOid) return false;
2617
+ if (await revParse(bare, `refs/heads/${lane}`) !== headOid) return false;
2608
2618
  return git([
2609
2619
  "branch",
2610
2620
  "-D",
@@ -3317,14 +3327,13 @@ async function refreshPrsBatch(targets, force = false) {
3317
3327
  if (upstream) names.add(splitRepo(upstream).name);
3318
3328
  byHost.set(host, names);
3319
3329
  }
3320
- const branchesAll = [...new Set(wanted.map((t) => t.branch))];
3321
- const results = await Promise.all([...byHost].map(([host, names]) => searchPrs(host, [...names], branchesAll).catch((err) => {
3330
+ const branches = [...new Set(wanted.map((t) => t.branch))];
3331
+ const results = await Promise.all([...byHost].map(([host, names]) => searchPrs(host, [...names], branches).catch((err) => {
3322
3332
  if (byHost.size === 1) throw err;
3323
3333
  return null;
3324
3334
  })));
3325
3335
  const nodes = results.flatMap((r) => r ?? []);
3326
3336
  const failedHosts = new Set([...byHost.keys()].filter((_, i) => results[i] === null));
3327
- const branches = [...new Set(wanted.map((t) => t.branch))];
3328
3337
  for (const target of wanted) {
3329
3338
  if (failedHosts.has(splitRepo(target.fullName).host)) continue;
3330
3339
  const foreign = branches.filter((b) => b !== target.branch);
@@ -3354,13 +3363,15 @@ function withoutDismissed(workspaceId, fullName, list) {
3354
3363
  }
3355
3364
  //#endregion
3356
3365
  //#region src/server/git-refs.ts
3357
- /** 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.
3358
3368
  *
3359
- * 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 —
3360
3370
  * it is what tells an open review that an agent committed, since a local
3361
- * commit reaches GitHub through nothing the app can be told about. As a
3362
- * process per repo per tick that was the bulk of the git the server ran;
3363
- * 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.
3364
3375
  *
3365
3376
  * `git` stays the authority for anything this cannot read confidently: a
3366
3377
  * ref backend it does not understand, a chain that does not end in an oid,
@@ -3368,7 +3379,17 @@ function withoutDismissed(workspaceId, fullName, list) {
3368
3379
  * because the drift banner reads a stale oid as "your checkout differs
3369
3380
  * from the review". */
3370
3381
  async function headOid(dir) {
3371
- 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
+ };
3372
3393
  }
3373
3394
  var spawnHead = (dir) => git(["rev-parse", "HEAD"], dir).catch(() => "");
3374
3395
  /** Both hash algorithms, since a repo may be SHA-256. */
@@ -3377,8 +3398,17 @@ var OID = /^[0-9a-f]{40}(?:[0-9a-f]{24})?$/;
3377
3398
  var MAX_HOPS = 5;
3378
3399
  async function readHead(dir) {
3379
3400
  const { gitDir, common } = await gitDirs(dir);
3380
- if (await exists(path.join(common, "reftable"))) return "";
3401
+ if (await exists(path.join(common, "reftable"))) return null;
3381
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;
3382
3412
  for (let hop = 0; ref.startsWith("ref: ") && hop < MAX_HOPS; hop++) {
3383
3413
  const name = ref.slice(5).trim();
3384
3414
  const loose = await read(path.join(gitDir, name)) ?? await read(path.join(common, name));
@@ -3387,12 +3417,21 @@ async function readHead(dir) {
3387
3417
  continue;
3388
3418
  }
3389
3419
  const packed = await read(path.join(common, "packed-refs"));
3390
- if (packed === void 0) return "";
3420
+ if (packed === void 0) return {
3421
+ oid: "",
3422
+ branch
3423
+ };
3391
3424
  const line = packed.split("\n").find((l) => !l.startsWith("^") && l.endsWith(` ${name}`));
3392
- if (!line) return "";
3425
+ if (!line) return {
3426
+ oid: "",
3427
+ branch
3428
+ };
3393
3429
  ref = line.slice(0, line.indexOf(" "));
3394
3430
  }
3395
- return OID.test(ref) ? ref : "";
3431
+ return OID.test(ref) ? {
3432
+ oid: ref,
3433
+ branch
3434
+ } : null;
3396
3435
  }
3397
3436
  /** A worktree's `.git` is a file pointing at its admin directory inside the
3398
3437
  * shared bare cache, which in turn points back at the common ref store. */
@@ -3518,15 +3557,12 @@ async function statusForAllFresh() {
3518
3557
  /** RSS here is the Node + Marko baseline (~80 MB empty, ~115 MB loaded),
3519
3558
  * not a leak and not worth chasing — young-gen flags do not move it. */
3520
3559
  async function computeStatus() {
3521
- const workspaces = listWorkspaces().filter((ws) => ws.status === "active");
3560
+ const everyWorkspace = listWorkspaces();
3561
+ const workspaces = everyWorkspace.filter((ws) => ws.status === "active");
3522
3562
  const paths = new Map(workspaces.map((ws) => [ws.id, ws.path]));
3523
3563
  const [ports, states] = await Promise.all([portsByWorkspace(paths), sessionStates()]);
3524
- const allBranches = listWorkspaces().map((w) => ({
3525
- id: w.id,
3526
- branch: w.branch
3527
- }));
3528
3564
  const entries = await Promise.all(workspaces.map(async (ws) => {
3529
- const foreign = allBranches.filter((w) => w.id !== ws.id).map((w) => w.branch);
3565
+ const foreign = everyWorkspace.filter((w) => w.id !== ws.id).map((w) => w.branch);
3530
3566
  const statuses = await Promise.all(ws.repos.map((repo) => repoStatus(ws, repo, foreign)));
3531
3567
  return [ws.id, {
3532
3568
  ports: ports.get(ws.id) || [],
@@ -3538,7 +3574,7 @@ async function computeStatus() {
3538
3574
  }
3539
3575
  async function repoStatus(ws, repo, foreign) {
3540
3576
  const dir = path.join(ws.path, repo.worktree);
3541
- 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)]);
3542
3578
  return {
3543
3579
  full_name: repo.full_name,
3544
3580
  worktree: repo.worktree,
@@ -3587,11 +3623,12 @@ var QUICK_MS = 80;
3587
3623
  var _middleware_default$3 = Run.ALL(async (_ctx, next) => {
3588
3624
  const statusP = statusForAll();
3589
3625
  const quick = await Promise.race([statusP.then((s) => ({ s })), sleep(QUICK_MS).then(() => null)]).catch(() => null);
3626
+ const agents = enabledAgents();
3590
3627
  const res = await next({
3591
3628
  workspaces: listWorkspaces(),
3592
3629
  settings: {
3593
- preferredAgent: preferredAgent(),
3594
- agents: enabledAgents(),
3630
+ preferredAgent: preferredAgent(agents),
3631
+ agents,
3595
3632
  instance: getInstance()
3596
3633
  },
3597
3634
  prefs: allPrefs(),
@@ -3789,6 +3826,23 @@ async function api$7(url, init) {
3789
3826
  return data;
3790
3827
  }
3791
3828
  //#endregion
3829
+ //#region lib/usage/format.mjs
3830
+ /** Percent, with a decimal only where rounding would lie: 99.6% must not
3831
+ * read as a spent 100%, and 0.4% must not read as an untouched 0%. */
3832
+ function pctText(pct) {
3833
+ const rounded = Math.round(pct);
3834
+ return rounded !== pct && (rounded === 100 || rounded === 0) ? `${pct.toFixed(1)}%` : `${rounded}%`;
3835
+ }
3836
+ /** Coarse span — minutes, then hours, then days. Used for "resets in" and
3837
+ * "n old", where a precise figure would imply freshness it doesn't have. */
3838
+ function duration(ms) {
3839
+ const m = Math.round(ms / 6e4);
3840
+ if (m < 60) return `${m}m`;
3841
+ const h = Math.round(m / 60);
3842
+ if (h < 48) return `${h}h`;
3843
+ return `${Math.round(h / 24)}d`;
3844
+ }
3845
+ //#endregion
3792
3846
  //#region src/client/usage.ts
3793
3847
  var cached$1 = null;
3794
3848
  function lastUsage$1() {
@@ -3932,28 +3986,28 @@ function applyInstance(inst) {
3932
3986
  }
3933
3987
  //#endregion
3934
3988
  //#region src/tags/settings-page.css.ts
3935
- var content$2 = "_cd _bp _bq";
3936
- var agentGrid = "_ch _bA";
3937
- var toolGrid = "_cr _bA";
3938
- var themeSeg = "_cG _6";
3939
- var swatches = "_cO _6";
3989
+ var content$2 = "_cb _bE _bF";
3990
+ var agentGrid = "_cf _bq";
3991
+ var toolGrid = "_cp _bq";
3992
+ var themeSeg = "_cE _5";
3993
+ var swatches = "_cM _5";
3940
3994
  //#endregion
3941
3995
  //#region src/tags/page-head.marko
3942
3996
  var page_head_default = _template("r", (input) => {
3943
3997
  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);
3944
3998
  const $scope0_id = _scope_id();
3945
- _html(`<header${_attr_class("_br")}>`);
3999
+ _html(`<header${_attr_class("_bG")}>`);
3946
4000
  _if(() => {
3947
4001
  if (input.backHref) {
3948
4002
  const $scope1_id = _scope_id();
3949
- _html(`<a${_attr("href", input.backHref)}${_attr_class([iconBtnRow, "_cV"])}${_attr_or("title", input.backTitle, " title=\"Back (Esc)\"")}${_attr_or("aria-label", input.backTitle, " aria-label=Back")}>`);
4003
+ _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")}>`);
3950
4004
  icon_back_default({ size: 16 });
3951
4005
  _html(`</a>${_el_resume($scope1_id, "a", _serialize_guard($scope0_reason, 0))}`);
3952
4006
  _serialize_if($scope0_reason, 2) && writeScope($scope1_id, { _: _serialize_if($scope0_reason, 0) && _scope_with_id($scope0_id) });
3953
4007
  return 0;
3954
4008
  } else if (input.onBack) {
3955
4009
  const $scope2_id = _scope_id();
3956
- _html(`<button${_attr_class([iconBtnRow, "_cV"])}${_attr_or("title", input.backTitle, " title=\"Back (Esc)\"")}${_attr_or("aria-label", input.backTitle, " aria-label=Back")}>`);
4010
+ _html(`<button${_attr_class([iconBtnRow, "_cT"])}${_attr_or("title", input.backTitle, " title=\"Back (Esc)\"")}${_attr_or("aria-label", input.backTitle, " aria-label=Back")}>`);
3957
4011
  icon_back_default({ size: 16 });
3958
4012
  _html(`</button>${_el_resume($scope2_id, "a")}`);
3959
4013
  _script($scope2_id, "r0");
@@ -3961,11 +4015,11 @@ var page_head_default = _template("r", (input) => {
3961
4015
  return 1;
3962
4016
  }
3963
4017
  }, $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);
3964
- _html(`<div${_attr_class("_bt")}><h1${_attr("id", input.titleId)}${_attr_class("_bs")}>${_escape(input.title)}${_el_resume($scope0_id, "e", _serialize_guard($scope0_reason, 5))}</h1>${_el_resume($scope0_id, "d", _serialize_guard($scope0_reason, 4))}`);
4018
+ _html(`<div${_attr_class("_bI")}><h1${_attr("id", input.titleId)}${_attr_class("_bH")}>${_escape(input.title)}${_el_resume($scope0_id, "e", _serialize_guard($scope0_reason, 5))}</h1>${_el_resume($scope0_id, "d", _serialize_guard($scope0_reason, 4))}`);
3965
4019
  _if(() => {
3966
4020
  if (input.meta) {
3967
4021
  const $scope3_id = _scope_id();
3968
- _html(`<p${_attr_class("_bu")}>`);
4022
+ _html(`<p${_attr_class("_bJ")}>`);
3969
4023
  _dynamic_tag($scope3_id, "b", input.meta, {}, 0, 0, $sg__input_meta);
3970
4024
  _html("</p>");
3971
4025
  $si__input_meta && writeScope($scope3_id, { _: _scope_with_id($scope0_id) });
@@ -3976,7 +4030,7 @@ var page_head_default = _template("r", (input) => {
3976
4030
  _if(() => {
3977
4031
  if (input.actions) {
3978
4032
  const $scope4_id = _scope_id();
3979
- _html(`<div${_attr_class("_bv")}>`);
4033
+ _html(`<div${_attr_class("_bK")}>`);
3980
4034
  _dynamic_tag($scope4_id, "b", input.actions, {}, 0, 0, $sg__input_actions);
3981
4035
  _html("</div>");
3982
4036
  $si__input_actions && writeScope($scope4_id, { _: _scope_with_id($scope0_id) });
@@ -4044,10 +4098,10 @@ var icon_agent_default = _template("G", (input) => {
4044
4098
  n: $badge__closures
4045
4099
  });
4046
4100
  });
4047
- var usageNote = "_dw _S";
4101
+ var usageNote = "_di _R";
4048
4102
  //#endregion
4049
4103
  //#region src/tags/icons/icon-warning.marko
4050
- var icon_warning_default = _template("kb", (input) => {
4104
+ var icon_warning_default = _template("jb", (input) => {
4051
4105
  const $scope0_reason = _scope_reason(), $sg__input_size__OR__input_class = _serialize_guard($scope0_reason, 0);
4052
4106
  const $scope0_id = _scope_id();
4053
4107
  _set_serialize_reason({
@@ -4064,17 +4118,6 @@ var icon_warning_default = _template("kb", (input) => {
4064
4118
  });
4065
4119
  //#endregion
4066
4120
  //#region src/tags/usage-meters.marko
4067
- function duration(ms) {
4068
- const m = Math.round(ms / 6e4);
4069
- if (m < 60) return `${m}m`;
4070
- const h = Math.round(m / 60);
4071
- if (h < 48) return `${h}h`;
4072
- return `${Math.round(h / 24)}d`;
4073
- }
4074
- function pctText$1(pct) {
4075
- const rounded = Math.round(pct);
4076
- return rounded !== pct && (rounded === 100 || rounded === 0) ? `${pct.toFixed(1)}%` : `${rounded}%`;
4077
- }
4078
4121
  function resetLabel(iso, stale) {
4079
4122
  if (!iso) return null;
4080
4123
  const ms = new Date(iso).getTime() - Date.now();
@@ -4085,11 +4128,11 @@ var usage_meters_default = _template("D", (input) => {
4085
4128
  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);
4086
4129
  const $scope0_id = _scope_id();
4087
4130
  const agent = input.agent;
4088
- _html(`<div${_attr_class(["_dq", { ["_dr"]: input.hideName }])}><div${_attr_class("_ds")}>`);
4131
+ _html(`<div${_attr_class(["_dc", { ["_dd"]: input.hideName }])}><div${_attr_class("_de")}>`);
4089
4132
  _if(() => {
4090
4133
  if (!input.hideName) {
4091
4134
  const $scope1_id = _scope_id();
4092
- _html(`<strong${_attr_class("_dL")}>${_escape(agent.agent)}${_el_resume($scope1_id, "b", $sg__input_agent)}</strong>`);
4135
+ _html(`<strong${_attr_class("_dx")}>${_escape(agent.agent)}${_el_resume($scope1_id, "b", $sg__input_agent)}</strong>`);
4093
4136
  $si__input_agent__OR__input_hideName && writeScope($scope1_id, { _: $si__input_agent && _scope_with_id($scope0_id) });
4094
4137
  return 0;
4095
4138
  }
@@ -4097,7 +4140,7 @@ var usage_meters_default = _template("D", (input) => {
4097
4140
  _if(() => {
4098
4141
  if (agent.plan && agent.plan.toLowerCase() !== agent.agent.toLowerCase()) {
4099
4142
  const $scope2_id = _scope_id();
4100
- _html(`<span${_attr_class("_dt")}>${_escape(agent.plan.replace(/^default_/, "").replaceAll("_", " "))}${_el_resume($scope2_id, "b", $sg__input_agent)}</span>`);
4143
+ _html(`<span${_attr_class("_df")}>${_escape(agent.plan.replace(/^default_/, "").replaceAll("_", " "))}${_el_resume($scope2_id, "b", $sg__input_agent)}</span>`);
4101
4144
  $si__input_agent && writeScope($scope2_id, { _: _scope_with_id($scope0_id) });
4102
4145
  return 0;
4103
4146
  }
@@ -4105,21 +4148,21 @@ var usage_meters_default = _template("D", (input) => {
4105
4148
  _if(() => {
4106
4149
  if (agent.stale_seconds != null) {
4107
4150
  const $scope3_id = _scope_id();
4108
- _html(`<span${_attr_class("_du")}${_attr("title", `${agent.note || "provider unreachable"}. Last cached numbers, ${duration(agent.stale_seconds * 1e3)} old`)}>`);
4151
+ _html(`<span${_attr_class("_dg")}${_attr("title", `${agent.note || "provider unreachable"}. Last cached numbers, ${duration(agent.stale_seconds * 1e3)} old`)}>`);
4109
4152
  icon_warning_default({ size: 12 });
4110
4153
  _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)}`);
4111
4154
  $si__input_agent && writeScope($scope3_id, { _: _scope_with_id($scope0_id) });
4112
4155
  return 0;
4113
4156
  }
4114
4157
  }, $scope0_id, "e", $sg__input_agent, $sg__input_agent, $sg__input_agent__OR__input_hideName, 0, 1);
4115
- _html(`</div><div${_attr_class(["_dv", { ["_dM"]: agent.stale_seconds != null }])}>`);
4158
+ _html(`</div><div${_attr_class(["_dh", { ["_dy"]: agent.stale_seconds != null }])}>`);
4116
4159
  _for_of(agent.windows || [], (win) => {
4117
4160
  const $scope4_id = _scope_id();
4118
- const pct = pctText$1(win.used_percent);
4161
+ const pct = pctText(win.used_percent);
4119
4162
  const label = resetLabel(win.resets_at, agent.stale_seconds != null);
4120
- const fillClass = win.used_percent >= 90 ? "_dE" : win.used_percent >= 70 ? "_dD" : win.used_percent >= 40 ? "_dC" : "_dB";
4121
- const pctClass = win.used_percent >= 90 ? "_dJ" : win.used_percent >= 70 ? "_dI" : win.used_percent >= 40 ? "_dH" : "_dG";
4122
- _html(`<div${_attr_class("_dx")}${_attr("title", `${win.window}: ${pct} used${win.resets_at ? `, resets ${new Date(win.resets_at).toLocaleString()}` : ""}`)}><span${_attr_class("_dy")}>${_escape(win.window)}${_el_resume($scope4_id, "c", $sg__input_agent)}</span><span${_attr_class("_dz")}><span${_attr_class(["_dA", 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(["_dF", pctClass])}>${_escape(pct)}${_el_resume($scope4_id, "g", $sg__input_agent)}</span>${_el_resume($scope4_id, "f", $sg__input_agent)}<span${_attr_class("_dK")}>`);
4163
+ const fillClass = win.used_percent >= 90 ? "_dq" : win.used_percent >= 70 ? "_dp" : win.used_percent >= 40 ? "_do" : "_dn";
4164
+ const pctClass = win.used_percent >= 90 ? "_dv" : win.used_percent >= 70 ? "_du" : win.used_percent >= 40 ? "_dt" : "_ds";
4165
+ _html(`<div${_attr_class("_dj")}${_attr("title", `${win.window}: ${pct} used${win.resets_at ? `, resets ${new Date(win.resets_at).toLocaleString()}` : ""}`)}><span${_attr_class("_dk")}>${_escape(win.window)}${_el_resume($scope4_id, "c", $sg__input_agent)}</span><span${_attr_class("_dl")}><span${_attr_class(["_dm", 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(["_dr", pctClass])}>${_escape(pct)}${_el_resume($scope4_id, "g", $sg__input_agent)}</span>${_el_resume($scope4_id, "f", $sg__input_agent)}<span${_attr_class("_dw")}>`);
4123
4166
  _if(() => {
4124
4167
  if (label) {
4125
4168
  const $scope6_id = _scope_id();
@@ -4198,14 +4241,14 @@ var sso_auth_default = _template("z", (input) => {
4198
4241
  localCode = null;
4199
4242
  }
4200
4243
  }, "z0", $scope0_id);
4201
- _html(`<div${_attr_class("_de")}>`);
4244
+ _html(`<div${_attr_class("_dz")}>`);
4202
4245
  _if(() => {
4203
4246
  if (input.items.length) {
4204
4247
  const $scope1_id = _scope_id();
4205
- _html(`<p${_attr_class("_dp")}>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("_df")}>`);
4248
+ _html(`<p${_attr_class("_dK")}>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("_dA")}>`);
4206
4249
  _for_of(input.items, (s) => {
4207
4250
  const $scope2_id = _scope_id();
4208
- _html(`<li${_attr_class("_dg")}>${_escape(s.org)}${_el_resume($scope2_id, "b", $sg__input_items)}<button type=button${_attr_class("_dh")}${_attr("title", `Skip ${s.org}`)}${_attr("aria-label", `Skip ${s.org}`)}${_attr("disabled", busy)}>`);
4251
+ _html(`<li${_attr_class("_dB")}>${_escape(s.org)}${_el_resume($scope2_id, "b", $sg__input_items)}<button type=button${_attr_class("_dC")}${_attr("title", `Skip ${s.org}`)}${_attr("aria-label", `Skip ${s.org}`)}${_attr("disabled", busy)}>`);
4209
4252
  icon_xmark_default({ size: 11 });
4210
4253
  _html(`</button>${_el_resume($scope2_id, "c")}</li>`);
4211
4254
  _script($scope2_id, "z1");
@@ -4214,17 +4257,17 @@ var sso_auth_default = _template("z", (input) => {
4214
4257
  _: _scope_with_id($scope1_id)
4215
4258
  }));
4216
4259
  }, "org", $scope1_id, "c", $sg__input_items, $sg__input_items, $sg__input_items, "</ul>", 1);
4217
- _html(`<div${_attr_class("_di")}>`);
4260
+ _html(`<div${_attr_class("_dD")}>`);
4218
4261
  _if(() => {
4219
4262
  if (busy && authCode$2) {
4220
4263
  const $scope5_id = _scope_id();
4221
- _html(`<span${_attr_class("_dj")}><span${_attr_class("_F")}></span> Enter code <strong${_attr_class("_dk")}>${_escape(authCode$2)}${_el_resume($scope5_id, "d")}</strong> at <a${_attr("href", `https://${host}/login/device`)}${_attr_class("_dl")}>${_escape(host)}${_el_resume($scope5_id, "f", _serialize_guard($scope0_reason, 3))}/login/device</a>${_el_resume($scope5_id, "e")}</span>`);
4264
+ _html(`<span${_attr_class("_dE")}><span${_attr_class("_E")}></span> Enter code <strong${_attr_class("_dF")}>${_escape(authCode$2)}${_el_resume($scope5_id, "d")}</strong> at <a${_attr("href", `https://${host}/login/device`)}${_attr_class("_dG")}>${_escape(host)}${_el_resume($scope5_id, "f", _serialize_guard($scope0_reason, 3))}/login/device</a>${_el_resume($scope5_id, "e")}</span>`);
4222
4265
  _script($scope5_id, "z2");
4223
4266
  _subscribe($authCode__closures, _subscribe($si__input_items_0_host && $host__closures, writeScope($scope5_id, {})));
4224
4267
  return 0;
4225
4268
  } else if (busy) {
4226
4269
  const $scope8_id = _scope_id();
4227
- _html(`<span${_attr_class("_dj")}><span${_attr_class("_F")}></span>Starting GitHub re-authorization…</span>`);
4270
+ _html(`<span${_attr_class("_dE")}><span${_attr_class("_E")}></span>Starting GitHub re-authorization…</span>`);
4228
4271
  writeScope($scope8_id, {});
4229
4272
  return 1;
4230
4273
  } else {
@@ -4238,7 +4281,7 @@ var sso_auth_default = _template("z", (input) => {
4238
4281
  _if(() => {
4239
4282
  if (localError) {
4240
4283
  const $scope6_id = _scope_id();
4241
- _html(`<p${_attr_class("_dp")}>${_escape(localError)}${_el_resume($scope6_id, "b")}</p>`);
4284
+ _html(`<p${_attr_class("_dK")}>${_escape(localError)}${_el_resume($scope6_id, "b")}</p>`);
4242
4285
  _subscribe($localError__closures, writeScope($scope6_id, {}));
4243
4286
  return 0;
4244
4287
  }
@@ -4250,10 +4293,10 @@ var sso_auth_default = _template("z", (input) => {
4250
4293
  _if(() => {
4251
4294
  if (skipped$1.length) {
4252
4295
  const $scope3_id = _scope_id();
4253
- _html(`<p${_attr_class("_dm")}>Skipped SSO for `);
4296
+ _html(`<p${_attr_class("_dH")}>Skipped SSO for `);
4254
4297
  _for_of(skipped$1, (s) => {
4255
4298
  const $scope4_id = _scope_id();
4256
- _html(`<span${_attr_class("_dn")}>${_escape(s.org)}${_el_resume($scope4_id, "b", $sg__input_skipped)}<button type=button${_attr_class("_do")}${_attr("title", `Show ${s.org} again`)}>(undo)</button>${_el_resume($scope4_id, "c")}</span>`);
4299
+ _html(`<span${_attr_class("_dI")}>${_escape(s.org)}${_el_resume($scope4_id, "b", $sg__input_skipped)}<button type=button${_attr_class("_dJ")}${_attr("title", `Show ${s.org} again`)}>(undo)</button>${_el_resume($scope4_id, "c")}</span>`);
4257
4300
  _script($scope4_id, "z4");
4258
4301
  writeScope($scope4_id, {
4259
4302
  f: s?.org,
@@ -4290,7 +4333,7 @@ var sso_auth_default = _template("z", (input) => {
4290
4333
  });
4291
4334
  //#endregion
4292
4335
  //#region src/tags/icons/icon-plus.marko
4293
- var icon_plus_default = _template("db", (input) => {
4336
+ var icon_plus_default = _template("cb", (input) => {
4294
4337
  const $scope0_reason = _scope_reason(), $sg__input_size__OR__input_class = _serialize_guard($scope0_reason, 0);
4295
4338
  const $scope0_id = _scope_id();
4296
4339
  _set_serialize_reason({
@@ -4328,7 +4371,7 @@ var modal_view_default = _template("p", (input) => {
4328
4371
  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;
4329
4372
  const dismissable = input.dismissable !== false;
4330
4373
  let open = input.open;
4331
- _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({
4374
+ _html(`<dialog${_attr_class(["_fw", inputClass])}${_attr("aria-labelledby", inputLabelledBy)}${inputLabelledBy ? _attr("aria-label", inputAriaLabel) : _attr("aria-label", inputAriaLabel || label)} closedby=${dismissable ? "any" : "none"}${_attrs_partial({
4332
4375
  ...htmlInput,
4333
4376
  open: null
4334
4377
  }, {
@@ -4338,20 +4381,20 @@ var modal_view_default = _template("p", (input) => {
4338
4381
  closedby: 1,
4339
4382
  "on-cancel": 1,
4340
4383
  "on-close": 1
4341
- }, "a", $scope0_id, "dialog")}><div${_attr_class("_fv")}>`);
4384
+ }, "a", $scope0_id, "dialog")}><div${_attr_class("_fx")}>`);
4342
4385
  _dynamic_tag($scope0_id, "c", content, {}, 0, 0, _serialize_guard($scope0_reason, 6));
4343
4386
  _html("</div>");
4344
4387
  _if(() => {
4345
4388
  if (footer) {
4346
4389
  const $scope1_id = _scope_id();
4347
- _html(`<form method=dialog${_attr_class("_fw")}>`);
4390
+ _html(`<form method=dialog${_attr_class("_fy")}>`);
4348
4391
  _dynamic_tag($scope1_id, "b", footer.content, {}, 0, 0, _serialize_guard($scope0_reason, 7));
4349
4392
  _html("</form>");
4350
4393
  $si__input_openChange__OR__input_footer && writeScope($scope1_id, { _: _serialize_if($scope0_reason, 7) && _scope_with_id($scope0_id) });
4351
4394
  return 0;
4352
4395
  } else if (input.openChange) {
4353
4396
  const $scope2_id = _scope_id();
4354
- _html(`<form method=dialog${_attr_class("_fw")}>`);
4397
+ _html(`<form method=dialog${_attr_class("_fy")}>`);
4355
4398
  dialog_close_default({
4356
4399
  class: ["_o", "_p"],
4357
4400
  content: _content("p0", () => {
@@ -4410,14 +4453,14 @@ var prompt_dialog_default = _template("s", (input) => {
4410
4453
  const $childScope = _peek_scope_id();
4411
4454
  modal_view_default({
4412
4455
  label: input.label,
4413
- class: "_dc",
4456
+ class: "_da",
4414
4457
  open: input.open,
4415
4458
  openChange: input.openChange,
4416
4459
  "aria-labelledby": titleId,
4417
4460
  footer: attrTag({ content: _content_resume("s5", () => {
4418
4461
  _scope_reason();
4419
4462
  const $scope1_id = _scope_id();
4420
- _html(`<button type=button${_attr_class(["_o", "_p"])}${_attr("disabled", !value.trim())}>${_escape(input.submitLabel || "OK")}${_el_resume($scope1_id, "b", _serialize_guard($scope0_reason, 4))}</button>${_el_resume($scope1_id, "a")}<div${_attr_class("_y")}></div>`);
4463
+ _html(`<button type=button${_attr_class(["_o", "_p"])}${_attr("disabled", !value.trim())}>${_escape(input.submitLabel || "OK")}${_el_resume($scope1_id, "b", _serialize_guard($scope0_reason, 4))}</button>${_el_resume($scope1_id, "a")}<div${_attr_class("_x")}></div>`);
4421
4464
  dialog_close_default({
4422
4465
  class: "_o",
4423
4466
  content: _content("s2", () => {
@@ -4433,7 +4476,7 @@ var prompt_dialog_default = _template("s", (input) => {
4433
4476
  content: _content("s6", () => {
4434
4477
  _scope_reason();
4435
4478
  const $scope2_id = _scope_id();
4436
- _html(`<h2${_attr_class("_dd")}${_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) => {
4479
+ _html(`<h2${_attr_class("_db")}${_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) => {
4437
4480
  value = _new_value;
4438
4481
  }, "s0", $scope2_id))}${_attr("placeholder", input.placeholder)}>${_el_resume($scope2_id, "c")}`);
4439
4482
  _script($scope2_id, "s4");
@@ -4815,7 +4858,7 @@ var settings_page_default = _template("v", (input) => {
4815
4858
  const githubId = _id();
4816
4859
  const machineId = _id();
4817
4860
  const skillsId = _id();
4818
- _html(`<div${_attr_class("_bn")} role=region${_attr("aria-labelledby", titleId)}><div${_attr_class("_bo")}><div${_attr_class(content$2)}>`);
4861
+ _html(`<div${_attr_class("_bC")} role=region${_attr("aria-labelledby", titleId)}><div${_attr_class("_bD")}><div${_attr_class(content$2)}>`);
4819
4862
  _set_serialize_reason({
4820
4863
  0: _serialize_guard($scope0_reason, 4),
4821
4864
  1: $sg__input_backHref__OR__input_onExit,
@@ -4839,12 +4882,12 @@ var settings_page_default = _template("v", (input) => {
4839
4882
  return 0;
4840
4883
  } else if (setup.ready) {
4841
4884
  const $scope67_id = _scope_id();
4842
- _html(`<span${_attr_class("_cf")}>Ready</span>. Tools, GitHub, and an agent are all in place.`);
4885
+ _html(`<span${_attr_class("_cd")}>Ready</span>. Tools, GitHub, and an agent are all in place.`);
4843
4886
  writeScope($scope67_id, {});
4844
4887
  return 1;
4845
4888
  } else {
4846
4889
  const $scope6_id = _scope_id();
4847
- _html(`<span${_attr_class("_cg")}>Not ready</span>. Missing <!>${_escape(setup.missing.map((m) => MISSING_LABEL[m] || m).join(", "))}${_el_resume($scope6_id, "b")}.`);
4890
+ _html(`<span${_attr_class("_ce")}>Not ready</span>. Missing <!>${_escape(setup.missing.map((m) => MISSING_LABEL[m] || m).join(", "))}${_el_resume($scope6_id, "b")}.`);
4848
4891
  _subscribe($setup_missing__closures, writeScope($scope6_id, {}));
4849
4892
  return 2;
4850
4893
  }
@@ -4860,7 +4903,7 @@ var settings_page_default = _template("v", (input) => {
4860
4903
  const $childScope = _peek_scope_id();
4861
4904
  icon_refresh_default({
4862
4905
  size: 14,
4863
- class: refreshing && "_E"
4906
+ class: refreshing && "_D"
4864
4907
  });
4865
4908
  _html(`</button>${_el_resume($scope10_id, "a")}`);
4866
4909
  _script($scope10_id, "v36");
@@ -4894,16 +4937,16 @@ var settings_page_default = _template("v", (input) => {
4894
4937
  _if(() => {
4895
4938
  if (selfUpdatePending || selfUpdating) {
4896
4939
  const $scope45_id = _scope_id();
4897
- _html(`<div${_attr_class("_cK")} role=status><div${_attr_class("_cL")}>`);
4940
+ _html(`<div${_attr_class("_cI")} role=status><div${_attr_class("_cJ")}>`);
4898
4941
  _if(() => {
4899
4942
  if (selfUpdating) {
4900
4943
  const $scope68_id = _scope_id();
4901
- _html(`<span${_attr_class("_cM")}><span${_attr_class("_F")}></span> Updating work…</span><span${_attr_class("_cN")}>The app restarts and reloads when it is done.</span>`);
4944
+ _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>`);
4902
4945
  writeScope($scope68_id, {});
4903
4946
  return 0;
4904
4947
  } else {
4905
4948
  const $scope46_id = _scope_id();
4906
- _html(`<span${_attr_class("_cM")}>Update available</span><span${_attr_class("_cN")}>v<!>${_escape(self.version)}${_el_resume($scope46_id, "c")} → v<!>${_escape(self.latest)}${_el_resume($scope46_id, "d")}</span>`);
4949
+ _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>`);
4907
4950
  _subscribe($self_version__closures, _subscribe($self_latest__closures, writeScope($scope46_id, {})));
4908
4951
  return 1;
4909
4952
  }
@@ -4922,11 +4965,11 @@ var settings_page_default = _template("v", (input) => {
4922
4965
  return 0;
4923
4966
  }
4924
4967
  }, $scope0_id, "f", 1, 1, 1, 0, 1);
4925
- _html(`<section${_attr_class("_bx")}${_attr("aria-labelledby", agentsId)}><div${_attr_class("_by")}><h2${_attr("id", agentsId)}${_attr_class("_bM")}>Agents</h2><div${_attr_class("_y")}></div><label${_attr_class("_cj")}><span${_attr_class("_S")}>Default</span><span${_attr_class("_m")}>`);
4968
+ _html(`<section${_attr_class("_bn")}${_attr("aria-labelledby", agentsId)}><div${_attr_class("_bo")}><h2${_attr("id", agentsId)}${_attr_class("_bB")}>Agents</h2><div${_attr_class("_x")}></div><label${_attr_class("_ch")}><span${_attr_class("_R")}>Default</span><span${_attr_class("_m")}>`);
4926
4969
  _attr_select_value($scope0_id, "n", input.preferred, _resume(function(v) {
4927
4970
  setPreferred(v);
4928
4971
  }, "v2", $scope0_id), () => {
4929
- _html(`<select${_attr_class(["_n", "_ck"])} aria-label="Default agent (starts when a workspace has no session yet)" title="Starts when a workspace has no session yet">`);
4972
+ _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">`);
4930
4973
  _for_of(input.agents.filter((a) => a !== "shell"), (id) => {
4931
4974
  const $scope69_id = _scope_id();
4932
4975
  _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)}`);
@@ -4938,7 +4981,7 @@ var settings_page_default = _template("v", (input) => {
4938
4981
  const $childScope3 = _peek_scope_id();
4939
4982
  icon_refresh_default({
4940
4983
  size: 14,
4941
- class: usageRefreshing && "_E"
4984
+ class: usageRefreshing && "_D"
4942
4985
  });
4943
4986
  _html(`</button>${_el_resume($scope0_id, "o")}</div><ul${_attr_class(agentGrid)}>`);
4944
4987
  _for_of(families, (a) => {
@@ -4947,18 +4990,18 @@ var settings_page_default = _template("v", (input) => {
4947
4990
  const rows = lone ? [] : a.instances;
4948
4991
  const loneAccounts = lone && lone.enabled ? accountsFor(lone.id) : [];
4949
4992
  const extraAccounts = a.installed ? strayAccountsFor(a) : [];
4950
- _html(`<li${_attr_class(["_bC", "_ci"])}><div${_attr_class(["_cl", { ["_co"]: lone && !lone.enabled }])}>`);
4993
+ _html(`<li${_attr_class(["_bs", "_cg"])}><div${_attr_class(["_cj", { ["_cm"]: lone && !lone.enabled }])}>`);
4951
4994
  _set_serialize_reason(12);
4952
4995
  const $childScope4 = _peek_scope_id();
4953
4996
  icon_agent_default({
4954
4997
  agent: a.id,
4955
4998
  size: 18
4956
4999
  });
4957
- _html(`<div${_attr_class("_bD")}><span${_attr_class("_bF")}><span${_attr_class("_bE")}>${_escape(a.label)}${_el_resume($scope1_id, "g")}</span>`);
5000
+ _html(`<div${_attr_class("_bt")}><span${_attr_class("_bv")}><span${_attr_class("_bu")}>${_escape(a.label)}${_el_resume($scope1_id, "g")}</span>`);
4958
5001
  _if(() => {
4959
5002
  if (lone && input.preferred === lone.id) {
4960
5003
  const $scope70_id = _scope_id();
4961
- _html(`<span${_attr_class(["_I", tone.accent])}>default</span>`);
5004
+ _html(`<span${_attr_class(["_H", tone.accent])}>default</span>`);
4962
5005
  writeScope($scope70_id, {});
4963
5006
  return 0;
4964
5007
  }
@@ -4967,12 +5010,12 @@ var settings_page_default = _template("v", (input) => {
4967
5010
  _if(() => {
4968
5011
  if (active.has(a.id)) {
4969
5012
  const $scope11_id = _scope_id();
4970
- _html(`<span${_attr_class("_ce")}><span${_attr_class("_F")}></span><!>${_escape(active.get(a.id) || "Starting…")}${_el_resume($scope11_id, "c")}</span>`);
5013
+ _html(`<span${_attr_class("_cc")}><span${_attr_class("_E")}></span><!>${_escape(active.get(a.id) || "Starting…")}${_el_resume($scope11_id, "c")}</span>`);
4971
5014
  _subscribe($active__closures, writeScope($scope11_id, {}));
4972
5015
  return 0;
4973
5016
  } else if (!a.installed) {
4974
5017
  const $scope71_id = _scope_id();
4975
- _html(`<span${_attr_class("_bG")}>Not installed</span>`);
5018
+ _html(`<span${_attr_class("_bw")}>Not installed</span>`);
4976
5019
  writeScope($scope71_id, {});
4977
5020
  return 1;
4978
5021
  }
@@ -4991,8 +5034,8 @@ var settings_page_default = _template("v", (input) => {
4991
5034
  if (lone) {
4992
5035
  const $scope63_id = _scope_id();
4993
5036
  _html(`<button${_attr_class([
4994
- "_I",
4995
- "_K",
5037
+ "_H",
5038
+ "_J",
4996
5039
  { [tone.ok]: lone.enabled }
4997
5040
  ])} 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")}`);
4998
5041
  _script($scope63_id, "v42");
@@ -5004,29 +5047,29 @@ var settings_page_default = _template("v", (input) => {
5004
5047
  _if(() => {
5005
5048
  if (rows.length || loneAccounts.length || extraAccounts.length) {
5006
5049
  const $scope2_id = _scope_id();
5007
- _html(`<ul${_attr_class("_cq")}>`);
5050
+ _html(`<ul${_attr_class("_co")}>`);
5008
5051
  _for_of(rows, (inst) => {
5009
5052
  const $scope3_id = _scope_id();
5010
5053
  const accounts = inst.enabled ? accountsFor(inst.id) : [];
5011
- _html(`<li${_attr_class("_cm")}><div${_attr_class(["_cn", { ["_co"]: !inst.enabled }])}>`);
5054
+ _html(`<li${_attr_class("_ck")}><div${_attr_class(["_cl", { ["_cm"]: !inst.enabled }])}>`);
5012
5055
  _set_serialize_reason(12);
5013
5056
  const $childScope5 = _peek_scope_id();
5014
5057
  icon_agent_default({
5015
5058
  agent: inst.id,
5016
5059
  size: 15
5017
5060
  });
5018
- _html(`<span${_attr_class(["_cp", "_x"])}>${_escape(inst.command)}${_el_resume($scope3_id, "e")}</span>`);
5061
+ _html(`<span${_attr_class(["_cn", "_w"])}>${_escape(inst.command)}${_el_resume($scope3_id, "e")}</span>`);
5019
5062
  _if(() => {
5020
5063
  if (input.preferred === inst.id) {
5021
5064
  const $scope72_id = _scope_id();
5022
- _html(`<span${_attr_class(["_I", tone.accent])}>default</span>`);
5065
+ _html(`<span${_attr_class(["_H", tone.accent])}>default</span>`);
5023
5066
  writeScope($scope72_id, {});
5024
5067
  return 0;
5025
5068
  }
5026
5069
  }, $scope3_id, "f", 1, 1, 1, 0, 1);
5027
- _html(`<span${_attr_class("_y")}></span><button${_attr_class([
5028
- "_I",
5029
- "_K",
5070
+ _html(`<span${_attr_class("_x")}></span><button${_attr_class([
5071
+ "_H",
5072
+ "_J",
5030
5073
  { [tone.ok]: inst.enabled }
5031
5074
  ])} role=switch aria-checked=${inst.enabled ? "true" : "false"} title=${inst.enabled ? "\"Shown in session pickers. Hide it\"" : "\"Hidden from session pickers. Show it\""}>${inst.enabled ? "on" : "off"}${_el_resume($scope3_id, "i")}</button>${_el_resume($scope3_id, "h")}</div>${_el_resume($scope3_id, "b")}`);
5032
5075
  _for_of(accounts, (u) => {
@@ -5090,7 +5133,7 @@ var settings_page_default = _template("v", (input) => {
5090
5133
  }, "id", $scope0_id, "r", 1, 1, 1, 0, 1);
5091
5134
  _for_of(otherUsage, (u) => {
5092
5135
  const $scope76_id = _scope_id();
5093
- _html(`<li${_attr_class(["_bC", "_ci"])}>`);
5136
+ _html(`<li${_attr_class(["_bs", "_cg"])}>`);
5094
5137
  _set_serialize_reason(6);
5095
5138
  const $childScope9 = _peek_scope_id();
5096
5139
  usage_meters_default({ agent: u });
@@ -5101,17 +5144,17 @@ var settings_page_default = _template("v", (input) => {
5101
5144
  _if(() => {
5102
5145
  if (!usage && families.length) {
5103
5146
  const $scope77_id = _scope_id();
5104
- _html(`<p${_attr_class("_bI")}><span${_attr_class("_F")}></span> Loading usage…</p>`);
5147
+ _html(`<p${_attr_class("_by")}><span${_attr_class("_E")}></span> Loading usage…</p>`);
5105
5148
  writeScope($scope77_id, {});
5106
5149
  return 0;
5107
5150
  } else if (usage?.error) {
5108
5151
  const $scope7_id = _scope_id();
5109
- _html(`<p${_attr_class("_bI")}>${_escape(usage.error)}${_el_resume($scope7_id, "b")}</p>`);
5152
+ _html(`<p${_attr_class("_by")}>${_escape(usage.error)}${_el_resume($scope7_id, "b")}</p>`);
5110
5153
  writeScope($scope7_id, {});
5111
5154
  return 1;
5112
5155
  }
5113
5156
  }, $scope0_id, "t", 1, 1, 1, 0, 1);
5114
- _html(`</section><section${_attr_class("_bx")}${_attr("aria-labelledby", githubId)}><div${_attr_class("_by")}><h2${_attr("id", githubId)}${_attr_class("_bM")}>GitHub</h2></div><ul${_attr_class("_bA")}>`);
5157
+ _html(`</section><section${_attr_class("_bn")}${_attr("aria-labelledby", githubId)}><div${_attr_class("_bo")}><h2${_attr("id", githubId)}${_attr_class("_bB")}>GitHub</h2></div><ul${_attr_class("_bq")}>`);
5115
5158
  _for_of(setup?.github || [], (h) => {
5116
5159
  const $scope12_id = _scope_id();
5117
5160
  const $for_content4__h_host__closures = /* @__PURE__ */ new Set();
@@ -5125,11 +5168,11 @@ var settings_page_default = _template("v", (input) => {
5125
5168
  const skippedSso = (() => {
5126
5169
  return (h.sso || []).filter((s) => ignoredSso.has(s.org));
5127
5170
  })();
5128
- _html(`<li${_attr_class(["_bC", "_cA"])}><div${_attr_class("_cB")}><div${_attr_class("_bD")}><span${_attr_class("_bF")}><span${_attr_class(["_bE", "_x"])}>${_escape(h.host)}${_el_resume($scope12_id, "f")}</span>`);
5171
+ _html(`<li${_attr_class(["_bs", "_cy"])}><div${_attr_class("_cz")}><div${_attr_class("_bt")}><span${_attr_class("_bv")}><span${_attr_class(["_bu", "_w"])}>${_escape(h.host)}${_el_resume($scope12_id, "f")}</span>`);
5129
5172
  _if(() => {
5130
5173
  if (h.isEnterprise) {
5131
5174
  const $scope80_id = _scope_id();
5132
- _html(`<span${_attr_class("_I")}>Enterprise</span>`);
5175
+ _html(`<span${_attr_class("_H")}>Enterprise</span>`);
5133
5176
  writeScope($scope80_id, {});
5134
5177
  return 0;
5135
5178
  }
@@ -5138,22 +5181,22 @@ var settings_page_default = _template("v", (input) => {
5138
5181
  _if(() => {
5139
5182
  if (active.has(h.host) && authCodes.has(h.host)) {
5140
5183
  const $scope32_id = _scope_id();
5141
- _html(`<span${_attr_class("_ce")}><span${_attr_class("_F")}></span> Enter code <strong${_attr_class("_cy")}>${_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("_cz")}>${_escape(h.host)}${_el_resume($scope32_id, "f")}/login/device</a>${_el_resume($scope32_id, "e")}</span>`);
5184
+ _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>`);
5142
5185
  _subscribe($authCodes__closures, writeScope($scope32_id, { Ces: 1 }));
5143
5186
  return 0;
5144
5187
  } else if (active.has(h.host)) {
5145
5188
  const $scope13_id = _scope_id();
5146
- _html(`<span${_attr_class("_ce")}><span${_attr_class("_F")}></span><!>${_escape(active.get(h.host) || "Starting…")}${_el_resume($scope13_id, "c")}</span>`);
5189
+ _html(`<span${_attr_class("_cc")}><span${_attr_class("_E")}></span><!>${_escape(active.get(h.host) || "Starting…")}${_el_resume($scope13_id, "c")}</span>`);
5147
5190
  _subscribe($active__closures, writeScope($scope13_id, { Ceq: 1 }));
5148
5191
  return 1;
5149
5192
  } else if (h.authed) {
5150
5193
  const $scope78_id = _scope_id();
5151
- _html(`<span${_attr_class("_bG")}>Signed in<!>${h.user ? ` as ${_escape(`${_to_text(h.user)}`)}` : ""}${_el_resume($scope78_id, "b")}</span>`);
5194
+ _html(`<span${_attr_class("_bw")}>Signed in<!>${h.user ? ` as ${_escape(`${_to_text(h.user)}`)}` : ""}${_el_resume($scope78_id, "b")}</span>`);
5152
5195
  writeScope($scope78_id, {});
5153
5196
  return 2;
5154
5197
  } else {
5155
5198
  const $scope79_id = _scope_id();
5156
- _html(`<span${_attr_class("_bG")}>${_escape(h.error || "Not signed in")}${_el_resume($scope79_id, "b")}</span>`);
5199
+ _html(`<span${_attr_class("_bw")}>${_escape(h.error || "Not signed in")}${_el_resume($scope79_id, "b")}</span>`);
5157
5200
  writeScope($scope79_id, {});
5158
5201
  return 3;
5159
5202
  }
@@ -5184,9 +5227,9 @@ var settings_page_default = _template("v", (input) => {
5184
5227
  if (h.isEnterprise) {
5185
5228
  const $scope35_id = _scope_id();
5186
5229
  _html(`<button${_attr_class([
5187
- "_bH",
5230
+ "_bx",
5231
+ "_1",
5188
5232
  "_2",
5189
- "_3",
5190
5233
  { ["_q"]: confirmingRemove === h.host }
5191
5234
  ])}${confirmingRemove === h.host ? _attr("title", `Forget ${h.host}? (gh stays signed in)`) : _attr("title", `Forget ${h.host}`)}>`);
5192
5235
  _if(() => {
@@ -5260,7 +5303,7 @@ var settings_page_default = _template("v", (input) => {
5260
5303
  _if(() => {
5261
5304
  if (setup && !setup.github.length) {
5262
5305
  const $scope83_id = _scope_id();
5263
- _html(`<p${_attr_class("_bI")}>Install the GitHub CLI below to sign in.</p>`);
5306
+ _html(`<p${_attr_class("_by")}>Install the GitHub CLI below to sign in.</p>`);
5264
5307
  writeScope($scope83_id, {});
5265
5308
  return 0;
5266
5309
  }
@@ -5268,20 +5311,20 @@ var settings_page_default = _template("v", (input) => {
5268
5311
  _if(() => {
5269
5312
  if (setup) {
5270
5313
  const $scope43_id = _scope_id();
5271
- _html(`<form${_attr_class("_cx")}><label${_attr_class("_W")}>`);
5314
+ _html(`<form${_attr_class("_cv")}><label${_attr_class("_V")}>`);
5272
5315
  icon_plus_default({
5273
5316
  size: 14,
5274
- class: "_X"
5317
+ class: "_W"
5275
5318
  });
5276
5319
  _html(`<input${_attr_input_value($scope43_id, "d", hostInput, _resume((_new_hostInput) => {
5277
5320
  hostInput = _new_hostInput;
5278
- }, "v3", $scope43_id))}${_attr_class([inputLg, "_Y"])} 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")}`);
5321
+ }, "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")}`);
5279
5322
  _script($scope43_id, "v47");
5280
5323
  writeScope($scope43_id, {});
5281
5324
  return 0;
5282
5325
  }
5283
5326
  }, $scope0_id, "z", 1, 1, 1, 0, 1);
5284
- _html(`</section><section${_attr_class("_bx")}${_attr("aria-labelledby", machineId)}><div${_attr_class("_by")}><h2${_attr("id", machineId)}${_attr_class("_bM")}>Machine</h2>`);
5327
+ _html(`</section><section${_attr_class("_bn")}${_attr("aria-labelledby", machineId)}><div${_attr_class("_bo")}><h2${_attr("id", machineId)}${_attr_class("_bB")}>Machine</h2>`);
5285
5328
  _if(() => {
5286
5329
  if (missingCount) {
5287
5330
  const $scope64_id = _scope_id();
@@ -5298,7 +5341,7 @@ var settings_page_default = _template("v", (input) => {
5298
5341
  return 0;
5299
5342
  }
5300
5343
  }, $scope0_id, "a4", 1, 1, 1, 0, 1);
5301
- _html(`<div${_attr_class("_y")}></div>`);
5344
+ _html(`<div${_attr_class("_x")}></div>`);
5302
5345
  _if(() => {
5303
5346
  if (outdatedIds.length > 1) {
5304
5347
  const $scope15_id = _scope_id();
@@ -5321,7 +5364,7 @@ var settings_page_default = _template("v", (input) => {
5321
5364
  _if(() => {
5322
5365
  if (setup && !setup.mise.installed) {
5323
5366
  const $scope17_id = _scope_id();
5324
- _html(`<p${_attr_class("_bI")}>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>`);
5367
+ _html(`<p${_attr_class("_by")}>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>`);
5325
5368
  _script($scope17_id, "v50");
5326
5369
  writeScope($scope17_id, {});
5327
5370
  return 0;
@@ -5331,16 +5374,16 @@ var settings_page_default = _template("v", (input) => {
5331
5374
  _if(() => {
5332
5375
  if (self) {
5333
5376
  const $scope48_id = _scope_id();
5334
- _html(`<li${_attr_class(row)}><span${_attr_class(["_ct", "_x"])}>work</span>`);
5377
+ _html(`<li${_attr_class(row)}><span${_attr_class(["_cr", "_w"])}>work</span>`);
5335
5378
  _if(() => {
5336
5379
  if (selfUpdating) {
5337
5380
  const $scope84_id = _scope_id();
5338
- _html(`<span${_attr_class("_ce")}><span${_attr_class("_F")}></span>Updating — the app restarts and reloads when it is done…</span>`);
5381
+ _html(`<span${_attr_class("_cc")}><span${_attr_class("_E")}></span>Updating — the app restarts and reloads when it is done…</span>`);
5339
5382
  writeScope($scope84_id, {});
5340
5383
  return 0;
5341
5384
  } else {
5342
5385
  const $scope49_id = _scope_id();
5343
- _html(`<span${_attr_class(["_x", metaTrunc])} title="Running version">v<!>${_escape(self.version)}${_el_resume($scope49_id, "b")}</span>`);
5386
+ _html(`<span${_attr_class(["_w", metaTrunc])} title="Running version">v<!>${_escape(self.version)}${_el_resume($scope49_id, "b")}</span>`);
5344
5387
  _if(() => {
5345
5388
  if (self.install === "source") {
5346
5389
  const $scope85_id = _scope_id();
@@ -5349,7 +5392,7 @@ var settings_page_default = _template("v", (input) => {
5349
5392
  return 0;
5350
5393
  } else if (self.latest && self.latest !== self.version) {
5351
5394
  const $scope50_id = _scope_id();
5352
- _html(`<button${_attr_class([btnSm, "_cv"])}${_attr("title", `Update work to v${self.latest} and restart`)}>`);
5395
+ _html(`<button${_attr_class([btnSm, "_ct"])}${_attr("title", `Update work to v${self.latest} and restart`)}>`);
5353
5396
  icon_arrow_up_default({ size: 12 });
5354
5397
  _html(` <!>${_escape(self.latest)}${_el_resume($scope50_id, "c")}</button>${_el_resume($scope50_id, "a")}`);
5355
5398
  _script($scope50_id, "v51");
@@ -5369,11 +5412,11 @@ var settings_page_default = _template("v", (input) => {
5369
5412
  return 1;
5370
5413
  }
5371
5414
  }, $scope48_id, "c");
5372
- _html(`<span${_attr_class("_y")}></span>`);
5415
+ _html(`<span${_attr_class("_x")}></span>`);
5373
5416
  _if(() => {
5374
5417
  if (!selfUpdating) {
5375
5418
  const $scope87_id = _scope_id();
5376
- _html(`<span${_attr_class("_I")}>app</span>`);
5419
+ _html(`<span${_attr_class("_H")}>app</span>`);
5377
5420
  writeScope($scope87_id, {});
5378
5421
  return 0;
5379
5422
  }
@@ -5390,11 +5433,11 @@ var settings_page_default = _template("v", (input) => {
5390
5433
  const $for_content5__t_path__closures = /* @__PURE__ */ new Set();
5391
5434
  const $for_content5__t_latest__closures = /* @__PURE__ */ new Set();
5392
5435
  const $for_content5__t_id__closures = /* @__PURE__ */ new Set();
5393
- _html(`<li${_attr_class([row, { ["_cs"]: !t.installed }])}><span${_attr_class(["_ct", "_x"])}>${_escape(t.label)}${_el_resume($scope18_id, "c")}</span>`);
5436
+ _html(`<li${_attr_class([row, { ["_cq"]: !t.installed }])}><span${_attr_class(["_cr", "_w"])}>${_escape(t.label)}${_el_resume($scope18_id, "c")}</span>`);
5394
5437
  _if(() => {
5395
5438
  if (active.has(t.id)) {
5396
5439
  const $scope19_id = _scope_id();
5397
- _html(`<span${_attr_class("_ce")}><span${_attr_class("_F")}></span><!>${_escape(active.get(t.id) || "Starting…")}${_el_resume($scope19_id, "c")}</span>`);
5440
+ _html(`<span${_attr_class("_cc")}><span${_attr_class("_E")}></span><!>${_escape(active.get(t.id) || "Starting…")}${_el_resume($scope19_id, "c")}</span>`);
5398
5441
  _subscribe($active__closures, writeScope($scope19_id, { Ceq: 3 }));
5399
5442
  return 0;
5400
5443
  } else if (t.installed) {
@@ -5402,13 +5445,13 @@ var settings_page_default = _template("v", (input) => {
5402
5445
  _if(() => {
5403
5446
  if (t.version) {
5404
5447
  const $scope40_id = _scope_id();
5405
- _html(`<button${_attr_class(["_cu", "_x"])}${_attr("title", `${t.path || t.label}. Pin a version`)}>v<!>${_escape(t.version)}${_el_resume($scope40_id, "b")}</button>${_el_resume($scope40_id, "a")}`);
5448
+ _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")}`);
5406
5449
  _script($scope40_id, "v52");
5407
5450
  _subscribe($for_content5__t_path__closures, _subscribe($for_content5__t_version__closures, _subscribe($for_content5__t_label__closures, writeScope($scope40_id, { Cu: 1 }))));
5408
5451
  return 0;
5409
5452
  } else {
5410
5453
  const $scope88_id = _scope_id();
5411
- _html(`<span${_attr_class([metaTrunc, "_x"])}${_attr("title", t.path)}>${_escape(t.path)}${_el_resume($scope88_id, "b")}</span>${_el_resume($scope88_id, "a")}`);
5454
+ _html(`<span${_attr_class([metaTrunc, "_w"])}${_attr("title", t.path)}>${_escape(t.path)}${_el_resume($scope88_id, "b")}</span>${_el_resume($scope88_id, "a")}`);
5412
5455
  _subscribe($for_content5__t_path__closures, writeScope($scope88_id, { Cx: 1 }));
5413
5456
  return 1;
5414
5457
  }
@@ -5416,7 +5459,7 @@ var settings_page_default = _template("v", (input) => {
5416
5459
  _if(() => {
5417
5460
  if (outdated(t)) {
5418
5461
  const $scope58_id = _scope_id();
5419
- _html(`<button${_attr_class([btnSm, "_cv"])}${_attr("title", `Update to v${t.latest}`)}>`);
5462
+ _html(`<button${_attr_class([btnSm, "_ct"])}${_attr("title", `Update to v${t.latest}`)}>`);
5420
5463
  icon_arrow_up_default({ size: 12 });
5421
5464
  _html(` <!>${_escape(t.latest)}${_el_resume($scope58_id, "c")}</button>${_el_resume($scope58_id, "a")}`);
5422
5465
  _script($scope58_id, "v53");
@@ -5438,14 +5481,14 @@ var settings_page_default = _template("v", (input) => {
5438
5481
  return 3;
5439
5482
  }
5440
5483
  }, $scope18_id, "d");
5441
- _html(`<span${_attr_class("_y")}></span>`);
5484
+ _html(`<span${_attr_class("_x")}></span>`);
5442
5485
  _if(() => {
5443
5486
  if (!active.has(t.id)) {
5444
5487
  const $scope36_id = _scope_id();
5445
5488
  _if(() => {
5446
5489
  if (t.required) {
5447
5490
  const $scope91_id = _scope_id();
5448
- _html(`<span${_attr_class("_I")}>required</span>`);
5491
+ _html(`<span${_attr_class("_H")}>required</span>`);
5449
5492
  writeScope($scope91_id, {});
5450
5493
  return 0;
5451
5494
  }
@@ -5461,8 +5504,8 @@ var settings_page_default = _template("v", (input) => {
5461
5504
  const $scope37_id = _scope_id();
5462
5505
  _html(`<button${_attr_class([
5463
5506
  iconBtnXs,
5507
+ "_1",
5464
5508
  "_2",
5465
- "_3",
5466
5509
  { ["_q"]: confirmingRemove === t.id }
5467
5510
  ])}${confirmingRemove === t.id ? _attr("title", `Remove ${t.label}?`) : _attr("title", `Remove ${t.label}`)}>`);
5468
5511
  _if(() => {
@@ -5509,28 +5552,28 @@ var settings_page_default = _template("v", (input) => {
5509
5552
  _if(() => {
5510
5553
  if (setup && setup.mise.installed) {
5511
5554
  const $scope20_id = _scope_id();
5512
- _html(`<div><label${_attr_class("_W")}>`);
5555
+ _html(`<div><label${_attr_class("_V")}>`);
5513
5556
  icon_search_default({
5514
5557
  size: 14,
5515
- class: "_X"
5558
+ class: "_W"
5516
5559
  });
5517
- _html(`<input${_attr_input_value($scope20_id, "c", query, search)}${_attr_class([inputLg, "_Y"])} type=text placeholder="Add a tool from the mise registry…" aria-label="Search the mise registry" autocomplete=off>${_el_resume($scope20_id, "c")}</label>`);
5560
+ _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>`);
5518
5561
  _if(() => {
5519
5562
  if (hits && hits.length) {
5520
5563
  const $scope21_id = _scope_id();
5521
- _html(`<ul${_attr_class([toolGrid, "_cw"])}>`);
5564
+ _html(`<ul${_attr_class([toolGrid, "_cu"])}>`);
5522
5565
  _for_of(hits, (h) => {
5523
5566
  const $scope22_id = _scope_id();
5524
- _html(`<li${_attr_class(row)}><div${_attr_class("_bD")}><span${_attr_class(["_ct", "_x"])}>${_escape(h.name)}${_el_resume($scope22_id, "d")}</span>`);
5567
+ _html(`<li${_attr_class(row)}><div${_attr_class("_bt")}><span${_attr_class(["_cr", "_w"])}>${_escape(h.name)}${_el_resume($scope22_id, "d")}</span>`);
5525
5568
  _if(() => {
5526
5569
  if (active.has(h.name)) {
5527
5570
  const $scope23_id = _scope_id();
5528
- _html(`<span${_attr_class("_ce")}><span${_attr_class("_F")}></span><!>${_escape(active.get(h.name) || "Starting…")}${_el_resume($scope23_id, "c")}</span>`);
5571
+ _html(`<span${_attr_class("_cc")}><span${_attr_class("_E")}></span><!>${_escape(active.get(h.name) || "Starting…")}${_el_resume($scope23_id, "c")}</span>`);
5529
5572
  _subscribe($active__closures, writeScope($scope23_id, { Ceq: 5 }));
5530
5573
  return 0;
5531
5574
  } else if (h.description) {
5532
5575
  const $scope94_id = _scope_id();
5533
- _html(`<span${_attr_class("_bG")}${_attr("title", h.description)}>${_escape(h.description)}${_el_resume($scope94_id, "b")}</span>${_el_resume($scope94_id, "a")}`);
5576
+ _html(`<span${_attr_class("_bw")}${_attr("title", h.description)}>${_escape(h.description)}${_el_resume($scope94_id, "b")}</span>${_el_resume($scope94_id, "a")}`);
5534
5577
  writeScope($scope94_id, {});
5535
5578
  return 1;
5536
5579
  }
@@ -5542,7 +5585,7 @@ var settings_page_default = _template("v", (input) => {
5542
5585
  _if(() => {
5543
5586
  if (h.installed) {
5544
5587
  const $scope95_id = _scope_id();
5545
- _html(`<span${_attr_class("_I")}>installed</span>`);
5588
+ _html(`<span${_attr_class("_H")}>installed</span>`);
5546
5589
  writeScope($scope95_id, {});
5547
5590
  return 0;
5548
5591
  } else {
@@ -5569,7 +5612,7 @@ var settings_page_default = _template("v", (input) => {
5569
5612
  return 0;
5570
5613
  } else if (hits && !searching) {
5571
5614
  const $scope44_id = _scope_id();
5572
- _html(`<p${_attr_class("_bI")}>No tools match "<!>${_escape(query)}${_el_resume($scope44_id, "b")}".</p>`);
5615
+ _html(`<p${_attr_class("_by")}>No tools match "<!>${_escape(query)}${_el_resume($scope44_id, "b")}".</p>`);
5573
5616
  _subscribe($query__closures, writeScope($scope44_id, {}));
5574
5617
  return 1;
5575
5618
  }
@@ -5580,7 +5623,7 @@ var settings_page_default = _template("v", (input) => {
5580
5623
  return 0;
5581
5624
  }
5582
5625
  }, $scope0_id, "ac", 1, 1, 1, 0, 1);
5583
- _html(`</section><section${_attr_class("_bx")}${_attr("aria-labelledby", skillsId)}><div${_attr_class("_by")}><h2${_attr("id", skillsId)}${_attr_class("_bM")}>Skills</h2>`);
5626
+ _html(`</section><section${_attr_class("_bn")}${_attr("aria-labelledby", skillsId)}><div${_attr_class("_bo")}><h2${_attr("id", skillsId)}${_attr_class("_bB")}>Skills</h2>`);
5584
5627
  _if(() => {
5585
5628
  if (skills?.global.length) {
5586
5629
  const $scope52_id = _scope_id();
@@ -5593,30 +5636,30 @@ var settings_page_default = _template("v", (input) => {
5593
5636
  _if(() => {
5594
5637
  if (skills && !skills.agents.length) {
5595
5638
  const $scope96_id = _scope_id();
5596
- _html(`<p${_attr_class("_bI")}>No agent CLIs are installed, so a skill would have nowhere to go.</p>`);
5639
+ _html(`<p${_attr_class("_by")}>No agent CLIs are installed, so a skill would have nowhere to go.</p>`);
5597
5640
  writeScope($scope96_id, {});
5598
5641
  return 0;
5599
5642
  } else if (skills && !skills.available) {
5600
5643
  const $scope24_id = _scope_id();
5601
- _html(`<p${_attr_class("_bI")}>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>`);
5644
+ _html(`<p${_attr_class("_by")}>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>`);
5602
5645
  _script($scope24_id, "v58");
5603
5646
  writeScope($scope24_id, {});
5604
5647
  return 1;
5605
5648
  }
5606
5649
  }, $scope0_id, "ah", 1, 1, 1, 0, 1);
5607
- _html(`<ul${_attr_class("_bA")}>`);
5650
+ _html(`<ul${_attr_class("_bq")}>`);
5608
5651
  _for_of(skills?.global || [], (s) => {
5609
5652
  const $scope25_id = _scope_id();
5610
- _html(`<li${_attr_class("_bC")}><div${_attr_class("_bD")}><span${_attr_class(["_bE", "_x"])}>${_escape(s.name)}${_el_resume($scope25_id, "d")}</span>`);
5653
+ _html(`<li${_attr_class("_bs")}><div${_attr_class("_bt")}><span${_attr_class(["_bu", "_w"])}>${_escape(s.name)}${_el_resume($scope25_id, "d")}</span>`);
5611
5654
  _if(() => {
5612
5655
  if (active.has(s.id)) {
5613
5656
  const $scope26_id = _scope_id();
5614
- _html(`<span${_attr_class("_ce")}><span${_attr_class("_F")}></span><!>${_escape(active.get(s.id) || "Starting…")}${_el_resume($scope26_id, "c")}</span>`);
5657
+ _html(`<span${_attr_class("_cc")}><span${_attr_class("_E")}></span><!>${_escape(active.get(s.id) || "Starting…")}${_el_resume($scope26_id, "c")}</span>`);
5615
5658
  _subscribe($active__closures, writeScope($scope26_id, { Ceq: 6 }));
5616
5659
  return 0;
5617
5660
  } else if (s.description) {
5618
5661
  const $scope97_id = _scope_id();
5619
- _html(`<span${_attr_class("_bG")}${_attr("title", s.description)}>${_escape(s.description)}${_el_resume($scope97_id, "b")}</span>${_el_resume($scope97_id, "a")}`);
5662
+ _html(`<span${_attr_class("_bw")}${_attr("title", s.description)}>${_escape(s.description)}${_el_resume($scope97_id, "b")}</span>${_el_resume($scope97_id, "a")}`);
5620
5663
  writeScope($scope97_id, {});
5621
5664
  return 1;
5622
5665
  }
@@ -5624,17 +5667,17 @@ var settings_page_default = _template("v", (input) => {
5624
5667
  _if(() => {
5625
5668
  if (s.sourceUrl) {
5626
5669
  const $scope98_id = _scope_id();
5627
- _html(`<a${_attr_class(["_bG", "_cU"])}${_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")}`);
5670
+ _html(`<a${_attr_class(["_bw", "_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")}`);
5628
5671
  writeScope($scope98_id, {});
5629
5672
  return 0;
5630
5673
  } else if (s.source) {
5631
5674
  const $scope99_id = _scope_id();
5632
- _html(`<span${_attr_class("_bG")}>${_escape(s.source)}${_el_resume($scope99_id, "b")}</span>`);
5675
+ _html(`<span${_attr_class("_bw")}>${_escape(s.source)}${_el_resume($scope99_id, "b")}</span>`);
5633
5676
  writeScope($scope99_id, {});
5634
5677
  return 1;
5635
5678
  } else {
5636
5679
  const $scope101_id = _scope_id();
5637
- _html(`<span${_attr_class(["_bG", "_w"])} title="Not installed from a source, so it cannot be updated">local only</span>`);
5680
+ _html(`<span${_attr_class(["_bw", "_v"])} title="Not installed from a source, so it cannot be updated">local only</span>`);
5638
5681
  writeScope($scope101_id, {});
5639
5682
  return 2;
5640
5683
  }
@@ -5643,7 +5686,7 @@ var settings_page_default = _template("v", (input) => {
5643
5686
  _if(() => {
5644
5687
  if (skills && s.agents.length < skills.agents.length) {
5645
5688
  const $scope100_id = _scope_id();
5646
- _html(`<span${_attr_class("_bF")}><span${_attr_class("_I")}${_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>`);
5689
+ _html(`<span${_attr_class("_bv")}><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>`);
5647
5690
  writeScope($scope100_id, {});
5648
5691
  return 0;
5649
5692
  }
@@ -5662,8 +5705,8 @@ var settings_page_default = _template("v", (input) => {
5662
5705
  }, $scope55_id, "a", 1, 1, 1, 0, 1);
5663
5706
  _html(`<button${_attr_class([
5664
5707
  iconBtnXs,
5708
+ "_1",
5665
5709
  "_2",
5666
- "_3",
5667
5710
  { ["_q"]: confirmingSkill === s.id }
5668
5711
  ])}${confirmingSkill === s.id ? _attr("title", `Remove ${s.name}?`) : _attr("title", `Remove ${s.name}`)}>`);
5669
5712
  _if(() => {
@@ -5697,7 +5740,7 @@ var settings_page_default = _template("v", (input) => {
5697
5740
  _if(() => {
5698
5741
  if (skills && !skills.global.length) {
5699
5742
  const $scope104_id = _scope_id();
5700
- _html(`<p${_attr_class("_bI")}>No skills installed. Search below, or paste an owner/repo.</p>`);
5743
+ _html(`<p${_attr_class("_by")}>No skills installed. Search below, or paste an owner/repo.</p>`);
5701
5744
  writeScope($scope104_id, {});
5702
5745
  return 0;
5703
5746
  }
@@ -5705,20 +5748,20 @@ var settings_page_default = _template("v", (input) => {
5705
5748
  _if(() => {
5706
5749
  if (skills?.available && skills.agents.length) {
5707
5750
  const $scope27_id = _scope_id();
5708
- _html(`<div><label${_attr_class("_W")}>`);
5751
+ _html(`<div><label${_attr_class("_V")}>`);
5709
5752
  icon_search_default({
5710
5753
  size: 14,
5711
- class: "_X"
5754
+ class: "_W"
5712
5755
  });
5713
- _html(`<input${_attr_input_value($scope27_id, "c", skillQuery, searchSkills)}${_attr_class([inputLg, "_Y"])} 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, "_cw"])}${_attr("hidden", !skillQuery.trim())}>`);
5756
+ _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())}>`);
5714
5757
  _if(() => {
5715
5758
  if (looksLikeSource(skillQuery)) {
5716
5759
  const $scope28_id = _scope_id();
5717
- _html(`<li${_attr_class(row)}><div${_attr_class("_bD")}><span${_attr_class(["_ct", "_x"])}>${_escape(skillQuery.trim())}${_el_resume($scope28_id, "d")}</span>`);
5760
+ _html(`<li${_attr_class(row)}><div${_attr_class("_bt")}><span${_attr_class(["_cr", "_w"])}>${_escape(skillQuery.trim())}${_el_resume($scope28_id, "d")}</span>`);
5718
5761
  _if(() => {
5719
5762
  if (active.has(skillQuery.trim())) {
5720
5763
  const $scope29_id = _scope_id();
5721
- _html(`<span${_attr_class("_ce")}><span${_attr_class("_F")}></span><!>${_escape(active.get(skillQuery.trim()) || "Starting…")}${_el_resume($scope29_id, "c")}</span>`);
5764
+ _html(`<span${_attr_class("_cc")}><span${_attr_class("_E")}></span><!>${_escape(active.get(skillQuery.trim()) || "Starting…")}${_el_resume($scope29_id, "c")}</span>`);
5722
5765
  _subscribe($skillQuery__closures, _subscribe($active__closures, writeScope($scope29_id, {
5723
5766
  Ceq: 8,
5724
5767
  Cfa: 1
@@ -5726,7 +5769,7 @@ var settings_page_default = _template("v", (input) => {
5726
5769
  return 0;
5727
5770
  } else {
5728
5771
  const $scope105_id = _scope_id();
5729
- _html(`<span${_attr_class("_bG")}>Add straight from this source</span>`);
5772
+ _html(`<span${_attr_class("_bw")}>Add straight from this source</span>`);
5730
5773
  writeScope($scope105_id, {});
5731
5774
  return 1;
5732
5775
  }
@@ -5749,16 +5792,16 @@ var settings_page_default = _template("v", (input) => {
5749
5792
  _for_of(skillHits || [], (h) => {
5750
5793
  const $scope30_id = _scope_id();
5751
5794
  const $for_content8__h_installs__closures = /* @__PURE__ */ new Set();
5752
- _html(`<li${_attr_class(row)}><div${_attr_class("_bD")}><span${_attr_class(["_ct", "_x"])}>${_escape(h.name)}${_el_resume($scope30_id, "d")}</span>`);
5795
+ _html(`<li${_attr_class(row)}><div${_attr_class("_bt")}><span${_attr_class(["_cr", "_w"])}>${_escape(h.name)}${_el_resume($scope30_id, "d")}</span>`);
5753
5796
  _if(() => {
5754
5797
  if (active.has(h.skillId)) {
5755
5798
  const $scope31_id = _scope_id();
5756
- _html(`<span${_attr_class("_ce")}><span${_attr_class("_F")}></span><!>${_escape(active.get(h.skillId) || "Starting…")}${_el_resume($scope31_id, "c")}</span>`);
5799
+ _html(`<span${_attr_class("_cc")}><span${_attr_class("_E")}></span><!>${_escape(active.get(h.skillId) || "Starting…")}${_el_resume($scope31_id, "c")}</span>`);
5757
5800
  _subscribe($active__closures, writeScope($scope31_id, { Ceq: 10 }));
5758
5801
  return 0;
5759
5802
  } else {
5760
5803
  const $scope106_id = _scope_id();
5761
- _html(`<span${_attr_class("_bG")}${_attr("title", h.source)}>${_escape(h.source)}${_el_resume($scope106_id, "b")}</span>${_el_resume($scope106_id, "a")}`);
5804
+ _html(`<span${_attr_class("_bw")}${_attr("title", h.source)}>${_escape(h.source)}${_el_resume($scope106_id, "b")}</span>${_el_resume($scope106_id, "a")}`);
5762
5805
  writeScope($scope106_id, {});
5763
5806
  return 1;
5764
5807
  }
@@ -5770,7 +5813,7 @@ var settings_page_default = _template("v", (input) => {
5770
5813
  _if(() => {
5771
5814
  if (h.installs) {
5772
5815
  const $scope107_id = _scope_id();
5773
- _html(`<span${_attr_class(["_I", "_J"])}${_attr("title", `${h.installs} installs`)}>${_escape(skillInstalls(h.installs))}${_el_resume($scope107_id, "b")}</span>${_el_resume($scope107_id, "a")}`);
5816
+ _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")}`);
5774
5817
  _subscribe($for_content8__h_installs__closures, writeScope($scope107_id, {}));
5775
5818
  return 0;
5776
5819
  }
@@ -5778,7 +5821,7 @@ var settings_page_default = _template("v", (input) => {
5778
5821
  _if(() => {
5779
5822
  if (h.installed) {
5780
5823
  const $scope108_id = _scope_id();
5781
- _html(`<span${_attr_class("_I")}>installed</span>`);
5824
+ _html(`<span${_attr_class("_H")}>installed</span>`);
5782
5825
  writeScope($scope108_id, {});
5783
5826
  return 0;
5784
5827
  } else {
@@ -5807,7 +5850,7 @@ var settings_page_default = _template("v", (input) => {
5807
5850
  _if(() => {
5808
5851
  if (skillHits && !skillHits.length && !skillSearching && !looksLikeSource(skillQuery)) {
5809
5852
  const $scope54_id = _scope_id();
5810
- _html(`<p${_attr_class("_bI")}>No skills match "<!>${_escape(skillQuery)}${_el_resume($scope54_id, "b")}".</p>`);
5853
+ _html(`<p${_attr_class("_by")}>No skills match "<!>${_escape(skillQuery)}${_el_resume($scope54_id, "b")}".</p>`);
5811
5854
  _subscribe($skillQuery__closures, writeScope($scope54_id, { Cfa: 2 }));
5812
5855
  return 0;
5813
5856
  }
@@ -5832,37 +5875,37 @@ var settings_page_default = _template("v", (input) => {
5832
5875
  label: "Dark"
5833
5876
  }
5834
5877
  ];
5835
- _html(`</section><section${_attr_class("_bx")}${_attr("aria-labelledby", appearanceId)}><div${_attr_class("_by")}><h2${_attr("id", appearanceId)}${_attr_class("_bM")}>Appearance</h2></div><div${_attr_class(["_bC", "_cC"])}><label${_attr_class("_cD")}><span${_attr_class("_cE")}>Name</span><input${_attr_input_value($scope0_id, "ar", input.instance.name, _resume(function(v) {
5878
+ _html(`</section><section${_attr_class("_bn")}${_attr("aria-labelledby", appearanceId)}><div${_attr_class("_bo")}><h2${_attr("id", appearanceId)}${_attr_class("_bB")}>Appearance</h2></div><div${_attr_class(["_bs", "_cA"])}><label${_attr_class("_cB")}><span${_attr_class("_cC")}>Name</span><input${_attr_input_value($scope0_id, "ar", input.instance.name, _resume(function(v) {
5836
5879
  setInstance({ name: v });
5837
- }, "v4", $scope0_id))}${_attr_class(["_U", "_cF"])} type=text placeholder="Tab title" maxlength=32 autocomplete=off spellcheck=false>${_el_resume($scope0_id, "ar")}</label><div${_attr_class("_cD")}><span${_attr_class("_cE")}>Theme</span><span${_attr_class("_cH")}><span${_attr_class(themeSeg)} role=radiogroup aria-label="Color theme">`);
5880
+ }, "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">`);
5838
5881
  _for_of(themeOpts, (opt) => {
5839
5882
  const $scope51_id = _scope_id();
5840
- _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($scope51_id, "a")}`);
5883
+ _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")}`);
5841
5884
  _script($scope51_id, "v64");
5842
5885
  writeScope($scope51_id, {
5843
5886
  e: opt?.id,
5844
5887
  _: _scope_with_id($scope0_id)
5845
5888
  });
5846
5889
  }, "id", $scope0_id, "av", 1, 0, 1, 0, 1);
5847
- _html(`</span><span${_attr_class(["_m", "_cI"])}>`);
5890
+ _html(`</span><span${_attr_class(["_m", "_cG"])}>`);
5848
5891
  _attr_select_value($scope0_id, "ax", themeMode, _resume(function(v) {
5849
5892
  setThemeMode(v);
5850
5893
  }, "v5", $scope0_id), () => {
5851
- _html(`<select${_attr_class(["_n", "_cJ"])} aria-label="Color theme">`);
5894
+ _html(`<select${_attr_class(["_n", "_cH"])} aria-label="Color theme">`);
5852
5895
  forOf(themeOpts, (opt) => {
5853
5896
  _scope_id();
5854
5897
  _html(`<option${_attr_option_value(opt.id)}>${_escape(opt.label)}</option>`);
5855
5898
  });
5856
5899
  _html("</select>");
5857
5900
  });
5858
- _html(`${_el_resume($scope0_id, "ax")}</span></span></div><div${_attr_class("_cD")}><span${_attr_class("_cE")}>Accent</span><span${_attr_class(swatches)} role=radiogroup aria-label="Accent colour"><button type=button${_attr_class([
5901
+ _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([
5902
+ "_cN",
5859
5903
  "_cP",
5860
- "_cR",
5861
- { ["_cQ"]: !input.instance.accent }
5904
+ { ["_cO"]: !input.instance.accent }
5862
5905
  ])} role=radio aria-checked=${!input.instance.accent ? "true" : "false"} title="Default (blue)" aria-label="Default (blue)"></button>${_el_resume($scope0_id, "b1")}`);
5863
5906
  _for_of(ACCENT_PRESETS, (p) => {
5864
5907
  const $scope4_id = _scope_id();
5865
- _html(`<button type=button${_attr_class(["_cP", { ["_cQ"]: 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")}`);
5908
+ _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")}`);
5866
5909
  _script($scope4_id, "v65");
5867
5910
  writeScope($scope4_id, {
5868
5911
  d: p?.value,
@@ -5871,12 +5914,12 @@ var settings_page_default = _template("v", (input) => {
5871
5914
  }, "value", $scope0_id, "b2", $sg__input_instance_accent, 0, 1, 0, 1);
5872
5915
  const customOn = !!input.instance.accent && !ACCENT_PRESETS.some((p) => p.value === input.instance.accent);
5873
5916
  _html(`<label${_attr_class([
5874
- "_cP",
5875
- "_cS",
5876
- { ["_cQ"]: customOn }
5917
+ "_cN",
5918
+ "_cQ",
5919
+ { ["_cO"]: customOn }
5877
5920
  ])}${customOn ? _attr_style(`--swatch:${input.instance.accent}`) : ""} title="Custom colour"><input${_attr_input_value($scope0_id, "b4", input.instance.accent || "#3556d8", _resume(function(v) {
5878
5921
  setInstance({ accent: v });
5879
- }, "v6", $scope0_id))}${_attr_class("_cT")} 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>`);
5922
+ }, "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>`);
5880
5923
  _if(() => {
5881
5924
  if (versionPick) {
5882
5925
  const $scope38_id = _scope_id();
@@ -6004,12 +6047,12 @@ var settings_page_default = _template("v", (input) => {
6004
6047
  });
6005
6048
  //#endregion
6006
6049
  //#region src/tags/new-workspace.css.ts
6007
- var content$1 = "_bN _bp";
6008
- var section$1 = "_bR _bx";
6009
- var curBase = "_bW _T _S";
6010
- var archived = "_b1 _bx";
6011
- var archivedHint = "_b2 _S";
6012
- var archivedCard = "_b3 _bC";
6050
+ var content$1 = "_bL _bE";
6051
+ var section$1 = "_bP _bn";
6052
+ var curBase = "_bU _S _R";
6053
+ var archived = "_bZ _bn";
6054
+ var archivedHint = "_b0 _R";
6055
+ var archivedCard = "_b1 _bs";
6013
6056
  //#endregion
6014
6057
  //#region src/tags/icons/icon-check.marko
6015
6058
  var icon_check_default = _template("P", (input) => {
@@ -6044,7 +6087,7 @@ var icon_branch_default = _template("O", (input) => {
6044
6087
  });
6045
6088
  _serialize_if($scope0_reason, 0) && writeScope($scope0_id, { a: _existing_scope($childScope) });
6046
6089
  });
6047
- var resultBranch = "_c3 _Z _j";
6090
+ var resultBranch = "_c1 _Y _j";
6048
6091
  //#endregion
6049
6092
  //#region src/tags/branch-pick.marko
6050
6093
  var branch_pick_default = _template("d", (input) => {
@@ -6057,11 +6100,11 @@ var branch_pick_default = _template("d", (input) => {
6057
6100
  let branchFilter = "";
6058
6101
  let reloadTick = 0;
6059
6102
  let refreshing = false;
6060
- _html(`<div${_attr_class("_c5")}>`);
6103
+ _html(`<div${_attr_class("_c3")}>`);
6061
6104
  _if(() => {
6062
6105
  {
6063
6106
  const $scope4_id = _scope_id();
6064
- _html(`<p${_attr_class("_bI")}><span${_attr_class("_F")}></span> Loading branches…</p>`);
6107
+ _html(`<p${_attr_class("_by")}><span${_attr_class("_E")}></span> Loading branches…</p>`);
6065
6108
  writeScope($scope4_id, {});
6066
6109
  return 0;
6067
6110
  }
@@ -6139,11 +6182,11 @@ var repo_picker_default = _template("t", (input) => {
6139
6182
  const ignored = new Set(prefs$1?.ignoredSsoOrgs?.() ?? []);
6140
6183
  return (catalog?.sso || []).filter((s) => !ignored.has(s.org));
6141
6184
  })();
6142
- _html(`<div${_attr_class("_cW")}>`);
6185
+ _html(`<div${_attr_class("_cU")}>`);
6143
6186
  _if(() => {
6144
6187
  if (ssoPending.length) {
6145
6188
  const $scope7_id = _scope_id();
6146
- _html(`<div${_attr_class("_cX")}>`);
6189
+ _html(`<div${_attr_class("_cV")}>`);
6147
6190
  _set_serialize_reason(154);
6148
6191
  const $childScope = _peek_scope_id();
6149
6192
  sso_auth_default({
@@ -6160,29 +6203,29 @@ var repo_picker_default = _template("t", (input) => {
6160
6203
  return 0;
6161
6204
  }
6162
6205
  }, $scope0_id, "b", 1, 1, 1, 0, 1);
6163
- _html(`<label${_attr_class("_W")}>`);
6206
+ _html(`<label${_attr_class("_V")}>`);
6164
6207
  icon_search_default({
6165
6208
  size: 14,
6166
- class: "_X"
6209
+ class: "_W"
6167
6210
  });
6168
6211
  _html(`<input${_attr_input_value($scope0_id, "e", filter, _resume(function(v) {
6169
6212
  filter = v;
6170
6213
  highlight = 0;
6171
6214
  pasteWillFork = false;
6172
- }, "t0", $scope0_id))}${_attr_class([inputLg, "_Y"])} placeholder="Add a repo…" aria-label="Add a repo"${_attr("disabled", input.disabled)}>${_el_resume($scope0_id, "e")}</label>`);
6215
+ }, "t0", $scope0_id))}${_attr_class([inputLg, "_X"])} placeholder="Add a repo…" aria-label="Add a repo"${_attr("disabled", input.disabled)}>${_el_resume($scope0_id, "e")}</label>`);
6173
6216
  _if(() => {
6174
6217
  if (pasted) {
6175
6218
  const $scope1_id = _scope_id();
6176
- _html(`<ul${_attr_class("_cY")}><li><div${_attr_class(["_c0", "_cZ"])}><button${_attr_class("_c1")}${pasteWillFork ? _attr("title", `Fork ${pasted} to your account and add the fork`) : _attr("title", `Add ${pasted} as-is (pushes go to that repo)`)}>`);
6219
+ _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)`)}>`);
6177
6220
  icon_plus_default({
6178
6221
  size: 12,
6179
- class: "_c7"
6222
+ class: "_c5"
6180
6223
  });
6181
- _html(`<span${_attr_class("_c8")}>${_escape(repoLabel(pasted))}${_el_resume($scope1_id, "f")}</span></button>${_el_resume($scope1_id, "c")}`);
6224
+ _html(`<span${_attr_class("_c6")}>${_escape(repoLabel(pasted))}${_el_resume($scope1_id, "f")}</span></button>${_el_resume($scope1_id, "c")}`);
6182
6225
  _if(() => {
6183
6226
  if (pastedForkable) {
6184
6227
  const $scope8_id = _scope_id();
6185
- _html(`<button${_attr_class(["_c4", { ["_c2"]: 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"}>`);
6228
+ _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"}>`);
6186
6229
  _if(() => {
6187
6230
  if (pasteWillFork) {
6188
6231
  const $scope10_id = _scope_id();
@@ -6202,7 +6245,7 @@ var repo_picker_default = _template("t", (input) => {
6202
6245
  return 0;
6203
6246
  }
6204
6247
  }, $scope1_id, "g", 1, 1, 1, 0, 1);
6205
- _html(`<button${_attr_class([resultBranch, { ["_c2"]: branchesFor === pasted }])}${_attr("title", `Pick a base branch for ${pasted}`)}${_attr("aria-label", `Pick a base branch for ${pasted}`)}>`);
6248
+ _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}`)}>`);
6206
6249
  icon_branch_default({ size: 12 });
6207
6250
  _html(`</button>${_el_resume($scope1_id, "h")}</div>`);
6208
6251
  _if(() => {
@@ -6229,7 +6272,7 @@ var repo_picker_default = _template("t", (input) => {
6229
6272
  return 0;
6230
6273
  } else if (filter && !catalog) {
6231
6274
  const $scope9_id = _scope_id();
6232
- _html(`<p${_attr_class("_bI")}>Loading repos…</p>`);
6275
+ _html(`<p${_attr_class("_by")}>Loading repos…</p>`);
6233
6276
  writeScope($scope9_id, {});
6234
6277
  return 1;
6235
6278
  }
@@ -6237,15 +6280,15 @@ var repo_picker_default = _template("t", (input) => {
6237
6280
  _if(() => {
6238
6281
  if (results.length) {
6239
6282
  const $scope3_id = _scope_id();
6240
- _html(`<ul${_attr_class("_cY")}>`);
6283
+ _html(`<ul${_attr_class("_cW")}>`);
6241
6284
  _for_of(results, (repo, i) => {
6242
6285
  const $scope4_id = _scope_id();
6243
- _html(`<li><div${_attr_class(["_c0", { ["_cZ"]: i === highlight }])}><button${_attr_class("_c1")}>`);
6286
+ _html(`<li><div${_attr_class(["_cY", { ["_cX"]: i === highlight }])}><button${_attr_class("_cZ")}>`);
6244
6287
  icon_plus_default({
6245
6288
  size: 12,
6246
- class: "_c7"
6289
+ class: "_c5"
6247
6290
  });
6248
- _html(`<span${_attr_class("_c8")}>${_escape(repoLabel(repo.nameWithOwner))}${_el_resume($scope4_id, "e")}</span></button>${_el_resume($scope4_id, "b")}<button${_attr_class([resultBranch, { ["_c2"]: branchesFor === repo.nameWithOwner }])}${_attr("title", `Pick a base branch for ${repo.nameWithOwner}`)}${_attr("aria-label", `Pick a base branch for ${repo.nameWithOwner}`)}>`);
6291
+ _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}`)}>`);
6249
6292
  icon_branch_default({ size: 12 });
6250
6293
  _html(`</button>${_el_resume($scope4_id, "f")}</div>${_el_resume($scope4_id, "a")}`);
6251
6294
  _if(() => {
@@ -6280,7 +6323,7 @@ var repo_picker_default = _template("t", (input) => {
6280
6323
  return 0;
6281
6324
  } else if (filter && catalog && !pasted) {
6282
6325
  const $scope6_id = _scope_id();
6283
- _html(`<p${_attr_class("_bI")}>No repos match "<!>${_escape(filter)}${_el_resume($scope6_id, "b")}". Paste a clone URL to add any repo.</p>`);
6326
+ _html(`<p${_attr_class("_by")}>No repos match "<!>${_escape(filter)}${_el_resume($scope6_id, "b")}". Paste a clone URL to add any repo.</p>`);
6284
6327
  writeScope($scope6_id, {});
6285
6328
  return 1;
6286
6329
  }
@@ -6421,7 +6464,7 @@ var new_workspace_default = _template("q", (input) => {
6421
6464
  }
6422
6465
  }, "q6", $scope0_id);
6423
6466
  const titleId = _id();
6424
- _html(`<div${_attr_class("_bn")} role=region${_attr("aria-labelledby", titleId)}><div${_attr_class("_bo")}><div${_attr_class(content$1)}>`);
6467
+ _html(`<div${_attr_class("_bC")} role=region${_attr("aria-labelledby", titleId)}><div${_attr_class("_bD")}><div${_attr_class(content$1)}>`);
6425
6468
  _set_serialize_reason({
6426
6469
  0: _serialize_guard($scope0_reason, 2),
6427
6470
  1: $sg__input_backHref__OR__input_onExit,
@@ -6460,23 +6503,23 @@ var new_workspace_default = _template("q", (input) => {
6460
6503
  return 0;
6461
6504
  }
6462
6505
  }, $scope0_id, "e", 1, 1, 1, 0, 1);
6463
- _html(`<label${_attr_class("_bQ")}><span${_attr_class("_bM")}>Name</span><input${_attr_input_value($scope0_id, "h", name, _resume((_new_name) => {
6506
+ _html(`<label${_attr_class("_bO")}><span${_attr_class("_bB")}>Name</span><input${_attr_input_value($scope0_id, "h", name, _resume((_new_name) => {
6464
6507
  name = _new_name;
6465
- }, "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("_bS")}><h2${_attr_class("_bM")}>Repos</h2><button${_attr_class(iconBtnRow)} title="Refresh repo list" aria-label="Refresh repo list"${_attr("disabled", catalogRefreshing)}>`);
6508
+ }, "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("_bB")}>Repos</h2><button${_attr_class(iconBtnRow)} title="Refresh repo list" aria-label="Refresh repo list"${_attr("disabled", catalogRefreshing)}>`);
6466
6509
  _set_serialize_reason(1);
6467
6510
  const $childScope2 = _peek_scope_id();
6468
6511
  icon_refresh_default({
6469
6512
  size: 14,
6470
- class: catalogRefreshing && "_E"
6513
+ class: catalogRefreshing && "_D"
6471
6514
  });
6472
- _html(`</button>${_el_resume($scope0_id, "l")}</div><ul${_attr_class("_bT")}>`);
6515
+ _html(`</button>${_el_resume($scope0_id, "l")}</div><ul${_attr_class("_bR")}>`);
6473
6516
  _for_of(selected, (repo) => {
6474
6517
  const $scope2_id = _scope_id();
6475
- _html(`<li><div${_attr_class(row)}><span${_attr_class("_bU")}>${_escape(repoLabel(repo.fullName))}${_el_resume($scope2_id, "c")}</span>`);
6518
+ _html(`<li><div${_attr_class(row)}><span${_attr_class("_bS")}>${_escape(repoLabel(repo.fullName))}${_el_resume($scope2_id, "c")}</span>`);
6476
6519
  _if(() => {
6477
6520
  if (repo.fork !== void 0) {
6478
6521
  const $scope3_id = _scope_id();
6479
- _html(`<button${_attr_class(["_bX", { ["_bV"]: 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)}>`);
6522
+ _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)}>`);
6480
6523
  _if(() => {
6481
6524
  if (repo.fork) {
6482
6525
  const $scope12_id = _scope_id();
@@ -6498,11 +6541,11 @@ var new_workspace_default = _template("q", (input) => {
6498
6541
  }, $scope2_id, "d", 1, 1, 1, 0, 1);
6499
6542
  _html(`<button${_attr_class([
6500
6543
  curBase,
6501
- "_x",
6502
- { ["_bV"]: branchesFor === repo.fullName }
6544
+ "_w",
6545
+ { ["_bT"]: branchesFor === repo.fullName }
6503
6546
  ])}${_attr("title", `Change base branch for ${repo.fullName}`)}${_attr("aria-label", `Change base branch for ${repo.fullName}`)}${_attr("disabled", busy)}>`);
6504
6547
  icon_branch_default({ size: 12 });
6505
- _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)}>`);
6548
+ _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)}>`);
6506
6549
  icon_xmark_default({ size: 12 });
6507
6550
  _html(`</button>${_el_resume($scope2_id, "h")}</div>`);
6508
6551
  _if(() => {
@@ -6535,7 +6578,7 @@ var new_workspace_default = _template("q", (input) => {
6535
6578
  _if(() => {
6536
6579
  if (!selected.length) {
6537
6580
  const $scope14_id = _scope_id();
6538
- _html(`<li${_attr_class("_bI")}>No repos yet. Search below to add one, or create it empty.</li>`);
6581
+ _html(`<li${_attr_class("_by")}>No repos yet. Search below to add one, or create it empty.</li>`);
6539
6582
  writeScope($scope14_id, {});
6540
6583
  return 0;
6541
6584
  }
@@ -6560,19 +6603,19 @@ var new_workspace_default = _template("q", (input) => {
6560
6603
  _if(() => {
6561
6604
  if (busy && steps$1.length) {
6562
6605
  const $scope9_id = _scope_id();
6563
- _html(`<ul${_attr_class("_bY")}>`);
6606
+ _html(`<ul${_attr_class("_bW")}>`);
6564
6607
  _for_of(steps$1, (step$1, i) => {
6565
6608
  const $scope10_id = _scope_id();
6566
- _html(`<li${_attr_class(["_b4", { ["_bZ"]: i === steps$1.length - 1 }])}>`);
6609
+ _html(`<li${_attr_class(["_b2", { ["_bX"]: i === steps$1.length - 1 }])}>`);
6567
6610
  _if(() => {
6568
6611
  if (i === steps$1.length - 1) {
6569
6612
  const $scope15_id = _scope_id();
6570
- _html(`<span${_attr_class("_F")}></span>`);
6613
+ _html(`<span${_attr_class("_E")}></span>`);
6571
6614
  writeScope($scope15_id, {});
6572
6615
  return 0;
6573
6616
  } else {
6574
6617
  const $scope16_id = _scope_id();
6575
- _html(`<span${_attr_class("_b0")}>`);
6618
+ _html(`<span${_attr_class("_bY")}>`);
6576
6619
  icon_check_default({ size: 14 });
6577
6620
  _html("</span>");
6578
6621
  writeScope($scope16_id, {});
@@ -6586,7 +6629,7 @@ var new_workspace_default = _template("q", (input) => {
6586
6629
  return 0;
6587
6630
  }
6588
6631
  }, $scope0_id, "s", 1, 1, 1, 0, 1);
6589
- _html(`<div${_attr_class("_bO")}>`);
6632
+ _html(`<div${_attr_class("_bM")}>`);
6590
6633
  _if(() => {
6591
6634
  if (input.onExit || busy) {
6592
6635
  const $scope1_id = _scope_id();
@@ -6599,19 +6642,19 @@ var new_workspace_default = _template("q", (input) => {
6599
6642
  _html(`<button type=button${_attr_class([
6600
6643
  btnLg,
6601
6644
  "_p",
6602
- "_bP"
6645
+ "_bN"
6603
6646
  ])}${_attr("disabled", busy || !!restoring || !name.trim())}>${busy ? "Creating…" : "Create workspace"}${_el_resume($scope0_id, "w")}</button>${_el_resume($scope0_id, "v")}</div>`);
6604
6647
  _if(() => {
6605
6648
  if (archived$1.length) {
6606
6649
  const $scope4_id = _scope_id();
6607
- _html(`<section${_attr_class(archived)}><div${_attr_class("_bS")}><h2${_attr_class("_bM")}>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("_bA")}>`);
6650
+ _html(`<section${_attr_class(archived)}><div${_attr_class("_bQ")}><h2${_attr_class("_bB")}>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("_bq")}>`);
6608
6651
  _for_of(archived$1, (ws) => {
6609
6652
  const $scope5_id = _scope_id();
6610
- _html(`<li${_attr_class(archivedCard)}><div${_attr_class("_bD")}><span${_attr_class("_bE")}>${_escape(ws.name)}${_el_resume($scope5_id, "d", $sg__input_workspaces)}</span><span${_attr_class([metaTrunc, "_x"])}${_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)}>`);
6653
+ _html(`<li${_attr_class(archivedCard)}><div${_attr_class("_bt")}><span${_attr_class("_bu")}>${_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)}>`);
6611
6654
  _if(() => {
6612
6655
  if (restoring === ws.id) {
6613
6656
  const $scope17_id = _scope_id();
6614
- _html(`<span${_attr_class("_F")}></span> Restoring…`);
6657
+ _html(`<span${_attr_class("_E")}></span> Restoring…`);
6615
6658
  writeScope($scope17_id, {});
6616
6659
  return 0;
6617
6660
  } else {
@@ -6713,29 +6756,8 @@ function vapidKey(base64) {
6713
6756
  const raw = atob(padded.replace(/-/g, "+").replace(/_/g, "/"));
6714
6757
  return Uint8Array.from(raw, (c) => c.charCodeAt(0));
6715
6758
  }
6716
- //#endregion
6717
- //#region src/client/status.ts
6718
- /** Workspace activity dot from its polled status counts. */
6719
- function phaseOf(status) {
6720
- return status?.working ? "working" : status?.waiting ? "waiting" : status?.agents ? "idle" : "off";
6721
- }
6722
- /** Session activity dot from its own state. */
6723
- function sessionPhase(state) {
6724
- return state?.phase === "working" ? "working" : state?.phase === "waiting" ? "waiting" : state?.alive ? "idle" : "off";
6725
- }
6726
- /**
6727
- * What a session is *running*, which is not always what it was started as: a
6728
- * shell someone typed `claude` into is a claude session as far as the reader
6729
- * is concerned. Only shells are reinterpreted — an agent kind stays itself
6730
- * even while it shells out, so the icon doesn't flicker mid-command.
6731
- */
6732
- function activeAgent(session) {
6733
- if (session.agent !== "shell") return session.agent;
6734
- const command = session.state?.command?.trim();
6735
- return command && agentFromCommand(command) || session.agent;
6736
- }
6737
- var iconBtn$1 = "_eC _j";
6738
- var navToggle = "_eH _j";
6759
+ var iconBtn$1 = "_ep _j";
6760
+ var navToggle = "_eu _j";
6739
6761
  _template("N", (input) => {
6740
6762
  const $scope0_reason = _scope_reason(), $sg__input_size__OR__input_class = _serialize_guard($scope0_reason, 0);
6741
6763
  const $scope0_id = _scope_id();
@@ -6753,7 +6775,7 @@ _template("N", (input) => {
6753
6775
  });
6754
6776
  //#endregion
6755
6777
  //#region src/tags/icons/icon-settings.marko
6756
- var icon_settings_default = _template("gb", (input) => {
6778
+ var icon_settings_default = _template("fb", (input) => {
6757
6779
  const $scope0_reason = _scope_reason(), $sg__input_size__OR__input_class = _serialize_guard($scope0_reason, 0);
6758
6780
  const $scope0_id = _scope_id();
6759
6781
  _set_serialize_reason({
@@ -6778,12 +6800,33 @@ var ARM_MS = 3500;
6778
6800
  function disarmLater(fn) {
6779
6801
  return setTimeout(fn, ARM_MS);
6780
6802
  }
6781
- var railBtn = "_gr _j";
6782
- var rowIcon = "_gA _Z _j";
6783
- var close = "_gB _Z _j _2";
6803
+ var railBtn = "_gp _j";
6804
+ var rowIcon = "_gy _Y _j";
6805
+ var close = "_gz _Y _j _1";
6784
6806
  //#endregion
6785
6807
  //#region src/styles/session-pop.css.ts
6786
- var sessionPop = "_gn _4";
6808
+ var sessionPop = "_f4 _3";
6809
+ //#endregion
6810
+ //#region src/client/status.ts
6811
+ /** Workspace activity dot from its polled status counts. */
6812
+ function phaseOf(status) {
6813
+ return status?.working ? "working" : status?.waiting ? "waiting" : status?.agents ? "idle" : "off";
6814
+ }
6815
+ /** Session activity dot from its own state. */
6816
+ function sessionPhase(state) {
6817
+ return state?.phase === "working" ? "working" : state?.phase === "waiting" ? "waiting" : state?.alive ? "idle" : "off";
6818
+ }
6819
+ /**
6820
+ * What a session is *running*, which is not always what it was started as: a
6821
+ * shell someone typed `claude` into is a claude session as far as the reader
6822
+ * is concerned. Only shells are reinterpreted — an agent kind stays itself
6823
+ * even while it shells out, so the icon doesn't flicker mid-command.
6824
+ */
6825
+ function activeAgent(session) {
6826
+ if (session.agent !== "shell") return session.agent;
6827
+ const command = session.state?.command?.trim();
6828
+ return command && agentFromCommand(command) || session.agent;
6829
+ }
6787
6830
  //#endregion
6788
6831
  //#region src/tags/icons/icon-diff.marko
6789
6832
  var icon_diff_default = _template("V", (input) => {
@@ -6803,7 +6846,7 @@ var icon_diff_default = _template("V", (input) => {
6803
6846
  });
6804
6847
  //#endregion
6805
6848
  //#region src/tags/icons/icon-manage.marko
6806
- var icon_manage_default = _template("cb", (input) => {
6849
+ var icon_manage_default = _template("bb", (input) => {
6807
6850
  const $scope0_reason = _scope_reason(), $sg__input_size__OR__input_class = _serialize_guard($scope0_reason, 0);
6808
6851
  const $scope0_id = _scope_id();
6809
6852
  _set_serialize_reason({
@@ -6820,10 +6863,6 @@ var icon_manage_default = _template("cb", (input) => {
6820
6863
  });
6821
6864
  //#endregion
6822
6865
  //#region src/tags/usage-pcts.marko
6823
- function pctText(pct) {
6824
- const rounded = Math.round(pct);
6825
- return rounded !== pct && (rounded === 100 || rounded === 0) ? `${pct.toFixed(1)}%` : `${rounded}%`;
6826
- }
6827
6866
  var usage_pcts_default = _template("E", (input) => {
6828
6867
  const $scope0_reason = _scope_reason(), $sg__input_agent = _serialize_guard($scope0_reason, 1), $si__input_agent = _serialize_if($scope0_reason, 1), $sg__input_agent__OR__input_class = _serialize_guard($scope0_reason, 0), $si__input_agent__OR__input_class = _serialize_if($scope0_reason, 0);
6829
6868
  const $scope0_id = _scope_id();
@@ -6833,22 +6872,22 @@ var usage_pcts_default = _template("E", (input) => {
6833
6872
  if (windows.length) {
6834
6873
  const $scope1_id = _scope_id();
6835
6874
  _html(`<span${_attr_class([
6836
- "_fo",
6875
+ "_fm",
6837
6876
  input.class,
6838
- { ["_fp"]: agent.stale_seconds != null }
6877
+ { ["_fn"]: agent.stale_seconds != null }
6839
6878
  ])}${agent.stale_seconds != null ? _attr("title", `${agent.note || "provider unreachable"}; last cached numbers`) : " title=\"Plan usage\""}>`);
6840
6879
  _for_of(windows, (win$1, i) => {
6841
6880
  const $scope2_id = _scope_id();
6842
- _html(`<span${_attr_class("_fq")}>`);
6881
+ _html(`<span${_attr_class("_fo")}>`);
6843
6882
  _if(() => {
6844
6883
  if (i) {
6845
6884
  const $scope3_id = _scope_id();
6846
- _html(`<span${_attr_class("_ft")} aria-hidden=true>·</span>`);
6885
+ _html(`<span${_attr_class("_fr")} aria-hidden=true>·</span>`);
6847
6886
  $si__input_agent && writeScope($scope3_id, {});
6848
6887
  return 0;
6849
6888
  }
6850
6889
  }, $scope2_id, "b", $sg__input_agent, $sg__input_agent, $sg__input_agent, 0, 1);
6851
- _html(`<span${_attr_class("_fr")}>${_escape(win$1.window)}${_el_resume($scope2_id, "d", $sg__input_agent)}</span><span${_attr_class(["_fs", win$1.used_percent >= 90 ? "_dJ" : win$1.used_percent >= 70 ? "_dI" : win$1.used_percent >= 40 ? "_dH" : "_dG"])}>${_escape(pctText(win$1.used_percent))}${_el_resume($scope2_id, "f", $sg__input_agent)}</span>${_el_resume($scope2_id, "e", $sg__input_agent)}</span>`);
6890
+ _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 ? "_dv" : win$1.used_percent >= 70 ? "_du" : win$1.used_percent >= 40 ? "_dt" : "_ds"])}>${_escape(pctText(win$1.used_percent))}${_el_resume($scope2_id, "f", $sg__input_agent)}</span>${_el_resume($scope2_id, "e", $sg__input_agent)}</span>`);
6852
6891
  $si__input_agent && writeScope($scope2_id, {});
6853
6892
  }, "window", $scope1_id, "a", $sg__input_agent, $sg__input_agent__OR__input_class, $sg__input_agent, "</span>", 1);
6854
6893
  $si__input_agent__OR__input_class && writeScope($scope1_id, { _: _scope_with_id($scope0_id) });
@@ -6879,12 +6918,12 @@ var icon_edit_default = _template("X", (input) => {
6879
6918
  });
6880
6919
  _serialize_if($scope0_reason, 0) && writeScope($scope0_id, { a: _existing_scope($childScope) });
6881
6920
  });
6882
- var prChip = "_ht _s _hs";
6883
- var portChip = "_hu _s _hs";
6921
+ var prChip = "_hr _s _hq";
6922
+ var portChip = "_hs _s _hq";
6884
6923
  var prState = {
6885
- open: "_hy",
6886
- merged: "_hz",
6887
- closed: "_hA"
6924
+ open: "_hw",
6925
+ merged: "_hx",
6926
+ closed: "_hy"
6888
6927
  };
6889
6928
  //#endregion
6890
6929
  //#region src/tags/side-nav-chips.marko
@@ -6956,7 +6995,7 @@ var side_nav_chips_default = _template("w", (input) => {
6956
6995
  const name = repo.full_name.split("/").at(-1);
6957
6996
  return repos.some((r) => r.full_name !== repo.full_name && r.full_name.split("/").at(-1) === name) ? repoLabel(repo.full_name) : name;
6958
6997
  }, "w4", $scope1_id);
6959
- _html(`<div${_attr_class("_hr")}>`);
6998
+ _html(`<div${_attr_class("_hp")}>`);
6960
6999
  _for_of(repos, (repo) => {
6961
7000
  const $scope2_id = _scope_id();
6962
7001
  const $for_content__repo_worktree__closures = /* @__PURE__ */ new Set();
@@ -6967,16 +7006,16 @@ var side_nav_chips_default = _template("w", (input) => {
6967
7006
  "_s",
6968
7007
  prChip,
6969
7008
  {
6970
- ["_u"]: open && !pr.isDraft,
6971
- ["_v"]: open && pr.isDraft,
7009
+ ["_t"]: open && !pr.isDraft,
7010
+ ["_u"]: open && pr.isDraft,
6972
7011
  [prState.merged]: pr.state === "MERGED",
6973
7012
  [prState.closed]: pr.state === "CLOSED"
6974
7013
  }
6975
- ])}${_attr("title", prTitle(repo, pr))}><a${_attr_class(["_hv", { ["_hC"]: !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")}`);
7014
+ ])}${_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")}`);
6976
7015
  _if(() => {
6977
7016
  if (open) {
6978
7017
  const $scope4_id = _scope_id();
6979
- _html(`<a${_attr_class(["_hv", "_hw"])}${_attr("href", `/w/${input.workspaceId}/review?pr=${encodeURIComponent(`${repo.worktree}/${pr.number}`)}`)}${_attr("title", `Review #${pr.number} changes`)}>`);
7018
+ _html(`<a${_attr_class(["_ht", "_hu"])}${_attr("href", `/w/${input.workspaceId}/review?pr=${encodeURIComponent(`${repo.worktree}/${pr.number}`)}`)}${_attr("title", `Review #${pr.number} changes`)}>`);
6980
7019
  icon_diff_default({ size: 12 });
6981
7020
  _html(`</a>${_el_resume($scope4_id, "a")}`);
6982
7021
  _subscribe($for_content__repo_worktree__closures, _subscribe($si__input_workspaceId && $input_workspaceId__closures, writeScope($scope4_id, {})));
@@ -6984,9 +7023,9 @@ var side_nav_chips_default = _template("w", (input) => {
6984
7023
  } else {
6985
7024
  const $scope6_id = _scope_id();
6986
7025
  _html(`<button type=button${_attr_class([
6987
- "_hv",
6988
- "_hw",
6989
- "_hx"
7026
+ "_ht",
7027
+ "_hu",
7028
+ "_hv"
6990
7029
  ])}${_attr("title", `Dismiss #${pr.number}`)}>`);
6991
7030
  icon_xmark_default({ size: 12 });
6992
7031
  _html(`</button>${_el_resume($scope6_id, "a")}`);
@@ -7007,10 +7046,10 @@ var side_nav_chips_default = _template("w", (input) => {
7007
7046
  }, "full_name", $scope1_id, "b");
7008
7047
  _for_of(ports, (p) => {
7009
7048
  const $scope5_id = _scope_id();
7010
- _html(`<span${_attr_class(["_s", portChip])}${_attr("title", p.cmd)}><button type=button${_attr_class(["_hv", "_hB"])}${_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([
7049
+ _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([
7050
+ "_ht",
7051
+ "_hu",
7011
7052
  "_hv",
7012
- "_hw",
7013
- "_hx",
7014
7053
  { ["_q"]: armedPid === p.pid }
7015
7054
  ])}${armedPid === p.pid ? " title=Kill?" : _attr("title", `Kill ${p.cmd} (pid ${p.pid})`)}>`);
7016
7055
  icon_xmark_default({ size: 12 });
@@ -7106,10 +7145,10 @@ var side_nav_item_default = _template("x", (input) => {
7106
7145
  _if(() => {
7107
7146
  if (input.rail) {
7108
7147
  const $scope2_id = _scope_id();
7109
- _html(`<a${_attr("href", `/w/${ws$1.id}`)}${_attr_class([railBtn, { ["_gp"]: 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([
7110
- "_z",
7148
+ _html(`<a${_attr("href", `/w/${ws$1.id}`)}${_attr_class([railBtn, { ["_gn"]: 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([
7149
+ "_y",
7111
7150
  phase[dot],
7112
- "_gs"
7151
+ "_gq"
7113
7152
  ])}></span>${_el_resume($scope2_id, "c", $sg__input_workspaceId__OR__input_status)}</a>${_el_resume($scope2_id, "a", _serialize_guard($scope0_reason, 3))}`);
7114
7153
  _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) })))));
7115
7154
  return 0;
@@ -7117,15 +7156,15 @@ var side_nav_item_default = _template("x", (input) => {
7117
7156
  const $scope3_id = _scope_id();
7118
7157
  const sessions$1 = input.sessions || [];
7119
7158
  const phaseLabel = dot === "working" ? "Working" : dot === "waiting" ? "Needs input" : dot === "idle" ? "Idle" : "Not running";
7120
- _html(`<section${_attr_class(["_gu", {
7121
- ["_gp"]: input.current,
7122
- ["_5"]: input.current,
7123
- ["_gv"]: input.railPop,
7124
- ["_gt"]: input.page
7125
- }])}><div${_attr_class("_gw")}><a${_attr("href", `/w/${ws$1.id}`)}${_attr_class("_gx")}><span${_attr_class([
7126
- "_z",
7159
+ _html(`<section${_attr_class(["_gs", {
7160
+ ["_gn"]: input.current,
7161
+ ["_4"]: input.current,
7162
+ ["_gt"]: input.railPop,
7163
+ ["_gr"]: input.page
7164
+ }])}><div${_attr_class("_gu")}><a${_attr("href", `/w/${ws$1.id}`)}${_attr_class("_gv")}><span${_attr_class([
7165
+ "_y",
7127
7166
  phase[dot],
7128
- "_gK"
7167
+ "_gI"
7129
7168
  ])}${_attr("title", phaseLabel)}></span>${_el_resume($scope3_id, "d", $sg__input_workspaceId__OR__input_status)}`);
7130
7169
  _if(() => {
7131
7170
  if (sessions$1.length === 1) {
@@ -7138,7 +7177,7 @@ var side_nav_item_default = _template("x", (input) => {
7138
7177
  icon_agent_default({
7139
7178
  agent: activeAgent(sessions$1[0]),
7140
7179
  size: 12,
7141
- class: "_gC"
7180
+ class: "_gA"
7142
7181
  });
7143
7182
  $si__input_sessions && writeScope($scope14_id, {
7144
7183
  _: _scope_with_id($scope3_id),
@@ -7148,16 +7187,16 @@ var side_nav_item_default = _template("x", (input) => {
7148
7187
  }
7149
7188
  }, $scope3_id, "e", $sg__input_sessions, $sg__input_sessions);
7150
7189
  const metaText = sessions$1.length === 0 ? phaseLabel : sessions$1.length === 1 ? sessions$1[0].title || "" : `${sessions$1.length} sessions`;
7151
- _html(`<span${_attr_class("_gD")}><span${_attr_class("_gE")}>${_escape(ws$1.name)}${_el_resume($scope3_id, "h", $sg__input_workspaces__OR__input_workspaceId)}</span>`);
7190
+ _html(`<span${_attr_class("_gB")}><span${_attr_class("_gC")}>${_escape(ws$1.name)}${_el_resume($scope3_id, "h", $sg__input_workspaces__OR__input_workspaceId)}</span>`);
7152
7191
  _if(() => {
7153
7192
  if (input.page && metaText) {
7154
7193
  const $scope16_id = _scope_id();
7155
- _html(`<span${_attr_class("_gI")}>${_escape(metaText)}${_el_resume($scope16_id, "b", _serialize_guard($scope0_reason, 7))}</span>`);
7194
+ _html(`<span${_attr_class("_gG")}>${_escape(metaText)}${_el_resume($scope16_id, "b", _serialize_guard($scope0_reason, 7))}</span>`);
7156
7195
  $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) });
7157
7196
  return 0;
7158
7197
  } else if (sessions$1.length === 1 && sessions$1[0].title) {
7159
7198
  const $scope15_id = _scope_id();
7160
- _html(`<span${_attr_class("_gF")}>${_escape(sessions$1[0].title)}${_el_resume($scope15_id, "b", $sg__input_sessions)}</span>`);
7199
+ _html(`<span${_attr_class("_gD")}>${_escape(sessions$1[0].title)}${_el_resume($scope15_id, "b", $sg__input_sessions)}</span>`);
7161
7200
  $si__input_page__OR__input_sessions__OR__input_workspaceId__OR__input_status && writeScope($scope15_id, { _: $si__input_sessions && _scope_with_id($scope3_id) });
7162
7201
  return 1;
7163
7202
  }
@@ -7167,10 +7206,10 @@ var side_nav_item_default = _template("x", (input) => {
7167
7206
  if (input.page) {
7168
7207
  const $scope4_id = _scope_id();
7169
7208
  _html(`<span${_attr_class([
7170
- "_I",
7171
- "_R",
7172
- "_K",
7173
- "_gJ"
7209
+ "_H",
7210
+ "_Q",
7211
+ "_J",
7212
+ "_gH"
7174
7213
  ])}>${input.current ? "Open" : ""}${_el_resume($scope4_id, "b", _serialize_guard($scope0_reason, 21))}</span>`);
7175
7214
  $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, {
7176
7215
  _: _scope_with_id($scope3_id),
@@ -7183,7 +7222,7 @@ var side_nav_item_default = _template("x", (input) => {
7183
7222
  _if(() => {
7184
7223
  if (!input.page) {
7185
7224
  const $scope5_id = _scope_id();
7186
- _html(`<div${_attr_class("_gy")}>`);
7225
+ _html(`<div${_attr_class("_gw")}>`);
7187
7226
  _if(() => {
7188
7227
  if (input.onNewSession) {
7189
7228
  const $scope6_id = _scope_id();
@@ -7197,7 +7236,7 @@ var side_nav_item_default = _template("x", (input) => {
7197
7236
  _html(`</button>${_el_resume($scope6_id, "a")}<div${_attr("id", newPopId)} popover=auto${_attr_class(sessionPop)}>`);
7198
7237
  _for_of([], (agent) => {
7199
7238
  const $scope7_id = _scope_id();
7200
- _html(`<button${_attr_class("_go")}>`);
7239
+ _html(`<button${_attr_class("_f5")}>`);
7201
7240
  _set_serialize_reason(12);
7202
7241
  const $childScope2 = _peek_scope_id();
7203
7242
  icon_agent_default({
@@ -7232,7 +7271,7 @@ var side_nav_item_default = _template("x", (input) => {
7232
7271
  return 0;
7233
7272
  }
7234
7273
  }, $scope5_id, "c", $sg__input_onReview, $sg__input_onReview, $sg__input_onNewSession__OR__input_onReview, 0, 1);
7235
- _html(`<a${input.managing ? _attr("href", `/w/${ws$1.id}`) : _attr("href", `/w/${ws$1.id}/manage`)}${_attr_class([rowIcon, { ["_gq"]: input.managing }])} title=${input.managing ? "\"Back to terminal\"" : "\"Manage workspace\""}${input.managing ? " aria-current=page" : ""}>`);
7274
+ _html(`<a${input.managing ? _attr("href", `/w/${ws$1.id}`) : _attr("href", `/w/${ws$1.id}/manage`)}${_attr_class([rowIcon, { ["_go"]: input.managing }])} title=${input.managing ? "\"Back to terminal\"" : "\"Manage workspace\""}${input.managing ? " aria-current=page" : ""}>`);
7236
7275
  icon_manage_default({ size: 12 });
7237
7276
  _html(`</a>${_el_resume($scope5_id, "d", _serialize_guard($scope0_reason, 8))}</div>`);
7238
7277
  _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, {
@@ -7242,7 +7281,7 @@ var side_nav_item_default = _template("x", (input) => {
7242
7281
  return 0;
7243
7282
  }
7244
7283
  }, $scope3_id, "k", $sg__input_page, $sg__input_page, 1, 0, 1);
7245
- _html(`</div><div${_attr_class("_gP")}>`);
7284
+ _html(`</div><div${_attr_class("_gN")}>`);
7246
7285
  _if(() => {
7247
7286
  if (sessions$1.length === 1 && openPlan) {
7248
7287
  const $scope11_id = _scope_id();
@@ -7250,7 +7289,7 @@ var side_nav_item_default = _template("x", (input) => {
7250
7289
  const $childScope3 = _peek_scope_id();
7251
7290
  usage_pcts_default({
7252
7291
  agent: openPlan,
7253
- class: "_gG"
7292
+ class: "_gE"
7254
7293
  });
7255
7294
  _subscribe($openPlan__closures, writeScope($scope11_id, {
7256
7295
  a: _existing_scope($childScope3),
@@ -7261,14 +7300,14 @@ var side_nav_item_default = _template("x", (input) => {
7261
7300
  }, $scope3_id, "m");
7262
7301
  _for_of(sessions$1.length > 1 ? sessions$1 : [], (s) => {
7263
7302
  const $scope8_id = _scope_id();
7264
- _html(`<div${_attr_class(["_gz", { ["_gp"]: s.id === input.currentTab }])}>`);
7303
+ _html(`<div${_attr_class(["_gx", { ["_gn"]: s.id === input.currentTab }])}>`);
7265
7304
  _if(() => {
7266
7305
  if (renamingId === s.id) {
7267
7306
  const $scope10_id = _scope_id();
7268
7307
  _html(`<span${_attr_class([
7269
- "_z",
7308
+ "_y",
7270
7309
  phase[sessionPhase(s.state)],
7271
- "_gN"
7310
+ "_gL"
7272
7311
  ])}></span>${_el_resume($scope10_id, "a", $sg__input_sessions)}`);
7273
7312
  _set_serialize_reason({
7274
7313
  1: $sg__input_sessions,
@@ -7278,17 +7317,17 @@ var side_nav_item_default = _template("x", (input) => {
7278
7317
  icon_agent_default({
7279
7318
  agent: activeAgent(s),
7280
7319
  size: 13,
7281
- class: "_gR"
7320
+ class: "_gP"
7282
7321
  });
7283
7322
  _html(`<input${_attr_input_value($scope10_id, "c", renameValue, _resume((_new_renameValue) => {
7284
7323
  renameValue = _new_renameValue;
7285
- }, "x0", $scope10_id))}${_attr_class(["_U", "_gO"])} aria-label="Session name">${_el_resume($scope10_id, "c")}`);
7324
+ }, "x0", $scope10_id))}${_attr_class(["_T", "_gM"])} aria-label="Session name">${_el_resume($scope10_id, "c")}`);
7286
7325
  _script($scope10_id, "x5");
7287
7326
  _subscribe($renameValue__closures, writeScope($scope10_id, { b: $si__input_sessions && _existing_scope($childScope4) }));
7288
7327
  return 0;
7289
7328
  } else {
7290
7329
  const $scope9_id = _scope_id();
7291
- _html(`<a${_attr("href", `/w/${ws$1.id}?s=${s.id}`)}${_attr_class("_gQ")}><span${_attr_class(["_z", phase[sessionPhase(s.state)]])}></span>${_el_resume($scope9_id, "b", $sg__input_sessions)}`);
7330
+ _html(`<a${_attr("href", `/w/${ws$1.id}?s=${s.id}`)}${_attr_class("_gO")}><span${_attr_class(["_y", phase[sessionPhase(s.state)]])}></span>${_el_resume($scope9_id, "b", $sg__input_sessions)}`);
7292
7331
  _set_serialize_reason({
7293
7332
  1: $sg__input_sessions,
7294
7333
  2: $sg__input_sessions
@@ -7297,9 +7336,9 @@ var side_nav_item_default = _template("x", (input) => {
7297
7336
  icon_agent_default({
7298
7337
  agent: activeAgent(s),
7299
7338
  size: 13,
7300
- class: "_gR"
7339
+ class: "_gP"
7301
7340
  });
7302
- _html(`<span${_attr_class("_gL")}>${_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("_gM")}><button${_attr_class(rowIcon)} title="Rename session">`);
7341
+ _html(`<span${_attr_class("_gJ")}>${_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("_gK")}><button${_attr_class(rowIcon)} title="Rename session">`);
7303
7342
  icon_edit_default({ size: 12 });
7304
7343
  _html(`</button>${_el_resume($scope9_id, "g")}<button${_attr_class([close, { ["_q"]: armedKill === s.id }])} title=${armedKill === s.id ? "Close?" : "\"Close session\""}>`);
7305
7344
  icon_xmark_default({ size: 12 });
@@ -7311,7 +7350,7 @@ var side_nav_item_default = _template("x", (input) => {
7311
7350
  const $childScope6 = _peek_scope_id();
7312
7351
  usage_pcts_default({
7313
7352
  agent: openPlan,
7314
- class: "_gH"
7353
+ class: "_gF"
7315
7354
  });
7316
7355
  _subscribe($openPlan__closures, writeScope($scope12_id, {
7317
7356
  a: _existing_scope($childScope6),
@@ -7440,7 +7479,7 @@ var icon_folder_plus_default = _template("$", (input) => {
7440
7479
  });
7441
7480
  //#endregion
7442
7481
  //#region src/tags/icons/icon-sidebar-collapse.marko
7443
- var icon_sidebar_collapse_default = _template("hb", (input) => {
7482
+ var icon_sidebar_collapse_default = _template("gb", (input) => {
7444
7483
  const $scope0_reason = _scope_reason(), $sg__input_size__OR__input_class = _serialize_guard($scope0_reason, 0);
7445
7484
  const $scope0_id = _scope_id();
7446
7485
  _set_serialize_reason({
@@ -7501,40 +7540,39 @@ var side_nav_default = _template("y", (input) => {
7501
7540
  const itemIds = input.allWorkspaces?.length ? input.allWorkspaces.filter((w) => w.status === "active").map((w) => w.id) : [ws.id];
7502
7541
  const workspaces = input.allWorkspaces || [ws];
7503
7542
  const allStatus = input.allStatus || {};
7504
- allStatus[ws.id];
7505
7543
  const isPage = view === "nav";
7506
7544
  const backHref = `/w/${ws.id}`;
7507
7545
  const iconSrc = `/api/instance/icon${input.instanceAccent ? `?v=${input.instanceAccent.slice(1)}` : ""}`;
7508
7546
  const otherIds = itemIds.filter((id) => id !== ws.id);
7509
7547
  const listIds = isPage ? [ws.id, ...otherIds] : itemIds;
7510
- _html(`<aside${_attr_class(["_eG", {
7511
- ["_eE"]: !navOpen,
7512
- ["_eF"]: isPage
7548
+ _html(`<aside${_attr_class(["_et", {
7549
+ ["_er"]: !navOpen,
7550
+ ["_es"]: isPage
7513
7551
  }])}${_attr("hidden", view === "diff")}>`);
7514
7552
  _if(() => {
7515
7553
  if (isPage) {
7516
7554
  const $scope1_id = _scope_id();
7517
- _html(`<header${_attr_class("_eJ")}><div${_attr_class("_eS")}>`);
7555
+ _html(`<header${_attr_class("_ew")}><div${_attr_class("_eF")}>`);
7518
7556
  _if(() => {
7519
7557
  if (input.instanceName) {
7520
7558
  const $scope2_id = _scope_id();
7521
- _html(`<div${_attr_class("_eP")} title="This work server (Settings → Appearance)"><img${_attr_class("_eQ")}${_attr("src", iconSrc)} alt aria-hidden=true>${_el_resume($scope2_id, "b", $sg__input_instanceAccent)}<span${_attr_class("_eR")}>${_escape(input.instanceName)}${_el_resume($scope2_id, "d", $sg__input_instanceName)}</span></div>`);
7559
+ _html(`<div${_attr_class("_eC")} title="This work server (Settings → Appearance)"><img${_attr_class("_eD")}${_attr("src", iconSrc)} alt aria-hidden=true>${_el_resume($scope2_id, "b", $sg__input_instanceAccent)}<span${_attr_class("_eE")}>${_escape(input.instanceName)}${_el_resume($scope2_id, "d", $sg__input_instanceName)}</span></div>`);
7522
7560
  _subscribe($si__input_instanceAccent && $iconSrc__closures, _subscribe($si__input_instanceName && $input_instanceName__closures, writeScope($scope2_id, { _: _scope_with_id($scope1_id) })));
7523
7561
  return 0;
7524
7562
  }
7525
7563
  }, $scope1_id, "c", $sg__input_instanceName, $sg__input_instanceName, 1, 0, 1);
7526
- _html(`<h1${_attr_class("_eK")}>Workspaces</h1></div><div${_attr_class("_eL")}>`);
7564
+ _html(`<h1${_attr_class("_ex")}>Workspaces</h1></div><div${_attr_class("_ey")}>`);
7527
7565
  _if(() => {}, $scope1_id, "f", 1, 1, 1, 0, 1);
7528
7566
  _html(`<a${view === "settings" ? _attr("href", backHref) : " href=/settings"}${_attr_class([
7529
7567
  iconBtn$1,
7530
- "_eM",
7531
- { ["_eB"]: view === "settings" }
7568
+ "_ez",
7569
+ { ["_eo"]: view === "settings" }
7532
7570
  ])} title=${view === "settings" ? "\"Back to workspace\"" : "Settings"}${view === "settings" ? " aria-current=page" : ""}>`);
7533
7571
  icon_settings_default({ size: 16 });
7534
7572
  _if(() => {
7535
7573
  if (input.setupReady === false) {
7536
7574
  const $scope12_id = _scope_id();
7537
- _html(`<span${_attr_class(["_z", "_eD"])} title="Machine setup incomplete"></span>`);
7575
+ _html(`<span${_attr_class(["_y", "_eq"])} title="Machine setup incomplete"></span>`);
7538
7576
  $si__input_setupReady && writeScope($scope12_id, {});
7539
7577
  return 0;
7540
7578
  }
@@ -7547,18 +7585,18 @@ var side_nav_default = _template("y", (input) => {
7547
7585
  _if(() => {
7548
7586
  if (!isPage && input.instanceName) {
7549
7587
  const $scope3_id = _scope_id();
7550
- _html(`<div${_attr_class("_eP")} title="This work server (Settings → Appearance)"><img${_attr_class("_eQ")}${_attr("src", iconSrc)} alt aria-hidden=true>${_el_resume($scope3_id, "b", $sg__input_instanceAccent)}<span${_attr_class("_eR")}>${_escape(input.instanceName)}${_el_resume($scope3_id, "d", $sg__input_instanceName)}</span></div>`);
7588
+ _html(`<div${_attr_class("_eC")} title="This work server (Settings → Appearance)"><img${_attr_class("_eD")}${_attr("src", iconSrc)} alt aria-hidden=true>${_el_resume($scope3_id, "b", $sg__input_instanceAccent)}<span${_attr_class("_eE")}>${_escape(input.instanceName)}${_el_resume($scope3_id, "d", $sg__input_instanceName)}</span></div>`);
7551
7589
  writeScope($scope3_id, {});
7552
7590
  return 0;
7553
7591
  }
7554
7592
  }, $scope0_id, "c", 1, 1, 1, 0, 1);
7555
- _html(`<div${_attr_class("_eT")}>`);
7593
+ _html(`<div${_attr_class("_eG")}>`);
7556
7594
  _for_of(listIds, (wsId) => {
7557
7595
  const $scope4_id = _scope_id();
7558
7596
  _if(() => {
7559
7597
  if (isPage && wsId === ws.id) {
7560
7598
  const $scope13_id = _scope_id();
7561
- _html(`<h2${_attr_class(["_bM", "_eN"])}>Current</h2>`);
7599
+ _html(`<h2${_attr_class(["_bB", "_eA"])}>Current</h2>`);
7562
7600
  writeScope($scope13_id, {});
7563
7601
  return 0;
7564
7602
  }
@@ -7566,7 +7604,7 @@ var side_nav_default = _template("y", (input) => {
7566
7604
  _if(() => {
7567
7605
  if (isPage && wsId !== ws.id && wsId === otherIds[0]) {
7568
7606
  const $scope14_id = _scope_id();
7569
- _html(`<h2${_attr_class(["_bM", "_eN"])}>Other workspaces</h2>`);
7607
+ _html(`<h2${_attr_class(["_bB", "_eA"])}>Other workspaces</h2>`);
7570
7608
  writeScope($scope14_id, {});
7571
7609
  return 0;
7572
7610
  }
@@ -7650,7 +7688,7 @@ var side_nav_default = _template("y", (input) => {
7650
7688
  railHover = null;
7651
7689
  }, 150);
7652
7690
  }, "y6", $scope5_id);
7653
- _html(`<div${_attr_class("_eU")}>`);
7691
+ _html(`<div${_attr_class("_eH")}>`);
7654
7692
  _for_of(itemIds, (wsId, i) => {
7655
7693
  const $scope6_id = _scope_id();
7656
7694
  _html("<span>");
@@ -7704,7 +7742,7 @@ var side_nav_default = _template("y", (input) => {
7704
7742
  if (railHover) {
7705
7743
  const $scope7_id = _scope_id();
7706
7744
  const hoverId = railHover.id;
7707
- _html(`<div${_attr_class(["_4", "_eX"])}${_attr_style(`top:${railHover.top}px;left:${railHover.left}px`)}>`);
7745
+ _html(`<div${_attr_class(["_3", "_eK"])}${_attr_style(`top:${railHover.top}px;left:${railHover.left}px`)}>`);
7708
7746
  _set_serialize_reason({
7709
7747
  0: 1,
7710
7748
  1: 1,
@@ -7771,9 +7809,9 @@ var side_nav_default = _template("y", (input) => {
7771
7809
  _subscribe($si__input_allStatus && $allStatus__closures, _subscribe($si__input_workspace__OR__input_allWorkspaces && $workspaces__closures, _subscribe($view__closures, _subscribe($si__input_tab__OR__input_tabChange && $tab__closures, _subscribe($si__input_workspace && $ws_id__closures, _subscribe($si__input_onCloseSession && $input_onCloseSession__closures, _subscribe($si__input_onRenameSession && $input_onRenameSession__closures, _subscribe($si__input_sessions && $input_sessions__closures, _subscribe($si__input_onReviewOther && $input_onReviewOther__closures, _subscribe($si__input_onReviewOpened && $input_onReviewOpened__closures, _subscribe($si__input_onNewSession && $input_onNewSession__closures, _subscribe($si__input_agents && $input_agents__closures, writeScope($scope7_id, {
7772
7810
  d: hoverId,
7773
7811
  b: _existing_scope($childScope3),
7774
- Cb5: $si__input_workspace && 1,
7775
- Cbd: $si__input_workspace__OR__input_allWorkspaces && 1,
7776
- Cbe: $si__input_allStatus && 1
7812
+ Cb4: $si__input_workspace && 1,
7813
+ Cbc: $si__input_workspace__OR__input_allWorkspaces && 1,
7814
+ Cbd: $si__input_allStatus && 1
7777
7815
  })))))))))))));
7778
7816
  return 0;
7779
7817
  }
@@ -7789,7 +7827,7 @@ var side_nav_default = _template("y", (input) => {
7789
7827
  return 0;
7790
7828
  }
7791
7829
  }, $scope0_id, "e");
7792
- _html(`<div${_attr_class("_eV")}>`);
7830
+ _html(`<div${_attr_class("_eI")}>`);
7793
7831
  _if(() => {
7794
7832
  if (isPage) {
7795
7833
  const $scope9_id = _scope_id();
@@ -7797,7 +7835,7 @@ var side_nav_default = _template("y", (input) => {
7797
7835
  "_o",
7798
7836
  "_p",
7799
7837
  btnLg,
7800
- "_eO"
7838
+ "_eB"
7801
7839
  ])} title=${view === "new" ? "\"Back to workspace\"" : "\"New workspace\""}${view === "new" ? " aria-current=page" : ""}>`);
7802
7840
  icon_folder_plus_default({ size: 16 });
7803
7841
  _html(` New workspace</a>${_el_resume($scope9_id, "a")}`);
@@ -7819,19 +7857,19 @@ var side_nav_default = _template("y", (input) => {
7819
7857
  return 1;
7820
7858
  }
7821
7859
  }, $scope8_id, "a", 1, 1, 1, "</button>", 1);
7822
- _html(`<div${_attr_class(["_y", "_eW"])}></div>`);
7860
+ _html(`<div${_attr_class(["_x", "_eJ"])}></div>`);
7823
7861
  _if(() => {}, $scope8_id, "c", 1, 1, 1, 0, 1);
7824
- _html(`<a${view === "settings" ? _attr("href", backHref) : " href=/settings"}${_attr_class([iconBtn$1, { ["_eB"]: view === "settings" }])} title=${view === "settings" ? "\"Back to workspace\"" : "Settings"}${view === "settings" ? " aria-current=page" : ""}>`);
7862
+ _html(`<a${view === "settings" ? _attr("href", backHref) : " href=/settings"}${_attr_class([iconBtn$1, { ["_eo"]: view === "settings" }])} title=${view === "settings" ? "\"Back to workspace\"" : "Settings"}${view === "settings" ? " aria-current=page" : ""}>`);
7825
7863
  icon_settings_default({ size: 15 });
7826
7864
  _if(() => {
7827
7865
  if (input.setupReady === false) {
7828
7866
  const $scope17_id = _scope_id();
7829
- _html(`<span${_attr_class(["_z", "_eD"])} title="Machine setup incomplete"></span>`);
7867
+ _html(`<span${_attr_class(["_y", "_eq"])} title="Machine setup incomplete"></span>`);
7830
7868
  $si__input_setupReady && writeScope($scope17_id, {});
7831
7869
  return 0;
7832
7870
  }
7833
7871
  }, $scope8_id, "f", $sg__input_setupReady, $sg__input_setupReady, 1, 0, 1);
7834
- _html(`</a>${_el_resume($scope8_id, "d")}<a${view === "new" ? _attr("href", backHref) : " href=/new"}${_attr_class([iconBtn$1, { ["_eB"]: view === "new" }])} title=${view === "new" ? "\"Back to workspace\"" : "\"New workspace\""}${view === "new" ? " aria-current=page" : ""}>`);
7872
+ _html(`</a>${_el_resume($scope8_id, "d")}<a${view === "new" ? _attr("href", backHref) : " href=/new"}${_attr_class([iconBtn$1, { ["_eo"]: view === "new" }])} title=${view === "new" ? "\"Back to workspace\"" : "\"New workspace\""}${view === "new" ? " aria-current=page" : ""}>`);
7835
7873
  icon_folder_plus_default({ size: 16 });
7836
7874
  _html(`</a>${_el_resume($scope8_id, "g")}`);
7837
7875
  _script($scope8_id, "y15");
@@ -7872,36 +7910,36 @@ var side_nav_default = _template("y", (input) => {
7872
7910
  ai: itemIds,
7873
7911
  ak: workspaces,
7874
7912
  al: allStatus,
7875
- an: isPage,
7876
- aq: backHref,
7877
- ar: iconSrc,
7878
- as: otherIds,
7879
- au: otherIds?.[0],
7913
+ am: isPage,
7914
+ ap: backHref,
7915
+ aq: iconSrc,
7916
+ ar: otherIds,
7917
+ at: otherIds?.[0],
7880
7918
  ab: input.viewChange || void 0,
7881
- aw: $si__input_instanceName && $input_instanceName__closures,
7882
- bh: $si__input_instanceAccent && $iconSrc__closures,
7883
- b9: $notifyOn__closures,
7884
- b5: $si__input_workspace && $ws_id__closures,
7885
- bd: $si__input_workspace__OR__input_allWorkspaces && $workspaces__closures,
7886
- be: $si__input_allStatus && $allStatus__closures,
7887
- ay: $si__input_agents && $input_agents__closures,
7888
- az: $si__input_onNewSession && $input_onNewSession__closures,
7889
- b0: $si__input_onReviewOpened && $input_onReviewOpened__closures,
7890
- b1: $si__input_onReviewOther && $input_onReviewOther__closures,
7891
- b2: $si__input_sessions && $input_sessions__closures,
7892
- b3: $si__input_onRenameSession && $input_onRenameSession__closures,
7893
- b4: $si__input_onCloseSession && $input_onCloseSession__closures,
7894
- b6: $si__input_tab__OR__input_tabChange && $tab__closures,
7895
- b7: $view__closures
7919
+ av: $si__input_instanceName && $input_instanceName__closures,
7920
+ bg: $si__input_instanceAccent && $iconSrc__closures,
7921
+ b8: $notifyOn__closures,
7922
+ b4: $si__input_workspace && $ws_id__closures,
7923
+ bc: $si__input_workspace__OR__input_allWorkspaces && $workspaces__closures,
7924
+ bd: $si__input_allStatus && $allStatus__closures,
7925
+ ax: $si__input_agents && $input_agents__closures,
7926
+ ay: $si__input_onNewSession && $input_onNewSession__closures,
7927
+ az: $si__input_onReviewOpened && $input_onReviewOpened__closures,
7928
+ b0: $si__input_onReviewOther && $input_onReviewOther__closures,
7929
+ b1: $si__input_sessions && $input_sessions__closures,
7930
+ b2: $si__input_onRenameSession && $input_onRenameSession__closures,
7931
+ b3: $si__input_onCloseSession && $input_onCloseSession__closures,
7932
+ b5: $si__input_tab__OR__input_tabChange && $tab__closures,
7933
+ b6: $view__closures
7896
7934
  });
7897
7935
  _resume_branch($scope0_id);
7898
7936
  });
7899
- var iconBtn = "_0 _j";
7900
- var sectionCount = "_bz _I _J";
7901
- var content = "_dN _bp";
7902
- var pageMeta = "_dO _bu";
7903
- var pathMeta = "_dR _x";
7904
- var dangerHint = "_dX _S";
7937
+ var iconBtn = "_Z _j";
7938
+ var sectionCount = "_bp _H _I";
7939
+ var content = "_eL _bE";
7940
+ var pageMeta = "_eM _bJ";
7941
+ var pathMeta = "_eP _w";
7942
+ var dangerHint = "_eV _R";
7905
7943
  //#endregion
7906
7944
  //#region src/tags/manage-workspace.marko
7907
7945
  var api$2;
@@ -8032,7 +8070,7 @@ var manage_workspace_default = _template("o", (input) => {
8032
8070
  setTimeout(() => loadProcs(void 0), 500);
8033
8071
  }, "o7", $scope0_id);
8034
8072
  const titleId = _id();
8035
- _html(`<div${_attr_class("_bn")} role=region${_attr("aria-labelledby", titleId)}><div${_attr_class("_bo")}><div${_attr_class(content)}>`);
8073
+ _html(`<div${_attr_class("_bC")} role=region${_attr("aria-labelledby", titleId)}><div${_attr_class("_bD")}><div${_attr_class(content)}>`);
8036
8074
  _set_serialize_reason(30);
8037
8075
  const $childScope = _peek_scope_id();
8038
8076
  page_head_default({
@@ -8045,16 +8083,16 @@ var manage_workspace_default = _template("o", (input) => {
8045
8083
  meta: attrTag({ content: _content_resume("o13", () => {
8046
8084
  _scope_reason();
8047
8085
  const $scope13_id = _scope_id();
8048
- _html(`<span${_attr_class(pageMeta)}${_attr("title", ws.display_path || ws.path)}><span${_attr_class("_dP")}>${_escape(ws.name)}${_el_resume($scope13_id, "c")}</span>`);
8086
+ _html(`<span${_attr_class(pageMeta)}${_attr("title", ws.display_path || ws.path)}><span${_attr_class("_eN")}>${_escape(ws.name)}${_el_resume($scope13_id, "c")}</span>`);
8049
8087
  _if(() => {
8050
8088
  if (ws.status !== "active") {
8051
8089
  const $scope17_id = _scope_id();
8052
- _html(`<span${_attr_class(["_I", "_K"])}>Archived</span>`);
8090
+ _html(`<span${_attr_class(["_H", "_J"])}>Archived</span>`);
8053
8091
  writeScope($scope17_id, {});
8054
8092
  return 0;
8055
8093
  }
8056
8094
  }, $scope13_id, "d", 1, 1, 1, 0, 1);
8057
- _html(`<span${_attr_class("_dQ")} 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")}`);
8095
+ _html(`<span${_attr_class("_eO")} 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")}`);
8058
8096
  _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) })))));
8059
8097
  _resume_branch($scope13_id);
8060
8098
  }, $scope0_id) })
@@ -8082,26 +8120,26 @@ var manage_workspace_default = _template("o", (input) => {
8082
8120
  _if(() => {
8083
8121
  if (pendingAction && actionStep) {
8084
8122
  const $scope11_id = _scope_id();
8085
- _html(`<p${_attr_class("_bw")}><span${_attr_class("_F")}></span><!>${_escape(actionStep)}${_el_resume($scope11_id, "c")}</p>`);
8123
+ _html(`<p${_attr_class("_bm")}><span${_attr_class("_E")}></span><!>${_escape(actionStep)}${_el_resume($scope11_id, "c")}</p>`);
8086
8124
  writeScope($scope11_id, {});
8087
8125
  return 0;
8088
8126
  }
8089
8127
  }, $scope0_id, "f", 1, 1, 1, 0, 1);
8090
- _html(`<section${_attr_class("_bx")}><div${_attr_class("_by")}><h2${_attr_class("_bM")}>Repos</h2><span${_attr_class(sectionCount)}>${_escape(ws.repos.length)}${_el_resume($scope0_id, "k")}</span><div${_attr_class("_y")}></div><button${_attr_class(iconBtn)} title="Refresh repo list" aria-label="Refresh repo list"${_attr("disabled", catalogRefreshing)}>`);
8128
+ _html(`<section${_attr_class("_bn")}><div${_attr_class("_bo")}><h2${_attr_class("_bB")}>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)}>`);
8091
8129
  _set_serialize_reason(1);
8092
8130
  const $childScope2 = _peek_scope_id();
8093
8131
  icon_refresh_default({
8094
8132
  size: 14,
8095
- class: catalogRefreshing && "_E"
8133
+ class: catalogRefreshing && "_D"
8096
8134
  });
8097
- _html(`</button>${_el_resume($scope0_id, "m")}</div><ul${_attr_class("_bA")}>`);
8135
+ _html(`</button>${_el_resume($scope0_id, "m")}</div><ul${_attr_class("_bq")}>`);
8098
8136
  _for_of(ws.repos, (row) => {
8099
8137
  const $scope1_id = _scope_id();
8100
- _html(`<li${_attr_class("_bC")}><div${_attr_class("_bD")}><span${_attr_class(["_bE", "_x"])}>${_escape(row.worktree)}${_el_resume($scope1_id, "d")}/</span><span${_attr_class("_bF")}><a${_attr_class(["_bG", "_dT"])}${_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")}`);
8138
+ _html(`<li${_attr_class("_bs")}><div${_attr_class("_bt")}><span${_attr_class(["_bu", "_w"])}>${_escape(row.worktree)}${_el_resume($scope1_id, "d")}/</span><span${_attr_class("_bv")}><a${_attr_class(["_bw", "_eR"])}${_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")}`);
8101
8139
  _if(() => {
8102
8140
  if (row.base_branch !== row.default_branch) {
8103
8141
  const $scope18_id = _scope_id();
8104
- _html(`<span${_attr_class(["_I", "_x"])} title="Base branch">`);
8142
+ _html(`<span${_attr_class(["_H", "_w"])} title="Base branch">`);
8105
8143
  icon_branch_default({ size: 12 });
8106
8144
  _html(` <!>${_escape(row.base_branch)}${_el_resume($scope18_id, "c")}</span>`);
8107
8145
  writeScope($scope18_id, {});
@@ -8112,15 +8150,15 @@ var manage_workspace_default = _template("o", (input) => {
8112
8150
  _if(() => {
8113
8151
  if (busy.has(row.full_name)) {
8114
8152
  const $scope19_id = _scope_id();
8115
- _html(`<span${_attr_class("_F")}></span>`);
8153
+ _html(`<span${_attr_class("_E")}></span>`);
8116
8154
  writeScope($scope19_id, {});
8117
8155
  return 0;
8118
8156
  } else {
8119
8157
  const $scope10_id = _scope_id();
8120
8158
  _html(`<button${_attr_class([
8121
- "_bH",
8159
+ "_bx",
8160
+ "_1",
8122
8161
  "_2",
8123
- "_3",
8124
8162
  { ["_q"]: confirmingRemove === row.full_name }
8125
8163
  ])}${confirmingRemove === row.full_name ? _attr("title", `Remove ${row.worktree}/? Uncommitted changes are lost.`) : _attr("title", `Remove ${row.worktree}/`)}>`);
8126
8164
  _if(() => {
@@ -8151,19 +8189,19 @@ var manage_workspace_default = _template("o", (input) => {
8151
8189
  }, "full_name", $scope0_id, "p", 1, 1, 1, 0, 1);
8152
8190
  _for_of([...busy].filter((n) => !inWorkspace.has(n)), (name) => {
8153
8191
  const $scope22_id = _scope_id();
8154
- _html(`<li${_attr_class(["_bC", "_bB"])}><span${_attr_class("_F")}></span><div${_attr_class("_bD")}><span${_attr_class("_bG")}>Adding <!>${_escape(name)}${_el_resume($scope22_id, "e")}…</span></div></li>`);
8192
+ _html(`<li${_attr_class(["_bs", "_br"])}><span${_attr_class("_E")}></span><div${_attr_class("_bt")}><span${_attr_class("_bw")}>Adding <!>${_escape(name)}${_el_resume($scope22_id, "e")}…</span></div></li>`);
8155
8193
  writeScope($scope22_id, {});
8156
8194
  }, (n) => n, $scope0_id, "q", 1, 1, 1, 0, 1);
8157
8195
  _html("</ul>");
8158
8196
  _if(() => {
8159
8197
  if (!ws.repos.length && !busy.size) {
8160
8198
  const $scope23_id = _scope_id();
8161
- _html(`<p${_attr_class("_bI")}>No repos yet. Search below to add one.</p>`);
8199
+ _html(`<p${_attr_class("_by")}>No repos yet. Search below to add one.</p>`);
8162
8200
  writeScope($scope23_id, {});
8163
8201
  return 0;
8164
8202
  }
8165
8203
  }, $scope0_id, "r", 1, 1, 1, 0, 1);
8166
- _html(`<div${_attr_class("_dS")}>`);
8204
+ _html(`<div${_attr_class("_eQ")}>`);
8167
8205
  const $childScope3 = _peek_scope_id();
8168
8206
  let refreshCatalog = repo_picker_default({
8169
8207
  exclude: inWorkspace,
@@ -8184,7 +8222,7 @@ var manage_workspace_default = _template("o", (input) => {
8184
8222
  _if(() => {
8185
8223
  if (wsSkills.length || repoSkills.length) {
8186
8224
  const $scope2_id = _scope_id();
8187
- _html(`<section${_attr_class("_bx")}><div${_attr_class("_by")}><h2${_attr_class("_bM")}>Skills</h2>`);
8225
+ _html(`<section${_attr_class("_bn")}><div${_attr_class("_bo")}><h2${_attr_class("_bB")}>Skills</h2>`);
8188
8226
  _if(() => {
8189
8227
  if (wsSkills.length) {
8190
8228
  const $scope24_id = _scope_id();
@@ -8193,23 +8231,23 @@ var manage_workspace_default = _template("o", (input) => {
8193
8231
  return 0;
8194
8232
  }
8195
8233
  }, $scope2_id, "d", 1, 1, 1, 0, 1);
8196
- _html(`</div><ul${_attr_class("_bA")}>`);
8234
+ _html(`</div><ul${_attr_class("_bq")}>`);
8197
8235
  _for_of(wsSkills, (s) => {
8198
8236
  const $scope3_id = _scope_id();
8199
- _html(`<li${_attr_class("_bC")}><div${_attr_class("_bD")}><span${_attr_class(["_bE", "_x"])}>${_escape(s.name)}${_el_resume($scope3_id, "d")}</span><span${_attr_class("_bF")}>`);
8237
+ _html(`<li${_attr_class("_bs")}><div${_attr_class("_bt")}><span${_attr_class(["_bu", "_w"])}>${_escape(s.name)}${_el_resume($scope3_id, "d")}</span><span${_attr_class("_bv")}>`);
8200
8238
  _if(() => {
8201
8239
  if (s.broken) {
8202
8240
  const $scope25_id = _scope_id();
8203
8241
  _html(`<span${_attr_class([
8204
- "_I",
8205
- "_K",
8242
+ "_H",
8243
+ "_J",
8206
8244
  tone.danger
8207
8245
  ])}${_attr("title", `Points into ${s.worktree || "a repo"} that is no longer here`)}>broken link</span>${_el_resume($scope25_id, "a")}`);
8208
8246
  writeScope($scope25_id, {});
8209
8247
  return 0;
8210
8248
  } else if (s.worktree) {
8211
8249
  const $scope26_id = _scope_id();
8212
- _html(`<span${_attr_class(["_I", "_x"])}>from <!>${_escape(s.worktree)}${_el_resume($scope26_id, "b")}/</span>`);
8250
+ _html(`<span${_attr_class(["_H", "_w"])}>from <!>${_escape(s.worktree)}${_el_resume($scope26_id, "b")}/</span>`);
8213
8251
  writeScope($scope26_id, {});
8214
8252
  return 1;
8215
8253
  }
@@ -8217,7 +8255,7 @@ var manage_workspace_default = _template("o", (input) => {
8217
8255
  _if(() => {
8218
8256
  if (s.shadows === "global") {
8219
8257
  const $scope30_id = _scope_id();
8220
- _html(`<span${_attr_class("_I")} title="Used instead of the system skill of the same name">overrides system</span>`);
8258
+ _html(`<span${_attr_class("_H")} title="Used instead of the system skill of the same name">overrides system</span>`);
8221
8259
  writeScope($scope30_id, {});
8222
8260
  return 0;
8223
8261
  }
@@ -8225,7 +8263,7 @@ var manage_workspace_default = _template("o", (input) => {
8225
8263
  _if(() => {
8226
8264
  if (skills && s.agents.length < skills.agents.length) {
8227
8265
  const $scope27_id = _scope_id();
8228
- _html(`<span${_attr_class("_I")}${_attr("title", `Only for ${s.agents.map(agentLabel).join(", ")}`)}>${_escape(s.agents.map(agentLabel).join(", "))}${_el_resume($scope27_id, "b")} only</span>${_el_resume($scope27_id, "a")}`);
8266
+ _html(`<span${_attr_class("_H")}${_attr("title", `Only for ${s.agents.map(agentLabel).join(", ")}`)}>${_escape(s.agents.map(agentLabel).join(", "))}${_el_resume($scope27_id, "b")} only</span>${_el_resume($scope27_id, "a")}`);
8229
8267
  writeScope($scope27_id, {});
8230
8268
  return 0;
8231
8269
  }
@@ -8234,7 +8272,7 @@ var manage_workspace_default = _template("o", (input) => {
8234
8272
  _if(() => {
8235
8273
  if (s.description) {
8236
8274
  const $scope28_id = _scope_id();
8237
- _html(`<span${_attr_class("_bG")}${_attr("title", s.description)}>${_escape(s.description)}${_el_resume($scope28_id, "b")}</span>${_el_resume($scope28_id, "a")}`);
8275
+ _html(`<span${_attr_class("_bw")}${_attr("title", s.description)}>${_escape(s.description)}${_el_resume($scope28_id, "b")}</span>${_el_resume($scope28_id, "a")}`);
8238
8276
  writeScope($scope28_id, {});
8239
8277
  return 0;
8240
8278
  }
@@ -8242,7 +8280,7 @@ var manage_workspace_default = _template("o", (input) => {
8242
8280
  _if(() => {
8243
8281
  if (s.sourceUrl) {
8244
8282
  const $scope29_id = _scope_id();
8245
- _html(`<a${_attr_class(["_bG", "_dT"])}${_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")}`);
8283
+ _html(`<a${_attr_class(["_bw", "_eR"])}${_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")}`);
8246
8284
  writeScope($scope29_id, {});
8247
8285
  return 0;
8248
8286
  }
@@ -8251,15 +8289,15 @@ var manage_workspace_default = _template("o", (input) => {
8251
8289
  _if(() => {
8252
8290
  if (busy.has(s.id)) {
8253
8291
  const $scope31_id = _scope_id();
8254
- _html(`<span${_attr_class("_F")}></span>`);
8292
+ _html(`<span${_attr_class("_E")}></span>`);
8255
8293
  writeScope($scope31_id, {});
8256
8294
  return 0;
8257
8295
  } else {
8258
8296
  const $scope12_id = _scope_id();
8259
8297
  _html(`<button${_attr_class([
8260
- "_bH",
8298
+ "_bx",
8299
+ "_1",
8261
8300
  "_2",
8262
- "_3",
8263
8301
  { ["_q"]: confirmingSkill === s.id }
8264
8302
  ])}${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}`)}>`);
8265
8303
  _if(() => {
@@ -8295,14 +8333,14 @@ var manage_workspace_default = _template("o", (input) => {
8295
8333
  _if(() => {
8296
8334
  if (repoSkills.length) {
8297
8335
  const $scope4_id = _scope_id();
8298
- _html(`<ul${_attr_class("_bA")}>`);
8336
+ _html(`<ul${_attr_class("_bq")}>`);
8299
8337
  _for_of(repoSkills, (s) => {
8300
8338
  const $scope5_id = _scope_id();
8301
- _html(`<li${_attr_class("_bC")}><div${_attr_class("_bD")}><span${_attr_class(["_bE", "_x"])}>${_escape(s.name)}${_el_resume($scope5_id, "d")}</span><span${_attr_class("_bF")}><span${_attr_class(["_bG", "_x"])}>${_escape(s.worktree)}${_el_resume($scope5_id, "g")}/</span>`);
8339
+ _html(`<li${_attr_class("_bs")}><div${_attr_class("_bt")}><span${_attr_class(["_bu", "_w"])}>${_escape(s.name)}${_el_resume($scope5_id, "d")}</span><span${_attr_class("_bv")}><span${_attr_class(["_bw", "_w"])}>${_escape(s.worktree)}${_el_resume($scope5_id, "g")}/</span>`);
8302
8340
  _if(() => {
8303
8341
  if (s.shadows) {
8304
8342
  const $scope34_id = _scope_id();
8305
- _html(`<span${_attr_class("_I")}${_attr("title", `A ${s.shadows} skill of the same name already exists`)}>name taken</span>${_el_resume($scope34_id, "a")}`);
8343
+ _html(`<span${_attr_class("_H")}${_attr("title", `A ${s.shadows} skill of the same name already exists`)}>name taken</span>${_el_resume($scope34_id, "a")}`);
8306
8344
  writeScope($scope34_id, {});
8307
8345
  return 0;
8308
8346
  }
@@ -8311,7 +8349,7 @@ var manage_workspace_default = _template("o", (input) => {
8311
8349
  _if(() => {
8312
8350
  if (s.description) {
8313
8351
  const $scope35_id = _scope_id();
8314
- _html(`<span${_attr_class("_bG")}${_attr("title", s.description)}>${_escape(s.description)}${_el_resume($scope35_id, "b")}</span>${_el_resume($scope35_id, "a")}`);
8352
+ _html(`<span${_attr_class("_bw")}${_attr("title", s.description)}>${_escape(s.description)}${_el_resume($scope35_id, "b")}</span>${_el_resume($scope35_id, "a")}`);
8315
8353
  writeScope($scope35_id, {});
8316
8354
  return 0;
8317
8355
  }
@@ -8320,7 +8358,7 @@ var manage_workspace_default = _template("o", (input) => {
8320
8358
  _if(() => {
8321
8359
  if (busy.has(s.id)) {
8322
8360
  const $scope36_id = _scope_id();
8323
- _html(`<span${_attr_class("_F")}></span>`);
8361
+ _html(`<span${_attr_class("_E")}></span>`);
8324
8362
  writeScope($scope36_id, {});
8325
8363
  return 0;
8326
8364
  } else if (!s.shadows) {
@@ -8354,17 +8392,17 @@ var manage_workspace_default = _template("o", (input) => {
8354
8392
  _if(() => {
8355
8393
  if (running.length) {
8356
8394
  const $scope15_id = _scope_id();
8357
- _html(`<section${_attr_class("_bx")}><div${_attr_class("_by")}><h2${_attr_class("_bM")}>Running</h2><span${_attr_class(sectionCount)}>${_escape(running.length)}${_el_resume($scope15_id, "e")}</span></div><ul${_attr_class("_bA")}>`);
8395
+ _html(`<section${_attr_class("_bn")}><div${_attr_class("_bo")}><h2${_attr_class("_bB")}>Running</h2><span${_attr_class(sectionCount)}>${_escape(running.length)}${_el_resume($scope15_id, "e")}</span></div><ul${_attr_class("_bq")}>`);
8358
8396
  _for_of(running, (p) => {
8359
8397
  const $scope16_id = _scope_id();
8360
- _html(`<li${_attr_class("_bC")}><div${_attr_class("_bD")}${_attr("title", p.args)}><span${_attr_class(["_bE", "_x"])}>${_escape(p.cmd)}${_el_resume($scope16_id, "d")}</span>`);
8398
+ _html(`<li${_attr_class("_bs")}><div${_attr_class("_bt")}${_attr("title", p.args)}><span${_attr_class(["_bu", "_w"])}>${_escape(p.cmd)}${_el_resume($scope16_id, "d")}</span>`);
8361
8399
  _if(() => {
8362
8400
  if (p.ports.length) {
8363
8401
  const $scope37_id = _scope_id();
8364
- _html(`<span${_attr_class("_bF")}>`);
8402
+ _html(`<span${_attr_class("_bv")}>`);
8365
8403
  _for_of(p.ports, (port) => {
8366
8404
  const $scope38_id = _scope_id();
8367
- _html(`<button${_attr_class(["_s", "_dU"])}${_attr("title", `Open http://${typeof location === "undefined" ? "localhost" : location.hostname}:${port}`)}>:<!>${_escape(port)}${_el_resume($scope38_id, "b")}</button>${_el_resume($scope38_id, "a")}`);
8405
+ _html(`<button${_attr_class(["_s", "_eS"])}${_attr("title", `Open http://${typeof location === "undefined" ? "localhost" : location.hostname}:${port}`)}>:<!>${_escape(port)}${_el_resume($scope38_id, "b")}</button>${_el_resume($scope38_id, "a")}`);
8368
8406
  _script($scope38_id, "o19");
8369
8407
  writeScope($scope38_id, { d: port });
8370
8408
  }, (x) => String(x), $scope37_id, "a", 1, 1, 1, "</span>", 1);
@@ -8372,7 +8410,7 @@ var manage_workspace_default = _template("o", (input) => {
8372
8410
  return 0;
8373
8411
  }
8374
8412
  }, $scope16_id, "e", 1, 1, 1, 0, 1);
8375
- _html(`</div>${_el_resume($scope16_id, "b")}<button${_attr_class(["_bH", "_2"])} type=button${_attr("title", `Kill process ${p.pid}`)}${_attr("aria-label", `Kill process ${p.pid}`)}>`);
8413
+ _html(`</div>${_el_resume($scope16_id, "b")}<button${_attr_class(["_bx", "_1"])} type=button${_attr("title", `Kill process ${p.pid}`)}${_attr("aria-label", `Kill process ${p.pid}`)}>`);
8376
8414
  icon_xmark_default({ size: 14 });
8377
8415
  _html(`</button>${_el_resume($scope16_id, "f")}</li>`);
8378
8416
  _script($scope16_id, "o20");
@@ -8386,7 +8424,7 @@ var manage_workspace_default = _template("o", (input) => {
8386
8424
  return 0;
8387
8425
  }
8388
8426
  }, $scope0_id, "w", 1, 1, 1, 0, 1);
8389
- _html(`<section${_attr_class(["_bx", "_dV"])}><div${_attr_class("_by")}><h2${_attr_class("_bM")}>Workspace</h2></div><div${_attr_class("_dW")}>`);
8427
+ _html(`<section${_attr_class(["_bn", "_eT"])}><div${_attr_class("_bo")}><h2${_attr_class("_bB")}>Workspace</h2></div><div${_attr_class("_eU")}>`);
8390
8428
  _if(() => {
8391
8429
  if (ws.status === "active") {
8392
8430
  const $scope8_id = _scope_id();
@@ -8500,19 +8538,19 @@ var term_find_default = _template("A", (input) => {
8500
8538
  const canStep = hasQuery && open;
8501
8539
  const keybar = input.placement === "keybar";
8502
8540
  _html(`<div${_attr_class([
8503
- "_fH",
8504
- keybar ? "_fJ" : "_fI",
8505
- !open && "_fL"
8506
- ])} aria-hidden=${open ? "false" : "true"}><div${_attr_class(["_fC", keybar ? "_fK" : "_fE"])}><input${_attr_input_value($scope0_id, "c", query, _resume(function(v) {
8541
+ "_fX",
8542
+ keybar ? "_fZ" : "_fY",
8543
+ !open && "_f1"
8544
+ ])} aria-hidden=${open ? "false" : "true"}><div${_attr_class(["_fS", keybar ? "_f0" : "_fU"])}><input${_attr_input_value($scope0_id, "c", query, _resume(function(v) {
8507
8545
  if (!open) return;
8508
8546
  query = v;
8509
8547
  live.query = v;
8510
8548
  run(0);
8511
- }, "A0", $scope0_id))}${_attr_class([findInput, keybar && "_fM"])} 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 && "_fN"])} title="Previous match"${_attr("disabled", !canStep)} tabindex=${open ? "0" : "-1"}>`);
8549
+ }, "A0", $scope0_id))}${_attr_class([findInput, keybar && "_f2"])} 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 && "_f3"])} title="Previous match"${_attr("disabled", !canStep)} tabindex=${open ? "0" : "-1"}>`);
8512
8550
  icon_arrow_up_default({ size: 14 });
8513
- _html(`</button>${_el_resume($scope0_id, "d")}<button type=button${_attr_class([findIconBtn, keybar && "_fN"])} title="Next match"${_attr("disabled", !canStep)} tabindex=${open ? "0" : "-1"}>`);
8551
+ _html(`</button>${_el_resume($scope0_id, "d")}<button type=button${_attr_class([findIconBtn, keybar && "_f3"])} title="Next match"${_attr("disabled", !canStep)} tabindex=${open ? "0" : "-1"}>`);
8514
8552
  icon_arrow_down_default({ size: 14 });
8515
- _html(`</button>${_el_resume($scope0_id, "f")}<button type=button${_attr_class([findIconBtn, keybar && "_fN"])} title="Close find" tabindex=${open ? "0" : "-1"}>`);
8553
+ _html(`</button>${_el_resume($scope0_id, "f")}<button type=button${_attr_class([findIconBtn, keybar && "_f3"])} title="Close find" tabindex=${open ? "0" : "-1"}>`);
8516
8554
  icon_xmark_default({ size: 14 });
8517
8555
  _html(`</button>${_el_resume($scope0_id, "h")}</div>${_el_resume($scope0_id, "b", _serialize_guard($scope0_reason, 2))}</div>${_el_resume($scope0_id, "a")}`);
8518
8556
  _script($scope0_id, "A4");
@@ -8540,7 +8578,7 @@ var term_find_default = _template("A", (input) => {
8540
8578
  });
8541
8579
  _resume_branch($scope0_id);
8542
8580
  });
8543
- _template("lb", (input) => {
8581
+ _template("kb", (input) => {
8544
8582
  const $scope0_reason = _scope_reason(), $sg__input_size__OR__input_class = _serialize_guard($scope0_reason, 0);
8545
8583
  const $scope0_id = _scope_id();
8546
8584
  _set_serialize_reason({
@@ -8570,7 +8608,7 @@ _template("W", (input) => {
8570
8608
  });
8571
8609
  _serialize_if($scope0_reason, 0) && writeScope($scope0_id, { a: _existing_scope($childScope) });
8572
8610
  });
8573
- _template("bb", (input) => {
8611
+ _template("ab", (input) => {
8574
8612
  const $scope0_reason = _scope_reason(), $sg__input_size__OR__input_class = _serialize_guard($scope0_reason, 0);
8575
8613
  const $scope0_id = _scope_id();
8576
8614
  _set_serialize_reason({
@@ -8645,7 +8683,7 @@ _template("Y", (input) => {
8645
8683
  });
8646
8684
  _serialize_if($scope0_reason, 0) && writeScope($scope0_id, { a: _existing_scope($childScope) });
8647
8685
  });
8648
- _template("jb", (input) => {
8686
+ _template("ib", (input) => {
8649
8687
  const $scope0_reason = _scope_reason(), $sg__input_size__OR__input_class = _serialize_guard($scope0_reason, 0);
8650
8688
  const $scope0_id = _scope_id();
8651
8689
  _set_serialize_reason({
@@ -8846,7 +8884,7 @@ var term_default = _template("B", (input) => {
8846
8884
  trapOpen = true;
8847
8885
  }
8848
8886
  }, "B14", $scope0_id);
8849
- _html(`<div${_attr("hidden", !onTermPage)}${_attr_class("_dY")}><div${_attr_class("_dZ")}></div>${_el_resume($scope0_id, "b")}`);
8887
+ _html(`<div${_attr("hidden", !onTermPage)}${_attr_class("_dL")}><div${_attr_class("_dM")}></div>${_el_resume($scope0_id, "b")}`);
8850
8888
  _if(() => {
8851
8889
  if (findOpen) {
8852
8890
  const $scope12_id = _scope_id();
@@ -8873,7 +8911,7 @@ var term_default = _template("B", (input) => {
8873
8911
  _if(() => {
8874
8912
  if (uploading) {
8875
8913
  const $scope19_id = _scope_id();
8876
- _html(`<div${_attr_class("_d5")}>uploading…</div>`);
8914
+ _html(`<div${_attr_class("_dS")}>uploading…</div>`);
8877
8915
  writeScope($scope19_id, {});
8878
8916
  return 0;
8879
8917
  }
@@ -8881,7 +8919,7 @@ var term_default = _template("B", (input) => {
8881
8919
  _if(() => {
8882
8920
  if (copiedFlash) {
8883
8921
  const $scope20_id = _scope_id();
8884
- _html(`<div${_attr_class("_d4")}>Copied</div>`);
8922
+ _html(`<div${_attr_class("_dR")}>Copied</div>`);
8885
8923
  writeScope($scope20_id, {});
8886
8924
  return 0;
8887
8925
  }
@@ -8890,7 +8928,7 @@ var term_default = _template("B", (input) => {
8890
8928
  _if(() => {
8891
8929
  if (trapOpen) {
8892
8930
  const $scope11_id = _scope_id();
8893
- _html(`<div${_attr_class("_d6")}><div${_attr_class("_d7")}><p${_attr_class("_eA")}>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")}`);
8931
+ _html(`<div${_attr_class("_dT")}><div${_attr_class("_dU")}><p${_attr_class("_en")}>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")}`);
8894
8932
  _script($scope11_id, "B25");
8895
8933
  _script($scope11_id, "B26");
8896
8934
  writeScope($scope11_id, {});
@@ -8994,7 +9032,7 @@ var work_view_default = _template("F", (input) => {
8994
9032
  let DiffView = null;
8995
9033
  const loadDiffView = _resume(() => {
8996
9034
  if (DiffView) return;
8997
- import("./_BHPrqqev.js").then((m) => {
9035
+ import("./_CeVZfkIY.js").then((m) => {
8998
9036
  DiffView = m.default;
8999
9037
  });
9000
9038
  }, "F6", $scope0_id);
@@ -9182,10 +9220,10 @@ var work_view_default = _template("F", (input) => {
9182
9220
  toggleDiff();
9183
9221
  }
9184
9222
  }, "F21", $scope0_id);
9185
- _html(`<div${_attr_class(["_b7", {
9186
- ["_b5"]: view === "nav",
9187
- ["_b6"]: !input.active
9188
- }])}><div${_attr_class("_b8")}>`);
9223
+ _html(`<div${_attr_class(["_b5", {
9224
+ ["_b3"]: view === "nav",
9225
+ ["_b4"]: !input.active
9226
+ }])}><div${_attr_class("_b6")}>`);
9189
9227
  _set_serialize_reason({
9190
9228
  0: _serialize_guard($scope0_reason, 0),
9191
9229
  1: 1,
@@ -9254,7 +9292,7 @@ var work_view_default = _template("F", (input) => {
9254
9292
  });
9255
9293
  }, "F30", $scope0_id)
9256
9294
  });
9257
- _html(`</div><div${_attr_class("_b9")}>`);
9295
+ _html(`</div><div${_attr_class("_b7")}>`);
9258
9296
  _if(() => {
9259
9297
  if (error) {
9260
9298
  const $scope8_id = _scope_id();
@@ -9277,7 +9315,7 @@ var work_view_default = _template("F", (input) => {
9277
9315
  _if(() => {
9278
9316
  if (diffMounted && DiffView) {
9279
9317
  const $scope1_id = _scope_id();
9280
- _html(`<div${_attr_class("_b_")}${_attr_or("data-live", view === "diff", "")}${_attr("inert", view !== "diff")}>`);
9318
+ _html(`<div${_attr_class("_b8")}${_attr_or("data-live", view === "diff", "")}${_attr("inert", view !== "diff")}>`);
9281
9319
  _dynamic_tag($scope1_id, "b", DiffView, {
9282
9320
  workspaceId: ws.id,
9283
9321
  workspaceBranch: ws.branch,
@@ -9317,7 +9355,7 @@ var work_view_default = _template("F", (input) => {
9317
9355
  _if(() => {
9318
9356
  if (manageMounted) {
9319
9357
  const $scope2_id = _scope_id();
9320
- _html(`<div${_attr_class("_b_")}${_attr_or("data-live", view === "manage", "")}${_attr("inert", view !== "manage")}>`);
9358
+ _html(`<div${_attr_class("_b8")}${_attr_or("data-live", view === "manage", "")}${_attr("inert", view !== "manage")}>`);
9321
9359
  _set_serialize_reason(_serialize_guard($scope0_reason, 16));
9322
9360
  const $childScope2 = _peek_scope_id();
9323
9361
  manage_workspace_default({
@@ -9340,7 +9378,7 @@ var work_view_default = _template("F", (input) => {
9340
9378
  _if(() => {
9341
9379
  if (settingsMounted) {
9342
9380
  const $scope3_id = _scope_id();
9343
- _html(`<div${_attr_class("_b_")}${_attr_or("data-live", view === "settings", "")}${_attr("inert", view !== "settings")}>`);
9381
+ _html(`<div${_attr_class("_b8")}${_attr_or("data-live", view === "settings", "")}${_attr("inert", view !== "settings")}>`);
9344
9382
  _set_serialize_reason({
9345
9383
  0: _serialize_guard($scope0_reason, 1),
9346
9384
  1: $sg__input_workspace,
@@ -9381,7 +9419,7 @@ var work_view_default = _template("F", (input) => {
9381
9419
  _if(() => {
9382
9420
  if (newMounted) {
9383
9421
  const $scope4_id = _scope_id();
9384
- _html(`<div${_attr_class("_b_")}${_attr_or("data-live", view === "new", "")}${_attr("inert", view !== "new")}>`);
9422
+ _html(`<div${_attr_class("_b8")}${_attr_or("data-live", view === "new", "")}${_attr("inert", view !== "new")}>`);
9385
9423
  _set_serialize_reason({
9386
9424
  0: 1,
9387
9425
  1: $sg__input_allWorkspaces,
@@ -9408,13 +9446,13 @@ var work_view_default = _template("F", (input) => {
9408
9446
  return 0;
9409
9447
  }
9410
9448
  }, $scope0_id, "i", 1, 1, 1, 0, 1);
9411
- _html(`<div${_attr_class(["_cb", { ["_ca"]: view !== "term" }])}>`);
9449
+ _html(`<div${_attr_class(["_b_", { ["_b9"]: view !== "term" }])}>`);
9412
9450
  _if(() => {
9413
9451
  if (shownSessions) {
9414
9452
  const $scope5_id = _scope_id();
9415
9453
  _for_of(input.active ? shownSessions : shownSessions.filter((x) => x.id === curTab), (s) => {
9416
9454
  const $scope6_id = _scope_id();
9417
- _html(`<div${_attr_class("_cc")}${_attr_or("data-live", s.id === curTab, "")}${_attr("inert", s.id !== curTab)}>`);
9455
+ _html(`<div${_attr_class("_ca")}${_attr_or("data-live", s.id === curTab, "")}${_attr("inert", s.id !== curTab)}>`);
9418
9456
  _set_serialize_reason({
9419
9457
  0: 1,
9420
9458
  1: 1,
@@ -9474,7 +9512,7 @@ var work_view_default = _template("F", (input) => {
9474
9512
  _if(() => {
9475
9513
  if (!shownSessions.length && view === "term") {
9476
9514
  const $scope7_id = _scope_id();
9477
- _html(`<div${_attr_class("_bJ")}><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>`);
9515
+ _html(`<div${_attr_class("_bz")}><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>`);
9478
9516
  _script($scope7_id, "F50");
9479
9517
  _subscribe($spawning__closures, _subscribe($si__input_preferred && $input_preferred__closures, writeScope($scope7_id, {})));
9480
9518
  return 0;
@@ -9484,7 +9522,7 @@ var work_view_default = _template("F", (input) => {
9484
9522
  return 0;
9485
9523
  } else {
9486
9524
  const $scope10_id = _scope_id();
9487
- _html(`<p${_attr_class("_bJ")}>Loading sessions…</p>`);
9525
+ _html(`<p${_attr_class("_bz")}>Loading sessions…</p>`);
9488
9526
  writeScope($scope10_id, {});
9489
9527
  return 1;
9490
9528
  }
@@ -10001,7 +10039,7 @@ var app_page_default = _template("b", (input) => {
10001
10039
  });
10002
10040
  //#endregion
10003
10041
  //#region src/routes/_app/new/+page.marko
10004
- var _page_default$4 = _template("nb", (input) => {
10042
+ var _page_default$4 = _template("mb", (input) => {
10005
10043
  _scope_reason();
10006
10044
  _scope_id();
10007
10045
  app_page_default({ initial: {
@@ -10043,7 +10081,7 @@ var GET$24 = Run.GET(async (_ctx, next) => {
10043
10081
  });
10044
10082
  //#endregion
10045
10083
  //#region src/routes/_app/settings/+page.marko
10046
- var _page_default$3 = _template("ob", (input) => {
10084
+ var _page_default$3 = _template("nb", (input) => {
10047
10085
  _scope_reason();
10048
10086
  _scope_id();
10049
10087
  app_page_default({ initial: {
@@ -10080,7 +10118,7 @@ function head3(context) {
10080
10118
  }
10081
10119
  //#endregion
10082
10120
  //#region src/routes/_app/w/$id/+page.marko
10083
- var _page_default$2 = _template("pb", (input) => {
10121
+ var _page_default$2 = _template("ob", (input) => {
10084
10122
  _scope_reason();
10085
10123
  _scope_id();
10086
10124
  const $global$3 = $global();
@@ -10118,7 +10156,7 @@ function head4(context) {
10118
10156
  }
10119
10157
  //#endregion
10120
10158
  //#region src/routes/_app/w/$id/manage/+page.marko
10121
- var _page_default$1 = _template("qb", (input) => {
10159
+ var _page_default$1 = _template("pb", (input) => {
10122
10160
  _scope_reason();
10123
10161
  _scope_id();
10124
10162
  app_page_default({ initial: {
@@ -10154,7 +10192,7 @@ function head5(context) {
10154
10192
  }
10155
10193
  //#endregion
10156
10194
  //#region src/routes/_app/w/$id/review/+page.marko
10157
- var _page_default = _template("rb", (input) => {
10195
+ var _page_default = _template("qb", (input) => {
10158
10196
  _scope_reason();
10159
10197
  _scope_id();
10160
10198
  const $global$1 = $global();
@@ -11163,11 +11201,15 @@ var Pref = /* @__PURE__ */ object({
11163
11201
  key: /* @__PURE__ */ pipe(/* @__PURE__ */ string(), /* @__PURE__ */ maxLength(120)),
11164
11202
  value: /* @__PURE__ */ nullable(/* @__PURE__ */ pipe(/* @__PURE__ */ string(), /* @__PURE__ */ maxLength(4096)))
11165
11203
  });
11204
+ /** Per-workspace UI prefs — the workspace id is the suffix after the last `:`. */
11205
+ var OWNED = /^(?:tab|diff-filter|diff-pos):(.+)$/;
11166
11206
  var GET$19 = Run.GET(() => Response.json(allPrefs()));
11167
11207
  //#endregion
11168
11208
  //#region __marko-run__api.prefs.js
11169
11209
  var postHandler$14 = normalizeHandler(Run.POST({ json: Pref }, async (ctx) => {
11170
11210
  const body = await readBody(ctx);
11211
+ const owned = OWNED.exec(body.key);
11212
+ if (owned && !get("SELECT id FROM workspaces WHERE id = ?", owned[1])) return Response.json({ ok: true });
11171
11213
  setPref(body.key, body.value);
11172
11214
  return Response.json({ ok: true });
11173
11215
  }), "POST");
@@ -11384,10 +11426,12 @@ var Patch = /* @__PURE__ */ object({
11384
11426
  }))
11385
11427
  });
11386
11428
  function snapshot$1() {
11429
+ const catalog = agentChoices();
11430
+ const agents = catalog.filter((a) => a.enabled && a.id !== "shell").map((a) => a.id);
11387
11431
  return {
11388
- preferredAgent: preferredAgent(),
11389
- agents: enabledAgents(),
11390
- catalog: agentChoices(),
11432
+ preferredAgent: preferredAgent(agents),
11433
+ agents,
11434
+ catalog,
11391
11435
  disabledAgents: [...disabledAgents()],
11392
11436
  instance: getInstance()
11393
11437
  };
@@ -12296,10 +12340,27 @@ async function resolveBase(dir, wsBranch, baseBranch, headBranch, foreign, baseR
12296
12340
  missing: true
12297
12341
  };
12298
12342
  }
12343
+ /** Memo keyed on resolved shas — never on ref names, or a fetch/commit
12344
+ * would pin a stale `contained` and silently diff the wrong side.
12345
+ * Size-capped (Map insertion order = oldest first): an open review that
12346
+ * auto-reloads on every agent commit would otherwise grow without bound
12347
+ * for the life of the process. */
12348
+ var CONTAINED_CACHE_MAX = 1e3;
12349
+ var containedCache = /* @__PURE__ */ new Map();
12299
12350
  /** True when merging `head` into `base` is a no-op (head's unique work
12300
12351
  * is already in `base` — the squash-merge case). A conflict is not
12301
12352
  * containment; the caller falls through to three-dot. */
12302
- async function treeContainedIn(dir, base, head) {
12353
+ function treeContainedIn(dir, baseSha, headSha) {
12354
+ const key = `${dir}\0${baseSha}\0${headSha}`;
12355
+ let hit = containedCache.get(key);
12356
+ if (!hit) {
12357
+ hit = treeContainedInUncached(dir, baseSha, headSha);
12358
+ containedCache.set(key, hit);
12359
+ if (containedCache.size > CONTAINED_CACHE_MAX) containedCache.delete(containedCache.keys().next().value);
12360
+ }
12361
+ return hit;
12362
+ }
12363
+ async function treeContainedInUncached(dir, base, head) {
12303
12364
  try {
12304
12365
  return (await git([
12305
12366
  "merge-tree",
@@ -12322,12 +12383,7 @@ async function workspaceDiff(ws, opts = {}) {
12322
12383
  const seen = reviewSeen(ws.id);
12323
12384
  return (await Promise.all(ws.repos.map(async (repo) => {
12324
12385
  const dir = path.join(ws.path, repo.worktree);
12325
- const branch = await git([
12326
- "rev-parse",
12327
- "--abbrev-ref",
12328
- "HEAD"
12329
- ], dir).catch(() => "HEAD");
12330
- const localHead = await headOid(dir);
12386
+ const { oid: localHead, branch } = await headOid(dir);
12331
12387
  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}`));
12332
12388
  let list;
12333
12389
  if (open.length) list = await Promise.all(open.map((p) => prDiff(dir, repo, p, {
@@ -12371,9 +12427,9 @@ async function prDiff(dir, repo, pr, ctx) {
12371
12427
  await freshenBaseRefs(dir, repo.full_name, [pr.baseRefName, pr.headRefName]);
12372
12428
  const headRef = `origin/${pr.headRefName}`;
12373
12429
  const baseRef = `origin/${pr.baseRefName}`;
12374
- const head = await git(["rev-parse", headRef], dir).catch(() => "") || pr.headRefOid || "";
12375
- const baseSha = await git(["rev-parse", baseRef], dir).catch(() => "");
12376
- if (!head || !baseSha) return {
12430
+ const [headResolved, baseSha] = await Promise.all([git(["rev-parse", headRef], dir).catch(() => ""), git(["rev-parse", baseRef], dir).catch(() => "")]);
12431
+ const head = headResolved || pr.headRefOid || "";
12432
+ const base = {
12377
12433
  id: `${repo.worktree}#${pr.number}`,
12378
12434
  worktree: repo.worktree,
12379
12435
  full_name: repo.full_name,
@@ -12383,7 +12439,10 @@ async function prDiff(dir, repo, pr, ctx) {
12383
12439
  head,
12384
12440
  baseSha,
12385
12441
  pr: prMeta(pr),
12386
- localHead: ctx.localHead,
12442
+ localHead: ctx.localHead
12443
+ };
12444
+ if (!head || !baseSha) return {
12445
+ ...base,
12387
12446
  baseMissing: true,
12388
12447
  files: []
12389
12448
  };
@@ -12392,20 +12451,11 @@ async function prDiff(dir, repo, pr, ctx) {
12392
12451
  baseRef,
12393
12452
  head
12394
12453
  ], dir).catch(() => "");
12395
- const contained = await treeContainedIn(dir, baseRef, head);
12454
+ const contained = await treeContainedIn(dir, baseSha, head);
12396
12455
  const files = await collectFiles(dir, contained ? head : mergeBase || baseRef, head, ctx.scope);
12397
12456
  const githubDrift = !!pr.headRefOid && head !== pr.headRefOid;
12398
12457
  return {
12399
- id: `${repo.worktree}#${pr.number}`,
12400
- worktree: repo.worktree,
12401
- full_name: repo.full_name,
12402
- base: pr.baseRefName,
12403
- default_branch: repo.default_branch,
12404
- branch: ctx.branch,
12405
- head,
12406
- baseSha,
12407
- pr: prMeta(pr),
12408
- localHead: ctx.localHead,
12458
+ ...base,
12409
12459
  ...githubDrift && { githubDrift: true },
12410
12460
  ...contained && { contained: true },
12411
12461
  files
@@ -12453,10 +12503,9 @@ async function localDiff(dir, ws, repo, branch, localHead, baseRef, scope) {
12453
12503
  baseMissing: true,
12454
12504
  files: []
12455
12505
  };
12456
- const contained = !missing && !emptyRemote && await treeContainedIn(dir, ref, "HEAD");
12457
- const against = contained ? "HEAD" : mergeBase;
12458
12506
  const baseSha = missing ? localHead : emptyRemote ? mergeBase : await git(["rev-parse", ref], dir).catch(() => mergeBase);
12459
- const files = await collectFiles(dir, against, "HEAD", scope);
12507
+ const contained = !missing && !emptyRemote && !!baseSha && await treeContainedIn(dir, baseSha, localHead);
12508
+ const files = await collectFiles(dir, contained ? "HEAD" : mergeBase, "HEAD", scope);
12460
12509
  return {
12461
12510
  ...base,
12462
12511
  head: localHead,
@@ -12479,33 +12528,20 @@ function prMeta(pr) {
12479
12528
  async function collectFiles(dir, oldRev, newRev, scope) {
12480
12529
  if (scope === "dirty") oldRev = newRev;
12481
12530
  const uncommitted = scope !== "committed";
12482
- const nameArgs = uncommitted ? [
12483
- "diff",
12484
- "--name-status",
12485
- "-z",
12486
- "--no-renames",
12487
- oldRev
12488
- ] : [
12531
+ const revs = uncommitted ? [oldRev] : [oldRev, newRev];
12532
+ const nameArgs = [
12489
12533
  "diff",
12490
12534
  "--name-status",
12491
12535
  "-z",
12492
12536
  "--no-renames",
12493
- oldRev,
12494
- newRev
12537
+ ...revs
12495
12538
  ];
12496
- const numArgs = uncommitted ? [
12539
+ const numArgs = [
12497
12540
  "diff",
12498
12541
  "--numstat",
12499
12542
  "-z",
12500
12543
  "--no-renames",
12501
- oldRev
12502
- ] : [
12503
- "diff",
12504
- "--numstat",
12505
- "-z",
12506
- "--no-renames",
12507
- oldRev,
12508
- newRev
12544
+ ...revs
12509
12545
  ];
12510
12546
  const [nameStatus, numstat, untracked, dirtyNames] = await Promise.all([
12511
12547
  git(nameArgs, dir).catch(() => ""),
@@ -12524,21 +12560,21 @@ async function collectFiles(dir, oldRev, newRev, scope) {
12524
12560
  "HEAD"
12525
12561
  ], dir).catch(() => "") : Promise.resolve("")
12526
12562
  ]);
12563
+ const untrackedPaths = untracked.split("\0").filter(Boolean);
12527
12564
  const dirtyPaths = new Set(dirtyNames.split("\0").filter(Boolean));
12528
- for (const file of untracked.split("\0")) if (file) dirtyPaths.add(file);
12565
+ for (const file of untrackedPaths) dirtyPaths.add(file);
12529
12566
  const entries = [];
12530
12567
  const parts = nameStatus.split("\0").filter(Boolean);
12531
12568
  for (let i = 0; i + 1 < parts.length; i += 2) entries.push({
12532
12569
  path: parts[i + 1],
12533
12570
  status: parts[i]
12534
12571
  });
12535
- for (const file of untracked.split("\0").filter(Boolean)) entries.push({
12572
+ for (const file of untrackedPaths) entries.push({
12536
12573
  path: file,
12537
12574
  status: "A"
12538
12575
  });
12539
12576
  const stats = parseNumstat(numstat);
12540
- const olds = await batchContents(dir, oldRev, entries.filter((e) => e.status !== "A").map((e) => e.path));
12541
- const news = uncommitted ? null : await batchContents(dir, newRev, entries.filter((e) => e.status !== "D").map((e) => e.path));
12577
+ 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))]);
12542
12578
  const files = await Promise.all(entries.map(async (e) => {
12543
12579
  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));
12544
12580
  if (!news && dirtyPaths.has(e.path)) file.hash = createHash("sha1").update(e.status).update(file.new ?? "").digest("hex").slice(0, 16);
@@ -12635,16 +12671,18 @@ function fromBlobs(filePath, status, old, neu) {
12635
12671
  if (old !== void 0) result.old = old;
12636
12672
  if (neu !== void 0) result.new = neu;
12637
12673
  }
12638
- if (result.old?.includes("\0") || result.new?.includes("\0")) {
12639
- result.binary = true;
12640
- result.old = null;
12641
- result.new = null;
12642
- }
12643
- if (result.tooLarge) {
12644
- result.old = null;
12645
- result.new = null;
12674
+ return withoutUnrenderable(result);
12675
+ }
12676
+ /** A binary or over-size file ships as flags with no content: the client
12677
+ * renders the reason, and shipping the bytes anyway is what made a diff of
12678
+ * one large asset megabytes of JSON. */
12679
+ function withoutUnrenderable(file) {
12680
+ if (file.old?.includes("\0") || file.new?.includes("\0")) file.binary = true;
12681
+ if (file.binary || file.tooLarge) {
12682
+ file.old = null;
12683
+ file.new = null;
12646
12684
  }
12647
- return result;
12685
+ return file;
12648
12686
  }
12649
12687
  async function loadWorktreeFile(dir, filePath, status, old) {
12650
12688
  const result = {
@@ -12662,16 +12700,7 @@ async function loadWorktreeFile(dir, filePath, status, old) {
12662
12700
  if ((await fsp.stat(full)).size > MAX_FILE_BYTES) result.tooLarge = true;
12663
12701
  else result.new = await fsp.readFile(full, "utf8");
12664
12702
  } catch {}
12665
- if (result.old?.includes("\0") || result.new?.includes("\0")) {
12666
- result.binary = true;
12667
- result.old = null;
12668
- result.new = null;
12669
- }
12670
- if (result.tooLarge) {
12671
- result.old = null;
12672
- result.new = null;
12673
- }
12674
- return result;
12703
+ return withoutUnrenderable(result);
12675
12704
  }
12676
12705
  //#endregion
12677
12706
  //#region src/routes/api/workspaces/$id/diff/+handler.ts
@@ -17994,4 +18023,4 @@ server.listen(port, () => {
17994
18023
  //#endregion
17995
18024
  export {};
17996
18025
 
17997
- ;var __MARKO_MANIFEST__={"ZLT8joi":{"block":[2,"stylesheet#/assets/app-page-xZ7ggaFZ.css",6,"<link",0," rel=\"stylesheet\" crossorigin href=\"",1,"assets/app-page-xZ7ggaFZ.css\"",">"],"defer":[2,"/assets/new-B4TVUCf9.js",6,"<script",0," async type=\"module\" crossorigin src=\"",1,"assets/new-B4TVUCf9.js\"","></script>",2,"modulepreload#/assets/_JMdaap6W.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_JMdaap6W.js\"",">"]},"AA0T2xt":{"block":[2,"stylesheet#/assets/app-page-xZ7ggaFZ.css",6,"<link",0," rel=\"stylesheet\" crossorigin href=\"",1,"assets/app-page-xZ7ggaFZ.css\"",">"],"defer":[2,"/assets/settings-B4TVUCf9.js",6,"<script",0," async type=\"module\" crossorigin src=\"",1,"assets/settings-B4TVUCf9.js\"","></script>",2,"modulepreload#/assets/_JMdaap6W.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_JMdaap6W.js\"",">"]},"ibphXY4":{"block":[2,"stylesheet#/assets/app-page-xZ7ggaFZ.css",6,"<link",0," rel=\"stylesheet\" crossorigin href=\"",1,"assets/app-page-xZ7ggaFZ.css\"",">"],"defer":[2,"/assets/w._-B4TVUCf9.js",6,"<script",0," async type=\"module\" crossorigin src=\"",1,"assets/w._-B4TVUCf9.js\"","></script>",2,"modulepreload#/assets/_JMdaap6W.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_JMdaap6W.js\"",">"]},"LH2lXAg":{"block":[2,"stylesheet#/assets/app-page-xZ7ggaFZ.css",6,"<link",0," rel=\"stylesheet\" crossorigin href=\"",1,"assets/app-page-xZ7ggaFZ.css\"",">"],"defer":[2,"/assets/w-B4TVUCf9.js",6,"<script",0," async type=\"module\" crossorigin src=\"",1,"assets/w-B4TVUCf9.js\"","></script>",2,"modulepreload#/assets/_JMdaap6W.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_JMdaap6W.js\"",">"]},"T$MNY0k":{"block":[2,"stylesheet#/assets/app-page-xZ7ggaFZ.css",6,"<link",0," rel=\"stylesheet\" crossorigin href=\"",1,"assets/app-page-xZ7ggaFZ.css\"",">"],"defer":[2,"/assets/w._-CJLLzbFK.js",6,"<script",0," async type=\"module\" crossorigin src=\"",1,"assets/w._-CJLLzbFK.js\"","></script>",2,"modulepreload#/assets/_JMdaap6W.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_JMdaap6W.js\"",">"]}};
18026
+ ;var __MARKO_MANIFEST__={"ZLT8joi":{"block":[2,"stylesheet#/assets/app-page-LDZ2KXKs.css",6,"<link",0," rel=\"stylesheet\" crossorigin href=\"",1,"assets/app-page-LDZ2KXKs.css\"",">"],"defer":[2,"/assets/new-CwlftYMt.js",6,"<script",0," async type=\"module\" crossorigin src=\"",1,"assets/new-CwlftYMt.js\"","></script>",2,"modulepreload#/assets/_CVtWHYIm.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_CVtWHYIm.js\"",">"]},"AA0T2xt":{"block":[2,"stylesheet#/assets/app-page-LDZ2KXKs.css",6,"<link",0," rel=\"stylesheet\" crossorigin href=\"",1,"assets/app-page-LDZ2KXKs.css\"",">"],"defer":[2,"/assets/settings-CwlftYMt.js",6,"<script",0," async type=\"module\" crossorigin src=\"",1,"assets/settings-CwlftYMt.js\"","></script>",2,"modulepreload#/assets/_CVtWHYIm.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_CVtWHYIm.js\"",">"]},"LH2lXAg":{"block":[2,"stylesheet#/assets/app-page-LDZ2KXKs.css",6,"<link",0," rel=\"stylesheet\" crossorigin href=\"",1,"assets/app-page-LDZ2KXKs.css\"",">"],"defer":[2,"/assets/w-CwlftYMt.js",6,"<script",0," async type=\"module\" crossorigin src=\"",1,"assets/w-CwlftYMt.js\"","></script>",2,"modulepreload#/assets/_CVtWHYIm.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_CVtWHYIm.js\"",">"]},"T$MNY0k":{"block":[2,"stylesheet#/assets/app-page-LDZ2KXKs.css",6,"<link",0," rel=\"stylesheet\" crossorigin href=\"",1,"assets/app-page-LDZ2KXKs.css\"",">"],"defer":[2,"/assets/w._-CwlftYMt.js",6,"<script",0," async type=\"module\" crossorigin src=\"",1,"assets/w._-CwlftYMt.js\"","></script>",2,"modulepreload#/assets/_CVtWHYIm.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_CVtWHYIm.js\"",">"]},"ibphXY4":{"block":[2,"stylesheet#/assets/app-page-LDZ2KXKs.css",6,"<link",0," rel=\"stylesheet\" crossorigin href=\"",1,"assets/app-page-LDZ2KXKs.css\"",">"],"defer":[2,"/assets/w._-BGFF38Oe.js",6,"<script",0," async type=\"module\" crossorigin src=\"",1,"assets/w._-BGFF38Oe.js\"","></script>",2,"modulepreload#/assets/_CVtWHYIm.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_CVtWHYIm.js\"",">"]}};