@chrisjowen/wheelhouse 0.2.0 → 0.2.1

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 (836) hide show
  1. package/README.md +0 -5
  2. package/build/client/_app/immutable/assets/0.CF4I5T-G.css +1 -0
  3. package/build/client/_app/immutable/assets/0.CF4I5T-G.css.br +0 -0
  4. package/build/client/_app/immutable/assets/0.CF4I5T-G.css.gz +0 -0
  5. package/build/client/_app/immutable/chunks/-F7frqRp.js +1 -0
  6. package/build/client/_app/immutable/chunks/-F7frqRp.js.br +0 -0
  7. package/build/client/_app/immutable/chunks/-F7frqRp.js.gz +0 -0
  8. package/build/client/_app/immutable/chunks/127nenIp.js +1 -0
  9. package/build/client/_app/immutable/chunks/127nenIp.js.br +0 -0
  10. package/build/client/_app/immutable/chunks/127nenIp.js.gz +0 -0
  11. package/build/client/_app/immutable/chunks/2Frsddx8.js +1 -0
  12. package/build/client/_app/immutable/chunks/2Frsddx8.js.br +2 -0
  13. package/build/client/_app/immutable/chunks/2Frsddx8.js.gz +0 -0
  14. package/build/client/_app/immutable/chunks/4nLjU3dc.js +1 -0
  15. package/build/client/_app/immutable/chunks/4nLjU3dc.js.br +0 -0
  16. package/build/client/_app/immutable/chunks/4nLjU3dc.js.gz +0 -0
  17. package/build/client/_app/immutable/chunks/6IjAKxKZ.js +1 -0
  18. package/build/client/_app/immutable/chunks/6IjAKxKZ.js.br +0 -0
  19. package/build/client/_app/immutable/chunks/6IjAKxKZ.js.gz +0 -0
  20. package/build/client/_app/immutable/chunks/6JIb870c.js +1 -0
  21. package/build/client/_app/immutable/chunks/6JIb870c.js.br +0 -0
  22. package/build/client/_app/immutable/chunks/6JIb870c.js.gz +0 -0
  23. package/build/client/_app/immutable/chunks/B8szyIrI.js +1 -0
  24. package/build/client/_app/immutable/chunks/B8szyIrI.js.br +0 -0
  25. package/build/client/_app/immutable/chunks/B8szyIrI.js.gz +0 -0
  26. package/build/client/_app/immutable/chunks/BDL2L18I.js +1 -0
  27. package/build/client/_app/immutable/chunks/BDL2L18I.js.br +0 -0
  28. package/build/client/_app/immutable/chunks/BDL2L18I.js.gz +0 -0
  29. package/build/client/_app/immutable/chunks/BJ_boZ6o.js +1 -0
  30. package/build/client/_app/immutable/chunks/BJ_boZ6o.js.br +0 -0
  31. package/build/client/_app/immutable/chunks/BJ_boZ6o.js.gz +0 -0
  32. package/build/client/_app/immutable/chunks/BMOWf_e5.js +1 -0
  33. package/build/client/_app/immutable/chunks/BMOWf_e5.js.br +0 -0
  34. package/build/client/_app/immutable/chunks/BMOWf_e5.js.gz +0 -0
  35. package/build/client/_app/immutable/chunks/BOOJ9_kJ.js +6 -0
  36. package/build/client/_app/immutable/chunks/BOOJ9_kJ.js.br +0 -0
  37. package/build/client/_app/immutable/chunks/BOOJ9_kJ.js.gz +0 -0
  38. package/build/client/_app/immutable/chunks/BPEcp4vD.js +1 -0
  39. package/build/client/_app/immutable/chunks/BPEcp4vD.js.br +0 -0
  40. package/build/client/_app/immutable/chunks/BPEcp4vD.js.gz +0 -0
  41. package/build/client/_app/immutable/chunks/BTcSoYfa.js +1 -0
  42. package/build/client/_app/immutable/chunks/BTcSoYfa.js.br +2 -0
  43. package/build/client/_app/immutable/chunks/BTcSoYfa.js.gz +0 -0
  44. package/build/client/_app/immutable/chunks/BV_Ro843.js +1 -0
  45. package/build/client/_app/immutable/chunks/BV_Ro843.js.br +0 -0
  46. package/build/client/_app/immutable/chunks/BV_Ro843.js.gz +0 -0
  47. package/build/client/_app/immutable/chunks/BboI5NX2.js +1 -0
  48. package/build/client/_app/immutable/chunks/BboI5NX2.js.br +0 -0
  49. package/build/client/_app/immutable/chunks/BboI5NX2.js.gz +0 -0
  50. package/build/client/_app/immutable/chunks/BnqQNG8I.js +1 -0
  51. package/build/client/_app/immutable/chunks/BnqQNG8I.js.br +0 -0
  52. package/build/client/_app/immutable/chunks/BnqQNG8I.js.gz +0 -0
  53. package/build/client/_app/immutable/chunks/Bo3sLJjL.js +3 -0
  54. package/build/client/_app/immutable/chunks/Bo3sLJjL.js.br +0 -0
  55. package/build/client/_app/immutable/chunks/Bo3sLJjL.js.gz +0 -0
  56. package/build/client/_app/immutable/chunks/Bpgn0RyM.js +1 -0
  57. package/build/client/_app/immutable/chunks/Bpgn0RyM.js.br +0 -0
  58. package/build/client/_app/immutable/chunks/Bpgn0RyM.js.gz +0 -0
  59. package/build/client/_app/immutable/chunks/BrGclueo.js +1 -0
  60. package/build/client/_app/immutable/chunks/BrGclueo.js.br +0 -0
  61. package/build/client/_app/immutable/chunks/BrGclueo.js.gz +0 -0
  62. package/build/client/_app/immutable/chunks/C-Ka3szt.js +1 -0
  63. package/build/client/_app/immutable/chunks/C-Ka3szt.js.br +0 -0
  64. package/build/client/_app/immutable/chunks/C-Ka3szt.js.gz +0 -0
  65. package/build/client/_app/immutable/chunks/C-YySHlv.js +1 -0
  66. package/build/client/_app/immutable/chunks/C-YySHlv.js.br +0 -0
  67. package/build/client/_app/immutable/chunks/C-YySHlv.js.gz +0 -0
  68. package/build/client/_app/immutable/chunks/C27rbWKB.js +1 -0
  69. package/build/client/_app/immutable/chunks/C27rbWKB.js.br +0 -0
  70. package/build/client/_app/immutable/chunks/C27rbWKB.js.gz +0 -0
  71. package/build/client/_app/immutable/chunks/CA1hL-S6.js +1 -0
  72. package/build/client/_app/immutable/chunks/CA1hL-S6.js.br +0 -0
  73. package/build/client/_app/immutable/chunks/CA1hL-S6.js.gz +0 -0
  74. package/build/client/_app/immutable/chunks/CFdPbSqS.js +1 -0
  75. package/build/client/_app/immutable/chunks/CFdPbSqS.js.br +1 -0
  76. package/build/client/_app/immutable/chunks/CFdPbSqS.js.gz +0 -0
  77. package/build/client/_app/immutable/chunks/CJGygju8.js +1 -0
  78. package/build/client/_app/immutable/chunks/CJGygju8.js.br +0 -0
  79. package/build/client/_app/immutable/chunks/CJGygju8.js.gz +0 -0
  80. package/build/client/_app/immutable/chunks/CLdaRjQZ.js +1 -0
  81. package/build/client/_app/immutable/chunks/CLdaRjQZ.js.br +0 -0
  82. package/build/client/_app/immutable/chunks/CLdaRjQZ.js.gz +0 -0
  83. package/build/client/_app/immutable/chunks/CS3TvEHF.js +1 -0
  84. package/build/client/_app/immutable/chunks/CS3TvEHF.js.br +0 -0
  85. package/build/client/_app/immutable/chunks/CS3TvEHF.js.gz +0 -0
  86. package/build/client/_app/immutable/chunks/CSfYMiqF.js +8 -0
  87. package/build/client/_app/immutable/chunks/CSfYMiqF.js.br +0 -0
  88. package/build/client/_app/immutable/chunks/CSfYMiqF.js.gz +0 -0
  89. package/build/client/_app/immutable/chunks/CW_pu1E1.js +1 -0
  90. package/build/client/_app/immutable/chunks/CW_pu1E1.js.br +0 -0
  91. package/build/client/_app/immutable/chunks/CW_pu1E1.js.gz +0 -0
  92. package/build/client/_app/immutable/chunks/CZYAayp0.js +2 -0
  93. package/build/client/_app/immutable/chunks/CZYAayp0.js.br +0 -0
  94. package/build/client/_app/immutable/chunks/CZYAayp0.js.gz +0 -0
  95. package/build/client/_app/immutable/chunks/Cap_NU8Z.js +1 -0
  96. package/build/client/_app/immutable/chunks/Cap_NU8Z.js.br +0 -0
  97. package/build/client/_app/immutable/chunks/Cap_NU8Z.js.gz +0 -0
  98. package/build/client/_app/immutable/chunks/Cf6ZwSDE.js +1 -0
  99. package/build/client/_app/immutable/chunks/Cf6ZwSDE.js.br +0 -0
  100. package/build/client/_app/immutable/chunks/Cf6ZwSDE.js.gz +0 -0
  101. package/build/client/_app/immutable/chunks/Ch8_zhFw.js +1 -0
  102. package/build/client/_app/immutable/chunks/Ch8_zhFw.js.br +0 -0
  103. package/build/client/_app/immutable/chunks/Ch8_zhFw.js.gz +0 -0
  104. package/build/client/_app/immutable/chunks/Cjji8YKo.js +1 -0
  105. package/build/client/_app/immutable/chunks/Cjji8YKo.js.br +0 -0
  106. package/build/client/_app/immutable/chunks/Cjji8YKo.js.gz +0 -0
  107. package/build/client/_app/immutable/chunks/Ckfspn2s.js +1 -0
  108. package/build/client/_app/immutable/chunks/Ckfspn2s.js.br +0 -0
  109. package/build/client/_app/immutable/chunks/Ckfspn2s.js.gz +0 -0
  110. package/build/client/_app/immutable/chunks/CpkLqQ7l.js +1 -0
  111. package/build/client/_app/immutable/chunks/CpkLqQ7l.js.br +0 -0
  112. package/build/client/_app/immutable/chunks/CpkLqQ7l.js.gz +0 -0
  113. package/build/client/_app/immutable/chunks/Crzhp-x5.js +5 -0
  114. package/build/client/_app/immutable/chunks/Crzhp-x5.js.br +0 -0
  115. package/build/client/_app/immutable/chunks/Crzhp-x5.js.gz +0 -0
  116. package/build/client/_app/immutable/chunks/Cwah_dMw.js +1 -0
  117. package/build/client/_app/immutable/chunks/Cwah_dMw.js.br +0 -0
  118. package/build/client/_app/immutable/chunks/Cwah_dMw.js.gz +0 -0
  119. package/build/client/_app/immutable/chunks/CzsfD4hc.js +1 -0
  120. package/build/client/_app/immutable/chunks/CzsfD4hc.js.br +2 -0
  121. package/build/client/_app/immutable/chunks/CzsfD4hc.js.gz +0 -0
  122. package/build/client/_app/immutable/chunks/D32oVJ_N.js +1 -0
  123. package/build/client/_app/immutable/chunks/D32oVJ_N.js.br +1 -0
  124. package/build/client/_app/immutable/chunks/D32oVJ_N.js.gz +0 -0
  125. package/build/client/_app/immutable/chunks/D4sWXBG7.js +1 -0
  126. package/build/client/_app/immutable/chunks/D4sWXBG7.js.br +0 -0
  127. package/build/client/_app/immutable/chunks/D4sWXBG7.js.gz +0 -0
  128. package/build/client/_app/immutable/chunks/DBs-gHlm.js +2 -0
  129. package/build/client/_app/immutable/chunks/DBs-gHlm.js.br +0 -0
  130. package/build/client/_app/immutable/chunks/DBs-gHlm.js.gz +0 -0
  131. package/build/client/_app/immutable/chunks/DEFXAgPm.js +1 -0
  132. package/build/client/_app/immutable/chunks/DEFXAgPm.js.br +0 -0
  133. package/build/client/_app/immutable/chunks/DEFXAgPm.js.gz +0 -0
  134. package/build/client/_app/immutable/chunks/DHbme8uq.js +1 -0
  135. package/build/client/_app/immutable/chunks/DHbme8uq.js.br +0 -0
  136. package/build/client/_app/immutable/chunks/DHbme8uq.js.gz +0 -0
  137. package/build/client/_app/immutable/chunks/DMkU8x7K.js +1 -0
  138. package/build/client/_app/immutable/chunks/DMkU8x7K.js.br +0 -0
  139. package/build/client/_app/immutable/chunks/DMkU8x7K.js.gz +0 -0
  140. package/build/client/_app/immutable/chunks/DRIYWZlo.js +1 -0
  141. package/build/client/_app/immutable/chunks/DRIYWZlo.js.br +1 -0
  142. package/build/client/_app/immutable/chunks/DRIYWZlo.js.gz +0 -0
  143. package/build/client/_app/immutable/chunks/DUCO61Nb.js +1 -0
  144. package/build/client/_app/immutable/chunks/DUCO61Nb.js.br +0 -0
  145. package/build/client/_app/immutable/chunks/DUCO61Nb.js.gz +0 -0
  146. package/build/client/_app/immutable/chunks/DXz8WA1c.js +1 -0
  147. package/build/client/_app/immutable/chunks/DXz8WA1c.js.br +0 -0
  148. package/build/client/_app/immutable/chunks/DXz8WA1c.js.gz +0 -0
  149. package/build/client/_app/immutable/chunks/D_4WLGwX.js +1 -0
  150. package/build/client/_app/immutable/chunks/D_4WLGwX.js.br +0 -0
  151. package/build/client/_app/immutable/chunks/D_4WLGwX.js.gz +0 -0
  152. package/build/client/_app/immutable/chunks/D_5WjoQx.js +1 -0
  153. package/build/client/_app/immutable/chunks/D_5WjoQx.js.br +0 -0
  154. package/build/client/_app/immutable/chunks/D_5WjoQx.js.gz +0 -0
  155. package/build/client/_app/immutable/chunks/D_C2ZtkZ.js +1 -0
  156. package/build/client/_app/immutable/chunks/D_C2ZtkZ.js.br +0 -0
  157. package/build/client/_app/immutable/chunks/D_C2ZtkZ.js.gz +0 -0
  158. package/build/client/_app/immutable/chunks/De5PDvrQ.js +1 -0
  159. package/build/client/_app/immutable/chunks/De5PDvrQ.js.br +0 -0
  160. package/build/client/_app/immutable/chunks/De5PDvrQ.js.gz +0 -0
  161. package/build/client/_app/immutable/chunks/DhWdMQ8J.js +1 -0
  162. package/build/client/_app/immutable/chunks/DhWdMQ8J.js.br +0 -0
  163. package/build/client/_app/immutable/chunks/DhWdMQ8J.js.gz +0 -0
  164. package/build/client/_app/immutable/chunks/DiCw6gM6.js +1 -0
  165. package/build/client/_app/immutable/chunks/DiCw6gM6.js.br +0 -0
  166. package/build/client/_app/immutable/chunks/DiCw6gM6.js.gz +0 -0
  167. package/build/client/_app/immutable/chunks/JhgT3vN-.js +1 -0
  168. package/build/client/_app/immutable/chunks/JhgT3vN-.js.br +0 -0
  169. package/build/client/_app/immutable/chunks/JhgT3vN-.js.gz +0 -0
  170. package/build/client/_app/immutable/chunks/KA4C2mxd.js +1 -0
  171. package/build/client/_app/immutable/chunks/KA4C2mxd.js.br +0 -0
  172. package/build/client/_app/immutable/chunks/KA4C2mxd.js.gz +0 -0
  173. package/build/client/_app/immutable/chunks/MoZXz26A.js +2 -0
  174. package/build/client/_app/immutable/chunks/MoZXz26A.js.br +0 -0
  175. package/build/client/_app/immutable/chunks/MoZXz26A.js.gz +0 -0
  176. package/build/client/_app/immutable/chunks/PMi1c_Z5.js +2 -0
  177. package/build/client/_app/immutable/chunks/PMi1c_Z5.js.br +0 -0
  178. package/build/client/_app/immutable/chunks/PMi1c_Z5.js.gz +0 -0
  179. package/build/client/_app/immutable/chunks/Pd3Oo-LF.js +1 -0
  180. package/build/client/_app/immutable/chunks/Pd3Oo-LF.js.br +0 -0
  181. package/build/client/_app/immutable/chunks/Pd3Oo-LF.js.gz +0 -0
  182. package/build/client/_app/immutable/chunks/RXXzt1fg.js +1 -0
  183. package/build/client/_app/immutable/chunks/RXXzt1fg.js.br +0 -0
  184. package/build/client/_app/immutable/chunks/RXXzt1fg.js.gz +0 -0
  185. package/build/client/_app/immutable/chunks/WfixpLtG.js +1 -0
  186. package/build/client/_app/immutable/chunks/WfixpLtG.js.br +2 -0
  187. package/build/client/_app/immutable/chunks/WfixpLtG.js.gz +0 -0
  188. package/build/client/_app/immutable/chunks/YB3ysJRI.js +1 -0
  189. package/build/client/_app/immutable/chunks/YB3ysJRI.js.br +0 -0
  190. package/build/client/_app/immutable/chunks/YB3ysJRI.js.gz +0 -0
  191. package/build/client/_app/immutable/chunks/YUajk67G.js +1 -0
  192. package/build/client/_app/immutable/chunks/YUajk67G.js.br +0 -0
  193. package/build/client/_app/immutable/chunks/YUajk67G.js.gz +0 -0
  194. package/build/client/_app/immutable/chunks/a2ZeDrXd.js +1 -0
  195. package/build/client/_app/immutable/chunks/a2ZeDrXd.js.br +0 -0
  196. package/build/client/_app/immutable/chunks/a2ZeDrXd.js.gz +0 -0
  197. package/build/client/_app/immutable/chunks/is3b6W5i.js +1 -0
  198. package/build/client/_app/immutable/chunks/is3b6W5i.js.br +0 -0
  199. package/build/client/_app/immutable/chunks/is3b6W5i.js.gz +0 -0
  200. package/build/client/_app/immutable/chunks/kM8ObZQs.js +62 -0
  201. package/build/client/_app/immutable/chunks/kM8ObZQs.js.br +0 -0
  202. package/build/client/_app/immutable/chunks/kM8ObZQs.js.gz +0 -0
  203. package/build/client/_app/immutable/chunks/qep4C0YL.js +2 -0
  204. package/build/client/_app/immutable/chunks/qep4C0YL.js.br +0 -0
  205. package/build/client/_app/immutable/chunks/qep4C0YL.js.gz +0 -0
  206. package/build/client/_app/immutable/chunks/sSJbwAI9.js +1 -0
  207. package/build/client/_app/immutable/chunks/sSJbwAI9.js.br +0 -0
  208. package/build/client/_app/immutable/chunks/sSJbwAI9.js.gz +0 -0
  209. package/build/client/_app/immutable/chunks/vAxbu4w9.js +1 -0
  210. package/build/client/_app/immutable/chunks/vAxbu4w9.js.br +0 -0
  211. package/build/client/_app/immutable/chunks/vAxbu4w9.js.gz +0 -0
  212. package/build/client/_app/immutable/chunks/zfjlAER1.js +1 -0
  213. package/build/client/_app/immutable/chunks/zfjlAER1.js.br +0 -0
  214. package/build/client/_app/immutable/chunks/zfjlAER1.js.gz +0 -0
  215. package/build/client/_app/immutable/chunks/zrknQfzW.js +1 -0
  216. package/build/client/_app/immutable/chunks/zrknQfzW.js.br +0 -0
  217. package/build/client/_app/immutable/chunks/zrknQfzW.js.gz +0 -0
  218. package/build/client/_app/immutable/entry/app.BVW8a1Lc.js +2 -0
  219. package/build/client/_app/immutable/entry/app.BVW8a1Lc.js.br +0 -0
  220. package/build/client/_app/immutable/entry/app.BVW8a1Lc.js.gz +0 -0
  221. package/build/client/_app/immutable/entry/start.DfAhzzBh.js +1 -0
  222. package/build/client/_app/immutable/entry/start.DfAhzzBh.js.br +0 -0
  223. package/build/client/_app/immutable/entry/start.DfAhzzBh.js.gz +0 -0
  224. package/build/client/_app/immutable/nodes/0.CByWY48H.js +8 -0
  225. package/build/client/_app/immutable/nodes/0.CByWY48H.js.br +0 -0
  226. package/build/client/_app/immutable/nodes/0.CByWY48H.js.gz +0 -0
  227. package/build/client/_app/immutable/nodes/1.BQxkVmZR.js +1 -0
  228. package/build/client/_app/immutable/nodes/1.BQxkVmZR.js.br +0 -0
  229. package/build/client/_app/immutable/nodes/1.BQxkVmZR.js.gz +0 -0
  230. package/build/client/_app/immutable/nodes/10.DF_JvWer.js +3 -0
  231. package/build/client/_app/immutable/nodes/10.DF_JvWer.js.br +0 -0
  232. package/build/client/_app/immutable/nodes/10.DF_JvWer.js.gz +0 -0
  233. package/build/client/_app/immutable/nodes/11.Da20qmQ1.js +1 -0
  234. package/build/client/_app/immutable/nodes/11.Da20qmQ1.js.br +0 -0
  235. package/build/client/_app/immutable/nodes/11.Da20qmQ1.js.gz +0 -0
  236. package/build/client/_app/immutable/nodes/12.DeNfg3Jn.js +14 -0
  237. package/build/client/_app/immutable/nodes/12.DeNfg3Jn.js.br +0 -0
  238. package/build/client/_app/immutable/nodes/12.DeNfg3Jn.js.gz +0 -0
  239. package/build/client/_app/immutable/nodes/13.Vg3b6KJ-.js +150 -0
  240. package/build/client/_app/immutable/nodes/13.Vg3b6KJ-.js.br +0 -0
  241. package/build/client/_app/immutable/nodes/13.Vg3b6KJ-.js.gz +0 -0
  242. package/build/client/_app/immutable/nodes/15.DNQBbVNt.js +11 -0
  243. package/build/client/_app/immutable/nodes/15.DNQBbVNt.js.br +0 -0
  244. package/build/client/_app/immutable/nodes/15.DNQBbVNt.js.gz +0 -0
  245. package/build/client/_app/immutable/nodes/16.PXR5gryE.js +9 -0
  246. package/build/client/_app/immutable/nodes/16.PXR5gryE.js.br +0 -0
  247. package/build/client/_app/immutable/nodes/16.PXR5gryE.js.gz +0 -0
  248. package/build/client/_app/immutable/nodes/17.D6wwTzw0.js +2 -0
  249. package/build/client/_app/immutable/nodes/17.D6wwTzw0.js.br +0 -0
  250. package/build/client/_app/immutable/nodes/17.D6wwTzw0.js.gz +0 -0
  251. package/build/client/_app/immutable/nodes/18.BYPKt-Zj.js +6 -0
  252. package/build/client/_app/immutable/nodes/18.BYPKt-Zj.js.br +0 -0
  253. package/build/client/_app/immutable/nodes/18.BYPKt-Zj.js.gz +0 -0
  254. package/build/client/_app/immutable/nodes/19.eOj7WL-z.js +1 -0
  255. package/build/client/_app/immutable/nodes/19.eOj7WL-z.js.br +0 -0
  256. package/build/client/_app/immutable/nodes/19.eOj7WL-z.js.gz +0 -0
  257. package/build/client/_app/immutable/nodes/2.iGkQWI53.js +14 -0
  258. package/build/client/_app/immutable/nodes/2.iGkQWI53.js.br +0 -0
  259. package/build/client/_app/immutable/nodes/2.iGkQWI53.js.gz +0 -0
  260. package/build/client/_app/immutable/nodes/20.COEvYhSn.js +6 -0
  261. package/build/client/_app/immutable/nodes/20.COEvYhSn.js.br +0 -0
  262. package/build/client/_app/immutable/nodes/20.COEvYhSn.js.gz +0 -0
  263. package/build/client/_app/immutable/nodes/3.DgV1VyBd.js +5 -0
  264. package/build/client/_app/immutable/nodes/3.DgV1VyBd.js.br +0 -0
  265. package/build/client/_app/immutable/nodes/3.DgV1VyBd.js.gz +0 -0
  266. package/build/client/_app/immutable/nodes/4.BFV94RXa.js +1 -0
  267. package/build/client/_app/immutable/nodes/4.BFV94RXa.js.br +0 -0
  268. package/build/client/_app/immutable/nodes/4.BFV94RXa.js.gz +0 -0
  269. package/build/client/_app/immutable/nodes/5.DXQSdCv2.js +1 -0
  270. package/build/client/_app/immutable/nodes/5.DXQSdCv2.js.br +0 -0
  271. package/build/client/_app/immutable/nodes/5.DXQSdCv2.js.gz +0 -0
  272. package/build/client/_app/immutable/nodes/6.BVvx9mug.js +7 -0
  273. package/build/client/_app/immutable/nodes/6.BVvx9mug.js.br +0 -0
  274. package/build/client/_app/immutable/nodes/6.BVvx9mug.js.gz +0 -0
  275. package/build/client/_app/immutable/nodes/7.bgzyRDkn.js +4 -0
  276. package/build/client/_app/immutable/nodes/7.bgzyRDkn.js.br +0 -0
  277. package/build/client/_app/immutable/nodes/7.bgzyRDkn.js.gz +0 -0
  278. package/build/client/_app/immutable/nodes/9.BjRlvbf0.js +1 -0
  279. package/build/client/_app/immutable/nodes/9.BjRlvbf0.js.br +0 -0
  280. package/build/client/_app/immutable/nodes/9.BjRlvbf0.js.gz +0 -0
  281. package/build/client/_app/version.json +1 -1
  282. package/build/client/_app/version.json.br +0 -0
  283. package/build/client/_app/version.json.gz +0 -0
  284. package/build/handler.js +4 -4
  285. package/build/index.js +4 -4
  286. package/build/server/chunks/chunks/DecisionCard.js-CvR7ULLC.js +461 -0
  287. package/build/server/chunks/chunks/EtaLine.js-CtcOSLzV.js +79 -0
  288. package/build/server/chunks/chunks/EveryProjectSwitch.js-DWet6DU1.js +200 -0
  289. package/build/server/chunks/chunks/ProjectBanner.js-19PQF0LD.js +111 -0
  290. package/build/server/chunks/chunks/ResizableRail.js-BmMh1aVL.js +801 -0
  291. package/build/server/chunks/chunks/chat.svelte.js-b0uQXOge.js +545 -0
  292. package/build/server/chunks/chunks/detail.js-9VHqIqfd.js +121 -0
  293. package/build/server/chunks/chunks/internal.js-CxWYnS4m.js +146 -0
  294. package/build/server/chunks/chunks/keys.js-iHygUPeb.js +20 -0
  295. package/build/server/chunks/chunks/live.svelte.js-DavJCZVs.js +238 -0
  296. package/build/server/chunks/chunks/pullrequests.js-CWGxTy8C.js +68 -0
  297. package/build/server/chunks/chunks/pullrequests2.js-CCzk2sqm.js +12 -0
  298. package/build/server/chunks/chunks/repo.js-DU-pK5Nw.js +33 -0
  299. package/build/server/chunks/chunks/runtime.js-4msnOWzY.js +15335 -0
  300. package/build/server/chunks/chunks/service.js-DZR6CoEI.js +914 -0
  301. package/build/server/chunks/chunks/slots.svelte.js-CLIV5nwM.js +34 -0
  302. package/build/server/chunks/chunks/store.js-ByNV-OHV.js +323 -0
  303. package/build/server/chunks/chunks/uploads.js-4OZ09onz.js +107 -0
  304. package/build/server/chunks/chunks/view.js-BPycofxX.js +76 -0
  305. package/build/server/chunks/entries/endpoints/api/apps/_op_/_server.ts.js-DqDt7aNN.js +90 -0
  306. package/build/server/chunks/entries/endpoints/api/events/_server.ts.js-D-mwPJ4E.js +100 -0
  307. package/build/server/chunks/entries/endpoints/api/files/_server.ts.js-DTl4eBah.js +49 -0
  308. package/build/server/chunks/entries/endpoints/api/firstmate/chat/_server.ts.js-HFyCRRIx.js +83 -0
  309. package/build/server/chunks/entries/endpoints/api/firstmate/commands/_server.ts.js-CO7kITUs.js +119 -0
  310. package/build/server/chunks/entries/endpoints/api/firstmate/dismiss/_server.ts.js-CTdaQTFX.js +45 -0
  311. package/build/server/chunks/entries/endpoints/api/firstmate/input/_server.ts.js-DKxlZSX3.js +51 -0
  312. package/build/server/chunks/entries/endpoints/api/firstmate/interrupt/_server.ts.js-Bp4CsZQ9.js +44 -0
  313. package/build/server/chunks/entries/endpoints/api/firstmate/messages/_server.ts.js--Ti6GfKf.js +66 -0
  314. package/build/server/chunks/entries/endpoints/api/firstmate/pick/_server.ts.js-DudckFen.js +54 -0
  315. package/build/server/chunks/entries/endpoints/api/firstmate/start/_server.ts.js-H09D-uaY.js +44 -0
  316. package/build/server/chunks/entries/endpoints/api/firstmate/uploads/_day_/_id_/_name_/_server.ts.js-B1jFlBJC.js +31 -0
  317. package/build/server/chunks/entries/endpoints/api/firstmate/uploads/_server.ts.js-B2h2nWSK.js +39 -0
  318. package/build/server/chunks/entries/endpoints/api/fleet/_server.ts.js-BMcNM7_1.js +36 -0
  319. package/build/server/chunks/entries/endpoints/api/gateway/_server.ts.js-CVc8gLps.js +100 -0
  320. package/build/server/chunks/entries/endpoints/api/health/_server.ts.js-BcVLJq4f.js +36 -0
  321. package/build/server/chunks/entries/endpoints/api/inbox/_server.ts.js-DKqY2sWJ.js +60 -0
  322. package/build/server/chunks/entries/endpoints/api/inbox/report/_server.ts.js-a4l41m0P.js +51 -0
  323. package/build/server/chunks/entries/endpoints/api/insights/_server.ts.js-Cr_YrS6N.js +36 -0
  324. package/build/server/chunks/entries/endpoints/api/plugins/_plugin_/config/_server.ts.js-CZUfk-OY.js +71 -0
  325. package/build/server/chunks/entries/endpoints/api/plugins/_plugin_/load/_server.ts.js-CPBW7xEV.js +23 -0
  326. package/build/server/chunks/entries/endpoints/api/plugins/_plugin_/ui/_...path_/_server.ts.js-Dg2Sbcgq.js +59 -0
  327. package/build/server/chunks/entries/endpoints/api/plugins/_plugin_/update/_server.ts.js-C9LXRfKc.js +35 -0
  328. package/build/server/chunks/entries/endpoints/api/plugins/_server.ts.js-C7RCx22P.js +36 -0
  329. package/build/server/chunks/entries/endpoints/api/plugins/inspect/_server.ts.js-CSPS_3gF.js +35 -0
  330. package/build/server/chunks/entries/endpoints/api/plugins/install/_server.ts.js-DWxejv3K.js +38 -0
  331. package/build/server/chunks/entries/endpoints/api/plugins/updates/_server.ts.js-BYYXspMy.js +23 -0
  332. package/build/server/chunks/entries/endpoints/api/projects/_id_/passage/_server.ts.js-BAPnLV-3.js +41 -0
  333. package/build/server/chunks/entries/endpoints/api/projects/_id_/passage/commands/_server.ts.js-OYV-kJGk.js +50 -0
  334. package/build/server/chunks/entries/endpoints/api/projects/_id_/passage/consent/_server.ts.js-DovNLcSw.js +62 -0
  335. package/build/server/chunks/entries/endpoints/api/projects/_id_/passage/draft/_server.ts.js-CYU1VGUf.js +49 -0
  336. package/build/server/chunks/entries/endpoints/api/projects/_id_/passage/file/_server.ts.js-CgCzXBIB.js +72 -0
  337. package/build/server/chunks/entries/endpoints/api/projects/_id_/passage/test/_server.ts.js-BZ2S7d9x.js +55 -0
  338. package/build/server/chunks/entries/endpoints/api/services/_server.ts.js-CMVRpWqZ.js +55 -0
  339. package/build/server/chunks/entries/endpoints/api/slots/_server.ts.js-BhhLjW17.js +44 -0
  340. package/build/server/chunks/entries/endpoints/api/tasks/_id_/_server.ts.js-Bukv4dSq.js +41 -0
  341. package/build/server/chunks/entries/endpoints/api/tasks/_id_/artifacts/_...name_/_server.ts.js-BsHRnnS7.js +60 -0
  342. package/build/server/chunks/entries/endpoints/api/tasks/_id_/diff/_server.ts.js-B9eygpXJ.js +48 -0
  343. package/build/server/chunks/entries/endpoints/api/tasks/_id_/output/_server.ts.js-o7w8BRpJ.js +93 -0
  344. package/build/server/chunks/entries/endpoints/api/tasks/_id_/preview/_server.ts.js-BaXho4qD.js +110 -0
  345. package/build/server/chunks/entries/endpoints/api/vault/_server.ts.js-CagOXKfp.js +54 -0
  346. package/build/server/chunks/entries/endpoints/api/wheelhouse/update/_server.ts.js-CAcsCtS9.js +23 -0
  347. package/build/server/chunks/entries/endpoints/api/wheelhouse/upgrade/_server.ts.js-CSlKdXcw.js +23 -0
  348. package/build/server/chunks/entries/endpoints/tasks/_id_/review/_server.ts.js-OEWlGF9d.js +40 -0
  349. package/build/server/chunks/entries/hooks.server.js-BeVVnKyB.js +54 -0
  350. package/build/server/chunks/entries/pages/_layout.server.ts.js-CFzh0bb7.js +24 -0
  351. package/build/server/chunks/entries/pages/_layout.svelte.js-BQyvY_vc.js +8746 -0
  352. package/build/server/chunks/entries/pages/_page.server.ts.js-DqT-OIkV.js +16 -0
  353. package/build/server/chunks/entries/pages/_page.svelte.js-DMDSI7Tw.js +2220 -0
  354. package/build/server/chunks/entries/pages/decisions/_page.server.ts.js-CGjy1S4B.js +11 -0
  355. package/build/server/chunks/entries/pages/files/_page.server.ts.js-D6VF_7EK.js +17 -0
  356. package/build/server/chunks/entries/pages/harbour/_page.server.ts.js-Cbei7bFp.js +46 -0
  357. package/build/server/chunks/entries/pages/harbour/_page.svelte.js-D8RsASWB.js +580 -0
  358. package/build/server/chunks/entries/pages/headroom/_page.server.ts.js-DtFxpkIR.js +11 -0
  359. package/build/server/chunks/entries/pages/inbox/_page.svelte.js-Bn5pWt__.js +185 -0
  360. package/build/server/chunks/entries/pages/plugins/_plugin_/_page_/_page.server.ts.js-CybSuVD4.js +16 -0
  361. package/build/server/chunks/entries/pages/plugins/_plugin_/_page_/_page.svelte.js-DMPiRdLN.js +52 -0
  362. package/build/server/chunks/entries/pages/projects/_id_/_page.server.ts.js-CroKCV4u.js +23 -0
  363. package/build/server/chunks/entries/pages/projects/_id_/_page.svelte.js-_DNqdqJc.js +976 -0
  364. package/build/server/chunks/entries/pages/projects/_id_/_plugin_/_tab_/_page.server.ts.js-Vb8907y2.js +21 -0
  365. package/build/server/chunks/entries/pages/projects/_id_/_plugin_/_tab_/_page.svelte.js-BLTTCa_O.js +74 -0
  366. package/build/server/chunks/entries/pages/projects/_id_/passage/_page.server.ts.js-Cor2JYpv.js +27 -0
  367. package/build/server/chunks/entries/pages/projects/_id_/passage/_page.svelte.js-BTgNmS_4.js +433 -0
  368. package/build/server/chunks/entries/pages/projects/_id_/passage/edit/_page.server.ts.js-Dtvwihv0.js +15 -0
  369. package/build/server/chunks/entries/pages/projects/_id_/passage/edit/_page.svelte.js-DuitNXlV.js +1880 -0
  370. package/build/server/chunks/entries/pages/settings/gateway/_page.server.ts.js-BqNGCjSG.js +11 -0
  371. package/build/server/chunks/entries/pages/settings/plugins/_page.server.ts.js-CQ9DVI4s.js +19 -0
  372. package/build/server/chunks/entries/pages/settings/plugins/_page.svelte.js-U1GPMY59.js +1847 -0
  373. package/build/server/chunks/entries/pages/settings/plugins/_plugin_/_page.server.ts.js-C_YGnjmx.js +17 -0
  374. package/build/server/chunks/entries/pages/settings/plugins/_plugin_/_page.svelte.js-C_gSykyo.js +220 -0
  375. package/build/server/chunks/entries/pages/tasks/_id_/_page.server.ts.js-C-lePqYN.js +25 -0
  376. package/build/server/chunks/entries/pages/tasks/_id_/_page.svelte.js-Ds1ivkgU.js +2142 -0
  377. package/build/server/chunks/entries/pages/tasks/_id_/doc/_page.server.ts.js-DH7nAB6U.js +24 -0
  378. package/build/server/chunks/entries/pages/time/_page.server.ts.js-Bfe-SSUC.js +11 -0
  379. package/build/server/chunks/handler-CViJcHBG.js +1474 -0
  380. package/build/server/chunks/index.js-DO8YdJ_5.js +4296 -0
  381. package/build/server/chunks/manifest.js-DJYckUS-.js +501 -0
  382. package/build/server/chunks/nodes/0.js-DZ4kFPNe.js +41 -0
  383. package/build/server/chunks/nodes/1.js-CLGjQTlS.js +9 -0
  384. package/build/server/chunks/nodes/10.js-BN4Clcbg.js +43 -0
  385. package/build/server/chunks/nodes/11.js-DWB1yiJ6.js +42 -0
  386. package/build/server/chunks/nodes/12.js-CA99401F.js +43 -0
  387. package/build/server/chunks/nodes/13.js-YsHE2JFx.js +42 -0
  388. package/build/server/chunks/nodes/15.js-CLdnAt4r.js +41 -0
  389. package/build/server/chunks/nodes/16.js-B-2Iq3Ye.js +41 -0
  390. package/build/server/chunks/nodes/17.js-BTM2TsmR.js +44 -0
  391. package/build/server/chunks/nodes/18.js-D3m0ATU2.js +42 -0
  392. package/build/server/chunks/nodes/19.js-C3dO33LH.js +42 -0
  393. package/build/server/chunks/nodes/2.js-51wjL-91.js +41 -0
  394. package/build/server/chunks/nodes/20.js-e41qDeY7.js +41 -0
  395. package/build/server/chunks/nodes/3.js-3JUV-tiI.js +41 -0
  396. package/build/server/chunks/nodes/4.js-CI6WGOXE.js +41 -0
  397. package/build/server/chunks/nodes/5.js-tZ-lWwlu.js +45 -0
  398. package/build/server/chunks/nodes/6.js-BgQesykU.js +41 -0
  399. package/build/server/chunks/nodes/7.js-CFXzqkNQ.js +9 -0
  400. package/build/server/chunks/nodes/9.js-CUQI6T4W.js +41 -0
  401. package/dist/cli.js +2 -12
  402. package/dist/wh-vault.js +1 -1
  403. package/package.json +1 -1
  404. package/build/client/_app/immutable/assets/0.CKUND0qa.css +0 -1
  405. package/build/client/_app/immutable/assets/0.CKUND0qa.css.br +0 -0
  406. package/build/client/_app/immutable/assets/0.CKUND0qa.css.gz +0 -0
  407. package/build/client/_app/immutable/assets/20.KLSHp5Yu.css +0 -1
  408. package/build/client/_app/immutable/assets/20.KLSHp5Yu.css.br +0 -0
  409. package/build/client/_app/immutable/assets/20.KLSHp5Yu.css.gz +0 -0
  410. package/build/client/_app/immutable/chunks/08Q01-Mc.js +0 -1
  411. package/build/client/_app/immutable/chunks/08Q01-Mc.js.br +0 -0
  412. package/build/client/_app/immutable/chunks/08Q01-Mc.js.gz +0 -0
  413. package/build/client/_app/immutable/chunks/0TvUxbRv.js +0 -1
  414. package/build/client/_app/immutable/chunks/0TvUxbRv.js.br +0 -2
  415. package/build/client/_app/immutable/chunks/0TvUxbRv.js.gz +0 -0
  416. package/build/client/_app/immutable/chunks/3Of2kn6M.js +0 -5
  417. package/build/client/_app/immutable/chunks/3Of2kn6M.js.br +0 -0
  418. package/build/client/_app/immutable/chunks/3Of2kn6M.js.gz +0 -0
  419. package/build/client/_app/immutable/chunks/5fVeMNeJ.js +0 -1
  420. package/build/client/_app/immutable/chunks/5fVeMNeJ.js.br +0 -0
  421. package/build/client/_app/immutable/chunks/5fVeMNeJ.js.gz +0 -0
  422. package/build/client/_app/immutable/chunks/A8GZ5Uuc.js +0 -1
  423. package/build/client/_app/immutable/chunks/A8GZ5Uuc.js.br +0 -0
  424. package/build/client/_app/immutable/chunks/A8GZ5Uuc.js.gz +0 -0
  425. package/build/client/_app/immutable/chunks/AHy1Hzhf.js +0 -1
  426. package/build/client/_app/immutable/chunks/AHy1Hzhf.js.br +0 -0
  427. package/build/client/_app/immutable/chunks/AHy1Hzhf.js.gz +0 -0
  428. package/build/client/_app/immutable/chunks/B3jXa2LJ.js +0 -1
  429. package/build/client/_app/immutable/chunks/B3jXa2LJ.js.br +0 -0
  430. package/build/client/_app/immutable/chunks/B3jXa2LJ.js.gz +0 -0
  431. package/build/client/_app/immutable/chunks/BEDHe9fo.js +0 -1
  432. package/build/client/_app/immutable/chunks/BEDHe9fo.js.br +0 -0
  433. package/build/client/_app/immutable/chunks/BEDHe9fo.js.gz +0 -0
  434. package/build/client/_app/immutable/chunks/BJ_s8GdZ.js +0 -2
  435. package/build/client/_app/immutable/chunks/BJ_s8GdZ.js.br +0 -0
  436. package/build/client/_app/immutable/chunks/BJ_s8GdZ.js.gz +0 -0
  437. package/build/client/_app/immutable/chunks/BKd0HUNP.js +0 -1
  438. package/build/client/_app/immutable/chunks/BKd0HUNP.js.br +0 -1
  439. package/build/client/_app/immutable/chunks/BKd0HUNP.js.gz +0 -0
  440. package/build/client/_app/immutable/chunks/BLL4xbEj.js +0 -1
  441. package/build/client/_app/immutable/chunks/BLL4xbEj.js.br +0 -0
  442. package/build/client/_app/immutable/chunks/BLL4xbEj.js.gz +0 -0
  443. package/build/client/_app/immutable/chunks/BUUcNufp.js +0 -1
  444. package/build/client/_app/immutable/chunks/BUUcNufp.js.br +0 -0
  445. package/build/client/_app/immutable/chunks/BUUcNufp.js.gz +0 -0
  446. package/build/client/_app/immutable/chunks/BY5XjwMm.js +0 -1
  447. package/build/client/_app/immutable/chunks/BY5XjwMm.js.br +0 -0
  448. package/build/client/_app/immutable/chunks/BY5XjwMm.js.gz +0 -0
  449. package/build/client/_app/immutable/chunks/BdZ-2OIO.js +0 -1
  450. package/build/client/_app/immutable/chunks/BdZ-2OIO.js.br +0 -0
  451. package/build/client/_app/immutable/chunks/BdZ-2OIO.js.gz +0 -0
  452. package/build/client/_app/immutable/chunks/BdvB_H6l.js +0 -1
  453. package/build/client/_app/immutable/chunks/BdvB_H6l.js.br +0 -0
  454. package/build/client/_app/immutable/chunks/BdvB_H6l.js.gz +0 -0
  455. package/build/client/_app/immutable/chunks/Bm8huziG.js +0 -1
  456. package/build/client/_app/immutable/chunks/Bm8huziG.js.br +0 -0
  457. package/build/client/_app/immutable/chunks/Bm8huziG.js.gz +0 -0
  458. package/build/client/_app/immutable/chunks/BnMEvq-8.js +0 -1
  459. package/build/client/_app/immutable/chunks/BnMEvq-8.js.br +0 -0
  460. package/build/client/_app/immutable/chunks/BnMEvq-8.js.gz +0 -0
  461. package/build/client/_app/immutable/chunks/BngQrigD.js +0 -1
  462. package/build/client/_app/immutable/chunks/BngQrigD.js.br +0 -0
  463. package/build/client/_app/immutable/chunks/BngQrigD.js.gz +0 -0
  464. package/build/client/_app/immutable/chunks/BqQtpLRF.js +0 -5
  465. package/build/client/_app/immutable/chunks/BqQtpLRF.js.br +0 -0
  466. package/build/client/_app/immutable/chunks/BqQtpLRF.js.gz +0 -0
  467. package/build/client/_app/immutable/chunks/Bx2K4OII.js +0 -1
  468. package/build/client/_app/immutable/chunks/Bx2K4OII.js.br +0 -0
  469. package/build/client/_app/immutable/chunks/Bx2K4OII.js.gz +0 -0
  470. package/build/client/_app/immutable/chunks/Bypc6r1_.js +0 -1
  471. package/build/client/_app/immutable/chunks/Bypc6r1_.js.br +0 -0
  472. package/build/client/_app/immutable/chunks/Bypc6r1_.js.gz +0 -0
  473. package/build/client/_app/immutable/chunks/C16DfZ5a.js +0 -1
  474. package/build/client/_app/immutable/chunks/C16DfZ5a.js.br +0 -1
  475. package/build/client/_app/immutable/chunks/C16DfZ5a.js.gz +0 -0
  476. package/build/client/_app/immutable/chunks/C3Yi7wCu.js +0 -1
  477. package/build/client/_app/immutable/chunks/C3Yi7wCu.js.br +0 -0
  478. package/build/client/_app/immutable/chunks/C3Yi7wCu.js.gz +0 -0
  479. package/build/client/_app/immutable/chunks/C3e5IrpE.js +0 -1
  480. package/build/client/_app/immutable/chunks/C3e5IrpE.js.br +0 -0
  481. package/build/client/_app/immutable/chunks/C3e5IrpE.js.gz +0 -0
  482. package/build/client/_app/immutable/chunks/C3o9xHsB.js +0 -1
  483. package/build/client/_app/immutable/chunks/C3o9xHsB.js.br +0 -0
  484. package/build/client/_app/immutable/chunks/C3o9xHsB.js.gz +0 -0
  485. package/build/client/_app/immutable/chunks/C6q0X9xa.js +0 -1
  486. package/build/client/_app/immutable/chunks/C6q0X9xa.js.br +0 -0
  487. package/build/client/_app/immutable/chunks/C6q0X9xa.js.gz +0 -0
  488. package/build/client/_app/immutable/chunks/C74jQQYs.js +0 -1
  489. package/build/client/_app/immutable/chunks/C74jQQYs.js.br +0 -0
  490. package/build/client/_app/immutable/chunks/C74jQQYs.js.gz +0 -0
  491. package/build/client/_app/immutable/chunks/CBHYGBBU.js +0 -4
  492. package/build/client/_app/immutable/chunks/CBHYGBBU.js.br +0 -0
  493. package/build/client/_app/immutable/chunks/CBHYGBBU.js.gz +0 -0
  494. package/build/client/_app/immutable/chunks/CD3hbDYc.js +0 -1
  495. package/build/client/_app/immutable/chunks/CD3hbDYc.js.br +0 -0
  496. package/build/client/_app/immutable/chunks/CD3hbDYc.js.gz +0 -0
  497. package/build/client/_app/immutable/chunks/CE3Ue5FU.js +0 -1
  498. package/build/client/_app/immutable/chunks/CE3Ue5FU.js.br +0 -0
  499. package/build/client/_app/immutable/chunks/CE3Ue5FU.js.gz +0 -0
  500. package/build/client/_app/immutable/chunks/CGGuNYjO.js +0 -1
  501. package/build/client/_app/immutable/chunks/CGGuNYjO.js.br +0 -0
  502. package/build/client/_app/immutable/chunks/CGGuNYjO.js.gz +0 -0
  503. package/build/client/_app/immutable/chunks/CH_9Gtej.js +0 -1
  504. package/build/client/_app/immutable/chunks/CH_9Gtej.js.br +0 -0
  505. package/build/client/_app/immutable/chunks/CH_9Gtej.js.gz +0 -0
  506. package/build/client/_app/immutable/chunks/CIj4gWfs.js +0 -1
  507. package/build/client/_app/immutable/chunks/CIj4gWfs.js.br +0 -0
  508. package/build/client/_app/immutable/chunks/CIj4gWfs.js.gz +0 -0
  509. package/build/client/_app/immutable/chunks/CJ3NIasv.js +0 -1
  510. package/build/client/_app/immutable/chunks/CJ3NIasv.js.br +0 -0
  511. package/build/client/_app/immutable/chunks/CJ3NIasv.js.gz +0 -0
  512. package/build/client/_app/immutable/chunks/CKEJURpk.js +0 -1
  513. package/build/client/_app/immutable/chunks/CKEJURpk.js.br +0 -0
  514. package/build/client/_app/immutable/chunks/CKEJURpk.js.gz +0 -0
  515. package/build/client/_app/immutable/chunks/CPmGhju_.js +0 -1
  516. package/build/client/_app/immutable/chunks/CPmGhju_.js.br +0 -1
  517. package/build/client/_app/immutable/chunks/CPmGhju_.js.gz +0 -0
  518. package/build/client/_app/immutable/chunks/CXcL7cOb.js +0 -1
  519. package/build/client/_app/immutable/chunks/CXcL7cOb.js.br +0 -0
  520. package/build/client/_app/immutable/chunks/CXcL7cOb.js.gz +0 -0
  521. package/build/client/_app/immutable/chunks/CXgAyvD-.js +0 -1
  522. package/build/client/_app/immutable/chunks/CXgAyvD-.js.br +0 -0
  523. package/build/client/_app/immutable/chunks/CXgAyvD-.js.gz +0 -0
  524. package/build/client/_app/immutable/chunks/CZBcpBnY.js +0 -1
  525. package/build/client/_app/immutable/chunks/CZBcpBnY.js.br +0 -0
  526. package/build/client/_app/immutable/chunks/CZBcpBnY.js.gz +0 -0
  527. package/build/client/_app/immutable/chunks/Cb-gOV5k.js +0 -1
  528. package/build/client/_app/immutable/chunks/Cb-gOV5k.js.br +0 -0
  529. package/build/client/_app/immutable/chunks/Cb-gOV5k.js.gz +0 -0
  530. package/build/client/_app/immutable/chunks/Cl7r7DFs.js +0 -1
  531. package/build/client/_app/immutable/chunks/Cl7r7DFs.js.br +0 -0
  532. package/build/client/_app/immutable/chunks/Cl7r7DFs.js.gz +0 -0
  533. package/build/client/_app/immutable/chunks/Cm8CSK8p.js +0 -1
  534. package/build/client/_app/immutable/chunks/Cm8CSK8p.js.br +0 -0
  535. package/build/client/_app/immutable/chunks/Cm8CSK8p.js.gz +0 -0
  536. package/build/client/_app/immutable/chunks/Cng04DK0.js +0 -1
  537. package/build/client/_app/immutable/chunks/Cng04DK0.js.br +0 -0
  538. package/build/client/_app/immutable/chunks/Cng04DK0.js.gz +0 -0
  539. package/build/client/_app/immutable/chunks/CqOnPLsz.js +0 -1
  540. package/build/client/_app/immutable/chunks/CqOnPLsz.js.br +0 -0
  541. package/build/client/_app/immutable/chunks/CqOnPLsz.js.gz +0 -0
  542. package/build/client/_app/immutable/chunks/Cqy1lT7e.js +0 -1
  543. package/build/client/_app/immutable/chunks/Cqy1lT7e.js.br +0 -0
  544. package/build/client/_app/immutable/chunks/Cqy1lT7e.js.gz +0 -0
  545. package/build/client/_app/immutable/chunks/CrjvgIhR.js +0 -1
  546. package/build/client/_app/immutable/chunks/CrjvgIhR.js.br +0 -0
  547. package/build/client/_app/immutable/chunks/CrjvgIhR.js.gz +0 -0
  548. package/build/client/_app/immutable/chunks/CsRBDrRN.js +0 -1
  549. package/build/client/_app/immutable/chunks/CsRBDrRN.js.br +0 -0
  550. package/build/client/_app/immutable/chunks/CsRBDrRN.js.gz +0 -0
  551. package/build/client/_app/immutable/chunks/CwwFbl61.js +0 -62
  552. package/build/client/_app/immutable/chunks/CwwFbl61.js.br +0 -0
  553. package/build/client/_app/immutable/chunks/CwwFbl61.js.gz +0 -0
  554. package/build/client/_app/immutable/chunks/D0JSbOCt.js +0 -1
  555. package/build/client/_app/immutable/chunks/D0JSbOCt.js.br +0 -0
  556. package/build/client/_app/immutable/chunks/D0JSbOCt.js.gz +0 -0
  557. package/build/client/_app/immutable/chunks/D25j-NnT.js +0 -1
  558. package/build/client/_app/immutable/chunks/D25j-NnT.js.br +0 -0
  559. package/build/client/_app/immutable/chunks/D25j-NnT.js.gz +0 -0
  560. package/build/client/_app/immutable/chunks/D5hwKKRv.js +0 -1
  561. package/build/client/_app/immutable/chunks/D5hwKKRv.js.br +0 -0
  562. package/build/client/_app/immutable/chunks/D5hwKKRv.js.gz +0 -0
  563. package/build/client/_app/immutable/chunks/DBxUIz0k.js +0 -1
  564. package/build/client/_app/immutable/chunks/DBxUIz0k.js.br +0 -0
  565. package/build/client/_app/immutable/chunks/DBxUIz0k.js.gz +0 -0
  566. package/build/client/_app/immutable/chunks/DH7t4M9x.js +0 -1
  567. package/build/client/_app/immutable/chunks/DH7t4M9x.js.br +0 -0
  568. package/build/client/_app/immutable/chunks/DH7t4M9x.js.gz +0 -0
  569. package/build/client/_app/immutable/chunks/DIsXG5DF.js +0 -1
  570. package/build/client/_app/immutable/chunks/DIsXG5DF.js.br +0 -0
  571. package/build/client/_app/immutable/chunks/DIsXG5DF.js.gz +0 -0
  572. package/build/client/_app/immutable/chunks/DNgh8jh8.js +0 -1
  573. package/build/client/_app/immutable/chunks/DNgh8jh8.js.br +0 -0
  574. package/build/client/_app/immutable/chunks/DNgh8jh8.js.gz +0 -0
  575. package/build/client/_app/immutable/chunks/DOWSzKHL.js +0 -1
  576. package/build/client/_app/immutable/chunks/DOWSzKHL.js.br +0 -0
  577. package/build/client/_app/immutable/chunks/DOWSzKHL.js.gz +0 -0
  578. package/build/client/_app/immutable/chunks/DSbOoIPC.js +0 -1
  579. package/build/client/_app/immutable/chunks/DSbOoIPC.js.br +0 -0
  580. package/build/client/_app/immutable/chunks/DSbOoIPC.js.gz +0 -0
  581. package/build/client/_app/immutable/chunks/DUYBhCSA.js +0 -1
  582. package/build/client/_app/immutable/chunks/DUYBhCSA.js.br +0 -0
  583. package/build/client/_app/immutable/chunks/DUYBhCSA.js.gz +0 -0
  584. package/build/client/_app/immutable/chunks/DfDxKk91.js +0 -2
  585. package/build/client/_app/immutable/chunks/DfDxKk91.js.br +0 -0
  586. package/build/client/_app/immutable/chunks/DfDxKk91.js.gz +0 -0
  587. package/build/client/_app/immutable/chunks/DhfQd5fc.js +0 -1
  588. package/build/client/_app/immutable/chunks/DhfQd5fc.js.br +0 -0
  589. package/build/client/_app/immutable/chunks/DhfQd5fc.js.gz +0 -0
  590. package/build/client/_app/immutable/chunks/DmYFgZ4g.js +0 -6
  591. package/build/client/_app/immutable/chunks/DmYFgZ4g.js.br +0 -0
  592. package/build/client/_app/immutable/chunks/DmYFgZ4g.js.gz +0 -0
  593. package/build/client/_app/immutable/chunks/Dn-83VwV.js +0 -1
  594. package/build/client/_app/immutable/chunks/Dn-83VwV.js.br +0 -1
  595. package/build/client/_app/immutable/chunks/Dn-83VwV.js.gz +0 -0
  596. package/build/client/_app/immutable/chunks/Dnnuh6qK.js +0 -1
  597. package/build/client/_app/immutable/chunks/Dnnuh6qK.js.br +0 -0
  598. package/build/client/_app/immutable/chunks/Dnnuh6qK.js.gz +0 -0
  599. package/build/client/_app/immutable/chunks/DocaGLjv.js +0 -1
  600. package/build/client/_app/immutable/chunks/DocaGLjv.js.br +0 -0
  601. package/build/client/_app/immutable/chunks/DocaGLjv.js.gz +0 -0
  602. package/build/client/_app/immutable/chunks/Dqlbq2bD.js +0 -2
  603. package/build/client/_app/immutable/chunks/Dqlbq2bD.js.br +0 -0
  604. package/build/client/_app/immutable/chunks/Dqlbq2bD.js.gz +0 -0
  605. package/build/client/_app/immutable/chunks/Dy07EIjs.js +0 -1
  606. package/build/client/_app/immutable/chunks/Dy07EIjs.js.br +0 -0
  607. package/build/client/_app/immutable/chunks/Dy07EIjs.js.gz +0 -0
  608. package/build/client/_app/immutable/chunks/Dy_X9Fgu.js +0 -1
  609. package/build/client/_app/immutable/chunks/Dy_X9Fgu.js.br +0 -0
  610. package/build/client/_app/immutable/chunks/Dy_X9Fgu.js.gz +0 -0
  611. package/build/client/_app/immutable/chunks/I26VQaTs.js +0 -2
  612. package/build/client/_app/immutable/chunks/I26VQaTs.js.br +0 -0
  613. package/build/client/_app/immutable/chunks/I26VQaTs.js.gz +0 -0
  614. package/build/client/_app/immutable/chunks/IsTbwoyV.js +0 -1
  615. package/build/client/_app/immutable/chunks/IsTbwoyV.js.br +0 -0
  616. package/build/client/_app/immutable/chunks/IsTbwoyV.js.gz +0 -0
  617. package/build/client/_app/immutable/chunks/Km1CymxJ.js +0 -1
  618. package/build/client/_app/immutable/chunks/Km1CymxJ.js.br +0 -0
  619. package/build/client/_app/immutable/chunks/Km1CymxJ.js.gz +0 -0
  620. package/build/client/_app/immutable/chunks/Me06-nC7.js +0 -1
  621. package/build/client/_app/immutable/chunks/Me06-nC7.js.br +0 -0
  622. package/build/client/_app/immutable/chunks/Me06-nC7.js.gz +0 -0
  623. package/build/client/_app/immutable/chunks/PQApLOOr.js +0 -1
  624. package/build/client/_app/immutable/chunks/PQApLOOr.js.br +0 -0
  625. package/build/client/_app/immutable/chunks/PQApLOOr.js.gz +0 -0
  626. package/build/client/_app/immutable/chunks/WcvPAxq7.js +0 -1
  627. package/build/client/_app/immutable/chunks/WcvPAxq7.js.br +0 -0
  628. package/build/client/_app/immutable/chunks/WcvPAxq7.js.gz +0 -0
  629. package/build/client/_app/immutable/chunks/ZoG8qKMx.js +0 -1
  630. package/build/client/_app/immutable/chunks/ZoG8qKMx.js.br +0 -0
  631. package/build/client/_app/immutable/chunks/ZoG8qKMx.js.gz +0 -0
  632. package/build/client/_app/immutable/chunks/qb_JS6rP.js +0 -1
  633. package/build/client/_app/immutable/chunks/qb_JS6rP.js.br +0 -0
  634. package/build/client/_app/immutable/chunks/qb_JS6rP.js.gz +0 -0
  635. package/build/client/_app/immutable/chunks/riwaJFkb.js +0 -3
  636. package/build/client/_app/immutable/chunks/riwaJFkb.js.br +0 -0
  637. package/build/client/_app/immutable/chunks/riwaJFkb.js.gz +0 -0
  638. package/build/client/_app/immutable/chunks/wDLVOANX.js +0 -2
  639. package/build/client/_app/immutable/chunks/wDLVOANX.js.br +0 -0
  640. package/build/client/_app/immutable/chunks/wDLVOANX.js.gz +0 -0
  641. package/build/client/_app/immutable/entry/app.CNnpPQtw.js +0 -2
  642. package/build/client/_app/immutable/entry/app.CNnpPQtw.js.br +0 -0
  643. package/build/client/_app/immutable/entry/app.CNnpPQtw.js.gz +0 -0
  644. package/build/client/_app/immutable/entry/start.BGpEqKH0.js +0 -1
  645. package/build/client/_app/immutable/entry/start.BGpEqKH0.js.br +0 -0
  646. package/build/client/_app/immutable/entry/start.BGpEqKH0.js.gz +0 -0
  647. package/build/client/_app/immutable/nodes/0.CGlGdRWB.js +0 -8
  648. package/build/client/_app/immutable/nodes/0.CGlGdRWB.js.br +0 -0
  649. package/build/client/_app/immutable/nodes/0.CGlGdRWB.js.gz +0 -0
  650. package/build/client/_app/immutable/nodes/1.B4M0q1v4.js +0 -1
  651. package/build/client/_app/immutable/nodes/1.B4M0q1v4.js.br +0 -0
  652. package/build/client/_app/immutable/nodes/1.B4M0q1v4.js.gz +0 -0
  653. package/build/client/_app/immutable/nodes/10.LJhhE6c8.js +0 -3
  654. package/build/client/_app/immutable/nodes/10.LJhhE6c8.js.br +0 -0
  655. package/build/client/_app/immutable/nodes/10.LJhhE6c8.js.gz +0 -0
  656. package/build/client/_app/immutable/nodes/11.CM_xAozz.js +0 -1
  657. package/build/client/_app/immutable/nodes/11.CM_xAozz.js.br +0 -0
  658. package/build/client/_app/immutable/nodes/11.CM_xAozz.js.gz +0 -0
  659. package/build/client/_app/immutable/nodes/12.UENbuJYy.js +0 -14
  660. package/build/client/_app/immutable/nodes/12.UENbuJYy.js.br +0 -0
  661. package/build/client/_app/immutable/nodes/12.UENbuJYy.js.gz +0 -0
  662. package/build/client/_app/immutable/nodes/13.NbAfy9an.js +0 -150
  663. package/build/client/_app/immutable/nodes/13.NbAfy9an.js.br +0 -0
  664. package/build/client/_app/immutable/nodes/13.NbAfy9an.js.gz +0 -0
  665. package/build/client/_app/immutable/nodes/15.BgyPK-jf.js +0 -11
  666. package/build/client/_app/immutable/nodes/15.BgyPK-jf.js.br +0 -0
  667. package/build/client/_app/immutable/nodes/15.BgyPK-jf.js.gz +0 -0
  668. package/build/client/_app/immutable/nodes/16.DcgniGJK.js +0 -9
  669. package/build/client/_app/immutable/nodes/16.DcgniGJK.js.br +0 -0
  670. package/build/client/_app/immutable/nodes/16.DcgniGJK.js.gz +0 -0
  671. package/build/client/_app/immutable/nodes/17.CB9DXHxS.js +0 -2
  672. package/build/client/_app/immutable/nodes/17.CB9DXHxS.js.br +0 -0
  673. package/build/client/_app/immutable/nodes/17.CB9DXHxS.js.gz +0 -0
  674. package/build/client/_app/immutable/nodes/18.BHa-KoGE.js +0 -6
  675. package/build/client/_app/immutable/nodes/18.BHa-KoGE.js.br +0 -0
  676. package/build/client/_app/immutable/nodes/18.BHa-KoGE.js.gz +0 -0
  677. package/build/client/_app/immutable/nodes/19._VaGaWBD.js +0 -1
  678. package/build/client/_app/immutable/nodes/19._VaGaWBD.js.br +0 -0
  679. package/build/client/_app/immutable/nodes/19._VaGaWBD.js.gz +0 -0
  680. package/build/client/_app/immutable/nodes/2.DKxd0T79.js +0 -14
  681. package/build/client/_app/immutable/nodes/2.DKxd0T79.js.br +0 -0
  682. package/build/client/_app/immutable/nodes/2.DKxd0T79.js.gz +0 -0
  683. package/build/client/_app/immutable/nodes/20.C10FVhEw.js +0 -10
  684. package/build/client/_app/immutable/nodes/20.C10FVhEw.js.br +0 -0
  685. package/build/client/_app/immutable/nodes/20.C10FVhEw.js.gz +0 -0
  686. package/build/client/_app/immutable/nodes/21.BhyJIr3P.js +0 -6
  687. package/build/client/_app/immutable/nodes/21.BhyJIr3P.js.br +0 -0
  688. package/build/client/_app/immutable/nodes/21.BhyJIr3P.js.gz +0 -0
  689. package/build/client/_app/immutable/nodes/3.CcRoRYc-.js +0 -5
  690. package/build/client/_app/immutable/nodes/3.CcRoRYc-.js.br +0 -0
  691. package/build/client/_app/immutable/nodes/3.CcRoRYc-.js.gz +0 -0
  692. package/build/client/_app/immutable/nodes/4.BulJqGnt.js +0 -1
  693. package/build/client/_app/immutable/nodes/4.BulJqGnt.js.br +0 -0
  694. package/build/client/_app/immutable/nodes/4.BulJqGnt.js.gz +0 -0
  695. package/build/client/_app/immutable/nodes/5.BT3hraTU.js +0 -1
  696. package/build/client/_app/immutable/nodes/5.BT3hraTU.js.br +0 -0
  697. package/build/client/_app/immutable/nodes/5.BT3hraTU.js.gz +0 -0
  698. package/build/client/_app/immutable/nodes/6.DtNMha3Y.js +0 -7
  699. package/build/client/_app/immutable/nodes/6.DtNMha3Y.js.br +0 -0
  700. package/build/client/_app/immutable/nodes/6.DtNMha3Y.js.gz +0 -0
  701. package/build/client/_app/immutable/nodes/7.Bv6Vn8eC.js +0 -4
  702. package/build/client/_app/immutable/nodes/7.Bv6Vn8eC.js.br +0 -0
  703. package/build/client/_app/immutable/nodes/7.Bv6Vn8eC.js.gz +0 -0
  704. package/build/client/_app/immutable/nodes/9.DgQz7-Cb.js +0 -1
  705. package/build/client/_app/immutable/nodes/9.DgQz7-Cb.js.br +0 -0
  706. package/build/client/_app/immutable/nodes/9.DgQz7-Cb.js.gz +0 -0
  707. package/build/server/chunks/chunks/DecisionCard.js-B1YgF5EF.js +0 -446
  708. package/build/server/chunks/chunks/DictateTextarea.js-CbkGsd1h.js +0 -415
  709. package/build/server/chunks/chunks/EtaLine.js-5SCP9O1f.js +0 -79
  710. package/build/server/chunks/chunks/EveryProjectSwitch.js-DzcwkHh4.js +0 -200
  711. package/build/server/chunks/chunks/ProjectBanner.js-ByPp7Y_e.js +0 -111
  712. package/build/server/chunks/chunks/ResizableRail.js-BS8hRLV0.js +0 -395
  713. package/build/server/chunks/chunks/chat.svelte.js--pRzj_Xo.js +0 -545
  714. package/build/server/chunks/chunks/compass.js-k2sRSGWn.js +0 -23
  715. package/build/server/chunks/chunks/detail.js-DDoqeh1A.js +0 -144
  716. package/build/server/chunks/chunks/git-pull-request.js-BMzktlcs.js +0 -20
  717. package/build/server/chunks/chunks/http2.js-fIdVBJaD.js +0 -26
  718. package/build/server/chunks/chunks/internal.js-BlgsFxfY.js +0 -146
  719. package/build/server/chunks/chunks/keys.js-CdtCzv-v.js +0 -20
  720. package/build/server/chunks/chunks/live.svelte.js-By2dseJB.js +0 -253
  721. package/build/server/chunks/chunks/message-square-text.js-CyRiNGB8.js +0 -25
  722. package/build/server/chunks/chunks/monitor-play.js-4ed3ghDf.js +0 -28
  723. package/build/server/chunks/chunks/prreview.js-Cg9LDxJp.js +0 -92
  724. package/build/server/chunks/chunks/repo.js-CuWUNKbP.js +0 -33
  725. package/build/server/chunks/chunks/runtime.js-BuGWYyZZ.js +0 -16470
  726. package/build/server/chunks/chunks/service.js-DQK1kj-4.js +0 -914
  727. package/build/server/chunks/chunks/slots.svelte.js-0Ejhe-hS.js +0 -34
  728. package/build/server/chunks/chunks/store.js-XXOawxPN.js +0 -317
  729. package/build/server/chunks/chunks/uploads.js-D45pIvPk.js +0 -107
  730. package/build/server/chunks/chunks/view.js-CrOFjYk4.js +0 -76
  731. package/build/server/chunks/entries/endpoints/api/apps/_op_/_server.ts.js-DSkVUNdc.js +0 -90
  732. package/build/server/chunks/entries/endpoints/api/events/_server.ts.js-CYnLRjOH.js +0 -106
  733. package/build/server/chunks/entries/endpoints/api/files/_server.ts.js-CG8IGmSp.js +0 -49
  734. package/build/server/chunks/entries/endpoints/api/firstmate/chat/_server.ts.js-fmzKkrXb.js +0 -83
  735. package/build/server/chunks/entries/endpoints/api/firstmate/commands/_server.ts.js-BgIU3add.js +0 -119
  736. package/build/server/chunks/entries/endpoints/api/firstmate/dismiss/_server.ts.js-Ba9E_53E.js +0 -45
  737. package/build/server/chunks/entries/endpoints/api/firstmate/input/_server.ts.js-BQZBERsR.js +0 -51
  738. package/build/server/chunks/entries/endpoints/api/firstmate/interrupt/_server.ts.js-BnT3VHSx.js +0 -44
  739. package/build/server/chunks/entries/endpoints/api/firstmate/messages/_server.ts.js-DRYHwJ7R.js +0 -66
  740. package/build/server/chunks/entries/endpoints/api/firstmate/pick/_server.ts.js-BD2B1ByG.js +0 -54
  741. package/build/server/chunks/entries/endpoints/api/firstmate/start/_server.ts.js-DB-m2WWH.js +0 -44
  742. package/build/server/chunks/entries/endpoints/api/firstmate/uploads/_day_/_id_/_name_/_server.ts.js-CK3swjFX.js +0 -32
  743. package/build/server/chunks/entries/endpoints/api/firstmate/uploads/_server.ts.js-WCE63uer.js +0 -40
  744. package/build/server/chunks/entries/endpoints/api/fleet/_server.ts.js-D5-3acjK.js +0 -36
  745. package/build/server/chunks/entries/endpoints/api/gateway/_server.ts.js-B2I7jHdc.js +0 -100
  746. package/build/server/chunks/entries/endpoints/api/health/_server.ts.js-BFSqEG5B.js +0 -36
  747. package/build/server/chunks/entries/endpoints/api/inbox/_server.ts.js-BpUaHfsf.js +0 -60
  748. package/build/server/chunks/entries/endpoints/api/inbox/report/_server.ts.js-BNRD4HyF.js +0 -51
  749. package/build/server/chunks/entries/endpoints/api/insights/_server.ts.js-7808SNDM.js +0 -36
  750. package/build/server/chunks/entries/endpoints/api/plugins/_plugin_/config/_server.ts.js-B-cQTShG.js +0 -71
  751. package/build/server/chunks/entries/endpoints/api/plugins/_plugin_/load/_server.ts.js-CPAHSih2.js +0 -23
  752. package/build/server/chunks/entries/endpoints/api/plugins/_plugin_/ui/_...path_/_server.ts.js-DW3M1pzH.js +0 -59
  753. package/build/server/chunks/entries/endpoints/api/plugins/_plugin_/update/_server.ts.js-DDTSw0pX.js +0 -35
  754. package/build/server/chunks/entries/endpoints/api/plugins/_server.ts.js-BlD-1l6V.js +0 -36
  755. package/build/server/chunks/entries/endpoints/api/plugins/inspect/_server.ts.js-IT-jeApI.js +0 -35
  756. package/build/server/chunks/entries/endpoints/api/plugins/install/_server.ts.js-DQqKN2MF.js +0 -38
  757. package/build/server/chunks/entries/endpoints/api/plugins/updates/_server.ts.js-D7rx-bwI.js +0 -23
  758. package/build/server/chunks/entries/endpoints/api/projects/_id_/passage/_server.ts.js-BC0HjK9M.js +0 -41
  759. package/build/server/chunks/entries/endpoints/api/projects/_id_/passage/commands/_server.ts.js-aVmcjStV.js +0 -50
  760. package/build/server/chunks/entries/endpoints/api/projects/_id_/passage/consent/_server.ts.js-BuHN_WYU.js +0 -62
  761. package/build/server/chunks/entries/endpoints/api/projects/_id_/passage/draft/_server.ts.js-Dx0x7sws.js +0 -49
  762. package/build/server/chunks/entries/endpoints/api/projects/_id_/passage/file/_server.ts.js-CcCDMmmF.js +0 -72
  763. package/build/server/chunks/entries/endpoints/api/projects/_id_/passage/test/_server.ts.js-BsOOyTNM.js +0 -55
  764. package/build/server/chunks/entries/endpoints/api/services/_server.ts.js-DGyU8Zmu.js +0 -55
  765. package/build/server/chunks/entries/endpoints/api/slots/_server.ts.js-1B8fEiat.js +0 -44
  766. package/build/server/chunks/entries/endpoints/api/tasks/_id_/_server.ts.js-D4CKazw-.js +0 -41
  767. package/build/server/chunks/entries/endpoints/api/tasks/_id_/artifacts/_...name_/_server.ts.js-CUKo26Ia.js +0 -60
  768. package/build/server/chunks/entries/endpoints/api/tasks/_id_/diff/_server.ts.js-BOa2lgvP.js +0 -48
  769. package/build/server/chunks/entries/endpoints/api/tasks/_id_/output/_server.ts.js-BmI8Ofms.js +0 -93
  770. package/build/server/chunks/entries/endpoints/api/tasks/_id_/preview/_server.ts.js-C2mJi22c.js +0 -110
  771. package/build/server/chunks/entries/endpoints/api/tasks/_id_/review/_server.ts.js-8pN6fHl8.js +0 -43
  772. package/build/server/chunks/entries/endpoints/api/tasks/_id_/review/ask/_server.ts.js-D6D9O8Su.js +0 -49
  773. package/build/server/chunks/entries/endpoints/api/tasks/_id_/review/check/_server.ts.js-BAaCwzOf.js +0 -48
  774. package/build/server/chunks/entries/endpoints/api/tasks/_id_/review/guide/_server.ts.js-DfP2iNta.js +0 -48
  775. package/build/server/chunks/entries/endpoints/api/tasks/_id_/review/runs/_run_/stop/_server.ts.js-DZDaSSYT.js +0 -41
  776. package/build/server/chunks/entries/endpoints/api/vault/_server.ts.js-CJNUplXf.js +0 -54
  777. package/build/server/chunks/entries/endpoints/api/wheelhouse/update/_server.ts.js-CVqjWsw8.js +0 -23
  778. package/build/server/chunks/entries/endpoints/api/wheelhouse/upgrade/_server.ts.js-CE2zzWtC.js +0 -23
  779. package/build/server/chunks/entries/hooks.server.js-FjSdw_QS.js +0 -54
  780. package/build/server/chunks/entries/pages/_layout.server.ts.js-BkWAC802.js +0 -22
  781. package/build/server/chunks/entries/pages/_layout.svelte.js-DstinFjN.js +0 -8746
  782. package/build/server/chunks/entries/pages/_page.server.ts.js-BXkuWJh7.js +0 -16
  783. package/build/server/chunks/entries/pages/_page.svelte.js-ehBbQlco.js +0 -2194
  784. package/build/server/chunks/entries/pages/decisions/_page.server.ts.js-B2YZfjBk.js +0 -11
  785. package/build/server/chunks/entries/pages/files/_page.server.ts.js-CT3pm5a6.js +0 -17
  786. package/build/server/chunks/entries/pages/harbour/_page.server.ts.js-CcLkegHq.js +0 -46
  787. package/build/server/chunks/entries/pages/harbour/_page.svelte.js-hBC6QUHZ.js +0 -580
  788. package/build/server/chunks/entries/pages/headroom/_page.server.ts.js-BazCFIuz.js +0 -11
  789. package/build/server/chunks/entries/pages/inbox/_page.svelte.js-rjm303kf.js +0 -185
  790. package/build/server/chunks/entries/pages/plugins/_plugin_/_page_/_page.server.ts.js-BRQpg3kQ.js +0 -16
  791. package/build/server/chunks/entries/pages/plugins/_plugin_/_page_/_page.svelte.js-DazeLLT8.js +0 -52
  792. package/build/server/chunks/entries/pages/projects/_id_/_page.server.ts.js-BIypd_XU.js +0 -23
  793. package/build/server/chunks/entries/pages/projects/_id_/_page.svelte.js-DJajtLup.js +0 -945
  794. package/build/server/chunks/entries/pages/projects/_id_/_plugin_/_tab_/_page.server.ts.js-BwAOIwUv.js +0 -21
  795. package/build/server/chunks/entries/pages/projects/_id_/_plugin_/_tab_/_page.svelte.js-Cm8mxt61.js +0 -74
  796. package/build/server/chunks/entries/pages/projects/_id_/passage/_page.server.ts.js-CnfqlJgl.js +0 -27
  797. package/build/server/chunks/entries/pages/projects/_id_/passage/_page.svelte.js-CuMA-rCM.js +0 -433
  798. package/build/server/chunks/entries/pages/projects/_id_/passage/edit/_page.server.ts.js-CG14M19O.js +0 -15
  799. package/build/server/chunks/entries/pages/projects/_id_/passage/edit/_page.svelte.js-mtGQO-dJ.js +0 -1880
  800. package/build/server/chunks/entries/pages/settings/gateway/_page.server.ts.js-Zgfe-LX9.js +0 -11
  801. package/build/server/chunks/entries/pages/settings/plugins/_page.server.ts.js-DZ4oJmnj.js +0 -19
  802. package/build/server/chunks/entries/pages/settings/plugins/_page.svelte.js-gBZCjZlg.js +0 -1847
  803. package/build/server/chunks/entries/pages/settings/plugins/_plugin_/_page.server.ts.js-Dm-tgyir.js +0 -17
  804. package/build/server/chunks/entries/pages/settings/plugins/_plugin_/_page.svelte.js-BFGxdrrb.js +0 -220
  805. package/build/server/chunks/entries/pages/tasks/_id_/_page.server.ts.js-Llp3a0Fb.js +0 -25
  806. package/build/server/chunks/entries/pages/tasks/_id_/_page.svelte.js-LgJMZ2RE.js +0 -2107
  807. package/build/server/chunks/entries/pages/tasks/_id_/doc/_page.server.ts.js-DuWuEdZ2.js +0 -24
  808. package/build/server/chunks/entries/pages/tasks/_id_/review/_page.server.ts.js-BMQF9I9c.js +0 -15
  809. package/build/server/chunks/entries/pages/tasks/_id_/review/_page.svelte.js-k659tqiw.js +0 -657
  810. package/build/server/chunks/entries/pages/time/_page.server.ts.js-DstGu3ji.js +0 -11
  811. package/build/server/chunks/handler-BRidfBIY.js +0 -1474
  812. package/build/server/chunks/index.js-Dhoi5wa_.js +0 -4296
  813. package/build/server/chunks/manifest.js-CF4aVg77.js +0 -537
  814. package/build/server/chunks/nodes/0.js-B2yTHeOL.js +0 -41
  815. package/build/server/chunks/nodes/1.js-BoD2_1or.js +0 -9
  816. package/build/server/chunks/nodes/10.js-C2XmTW8j.js +0 -43
  817. package/build/server/chunks/nodes/11.js-CAJnQkWH.js +0 -42
  818. package/build/server/chunks/nodes/12.js-Cu57dOUj.js +0 -43
  819. package/build/server/chunks/nodes/13.js-1g1BRnk_.js +0 -42
  820. package/build/server/chunks/nodes/15.js-BqL5jpLU.js +0 -41
  821. package/build/server/chunks/nodes/16.js-DibdTAKZ.js +0 -41
  822. package/build/server/chunks/nodes/17.js-BUFA5Avk.js +0 -44
  823. package/build/server/chunks/nodes/18.js-cxLrKmMx.js +0 -42
  824. package/build/server/chunks/nodes/19.js-DMbI3mDp.js +0 -42
  825. package/build/server/chunks/nodes/2.js-8QSIq2KZ.js +0 -41
  826. package/build/server/chunks/nodes/20.js-BNXpftag.js +0 -42
  827. package/build/server/chunks/nodes/21.js-DdJK6h7p.js +0 -41
  828. package/build/server/chunks/nodes/3.js-DHT7fiTy.js +0 -41
  829. package/build/server/chunks/nodes/4.js-DvjrLz8n.js +0 -41
  830. package/build/server/chunks/nodes/5.js-CvUGUQbi.js +0 -45
  831. package/build/server/chunks/nodes/6.js-ptKHsAn6.js +0 -41
  832. package/build/server/chunks/nodes/7.js-BigF9SYG.js +0 -9
  833. package/build/server/chunks/nodes/9.js-DkS4HHqV.js +0 -41
  834. /package/build/client/_app/immutable/assets/{DictateTextarea.Dga9zAug.css → checks.Dga9zAug.css} +0 -0
  835. /package/build/client/_app/immutable/assets/{DictateTextarea.Dga9zAug.css.br → checks.Dga9zAug.css.br} +0 -0
  836. /package/build/client/_app/immutable/assets/{DictateTextarea.Dga9zAug.css.gz → checks.Dga9zAug.css.gz} +0 -0
