@dylanpiercey/work 0.0.84 → 0.0.86

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 (244) hide show
  1. package/dist/{_BOcMB3Se.js → _BDBtGsdY.js} +70 -70
  2. package/dist/{_DGA7IvGR.js → _D5j6bTJl.js} +19 -5
  3. package/dist/index.mjs +746 -526
  4. package/dist/public/assets/{_BkmZvC5V.js → _1MO3zLi0.js} +1 -1
  5. package/dist/public/assets/_1MO3zLi0.js.br +0 -0
  6. package/dist/public/assets/{_C1SKpO2F.js → _3_osenBu.js} +1 -1
  7. package/dist/public/assets/_3_osenBu.js.br +0 -0
  8. package/dist/public/assets/{_B1ymgFfj2.js → _4c6ZP_DE2.js} +1 -1
  9. package/dist/public/assets/_4c6ZP_DE2.js.br +0 -0
  10. package/dist/public/assets/{_y1iudyIK2.js → _8DabaQc42.js} +1 -1
  11. package/dist/public/assets/_8DabaQc42.js.br +0 -0
  12. package/dist/public/assets/{_oEMyCm1C2.js → _B38vzMde2.js} +1 -1
  13. package/dist/public/assets/_B38vzMde2.js.br +0 -0
  14. package/dist/public/assets/{_zW6Zb3Bx.js → _B6HRx3mv.js} +1 -1
  15. package/dist/public/assets/_B6HRx3mv.js.br +0 -0
  16. package/dist/public/assets/{_BB6pEFnc2.js → _B7tW52ox2.js} +1 -1
  17. package/dist/public/assets/_B7tW52ox2.js.br +0 -0
  18. package/dist/public/assets/{_DfSfBcFs.js → _BDKexg9K.js} +1 -1
  19. package/dist/public/assets/_BDKexg9K.js.br +0 -0
  20. package/dist/public/assets/{_CIXAEhbw.js → _BE6VqQVA.js} +1 -1
  21. package/dist/public/assets/_BE6VqQVA.js.br +0 -0
  22. package/dist/public/assets/{_BMrwgW0t2.js → _BRgDp6dq2.js} +1 -1
  23. package/dist/public/assets/_BRgDp6dq2.js.br +0 -0
  24. package/dist/public/assets/{_yYMx9Q8s.js → _BVR2bnH7.js} +1 -1
  25. package/dist/public/assets/_BVR2bnH7.js.br +0 -0
  26. package/dist/public/assets/{_C3n-9E2u.js → _BW-Z7z3K.js} +20 -20
  27. package/dist/public/assets/_BW-Z7z3K.js.br +0 -0
  28. package/dist/public/assets/{_Dt7xdACi.js → _BXoOogd_.js} +1 -1
  29. package/dist/public/assets/_BXoOogd_.js.br +0 -0
  30. package/dist/public/assets/{_3yN1Y5sV.js → _B_hYt6WL.js} +1 -1
  31. package/dist/public/assets/_B_hYt6WL.js.br +0 -0
  32. package/dist/public/assets/{_BMJ4v2Ht.js → _B_iQ_vXs.js} +1 -1
  33. package/dist/public/assets/_B_iQ_vXs.js.br +0 -0
  34. package/dist/public/assets/{_BEq8K9u02.js → _BcLoolnz2.js} +1 -1
  35. package/dist/public/assets/_BcLoolnz2.js.br +0 -0
  36. package/dist/public/assets/{_C5ejgRIo2.js → _BdWFr75M2.js} +1 -1
  37. package/dist/public/assets/_BdWFr75M2.js.br +0 -0
  38. package/dist/public/assets/{_B3sLEuiV.js → _BfKlqNx9.js} +1 -1
  39. package/dist/public/assets/_BfKlqNx9.js.br +0 -0
  40. package/dist/public/assets/{_S4hEqend2.js → _BjHYQyTW2.js} +1 -1
  41. package/dist/public/assets/_BjHYQyTW2.js.br +0 -0
  42. package/dist/public/assets/{_C5BsOZCP.js → _Bl32WbGR.js} +1 -1
  43. package/dist/public/assets/_Bl32WbGR.js.br +0 -0
  44. package/dist/public/assets/{_CD5Q8H_32.js → _BmRxh0Eh2.js} +1 -1
  45. package/dist/public/assets/{_Bt5o0Oko.js → _BneLpkUj.js} +1 -1
  46. package/dist/public/assets/_BneLpkUj.js.br +0 -0
  47. package/dist/public/assets/{_BiTLx2mY.js → _BpQROnKB.js} +1 -1
  48. package/dist/public/assets/_BpQROnKB.js.br +0 -0
  49. package/dist/public/assets/{_CDMbYkZp.js → _BpaSM2Ut.js} +1 -1
  50. package/dist/public/assets/_BpaSM2Ut.js.br +0 -0
  51. package/dist/public/assets/{_CUp_5V1i.js → _BqEupx9T.js} +1 -1
  52. package/dist/public/assets/_BqEupx9T.js.br +0 -0
  53. package/dist/public/assets/{_ClUj4A8Z2.js → _BrHg1vmp2.js} +1 -1
  54. package/dist/public/assets/_BrHg1vmp2.js.br +0 -0
  55. package/dist/public/assets/{_DbgCLxo5.js → _BuVTK0nK.js} +1 -1
  56. package/dist/public/assets/_BuVTK0nK.js.br +0 -0
  57. package/dist/public/assets/{_BdBy6LnA2.js → _BxhMnvoI2.js} +1 -1
  58. package/dist/public/assets/_BxhMnvoI2.js.br +0 -0
  59. package/dist/public/assets/{_D2Y6bDDO2.js → _Byj_kDek2.js} +1 -1
  60. package/dist/public/assets/_Byj_kDek2.js.br +0 -0
  61. package/dist/public/assets/{_DwFCzFi1.js → _C669lqE1.js} +1 -1
  62. package/dist/public/assets/_C669lqE1.js.br +0 -0
  63. package/dist/public/assets/{_Db0N45S4.js → _CN4RWjdg.js} +1 -1
  64. package/dist/public/assets/_CN4RWjdg.js.br +0 -0
  65. package/dist/public/assets/{_D4duKQCj.js → _CQ8XIG32.js} +1 -1
  66. package/dist/public/assets/_CQ8XIG32.js.br +0 -0
  67. package/dist/public/assets/{_uMuEpH_b.js → _CR7jZl_o.js} +1 -1
  68. package/dist/public/assets/_CR7jZl_o.js.br +0 -0
  69. package/dist/public/assets/{_DnW0vqlP2.js → _CR_N8Jxw2.js} +1 -1
  70. package/dist/public/assets/_CR_N8Jxw2.js.br +0 -0
  71. package/dist/public/assets/{_3kMh5IhJ.js → _CUy49fiW.js} +1 -1
  72. package/dist/public/assets/_CUy49fiW.js.br +0 -0
  73. package/dist/public/assets/{_DnIiwZSa.js → _CVI5Z1ap.js} +1 -1
  74. package/dist/public/assets/_CVI5Z1ap.js.br +0 -0
  75. package/dist/public/assets/{_DXhrQRPb.js → _CXQb7FHW.js} +1 -1
  76. package/dist/public/assets/_CXQb7FHW.js.br +0 -0
  77. package/dist/public/assets/{_DakHZxm1.js → _CXbfNROI.js} +1 -1
  78. package/dist/public/assets/_CXbfNROI.js.br +0 -0
  79. package/dist/public/assets/{_tdNHQwFq.js → _C_GySFna.js} +1 -1
  80. package/dist/public/assets/_C_GySFna.js.br +0 -0
  81. package/dist/public/assets/{_DMRTqLA-2.js → _Cb4BQ87V2.js} +1 -1
  82. package/dist/public/assets/_Cb4BQ87V2.js.br +0 -0
  83. package/dist/public/assets/{_BvA3FZCL2.js → _CekDvoOm2.js} +1 -1
  84. package/dist/public/assets/_CekDvoOm2.js.br +0 -0
  85. package/dist/public/assets/{_UTtFNJ9B.js → _CiyoX76R.js} +1 -1
  86. package/dist/public/assets/_CiyoX76R.js.br +0 -0
  87. package/dist/public/assets/{_BOvrqKm-.js → _D31bJ4DY.js} +1 -1
  88. package/dist/public/assets/_D31bJ4DY.js.br +0 -0
  89. package/dist/public/assets/{_n0XIu-yS.js → _D7MBKQAt.js} +1 -1
  90. package/dist/public/assets/_D7MBKQAt.js.br +0 -0
  91. package/dist/public/assets/{_CbR0Q18b2.js → _D8NtarGl2.js} +1 -1
  92. package/dist/public/assets/_D8NtarGl2.js.br +0 -0
  93. package/dist/public/assets/{_BhhKcsqX2.js → _DHQRi0uw2.js} +1 -1
  94. package/dist/public/assets/_DHQRi0uw2.js.br +0 -0
  95. package/dist/public/assets/{_DtSPvS1_.js → _DHjOV863.js} +1 -1
  96. package/dist/public/assets/_DHjOV863.js.br +0 -0
  97. package/dist/public/assets/{_BlLM6G-3.js → _DIFhW7d2.js} +1 -1
  98. package/dist/public/assets/_DIFhW7d2.js.br +0 -0
  99. package/dist/public/assets/{_DuUhapU_.js → _DK0ZyRpN.js} +1 -1
  100. package/dist/public/assets/_DK0ZyRpN.js.br +0 -0
  101. package/dist/public/assets/{_DXfvbY_Q.js → _DLV-pFpn.js} +1 -1
  102. package/dist/public/assets/_DLV-pFpn.js.br +0 -0
  103. package/dist/public/assets/{_Dzwcxo-e.js → _DOiBi4I0.js} +1 -1
  104. package/dist/public/assets/_DOiBi4I0.js.br +0 -0
  105. package/dist/public/assets/{_B92U8Tp7.js → _DRSO79wd.js} +1 -1
  106. package/dist/public/assets/_DRSO79wd.js.br +0 -0
  107. package/dist/public/assets/{_CSx-L5pW.js → _DbJsbj5D.js} +1 -1
  108. package/dist/public/assets/_DbJsbj5D.js.br +0 -0
  109. package/dist/public/assets/{_ioGYI7CA.js → _DboFmLJ5.js} +1 -1
  110. package/dist/public/assets/_DboFmLJ5.js.br +0 -0
  111. package/dist/public/assets/{_BdaKuAyS.js → _DfayPfGn.js} +1 -1
  112. package/dist/public/assets/_DfayPfGn.js.br +0 -0
  113. package/dist/public/assets/{_XEFXK4VK.js → _DlKqfl3x.js} +1 -1
  114. package/dist/public/assets/_DlKqfl3x.js.br +0 -0
  115. package/dist/public/assets/{_Cwjsu6Gg.js → _Drl9WI2Q.js} +1 -1
  116. package/dist/public/assets/_Drl9WI2Q.js.br +0 -0
  117. package/dist/public/assets/{_BS6XCeVG.js → _DtvBiqKq.js} +1 -1
  118. package/dist/public/assets/_DtvBiqKq.js.br +0 -0
  119. package/dist/public/assets/{_CH8XY8lN2.js → _DxQEc7cj2.js} +1 -1
  120. package/dist/public/assets/{_CvjWGuVM2.js → _DymTiS2l2.js} +1 -1
  121. package/dist/public/assets/_DymTiS2l2.js.br +0 -0
  122. package/dist/public/assets/{_Bwkk6aAB2.js → _ELEfU1ZJ2.js} +1 -1
  123. package/dist/public/assets/_ELEfU1ZJ2.js.br +0 -0
  124. package/dist/public/assets/{_C3iOEbHo.js → _En2Jcy8J.js} +1 -1
  125. package/dist/public/assets/_En2Jcy8J.js.br +0 -0
  126. package/dist/public/assets/{_Cjh4-NxA.js → _HJ4l6yxN.js} +1 -1
  127. package/dist/public/assets/_HJ4l6yxN.js.br +0 -0
  128. package/dist/public/assets/{_DJ1uACXP.js → _IuMur5Ym.js} +1 -1
  129. package/dist/public/assets/_IuMur5Ym.js.br +0 -0
  130. package/dist/public/assets/{_DV9JOmEU2.js → _LIg4gQDB2.js} +1 -1
  131. package/dist/public/assets/_LIg4gQDB2.js.br +0 -0
  132. package/dist/public/assets/{_CwBy4cn2.js → _Q62npO-T.js} +1 -1
  133. package/dist/public/assets/_Q62npO-T.js.br +0 -0
  134. package/dist/public/assets/{_D0gTvz1g.js → _RRBED5IT.js} +1 -1
  135. package/dist/public/assets/_RRBED5IT.js.br +0 -0
  136. package/dist/public/assets/{_MLaNsogz.js → _TNYXBRTD.js} +6 -6
  137. package/dist/public/assets/_TNYXBRTD.js.br +0 -0
  138. package/dist/public/assets/{_DH6Nupnh.js → _YkjHoUJ2.js} +1 -1
  139. package/dist/public/assets/_YkjHoUJ2.js.br +0 -0
  140. package/dist/public/assets/{_uzKsqP2S2.js → _ZPETJBJo2.js} +1 -1
  141. package/dist/public/assets/_ZPETJBJo2.js.br +0 -0
  142. package/dist/public/assets/{_CQFpufIG2.js → _c1k15BL72.js} +1 -1
  143. package/dist/public/assets/_c1k15BL72.js.br +0 -0
  144. package/dist/public/assets/{_Csm5k9KV.js → _gzI_71qk.js} +1 -1
  145. package/dist/public/assets/_gzI_71qk.js.br +0 -0
  146. package/dist/public/assets/{_Xj2rl27Z.js → _oLZchIMS.js} +1 -1
  147. package/dist/public/assets/_oLZchIMS.js.br +0 -0
  148. package/dist/public/assets/{_DifhWd0-.js → _olWgegfx.js} +1 -1
  149. package/dist/public/assets/{_D8InHq1c2.js → _sRlPXrhp2.js} +1 -1
  150. package/dist/public/assets/_sRlPXrhp2.js.br +0 -0
  151. package/dist/public/assets/{_CZj6esI3.js → _t1bRY80J.js} +1 -1
  152. package/dist/public/assets/_t1bRY80J.js.br +0 -0
  153. package/dist/public/assets/app-page-D2MGNs24.css +1 -0
  154. package/dist/public/assets/app-page-D2MGNs24.css.br +0 -0
  155. package/dist/public/assets/diff-view-UG7NdbBG.css +1 -0
  156. package/dist/public/assets/diff-view-UG7NdbBG.css.br +0 -0
  157. package/dist/public/assets/new-BAusPvMv.js +1 -0
  158. package/dist/public/assets/settings-BAusPvMv.js +1 -0
  159. package/dist/public/assets/w-BAusPvMv.js +1 -0
  160. package/dist/public/assets/w._-BAusPvMv.js +1 -0
  161. package/dist/public/assets/w._-CuEUWcak.js +1 -0
  162. package/package.json +1 -1
  163. package/dist/public/assets/_3kMh5IhJ.js.br +0 -0
  164. package/dist/public/assets/_3yN1Y5sV.js.br +0 -0
  165. package/dist/public/assets/_B1ymgFfj2.js.br +0 -0
  166. package/dist/public/assets/_B3sLEuiV.js.br +0 -0
  167. package/dist/public/assets/_B92U8Tp7.js.br +0 -0
  168. package/dist/public/assets/_BB6pEFnc2.js.br +0 -0
  169. package/dist/public/assets/_BEq8K9u02.js.br +0 -0
  170. package/dist/public/assets/_BMJ4v2Ht.js.br +0 -0
  171. package/dist/public/assets/_BMrwgW0t2.js.br +0 -0
  172. package/dist/public/assets/_BOvrqKm-.js.br +0 -0
  173. package/dist/public/assets/_BS6XCeVG.js.br +0 -0
  174. package/dist/public/assets/_BdBy6LnA2.js.br +0 -0
  175. package/dist/public/assets/_BdaKuAyS.js.br +0 -0
  176. package/dist/public/assets/_BhhKcsqX2.js.br +0 -0
  177. package/dist/public/assets/_BiTLx2mY.js.br +0 -0
  178. package/dist/public/assets/_BkmZvC5V.js.br +0 -0
  179. package/dist/public/assets/_BlLM6G-3.js.br +0 -0
  180. package/dist/public/assets/_Bt5o0Oko.js.br +0 -0
  181. package/dist/public/assets/_BvA3FZCL2.js.br +0 -0
  182. package/dist/public/assets/_Bwkk6aAB2.js.br +0 -0
  183. package/dist/public/assets/_C1SKpO2F.js.br +0 -0
  184. package/dist/public/assets/_C3iOEbHo.js.br +0 -0
  185. package/dist/public/assets/_C3n-9E2u.js.br +0 -0
  186. package/dist/public/assets/_C5BsOZCP.js.br +0 -0
  187. package/dist/public/assets/_C5ejgRIo2.js.br +0 -0
  188. package/dist/public/assets/_CDMbYkZp.js.br +0 -0
  189. package/dist/public/assets/_CIXAEhbw.js.br +0 -0
  190. package/dist/public/assets/_CQFpufIG2.js.br +0 -0
  191. package/dist/public/assets/_CSx-L5pW.js.br +0 -0
  192. package/dist/public/assets/_CUp_5V1i.js.br +0 -0
  193. package/dist/public/assets/_CZj6esI3.js.br +0 -0
  194. package/dist/public/assets/_CbR0Q18b2.js.br +0 -0
  195. package/dist/public/assets/_Cjh4-NxA.js.br +0 -0
  196. package/dist/public/assets/_ClUj4A8Z2.js.br +0 -0
  197. package/dist/public/assets/_Csm5k9KV.js.br +0 -0
  198. package/dist/public/assets/_CvjWGuVM2.js.br +0 -0
  199. package/dist/public/assets/_CwBy4cn2.js.br +0 -0
  200. package/dist/public/assets/_Cwjsu6Gg.js.br +0 -0
  201. package/dist/public/assets/_D0gTvz1g.js.br +0 -0
  202. package/dist/public/assets/_D2Y6bDDO2.js.br +0 -0
  203. package/dist/public/assets/_D4duKQCj.js.br +0 -0
  204. package/dist/public/assets/_D8InHq1c2.js.br +0 -0
  205. package/dist/public/assets/_DH6Nupnh.js.br +0 -0
  206. package/dist/public/assets/_DJ1uACXP.js.br +0 -0
  207. package/dist/public/assets/_DMRTqLA-2.js.br +0 -0
  208. package/dist/public/assets/_DV9JOmEU2.js.br +0 -0
  209. package/dist/public/assets/_DXfvbY_Q.js.br +0 -0
  210. package/dist/public/assets/_DXhrQRPb.js.br +0 -0
  211. package/dist/public/assets/_DakHZxm1.js.br +0 -0
  212. package/dist/public/assets/_Db0N45S4.js.br +0 -0
  213. package/dist/public/assets/_DbgCLxo5.js.br +0 -0
  214. package/dist/public/assets/_DfSfBcFs.js.br +0 -0
  215. package/dist/public/assets/_DnIiwZSa.js.br +0 -0
  216. package/dist/public/assets/_DnW0vqlP2.js.br +0 -0
  217. package/dist/public/assets/_Dt7xdACi.js.br +0 -0
  218. package/dist/public/assets/_DtSPvS1_.js.br +0 -0
  219. package/dist/public/assets/_DuUhapU_.js.br +0 -0
  220. package/dist/public/assets/_DwFCzFi1.js.br +0 -0
  221. package/dist/public/assets/_Dzwcxo-e.js.br +0 -0
  222. package/dist/public/assets/_MLaNsogz.js.br +0 -0
  223. package/dist/public/assets/_S4hEqend2.js.br +0 -0
  224. package/dist/public/assets/_UTtFNJ9B.js.br +0 -0
  225. package/dist/public/assets/_XEFXK4VK.js.br +0 -0
  226. package/dist/public/assets/_Xj2rl27Z.js.br +0 -0
  227. package/dist/public/assets/_ioGYI7CA.js.br +0 -0
  228. package/dist/public/assets/_n0XIu-yS.js.br +0 -0
  229. package/dist/public/assets/_oEMyCm1C2.js.br +0 -0
  230. package/dist/public/assets/_tdNHQwFq.js.br +0 -0
  231. package/dist/public/assets/_uMuEpH_b.js.br +0 -0
  232. package/dist/public/assets/_uzKsqP2S2.js.br +0 -0
  233. package/dist/public/assets/_y1iudyIK2.js.br +0 -0
  234. package/dist/public/assets/_yYMx9Q8s.js.br +0 -0
  235. package/dist/public/assets/_zW6Zb3Bx.js.br +0 -0
  236. package/dist/public/assets/app-page-CdVETHL-.css +0 -1
  237. package/dist/public/assets/app-page-CdVETHL-.css.br +0 -0
  238. package/dist/public/assets/diff-view-DAwAub6l.css +0 -1
  239. package/dist/public/assets/diff-view-DAwAub6l.css.br +0 -0
  240. package/dist/public/assets/new-mX2iXBHC.js +0 -1
  241. package/dist/public/assets/settings-mX2iXBHC.js +0 -1
  242. package/dist/public/assets/w-mX2iXBHC.js +0 -1
  243. package/dist/public/assets/w._-DelVj4P_.js +0 -1
  244. package/dist/public/assets/w._-mX2iXBHC.js +0 -1
package/dist/index.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  import { a as __toCommonJS, i as __require, n as __esmMin, o as __toESM, r as __exportAll, t as __commonJSMin } from "./_BMI-E3GI.js";
2
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 tmux, a as ensureTmuxServer, at as DEFAULT_GITHUB_HOST, b as readHookPayload, c as killWorkspaceSessions, ct as toolById, d as newSessionArgs, dt as get, et as doctor, ft as workspacePath, g as sessionStates, gt as run, h as sendToSession, ht as git, i as disposeSessions, it as which, j as setSessionViewers, k as setAgentPhase, l as listSessions, lt as all, m as renameSession, mt as gh, n as clearTmuxStarted, nt as miseVersions, o as getSession, ot as TOOLS, p as panePids, pt as TMUX_SOCKET, q as disabledAgents, r as createSession, rt as setupPath, s as killSession, st as agentById, t as cleanEnv, tt as ghKnownHosts, u as markTmuxStarted, ut as db, v as tmuxWasStarted, vt as config, w as agentFamily, x as reportsWorking, y as AGENTS, z as pushPublicKey } from "./_CExzMbX7.js";
3
- import { $ as _el_resume, A as iconBtnRow, B as _attr_input_value, C as icon_base_default, Ct as _trailers, D as btnLg, Dt as withPageAssets, E as setPrimaryHost, Et as attrTag, F as tone, G as _attrs, H as _attr_or, I as $global, J as _content, K as _attrs_partial, L as _attr, M as inputLg, N as metaTrunc, O as btnSm, Ot as writeScope, P as phase, Q as _el_read_error, R as _attr_class, S as icon_xmark_default, St as _to_text, T as repoWebUrl$1, Tt as _var, U as _attr_select_value, V as _attr_option_value, W as _attr_style, X as _dynamic_tag, Y as _content_resume, _ as icon_refresh_default, _t as _serialize_guard, at as _hoist_read_error, b as sectionCount$1, bt as _subscribe, ct as _if, d as sideNavOpen, dt as _resume_branch, et as _escape, f as workspaceTab, ft as _scope_id, g as icon_back_default, gt as _sep, h as icon_search_default, ht as _script, it as _hoist, j as iconBtnXs, lt as _peek_scope_id, m as rankRepos, mt as _scope_with_id, n as findInput, nt as _flush_head, ot as _html, pt as _scope_reason, q as _await, r as icon_sidebar_default, rt as _for_of, st as _id, t as findIconBtn, tt as _existing_scope, u as setWorkspaceTab, ut as _resume, v as iconBtn$2, vt as _serialize_if, w as repoLabel, wt as _try, x as toast_default, xt as _template, y as row, yt as _set_serialize_reason } from "./_DGA7IvGR.js";
3
+ import { $ as _el_read_error, C as icon_base_default, Ct as _to_text, D as setPrimaryHost, Dt as attrTag, E as repoWebUrl$1, Et as _var, F as phase, G as _attr_style, H as _attr_option_value, I as tone, J as _await, K as _attrs, L as $global, M as iconBtnXs, N as inputLg, O as btnLg, Ot as withPageAssets, P as metaTrunc, R as _attr, S as icon_xmark_default, St as _template, T as repoLabel, Tt as _try, U as _attr_or, V as _attr_input_value, W as _attr_select_value, X as _content_resume, Y as _content, Z as _dynamic_tag, _ as icon_refresh_default, _t as _sep, at as _hoist, b as sectionCount$1, bt as _set_serialize_reason, ct as _id, d as sideNavOpen, dt as _resume, et as _el_resume, f as workspaceTab, ft as _resume_branch, g as icon_back_default, gt as _script, h as icon_search_default, ht as _scope_with_id, it as _for_of, j as iconBtnRow, k as btnSm, kt as writeScope, lt as _if, m as rankRepos, mt as _scope_reason, n as findInput, nt as _existing_scope, ot as _hoist_read_error, pt as _scope_id, q as _attrs_partial, r as icon_sidebar_default, rt as _flush_head, st as _html, t as findIconBtn, tt as _escape, u as setWorkspaceTab, ut as _peek_scope_id, v as iconBtn$2, vt as _serialize_guard, w as parseRepoUrl, wt as _trailers, x as toast_default, xt as _subscribe, y as row, yt as _serialize_if, z as _attr_class } from "./_D5j6bTJl.js";
4
4
  import fs from "node:fs";
5
5
  import { createServer } from "node:http";
6
6
  import path from "node:path";
@@ -1494,6 +1494,248 @@ function forgetToken(host) {
1494
1494
  tokens.delete(host);
1495
1495
  }
1496
1496
  //#endregion
