@dylanpiercey/work 0.0.136 → 0.0.138

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 (251) hide show
  1. package/README.md +4 -3
  2. package/bin/work.mjs +4 -9
  3. package/dist/{_BK02MZ12.js → _BU4viilP.js} +89 -86
  4. package/dist/{_Dij_y0Qt.js → _NJRrlQSH.js} +60 -51
  5. package/dist/index.mjs +4435 -2138
  6. package/dist/public/assets/{_CsOBkWtg.js → _3OKw54FH.js} +1 -1
  7. package/dist/public/assets/_3OKw54FH.js.br +0 -0
  8. package/dist/public/assets/{_D-60G6PB.js → _AiXBpuzB.js} +1 -1
  9. package/dist/public/assets/_AiXBpuzB.js.br +0 -0
  10. package/dist/public/assets/{_BWlSj6_a.js → _B3XWXwYh.js} +1 -1
  11. package/dist/public/assets/_B3XWXwYh.js.br +0 -0
  12. package/dist/public/assets/{_BTDB_2bo2.js → _B6Kqixfk2.js} +1 -1
  13. package/dist/public/assets/{_DP8d9Rm82.js → _B7PLqair2.js} +1 -1
  14. package/dist/public/assets/_B7PLqair2.js.br +0 -0
  15. package/dist/public/assets/{_CXqVTOO2.js → _B9-bF7w4.js} +1 -1
  16. package/dist/public/assets/_B9-bF7w4.js.br +0 -0
  17. package/dist/public/assets/{_kpDIvGaK2.js → _B9xv7qS42.js} +1 -1
  18. package/dist/public/assets/_B9xv7qS42.js.br +0 -0
  19. package/dist/public/assets/{_mmCP3JhZ2.js → _BEQN3C3b2.js} +1 -1
  20. package/dist/public/assets/_BEQN3C3b2.js.br +0 -0
  21. package/dist/public/assets/{_BNqcBpdG.js → _BEzGQSOa.js} +1 -1
  22. package/dist/public/assets/_BEzGQSOa.js.br +0 -0
  23. package/dist/public/assets/{_C9u5QhTJ.js → _BIwmkApM.js} +1 -1
  24. package/dist/public/assets/_BIwmkApM.js.br +0 -0
  25. package/dist/public/assets/{_BDjiDP3B2.js → _BSISAs7U2.js} +1 -1
  26. package/dist/public/assets/_BSISAs7U2.js.br +0 -0
  27. package/dist/public/assets/{_CQlyENQv.js → _BTXpXWX_.js} +1 -1
  28. package/dist/public/assets/_BTXpXWX_.js.br +0 -0
  29. package/dist/public/assets/{_CHnGPLlM.js → _BWxRtsYe.js} +1 -1
  30. package/dist/public/assets/_BWxRtsYe.js.br +0 -0
  31. package/dist/public/assets/{_DRkgmd-K.js → _Ba_fRTxl.js} +1 -1
  32. package/dist/public/assets/_Ba_fRTxl.js.br +0 -0
  33. package/dist/public/assets/{_DKR-1kBA.js → _BcpUdCHG.js} +1 -1
  34. package/dist/public/assets/_BcpUdCHG.js.br +0 -0
  35. package/dist/public/assets/{_BzuwUpKk.js → _Bd-KABgY.js} +1 -1
  36. package/dist/public/assets/_Bd-KABgY.js.br +0 -0
  37. package/dist/public/assets/{_ChAgIrR9.js → _BmbR7-Sm.js} +1 -1
  38. package/dist/public/assets/_BmbR7-Sm.js.br +0 -0
  39. package/dist/public/assets/{_CD3YXc6f2.js → _BnB3kxXv2.js} +1 -1
  40. package/dist/public/assets/_BnB3kxXv2.js.br +0 -0
  41. package/dist/public/assets/{_BpJKkDCj.js → _Bo25KMr2.js} +1 -1
  42. package/dist/public/assets/_Bo25KMr2.js.br +0 -0
  43. package/dist/public/assets/{_oBGUMKKB.js → _Bpbf18vi.js} +1 -1
  44. package/dist/public/assets/_Bpbf18vi.js.br +0 -0
  45. package/dist/public/assets/{_BYPOMOy2.js → _BpidOAFS.js} +1 -1
  46. package/dist/public/assets/_BpidOAFS.js.br +0 -0
  47. package/dist/public/assets/{_Be3J1iRO2.js → _BrvuWmpM2.js} +1 -1
  48. package/dist/public/assets/_BrvuWmpM2.js.br +0 -0
  49. package/dist/public/assets/{_BlCeUm2u.js → _BvJf61W8.js} +1 -1
  50. package/dist/public/assets/_BvJf61W8.js.br +0 -0
  51. package/dist/public/assets/{_COfcrZiP2.js → _BysVGK9V2.js} +1 -1
  52. package/dist/public/assets/_BysVGK9V2.js.br +0 -0
  53. package/dist/public/assets/{_Chdds9cv2.js → _C4-Fa9cE2.js} +1 -1
  54. package/dist/public/assets/_C4-Fa9cE2.js.br +0 -0
  55. package/dist/public/assets/{_DGx9OQMw.js → _C5TRZT17.js} +1 -1
  56. package/dist/public/assets/{_Dnfz85Pu.js → _C8z0AqL9.js} +1 -1
  57. package/dist/public/assets/_C8z0AqL9.js.br +0 -0
  58. package/dist/public/assets/{_ByZqbMLP.js → _CDd7pldP.js} +1 -1
  59. package/dist/public/assets/_CDd7pldP.js.br +0 -0
  60. package/dist/public/assets/{_jdivam11.js → _CIL_tvto.js} +1 -1
  61. package/dist/public/assets/_CIL_tvto.js.br +0 -0
  62. package/dist/public/assets/{_D-FsNpg4.js → _CMWNil0b.js} +1 -1
  63. package/dist/public/assets/_CMWNil0b.js.br +0 -0
  64. package/dist/public/assets/{_CfrSaTy7.js → _CPQ8yLEU.js} +1 -1
  65. package/dist/public/assets/_CPQ8yLEU.js.br +0 -0
  66. package/dist/public/assets/{_BCxtKOcV2.js → _CPTI4WQL2.js} +1 -1
  67. package/dist/public/assets/_CPTI4WQL2.js.br +0 -0
  68. package/dist/public/assets/{_C1yp4V7m2.js → _CU93C2BH2.js} +1 -1
  69. package/dist/public/assets/_CU93C2BH2.js.br +0 -0
  70. package/dist/public/assets/{_BZyu3o5D.js → _CUgh4Geb.js} +1 -1
  71. package/dist/public/assets/_CUgh4Geb.js.br +0 -0
  72. package/dist/public/assets/{_s5ClmkTc2.js → _CUiuEswY2.js} +1 -1
  73. package/dist/public/assets/_CYNQgKbT.js +89 -0
  74. package/dist/public/assets/_CYNQgKbT.js.br +0 -0
  75. package/dist/public/assets/{_Dq6d0wjK.js → _CaX7kwGj.js} +1 -1
  76. package/dist/public/assets/_CaX7kwGj.js.br +0 -0
  77. package/dist/public/assets/{_C7kuy0Hr.js → _CanSxUih.js} +1 -1
  78. package/dist/public/assets/_CanSxUih.js.br +0 -0
  79. package/dist/public/assets/{_QGY4WJWh2.js → _Cl4_PEdC2.js} +1 -1
  80. package/dist/public/assets/_Cl4_PEdC2.js.br +0 -0
  81. package/dist/public/assets/{_BIJyc2mu.js → _CtoSA4u9.js} +1 -1
  82. package/dist/public/assets/_CtoSA4u9.js.br +0 -0
  83. package/dist/public/assets/{_Brj8aBq6.js → _Cv1rmZqs.js} +1 -1
  84. package/dist/public/assets/_Cv1rmZqs.js.br +0 -0
  85. package/dist/public/assets/{_gkSQEN3j.js → _CvFrnNxs.js} +1 -1
  86. package/dist/public/assets/_CvFrnNxs.js.br +0 -0
  87. package/dist/public/assets/{_DO-7Gb4y.js → _CxuGj9Kh.js} +1 -1
  88. package/dist/public/assets/_CxuGj9Kh.js.br +0 -0
  89. package/dist/public/assets/{_DnxV9O0v.js → _CyUsS-Ew.js} +1 -1
  90. package/dist/public/assets/_CyUsS-Ew.js.br +0 -0
  91. package/dist/public/assets/{_CyCu9hIz.js → _D0T5xgdm.js} +1 -1
  92. package/dist/public/assets/_D0T5xgdm.js.br +0 -0
  93. package/dist/public/assets/{_Dy7NWhyF.js → _D8uW-24S.js} +1 -1
  94. package/dist/public/assets/_D8uW-24S.js.br +0 -0
  95. package/dist/public/assets/{_B43InZo-2.js → _DClX-kzp2.js} +1 -1
  96. package/dist/public/assets/_DClX-kzp2.js.br +0 -0
  97. package/dist/public/assets/{_Bm1F7okr.js → _DE6OIuaj.js} +1 -1
  98. package/dist/public/assets/_DE6OIuaj.js.br +0 -0
  99. package/dist/public/assets/{_Bc3DNZHb2.js → _DReNRAce2.js} +1 -1
  100. package/dist/public/assets/_DReNRAce2.js.br +0 -0
  101. package/dist/public/assets/{_A8QLMyty.js → _DSR5YMpz.js} +1 -1
  102. package/dist/public/assets/_DSR5YMpz.js.br +0 -0
  103. package/dist/public/assets/{_WUnsxEQT.js → _DXu4guU2.js} +1 -1
  104. package/dist/public/assets/_DXu4guU2.js.br +0 -0
  105. package/dist/public/assets/{_0YzStON-.js → _DaXvCDxA.js} +1 -1
  106. package/dist/public/assets/_DaXvCDxA.js.br +0 -0
  107. package/dist/public/assets/{_Fi0bLwSJ2.js → _DaiUj3cu2.js} +1 -1
  108. package/dist/public/assets/_DaiUj3cu2.js.br +0 -0
  109. package/dist/public/assets/{_DkJrtVCy.js → _Dd1-18Hp.js} +1 -1
  110. package/dist/public/assets/_Dd1-18Hp.js.br +0 -0
  111. package/dist/public/assets/{_DVFmex8_2.js → _DffLVIPj2.js} +1 -1
  112. package/dist/public/assets/_DffLVIPj2.js.br +0 -0
  113. package/dist/public/assets/{_CBRAlnrZ2.js → _Dhua8ybj2.js} +1 -1
  114. package/dist/public/assets/_Dhua8ybj2.js.br +0 -0
  115. package/dist/public/assets/{_Bj8bMkJV.js → _DmgOfIwN.js} +1 -1
  116. package/dist/public/assets/_DmgOfIwN.js.br +0 -0
  117. package/dist/public/assets/{_CpD6oP7U.js → _Dml9mocl.js} +1 -1
  118. package/dist/public/assets/_Dml9mocl.js.br +0 -0
  119. package/dist/public/assets/{_D6pYwJbn.js → _DnuQIvTk.js} +1 -1
  120. package/dist/public/assets/_DnuQIvTk.js.br +0 -0
  121. package/dist/public/assets/{_Cmu2QxBE.js → _Dt9ju-f-.js} +1 -1
  122. package/dist/public/assets/_Dt9ju-f-.js.br +0 -0
  123. package/dist/public/assets/{_C59H4YUW2.js → _Dtcj4Vdb2.js} +1 -1
  124. package/dist/public/assets/_Dtcj4Vdb2.js.br +0 -0
  125. package/dist/public/assets/{_CR-S-3Of.js → _DwNwW4jm.js} +43 -43
  126. package/dist/public/assets/_DwNwW4jm.js.br +0 -0
  127. package/dist/public/assets/{_Buk6CY_J.js → _DwsYmrLF.js} +1 -1
  128. package/dist/public/assets/_DwsYmrLF.js.br +0 -0
  129. package/dist/public/assets/{_DU1Eqa25.js → _OIJzbHVo.js} +1 -1
  130. package/dist/public/assets/_OIJzbHVo.js.br +0 -0
  131. package/dist/public/assets/{_BDJpYszd2.js → _PcBwrdGV2.js} +1 -1
  132. package/dist/public/assets/_PcBwrdGV2.js.br +0 -0
  133. package/dist/public/assets/{_D5cZP2aA.js → _SSrroa0Z.js} +1 -1
  134. package/dist/public/assets/_SSrroa0Z.js.br +0 -0
  135. package/dist/public/assets/{_Drc85vGG2.js → _T8YOpcQj2.js} +1 -1
  136. package/dist/public/assets/_T8YOpcQj2.js.br +0 -0
  137. package/dist/public/assets/{_B4ftK7Yz.js → _Z4atEQ98.js} +1 -1
  138. package/dist/public/assets/_Z4atEQ98.js.br +0 -0
  139. package/dist/public/assets/{_Boz7xU3I2.js → _cvUAeKFs2.js} +1 -1
  140. package/dist/public/assets/_cvUAeKFs2.js.br +0 -0
  141. package/dist/public/assets/{_CNA3MQ5x2.js → _jOkJ6aek2.js} +1 -1
  142. package/dist/public/assets/_jOkJ6aek2.js.br +0 -0
  143. package/dist/public/assets/{_ZqBn14C0.js → _kDA0ZntT.js} +1 -1
  144. package/dist/public/assets/_kDA0ZntT.js.br +0 -0
  145. package/dist/public/assets/{_CTxKc7Va2.js → _n5HhfX_m2.js} +1 -1
  146. package/dist/public/assets/_n5HhfX_m2.js.br +0 -0
  147. package/dist/public/assets/{_BfqwMAq-.js → _pq7cZIB5.js} +1 -1
  148. package/dist/public/assets/_pq7cZIB5.js.br +0 -0
  149. package/dist/public/assets/{_DBPQFygQ.js → _quIdZaH6.js} +1 -1
  150. package/dist/public/assets/_quIdZaH6.js.br +0 -0
  151. package/dist/public/assets/{_Cryi3U1d.js → _vbrsGoKV.js} +1 -1
  152. package/dist/public/assets/_vbrsGoKV.js.br +0 -0
  153. package/dist/public/assets/{_BHfadGO2.js → _xEbKAoEJ.js} +1 -1
  154. package/dist/public/assets/_xEbKAoEJ.js.br +0 -0
  155. package/dist/public/assets/app-page-D0e78Fao.css +1 -0
  156. package/dist/public/assets/app-page-D0e78Fao.css.br +0 -0
  157. package/dist/public/assets/diff-view-Csph_Zzt.css +1 -0
  158. package/dist/public/assets/diff-view-Csph_Zzt.css.br +0 -0
  159. package/dist/public/assets/new-5LeFVg_7.js +1 -0
  160. package/dist/public/assets/settings-5LeFVg_7.js +1 -0
  161. package/dist/public/assets/w-5LeFVg_7.js +1 -0
  162. package/dist/public/assets/w._-5LeFVg_7.js +1 -0
  163. package/dist/public/assets/w._-CYXtcUyN.js +1 -0
  164. package/package.json +1 -1
  165. package/dist/_B1bgL2tH.js +0 -2
  166. package/dist/_BIxwPE98.js +0 -2
  167. package/dist/_BZpXh6Js.js +0 -352
  168. package/dist/_DwK89Lz-.js +0 -1792
  169. package/dist/public/assets/_0YzStON-.js.br +0 -0
  170. package/dist/public/assets/_A8QLMyty.js.br +0 -0
  171. package/dist/public/assets/_B43InZo-2.js.br +0 -0
  172. package/dist/public/assets/_B4ftK7Yz.js.br +0 -0
  173. package/dist/public/assets/_BCxtKOcV2.js.br +0 -0
  174. package/dist/public/assets/_BDJpYszd2.js.br +0 -0
  175. package/dist/public/assets/_BDjiDP3B2.js.br +0 -0
  176. package/dist/public/assets/_BHfadGO2.js.br +0 -0
  177. package/dist/public/assets/_BIJyc2mu.js.br +0 -0
  178. package/dist/public/assets/_BNqcBpdG.js.br +0 -0
  179. package/dist/public/assets/_BWlSj6_a.js.br +0 -0
  180. package/dist/public/assets/_BYPOMOy2.js.br +0 -0
  181. package/dist/public/assets/_BZyu3o5D.js.br +0 -0
  182. package/dist/public/assets/_Bc3DNZHb2.js.br +0 -0
  183. package/dist/public/assets/_Be3J1iRO2.js.br +0 -0
  184. package/dist/public/assets/_BfqwMAq-.js.br +0 -0
  185. package/dist/public/assets/_Bj8bMkJV.js.br +0 -0
  186. package/dist/public/assets/_Bk5mZP5h.js +0 -89
  187. package/dist/public/assets/_Bk5mZP5h.js.br +0 -0
  188. package/dist/public/assets/_BlCeUm2u.js.br +0 -0
  189. package/dist/public/assets/_Bm1F7okr.js.br +0 -0
  190. package/dist/public/assets/_Boz7xU3I2.js.br +0 -0
  191. package/dist/public/assets/_BpJKkDCj.js.br +0 -0
  192. package/dist/public/assets/_Brj8aBq6.js.br +0 -0
  193. package/dist/public/assets/_Buk6CY_J.js.br +0 -0
  194. package/dist/public/assets/_ByZqbMLP.js.br +0 -0
  195. package/dist/public/assets/_BzuwUpKk.js.br +0 -0
  196. package/dist/public/assets/_C1yp4V7m2.js.br +0 -0
  197. package/dist/public/assets/_C59H4YUW2.js.br +0 -0
  198. package/dist/public/assets/_C7kuy0Hr.js.br +0 -0
  199. package/dist/public/assets/_C9u5QhTJ.js.br +0 -0
  200. package/dist/public/assets/_CBRAlnrZ2.js.br +0 -0
  201. package/dist/public/assets/_CD3YXc6f2.js.br +0 -0
  202. package/dist/public/assets/_CHnGPLlM.js.br +0 -0
  203. package/dist/public/assets/_CNA3MQ5x2.js.br +0 -0
  204. package/dist/public/assets/_COfcrZiP2.js.br +0 -0
  205. package/dist/public/assets/_CQlyENQv.js.br +0 -0
  206. package/dist/public/assets/_CR-S-3Of.js.br +0 -0
  207. package/dist/public/assets/_CTxKc7Va2.js.br +0 -0
  208. package/dist/public/assets/_CXqVTOO2.js.br +0 -0
  209. package/dist/public/assets/_CfrSaTy7.js.br +0 -0
  210. package/dist/public/assets/_ChAgIrR9.js.br +0 -0
  211. package/dist/public/assets/_Chdds9cv2.js.br +0 -0
  212. package/dist/public/assets/_Cmu2QxBE.js.br +0 -0
  213. package/dist/public/assets/_CpD6oP7U.js.br +0 -0
  214. package/dist/public/assets/_Cryi3U1d.js.br +0 -0
  215. package/dist/public/assets/_CsOBkWtg.js.br +0 -0
  216. package/dist/public/assets/_CyCu9hIz.js.br +0 -0
  217. package/dist/public/assets/_D-60G6PB.js.br +0 -0
  218. package/dist/public/assets/_D-FsNpg4.js.br +0 -0
  219. package/dist/public/assets/_D5cZP2aA.js.br +0 -0
  220. package/dist/public/assets/_D6pYwJbn.js.br +0 -0
  221. package/dist/public/assets/_DBPQFygQ.js.br +0 -0
  222. package/dist/public/assets/_DKR-1kBA.js.br +0 -0
  223. package/dist/public/assets/_DO-7Gb4y.js.br +0 -0
  224. package/dist/public/assets/_DP8d9Rm82.js.br +0 -0
  225. package/dist/public/assets/_DRkgmd-K.js.br +0 -0
  226. package/dist/public/assets/_DU1Eqa25.js.br +0 -0
  227. package/dist/public/assets/_DVFmex8_2.js.br +0 -0
  228. package/dist/public/assets/_DkJrtVCy.js.br +0 -0
  229. package/dist/public/assets/_Dnfz85Pu.js.br +0 -0
  230. package/dist/public/assets/_DnxV9O0v.js.br +0 -0
  231. package/dist/public/assets/_Dq6d0wjK.js.br +0 -0
  232. package/dist/public/assets/_Drc85vGG2.js.br +0 -0
  233. package/dist/public/assets/_Dy7NWhyF.js.br +0 -0
  234. package/dist/public/assets/_Fi0bLwSJ2.js.br +0 -0
  235. package/dist/public/assets/_QGY4WJWh2.js.br +0 -0
  236. package/dist/public/assets/_WUnsxEQT.js.br +0 -0
  237. package/dist/public/assets/_ZqBn14C0.js.br +0 -0
  238. package/dist/public/assets/_gkSQEN3j.js.br +0 -0
  239. package/dist/public/assets/_jdivam11.js.br +0 -0
  240. package/dist/public/assets/_kpDIvGaK2.js.br +0 -0
  241. package/dist/public/assets/_mmCP3JhZ2.js.br +0 -0
  242. package/dist/public/assets/_oBGUMKKB.js.br +0 -0
  243. package/dist/public/assets/app-page-CYT0ZOo5.css +0 -1
  244. package/dist/public/assets/app-page-CYT0ZOo5.css.br +0 -0
  245. package/dist/public/assets/diff-view-BcnsI2K2.css +0 -1
  246. package/dist/public/assets/diff-view-BcnsI2K2.css.br +0 -0
  247. package/dist/public/assets/new-Bxdd3c7v.js +0 -1
  248. package/dist/public/assets/settings-Bxdd3c7v.js +0 -1
  249. package/dist/public/assets/w-Bxdd3c7v.js +0 -1
  250. package/dist/public/assets/w._-Bxdd3c7v.js +0 -1
  251. package/dist/public/assets/w._-DgdO3jnn.js +0 -1