@@ -1,2107 +0,0 @@
1
- import { aj as head, al as escape_html, ak as attr_class, am as attr, a8 as ensure_array_like, an as stringify, _ as derived, a5 as clsx, a6 as bind_props, ac as spread_props, ap as attr_style } from '../../../../chunks/index.js-B0NFhRTN.js';
2
- import { p as page } from '../../../../chunks/index2.js-Bxt1T6_K.js';
3
- import { R as ResizableRail, P as PreviewStudio, t as taskTabs, p as pickTab, L as LivePreview, h as hasDetail, s as stepGist, C as Circle_check, o as openByDefault, O as OpenDecision } from '../../../../chunks/ResizableRail.js-BS8hRLV0.js';
4
- import { r as replaceState } from '../../../../chunks/client.js-B_5mNqUe.js';
5
- import { l as live, a as currentFleet } from '../../../../chunks/live.svelte.js-By2dseJB.js';
6
- import { s as slots } from '../../../../chunks/slots.svelte.js-0Ejhe-hS.js';
7
- import { s as slotKey } from '../../../../chunks/keys.js-CdtCzv-v.js';
8
- import { S as SlotContent } from '../../../../chunks/SlotContent.js-B4p1QLQN.js';
9
- import { a as ago, c as clock, d as consoleInImage, b as agentLine } from '../../../../chunks/format.js-D3lWEg6U.js';
10
- import { p as plainStatus } from '../../../../chunks/plain.js-Dc97sYaJ.js';
11
- import { d as runAt, O as OUTCOME_LABEL, e as runLine, b as changesLine, f as splitChanges, g as changeWhere, S as STATE_LABEL, h as SOURCE_LABEL, a as showsChecks, s as segmentTone, c as checksLine, i as stepSummary, j as duration$1, k as ciChecksLine } from '../../../../chunks/checks.js-DR3fVVpO.js';
12
- import { C as Check } from '../../../../chunks/check.js-32sYHVxG.js';
13
- import { X } from '../../../../chunks/x.js-YxaUOlq9.js';
14
- import { I as Icon } from '../../../../chunks/Icon.js-CVZZ-yuB.js';
15
- import { M as Minus } from '../../../../chunks/minus.js-DKvkj8VD.js';
16
- import { L as Loader_circle } from '../../../../chunks/loader-circle.js-rQHvIWN7.js';
17
- import { C as Circle_dashed } from '../../../../chunks/circle-dashed.js-fXv_bIo-.js';
18
- import { B as Button } from '../../../../chunks/button.js-BF2PsvWw.js';
19
- import { L as Lightbox, B as BusyRing, S as StageTrack } from '../../../../chunks/StageTrack.js-DHvZX7Bl.js';
20
- import { Q as QuestionList, b as ConsoleFullscreen, C as ConsoleWindow, a as awaitingReview, r as reviewView } from '../../../../chunks/QuestionList.js-CppuauNj.js';
21
- import { C as Chevron_right } from '../../../../chunks/chevron-right.js-DCBAqAae.js';
22
- import { L as LinkedText } from '../../../../chunks/LinkedText.js-COjHV297.js';
23
- import { d as docHref, f as findDocPaths } from '../../../../chunks/docpath.js-D27w_pf9.js';
24
- import { F as File_text } from '../../../../chunks/file-text.js-CnuVvHlB.js';
25
- import { h as harbourHref } from '../../../../chunks/nav.js-DwnXJgxd.js';
26
- import { E as External_link } from '../../../../chunks/external-link.js-BQs1euhR.js';
27
- import { C as Compass } from '../../../../chunks/compass.js-k2sRSGWn.js';
28
- import { i as inbox } from '../../../../chunks/inbox.svelte.js-n7K3YnGB.js';
29
- import { d as duration, e as etaLine, C as CONFIDENCE, P as PHASE_LABEL } from '../../../../chunks/insights.js-CzzfyHGp.js';
30
- import { P as PARTY_LABEL, D as DOC_KIND_LABEL } from '../../../../chunks/buildlog.js-BCKtSKOt.js';
31
- import { M as Messages_square } from '../../../../chunks/messages-square.js-BXH8BHfd.js';
32
- import { B as Book_open } from '../../../../chunks/book-open.js-C2rohN3N.js';
33
- import { S as Scale } from '../../../../chunks/scale.js-S5g8YUqL.js';
34
- import { T as TimeBar } from '../../../../chunks/TimeBar.js-CUFKEJW9.js';
35
- import { T as TimeLegend } from '../../../../chunks/TimeLegend.js-B3Wl61jM.js';
36
- import { t as textClass, b as tone } from '../../../../chunks/tone.js-Dxsl-adt.js';
37
- import { t as tick } from '../../../../chunks/index-server2.js-Fb2GE8KQ.js';
38
- import { A as Arrow_left } from '../../../../chunks/arrow-left.js-BKiSMzvI.js';
39
- import { M as Monitor_play } from '../../../../chunks/monitor-play.js-4ed3ghDf.js';
40
- import { M as Message_square } from '../../../../chunks/message-square.js-XK15WVZq.js';
41
- import '../../../../chunks/utils.js-BJgm9WbO.js';
42
- import '../../../../chunks/utils2.js-BQzn9ikS.js';
43
- import '../../../../chunks/exports.js-BZBK1HC9.js';
44
- import '../../../../chunks/root.js-60iebdW4.js';
45
- import '../../../../chunks/DecisionCard.js-B1YgF5EF.js';
46
- import '../../../../chunks/markdown.js-CApgGpeX.js';
47
- import '../../../../chunks/inbox.js-Dv8a1ecX.js';
48
- import '../../../../chunks/chevron-down.js-CH53s_me.js';
49
- import '../../../../chunks/git-pull-request.js-BMzktlcs.js';
50
- import '../../../../chunks/clock.js-CHhHTWK_.js';
51
- import '../../../../chunks/hand.js-BA9yKAan.js';
52
- import '../../../../chunks/preview.js-hrimfbCG.js';
53
- import '../../../../chunks/DictateTextarea.js-CbkGsd1h.js';
54
- import '../../../../chunks/chat.svelte.js--pRzj_Xo.js';
55
- import '../../../../chunks/messages.js-CFyGKoqq.js';
56
- import '../../../../chunks/vault.js-CTaWe09z.js';
57
- import '../../../../chunks/urls.js-BrlC6XZ8.js';
58
- import '../../../../chunks/circle-alert.js-XTuAj7ZH.js';
59
- import '../../../../chunks/chevron-left.js-D5RHY-kD.js';
60
- import '../../../../chunks/square-terminal.js-D9D9_9_V.js';
61
-
62
- function Circle_pause($$renderer, $$props) {
63
- let { $$slots, $$events, ...props } = $$props;
64
- const iconData = {
65
- "name": "circle-pause",
66
- "size": 24,
67
- "node": [
68
- ["circle", { "cx": "12", "cy": "12", "r": "10" }],
69
- ["line", { "x1": "10", "x2": "10", "y1": "15", "y2": "9" }],
70
- ["line", { "x1": "14", "x2": "14", "y1": "15", "y2": "9" }]
71
- ],
72
- "aliases": ["pause-circle"]
73
- };
74
- Icon($$renderer, spread_props([props, { icon: iconData }]));
75
- }
76
- function Circle($$renderer, $$props) {
77
- let { $$slots, $$events, ...props } = $$props;
78
- const iconData = {
79
- "name": "circle",
80
- "size": 24,
81
- "node": [["circle", { "cx": "12", "cy": "12", "r": "10" }]]
82
- };
83
- Icon($$renderer, spread_props([props, { icon: iconData }]));
84
- }
85
- function Image_off($$renderer, $$props) {
86
- let { $$slots, $$events, ...props } = $$props;
87
- const iconData = {
88
- "name": "image-off",
89
- "size": 24,
90
- "node": [
91
- ["line", { "x1": "2", "x2": "22", "y1": "2", "y2": "22" }],
92
- ["path", { "d": "M10.41 10.41a2 2 0 1 1-2.83-2.83" }],
93
- [
94
- "line",
95
- { "x1": "13.5", "x2": "6", "y1": "13.5", "y2": "21" }
96
- ],
97
- ["line", { "x1": "18", "x2": "21", "y1": "12", "y2": "15" }],
98
- [
99
- "path",
100
- {
101
- "d": "M3.59 3.59A1.99 1.99 0 0 0 3 5v14a2 2 0 0 0 2 2h14c.55 0 1.052-.22 1.41-.59"
102
- }
103
- ],
104
- ["path", { "d": "M21 15V5a2 2 0 0 0-2-2H9" }]
105
- ]
106
- };
107
- Icon($$renderer, spread_props([props, { icon: iconData }]));
108
- }
109
- function Timer($$renderer, $$props) {
110
- let { $$slots, $$events, ...props } = $$props;
111
- const iconData = {
112
- "name": "timer",
113
- "size": 24,
114
- "node": [
115
- ["line", { "x1": "10", "x2": "14", "y1": "2", "y2": "2" }],
116
- ["line", { "x1": "12", "x2": "15", "y1": "14", "y2": "11" }],
117
- ["circle", { "cx": "12", "cy": "14", "r": "8" }]
118
- ]
119
- };
120
- Icon($$renderer, spread_props([props, { icon: iconData }]));
121
- }
122
- function placeTaskSections(entries, stepKeys) {
123
- const steps = new Set(stepKeys);
124
- const afterStep = {};
125
- const byOrder = [];
126
- for (const e of entries) {
127
- if (e.slot !== "task.section") continue;
128
- if (e.step !== null && steps.has(e.step)) (afterStep[e.step] ??= []).push(e);
129
- else byOrder.push(e);
130
- }
131
- return { afterStep, byOrder };
132
- }
133
- function ChecksTimeline($$renderer, $$props) {
134
- $$renderer.component(($$renderer2) => {
135
- let { pipeline, busy = false, prChecks = [] } = $$props;
136
- const rows = derived(() => {
137
- const out = [];
138
- for (const s of pipeline.steps) {
139
- const last = out.at(-1);
140
- if (s.state === "upcoming") {
141
- if (last?.kind === "later") last.labels.push(s.label);
142
- else out.push({ kind: "later", labels: [s.label] });
143
- } else out.push({ kind: "step", s });
144
- }
145
- return out;
146
- });
147
- const line = derived(() => checksLine(pipeline, live.now));
148
- const ci = derived(() => ciChecksLine(prChecks));
149
- const under = (s) => s.key === pipeline.step && pipeline.outcome === "running";
150
- function took(s) {
151
- if (under(s) && (s.state === "running" || s.state === "fixing")) {
152
- const from = Date.parse(pipeline.startedAt ?? "");
153
- if (!Number.isNaN(from)) return duration$1(live.now - from);
154
- }
155
- return s.durationMs != null && s.durationMs >= 1e3 ? duration$1(s.durationMs) : null;
156
- }
157
- function summary(s) {
158
- const text = stepSummary(s, pipeline);
159
- return s.key === "ci" && ci() ? `${text} · ${ci()}` : text;
160
- }
161
- $$renderer2.push(`<div data-checks-timeline=""><p class="tabular text-sm">${escape_html(line())}</p> <ol class="mt-3 space-y-0.5 text-sm"><!--[-->`);
162
- const each_array = ensure_array_like(rows());
163
- for (let i = 0, $$length = each_array.length; i < $$length; i++) {
164
- let r = each_array[i];
165
- if (r.kind === "step") {
166
- $$renderer2.push("<!--[0-->");
167
- const tone2 = segmentTone(r.s, pipeline);
168
- $$renderer2.push(`<li class="grid grid-cols-[1.25rem_6.5rem_minmax(0,1fr)_auto] items-start gap-x-2 py-1"><span class="flex h-5 items-center">`);
169
- if (tone2 === "done") {
170
- $$renderer2.push("<!--[0-->");
171
- Check($$renderer2, {
172
- class: `size-4 ${r.s.key === "ci" ? "text-success" : "text-muted-foreground"}`,
173
- "aria-label": "Done"
174
- });
175
- } else if (tone2 === "failed") {
176
- $$renderer2.push("<!--[1-->");
177
- X($$renderer2, { class: "size-4 text-danger", "aria-label": "Failed" });
178
- } else if (tone2 === "waiting") {
179
- $$renderer2.push("<!--[2-->");
180
- Circle_pause($$renderer2, {
181
- class: "size-4 text-warning",
182
- "aria-label": "Waiting on Firstmate"
183
- });
184
- } else if (tone2 === "skipped") {
185
- $$renderer2.push("<!--[3-->");
186
- Minus($$renderer2, {
187
- class: "size-4 text-muted-foreground",
188
- "aria-label": "Skipped"
189
- });
190
- } else {
191
- $$renderer2.push("<!--[-1-->");
192
- Loader_circle($$renderer2, {
193
- class: `size-4 text-foreground ${busy ? "motion-safe:animate-spin" : ""}`,
194
- "aria-label": tone2 === "fixing" ? "Fixing" : "Under way"
195
- });
196
- }
197
- $$renderer2.push(`<!--]--></span> <span${attr_class(`truncate leading-5 ${under(r.s) ? "font-medium" : ""}`)}>${escape_html(r.s.label)}</span> <span${attr_class(`leading-5 ${tone2 === "failed" ? "text-danger" : tone2 === "waiting" ? "text-warning" : "text-muted-foreground"}`)}>${escape_html(summary(r.s))}</span> <span class="tabular text-right text-xs leading-5 text-muted-foreground">${escape_html(took(r.s) ?? "")}</span></li>`);
198
- } else {
199
- $$renderer2.push(`<!--[-1--><li class="grid grid-cols-[1.25rem_minmax(0,1fr)] items-start gap-x-2 py-1 text-muted-foreground"><span class="flex h-5 items-center">`);
200
- Circle_dashed($$renderer2, {
201
- class: "size-4 text-muted-foreground/60",
202
- "aria-hidden": "true"
203
- });
204
- $$renderer2.push(`<!----></span> <span class="leading-5">Still to come: ${escape_html(r.labels.join(", "))}</span></li>`);
205
- }
206
- $$renderer2.push(`<!--]-->`);
207
- }
208
- $$renderer2.push(`<!--]--></ol></div>`);
209
- });
210
- }
211
- function DiffDialog($$renderer, $$props) {
212
- $$renderer.component(($$renderer2) => {
213
- let { taskId, file = null } = $$props;
214
- $$renderer2.push(`<dialog class="m-auto h-[88vh] w-[min(94vw,1100px)] max-w-none overflow-hidden rounded-xl border bg-background p-0 text-foreground shadow-xl backdrop:bg-black/60"${attr("aria-label", file ? `Changes to ${file}` : "Changes")}>`);
215
- if (file) {
216
- $$renderer2.push(`<!--[0--><div class="flex h-full flex-col"><div class="flex items-center gap-3 border-b px-4 py-2.5 text-sm"><span class="min-w-0 flex-1 truncate font-mono text-xs"${attr("title", file)}>${escape_html(file)}</span> `);
217
- {
218
- $$renderer2.push("<!--[-1-->");
219
- }
220
- $$renderer2.push(`<!--]--> <span class="text-xs text-muted-foreground">read-only</span> <button type="button" class="rounded p-1 hover:bg-accent" aria-label="Close">`);
221
- X($$renderer2, { class: "size-4" });
222
- $$renderer2.push(`<!----></button></div> <div class="min-h-0 flex-1 overflow-auto">`);
223
- {
224
- $$renderer2.push(`<!--[1--><p class="p-4 text-sm text-muted-foreground">Reading the diff…</p>`);
225
- }
226
- $$renderer2.push(`<!--]--></div> `);
227
- {
228
- $$renderer2.push("<!--[-1-->");
229
- }
230
- $$renderer2.push(`<!--]--></div>`);
231
- } else {
232
- $$renderer2.push("<!--[-1-->");
233
- }
234
- $$renderer2.push(`<!--]--></dialog>`);
235
- bind_props($$props, { file });
236
- });
237
- }
238
- function OutputInspector($$renderer, $$props) {
239
- $$renderer.component(($$renderer2) => {
240
- let { task } = $$props;
241
- let open = false;
242
- let full = false;
243
- let $$settled = true;
244
- let $$inner_renderer;
245
- function $$render_inner($$renderer3) {
246
- $$renderer3.push(`<details class="group rounded-xl border"${attr("open", open, true)}><summary class="flex list-none items-center gap-2 px-4 py-3 text-sm [&amp;::-webkit-details-marker]:hidden">`);
247
- Chevron_right($$renderer3, {
248
- class: "size-4 text-muted-foreground transition-transform group-open:rotate-90",
249
- "aria-hidden": "true"
250
- });
251
- $$renderer3.push(`<!----> <span class="font-medium">Raw terminal output</span> <span class="text-muted-foreground">read-only sample of the last 40 lines</span></summary> <div class="border-t p-4">`);
252
- if (!task.outputAvailable) {
253
- $$renderer3.push(`<!--[0--><p class="text-sm text-muted-foreground">Not available. ${escape_html(task.outputNote)}</p>`);
254
- } else {
255
- $$renderer3.push(`<!--[2--><p class="text-sm text-muted-foreground">Reading the worker’s terminal…</p>`);
256
- }
257
- $$renderer3.push(`<!--]--></div></details> `);
258
- ConsoleFullscreen($$renderer3, {
259
- task,
260
- get open() {
261
- return full;
262
- },
263
- set open($$value) {
264
- full = $$value;
265
- $$settled = false;
266
- }
267
- });
268
- $$renderer3.push(`<!---->`);
269
- }
270
- do {
271
- $$settled = true;
272
- $$inner_renderer = $$renderer2.copy();
273
- $$render_inner($$inner_renderer);
274
- } while (!$$settled);
275
- $$renderer2.subsume($$inner_renderer);
276
- });
277
- }
278
- function RawDetails($$renderer, $$props) {
279
- $$renderer.component(($$renderer2) => {
280
- let { raw, plain = null } = $$props;
281
- const show = derived(() => !!raw?.trim() && raw.trim() !== plain?.trim());
282
- if (show()) {
283
- $$renderer2.push(`<!--[0--><details class="group mt-1 text-xs text-muted-foreground"><summary class="inline select-none hover:text-foreground">details</summary> <p class="mt-1 font-mono break-words whitespace-pre-wrap">`);
284
- LinkedText($$renderer2, { text: raw });
285
- $$renderer2.push(`<!----></p></details>`);
286
- } else {
287
- $$renderer2.push("<!--[-1-->");
288
- }
289
- $$renderer2.push(`<!--]-->`);
290
- });
291
- }
292
- function DocMentions($$renderer, $$props) {
293
- $$renderer.component(($$renderer2) => {
294
- let { text, shown } = $$props;
295
- const linked = derived(() => new Set(findDocPaths(shown ?? "").map((m) => m.path)));
296
- const paths = derived(() => [...new Set(findDocPaths(text ?? "").map((m) => m.path))].filter((p) => !linked().has(p)));
297
- if (paths().length) {
298
- $$renderer2.push(`<!--[0--><ul class="mt-1.5 flex flex-wrap gap-x-3 gap-y-1 text-sm" aria-label="Documents"><!--[-->`);
299
- const each_array = ensure_array_like(paths());
300
- for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {
301
- let p = each_array[$$index];
302
- $$renderer2.push(`<li><a${attr("href", docHref(p))}${attr("title", p)} class="inline-flex items-center gap-1 text-sea underline-offset-2 hover:underline" data-doc-link="">`);
303
- File_text($$renderer2, { class: "size-3.5 shrink-0", "aria-hidden": "true" });
304
- $$renderer2.push(`<!---->${escape_html(p.split("/").at(-1))}</a></li>`);
305
- }
306
- $$renderer2.push(`<!--]--></ul>`);
307
- } else {
308
- $$renderer2.push("<!--[-1-->");
309
- }
310
- $$renderer2.push(`<!--]-->`);
311
- });
312
- }
313
- function ReviewPanel($$renderer, $$props) {
314
- $$renderer.component(($$renderer2) => {
315
- let { task, shots } = $$props;
316
- const rv = derived(() => reviewView(task, shots));
317
- let enlarged = null;
318
- let $$settled = true;
319
- let $$inner_renderer;
320
- function $$render_inner($$renderer3) {
321
- $$renderer3.push(`<section class="rounded-2xl border border-sea/40 p-3" aria-labelledby="review-evidence"><h2 id="review-evidence" class="px-1 pt-1 text-sm font-medium text-sea">Review evidence</h2> `);
322
- if (rv().shots.length) {
323
- $$renderer3.push(`<!--[0--><button type="button" class="mt-3 block w-full cursor-zoom-in"${attr("aria-label", `Enlarge ${stringify(rv().shots[0].name)}`)}><img${attr("src", rv().shots[0].url)}${attr("alt", rv().shots[0].name)} class="aspect-[16/10] w-full rounded-xl border object-cover object-top"/></button> `);
324
- if (rv().shots.length > 1) {
325
- $$renderer3.push(`<!--[0--><div class="mt-3 flex flex-wrap gap-2"><!--[-->`);
326
- const each_array = ensure_array_like(rv().shots.slice(1));
327
- for (let i = 0, $$length = each_array.length; i < $$length; i++) {
328
- let s = each_array[i];
329
- $$renderer3.push(`<button type="button" class="w-20 shrink-0 cursor-zoom-in"${attr("aria-label", `Enlarge ${stringify(s.name)}`)}><img${attr("src", s.url)}${attr("alt", s.name)} loading="lazy" class="aspect-[16/10] w-full rounded-md border object-cover object-top"/></button>`);
330
- }
331
- $$renderer3.push(`<!--]--></div>`);
332
- } else {
333
- $$renderer3.push("<!--[-1-->");
334
- }
335
- $$renderer3.push(`<!--]--> <p class="mt-2 px-1 text-xs text-muted-foreground" data-review="screenshots">${escape_html(rv().shotsText)}; select one to enlarge.</p>`);
336
- } else {
337
- $$renderer3.push(`<!--[-1--><div class="mt-3 grid aspect-[16/10] w-full place-items-center rounded-xl border border-dashed bg-muted/40 text-center" data-review="screenshots"><div class="text-muted-foreground">`);
338
- Image_off($$renderer3, { class: "mx-auto size-6", "aria-hidden": "true" });
339
- $$renderer3.push(`<!----> <p class="mt-2 text-sm font-medium">${escape_html(rv().shotsText)}</p> <p class="mt-1 text-xs">The worker has not saved any screenshots for this task.</p></div></div>`);
340
- }
341
- $$renderer3.push(`<!--]--> <div class="mt-3 flex flex-wrap items-center gap-2 px-1 pb-1">`);
342
- if (rv().preview) {
343
- $$renderer3.push("<!--[0-->");
344
- Button($$renderer3, {
345
- href: rv().preview.url,
346
- target: "_blank",
347
- rel: "noreferrer",
348
- children: ($$renderer4) => {
349
- $$renderer4.push(`<!---->Open preview`);
350
- External_link($$renderer4, {});
351
- $$renderer4.push(`<!---->`);
352
- },
353
- $$slots: { default: true }
354
- });
355
- } else {
356
- $$renderer3.push(`<!--[-1--><span class="text-sm text-muted-foreground" data-review="preview">${escape_html(rv().previewText)}</span>`);
357
- }
358
- $$renderer3.push(`<!--]--> `);
359
- if (rv().pr) {
360
- $$renderer3.push("<!--[0-->");
361
- Button($$renderer3, {
362
- variant: rv().preview ? "outline" : "default",
363
- href: rv().pr.url,
364
- target: "_blank",
365
- rel: "noreferrer",
366
- children: ($$renderer4) => {
367
- $$renderer4.push(`<!---->Review ${escape_html(rv().pr.label)}`);
368
- External_link($$renderer4, {});
369
- $$renderer4.push(`<!---->`);
370
- },
371
- $$slots: { default: true }
372
- });
373
- $$renderer3.push(`<!----> `);
374
- Button($$renderer3, {
375
- variant: "outline",
376
- href: `/tasks/${stringify(encodeURIComponent(task.id))}/review`,
377
- children: ($$renderer4) => {
378
- Compass($$renderer4, {});
379
- $$renderer4.push(`<!---->Guided review`);
380
- },
381
- $$slots: { default: true }
382
- });
383
- $$renderer3.push(`<!---->`);
384
- } else {
385
- $$renderer3.push(`<!--[-1--><span class="text-sm text-muted-foreground" data-review="pr">${escape_html(rv().prText)}</span>`);
386
- }
387
- $$renderer3.push(`<!--]--> `);
388
- if (rv().preview) {
389
- $$renderer3.push(`<!--[0--><a${attr("href", rv().preview.url)} target="_blank" rel="noreferrer" class="ml-auto truncate font-mono text-xs text-muted-foreground hover:underline">${escape_html(rv().preview.url)}</a>`);
390
- } else {
391
- $$renderer3.push("<!--[-1-->");
392
- }
393
- $$renderer3.push(`<!--]--></div></section> `);
394
- Lightbox($$renderer3, {
395
- shots: rv().shots,
396
- get index() {
397
- return enlarged;
398
- },
399
- set index($$value) {
400
- enlarged = $$value;
401
- $$settled = false;
402
- }
403
- });
404
- $$renderer3.push(`<!---->`);
405
- }
406
- do {
407
- $$settled = true;
408
- $$inner_renderer = $$renderer2.copy();
409
- $$render_inner($$inner_renderer);
410
- } while (!$$settled);
411
- $$renderer2.subsume($$inner_renderer);
412
- });
413
- }
414
- function TaskDecisions($$renderer, $$props) {
415
- $$renderer.component(($$renderer2) => {
416
- let { task, now } = $$props;
417
- const seed = derived(() => page.data.inbox);
418
- const cards = derived(() => inbox.forTask(task.id, seed()));
419
- const answered = derived(() => !cards().length && task.attention?.kind === "decision" && inbox.hasDecision(task.id, seed()));
420
- if (cards().length) {
421
- $$renderer2.push(`<!--[0--><ol class="mt-5 flex flex-col gap-3" aria-label="Open questions"><!--[-->`);
422
- const each_array = ensure_array_like(cards());
423
- for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {
424
- let c = each_array[$$index];
425
- $$renderer2.push(`<li>`);
426
- OpenDecision($$renderer2, { card: c, now });
427
- $$renderer2.push(`<!----></li>`);
428
- }
429
- $$renderer2.push(`<!--]--></ol>`);
430
- } else if (answered()) {
431
- $$renderer2.push(`<!--[1--><p class="mt-5 flex items-center gap-2 text-sm text-muted-foreground" role="status">`);
432
- Check($$renderer2, { class: "size-4 shrink-0 text-success", "aria-hidden": "true" });
433
- $$renderer2.push(`<!---->Your answer is with Firstmate,
434
- which passes it on to the crew.</p>`);
435
- } else {
436
- $$renderer2.push("<!--[-1-->");
437
- }
438
- $$renderer2.push(`<!--]-->`);
439
- });
440
- }
441
- function ChangeRequests($$renderer, $$props) {
442
- $$renderer.component(($$renderer2) => {
443
- let { run } = $$props;
444
- const active = derived(() => run.outcome === "building");
445
- const parts = derived(() => splitChanges(run.changes));
446
- const line = derived(() => changesLine(run.changes));
447
- let opened = {};
448
- let showDone = false;
449
- const LONG = 280;
450
- function row($$renderer3, c) {
451
- const where = changeWhere(c);
452
- const long = c.text.length > LONG;
453
- $$renderer3.push(`<li class="flex gap-2.5 py-2.5"${attr("data-change", c.state)}>`);
454
- if (c.state === "open") {
455
- $$renderer3.push("<!--[0-->");
456
- Circle($$renderer3, {
457
- class: "mt-0.5 size-4 shrink-0 text-muted-foreground",
458
- "aria-hidden": "true"
459
- });
460
- } else {
461
- $$renderer3.push("<!--[-1-->");
462
- Circle_check($$renderer3, {
463
- class: "mt-0.5 size-4 shrink-0 text-success",
464
- "aria-hidden": "true"
465
- });
466
- }
467
- $$renderer3.push(`<!--]--> <div class="min-w-0 flex-1"><p class="text-xs text-muted-foreground"><span class="sr-only">${escape_html(STATE_LABEL[c.state])}:</span>${escape_html(SOURCE_LABEL[c.kind])}${escape_html(c.author ? ` · ${c.author}` : "")}${escape_html(where ? ` · ` : "")}`);
468
- if (where) {
469
- $$renderer3.push(`<!--[0--><span class="font-mono [overflow-wrap:anywhere]">${escape_html(where)}</span>`);
470
- } else {
471
- $$renderer3.push("<!--[-1-->");
472
- }
473
- $$renderer3.push(`<!--]--> · <time${attr("datetime", c.at)}${attr("title", clock(c.at))}>${escape_html(ago(c.at, live.now))}</time></p> <p${attr_class(`mt-0.5 text-sm leading-relaxed break-words whitespace-pre-line ${c.state === "open" ? "" : "text-muted-foreground"}`)}>${escape_html(long && !opened[c.id] ? `${c.text.slice(0, LONG).trimEnd()}…` : c.text)}</p> <div class="mt-1 flex flex-wrap gap-x-3 gap-y-1 text-xs">`);
474
- if (long) {
475
- $$renderer3.push(`<!--[0--><button type="button" class="text-muted-foreground hover:text-foreground hover:underline"${attr("aria-expanded", !!opened[c.id])}>${escape_html(opened[c.id] ? "Show less" : "Show all of it")}</button>`);
476
- } else {
477
- $$renderer3.push("<!--[-1-->");
478
- }
479
- $$renderer3.push(`<!--]--> `);
480
- if (c.state !== "open") {
481
- $$renderer3.push(`<!--[0--><span class="text-success">${escape_html(STATE_LABEL[c.state])}</span>`);
482
- } else {
483
- $$renderer3.push("<!--[-1-->");
484
- }
485
- $$renderer3.push(`<!--]--> `);
486
- if (c.url) {
487
- $$renderer3.push(`<!--[0--><a${attr("href", c.url)} target="_blank" rel="noreferrer" class="inline-flex items-center gap-1 text-sea hover:underline">Open on GitHub`);
488
- External_link($$renderer3, { class: "size-3", "aria-hidden": "true" });
489
- $$renderer3.push(`<!----></a>`);
490
- } else {
491
- $$renderer3.push("<!--[-1-->");
492
- }
493
- $$renderer3.push(`<!--]--></div></div></li>`);
494
- }
495
- $$renderer2.push(`<section${attr_class(`rounded-xl border p-4 ${active() ? "border-brass/60 bg-panel" : "border-hair"}`)}${attr("aria-labelledby", `changes-heading-${stringify(run.n)}`)}${attr("data-changes", active() ? "active" : "history")}><div class="flex flex-wrap items-baseline justify-between gap-x-3 gap-y-1"><h2${attr("id", `changes-heading-${stringify(run.n)}`)} class="text-base font-medium">Run ${escape_html(run.n)} started with these changes</h2> `);
496
- if (line()) {
497
- $$renderer2.push(`<!--[0--><p class="tabular text-xs text-muted-foreground">${escape_html(line())}</p>`);
498
- } else {
499
- $$renderer2.push("<!--[-1-->");
500
- }
501
- $$renderer2.push(`<!--]--></div> `);
502
- if (run.basis) {
503
- $$renderer2.push(`<!--[0--><p class="mt-1 text-sm leading-relaxed text-muted-foreground">${escape_html(run.basis)}`);
504
- if (active()) {
505
- $$renderer2.push(`<!--[0-->${escape_html(` It is the worker’s turn${run.startedAt ? ` (since ${ago(run.startedAt, live.now)})` : ""}; it comes back to your review when the worker reports the pull request ready again.`)}`);
506
- } else {
507
- $$renderer2.push("<!--[-1-->");
508
- }
509
- $$renderer2.push(`<!--]--></p>`);
510
- } else {
511
- $$renderer2.push("<!--[-1-->");
512
- }
513
- $$renderer2.push(`<!--]--> `);
514
- if (!run.changes.length) {
515
- $$renderer2.push(`<!--[0--><p class="mt-2 text-sm text-muted-foreground">No written requests: nothing was asked on GitHub or from Wheelhouse for this run.</p>`);
516
- } else {
517
- $$renderer2.push("<!--[-1-->");
518
- }
519
- $$renderer2.push(`<!--]--> `);
520
- if (parts().open.length) {
521
- $$renderer2.push(`<!--[0--><ul class="mt-2 divide-y divide-hair" aria-label="To do"><!--[-->`);
522
- const each_array = ensure_array_like(parts().open);
523
- for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {
524
- let c = each_array[$$index];
525
- row($$renderer2, c);
526
- }
527
- $$renderer2.push(`<!--]--></ul>`);
528
- } else {
529
- $$renderer2.push("<!--[-1-->");
530
- }
531
- $$renderer2.push(`<!--]--> `);
532
- if (parts().done.length) {
533
- $$renderer2.push("<!--[0-->");
534
- if (parts().open.length) {
535
- $$renderer2.push(`<!--[0--><button type="button" class="mt-2 text-xs text-muted-foreground hover:text-foreground hover:underline"${attr("aria-expanded", showDone)}>${escape_html("Show")} the ${escape_html(parts().done.length)} done</button>`);
536
- } else {
537
- $$renderer2.push("<!--[-1-->");
538
- }
539
- $$renderer2.push(`<!--]--> `);
540
- if (!parts().open.length) {
541
- $$renderer2.push(`<!--[0--><ul class="mt-2 divide-y divide-hair" aria-label="Done"><!--[-->`);
542
- const each_array_1 = ensure_array_like(parts().done);
543
- for (let $$index_1 = 0, $$length = each_array_1.length; $$index_1 < $$length; $$index_1++) {
544
- let c = each_array_1[$$index_1];
545
- row($$renderer2, c);
546
- }
547
- $$renderer2.push(`<!--]--></ul>`);
548
- } else {
549
- $$renderer2.push("<!--[-1-->");
550
- }
551
- $$renderer2.push(`<!--]-->`);
552
- } else {
553
- $$renderer2.push("<!--[-1-->");
554
- }
555
- $$renderer2.push(`<!--]--></section>`);
556
- });
557
- }
558
- function PastRun($$renderer, $$props) {
559
- $$renderer.component(($$renderer2) => {
560
- let { run, runs, steps, validations, shots } = $$props;
561
- const next = derived(() => runs.runs.find((r) => r.n === run.n + 1) ?? null);
562
- const reached = derived(() => steps.filter((s) => s.key !== "landed" && s.state !== "skipped"));
563
- const built = derived(() => run.startedAt && run.readyAt ? duration((Date.parse(run.readyAt) - Date.parse(run.startedAt)) / 1e3) : null);
564
- $$renderer2.push(`<section class="space-y-5"${attr("aria-label", `Run ${stringify(run.n)}`)}${attr("data-past-run", run.n)}>`);
565
- if (run.n > 1) {
566
- $$renderer2.push("<!--[0-->");
567
- ChangeRequests($$renderer2, { run });
568
- } else {
569
- $$renderer2.push("<!--[-1-->");
570
- }
571
- $$renderer2.push(`<!--]--> <dl class="grid grid-cols-2 gap-x-6 gap-y-2 text-sm sm:grid-cols-4"><div><dt class="text-xs text-muted-foreground">Started</dt> <dd>${escape_html(run.startedAt ? clock(run.startedAt) : "Not recorded")}</dd></div> <div><dt class="text-xs text-muted-foreground">Reported ready</dt> <dd>${escape_html(run.readyAt ? clock(run.readyAt) : "Not reported")}</dd></div> <div><dt class="text-xs text-muted-foreground">Built in</dt> <dd>${escape_html(built() ?? "Unknown")}</dd></div> <div><dt class="text-xs text-muted-foreground">Ended</dt> <dd>${escape_html(OUTCOME_LABEL[run.outcome])}${escape_html(run.endedAt ? ` at ${clock(run.endedAt)}` : "")}</dd></div></dl> <ol class="space-y-2"${attr("aria-label", `Stages of run ${stringify(run.n)}`)}><!--[-->`);
572
- const each_array = ensure_array_like(reached());
573
- for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {
574
- let s = each_array[$$index];
575
- $$renderer2.push(`<li class="flex items-center gap-3"><span class="grid size-5 place-items-center rounded-full bg-foreground/80 text-background" aria-hidden="true">`);
576
- Check($$renderer2, { class: "size-3" });
577
- $$renderer2.push(`<!----></span> <span class="font-serif">${escape_html(s.label)}</span></li>`);
578
- }
579
- $$renderer2.push(`<!--]--> `);
580
- if (run.outcome === "changes-requested") {
581
- $$renderer2.push(`<!--[0--><li class="flex items-center gap-3 text-warning"><span class="grid size-5 place-items-center rounded-full border border-warning text-xs">↺</span> <span>Changes requested${escape_html(next() ? ` (${next().changes.length || "no written"} ${next().changes.length === 1 ? "request" : "requests"}), so run ${next().n} began` : "")}</span></li>`);
582
- } else {
583
- $$renderer2.push("<!--[-1-->");
584
- }
585
- $$renderer2.push(`<!--]--></ol> <div><h3 class="text-sm font-medium">Checks in this run</h3> `);
586
- if (validations.length) {
587
- $$renderer2.push(`<!--[0--><ul class="mt-1.5 space-y-1 text-sm"><!--[-->`);
588
- const each_array_1 = ensure_array_like(validations);
589
- for (let $$index_1 = 0, $$length = each_array_1.length; $$index_1 < $$length; $$index_1++) {
590
- let v = each_array_1[$$index_1];
591
- $$renderer2.push(`<li><span class="text-muted-foreground">${escape_html(v.startedAt ? clock(v.startedAt) : "")}</span> ${escape_html(v.text)} <span class="font-mono text-xs text-muted-foreground">(${escape_html(v.id.slice(-6))})</span></li>`);
592
- }
593
- $$renderer2.push(`<!--]--></ul>`);
594
- } else {
595
- $$renderer2.push(`<!--[-1--><p class="mt-1 text-sm text-muted-foreground">No validation run was recorded in this run.</p>`);
596
- }
597
- $$renderer2.push(`<!--]--></div> <div><h3 class="text-sm font-medium">Screenshots from this run</h3> `);
598
- if (shots.length) {
599
- $$renderer2.push(`<!--[0--><div class="mt-2 flex flex-wrap gap-3"><!--[-->`);
600
- const each_array_2 = ensure_array_like(shots);
601
- for (let $$index_2 = 0, $$length = each_array_2.length; $$index_2 < $$length; $$index_2++) {
602
- let s = each_array_2[$$index_2];
603
- $$renderer2.push(`<button type="button" class="w-40 shrink-0 cursor-zoom-in text-left"${attr("aria-label", `Enlarge ${stringify(s.name)}`)}><img${attr("src", s.url)}${attr("alt", s.name)} loading="lazy" class="aspect-[16/10] w-full rounded-lg border object-cover object-top"/> <p class="mt-1.5 truncate text-xs text-muted-foreground">${escape_html(s.name)}</p></button>`);
604
- }
605
- $$renderer2.push(`<!--]--></div>`);
606
- } else {
607
- $$renderer2.push(`<!--[-1--><p class="mt-1 text-sm text-muted-foreground">No screenshots were saved in this run.</p>`);
608
- }
609
- $$renderer2.push(`<!--]--></div></section>`);
610
- });
611
- }
612
- function RunSwitcher($$renderer, $$props) {
613
- $$renderer.component(($$renderer2) => {
614
- let { runs, selected } = $$props;
615
- const TONE = {
616
- building: "text-foreground",
617
- ready: "text-sea",
618
- "changes-requested": "text-warning",
619
- landed: "text-success",
620
- closed: "text-muted-foreground"
621
- };
622
- $$renderer2.push(`<nav aria-label="Runs" data-runs=""><ol class="flex flex-wrap gap-2"><!--[-->`);
623
- const each_array = ensure_array_like(runs.runs);
624
- for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {
625
- let r = each_array[$$index];
626
- $$renderer2.push(`<li><button type="button"${attr_class(`flex min-w-44 flex-col items-start rounded-lg border px-3 py-2 text-left transition-colors ${r.n === selected ? "border-foreground/40 bg-panel" : "border-hair hover:border-input"}`)}${attr("aria-pressed", r.n === selected)}${attr("data-run", r.n)}><span class="text-sm font-medium">Run ${escape_html(r.n)}${escape_html(r.n === runs.current ? " · current" : "")}</span> <span${attr_class(`text-xs ${stringify(TONE[r.outcome])}`)}>${escape_html(OUTCOME_LABEL[r.outcome])}</span> <span class="tabular mt-0.5 text-xs text-muted-foreground">${escape_html(runLine(runs, r, live.now))}</span></button></li>`);
627
- }
628
- $$renderer2.push(`<!--]--></ol></nav>`);
629
- });
630
- }
631
- function stateIcon($$renderer, s) {
632
- if (s.state === "done") {
633
- $$renderer.push("<!--[0-->");
634
- Check($$renderer, { class: "size-4 shrink-0 text-success", "aria-label": "Done" });
635
- } else if (s.state === "failed") {
636
- $$renderer.push("<!--[1-->");
637
- X($$renderer, { class: "size-4 shrink-0 text-danger", "aria-label": "Failed" });
638
- } else if (s.state === "running" || s.state === "fixing") {
639
- $$renderer.push("<!--[2-->");
640
- Loader_circle($$renderer, {
641
- class: "size-4 shrink-0 animate-spin text-muted-foreground",
642
- "aria-label": s.state === "fixing" ? "Fixing" : "Running"
643
- });
644
- } else if (s.state === "waiting") {
645
- $$renderer.push("<!--[3-->");
646
- Circle_pause($$renderer, {
647
- class: "size-4 shrink-0 text-warning",
648
- "aria-label": "Waiting for a decision"
649
- });
650
- } else if (s.state === "skipped") {
651
- $$renderer.push("<!--[4-->");
652
- Minus($$renderer, {
653
- class: "size-4 shrink-0 text-muted-foreground",
654
- "aria-label": "Skipped"
655
- });
656
- } else {
657
- $$renderer.push("<!--[-1-->");
658
- Circle_dashed($$renderer, {
659
- class: "size-4 shrink-0 text-muted-foreground",
660
- "aria-label": "Not started"
661
- });
662
- }
663
- $$renderer.push(`<!--]-->`);
664
- }
665
- function ChecksReport($$renderer, $$props) {
666
- $$renderer.component(($$renderer2) => {
667
- let { checks, taskId } = $$props;
668
- const hasMore = (s) => s.notes.length > 0 || !!s.tests?.failures.length || !!s.tests?.scenarios.length || !!s.docs?.files.length || !!s.docs?.summary.length;
669
- let toggled = {};
670
- const isOpen = (s) => toggled[s.key] ?? (s.state === "failed" || !!s.tests?.failed || s.tests?.scenarios.some((x) => x.result === "fail"));
671
- const docHref2 = (p) => `/tasks/${encodeURIComponent(taskId)}/doc?path=${encodeURIComponent(p)}`;
672
- const RESULT = {
673
- pass: "Passed",
674
- fail: "Failed",
675
- untested: "Not tested",
676
- other: "Other"
677
- };
678
- function testName(full) {
679
- const parts = full.split(" › ");
680
- const last = parts.pop() ?? full;
681
- return {
682
- title: last.charAt(0).toUpperCase() + last.slice(1),
683
- where: parts.length ? parts.join(" › ") : null
684
- };
685
- }
686
- $$renderer2.push(`<section aria-labelledby="checks-report" class="max-w-4xl"><h2 id="checks-report" class="sr-only">What each check found</h2> `);
687
- if (!checks.available) {
688
- $$renderer2.push(`<!--[0--><div class="rounded-xl border border-dashed p-6 text-sm text-muted-foreground"><p class="font-medium text-foreground">No checks to show yet</p> <p class="mt-1">${escape_html(checks.reason)}</p></div>`);
689
- } else {
690
- $$renderer2.push("<!--[-1-->");
691
- const v = checks.value;
692
- $$renderer2.push(`<p class="text-sm text-muted-foreground">The automated review and tests${escape_html(v.startedAt ? `, started ${clock(v.startedAt)}` : "")}${escape_html(v.runs > 1 ? ` (the latest of ${v.runs} runs)` : "")}${escape_html(v.outcome === "passed" ? ": everything passed." : v.outcome === "failed" ? ": it failed." : v.outcome === "cancelled" ? ": it was cancelled." : ".")}</p> <ol class="mt-4 divide-y divide-hair rounded-lg border bg-card"><!--[-->`);
693
- const each_array = ensure_array_like(v.steps);
694
- for (let $$index_5 = 0, $$length = each_array.length; $$index_5 < $$length; $$index_5++) {
695
- let s = each_array[$$index_5];
696
- const more = hasMore(s);
697
- const open = more && isOpen(s);
698
- $$renderer2.push(`<li${attr("data-check-step", s.key)}><button type="button"${attr_class(`flex w-full items-start gap-3 px-4 py-3 text-left disabled:cursor-default ${more ? "hover:bg-accent/40" : ""}`)}${attr("disabled", !more, true)}${attr("aria-expanded", more ? open : void 0)}${attr("aria-controls", more ? `check-${s.key}` : void 0)}><span class="mt-0.5">`);
699
- stateIcon($$renderer2, s);
700
- $$renderer2.push(`<!----></span> <span class="min-w-0 flex-1"><span class="font-medium">${escape_html(s.label)}</span> <span${attr_class(`block text-sm ${s.state === "failed" || s.tests?.failed || s.tests?.scenarios.some((x) => x.result === "fail") ? "text-danger" : "text-muted-foreground"}`)}>${escape_html(s.summary)}</span></span> `);
701
- if (s.durationMs) {
702
- $$renderer2.push(`<!--[0--><span class="tabular shrink-0 pt-0.5 text-xs text-muted-foreground">${escape_html(duration(Math.round(s.durationMs / 1e3)))}</span>`);
703
- } else {
704
- $$renderer2.push("<!--[-1-->");
705
- }
706
- $$renderer2.push(`<!--]--> `);
707
- if (more) {
708
- $$renderer2.push("<!--[0-->");
709
- Chevron_right($$renderer2, {
710
- class: `mt-0.5 size-4 shrink-0 text-muted-foreground transition-transform ${open ? "rotate-90" : ""}`,
711
- "aria-hidden": "true"
712
- });
713
- } else {
714
- $$renderer2.push("<!--[-1-->");
715
- }
716
- $$renderer2.push(`<!--]--></button> `);
717
- if (open) {
718
- $$renderer2.push(`<!--[0--><div${attr("id", `check-${stringify(s.key)}`)} class="space-y-4 px-4 pb-4 pl-11 text-sm">`);
719
- if (s.tests) {
720
- $$renderer2.push("<!--[0-->");
721
- const t = s.tests;
722
- if (t.passed !== null || t.failed !== null) {
723
- $$renderer2.push(`<!--[0--><p class="tabular flex flex-wrap gap-x-4"><span><span class="font-medium text-success">${escape_html(t.passed ?? 0)}</span> passed</span> <span><span${attr_class(`font-medium ${t.failed ? "text-danger" : ""}`)}>${escape_html(t.failed ?? 0)}</span> failed</span> `);
724
- if (t.skipped) {
725
- $$renderer2.push(`<!--[0--><span><span class="font-medium">${escape_html(t.skipped)}</span> skipped</span>`);
726
- } else {
727
- $$renderer2.push("<!--[-1-->");
728
- }
729
- $$renderer2.push(`<!--]--></p>`);
730
- } else {
731
- $$renderer2.push("<!--[-1-->");
732
- }
733
- $$renderer2.push(`<!--]--> `);
734
- if (t.failures.length) {
735
- $$renderer2.push(`<!--[0--><ul class="space-y-2"><!--[-->`);
736
- const each_array_1 = ensure_array_like(t.failures);
737
- for (let n = 0, $$length2 = each_array_1.length; n < $$length2; n++) {
738
- let f = each_array_1[n];
739
- const name = testName(f.name);
740
- $$renderer2.push(`<li><details class="rounded-md border border-danger/30 bg-danger/5"${attr("open", n === 0, true)}><summary class="flex cursor-pointer items-start gap-2 px-3 py-2">`);
741
- X($$renderer2, {
742
- class: "mt-0.5 size-4 shrink-0 text-danger",
743
- "aria-hidden": "true"
744
- });
745
- $$renderer2.push(`<!----> <span class="min-w-0 break-words">${escape_html(name.title)}`);
746
- if (name.where) {
747
- $$renderer2.push(`<!--[0--><span class="block text-xs text-muted-foreground">${escape_html(name.where)}</span>`);
748
- } else {
749
- $$renderer2.push("<!--[-1-->");
750
- }
751
- $$renderer2.push(`<!--]--></span></summary> `);
752
- if (f.output) {
753
- $$renderer2.push(`<!--[0--><pre class="overflow-x-auto border-t border-danger/20 px-3 py-2 font-mono text-xs whitespace-pre">${escape_html(f.output)}</pre>`);
754
- } else {
755
- $$renderer2.push("<!--[-1-->");
756
- }
757
- $$renderer2.push(`<!--]--></details></li>`);
758
- }
759
- $$renderer2.push(`<!--]--></ul>`);
760
- } else {
761
- $$renderer2.push("<!--[-1-->");
762
- }
763
- $$renderer2.push(`<!--]--> `);
764
- if (t.scenarios.length) {
765
- $$renderer2.push(`<!--[0--><ul class="divide-y divide-hair rounded-md border border-hair"><!--[-->`);
766
- const each_array_2 = ensure_array_like(t.scenarios);
767
- for (let i = 0, $$length2 = each_array_2.length; i < $$length2; i++) {
768
- let sc = each_array_2[i];
769
- $$renderer2.push(`<li class="flex items-start gap-3 px-3 py-2">`);
770
- if (sc.result === "pass") {
771
- $$renderer2.push("<!--[0-->");
772
- Check($$renderer2, {
773
- class: "mt-0.5 size-4 shrink-0 text-success",
774
- "aria-hidden": "true"
775
- });
776
- } else if (sc.result === "fail") {
777
- $$renderer2.push("<!--[1-->");
778
- X($$renderer2, {
779
- class: "mt-0.5 size-4 shrink-0 text-danger",
780
- "aria-hidden": "true"
781
- });
782
- } else {
783
- $$renderer2.push("<!--[-1-->");
784
- Minus($$renderer2, {
785
- class: "mt-0.5 size-4 shrink-0 text-muted-foreground",
786
- "aria-hidden": "true"
787
- });
788
- }
789
- $$renderer2.push(`<!--]--> <span class="min-w-0 flex-1"><span class="sr-only">${escape_html(RESULT[sc.result])}:</span>${escape_html(sc.name)} `);
790
- if (sc.detail && sc.result !== "pass") {
791
- $$renderer2.push(`<!--[0--><span class="mt-0.5 block text-xs text-muted-foreground">${escape_html(sc.detail)}</span>`);
792
- } else {
793
- $$renderer2.push("<!--[-1-->");
794
- }
795
- $$renderer2.push(`<!--]--></span></li>`);
796
- }
797
- $$renderer2.push(`<!--]--></ul>`);
798
- } else {
799
- $$renderer2.push("<!--[-1-->");
800
- }
801
- $$renderer2.push(`<!--]--> `);
802
- if (v.testingNote) {
803
- $$renderer2.push(`<!--[0--><p class="leading-relaxed text-muted-foreground">${escape_html(v.testingNote)}</p>`);
804
- } else {
805
- $$renderer2.push("<!--[-1-->");
806
- }
807
- $$renderer2.push(`<!--]--> <p class="text-xs text-muted-foreground">From ${escape_html(t.basis)}.</p>`);
808
- } else {
809
- $$renderer2.push("<!--[-1-->");
810
- }
811
- $$renderer2.push(`<!--]--> `);
812
- if (s.docs) {
813
- $$renderer2.push("<!--[0-->");
814
- if (s.docs.summary.length) {
815
- $$renderer2.push(`<!--[0--><ul class="list-disc space-y-1 pl-5"><!--[-->`);
816
- const each_array_3 = ensure_array_like(s.docs.summary);
817
- for (let i = 0, $$length2 = each_array_3.length; i < $$length2; i++) {
818
- let line = each_array_3[i];
819
- $$renderer2.push(`<li>${escape_html(line)}</li>`);
820
- }
821
- $$renderer2.push(`<!--]--></ul>`);
822
- } else {
823
- $$renderer2.push("<!--[-1-->");
824
- }
825
- $$renderer2.push(`<!--]--> `);
826
- if (s.docs.files.length) {
827
- $$renderer2.push(`<!--[0--><ul class="flex flex-wrap gap-2"><!--[-->`);
828
- const each_array_4 = ensure_array_like(s.docs.files);
829
- for (let $$index_3 = 0, $$length2 = each_array_4.length; $$index_3 < $$length2; $$index_3++) {
830
- let d = each_array_4[$$index_3];
831
- $$renderer2.push(`<li><a${attr("href", docHref2(d.path))} class="inline-flex items-center gap-1.5 rounded-md border px-2.5 py-1 hover:bg-accent/60">`);
832
- File_text($$renderer2, {
833
- class: "size-3.5 text-muted-foreground",
834
- "aria-hidden": "true"
835
- });
836
- $$renderer2.push(`<!---->${escape_html(d.title)}</a></li>`);
837
- }
838
- $$renderer2.push(`<!--]--></ul>`);
839
- } else {
840
- $$renderer2.push("<!--[-1-->");
841
- }
842
- $$renderer2.push(`<!--]-->`);
843
- } else {
844
- $$renderer2.push("<!--[-1-->");
845
- }
846
- $$renderer2.push(`<!--]--> `);
847
- if (s.notes.length) {
848
- $$renderer2.push(`<!--[0--><div><p class="text-xs text-muted-foreground">${escape_html(s.key === "test" || s.key === "document" ? "In its own words" : "Along the way")}</p> <ul class="mt-1 list-disc space-y-1 pl-5 text-muted-foreground"><!--[-->`);
849
- const each_array_5 = ensure_array_like(s.notes);
850
- for (let i = 0, $$length2 = each_array_5.length; i < $$length2; i++) {
851
- let n = each_array_5[i];
852
- $$renderer2.push(`<li>${escape_html(n)}</li>`);
853
- }
854
- $$renderer2.push(`<!--]--></ul></div>`);
855
- } else {
856
- $$renderer2.push("<!--[-1-->");
857
- }
858
- $$renderer2.push(`<!--]--></div>`);
859
- } else {
860
- $$renderer2.push("<!--[-1-->");
861
- }
862
- $$renderer2.push(`<!--]--></li>`);
863
- }
864
- $$renderer2.push(`<!--]--></ol> <p class="mt-2 text-xs text-muted-foreground">From ${escape_html(checks.source)}.</p>`);
865
- }
866
- $$renderer2.push(`<!--]--></section>`);
867
- });
868
- }
869
- function ConversationPanel($$renderer, $$props) {
870
- $$renderer.component(($$renderer2) => {
871
- let { talk, now } = $$props;
872
- const LONG = 280;
873
- let opened = {};
874
- function lead(e) {
875
- switch (e.kind) {
876
- case "question":
877
- return "The worker asked Firstmate";
878
- case "blocked":
879
- return "The worker asked Firstmate for help";
880
- case "review":
881
- return "The automated review asked Firstmate";
882
- case "steer":
883
- return "Firstmate told the worker";
884
- case "captain":
885
- return e.to === "worker" ? "Your feedback reached the worker" : "You wrote to Firstmate";
886
- }
887
- }
888
- const tone2 = {
889
- open: "bg-warning/10 text-warning",
890
- answered: "bg-success/10 text-success",
891
- cleared: "bg-muted text-muted-foreground",
892
- read: "bg-muted text-muted-foreground",
893
- unread: "bg-sea/10 text-sea",
894
- sent: "bg-muted text-muted-foreground"
895
- };
896
- function longText($$renderer3, id, text) {
897
- const long = text.length > LONG;
898
- $$renderer3.push(`<p${attr_class(`mt-1 text-sm leading-relaxed whitespace-pre-line ${long && !opened[id] ? "line-clamp-4" : ""}`)}>${escape_html(text)}</p> `);
899
- if (long) {
900
- $$renderer3.push(`<!--[0--><button type="button" class="mt-1 text-xs text-muted-foreground hover:text-foreground hover:underline"${attr("aria-expanded", !!opened[id])}>${escape_html(opened[id] ? "Show less" : "Show all")}</button>`);
901
- } else {
902
- $$renderer3.push("<!--[-1-->");
903
- }
904
- $$renderer3.push(`<!--]-->`);
905
- }
906
- $$renderer2.push(`<section aria-labelledby="conversation" class="max-w-4xl"><h2 id="conversation" class="sr-only">Conversation</h2> `);
907
- if (!talk.available) {
908
- $$renderer2.push(`<!--[0--><p class="text-sm text-muted-foreground">${escape_html(talk.reason)}</p>`);
909
- } else if (!talk.value.length) {
910
- $$renderer2.push(`<!--[1--><div class="rounded-xl border border-dashed p-6 text-muted-foreground">`);
911
- Messages_square($$renderer2, { class: "size-5", "aria-hidden": "true" });
912
- $$renderer2.push(`<!----> <p class="mt-2 text-sm font-medium text-foreground">Nothing has been asked yet</p> <p class="mt-1 text-sm">When the worker asks Firstmate something, or Firstmate steers the worker, it shows here.</p></div>`);
913
- } else {
914
- $$renderer2.push(`<!--[-1--><p class="text-sm text-muted-foreground">Between the worker and Firstmate, oldest first. Firstmate answers for you while you are away.</p> <ol class="mt-4 divide-y divide-hair rounded-lg border bg-card"><!--[-->`);
915
- const each_array = ensure_array_like(talk.value);
916
- for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {
917
- let e = each_array[$$index];
918
- $$renderer2.push(`<li class="grid gap-x-4 px-4 py-4 sm:grid-cols-[4.5rem_minmax(0,1fr)]"${attr("data-talk", e.kind)}><time class="tabular pt-0.5 text-xs text-muted-foreground"${attr("datetime", e.at)}${attr("title", ago(e.at, now))}>${escape_html(clock(e.at))}</time> <div class="min-w-0"><div class="flex flex-wrap items-baseline justify-between gap-x-3 gap-y-1"><p class="text-xs tracking-wide text-muted-foreground">${escape_html(lead(e))}</p> <span${attr_class(`rounded-full px-2 py-0.5 text-xs font-medium ${stringify(tone2[e.outcome.state])}`)}>${escape_html(e.outcome.label)}</span></div> <p class="mt-1 font-medium">${escape_html(e.title)}</p> `);
919
- if (e.body) {
920
- $$renderer2.push("<!--[0-->");
921
- longText($$renderer2, `${e.id} body`, e.body);
922
- } else {
923
- $$renderer2.push("<!--[-1-->");
924
- }
925
- $$renderer2.push(`<!--]--> `);
926
- if (e.questions.length) {
927
- $$renderer2.push(`<!--[0--><div class="mt-3">`);
928
- QuestionList($$renderer2, { questions: e.questions });
929
- $$renderer2.push(`<!----></div>`);
930
- } else {
931
- $$renderer2.push("<!--[-1-->");
932
- }
933
- $$renderer2.push(`<!--]--> `);
934
- if (e.reply) {
935
- $$renderer2.push(`<!--[0--><div class="mt-3 border-l-2 border-brass/60 pl-3"><p class="text-xs text-muted-foreground">${escape_html(PARTY_LABEL[e.reply.from])}
936
- ${escape_html(e.reply.from === "worker" ? "noted" : "answered")}${escape_html(e.reply.at ? ` · ${clock(e.reply.at)}` : "")}</p> `);
937
- longText($$renderer2, `${e.id} reply`, e.reply.text);
938
- $$renderer2.push(`<!----></div>`);
939
- } else {
940
- $$renderer2.push("<!--[-1-->");
941
- }
942
- $$renderer2.push(`<!--]--></div></li>`);
943
- }
944
- $$renderer2.push(`<!--]--></ol> <p class="mt-2 text-xs text-muted-foreground">From ${escape_html(talk.source)}.</p>`);
945
- }
946
- $$renderer2.push(`<!--]--></section>`);
947
- });
948
- }
949
- function DocsPanel($$renderer, $$props) {
950
- $$renderer.component(($$renderer2) => {
951
- let { docs, taskId } = $$props;
952
- const href = (d) => `/tasks/${encodeURIComponent(taskId)}/doc?path=${encodeURIComponent(d.path)}`;
953
- const groups = derived(() => docs.available ? [
954
- {
955
- label: "Decision records",
956
- items: docs.value.filter((d) => d.kind === "decision")
957
- },
958
- {
959
- label: "Docs",
960
- items: docs.value.filter((d) => d.kind !== "decision")
961
- }
962
- ].filter((g) => g.items.length) : []);
963
- const how = (d) => {
964
- if (!d.changed) return "Read by the worker";
965
- if (d.additions === null) return "Changed in this task";
966
- if (!d.deletions) return `${d.additions} ${d.additions === 1 ? "line" : "lines"} added`;
967
- return `${d.additions} added, ${d.deletions} removed`;
968
- };
969
- $$renderer2.push(`<section aria-labelledby="task-docs" class="max-w-4xl"><h2 id="task-docs" class="sr-only">Docs and decisions</h2> `);
970
- if (!docs.available) {
971
- $$renderer2.push(`<!--[0--><p class="text-sm text-muted-foreground">${escape_html(docs.reason)}</p>`);
972
- } else if (!docs.value.length) {
973
- $$renderer2.push(`<!--[1--><div class="rounded-xl border border-dashed p-6 text-muted-foreground">`);
974
- Book_open($$renderer2, { class: "size-5", "aria-hidden": "true" });
975
- $$renderer2.push(`<!----> <p class="mt-2 text-sm font-medium text-foreground">No docs touched yet</p> <p class="mt-1 text-sm">Decision records and docs the worker reads or changes for this task show here.</p></div>`);
976
- } else {
977
- $$renderer2.push(`<!--[-1--><p class="text-sm text-muted-foreground">The decision records and docs this task’s work read or changed. Open one to read it here.</p> <!--[-->`);
978
- const each_array = ensure_array_like(groups());
979
- for (let $$index_1 = 0, $$length = each_array.length; $$index_1 < $$length; $$index_1++) {
980
- let g = each_array[$$index_1];
981
- $$renderer2.push(`<h3 class="section-label mt-6">${escape_html(g.label)}</h3> <ul class="mt-3 divide-y divide-hair rounded-lg border bg-card"><!--[-->`);
982
- const each_array_1 = ensure_array_like(g.items);
983
- for (let $$index = 0, $$length2 = each_array_1.length; $$index < $$length2; $$index++) {
984
- let d = each_array_1[$$index];
985
- $$renderer2.push(`<li class="flex items-start gap-3 px-4 py-3"${attr("data-doc", d.kind)}>`);
986
- if (d.kind === "decision") {
987
- $$renderer2.push("<!--[0-->");
988
- Scale($$renderer2, {
989
- class: "mt-0.5 size-4 shrink-0 text-muted-foreground",
990
- "aria-hidden": "true"
991
- });
992
- } else {
993
- $$renderer2.push("<!--[-1-->");
994
- File_text($$renderer2, {
995
- class: "mt-0.5 size-4 shrink-0 text-muted-foreground",
996
- "aria-hidden": "true"
997
- });
998
- }
999
- $$renderer2.push(`<!--]--> <div class="min-w-0 flex-1"><a${attr("href", href(d))} class="font-medium hover:underline">${escape_html(d.title)}</a> <p class="mt-0.5 text-xs text-muted-foreground">${escape_html(DOC_KIND_LABEL[d.kind])}${escape_html(d.kind === "readme" ? "" : ` · ${d.name}`)} · <span${attr_class(clsx(d.changed ? "text-foreground/80" : ""))}>${escape_html(how(d))}</span></p></div> `);
1000
- if (d.github) {
1001
- $$renderer2.push(`<!--[0--><a${attr("href", d.github)} target="_blank" rel="noreferrer" class="inline-flex shrink-0 items-center gap-1 text-xs text-sea hover:underline"${attr("aria-label", `Open ${stringify(d.title)} on GitHub`)}>GitHub`);
1002
- External_link($$renderer2, { class: "size-3", "aria-hidden": "true" });
1003
- $$renderer2.push(`<!----></a>`);
1004
- } else {
1005
- $$renderer2.push("<!--[-1-->");
1006
- }
1007
- $$renderer2.push(`<!--]--></li>`);
1008
- }
1009
- $$renderer2.push(`<!--]--></ul>`);
1010
- }
1011
- $$renderer2.push(`<!--]--> <p class="mt-2 text-xs text-muted-foreground">From ${escape_html(docs.source)}.</p>`);
1012
- }
1013
- $$renderer2.push(`<!--]--></section>`);
1014
- });
1015
- }
1016
- function unavailable($$renderer, a) {
1017
- if (!a.available) {
1018
- $$renderer.push(`<!--[0--><p class="text-sm text-muted-foreground">Not available. ${escape_html(a.reason)}</p>`);
1019
- } else {
1020
- $$renderer.push("<!--[-1-->");
1021
- }
1022
- $$renderer.push(`<!--]-->`);
1023
- }
1024
- function source($$renderer, a) {
1025
- if (a.available) {
1026
- $$renderer.push(`<!--[0--><p class="mt-1.5 text-xs text-muted-foreground">From ${escape_html(a.source)}${escape_html(a.observedAt ? `, ${ago(a.observedAt, live.now)}` : "")}.</p>`);
1027
- } else {
1028
- $$renderer.push("<!--[-1-->");
1029
- }
1030
- $$renderer.push(`<!--]-->`);
1031
- }
1032
- function checkIcon($$renderer, c) {
1033
- if (c.state === "pass") {
1034
- $$renderer.push("<!--[0-->");
1035
- Check($$renderer, {
1036
- class: "size-4 shrink-0 text-success",
1037
- "aria-label": "Passed"
1038
- });
1039
- } else if (c.state === "fail") {
1040
- $$renderer.push("<!--[1-->");
1041
- X($$renderer, { class: "size-4 shrink-0 text-danger", "aria-label": "Failed" });
1042
- } else if (c.state === "running") {
1043
- $$renderer.push("<!--[2-->");
1044
- Loader_circle($$renderer, {
1045
- class: "size-4 shrink-0 animate-spin text-muted-foreground",
1046
- "aria-label": "Running"
1047
- });
1048
- } else if (c.state === "skipped") {
1049
- $$renderer.push("<!--[3-->");
1050
- Minus($$renderer, {
1051
- class: "size-4 shrink-0 text-muted-foreground",
1052
- "aria-label": "Skipped"
1053
- });
1054
- } else {
1055
- $$renderer.push("<!--[-1-->");
1056
- Circle_dashed($$renderer, {
1057
- class: "size-4 shrink-0 text-muted-foreground",
1058
- "aria-label": "Pending"
1059
- });
1060
- }
1061
- $$renderer.push(`<!--]-->`);
1062
- }
1063
- function progressBlock($$renderer) {
1064
- }
1065
- function timePanel($$renderer, task, detail) {
1066
- const e = task.eta ?? null;
1067
- const t = detail.time;
1068
- $$renderer.push(`<section class="space-y-6" aria-label="Work time">`);
1069
- if (e && !e.openEnded) {
1070
- $$renderer.push("<!--[0-->");
1071
- const l = etaLine(e);
1072
- $$renderer.push(`<div class="rounded-xl border bg-card p-5"><div class="flex flex-wrap items-start justify-between gap-3"><div><p class="flex items-center gap-2 text-sm text-muted-foreground">`);
1073
- Timer($$renderer, { class: "size-4", "aria-hidden": "true" });
1074
- $$renderer.push(`<!---->Until it is ready for your review</p> <p${attr_class(`mt-1 text-2xl font-semibold tracking-tight ${l.tone === "warning" ? "text-warning" : ""}`)}>${escape_html(l.text)}</p> `);
1075
- if (e.minutes !== null && !e.overdue) {
1076
- $$renderer.push(`<!--[0--><p class="mt-0.5 text-sm text-muted-foreground">Usually ${escape_html(e.low)}–${escape_html(e.high)} min, so around ${escape_html(clock(new Date(live.now + e.minutes * 6e4).toISOString()))}</p>`);
1077
- } else if (e.overdue) {
1078
- $$renderer.push(`<!--[1--><p class="mt-0.5 text-sm text-muted-foreground">Similar work had reached your review by this point.</p>`);
1079
- } else {
1080
- $$renderer.push("<!--[-1-->");
1081
- }
1082
- $$renderer.push(`<!--]--></div> `);
1083
- if (e.confidence !== "none" && !e.overdue) {
1084
- $$renderer.push(`<!--[0--><span class="rounded-full bg-muted px-2.5 py-1 text-xs font-medium">${escape_html(CONFIDENCE[e.confidence])}</span>`);
1085
- } else {
1086
- $$renderer.push("<!--[-1-->");
1087
- }
1088
- $$renderer.push(`<!--]--></div> `);
1089
- if (e.ahead.length) {
1090
- $$renderer.push(`<!--[0--><ol class="mt-5 space-y-2 border-t pt-4"><!--[-->`);
1091
- const each_array_11 = ensure_array_like(e.ahead);
1092
- for (let $$index_11 = 0, $$length = each_array_11.length; $$index_11 < $$length; $$index_11++) {
1093
- let x = each_array_11[$$index_11];
1094
- $$renderer.push(`<li class="flex items-baseline justify-between gap-4 text-sm"><span${attr_class(clsx(x.current ? "font-medium" : "text-muted-foreground"))}>${escape_html(PHASE_LABEL[x.phase])}`);
1095
- if (x.current) {
1096
- $$renderer.push(`<!--[0--><span class="font-normal text-muted-foreground">${escape_html(` · now, ${duration(x.spent)} in`)}</span>`);
1097
- } else {
1098
- $$renderer.push("<!--[-1-->");
1099
- }
1100
- $$renderer.push(`<!--]--></span> <span class="text-muted-foreground tabular-nums">${escape_html(x.usual !== null ? `usually ${duration(x.usual)}` : "no history yet")}</span></li>`);
1101
- }
1102
- $$renderer.push(`<!--]--></ol>`);
1103
- } else {
1104
- $$renderer.push("<!--[-1-->");
1105
- }
1106
- $$renderer.push(`<!--]--> <p class="mt-4 text-xs text-muted-foreground">Based on ${escape_html(e.basis)} similar ${escape_html(e.scope === "project" ? "tasks in this project" : "tasks across projects")}. A guide, not a promise: it counts work time only, not time
1107
- waiting on you.</p></div>`);
1108
- } else {
1109
- $$renderer.push("<!--[-1-->");
1110
- }
1111
- $$renderer.push(`<!--]--> `);
1112
- if (t && t.total > 0) {
1113
- $$renderer.push(`<!--[0--><div><div class="flex flex-wrap items-baseline justify-between gap-2"><h2 class="section-label flex-1">Where its time went</h2> <p class="text-sm text-muted-foreground">${escape_html(duration(t.total))}${escape_html(t.ongoing ? " so far" : "")}${escape_html(t.readyAfter !== null ? ` · ready for you after ${duration(t.readyAfter)}` : "")}</p></div> <div class="mt-3">`);
1114
- TimeBar($$renderer, { seconds: t.seconds, height: "h-3", label: "This task" });
1115
- $$renderer.push(`<!----></div> <div class="mt-3">`);
1116
- TimeLegend($$renderer, { seconds: t.seconds });
1117
- $$renderer.push(`<!----></div> `);
1118
- if (t.reviewSteps.length) {
1119
- $$renderer.push(`<!--[0--><details class="mt-4 rounded-lg border px-4 py-3 text-sm"><summary class="cursor-pointer text-muted-foreground hover:text-foreground">Inside the latest automated review</summary> <ul class="mt-3 space-y-1.5"><!--[-->`);
1120
- const each_array_12 = ensure_array_like(t.reviewSteps);
1121
- for (let $$index_12 = 0, $$length = each_array_12.length; $$index_12 < $$length; $$index_12++) {
1122
- let r = each_array_12[$$index_12];
1123
- $$renderer.push(`<li class="flex justify-between gap-4"><span>${escape_html(r.label)}</span><span class="text-muted-foreground tabular-nums">${escape_html(duration(r.seconds))}</span></li>`);
1124
- }
1125
- $$renderer.push(`<!--]--></ul></details>`);
1126
- } else {
1127
- $$renderer.push("<!--[-1-->");
1128
- }
1129
- $$renderer.push(`<!--]--></div>`);
1130
- } else {
1131
- $$renderer.push("<!--[-1-->");
1132
- }
1133
- $$renderer.push(`<!--]--> `);
1134
- if (detail.decided.length) {
1135
- $$renderer.push(`<!--[0--><div><h2 class="section-label">Decided for you on this task</h2> <ul class="mt-3 divide-y rounded-lg border"><!--[-->`);
1136
- const each_array_13 = ensure_array_like(detail.decided);
1137
- for (let $$index_13 = 0, $$length = each_array_13.length; $$index_13 < $$length; $$index_13++) {
1138
- let d = each_array_13[$$index_13];
1139
- $$renderer.push(`<li><a${attr("href", `/decisions#${stringify(d.id)}`)} class="flex gap-3 px-4 py-3 hover:bg-accent/40">`);
1140
- Scale($$renderer, {
1141
- class: "mt-0.5 size-4 shrink-0 text-muted-foreground",
1142
- "aria-hidden": "true"
1143
- });
1144
- $$renderer.push(`<!----> <span class="min-w-0 text-sm"><span class="font-medium">${escape_html(d.verdict)}</span> <span class="text-muted-foreground">· ${escape_html(d.calls[0].question)}</span></span></a></li>`);
1145
- }
1146
- $$renderer.push(`<!--]--></ul></div>`);
1147
- } else {
1148
- $$renderer.push("<!--[-1-->");
1149
- }
1150
- $$renderer.push(`<!--]--></section>`);
1151
- }
1152
- function pluginSection($$renderer, entry) {
1153
- $$renderer.push(`<section class="rounded-xl border p-4"${attr("aria-label", entry.title)} data-slot="task.section"><h2 class="mb-3 text-sm font-medium">${escape_html(entry.title)}</h2> `);
1154
- SlotContent($$renderer, { entry, now: live.now });
1155
- $$renderer.push(`<!----></section>`);
1156
- }
1157
- function _page($$renderer, $$props) {
1158
- $$renderer.component(($$renderer2) => {
1159
- let { data } = $$props;
1160
- let fetched = null;
1161
- const FILES_PREVIEW = 12;
1162
- let shotIndex = null;
1163
- let diffFile = null;
1164
- const id = derived(() => page.params.id);
1165
- const detail = derived(() => fetched?.task.id === id() ? fetched : data.detail);
1166
- const task = derived(() => currentFleet()?.tasks.find((t2) => t2.id === id()) ?? detail()?.task ?? null);
1167
- const ev = derived(() => detail()?.evidence ?? null);
1168
- const project = derived(() => currentFleet()?.projects.find((p) => p.id === task()?.projectId));
1169
- const shots = derived(() => ev()?.screenshots.available ? ev().screenshots.value : []);
1170
- const runShots = derived(() => detail()?.task.runs && detail().task.runs.current > 1 ? shots().filter((s) => runAt(detail().task.runs, s.modifiedAt) === detail().task.runs.current) : shots());
1171
- let pickedRun = null;
1172
- const shownRun = derived(() => pickedRun?.task === id() ? pickedRun.n : detail()?.task.runs?.current ?? 1);
1173
- const pluginEntries = derived(() => slots.entries(slotKey.task(id()), data.slots, data.slotsAt));
1174
- const stepEntries = (key) => pluginEntries().filter((e) => e.slot === "step.evidence" && e.step === key);
1175
- const t = derived(() => task() ? tone(task()) : "normal");
1176
- const back = derived(() => harbourHref(task()?.projectId));
1177
- const blocks = {
1178
- queue: queueBlock,
1179
- progress: progressBlock,
1180
- files: filesBlock,
1181
- validation: validationBlock,
1182
- pr: prBlock,
1183
- report: reportBlock,
1184
- screenshots: screenshotsBlock,
1185
- preview: previewBlock,
1186
- decision: decisionBlock,
1187
- landed: landedBlock
1188
- };
1189
- const blockFor = (id2) => blocks[id2] ?? (id2.startsWith("check:") ? checkBlock : void 0);
1190
- const PASS = [
1191
- "success",
1192
- "inactive",
1193
- "included",
1194
- "published",
1195
- "ok",
1196
- "yes",
1197
- "present"
1198
- ];
1199
- const FAIL = ["failure", "error", "mismatch"];
1200
- const checkTone = (c) => c.state === "off" || c.state === "gave-up" ? "skipped" : c.state !== "observed" ? "unknown" : PASS.includes(c.outcome ?? "") ? "pass" : FAIL.includes(c.outcome ?? "") ? "fail" : c.outcome === "in_progress" ? "running" : "pending";
1201
- const taskSections = derived(() => placeTaskSections(pluginEntries(), task() ? task().passage.steps.map((s) => s.key) : []));
1202
- const pluginTabs = derived(() => [...taskSections().byOrder].sort((a, b) => a.order - b.order));
1203
- const hasTime = (task2, detail2) => !!(task2.eta && !task2.eta.openEnded) || !!(detail2.time && detail2.time.total > 0) || detail2.decided.length > 0;
1204
- const tabs = derived(() => task() && detail() ? taskTabs({
1205
- preview: !!task().preview,
1206
- shots: shots().length,
1207
- plugins: pluginTabs().map((e) => ({ key: e.key, title: e.title })),
1208
- build: {
1209
- // Only what is still waiting on an answer is counted.
1210
- talk: detail().build.conversation.available ? detail().build.conversation.value.filter((e) => e.outcome.state === "open").length : 0,
1211
- docs: detail().build.docs.available ? detail().build.docs.value.length : 0
1212
- }
1213
- }) : []);
1214
- let chosen = null;
1215
- const want = derived(() => chosen?.id === id() ? chosen : { tab: page.url.searchParams.get("tab"), full: false });
1216
- const active = derived(() => pickTab(want().tab, tabs()));
1217
- const full = derived(() => !!task()?.preview && (chosen?.id === id() ? chosen.full : page.url.searchParams.get("full") === "1"));
1218
- function show(tab, fullScreen = false) {
1219
- chosen = { id: id(), tab, full: fullScreen };
1220
- const url = new URL(page.url);
1221
- url.searchParams.set("tab", tab);
1222
- if (fullScreen) url.searchParams.set("full", "1");
1223
- else url.searchParams.delete("full");
1224
- replaceState();
1225
- }
1226
- async function reveal(tab) {
1227
- show(tab);
1228
- if (matchMedia("(min-width: 64rem)").matches) return;
1229
- await tick();
1230
- matchMedia("(prefers-reduced-motion: reduce)").matches;
1231
- }
1232
- let terminalOpen = true;
1233
- let toggled = {};
1234
- const isOpen = (s) => toggled[`${id()} ${s.key}`] ?? openByDefault(s);
1235
- const entryText = (e) => {
1236
- const n = /\/pull\/(\d+)/.exec(e.text)?.[1];
1237
- if (e.kind === "pr-ready") return `Pull request${n ? ` #${n}` : ""} ready`;
1238
- if (e.kind === "merged") return n ? `Merged pull request #${n}` : e.text;
1239
- return e.text;
1240
- };
1241
- const prState = (s, draft) => draft ? "draft" : s === "merged" ? "merged" : s === "closed" ? "closed" : s === "open" ? "open" : s ?? "state unknown";
1242
- function filesBlock($$renderer3) {
1243
- if (ev()?.files.available) {
1244
- $$renderer3.push("<!--[0-->");
1245
- const f = ev().files.value;
1246
- const max = Math.max(1, ...f.files.map((x) => (x.additions ?? 0) + (x.deletions ?? 0)));
1247
- $$renderer3.push(`<h4 class="mb-2 text-sm font-medium">Files changed <span class="font-normal text-muted-foreground">${escape_html(f.branch ? `on ${f.branch}` : "")} against ${escape_html(f.base)}</span></h4> `);
1248
- if (f.files.length) {
1249
- $$renderer3.push(`<!--[0--><ul class="divide-y rounded-lg border"><!--[-->`);
1250
- const each_array = ensure_array_like(f.files.slice(0, FILES_PREVIEW));
1251
- for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {
1252
- let x = each_array[$$index];
1253
- $$renderer3.push(`<li><button type="button" class="flex w-full items-center gap-3 px-3 py-2 text-left text-xs hover:bg-accent/60"${attr("aria-label", `Show the changes to ${stringify(x.path)}`)}><span class="w-3 font-mono text-muted-foreground">${escape_html(x.status)}</span> <span class="min-w-0 flex-1 truncate font-mono"${attr("title", x.path)}>${escape_html(x.path)}</span> `);
1254
- if (x.status === "?") {
1255
- $$renderer3.push(`<!--[0--><span class="text-muted-foreground">new, not committed</span>`);
1256
- } else if (x.additions === null) {
1257
- $$renderer3.push(`<!--[1--><span class="text-muted-foreground">binary</span>`);
1258
- } else {
1259
- $$renderer3.push(`<!--[-1--><span class="tabular"><span class="text-success">+${escape_html(x.additions)}</span> <span class="text-danger">−${escape_html(x.deletions)}</span></span> <span class="hidden h-1.5 w-16 overflow-hidden rounded-full bg-muted sm:flex"><span class="bg-success"${attr_style(`width:${stringify((x.additions ?? 0) / max * 100)}%`)}></span> <span class="bg-danger"${attr_style(`width:${stringify((x.deletions ?? 0) / max * 100)}%`)}></span></span>`);
1260
- }
1261
- $$renderer3.push(`<!--]--></button></li>`);
1262
- }
1263
- $$renderer3.push(`<!--]--></ul> `);
1264
- if (f.files.length > FILES_PREVIEW) {
1265
- $$renderer3.push(`<!--[0--><button class="mt-2 text-sm text-muted-foreground hover:text-foreground hover:underline">Show all ${escape_html(f.files.length)} files</button>`);
1266
- } else {
1267
- $$renderer3.push("<!--[-1-->");
1268
- }
1269
- $$renderer3.push(`<!--]--> `);
1270
- if (f.truncated) {
1271
- $$renderer3.push(`<!--[0--><p class="mt-1 text-xs text-muted-foreground">Showing the first ${escape_html(f.files.length)} of ${escape_html(f.total)} files.</p>`);
1272
- } else {
1273
- $$renderer3.push("<!--[-1-->");
1274
- }
1275
- $$renderer3.push(`<!--]--> <p class="mt-1 text-xs text-muted-foreground">Select a file to see its diff.</p>`);
1276
- } else {
1277
- $$renderer3.push(`<!--[-1--><p class="text-sm text-muted-foreground">No changes yet.</p>`);
1278
- }
1279
- $$renderer3.push(`<!--]--> `);
1280
- source($$renderer3, ev().files);
1281
- $$renderer3.push(`<!---->`);
1282
- } else if (ev()) {
1283
- $$renderer3.push("<!--[1-->");
1284
- unavailable($$renderer3, ev().files);
1285
- } else {
1286
- $$renderer3.push("<!--[-1-->");
1287
- }
1288
- $$renderer3.push(`<!--]-->`);
1289
- }
1290
- function checksLink($$renderer3) {
1291
- $$renderer3.push(`<button type="button" class="mt-2 block text-sm text-sea hover:underline">What each check found</button>`);
1292
- }
1293
- function queueBlock($$renderer3) {
1294
- if (task()) {
1295
- $$renderer3.push(`<!--[0--><p class="text-sm text-muted-foreground">${escape_html(task().since ? `Filed ${task().since}.` : "Queued by Firstmate.")} `);
1296
- if (task().blockedBy.length) {
1297
- $$renderer3.push(`<!--[0-->Waiting on ${escape_html(task().blockedBy.join(", "))}.`);
1298
- } else {
1299
- $$renderer3.push("<!--[-1-->");
1300
- }
1301
- $$renderer3.push(`<!--]--></p>`);
1302
- } else {
1303
- $$renderer3.push("<!--[-1-->");
1304
- }
1305
- $$renderer3.push(`<!--]-->`);
1306
- }
1307
- function validationBlock($$renderer3) {
1308
- if (task() && showsChecks(task())) {
1309
- $$renderer3.push("<!--[0-->");
1310
- ChecksTimeline($$renderer3, {
1311
- pipeline: task().pipeline,
1312
- busy: task().busy,
1313
- prChecks: ev()?.pr.available ? ev().pr.value.checks : []
1314
- });
1315
- $$renderer3.push(`<!----> `);
1316
- if (ev()?.validation.available) {
1317
- $$renderer3.push("<!--[0-->");
1318
- RawDetails($$renderer3, {
1319
- raw: ev().validation.value.detail,
1320
- plain: plainStatus(task().current?.state, ev().validation.value.detail)
1321
- });
1322
- } else {
1323
- $$renderer3.push("<!--[-1-->");
1324
- }
1325
- $$renderer3.push(`<!--]--> <p class="mt-1.5 text-xs text-muted-foreground">From the validation run’s own report${escape_html(task().pipeline.observedAt ? `, ${ago(task().pipeline.observedAt, live.now)}` : "")}.</p> `);
1326
- checksLink($$renderer3);
1327
- $$renderer3.push(`<!---->`);
1328
- } else if (ev()?.validation.available) {
1329
- $$renderer3.push("<!--[1-->");
1330
- const plain = plainStatus(task()?.current?.state, ev().validation.value.detail);
1331
- $$renderer3.push(`<p class="text-sm">${escape_html(plain)}</p> `);
1332
- if (task()?.pipeline && task().current?.state === "working") {
1333
- $$renderer3.push(`<!--[0--><p class="mt-1 text-sm text-muted-foreground">${escape_html(task().pipeline.label)} step${escape_html(task().pipeline.round ? `, fix round ${task().pipeline.round}` : "")}${escape_html(task().pipeline.startedAt ? `, started ${ago(task().pipeline.startedAt, live.now)}` : "")}.</p>`);
1334
- } else {
1335
- $$renderer3.push("<!--[-1-->");
1336
- }
1337
- $$renderer3.push(`<!--]--> `);
1338
- RawDetails($$renderer3, { raw: ev().validation.value.detail, plain });
1339
- $$renderer3.push(`<!----> `);
1340
- source($$renderer3, ev().validation);
1341
- $$renderer3.push(`<!---->`);
1342
- } else if (detail()?.build.checks.available) {
1343
- $$renderer3.push(`<!--[2--><ul class="space-y-1 text-sm"><!--[-->`);
1344
- const each_array_1 = ensure_array_like(detail().build.checks.value.steps.filter((x) => x.key !== "intent"));
1345
- for (let $$index_1 = 0, $$length = each_array_1.length; $$index_1 < $$length; $$index_1++) {
1346
- let c = each_array_1[$$index_1];
1347
- $$renderer3.push(`<li><span class="font-medium">${escape_html(c.label)}</span> · ${escape_html(c.summary)}</li>`);
1348
- }
1349
- $$renderer3.push(`<!--]--></ul> `);
1350
- checksLink($$renderer3);
1351
- $$renderer3.push(`<!---->`);
1352
- } else if (ev()) {
1353
- $$renderer3.push("<!--[3-->");
1354
- unavailable($$renderer3, ev().validation);
1355
- } else {
1356
- $$renderer3.push("<!--[-1-->");
1357
- }
1358
- $$renderer3.push(`<!--]-->`);
1359
- }
1360
- function guidedReview($$renderer3) {
1361
- $$renderer3.push(`<a${attr("href", `/tasks/${stringify(encodeURIComponent(id()))}/review`)} class="mt-2 inline-flex items-center gap-1.5 text-sm text-sea hover:underline">`);
1362
- Compass($$renderer3, { class: "size-3.5", "aria-hidden": "true" });
1363
- $$renderer3.push(`<!---->Review it with the review agent’s guide</a>`);
1364
- }
1365
- function prBlock($$renderer3) {
1366
- if (ev()?.pr.available) {
1367
- $$renderer3.push("<!--[0-->");
1368
- const pr = ev().pr.value;
1369
- $$renderer3.push(`<p class="text-sm"><a${attr("href", pr.url)} target="_blank" rel="noreferrer" class="inline-flex items-center gap-1 text-sea hover:underline">Pull request${escape_html(pr.number ? ` #${pr.number}` : "")}`);
1370
- External_link($$renderer3, { class: "size-3.5", "aria-hidden": "true" });
1371
- $$renderer3.push(`<!----></a> <span class="text-muted-foreground">${escape_html(prState(pr.state, pr.draft))}${escape_html(pr.reviewDecision ? `, ${pr.reviewDecision.toLowerCase().replace(/_/g, " ")}` : "")}</span></p> `);
1372
- if (pr.checks.length) {
1373
- $$renderer3.push(`<!--[0--><ul class="mt-3 divide-y rounded-lg border"><!--[-->`);
1374
- const each_array_2 = ensure_array_like(pr.checks);
1375
- for (let i = 0, $$length = each_array_2.length; i < $$length; i++) {
1376
- let c = each_array_2[i];
1377
- $$renderer3.push(`<li class="flex items-center gap-3 px-3 py-2 text-sm">`);
1378
- checkIcon($$renderer3, c);
1379
- $$renderer3.push(`<!----><span class="truncate">${escape_html(c.name)}</span></li>`);
1380
- }
1381
- $$renderer3.push(`<!--]--></ul>`);
1382
- } else {
1383
- $$renderer3.push(`<!--[-1--><p class="mt-2 text-sm text-muted-foreground">No CI checks reported.</p>`);
1384
- }
1385
- $$renderer3.push(`<!--]--> `);
1386
- source($$renderer3, ev().pr);
1387
- $$renderer3.push(`<!----> `);
1388
- guidedReview($$renderer3);
1389
- $$renderer3.push(`<!---->`);
1390
- } else if (ev() && !ev().pr.available && task()?.pr) {
1391
- $$renderer3.push(`<!--[1--><a${attr("href", task().pr.url)} target="_blank" rel="noreferrer" class="inline-flex items-center gap-1 text-sm text-sea hover:underline">Pull request${escape_html(task().pr.number ? ` #${task().pr.number}` : "")}`);
1392
- External_link($$renderer3, { class: "size-3.5", "aria-hidden": "true" });
1393
- $$renderer3.push(`<!----></a> <p class="mt-1 text-sm text-muted-foreground">Its state and checks are not available. ${escape_html(ev().pr.reason)}</p>`);
1394
- } else if (ev()) {
1395
- $$renderer3.push("<!--[2-->");
1396
- unavailable($$renderer3, ev().pr);
1397
- } else {
1398
- $$renderer3.push("<!--[-1-->");
1399
- }
1400
- $$renderer3.push(`<!--]-->`);
1401
- }
1402
- function reportBlock($$renderer3) {
1403
- if (ev()?.report.available) {
1404
- $$renderer3.push(`<!--[0--><div class="flex gap-3 rounded-lg border p-3">`);
1405
- File_text($$renderer3, {
1406
- class: "mt-0.5 size-4 shrink-0 text-muted-foreground",
1407
- "aria-hidden": "true"
1408
- });
1409
- $$renderer3.push(`<!----> <div class="min-w-0"><a${attr("href", docHref(ev().report.value.path))} class="block truncate font-mono text-xs text-sea underline-offset-2 hover:underline" data-doc-link="">${escape_html(ev().report.value.path)}</a> <p class="mt-1 text-sm leading-relaxed">${escape_html(ev().report.value.excerpt)}</p></div></div> `);
1410
- source($$renderer3, ev().report);
1411
- $$renderer3.push(`<!---->`);
1412
- } else if (ev()) {
1413
- $$renderer3.push("<!--[1-->");
1414
- unavailable($$renderer3, ev().report);
1415
- } else {
1416
- $$renderer3.push("<!--[-1-->");
1417
- }
1418
- $$renderer3.push(`<!--]-->`);
1419
- }
1420
- function screenshotsBlock($$renderer3) {
1421
- if (ev()?.screenshots.available && (runShots().length || !shots().length)) {
1422
- $$renderer3.push(`<!--[0--><div class="flex flex-wrap gap-3"><!--[-->`);
1423
- const each_array_3 = ensure_array_like(runShots());
1424
- for (let $$index_3 = 0, $$length = each_array_3.length; $$index_3 < $$length; $$index_3++) {
1425
- let s = each_array_3[$$index_3];
1426
- $$renderer3.push(`<button type="button" class="w-48 shrink-0 cursor-zoom-in text-left"${attr("aria-label", `Enlarge ${stringify(s.name)}`)}><img${attr("src", s.url)}${attr("alt", s.name)} loading="lazy" class="aspect-[16/10] w-full rounded-lg border object-cover object-top"/> <p class="mt-1.5 truncate text-xs text-muted-foreground">${escape_html(s.name)}</p></button>`);
1427
- }
1428
- $$renderer3.push(`<!--]--></div> `);
1429
- source($$renderer3, ev().screenshots);
1430
- $$renderer3.push(`<!---->`);
1431
- } else if (ev()?.screenshots.available) {
1432
- $$renderer3.push(`<!--[1--><p class="text-sm text-muted-foreground">No screenshots were saved in this run yet; earlier runs keep theirs.</p>`);
1433
- } else if (ev()) {
1434
- $$renderer3.push("<!--[2-->");
1435
- unavailable($$renderer3, ev().screenshots);
1436
- } else {
1437
- $$renderer3.push("<!--[-1-->");
1438
- }
1439
- $$renderer3.push(`<!--]-->`);
1440
- }
1441
- function previewBlock($$renderer3) {
1442
- if (ev()?.preview.available) {
1443
- $$renderer3.push(`<!--[0--><a${attr("href", ev().preview.value.url)} target="_blank" rel="noreferrer" class="inline-flex items-center gap-1 text-sm text-sea hover:underline">Open preview`);
1444
- External_link($$renderer3, { class: "size-3.5", "aria-hidden": "true" });
1445
- $$renderer3.push(`<!----></a> `);
1446
- source($$renderer3, ev().preview);
1447
- $$renderer3.push(`<!---->`);
1448
- } else if (ev()) {
1449
- $$renderer3.push("<!--[1-->");
1450
- unavailable($$renderer3, ev().preview);
1451
- } else {
1452
- $$renderer3.push("<!--[-1-->");
1453
- }
1454
- $$renderer3.push(`<!--]-->`);
1455
- }
1456
- function decisionBlock($$renderer3, s) {
1457
- if (s.state === "current" && ev()?.decisions.length) {
1458
- $$renderer3.push(`<!--[0--><ul class="list-disc space-y-1 pl-5 text-sm"><!--[-->`);
1459
- const each_array_4 = ensure_array_like(ev().decisions);
1460
- for (let i = 0, $$length = each_array_4.length; i < $$length; i++) {
1461
- let d = each_array_4[i];
1462
- const plain = plainStatus("needs-decision", d.text);
1463
- $$renderer3.push(`<li>${escape_html(plain)}`);
1464
- RawDetails($$renderer3, { raw: d.text, plain });
1465
- $$renderer3.push(`<!----></li>`);
1466
- }
1467
- $$renderer3.push(`<!--]--></ul>`);
1468
- } else {
1469
- $$renderer3.push("<!--[-1-->");
1470
- }
1471
- $$renderer3.push(`<!--]-->`);
1472
- }
1473
- function checkBlock($$renderer3, _s, block) {
1474
- const c = task()?.passage.checks.find((x) => `check:${x.id}` === block);
1475
- if (c) {
1476
- $$renderer3.push(`<!--[0--><div class="flex items-start gap-3 rounded-lg border px-3 py-2 text-sm"${attr("data-check", c.id)}>`);
1477
- checkIcon($$renderer3, { name: c.label, state: checkTone(c) });
1478
- $$renderer3.push(`<!----> <div class="min-w-0 flex-1"><p><span class="font-medium">${escape_html(c.label)}</span> <span class="text-muted-foreground">${escape_html(c.summary)}</span></p> <p class="mt-0.5 text-xs text-muted-foreground">${escape_html(c.type === "command" ? "Command" : c.type)}${escape_html(c.observedAt ? `, ${c.type === "command" ? "ran" : "checked"} ${ago(c.observedAt, live.now)}` : "")}${escape_html(c.state === "gave-up" ? ", no longer checked" : "")} `);
1479
- if (c.url) {
1480
- $$renderer3.push(`<!--[0-->· <a${attr("href", c.url)} target="_blank" rel="noreferrer" class="inline-flex items-center gap-1 text-sea hover:underline">Open`);
1481
- External_link($$renderer3, { class: "size-3", "aria-hidden": "true" });
1482
- $$renderer3.push(`<!----></a>`);
1483
- } else {
1484
- $$renderer3.push("<!--[-1-->");
1485
- }
1486
- $$renderer3.push(`<!--]--></p> `);
1487
- if (c.command) {
1488
- $$renderer3.push(`<!--[0--><p class="mt-1 font-mono text-xs break-all text-muted-foreground">Runs ${escape_html(c.command)}</p>`);
1489
- } else {
1490
- $$renderer3.push("<!--[-1-->");
1491
- }
1492
- $$renderer3.push(`<!--]--> `);
1493
- if (c.output) {
1494
- $$renderer3.push(`<!--[0--><details class="mt-1"><summary class="cursor-pointer text-xs text-sea">Output</summary> <pre class="mt-1 max-h-80 overflow-auto rounded-md bg-terminal px-3 py-2 font-mono text-xs text-terminal-foreground">${escape_html(c.output)}</pre></details>`);
1495
- } else {
1496
- $$renderer3.push("<!--[-1-->");
1497
- }
1498
- $$renderer3.push(`<!--]--></div></div>`);
1499
- } else {
1500
- $$renderer3.push("<!--[-1-->");
1501
- }
1502
- $$renderer3.push(`<!--]-->`);
1503
- }
1504
- function landedBlock($$renderer3) {
1505
- if (task()) {
1506
- $$renderer3.push(`<!--[0--><p class="text-sm text-muted-foreground">`);
1507
- if (task().mergedAt) {
1508
- $$renderer3.push(`<!--[0-->Merged ${escape_html(ago(task().mergedAt, live.now))} (${escape_html(clock(task().mergedAt))}).`);
1509
- } else if (task().completedOn) {
1510
- $$renderer3.push(`<!--[1-->Closed on ${escape_html(task().completedOn)}; the exact time was not recorded.`);
1511
- } else if (task().status === "landed") {
1512
- $$renderer3.push(`<!--[2-->Done.`);
1513
- } else {
1514
- $$renderer3.push("<!--[-1-->");
1515
- }
1516
- $$renderer3.push(`<!--]--></p>`);
1517
- } else {
1518
- $$renderer3.push("<!--[-1-->");
1519
- }
1520
- $$renderer3.push(`<!--]-->`);
1521
- }
1522
- function overview($$renderer3, task2, ev2, detail2) {
1523
- const e = task2.eta && !task2.eta.openEnded ? task2.eta : null;
1524
- $$renderer3.push(`<p class="mt-5 text-sm text-muted-foreground">${escape_html(project()?.name ?? task2.projectId)}${escape_html(agentLine(task2.worker) ? ` · ${agentLine(task2.worker)}` : "")}</p> <h1 class="mt-1 text-[1.9rem] leading-tight text-balance">${escape_html(task2.title)}</h1> <p${attr_class(`mt-2 text-sm font-medium ${stringify(t() === "normal" || t() === "landed" ? "text-muted-foreground" : textClass[t()])}`)}>${escape_html(task2.statusLabel)}</p> `);
1525
- if (task2.activity && !task2.attention) {
1526
- $$renderer3.push(`<!--[0--><p class="mt-2 leading-relaxed"${attr("data-now", task2.activity.source)}><span class="mr-1 text-muted-foreground">Now:</span>`);
1527
- LinkedText($$renderer3, { text: task2.activity.text });
1528
- $$renderer3.push(`<!---->`);
1529
- if (task2.activity.at) {
1530
- $$renderer3.push(`<!--[0--><span class="text-muted-foreground">${escape_html(` · ${task2.activity.source === "pipeline" ? "started " : ""}${ago(task2.activity.at, live.now)}`)}</span>`);
1531
- } else {
1532
- $$renderer3.push("<!--[-1-->");
1533
- }
1534
- $$renderer3.push(`<!--]--></p> `);
1535
- DocMentions($$renderer3, { text: task2.summaryRaw, shown: task2.activity.text });
1536
- $$renderer3.push(`<!----> `);
1537
- RawDetails($$renderer3, { raw: task2.summaryRaw });
1538
- $$renderer3.push(`<!---->`);
1539
- } else if (task2.summary && !task2.attention) {
1540
- $$renderer3.push(`<!--[1--><p class="mt-2 leading-relaxed">`);
1541
- if (task2.summaryIsHistory) {
1542
- $$renderer3.push(`<!--[0--><span class="mr-1 text-muted-foreground">Latest update:</span>`);
1543
- } else {
1544
- $$renderer3.push("<!--[-1-->");
1545
- }
1546
- $$renderer3.push(`<!--]-->`);
1547
- LinkedText($$renderer3, { text: task2.summary });
1548
- $$renderer3.push(`<!----></p> `);
1549
- DocMentions($$renderer3, { text: task2.summaryRaw, shown: task2.summary });
1550
- $$renderer3.push(`<!----> `);
1551
- RawDetails($$renderer3, { raw: task2.summaryRaw });
1552
- $$renderer3.push(`<!---->`);
1553
- } else {
1554
- $$renderer3.push("<!--[-1-->");
1555
- }
1556
- $$renderer3.push(`<!--]--> `);
1557
- if (task2.attention && !(task2.attention.kind === "decision" && inbox.hasDecision(task2.id, page.data.inbox))) {
1558
- $$renderer3.push(`<!--[0--><div${attr_class(`mt-5 rounded-xl p-4 ${task2.attention.owner === "captain" ? "bg-sea/10" : task2.attention.owner === "reviewers" ? "bg-muted" : "bg-warning/10"}`)}><p${attr_class(`text-sm font-medium ${task2.attention.owner === "captain" ? "text-sea" : task2.attention.owner === "reviewers" ? "text-foreground" : "text-warning"}`)}>${escape_html(task2.attention.owner === "firstmate" ? "Waiting on Firstmate" : task2.attention.owner === "reviewers" ? "Waiting on reviewers" : task2.attention.kind === "review" ? task2.attention.approved ? "Ready for you to merge" : "Ready for your review" : "Your decision is needed")}</p> <p class="mt-1 text-sm leading-relaxed whitespace-pre-line">`);
1559
- LinkedText($$renderer3, { text: task2.attention.text });
1560
- $$renderer3.push(`<!----></p> `);
1561
- if (task2.attention.owner === "firstmate") {
1562
- $$renderer3.push("<!--[0-->");
1563
- DocMentions($$renderer3, { text: task2.summaryRaw, shown: task2.attention.text });
1564
- $$renderer3.push(`<!---->`);
1565
- RawDetails($$renderer3, { raw: task2.summaryRaw });
1566
- $$renderer3.push(`<!---->`);
1567
- } else {
1568
- $$renderer3.push("<!--[-1-->");
1569
- }
1570
- $$renderer3.push(`<!--]--> `);
1571
- if (detail2.evidence.decisions.length > 1) {
1572
- $$renderer3.push(`<!--[0--><ul class="mt-2 list-disc space-y-1 pl-5 text-sm"><!--[-->`);
1573
- const each_array_5 = ensure_array_like(detail2.evidence.decisions.slice(1));
1574
- for (let i = 0, $$length = each_array_5.length; i < $$length; i++) {
1575
- let d = each_array_5[i];
1576
- const plain = plainStatus("needs-decision", d.text);
1577
- $$renderer3.push(`<li>${escape_html(plain)}`);
1578
- RawDetails($$renderer3, { raw: d.text, plain });
1579
- $$renderer3.push(`<!----></li>`);
1580
- }
1581
- $$renderer3.push(`<!--]--></ul>`);
1582
- } else {
1583
- $$renderer3.push("<!--[-1-->");
1584
- }
1585
- $$renderer3.push(`<!--]--> `);
1586
- if (task2.attention.kind === "decision") {
1587
- $$renderer3.push(`<!--[0--><p class="mt-2 text-xs text-muted-foreground">Answer through Firstmate: it passes your word to the crew.</p>`);
1588
- } else {
1589
- $$renderer3.push("<!--[-1-->");
1590
- }
1591
- $$renderer3.push(`<!--]--></div>`);
1592
- } else {
1593
- $$renderer3.push("<!--[-1-->");
1594
- }
1595
- $$renderer3.push(`<!--]--> `);
1596
- TaskDecisions($$renderer3, { task: task2, now: live.now });
1597
- $$renderer3.push(`<!----> `);
1598
- if (awaitingReview(task2)) {
1599
- $$renderer3.push(`<!--[0--><div class="mt-5">`);
1600
- ReviewPanel($$renderer3, { task: task2, shots: shots() });
1601
- $$renderer3.push(`<!----></div>`);
1602
- } else {
1603
- $$renderer3.push("<!--[-1-->");
1604
- }
1605
- $$renderer3.push(`<!--]--> <div class="mt-6">`);
1606
- StageTrack($$renderer3, { task: task2 });
1607
- $$renderer3.push(`<!----></div> `);
1608
- if (e) {
1609
- $$renderer3.push("<!--[0-->");
1610
- const l = etaLine(e);
1611
- $$renderer3.push(`<button type="button"${attr_class(`mt-4 flex items-center gap-2 text-left text-sm hover:underline ${l.tone === "warning" ? "text-warning" : "text-muted-foreground"}`)}>`);
1612
- Timer($$renderer3, { class: "size-4 shrink-0", "aria-hidden": "true" });
1613
- $$renderer3.push(`<!---->${escape_html(l.text)}</button>`);
1614
- } else {
1615
- $$renderer3.push("<!--[-1-->");
1616
- }
1617
- $$renderer3.push(`<!--]--> <div class="mt-6 flex flex-wrap gap-2">`);
1618
- if (task2.preview) {
1619
- $$renderer3.push("<!--[0-->");
1620
- Button($$renderer3, {
1621
- variant: task2.attention?.owner === "captain" && !task2.pr ? "default" : "outline",
1622
- onclick: () => reveal("preview"),
1623
- children: ($$renderer4) => {
1624
- Monitor_play($$renderer4, {});
1625
- $$renderer4.push(`<!---->Live preview`);
1626
- },
1627
- $$slots: { default: true }
1628
- });
1629
- } else {
1630
- $$renderer3.push("<!--[-1-->");
1631
- }
1632
- $$renderer3.push(`<!--]--> `);
1633
- if (task2.passage.link && task2.passage.link.url !== task2.preview?.url && !awaitingReview(task2)) {
1634
- $$renderer3.push("<!--[0-->");
1635
- Button($$renderer3, {
1636
- variant: "outline",
1637
- href: task2.passage.link.url,
1638
- target: "_blank",
1639
- rel: "noreferrer",
1640
- children: ($$renderer4) => {
1641
- $$renderer4.push(`<!---->${escape_html(task2.passage.link.label)}`);
1642
- External_link($$renderer4, {});
1643
- $$renderer4.push(`<!---->`);
1644
- },
1645
- $$slots: { default: true }
1646
- });
1647
- } else {
1648
- $$renderer3.push("<!--[-1-->");
1649
- }
1650
- $$renderer3.push(`<!--]--> `);
1651
- if (task2.pr) {
1652
- $$renderer3.push("<!--[0-->");
1653
- Button($$renderer3, {
1654
- variant: "outline",
1655
- href: `/tasks/${stringify(encodeURIComponent(task2.id))}/review`,
1656
- children: ($$renderer4) => {
1657
- Compass($$renderer4, {});
1658
- $$renderer4.push(`<!---->Review the pull request`);
1659
- },
1660
- $$slots: { default: true }
1661
- });
1662
- } else {
1663
- $$renderer3.push("<!--[-1-->");
1664
- }
1665
- $$renderer3.push(`<!--]--> `);
1666
- Button($$renderer3, {
1667
- variant: task2.attention?.owner === "captain" && task2.attention.kind === "decision" ? "default" : "outline",
1668
- href: `/?chat=${stringify(encodeURIComponent(task2.id))}`,
1669
- children: ($$renderer4) => {
1670
- Message_square($$renderer4, {});
1671
- $$renderer4.push(`<!---->Ask Firstmate about this`);
1672
- },
1673
- $$slots: { default: true }
1674
- });
1675
- $$renderer3.push(`<!----></div> <dl class="mt-6 grid grid-cols-2 gap-x-6 gap-y-3 border-t pt-5 text-sm"><div><dt class="text-muted-foreground">Pull request</dt> <dd>`);
1676
- if (task2.pr) {
1677
- $$renderer3.push(`<!--[0--><a${attr("href", task2.pr.url)} target="_blank" rel="noreferrer" class="text-sea hover:underline">${escape_html(task2.pr.number ? `#${task2.pr.number}` : "Open")}</a> `);
1678
- if (ev2.pr.available) {
1679
- $$renderer3.push(`<!--[0--><span class="text-muted-foreground">${escape_html(prState(ev2.pr.value.state, ev2.pr.value.draft))}</span>`);
1680
- } else {
1681
- $$renderer3.push("<!--[-1-->");
1682
- }
1683
- $$renderer3.push(`<!--]-->`);
1684
- } else {
1685
- $$renderer3.push(`<!--[-1--><span class="text-muted-foreground">None yet</span>`);
1686
- }
1687
- $$renderer3.push(`<!--]--></dd></div> <div><dt class="text-muted-foreground">Preview</dt> <dd>`);
1688
- if (task2.preview) {
1689
- $$renderer3.push(`<!--[0--><a${attr("href", task2.preview.url)} target="_blank" rel="noreferrer" class="inline-flex items-center gap-1 text-sea hover:underline">Reported ${escape_html(ago(task2.preview.reportedAt, live.now))}`);
1690
- External_link($$renderer3, { class: "size-3", "aria-hidden": "true" });
1691
- $$renderer3.push(`<!----></a>`);
1692
- } else {
1693
- $$renderer3.push(`<!--[-1--><span class="text-muted-foreground">None reported</span>`);
1694
- }
1695
- $$renderer3.push(`<!--]--></dd></div> <div><dt class="text-muted-foreground">Last checked</dt> <dd${attr_class(clsx(task2.current && !task2.current.fresh ? "text-warning" : ""))}>`);
1696
- if (task2.current?.observedAt) {
1697
- $$renderer3.push(`<!--[0-->${escape_html(ago(task2.current.observedAt, live.now))}${escape_html(task2.current.fresh ? "" : " (cached)")}`);
1698
- } else {
1699
- $$renderer3.push(`<!--[-1-->${escape_html(ago(currentFleet()?.collectedAt, live.now))}`);
1700
- }
1701
- $$renderer3.push(`<!--]--></dd></div> `);
1702
- if (task2.worker) {
1703
- $$renderer3.push(`<!--[0--><div><dt class="text-muted-foreground">Delivery</dt> <dd>${escape_html(task2.worker.mode ?? "Unknown")}${escape_html(task2.worker.yolo ? `, yolo ${task2.worker.yolo}` : "")}</dd></div>`);
1704
- } else {
1705
- $$renderer3.push("<!--[-1-->");
1706
- }
1707
- $$renderer3.push(`<!--]--></dl>`);
1708
- }
1709
- function stagesPanel($$renderer3, task2) {
1710
- const runs = task2.runs && task2.runs.runs.length > 1 ? task2.runs : null;
1711
- const run = runs?.runs.find((r) => r.n === shownRun()) ?? null;
1712
- if (runs) {
1713
- $$renderer3.push(`<!--[0--><div class="mb-6">`);
1714
- RunSwitcher($$renderer3, {
1715
- runs,
1716
- selected: shownRun()
1717
- });
1718
- $$renderer3.push(`<!----></div>`);
1719
- } else {
1720
- $$renderer3.push("<!--[-1-->");
1721
- }
1722
- $$renderer3.push(`<!--]--> `);
1723
- if (runs && run && run.n !== runs.current) {
1724
- $$renderer3.push("<!--[0-->");
1725
- PastRun($$renderer3, {
1726
- run,
1727
- runs,
1728
- steps: task2.passage.steps,
1729
- validations: (detail()?.validations ?? []).filter((v) => runAt(runs, v.startedAt) === run.n),
1730
- shots: shots().filter((s) => runAt(runs, s.modifiedAt) === run.n)
1731
- });
1732
- } else {
1733
- $$renderer3.push("<!--[-1-->");
1734
- if (run && run.n > 1) {
1735
- $$renderer3.push(`<!--[0--><div class="mb-6">`);
1736
- ChangeRequests($$renderer3, { run });
1737
- $$renderer3.push(`<!----></div>`);
1738
- } else {
1739
- $$renderer3.push("<!--[-1-->");
1740
- }
1741
- $$renderer3.push(`<!--]--> `);
1742
- currentStages($$renderer3, task2);
1743
- $$renderer3.push(`<!---->`);
1744
- }
1745
- $$renderer3.push(`<!--]-->`);
1746
- }
1747
- function currentStages($$renderer3, task2) {
1748
- const steps = task2.passage.steps;
1749
- const any = steps.filter(hasDetail);
1750
- $$renderer3.push(`<section aria-labelledby="passage"><div class="flex items-baseline justify-between gap-4"><h2 id="passage" class="sr-only">Passage</h2> <p class="text-xs text-muted-foreground">Placed from: ${escape_html(task2.passage.basis)}.</p> `);
1751
- if (any.length > 1) {
1752
- $$renderer3.push("<!--[0-->");
1753
- const allOpen = any.every(isOpen);
1754
- $$renderer3.push(`<button type="button" class="shrink-0 text-xs text-muted-foreground hover:text-foreground hover:underline">${escape_html(allOpen ? "Fold all" : "Open all")}</button>`);
1755
- } else {
1756
- $$renderer3.push("<!--[-1-->");
1757
- }
1758
- $$renderer3.push(`<!--]--></div> <ol class="mt-5"><!--[-->`);
1759
- const each_array_6 = ensure_array_like(steps);
1760
- for (let i = 0, $$length = each_array_6.length; i < $$length; i++) {
1761
- let s = each_array_6[i];
1762
- const done = s.state === "done";
1763
- const now = s.state === "current";
1764
- const finished = now && task2.status === "landed" && !s.failed;
1765
- const open = hasDetail(s) && isOpen(s);
1766
- const gist = open ? null : stepGist(s, task2, ev());
1767
- $$renderer3.push(`<li${attr_class(`relative flex gap-4 ${open ? "pb-8" : "pb-5"}`)}${attr("data-stage", s.key)}${attr("data-open", open)}>`);
1768
- if (i < steps.length - 1) {
1769
- $$renderer3.push(`<!--[0--><span${attr_class(`absolute top-7 bottom-0 left-[11px] ${done ? "w-0.5 bg-foreground/40" : "w-0 border-l border-dotted border-input"}`)}></span>`);
1770
- } else {
1771
- $$renderer3.push("<!--[-1-->");
1772
- }
1773
- $$renderer3.push(`<!--]--> <span${attr_class(`relative z-10 mt-0.5 grid size-6 shrink-0 place-items-center rounded-full text-xs font-medium ${done ? "bg-foreground text-background" : now ? t() === "trouble" || s.failed ? "bg-danger text-white" : t() === "you" ? "bg-sea text-white dark:text-slate-950" : finished ? "bg-success text-white dark:text-slate-950" : "bg-foreground text-background ring-4 ring-foreground/15" : s.state === "skipped" ? "border border-dashed bg-background text-muted-foreground" : "border bg-background text-muted-foreground"}`)}>`);
1774
- if (now && !finished && task2.busy) {
1775
- $$renderer3.push("<!--[0-->");
1776
- BusyRing($$renderer3, { class: "bg-foreground" });
1777
- } else {
1778
- $$renderer3.push("<!--[-1-->");
1779
- }
1780
- $$renderer3.push(`<!--]--> `);
1781
- if (done || finished) {
1782
- $$renderer3.push("<!--[0-->");
1783
- Check($$renderer3, { class: "size-3.5", "aria-hidden": "true" });
1784
- } else if (s.failed) {
1785
- $$renderer3.push("<!--[1-->");
1786
- X($$renderer3, { class: "size-3.5", "aria-hidden": "true" });
1787
- } else {
1788
- $$renderer3.push(`<!--[-1-->${escape_html(i + 1)}`);
1789
- }
1790
- $$renderer3.push(`<!--]--></span> <div class="min-w-0 flex-1"><button type="button" class="group flex w-full min-w-0 items-baseline gap-2 rounded-md text-left disabled:cursor-default"${attr("disabled", !hasDetail(s), true)}${attr("aria-expanded", hasDetail(s) ? open : void 0)}${attr("aria-controls", hasDetail(s) ? `stage-${s.key}` : void 0)}><span${attr_class(`shrink-0 font-display text-[1.12rem] font-medium group-enabled:group-hover:underline ${s.state === "upcoming" || s.state === "skipped" ? "text-muted-foreground italic" : ""}`)}>${escape_html(s.label)}</span> `);
1791
- if (s.state === "skipped") {
1792
- $$renderer3.push(`<!--[0--><span class="shrink-0 text-sm text-muted-foreground">skipped</span>`);
1793
- } else {
1794
- $$renderer3.push("<!--[-1-->");
1795
- }
1796
- $$renderer3.push(`<!--]--> `);
1797
- if (now && s.failed) {
1798
- $$renderer3.push(`<!--[0--><span class="shrink-0 text-sm text-danger">failed</span>`);
1799
- } else if (now && !finished) {
1800
- $$renderer3.push(`<!--[1--><span${attr_class(`shrink-0 text-sm ${stringify(t() === "normal" || t() === "landed" ? "text-muted-foreground" : textClass[t()])}`)}>${escape_html(t() === "trouble" ? `${task2.statusLabel.toLowerCase()} here` : t() === "you" ? "waiting on you" : t() === "firstmate" ? "waiting on Firstmate" : task2.status === "done" ? "finished, with Firstmate" : "in progress")}</span>`);
1801
- } else {
1802
- $$renderer3.push("<!--[-1-->");
1803
- }
1804
- $$renderer3.push(`<!--]--> `);
1805
- if (gist) {
1806
- $$renderer3.push(`<!--[0--><span class="min-w-0 truncate text-sm text-muted-foreground"${attr("title", gist)}>· ${escape_html(gist)}</span>`);
1807
- } else {
1808
- $$renderer3.push("<!--[-1-->");
1809
- }
1810
- $$renderer3.push(`<!--]--> `);
1811
- if (hasDetail(s)) {
1812
- $$renderer3.push("<!--[0-->");
1813
- Chevron_right($$renderer3, {
1814
- class: `ml-auto size-4 shrink-0 self-center text-muted-foreground transition-transform ${open ? "rotate-90" : ""}`,
1815
- "aria-hidden": "true"
1816
- });
1817
- } else {
1818
- $$renderer3.push("<!--[-1-->");
1819
- }
1820
- $$renderer3.push(`<!--]--></button> `);
1821
- if (open) {
1822
- $$renderer3.push(`<!--[0--><div${attr("id", `stage-${stringify(s.key)}`)}>`);
1823
- if (s.note) {
1824
- $$renderer3.push(`<!--[0--><p class="mt-1 text-xs text-muted-foreground">`);
1825
- LinkedText($$renderer3, { text: s.note });
1826
- $$renderer3.push(`<!----></p>`);
1827
- } else {
1828
- $$renderer3.push("<!--[-1-->");
1829
- }
1830
- $$renderer3.push(`<!--]--> `);
1831
- if (done || now) {
1832
- $$renderer3.push(`<!--[0--><div class="mt-3 space-y-4"><!--[-->`);
1833
- const each_array_7 = ensure_array_like(s.evidence);
1834
- for (let $$index_6 = 0, $$length2 = each_array_7.length; $$index_6 < $$length2; $$index_6++) {
1835
- let id2 = each_array_7[$$index_6];
1836
- blockFor(id2)?.($$renderer3, s, id2);
1837
- $$renderer3.push(`<!---->`);
1838
- }
1839
- $$renderer3.push(`<!--]--> <!--[-->`);
1840
- const each_array_8 = ensure_array_like(stepEntries(s.key));
1841
- for (let $$index_7 = 0, $$length2 = each_array_8.length; $$index_7 < $$length2; $$index_7++) {
1842
- let e = each_array_8[$$index_7];
1843
- $$renderer3.push(`<div data-slot="step.evidence"><h4 class="mb-2 text-sm font-medium">${escape_html(e.title)}</h4> `);
1844
- SlotContent($$renderer3, { entry: e, now: live.now });
1845
- $$renderer3.push(`<!----></div>`);
1846
- }
1847
- $$renderer3.push(`<!--]--></div>`);
1848
- } else {
1849
- $$renderer3.push("<!--[-1-->");
1850
- }
1851
- $$renderer3.push(`<!--]--></div>`);
1852
- } else {
1853
- $$renderer3.push("<!--[-1-->");
1854
- }
1855
- $$renderer3.push(`<!--]--> <!--[-->`);
1856
- const each_array_9 = ensure_array_like(taskSections().afterStep[s.key] ?? []);
1857
- for (let $$index_8 = 0, $$length2 = each_array_9.length; $$index_8 < $$length2; $$index_8++) {
1858
- let e = each_array_9[$$index_8];
1859
- $$renderer3.push(`<div class="mt-4">`);
1860
- pluginSection($$renderer3, e);
1861
- $$renderer3.push(`<!----></div>`);
1862
- }
1863
- $$renderer3.push(`<!--]--></div></li>`);
1864
- }
1865
- $$renderer3.push(`<!--]--></ol></section>`);
1866
- }
1867
- function previewPanel($$renderer3, task2) {
1868
- if (task2.preview) {
1869
- $$renderer3.push(`<!--[0--><section aria-labelledby="live-preview"><h2 id="live-preview" class="sr-only">Live preview</h2> `);
1870
- if (active() === "preview" && !full()) {
1871
- $$renderer3.push("<!--[0-->");
1872
- LivePreview($$renderer3, {
1873
- taskId: task2.id,
1874
- feedback: task2.status !== "landed",
1875
- onfullscreen: () => show("preview", true)
1876
- });
1877
- } else {
1878
- $$renderer3.push("<!--[-1-->");
1879
- }
1880
- $$renderer3.push(`<!--]--></section>`);
1881
- } else {
1882
- $$renderer3.push("<!--[-1-->");
1883
- }
1884
- $$renderer3.push(`<!--]-->`);
1885
- }
1886
- function screenshotsPanel($$renderer3) {
1887
- if (shots().length) {
1888
- $$renderer3.push(`<!--[0--><div class="flex flex-wrap gap-4"><!--[-->`);
1889
- const each_array_10 = ensure_array_like(shots());
1890
- for (let i = 0, $$length = each_array_10.length; i < $$length; i++) {
1891
- let s = each_array_10[i];
1892
- $$renderer3.push(`<button type="button" class="w-48 shrink-0 cursor-zoom-in text-left"${attr("aria-label", `Enlarge ${stringify(s.name)}`)}><img${attr("src", s.url)}${attr("alt", s.name)} loading="lazy" class="aspect-[16/10] w-full rounded-lg border object-cover object-top"/> <p class="mt-1.5 truncate text-xs text-muted-foreground">${escape_html(s.name)}${escape_html(s.modifiedAt ? ` · ${ago(s.modifiedAt, live.now)}` : "")}</p></button>`);
1893
- }
1894
- $$renderer3.push(`<!--]--></div> `);
1895
- if (ev()) {
1896
- $$renderer3.push("<!--[0-->");
1897
- source($$renderer3, ev().screenshots);
1898
- } else {
1899
- $$renderer3.push("<!--[-1-->");
1900
- }
1901
- $$renderer3.push(`<!--]-->`);
1902
- } else {
1903
- $$renderer3.push(`<!--[-1--><div class="grid min-h-60 place-items-center rounded-xl border border-dashed bg-muted/30 p-6 text-center text-muted-foreground"><div>`);
1904
- Image_off($$renderer3, { class: "mx-auto size-6", "aria-hidden": "true" });
1905
- $$renderer3.push(`<!----> <p class="mt-2 text-sm font-medium">No screenshots saved</p> <p class="mt-1 text-xs">${escape_html(ev() && !ev().screenshots.available ? ev().screenshots.reason : "The worker has not saved any screenshots for this task.")}</p></div></div>`);
1906
- }
1907
- $$renderer3.push(`<!--]-->`);
1908
- }
1909
- function logPanel($$renderer3, task2, detail2) {
1910
- $$renderer3.push(`<section class="max-w-3xl space-y-4" aria-labelledby="ships-log"><div class="rounded-xl border"><div class="flex flex-wrap items-baseline gap-x-2 px-4 py-3 text-sm"><h2 id="ships-log" class="font-display text-[1.2rem] font-medium tracking-[0.1em] text-muted-foreground [font-variant-caps:all-small-caps]">Ship’s log</h2> <span class="text-muted-foreground">what the crew reported, oldest first (history, not current state)</span></div> <div class="border-t p-4">`);
1911
- if (detail2.timeline.available) {
1912
- $$renderer3.push(`<!--[0--><ol class="space-y-2 text-sm"><!--[-->`);
1913
- const each_array_14 = ensure_array_like(detail2.timeline.value);
1914
- for (let i = 0, $$length = each_array_14.length; i < $$length; i++) {
1915
- let e = each_array_14[i];
1916
- const plain = e.kind === "status" ? plainStatus(e.state, e.text) : null;
1917
- $$renderer3.push(`<li class="grid grid-cols-[5.5rem_minmax(0,1fr)] gap-3"><time class="tabular text-xs text-muted-foreground"${attr("datetime", e.at)}${attr("title", e.at)}>${escape_html(clock(e.at))}</time> <div class="min-w-0 break-words">`);
1918
- if (plain) {
1919
- $$renderer3.push(`<!--[0--><p>${escape_html(plain)}</p> `);
1920
- RawDetails($$renderer3, {
1921
- raw: e.state ? `${e.state}: ${e.text.trim()}` : e.text,
1922
- plain
1923
- });
1924
- $$renderer3.push(`<!---->`);
1925
- } else {
1926
- $$renderer3.push(`<!--[-1--><p>${escape_html(entryText(e))}</p>`);
1927
- }
1928
- $$renderer3.push(`<!--]--></div></li>`);
1929
- }
1930
- $$renderer3.push(`<!--]--></ol> `);
1931
- source($$renderer3, detail2.timeline);
1932
- $$renderer3.push(`<!---->`);
1933
- } else {
1934
- $$renderer3.push("<!--[-1-->");
1935
- unavailable($$renderer3, detail2.timeline);
1936
- }
1937
- $$renderer3.push(`<!--]--></div></div> `);
1938
- OutputInspector($$renderer3, { task: task2, live: active() === "log" });
1939
- $$renderer3.push(`<!----> `);
1940
- if (detail2.gaps.length) {
1941
- $$renderer3.push(`<!--[0--><div class="rounded-xl border border-dashed p-4 text-sm"><p class="font-medium">Not available yet</p> <ul class="mt-2 list-disc space-y-1 pl-5 text-muted-foreground"><!--[-->`);
1942
- const each_array_15 = ensure_array_like(detail2.gaps);
1943
- for (let $$index_15 = 0, $$length = each_array_15.length; $$index_15 < $$length; $$index_15++) {
1944
- let g = each_array_15[$$index_15];
1945
- $$renderer3.push(`<li>${escape_html(g)}</li>`);
1946
- }
1947
- $$renderer3.push(`<!--]--></ul></div>`);
1948
- } else {
1949
- $$renderer3.push("<!--[-1-->");
1950
- }
1951
- $$renderer3.push(`<!--]--></section>`);
1952
- }
1953
- let $$settled = true;
1954
- let $$inner_renderer;
1955
- function $$render_inner($$renderer3) {
1956
- head("13zy71l", $$renderer3, ($$renderer4) => {
1957
- $$renderer4.title(($$renderer5) => {
1958
- $$renderer5.push(`<title>${escape_html(task()?.title ?? id())} · Wheelhouse</title>`);
1959
- });
1960
- });
1961
- $$renderer3.push(`<main${attr_class(`px-4 pt-4 pb-20 sm:px-6 ${task() && ev() && detail() ? "lg:p-0" : "lg:px-10"}`)}>`);
1962
- if (!task() || !ev() || !detail()) {
1963
- $$renderer3.push(`<!--[0--><a${attr("href", back())} class="inline-flex items-center gap-1.5 text-sm text-muted-foreground hover:text-foreground">`);
1964
- Arrow_left($$renderer3, { class: "size-4", "aria-hidden": "true" });
1965
- $$renderer3.push(`<!---->Harbour</a> <p class="surface mt-6 max-w-3xl p-6 text-muted-foreground">${escape_html(data.problem ?? "Loading…")}</p>`);
1966
- } else {
1967
- $$renderer3.push(`<!--[-1--><div class="flex flex-col gap-8 lg:flex-row lg:items-start lg:gap-0">`);
1968
- ResizableRail($$renderer3, {
1969
- storageKey: "wheelhouse-task-overview-width",
1970
- label: "Resize the overview",
1971
- defaultWidth: 416,
1972
- side: "left",
1973
- class: "bg-panel max-lg:!w-auto max-lg:border-0 max-lg:bg-transparent lg:sticky lg:top-14 lg:h-[calc(100dvh-3.5rem)] max-lg:[&>[role=separator]]:hidden",
1974
- children: ($$renderer4) => {
1975
- $$renderer4.push(`<aside class="no-scrollbar min-w-0 rounded-lg border bg-panel px-6 pt-1 pb-6 lg:h-full lg:overflow-y-auto lg:rounded-none lg:border-0 lg:pt-0" aria-label="Overview"><div class="-mx-6 flex h-11 items-center border-b px-6 max-lg:mx-0 max-lg:border-0 max-lg:px-0"><a${attr("href", back())} class="inline-flex items-center gap-1.5 text-sm text-muted-foreground hover:text-foreground">`);
1976
- Arrow_left($$renderer4, { class: "size-4", "aria-hidden": "true" });
1977
- $$renderer4.push(`<!---->Harbour</a></div> `);
1978
- overview($$renderer4, task(), ev(), detail());
1979
- $$renderer4.push(`<!----> `);
1980
- if (consoleInImage(task())) {
1981
- $$renderer4.push(`<!--[0--><section class="mt-6 border-t pt-5" aria-labelledby="live-terminal" data-terminal=""><h2 id="live-terminal" class="text-sm font-medium"><button type="button" class="group flex w-full items-center gap-2 text-left"${attr("aria-expanded", terminalOpen)} aria-controls="live-terminal-body"><span class="group-hover:underline">Live terminal</span> `);
1982
- Chevron_right($$renderer4, {
1983
- class: `ml-auto size-4 shrink-0 text-muted-foreground transition-transform ${"rotate-90"}`,
1984
- "aria-hidden": "true"
1985
- });
1986
- $$renderer4.push(`<!----></button></h2> `);
1987
- {
1988
- $$renderer4.push(`<!--[0--><div id="live-terminal-body" class="mt-3">`);
1989
- ConsoleWindow($$renderer4, { task: task(), lines: 12, class: "rounded-xl" });
1990
- $$renderer4.push(`<!----></div>`);
1991
- }
1992
- $$renderer4.push(`<!--]--></section>`);
1993
- } else {
1994
- $$renderer4.push("<!--[-1-->");
1995
- }
1996
- $$renderer4.push(`<!--]--> `);
1997
- if (hasTime(task(), detail())) {
1998
- $$renderer4.push(`<!--[0--><div class="mt-6 scroll-mt-20 border-t pt-5" data-time="">`);
1999
- timePanel($$renderer4, task(), detail());
2000
- $$renderer4.push(`<!----></div>`);
2001
- } else {
2002
- $$renderer4.push("<!--[-1-->");
2003
- }
2004
- $$renderer4.push(`<!--]--></aside>`);
2005
- }
2006
- });
2007
- $$renderer3.push(`<!----> <div class="surface min-w-0 flex-1 scroll-mt-14 px-5 pb-8 sm:px-6 lg:mx-10 lg:mt-4 lg:mb-20"><div class="sticky top-14 z-20 -mx-5 rounded-t-lg bg-card px-5 pt-1 sm:-mx-6 sm:px-6"><div class="no-scrollbar flex items-center gap-1 overflow-x-auto border-b" role="tablist" aria-label="Task detail"><!--[-->`);
2008
- const each_array_16 = ensure_array_like(tabs());
2009
- for (let i = 0, $$length = each_array_16.length; i < $$length; i++) {
2010
- let tab = each_array_16[i];
2011
- $$renderer3.push(`<button type="button" role="tab"${attr("id", `tab-${stringify(tab.id)}`)}${attr("aria-selected", active() === tab.id)}${attr("aria-controls", `panel-${stringify(tab.id)}`)}${attr("tabindex", active() === tab.id ? 0 : -1)}${attr_class(`-mb-px inline-flex shrink-0 items-center gap-1.5 border-b-2 px-3 py-2.5 text-base font-semibold tracking-[0.1em] whitespace-nowrap transition-colors [font-variant-caps:all-small-caps] ${active() === tab.id ? "border-brass text-foreground" : "border-transparent text-muted-foreground hover:text-foreground"}`)}>${escape_html(tab.label)}`);
2012
- if (tab.count) {
2013
- $$renderer3.push(`<!--[0--><span class="rounded-full bg-muted px-1.5 text-xs text-muted-foreground tabular-nums">${escape_html(tab.count)}</span>`);
2014
- } else {
2015
- $$renderer3.push("<!--[-1-->");
2016
- }
2017
- $$renderer3.push(`<!--]--></button>`);
2018
- }
2019
- $$renderer3.push(`<!--]--></div></div> <!--[-->`);
2020
- const each_array_17 = ensure_array_like(tabs());
2021
- for (let $$index_17 = 0, $$length = each_array_17.length; $$index_17 < $$length; $$index_17++) {
2022
- let tab = each_array_17[$$index_17];
2023
- $$renderer3.push(`<div${attr("id", `panel-${stringify(tab.id)}`)} role="tabpanel"${attr("aria-labelledby", `tab-${stringify(tab.id)}`)} tabindex="0" class="pt-6 outline-none"${attr("hidden", active() !== tab.id)}>`);
2024
- if (tab.id === "stages") {
2025
- $$renderer3.push("<!--[0-->");
2026
- stagesPanel($$renderer3, task());
2027
- } else if (tab.id === "preview") {
2028
- $$renderer3.push("<!--[1-->");
2029
- previewPanel($$renderer3, task());
2030
- } else if (tab.id === "screenshots") {
2031
- $$renderer3.push("<!--[2-->");
2032
- screenshotsPanel($$renderer3);
2033
- } else if (tab.id === "log") {
2034
- $$renderer3.push("<!--[3-->");
2035
- logPanel($$renderer3, task(), detail());
2036
- } else if (tab.id === "talk") {
2037
- $$renderer3.push("<!--[4-->");
2038
- ConversationPanel($$renderer3, { talk: detail().build.conversation, now: live.now });
2039
- } else if (tab.id === "checks") {
2040
- $$renderer3.push("<!--[5-->");
2041
- ChecksReport($$renderer3, { checks: detail().build.checks, taskId: task().id });
2042
- } else if (tab.id === "docs") {
2043
- $$renderer3.push("<!--[6-->");
2044
- DocsPanel($$renderer3, { docs: detail().build.docs, taskId: task().id });
2045
- } else {
2046
- $$renderer3.push("<!--[-1-->");
2047
- const entry = pluginTabs().find((e) => `plugin:${e.key}` === tab.id);
2048
- if (entry) {
2049
- $$renderer3.push("<!--[0-->");
2050
- pluginSection($$renderer3, entry);
2051
- } else {
2052
- $$renderer3.push("<!--[-1-->");
2053
- }
2054
- $$renderer3.push(`<!--]-->`);
2055
- }
2056
- $$renderer3.push(`<!--]--></div>`);
2057
- }
2058
- $$renderer3.push(`<!--]--></div></div> `);
2059
- if (full() && task().preview) {
2060
- $$renderer3.push("<!--[0-->");
2061
- PreviewStudio($$renderer3, {
2062
- taskId: task().id,
2063
- title: task().title,
2064
- url: task().preview.url,
2065
- feedback: task().status !== "landed",
2066
- onclose: () => show("preview")
2067
- });
2068
- } else {
2069
- $$renderer3.push("<!--[-1-->");
2070
- }
2071
- $$renderer3.push(`<!--]--> `);
2072
- Lightbox($$renderer3, {
2073
- shots: shots(),
2074
- get index() {
2075
- return shotIndex;
2076
- },
2077
- set index($$value) {
2078
- shotIndex = $$value;
2079
- $$settled = false;
2080
- }
2081
- });
2082
- $$renderer3.push(`<!----> `);
2083
- DiffDialog($$renderer3, {
2084
- taskId: task().id,
2085
- get file() {
2086
- return diffFile;
2087
- },
2088
- set file($$value) {
2089
- diffFile = $$value;
2090
- $$settled = false;
2091
- }
2092
- });
2093
- $$renderer3.push(`<!---->`);
2094
- }
2095
- $$renderer3.push(`<!--]--></main>`);
2096
- }
2097
- do {
2098
- $$settled = true;
2099
- $$inner_renderer = $$renderer2.copy();
2100
- $$render_inner($$inner_renderer);
2101
- } while (!$$settled);
2102
- $$renderer2.subsume($$inner_renderer);
2103
- });
2104
- }
2105
-
2106
- export { _page as default };
2107
- //# sourceMappingURL=_page.svelte.js-LgJMZ2RE.js.map