1497
+ //#region src/server/cache.ts
1498
+ /** Keyed stale-while-revalidate cache: a cached value is served immediately
1499
+ * (revalidating in the background when older than `ttlMs`); loads are deduped
1500
+ * per key, and `refresh` bypasses both the cache and any in-flight load. */
1501
+ function swr(ttlMs, load, seed) {
1502
+ const cache = /* @__PURE__ */ new Map();
1503
+ const inflight = /* @__PURE__ */ new Map();
1504
+ function start(key, refresh) {
1505
+ const startedAt = Date.now();
1506
+ const promise = load(key, refresh).then((value) => {
1507
+ const existing = cache.get(key);
1508
+ if (!existing || existing.at <= startedAt) cache.set(key, {
1509
+ at: Date.now(),
1510
+ value
1511
+ });
1512
+ return value;
1513
+ }).finally(() => {
1514
+ if (inflight.get(key)?.promise === promise) inflight.delete(key);
1515
+ });
1516
+ inflight.set(key, {
1517
+ promise,
1518
+ refresh
1519
+ });
1520
+ return promise;
1521
+ }
1522
+ const read = (key, refresh = false) => {
1523
+ if (refresh) {
1524
+ const current = inflight.get(key);
1525
+ return current?.refresh ? current.promise : start(key, true);
1526
+ }
1527
+ let cached = cache.get(key);
1528
+ if (!cached && seed) {
1529
+ cached = seed(key);
1530
+ if (cached) cache.set(key, cached);
1531
+ }
1532
+ if (cached) {
1533
+ if (Date.now() - cached.at >= ttlMs && !inflight.has(key)) start(key, false).catch(() => {});
1534
+ return Promise.resolve(cached.value);
1535
+ }
1536
+ return inflight.get(key)?.promise ?? start(key, false);
1537
+ };
1538
+ /** Inject an externally fetched value (e.g. from a batched load). */
1539
+ read.set = (key, value) => {
1540
+ cache.set(key, {
1541
+ at: Date.now(),
1542
+ value
1543
+ });
1544
+ };
1545
+ /** Current cached value, if any — used when a batch update must merge
1546
+ * with a richer per-key load rather than replace it. */
1547
+ read.get = (key) => cache.get(key)?.value;
1548
+ return read;
1549
+ }
1550
+ //#endregion
1551
+ //#region src/server/github.ts
1552
+ var TTL_MS$3 = 9e5;
1553
+ /** github.com keeps the historical file name; Enterprise hosts get their own. */
1554
+ var cachePath = (host) => path.join(config.dataDir, host === DEFAULT_HOST ? "repos.json" : `repos.${host}.json`);
1555
+ /**
1556
+ * User's repos plus every org's on every configured host, merged and cached
1557
+ * (in memory, persisted to disk across restarts). Cached results are served
1558
+ * immediately no matter their age, with a background revalidate when stale
1559
+ * — only an explicit refresh or an empty cache blocks. Hosts are
1560
+ * independent: a signed-out Enterprise server costs its own repos, never
1561
+ * github.com's.
1562
+ */
1563
+ async function repoCatalog(refresh = false) {
1564
+ const hosts = configuredHosts();
1565
+ const parts = await Promise.all(hosts.map((host) => catalog(host, refresh).catch(() => {
1566
+ if (host === DEFAULT_HOST && refresh) throw new Error(`gh repo listing failed`);
1567
+ return catalog.get(host) ?? null;
1568
+ })));
1569
+ const repos = parts.flatMap((c) => c?.repos ?? []);
1570
+ return {
1571
+ fetchedAt: Math.min(...parts.map((c) => c?.fetchedAt ?? Date.now())),
1572
+ repos: repos.sort((a, b) => a.nameWithOwner.localeCompare(b.nameWithOwner))
1573
+ };
1574
+ }
1575
+ var catalog = swr(TTL_MS$3, fetchCatalog, readDiskCache);
1576
+ function readDiskCache(host) {
1577
+ try {
1578
+ const cached = JSON.parse(fs.readFileSync(cachePath(host), "utf8"));
1579
+ if (!Array.isArray(cached?.repos)) return void 0;
1580
+ for (const r of cached.repos) r.host ||= host;
1581
+ return {
1582
+ at: cached.fetchedAt,
1583
+ value: cached
1584
+ };
1585
+ } catch {
1586
+ return;
1587
+ }
1588
+ }
1589
+ async function fetchCatalog(host) {
1590
+ let partial = false;
1591
+ const orgs = (await gh([
1592
+ "api",
1593
+ "user/orgs",
1594
+ "--jq",
1595
+ ".[].login"
1596
+ ], host).catch(() => {
1597
+ partial = true;
1598
+ return "";
1599
+ })).split("\n").filter(Boolean);
1600
+ const lists = await Promise.all([void 0, ...orgs].map((owner) => gh([
1601
+ "repo",
1602
+ "list",
1603
+ ...owner ? [owner] : [],
1604
+ "--limit",
1605
+ "500",
1606
+ "--json",
1607
+ "nameWithOwner,defaultBranchRef,isArchived,parent"
1608
+ ], host).catch(() => {
1609
+ partial = true;
1610
+ return "[]";
1611
+ })));
1612
+ const byName = /* @__PURE__ */ new Map();
1613
+ for (const out of lists) for (const r of JSON.parse(out)) byName.set(r.nameWithOwner, {
1614
+ nameWithOwner: joinRepo(host, r.nameWithOwner),
1615
+ host,
1616
+ defaultBranch: r.defaultBranchRef?.name || "main",
1617
+ isArchived: !!r.isArchived,
1618
+ parent: r.parent ? joinRepo(host, `${r.parent.owner.login}/${r.parent.name}`) : null
1619
+ });
1620
+ const repos = [...byName.values()].sort((a, b) => a.nameWithOwner.localeCompare(b.nameWithOwner));
1621
+ const catalog = {
1622
+ fetchedAt: Date.now(),
1623
+ repos
1624
+ };
1625
+ if (partial) {
1626
+ if (readDiskCache(host)) throw new Error("gh repo listing failed");
1627
+ return catalog;
1628
+ }
1629
+ const tmp = cachePath(host) + ".tmp";
1630
+ fs.writeFileSync(tmp, JSON.stringify(catalog));
1631
+ fs.renameSync(tmp, cachePath(host));
1632
+ return catalog;
1633
+ }
1634
+ /** Fork `fullName` under the signed-in user and return the fork's
1635
+ * `[host/]owner/name`. Idempotent: GitHub answers the POST with the
1636
+ * existing fork if there is one. Fork creation is async on GitHub's side,
1637
+ * so wait until the fork actually has branches — cloning too early gets a
1638
+ * repo with no refs and the worktree add fails on a missing base. An
1639
+ * empty *upstream* also has no branches; the timeout lets that case fall
1640
+ * through to the clone rather than erroring here. */
1641
+ async function ensureFork(fullName) {
1642
+ const { host, name } = splitRepo(fullName);
1643
+ const out = await gh([
1644
+ "api",
1645
+ "-X",
1646
+ "POST",
1647
+ `repos/${name}/forks`,
1648
+ "--jq",
1649
+ ".full_name"
1650
+ ], host);
1651
+ const fork = out.trim();
1652
+ if (!/^[\w.-]+\/[\w.-]+$/.test(fork)) throw new Error(`forking ${fullName} failed: ${out || "no response"}`);
1653
+ const forkFull = joinRepo(host, fork);
1654
+ for (let tries = 0; tries < 15; tries++) {
1655
+ if (await forkHasRefs(forkFull, host, fork)) break;
1656
+ if (tries < 14) await new Promise((r) => setTimeout(r, 2e3));
1657
+ }
1658
+ return forkFull;
1659
+ }
1660
+ async function forkHasRefs(forkFull, host, fork) {
1661
+ try {
1662
+ await ensureGitCredentials(host);
1663
+ if ((await git([
1664
+ "ls-remote",
1665
+ "--heads",
1666
+ cloneUrl(forkFull)
1667
+ ])).split("\n").some((l) => l.includes(" refs/heads/"))) return true;
1668
+ } catch {}
1669
+ const count = await gh([
1670
+ "api",
1671
+ `repos/${fork}/branches?per_page=1`,
1672
+ "--jq",
1673
+ "length"
1674
+ ], host).catch(() => "");
1675
+ return !!count && count !== "0";
1676
+ }
1677
+ /** Branch names for a repo (for base-branch selection). */
1678
+ var repoBranches = (fullName) => branches(fullName);
1679
+ /** Upstream `[host/]owner/name` when the repo is a fork, else null. A PR
1680
+ * opened from a fork lives in the upstream repo, so PR search needs this to
1681
+ * know where else to look. The catalog answers from disk for listed repos
1682
+ * (the status batch asks for every active repo at once, and must not fan
1683
+ * out into per-repo REST calls on a cold start); the per-repo lookup covers
1684
+ * repos outside it. Failures resolve to null (and age out with the TTL) —
1685
+ * a blip here must cost fork PRs, not the whole status tick. */
1686
+ async function repoParent(fullName) {
1687
+ const hit = (await repoCatalog().catch(() => null))?.repos.find((r) => r.nameWithOwner === fullName);
1688
+ if (hit && hit.parent !== void 0) return hit.parent;
1689
+ return (await repoMeta(fullName)).parent;
1690
+ }
1691
+ /** The repo's default branch, or null when the lookup failed. */
1692
+ var repoDefaultBranch = async (fullName) => (await repoMeta(fullName)).defaultBranch;
1693
+ var repoMeta = swr(36e5, async (fullName) => {
1694
+ const { host, name } = splitRepo(fullName);
1695
+ const out = await gh([
1696
+ "api",
1697
+ `repos/${name}`,
1698
+ "--jq",
1699
+ "{parent: (.parent.full_name // null), default: .default_branch}"
1700
+ ], host).catch(() => "");
1701
+ let parsed = {};
1702
+ try {
1703
+ parsed = JSON.parse(out);
1704
+ } catch {}
1705
+ if (!parsed.default) try {
1706
+ await ensureGitCredentials(host);
1707
+ const symref = await git([
1708
+ "ls-remote",
1709
+ "--symref",
1710
+ cloneUrl(fullName),
1711
+ "HEAD"
1712
+ ]);
1713
+ parsed.default = /^ref: refs\/heads\/(\S+)\tHEAD/m.exec(symref)?.[1] ?? null;
1714
+ } catch {}
1715
+ return {
1716
+ parent: parsed.parent ? joinRepo(host, parsed.parent) : null,
1717
+ defaultBranch: parsed.default || null
1718
+ };
1719
+ });
1720
+ var branches = swr(3e5, async (fullName) => {
1721
+ const { host, name } = splitRepo(fullName);
1722
+ try {
1723
+ return (await gh([
1724
+ "api",
1725
+ `repos/${name}/branches?per_page=100`,
1726
+ "--jq",
1727
+ ".[].name"
1728
+ ], host)).split("\n").filter(Boolean);
1729
+ } catch {
1730
+ await ensureGitCredentials(host);
1731
+ return (await git([
1732
+ "ls-remote",
1733
+ "--heads",
1734
+ cloneUrl(fullName)
1735
+ ])).split("\n").map((l) => l.split(" refs/heads/")[1]).filter(Boolean);
1736
+ }
1737
+ });
1738
+ //#endregion
1497
1739
  //#region src/server/procs.ts
1498
1740
  var darwin = process.platform === "darwin";
1499
1741
  /** Listening TCP ports attributed to workspaces by the owning process's cwd. */
@@ -1729,6 +1971,7 @@ function hydrate(ws) {
1729
1971
  }