@@ -1 +1 @@
1
- import{t as e}from"./_DBPQFygQ.js";var t=Object.freeze(JSON.parse(`{"displayName":"jinja-html","firstLineMatch":"^\\\\{% extends [\\"'][^\\"']+[\\"'] %}","foldingStartMarker":"(<(?i:(head|table|tr|div|style|script|ul|ol|form|dl))\\\\b.*?>|\\\\{%\\\\s*(block|filter|for|if|macro|raw))","foldingStopMarker":"(</(?i:(head|table|tr|div|style|script|ul|ol|form|dl))\\\\b.*?>|\\\\{%\\\\s*(end(?:block|filter|for|if|macro|raw))\\\\s*%})","name":"jinja-html","patterns":[{"include":"source.jinja"},{"include":"text.html.basic"}],"scopeName":"text.html.jinja","embeddedLangs":["html"]}`)),n=[...e,t],r=Object.freeze(JSON.parse(`{"displayName":"Jinja","foldingStartMarker":"(\\\\{%\\\\s*(block|filter|for|if|macro|raw))","foldingStopMarker":"(\\\\{%\\\\s*(end(?:block|filter|for|if|macro|raw))\\\\s*%})","name":"jinja","patterns":[{"begin":"(\\\\{%)\\\\s*(raw)\\\\s*(%})","captures":{"1":{"name":"entity.other.jinja.delimiter.tag"},"2":{"name":"keyword.control.jinja"},"3":{"name":"entity.other.jinja.delimiter.tag"}},"end":"(\\\\{%)\\\\s*(endraw)\\\\s*(%})","name":"comment.block.jinja.raw"},{"include":"#comments"},{"begin":"\\\\{\\\\{-?","captures":[{"name":"variable.entity.other.jinja.delimiter"}],"end":"-?}}","name":"variable.meta.scope.jinja","patterns":[{"include":"#expression"}]},{"begin":"\\\\{%-?","captures":[{"name":"entity.other.jinja.delimiter.tag"}],"end":"-?%}","name":"meta.scope.jinja.tag","patterns":[{"include":"#expression"}]}],"repository":{"comments":{"begin":"\\\\{#-?","captures":[{"name":"entity.other.jinja.delimiter.comment"}],"end":"-?#}","name":"comment.block.jinja","patterns":[{"include":"#comments"}]},"escaped_char":{"match":"\\\\\\\\x[0-9A-F]{2}","name":"constant.character.escape.hex.jinja"},"escaped_unicode_char":{"captures":{"1":{"name":"constant.character.escape.unicode.16-bit-hex.jinja"},"2":{"name":"constant.character.escape.unicode.32-bit-hex.jinja"},"3":{"name":"constant.character.escape.unicode.name.jinja"}},"match":"(\\\\\\\\U\\\\h{8})|(\\\\\\\\u\\\\h{4})|(\\\\\\\\N\\\\{[ A-Za-z]+})"},"expression":{"patterns":[{"captures":{"1":{"name":"keyword.control.jinja"},"2":{"name":"variable.other.jinja.block"}},"match":"\\\\s*\\\\b(block)\\\\s+([A-Z_a-z][0-9A-Z_a-z]*)\\\\b"},{"captures":{"1":{"name":"keyword.control.jinja"},"2":{"name":"variable.other.jinja.filter"}},"match":"\\\\s*\\\\b(filter)\\\\s+([A-Z_a-z][0-9A-Z_a-z]*)\\\\b"},{"captures":{"1":{"name":"keyword.control.jinja"},"2":{"name":"variable.other.jinja.test"}},"match":"\\\\s*\\\\b(is)\\\\s+([A-Z_a-z][0-9A-Z_a-z]*)\\\\b"},{"captures":{"1":{"name":"keyword.control.jinja"}},"match":"(?<=\\\\{%-?)\\\\s*\\\\b([A-Z_a-z][0-9A-Z_a-z]*)\\\\b(?!\\\\s*[,=])"},{"match":"\\\\b(and|else|if|in|import|not|or|recursive|with(out)?\\\\s+context)\\\\b","name":"keyword.control.jinja"},{"match":"\\\\b(true|false|none)\\\\b","name":"constant.language.jinja"},{"match":"\\\\b(loop|super|self|varargs|kwargs)\\\\b","name":"variable.language.jinja"},{"match":"[A-Z_a-z][0-9A-Z_a-z]*","name":"variable.other.jinja"},{"match":"([-+]|\\\\*\\\\*?|//|[%/])","name":"keyword.operator.arithmetic.jinja"},{"captures":{"1":{"name":"punctuation.other.jinja"},"2":{"name":"variable.other.jinja.filter"}},"match":"(\\\\|)([A-Z_a-z][0-9A-Z_a-z]*)"},{"captures":{"1":{"name":"punctuation.other.jinja"},"2":{"name":"variable.other.jinja.attribute"}},"match":"(\\\\.)([A-Z_a-z][0-9A-Z_a-z]*)"},{"begin":"\\\\[","captures":[{"name":"punctuation.other.jinja"}],"end":"]","patterns":[{"include":"#expression"}]},{"begin":"\\\\(","captures":[{"name":"punctuation.other.jinja"}],"end":"\\\\)","patterns":[{"include":"#expression"}]},{"begin":"\\\\{","captures":[{"name":"punctuation.other.jinja"}],"end":"}","patterns":[{"include":"#expression"}]},{"match":"([,.:|])","name":"punctuation.other.jinja"},{"match":"(==|<=|=>|[<>]|!=)","name":"keyword.operator.comparison.jinja"},{"match":"=","name":"keyword.operator.assignment.jinja"},{"begin":"\\"","beginCaptures":[{"name":"punctuation.definition.string.begin.jinja"}],"end":"\\"","endCaptures":[{"name":"punctuation.definition.string.end.jinja"}],"name":"string.quoted.double.jinja","patterns":[{"include":"#string"}]},{"begin":"'","beginCaptures":[{"name":"punctuation.definition.string.begin.jinja"}],"end":"'","endCaptures":[{"name":"punctuation.definition.string.end.jinja"}],"name":"string.quoted.single.jinja","patterns":[{"include":"#string"}]},{"begin":"@/","beginCaptures":[{"name":"punctuation.definition.regexp.begin.jinja"}],"end":"/","endCaptures":[{"name":"punctuation.definition.regexp.end.jinja"}],"name":"string.regexp.jinja","patterns":[{"include":"#simple_escapes"}]}]},"simple_escapes":{"captures":{"1":{"name":"constant.character.escape.newline.jinja"},"2":{"name":"constant.character.escape.backlash.jinja"},"3":{"name":"constant.character.escape.double-quote.jinja"},"4":{"name":"constant.character.escape.single-quote.jinja"},"5":{"name":"constant.character.escape.bell.jinja"},"6":{"name":"constant.character.escape.backspace.jinja"},"7":{"name":"constant.character.escape.formfeed.jinja"},"8":{"name":"constant.character.escape.linefeed.jinja"},"9":{"name":"constant.character.escape.return.jinja"},"10":{"name":"constant.character.escape.tab.jinja"},"11":{"name":"constant.character.escape.vertical-tab.jinja"}},"match":"(\\\\\\\\\\\\n)|(\\\\\\\\\\\\\\\\)|(\\\\\\\\\\")|(\\\\\\\\')|(\\\\\\\\a)|(\\\\\\\\b)|(\\\\\\\\f)|(\\\\\\\\n)|(\\\\\\\\r)|(\\\\\\\\t)|(\\\\\\\\v)"},"string":{"patterns":[{"include":"#simple_escapes"},{"include":"#escaped_char"},{"include":"#escaped_unicode_char"}]}},"scopeName":"source.jinja","embeddedLangs":["jinja-html"]}`)),i=[...n,r];export{i as default};
1
+ import{t as e}from"./_quIdZaH6.js";var t=Object.freeze(JSON.parse(`{"displayName":"jinja-html","firstLineMatch":"^\\\\{% extends [\\"'][^\\"']+[\\"'] %}","foldingStartMarker":"(<(?i:(head|table|tr|div|style|script|ul|ol|form|dl))\\\\b.*?>|\\\\{%\\\\s*(block|filter|for|if|macro|raw))","foldingStopMarker":"(</(?i:(head|table|tr|div|style|script|ul|ol|form|dl))\\\\b.*?>|\\\\{%\\\\s*(end(?:block|filter|for|if|macro|raw))\\\\s*%})","name":"jinja-html","patterns":[{"include":"source.jinja"},{"include":"text.html.basic"}],"scopeName":"text.html.jinja","embeddedLangs":["html"]}`)),n=[...e,t],r=Object.freeze(JSON.parse(`{"displayName":"Jinja","foldingStartMarker":"(\\\\{%\\\\s*(block|filter|for|if|macro|raw))","foldingStopMarker":"(\\\\{%\\\\s*(end(?:block|filter|for|if|macro|raw))\\\\s*%})","name":"jinja","patterns":[{"begin":"(\\\\{%)\\\\s*(raw)\\\\s*(%})","captures":{"1":{"name":"entity.other.jinja.delimiter.tag"},"2":{"name":"keyword.control.jinja"},"3":{"name":"entity.other.jinja.delimiter.tag"}},"end":"(\\\\{%)\\\\s*(endraw)\\\\s*(%})","name":"comment.block.jinja.raw"},{"include":"#comments"},{"begin":"\\\\{\\\\{-?","captures":[{"name":"variable.entity.other.jinja.delimiter"}],"end":"-?}}","name":"variable.meta.scope.jinja","patterns":[{"include":"#expression"}]},{"begin":"\\\\{%-?","captures":[{"name":"entity.other.jinja.delimiter.tag"}],"end":"-?%}","name":"meta.scope.jinja.tag","patterns":[{"include":"#expression"}]}],"repository":{"comments":{"begin":"\\\\{#-?","captures":[{"name":"entity.other.jinja.delimiter.comment"}],"end":"-?#}","name":"comment.block.jinja","patterns":[{"include":"#comments"}]},"escaped_char":{"match":"\\\\\\\\x[0-9A-F]{2}","name":"constant.character.escape.hex.jinja"},"escaped_unicode_char":{"captures":{"1":{"name":"constant.character.escape.unicode.16-bit-hex.jinja"},"2":{"name":"constant.character.escape.unicode.32-bit-hex.jinja"},"3":{"name":"constant.character.escape.unicode.name.jinja"}},"match":"(\\\\\\\\U\\\\h{8})|(\\\\\\\\u\\\\h{4})|(\\\\\\\\N\\\\{[ A-Za-z]+})"},"expression":{"patterns":[{"captures":{"1":{"name":"keyword.control.jinja"},"2":{"name":"variable.other.jinja.block"}},"match":"\\\\s*\\\\b(block)\\\\s+([A-Z_a-z][0-9A-Z_a-z]*)\\\\b"},{"captures":{"1":{"name":"keyword.control.jinja"},"2":{"name":"variable.other.jinja.filter"}},"match":"\\\\s*\\\\b(filter)\\\\s+([A-Z_a-z][0-9A-Z_a-z]*)\\\\b"},{"captures":{"1":{"name":"keyword.control.jinja"},"2":{"name":"variable.other.jinja.test"}},"match":"\\\\s*\\\\b(is)\\\\s+([A-Z_a-z][0-9A-Z_a-z]*)\\\\b"},{"captures":{"1":{"name":"keyword.control.jinja"}},"match":"(?<=\\\\{%-?)\\\\s*\\\\b([A-Z_a-z][0-9A-Z_a-z]*)\\\\b(?!\\\\s*[,=])"},{"match":"\\\\b(and|else|if|in|import|not|or|recursive|with(out)?\\\\s+context)\\\\b","name":"keyword.control.jinja"},{"match":"\\\\b(true|false|none)\\\\b","name":"constant.language.jinja"},{"match":"\\\\b(loop|super|self|varargs|kwargs)\\\\b","name":"variable.language.jinja"},{"match":"[A-Z_a-z][0-9A-Z_a-z]*","name":"variable.other.jinja"},{"match":"([-+]|\\\\*\\\\*?|//|[%/])","name":"keyword.operator.arithmetic.jinja"},{"captures":{"1":{"name":"punctuation.other.jinja"},"2":{"name":"variable.other.jinja.filter"}},"match":"(\\\\|)([A-Z_a-z][0-9A-Z_a-z]*)"},{"captures":{"1":{"name":"punctuation.other.jinja"},"2":{"name":"variable.other.jinja.attribute"}},"match":"(\\\\.)([A-Z_a-z][0-9A-Z_a-z]*)"},{"begin":"\\\\[","captures":[{"name":"punctuation.other.jinja"}],"end":"]","patterns":[{"include":"#expression"}]},{"begin":"\\\\(","captures":[{"name":"punctuation.other.jinja"}],"end":"\\\\)","patterns":[{"include":"#expression"}]},{"begin":"\\\\{","captures":[{"name":"punctuation.other.jinja"}],"end":"}","patterns":[{"include":"#expression"}]},{"match":"([,.:|])","name":"punctuation.other.jinja"},{"match":"(==|<=|=>|[<>]|!=)","name":"keyword.operator.comparison.jinja"},{"match":"=","name":"keyword.operator.assignment.jinja"},{"begin":"\\"","beginCaptures":[{"name":"punctuation.definition.string.begin.jinja"}],"end":"\\"","endCaptures":[{"name":"punctuation.definition.string.end.jinja"}],"name":"string.quoted.double.jinja","patterns":[{"include":"#string"}]},{"begin":"'","beginCaptures":[{"name":"punctuation.definition.string.begin.jinja"}],"end":"'","endCaptures":[{"name":"punctuation.definition.string.end.jinja"}],"name":"string.quoted.single.jinja","patterns":[{"include":"#string"}]},{"begin":"@/","beginCaptures":[{"name":"punctuation.definition.regexp.begin.jinja"}],"end":"/","endCaptures":[{"name":"punctuation.definition.regexp.end.jinja"}],"name":"string.regexp.jinja","patterns":[{"include":"#simple_escapes"}]}]},"simple_escapes":{"captures":{"1":{"name":"constant.character.escape.newline.jinja"},"2":{"name":"constant.character.escape.backlash.jinja"},"3":{"name":"constant.character.escape.double-quote.jinja"},"4":{"name":"constant.character.escape.single-quote.jinja"},"5":{"name":"constant.character.escape.bell.jinja"},"6":{"name":"constant.character.escape.backspace.jinja"},"7":{"name":"constant.character.escape.formfeed.jinja"},"8":{"name":"constant.character.escape.linefeed.jinja"},"9":{"name":"constant.character.escape.return.jinja"},"10":{"name":"constant.character.escape.tab.jinja"},"11":{"name":"constant.character.escape.vertical-tab.jinja"}},"match":"(\\\\\\\\\\\\n)|(\\\\\\\\\\\\\\\\)|(\\\\\\\\\\")|(\\\\\\\\')|(\\\\\\\\a)|(\\\\\\\\b)|(\\\\\\\\f)|(\\\\\\\\n)|(\\\\\\\\r)|(\\\\\\\\t)|(\\\\\\\\v)"},"string":{"patterns":[{"include":"#simple_escapes"},{"include":"#escaped_char"},{"include":"#escaped_unicode_char"}]}},"scopeName":"source.jinja","embeddedLangs":["jinja-html"]}`)),i=[...n,r];export{i as default};
@@ -0,0 +1 @@
1
+ :root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;--bg:var(--lightningcss-light,#fafafa)var(--lightningcss-dark,#131316);--panel:var(--lightningcss-light,#fff)var(--lightningcss-dark,#1b1b1f);--border:var(--lightningcss-light,#e4e4e8)var(--lightningcss-dark,#2a2a30);--text:var(--lightningcss-light,#1a1a1e)var(--lightningcss-dark,#e8e8ec);--dim:var(--lightningcss-light,#6e6e76)var(--lightningcss-dark,#9a9aa4);--accent:var(--lightningcss-light,#3556d8)var(--lightningcss-dark,#7c96ff);--danger:var(--lightningcss-light,#b00020)var(--lightningcss-dark,#ff8080);--radius:8px;font-family:system-ui,sans-serif}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}a{color:inherit;text-decoration:none}[hidden]{display:none!important}html,body{height:var(--app-height,100dvh);overflow:hidden}body{background:var(--bg);color:var(--text);margin:0;font-size:14px}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0}button,a,[popover]{touch-action:manipulation}input,textarea,select{font:inherit;color:inherit;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);padding:.45rem .6rem}@media (pointer:coarse){input,textarea,select{font-size:16px!important}}input:focus-visible,textarea:focus-visible,select:focus-visible,button:focus-visible{outline:1px solid color-mix(in srgb, var(--accent) 60%, transparent);outline-offset:-1px}code{font-size:.92em}@keyframes _a{to{rotate:360deg}}._b{color:var(--dim);justify-content:center;align-items:center;gap:.5rem;padding-top:min(20dvh,10rem);display:flex}._c{height:100%;min-height:0;padding-top:env(safe-area-inset-top);flex-direction:column;display:flex;position:relative}._d{flex-direction:column;flex:1;min-width:0;height:100%;min-height:0;display:flex}._e{flex:1;grid-template:minmax(0,1fr)/minmax(0,1fr);min-width:0;min-height:0;display:grid}._f{display:none}._g{grid-area:1/1;min-width:0;min-height:0;display:flex}._h{flex-direction:column;flex:1;min-height:0;display:flex}._i{border-top:1px solid var(--border);background:var(--panel);justify-content:center;padding:.65rem 1rem;display:flex}._j{border-radius:var(--radius);background:color-mix(in srgb, currentColor 7%, transparent);flex-shrink:0;justify-content:center;align-items:center;width:2.15rem;height:2.15rem;padding:0;display:inline-flex}._j:hover{background:color-mix(in srgb, currentColor 12%, transparent)}._k{flex-shrink:0;display:block}:where(button:has(>._k)){align-items:center;gap:.35rem;display:inline-flex}._l{appearance:none}._l::-webkit-search-cancel-button{appearance:none;display:none}._l::-webkit-search-decoration{appearance:none;display:none}._m{flex-shrink:0;min-width:0;display:inline-flex;position:relative}._m:after{content:"";pointer-events:none;border-bottom:1.5px solid;border-right:1.5px solid;border-color:var(--dim);width:.32em;height:.32em;position:absolute;top:50%;right:.65rem;translate:0 -70%;rotate:45deg}._n{appearance:none;min-width:8rem;min-height:1.85rem;color:var(--text);background:var(--bg,var(--panel));border:1px solid var(--border);border-radius:var(--radius);padding:0 1.5rem 0 .65rem;font-size:.85rem}._o{background:color-mix(in srgb, currentColor 7%, transparent);border-radius:var(--radius);justify-content:center;align-items:center;gap:.35rem;padding:.35rem .65rem;display:inline-flex}._o:hover{background:color-mix(in srgb, currentColor 12%, transparent)}._p{background:var(--accent);color:var(--lightningcss-light,#fff)var(--lightningcss-dark,#10131f)}._p:hover{background:color-mix(in srgb, var(--accent) 88%, var(--lightningcss-light,#000)var(--lightningcss-dark,#fff))}._r{color:var(--danger)}._r._q{background:var(--danger);border-color:var(--danger);color:#fff}._s{background:color-mix(in srgb, currentColor 7%, transparent);color:var(--dim);white-space:nowrap;border-radius:5px;align-items:center;gap:.25em;padding:.05em .5em;font-size:.78rem;line-height:1.5;display:inline-flex}._t{color:var(--lightningcss-light,#1a7f37)var(--lightningcss-dark,#57d364);text-decoration:none}._u,._v{color:var(--dim)}._w{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}._x{flex:1}._y{border-radius:50%;flex-shrink:0;width:7px;height:7px}._z{background:var(--lightningcss-light,#bf8700)var(--lightningcss-dark,#d4a72c)}._A{background:var(--danger)}._B{background:color-mix(in srgb, var(--dim) 55%, transparent)}._C{border:1px solid var(--dim)}._D{animation:.8s linear infinite _a}._E{border:2px solid color-mix(in srgb, currentColor 25%, transparent);border-top-color:var(--accent);border-radius:50%;flex-shrink:0;width:.7rem;height:.7rem;animation:.8s linear infinite _a;display:inline-block}._F{background:color-mix(in srgb, currentColor 22%, transparent);border-radius:999px;flex-shrink:0;width:2.1rem;height:1.2rem;padding:0;transition:background .12s;position:relative}._F:after{content:"";background:var(--lightningcss-light,#fff)var(--lightningcss-dark,#10131f);border-radius:50%;width:.9rem;height:.9rem;transition:translate .12s;position:absolute;top:.15rem;left:.15rem;box-shadow:0 1px 2px #0000004d}._F[aria-checked=true]{background:var(--accent)}._F[aria-checked=true]:after{translate:.9rem}._F:disabled{opacity:.5}._G{text-align:left;border-radius:var(--radius);flex:1;align-items:center;gap:.35rem;min-width:0;padding:.35rem .5rem;display:flex}._G:hover{background:color-mix(in srgb, currentColor 7%, transparent)}._H{border:1px solid var(--accent);border-radius:var(--radius);background:var(--bg,var(--panel));min-width:0;color:inherit;font:inherit;flex:1;margin:.15rem .35rem .15rem 0;padding:.25rem .5rem}._H:focus{outline:1px solid color-mix(in srgb, var(--accent) 60%, transparent);outline-offset:-1px}._I{color:inherit;cursor:pointer;text-decoration:none}._I:hover{color:var(--accent);text-decoration:underline}._J{white-space:nowrap;min-height:1.85rem;padding:0 .5rem;font-size:.78rem;font-weight:600;line-height:1.4}._K{min-height:2.35rem;padding:.5rem .85rem;font-weight:600}._L{color:var(--dim);background:color-mix(in srgb, currentColor 7%, transparent);white-space:nowrap;border-radius:999px;flex-shrink:0;align-items:center;gap:.3em;padding:.1em .5em;font-size:.72rem;font-weight:600;line-height:1.5;display:inline-flex}._M{font-variant-numeric:tabular-nums}._N{letter-spacing:.04em;text-transform:uppercase;font-size:.65rem;font-weight:700}._O{color:var(--accent);background:color-mix(in srgb, var(--accent) 12%, transparent)}._P{color:var(--lightningcss-light,#1a7f37)var(--lightningcss-dark,#57d364);background:var(--lightningcss-light,#1a7f371f)var(--lightningcss-dark,#57d3641f)}._Q{color:var(--lightningcss-light,#bf8700)var(--lightningcss-dark,#d4a72c);background:var(--lightningcss-light,#bf87001f)var(--lightningcss-dark,#d4a72c1f)}._R{color:var(--danger);background:color-mix(in srgb, var(--danger) 12%, transparent)}._S{color:var(--lightningcss-light,#8250df)var(--lightningcss-dark,#a371f7);background:var(--lightningcss-light,#8250df1f)var(--lightningcss-dark,#a371f71f)}._T{color:var(--lightningcss-light,#cf222e)var(--lightningcss-dark,#f85149);background:var(--lightningcss-light,#cf222e1f)var(--lightningcss-dark,#f851491f)}._U{background:var(--accent);color:var(--lightningcss-light,#fff)var(--lightningcss-dark,#10131f)}._V{color:var(--dim);min-width:0;font-size:.78rem;line-height:1.35}._W{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}._X{width:100%;min-width:0}._Z{flex:1;min-width:0;display:block;position:relative}._0{color:var(--dim);pointer-events:none;position:absolute;top:50%;left:.65rem;translate:0 -50%}._1{padding-left:2.1rem}._2{width:1.6rem;height:1.6rem}._3{width:1.85rem;height:1.85rem}._4{width:2.6rem;height:2.6rem}._5{background:0 0;width:1.6rem;height:1.6rem}._6{color:var(--dim)}._6:hover{color:var(--danger);background:color-mix(in srgb, var(--danger) 12%, transparent)}._6._q,._6._q:hover{color:#fff;background:var(--danger)}._7._q{width:auto;padding:0 .65rem;font-size:.78rem;font-weight:600}._8{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:.25rem;box-shadow:0 8px 24px #00000040}._9{font-weight:700}._9[data-status=A]{color:var(--lightningcss-light,#1a7f37)var(--lightningcss-dark,#57d364)}._9[data-status=D]{color:var(--danger)}._9[data-status=M]{color:var(--accent)}.__{text-overflow:ellipsis;white-space:nowrap;text-align:left;direction:rtl;min-width:0;overflow:hidden}.__:before,.__:after{content:"‎"}._ba{border-radius:50%;width:6px;height:6px;position:absolute;top:4px;right:4px}._bb{background:color-mix(in srgb, var(--accent) 12%, transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--accent) 35%, transparent)}._bc{border-radius:calc(var(--radius) + 2px);background:color-mix(in srgb, currentColor 7%, transparent);min-height:1.85rem;box-shadow:inset 0 0 0 1px var(--border);flex-shrink:0;align-items:stretch;padding:2px;display:inline-flex}._be{border-radius:var(--radius);min-height:calc(2.15rem - 4px);color:var(--dim);white-space:nowrap;justify-content:center;align-items:center;padding:0 .65rem;font-size:.78rem;font-weight:600;line-height:1;display:inline-flex}._be:disabled{opacity:.55}._be:hover:not(:disabled){color:var(--text)}._be._bd{color:var(--text);background:var(--panel);box-shadow:0 0 0 1px color-mix(in srgb, var(--border) 80%, transparent), 0 1px 2px #0000001f}@media screen and (width<=899px){._n{min-height:2.35rem}._J{min-height:2.35rem;font-size:.85rem}._K{justify-content:center;width:100%;min-height:3rem}._Y{border-radius:calc(var(--radius) + 2px);min-height:3rem;padding:.65rem .85rem;font-size:1rem}._1{padding-left:2.4rem}._2{width:2.6rem;height:2.6rem}._3{width:2.35rem;height:2.35rem}}._bh{border-radius:var(--radius);border:1px solid var(--border);background:var(--panel);color:var(--text);overflow-wrap:anywhere;flex-wrap:wrap;align-items:flex-start;gap:.65rem;margin:0;padding:.5rem .65rem;font-size:.95rem;line-height:1.35;display:flex;box-shadow:0 8px 24px #00000040}._bi{top:calc(env(safe-area-inset-top) + .65rem);z-index:40;width:min(28rem,100vw - 2rem);position:fixed;left:50%;translate:-50%}._bj{width:100%;box-shadow:none;margin-bottom:.65rem;position:relative}._bk{border-color:color-mix(in srgb, var(--danger) 45%, var(--border));background:color-mix(in srgb, var(--danger) 8%, var(--panel))}._bl{border-color:color-mix(in srgb, var(--lightningcss-light,#bf8700)var(--lightningcss-dark,#d4a72c) 45%, var(--border));background:color-mix(in srgb, var(--lightningcss-light,#bf8700)var(--lightningcss-dark,#d4a72c) 10%, var(--panel))}._bm{border-color:color-mix(in srgb, var(--accent) 35%, var(--border));background:color-mix(in srgb, var(--accent) 10%, var(--panel))}._bn{color:var(--danger);font-weight:600}._bo{color:var(--lightningcss-light,#8a5a00)var(--lightningcss-dark,#f0b84a);font-weight:600}._bp{color:var(--accent);font-weight:600}._bq{flex-wrap:wrap;flex:1;align-items:baseline;gap:.25rem .5rem;min-width:0;display:flex}._br{flex:12rem;min-width:0}._br:empty{display:none}._bs{flex-wrap:wrap;align-items:center;gap:.25rem;min-width:0;margin-left:auto;display:flex}._bu{color:var(--dim)}._bu:hover{color:var(--text)}@media screen and (width<=899px){._bt{flex:100%;margin-left:0}}@keyframes _bf{0%{opacity:0;translate:-50% .4rem}to{opacity:1;translate:-50%}}._bg{top:calc(env(safe-area-inset-top) + .35rem);z-index:39;background:var(--panel);border:1px solid var(--border);color:var(--dim);white-space:nowrap;pointer-events:none;border-radius:999px;align-items:center;gap:.25rem;padding:.15rem .35rem;font-size:.78rem;line-height:1.5;animation:.16s ease-out _bf;display:inline-flex;position:fixed;left:50%;translate:-50%;box-shadow:0 8px 24px #00000040}@media screen and (width<=899px){._bg{top:auto;bottom:calc(max(.75rem, env(safe-area-inset-bottom)) + 3.25rem)}}._bL{background:var(--bg,var(--panel));min-width:0;min-height:0;color:inherit;flex-direction:column;flex:1;display:flex}._bM{flex:1;min-height:0;padding:1rem 1.35rem 2rem;overflow-y:auto}._bN{flex-direction:column;gap:1.35rem;width:100%;max-width:42rem;display:flex}._bO{flex-direction:column;gap:1.35rem;width:100%;max-width:56rem;display:flex}._bP{border-bottom:1px solid color-mix(in srgb, var(--border) 88%, transparent);align-items:flex-start;gap:.65rem;padding-bottom:1rem;display:flex}._bQ{letter-spacing:-.02em;overflow-wrap:anywhere;margin:0;font-size:1.25rem;font-weight:700;line-height:1.2}._bR{flex-direction:column;flex:1;gap:.25rem;min-width:0;display:flex}._bS{color:var(--dim);margin:0;font-size:.85rem;line-height:1.35}._bT{flex-shrink:0;align-items:center;gap:.5rem;padding-top:.05rem;display:flex}@media screen and (width<=899px){._bM{padding:.65rem .85rem 1.35rem;padding-top:max(.85rem, calc(env(safe-area-inset-top) + .35rem));padding-left:max(.85rem, calc(env(safe-area-inset-left) + .5rem));padding-right:max(.85rem, calc(env(safe-area-inset-right) + .5rem));padding-bottom:max(1.35rem, env(safe-area-inset-bottom))}._bN,._bO{gap:1rem;max-width:none}._bP{align-items:center;padding-bottom:.85rem}._bQ{font-size:1.45rem}._bT{padding-top:0}}._bv{background:var(--panel);box-shadow:inset 0 0 0 1px var(--border);border-radius:calc(var(--radius) + 2px);color:var(--dim);align-items:center;gap:.5rem;margin:0;padding:.65rem .85rem;font-size:.85rem;display:flex}._bw{flex-direction:column;gap:.5rem;min-width:0;display:flex}._bx{align-items:center;gap:.5rem;min-height:1.75rem;padding:0 .15rem;display:flex}._bz{flex-direction:column;gap:.35rem;margin:0;padding:0;list-style:none;display:flex}._bB{background:var(--panel);min-width:0;box-shadow:inset 0 0 0 1px var(--border);border-radius:calc(var(--radius) + 2px);align-items:center;gap:.5rem;padding:.65rem;display:flex}._bB._bA{color:var(--dim)}._bC{text-align:left;min-width:0;color:inherit;flex-direction:column;flex:1;gap:.15rem;text-decoration:none;display:flex}._bD{overflow-wrap:anywhere;font-size:.95rem;font-weight:600;line-height:1.25}._bE{flex-wrap:wrap;align-items:center;gap:.25rem .5rem;min-width:0;display:flex}._bF{color:var(--dim);text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:100%;font-size:.78rem;overflow:hidden}._bG{border-radius:var(--radius);min-width:1.85rem;min-height:1.85rem;color:var(--dim);flex-shrink:0;justify-content:center;align-items:center;padding:0 .35rem;font-size:1rem;line-height:1;display:inline-flex}._bG:hover{background:color-mix(in srgb, currentColor 7%, transparent)}._bH{color:var(--dim);margin:0;padding:.35rem .15rem;font-size:.85rem}._bI{color:var(--dim);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:.65rem;padding:2rem;display:flex}._bJ{gap:.5rem;min-height:2.35rem;padding:.35rem .35rem .35rem .65rem}._bK{text-transform:uppercase;letter-spacing:.07em;color:var(--dim);margin:0;font-size:.72rem;font-weight:600}@media screen and (width<=899px){._bx{min-height:2.25rem}._bB{border-radius:calc(var(--radius) + 4px);gap:.65rem;padding:.85rem}._bD{font-size:1rem}._bF{white-space:normal;text-overflow:unset;overflow-wrap:anywhere;font-size:.85rem;overflow:visible}._bG{min-width:2.35rem;min-height:2.35rem;font-size:1.1rem}._bH{font-size:.95rem}._bJ{border-radius:calc(var(--radius) + 2px);min-height:2.85rem;padding:.5rem .5rem .5rem .85rem}}._cj{flex-direction:column;align-items:stretch;gap:0;padding:0;overflow:hidden}._ck{flex-direction:column;gap:.65rem;padding:.65rem;display:flex}._ck+._ck{border-top:1px solid color-mix(in srgb, var(--border) 85%, transparent)}._cl{flex-direction:row;align-items:center;gap:.5rem;min-height:2.35rem}._cm{flex-shrink:0;font-size:.85rem;font-weight:600}._cn{min-width:0;color:var(--dim);flex:1;font-size:.78rem;line-height:1.35}._co{gap:0;padding:0}._cp{align-items:center;gap:.35rem;min-height:2.35rem;padding:.25rem .5rem .25rem 0;display:flex}._cp:hover,._cq{background:color-mix(in srgb, currentColor 7%, transparent)}._cq:hover{background:color-mix(in srgb, currentColor 12%, transparent)}._cr{text-align:left;min-width:0;color:inherit;flex:1;align-self:stretch;align-items:center;gap:.35rem;padding:.5rem .65rem;display:inline-flex}._cs{font-size:.95rem;font-weight:600}._ct{color:var(--dim);white-space:nowrap;font-size:.78rem}._cu{border-top:1px solid var(--border);flex-direction:column;gap:.5rem;padding:.65rem;display:flex}._cv{color:var(--dim);flex-shrink:0;transition:transform .12s}._cw{transform:rotate(90deg)}._cx{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}._cy{border-top:1px solid color-mix(in srgb, var(--border) 85%, transparent);flex-shrink:0;align-items:center;gap:.5rem;min-width:0;min-height:2.35rem;padding:.25rem 0;display:flex}._cy:first-child{border-top:none}._cz{padding:.35rem .5rem .35rem .65rem}@media screen and (width<=899px){._ck{padding:.65rem .85rem}._co{padding:0}._cp{min-height:2.85rem;padding:.25rem .65rem .25rem 0}._cr{padding:.5rem .85rem}._cu{padding:.65rem .85rem}._cy{min-height:2.85rem}._cz{padding:.5rem .5rem .5rem .85rem}}._cA{gap:1.35rem}._cB{min-width:0;color:var(--dim);-webkit-user-select:text;user-select:text;text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:.35rem;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.78rem;display:flex;overflow:hidden}._cC{color:var(--lightningcss-light,#bf8700)var(--lightningcss-dark,#d4a72c)}._cE{flex-direction:column;align-items:stretch;gap:.65rem}._cF{align-items:center;gap:.35rem;display:inline-flex}._cG{min-width:6.5rem;padding:0 1.4rem 0 .5rem;font-size:.78rem}._cH{align-items:center;gap:.5rem;min-width:0;display:flex}._cI{flex-direction:column;gap:.35rem;display:flex}._cJ{align-items:center;gap:.5rem;min-width:0;display:flex}._cK{opacity:.45}._cK:hover,._cK:focus-within{opacity:.8}._cL{font-size:.85rem;font-weight:600}._cM{border-top:1px solid color-mix(in srgb, var(--border) 85%, transparent);flex-direction:column;gap:.5rem;margin:0;padding:.5rem 0 0;list-style:none;display:flex}._cP{color:var(--dim)}._cQ{flex-shrink:0;font-size:.85rem;font-weight:600}._cP ._cQ{font-weight:500}._cR{color:var(--dim);border-radius:5px;margin:0 -.35rem;padding:.15rem .35rem;font-size:.78rem}._cR:hover{color:var(--text);background:color-mix(in srgb, currentColor 7%, transparent)}._cS{color:var(--lightningcss-light,#1a7f37)var(--lightningcss-dark,#57d364)}._cT{height:1.85rem}._cU{margin-left:auto}._cV{gap:.5rem}._cW{align-items:center;gap:.5rem;width:100%;min-width:0;display:flex}._cX{width:1.4rem;color:var(--text);flex-shrink:0}._cY{align-items:center;gap:.25rem;min-width:0;display:inline-flex}._cZ{color:var(--lightningcss-light,#1a7f37)var(--lightningcss-dark,#57d364)}._c0{color:var(--lightningcss-light,#bf8700)var(--lightningcss-dark,#d4a72c)}._c1{color:var(--text);font-weight:600}._c2{border-radius:var(--radius);background:color-mix(in srgb, var(--accent) 12%, transparent);color:var(--text);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;margin-left:1.9rem;padding:.5rem .65rem;font-size:.85rem;display:flex}._c3{flex-wrap:wrap;gap:.25rem;min-width:0;display:inline-flex}._c4{letter-spacing:.12em;-webkit-user-select:all;user-select:all;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:1.1rem;font-weight:700}._c5{color:var(--accent);font-weight:600}._c6{padding-top:.25rem;padding-bottom:.25rem}._c7{flex-direction:column;align-items:stretch;gap:.65rem;display:flex}._c8{grid-template-columns:5.5rem minmax(0,1fr);align-items:center;column-gap:.85rem;display:grid}._c9{font-size:.85rem;font-weight:400}._c_{box-sizing:border-box;width:18rem;max-width:100%;height:2.15rem;font-size:.85rem}._db{justify-self:start;min-width:0}._dc{display:none}._de{border-radius:calc(var(--radius) + 2px);background:color-mix(in srgb, var(--accent) 12%, transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--accent) 35%, transparent);flex-wrap:wrap;align-items:center;gap:.65rem;padding:.65rem .85rem;display:flex}._df{flex-direction:column;flex:12rem;gap:.15rem;min-width:0;display:flex}._dg{font-size:1rem;font-weight:600}._dh{color:var(--dim);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.85rem}._di{justify-self:start;align-items:center;gap:.25rem}._dj{background:var(--swatch);cursor:pointer;border-radius:5px;width:calc(2.15rem - 8px);height:calc(2.15rem - 8px);padding:0;transition:transform 80ms;position:relative;box-shadow:inset 0 0 0 1px #0000001f}._dj:hover{transform:scale(1.08)}._dk{box-shadow:inset 0 0 0 2px var(--panel), 0 0 0 1px var(--swatch,var(--accent))}._dl{--swatch:var(--lightningcss-light,#3556d8)var(--lightningcss-dark,#7c96ff)}._dm{color:var(--dim);background:var(--swatch,transparent);border:1px dashed var(--border);box-shadow:none;justify-content:center;align-items:center;font-size:.95rem;font-weight:600;display:inline-flex}._dm._dk{color:#0000;box-shadow:inset 0 0 0 2px var(--panel), 0 0 0 1px var(--swatch);border:none}._dn{opacity:0;cursor:pointer;border:0;width:100%;height:100%;padding:0;position:absolute;inset:0}._do{align-items:center;gap:.5rem;width:100%;min-width:0;display:flex}._dp{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute;overflow:hidden}._dq{border-top:1px solid color-mix(in srgb, var(--border) 85%, transparent);flex-direction:column;gap:.5rem;min-width:0;padding-top:.5rem;display:flex}._dr{color:var(--dim);margin:0;font-size:.85rem}._ds{flex-direction:column;gap:.35rem;min-width:0;margin:0;padding:0;list-style:none;display:flex}._dt{flex-direction:column;gap:.25rem;display:flex}._du{border-left:1px solid color-mix(in srgb, var(--border) 85%, transparent);flex-direction:column;gap:.25rem;padding-left:.5rem;display:flex}._dv{flex-wrap:wrap;align-items:center;gap:.35rem;font-size:.85rem;display:flex}._dw{color:var(--dim);flex-direction:column;gap:.15rem;margin:0;padding:0;font-size:.78rem;list-style:none;display:flex}._dx{align-items:center;gap:.35rem;min-width:0;display:flex}._dy{flex-wrap:wrap;align-items:center;gap:.35rem;padding-top:.25rem;display:flex}._dz{gap:.25rem}._dA{border-radius:var(--radius);cursor:pointer;align-items:center;gap:.5rem;min-width:0;padding:.35rem .5rem;display:flex}._dA:hover{background:color-mix(in srgb, currentColor 7%, transparent)}._dB{accent-color:var(--accent);flex-shrink:0;margin:0}._dC{opacity:.55;cursor:default}._dC:hover{background:0 0}@media screen and (width<=899px){._cB{white-space:normal;overflow-wrap:anywhere}._cT{grid-area:list;place-self:start stretch;height:2.35rem;margin-top:.35rem}._c8{grid-template-columns:minmax(0,1fr);row-gap:.35rem}._c_{width:100%;height:2.85rem;font-size:1rem}._da{display:none}._db{justify-self:stretch}._dc{width:100%;display:inline-flex}._dd{width:100%;min-height:2.85rem;font-size:1rem}._de{gap:.5rem;padding:.85rem}._di{flex-wrap:wrap;justify-self:stretch;row-gap:.25rem}._dj{width:2.1rem;height:2.1rem}._dA{padding:.5rem}}@media screen and (width>=980px){._cD{column-count:2;column-gap:.35rem;display:block}._cE{break-inside:avoid;margin-bottom:.35rem}._cN{grid-template-columns:1fr 1fr;column-gap:1rem;display:grid}._cO:nth-child(2){border-top:none}}._dK{align-items:center;gap:.25rem;width:min(24rem,100%);display:flex;position:relative}._dL{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute;inset:auto;overflow:hidden}._dM{flex:1;min-width:0;height:1.85rem}._dN{height:100%;padding-top:0;padding-bottom:0}._dP{background:color-mix(in srgb, var(--panel) 94%, var(--text));border:1px solid color-mix(in srgb, var(--border) 60%, var(--text));z-index:15;width:min(30rem,100vw - 2rem);max-height:22rem;margin:0;padding:.25rem .5rem;position:absolute;top:calc(100% + .25rem);right:0;overflow-y:auto;box-shadow:0 12px 40px #00000059}._dP[hidden]{display:none}._dQ{flex-direction:column;list-style:none;display:flex}._dR{min-height:2.35rem;color:var(--dim);align-items:center;gap:.35rem;font-size:.85rem;display:flex}@media screen and (width<=899px){._dK{z-index:35;width:auto;height:var(--app-height,100dvh);padding:max(.85rem, env(safe-area-inset-top)) max(.65rem, env(safe-area-inset-right)) max(.65rem, env(safe-area-inset-bottom)) max(.65rem, env(safe-area-inset-left));background:var(--bg);grid-template:"field close""list list"minmax(0,1fr)/minmax(0,1fr) auto;align-items:stretch;gap:.35rem;display:grid;position:fixed;inset:0}._dL{width:1px;height:1px;padding:0;position:absolute;inset:auto}._dM{grid-area:field;height:2.35rem}._dO{grid-area:close;align-self:center}._dP{top:calc(max(.85rem, env(safe-area-inset-top)) + 2.35rem + .35rem);left:max(.65rem, env(safe-area-inset-left));right:max(.65rem, env(safe-area-inset-right));bottom:max(.65rem, env(safe-area-inset-bottom));overscroll-behavior:contain;width:auto;min-height:0;max-height:none;box-shadow:none;background:var(--panel);border:1px solid var(--border);grid-area:auto;position:absolute}._dP[hidden]{visibility:hidden;display:block}}._dD{flex-wrap:wrap;gap:.35rem;margin:0;padding:0;list-style:none;display:flex}._dE{border-radius:var(--radius);background:color-mix(in srgb, currentColor 7%, transparent);align-items:center;gap:.15rem;padding:.15rem;display:inline-flex}._dF{cursor:pointer;border-radius:5px;align-self:stretch;align-items:center;gap:.25rem;padding:0 .35rem;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.78rem;font-weight:500;display:inline-flex}._dF:hover{background:color-mix(in srgb, currentColor 12%, transparent)}._dG{color:var(--dim);cursor:default}._dH{color:var(--dim);font-family:inherit;font-weight:400}._dI{flex-direction:column;gap:.35rem;max-width:22rem;margin:0;padding:.65rem;font-size:.85rem;display:none;position:fixed;inset:auto}._dI:popover-open{display:flex}._dJ{align-items:center;gap:.35rem;padding-top:.25rem;display:flex}@media screen and (width<=899px){._dD{flex-direction:column;align-items:stretch}._dE{width:100%;min-height:2.85rem;padding-left:.85rem}._dF{text-align:left;flex:1;min-width:0}}._dT{margin-top:.1rem;margin-right:.25rem}._eO{grid-template-columns:7.5rem minmax(0,1fr);align-items:start;gap:.35rem .85rem;display:grid}._eQ{flex-direction:column;gap:.15rem;min-width:0;padding-top:.15rem;display:flex}._eR{color:var(--dim);text-overflow:ellipsis;white-space:nowrap;font-size:.72rem;overflow:hidden}._eS{color:var(--lightningcss-light,#bf8700)var(--lightningcss-dark,#d4a72c);white-space:nowrap;align-items:center;gap:.3em;font-size:.72rem;display:inline-flex}._eT{flex-direction:column;gap:.35rem;min-width:0;display:flex}._eU{margin:0}._eV{grid-template-columns:2.6rem 1fr 3.1rem 3rem;align-items:center;gap:.5rem;min-height:1.35rem;display:grid}._eW{color:var(--dim);font-size:.72rem;font-weight:600}._eX{background:color-mix(in srgb, currentColor 12%, transparent);border-radius:999px;height:7px;overflow:hidden}._eY{background:var(--accent);border-radius:999px;height:100%;display:block}._eZ{background:var(--lightningcss-light,#1a7f37)var(--lightningcss-dark,#57d364)}._e0{background:var(--accent)}._e1{background:var(--lightningcss-light,#bf8700)var(--lightningcss-dark,#d4a72c)}._e2{background:var(--danger)}._e3{font-variant-numeric:tabular-nums;text-align:right;font-size:.78rem;font-weight:600}._e4{color:var(--lightningcss-light,#1a7f37)var(--lightningcss-dark,#57d364)}._e5{color:var(--accent)}._e6{color:var(--lightningcss-light,#bf8700)var(--lightningcss-dark,#d4a72c)}._e7{color:var(--danger)}._e8{color:var(--dim);white-space:nowrap;font-variant-numeric:tabular-nums;align-items:center;gap:.3em;font-size:.72rem;display:inline-flex}._e9{letter-spacing:-.01em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.85rem;font-weight:600}._e_{opacity:.55}@media screen and (width<=359px){._eV{grid-template-columns:2.4rem 1fr 3rem}._e8{display:none}}@media screen and (width<=899px){._eO{grid-template-columns:1fr;gap:.5rem}._eR{font-size:.78rem}._eT{gap:.5rem}._eV{grid-template-columns:2.6rem 1fr 3.2rem 3rem;gap:.5rem;min-height:1.6rem}._eW{font-size:.78rem}._eX{height:8px}._e3{font-size:.85rem}._e8{font-size:.78rem}._e9{font-size:.95rem}}._eB{flex-direction:column;width:100%;min-width:0;display:flex}._eC{align-items:center;gap:.35rem;min-width:0;margin:0;padding:.25rem 0;font-size:.85rem;display:flex}._eC+._eC{border-top:1px solid color-mix(in srgb, var(--border) 85%, transparent)}._eD{color:var(--dim)}._eE{flex:1;align-items:baseline;gap:.35rem;min-width:0;display:flex}._eF{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:500;overflow:hidden}._eG{color:var(--dim);text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:.78rem;overflow:hidden}._eH{color:var(--lightningcss-light,#bf8700)var(--lightningcss-dark,#d4a72c)}._eI{color:var(--dim)}._eI:hover{color:var(--text)}._eJ{color:var(--dim);flex-wrap:wrap;line-height:1.35}._eK{color:var(--text);letter-spacing:.08em;-webkit-user-select:all;user-select:all;font-size:.85rem}._eL{color:var(--accent)}._eM{color:var(--dim);font-size:.78rem;line-height:1.35}@media screen and (width<=899px){._eE{flex-direction:column;gap:.15rem}._eM{font-size:.85rem}}._eb{z-index:35;width:min(42rem,100vw - 1.5rem);max-height:calc(var(--app-height,100dvh) - min(8dvh, 4rem) - 1rem);background:var(--panel);border:1px solid var(--border);border-radius:calc(var(--radius) + 4px);min-height:0;color:inherit;flex-direction:column;margin:0;padding:0;display:flex;position:fixed;top:min(8dvh,4rem);left:50%;overflow:hidden;translate:-50%;box-shadow:0 12px 40px #00000059}._eb::backdrop{background:#00000059}._ed{margin:0;font-size:1rem;font-weight:600}._ee{flex-direction:column;flex:1;gap:1rem;min-height:0;padding:1rem 1.35rem;display:flex;overflow-y:auto}._ef{border-top:1px solid var(--border);background:var(--panel);flex-wrap:wrap;align-items:center;gap:.35rem;padding:.5rem .65rem;display:flex}@media screen and (width<=899px){._eb{width:auto;max-width:none;max-height:none;height:var(--app-height,100dvh);box-shadow:none;border:none;border-radius:0;inset:0;translate:none}._ec{border:1px solid var(--border);border-radius:calc(var(--radius) + 4px);height:auto;inset:min(8dvh,4rem) auto auto 50%;translate:-50%;box-shadow:0 12px 40px #00000059}._ee{padding-top:max(1rem, calc(env(safe-area-inset-top) + .5rem))}._ef{padding-bottom:max(.5rem, env(safe-area-inset-bottom));padding-left:max(.85rem, calc(env(safe-area-inset-left) + .5rem));padding-right:max(.85rem, calc(env(safe-area-inset-right) + .5rem))}}._eN{width:min(26rem,100vw - 1.5rem)}._bU{gap:1.35rem}._bV{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.5rem;padding-top:.25rem;display:flex}._bW{min-width:10.5rem}._bX{flex-direction:column;gap:.35rem;display:flex}._bY{justify-content:space-between;align-items:center;gap:.5rem;min-height:1.75rem;display:flex}._bZ{flex-direction:column;gap:.25rem;margin:0;padding:0;list-style:none;display:flex}._b0{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:.85rem;overflow:hidden}._b2{background:0 0;border-radius:5px;flex:none;max-width:10rem;padding:.15rem .25rem}._b2:hover,._b2._b1{color:inherit;background:color-mix(in srgb, currentColor 12%, transparent)}._b3{color:var(--dim);background:0 0;border-radius:5px;flex:none;align-items:center;gap:.15rem;padding:.15rem .25rem;font-size:.85rem;display:inline-flex}._b3:hover{color:inherit;background:color-mix(in srgb, currentColor 12%, transparent)}._b3._b1{color:var(--accent);background:color-mix(in srgb, var(--accent) 12%, transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--accent) 35%, transparent)}._b4{background:var(--panel);box-shadow:inset 0 0 0 1px var(--border);border-radius:calc(var(--radius) + 2px);flex-direction:column;gap:.35rem;margin:0;padding:.65rem .85rem;font-size:.85rem;list-style:none;display:flex}._b6{color:var(--lightningcss-light,#1a7f37)var(--lightningcss-dark,#57d364);justify-content:center;align-items:center;width:.9rem;display:inline-flex}._b7{border-top:1px solid color-mix(in srgb, var(--border) 85%, transparent);margin-top:.15rem;padding-top:.35rem}._b8{margin:0;font-size:.85rem}._b_{color:var(--dim);overflow-wrap:anywhere;align-items:center;gap:.5rem;min-width:0;display:flex}._b_._b5{color:var(--text)}@media screen and (width<=899px){._bV{flex-direction:column-reverse;align-items:stretch;margin-top:.25rem}._bW{min-width:0}._bX{gap:.5rem}._bY{margin-bottom:.15rem}._bZ{gap:.35rem}._b0{font-size:.95rem}._b4{gap:.5rem;padding:.85rem 1rem;font-size:.95rem}._b9{flex-wrap:wrap}}._dV{min-width:0;margin-bottom:.65rem}._dW{border:1px solid var(--border);border-radius:var(--radius);margin:.25rem 0 0;padding:.25rem}._dW[hidden]{display:none}._dX{margin:0;padding:0;list-style:none}._dZ{border-radius:var(--radius);align-items:center;gap:.15rem;display:flex}._dZ._dY{background:color-mix(in srgb, var(--accent) 12%, transparent)}._d0{gap:.5rem}._d0:hover{background:0 0}._d2{color:var(--dim);background:0 0;flex:none;font-size:.85rem}._d2:hover,._d2._d1{color:inherit;background:color-mix(in srgb, currentColor 12%, transparent)}._d3{border-radius:var(--radius);color:var(--dim);background:0 0;flex:none;padding:.25rem .35rem;font-size:.85rem}._d3:hover{color:inherit;background:color-mix(in srgb, currentColor 12%, transparent)}._d3._d1{color:var(--accent);background:color-mix(in srgb, var(--accent) 12%, transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--accent) 35%, transparent)}._d4{border-left:2px solid var(--border);margin:.15rem 0 .25rem 1.35rem;padding-left:.5rem}._d5{margin:0;padding:0;list-style:none}._d6{color:var(--dim)}._d7{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}._d8{color:var(--accent)}._d9{justify-content:flex-end;align-items:center;gap:.25rem;display:flex}._d_{flex:1;min-width:0;margin:.25rem 0}@media screen and (width<=899px){._dW{border-radius:calc(var(--radius) + 2px);margin-top:.5rem;padding:.35rem}._d0{gap:.5rem;min-height:2.85rem;padding:.65rem;font-size:1rem}._d2,._d3{font-size:1rem}._d4{margin:.25rem 0 .5rem .5rem;padding:.5rem}._ea{min-height:2.6rem;padding:.65rem}}._eg{width:min(32rem,100vw - 1.5rem)}._eh{margin:0}._ei{color:var(--lightningcss-light,#bf8700)var(--lightningcss-dark,#d4a72c)}._ej{resize:vertical;min-height:7rem;font-size:.85rem;line-height:1.45}._ek{flex-direction:column;gap:.25rem;margin:0;padding:0;list-style:none;display:flex}._el{align-items:center;gap:.35rem;min-width:0;font-size:.85rem;display:flex}._em{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}._en{flex-direction:column;gap:.25rem;display:flex}._eo{background:var(--panel);box-shadow:inset 0 0 0 1px var(--border);border-radius:calc(var(--radius) + 2px);flex-direction:column;gap:.35rem;margin:0;padding:.5rem .65rem;font-size:.85rem;list-style:none;display:flex}._eq{color:var(--dim);overflow-wrap:anywhere;align-items:center;gap:.5rem;min-width:0;display:flex}._eq._ep{color:var(--text)}._er{color:var(--lightningcss-light,#1a7f37)var(--lightningcss-dark,#57d364);justify-content:center;align-items:center;width:.9rem;display:inline-flex}@media screen and (width<=899px){._ej{font-size:1rem}}._cb{content-visibility:hidden}._cc{flex-direction:row;flex:1;min-width:0;height:100%;min-height:0;display:flex}._cd{display:contents}._ce{flex:1;grid-template:minmax(0,1fr) auto/minmax(0,1fr);min-width:0;min-height:0;display:grid;position:relative}._cf{visibility:hidden;flex-direction:column;grid-area:1/1;min-width:0;min-height:0;display:flex}._cf[data-live]{visibility:visible}._ch{grid-template:minmax(0,1fr)/minmax(0,1fr);grid-area:1/1/3/2;min-height:0;display:grid}._ch._cg{grid-template:auto/minmax(0,1fr);grid-area:2/1}._ci{visibility:hidden;flex-direction:column;grid-area:1/1;min-width:0;min-height:0;display:flex}._ci[data-live]{visibility:visible}@media screen and (width<=899px){._cc._ca{flex-direction:column;position:relative}._cc._ca ._ce{flex:none;position:static}._cc._ca ._cf{position:absolute;inset:0}}._fh{position:relative}._fh._fg{color:var(--accent);background:color-mix(in srgb, var(--accent) 12%, transparent)}._fi{background:var(--lightningcss-light,#bf8700)var(--lightningcss-dark,#d4a72c)}._fl{border-right:1px solid var(--border);background:var(--panel);flex-direction:column;flex-shrink:0;width:16rem;display:flex}._fn._fg{color:var(--accent);background:color-mix(in srgb, var(--accent) 12%, transparent)}._fo,._fq,._fs,._ft{display:none}._fu{letter-spacing:-.01em;min-width:0;color:var(--text);align-items:center;gap:.5rem;padding:.85rem .85rem .25rem;font-size:.95rem;font-weight:700;display:flex}._fv{border-radius:5px;flex-shrink:0;width:20px;height:20px}._fw{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}._fx{flex-direction:column;gap:.15rem;min-width:0;display:flex}._fy{flex-direction:column;flex:1;gap:.35rem;min-height:0;padding:.5rem .5rem .25rem;display:flex;overflow-y:auto}._fz{flex-direction:column;flex:1;gap:.25rem;min-height:0;padding:.5rem;display:flex;overflow-y:auto}html.work-no-rail [data-rail]{display:none!important}._fA{align-items:center;gap:.25rem;padding:.25rem .5rem .5rem;display:flex}._fC{z-index:35;min-width:14rem;max-width:20rem;position:fixed}@media screen and (width<=899px){._fl{background:var(--bg,var(--panel));border-right:none;flex:1;width:100%;min-height:0;font-size:1rem;display:none}._fl._fk{display:flex;overflow:hidden}._fm{display:none}._fo{padding:max(.85rem, calc(env(safe-area-inset-top) + .35rem)) max(1rem, calc(env(safe-area-inset-right) + .85rem)) .35rem max(1rem, calc(env(safe-area-inset-left) + .85rem));flex-shrink:0;justify-content:space-between;align-items:center;gap:.65rem;display:flex}._fp{letter-spacing:-.02em;margin:0;font-size:1.45rem;font-weight:700;line-height:1.2}._fq{flex-shrink:0;align-items:center;gap:.35rem;display:flex}._fr{width:2.6rem;height:2.6rem}._fs{margin:.85rem .15rem .35rem;display:block}._fs:first-child{margin-top:.15rem}._ft{gap:.5rem;font-size:1rem;display:inline-flex}._fu{color:var(--dim);padding:0;font-size:.85rem}._fv{width:18px;height:18px}._fy{-webkit-overflow-scrolling:touch;flex-direction:column;gap:.5rem;padding:.5rem .85rem 1rem;overflow-y:auto;display:flex!important}._fl._fk ._fy{gap:0}._fz{display:none!important}._fl._fk ._fA{border-top:1px solid var(--border);background:var(--panel);padding:.85rem max(.85rem, calc(env(safe-area-inset-right) + .5rem)) max(.85rem, env(safe-area-inset-bottom)) max(.85rem, calc(env(safe-area-inset-left) + .5rem));display:flex}._fB{display:none}}@media screen and (width>=900px){._fl._fj{width:auto}._fl._fj ._fm{order:10}._fl._fj ._fu{justify-content:center;padding:.65rem 0 .25rem}._fl._fj ._fw,._fl._fj ._fy{display:none}._fl._fj ._fA{flex-direction:column;justify-content:flex-end}}._hq{min-width:8rem;color:inherit;flex-direction:column;margin:0;display:none;position:fixed;inset:auto}._hq:popover-open{display:flex}._hr{flex:none;gap:.5rem;padding:.5rem .65rem;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}._h1{background:color-mix(in srgb, currentColor 7%, transparent);font-weight:600;position:relative}._h1._hZ,._h1._hZ:hover{background:var(--accent);color:var(--lightningcss-light,#fff)var(--lightningcss-dark,#10131f)}._h1:not(._hZ):hover{background:color-mix(in srgb, currentColor 12%, transparent)}._h3{border-radius:var(--radius);cursor:pointer;flex-shrink:0;padding:.15rem}._h3:not(._hZ):hover,._h3:not(._hZ):focus-within{background:color-mix(in srgb, currentColor 7%, transparent);box-shadow:none}._h4._hZ,._h4:not(._hZ):hover,._h4:not(._hZ):focus-within{box-shadow:none;background:0 0}._h5{align-items:center;display:flex;position:relative}._h6{font-weight:600}._h6:hover{background:0 0}._h3._hZ ._h6{padding-right:5.6rem}._h7{--ws-actions-bg:var(--panel);border-radius:var(--radius);opacity:0;pointer-events:none;background:var(--ws-actions-bg);box-shadow:-.85rem 0 .55rem var(--ws-actions-bg);align-items:center;gap:.15rem;padding:0 .15rem 0 .35rem;transition:opacity .1s;display:flex;position:absolute;top:0;bottom:0;right:0}._h3._hZ ._h7{--ws-actions-bg:color-mix(in srgb, var(--accent) 12%, var(--panel))}._h3:not(._hZ):hover ._h7,._h3:not(._hZ):focus-within ._h7{--ws-actions-bg:color-mix(in srgb, var(--text) 7%, var(--panel))}._h3._hZ ._h7,._h3:hover ._h7,._h3:focus-within ._h7,._h3:has(._h0) ._h7{opacity:1;pointer-events:auto}._h3:has(._hq:popover-open) ._h7{opacity:1;pointer-events:auto}._h4 ._h7{opacity:1;pointer-events:auto;box-shadow:none;background:0 0;padding:0;position:static}._h8{border-radius:var(--radius);flex-wrap:wrap;align-items:center;display:flex}._h8._hZ{background:color-mix(in srgb, var(--accent) 12%, transparent)}._h9{color:var(--dim);line-height:1}._h7 ._h9{color:var(--text);background:color-mix(in srgb, var(--text) 8%, var(--ws-actions-bg))}._h7 ._h9:hover{background:color-mix(in srgb, var(--text) 14%, var(--ws-actions-bg))}._h7 ._h9._h0,._h7 ._h9._h0:hover{color:var(--accent);background:color-mix(in srgb, var(--accent) 16%, var(--ws-actions-bg))}._h4 ._h7 ._h9{background:color-mix(in srgb, var(--text) 8%, var(--panel))}._h4 ._h7 ._h9:hover{background:color-mix(in srgb, var(--text) 14%, var(--panel))}._h8 ._h9{visibility:hidden;background:0 0}._h8:hover ._h9,._h8:focus-within ._h9{visibility:visible}._h8 ._h9:hover{color:var(--text);background:color-mix(in srgb, currentColor 12%, transparent)}._h_{line-height:1}._h8 ._h_{visibility:hidden}._h8:hover ._h_,._h8:focus-within ._h_,._h8 ._h_._q{visibility:visible}._ia{color:var(--dim);flex-shrink:0}._ib{flex-direction:column;flex:1;gap:.15rem;min-width:0;display:flex}._ic{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}._id{padding:0 .5rem .15rem}._ie{text-overflow:ellipsis;flex-basis:100%;min-width:0;margin-top:-.15rem;padding:0 .5rem .15rem;line-height:1.2;overflow:hidden}._if,._ig{display:none}._ii{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}._ij{display:contents}._ik{flex-shrink:0;margin-left:.5rem}._il{font-weight:500}._im{flex-direction:column;gap:.15rem;padding:.15rem .15rem .25rem .85rem;display:flex}._im:not(:has(*)){display:none}._in{text-overflow:ellipsis;white-space:nowrap;padding:.25rem .5rem;overflow:hidden}._in:hover{background:0 0}._h8:not(._hZ) ._in:hover{background:color-mix(in srgb, currentColor 7%, transparent)}._io{vertical-align:-2px;opacity:.75;margin-right:.15rem;display:inline-block}._ip{cursor:default}._ip:hover{background:0 0}._iq{flex-shrink:0;margin-top:.15rem}._ir{color:var(--lightningcss-light,#bf8700)var(--lightningcss-dark,#d4a72c);flex-shrink:0;margin-top:.15rem}._is{color:var(--dim);white-space:nowrap;text-overflow:ellipsis;font-size:.78rem;line-height:1.25;overflow:hidden}@media screen and (width<=899px){._h2{border-radius:calc(var(--radius) + 4px);background:var(--panel);box-shadow:inset 0 0 0 1px var(--border);margin:0 0 .5rem;padding:0;overflow:hidden}._h2._hZ{background:color-mix(in srgb, var(--accent) 10%, var(--panel));box-shadow:inset 0 0 0 1.5px color-mix(in srgb, var(--accent) 55%, transparent), 0 6px 18px color-mix(in srgb, var(--accent) 12%, transparent)}._h3._hZ ._h6{padding-right:.5rem}._h2 ._h6{border-radius:0;align-items:flex-start;gap:.65rem;min-height:3.5rem;padding:1rem;font-size:1.1rem}._h2 ._h8{background:color-mix(in srgb, currentColor 7%, transparent);border-radius:calc(var(--radius) + 2px)}._h2 ._h8._hZ{background:color-mix(in srgb, var(--accent) 16%, transparent)}._h2 ._h8 ._h9{visibility:visible;color:color-mix(in srgb, var(--dim) 85%, transparent);font-size:1rem}._h_{width:2.6rem;height:2.6rem}._h2 ._h8 ._h_{visibility:visible;font-size:1rem}._h2 ._h8 ._h_:not(._q){color:color-mix(in srgb, var(--dim) 85%, transparent)}._h2 ._ia{width:1rem;height:1rem;margin-top:.25rem}._h2 ._ic{letter-spacing:-.01em;font-size:1.1rem;font-weight:600}._h2 ._if{color:var(--dim);white-space:nowrap;text-overflow:ellipsis;font-size:.85rem;font-weight:500;line-height:1.25;display:block;overflow:hidden}._h2._hZ ._ig{align-self:center;margin-left:.25rem;display:inline-flex}._h2 ._ih{width:9px;height:9px;margin-top:.5rem}._h2 ._ij{flex-shrink:0;align-items:center;gap:.15rem;padding-right:.25rem;display:flex}._h2 ._im{gap:.25rem;padding:0 .5rem .65rem}._h2 ._im:not(:has(*)){display:none}._h2 ._in{gap:.5rem;min-height:2.85rem;padding:.65rem;font-size:1rem;font-weight:500}._h2 ._is{font-size:.85rem}}._gw{font-variant-numeric:tabular-nums;color:var(--dim);white-space:nowrap;align-items:baseline;gap:.25rem;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.72rem;display:inline-flex}._gx{opacity:.6}._gy{align-items:baseline;gap:.3em;display:inline-flex}._gA{font-weight:600}._gB{color:color-mix(in srgb, var(--dim) 60%, transparent);margin-right:.15em}._iw{z-index:1;cursor:default;flex-wrap:wrap;gap:.25rem;padding:.25rem .15rem .15rem;display:flex;position:relative}._ix{--chip-split:color-mix(in srgb, currentColor 22%, transparent);align-items:stretch;gap:0;padding:0;overflow:hidden}._iA{min-height:100%;color:inherit;line-height:1.5;font:inherit;cursor:pointer;background:0 0;border:0;border-left:1px solid #0000;border-radius:0;justify-content:center;align-self:stretch;align-items:center;margin:0;padding:.05em .4em;text-decoration:none;display:inline-flex}._iA:first-child{padding-left:.55em;padding-right:.45em}._iA+._iA{border-left-color:var(--chip-split);padding-left:.35em;padding-right:.35em}._iA:last-child{padding-right:.45em}._iA:first-child:hover{background:color-mix(in srgb, currentColor 12%, transparent)}a._iA:first-child:hover{color:var(--lightningcss-light,#116329)var(--lightningcss-dark,#7ee787)}._iB:hover{color:var(--accent);background:color-mix(in srgb, var(--accent) 12%, transparent)}._iC:hover{color:var(--danger);background:color-mix(in srgb, var(--danger) 12%, transparent)}._iC._iC._q,._iC._iC._q:hover{color:#fff;background:var(--danger)}._iE{color:var(--lightningcss-light,#8250df)var(--lightningcss-dark,#a371f7)}._iF{color:var(--lightningcss-light,#cf222e)var(--lightningcss-dark,#f85149)}._iG:hover{background:color-mix(in srgb, currentColor 12%, transparent)}a._iH:first-child:hover{color:inherit;background:color-mix(in srgb, currentColor 12%, transparent)}@media screen and (width<=899px){._iw{gap:.35rem;padding:.5rem .5rem .15rem}._ix{border-radius:999px;min-height:2rem;font-size:.85rem}._iA{padding-top:.28em;padding-bottom:.28em}._iA:first-child{padding-left:.65em}._iA:last-child{padding-right:.55em}}._fa{gap:1.35rem}._fb{flex-wrap:wrap;align-items:baseline;gap:.35rem .5rem;display:inline-flex}._fc{color:var(--text,inherit);font-weight:600}._fd{opacity:.45}._fe{text-overflow:ellipsis;white-space:nowrap;opacity:.85;min-width:0;overflow:hidden}._ff{-webkit-line-clamp:2;overflow-wrap:anywhere;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}@media screen and (width<=899px){._fd{display:none}._fe{white-space:normal;text-overflow:unset;word-break:break-all;flex:100%;overflow:visible}}.xterm{cursor:text;-webkit-user-select:none;user-select:none;position:relative}.xterm.focus,.xterm:focus{outline:none}.xterm .xterm-helpers{z-index:5;position:absolute;top:0}.xterm .xterm-helper-textarea{opacity:0;z-index:-5;white-space:nowrap;resize:none;border:0;width:0;height:0;margin:0;padding:0;position:absolute;top:0;left:-9999em;overflow:hidden}.xterm .composition-view{color:#fff;white-space:nowrap;z-index:1;background:#000;display:none;position:absolute}.xterm .composition-view.active{display:block}.xterm .xterm-viewport{cursor:default;background-color:#000;position:absolute;inset:0;overflow-y:scroll}.xterm .xterm-screen{position:relative}.xterm .xterm-screen canvas{position:absolute;top:0;left:0}.xterm-char-measure-element{visibility:hidden;line-height:normal;display:inline-block;position:absolute;top:0;left:-9999em}.xterm.enable-mouse-events{cursor:default}.xterm.xterm-cursor-pointer,.xterm .xterm-cursor-pointer{cursor:pointer}.xterm.column-select.focus{cursor:crosshair}.xterm .xterm-accessibility:not(.debug),.xterm .xterm-message{z-index:10;color:#0000;pointer-events:none;position:absolute;inset:0}.xterm .xterm-accessibility-tree:not(.debug) ::selection{color:#0000}.xterm .xterm-accessibility-tree{-webkit-user-select:text;user-select:text;white-space:pre;font-family:monospace}.xterm .xterm-accessibility-tree>div{transform-origin:0;width:fit-content}.xterm .live-region{width:1px;height:1px;position:absolute;left:-9999px;overflow:hidden}.xterm-dim{opacity:1!important}.xterm-underline-1{text-decoration:underline}.xterm-underline-2{-webkit-text-decoration:underline double;text-decoration:underline double}.xterm-underline-3{-webkit-text-decoration:underline wavy;text-decoration:underline wavy}.xterm-underline-4{-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.xterm-underline-5{-webkit-text-decoration:underline dashed;text-decoration:underline dashed}.xterm-overline{text-decoration:overline}.xterm-overline.xterm-underline-1{text-decoration:underline overline}.xterm-overline.xterm-underline-2{-webkit-text-decoration:overline double underline;text-decoration:overline double underline}.xterm-overline.xterm-underline-3{-webkit-text-decoration:overline wavy underline;text-decoration:overline wavy underline}.xterm-overline.xterm-underline-4{-webkit-text-decoration:overline dotted underline;text-decoration:overline dotted underline}.xterm-overline.xterm-underline-5{-webkit-text-decoration:overline dashed underline;text-decoration:overline dashed underline}.xterm-strikethrough{text-decoration:line-through}.xterm-screen .xterm-decoration-container .xterm-decoration{z-index:6;position:absolute}.xterm-screen .xterm-decoration-container .xterm-decoration.xterm-decoration-top-layer{z-index:7}.xterm-decoration-overview-ruler{z-index:8;pointer-events:none;position:absolute;top:0;right:0}.xterm-decoration-top{z-index:2;position:relative}.xterm .xterm-scrollable-element>.scrollbar{cursor:default}.xterm .xterm-scrollable-element>.scrollbar>.scra{cursor:pointer;font-size:11px!important}.xterm .xterm-scrollable-element>.visible{opacity:1;z-index:11;background:0 0;transition:opacity .1s linear}.xterm .xterm-scrollable-element>.invisible{opacity:0;pointer-events:none}.xterm .xterm-scrollable-element>.invisible.fade{transition:opacity .8s linear}.xterm .xterm-scrollable-element>.shadow{display:none;position:absolute}.xterm .xterm-scrollable-element>.shadow.top{width:100%;height:3px;box-shadow:var(--vscode-scrollbar-shadow,#000) 0 6px 6px -6px inset;display:block;top:0;left:3px}.xterm .xterm-scrollable-element>.shadow.left{width:3px;height:100%;box-shadow:var(--vscode-scrollbar-shadow,#000) 6px 0 6px -6px inset;display:block;top:3px;left:0}.xterm .xterm-scrollable-element>.shadow.top-left-corner{width:3px;height:3px;display:block;top:0;left:0}.xterm .xterm-scrollable-element>.shadow.top.left{box-shadow:var(--vscode-scrollbar-shadow,#000) 6px 0 6px -6px inset}._iI{z-index:2;pointer-events:none;display:none;position:absolute;overflow:hidden}._iJ{box-sizing:border-box;background:#ffb00059;outline:1px solid #c98400;position:absolute}._iK{background:#ffb000;outline:2px solid #1a1408}.xterm .xterm-viewport{overflow:hidden!important}.xterm .xterm-scrollable-element>.scrollbar{opacity:0!important;visibility:hidden!important;pointer-events:none!important;width:0!important;min-width:0!important;max-width:0!important;height:0!important;display:none!important}.xterm .xterm-scrollable-element>.scrollbar>.slider{width:0!important;height:0!important;display:none!important}.xterm .xterm-scrollable-element>.shadow{display:none!important}._es{flex-shrink:0}._et{padding:.35rem max(1.5rem, calc(env(safe-area-inset-right) + .75rem)) max(.75rem, env(safe-area-inset-bottom)) max(1.5rem, calc(env(safe-area-inset-left) + .75rem));border-top:1px solid var(--border);background:var(--panel);align-items:center;gap:.25rem;display:flex;position:relative}._eu{align-items:center;gap:inherit;flex:auto;min-width:0;display:flex}._ev{display:none}._ew{flex:1;justify-content:center;align-items:center;min-width:0;display:flex}._ex{color:var(--dim);bottom:max(.3rem, calc(env(safe-area-inset-bottom) - 1rem));left:max(1.5rem, calc(env(safe-area-inset-left) + .75rem));right:max(1.5rem, calc(env(safe-area-inset-right) + .75rem));pointer-events:none;justify-content:center;align-items:center;gap:.25rem;font-size:.78rem;line-height:1;display:flex;position:absolute}._ey{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}._eA,._eA:hover{background:color-mix(in srgb, currentColor 7%, transparent)}._eA:active{background:color-mix(in srgb, var(--accent) 16%, transparent)}._eA:disabled{opacity:.35;pointer-events:none}._eA._ez,._eA._ez:hover{color:var(--accent);background:color-mix(in srgb, var(--accent) 16%, transparent)}@media screen and (width<=399px){._et{gap:.15rem}._eA{width:2.15rem;height:2.15rem}}@keyframes _fI{0%{opacity:0;translate:-50% .25rem}12%{opacity:1;translate:-50%}75%{opacity:1}to{opacity:0}}._fD{flex-direction:column;flex:1;min-height:0;display:flex;position:relative}._fE{background:#000;flex:1;min-height:0;position:relative;overflow:hidden}._fF{z-index:10;background:#0000008c;flex-direction:column;justify-content:center;align-items:center;gap:.65rem;display:flex;position:absolute;inset:0}._fG{color:#fff;opacity:.85;margin:0;font-size:.85rem}._fH{gap:.5rem;display:flex}._fJ{z-index:10;color:var(--accent);background:color-mix(in srgb, var(--accent) 14%, var(--panel));border:1px solid color-mix(in srgb, var(--accent) 35%, var(--border));pointer-events:none;border-radius:999px;padding:.25rem .85rem;font-size:.78rem;animation:1.2s forwards _fI;position:absolute;bottom:1rem;left:50%;translate:-50%}._fK{color:var(--dim);background:var(--panel);border:1px solid var(--border);border-radius:999px;padding:.15rem .65rem;font-size:.78rem;position:absolute;top:.35rem;right:.65rem}._fL{z-index:30;background:#00000073;place-items:start center;padding-top:15dvh;display:grid;position:fixed;inset:0}._fM{background:var(--panel);border:1px solid var(--border);border-radius:calc(var(--radius) + 4px);flex-direction:column;gap:.65rem;width:min(20rem,85vw);padding:1rem;display:flex}._fN{position:relative}._fO{min-width:9rem;color:inherit;flex-direction:column;margin:0;display:none;position:fixed;inset:auto}._fO:popover-open{display:flex}._fQ{border-radius:var(--radius);align-items:center;display:flex}._fQ._fP{background:color-mix(in srgb, var(--accent) 12%, transparent)}._fR{gap:.5rem;padding:.5rem .65rem;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}._fS{flex-direction:column;flex:1;gap:.15em;min-width:0;display:flex}._fT{font-size:.72rem}._fU{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}._fV{margin:.25rem .35rem .25rem 0;padding:.35rem .5rem;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}._fW{border-radius:var(--radius);width:2.2rem;color:var(--dim);flex-shrink:0;justify-content:center;align-self:stretch;align-items:center;line-height:1;display:inline-flex}._fX:hover{color:var(--text)}._fY{border-top:1px solid var(--border);align-items:center;gap:.25rem;margin-top:.25rem;padding-top:.35rem;display:flex}._fZ{color:var(--dim);white-space:nowrap;margin-right:auto;padding-left:.35rem;padding-right:.5rem;font-size:.78rem}._f0{background:var(--panel);border:1px solid var(--border);border-radius:calc(var(--radius) + 4px);color:inherit;grid-template-columns:repeat(3,3rem);grid-auto-rows:3rem;gap:.25rem;margin:0;padding:.35rem;position:fixed;inset:auto .5rem 6.5rem auto}._f0:popover-open{display:grid!important}._f1{background:color-mix(in srgb, currentColor 7%, transparent);border-radius:var(--radius);justify-content:center;align-items:center;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:1rem;display:inline-flex}._f1:active{background:color-mix(in srgb, var(--accent) 16%, transparent)}._f3{touch-action:none;-webkit-user-select:none;user-select:none}._f4{background:color-mix(in srgb, var(--accent) 16%, transparent);color:var(--accent)}._f5{letter-spacing:.02em;font-size:.78rem;font-weight:600}._f6{text-align:center;color:var(--dim);margin:0}._fE .xterm{height:100%;padding:0}._gC{opacity:0;pointer-events:none;visibility:hidden;border:0;width:1px;height:1px;margin:0;padding:0;position:absolute;overflow:hidden}._gD{box-sizing:border-box;background:color-mix(in srgb, currentColor 7%, transparent);border:1px solid var(--border);border-radius:var(--radius);flex:18rem;align-items:center;gap:.25rem;width:min(22rem,100%);min-width:12rem;max-width:28rem;height:2.15rem;margin-left:0;padding:0 .25rem 0 0;display:flex}._gD:focus-within{outline:1px solid color-mix(in srgb, var(--accent) 60%, transparent);outline-offset:-1px}._gE{box-sizing:border-box;border-radius:calc(var(--radius) - 1px) 0 0 calc(var(--radius) - 1px);background:0 0;border:0;flex:1;min-width:6rem;height:100%;padding:0 .5rem;line-height:1.2}._gE:focus,._gE:focus-visible{outline:none}._gF{width:100%;min-width:0;max-width:none;box-shadow:none;flex:none;margin-left:0;position:relative;top:auto;right:auto}._gF._gD{background:var(--panel);border-color:var(--border)}._gG{font-variant-numeric:tabular-nums;text-align:center;width:3.2rem;color:var(--dim);flex-shrink:0;font-size:.72rem}._gH{width:1.85rem;height:1.85rem}._gI{flex-direction:column;gap:.25rem;min-width:0;display:flex}._gJ{z-index:15;border-radius:var(--radius);width:min(22rem,100% - 1rem);position:absolute;top:.5rem;right:.5rem;box-shadow:0 8px 24px #00000040}._gK{flex:auto;width:auto;min-width:0}._gL{z-index:auto;width:auto;min-width:0;max-width:none;height:2.6rem;box-shadow:none;background:color-mix(in srgb, currentColor 7%, transparent);flex:auto;margin:0;position:relative;top:auto;left:auto;right:auto}._gM{visibility:hidden;pointer-events:none;opacity:0;width:1px;height:1px;position:absolute;overflow:hidden}._gN{min-width:0}._gO{width:2.15rem;height:2.15rem}@media screen and (width<=899px){._gD:not(._gC){flex:100%;width:100%;min-width:0;max-width:none;margin-left:0}._gE{min-width:0}._gG{width:auto;min-width:2.5rem}}
@@ -0,0 +1 @@
1
+ @keyframes _gp{0%,to{opacity:.55}50%{opacity:1}}._f7{flex:1;height:100%;min-height:0;display:flex;position:relative;overflow:hidden}._f_{display:none}._f_._f8{color:var(--accent);background:color-mix(in srgb, var(--accent) 12%, transparent)}._ga{flex-wrap:wrap;align-items:center;gap:.35rem;min-width:0;display:flex}._gb{flex-direction:column;flex:1;min-width:0;padding-top:.65rem;display:flex}._gc{flex-direction:column;gap:.5rem;margin-bottom:.65rem;padding-inline:.65rem;display:flex}._gd{margin-right:.25rem}._ge{display:contents}._gf{min-width:0;color:var(--dim);font-variant-numeric:tabular-nums;white-space:nowrap;flex-shrink:0;font-size:.85rem;font-weight:600}._gg{flex-shrink:0}._gh{margin-left:auto}._gi{pointer-events:none;flex:0 0 0;width:0;min-width:0;margin-left:0;overflow:visible}._gj{min-width:0;margin-left:auto;display:flex}._gk{flex:1;min-width:0;min-height:0;padding:0 .65rem .65rem;overflow:hidden auto}._gm{flex-wrap:nowrap;align-items:center;gap:.5rem;min-width:0;display:flex}._gn{flex:none;display:inline-flex}._go{min-width:0;min-height:2.15rem;padding:0 1.6rem 0 .5rem;font-size:.78rem;font-weight:600;line-height:1.5}._gq{flex-direction:column;gap:.35rem;animation:1.6s ease-in-out infinite _gp;display:flex}._gr{border-radius:var(--radius);background:color-mix(in srgb, currentColor 7%, transparent)}._gs{width:60%;height:2.1rem;margin-bottom:.35rem}._gt{height:2.2rem}._gu{background:color-mix(in srgb, color-mix(in srgb, currentColor 7%, transparent) 55%, transparent);height:9rem;margin-bottom:.35rem}._gv{white-space:nowrap;font-size:.85rem;display:none}@media screen and (width>=900px){._f_{display:inline-flex}._ga{flex-wrap:nowrap;flex:auto;margin-left:.35rem}._gc{border-bottom:1px solid color-mix(in srgb, var(--border) 88%, transparent);flex-flow:row;align-items:center;gap:.5rem;margin-bottom:.5rem;padding-bottom:.65rem}._ge{flex-shrink:0;order:1;margin-left:.35rem;display:block}._gj{max-width:24rem}._gm{display:contents}}@media screen and (width<=899px){._f9{flex:none;width:2.15rem;height:2.15rem}._ga{box-shadow:none;background:0 0;flex-wrap:nowrap;gap:.35rem;margin:0;padding:0}._gb{padding-top:env(safe-area-inset-top)}._gc{margin:.25rem max(.5rem, calc(env(safe-area-inset-left) + .25rem)) .5rem max(.5rem, calc(env(safe-area-inset-right) + .25rem));background:var(--panel);box-shadow:inset 0 0 0 1px var(--border);border-radius:calc(var(--radius) + 2px);gap:.35rem;padding:.35rem}._gd{display:none!important}._gf{flex:auto;font-size:.78rem}._gg{display:none}._gh{display:none!important}._gi{opacity:0;pointer-events:none;flex:none;width:1px;min-width:0;height:1px;margin:0;padding:0;position:fixed;bottom:0;left:0;overflow:hidden}._gj:not(._gi){z-index:35;width:auto;min-width:0;padding:.35rem max(1.5rem, calc(env(safe-area-inset-right) + .75rem)) max(.75rem, env(safe-area-inset-bottom)) max(1.5rem, calc(env(safe-area-inset-left) + .75rem));background:var(--panel);border-top:1px solid var(--border);box-sizing:border-box;flex:none;align-items:center;margin:0;display:flex;position:fixed;bottom:0;left:0;right:0}._gk{padding-inline:max(.2rem, env(safe-area-inset-left)) max(.2rem, env(safe-area-inset-right));padding-bottom:.5rem}._gm{flex-wrap:wrap;gap:.35rem;min-height:0}._gm._gl{display:none}._go{min-height:2.35rem}._gv{min-width:0;min-height:2.15rem;color:var(--text);white-space:nowrap;flex:auto;justify-content:center;align-items:center;padding:0 .5rem;font-size:.85rem;font-weight:600;display:inline-flex}}._gP{flex-wrap:wrap;align-items:center;gap:.35rem;min-width:0;max-width:100%;margin-left:auto;display:flex}._gQ{border-radius:var(--radius);background:var(--panel);border:1px solid var(--accent);align-items:stretch;min-width:0;max-width:100%;display:inline-flex;position:relative;overflow:hidden}._gQ:after{content:"";pointer-events:none;border-bottom:1.5px solid;border-right:1.5px solid;border-color:var(--accent);width:.32em;height:.32em;position:absolute;top:50%;right:.65rem;translate:0 -70%;rotate:45deg}._gR{border-radius:0;justify-content:center;align-items:center;gap:.35rem;padding:.35rem .65rem;display:inline-flex}._gR:disabled{opacity:.6}._gS{appearance:none;min-width:0;max-width:8rem;color:var(--accent);background:color-mix(in srgb, var(--accent) 12%, transparent);border:0;border-radius:0;padding:.25rem 1.5rem .25rem .65rem;font-size:.85rem;font-weight:500}._gS:disabled{opacity:.6}._ht{color:#1a1408;background:#ffb000;border-radius:5px;padding:0 .25rem;box-shadow:0 0 0 1px #c98400}._hu+._hu{margin-top:1rem}._hv{border:1px solid var(--border);border-radius:var(--radius);background:color-mix(in srgb, var(--panel) 70%, transparent);flex-wrap:wrap;align-items:center;gap:.35rem .5rem;width:100%;min-width:0;margin-bottom:.5rem;padding:.35rem;font-weight:700;display:flex}._hw{opacity:.88;background:0 0;border-style:dashed}._hx{min-width:0;font-weight:inherit;text-align:left;border-radius:5px;align-items:center;gap:.35rem;margin:-.15rem -.25rem;padding:.15rem .25rem;display:inline-flex}._hx:hover{background:color-mix(in srgb, currentColor 8%, transparent)}._hy{text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:100%;overflow:hidden}._hw ._hy{color:var(--dim)}._hz{font-variant-numeric:tabular-nums;color:var(--dim);white-space:nowrap;flex-shrink:0;align-items:center;gap:.35rem;margin-left:auto;font-size:.72rem;font-weight:500;display:inline-flex}._hA{color:color-mix(in srgb, var(--lightningcss-light,#1a7f37)var(--lightningcss-dark,#57d364) 55%, var(--dim))}._hB{color:color-mix(in srgb, var(--danger) 55%, var(--dim))}._hD{color:var(--accent);border-radius:5px;margin:0 -.25rem;padding:0 .25rem;font-weight:600}._hD:hover{background:color-mix(in srgb, var(--accent) 12%, transparent)}._hD._hC{background:color-mix(in srgb, var(--accent) 12%, transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--accent) 35%, transparent)}._hE{text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:100%;font-size:.78rem;font-weight:400;overflow:hidden}._hF{min-width:0;max-width:100%;color:var(--dim);flex-wrap:wrap;align-items:center;gap:.25rem;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.78rem;font-weight:500;line-height:1.35;display:inline-flex}._hG{text-overflow:ellipsis;max-width:12rem;box-shadow:inset 0 0 0 1px var(--border);display:inline-block;overflow:hidden}._hH{text-overflow:ellipsis;max-width:12rem;box-shadow:inset 0 0 0 1px var(--border);background:color-mix(in srgb, currentColor 7%, transparent);color:var(--text);display:inline-block;overflow:hidden}._hI{color:color-mix(in srgb, var(--dim) 80%, transparent);flex-shrink:0}._hJ{text-overflow:ellipsis;max-width:14rem;box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--accent) 35%, transparent);display:inline-block;overflow:hidden}._hK{white-space:nowrap;font-weight:500}._hL{background:var(--accent)}._hM{flex-direction:column;gap:.65rem;display:flex}._hN{min-width:0}._hP{content-visibility:auto;contain-intrinsic-size:auto 24rem}._hs>._hP{content-visibility:visible}._hQ{cursor:pointer;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);z-index:1;align-items:center;gap:.5rem;padding:.35rem .5rem;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.85rem;list-style:none;display:flex}._hO[open]>._hQ{position:sticky;top:0}._hN[open]>._hQ{border-bottom-color:color-mix(in srgb, var(--border) 70%, transparent);border-bottom-right-radius:0;border-bottom-left-radius:0}._hR{background:color-mix(in srgb, var(--panel) 55%, transparent);border:none;border-radius:0;min-height:24rem}._hS{width:1.25rem;height:1.25rem;color:var(--dim);background:color-mix(in srgb, currentColor 7%, transparent);box-shadow:inset 0 0 0 1px var(--border);border-radius:5px;flex-shrink:0;justify-content:center;align-items:center;font-size:.65rem;line-height:1;display:inline-flex}._hT{color:var(--text);background:color-mix(in srgb, currentColor 7%, transparent)}._hU{opacity:.45}._hV{flex:1}._hN:not([open])>._hQ ._hV{white-space:normal;overflow-wrap:anywhere;direction:ltr}._hW{color:var(--dim);padding:.5rem}._hX{color:var(--dim);flex-shrink:0;margin-left:auto}._hY{color:var(--accent);background:color-mix(in srgb, var(--accent) 12%, transparent)}@media screen and (width<=899px){._hu{box-shadow:none;background:0 0;border-radius:0;margin:0;padding:0}._hu+._hu{border-top:1px solid var(--border);margin-top:.85rem;padding-top:.35rem}._hv{margin-bottom:.35rem;padding:.25rem .5rem .35rem;font-size:1rem}._hM{gap:.5rem}._hQ{border-left:none;border-right:none;border-radius:0;gap:.5rem;min-height:2.5rem;padding:.5rem;font-size:.85rem}._hN[open]>._hQ{border-radius:0}}._iv{--diffs-font-size:12.5px;border:none;border-radius:0;max-width:100%;overflow:hidden}@media screen and (width<=899px){._iv{--diffs-font-size:11.5px}}._gU{--tree-repo:1.75rem;--tree-dir:1.375rem;border-left:1px solid var(--border);flex-direction:column;flex-shrink:0;width:15rem;font-size:.78rem;display:none;overflow:hidden}._gV{background:var(--panel);border-bottom:1px solid var(--border);flex-shrink:0;padding:.35rem}._gW{flex:1;min-height:0;padding:.35rem .35rem .65rem;overflow-y:auto}._gX{color:var(--dim);margin:0;padding:.35rem}._gY+._gY{margin-top:.65rem}._gZ{z-index:20;background:var(--bg);width:100%;height:var(--tree-repo);text-align:left;align-items:center;gap:.25rem;padding:0 .35rem;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-weight:700;display:flex;position:sticky;top:0}._g2{top:calc(var(--tree-repo) + var(--depth) * var(--tree-dir));z-index:calc(19 - var(--depth));background:var(--bg);color:var(--dim);width:100%;height:var(--tree-dir);text-align:left;padding:0 .35rem 0 calc(.35rem + var(--depth) * .75rem);align-items:center;gap:.25rem;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.72rem;display:flex;position:sticky}._g2:hover{color:var(--text)}._g3{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}._g4{opacity:.55}._g5{text-align:left;width:100%;padding:.15rem .35rem .15rem calc(.5rem + var(--depth) * .75rem);border-radius:var(--radius);align-items:flex-start;gap:.35rem;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;display:flex}._g5:hover{background:color-mix(in srgb, currentColor 7%, transparent)}._g6{overflow-wrap:anywhere;flex:1;min-width:0}._g7{background:var(--accent);flex-shrink:0;align-self:center}._g8{color:var(--dim);align-items:center;display:inline-flex}._g9{color:var(--dim);flex-shrink:0;align-items:center;display:inline-flex}@media screen and (width>=900px){._gU{display:flex}._gU._gT{display:none}}._it{flex:1;align-items:center;width:100%;min-width:0;display:flex}._iu{box-sizing:border-box;border-radius:var(--radius);flex:1;width:100%;min-width:0;height:2.15rem;padding:0 .65rem;line-height:1.2}._g_{font-size:1.25rem}._ha{letter-spacing:-.02em;font-size:1.1rem;font-weight:700}._hb{z-index:35;background:#00000059;position:fixed;inset:0}._hc{z-index:35;left:0;right:0;bottom:calc(100dvh - var(--app-height,100dvh));max-height:min(calc(var(--app-height,100dvh) * .75), 34rem);background:var(--panel);border-top:1px solid var(--border);border-radius:calc(var(--radius) + 4px) calc(var(--radius) + 4px) 0 0;padding-bottom:env(safe-area-inset-bottom);flex-direction:column;display:flex;position:fixed;box-shadow:0 -10px 30px #0000002e}._hd{align-items:center;gap:.65rem;padding:.85rem .5rem .5rem 1rem;display:flex}._he{color:var(--dim);flex:1;font-size:.85rem}._hf{--sheet-repo:2rem;min-height:0;padding:0 .5rem .65rem;overflow-y:auto}._hg+._hg{margin-top:.5rem}._hh{z-index:2;background:var(--panel);height:var(--sheet-repo);align-items:center;padding:0 .35rem;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.85rem;font-weight:700;display:flex;position:sticky;top:0}._hi{flex-direction:column;gap:.25rem;display:flex}._hi+._hi{margin-top:.35rem}._hj{text-align:left;border-radius:calc(var(--radius) + 2px);background:color-mix(in srgb, currentColor 7%, transparent);width:100%;min-height:2.85rem;box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--border) 80%, transparent);flex-shrink:0;align-items:center;gap:.5rem;padding:.65rem;font-size:.95rem;display:flex}._hk{top:var(--sheet-repo);z-index:1;background:var(--panel);height:1.75rem;color:var(--dim);padding:0 .35rem;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.78rem;line-height:1.75rem;position:sticky}._hl{overflow-wrap:anywhere;flex:1;min-width:0;line-height:1.25}._hm{padding:0 .5rem .5rem}._hn{color:var(--dim);text-align:center;margin:0;padding:.65rem}._ho{background:var(--accent)}._hp{color:var(--dim)}
@@ -0,0 +1 @@
1
+ import{rn as e}from"./_CYNQgKbT.js";e();
@@ -0,0 +1 @@
1
+ import{rn as e}from"./_CYNQgKbT.js";e();
@@ -0,0 +1 @@
1
+ import{rn as e}from"./_CYNQgKbT.js";e();
@@ -0,0 +1 @@
1
+ import{rn as e}from"./_CYNQgKbT.js";e();
@@ -0,0 +1 @@
1
+ import{rn as e}from"./_CYNQgKbT.js";e();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dylanpiercey/work",
3
- "version": "0.0.136",
3
+ "version": "0.0.138",
4
4
  "type": "module",
5
5
  "description": "Web GUI for agentic dev workspaces",
6
6
  "license": "MIT",
package/dist/_B1bgL2tH.js DELETED
@@ -1,2 +0,0 @@
1
- import { n as muteAutoPush } from "./_DwK89Lz-.js";
2
- export { muteAutoPush };
package/dist/_BIxwPE98.js DELETED
@@ -1,2 +0,0 @@
1
- import { n as pokeStatusWatch } from "./_BZpXh6Js.js";
2
- export { pokeStatusWatch };
package/dist/_BZpXh6Js.js DELETED
@@ -1,352 +0,0 @@
1
- import { U as subscriberCount, V as publish, W as subscriberJoins, dt as all, ft as db, g as sessionStates, l as listSessions } from "./_BJg54Xa1.js";
2
- import { A as portsByWorkspace, J as hostToken, K as forgetToken, M as headOid, Q as ownsBranch, R as repoParent, V as DEFAULT_HOST, Y as joinRepo, Z as splitRepo, h as listWorkspaces, o as pushFailureFor, q as graphqlUrl, z as swr } from "./_DwK89Lz-.js";
3
- import path from "node:path";
4
- //#region src/server/github-api.ts
5
- /** Run a GraphQL query against one host.
6
- *
7
- * Partial failures come back as a populated `errors` alongside usable `data`
8
- * — one repo deleted, renamed, or outside this token's scope. Callers want
9
- * the repos that did resolve, so `data` wins whenever it is present; this
10
- * matches how the `gh` path treated a non-zero exit with usable stdout. */
11
- async function graphql(query, host = DEFAULT_HOST) {
12
- const res = await fetch(graphqlUrl(host), {
13
- method: "POST",
14
- headers: {
15
- authorization: `Bearer ${await hostToken(host)}`,
16
- "content-type": "application/json",
17
- accept: "application/vnd.github+json",
18
- "user-agent": "work"
19
- },
20
- body: JSON.stringify({ query })
21
- });
22
- if (!res.ok && res.status !== 200) {
23
- if (res.status === 401 || res.status === 403) forgetToken(host);
24
- throw new Error(`github graphql ${res.status}`);
25
- }
26
- const body = await res.json();
27
- if (!body?.data) throw new Error(body?.errors?.[0]?.message || "graphql response without data");
28
- return body.data;
29
- }
30
- //#endregion
31
- //#region src/server/prs.ts
32
- var TTL_MS$1 = 12e4;
33
- /** PRs whose head is the workspace branch or one of its `-topic` lanes.
34
- * `exclude` lists other workspaces' branches — slugs are user-chosen, so
35
- * another workspace's branch can extend this prefix and its PRs must not
36
- * be attributed here. */
37
- function prsForBranchPrefix(prs, prefix, exclude = []) {
38
- return prs.filter((pr) => ownsBranch(pr.headRefName, prefix) && !exclude.some((x) => ownsBranch(pr.headRefName, x)));
39
- }
40
- /** `[host/]owner/name#branch` — the host prefix travels with the name. */
41
- var branchKey = (fullName, branch) => `${fullName}#${branch}`;
42
- /** One workspace's PRs in one repo — its branch and every `-topic` lane, in
43
- * every state. Asking for the workspace's own branches is what keeps this
44
- * proportional to the workspace rather than to the repo: the alternative,
45
- * a recency window over all of a repo's PRs, fetched roughly twice what it
46
- * kept here and still aged a quiet workspace out on a busy repo.
47
- * Key: `fullName#branch`. */
48
- var branchPrs = swr(TTL_MS$1, async (key, refresh) => {
49
- const sep = key.indexOf("#");
50
- const fullName = key.slice(0, sep);
51
- const { host, name } = splitRepo(fullName);
52
- const upstream = await repoParent(fullName);
53
- return (await searchPrs(host, upstream ? [name, splitRepo(upstream).name] : [name], [key.slice(sep + 1)], refresh)).filter((n) => ownsNode(n, fullName, upstream));
54
- });
55
- /** A workspace repo's PRs, minus any belonging to a workspace whose branch
56
- * extends this one's. `since` is an imported workspace's arrival: a
57
- * restored or joined workspace keeps its branch name, so the branch's whole
58
- * history on GitHub matches — finished PRs from before it arrived here are
59
- * its previous life's, not chips to dismiss again. Open PRs always show;
60
- * hiding live work would be the worse mistake. */
61
- async function workspacePrs(fullName, branch, foreign, refresh = false, since) {
62
- return prsForBranchPrefix(await branchPrs(branchKey(fullName, branch), refresh).catch(() => []), branch, foreign).filter((pr) => !since || pr.state === "OPEN" || !pr.updatedAt || pr.updatedAt >= since);
63
- }
64
- /** Refresh many repos' PRs with one GraphQL request (vs one `gh pr list`
65
- * process per repo) — called from the status watcher for active
66
- * workspaces so open/merge/close flips surface in ~watch-tick time
67
- * instead of waiting out the per-repo TTL. Throttled internally. */
68
- var BATCH_MIN_MS = 15e3;
69
- /** After a detected local push, poll fast for a bit — the PR appears
70
- * and merges/closes in the minutes right after. */
71
- var HOT_MIN_MS = 3e3;
72
- var HOT_WINDOW_MS = 18e4;
73
- var lastBatch = 0;
74
- var hotUntil = 0;
75
- function notePushActivity() {
76
- hotUntil = Date.now() + HOT_WINDOW_MS;
77
- }
78
- /** Inside the post-push window where PR state is actively flipping. */
79
- function inHotWindow() {
80
- return Date.now() < hotUntil;
81
- }
82
- /** `headRefOid` is the PR's own head commit, which is what the UI compares
83
- * against. Reaching through `headRef` gets the branch's *current* tip
84
- * instead — a different commit entirely once a workspace branch is reused,
85
- * and `headRef { oid }` is not even a field, so GitHub answers 200 with an
86
- * `errors` array and no `data`. */
87
- var GQL_PR_FIELDS = "number title url headRefName baseRefName isDraft state headRefOid updatedAt";
88
- /** Does this search hit belong to `fullName`'s workspace repo? Directly when
89
- * the PR lives in that repo *with its head branch there too*; via the fork
90
- * case when it lives in `upstream` with its head on the fork. The head check
91
- * on both arms keeps one PR from being claimed twice when a workspace holds
92
- * a fork and its upstream, and keeps a same-named branch pushed by someone
93
- * else's fork from being claimed at all. A null headRepository (head repo
94
- * deleted) stays with the PR's own repo. */
95
- function ownsNode(n, fullName, upstream) {
96
- const head = n.headRepository?.nameWithOwner;
97
- return n.repository.nameWithOwner === fullName && (!head || head === fullName) || !!upstream && n.repository.nameWithOwner === upstream && head === fullName;
98
- }
99
- /** Dedup key: PR numbers restart per repo, and a fork target's list spans
100
- * the fork and its upstream. */
101
- var nodeKey = (p) => `${p.repository.nameWithOwner}#${p.number}`;
102
- /** Search's `head:` matches a branch *and* its `-topic` lanes, so one term
103
- * covers a whole workspace, and repeated terms are OR'd within a qualifier
104
- * while different qualifiers are AND'd — `repo:a repo:b head:x head:y`
105
- * reads as (a|b) and (x|y). That is what lets every workspace share one
106
- * request instead of needing an alias per repo and per branch. */
107
- function searchTerms(repos, branches) {
108
- return [...repos.map((r) => `repo:${r}`), ...branches.map((b) => `head:${b}`)].join(" ");
109
- }
110
- /** Finished PRs are asked for by recency, open ones are not: a merged PR
111
- * only has to outlive its dismissal, while an open PR must stay visible
112
- * however long it has sat idle — which is exactly what a recency window
113
- * over the whole repo got wrong. */
114
- var CLOSED_FIRST = 60;
115
- var OPEN_FIRST = 100;
116
- /** Search pages at 100. Open PRs are the page that can genuinely overflow
117
- * (every workspace's, in one request), so it is followed — bounded, because
118
- * an unbounded follow is a way to hang the status tick on a bad query. */
119
- var MAX_OPEN_PAGES = 4;
120
- var searchField = (alias, query, first, after) => `${alias}: search(query: ${JSON.stringify(query)}, type: ISSUE, first: ${first}${after ? `, after: ${JSON.stringify(after)}` : ""}) { pageInfo { hasNextPage endCursor } nodes { ... on PullRequest { ${GQL_PR_FIELDS} repository { nameWithOwner } headRepository { nameWithOwner } } } }`;
121
- /** Every PR on the given branches (and their lanes) across the given repos
122
- * of one host (`repos` are bare `owner/name`). `refresh` is accepted for the
123
- * swr signature; freshness here is GitHub's, not ours. Nodes come back with
124
- * the host folded into `repository.nameWithOwner` so callers compare full
125
- * names. */
126
- async function searchPrs(host, repos, branches, _refresh) {
127
- const terms = searchTerms(repos, branches);
128
- const out = [];
129
- let cursor;
130
- for (let page = 0; page < MAX_OPEN_PAGES; page++) {
131
- const data = await graphql("query {" + searchField("open", `is:pr is:open ${terms}`, OPEN_FIRST, cursor) + (page === 0 ? " " + searchField("done", `is:pr is:closed sort:updated-desc ${terms}`, CLOSED_FIRST) : "") + "}", host);
132
- const open = data.open;
133
- const done = data.done;
134
- for (const node of [...open?.nodes ?? [], ...done?.nodes ?? []]) if (node?.number) out.push({
135
- ...node,
136
- repository: { nameWithOwner: joinRepo(host, node.repository.nameWithOwner) },
137
- headRepository: node.headRepository ? { nameWithOwner: joinRepo(host, node.headRepository.nameWithOwner) } : null
138
- });
139
- if (!open?.pageInfo.hasNextPage || !open.pageInfo.endCursor) break;
140
- cursor = open.pageInfo.endCursor;
141
- }
142
- return out;
143
- }
144
- async function refreshPrsBatch(targets, force = false) {
145
- const wanted = [...new Map(targets.filter((t) => t.fullName.includes("/") && t.branch).map((t) => [branchKey(t.fullName, t.branch), t])).values()];
146
- const minMs = force ? 2e3 : Date.now() < hotUntil ? HOT_MIN_MS : BATCH_MIN_MS;
147
- if (!wanted.length || Date.now() - lastBatch < minMs) return false;
148
- const prevBatch = lastBatch;
149
- lastBatch = Date.now();
150
- try {
151
- const upstreams = new Map(await Promise.all(wanted.map(async (t) => [t.fullName, await repoParent(t.fullName)])));
152
- const byHost = /* @__PURE__ */ new Map();
153
- for (const t of wanted) {
154
- const { host, name } = splitRepo(t.fullName);
155
- const names = (byHost.get(host) || /* @__PURE__ */ new Set()).add(name);
156
- const upstream = upstreams.get(t.fullName);
157
- if (upstream) names.add(splitRepo(upstream).name);
158
- byHost.set(host, names);
159
- }
160
- const branches = [...new Set(wanted.map((t) => t.branch))];
161
- const results = await Promise.all([...byHost].map(([host, names]) => searchPrs(host, [...names], branches).catch((err) => {
162
- if (byHost.size === 1) throw err;
163
- return null;
164
- })));
165
- const nodes = results.flatMap((r) => r ?? []);
166
- const failedHosts = new Set([...byHost.keys()].filter((_, i) => results[i] === null));
167
- for (const target of wanted) {
168
- if (failedHosts.has(splitRepo(target.fullName).host)) continue;
169
- const foreign = branches.filter((b) => b !== target.branch);
170
- const key = branchKey(target.fullName, target.branch);
171
- const incoming = prsForBranchPrefix(nodes.filter((n) => ownsNode(n, target.fullName, upstreams.get(target.fullName) ?? null)), target.branch, foreign);
172
- const open = incoming.filter((p) => p.state === "OPEN");
173
- const openKeys = new Set(open.map(nodeKey));
174
- const done = /* @__PURE__ */ new Map();
175
- for (const p of branchPrs.get(key) ?? []) if (p.state !== "OPEN" && !openKeys.has(nodeKey(p))) done.set(nodeKey(p), p);
176
- for (const p of incoming) if (p.state !== "OPEN" && !openKeys.has(nodeKey(p))) done.set(nodeKey(p), p);
177
- branchPrs.set(key, [...open, ...done.values()]);
178
- }
179
- return true;
180
- } catch (err) {
181
- lastBatch = prevBatch;
182
- throw err;
183
- }
184
- }
185
- /** Confirm a finished (merged/closed) PR so it leaves the manage list. */
186
- function dismissPr(workspaceId, fullName, number) {
187
- db.prepare("INSERT OR IGNORE INTO dismissed_prs (workspace_id, full_name, number) VALUES (?, ?, ?)").run(workspaceId, fullName, number);
188
- }
189
- /** Drop dismissed PRs from a repo's list — unless one reopened. Keyed by
190
- * each PR's own repo + number: a fork target's list spans the fork and its
191
- * upstream (same numbers restart per repo), so a workspace-repo-wide key
192
- * would let dismissing upstream #N hide the fork's own #N too. Rows written
193
- * before PRs carried their repo are keyed by the workspace repo alone and
194
- * still match via that fallback. */
195
- function withoutDismissed(workspaceId, fullName, list) {
196
- const dismissed = new Set(all("SELECT full_name, number FROM dismissed_prs WHERE workspace_id = ?", workspaceId).map((row) => `${row.full_name}#${row.number}`));
197
- return list.filter((pr) => pr.state === "OPEN" || !dismissed.has(`${pr.repository?.nameWithOwner ?? fullName}#${pr.number}`));
198
- }
199
- //#endregion
200
- //#region src/server/status.ts
201
- var TTL_MS = 2e3;
202
- var snapshot = null;
203
- var inflight = null;
204
- var snapshotGen = 0;
205
- /** Drop the cached snapshot AND detach any in-flight compute — callers
206
- * after an invalidation get a computation that starts from fresh state. */
207
- function invalidateSnapshot() {
208
- snapshot = null;
209
- snapshotGen++;
210
- inflight = null;
211
- }
212
- function statusForAll() {
213
- if (snapshot && Date.now() - snapshot.at < TTL_MS) return Promise.resolve(snapshot.value);
214
- if (!inflight) {
215
- const gen = snapshotGen;
216
- const run = computeStatus().then((value) => {
217
- if (gen === snapshotGen) snapshot = {
218
- at: Date.now(),
219
- value
220
- };
221
- return value;
222
- }).finally(() => {
223
- if (inflight === run) inflight = null;
224
- });
225
- inflight = run;
226
- }
227
- return inflight;
228
- }
229
- /** Push-based freshness: while any events-bus client is connected,
230
- * recompute the (shared, deduped) snapshot on a slow tick and publish it
231
- * only when it actually changed — ports appearing, PR open/merge/close flips reach
232
- * every client in ~15s instead of waiting out a slow poll, and idle
233
- * systems push nothing at all. */
234
- var WATCH_MS = 1e4;
235
- /** Right after a local push, PR+check state flips within seconds — tick
236
- * fast so the badge lands while it still feels immediate. */
237
- var WATCH_HOT_MS = 4e3;
238
- var watching = false;
239
- /** Last published state per workspace, so a tick can publish the ones that
240
- * actually moved. Comparing the whole snapshot instead meant one agent's
241
- * commit — or any session, port or PR flip in a workspace nobody is
242
- * looking at — pushed every workspace to every client, which each then
243
- * re-rendered and re-fingerprinted to conclude nothing of theirs had
244
- * changed. That amplification grows with the number of workspaces. */
245
- var lastPushed = /* @__PURE__ */ new Map();
246
- var lastJoins = -1;
247
- async function watchTick() {
248
- if (!subscriberCount()) return;
249
- try {
250
- if (await refreshPrsBatch(activeRepoTargets()).catch(() => false)) invalidateSnapshot();
251
- const value = await statusForAll();
252
- const joins = subscriberJoins();
253
- const everything = joins !== lastJoins;
254
- lastJoins = joins;
255
- const changed = {};
256
- for (const [id, ws] of Object.entries(value)) {
257
- const json = JSON.stringify(ws);
258
- if (everything || lastPushed.get(id) !== json) changed[id] = ws;
259
- lastPushed.set(id, json);
260
- }
261
- for (const id of lastPushed.keys()) if (!(id in value)) lastPushed.delete(id);
262
- if (Object.keys(changed).length) publish("status.changed", changed);
263
- } catch {}
264
- }
265
- var watchTimer;
266
- function scheduleTick(ms) {
267
- clearTimeout(watchTimer);
268
- watchTimer = setTimeout(tick, ms);
269
- watchTimer.unref?.();
270
- }
271
- async function tick() {
272
- await watchTick();
273
- scheduleTick(inHotWindow() ? WATCH_HOT_MS : WATCH_MS);
274
- }
275
- /** Recompute and push right now (e.g. a local push was detected) instead
276
- * of waiting out the watch tick — and drop the loop into its fast cadence
277
- * (the push opened the hot window, but the pending timeout was scheduled
278
- * for the slow one). */
279
- function pokeStatusWatch() {
280
- invalidateSnapshot();
281
- watchTick().then(() => {
282
- if (watching) scheduleTick(inHotWindow() ? WATCH_HOT_MS : WATCH_MS);
283
- });
284
- }
285
- function startStatusWatch() {
286
- if (watching) return;
287
- watching = true;
288
- scheduleTick(WATCH_MS);
289
- }
290
- /** Every active workspace's repos, paired with the branch that workspace
291
- * works on — the batch refreshes both the recency window and the exact-head
292
- * lookup for each, in one request. */
293
- function activeRepoTargets() {
294
- return listWorkspaces().filter((ws) => ws.status === "active").flatMap((ws) => ws.repos.map((r) => ({
295
- fullName: r.full_name,
296
- branch: ws.branch
297
- })));
298
- }
299
- /** Status with PRs refetched first (throttled): a client returning to the
300
- * foreground wants current PR state — merges/closes happen on GitHub and
301
- * send no local signal, so without this they wait out the slow poll. */
302
- async function statusForAllFresh() {
303
- if (await refreshPrsBatch(activeRepoTargets(), true).catch(() => false)) invalidateSnapshot();
304
- return statusForAll();
305
- }
306
- /** RSS here is the Node + Marko baseline (~80 MB empty, ~115 MB loaded),
307
- * not a leak and not worth chasing — young-gen flags do not move it. */
308
- async function computeStatus() {
309
- const everyWorkspace = listWorkspaces();
310
- const workspaces = everyWorkspace.filter((ws) => ws.status === "active");
311
- const paths = new Map(workspaces.map((ws) => [ws.id, ws.path]));
312
- const [ports, states] = await Promise.all([portsByWorkspace(paths), sessionStates()]);
313
- const entries = await Promise.all(workspaces.map(async (ws) => {
314
- const foreign = everyWorkspace.filter((w) => w.id !== ws.id).map((w) => w.branch);
315
- const statuses = await Promise.all(ws.repos.map((repo) => repoStatus(ws, repo, foreign)));
316
- return [ws.id, {
317
- ports: ports.get(ws.id) || [],
318
- repos: statuses,
319
- ...sessionCounts(ws.id, states)
320
- }];
321
- }));
322
- return Object.fromEntries(entries);
323
- }
324
- async function repoStatus(ws, repo, foreign) {
325
- const dir = path.join(ws.path, repo.worktree);
326
- const [repoPrs, localHead] = await Promise.all([workspacePrs(repo.full_name, ws.branch, foreign, false, ws.imported_at).then((list) => withoutDismissed(ws.id, repo.full_name, list)), headOid(dir).then((h) => h.oid)]);
327
- const unpushed = pushFailureFor(repo.full_name, ws.branch, foreign);
328
- return {
329
- full_name: repo.full_name,
330
- worktree: repo.worktree,
331
- ...localHead && { localHead },
332
- ...unpushed && { unpushed },
333
- prs: repoPrs
334
- };
335
- }
336
- function sessionCounts(workspaceId, states) {
337
- const sessions = listSessions(workspaceId).map((s) => ({
338
- id: s.id,
339
- agent: s.agent,
340
- title: s.title,
341
- state: states[s.id] || { alive: false }
342
- }));
343
- const live = sessions.map((s) => s.state).filter((state) => !!state.alive);
344
- return {
345
- sessions,
346
- agents: live.length,
347
- working: live.filter((state) => state.phase === "working").length,
348
- waiting: live.filter((state) => state.phase === "waiting").length
349
- };
350
- }
351
- //#endregion
352
- export { statusForAllFresh as a, refreshPrsBatch as c, statusForAll as i, workspacePrs as l, pokeStatusWatch as n, dismissPr as o, startStatusWatch as r, notePushActivity as s, activeRepoTargets as t };