1730
1972
  async function createWorkspace(name, repos) {
1731
1973
  if (!name.trim()) throw new Error("workspace name required");
1974
+ for (const repo of repos) assertKnownHost(repo.fullName);
1732
1975
  const slug = slugify(name);
1733
1976
  const id = randomId();
1734
1977
  const dir = path.join(config.workRoot, `${slug}-${id}`);
@@ -1739,13 +1982,14 @@ async function createWorkspace(name, repos) {
1739
1982
  try {
1740
1983
  for (const repo of repos) {
1741
1984
  const worktree = siblings.get(repo.fullName);
1742
- const row = await withRepoLock(repo.fullName, async () => {
1743
- const bare = await ensureBare(repo.fullName);
1985
+ const fullName = await resolveFork(repo);
1986
+ const row = await withRepoLock(fullName, async () => {
1987
+ const bare = await ensureBare(fullName);
1744
1988
  const defaultBranch = await bareDefaultBranch(bare);
1745
1989
  const base = repo.baseBranch || defaultBranch;
1746
1990
  await addWorkspaceWorktree(bare, path.join(dir, worktree), branch, base);
1747
1991
  return {
1748
- full_name: repo.fullName,
1992
+ full_name: fullName,
1749
1993
  worktree,
1750
1994
  base_branch: base,
1751
1995
  default_branch: defaultBranch
@@ -1772,11 +2016,17 @@ async function createWorkspace(name, repos) {
1772
2016
  notifyWorkspacesChanged();
1773
2017
  return getWorkspace(id);
1774
2018
  }
1775
- async function addRepo$1(workspaceId, fullName, baseBranch) {
2019
+ async function addRepo$1(workspaceId, fullName, baseBranch, fork) {
1776
2020
  const ws = getWorkspace(workspaceId);
1777
2021
  if (!ws) throw new Error(`unknown workspace: ${workspaceId}`);
1778
- if (ws.repos.some((r) => r.full_name === fullName)) throw new Error(`${fullName} is already in this workspace`);
1779
- const worktree = assignSiblingNames([...ws.repos.map((r) => r.full_name), fullName]).get(fullName);
2022
+ assertKnownHost(fullName);
2023
+ const requested = fullName;
2024
+ const worktree = assignSiblingNames([...ws.repos.map((r) => r.full_name), requested]).get(requested);
2025
+ fullName = await resolveFork({
2026
+ fullName: requested,
2027
+ fork
2028
+ });
2029
+ await assertRepoNotInWorkspace(ws, requested, fullName);
1780
2030
  const { base, defaultBranch } = await withRepoLock(fullName, async () => {
1781
2031
  const bare = await ensureBare(fullName);
1782
2032
  const defaultBranch = await bareDefaultBranch(bare);
@@ -1915,6 +2165,33 @@ function progressSince(seq, op) {
1915
2165
  messages: seq === void 0 ? [] : progressLog.filter((e) => e.seq > seq && (!op || e.op === op))
1916
2166
  };
1917
2167
  }
2168
+ /** The name to clone: the user's fork of `fullName` when asked, made (or
2169
+ * found — GitHub's fork POST is idempotent) on the spot. */
2170
+ async function resolveFork(repo) {
2171
+ if (!repo.fork) return repo.fullName;
2172
+ progress$1(`Forking ${repo.fullName}…`);
2173
+ return ensureFork(repo.fullName);
2174
+ }
2175
+ /** Only github.com and hosts the user added (or gh already knows). Blocks
2176
+ * pasted `evil.com/o/r` from reaching ls-remote / clone. */
2177
+ function assertKnownHost(fullName) {
2178
+ const { host } = splitRepo(fullName);
2179
+ if (!configuredHosts().includes(host)) throw new Error(`unknown host ${host}: add it in Settings before cloning`);
2180
+ }
2181
+ /** Reject when the workspace already holds the resolved name, the
2182
+ * requested upstream, or a fork/parent pair of either — so forking
2183
+ * `torvalds/linux` then pasting that URL as-is (or the reverse) fails
2184
+ * cleanly instead of adding a second worktree. */
2185
+ async function assertRepoNotInWorkspace(ws, requested, resolved) {
2186
+ const held = new Set(ws.repos.map((r) => r.full_name));
2187
+ if (held.has(resolved) || held.has(requested)) throw new Error(`${held.has(resolved) ? resolved : requested} is already in this workspace`);
2188
+ for (const r of ws.repos) {
2189
+ const parent = await repoParent(r.full_name).catch(() => null);
2190
+ if (parent === requested || parent === resolved) throw new Error(`${r.full_name} (fork of ${parent}) is already in this workspace`);
2191
+ }
2192
+ const parentOfRequested = await repoParent(requested).catch(() => null);
2193
+ if (parentOfRequested && held.has(parentOfRequested)) throw new Error(`${parentOfRequested} (upstream of ${requested}) is already in this workspace`);
2194
+ }
1918
2195
  /** One operation at a time per shared bare cache: concurrent create/delete
1919
2196
  * on the same repo would race `worktree add` against `worktree prune` and
1920
2197
  * concurrent fetches. Chained promises, released even on failure. */
@@ -2197,60 +2474,6 @@ ${repos.map((r) => `- \`${r.worktree}/\`: ${r.full_name} (base: \`${r.base_branc
2197
2474
  if (!fs.existsSync(claudeMd)) fs.symlinkSync("AGENTS.md", claudeMd);
2198
2475
  }
2199
2476
  //#endregion
2200
- //#region src/server/cache.ts
2201
- /** Keyed stale-while-revalidate cache: a cached value is served immediately
2202
- * (revalidating in the background when older than `ttlMs`); loads are deduped
2203
- * per key, and `refresh` bypasses both the cache and any in-flight load. */
2204
- function swr(ttlMs, load, seed) {
2205
- const cache = /* @__PURE__ */ new Map();
2206
- const inflight = /* @__PURE__ */ new Map();
2207
- function start(key, refresh) {
2208
- const startedAt = Date.now();
2209
- const promise = load(key, refresh).then((value) => {
2210
- const existing = cache.get(key);
2211
- if (!existing || existing.at <= startedAt) cache.set(key, {
2212
- at: Date.now(),
2213
- value
2214
- });
2215
- return value;
2216
- }).finally(() => {
2217
- if (inflight.get(key)?.promise === promise) inflight.delete(key);
2218
- });
2219
- inflight.set(key, {
2220
- promise,
2221
- refresh
2222
- });
2223
- return promise;
2224
- }
2225
- const read = (key, refresh = false) => {
2226
- if (refresh) {
2227
- const current = inflight.get(key);
2228
- return current?.refresh ? current.promise : start(key, true);
2229
- }
2230
- let cached = cache.get(key);
2231
- if (!cached && seed) {
2232
- cached = seed(key);
2233
- if (cached) cache.set(key, cached);
2234
- }
2235
- if (cached) {
2236
- if (Date.now() - cached.at >= ttlMs && !inflight.has(key)) start(key, false).catch(() => {});
2237
- return Promise.resolve(cached.value);
2238
- }
2239
- return inflight.get(key)?.promise ?? start(key, false);
2240
- };
2241
- /** Inject an externally fetched value (e.g. from a batched load). */
2242
- read.set = (key, value) => {
2243
- cache.set(key, {
2244
- at: Date.now(),
2245
- value
2246
- });
2247
- };
2248
- /** Current cached value, if any — used when a batch update must merge
2249
- * with a richer per-key load rather than replace it. */
2250
- read.get = (key) => cache.get(key)?.value;
2251
- return read;
2252
- }
2253
- //#endregion
2254
2477
  //#region src/server/http.ts
2255
2478
  /** Error whose `status` the API error-boundary middleware uses for the response. */
2256
2479
  function httpError(status, message) {
@@ -2655,132 +2878,6 @@ async function graphql(query, host = DEFAULT_HOST) {
2655
2878
  return body.data;
2656
2879
  }
2657
2880
  //#endregion
2658
- //#region src/server/github.ts
2659
- var TTL_MS$3 = 9e5;
2660
- /** github.com keeps the historical file name; Enterprise hosts get their own. */
2661
- var cachePath = (host) => path.join(config.dataDir, host === DEFAULT_HOST ? "repos.json" : `repos.${host}.json`);
2662
- /**
2663
- * User's repos plus every org's on every configured host, merged and cached
2664
- * (in memory, persisted to disk across restarts). Cached results are served
2665
- * immediately no matter their age, with a background revalidate when stale
2666
- * — only an explicit refresh or an empty cache blocks. Hosts are
2667
- * independent: a signed-out Enterprise server costs its own repos, never
2668
- * github.com's.
2669
- */
2670
- async function repoCatalog(refresh = false) {
2671
- const hosts = configuredHosts();
2672
- const parts = await Promise.all(hosts.map((host) => catalog(host, refresh).catch(() => {
2673
- if (host === DEFAULT_HOST && refresh) throw new Error(`gh repo listing failed`);
2674
- return catalog.get(host) ?? null;
2675
- })));
2676
- const repos = parts.flatMap((c) => c?.repos ?? []);
2677
- return {
2678
- fetchedAt: Math.min(...parts.map((c) => c?.fetchedAt ?? Date.now())),
2679
- repos: repos.sort((a, b) => a.nameWithOwner.localeCompare(b.nameWithOwner))
2680
- };
2681
- }
2682
- var catalog = swr(TTL_MS$3, fetchCatalog, readDiskCache);
2683
- function readDiskCache(host) {
2684
- try {
2685
- const cached = JSON.parse(fs.readFileSync(cachePath(host), "utf8"));
2686
- if (!Array.isArray(cached?.repos)) return void 0;
2687
- for (const r of cached.repos) r.host ||= host;
2688
- return {
2689
- at: cached.fetchedAt,
2690
- value: cached
2691
- };
2692
- } catch {
2693
- return;
2694
- }
2695
- }
2696
- async function fetchCatalog(host) {
2697
- let partial = false;
2698
- const orgs = (await gh([
2699
- "api",
2700
- "user/orgs",
2701
- "--jq",
2702
- ".[].login"
2703
- ], host).catch(() => {
2704
- partial = true;
2705
- return "";
2706
- })).split("\n").filter(Boolean);
2707
- const lists = await Promise.all([void 0, ...orgs].map((owner) => gh([
2708
- "repo",
2709
- "list",
2710
- ...owner ? [owner] : [],
2711
- "--limit",
2712
- "500",
2713
- "--json",
2714
- "nameWithOwner,defaultBranchRef,isArchived,parent"
2715
- ], host).catch(() => {
2716
- partial = true;
2717
- return "[]";
2718
- })));
2719
- const byName = /* @__PURE__ */ new Map();
2720
- for (const out of lists) for (const r of JSON.parse(out)) byName.set(r.nameWithOwner, {
2721
- nameWithOwner: joinRepo(host, r.nameWithOwner),
2722
- host,
2723
- defaultBranch: r.defaultBranchRef?.name || "main",
2724
- isArchived: !!r.isArchived,
2725
- parent: r.parent ? joinRepo(host, `${r.parent.owner.login}/${r.parent.name}`) : null
2726
- });
2727
- const repos = [...byName.values()].sort((a, b) => a.nameWithOwner.localeCompare(b.nameWithOwner));
2728
- const catalog = {
2729
- fetchedAt: Date.now(),
2730
- repos
2731
- };
2732
- if (partial) {
2733
- if (readDiskCache(host)) throw new Error("gh repo listing failed");
2734
- return catalog;
2735
- }
2736
- const tmp = cachePath(host) + ".tmp";
2737
- fs.writeFileSync(tmp, JSON.stringify(catalog));
2738
- fs.renameSync(tmp, cachePath(host));
2739
- return catalog;
2740
- }
2741
- /** Branch names for a repo (for base-branch selection). */
2742
- var repoBranches = (fullName) => branches(fullName);
2743
- /** Upstream `[host/]owner/name` when the repo is a fork, else null. A PR
2744
- * opened from a fork lives in the upstream repo, so PR search needs this to
2745
- * know where else to look. The catalog answers from disk for listed repos
2746
- * (the status batch asks for every active repo at once, and must not fan
2747
- * out into per-repo REST calls on a cold start); the per-repo lookup covers
2748
- * repos outside it. Failures resolve to null (and age out with the TTL) —
2749
- * a blip here must cost fork PRs, not the whole status tick. */
2750
- async function repoParent(fullName) {
2751
- const hit = (await repoCatalog().catch(() => null))?.repos.find((r) => r.nameWithOwner === fullName);
2752
- if (hit && hit.parent !== void 0) return hit.parent;
2753
- return (await repoMeta(fullName)).parent;
2754
- }
2755
- /** The repo's default branch, or null when the lookup failed. */
2756
- var repoDefaultBranch = async (fullName) => (await repoMeta(fullName)).defaultBranch;
2757
- var repoMeta = swr(36e5, async (fullName) => {
2758
- const { host, name } = splitRepo(fullName);
2759
- const out = await gh([
2760
- "api",
2761
- `repos/${name}`,
2762
- "--jq",
2763
- "{parent: (.parent.full_name // null), default: .default_branch}"
2764
- ], host).catch(() => "");
2765
- let parsed = {};
2766
- try {
2767
- parsed = JSON.parse(out);
2768
- } catch {}
2769
- return {
2770
- parent: parsed.parent ? joinRepo(host, parsed.parent) : null,
2771
- defaultBranch: parsed.default || null
2772
- };
2773
- });
2774
- var branches = swr(3e5, async (fullName) => {
2775
- const { host, name } = splitRepo(fullName);
2776
- return (await gh([
2777
- "api",
2778
- `repos/${name}/branches?per_page=100`,
2779
- "--jq",
2780
- ".[].name"
2781
- ], host)).split("\n").filter(Boolean);
2782
- });
2783
- //#endregion
2784
2881
  //#region src/server/prs.ts
2785
2882
  var TTL_MS$2 = 12e4;
2786
2883
  /** PRs whose head is the workspace branch or one of its `-topic` lanes.
@@ -3349,26 +3446,26 @@ function applyInstance(inst) {
3349
3446
  }
3350
3447
  //#endregion
3351
3448
  //#region src/tags/settings-page.css.ts
3352
- var content$2 = "_b_ _bB _bC";
3353
- var agentGrid = "_cd _bm";
3354
- var toolGrid = "_cn _bm";
3449
+ var content$2 = "_ca _bk _bl";
3450
+ var agentGrid = "_ce _bv";
3451
+ var toolGrid = "_co _bv";
3355
3452
  //#endregion
3356
3453
  //#region src/tags/page-head.marko
3357
3454
  var page_head_default = _template("q", (input) => {
3358
3455
  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);
3359
3456
  const $scope0_id = _scope_id();
3360
- _html(`<header${_attr_class("_bD")}>`);
3457
+ _html(`<header${_attr_class("_bm")}>`);
3361
3458
  _if(() => {
3362
3459
  if (input.backHref) {
3363
3460
  const $scope1_id = _scope_id();
3364
- _html(`<a${_attr("href", input.backHref)}${_attr_class([iconBtnRow, "_cH"])}${_attr_or("title", input.backTitle, " title=\"Back (Esc)\"")}${_attr_or("aria-label", input.backTitle, " aria-label=Back")}>`);
3461
+ _html(`<a${_attr("href", input.backHref)}${_attr_class([iconBtnRow, "_cX"])}${_attr_or("title", input.backTitle, " title=\"Back (Esc)\"")}${_attr_or("aria-label", input.backTitle, " aria-label=Back")}>`);
3365
3462
  icon_back_default({ size: 16 });
3366
3463
  _html(`</a>${_el_resume($scope1_id, "a", _serialize_guard($scope0_reason, 0))}`);
3367
3464
  _serialize_if($scope0_reason, 2) && writeScope($scope1_id, { _: _serialize_if($scope0_reason, 0) && _scope_with_id($scope0_id) });
3368
3465
  return 0;
3369
3466
  } else if (input.onBack) {
3370
3467
  const $scope2_id = _scope_id();
3371
- _html(`<button${_attr_class([iconBtnRow, "_cH"])}${_attr_or("title", input.backTitle, " title=\"Back (Esc)\"")}${_attr_or("aria-label", input.backTitle, " aria-label=Back")}>`);
3468
+ _html(`<button${_attr_class([iconBtnRow, "_cX"])}${_attr_or("title", input.backTitle, " title=\"Back (Esc)\"")}${_attr_or("aria-label", input.backTitle, " aria-label=Back")}>`);
3372
3469
  icon_back_default({ size: 16 });
3373
3470
  _html(`</button>${_el_resume($scope2_id, "a")}`);
3374
3471
  _script($scope2_id, "q0");
@@ -3376,11 +3473,11 @@ var page_head_default = _template("q", (input) => {
3376
3473
  return 1;
3377
3474
  }
3378
3475
  }, $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);
3379
- _html(`<div${_attr_class("_bF")}><h1${_attr("id", input.titleId)}${_attr_class("_bE")}>${_escape(input.title)}${_el_resume($scope0_id, "e", _serialize_guard($scope0_reason, 5))}</h1>${_el_resume($scope0_id, "d", _serialize_guard($scope0_reason, 4))}`);
3476
+ _html(`<div${_attr_class("_bo")}><h1${_attr("id", input.titleId)}${_attr_class("_bn")}>${_escape(input.title)}${_el_resume($scope0_id, "e", _serialize_guard($scope0_reason, 5))}</h1>${_el_resume($scope0_id, "d", _serialize_guard($scope0_reason, 4))}`);
3380
3477
  _if(() => {
3381
3478
  if (input.meta) {
3382
3479
  const $scope3_id = _scope_id();
3383
- _html(`<p${_attr_class("_bG")}>`);
3480
+ _html(`<p${_attr_class("_bp")}>`);
3384
3481
  _dynamic_tag($scope3_id, "b", input.meta, {}, 0, 0, $sg__input_meta);
3385
3482
  _html("</p>");
3386
3483
  $si__input_meta && writeScope($scope3_id, { _: _scope_with_id($scope0_id) });
@@ -3391,7 +3488,7 @@ var page_head_default = _template("q", (input) => {
3391
3488
  _if(() => {
3392
3489
  if (input.actions) {
3393
3490
  const $scope4_id = _scope_id();
3394
- _html(`<div${_attr_class("_bH")}>`);
3491
+ _html(`<div${_attr_class("_bq")}>`);
3395
3492
  _dynamic_tag($scope4_id, "b", input.actions, {}, 0, 0, $sg__input_actions);
3396
3493
  _html("</div>");
3397
3494
  $si__input_actions && writeScope($scope4_id, { _: _scope_with_id($scope0_id) });
@@ -3459,7 +3556,7 @@ var icon_agent_default = _template("E", (input) => {
3459
3556
  n: $badge__closures
3460
3557
  });
3461
3558
  });
3462
- var usageNote = "_c4 _S";
3559
+ var usageNote = "_eK _S";
3463
3560
  //#endregion
3464
3561
  //#region src/tags/usage-meters.marko
3465
3562
  function duration(ms) {
@@ -3483,11 +3580,11 @@ var usage_meters_default = _template("B", (input) => {
3483
3580
  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);
3484
3581
  const $scope0_id = _scope_id();
3485
3582
  const agent = input.agent;
3486
- _html(`<div${_attr_class(["_cY", { ["_cZ"]: input.hideName }])}><div${_attr_class("_c0")}>`);
3583
+ _html(`<div${_attr_class(["_eE", { ["_eF"]: input.hideName }])}><div${_attr_class("_eG")}>`);
3487
3584
  _if(() => {
3488
3585
  if (!input.hideName) {
3489
3586
  const $scope1_id = _scope_id();
3490
- _html(`<strong${_attr_class("_di")}>${_escape(agent.agent)}${_el_resume($scope1_id, "b", $sg__input_agent)}</strong>`);
3587
+ _html(`<strong${_attr_class("_eZ")}>${_escape(agent.agent)}${_el_resume($scope1_id, "b", $sg__input_agent)}</strong>`);
3491
3588
  $si__input_agent__OR__input_hideName && writeScope($scope1_id, { _: $si__input_agent && _scope_with_id($scope0_id) });
3492
3589
  return 0;
3493
3590
  }
@@ -3495,7 +3592,7 @@ var usage_meters_default = _template("B", (input) => {
3495
3592
  _if(() => {
3496
3593
  if (agent.plan && agent.plan.toLowerCase() !== agent.agent.toLowerCase()) {
3497
3594
  const $scope2_id = _scope_id();
3498
- _html(`<span${_attr_class("_c1")}>${_escape(agent.plan.replace(/^default_/, "").replaceAll("_", " "))}${_el_resume($scope2_id, "b", $sg__input_agent)}</span>`);
3595
+ _html(`<span${_attr_class("_eH")}>${_escape(agent.plan.replace(/^default_/, "").replaceAll("_", " "))}${_el_resume($scope2_id, "b", $sg__input_agent)}</span>`);
3499
3596
  $si__input_agent && writeScope($scope2_id, { _: _scope_with_id($scope0_id) });
3500
3597
  return 0;
3501
3598
  }
@@ -3503,19 +3600,19 @@ var usage_meters_default = _template("B", (input) => {
3503
3600
  _if(() => {
3504
3601
  if (agent.stale_seconds != null) {
3505
3602
  const $scope3_id = _scope_id();
3506
- _html(`<span${_attr_class("_c2")}${_attr("title", `${agent.note || "provider unreachable"}. Last cached numbers, ${duration(agent.stale_seconds * 1e3)} old`)}>⚠ ${_sep($sg__input_agent)}${_escape(duration(agent.stale_seconds * 1e3))}${_el_resume($scope3_id, "b", $sg__input_agent)} old</span>${_el_resume($scope3_id, "a", $sg__input_agent)}`);
3603
+ _html(`<span${_attr_class("_eI")}${_attr("title", `${agent.note || "provider unreachable"}. Last cached numbers, ${duration(agent.stale_seconds * 1e3)} old`)}>⚠ ${_sep($sg__input_agent)}${_escape(duration(agent.stale_seconds * 1e3))}${_el_resume($scope3_id, "b", $sg__input_agent)} old</span>${_el_resume($scope3_id, "a", $sg__input_agent)}`);
3507
3604
  $si__input_agent && writeScope($scope3_id, { _: _scope_with_id($scope0_id) });
3508
3605
  return 0;
3509
3606
  }
3510
3607
  }, $scope0_id, "e", $sg__input_agent, $sg__input_agent, $sg__input_agent__OR__input_hideName, 0, 1);
3511
- _html(`</div><div${_attr_class(["_c3", { ["_dj"]: agent.stale_seconds != null }])}>`);
3608
+ _html(`</div><div${_attr_class(["_eJ", { ["_e0"]: agent.stale_seconds != null }])}>`);
3512
3609
  _for_of(agent.windows || [], (win) => {
3513
3610
  const $scope4_id = _scope_id();
3514
3611
  const pct = pctText$1(win.used_percent);
3515
3612
  const label = resetLabel(win.resets_at, agent.stale_seconds != null);
3516
- const fillClass = win.used_percent >= 90 ? "_db" : win.used_percent >= 70 ? "_da" : win.used_percent >= 40 ? "_c_" : "_c9";
3517
- const pctClass = win.used_percent >= 90 ? "_dg" : win.used_percent >= 70 ? "_df" : win.used_percent >= 40 ? "_de" : "_dd";
3518
- _html(`<div${_attr_class("_c5")}${_attr("title", `${win.window}: ${pct} used${win.resets_at ? `, resets ${new Date(win.resets_at).toLocaleString()}` : ""}`)}><span${_attr_class("_c6")}>${_escape(win.window)}${_el_resume($scope4_id, "c", $sg__input_agent)}</span><span${_attr_class("_c7")}><span${_attr_class(["_c8", 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(["_dc", pctClass])}>${_escape(pct)}${_el_resume($scope4_id, "g", $sg__input_agent)}</span>${_el_resume($scope4_id, "f", $sg__input_agent)}<span${_attr_class("_dh")}>${label ? `↻ ${_escape(`${_to_text(label)}`)}` : ""}${_el_resume($scope4_id, "i", $sg__input_agent)}</span></div>${_el_resume($scope4_id, "a", $sg__input_agent)}`);
3613
+ const fillClass = win.used_percent >= 90 ? "_eS" : win.used_percent >= 70 ? "_eR" : win.used_percent >= 40 ? "_eQ" : "_eP";
3614
+ const pctClass = win.used_percent >= 90 ? "_eX" : win.used_percent >= 70 ? "_eW" : win.used_percent >= 40 ? "_eV" : "_eU";
3615
+ _html(`<div${_attr_class("_eL")}${_attr("title", `${win.window}: ${pct} used${win.resets_at ? `, resets ${new Date(win.resets_at).toLocaleString()}` : ""}`)}><span${_attr_class("_eM")}>${_escape(win.window)}${_el_resume($scope4_id, "c", $sg__input_agent)}</span><span${_attr_class("_eN")}><span${_attr_class(["_eO", 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(["_eT", pctClass])}>${_escape(pct)}${_el_resume($scope4_id, "g", $sg__input_agent)}</span>${_el_resume($scope4_id, "f", $sg__input_agent)}<span${_attr_class("_eY")}>${label ? `↻ ${_escape(`${_to_text(label)}`)}` : ""}${_el_resume($scope4_id, "i", $sg__input_agent)}</span></div>${_el_resume($scope4_id, "a", $sg__input_agent)}`);
3519
3616
  $si__input_agent && writeScope($scope4_id, { _: _scope_with_id($scope0_id) });
3520
3617
  }, "window", $scope0_id, "g", $sg__input_agent, $sg__input_agent, $sg__input_agent, 0, 1);
3521
3618
  _if(() => {
@@ -3574,7 +3671,7 @@ var modal_view_default = _template("o", (input) => {
3574
3671
  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;
3575
3672
  const dismissable = input.dismissable !== false;
3576
3673
  let open = input.open;
3577
- _html(`<dialog${_attr_class(["_e5", inputClass])}${_attr("aria-labelledby", inputLabelledBy)}${inputLabelledBy ? _attr("aria-label", inputAriaLabel) : _attr("aria-label", inputAriaLabel || label)} closedby=${dismissable ? "any" : "none"}${_attrs_partial({
3674
+ _html(`<dialog${_attr_class(["_gX", inputClass])}${_attr("aria-labelledby", inputLabelledBy)}${inputLabelledBy ? _attr("aria-label", inputAriaLabel) : _attr("aria-label", inputAriaLabel || label)} closedby=${dismissable ? "any" : "none"}${_attrs_partial({
3578
3675
  ...htmlInput,
3579
3676
  open: null
3580
3677
  }, {
@@ -3584,20 +3681,20 @@ var modal_view_default = _template("o", (input) => {
3584
3681
  closedby: 1,
3585
3682
  "on-cancel": 1,
3586
3683
  "on-close": 1
3587
- }, "a", $scope0_id, "dialog")}><div${_attr_class("_e6")}>`);
3684
+ }, "a", $scope0_id, "dialog")}><div${_attr_class("_gY")}>`);
3588
3685
  _dynamic_tag($scope0_id, "c", content, {}, 0, 0, _serialize_guard($scope0_reason, 6));
3589
3686
  _html("</div>");
3590
3687
  _if(() => {
3591
3688
  if (footer) {
3592
3689
  const $scope1_id = _scope_id();
3593
- _html(`<form method=dialog${_attr_class("_e7")}>`);
3690
+ _html(`<form method=dialog${_attr_class("_gZ")}>`);
3594
3691
  _dynamic_tag($scope1_id, "b", footer.content, {}, 0, 0, _serialize_guard($scope0_reason, 7));
3595
3692
  _html("</form>");
3596
3693
  $si__input_openChange__OR__input_footer && writeScope($scope1_id, { _: _serialize_if($scope0_reason, 7) && _scope_with_id($scope0_id) });
3597
3694
  return 0;
3598
3695
  } else if (input.openChange) {
3599
3696
  const $scope2_id = _scope_id();
3600
- _html(`<form method=dialog${_attr_class("_e7")}>`);
3697
+ _html(`<form method=dialog${_attr_class("_gZ")}>`);
3601
3698
  dialog_close_default({
3602
3699
  class: ["_o", "_p"],
3603
3700
  content: _content("o0", () => {
@@ -3656,7 +3753,7 @@ var prompt_dialog_default = _template("r", (input) => {
3656
3753
  const $childScope = _peek_scope_id();
3657
3754
  modal_view_default({
3658
3755
  label: input.label,
3659
- class: "_cW",
3756
+ class: "_eC",
3660
3757
  open: input.open,
3661
3758
  openChange: input.openChange,
3662
3759
  "aria-labelledby": titleId,
@@ -3679,7 +3776,7 @@ var prompt_dialog_default = _template("r", (input) => {
3679
3776
  content: _content("r6", () => {
3680
3777
  _scope_reason();
3681
3778
  const $scope2_id = _scope_id();
3682
- _html(`<h2${_attr_class("_cX")}${_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) => {
3779
+ _html(`<h2${_attr_class("_eD")}${_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) => {
3683
3780
  value = _new_value;
3684
3781
  }, "r0", $scope2_id))}${_attr("placeholder", input.placeholder)}>${_el_resume($scope2_id, "c")}`);
3685
3782
  _script($scope2_id, "r4");
@@ -3980,7 +4077,7 @@ var settings_page_default = _template("u", (input) => {
3980
4077
  const appearanceId = _id();
3981
4078
  const githubId = _id();
3982
4079
  const machineId = _id();
3983
- _html(`<div${_attr_class("_bz")} role=region${_attr("aria-labelledby", titleId)}><div${_attr_class("_bA")}><div${_attr_class(content$2)}>`);
4080
+ _html(`<div${_attr_class("_bi")} role=region${_attr("aria-labelledby", titleId)}><div${_attr_class("_bj")}><div${_attr_class(content$2)}>`);
3984
4081
  _set_serialize_reason({
3985
4082
  0: _serialize_guard($scope0_reason, 3),
3986
4083
  1: $sg__input_backHref__OR__input_onExit,
@@ -4004,12 +4101,12 @@ var settings_page_default = _template("u", (input) => {
4004
4101
  return 0;
4005
4102
  } else if (setup.ready) {
4006
4103
  const $scope47_id = _scope_id();
4007
- _html(`<span${_attr_class("_cb")}>Ready</span>. Tools, GitHub, and an agent are all in place.`);
4104
+ _html(`<span${_attr_class("_cc")}>Ready</span>. Tools, GitHub, and an agent are all in place.`);
4008
4105
  writeScope($scope47_id, {});
4009
4106
  return 1;
4010
4107
  } else {
4011
4108
  const $scope6_id = _scope_id();
4012
- _html(`<span${_attr_class("_cc")}>Not ready</span>. Missing <!>${_escape(setup.missing.map((m) => MISSING_LABEL[m] || m).join(", "))}${_el_resume($scope6_id, "b")}.`);
4109
+ _html(`<span${_attr_class("_cd")}>Not ready</span>. Missing <!>${_escape(setup.missing.map((m) => MISSING_LABEL[m] || m).join(", "))}${_el_resume($scope6_id, "b")}.`);
4013
4110
  _subscribe($setup_missing__closures, writeScope($scope6_id, {}));
4014
4111
  return 2;
4015
4112
  }
@@ -4056,11 +4153,11 @@ var settings_page_default = _template("u", (input) => {
4056
4153
  return 0;
4057
4154
  }
4058
4155
  }, $scope0_id, "e", 1, 1, 1, 0, 1);
4059
- _html(`<section${_attr_class("_bj")}${_attr("aria-labelledby", agentsId)}><div${_attr_class("_bk")}><h2${_attr("id", agentsId)}${_attr_class("_by")}>Agents</h2><div${_attr_class("_y")}></div><label${_attr_class("_cf")}><span${_attr_class("_S")}>Default</span><span${_attr_class("_m")}>`);
4156
+ _html(`<section${_attr_class("_bs")}${_attr("aria-labelledby", agentsId)}><div${_attr_class("_bt")}><h2${_attr("id", agentsId)}${_attr_class("_bH")}>Agents</h2><div${_attr_class("_y")}></div><label${_attr_class("_cg")}><span${_attr_class("_S")}>Default</span><span${_attr_class("_m")}>`);
4060
4157
  _attr_select_value($scope0_id, "m", input.preferred, _resume(function(v) {
4061
4158
  setPreferred(v);
4062
4159
  }, "u1", $scope0_id), () => {
4063
- _html(`<select${_attr_class(["_n", "_cg"])} aria-label="Default agent (starts when a workspace has no session yet)" title="Starts when a workspace has no session yet">`);
4160
+ _html(`<select${_attr_class(["_n", "_ch"])} aria-label="Default agent (starts when a workspace has no session yet)" title="Starts when a workspace has no session yet">`);
4064
4161
  _for_of(input.agents.filter((a) => a !== "shell"), (id) => {
4065
4162
  const $scope48_id = _scope_id();
4066
4163
  _html(`<option${_attr_option_value(id)}>${_escape(agentLabel(id))}${_el_resume($scope48_id, "b", $sg__input_agents)}</option>${_el_resume($scope48_id, "a", $sg__input_agents)}`);
@@ -4081,14 +4178,14 @@ var settings_page_default = _template("u", (input) => {
4081
4178
  const rows = lone ? [] : a.instances;
4082
4179
  const loneAccounts = lone && lone.enabled ? accountsFor(lone.id) : [];
4083
4180
  const extraAccounts = a.installed ? strayAccountsFor(a) : [];
4084
- _html(`<li${_attr_class(["_bo", "_ce"])}><div${_attr_class(["_ch", { ["_ck"]: lone && !lone.enabled }])}>`);
4181
+ _html(`<li${_attr_class(["_bx", "_cf"])}><div${_attr_class(["_ci", { ["_cl"]: lone && !lone.enabled }])}>`);
4085
4182
  _set_serialize_reason(12);
4086
4183
  const $childScope4 = _peek_scope_id();
4087
4184
  icon_agent_default({
4088
4185
  agent: a.id,
4089
4186
  size: 18
4090
4187
  });
4091
- _html(`<div${_attr_class("_bp")}><span${_attr_class("_br")}><span${_attr_class("_bq")}>${_escape(a.label)}${_el_resume($scope1_id, "g")}</span>`);
4188
+ _html(`<div${_attr_class("_by")}><span${_attr_class("_bA")}><span${_attr_class("_bz")}>${_escape(a.label)}${_el_resume($scope1_id, "g")}</span>`);
4092
4189
  _if(() => {
4093
4190
  if (lone && input.preferred === lone.id) {
4094
4191
  const $scope49_id = _scope_id();
@@ -4101,12 +4198,12 @@ var settings_page_default = _template("u", (input) => {
4101
4198
  _if(() => {
4102
4199
  if (active.has(a.id)) {
4103
4200
  const $scope11_id = _scope_id();
4104
- _html(`<span${_attr_class("_ca")}><span${_attr_class("_F")}></span><!>${_escape(active.get(a.id) || "Starting…")}${_el_resume($scope11_id, "c")}</span>`);
4201
+ _html(`<span${_attr_class("_cb")}><span${_attr_class("_F")}></span><!>${_escape(active.get(a.id) || "Starting…")}${_el_resume($scope11_id, "c")}</span>`);
4105
4202
  _subscribe($active__closures, writeScope($scope11_id, {}));
4106
4203
  return 0;
4107
4204
  } else if (!a.installed) {
4108
4205
  const $scope50_id = _scope_id();
4109
- _html(`<span${_attr_class("_bs")}>Not installed</span>`);
4206
+ _html(`<span${_attr_class("_bB")}>Not installed</span>`);
4110
4207
  writeScope($scope50_id, {});
4111
4208
  return 1;
4112
4209
  }
@@ -4138,18 +4235,18 @@ var settings_page_default = _template("u", (input) => {
4138
4235
  _if(() => {
4139
4236
  if (rows.length || loneAccounts.length || extraAccounts.length) {
4140
4237
  const $scope2_id = _scope_id();
4141
- _html(`<ul${_attr_class("_cm")}>`);
4238
+ _html(`<ul${_attr_class("_cn")}>`);
4142
4239
  _for_of(rows, (inst) => {
4143
4240
  const $scope3_id = _scope_id();
4144
4241
  const accounts = inst.enabled ? accountsFor(inst.id) : [];
4145
- _html(`<li${_attr_class("_ci")}><div${_attr_class(["_cj", { ["_ck"]: !inst.enabled }])}>`);
4242
+ _html(`<li${_attr_class("_cj")}><div${_attr_class(["_ck", { ["_cl"]: !inst.enabled }])}>`);
4146
4243
  _set_serialize_reason(12);
4147
4244
  const $childScope5 = _peek_scope_id();
4148
4245
  icon_agent_default({
4149
4246
  agent: inst.id,
4150
4247
  size: 15
4151
4248
  });
4152
- _html(`<span${_attr_class(["_cl", "_x"])}>${_escape(inst.command)}${_el_resume($scope3_id, "e")}</span>`);
4249
+ _html(`<span${_attr_class(["_cm", "_x"])}>${_escape(inst.command)}${_el_resume($scope3_id, "e")}</span>`);
4153
4250
  _if(() => {
4154
4251
  if (input.preferred === inst.id) {
4155
4252
  const $scope51_id = _scope_id();
@@ -4224,7 +4321,7 @@ var settings_page_default = _template("u", (input) => {
4224
4321
  }, "id", $scope0_id, "q", 1, 1, 1, 0, 1);
4225
4322
  _for_of(otherUsage, (u) => {
4226
4323
  const $scope55_id = _scope_id();
4227
- _html(`<li${_attr_class(["_bo", "_ce"])}>`);
4324
+ _html(`<li${_attr_class(["_bx", "_cf"])}>`);
4228
4325
  _set_serialize_reason(6);
4229
4326
  const $childScope9 = _peek_scope_id();
4230
4327
  usage_meters_default({ agent: u });
@@ -4235,21 +4332,21 @@ var settings_page_default = _template("u", (input) => {
4235
4332
  _if(() => {
4236
4333
  if (!usage && families.length) {
4237
4334
  const $scope56_id = _scope_id();
4238
- _html(`<p${_attr_class("_bu")}><span${_attr_class("_F")}></span> Loading usage…</p>`);
4335
+ _html(`<p${_attr_class("_bD")}><span${_attr_class("_F")}></span> Loading usage…</p>`);
4239
4336
  writeScope($scope56_id, {});
4240
4337
  return 0;
4241
4338
  } else if (usage?.error) {
4242
4339
  const $scope7_id = _scope_id();
4243
- _html(`<p${_attr_class("_bu")}>${_escape(usage.error)}${_el_resume($scope7_id, "b")}</p>`);
4340
+ _html(`<p${_attr_class("_bD")}>${_escape(usage.error)}${_el_resume($scope7_id, "b")}</p>`);
4244
4341
  writeScope($scope7_id, {});
4245
4342
  return 1;
4246
4343
  }
4247
4344
  }, $scope0_id, "s", 1, 1, 1, 0, 1);
4248
- _html(`</section><section${_attr_class("_bj")}${_attr("aria-labelledby", githubId)}><div${_attr_class("_bk")}><h2${_attr("id", githubId)}${_attr_class("_by")}>GitHub</h2></div><ul${_attr_class("_bm")}>`);
4345
+ _html(`</section><section${_attr_class("_bs")}${_attr("aria-labelledby", githubId)}><div${_attr_class("_bt")}><h2${_attr("id", githubId)}${_attr_class("_bH")}>GitHub</h2></div><ul${_attr_class("_bv")}>`);
4249
4346
  _for_of(setup?.github || [], (h) => {
4250
4347
  const $scope12_id = _scope_id();
4251
4348
  const $for_content4__h_host__closures = /* @__PURE__ */ new Set();
4252
- _html(`<li${_attr_class("_bo")}><div${_attr_class("_bp")}><span${_attr_class("_br")}><span${_attr_class(["_bq", "_x"])}>${_escape(h.host)}${_el_resume($scope12_id, "e")}</span>`);
4349
+ _html(`<li${_attr_class("_bx")}><div${_attr_class("_by")}><span${_attr_class("_bA")}><span${_attr_class(["_bz", "_x"])}>${_escape(h.host)}${_el_resume($scope12_id, "e")}</span>`);
4253
4350
  _if(() => {
4254
4351
  if (h.isEnterprise) {
4255
4352
  const $scope59_id = _scope_id();
@@ -4262,22 +4359,22 @@ var settings_page_default = _template("u", (input) => {
4262
4359
  _if(() => {
4263
4360
  if (active.has(h.host) && authCodes.has(h.host)) {
4264
4361
  const $scope23_id = _scope_id();
4265
- _html(`<span${_attr_class("_ca")}><span${_attr_class("_F")}></span> Enter code <strong${_attr_class("_cu")}>${_escape(authCodes.get(h.host))}${_el_resume($scope23_id, "d")}</strong> at <a${_attr("href", `https://${h.host}/login/device`)} target=_blank rel=noopener${_attr_class("_cv")}>${_escape(h.host)}${_el_resume($scope23_id, "f")}/login/device</a>${_el_resume($scope23_id, "e")}</span>`);
4362
+ _html(`<span${_attr_class("_cb")}><span${_attr_class("_F")}></span> Enter code <strong${_attr_class("_cv")}>${_escape(authCodes.get(h.host))}${_el_resume($scope23_id, "d")}</strong> at <a${_attr("href", `https://${h.host}/login/device`)} target=_blank rel=noopener${_attr_class("_cw")}>${_escape(h.host)}${_el_resume($scope23_id, "f")}/login/device</a>${_el_resume($scope23_id, "e")}</span>`);
4266
4363
  _subscribe($authCodes__closures, writeScope($scope23_id, {}));
4267
4364
  return 0;
4268
4365
  } else if (active.has(h.host)) {
4269
4366
  const $scope13_id = _scope_id();
4270
- _html(`<span${_attr_class("_ca")}><span${_attr_class("_F")}></span><!>${_escape(active.get(h.host) || "Starting…")}${_el_resume($scope13_id, "c")}</span>`);
4367
+ _html(`<span${_attr_class("_cb")}><span${_attr_class("_F")}></span><!>${_escape(active.get(h.host) || "Starting…")}${_el_resume($scope13_id, "c")}</span>`);
4271
4368
  _subscribe($active__closures, writeScope($scope13_id, { Cdo: 1 }));
4272
4369
  return 1;
4273
4370
  } else if (h.authed) {
4274
4371
  const $scope57_id = _scope_id();
4275
- _html(`<span${_attr_class("_bs")}>Signed in<!>${h.user ? ` as ${_escape(`${_to_text(h.user)}`)}` : ""}${_el_resume($scope57_id, "b")}</span>`);
4372
+ _html(`<span${_attr_class("_bB")}>Signed in<!>${h.user ? ` as ${_escape(`${_to_text(h.user)}`)}` : ""}${_el_resume($scope57_id, "b")}</span>`);
4276
4373
  writeScope($scope57_id, {});
4277
4374
  return 2;
4278
4375
  } else {
4279
4376
  const $scope58_id = _scope_id();
4280
- _html(`<span${_attr_class("_bs")}>${_escape(h.error || "Not signed in")}${_el_resume($scope58_id, "b")}</span>`);
4377
+ _html(`<span${_attr_class("_bB")}>${_escape(h.error || "Not signed in")}${_el_resume($scope58_id, "b")}</span>`);
4281
4378
  writeScope($scope58_id, {});
4282
4379
  return 3;
4283
4380
  }
@@ -4308,7 +4405,7 @@ var settings_page_default = _template("u", (input) => {
4308
4405
  if (h.isEnterprise) {
4309
4406
  const $scope26_id = _scope_id();
4310
4407
  _html(`<button${_attr_class([
4311
- "_bt",
4408
+ "_bC",
4312
4409
  "_2",
4313
4410
  "_3",
4314
4411
  { ["_q"]: confirmingRemove === h.host }
@@ -4351,7 +4448,7 @@ var settings_page_default = _template("u", (input) => {
4351
4448
  _if(() => {
4352
4449
  if (setup && !setup.github.length) {
4353
4450
  const $scope62_id = _scope_id();
4354
- _html(`<p${_attr_class("_bu")}>Install the GitHub CLI below to sign in.</p>`);
4451
+ _html(`<p${_attr_class("_bD")}>Install the GitHub CLI below to sign in.</p>`);
4355
4452
  writeScope($scope62_id, {});
4356
4453
  return 0;
4357
4454
  }
@@ -4359,7 +4456,7 @@ var settings_page_default = _template("u", (input) => {
4359
4456
  _if(() => {
4360
4457
  if (setup) {
4361
4458
  const $scope34_id = _scope_id();
4362
- _html(`<form${_attr_class("_ct")}><label${_attr_class("_W")}>`);
4459
+ _html(`<form${_attr_class("_cu")}><label${_attr_class("_W")}>`);
4363
4460
  icon_plus_default({
4364
4461
  size: 14,
4365
4462
  class: "_X"
@@ -4372,7 +4469,7 @@ var settings_page_default = _template("u", (input) => {
4372
4469
  return 0;
4373
4470
  }
4374
4471
  }, $scope0_id, "y", 1, 1, 1, 0, 1);
4375
- _html(`</section><section${_attr_class("_bj")}${_attr("aria-labelledby", machineId)}><div${_attr_class("_bk")}><h2${_attr("id", machineId)}${_attr_class("_by")}>Machine</h2>`);
4472
+ _html(`</section><section${_attr_class("_bs")}${_attr("aria-labelledby", machineId)}><div${_attr_class("_bt")}><h2${_attr("id", machineId)}${_attr_class("_bH")}>Machine</h2>`);
4376
4473
  _if(() => {
4377
4474
  if (missingCount) {
4378
4475
  const $scope44_id = _scope_id();
@@ -4412,7 +4509,7 @@ var settings_page_default = _template("u", (input) => {
4412
4509
  _if(() => {
4413
4510
  if (setup && !setup.mise.installed) {
4414
4511
  const $scope16_id = _scope_id();
4415
- _html(`<p${_attr_class("_bu")}>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($scope16_id, "c")}</button>${_el_resume($scope16_id, "b")}</p>`);
4512
+ _html(`<p${_attr_class("_bD")}>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($scope16_id, "c")}</button>${_el_resume($scope16_id, "b")}</p>`);
4416
4513
  _script($scope16_id, "u40");
4417
4514
  writeScope($scope16_id, {});
4418
4515
  return 0;
@@ -4422,11 +4519,11 @@ var settings_page_default = _template("u", (input) => {
4422
4519
  _if(() => {
4423
4520
  if (self) {
4424
4521
  const $scope36_id = _scope_id();
4425
- _html(`<li${_attr_class(row)}><span${_attr_class(["_cp", "_x"])}>work</span>`);
4522
+ _html(`<li${_attr_class(row)}><span${_attr_class(["_cq", "_x"])}>work</span>`);
4426
4523
  _if(() => {
4427
4524
  if (selfUpdating) {
4428
4525
  const $scope63_id = _scope_id();
4429
- _html(`<span${_attr_class("_ca")}><span${_attr_class("_F")}></span>Updating — the app restarts and reloads when it is done…</span>`);
4526
+ _html(`<span${_attr_class("_cb")}><span${_attr_class("_F")}></span>Updating — the app restarts and reloads when it is done…</span>`);
4430
4527
  writeScope($scope63_id, {});
4431
4528
  return 0;
4432
4529
  } else {
@@ -4440,7 +4537,7 @@ var settings_page_default = _template("u", (input) => {
4440
4537
  return 0;
4441
4538
  } else if (self.latest && self.latest !== self.version) {
4442
4539
  const $scope38_id = _scope_id();
4443
- _html(`<button${_attr_class([btnSm, "_cr"])}${_attr("title", `Update work to v${self.latest} and restart`)}>↑ <!>${_escape(self.latest)}${_el_resume($scope38_id, "b")}</button>${_el_resume($scope38_id, "a")}`);
4540
+ _html(`<button${_attr_class([btnSm, "_cs"])}${_attr("title", `Update work to v${self.latest} and restart`)}>↑ <!>${_escape(self.latest)}${_el_resume($scope38_id, "b")}</button>${_el_resume($scope38_id, "a")}`);
4444
4541
  _script($scope38_id, "u41");
4445
4542
  _subscribe($self_latest__closures, writeScope($scope38_id, { Ce1: 1 }));
4446
4543
  return 1;
@@ -4476,11 +4573,11 @@ var settings_page_default = _template("u", (input) => {
4476
4573
  const $for_content5__t_path__closures = /* @__PURE__ */ new Set();
4477
4574
  const $for_content5__t_latest__closures = /* @__PURE__ */ new Set();
4478
4575
  const $for_content5__t_id__closures = /* @__PURE__ */ new Set();
4479
- _html(`<li${_attr_class([row, { ["_co"]: !t.installed }])}><span${_attr_class(["_cp", "_x"])}>${_escape(t.label)}${_el_resume($scope17_id, "c")}</span>`);
4576
+ _html(`<li${_attr_class([row, { ["_cp"]: !t.installed }])}><span${_attr_class(["_cq", "_x"])}>${_escape(t.label)}${_el_resume($scope17_id, "c")}</span>`);
4480
4577
  _if(() => {
4481
4578
  if (active.has(t.id)) {
4482
4579
  const $scope18_id = _scope_id();
4483
- _html(`<span${_attr_class("_ca")}><span${_attr_class("_F")}></span><!>${_escape(active.get(t.id) || "Starting…")}${_el_resume($scope18_id, "c")}</span>`);
4580
+ _html(`<span${_attr_class("_cb")}><span${_attr_class("_F")}></span><!>${_escape(active.get(t.id) || "Starting…")}${_el_resume($scope18_id, "c")}</span>`);
4484
4581
  _subscribe($active__closures, writeScope($scope18_id, { Cdo: 2 }));
4485
4582
  return 0;
4486
4583
  } else if (t.installed) {
@@ -4488,7 +4585,7 @@ var settings_page_default = _template("u", (input) => {
4488
4585
  _if(() => {
4489
4586
  if (t.version) {
4490
4587
  const $scope31_id = _scope_id();
4491
- _html(`<button${_attr_class(["_cq", "_x"])}${_attr("title", `${t.path || t.label}. Pin a version`)}>v<!>${_escape(t.version)}${_el_resume($scope31_id, "b")}</button>${_el_resume($scope31_id, "a")}`);
4588
+ _html(`<button${_attr_class(["_cr", "_x"])}${_attr("title", `${t.path || t.label}. Pin a version`)}>v<!>${_escape(t.version)}${_el_resume($scope31_id, "b")}</button>${_el_resume($scope31_id, "a")}`);
4492
4589
  _script($scope31_id, "u42");
4493
4590
  _subscribe($for_content5__t_path__closures, _subscribe($for_content5__t_version__closures, _subscribe($for_content5__t_label__closures, writeScope($scope31_id, { Cu: 1 }))));
4494
4591
  return 0;
@@ -4502,7 +4599,7 @@ var settings_page_default = _template("u", (input) => {
4502
4599
  _if(() => {
4503
4600
  if (outdated(t)) {
4504
4601
  const $scope41_id = _scope_id();
4505
- _html(`<button${_attr_class([btnSm, "_cr"])}${_attr("title", `Update to v${t.latest}`)}>↑ <!>${_escape(t.latest)}${_el_resume($scope41_id, "b")}</button>${_el_resume($scope41_id, "a")}`);
4602
+ _html(`<button${_attr_class([btnSm, "_cs"])}${_attr("title", `Update to v${t.latest}`)}>↑ <!>${_escape(t.latest)}${_el_resume($scope41_id, "b")}</button>${_el_resume($scope41_id, "a")}`);
4506
4603
  _script($scope41_id, "u43");
4507
4604
  _subscribe($for_content5__t_latest__closures, writeScope($scope41_id, {}));
4508
4605
  return 0;
@@ -4602,19 +4699,19 @@ var settings_page_default = _template("u", (input) => {
4602
4699
  _if(() => {
4603
4700
  if (hits && hits.length) {
4604
4701
  const $scope20_id = _scope_id();
4605
- _html(`<ul${_attr_class([toolGrid, "_cs"])}>`);
4702
+ _html(`<ul${_attr_class([toolGrid, "_ct"])}>`);
4606
4703
  _for_of(hits, (h) => {
4607
4704
  const $scope21_id = _scope_id();
4608
- _html(`<li${_attr_class(row)}><div${_attr_class("_bp")}><span${_attr_class(["_cp", "_x"])}>${_escape(h.name)}${_el_resume($scope21_id, "d")}</span>`);
4705
+ _html(`<li${_attr_class(row)}><div${_attr_class("_by")}><span${_attr_class(["_cq", "_x"])}>${_escape(h.name)}${_el_resume($scope21_id, "d")}</span>`);
4609
4706
  _if(() => {
4610
4707
  if (active.has(h.name)) {
4611
4708
  const $scope22_id = _scope_id();
4612
- _html(`<span${_attr_class("_ca")}><span${_attr_class("_F")}></span><!>${_escape(active.get(h.name) || "Starting…")}${_el_resume($scope22_id, "c")}</span>`);
4709
+ _html(`<span${_attr_class("_cb")}><span${_attr_class("_F")}></span><!>${_escape(active.get(h.name) || "Starting…")}${_el_resume($scope22_id, "c")}</span>`);
4613
4710
  _subscribe($active__closures, writeScope($scope22_id, { Cdo: 4 }));
4614
4711
  return 0;
4615
4712
  } else if (h.description) {
4616
4713
  const $scope73_id = _scope_id();
4617
- _html(`<span${_attr_class("_bs")}${_attr("title", h.description)}>${_escape(h.description)}${_el_resume($scope73_id, "b")}</span>${_el_resume($scope73_id, "a")}`);
4714
+ _html(`<span${_attr_class("_bB")}${_attr("title", h.description)}>${_escape(h.description)}${_el_resume($scope73_id, "b")}</span>${_el_resume($scope73_id, "a")}`);
4618
4715
  writeScope($scope73_id, {});
4619
4716
  return 1;
4620
4717
  }
@@ -4653,7 +4750,7 @@ var settings_page_default = _template("u", (input) => {
4653
4750
  return 0;
4654
4751
  } else if (hits && !searching) {
4655
4752
  const $scope35_id = _scope_id();
4656
- _html(`<p${_attr_class("_bu")}>No tools match "<!>${_escape(query)}${_el_resume($scope35_id, "b")}".</p>`);
4753
+ _html(`<p${_attr_class("_bD")}>No tools match "<!>${_escape(query)}${_el_resume($scope35_id, "b")}".</p>`);
4657
4754
  _subscribe($query__closures, writeScope($scope35_id, {}));
4658
4755
  return 1;
4659
4756
  }
@@ -4664,16 +4761,16 @@ var settings_page_default = _template("u", (input) => {
4664
4761
  return 0;
4665
4762
  }
4666
4763
  }, $scope0_id, "ab", 1, 1, 1, 0, 1);
4667
- _html(`</section><section${_attr_class("_bj")}${_attr("aria-labelledby", appearanceId)}><div${_attr_class("_bk")}><h2${_attr("id", appearanceId)}${_attr_class("_by")}>Appearance</h2></div><div${_attr_class(["_bo", "_cw"])}><label${_attr_class("_cx")}><span${_attr_class("_cy")}>Name</span><input${_attr_input_value($scope0_id, "ai", input.instance.name, _resume(function(v) {
4764
+ _html(`</section><section${_attr_class("_bs")}${_attr("aria-labelledby", appearanceId)}><div${_attr_class("_bt")}><h2${_attr("id", appearanceId)}${_attr_class("_bH")}>Appearance</h2></div><div${_attr_class(["_bx", "_cx"])}><label${_attr_class("_cy")}><span${_attr_class("_cz")}>Name</span><input${_attr_input_value($scope0_id, "ai", input.instance.name, _resume(function(v) {
4668
4765
  setInstance({ name: v });
4669
- }, "u3", $scope0_id))}${_attr_class(["_U", "_cz"])} type=text placeholder=work maxlength=32 autocomplete=off spellcheck=false aria-describedby=look-name-hint>${_el_resume($scope0_id, "ai")}<span id=look-name-hint${_attr_class(["_S", "_cA"])}>Tab title, home-screen icon, and notifications.</span></label><div${_attr_class("_cx")} role=radiogroup aria-label="Accent colour"><span${_attr_class("_cy")}>Accent</span><span${_attr_class("_cB")}><button type=button${_attr_class([
4670
- "_cC",
4671
- "_cE",
4672
- { ["_cD"]: !input.instance.accent }
4766
+ }, "u3", $scope0_id))}${_attr_class(["_U", "_cA"])} type=text placeholder=work maxlength=32 autocomplete=off spellcheck=false aria-describedby=look-name-hint>${_el_resume($scope0_id, "ai")}<span id=look-name-hint${_attr_class(["_S", "_cB"])}>Tab title, home-screen icon, and notifications.</span></label><div${_attr_class("_cy")} role=radiogroup aria-label="Accent colour"><span${_attr_class("_cz")}>Accent</span><span${_attr_class("_cC")}><button type=button${_attr_class([
4767
+ "_cD",
4768
+ "_cF",
4769
+ { ["_cE"]: !input.instance.accent }
4673
4770
  ])} role=radio aria-checked=${!input.instance.accent ? "true" : "false"} title="Default (blue)" aria-label="Default (blue)"></button>${_el_resume($scope0_id, "an")}`);
4674
4771
  _for_of(ACCENT_PRESETS, (p) => {
4675
4772
  const $scope4_id = _scope_id();
4676
- _html(`<button type=button${_attr_class(["_cC", { ["_cD"]: 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")}`);
4773
+ _html(`<button type=button${_attr_class(["_cD", { ["_cE"]: 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")}`);
4677
4774
  _script($scope4_id, "u48");
4678
4775
  writeScope($scope4_id, {
4679
4776
  d: p?.value,
@@ -4682,12 +4779,12 @@ var settings_page_default = _template("u", (input) => {
4682
4779
  }, "value", $scope0_id, "ao", $sg__input_instance_accent, 0, 1, 0, 1);
4683
4780
  const customOn = !!input.instance.accent && !ACCENT_PRESETS.some((p) => p.value === input.instance.accent);
4684
4781
  _html(`<label${_attr_class([
4685
- "_cC",
4686
- "_cF",
4687
- { ["_cD"]: customOn }
4782
+ "_cD",
4783
+ "_cG",
4784
+ { ["_cE"]: customOn }
4688
4785
  ])}${customOn ? _attr_style(`--swatch:${input.instance.accent}`) : ""} title="Custom colour"><input${_attr_input_value($scope0_id, "aq", input.instance.accent || "#3556d8", _resume(function(v) {
4689
4786
  setInstance({ accent: v });
4690
- }, "u4", $scope0_id))}${_attr_class("_cG")} type=color aria-label="Custom accent colour">${_el_resume($scope0_id, "aq")}<span aria-hidden=true>+</span></label>${_el_resume($scope0_id, "ap", $sg__input_instance_accent)}</span><span${_attr_class(["_S", "_cA"])}>Selected rows, buttons, and the icon.</span></div></div></section></div></div></div>`);
4787
+ }, "u4", $scope0_id))}${_attr_class("_cH")} type=color aria-label="Custom accent colour">${_el_resume($scope0_id, "aq")}<span aria-hidden=true>+</span></label>${_el_resume($scope0_id, "ap", $sg__input_instance_accent)}</span><span${_attr_class(["_S", "_cB"])}>Selected rows, buttons, and the icon.</span></div></div></section></div></div></div>`);
4691
4788
  _if(() => {
4692
4789
  if (versionPick) {
4693
4790
  const $scope29_id = _scope_id();
@@ -4798,12 +4895,12 @@ var settings_page_default = _template("u", (input) => {
4798
4895
  });
4799
4896
  //#endregion
4800
4897
  //#region src/tags/new-workspace.css.ts
4801
- var content$1 = "_bI _bB";
4802
- var section$1 = "_bM _bj";
4898
+ var content$1 = "_bI _bk";
4899
+ var section$1 = "_bM _bs";
4803
4900
  var curBase = "_bR _T _S";
4804
- var archived = "_bV _bj";
4805
- var archivedHint = "_bW _S";
4806
- var archivedCard = "_bX _bo";
4901
+ var archived = "_bW _bs";
4902
+ var archivedHint = "_bX _S";
4903
+ var archivedCard = "_bY _bx";
4807
4904
  var resultBranch = "_cO _Z _j";
4808
4905
  //#endregion
4809
4906
  //#region src/tags/branch-pick.marko
@@ -4815,11 +4912,11 @@ var branch_pick_default = _template("d", (input) => {
4815
4912
  let branches = null;
4816
4913
  let defaultBranch = null;
4817
4914
  let branchFilter = "";
4818
- _html(`<div${_attr_class("_cP")}>`);
4915
+ _html(`<div${_attr_class("_cQ")}>`);
4819
4916
  _if(() => {
4820
4917
  {
4821
4918
  const $scope4_id = _scope_id();
4822
- _html(`<p${_attr_class("_bu")}><span${_attr_class("_F")}></span> Loading branches…</p>`);
4919
+ _html(`<p${_attr_class("_bD")}><span${_attr_class("_F")}></span> Loading branches…</p>`);
4823
4920
  writeScope($scope4_id, {});
4824
4921
  return 0;
4825
4922
  }
@@ -4845,6 +4942,8 @@ var api$5;
4845
4942
  var repo_picker_default = _template("s", (input) => {
4846
4943
  const $scope0_reason = _scope_reason(), $si__input_onError = _serialize_if($scope0_reason, 2);
4847
4944
  const $scope0_id = _scope_id();
4945
+ const $pasted__closures = /* @__PURE__ */ new Set();
4946
+ const $pasteWillFork__closures = /* @__PURE__ */ new Set();
4848
4947
  const $input_onError__closures = /* @__PURE__ */ new Set();
4849
4948
  const $highlight__closures = /* @__PURE__ */ new Set();
4850
4949
  const $branchesFor__closures = /* @__PURE__ */ new Set();
@@ -4861,16 +4960,32 @@ var repo_picker_default = _template("s", (input) => {
4861
4960
  }
4862
4961
  if (refresh);
4863
4962
  }, "s2", $scope0_id);
4864
- const results = catalog && filter ? rankRepos(filter, catalog.repos, (name) => input.exclude.has(name)) : [];
4963
+ const excluded = _resume((name) => {
4964
+ if (input.exclude.has(name)) return true;
4965
+ const repos = catalog?.repos || [];
4966
+ if (repos.some((r) => input.exclude.has(r.nameWithOwner) && r.parent === name)) return true;
4967
+ const entry = repos.find((r) => r.nameWithOwner === name);
4968
+ return !!(entry?.parent && input.exclude.has(entry.parent));
4969
+ }, "s3", $scope0_id);
4970
+ const results = catalog && filter ? rankRepos(filter, catalog.repos, (name) => excluded(name)) : [];
4971
+ const pasted = (() => {
4972
+ const name = parseRepoUrl(filter);
4973
+ return name && !excluded(name) ? name : null;
4974
+ })();
4975
+ const pastedForkable = !!pasted && !catalog?.repos.some((r) => r.nameWithOwner === pasted);
4865
4976
  let branchesFor = null;
4866
- const pick = _resume((fullName, baseBranch) => {
4977
+ let pasteWillFork = false;
4978
+ const pick = _resume((fullName, baseBranch, fork) => {
4867
4979
  filter = "";
4868
4980
  branchesFor = null;
4869
- input.onPick(fullName, baseBranch);
4870
- }, "s3", $scope0_id);
4981
+ pasteWillFork = false;
4982
+ input.onPick(fullName, baseBranch, fork);
4983
+ }, "s4", $scope0_id);
4984
+ const pastedFork = _resume((fork) => pastedForkable ? fork : void 0, "s5", $scope0_id);
4871
4985
  const toggleBranches = _resume((fullName) => {
4872
4986
  branchesFor = branchesFor === fullName ? null : fullName;
4873
- }, "s4", $scope0_id);
4987
+ if (fullName !== pasted) pasteWillFork = false;
4988
+ }, "s6", $scope0_id);
4874
4989
  _html(`<div${_attr_class("_cI")}><label${_attr_class("_W")}>`);
4875
4990
  icon_search_default({
4876
4991
  size: 14,
@@ -4879,65 +4994,109 @@ var repo_picker_default = _template("s", (input) => {
4879
4994
  _html(`<input${_attr_input_value($scope0_id, "d", filter, _resume(function(v) {
4880
4995
  filter = v;
4881
4996
  highlight = 0;
4997
+ pasteWillFork = false;
4882
4998
  }, "s0", $scope0_id))}${_attr_class([inputLg, "_Y"])} placeholder="Add a repo…" aria-label="Add a repo"${_attr("disabled", input.disabled)}>${_el_resume($scope0_id, "d")}</label>`);
4883
4999
  _if(() => {
4884
- if (filter && !catalog) {
4885
- const $scope5_id = _scope_id();
4886
- _html(`<p${_attr_class("_bu")}>Loading repos…</p>`);
4887
- writeScope($scope5_id, {});
5000
+ if (pasted) {
5001
+ const $scope1_id = _scope_id();
5002
+ _html(`<ul${_attr_class("_cJ")}><li><div${_attr_class(["_cL", "_cK"])}><button${_attr_class("_cM")}${pasteWillFork ? _attr("title", `Fork ${pasted} to your account and add the fork`) : _attr("title", `Add ${pasted} as-is (pushes go to that repo)`)}>`);
5003
+ icon_plus_default({
5004
+ size: 12,
5005
+ class: "_cS"
5006
+ });
5007
+ _html(`<span${_attr_class("_cT")}>${_escape(repoLabel(pasted))}${_el_resume($scope1_id, "f")}</span></button>${_el_resume($scope1_id, "c")}`);
5008
+ _if(() => {
5009
+ if (pastedForkable) {
5010
+ const $scope7_id = _scope_id();
5011
+ _html(`<button${_attr_class(["_cP", { ["_cN"]: 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"}>${pasteWillFork ? "✓ fork" : "Fork"}${_el_resume($scope7_id, "b")}</button>${_el_resume($scope7_id, "a")}`);
5012
+ _script($scope7_id, "s11");
5013
+ _subscribe($pasteWillFork__closures, _subscribe($pasted__closures, writeScope($scope7_id, { Cah: 1 })));
5014
+ return 0;
5015
+ }
5016
+ }, $scope1_id, "g", 1, 1, 1, 0, 1);
5017
+ _html(`<button${_attr_class([resultBranch, { ["_cN"]: branchesFor === pasted }])}${_attr("title", `Pick a base branch for ${pasted}`)}${_attr("aria-label", `Pick a base branch for ${pasted}`)}>⎇</button>${_el_resume($scope1_id, "h")}</div>`);
5018
+ _if(() => {
5019
+ if (branchesFor === pasted) {
5020
+ const $scope2_id = _scope_id();
5021
+ const $childScope = _peek_scope_id();
5022
+ branch_pick_default({
5023
+ repo: pasted,
5024
+ onPick: _resume(function(branch, isDefault) {
5025
+ pick(pasted, isDefault ? void 0 : branch, pastedFork(pasteWillFork));
5026
+ }, "s7", $scope2_id),
5027
+ onError: _resume(function(message) {
5028
+ branchesFor = null;
5029
+ input.onError?.(message);
5030
+ }, "s8", $scope2_id)
5031
+ });
5032
+ _subscribe($pasted__closures, _subscribe($si__input_onError && $input_onError__closures, writeScope($scope2_id, { a: _existing_scope($childScope) })));
5033
+ return 0;
5034
+ }
5035
+ }, $scope1_id, "i", 1, 1, 1, 0, 1);
5036
+ _html("</li></ul>");
5037
+ _script($scope1_id, "s12");
5038
+ writeScope($scope1_id, {});
4888
5039
  return 0;
5040
+ } else if (filter && !catalog) {
5041
+ const $scope8_id = _scope_id();
5042
+ _html(`<p${_attr_class("_bD")}>Loading repos…</p>`);
5043
+ writeScope($scope8_id, {});
5044
+ return 1;
4889
5045
  }
4890
5046
  }, $scope0_id, "e", 1, 1, 1, 0, 1);
4891
5047
  _if(() => {
4892
5048
  if (results.length) {
4893
- const $scope1_id = _scope_id();
5049
+ const $scope3_id = _scope_id();
4894
5050
  _html(`<ul${_attr_class("_cJ")}>`);
4895
5051
  _for_of(results, (repo, i) => {
4896
- const $scope2_id = _scope_id();
5052
+ const $scope4_id = _scope_id();
4897
5053
  _html(`<li><div${_attr_class(["_cL", { ["_cK"]: i === highlight }])}><button${_attr_class("_cM")}>`);
4898
5054
  icon_plus_default({
4899
5055
  size: 12,
4900
- class: "_cR"
5056
+ class: "_cS"
4901
5057
  });
4902
- _html(`<span${_attr_class("_cS")}>${_escape(repoLabel(repo.nameWithOwner))}${_el_resume($scope2_id, "e")}</span></button>${_el_resume($scope2_id, "b")}<button${_attr_class([resultBranch, { ["_cN"]: branchesFor === repo.nameWithOwner }])}${_attr("title", `Pick a base branch for ${repo.nameWithOwner}`)}${_attr("aria-label", `Pick a base branch for ${repo.nameWithOwner}`)}>⎇</button>${_el_resume($scope2_id, "f")}</div>${_el_resume($scope2_id, "a")}`);
5058
+ _html(`<span${_attr_class("_cT")}>${_escape(repoLabel(repo.nameWithOwner))}${_el_resume($scope4_id, "e")}</span></button>${_el_resume($scope4_id, "b")}<button${_attr_class([resultBranch, { ["_cN"]: branchesFor === repo.nameWithOwner }])}${_attr("title", `Pick a base branch for ${repo.nameWithOwner}`)}${_attr("aria-label", `Pick a base branch for ${repo.nameWithOwner}`)}>⎇</button>${_el_resume($scope4_id, "f")}</div>${_el_resume($scope4_id, "a")}`);
4903
5059
  _if(() => {
4904
5060
  if (branchesFor === repo.nameWithOwner) {
4905
- const $scope3_id = _scope_id();
4906
- const $childScope = _peek_scope_id();
5061
+ const $scope5_id = _scope_id();
5062
+ const $childScope2 = _peek_scope_id();
4907
5063
  branch_pick_default({
4908
5064
  repo: repo.nameWithOwner,
4909
5065
  onPick: _resume(function(branch, isDefault) {
4910
5066
  pick(repo.nameWithOwner, isDefault ? void 0 : branch);
4911
- }, "s5", $scope3_id),
5067
+ }, "s9", $scope5_id),
4912
5068
  onError: _resume(function(message) {
4913
5069
  branchesFor = null;
4914
5070
  input.onError?.(message);
4915
- }, "s6", $scope3_id)
5071
+ }, "s10", $scope5_id)
4916
5072
  });
4917
- _subscribe($si__input_onError && $input_onError__closures, writeScope($scope3_id, { a: _existing_scope($childScope) }));
5073
+ _subscribe($si__input_onError && $input_onError__closures, writeScope($scope5_id, {
5074
+ a: _existing_scope($childScope2),
5075
+ Cad: $si__input_onError && 1
5076
+ }));
4918
5077
  return 0;
4919
5078
  }
4920
- }, $scope2_id, "g", 1, 1, 1, 0, 1);
5079
+ }, $scope4_id, "g", 1, 1, 1, 0, 1);
4921
5080
  _html("</li>");
4922
- _script($scope2_id, "s7");
4923
- _subscribe($branchesFor__closures, _subscribe($highlight__closures, writeScope($scope2_id, {
5081
+ _script($scope4_id, "s13");
5082
+ _subscribe($branchesFor__closures, _subscribe($highlight__closures, writeScope($scope4_id, {
4924
5083
  j: repo?.nameWithOwner,
4925
5084
  l: i
4926
5085
  })));
4927
- }, "nameWithOwner", $scope1_id, "a", 1, 1, 1, "</ul>", 1);
4928
- writeScope($scope1_id, {});
5086
+ }, "nameWithOwner", $scope3_id, "a", 1, 1, 1, "</ul>", 1);
5087
+ writeScope($scope3_id, {});
4929
5088
  return 0;
4930
- } else if (filter && catalog) {
4931
- const $scope4_id = _scope_id();
4932
- _html(`<p${_attr_class("_bu")}>No repos match "<!>${_escape(filter)}${_el_resume($scope4_id, "b")}".</p>`);
4933
- writeScope($scope4_id, {});
5089
+ } else if (filter && catalog && !pasted) {
5090
+ const $scope6_id = _scope_id();
5091
+ _html(`<p${_attr_class("_bD")}>No repos match "<!>${_escape(filter)}${_el_resume($scope6_id, "b")}". Paste a clone URL to add any repo.</p>`);
5092
+ writeScope($scope6_id, {});
4934
5093
  return 1;
4935
5094
  }
4936
5095
  }, $scope0_id, "f", 1, 1, 1, 0, 1);
4937
5096
  _html("</div>");
4938
5097
  const $return = _resume(() => loadCatalog(true), "s1", $scope0_id);
4939
- _script($scope0_id, "s8");
4940
- _script($scope0_id, "s9");
5098
+ _script($scope0_id, "s14");
5099
+ _script($scope0_id, "s15");
4941
5100
  writeScope($scope0_id, {
4942
5101
  i: _serialize_if($scope0_reason, 1) && input.refreshing,
4943
5102
  j: _serialize_if($scope0_reason, 0) && input.refreshingChange,
@@ -4945,17 +5104,25 @@ var repo_picker_default = _template("s", (input) => {
4945
5104
  m: input.exclude,
4946
5105
  n: input.onPick,
4947
5106
  r: catalog,
4948
- s: filter,
5107
+ s: catalog?.repos,
5108
+ u: filter,
4949
5109
  v: highlight,
4950
5110
  w: loadCatalog,
4951
- x: results,
4952
- a0: branchesFor,
4953
- a1: pick,
4954
- a2: toggleBranches,
5111
+ x: excluded,
5112
+ a0: results,
5113
+ a2: pasted,
5114
+ a6: pastedForkable,
5115
+ a7: branchesFor,
5116
+ a9: pasteWillFork,
5117
+ aa: pick,
5118
+ ab: pastedFork,
5119
+ ac: toggleBranches,
4955
5120
  q: input.refreshingChange || void 0,
4956
- a3: $si__input_onError && $input_onError__closures,
4957
- a5: $highlight__closures,
4958
- a7: $branchesFor__closures
5121
+ ah: $pasted__closures,
5122
+ ak: $pasteWillFork__closures,
5123
+ ad: $si__input_onError && $input_onError__closures,
5124
+ af: $highlight__closures,
5125
+ aj: $branchesFor__closures
4959
5126
  });
4960
5127
  _resume_branch($scope0_id);
4961
5128
  return $return;
@@ -4968,8 +5135,8 @@ var new_workspace_default = _template("p", (input) => {
4968
5135
  const $scope0_reason = _scope_reason(), $sg__input_backHref__OR__input_onExit = _serialize_guard($scope0_reason, 0), $sg__input_workspaces = _serialize_guard($scope0_reason, 1), $si__input_workspaces = _serialize_if($scope0_reason, 1);
4969
5136
  const $scope0_id = _scope_id();
4970
5137
  const $error__closures = /* @__PURE__ */ new Set();
4971
- const $steps_length__closures = /* @__PURE__ */ new Set();
4972
5138
  const $busy__closures = /* @__PURE__ */ new Set();
5139
+ const $steps_length__closures = /* @__PURE__ */ new Set();
4973
5140
  const $restoring__closures = /* @__PURE__ */ new Set();
4974
5141
  let name = "";
4975
5142
  let catalogRefreshing = false;
@@ -4979,11 +5146,12 @@ var new_workspace_default = _template("p", (input) => {
4979
5146
  let error = null;
4980
5147
  let steps$1 = [];
4981
5148
  const archived$1 = (input.workspaces || []).filter((ws) => ws.status === "archived").slice().sort((a, b) => b.created_at.localeCompare(a.created_at));
4982
- const addRepo = _resume((fullName, baseBranch) => {
5149
+ const addRepo = _resume((fullName, baseBranch, fork) => {
4983
5150
  if (!fullName || selected.some((r) => r.fullName === fullName)) return;
4984
5151
  selected = selected.concat({
4985
5152
  fullName,
4986
- baseBranch
5153
+ baseBranch,
5154
+ fork
4987
5155
  });
4988
5156
  }, "p1", $scope0_id);
4989
5157
  let branchesFor = null;
@@ -4991,13 +5159,19 @@ var new_workspace_default = _template("p", (input) => {
4991
5159
  selected = selected.filter((r) => r.fullName !== fullName);
4992
5160
  if (branchesFor === fullName) branchesFor = null;
4993
5161
  }, "p2", $scope0_id);
5162
+ const toggleFork = _resume((fullName) => {
5163
+ selected = selected.map((r) => r.fullName === fullName ? {
5164
+ ...r,
5165
+ fork: !r.fork
5166
+ } : r);
5167
+ }, "p3", $scope0_id);
4994
5168
  const setBranch = _resume((fullName, baseBranch) => {
4995
5169
  selected = selected.map((r) => r.fullName === fullName ? {
4996
5170
  ...r,
4997
5171
  baseBranch
4998
5172
  } : r);
4999
5173
  branchesFor = null;
5000
- }, "p3", $scope0_id);
5174
+ }, "p4", $scope0_id);
5001
5175
  const restore = _resume(async (ws) => {
5002
5176
  if (busy || restoring) return;
5003
5177
  error = null;
@@ -5017,7 +5191,7 @@ var new_workspace_default = _template("p", (input) => {
5017
5191
  } finally {
5018
5192
  restoring = null;
5019
5193
  }
5020
- }, "p4", $scope0_id);
5194
+ }, "p5", $scope0_id);
5021
5195
  const createGen = { n: 0 };
5022
5196
  const create = _resume(async () => {
5023
5197
  if (restoring) return;
@@ -5050,9 +5224,9 @@ var new_workspace_default = _template("p", (input) => {
5050
5224
  } finally {
5051
5225
  watcher.stop();
5052
5226
  }
5053
- }, "p5", $scope0_id);
5227
+ }, "p6", $scope0_id);
5054
5228
  const titleId = _id();
5055
- _html(`<div${_attr_class("_bz")} role=region${_attr("aria-labelledby", titleId)}><div${_attr_class("_bA")}><div${_attr_class(content$1)}>`);
5229
+ _html(`<div${_attr_class("_bi")} role=region${_attr("aria-labelledby", titleId)}><div${_attr_class("_bj")}><div${_attr_class(content$1)}>`);
5056
5230
  _set_serialize_reason({
5057
5231
  0: _serialize_guard($scope0_reason, 2),
5058
5232
  1: $sg__input_backHref__OR__input_onExit,
@@ -5064,8 +5238,8 @@ var new_workspace_default = _template("p", (input) => {
5064
5238
  title: "New workspace",
5065
5239
  titleId,
5066
5240
  backHref: input.backHref,
5067
- onBack: input.onExit && _resume(() => input.onExit?.(), "p6", $scope0_id),
5068
- meta: attrTag({ content: _content_resume("p13", () => {
5241
+ onBack: input.onExit && _resume(() => input.onExit?.(), "p7", $scope0_id),
5242
+ meta: attrTag({ content: _content_resume("p14", () => {
5069
5243
  _scope_reason();
5070
5244
  _scope_id();
5071
5245
  _html("Name the workspace and pick repos, or restore an archived one below.");
@@ -5073,27 +5247,27 @@ var new_workspace_default = _template("p", (input) => {
5073
5247
  });
5074
5248
  _if(() => {
5075
5249
  if (error) {
5076
- const $scope5_id = _scope_id();
5250
+ const $scope6_id = _scope_id();
5077
5251
  toast_default({
5078
5252
  placement: "inline",
5079
5253
  onDismiss: _resume(function() {
5080
5254
  error = null;
5081
- }, "p7", $scope5_id),
5082
- content: _content_resume("p14", () => {
5255
+ }, "p8", $scope6_id),
5256
+ content: _content_resume("p15", () => {
5083
5257
  _scope_reason();
5084
- const $scope6_id = _scope_id();
5085
- _html(`${_escape(error)}${_el_resume($scope6_id, "a")}`);
5086
- _subscribe($error__closures, writeScope($scope6_id, { _: _scope_with_id($scope5_id) }));
5087
- _resume_branch($scope6_id);
5088
- }, $scope5_id)
5258
+ const $scope7_id = _scope_id();
5259
+ _html(`${_escape(error)}${_el_resume($scope7_id, "a")}`);
5260
+ _subscribe($error__closures, writeScope($scope7_id, { _: _scope_with_id($scope6_id) }));
5261
+ _resume_branch($scope7_id);
5262
+ }, $scope6_id)
5089
5263
  });
5090
- writeScope($scope5_id, {});
5264
+ writeScope($scope6_id, {});
5091
5265
  return 0;
5092
5266
  }
5093
5267
  }, $scope0_id, "e", 1, 1, 1, 0, 1);
5094
- _html(`<label${_attr_class("_bL")}><span${_attr_class("_by")}>Name</span><input${_attr_input_value($scope0_id, "h", name, _resume((_new_name) => {
5268
+ _html(`<label${_attr_class("_bL")}><span${_attr_class("_bH")}>Name</span><input${_attr_input_value($scope0_id, "h", name, _resume((_new_name) => {
5095
5269
  name = _new_name;
5096
- }, "p0", $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("_bN")}><h2${_attr_class("_by")}>Repos</h2><button${_attr_class(iconBtnRow)} title="Refresh repo list" aria-label="Refresh repo list"${_attr("disabled", catalogRefreshing)}>`);
5270
+ }, "p0", $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("_bN")}><h2${_attr_class("_bH")}>Repos</h2><button${_attr_class(iconBtnRow)} title="Refresh repo list" aria-label="Refresh repo list"${_attr("disabled", catalogRefreshing)}>`);
5097
5271
  _set_serialize_reason(1);
5098
5272
  const $childScope2 = _peek_scope_id();
5099
5273
  icon_refresh_default({
@@ -5103,44 +5277,55 @@ var new_workspace_default = _template("p", (input) => {
5103
5277
  _html(`</button>${_el_resume($scope0_id, "l")}</div><ul${_attr_class("_bO")}>`);
5104
5278
  _for_of(selected, (repo) => {
5105
5279
  const $scope2_id = _scope_id();
5106
- _html(`<li><div${_attr_class(row)}><span${_attr_class("_bP")}>${_escape(repoLabel(repo.fullName))}${_el_resume($scope2_id, "c")}</span><button${_attr_class([
5280
+ _html(`<li><div${_attr_class(row)}><span${_attr_class("_bP")}>${_escape(repoLabel(repo.fullName))}${_el_resume($scope2_id, "c")}</span>`);
5281
+ _if(() => {
5282
+ if (repo.fork !== void 0) {
5283
+ const $scope3_id = _scope_id();
5284
+ _html(`<button${_attr_class(["_bS", { ["_bQ"]: 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)}>${repo.fork ? "✓ fork" : "fork"}${_el_resume($scope3_id, "b")}</button>${_el_resume($scope3_id, "a")}`);
5285
+ _script($scope3_id, "p16");
5286
+ _subscribe($busy__closures, writeScope($scope3_id, {}));
5287
+ return 0;
5288
+ }
5289
+ }, $scope2_id, "d", 1, 1, 1, 0, 1);
5290
+ _html(`<button${_attr_class([
5107
5291
  curBase,
5108
5292
  "_x",
5109
5293
  { ["_bQ"]: branchesFor === repo.fullName }
5110
- ])}${_attr("title", `Change base branch for ${repo.fullName}`)}${_attr("aria-label", `Change base branch for ${repo.fullName}`)}${_attr("disabled", busy)}>${repo.baseBranch ? `⎇ ${_escape(`${repo.baseBranch}`)}` : "⎇"}${_el_resume($scope2_id, "e")}</button>${_el_resume($scope2_id, "d")}<button${_attr_class([iconBtnXs, "_2"])}${_attr("title", `Remove ${repo.fullName}`)}${_attr("disabled", busy)}>`);
5294
+ ])}${_attr("title", `Change base branch for ${repo.fullName}`)}${_attr("aria-label", `Change base branch for ${repo.fullName}`)}${_attr("disabled", busy)}>${repo.baseBranch ? `⎇ ${_escape(`${repo.baseBranch}`)}` : "⎇"}${_el_resume($scope2_id, "f")}</button>${_el_resume($scope2_id, "e")}<button${_attr_class([iconBtnXs, "_2"])}${_attr("title", `Remove ${repo.fullName}`)}${_attr("disabled", busy)}>`);
5111
5295
  icon_xmark_default({ size: 12 });
5112
- _html(`</button>${_el_resume($scope2_id, "f")}</div>`);
5296
+ _html(`</button>${_el_resume($scope2_id, "g")}</div>`);
5113
5297
  _if(() => {
5114
5298
  if (branchesFor === repo.fullName) {
5115
- const $scope7_id = _scope_id();
5299
+ const $scope8_id = _scope_id();
5116
5300
  const $childScope3 = _peek_scope_id();
5117
5301
  branch_pick_default({
5118
5302
  repo: repo.fullName,
5119
5303
  current: repo.baseBranch,
5120
5304
  onPick: _resume(function(branch, isDefault) {
5121
5305
  setBranch(repo.fullName, isDefault ? void 0 : branch);
5122
- }, "p8", $scope7_id),
5306
+ }, "p9", $scope8_id),
5123
5307
  onError: _resume(function(message) {
5124
5308
  branchesFor = null;
5125
5309
  error = message;
5126
- }, "p9", $scope7_id)
5310
+ }, "p10", $scope8_id)
5127
5311
  });
5128
- writeScope($scope7_id, { a: _existing_scope($childScope3) });
5312
+ writeScope($scope8_id, { a: _existing_scope($childScope3) });
5129
5313
  return 0;
5130
5314
  }
5131
- }, $scope2_id, "h", 1, 1, 1, 0, 1);
5315
+ }, $scope2_id, "i", 1, 1, 1, 0, 1);
5132
5316
  _html("</li>");
5133
- _script($scope2_id, "p15");
5317
+ _script($scope2_id, "p17");
5134
5318
  writeScope($scope2_id, {
5135
- k: repo?.fullName,
5136
- m: repo?.baseBranch
5319
+ l: repo?.fullName,
5320
+ n: repo?.fork,
5321
+ o: repo?.baseBranch
5137
5322
  });
5138
5323
  }, "fullName", $scope0_id, "o", 1, 1, 1, 0, 1);
5139
5324
  _if(() => {
5140
5325
  if (!selected.length) {
5141
- const $scope11_id = _scope_id();
5142
- _html(`<li${_attr_class("_bu")}>No repos yet. Search below to add one, or create it empty.</li>`);
5143
- writeScope($scope11_id, {});
5326
+ const $scope12_id = _scope_id();
5327
+ _html(`<li${_attr_class("_bD")}>No repos yet. Search below to add one, or create it empty.</li>`);
5328
+ writeScope($scope12_id, {});
5144
5329
  return 0;
5145
5330
  }
5146
5331
  }, $scope0_id, "p", 1, 1, 1, 0, 1);
@@ -5149,42 +5334,42 @@ var new_workspace_default = _template("p", (input) => {
5149
5334
  let refreshCatalog = repo_picker_default({
5150
5335
  exclude: new Set(selected.map((r) => r.fullName)),
5151
5336
  disabled: busy,
5152
- onPick: _resume(function(fullName, baseBranch) {
5153
- addRepo(fullName, baseBranch);
5154
- }, "p10", $scope0_id),
5337
+ onPick: _resume(function(fullName, baseBranch, fork) {
5338
+ addRepo(fullName, baseBranch, fork);
5339
+ }, "p11", $scope0_id),
5155
5340
  onError: _resume(function(message) {
5156
5341
  error = message;
5157
- }, "p11", $scope0_id),
5342
+ }, "p12", $scope0_id),
5158
5343
  refreshingChange: _resume(function(v) {
5159
5344
  catalogRefreshing = v;
5160
- }, "p12", $scope0_id)
5345
+ }, "p13", $scope0_id)
5161
5346
  });
5162
- _var($scope0_id, "r", $childScope4, "p16");
5347
+ _var($scope0_id, "r", $childScope4, "p18");
5163
5348
  _html("</section>");
5164
5349
  _if(() => {
5165
5350
  if (busy && steps$1.length) {
5166
- const $scope8_id = _scope_id();
5167
- _html(`<ul${_attr_class("_bS")}>`);
5351
+ const $scope9_id = _scope_id();
5352
+ _html(`<ul${_attr_class("_bT")}>`);
5168
5353
  _for_of(steps$1, (step$1, i) => {
5169
- const $scope9_id = _scope_id();
5170
- _html(`<li${_attr_class(["_bY", { ["_bT"]: i === steps$1.length - 1 }])}>`);
5354
+ const $scope10_id = _scope_id();
5355
+ _html(`<li${_attr_class(["_bZ", { ["_bU"]: i === steps$1.length - 1 }])}>`);
5171
5356
  _if(() => {
5172
5357
  if (i === steps$1.length - 1) {
5173
- const $scope12_id = _scope_id();
5358
+ const $scope13_id = _scope_id();
5174
5359
  _html(`<span${_attr_class("_F")}></span>`);
5175
- writeScope($scope12_id, {});
5360
+ writeScope($scope13_id, {});
5176
5361
  return 0;
5177
5362
  } else {
5178
- const $scope13_id = _scope_id();
5179
- _html(`<span${_attr_class("_bU")}>✓</span>`);
5180
- writeScope($scope13_id, {});
5363
+ const $scope14_id = _scope_id();
5364
+ _html(`<span${_attr_class("_bV")}>✓</span>`);
5365
+ writeScope($scope14_id, {});
5181
5366
  return 1;
5182
5367
  }
5183
- }, $scope9_id, "b", 1, 1, 1, 0, 1);
5184
- _html(`<!>${_escape(step$1)}${_el_resume($scope9_id, "c")}</li>${_el_resume($scope9_id, "a")}`);
5185
- _subscribe($steps_length__closures, writeScope($scope9_id, {}));
5186
- }, 0, $scope8_id, "a", 1, 1, 1, "</ul>", 1);
5187
- writeScope($scope8_id, {});
5368
+ }, $scope10_id, "b", 1, 1, 1, 0, 1);
5369
+ _html(`<!>${_escape(step$1)}${_el_resume($scope10_id, "c")}</li>${_el_resume($scope10_id, "a")}`);
5370
+ _subscribe($steps_length__closures, writeScope($scope10_id, {}));
5371
+ }, 0, $scope9_id, "a", 1, 1, 1, "</ul>", 1);
5372
+ writeScope($scope9_id, {});
5188
5373
  return 0;
5189
5374
  }
5190
5375
  }, $scope0_id, "s", 1, 1, 1, 0, 1);
@@ -5193,7 +5378,7 @@ var new_workspace_default = _template("p", (input) => {
5193
5378
  if (input.onExit || busy) {
5194
5379
  const $scope1_id = _scope_id();
5195
5380
  _html(`<button type=button${_attr_class(btnLg)}${_attr("disabled", !!restoring)}>Cancel</button>${_el_resume($scope1_id, "a")}`);
5196
- _script($scope1_id, "p17");
5381
+ _script($scope1_id, "p19");
5197
5382
  writeScope($scope1_id, {});
5198
5383
  return 0;
5199
5384
  }
@@ -5205,39 +5390,40 @@ var new_workspace_default = _template("p", (input) => {
5205
5390
  ])}${_attr("disabled", busy || !!restoring || !name.trim())}>${busy ? "Creating…" : "Create workspace"}${_el_resume($scope0_id, "w")}</button>${_el_resume($scope0_id, "v")}</div>`);
5206
5391
  _if(() => {
5207
5392
  if (archived$1.length) {
5208
- const $scope3_id = _scope_id();
5209
- _html(`<section${_attr_class(archived)}><div${_attr_class("_bN")}><h2${_attr_class("_by")}>Archived</h2><span${_attr_class(sectionCount$1)}>${_escape(archived$1.length)}${_el_resume($scope3_id, "e", $sg__input_workspaces)}</span></div><p${_attr_class(archivedHint)}>Restore an archived workspace instead of creating a new one.</p><ul${_attr_class("_bm")}>`);
5393
+ const $scope4_id = _scope_id();
5394
+ _html(`<section${_attr_class(archived)}><div${_attr_class("_bN")}><h2${_attr_class("_bH")}>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("_bv")}>`);
5210
5395
  _for_of(archived$1, (ws) => {
5211
- const $scope4_id = _scope_id();
5212
- _html(`<li${_attr_class(archivedCard)}><div${_attr_class("_bp")}><span${_attr_class("_bq")}>${_escape(ws.name)}${_el_resume($scope4_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($scope4_id, "f", $sg__input_workspaces)}</span>${_el_resume($scope4_id, "e", $sg__input_workspaces)}</div><button type=button${_attr_class(btnLg)}${_attr("disabled", busy || !!restoring)}>`);
5396
+ const $scope5_id = _scope_id();
5397
+ _html(`<li${_attr_class(archivedCard)}><div${_attr_class("_by")}><span${_attr_class("_bz")}>${_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)}>`);
5213
5398
  _if(() => {
5214
5399
  if (restoring === ws.id) {
5215
- const $scope14_id = _scope_id();
5400
+ const $scope15_id = _scope_id();
5216
5401
  _html(`<span${_attr_class("_F")}></span> Restoring…`);
5217
- writeScope($scope14_id, {});
5402
+ writeScope($scope15_id, {});
5218
5403
  return 0;
5219
5404
  } else {
5220
- const $scope15_id = _scope_id();
5405
+ const $scope16_id = _scope_id();
5221
5406
  _html("Restore");
5222
- writeScope($scope15_id, {});
5407
+ writeScope($scope16_id, {});
5223
5408
  return 1;
5224
5409
  }
5225
- }, $scope4_id, "g", 1, 1, 1, "</button>");
5410
+ }, $scope5_id, "g", 1, 1, 1, "</button>");
5226
5411
  _html("</li>");
5227
- _script($scope4_id, "p18");
5228
- _subscribe($restoring__closures, _subscribe($busy__closures, writeScope($scope4_id, {
5412
+ _script($scope5_id, "p20");
5413
+ _subscribe($restoring__closures, _subscribe($busy__closures, writeScope($scope5_id, {
5229
5414
  j: ws,
5230
5415
  o: ws?.id,
5231
- _: _scope_with_id($scope3_id)
5416
+ _: _scope_with_id($scope4_id),
5417
+ Cax: 1
5232
5418
  })));
5233
- }, "id", $scope3_id, "g", $sg__input_workspaces, $sg__input_workspaces, $sg__input_workspaces, "</ul>", 1);
5419
+ }, "id", $scope4_id, "g", $sg__input_workspaces, $sg__input_workspaces, $sg__input_workspaces, "</ul>", 1);
5234
5420
  _html("</section>");
5235
- writeScope($scope3_id, { _: _scope_with_id($scope0_id) });
5421
+ writeScope($scope4_id, { _: _scope_with_id($scope0_id) });
5236
5422
  return 0;
5237
5423
  }
5238
5424
  }, $scope0_id, "x", $sg__input_workspaces, $sg__input_workspaces, 1, 0, 1);
5239
5425
  _html("</div></div></div>");
5240
- _script($scope0_id, "p19");
5426
+ _script($scope0_id, "p21");
5241
5427
  writeScope($scope0_id, {
5242
5428
  a1: input.onRestore,
5243
5429
  a2: input.onCreate,
@@ -5254,18 +5440,19 @@ var new_workspace_default = _template("p", (input) => {
5254
5440
  ak: addRepo,
5255
5441
  al: branchesFor,
5256
5442
  an: removeRepo,
5257
- ao: setBranch,
5258
- ap: restore,
5259
- ar: createGen.n,
5260
- at: create,
5261
- av: refreshCatalog,
5443
+ ao: toggleFork,
5444
+ ap: setBranch,
5445
+ aq: restore,
5446
+ as: createGen.n,
5447
+ au: create,
5448
+ aw: refreshCatalog,
5262
5449
  d: _serialize_if($scope0_reason, 0) && _existing_scope($childScope),
5263
- ay: $error__closures,
5450
+ az: $error__closures,
5264
5451
  m: _existing_scope($childScope2),
5452
+ ax: $busy__closures,
5265
5453
  q: _existing_scope($childScope4),
5266
- b0: $steps_length__closures,
5267
- aw: $busy__closures,
5268
- ax: $restoring__closures
5454
+ b1: $steps_length__closures,
5455
+ ay: $restoring__closures
5269
5456
  });
5270
5457
  _resume_branch($scope0_id);
5271
5458
  });
@@ -5352,8 +5539,8 @@ function activeAgent(session) {
5352
5539
  const command = session.state?.command?.trim();
5353
5540
  return command && agentFromCommand(command) || session.agent;
5354
5541
  }
5355
- var iconBtn$1 = "_dw _j";
5356
- var navToggle = "_dB _j";
5542
+ var iconBtn$1 = "_cZ _j";
5543
+ var navToggle = "_c4 _j";
5357
5544
  _template("H", (input) => {
5358
5545
  const $scope0_reason = _scope_reason(), $sg__input_size__OR__input_class = _serialize_guard($scope0_reason, 0);
5359
5546
  const $scope0_id = _scope_id();
@@ -5396,12 +5583,12 @@ var ARM_MS = 3500;
5396
5583
  function disarmLater(fn) {
5397
5584
  return setTimeout(fn, ARM_MS);
5398
5585
  }
5399
- var railBtn = "_f1 _j";
5400
- var rowIcon = "_f_ _Z _j";
5401
- var close = "_ga _Z _j _2";
5586
+ var railBtn = "_f0 _j";
5587
+ var rowIcon = "_f9 _Z _j";
5588
+ var close = "_f_ _Z _j _2";
5402
5589
  //#endregion
5403
5590
  //#region src/styles/session-pop.css.ts
5404
- var sessionPop = "_fF _4";
5591
+ var sessionPop = "_fW _4";
5405
5592
  //#endregion
5406
5593
  //#region src/client/usage.ts
5407
5594
  /** The plan row an agent instance draws on: its own account (`claude2`)
@@ -5462,22 +5649,22 @@ var usage_pcts_default = _template("C", (input) => {
5462
5649
  if (windows.length) {
5463
5650
  const $scope1_id = _scope_id();
5464
5651
  _html(`<span${_attr_class([
5465
- "_eZ",
5652
+ "_fm",
5466
5653
  input.class,
5467
- { ["_e0"]: agent.stale_seconds != null }
5654
+ { ["_fn"]: agent.stale_seconds != null }
5468
5655
  ])}${agent.stale_seconds != null ? _attr("title", `${agent.note || "provider unreachable"}; last cached numbers`) : " title=\"Plan usage\""}>`);
5469
5656
  _for_of(windows, (win$1, i) => {
5470
5657
  const $scope2_id = _scope_id();
5471
- _html(`<span${_attr_class("_e1")}>`);
5658
+ _html(`<span${_attr_class("_fo")}>`);
5472
5659
  _if(() => {
5473
5660
  if (i) {
5474
5661
  const $scope3_id = _scope_id();
5475
- _html(`<span${_attr_class("_e4")} aria-hidden=true>·</span>`);
5662
+ _html(`<span${_attr_class("_fr")} aria-hidden=true>·</span>`);
5476
5663
  $si__input_agent && writeScope($scope3_id, {});
5477
5664
  return 0;
5478
5665
  }
5479
5666
  }, $scope2_id, "b", $sg__input_agent, $sg__input_agent, $sg__input_agent, 0, 1);
5480
- _html(`<span${_attr_class("_e2")}>${_escape(win$1.window)}${_el_resume($scope2_id, "d", $sg__input_agent)}</span><span${_attr_class(["_e3", win$1.used_percent >= 90 ? "_dg" : win$1.used_percent >= 70 ? "_df" : win$1.used_percent >= 40 ? "_de" : "_dd"])}>${_escape(pctText(win$1.used_percent))}${_el_resume($scope2_id, "f", $sg__input_agent)}</span>${_el_resume($scope2_id, "e", $sg__input_agent)}</span>`);
5667
+ _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 ? "_eX" : win$1.used_percent >= 70 ? "_eW" : win$1.used_percent >= 40 ? "_eV" : "_eU"])}>${_escape(pctText(win$1.used_percent))}${_el_resume($scope2_id, "f", $sg__input_agent)}</span>${_el_resume($scope2_id, "e", $sg__input_agent)}</span>`);
5481
5668
  $si__input_agent && writeScope($scope2_id, {});
5482
5669
  }, "window", $scope1_id, "a", $sg__input_agent, $sg__input_agent__OR__input_class, $sg__input_agent, "</span>", 1);
5483
5670
  $si__input_agent__OR__input_class && writeScope($scope1_id, { _: _scope_with_id($scope0_id) });
@@ -5508,12 +5695,12 @@ var icon_edit_default = _template("M", (input) => {
5508
5695
  });
5509
5696
  _serialize_if($scope0_reason, 0) && writeScope($scope0_id, { a: _existing_scope($childScope) });
5510
5697
  });
5511
- var prChip = "_g1 _s _g0";
5512
- var portChip = "_g2 _s _g0";
5698
+ var prChip = "_g3 _s _g2";
5699
+ var portChip = "_g4 _s _g2";
5513
5700
  var prState = {
5514
- open: "_g6",
5515
- merged: "_g7",
5516
- closed: "_g8"
5701
+ open: "_g8",
5702
+ merged: "_g9",
5703
+ closed: "_g_"
5517
5704
  };
5518
5705
  //#endregion
5519
5706
  //#region src/tags/side-nav-chips.marko
@@ -5561,7 +5748,7 @@ var side_nav_chips_default = _template("v", (input) => {
5561
5748
  const name = repo.full_name.split("/").at(-1);
5562
5749
  return repos.some((r) => r.full_name !== repo.full_name && r.full_name.split("/").at(-1) === name) ? repoLabel(repo.full_name) : name;
5563
5750
  }, "v2", $scope1_id);
5564
- _html(`<div${_attr_class("_gZ")}>`);
5751
+ _html(`<div${_attr_class("_g1")}>`);
5565
5752
  _for_of(repos, (repo) => {
5566
5753
  const $scope2_id = _scope_id();
5567
5754
  const $for_content__repo_worktree__closures = /* @__PURE__ */ new Set();
@@ -5577,11 +5764,11 @@ var side_nav_chips_default = _template("v", (input) => {
5577
5764
  [prState.merged]: pr.state === "MERGED",
5578
5765
  [prState.closed]: pr.state === "CLOSED"
5579
5766
  }
5580
- ])}${_attr("title", prTitle(repo, pr))}><a${_attr_class(["_g3", { ["_g_"]: !open }])}${_attr("href", pr.url)} target=_blank rel=noopener>${_escape(repoLabel$1(repo))}${_el_resume($scope3_id, "c", $sg__input_status_repos)}#${_sep($sg__input_status_repos)}${_escape(pr.number)}${_el_resume($scope3_id, "d", $sg__input_status_repos)}</a>${_el_resume($scope3_id, "b", $sg__input_status_repos)}`);
5767
+ ])}${_attr("title", prTitle(repo, pr))}><a${_attr_class(["_g5", { ["_hb"]: !open }])}${_attr("href", pr.url)} target=_blank rel=noopener>${_escape(repoLabel$1(repo))}${_el_resume($scope3_id, "c", $sg__input_status_repos)}#${_sep($sg__input_status_repos)}${_escape(pr.number)}${_el_resume($scope3_id, "d", $sg__input_status_repos)}</a>${_el_resume($scope3_id, "b", $sg__input_status_repos)}`);
5581
5768
  _if(() => {
5582
5769
  if (open) {
5583
5770
  const $scope4_id = _scope_id();
5584
- _html(`<a${_attr_class(["_g3", "_g4"])}${_attr("href", `/w/${input.workspaceId}/review?pr=${encodeURIComponent(`${repo.worktree}/${pr.number}`)}`)}${_attr("title", `Review #${pr.number} changes`)}>`);
5771
+ _html(`<a${_attr_class(["_g5", "_g6"])}${_attr("href", `/w/${input.workspaceId}/review?pr=${encodeURIComponent(`${repo.worktree}/${pr.number}`)}`)}${_attr("title", `Review #${pr.number} changes`)}>`);
5585
5772
  icon_diff_default({ size: 12 });
5586
5773
  _html(`</a>${_el_resume($scope4_id, "a", _serialize_guard($scope0_reason, 0))}`);
5587
5774
  _serialize_if($scope0_reason, 2) && _subscribe($si__input_status_repos && $for_content__repo_worktree__closures, _subscribe($si__input_workspaceId && $input_workspaceId__closures, writeScope($scope4_id, { _: _scope_with_id($scope3_id) })));
@@ -5589,9 +5776,9 @@ var side_nav_chips_default = _template("v", (input) => {
5589
5776
  } else {
5590
5777
  const $scope6_id = _scope_id();
5591
5778
  _html(`<button type=button${_attr_class([
5592
- "_g3",
5593
- "_g4",
5594
- "_g5"
5779
+ "_g5",
5780
+ "_g6",
5781
+ "_g7"
5595
5782
  ])}${_attr("title", `Dismiss #${pr.number}`)}>`);
5596
5783
  icon_xmark_default({ size: 12 });
5597
5784
  _html(`</button>${_el_resume($scope6_id, "a")}`);
@@ -5616,10 +5803,10 @@ var side_nav_chips_default = _template("v", (input) => {
5616
5803
  }, "full_name", $scope1_id, "b", $sg__input_status_repos, $sg__input_status_repos, $sg__input_status_repos__OR__input_status_ports);
5617
5804
  _for_of(ports, (p) => {
5618
5805
  const $scope5_id = _scope_id();
5619
- _html(`<span${_attr_class(["_s", portChip])}${_attr("title", p.cmd)}><button type=button${_attr_class(["_g3", "_g9"])}${_attr("title", `Open http://${typeof location === "undefined" ? "localhost" : location.hostname}:${p.port}`)}>:${_sep($sg__input_status_ports)}${_escape(p.port)}${_el_resume($scope5_id, "c", $sg__input_status_ports)}</button>${_el_resume($scope5_id, "b")}<button type=button${_attr_class([
5620
- "_g3",
5621
- "_g4",
5806
+ _html(`<span${_attr_class(["_s", portChip])}${_attr("title", p.cmd)}><button type=button${_attr_class(["_g5", "_ha"])}${_attr("title", `Open http://${typeof location === "undefined" ? "localhost" : location.hostname}:${p.port}`)}>:${_sep($sg__input_status_ports)}${_escape(p.port)}${_el_resume($scope5_id, "c", $sg__input_status_ports)}</button>${_el_resume($scope5_id, "b")}<button type=button${_attr_class([
5622
5807
  "_g5",
5808
+ "_g6",
5809
+ "_g7",
5623
5810
  { ["_q"]: armedPid === p.pid }
5624
5811
  ])}${armedPid === p.pid ? " title=Kill?" : _attr("title", `Kill ${p.cmd} (pid ${p.pid})`)}>`);
5625
5812
  icon_xmark_default({ size: 12 });
@@ -5711,10 +5898,10 @@ var side_nav_item_default = _template("w", (input) => {
5711
5898
  _if(() => {
5712
5899
  if (input.rail) {
5713
5900
  const $scope2_id = _scope_id();
5714
- _html(`<a${_attr("href", `/w/${ws$1.id}`)}${_attr_class([railBtn, { ["_fZ"]: input.current }])}${_attr("title", ws$1.name)}>${_escape((input.index ?? 0) + 1)}${_el_resume($scope2_id, "b", _serialize_guard($scope0_reason, 27))}<span${_attr_class([
5901
+ _html(`<a${_attr("href", `/w/${ws$1.id}`)}${_attr_class([railBtn, { ["_fY"]: 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([
5715
5902
  "_z",
5716
5903
  phase[dot],
5717
- "_f2"
5904
+ "_f1"
5718
5905
  ])}></span>${_el_resume($scope2_id, "c", $sg__input_workspaceId__OR__input_status)}</a>${_el_resume($scope2_id, "a", _serialize_guard($scope0_reason, 3))}`);
5719
5906
  _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) })))));
5720
5907
  return 0;
@@ -5722,15 +5909,15 @@ var side_nav_item_default = _template("w", (input) => {
5722
5909
  const $scope3_id = _scope_id();
5723
5910
  const sessions$1 = input.sessions || [];
5724
5911
  const phaseLabel = dot === "working" ? "Working" : dot === "waiting" ? "Needs input" : dot === "idle" ? "Idle" : "Not running";
5725
- _html(`<section${_attr_class(["_f4", {
5726
- ["_fZ"]: input.current,
5912
+ _html(`<section${_attr_class(["_f3", {
5913
+ ["_fY"]: input.current,
5727
5914
  ["_5"]: input.current,
5728
- ["_f5"]: input.railPop,
5729
- ["_f3"]: input.page
5730
- }])}><div${_attr_class("_f6")}><a${_attr("href", `/w/${ws$1.id}`)}${_attr_class("_f7")}><span${_attr_class([
5915
+ ["_f4"]: input.railPop,
5916
+ ["_f2"]: input.page
5917
+ }])}><div${_attr_class("_f5")}><a${_attr("href", `/w/${ws$1.id}`)}${_attr_class("_f6")}><span${_attr_class([
5731
5918
  "_z",
5732
5919
  phase[dot],
5733
- "_gj"
5920
+ "_gi"
5734
5921
  ])}${_attr("title", phaseLabel)}></span>${_el_resume($scope3_id, "d", $sg__input_workspaceId__OR__input_status)}`);
5735
5922
  _if(() => {
5736
5923
  if (sessions$1.length === 1) {
@@ -5743,7 +5930,7 @@ var side_nav_item_default = _template("w", (input) => {
5743
5930
  icon_agent_default({
5744
5931
  agent: activeAgent(sessions$1[0]),
5745
5932
  size: 12,
5746
- class: "_gb"
5933
+ class: "_ga"
5747
5934
  });
5748
5935
  $si__input_sessions && writeScope($scope14_id, {
5749
5936
  _: _scope_with_id($scope3_id),
@@ -5753,16 +5940,16 @@ var side_nav_item_default = _template("w", (input) => {
5753
5940
  }
5754
5941
  }, $scope3_id, "e", $sg__input_sessions, $sg__input_sessions);
5755
5942
  const metaText = sessions$1.length === 0 ? phaseLabel : sessions$1.length === 1 ? sessions$1[0].title || "" : `${sessions$1.length} sessions`;
5756
- _html(`<span${_attr_class("_gc")}><span${_attr_class("_gd")}>${_escape(ws$1.name)}${_el_resume($scope3_id, "h", $sg__input_workspaces__OR__input_workspaceId)}</span>`);
5943
+ _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>`);
5757
5944
  _if(() => {
5758
5945
  if (input.page && metaText) {
5759
5946
  const $scope16_id = _scope_id();
5760
- _html(`<span${_attr_class("_gh")}>${_escape(metaText)}${_el_resume($scope16_id, "b", _serialize_guard($scope0_reason, 7))}</span>`);
5947
+ _html(`<span${_attr_class("_gg")}>${_escape(metaText)}${_el_resume($scope16_id, "b", _serialize_guard($scope0_reason, 7))}</span>`);
5761
5948
  $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) });
5762
5949
  return 0;
5763
5950
  } else if (sessions$1.length === 1 && sessions$1[0].title) {
5764
5951
  const $scope15_id = _scope_id();
5765
- _html(`<span${_attr_class("_ge")}>${_escape(sessions$1[0].title)}${_el_resume($scope15_id, "b", $sg__input_sessions)}</span>`);
5952
+ _html(`<span${_attr_class("_gd")}>${_escape(sessions$1[0].title)}${_el_resume($scope15_id, "b", $sg__input_sessions)}</span>`);
5766
5953
  $si__input_page__OR__input_sessions__OR__input_workspaceId__OR__input_status && writeScope($scope15_id, { _: $si__input_sessions && _scope_with_id($scope3_id) });
5767
5954
  return 1;
5768
5955
  }
@@ -5775,7 +5962,7 @@ var side_nav_item_default = _template("w", (input) => {
5775
5962
  "_I",
5776
5963
  "_R",
5777
5964
  "_K",
5778
- "_gi"
5965
+ "_gh"
5779
5966
  ])}>${input.current ? "Open" : ""}${_el_resume($scope4_id, "b", _serialize_guard($scope0_reason, 21))}</span>`);
5780
5967
  $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, {
5781
5968
  _: _scope_with_id($scope3_id),
@@ -5788,7 +5975,7 @@ var side_nav_item_default = _template("w", (input) => {
5788
5975
  _if(() => {
5789
5976
  if (!input.page) {
5790
5977
  const $scope5_id = _scope_id();
5791
- _html(`<div${_attr_class("_f8")}>`);
5978
+ _html(`<div${_attr_class("_f7")}>`);
5792
5979
  _if(() => {
5793
5980
  if (input.onNewSession) {
5794
5981
  const $scope6_id = _scope_id();
@@ -5802,7 +5989,7 @@ var side_nav_item_default = _template("w", (input) => {
5802
5989
  _html(`</button>${_el_resume($scope6_id, "a")}<div${_attr("id", newPopId)} popover=auto${_attr_class(sessionPop)}>`);
5803
5990
  _for_of([], (agent) => {
5804
5991
  const $scope7_id = _scope_id();
5805
- _html(`<button${_attr_class("_fG")}>`);
5992
+ _html(`<button${_attr_class("_fX")}>`);
5806
5993
  _set_serialize_reason(12);
5807
5994
  const $childScope2 = _peek_scope_id();
5808
5995
  icon_agent_default({
@@ -5837,7 +6024,7 @@ var side_nav_item_default = _template("w", (input) => {
5837
6024
  return 0;
5838
6025
  }
5839
6026
  }, $scope5_id, "c", $sg__input_onReview, $sg__input_onReview, $sg__input_onNewSession__OR__input_onReview, 0, 1);
5840
- _html(`<a${input.managing ? _attr("href", `/w/${ws$1.id}`) : _attr("href", `/w/${ws$1.id}/manage`)}${_attr_class([rowIcon, { ["_f0"]: input.managing }])} title=${input.managing ? "\"Back to terminal\"" : "\"Manage workspace\""}${input.managing ? " aria-current=page" : ""}>`);
6027
+ _html(`<a${input.managing ? _attr("href", `/w/${ws$1.id}`) : _attr("href", `/w/${ws$1.id}/manage`)}${_attr_class([rowIcon, { ["_fZ"]: input.managing }])} title=${input.managing ? "\"Back to terminal\"" : "\"Manage workspace\""}${input.managing ? " aria-current=page" : ""}>`);
5841
6028
  icon_manage_default({ size: 12 });
5842
6029
  _html(`</a>${_el_resume($scope5_id, "d", _serialize_guard($scope0_reason, 8))}</div>`);
5843
6030
  _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, {
@@ -5847,7 +6034,7 @@ var side_nav_item_default = _template("w", (input) => {
5847
6034
  return 0;
5848
6035
  }
5849
6036
  }, $scope3_id, "k", $sg__input_page, $sg__input_page, 1, 0, 1);
5850
- _html(`</div><div${_attr_class("_go")}>`);
6037
+ _html(`</div><div${_attr_class("_gn")}>`);
5851
6038
  _if(() => {
5852
6039
  if (sessions$1.length === 1 && openPlan) {
5853
6040
  const $scope11_id = _scope_id();
@@ -5855,7 +6042,7 @@ var side_nav_item_default = _template("w", (input) => {
5855
6042
  const $childScope3 = _peek_scope_id();
5856
6043
  usage_pcts_default({
5857
6044
  agent: openPlan,
5858
- class: "_gf"
6045
+ class: "_ge"
5859
6046
  });
5860
6047
  _subscribe($openPlan__closures, writeScope($scope11_id, {
5861
6048
  a: _existing_scope($childScope3),
@@ -5866,14 +6053,14 @@ var side_nav_item_default = _template("w", (input) => {
5866
6053
  }, $scope3_id, "m");
5867
6054
  _for_of(sessions$1.length > 1 ? sessions$1 : [], (s) => {
5868
6055
  const $scope8_id = _scope_id();
5869
- _html(`<div${_attr_class(["_f9", { ["_fZ"]: s.id === input.currentTab }])}>`);
6056
+ _html(`<div${_attr_class(["_f8", { ["_fY"]: s.id === input.currentTab }])}>`);
5870
6057
  _if(() => {
5871
6058
  if (renamingId === s.id) {
5872
6059
  const $scope10_id = _scope_id();
5873
6060
  _html(`<span${_attr_class([
5874
6061
  "_z",
5875
6062
  phase[sessionPhase(s.state)],
5876
- "_gm"
6063
+ "_gl"
5877
6064
  ])}></span>${_el_resume($scope10_id, "a", $sg__input_sessions)}`);
5878
6065
  _set_serialize_reason({
5879
6066
  1: $sg__input_sessions,
@@ -5883,17 +6070,17 @@ var side_nav_item_default = _template("w", (input) => {
5883
6070
  icon_agent_default({
5884
6071
  agent: activeAgent(s),
5885
6072
  size: 13,
5886
- class: "_gq"
6073
+ class: "_gp"
5887
6074
  });
5888
6075
  _html(`<input${_attr_input_value($scope10_id, "c", renameValue, _resume((_new_renameValue) => {
5889
6076
  renameValue = _new_renameValue;
5890
- }, "w0", $scope10_id))}${_attr_class(["_U", "_gn"])} aria-label="Session name">${_el_resume($scope10_id, "c")}`);
6077
+ }, "w0", $scope10_id))}${_attr_class(["_U", "_gm"])} aria-label="Session name">${_el_resume($scope10_id, "c")}`);
5891
6078
  _script($scope10_id, "w5");
5892
6079
  _subscribe($renameValue__closures, writeScope($scope10_id, { b: $si__input_sessions && _existing_scope($childScope4) }));
5893
6080
  return 0;
5894
6081
  } else {
5895
6082
  const $scope9_id = _scope_id();
5896
- _html(`<a${_attr("href", `/w/${ws$1.id}?s=${s.id}`)}${_attr_class("_gp")}><span${_attr_class(["_z", phase[sessionPhase(s.state)]])}></span>${_el_resume($scope9_id, "b", $sg__input_sessions)}`);
6083
+ _html(`<a${_attr("href", `/w/${ws$1.id}?s=${s.id}`)}${_attr_class("_go")}><span${_attr_class(["_z", phase[sessionPhase(s.state)]])}></span>${_el_resume($scope9_id, "b", $sg__input_sessions)}`);
5897
6084
  _set_serialize_reason({
5898
6085
  1: $sg__input_sessions,
5899
6086
  2: $sg__input_sessions
@@ -5902,9 +6089,9 @@ var side_nav_item_default = _template("w", (input) => {
5902
6089
  icon_agent_default({
5903
6090
  agent: activeAgent(s),
5904
6091
  size: 13,
5905
- class: "_gq"
6092
+ class: "_gp"
5906
6093
  });
5907
- _html(`<span${_attr_class("_gk")}>${_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("_gl")}><button${_attr_class(rowIcon)} title="Rename session">`);
6094
+ _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">`);
5908
6095
  icon_edit_default({ size: 12 });
5909
6096
  _html(`</button>${_el_resume($scope9_id, "g")}<button${_attr_class([close, { ["_q"]: armedKill === s.id }])} title=${armedKill === s.id ? "Close?" : "\"Close session\""}>`);
5910
6097
  icon_xmark_default({ size: 12 });
@@ -5916,7 +6103,7 @@ var side_nav_item_default = _template("w", (input) => {
5916
6103
  const $childScope6 = _peek_scope_id();
5917
6104
  usage_pcts_default({
5918
6105
  agent: openPlan,
5919
- class: "_gg"
6106
+ class: "_gf"
5920
6107
  });
5921
6108
  _subscribe($openPlan__closures, writeScope($scope12_id, {
5922
6109
  a: _existing_scope($childScope6),
@@ -6070,7 +6257,7 @@ var icon_sidebar_collapse_default = _template("V", (input) => {
6070
6257
  //#endregion
6071
6258
  //#region src/tags/side-nav.marko
6072
6259
  var side_nav_default = _template("x", (input) => {
6073
- const $scope0_reason = _scope_reason(), $sg__input_instanceName = _serialize_guard($scope0_reason, 11), $sg__input_setupReady = _serialize_guard($scope0_reason, 12), $sg__input_instanceAccent = _serialize_guard($scope0_reason, 10), $sg__input_workspace__OR__input_allWorkspaces = _serialize_guard($scope0_reason, 0), $sg__input_workspace__OR__input_allWorkspaces__OR__input_allStatus = _serialize_guard($scope0_reason, 2), $sg__input_agents = _serialize_guard($scope0_reason, 14), $si__input_workspace = _serialize_if($scope0_reason, 3), $si__input_workspace__OR__input_allWorkspaces = _serialize_if($scope0_reason, 0), $si__input_allStatus = _serialize_if($scope0_reason, 9), $si__input_setupReady = _serialize_if($scope0_reason, 12), $si__input_instanceName = _serialize_if($scope0_reason, 11), $si__input_instanceAccent = _serialize_if($scope0_reason, 10), $si__input_onSelectWorkspace = _serialize_if($scope0_reason, 13), $si__input_agents = _serialize_if($scope0_reason, 14), $si__input_onNewSession = _serialize_if($scope0_reason, 15), $si__input_onReviewOpened = _serialize_if($scope0_reason, 16), $si__input_sessions = _serialize_if($scope0_reason, 17), $si__input_onRenameSession = _serialize_if($scope0_reason, 18), $si__input_onCloseSession = _serialize_if($scope0_reason, 19);
6260
+ const $scope0_reason = _scope_reason(), $sg__input_instanceName = _serialize_guard($scope0_reason, 12), $sg__input_setupReady = _serialize_guard($scope0_reason, 13), $sg__input_instanceAccent = _serialize_guard($scope0_reason, 11), $sg__input_workspace__OR__input_allWorkspaces = _serialize_guard($scope0_reason, 0), $sg__input_workspace__OR__input_allWorkspaces__OR__input_allStatus = _serialize_guard($scope0_reason, 3), $sg__input_agents = _serialize_guard($scope0_reason, 15), $si__input_workspace = _serialize_if($scope0_reason, 4), $si__input_workspace__OR__input_allWorkspaces = _serialize_if($scope0_reason, 0), $si__input_allStatus = _serialize_if($scope0_reason, 10), $si__input_setupReady = _serialize_if($scope0_reason, 13), $si__input_instanceName = _serialize_if($scope0_reason, 12), $si__input_instanceAccent = _serialize_if($scope0_reason, 11), $si__input_onSelectWorkspace = _serialize_if($scope0_reason, 14), $si__input_agents = _serialize_if($scope0_reason, 15), $si__input_onNewSession = _serialize_if($scope0_reason, 16), $si__input_onReviewOpened = _serialize_if($scope0_reason, 17), $si__input_sessions = _serialize_if($scope0_reason, 18), $si__input_onRenameSession = _serialize_if($scope0_reason, 19), $si__input_onCloseSession = _serialize_if($scope0_reason, 20), $si__input_tab__OR__input_tabChange = _serialize_if($scope0_reason, 1);
6074
6261
  const $scope0_id = _scope_id();
6075
6262
  const $input_instanceName__closures = /* @__PURE__ */ new Set();
6076
6263
  const $iconSrc__closures = /* @__PURE__ */ new Set();
@@ -6119,34 +6306,34 @@ var side_nav_default = _template("x", (input) => {
6119
6306
  const iconSrc = `/api/instance/icon${input.instanceAccent ? `?v=${input.instanceAccent.slice(1)}` : ""}`;
6120
6307
  const otherIds = itemIds.filter((id) => id !== ws.id);
6121
6308
  const listIds = isPage ? [ws.id, ...otherIds] : itemIds;
6122
- _html(`<aside${_attr_class(["_dA", {
6123
- ["_dy"]: !navOpen,
6124
- ["_dz"]: isPage
6309
+ _html(`<aside${_attr_class(["_c3", {
6310
+ ["_c1"]: !navOpen,
6311
+ ["_c2"]: isPage
6125
6312
  }])}${_attr("hidden", view === "diff")}>`);
6126
6313
  _if(() => {
6127
6314
  if (isPage) {
6128
6315
  const $scope1_id = _scope_id();
6129
- _html(`<header${_attr_class("_dD")}><div${_attr_class("_dM")}>`);
6316
+ _html(`<header${_attr_class("_c6")}><div${_attr_class("_de")}>`);
6130
6317
  _if(() => {
6131
6318
  if (input.instanceName) {
6132
6319
  const $scope2_id = _scope_id();
6133
- _html(`<div${_attr_class("_dJ")} title="This work server (Settings → Appearance)"><img${_attr_class("_dK")}${_attr("src", iconSrc)} alt aria-hidden=true>${_el_resume($scope2_id, "b", $sg__input_instanceAccent)}<span${_attr_class("_dL")}>${_escape(input.instanceName)}${_el_resume($scope2_id, "d", $sg__input_instanceName)}</span></div>`);
6320
+ _html(`<div${_attr_class("_db")} title="This work server (Settings → Appearance)"><img${_attr_class("_dc")}${_attr("src", iconSrc)} alt aria-hidden=true>${_el_resume($scope2_id, "b", $sg__input_instanceAccent)}<span${_attr_class("_dd")}>${_escape(input.instanceName)}${_el_resume($scope2_id, "d", $sg__input_instanceName)}</span></div>`);
6134
6321
  _subscribe($si__input_instanceAccent && $iconSrc__closures, _subscribe($si__input_instanceName && $input_instanceName__closures, writeScope($scope2_id, { _: _scope_with_id($scope1_id) })));
6135
6322
  return 0;
6136
6323
  }
6137
6324
  }, $scope1_id, "c", $sg__input_instanceName, $sg__input_instanceName, 1, 0, 1);
6138
- _html(`<h1${_attr_class("_dE")}>Workspaces</h1></div><div${_attr_class("_dF")}>`);
6325
+ _html(`<h1${_attr_class("_c7")}>Workspaces</h1></div><div${_attr_class("_c8")}>`);
6139
6326
  _if(() => {}, $scope1_id, "f", 1, 1, 1, 0, 1);
6140
6327
  _html(`<a${view === "settings" ? _attr("href", backHref) : " href=/settings"}${_attr_class([
6141
6328
  iconBtn$1,
6142
- "_dG",
6143
- { ["_dv"]: view === "settings" }
6329
+ "_c9",
6330
+ { ["_cY"]: view === "settings" }
6144
6331
  ])} title=${view === "settings" ? "\"Back to workspace\"" : "Settings"}${view === "settings" ? " aria-current=page" : ""}>`);
6145
6332
  icon_settings_default({ size: 16 });
6146
6333
  _if(() => {
6147
6334
  if (input.setupReady === false) {
6148
6335
  const $scope12_id = _scope_id();
6149
- _html(`<span${_attr_class(["_z", "_dx"])} title="Machine setup incomplete"></span>`);
6336
+ _html(`<span${_attr_class(["_z", "_c0"])} title="Machine setup incomplete"></span>`);
6150
6337
  $si__input_setupReady && writeScope($scope12_id, {});
6151
6338
  return 0;
6152
6339
  }
@@ -6159,18 +6346,18 @@ var side_nav_default = _template("x", (input) => {
6159
6346
  _if(() => {
6160
6347
  if (!isPage && input.instanceName) {
6161
6348
  const $scope3_id = _scope_id();
6162
- _html(`<div${_attr_class("_dJ")} title="This work server (Settings → Appearance)"><img${_attr_class("_dK")}${_attr("src", iconSrc)} alt aria-hidden=true>${_el_resume($scope3_id, "b", $sg__input_instanceAccent)}<span${_attr_class("_dL")}>${_escape(input.instanceName)}${_el_resume($scope3_id, "d", $sg__input_instanceName)}</span></div>`);
6349
+ _html(`<div${_attr_class("_db")} title="This work server (Settings → Appearance)"><img${_attr_class("_dc")}${_attr("src", iconSrc)} alt aria-hidden=true>${_el_resume($scope3_id, "b", $sg__input_instanceAccent)}<span${_attr_class("_dd")}>${_escape(input.instanceName)}${_el_resume($scope3_id, "d", $sg__input_instanceName)}</span></div>`);
6163
6350
  writeScope($scope3_id, {});
6164
6351
  return 0;
6165
6352
  }
6166
6353
  }, $scope0_id, "c", 1, 1, 1, 0, 1);
6167
- _html(`<div${_attr_class("_dN")}>`);
6354
+ _html(`<div${_attr_class("_df")}>`);
6168
6355
  _for_of(listIds, (wsId) => {
6169
6356
  const $scope4_id = _scope_id();
6170
6357
  _if(() => {
6171
6358
  if (isPage && wsId === ws.id) {
6172
6359
  const $scope13_id = _scope_id();
6173
- _html(`<h2${_attr_class(["_by", "_dH"])}>Current</h2>`);
6360
+ _html(`<h2${_attr_class(["_bH", "_c_"])}>Current</h2>`);
6174
6361
  writeScope($scope13_id, {});
6175
6362
  return 0;
6176
6363
  }
@@ -6178,7 +6365,7 @@ var side_nav_default = _template("x", (input) => {
6178
6365
  _if(() => {
6179
6366
  if (isPage && wsId !== ws.id && wsId === otherIds[0]) {
6180
6367
  const $scope14_id = _scope_id();
6181
- _html(`<h2${_attr_class(["_by", "_dH"])}>Other workspaces</h2>`);
6368
+ _html(`<h2${_attr_class(["_bH", "_c_"])}>Other workspaces</h2>`);
6182
6369
  writeScope($scope14_id, {});
6183
6370
  return 0;
6184
6371
  }
@@ -6265,7 +6452,7 @@ var side_nav_default = _template("x", (input) => {
6265
6452
  railHover = null;
6266
6453
  }, 150);
6267
6454
  }, "x6", $scope5_id);
6268
- _html(`<div${_attr_class("_dO")}>`);
6455
+ _html(`<div${_attr_class("_dg")}>`);
6269
6456
  _for_of(itemIds, (wsId, i) => {
6270
6457
  const $scope6_id = _scope_id();
6271
6458
  _html("<span>");
@@ -6312,14 +6499,14 @@ var side_nav_default = _template("x", (input) => {
6312
6499
  _subscribe($si__input_allStatus && $allStatus__closures, _subscribe($si__input_workspace__OR__input_allWorkspaces && $workspaces__closures, _subscribe($si__input_workspace && $ws_id__closures, writeScope($scope6_id, {
6313
6500
  d: wsId,
6314
6501
  _: _scope_with_id($scope5_id),
6315
- b: _serialize_if($scope0_reason, 2) && _existing_scope($childScope2)
6502
+ b: _serialize_if($scope0_reason, 3) && _existing_scope($childScope2)
6316
6503
  }))));
6317
6504
  }, (id) => id, $scope5_id, "a", $sg__input_workspace__OR__input_allWorkspaces, $sg__input_workspace__OR__input_allWorkspaces, $sg__input_workspace__OR__input_allWorkspaces, "</div>", 1);
6318
6505
  _if(() => {
6319
6506
  if (railHover) {
6320
6507
  const $scope7_id = _scope_id();
6321
6508
  const hoverId = railHover.id;
6322
- _html(`<div${_attr_class(["_4", "_dR"])}${_attr_style(`top:${railHover.top}px;left:${railHover.left}px`)}>`);
6509
+ _html(`<div${_attr_class(["_4", "_dj"])}${_attr_style(`top:${railHover.top}px;left:${railHover.left}px`)}>`);
6323
6510
  _set_serialize_reason({
6324
6511
  0: 1,
6325
6512
  1: 1,
@@ -6386,7 +6573,7 @@ var side_nav_default = _template("x", (input) => {
6386
6573
  });
6387
6574
  _html(`</div>${_el_resume($scope7_id, "a")}`);
6388
6575
  _script($scope7_id, "x13");
6389
- _subscribe($si__input_allStatus && $allStatus__closures, _subscribe($si__input_workspace__OR__input_allWorkspaces && $workspaces__closures, _subscribe($view__closures, _subscribe($tab__closures, _subscribe($si__input_workspace && $ws_id__closures, _subscribe($si__input_onCloseSession && $input_onCloseSession__closures, _subscribe($si__input_onRenameSession && $input_onRenameSession__closures, _subscribe($si__input_sessions && $input_sessions__closures, _subscribe($si__input_onReviewOpened && $input_onReviewOpened__closures, _subscribe($si__input_onNewSession && $input_onNewSession__closures, _subscribe($si__input_agents && $input_agents__closures, _subscribe($si__input_onSelectWorkspace && $input_onSelectWorkspace__closures, writeScope($scope7_id, {
6576
+ _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_onReviewOpened && $input_onReviewOpened__closures, _subscribe($si__input_onNewSession && $input_onNewSession__closures, _subscribe($si__input_agents && $input_agents__closures, _subscribe($si__input_onSelectWorkspace && $input_onSelectWorkspace__closures, writeScope($scope7_id, {
6390
6577
  d: hoverId,
6391
6578
  b: _existing_scope($childScope3),
6392
6579
  Cb4: $si__input_workspace && 1,
@@ -6407,7 +6594,7 @@ var side_nav_default = _template("x", (input) => {
6407
6594
  return 0;
6408
6595
  }
6409
6596
  }, $scope0_id, "e");
6410
- _html(`<div${_attr_class("_dP")}>`);
6597
+ _html(`<div${_attr_class("_dh")}>`);
6411
6598
  _if(() => {
6412
6599
  if (isPage) {
6413
6600
  const $scope9_id = _scope_id();
@@ -6415,7 +6602,7 @@ var side_nav_default = _template("x", (input) => {
6415
6602
  "_o",
6416
6603
  "_p",
6417
6604
  btnLg,
6418
- "_dI"
6605
+ "_da"
6419
6606
  ])} title=${view === "new" ? "\"Back to workspace\"" : "\"New workspace\""}${view === "new" ? " aria-current=page" : ""}>`);
6420
6607
  icon_folder_plus_default({ size: 16 });
6421
6608
  _html(` New workspace</a>${_el_resume($scope9_id, "a")}`);
@@ -6437,19 +6624,19 @@ var side_nav_default = _template("x", (input) => {
6437
6624
  return 1;
6438
6625
  }
6439
6626
  }, $scope8_id, "a", 1, 1, 1, "</button>", 1);
6440
- _html(`<div${_attr_class(["_y", "_dQ"])}></div>`);
6627
+ _html(`<div${_attr_class(["_y", "_di"])}></div>`);
6441
6628
  _if(() => {}, $scope8_id, "c", 1, 1, 1, 0, 1);
6442
- _html(`<a${view === "settings" ? _attr("href", backHref) : " href=/settings"}${_attr_class([iconBtn$1, { ["_dv"]: view === "settings" }])} title=${view === "settings" ? "\"Back to workspace\"" : "Settings"}${view === "settings" ? " aria-current=page" : ""}>`);
6629
+ _html(`<a${view === "settings" ? _attr("href", backHref) : " href=/settings"}${_attr_class([iconBtn$1, { ["_cY"]: view === "settings" }])} title=${view === "settings" ? "\"Back to workspace\"" : "Settings"}${view === "settings" ? " aria-current=page" : ""}>`);
6443
6630
  icon_settings_default({ size: 15 });
6444
6631
  _if(() => {
6445
6632
  if (input.setupReady === false) {
6446
6633
  const $scope17_id = _scope_id();
6447
- _html(`<span${_attr_class(["_z", "_dx"])} title="Machine setup incomplete"></span>`);
6634
+ _html(`<span${_attr_class(["_z", "_c0"])} title="Machine setup incomplete"></span>`);
6448
6635
  $si__input_setupReady && writeScope($scope17_id, {});
6449
6636
  return 0;
6450
6637
  }
6451
6638
  }, $scope8_id, "f", $sg__input_setupReady, $sg__input_setupReady, 1, 0, 1);
6452
- _html(`</a>${_el_resume($scope8_id, "d")}<a${view === "new" ? _attr("href", backHref) : " href=/new"}${_attr_class([iconBtn$1, { ["_dv"]: view === "new" }])} title=${view === "new" ? "\"Back to workspace\"" : "\"New workspace\""}${view === "new" ? " aria-current=page" : ""}>`);
6639
+ _html(`</a>${_el_resume($scope8_id, "d")}<a${view === "new" ? _attr("href", backHref) : " href=/new"}${_attr_class([iconBtn$1, { ["_cY"]: view === "new" }])} title=${view === "new" ? "\"Back to workspace\"" : "\"New workspace\""}${view === "new" ? " aria-current=page" : ""}>`);
6453
6640
  icon_folder_plus_default({ size: 16 });
6454
6641
  _html(`</a>${_el_resume($scope8_id, "g")}`);
6455
6642
  _script($scope8_id, "x15");
@@ -6461,10 +6648,10 @@ var side_nav_default = _template("x", (input) => {
6461
6648
  _script($scope0_id, "x16");
6462
6649
  _script($scope0_id, "x17");
6463
6650
  writeScope($scope0_id, {
6464
- j: _serialize_if($scope0_reason, 5) && input.tab,
6465
- k: _serialize_if($scope0_reason, 4) && input.tabChange,
6466
- m: _serialize_if($scope0_reason, 7) && input.view,
6467
- n: _serialize_if($scope0_reason, 6) && input.viewChange,
6651
+ j: _serialize_if($scope0_reason, 6) && input.tab,
6652
+ k: _serialize_if($scope0_reason, 5) && input.tabChange,
6653
+ m: _serialize_if($scope0_reason, 8) && input.view,
6654
+ n: _serialize_if($scope0_reason, 7) && input.viewChange,
6468
6655
  p: input.onError,
6469
6656
  q: input.active,
6470
6657
  r: $si__input_workspace && input.allWorkspaces,
@@ -6477,7 +6664,7 @@ var side_nav_default = _template("x", (input) => {
6477
6664
  a0: input.sessions,
6478
6665
  a1: input.onRenameSession,
6479
6666
  a2: input.onCloseSession,
6480
- a3: _serialize_if($scope0_reason, 8) && ws,
6667
+ a3: _serialize_if($scope0_reason, 9) && ws,
6481
6668
  a5: ws?.id,
6482
6669
  a7: tab,
6483
6670
  a9: view,
@@ -6494,7 +6681,6 @@ var side_nav_default = _template("x", (input) => {
6494
6681
  aq: iconSrc,
6495
6682
  ar: otherIds,
6496
6683
  at: otherIds?.[0],
6497
- a8: input.tabChange || void 0,
6498
6684
  aa: input.viewChange || void 0,
6499
6685
  av: $si__input_instanceName && $input_instanceName__closures,
6500
6686
  bg: $si__input_instanceAccent && $iconSrc__closures,
@@ -6509,15 +6695,15 @@ var side_nav_default = _template("x", (input) => {
6509
6695
  b1: $si__input_sessions && $input_sessions__closures,
6510
6696
  b2: $si__input_onRenameSession && $input_onRenameSession__closures,
6511
6697
  b3: $si__input_onCloseSession && $input_onCloseSession__closures,
6512
- b5: $tab__closures,
6698
+ b5: $si__input_tab__OR__input_tabChange && $tab__closures,
6513
6699
  b6: $view__closures
6514
6700
  });
6515
6701
  _resume_branch($scope0_id);
6516
6702
  });
6517
6703
  var iconBtn = "_0 _j";
6518
- var sectionCount = "_bl _I _J";
6519
- var content = "_dk _bB";
6520
- var pageMeta = "_dl _bG";
6704
+ var sectionCount = "_bu _I _J";
6705
+ var content = "_dk _bk";
6706
+ var pageMeta = "_dl _bp";
6521
6707
  var pathMeta = "_do _x";
6522
6708
  var dangerHint = "_du _S";
6523
6709
  //#endregion
@@ -6557,7 +6743,7 @@ var manage_workspace_default = _template("n", (input) => {
6557
6743
  else next.delete(name);
6558
6744
  busy = next;
6559
6745
  }, "n1", $scope0_id);
6560
- const addRepo = _resume(async (name, baseBranch) => {
6746
+ const addRepo = _resume(async (name, baseBranch, fork) => {
6561
6747
  if (!name || busy.has(name)) return;
6562
6748
  error = null;
6563
6749
  setBusy(name, true);
@@ -6567,7 +6753,8 @@ var manage_workspace_default = _template("n", (input) => {
6567
6753
  headers: { "content-type": "application/json" },
6568
6754
  body: JSON.stringify({
6569
6755
  fullName: name,
6570
- baseBranch
6756
+ baseBranch,
6757
+ fork
6571
6758
  })
6572
6759
  });
6573
6760
  } catch (err) {
@@ -6617,7 +6804,7 @@ var manage_workspace_default = _template("n", (input) => {
6617
6804
  setTimeout(() => loadProcs(void 0), 500);
6618
6805
  }, "n5", $scope0_id);
6619
6806
  const titleId = _id();
6620
- _html(`<div${_attr_class("_bz")} role=region${_attr("aria-labelledby", titleId)}><div${_attr_class("_bA")}><div${_attr_class(content)}>`);
6807
+ _html(`<div${_attr_class("_bi")} role=region${_attr("aria-labelledby", titleId)}><div${_attr_class("_bj")}><div${_attr_class(content)}>`);
6621
6808
  _set_serialize_reason(30);
6622
6809
  const $childScope = _peek_scope_id();
6623
6810
  page_head_default({
@@ -6667,22 +6854,22 @@ var manage_workspace_default = _template("n", (input) => {
6667
6854
  _if(() => {
6668
6855
  if (pendingAction && actionStep) {
6669
6856
  const $scope7_id = _scope_id();
6670
- _html(`<p${_attr_class("_bi")}><span${_attr_class("_F")}></span><!>${_escape(actionStep)}${_el_resume($scope7_id, "c")}</p>`);
6857
+ _html(`<p${_attr_class("_br")}><span${_attr_class("_F")}></span><!>${_escape(actionStep)}${_el_resume($scope7_id, "c")}</p>`);
6671
6858
  writeScope($scope7_id, {});
6672
6859
  return 0;
6673
6860
  }
6674
6861
  }, $scope0_id, "f", 1, 1, 1, 0, 1);
6675
- _html(`<section${_attr_class("_bj")}><div${_attr_class("_bk")}><h2${_attr_class("_by")}>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)}>`);
6862
+ _html(`<section${_attr_class("_bs")}><div${_attr_class("_bt")}><h2${_attr_class("_bH")}>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)}>`);
6676
6863
  _set_serialize_reason(1);
6677
6864
  const $childScope2 = _peek_scope_id();
6678
6865
  icon_refresh_default({
6679
6866
  size: 14,
6680
6867
  class: catalogRefreshing && "_E"
6681
6868
  });
6682
- _html(`</button>${_el_resume($scope0_id, "m")}</div><ul${_attr_class("_bm")}>`);
6869
+ _html(`</button>${_el_resume($scope0_id, "m")}</div><ul${_attr_class("_bv")}>`);
6683
6870
  _for_of(ws.repos, (row) => {
6684
6871
  const $scope1_id = _scope_id();
6685
- _html(`<li${_attr_class("_bo")}><div${_attr_class("_bp")}><span${_attr_class(["_bq", "_x"])}>${_escape(row.worktree)}${_el_resume($scope1_id, "d")}/</span><span${_attr_class("_br")}><a${_attr_class(["_bs", "_dq"])}${_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")}`);
6872
+ _html(`<li${_attr_class("_bx")}><div${_attr_class("_by")}><span${_attr_class(["_bz", "_x"])}>${_escape(row.worktree)}${_el_resume($scope1_id, "d")}/</span><span${_attr_class("_bA")}><a${_attr_class(["_bB", "_dq"])}${_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")}`);
6686
6873
  _if(() => {
6687
6874
  if (row.base_branch !== row.default_branch) {
6688
6875
  const $scope12_id = _scope_id();
@@ -6701,7 +6888,7 @@ var manage_workspace_default = _template("n", (input) => {
6701
6888
  } else {
6702
6889
  const $scope6_id = _scope_id();
6703
6890
  _html(`<button${_attr_class([
6704
- "_bt",
6891
+ "_bC",
6705
6892
  "_2",
6706
6893
  "_3",
6707
6894
  { ["_q"]: confirmingRemove === row.full_name }
@@ -6734,14 +6921,14 @@ var manage_workspace_default = _template("n", (input) => {
6734
6921
  }, "full_name", $scope0_id, "p", 1, 1, 1, 0, 1);
6735
6922
  _for_of([...busy].filter((n) => !inWorkspace.has(n)), (name) => {
6736
6923
  const $scope16_id = _scope_id();
6737
- _html(`<li${_attr_class(["_bo", "_bn"])}><span${_attr_class("_F")}></span><div${_attr_class("_bp")}><span${_attr_class("_bs")}>Adding <!>${_escape(name)}${_el_resume($scope16_id, "e")}…</span></div></li>`);
6924
+ _html(`<li${_attr_class(["_bx", "_bw"])}><span${_attr_class("_F")}></span><div${_attr_class("_by")}><span${_attr_class("_bB")}>Adding <!>${_escape(name)}${_el_resume($scope16_id, "e")}…</span></div></li>`);
6738
6925
  writeScope($scope16_id, {});
6739
6926
  }, (n) => n, $scope0_id, "q", 1, 1, 1, 0, 1);
6740
6927
  _html("</ul>");
6741
6928
  _if(() => {
6742
6929
  if (!ws.repos.length && !busy.size) {
6743
6930
  const $scope17_id = _scope_id();
6744
- _html(`<p${_attr_class("_bu")}>No repos yet. Search below to add one.</p>`);
6931
+ _html(`<p${_attr_class("_bD")}>No repos yet. Search below to add one.</p>`);
6745
6932
  writeScope($scope17_id, {});
6746
6933
  return 0;
6747
6934
  }
@@ -6750,8 +6937,8 @@ var manage_workspace_default = _template("n", (input) => {
6750
6937
  const $childScope3 = _peek_scope_id();
6751
6938
  let refreshCatalog = repo_picker_default({
6752
6939
  exclude: inWorkspace,
6753
- onPick: _resume(function(name, baseBranch) {
6754
- addRepo(name, baseBranch);
6940
+ onPick: _resume(function(name, baseBranch, fork) {
6941
+ addRepo(name, baseBranch, fork);
6755
6942
  }, "n8", $scope0_id),
6756
6943
  onError: _resume(function(message) {
6757
6944
  error = message;
@@ -6766,14 +6953,14 @@ var manage_workspace_default = _template("n", (input) => {
6766
6953
  _if(() => {
6767
6954
  if (running.length) {
6768
6955
  const $scope9_id = _scope_id();
6769
- _html(`<section${_attr_class("_bj")}><div${_attr_class("_bk")}><h2${_attr_class("_by")}>Running</h2><span${_attr_class(sectionCount)}>${_escape(running.length)}${_el_resume($scope9_id, "e")}</span></div><ul${_attr_class("_bm")}>`);
6956
+ _html(`<section${_attr_class("_bs")}><div${_attr_class("_bt")}><h2${_attr_class("_bH")}>Running</h2><span${_attr_class(sectionCount)}>${_escape(running.length)}${_el_resume($scope9_id, "e")}</span></div><ul${_attr_class("_bv")}>`);
6770
6957
  _for_of(running, (p) => {
6771
6958
  const $scope10_id = _scope_id();
6772
- _html(`<li${_attr_class("_bo")}><div${_attr_class("_bp")}${_attr("title", p.args)}><span${_attr_class(["_bq", "_x"])}>${_escape(p.cmd)}${_el_resume($scope10_id, "d")}</span>`);
6959
+ _html(`<li${_attr_class("_bx")}><div${_attr_class("_by")}${_attr("title", p.args)}><span${_attr_class(["_bz", "_x"])}>${_escape(p.cmd)}${_el_resume($scope10_id, "d")}</span>`);
6773
6960
  _if(() => {
6774
6961
  if (p.ports.length) {
6775
6962
  const $scope18_id = _scope_id();
6776
- _html(`<span${_attr_class("_br")}>`);
6963
+ _html(`<span${_attr_class("_bA")}>`);
6777
6964
  _for_of(p.ports, (port) => {
6778
6965
  const $scope19_id = _scope_id();
6779
6966
  _html(`<button${_attr_class(["_s", "_dr"])}${_attr("title", `Open http://${typeof location === "undefined" ? "localhost" : location.hostname}:${port}`)}>:<!>${_escape(port)}${_el_resume($scope19_id, "b")}</button>${_el_resume($scope19_id, "a")}`);
@@ -6784,7 +6971,7 @@ var manage_workspace_default = _template("n", (input) => {
6784
6971
  return 0;
6785
6972
  }
6786
6973
  }, $scope10_id, "e", 1, 1, 1, 0, 1);
6787
- _html(`</div>${_el_resume($scope10_id, "b")}<button${_attr_class(["_bt", "_2"])} type=button${_attr("title", `Kill process ${p.pid}`)}${_attr("aria-label", `Kill process ${p.pid}`)}>`);
6974
+ _html(`</div>${_el_resume($scope10_id, "b")}<button${_attr_class(["_bC", "_2"])} type=button${_attr("title", `Kill process ${p.pid}`)}${_attr("aria-label", `Kill process ${p.pid}`)}>`);
6788
6975
  icon_xmark_default({ size: 14 });
6789
6976
  _html(`</button>${_el_resume($scope10_id, "f")}</li>`);
6790
6977
  _script($scope10_id, "n16");
@@ -6798,7 +6985,7 @@ var manage_workspace_default = _template("n", (input) => {
6798
6985
  return 0;
6799
6986
  }
6800
6987
  }, $scope0_id, "v", 1, 1, 1, 0, 1);
6801
- _html(`<section${_attr_class(["_bj", "_ds"])}><div${_attr_class("_bk")}><h2${_attr_class("_by")}>Workspace</h2></div><div${_attr_class("_dt")}>`);
6988
+ _html(`<section${_attr_class(["_bs", "_ds"])}><div${_attr_class("_bt")}><h2${_attr_class("_bH")}>Workspace</h2></div><div${_attr_class("_dt")}>`);
6802
6989
  _if(() => {
6803
6990
  if (ws.status === "active") {
6804
6991
  const $scope4_id = _scope_id();
@@ -6899,15 +7086,15 @@ var term_find_default = _template("y", (input) => {
6899
7086
  const canStep = hasQuery && open;
6900
7087
  const keybar = input.placement === "keybar";
6901
7088
  _html(`<div${_attr_class([
6902
- "_fd",
6903
- keybar ? "_ff" : "_fe",
6904
- !open && "_fh"
6905
- ])} aria-hidden=${open ? "false" : "true"}><div${_attr_class(["_e9", keybar ? "_fg" : "_fa"])}><input${_attr_input_value($scope0_id, "c", query, _resume(function(v) {
7089
+ "_fy",
7090
+ keybar ? "_fA" : "_fz",
7091
+ !open && "_fC"
7092
+ ])} aria-hidden=${open ? "false" : "true"}><div${_attr_class(["_ft", keybar ? "_fB" : "_fv"])}><input${_attr_input_value($scope0_id, "c", query, _resume(function(v) {
6906
7093
  if (!open) return;
6907
7094
  query = v;
6908
7095
  live.query = v;
6909
7096
  run(0);
6910
- }, "y0", $scope0_id))}${_attr_class([findInput, keybar && "_fi"])} 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 && "_fj"])} title="Previous match"${_attr("disabled", !canStep)} tabindex=${open ? "0" : "-1"}>↑</button>${_el_resume($scope0_id, "d")}<button type=button${_attr_class([findIconBtn, keybar && "_fj"])} title="Next match"${_attr("disabled", !canStep)} tabindex=${open ? "0" : "-1"}>↓</button>${_el_resume($scope0_id, "e")}<button type=button${_attr_class([findIconBtn, keybar && "_fj"])} title="Close find" tabindex=${open ? "0" : "-1"}>`);
7097
+ }, "y0", $scope0_id))}${_attr_class([findInput, keybar && "_fD"])} 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 && "_fE"])} title="Previous match"${_attr("disabled", !canStep)} tabindex=${open ? "0" : "-1"}>↑</button>${_el_resume($scope0_id, "d")}<button type=button${_attr_class([findIconBtn, keybar && "_fE"])} title="Next match"${_attr("disabled", !canStep)} tabindex=${open ? "0" : "-1"}>↓</button>${_el_resume($scope0_id, "e")}<button type=button${_attr_class([findIconBtn, keybar && "_fE"])} title="Close find" tabindex=${open ? "0" : "-1"}>`);
6911
7098
  icon_xmark_default({ size: 14 });
6912
7099
  _html(`</button>${_el_resume($scope0_id, "f")}</div>${_el_resume($scope0_id, "b", _serialize_guard($scope0_reason, 2))}</div>${_el_resume($scope0_id, "a")}`);
6913
7100
  _script($scope0_id, "y4");
@@ -7181,7 +7368,7 @@ var term_default = _template("z", (input) => {
7181
7368
  trapOpen = true;
7182
7369
  }
7183
7370
  }, "z14", $scope0_id);
7184
- _html(`<div${_attr("hidden", !onTermPage)}${_attr_class("_dS")}><div${_attr_class("_dT")}></div>${_el_resume($scope0_id, "b")}`);
7371
+ _html(`<div${_attr("hidden", !onTermPage)}${_attr_class("_dY")}><div${_attr_class("_dZ")}></div>${_el_resume($scope0_id, "b")}`);
7185
7372
  _if(() => {
7186
7373
  if (findOpen) {
7187
7374
  const $scope12_id = _scope_id();
@@ -7208,7 +7395,7 @@ var term_default = _template("z", (input) => {
7208
7395
  _if(() => {
7209
7396
  if (uploading) {
7210
7397
  const $scope19_id = _scope_id();
7211
- _html(`<div${_attr_class("_dZ")}>uploading…</div>`);
7398
+ _html(`<div${_attr_class("_d5")}>uploading…</div>`);
7212
7399
  writeScope($scope19_id, {});
7213
7400
  return 0;
7214
7401
  }
@@ -7216,7 +7403,7 @@ var term_default = _template("z", (input) => {
7216
7403
  _if(() => {
7217
7404
  if (copiedFlash) {
7218
7405
  const $scope20_id = _scope_id();
7219
- _html(`<div${_attr_class("_dY")}>Copied</div>`);
7406
+ _html(`<div${_attr_class("_d4")}>Copied</div>`);
7220
7407
  writeScope($scope20_id, {});
7221
7408
  return 0;
7222
7409
  }
@@ -7225,7 +7412,7 @@ var term_default = _template("z", (input) => {
7225
7412
  _if(() => {
7226
7413
  if (trapOpen) {
7227
7414
  const $scope11_id = _scope_id();
7228
- _html(`<div${_attr_class("_d0")}><div${_attr_class("_d1")}><p${_attr_class("_ev")}>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")}`);
7415
+ _html(`<div${_attr_class("_d6")}><div${_attr_class("_d7")}><p${_attr_class("_eB")}>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")}`);
7229
7416
  _script($scope11_id, "z25");
7230
7417
  _script($scope11_id, "z26");
7231
7418
  writeScope($scope11_id, {});
@@ -7328,7 +7515,7 @@ var work_view_default = _template("D", (input) => {
7328
7515
  let DiffView = null;
7329
7516
  const loadDiffView = _resume(() => {
7330
7517
  if (DiffView) return;
7331
- import("./_BOcMB3Se.js").then((m) => {
7518
+ import("./_BDBtGsdY.js").then((m) => {
7332
7519
  DiffView = m.default;
7333
7520
  });
7334
7521
  }, "D6", $scope0_id);
@@ -7514,28 +7701,29 @@ var work_view_default = _template("D", (input) => {
7514
7701
  toggleDiff();
7515
7702
  }
7516
7703
  }, "D21", $scope0_id);
7517
- _html(`<div${_attr_class(["_b1", {
7518
- ["_bZ"]: view === "nav",
7519
- ["_b0"]: !input.active
7520
- }])}><div${_attr_class("_b2")}>`);
7704
+ _html(`<div${_attr_class(["_b2", {
7705
+ ["_b0"]: view === "nav",
7706
+ ["_b1"]: !input.active
7707
+ }])}><div${_attr_class("_b3")}>`);
7521
7708
  _set_serialize_reason({
7522
7709
  0: _serialize_guard($scope0_reason, 0),
7523
- 1: _serialize_guard($scope0_reason, 2),
7524
- 2: _serialize_guard($scope0_reason, 3),
7525
- 3: $sg__input_workspace,
7526
- 4: 1,
7527
- 6: 1,
7528
- 8: $sg__input_allWorkspaces,
7529
- 9: _serialize_guard($scope0_reason, 7),
7530
- 10: _serialize_guard($scope0_reason, 12),
7531
- 11: _serialize_guard($scope0_reason, 11),
7532
- 12: _serialize_guard($scope0_reason, 13),
7533
- 13: 1,
7534
- 14: $sg__input_agents,
7535
- 15: 1,
7710
+ 1: 1,
7711
+ 2: _serialize_guard($scope0_reason, 2),
7712
+ 3: _serialize_guard($scope0_reason, 3),
7713
+ 4: $sg__input_workspace,
7714
+ 5: 1,
7715
+ 7: 1,
7716
+ 9: $sg__input_allWorkspaces,
7717
+ 10: _serialize_guard($scope0_reason, 7),
7718
+ 11: _serialize_guard($scope0_reason, 12),
7719
+ 12: _serialize_guard($scope0_reason, 11),
7720
+ 13: _serialize_guard($scope0_reason, 13),
7721
+ 14: 1,
7722
+ 15: $sg__input_agents,
7536
7723
  16: 1,
7537
7724
  17: 1,
7538
- 18: 1
7725
+ 18: 1,
7726
+ 19: 1
7539
7727
  });
7540
7728
  const $childScope = _peek_scope_id();
7541
7729
  side_nav_default({
@@ -7578,7 +7766,7 @@ var work_view_default = _template("D", (input) => {
7578
7766
  openDiff(pr);
7579
7767
  }, "D29", $scope0_id)
7580
7768
  });
7581
- _html(`</div><div${_attr_class("_b3")}>`);
7769
+ _html(`</div><div${_attr_class("_b4")}>`);
7582
7770
  _if(() => {
7583
7771
  if (error) {
7584
7772
  const $scope8_id = _scope_id();
@@ -7601,7 +7789,7 @@ var work_view_default = _template("D", (input) => {
7601
7789
  _if(() => {
7602
7790
  if (diffMounted && DiffView) {
7603
7791
  const $scope1_id = _scope_id();
7604
- _html(`<div${_attr_class(["_b4", { ["_b5"]: view === "diff" }])}>`);
7792
+ _html(`<div${_attr_class(["_b5", { ["_b6"]: view === "diff" }])}>`);
7605
7793
  _dynamic_tag($scope1_id, "b", DiffView, {
7606
7794
  workspaceId: ws.id,
7607
7795
  workspaceBranch: ws.branch,
@@ -7641,7 +7829,7 @@ var work_view_default = _template("D", (input) => {
7641
7829
  _if(() => {
7642
7830
  if (manageMounted) {
7643
7831
  const $scope2_id = _scope_id();
7644
- _html(`<div${_attr_class(["_b4", { ["_b5"]: view === "manage" }])}>`);
7832
+ _html(`<div${_attr_class(["_b5", { ["_b6"]: view === "manage" }])}>`);
7645
7833
  _set_serialize_reason(_serialize_guard($scope0_reason, 16));
7646
7834
  const $childScope2 = _peek_scope_id();
7647
7835
  manage_workspace_default({
@@ -7664,7 +7852,7 @@ var work_view_default = _template("D", (input) => {
7664
7852
  _if(() => {
7665
7853
  if (settingsMounted) {
7666
7854
  const $scope3_id = _scope_id();
7667
- _html(`<div${_attr_class(["_b4", { ["_b5"]: view === "settings" }])}>`);
7855
+ _html(`<div${_attr_class(["_b5", { ["_b6"]: view === "settings" }])}>`);
7668
7856
  _set_serialize_reason({
7669
7857
  0: _serialize_guard($scope0_reason, 1),
7670
7858
  1: $sg__input_workspace,
@@ -7704,7 +7892,7 @@ var work_view_default = _template("D", (input) => {
7704
7892
  _if(() => {
7705
7893
  if (newMounted) {
7706
7894
  const $scope4_id = _scope_id();
7707
- _html(`<div${_attr_class(["_b4", { ["_b5"]: view === "new" }])}>`);
7895
+ _html(`<div${_attr_class(["_b5", { ["_b6"]: view === "new" }])}>`);
7708
7896
  _set_serialize_reason({
7709
7897
  0: 1,
7710
7898
  1: $sg__input_allWorkspaces,
@@ -7731,13 +7919,13 @@ var work_view_default = _template("D", (input) => {
7731
7919
  return 0;
7732
7920
  }
7733
7921
  }, $scope0_id, "i", 1, 1, 1, 0, 1);
7734
- _html(`<div${_attr_class(["_b7", { ["_b6"]: view !== "term" }])}>`);
7922
+ _html(`<div${_attr_class(["_b8", { ["_b7"]: view !== "term" }])}>`);
7735
7923
  _if(() => {
7736
7924
  if (shownSessions) {
7737
7925
  const $scope5_id = _scope_id();
7738
7926
  _for_of(shownSessions, (s) => {
7739
7927
  const $scope6_id = _scope_id();
7740
- _html(`<div${_attr_class(["_b8", { ["_b9"]: s.id === curTab }])}>`);
7928
+ _html(`<div${_attr_class(["_b9", { ["_b_"]: s.id === curTab }])}>`);
7741
7929
  _set_serialize_reason({
7742
7930
  0: 1,
7743
7931
  1: 1,
@@ -7796,7 +7984,7 @@ var work_view_default = _template("D", (input) => {
7796
7984
  _if(() => {
7797
7985
  if (!shownSessions.length && view === "term") {
7798
7986
  const $scope7_id = _scope_id();
7799
- _html(`<div${_attr_class("_bv")}><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>`);
7987
+ _html(`<div${_attr_class("_bE")}><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>`);
7800
7988
  _script($scope7_id, "D49");
7801
7989
  _subscribe($spawning__closures, _subscribe($si__input_preferred && $input_preferred__closures, writeScope($scope7_id, {})));
7802
7990
  return 0;
@@ -7806,7 +7994,7 @@ var work_view_default = _template("D", (input) => {
7806
7994
  return 0;
7807
7995
  } else {
7808
7996
  const $scope10_id = _scope_id();
7809
- _html(`<p${_attr_class("_bv")}>Loading sessions…</p>`);
7997
+ _html(`<p${_attr_class("_bE")}>Loading sessions…</p>`);
7810
7998
  writeScope($scope10_id, {});
7811
7999
  return 1;
7812
8000
  }
@@ -10026,7 +10214,8 @@ var CreateWorkspace = /* @__PURE__ */ object({
10026
10214
  name: /* @__PURE__ */ pipe(/* @__PURE__ */ string(), /* @__PURE__ */ trim(), /* @__PURE__ */ minLength(1)),
10027
10215
  repos: /* @__PURE__ */ array(/* @__PURE__ */ object({
10028
10216
  fullName: /* @__PURE__ */ pipe(/* @__PURE__ */ string(), /* @__PURE__ */ regex(/^(?:[\w.-]+\/)?[\w.-]+\/[\w.-]+$/)),
10029
- baseBranch: /* @__PURE__ */ optional(/* @__PURE__ */ string())
10217
+ baseBranch: /* @__PURE__ */ optional(/* @__PURE__ */ string()),
10218
+ fork: /* @__PURE__ */ optional(/* @__PURE__ */ boolean())
10030
10219
  })),
10031
10220
  opId: /* @__PURE__ */ optional(/* @__PURE__ */ pipe(/* @__PURE__ */ string(), /* @__PURE__ */ maxLength(40)))
10032
10221
  });
@@ -10687,13 +10876,14 @@ function post34(context) {
10687
10876
  //#region src/routes/api/workspaces/$id/repos/+handler.ts
10688
10877
  var AddRepo = /* @__PURE__ */ object({
10689
10878
  fullName: /* @__PURE__ */ pipe(/* @__PURE__ */ string(), /* @__PURE__ */ regex(/^(?:[\w.-]+\/)?[\w.-]+\/[\w.-]+$/)),
10690
- baseBranch: /* @__PURE__ */ optional(/* @__PURE__ */ string())
10879
+ baseBranch: /* @__PURE__ */ optional(/* @__PURE__ */ string()),
10880
+ fork: /* @__PURE__ */ optional(/* @__PURE__ */ boolean())
10691
10881
  });
10692
10882
  //#endregion
10693
10883
  //#region __marko-run__api.workspaces.$.repos.js
10694
10884
  var postHandler$2 = normalizeHandler(Run.POST({ json: AddRepo }, async (ctx) => {
10695
10885
  const body = await readBody(ctx);
10696
- return Response.json(await withProgressOp(ctx.params.id, () => addRepo$1(ctx.params.id, body.fullName, body.baseBranch)));
10886
+ return Response.json(await withProgressOp(ctx.params.id, () => addRepo$1(ctx.params.id, body.fullName, body.baseBranch, body.fork)));
10697
10887
  }), "POST");
10698
10888
  var post35_options = mergeOptions(mware11, mware36, postHandler$2);
10699
10889
  function post35(context) {
@@ -15302,6 +15492,22 @@ var FLUSH_MS = 16;
15302
15492
  /** Unacked websocket bytes beyond which the pty is paused instead of
15303
15493
  * buffering more output for a client that isn't draining. */
15304
15494
  var SEND_HIGH_WATER = 1 << 20;
15495
+ /** Protocol-level ping cadence. A quiet pane (agent idle, nobody typing)
15496
+ * sends nothing for minutes, and a tunnel / NAT / proxy idle timeout then
15497
+ * drops the socket half-open: the next keystrokes vanish into a dead TCP
15498
+ * connection until the browser notices and reconnects — felt as "typing
15499
+ * went laggy, then fixed itself". Pings are traffic to every intermediary
15500
+ * and the browser answers them without involving the page; a missed pong
15501
+ * terminates here so the client's onclose fires and it reconnects at once
15502
+ * instead of waiting out the half-open socket. The events bus does the same
15503
+ * at the app level (events-ws.ts). */
15504
+ var PING_MS$1 = 15e3;
15505
+ /** Frames at least this large are deflated. Small frames — keystroke echo,
15506
+ * a copy-mode scroll line (~0.4 KB) — skip zlib so their latency is
15507
+ * untouched; the win is agent TUI repaints of several KB, which shrink
15508
+ * 5–20× on the wire. Few sockets live at once, so per-socket zlib state is
15509
+ * not the concern ws's docs raise for large fleets. */
15510
+ var DEFLATE_THRESHOLD = 512;
15305
15511
  /** Which dims each session's tmux window was last forced to — lets the
15306
15512
  * input path skip the tmux exec when this client already holds the size.
15307
15513
  * A memo, not the truth: the window can move under it (another client, a
@@ -15338,7 +15544,10 @@ function trackViewer(sessionId, delta) {
15338
15544
  function attachTermServer(server) {
15339
15545
  ensureTmuxServer();
15340
15546
  detachStaleClients();
15341
- const wss = new import_websocket_server.default({ noServer: true });
15547
+ const wss = new import_websocket_server.default({
15548
+ noServer: true,
15549
+ perMessageDeflate: { threshold: DEFLATE_THRESHOLD }
15550
+ });
15342
15551
  server.on("upgrade", (req, socket, head) => {
15343
15552
  if (!(req.url || "").startsWith("/term/")) return;
15344
15553
  wss.handleUpgrade(req, socket, head, (ws) => wss.emit("connection", ws, req));
@@ -15498,8 +15707,19 @@ async function handleTermConnection(ws, req) {
15498
15707
  }
15499
15708
  }
15500
15709
  });
15710
+ let pongSeen = true;
15711
+ ws.on("pong", () => {
15712
+ pongSeen = true;
15713
+ });
15714
+ const ping = setInterval(() => {
15715
+ if (ws.readyState !== ws.OPEN) return;
15716
+ if (!pongSeen) return ws.terminate();
15717
+ pongSeen = false;
15718
+ ws.ping();
15719
+ }, PING_MS$1);
15501
15720
  ws.on("close", () => {
15502
15721
  if (visible) trackViewer(session.id, -1);
15722
+ clearInterval(ping);
15503
15723
  clearTimeout(flushTimer);
15504
15724
  proc.kill();
15505
15725
  });
@@ -15662,4 +15882,4 @@ server.listen(port, () => {
15662
15882
  //#endregion
15663
15883
  export {};
15664
15884
 
15665
- ;var __MARKO_MANIFEST__={"ibphXY4":{"block":[2,"stylesheet#/assets/app-page-CdVETHL-.css",6,"<link",0," rel=\"stylesheet\" crossorigin href=\"",1,"assets/app-page-CdVETHL-.css\"",">"],"defer":[2,"/assets/w._-mX2iXBHC.js",6,"<script",0," async type=\"module\" crossorigin src=\"",1,"assets/w._-mX2iXBHC.js\"","></script>",2,"modulepreload#/assets/_C3n-9E2u.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_C3n-9E2u.js\"",">"]},"ZLT8joi":{"block":[2,"stylesheet#/assets/app-page-CdVETHL-.css",6,"<link",0," rel=\"stylesheet\" crossorigin href=\"",1,"assets/app-page-CdVETHL-.css\"",">"],"defer":[2,"/assets/new-mX2iXBHC.js",6,"<script",0," async type=\"module\" crossorigin src=\"",1,"assets/new-mX2iXBHC.js\"","></script>",2,"modulepreload#/assets/_C3n-9E2u.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_C3n-9E2u.js\"",">"]},"AA0T2xt":{"block":[2,"stylesheet#/assets/app-page-CdVETHL-.css",6,"<link",0," rel=\"stylesheet\" crossorigin href=\"",1,"assets/app-page-CdVETHL-.css\"",">"],"defer":[2,"/assets/settings-mX2iXBHC.js",6,"<script",0," async type=\"module\" crossorigin src=\"",1,"assets/settings-mX2iXBHC.js\"","></script>",2,"modulepreload#/assets/_C3n-9E2u.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_C3n-9E2u.js\"",">"]},"LH2lXAg":{"block":[2,"stylesheet#/assets/app-page-CdVETHL-.css",6,"<link",0," rel=\"stylesheet\" crossorigin href=\"",1,"assets/app-page-CdVETHL-.css\"",">"],"defer":[2,"/assets/w-mX2iXBHC.js",6,"<script",0," async type=\"module\" crossorigin src=\"",1,"assets/w-mX2iXBHC.js\"","></script>",2,"modulepreload#/assets/_C3n-9E2u.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_C3n-9E2u.js\"",">"]},"T$MNY0k":{"block":[2,"stylesheet#/assets/app-page-CdVETHL-.css",6,"<link",0," rel=\"stylesheet\" crossorigin href=\"",1,"assets/app-page-CdVETHL-.css\"",">"],"defer":[2,"/assets/w._-DelVj4P_.js",6,"<script",0," async type=\"module\" crossorigin src=\"",1,"assets/w._-DelVj4P_.js\"","></script>",2,"modulepreload#/assets/_C3n-9E2u.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_C3n-9E2u.js\"",">"]}};
15885
+ ;var __MARKO_MANIFEST__={"LH2lXAg":{"block":[2,"stylesheet#/assets/app-page-D2MGNs24.css",6,"<link",0," rel=\"stylesheet\" crossorigin href=\"",1,"assets/app-page-D2MGNs24.css\"",">"],"defer":[2,"/assets/w-BAusPvMv.js",6,"<script",0," async type=\"module\" crossorigin src=\"",1,"assets/w-BAusPvMv.js\"","></script>",2,"modulepreload#/assets/_BW-Z7z3K.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_BW-Z7z3K.js\"",">"]},"T$MNY0k":{"block":[2,"stylesheet#/assets/app-page-D2MGNs24.css",6,"<link",0," rel=\"stylesheet\" crossorigin href=\"",1,"assets/app-page-D2MGNs24.css\"",">"],"defer":[2,"/assets/w._-BAusPvMv.js",6,"<script",0," async type=\"module\" crossorigin src=\"",1,"assets/w._-BAusPvMv.js\"","></script>",2,"modulepreload#/assets/_BW-Z7z3K.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_BW-Z7z3K.js\"",">"]},"AA0T2xt":{"block":[2,"stylesheet#/assets/app-page-D2MGNs24.css",6,"<link",0," rel=\"stylesheet\" crossorigin href=\"",1,"assets/app-page-D2MGNs24.css\"",">"],"defer":[2,"/assets/settings-BAusPvMv.js",6,"<script",0," async type=\"module\" crossorigin src=\"",1,"assets/settings-BAusPvMv.js\"","></script>",2,"modulepreload#/assets/_BW-Z7z3K.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_BW-Z7z3K.js\"",">"]},"ibphXY4":{"block":[2,"stylesheet#/assets/app-page-D2MGNs24.css",6,"<link",0," rel=\"stylesheet\" crossorigin href=\"",1,"assets/app-page-D2MGNs24.css\"",">"],"defer":[2,"/assets/w._-CuEUWcak.js",6,"<script",0," async type=\"module\" crossorigin src=\"",1,"assets/w._-CuEUWcak.js\"","></script>",2,"modulepreload#/assets/_BW-Z7z3K.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_BW-Z7z3K.js\"",">"]},"ZLT8joi":{"block":[2,"stylesheet#/assets/app-page-D2MGNs24.css",6,"<link",0," rel=\"stylesheet\" crossorigin href=\"",1,"assets/app-page-D2MGNs24.css\"",">"],"defer":[2,"/assets/new-BAusPvMv.js",6,"<script",0," async type=\"module\" crossorigin src=\"",1,"assets/new-BAusPvMv.js\"","></script>",2,"modulepreload#/assets/_BW-Z7z3K.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_BW-Z7z3K.js\"",">"]}};