@chrisjowen/wheelhouse 0.0.0-stage → 0.1.0

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 (528) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +112 -2
  3. package/build/client/_app/immutable/assets/0.DaQhCSel.css +1 -0
  4. package/build/client/_app/immutable/assets/0.DaQhCSel.css.br +0 -0
  5. package/build/client/_app/immutable/assets/0.DaQhCSel.css.gz +0 -0
  6. package/build/client/_app/immutable/assets/12.DT1C9nmd.css +1 -0
  7. package/build/client/_app/immutable/assets/12.DT1C9nmd.css.br +0 -0
  8. package/build/client/_app/immutable/assets/12.DT1C9nmd.css.gz +0 -0
  9. package/build/client/_app/immutable/assets/14.CjNfSPQ6.css +1 -0
  10. package/build/client/_app/immutable/assets/14.CjNfSPQ6.css.br +0 -0
  11. package/build/client/_app/immutable/assets/14.CjNfSPQ6.css.gz +0 -0
  12. package/build/client/_app/immutable/assets/15.KLSHp5Yu.css +1 -0
  13. package/build/client/_app/immutable/assets/15.KLSHp5Yu.css.br +0 -0
  14. package/build/client/_app/immutable/assets/15.KLSHp5Yu.css.gz +0 -0
  15. package/build/client/_app/immutable/assets/2.DvyEOdRq.css +1 -0
  16. package/build/client/_app/immutable/assets/2.DvyEOdRq.css.br +0 -0
  17. package/build/client/_app/immutable/assets/2.DvyEOdRq.css.gz +0 -0
  18. package/build/client/_app/immutable/assets/4.5dJKCkOT.css +1 -0
  19. package/build/client/_app/immutable/assets/4.5dJKCkOT.css.br +0 -0
  20. package/build/client/_app/immutable/assets/4.5dJKCkOT.css.gz +0 -0
  21. package/build/client/_app/immutable/assets/MicButton.Dga9zAug.css +1 -0
  22. package/build/client/_app/immutable/assets/MicButton.Dga9zAug.css.br +2 -0
  23. package/build/client/_app/immutable/assets/MicButton.Dga9zAug.css.gz +0 -0
  24. package/build/client/_app/immutable/assets/inter-cyrillic-ext-wght-italic.B5xAaiFk.woff2 +0 -0
  25. package/build/client/_app/immutable/assets/inter-cyrillic-ext-wght-normal.BOeWTOD4.woff2 +0 -0
  26. package/build/client/_app/immutable/assets/inter-cyrillic-wght-italic.DzZdc28x.woff2 +0 -0
  27. package/build/client/_app/immutable/assets/inter-cyrillic-wght-normal.DqGufNeO.woff2 +0 -0
  28. package/build/client/_app/immutable/assets/inter-greek-ext-wght-italic.DcOpz6Lw.woff2 +0 -0
  29. package/build/client/_app/immutable/assets/inter-greek-ext-wght-normal.DlzME5K_.woff2 +0 -0
  30. package/build/client/_app/immutable/assets/inter-greek-wght-italic.CILZdfAp.woff2 +0 -0
  31. package/build/client/_app/immutable/assets/inter-greek-wght-normal.CkhJZR-_.woff2 +0 -0
  32. package/build/client/_app/immutable/assets/inter-latin-ext-wght-italic.0pjOp8NU.woff2 +0 -0
  33. package/build/client/_app/immutable/assets/inter-latin-ext-wght-normal.DO1Apj_S.woff2 +0 -0
  34. package/build/client/_app/immutable/assets/inter-latin-wght-italic.DpCbqKDY.woff2 +0 -0
  35. package/build/client/_app/immutable/assets/inter-latin-wght-normal.Dx4kXJAl.woff2 +0 -0
  36. package/build/client/_app/immutable/assets/inter-vietnamese-wght-italic.K3WlGtc8.woff2 +0 -0
  37. package/build/client/_app/immutable/assets/inter-vietnamese-wght-normal.CBcvBZtf.woff2 +0 -0
  38. package/build/client/_app/immutable/assets/jetbrains-mono-cyrillic-wght-normal.D73BlboJ.woff2 +0 -0
  39. package/build/client/_app/immutable/assets/jetbrains-mono-greek-wght-normal.Bw9x6K1M.woff2 +0 -0
  40. package/build/client/_app/immutable/assets/jetbrains-mono-latin-ext-wght-normal.DBQx-q_a.woff2 +0 -0
  41. package/build/client/_app/immutable/assets/jetbrains-mono-latin-wght-normal.B9CIFXIH.woff2 +0 -0
  42. package/build/client/_app/immutable/assets/jetbrains-mono-vietnamese-wght-normal.Bt-aOZkq.woff2 +0 -0
  43. package/build/client/_app/immutable/assets/newsreader-latin-ext-wght-italic.DFS986qL.woff2 +0 -0
  44. package/build/client/_app/immutable/assets/newsreader-latin-ext-wght-normal.C-3rgBeH.woff2 +0 -0
  45. package/build/client/_app/immutable/assets/newsreader-latin-wght-italic.Bxi8ein9.woff2 +0 -0
  46. package/build/client/_app/immutable/assets/newsreader-latin-wght-normal.CCVVNp6i.woff2 +0 -0
  47. package/build/client/_app/immutable/assets/newsreader-vietnamese-wght-italic.xAqemagA.woff2 +0 -0
  48. package/build/client/_app/immutable/assets/newsreader-vietnamese-wght-normal.Czsa-EzN.woff2 +0 -0
  49. package/build/client/_app/immutable/chunks/36FDwM1G.js +1 -0
  50. package/build/client/_app/immutable/chunks/36FDwM1G.js.br +0 -0
  51. package/build/client/_app/immutable/chunks/36FDwM1G.js.gz +0 -0
  52. package/build/client/_app/immutable/chunks/B-qIQCd3.js +16 -0
  53. package/build/client/_app/immutable/chunks/B-qIQCd3.js.br +0 -0
  54. package/build/client/_app/immutable/chunks/B-qIQCd3.js.gz +0 -0
  55. package/build/client/_app/immutable/chunks/B1XxiJam.js +1 -0
  56. package/build/client/_app/immutable/chunks/B1XxiJam.js.br +0 -0
  57. package/build/client/_app/immutable/chunks/B1XxiJam.js.gz +0 -0
  58. package/build/client/_app/immutable/chunks/B2wEHue2.js +1 -0
  59. package/build/client/_app/immutable/chunks/B2wEHue2.js.br +0 -0
  60. package/build/client/_app/immutable/chunks/B2wEHue2.js.gz +0 -0
  61. package/build/client/_app/immutable/chunks/BAurN1n6.js +2 -0
  62. package/build/client/_app/immutable/chunks/BAurN1n6.js.br +0 -0
  63. package/build/client/_app/immutable/chunks/BAurN1n6.js.gz +0 -0
  64. package/build/client/_app/immutable/chunks/BEAYWcbT.js +1 -0
  65. package/build/client/_app/immutable/chunks/BEAYWcbT.js.br +0 -0
  66. package/build/client/_app/immutable/chunks/BEAYWcbT.js.gz +0 -0
  67. package/build/client/_app/immutable/chunks/BGINfGsV.js +1 -0
  68. package/build/client/_app/immutable/chunks/BGINfGsV.js.br +4 -0
  69. package/build/client/_app/immutable/chunks/BGINfGsV.js.gz +0 -0
  70. package/build/client/_app/immutable/chunks/BHsdHLbF.js +1 -0
  71. package/build/client/_app/immutable/chunks/BHsdHLbF.js.br +0 -0
  72. package/build/client/_app/immutable/chunks/BHsdHLbF.js.gz +0 -0
  73. package/build/client/_app/immutable/chunks/BR5v76-T.js +1 -0
  74. package/build/client/_app/immutable/chunks/BR5v76-T.js.br +0 -0
  75. package/build/client/_app/immutable/chunks/BR5v76-T.js.gz +0 -0
  76. package/build/client/_app/immutable/chunks/BUo4hMcM.js +1 -0
  77. package/build/client/_app/immutable/chunks/BUo4hMcM.js.br +0 -0
  78. package/build/client/_app/immutable/chunks/BUo4hMcM.js.gz +0 -0
  79. package/build/client/_app/immutable/chunks/BVVO3JPx.js +1 -0
  80. package/build/client/_app/immutable/chunks/BVVO3JPx.js.br +0 -0
  81. package/build/client/_app/immutable/chunks/BVVO3JPx.js.gz +0 -0
  82. package/build/client/_app/immutable/chunks/BXN538J3.js +1 -0
  83. package/build/client/_app/immutable/chunks/BXN538J3.js.br +2 -0
  84. package/build/client/_app/immutable/chunks/BXN538J3.js.gz +0 -0
  85. package/build/client/_app/immutable/chunks/BZm5e4fE.js +1 -0
  86. package/build/client/_app/immutable/chunks/BZm5e4fE.js.br +0 -0
  87. package/build/client/_app/immutable/chunks/BZm5e4fE.js.gz +0 -0
  88. package/build/client/_app/immutable/chunks/Bfi4vm-w.js +1 -0
  89. package/build/client/_app/immutable/chunks/Bfi4vm-w.js.br +0 -0
  90. package/build/client/_app/immutable/chunks/Bfi4vm-w.js.gz +0 -0
  91. package/build/client/_app/immutable/chunks/BiTivU7x.js +1 -0
  92. package/build/client/_app/immutable/chunks/BiTivU7x.js.br +0 -0
  93. package/build/client/_app/immutable/chunks/BiTivU7x.js.gz +0 -0
  94. package/build/client/_app/immutable/chunks/BiuLIp4b.js +1 -0
  95. package/build/client/_app/immutable/chunks/BiuLIp4b.js.br +0 -0
  96. package/build/client/_app/immutable/chunks/BiuLIp4b.js.gz +0 -0
  97. package/build/client/_app/immutable/chunks/Bns_F-QV.js +1 -0
  98. package/build/client/_app/immutable/chunks/Bns_F-QV.js.br +0 -0
  99. package/build/client/_app/immutable/chunks/Bns_F-QV.js.gz +0 -0
  100. package/build/client/_app/immutable/chunks/Brlpgp90.js +1 -0
  101. package/build/client/_app/immutable/chunks/Brlpgp90.js.br +0 -0
  102. package/build/client/_app/immutable/chunks/Brlpgp90.js.gz +0 -0
  103. package/build/client/_app/immutable/chunks/BunkbzFG.js +1 -0
  104. package/build/client/_app/immutable/chunks/BunkbzFG.js.br +0 -0
  105. package/build/client/_app/immutable/chunks/BunkbzFG.js.gz +0 -0
  106. package/build/client/_app/immutable/chunks/BwOfqJw9.js +1 -0
  107. package/build/client/_app/immutable/chunks/BwOfqJw9.js.br +0 -0
  108. package/build/client/_app/immutable/chunks/BwOfqJw9.js.gz +0 -0
  109. package/build/client/_app/immutable/chunks/C-xrRA1Y.js +1 -0
  110. package/build/client/_app/immutable/chunks/C-xrRA1Y.js.br +0 -0
  111. package/build/client/_app/immutable/chunks/C-xrRA1Y.js.gz +0 -0
  112. package/build/client/_app/immutable/chunks/C2_XZrIO.js +7 -0
  113. package/build/client/_app/immutable/chunks/C2_XZrIO.js.br +0 -0
  114. package/build/client/_app/immutable/chunks/C2_XZrIO.js.gz +0 -0
  115. package/build/client/_app/immutable/chunks/C2d4bDYU.js +1 -0
  116. package/build/client/_app/immutable/chunks/C2d4bDYU.js.br +0 -0
  117. package/build/client/_app/immutable/chunks/C2d4bDYU.js.gz +0 -0
  118. package/build/client/_app/immutable/chunks/C6BQPSOs.js +62 -0
  119. package/build/client/_app/immutable/chunks/C6BQPSOs.js.br +0 -0
  120. package/build/client/_app/immutable/chunks/C6BQPSOs.js.gz +0 -0
  121. package/build/client/_app/immutable/chunks/CDphfOBv.js +1 -0
  122. package/build/client/_app/immutable/chunks/CDphfOBv.js.br +0 -0
  123. package/build/client/_app/immutable/chunks/CDphfOBv.js.gz +0 -0
  124. package/build/client/_app/immutable/chunks/CHoQMvOZ.js +1 -0
  125. package/build/client/_app/immutable/chunks/CHoQMvOZ.js.br +0 -0
  126. package/build/client/_app/immutable/chunks/CHoQMvOZ.js.gz +0 -0
  127. package/build/client/_app/immutable/chunks/CIE0U5Ih.js +1 -0
  128. package/build/client/_app/immutable/chunks/CIE0U5Ih.js.br +0 -0
  129. package/build/client/_app/immutable/chunks/CIE0U5Ih.js.gz +0 -0
  130. package/build/client/_app/immutable/chunks/CLs9Rkbg.js +1 -0
  131. package/build/client/_app/immutable/chunks/CLs9Rkbg.js.br +0 -0
  132. package/build/client/_app/immutable/chunks/CLs9Rkbg.js.gz +0 -0
  133. package/build/client/_app/immutable/chunks/COQ3aAYj.js +1 -0
  134. package/build/client/_app/immutable/chunks/COQ3aAYj.js.br +0 -0
  135. package/build/client/_app/immutable/chunks/COQ3aAYj.js.gz +0 -0
  136. package/build/client/_app/immutable/chunks/COiIt96y.js +1 -0
  137. package/build/client/_app/immutable/chunks/COiIt96y.js.br +0 -0
  138. package/build/client/_app/immutable/chunks/COiIt96y.js.gz +0 -0
  139. package/build/client/_app/immutable/chunks/CQ7gIAH8.js +1 -0
  140. package/build/client/_app/immutable/chunks/CQ7gIAH8.js.br +2 -0
  141. package/build/client/_app/immutable/chunks/CQ7gIAH8.js.gz +0 -0
  142. package/build/client/_app/immutable/chunks/CQlHU-Rx.js +1 -0
  143. package/build/client/_app/immutable/chunks/CQlHU-Rx.js.br +0 -0
  144. package/build/client/_app/immutable/chunks/CQlHU-Rx.js.gz +0 -0
  145. package/build/client/_app/immutable/chunks/CR7y1ULG.js +1 -0
  146. package/build/client/_app/immutable/chunks/CR7y1ULG.js.br +0 -0
  147. package/build/client/_app/immutable/chunks/CR7y1ULG.js.gz +0 -0
  148. package/build/client/_app/immutable/chunks/CXfdgbLv.js +1 -0
  149. package/build/client/_app/immutable/chunks/CXfdgbLv.js.br +0 -0
  150. package/build/client/_app/immutable/chunks/CXfdgbLv.js.gz +0 -0
  151. package/build/client/_app/immutable/chunks/CeYIQAXD.js +1 -0
  152. package/build/client/_app/immutable/chunks/CeYIQAXD.js.br +0 -0
  153. package/build/client/_app/immutable/chunks/CeYIQAXD.js.gz +0 -0
  154. package/build/client/_app/immutable/chunks/CewXGI4o.js +14 -0
  155. package/build/client/_app/immutable/chunks/CewXGI4o.js.br +0 -0
  156. package/build/client/_app/immutable/chunks/CewXGI4o.js.gz +0 -0
  157. package/build/client/_app/immutable/chunks/CfdzAfq2.js +1 -0
  158. package/build/client/_app/immutable/chunks/CfdzAfq2.js.br +0 -0
  159. package/build/client/_app/immutable/chunks/CfdzAfq2.js.gz +0 -0
  160. package/build/client/_app/immutable/chunks/CkFDaaNz.js +1 -0
  161. package/build/client/_app/immutable/chunks/CkFDaaNz.js.br +0 -0
  162. package/build/client/_app/immutable/chunks/CkFDaaNz.js.gz +0 -0
  163. package/build/client/_app/immutable/chunks/CkLriSVx.js +1 -0
  164. package/build/client/_app/immutable/chunks/CkLriSVx.js.br +0 -0
  165. package/build/client/_app/immutable/chunks/CkLriSVx.js.gz +0 -0
  166. package/build/client/_app/immutable/chunks/Clzs_eXS.js +5 -0
  167. package/build/client/_app/immutable/chunks/Clzs_eXS.js.br +0 -0
  168. package/build/client/_app/immutable/chunks/Clzs_eXS.js.gz +0 -0
  169. package/build/client/_app/immutable/chunks/CrCQ2NNA.js +1 -0
  170. package/build/client/_app/immutable/chunks/CrCQ2NNA.js.br +0 -0
  171. package/build/client/_app/immutable/chunks/CrCQ2NNA.js.gz +0 -0
  172. package/build/client/_app/immutable/chunks/CrgqcyB_.js +1 -0
  173. package/build/client/_app/immutable/chunks/CrgqcyB_.js.br +0 -0
  174. package/build/client/_app/immutable/chunks/CrgqcyB_.js.gz +0 -0
  175. package/build/client/_app/immutable/chunks/CtlVBKf-.js +1 -0
  176. package/build/client/_app/immutable/chunks/CtlVBKf-.js.br +0 -0
  177. package/build/client/_app/immutable/chunks/CtlVBKf-.js.gz +0 -0
  178. package/build/client/_app/immutable/chunks/D4aeBIhU.js +1 -0
  179. package/build/client/_app/immutable/chunks/D4aeBIhU.js.br +0 -0
  180. package/build/client/_app/immutable/chunks/D4aeBIhU.js.gz +0 -0
  181. package/build/client/_app/immutable/chunks/D7IP_ZEm.js +1 -0
  182. package/build/client/_app/immutable/chunks/D7IP_ZEm.js.br +0 -0
  183. package/build/client/_app/immutable/chunks/D7IP_ZEm.js.gz +0 -0
  184. package/build/client/_app/immutable/chunks/D8Hx-_mj.js +1 -0
  185. package/build/client/_app/immutable/chunks/D8Hx-_mj.js.br +3 -0
  186. package/build/client/_app/immutable/chunks/D8Hx-_mj.js.gz +0 -0
  187. package/build/client/_app/immutable/chunks/DC8T2WRZ.js +1 -0
  188. package/build/client/_app/immutable/chunks/DC8T2WRZ.js.br +0 -0
  189. package/build/client/_app/immutable/chunks/DC8T2WRZ.js.gz +0 -0
  190. package/build/client/_app/immutable/chunks/DGy76IbW.js +2 -0
  191. package/build/client/_app/immutable/chunks/DGy76IbW.js.br +0 -0
  192. package/build/client/_app/immutable/chunks/DGy76IbW.js.gz +0 -0
  193. package/build/client/_app/immutable/chunks/DIABVMrA.js +1 -0
  194. package/build/client/_app/immutable/chunks/DIABVMrA.js.br +0 -0
  195. package/build/client/_app/immutable/chunks/DIABVMrA.js.gz +0 -0
  196. package/build/client/_app/immutable/chunks/DKQe4Tss.js +1 -0
  197. package/build/client/_app/immutable/chunks/DKQe4Tss.js.br +0 -0
  198. package/build/client/_app/immutable/chunks/DKQe4Tss.js.gz +0 -0
  199. package/build/client/_app/immutable/chunks/DLith9Yi.js +1 -0
  200. package/build/client/_app/immutable/chunks/DLith9Yi.js.br +0 -0
  201. package/build/client/_app/immutable/chunks/DLith9Yi.js.gz +0 -0
  202. package/build/client/_app/immutable/chunks/DPTtvukI.js +1 -0
  203. package/build/client/_app/immutable/chunks/DPTtvukI.js.br +0 -0
  204. package/build/client/_app/immutable/chunks/DPTtvukI.js.gz +0 -0
  205. package/build/client/_app/immutable/chunks/DX4qG4td.js +1 -0
  206. package/build/client/_app/immutable/chunks/DX4qG4td.js.br +1 -0
  207. package/build/client/_app/immutable/chunks/DX4qG4td.js.gz +0 -0
  208. package/build/client/_app/immutable/chunks/Da92_52d.js +1 -0
  209. package/build/client/_app/immutable/chunks/Da92_52d.js.br +0 -0
  210. package/build/client/_app/immutable/chunks/Da92_52d.js.gz +0 -0
  211. package/build/client/_app/immutable/chunks/Db0WMrvR.js +1 -0
  212. package/build/client/_app/immutable/chunks/Db0WMrvR.js.br +0 -0
  213. package/build/client/_app/immutable/chunks/Db0WMrvR.js.gz +0 -0
  214. package/build/client/_app/immutable/chunks/Dlb_KqyS.js +2 -0
  215. package/build/client/_app/immutable/chunks/Dlb_KqyS.js.br +0 -0
  216. package/build/client/_app/immutable/chunks/Dlb_KqyS.js.gz +0 -0
  217. package/build/client/_app/immutable/chunks/DmcreR7o.js +1 -0
  218. package/build/client/_app/immutable/chunks/DmcreR7o.js.br +0 -0
  219. package/build/client/_app/immutable/chunks/DmcreR7o.js.gz +0 -0
  220. package/build/client/_app/immutable/chunks/Dq9kJk5R.js +1 -0
  221. package/build/client/_app/immutable/chunks/Dq9kJk5R.js.br +0 -0
  222. package/build/client/_app/immutable/chunks/Dq9kJk5R.js.gz +0 -0
  223. package/build/client/_app/immutable/chunks/DsnmJJEf.js +1 -0
  224. package/build/client/_app/immutable/chunks/DsnmJJEf.js.br +2 -0
  225. package/build/client/_app/immutable/chunks/DsnmJJEf.js.gz +0 -0
  226. package/build/client/_app/immutable/chunks/DxGQT-Hz.js +1 -0
  227. package/build/client/_app/immutable/chunks/DxGQT-Hz.js.br +0 -0
  228. package/build/client/_app/immutable/chunks/DxGQT-Hz.js.gz +0 -0
  229. package/build/client/_app/immutable/chunks/ET-O1REu.js +1 -0
  230. package/build/client/_app/immutable/chunks/ET-O1REu.js.br +0 -0
  231. package/build/client/_app/immutable/chunks/ET-O1REu.js.gz +0 -0
  232. package/build/client/_app/immutable/chunks/Ewrw42Vq.js +1 -0
  233. package/build/client/_app/immutable/chunks/Ewrw42Vq.js.br +0 -0
  234. package/build/client/_app/immutable/chunks/Ewrw42Vq.js.gz +0 -0
  235. package/build/client/_app/immutable/chunks/FQ69txbU.js +1 -0
  236. package/build/client/_app/immutable/chunks/FQ69txbU.js.br +0 -0
  237. package/build/client/_app/immutable/chunks/FQ69txbU.js.gz +0 -0
  238. package/build/client/_app/immutable/chunks/L-6wuY5f.js +2 -0
  239. package/build/client/_app/immutable/chunks/L-6wuY5f.js.br +0 -0
  240. package/build/client/_app/immutable/chunks/L-6wuY5f.js.gz +0 -0
  241. package/build/client/_app/immutable/chunks/M201SoVK.js +1 -0
  242. package/build/client/_app/immutable/chunks/M201SoVK.js.br +1 -0
  243. package/build/client/_app/immutable/chunks/M201SoVK.js.gz +0 -0
  244. package/build/client/_app/immutable/chunks/OeqXO44y.js +1 -0
  245. package/build/client/_app/immutable/chunks/OeqXO44y.js.br +0 -0
  246. package/build/client/_app/immutable/chunks/OeqXO44y.js.gz +0 -0
  247. package/build/client/_app/immutable/chunks/PPVm8Dsz.js +1 -0
  248. package/build/client/_app/immutable/chunks/PPVm8Dsz.js.br +0 -0
  249. package/build/client/_app/immutable/chunks/PPVm8Dsz.js.gz +0 -0
  250. package/build/client/_app/immutable/chunks/QAFSHLn2.js +1 -0
  251. package/build/client/_app/immutable/chunks/QAFSHLn2.js.br +0 -0
  252. package/build/client/_app/immutable/chunks/QAFSHLn2.js.gz +0 -0
  253. package/build/client/_app/immutable/chunks/Tm9AblHs.js +1 -0
  254. package/build/client/_app/immutable/chunks/Tm9AblHs.js.br +0 -0
  255. package/build/client/_app/immutable/chunks/Tm9AblHs.js.gz +0 -0
  256. package/build/client/_app/immutable/chunks/bvY4yrzM.js +4 -0
  257. package/build/client/_app/immutable/chunks/bvY4yrzM.js.br +0 -0
  258. package/build/client/_app/immutable/chunks/bvY4yrzM.js.gz +0 -0
  259. package/build/client/_app/immutable/chunks/cAfuCUf-.js +1 -0
  260. package/build/client/_app/immutable/chunks/cAfuCUf-.js.br +0 -0
  261. package/build/client/_app/immutable/chunks/cAfuCUf-.js.gz +0 -0
  262. package/build/client/_app/immutable/chunks/eMSiEzFi.js +1 -0
  263. package/build/client/_app/immutable/chunks/eMSiEzFi.js.br +0 -0
  264. package/build/client/_app/immutable/chunks/eMSiEzFi.js.gz +0 -0
  265. package/build/client/_app/immutable/chunks/iVpzjqp1.js +1 -0
  266. package/build/client/_app/immutable/chunks/iVpzjqp1.js.br +0 -0
  267. package/build/client/_app/immutable/chunks/iVpzjqp1.js.gz +0 -0
  268. package/build/client/_app/immutable/chunks/m3YfhLk1.js +1 -0
  269. package/build/client/_app/immutable/chunks/m3YfhLk1.js.br +0 -0
  270. package/build/client/_app/immutable/chunks/m3YfhLk1.js.gz +0 -0
  271. package/build/client/_app/immutable/chunks/p7x6PRF0.js +1 -0
  272. package/build/client/_app/immutable/chunks/p7x6PRF0.js.br +0 -0
  273. package/build/client/_app/immutable/chunks/p7x6PRF0.js.gz +0 -0
  274. package/build/client/_app/immutable/chunks/t4rxsdjl.js +74 -0
  275. package/build/client/_app/immutable/chunks/t4rxsdjl.js.br +0 -0
  276. package/build/client/_app/immutable/chunks/t4rxsdjl.js.gz +0 -0
  277. package/build/client/_app/immutable/chunks/uD7-7yV9.js +1 -0
  278. package/build/client/_app/immutable/chunks/uD7-7yV9.js.br +4 -0
  279. package/build/client/_app/immutable/chunks/uD7-7yV9.js.gz +0 -0
  280. package/build/client/_app/immutable/chunks/wbPk3Yxo.js +81 -0
  281. package/build/client/_app/immutable/chunks/wbPk3Yxo.js.br +0 -0
  282. package/build/client/_app/immutable/chunks/wbPk3Yxo.js.gz +0 -0
  283. package/build/client/_app/immutable/entry/app.D22_AlD8.js +2 -0
  284. package/build/client/_app/immutable/entry/app.D22_AlD8.js.br +0 -0
  285. package/build/client/_app/immutable/entry/app.D22_AlD8.js.gz +0 -0
  286. package/build/client/_app/immutable/entry/start.xwa7znED.js +1 -0
  287. package/build/client/_app/immutable/entry/start.xwa7znED.js.br +0 -0
  288. package/build/client/_app/immutable/entry/start.xwa7znED.js.gz +0 -0
  289. package/build/client/_app/immutable/nodes/0.DsfUbybd.js +5 -0
  290. package/build/client/_app/immutable/nodes/0.DsfUbybd.js.br +0 -0
  291. package/build/client/_app/immutable/nodes/0.DsfUbybd.js.gz +0 -0
  292. package/build/client/_app/immutable/nodes/1.9tnApS8T.js +1 -0
  293. package/build/client/_app/immutable/nodes/1.9tnApS8T.js.br +0 -0
  294. package/build/client/_app/immutable/nodes/1.9tnApS8T.js.gz +0 -0
  295. package/build/client/_app/immutable/nodes/10.CbyVViLq.js +14 -0
  296. package/build/client/_app/immutable/nodes/10.CbyVViLq.js.br +0 -0
  297. package/build/client/_app/immutable/nodes/10.CbyVViLq.js.gz +0 -0
  298. package/build/client/_app/immutable/nodes/11.xg5UTCOx.js +77 -0
  299. package/build/client/_app/immutable/nodes/11.xg5UTCOx.js.br +0 -0
  300. package/build/client/_app/immutable/nodes/11.xg5UTCOx.js.gz +0 -0
  301. package/build/client/_app/immutable/nodes/12.C6hLGaov.js +32 -0
  302. package/build/client/_app/immutable/nodes/12.C6hLGaov.js.br +0 -0
  303. package/build/client/_app/immutable/nodes/12.C6hLGaov.js.gz +0 -0
  304. package/build/client/_app/immutable/nodes/13.DHbTeLkm.js +5 -0
  305. package/build/client/_app/immutable/nodes/13.DHbTeLkm.js.br +0 -0
  306. package/build/client/_app/immutable/nodes/13.DHbTeLkm.js.gz +0 -0
  307. package/build/client/_app/immutable/nodes/14.BMIOGjF-.js +1 -0
  308. package/build/client/_app/immutable/nodes/14.BMIOGjF-.js.br +0 -0
  309. package/build/client/_app/immutable/nodes/14.BMIOGjF-.js.gz +0 -0
  310. package/build/client/_app/immutable/nodes/15.DYSMqa5A.js +10 -0
  311. package/build/client/_app/immutable/nodes/15.DYSMqa5A.js.br +0 -0
  312. package/build/client/_app/immutable/nodes/15.DYSMqa5A.js.gz +0 -0
  313. package/build/client/_app/immutable/nodes/16.B0mX0t_j.js +6 -0
  314. package/build/client/_app/immutable/nodes/16.B0mX0t_j.js.br +0 -0
  315. package/build/client/_app/immutable/nodes/16.B0mX0t_j.js.gz +0 -0
  316. package/build/client/_app/immutable/nodes/2.CSYV0jmk.js +4 -0
  317. package/build/client/_app/immutable/nodes/2.CSYV0jmk.js.br +0 -0
  318. package/build/client/_app/immutable/nodes/2.CSYV0jmk.js.gz +0 -0
  319. package/build/client/_app/immutable/nodes/3.X5qqsIUa.js +5 -0
  320. package/build/client/_app/immutable/nodes/3.X5qqsIUa.js.br +0 -0
  321. package/build/client/_app/immutable/nodes/3.X5qqsIUa.js.gz +0 -0
  322. package/build/client/_app/immutable/nodes/4.Di4k8SR2.js +3 -0
  323. package/build/client/_app/immutable/nodes/4.Di4k8SR2.js.br +0 -0
  324. package/build/client/_app/immutable/nodes/4.Di4k8SR2.js.gz +0 -0
  325. package/build/client/_app/immutable/nodes/5.DMFYTxVa.js +7 -0
  326. package/build/client/_app/immutable/nodes/5.DMFYTxVa.js.br +0 -0
  327. package/build/client/_app/immutable/nodes/5.DMFYTxVa.js.gz +0 -0
  328. package/build/client/_app/immutable/nodes/6.6yDAURLV.js +4 -0
  329. package/build/client/_app/immutable/nodes/6.6yDAURLV.js.br +0 -0
  330. package/build/client/_app/immutable/nodes/6.6yDAURLV.js.gz +0 -0
  331. package/build/client/_app/immutable/nodes/7.xxvMU05c.js +1 -0
  332. package/build/client/_app/immutable/nodes/7.xxvMU05c.js.br +0 -0
  333. package/build/client/_app/immutable/nodes/7.xxvMU05c.js.gz +0 -0
  334. package/build/client/_app/immutable/nodes/8.GSaWotW8.js +1 -0
  335. package/build/client/_app/immutable/nodes/8.GSaWotW8.js.br +0 -0
  336. package/build/client/_app/immutable/nodes/8.GSaWotW8.js.gz +0 -0
  337. package/build/client/_app/immutable/nodes/9.CEiUwDDg.js +1 -0
  338. package/build/client/_app/immutable/nodes/9.CEiUwDDg.js.br +0 -0
  339. package/build/client/_app/immutable/nodes/9.CEiUwDDg.js.gz +0 -0
  340. package/build/client/_app/version.json +1 -0
  341. package/build/client/_app/version.json.br +0 -0
  342. package/build/client/_app/version.json.gz +0 -0
  343. package/build/client/favicon.svg +1 -0
  344. package/build/client/favicon.svg.br +0 -0
  345. package/build/client/favicon.svg.gz +0 -0
  346. package/build/env.js +70 -0
  347. package/build/handler.js +23 -0
  348. package/build/index.js +146 -0
  349. package/build/server/chunks/chunks/AllowanceMeter.js-C9jRsAGU.js +42 -0
  350. package/build/server/chunks/chunks/DecisionCard.js-u1VQ9s_v.js +350 -0
  351. package/build/server/chunks/chunks/DictateTextarea.js-BlEnOzcN.js +85 -0
  352. package/build/server/chunks/chunks/EtaLine.js-Pa4_VV6V.js +79 -0
  353. package/build/server/chunks/chunks/Icon.js-D7CY3joB.js +129 -0
  354. package/build/server/chunks/chunks/InsightsNav.js-BlxFBJfj.js +22 -0
  355. package/build/server/chunks/chunks/MicButton.js-BZSQAyuM.js +336 -0
  356. package/build/server/chunks/chunks/QuestionList.js-DglKezUe.js +259 -0
  357. package/build/server/chunks/chunks/SlotContent.js-YqZXXtRz.js +1977 -0
  358. package/build/server/chunks/chunks/StageTrack.js-BaorW-yk.js +59 -0
  359. package/build/server/chunks/chunks/TimeBar.js-k38rc7ZI.js +32 -0
  360. package/build/server/chunks/chunks/TimeLegend.js-BQVvgsvs.js +29 -0
  361. package/build/server/chunks/chunks/access.js-CS2pJasF.js +816 -0
  362. package/build/server/chunks/chunks/anchor.js-ByXDBfbi.js +20 -0
  363. package/build/server/chunks/chunks/arrow-down.js-DXDJc9EE.js +18 -0
  364. package/build/server/chunks/chunks/arrow-left.js-6Yey35CE.js +18 -0
  365. package/build/server/chunks/chunks/arrow-right.js-CfbPWRqu.js +18 -0
  366. package/build/server/chunks/chunks/arrow-up.js-AhghNbhW.js +18 -0
  367. package/build/server/chunks/chunks/bell.js-CAlv92RY.js +143 -0
  368. package/build/server/chunks/chunks/blocks.js-BL9jLCe-.js +710 -0
  369. package/build/server/chunks/chunks/buildlog.js-BCKtSKOt.js +55 -0
  370. package/build/server/chunks/chunks/bus.svelte.js-DRTptEhF.js +9 -0
  371. package/build/server/chunks/chunks/button.js-HeBqLheH.js +7311 -0
  372. package/build/server/chunks/chunks/chat.svelte.js-Cgdbtjbw.js +537 -0
  373. package/build/server/chunks/chunks/check.js-bmUhmMEz.js +15 -0
  374. package/build/server/chunks/chunks/checks.js-BnIxIaus.js +175 -0
  375. package/build/server/chunks/chunks/chevron-down.js-D75hVSIe.js +15 -0
  376. package/build/server/chunks/chunks/chevron-right.js-yhLg_GaH.js +15 -0
  377. package/build/server/chunks/chunks/circle-dashed.js-Bm3gZCXK.js +24 -0
  378. package/build/server/chunks/chunks/client.js-BUNengrw.js +24 -0
  379. package/build/server/chunks/chunks/clock.js-D7JTvRbC.js +18 -0
  380. package/build/server/chunks/chunks/compass.js-Tq6uiG8I.js +23 -0
  381. package/build/server/chunks/chunks/detail.js-CSjOmiVi.js +133 -0
  382. package/build/server/chunks/chunks/exports.js-BZBK1HC9.js +161 -0
  383. package/build/server/chunks/chunks/external-link.js-WxVF0xXO.js +24 -0
  384. package/build/server/chunks/chunks/file-text.js-CAo3vdqd.js +26 -0
  385. package/build/server/chunks/chunks/format.js-D3lWEg6U.js +70 -0
  386. package/build/server/chunks/chunks/gauge.js-Dw9bgE72.js +35 -0
  387. package/build/server/chunks/chunks/git-pull-request.js-Cx1w8BQr.js +20 -0
  388. package/build/server/chunks/chunks/hammer.js-fp_Kidfj.js +24 -0
  389. package/build/server/chunks/chunks/hand.js-xkYPYJZj.js +37 -0
  390. package/build/server/chunks/chunks/harbour.js-xu7EfIHk.js +113 -0
  391. package/build/server/chunks/chunks/http.js-TzZuOtxn.js +25 -0
  392. package/build/server/chunks/chunks/http2.js-Cr9xuMRL.js +26 -0
  393. package/build/server/chunks/chunks/inbox.js-CW2sFmx9.js +114 -0
  394. package/build/server/chunks/chunks/inbox.svelte.js-OoKhjjWM.js +134 -0
  395. package/build/server/chunks/chunks/index-server.js-CtyUzIGY.js +17 -0
  396. package/build/server/chunks/chunks/index-server2.js-DMc-UvjC.js +19 -0
  397. package/build/server/chunks/chunks/index.js-Bn6j9diM.js +1524 -0
  398. package/build/server/chunks/chunks/index2.js-CXaRTuov.js +46 -0
  399. package/build/server/chunks/chunks/insights.js-CzzfyHGp.js +100 -0
  400. package/build/server/chunks/chunks/internal.js-Co-6PAQm.js +146 -0
  401. package/build/server/chunks/chunks/keys.js-CdtCzv-v.js +20 -0
  402. package/build/server/chunks/chunks/live.svelte.js-BRUTNc9D.js +196 -0
  403. package/build/server/chunks/chunks/loader-circle.js-IYRaUYWq.js +16 -0
  404. package/build/server/chunks/chunks/message-circle-question-mark.js-DwrMi0ty.js +25 -0
  405. package/build/server/chunks/chunks/message-square-text.js-N5uEmy8L.js +25 -0
  406. package/build/server/chunks/chunks/message-square.js-Hp-6BHgG.js +22 -0
  407. package/build/server/chunks/chunks/messages.js-CFyGKoqq.js +4 -0
  408. package/build/server/chunks/chunks/minus.js-bsfnwE-h.js +15 -0
  409. package/build/server/chunks/chunks/monitor-play.js-B7qbbPH6.js +28 -0
  410. package/build/server/chunks/chunks/passage-meta.js-uvNUyJkg.js +232 -0
  411. package/build/server/chunks/chunks/plain.js-Dc97sYaJ.js +101 -0
  412. package/build/server/chunks/chunks/preview.js-CVD-Kwks.js +68 -0
  413. package/build/server/chunks/chunks/prreview.js-C5XxDIu2.js +85 -0
  414. package/build/server/chunks/chunks/root.js-CQzYN4Pu.js +3105 -0
  415. package/build/server/chunks/chunks/runtime.js-C0n924wq.js +13280 -0
  416. package/build/server/chunks/chunks/scale.js-vP4G0lZM.js +21 -0
  417. package/build/server/chunks/chunks/server.js-Bf8x1V_n.js +16 -0
  418. package/build/server/chunks/chunks/shield-check.js-PJLnCKD9.js +23 -0
  419. package/build/server/chunks/chunks/slots.svelte.js-0Ejhe-hS.js +34 -0
  420. package/build/server/chunks/chunks/spec.js-B0yI1XqG.js +307 -0
  421. package/build/server/chunks/chunks/split.js-BsCU24rQ.js +20 -0
  422. package/build/server/chunks/chunks/square-terminal.js-D5Z4Sl2-.js +47 -0
  423. package/build/server/chunks/chunks/tone.js-r2qFVrZC.js +30 -0
  424. package/build/server/chunks/chunks/trash.js-DYFbRevY.js +46 -0
  425. package/build/server/chunks/chunks/triangle-alert.js-DuE40HSU.js +38 -0
  426. package/build/server/chunks/chunks/utils.js-DTSGDHlH.js +2956 -0
  427. package/build/server/chunks/chunks/utils2.js-BQzn9ikS.js +38 -0
  428. package/build/server/chunks/chunks/view.js-BtcLmKUY.js +76 -0
  429. package/build/server/chunks/chunks/view2.js-BdUXqNlY.js +87 -0
  430. package/build/server/chunks/chunks/views.js-B0wP-tuB.js +137 -0
  431. package/build/server/chunks/chunks/waypoints.js-D3HN7bje.js +67 -0
  432. package/build/server/chunks/chunks/x.js-tlds9Ooz.js +18 -0
  433. package/build/server/chunks/entries/endpoints/api/events/_server.ts.js-DNHG661Q.js +93 -0
  434. package/build/server/chunks/entries/endpoints/api/firstmate/chat/_server.ts.js-XBUQePMq.js +74 -0
  435. package/build/server/chunks/entries/endpoints/api/firstmate/commands/_server.ts.js-D1tzpRWy.js +110 -0
  436. package/build/server/chunks/entries/endpoints/api/firstmate/input/_server.ts.js-DqhQUZUA.js +42 -0
  437. package/build/server/chunks/entries/endpoints/api/firstmate/interrupt/_server.ts.js-LsZer0Bi.js +35 -0
  438. package/build/server/chunks/entries/endpoints/api/firstmate/messages/_server.ts.js-DQob0XkJ.js +57 -0
  439. package/build/server/chunks/entries/endpoints/api/firstmate/pick/_server.ts.js-DgFjtYYL.js +45 -0
  440. package/build/server/chunks/entries/endpoints/api/firstmate/start/_server.ts.js-DOoA4rRW.js +35 -0
  441. package/build/server/chunks/entries/endpoints/api/fleet/_server.ts.js-DZQsFY87.js +27 -0
  442. package/build/server/chunks/entries/endpoints/api/health/_server.ts.js-DuSzTlq5.js +27 -0
  443. package/build/server/chunks/entries/endpoints/api/inbox/_server.ts.js-C15XwPXH.js +51 -0
  444. package/build/server/chunks/entries/endpoints/api/insights/_server.ts.js--gavJO4f.js +27 -0
  445. package/build/server/chunks/entries/endpoints/api/plugins/_server.ts.js-CsTy_jT6.js +27 -0
  446. package/build/server/chunks/entries/endpoints/api/projects/_id_/passage/_server.ts.js-BWOcGtOU.js +32 -0
  447. package/build/server/chunks/entries/endpoints/api/projects/_id_/passage/commands/_server.ts.js-Kjwbc2wm.js +41 -0
  448. package/build/server/chunks/entries/endpoints/api/projects/_id_/passage/consent/_server.ts.js-BTIb8CUb.js +53 -0
  449. package/build/server/chunks/entries/endpoints/api/projects/_id_/passage/draft/_server.ts.js-Vh52yDJ9.js +40 -0
  450. package/build/server/chunks/entries/endpoints/api/projects/_id_/passage/file/_server.ts.js-LJDJLrpB.js +63 -0
  451. package/build/server/chunks/entries/endpoints/api/projects/_id_/passage/test/_server.ts.js-CdDBYH6K.js +46 -0
  452. package/build/server/chunks/entries/endpoints/api/services/_server.ts.js-DoElFmWK.js +46 -0
  453. package/build/server/chunks/entries/endpoints/api/slots/_server.ts.js-KiiPnPLF.js +35 -0
  454. package/build/server/chunks/entries/endpoints/api/specs/_id_/_server.ts.js-LMXTPr04.js +59 -0
  455. package/build/server/chunks/entries/endpoints/api/specs/_id_/build-request/_server.ts.js-bqjJGIjt.js +47 -0
  456. package/build/server/chunks/entries/endpoints/api/specs/_id_/comments/_comment_/_server.ts.js-DD1qQE9w.js +36 -0
  457. package/build/server/chunks/entries/endpoints/api/specs/_id_/comments/_server.ts.js-Bby1xkpH.js +57 -0
  458. package/build/server/chunks/entries/endpoints/api/specs/_id_/images/_name_/_server.ts.js-CPX8OLQa.js +49 -0
  459. package/build/server/chunks/entries/endpoints/api/specs/_id_/images/_server.ts.js-BjBV4SVl.js +55 -0
  460. package/build/server/chunks/entries/endpoints/api/specs/_id_/sent/_server.ts.js-BAqm0IW0.js +36 -0
  461. package/build/server/chunks/entries/endpoints/api/specs/_id_/turn/_server.ts.js-CNFIHA70.js +82 -0
  462. package/build/server/chunks/entries/endpoints/api/specs/_server.ts.js-Bix9PKKr.js +40 -0
  463. package/build/server/chunks/entries/endpoints/api/tasks/_id_/_server.ts.js-CT7cLDQU.js +32 -0
  464. package/build/server/chunks/entries/endpoints/api/tasks/_id_/artifacts/_...name_/_server.ts.js-zCsm8UJT.js +51 -0
  465. package/build/server/chunks/entries/endpoints/api/tasks/_id_/diff/_server.ts.js-ccyEPbua.js +39 -0
  466. package/build/server/chunks/entries/endpoints/api/tasks/_id_/output/_server.ts.js-eZPQtK6T.js +84 -0
  467. package/build/server/chunks/entries/endpoints/api/tasks/_id_/preview/_server.ts.js-CW76hSLW.js +102 -0
  468. package/build/server/chunks/entries/endpoints/api/tasks/_id_/review/_server.ts.js-Cjuig1dr.js +34 -0
  469. package/build/server/chunks/entries/endpoints/api/tasks/_id_/review/ask/_server.ts.js-C04r1OFS.js +40 -0
  470. package/build/server/chunks/entries/endpoints/api/tasks/_id_/review/check/_server.ts.js-Ca5VNJtJ.js +39 -0
  471. package/build/server/chunks/entries/endpoints/api/tasks/_id_/review/guide/_server.ts.js-BKLIKSUM.js +39 -0
  472. package/build/server/chunks/entries/endpoints/api/tasks/_id_/review/runs/_run_/stop/_server.ts.js-C-D9zXgK.js +32 -0
  473. package/build/server/chunks/entries/fallbacks/error.svelte.js-DlN_tCrh.js +15 -0
  474. package/build/server/chunks/entries/hooks.server.js-Cgq1_RNe.js +40 -0
  475. package/build/server/chunks/entries/pages/_layout.server.ts.js-B7EWMhm1.js +20 -0
  476. package/build/server/chunks/entries/pages/_layout.svelte.js-BJuZaosz.js +10454 -0
  477. package/build/server/chunks/entries/pages/_page.server.ts.js-CrjekE3C.js +16 -0
  478. package/build/server/chunks/entries/pages/_page.svelte.js-BI4c5H0n.js +3699 -0
  479. package/build/server/chunks/entries/pages/decisions/_page.server.ts.js-Olm_zS-k.js +11 -0
  480. package/build/server/chunks/entries/pages/decisions/_page.svelte.js-ClTz3O_K.js +167 -0
  481. package/build/server/chunks/entries/pages/harbour/_page.server.ts.js-CVhhNUGy.js +20 -0
  482. package/build/server/chunks/entries/pages/harbour/_page.svelte.js-43FRNSVK.js +1346 -0
  483. package/build/server/chunks/entries/pages/headroom/_page.server.ts.js-Bv8GukD1.js +11 -0
  484. package/build/server/chunks/entries/pages/headroom/_page.svelte.js-zmKQdAwy.js +135 -0
  485. package/build/server/chunks/entries/pages/inbox/_page.svelte.js-wTvAFPNM.js +175 -0
  486. package/build/server/chunks/entries/pages/plugins/_plugin_/_page_/_page.server.ts.js-BJRmRxez.js +15 -0
  487. package/build/server/chunks/entries/pages/plugins/_plugin_/_page_/_page.svelte.js-DfAqJJ3i.js +55 -0
  488. package/build/server/chunks/entries/pages/projects/_id_/_plugin_/_tab_/_page.server.ts.js-DawJ61h-.js +15 -0
  489. package/build/server/chunks/entries/pages/projects/_id_/_plugin_/_tab_/_page.svelte.js-B472Pugu.js +66 -0
  490. package/build/server/chunks/entries/pages/projects/_id_/passage/_page.server.ts.js-Cm-4qkeb.js +14 -0
  491. package/build/server/chunks/entries/pages/projects/_id_/passage/_page.svelte.js-CWjEArXY.js +394 -0
  492. package/build/server/chunks/entries/pages/projects/_id_/passage/edit/_page.server.ts.js-DWNW8L5o.js +15 -0
  493. package/build/server/chunks/entries/pages/projects/_id_/passage/edit/_page.svelte.js-iHacn81K.js +1859 -0
  494. package/build/server/chunks/entries/pages/projects/_page.server.ts.js-BVDM5Frg.js +37 -0
  495. package/build/server/chunks/entries/pages/projects/_page.svelte.js-B_NQ-Wg3.js +270 -0
  496. package/build/server/chunks/entries/pages/spec/_page.server.ts.js-B3atEUDm.js +31 -0
  497. package/build/server/chunks/entries/pages/spec/_page.svelte.js-BJjweG9u.js +1561 -0
  498. package/build/server/chunks/entries/pages/tasks/_id_/_page.server.ts.js-BDQIO7Ft.js +25 -0
  499. package/build/server/chunks/entries/pages/tasks/_id_/_page.svelte.js-Dr2wwDJG.js +2063 -0
  500. package/build/server/chunks/entries/pages/tasks/_id_/doc/_page.server.ts.js-Bw-3fcQ6.js +24 -0
  501. package/build/server/chunks/entries/pages/tasks/_id_/doc/_page.svelte.js-DOyZ1QzI.js +145 -0
  502. package/build/server/chunks/entries/pages/tasks/_id_/review/_page.server.ts.js-CJek9uLa.js +15 -0
  503. package/build/server/chunks/entries/pages/tasks/_id_/review/_page.svelte.js-BDaRELgE.js +692 -0
  504. package/build/server/chunks/entries/pages/time/_page.server.ts.js-An6F-Ydg.js +11 -0
  505. package/build/server/chunks/entries/pages/time/_page.svelte.js-CSXGxvVs.js +107 -0
  506. package/build/server/chunks/handler-BnRz5A8m.js +1474 -0
  507. package/build/server/chunks/index.js-C8djlQGs.js +4296 -0
  508. package/build/server/chunks/manifest.js-YAglwkb0.js +434 -0
  509. package/build/server/chunks/nodes/0.js-lkzICUiD.js +32 -0
  510. package/build/server/chunks/nodes/1.js-BJHI215Q.js +9 -0
  511. package/build/server/chunks/nodes/10.js-BWB-fD67.js +33 -0
  512. package/build/server/chunks/nodes/11.js-DWkXu85W.js +33 -0
  513. package/build/server/chunks/nodes/12.js-CKTx5eRx.js +37 -0
  514. package/build/server/chunks/nodes/13.js-C9YUj8Wf.js +33 -0
  515. package/build/server/chunks/nodes/14.js-CvfRHrCy.js +33 -0
  516. package/build/server/chunks/nodes/15.js-D_eEoMQb.js +33 -0
  517. package/build/server/chunks/nodes/16.js-BQhgpvij.js +32 -0
  518. package/build/server/chunks/nodes/2.js-C-3t-e-a.js +32 -0
  519. package/build/server/chunks/nodes/3.js-DgwKYi6C.js +32 -0
  520. package/build/server/chunks/nodes/4.js-DRDQ1cZ6.js +34 -0
  521. package/build/server/chunks/nodes/5.js-Bn5aoN6C.js +32 -0
  522. package/build/server/chunks/nodes/6.js-lazTWxVv.js +9 -0
  523. package/build/server/chunks/nodes/7.js-PUjlFfxr.js +32 -0
  524. package/build/server/chunks/nodes/8.js-DYPhaWV-.js +34 -0
  525. package/build/server/chunks/nodes/9.js-C2q_Jaiu.js +32 -0
  526. package/build/shims.js +33 -0
  527. package/dist/cli.js +534 -0
  528. package/package.json +96 -5
@@ -0,0 +1,1346 @@
1
+ import { af as head, ah as attr_class, aj as escape_html, ai as attr, aa as ensure_array_like, ak as stringify, _ as derived, ap as attr_style, ae as spread_props } from '../../../chunks/index.js-Bn6j9diM.js';
2
+ import { p as page } from '../../../chunks/index2.js-CXaRTuov.js';
3
+ import { l as live, a as currentFleet } from '../../../chunks/live.svelte.js-BRUTNc9D.js';
4
+ import { s as slots } from '../../../chunks/slots.svelte.js-0Ejhe-hS.js';
5
+ import { b as projectTabHref, s as slotKey } from '../../../chunks/keys.js-CdtCzv-v.js';
6
+ import { S as SlotContent } from '../../../chunks/SlotContent.js-YqZXXtRz.js';
7
+ import { c as clock, w as workerName, a as ago, p as plural, b as agentLine, d as consoleInImage, n as nowLine } from '../../../chunks/format.js-D3lWEg6U.js';
8
+ import { b as headline, h as harbour, s as shelfOf, d as shelf, e as chartColumns, p as progress, L as LANDED_RECENT_MS, i as isCompleted, c as completedAt, l as landedAt, n as needsYou, a as isTrouble } from '../../../chunks/harbour.js-xu7EfIHk.js';
9
+ import { B as Button } from '../../../chunks/button.js-HeBqLheH.js';
10
+ import { M as Messages_square, C as ConsoleWindow, a as awaitingReview, r as reviewView, L as Lightbox, Q as QuestionList } from '../../../chunks/QuestionList.js-DglKezUe.js';
11
+ import { h as hintLine, a as roundLine } from '../../../chunks/buildlog.js-BCKtSKOt.js';
12
+ import '../../../chunks/exports.js-BZBK1HC9.js';
13
+ import '../../../chunks/utils2.js-BQzn9ikS.js';
14
+ import '../../../chunks/utils.js-DTSGDHlH.js';
15
+ import '../../../chunks/root.js-CQzYN4Pu.js';
16
+ import { M as Monitor_play } from '../../../chunks/monitor-play.js-B7qbbPH6.js';
17
+ import { C as Chevron_down } from '../../../chunks/chevron-down.js-D75hVSIe.js';
18
+ import { S as StageTrack } from '../../../chunks/StageTrack.js-BaorW-yk.js';
19
+ import { I as Icon } from '../../../chunks/Icon.js-D7CY3joB.js';
20
+ import { H as Hand } from '../../../chunks/hand.js-xkYPYJZj.js';
21
+ import { F as File_text } from '../../../chunks/file-text.js-CAo3vdqd.js';
22
+ import { G as Git_pull_request } from '../../../chunks/git-pull-request.js-Cx1w8BQr.js';
23
+ import { S as Square_terminal } from '../../../chunks/square-terminal.js-D5Z4Sl2-.js';
24
+ import { E as External_link } from '../../../chunks/external-link.js-WxVF0xXO.js';
25
+ import { C as Compass } from '../../../chunks/compass.js-Tq6uiG8I.js';
26
+ import { b as tone, d as dotClass, t as textClass } from '../../../chunks/tone.js-r2qFVrZC.js';
27
+ import { A as Arrow_right } from '../../../chunks/arrow-right.js-CfbPWRqu.js';
28
+ import { a as showsChecks } from '../../../chunks/checks.js-BnIxIaus.js';
29
+ import { C as ChecksStrip, E as EtaLine } from '../../../chunks/EtaLine.js-Pa4_VV6V.js';
30
+ import { M as Message_circle_question_mark } from '../../../chunks/message-circle-question-mark.js-DwrMi0ty.js';
31
+ import { T as TASK_FIRST_DIR, w as waitingOn, s as sortTasks, u as updatedAt, V as VIEW_COOKIE } from '../../../chunks/views.js-B0wP-tuB.js';
32
+ import { V as ViewToggle, S as SortHeader, L as List, r as rememberView } from '../../../chunks/view2.js-BdUXqNlY.js';
33
+ import { L as Layout_grid, W as Waypoints, R as Radar } from '../../../chunks/waypoints.js-D3HN7bje.js';
34
+ import '../../../chunks/blocks.js-BL9jLCe-.js';
35
+ import 'yaml';
36
+ import '../../../chunks/index-server2.js-DMc-UvjC.js';
37
+ import '../../../chunks/anchor.js-ByXDBfbi.js';
38
+ import '../../../chunks/triangle-alert.js-DuE40HSU.js';
39
+ import '../../../chunks/split.js-BsCU24rQ.js';
40
+ import '../../../chunks/message-square-text.js-N5uEmy8L.js';
41
+ import '../../../chunks/check.js-bmUhmMEz.js';
42
+ import '../../../chunks/x.js-tlds9Ooz.js';
43
+ import '../../../chunks/loader-circle.js-IYRaUYWq.js';
44
+ import '../../../chunks/circle-dashed.js-Bm3gZCXK.js';
45
+ import '../../../chunks/chevron-right.js-yhLg_GaH.js';
46
+ import '../../../chunks/insights.js-CzzfyHGp.js';
47
+ import '../../../chunks/clock.js-D7JTvRbC.js';
48
+ import '../../../chunks/arrow-up.js-AhghNbhW.js';
49
+ import '../../../chunks/arrow-down.js-DXDJc9EE.js';
50
+
51
+ function Grid_3x3($$renderer, $$props) {
52
+ let { $$slots, $$events, ...props } = $$props;
53
+ const iconData = {
54
+ "name": "grid-3x3",
55
+ "size": 24,
56
+ "node": [
57
+ [
58
+ "rect",
59
+ { "width": "18", "height": "18", "x": "3", "y": "3", "rx": "2" }
60
+ ],
61
+ ["path", { "d": "M3 9h18" }],
62
+ ["path", { "d": "M3 15h18" }],
63
+ ["path", { "d": "M9 3v18" }],
64
+ ["path", { "d": "M15 3v18" }]
65
+ ],
66
+ "aliases": ["grid", "grid-3-x-3"]
67
+ };
68
+ Icon($$renderer, spread_props([props, { icon: iconData }]));
69
+ }
70
+ function Hourglass($$renderer, $$props) {
71
+ let { $$slots, $$events, ...props } = $$props;
72
+ const iconData = {
73
+ "name": "hourglass",
74
+ "size": 24,
75
+ "node": [
76
+ ["path", { "d": "M5 22h14" }],
77
+ ["path", { "d": "M5 2h14" }],
78
+ [
79
+ "path",
80
+ {
81
+ "d": "M17 22v-4.172a2 2 0 0 0-.586-1.414L12 12l-4.414 4.414A2 2 0 0 0 7 17.828V22"
82
+ }
83
+ ],
84
+ [
85
+ "path",
86
+ {
87
+ "d": "M7 2v4.172a2 2 0 0 0 .586 1.414L12 12l4.414-4.414A2 2 0 0 0 17 6.172V2"
88
+ }
89
+ ]
90
+ ]
91
+ };
92
+ Icon($$renderer, spread_props([props, { icon: iconData }]));
93
+ }
94
+ function Images($$renderer, $$props) {
95
+ let { $$slots, $$events, ...props } = $$props;
96
+ const iconData = {
97
+ "name": "images",
98
+ "size": 24,
99
+ "node": [
100
+ [
101
+ "path",
102
+ { "d": "m22 11-1.296-1.296a2.4 2.4 0 0 0-3.408 0L11 16" }
103
+ ],
104
+ [
105
+ "path",
106
+ { "d": "M4 8a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2" }
107
+ ],
108
+ [
109
+ "circle",
110
+ { "cx": "13", "cy": "7", "r": "1", "fill": "currentColor" }
111
+ ],
112
+ [
113
+ "rect",
114
+ { "x": "8", "y": "2", "width": "14", "height": "14", "rx": "2" }
115
+ ]
116
+ ]
117
+ };
118
+ Icon($$renderer, spread_props([props, { icon: iconData }]));
119
+ }
120
+ function Rectangle_horizontal($$renderer, $$props) {
121
+ let { $$slots, $$events, ...props } = $$props;
122
+ const iconData = {
123
+ "name": "rectangle-horizontal",
124
+ "size": 24,
125
+ "node": [
126
+ [
127
+ "rect",
128
+ { "width": "20", "height": "12", "x": "2", "y": "6", "rx": "2" }
129
+ ]
130
+ ]
131
+ };
132
+ Icon($$renderer, spread_props([props, { icon: iconData }]));
133
+ }
134
+ function CardPreview($$renderer, $$props) {
135
+ $$renderer.component(($$renderer2) => {
136
+ let { task } = $$props;
137
+ let open = false;
138
+ $$renderer2.push(`<div class="relative z-10 mt-3" data-card-preview=""><button type="button" class="inline-flex items-center gap-1.5 rounded-md text-xs font-medium text-sea hover:underline"${attr("aria-expanded", open)}>`);
139
+ Monitor_play($$renderer2, { class: "size-3.5", "aria-hidden": "true" });
140
+ $$renderer2.push(`<!---->${escape_html("Show live preview")}`);
141
+ Chevron_down($$renderer2, {
142
+ class: `size-3.5 transition-transform ${""}`,
143
+ "aria-hidden": "true"
144
+ });
145
+ $$renderer2.push(`<!----></button> `);
146
+ {
147
+ $$renderer2.push("<!--[-1-->");
148
+ }
149
+ $$renderer2.push(`<!--]--></div>`);
150
+ });
151
+ }
152
+ function ShotStrip($$renderer, $$props) {
153
+ $$renderer.component(($$renderer2) => {
154
+ let { shots, total, skip = 0 } = $$props;
155
+ let enlarged = null;
156
+ const shown = derived(() => shots.slice(skip));
157
+ const more = derived(() => total - shots.length);
158
+ let $$settled = true;
159
+ let $$inner_renderer;
160
+ function $$render_inner($$renderer3) {
161
+ if (shown().length) {
162
+ $$renderer3.push(`<!--[0--><div class="relative z-10 mt-2 flex flex-wrap gap-1.5" data-card-shots=""><!--[-->`);
163
+ const each_array = ensure_array_like(shown());
164
+ for (let i = 0, $$length = each_array.length; i < $$length; i++) {
165
+ let s = each_array[i];
166
+ $$renderer3.push(`<button type="button" class="w-20 shrink-0 cursor-zoom-in"${attr("aria-label", `Enlarge screenshot ${stringify(s.name)}`)}${attr("title", 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>`);
167
+ }
168
+ $$renderer3.push(`<!--]--></div> `);
169
+ if (more() > 0) {
170
+ $$renderer3.push(`<!--[0--><p class="mt-1 text-xs text-muted-foreground">+${escape_html(more())} more on the task page</p>`);
171
+ } else {
172
+ $$renderer3.push("<!--[-1-->");
173
+ }
174
+ $$renderer3.push(`<!--]--> `);
175
+ Lightbox($$renderer3, {
176
+ shots,
177
+ get index() {
178
+ return enlarged;
179
+ },
180
+ set index($$value) {
181
+ enlarged = $$value;
182
+ $$settled = false;
183
+ }
184
+ });
185
+ $$renderer3.push(`<!---->`);
186
+ } else {
187
+ $$renderer3.push("<!--[-1-->");
188
+ }
189
+ $$renderer3.push(`<!--]-->`);
190
+ }
191
+ do {
192
+ $$settled = true;
193
+ $$inner_renderer = $$renderer2.copy();
194
+ $$render_inner($$inner_renderer);
195
+ } while (!$$settled);
196
+ $$renderer2.subsume($$inner_renderer);
197
+ });
198
+ }
199
+ function Thumb($$renderer, $$props) {
200
+ $$renderer.component(($$renderer2) => {
201
+ let { task, class: cls = "" } = $$props;
202
+ const thumb = derived(() => task.thumb);
203
+ const max = derived(() => thumb().kind === "diff" ? Math.max(1, ...thumb().files.map((f) => f.additions + f.deletions)) : 1);
204
+ $$renderer2.push(`<div${attr_class(`relative aspect-[16/10] overflow-hidden rounded-lg border bg-muted/40 ${stringify(cls)}`)}>`);
205
+ if (thumb().kind === "screenshot") {
206
+ $$renderer2.push(`<!--[0--><img${attr("src", thumb().url)}${attr("alt", `Latest screenshot: ${stringify(thumb().name)}`)} loading="lazy" class="size-full object-cover object-top"/>`);
207
+ } else if (thumb().kind === "diff") {
208
+ $$renderer2.push(`<!--[1--><div class="flex size-full flex-col justify-center gap-1.5 p-4" aria-label="Files changed"><!--[-->`);
209
+ const each_array = ensure_array_like(thumb().files);
210
+ for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {
211
+ let f = each_array[$$index];
212
+ $$renderer2.push(`<div class="flex items-center gap-2"><span class="w-0 flex-1 truncate font-mono text-xs text-muted-foreground">${escape_html(f.path.split("/").pop())}</span> <span class="flex h-1.5 w-20 overflow-hidden rounded-full bg-border/60"><span class="bg-success/80"${attr_style(`width:${stringify(f.additions / max() * 100)}%`)}></span> <span class="bg-danger/80"${attr_style(`width:${stringify(f.deletions / max() * 100)}%`)}></span></span></div>`);
213
+ }
214
+ $$renderer2.push(`<!--]--> `);
215
+ if (thumb().totalFiles > thumb().files.length) {
216
+ $$renderer2.push(`<!--[0--><p class="font-mono text-xs text-muted-foreground">+${escape_html(thumb().totalFiles - thumb().files.length)} more</p>`);
217
+ } else {
218
+ $$renderer2.push("<!--[-1-->");
219
+ }
220
+ $$renderer2.push(`<!--]--></div>`);
221
+ } else {
222
+ $$renderer2.push(`<!--[-1--><div class="grid size-full place-items-center text-muted-foreground/50">`);
223
+ if (task.status === "queued") {
224
+ $$renderer2.push("<!--[0-->");
225
+ Hourglass($$renderer2, { class: "size-6", "aria-hidden": "true" });
226
+ } else if (task.attention?.kind === "decision") {
227
+ $$renderer2.push("<!--[1-->");
228
+ Hand($$renderer2, { class: "size-6", "aria-hidden": "true" });
229
+ } else if (task.hasReport) {
230
+ $$renderer2.push("<!--[2-->");
231
+ File_text($$renderer2, { class: "size-6", "aria-hidden": "true" });
232
+ } else if (task.pr) {
233
+ $$renderer2.push("<!--[3-->");
234
+ Git_pull_request($$renderer2, { class: "size-6", "aria-hidden": "true" });
235
+ } else {
236
+ $$renderer2.push("<!--[-1-->");
237
+ Square_terminal($$renderer2, { class: "size-6", "aria-hidden": "true" });
238
+ }
239
+ $$renderer2.push(`<!--]--></div>`);
240
+ }
241
+ $$renderer2.push(`<!--]--></div>`);
242
+ });
243
+ }
244
+ function MoveCard($$renderer, $$props) {
245
+ $$renderer.component(($$renderer2) => {
246
+ let { task, projectName = null } = $$props;
247
+ const a = derived(() => task.attention);
248
+ const href = derived(() => `/tasks/${encodeURIComponent(task.id)}`);
249
+ const review = derived(() => awaitingReview(task));
250
+ const rv = derived(() => reviewView(task));
251
+ const who = derived(() => agentLine(task.worker));
252
+ const hint = derived(() => hintLine(task.build));
253
+ $$renderer2.push(`<article class="flex min-w-0 flex-col rounded-lg border border-t-2 border-t-sea bg-card p-3"><a${attr("href", href())} tabindex="-1" aria-hidden="true" class="relative block">`);
254
+ Thumb($$renderer2, { task, class: "rounded-sm" });
255
+ $$renderer2.push(`<!----> `);
256
+ if (review() && task.screenshots > 0) {
257
+ $$renderer2.push(`<!--[0--><span class="absolute right-2 bottom-2 inline-flex items-center gap-1 rounded-md bg-background/90 px-1.5 py-0.5 text-xs font-medium shadow-sm">`);
258
+ Images($$renderer2, { class: "size-3.5", "aria-hidden": "true" });
259
+ $$renderer2.push(`<!---->${escape_html(task.screenshots)}</span>`);
260
+ } else {
261
+ $$renderer2.push("<!--[-1-->");
262
+ }
263
+ $$renderer2.push(`<!--]--></a> `);
264
+ ShotStrip($$renderer2, {
265
+ shots: task.shots,
266
+ total: task.screenshots,
267
+ skip: task.thumb.kind === "screenshot" ? 1 : 0
268
+ });
269
+ $$renderer2.push(`<!----> <div class="flex flex-1 flex-col px-1 pt-4 pb-1">`);
270
+ if (projectName || who()) {
271
+ $$renderer2.push(`<!--[0--><p class="truncate text-xs text-muted-foreground">`);
272
+ if (projectName) {
273
+ $$renderer2.push(`<!--[0--><span class="font-medium tracking-wide text-sea">${escape_html(projectName)}</span>${escape_html(who() ? " · " : "")}`);
274
+ } else {
275
+ $$renderer2.push("<!--[-1-->");
276
+ }
277
+ $$renderer2.push(`<!--]-->${escape_html(who() ?? "")}</p>`);
278
+ } else {
279
+ $$renderer2.push("<!--[-1-->");
280
+ }
281
+ $$renderer2.push(`<!--]--> <a${attr("href", href())} class="mt-0.5 text-lg leading-snug font-semibold hover:underline"${attr("title", task.title)}>${escape_html(task.shortTitle)}</a> <p class="mt-2 line-clamp-3 flex-1 text-sm leading-relaxed text-muted-foreground">${escape_html(a().text)}</p> `);
282
+ if (review()) {
283
+ $$renderer2.push(`<!--[0--><ul class="mt-3 space-y-1 text-xs text-muted-foreground" aria-label="Review evidence"><li class="flex items-center gap-1.5" data-review="screenshots">`);
284
+ Images($$renderer2, { class: "size-3.5", "aria-hidden": "true" });
285
+ $$renderer2.push(`<!---->${escape_html(rv().shotsText)}</li> <li class="flex items-center gap-1.5" data-review="preview">`);
286
+ Monitor_play($$renderer2, { class: "size-3.5", "aria-hidden": "true" });
287
+ $$renderer2.push(`<!---->`);
288
+ if (rv().preview) {
289
+ $$renderer2.push(`<!--[0--><a${attr("href", rv().preview.url)} target="_blank" rel="noreferrer" class="truncate text-sea hover:underline">${escape_html(rv().preview.url)}</a>`);
290
+ } else {
291
+ $$renderer2.push(`<!--[-1-->${escape_html(rv().previewText)}`);
292
+ }
293
+ $$renderer2.push(`<!--]--></li></ul>`);
294
+ } else {
295
+ $$renderer2.push("<!--[-1-->");
296
+ }
297
+ $$renderer2.push(`<!--]--> `);
298
+ if (hint()) {
299
+ $$renderer2.push(`<!--[0--><p class="mt-1 flex items-center gap-1.5 text-xs text-muted-foreground" data-build-hint="">`);
300
+ Messages_square($$renderer2, { class: "size-3.5", "aria-hidden": "true" });
301
+ $$renderer2.push(`<!----><span>${escape_html(hint().questions ?? "")}`);
302
+ if (hint().questions && hint().docs) {
303
+ $$renderer2.push(`<!--[0--> · `);
304
+ } else {
305
+ $$renderer2.push("<!--[-1-->");
306
+ }
307
+ $$renderer2.push(`<!--]-->`);
308
+ if (hint().docs) {
309
+ $$renderer2.push(`<!--[0--><a${attr("href", `${href()}?tab=docs`)} class="hover:text-foreground hover:underline" data-build-docs="">${escape_html(hint().docs)}</a>`);
310
+ } else {
311
+ $$renderer2.push("<!--[-1-->");
312
+ }
313
+ $$renderer2.push(`<!--]--></span></p>`);
314
+ } else {
315
+ $$renderer2.push("<!--[-1-->");
316
+ }
317
+ $$renderer2.push(`<!--]--> `);
318
+ if (task.preview) {
319
+ $$renderer2.push("<!--[0-->");
320
+ CardPreview($$renderer2, { task });
321
+ } else {
322
+ $$renderer2.push("<!--[-1-->");
323
+ }
324
+ $$renderer2.push(`<!--]--> <div class="mt-4">`);
325
+ StageTrack($$renderer2, { task });
326
+ $$renderer2.push(`<!----></div> <div class="mt-5 flex flex-wrap gap-2">`);
327
+ if (review() && rv().preview) {
328
+ $$renderer2.push("<!--[0-->");
329
+ Button($$renderer2, {
330
+ class: "flex-1",
331
+ href: rv().preview.url,
332
+ target: "_blank",
333
+ rel: "noreferrer",
334
+ children: ($$renderer3) => {
335
+ $$renderer3.push(`<!---->Open preview`);
336
+ External_link($$renderer3, {});
337
+ $$renderer3.push(`<!---->`);
338
+ },
339
+ $$slots: { default: true }
340
+ });
341
+ $$renderer2.push(`<!----> `);
342
+ if (rv().pr) {
343
+ $$renderer2.push("<!--[0-->");
344
+ Button($$renderer2, {
345
+ variant: "outline",
346
+ href: `${href()}/review`,
347
+ "data-review-pr": true,
348
+ children: ($$renderer3) => {
349
+ Compass($$renderer3, {});
350
+ $$renderer3.push(`<!---->Review PR`);
351
+ },
352
+ $$slots: { default: true }
353
+ });
354
+ } else {
355
+ $$renderer2.push("<!--[-1-->");
356
+ }
357
+ $$renderer2.push(`<!--]-->`);
358
+ } else if (review() && rv().pr) {
359
+ $$renderer2.push("<!--[1-->");
360
+ Button($$renderer2, {
361
+ class: "flex-1",
362
+ href: `${href()}/review`,
363
+ "data-review-pr": true,
364
+ children: ($$renderer3) => {
365
+ Compass($$renderer3, {});
366
+ $$renderer3.push(`<!---->Review PR`);
367
+ },
368
+ $$slots: { default: true }
369
+ });
370
+ $$renderer2.push(`<!----> `);
371
+ Button($$renderer2, {
372
+ variant: "outline",
373
+ href: rv().pr.url,
374
+ target: "_blank",
375
+ rel: "noreferrer",
376
+ children: ($$renderer3) => {
377
+ $$renderer3.push(`<!---->On GitHub`);
378
+ External_link($$renderer3, {});
379
+ $$renderer3.push(`<!---->`);
380
+ },
381
+ $$slots: { default: true }
382
+ });
383
+ $$renderer2.push(`<!---->`);
384
+ } else if (review()) {
385
+ $$renderer2.push("<!--[2-->");
386
+ Button($$renderer2, {
387
+ class: "flex-1",
388
+ href: href(),
389
+ children: ($$renderer3) => {
390
+ $$renderer3.push(`<!---->Review the work`);
391
+ },
392
+ $$slots: { default: true }
393
+ });
394
+ } else {
395
+ $$renderer2.push("<!--[-1-->");
396
+ Button($$renderer2, {
397
+ class: "flex-1",
398
+ href: href(),
399
+ children: ($$renderer3) => {
400
+ $$renderer3.push(`<!---->Read the decision`);
401
+ },
402
+ $$slots: { default: true }
403
+ });
404
+ }
405
+ $$renderer2.push(`<!--]--> `);
406
+ Button($$renderer2, {
407
+ variant: "outline",
408
+ href: href(),
409
+ children: ($$renderer3) => {
410
+ $$renderer3.push(`<!---->Details`);
411
+ },
412
+ $$slots: { default: true }
413
+ });
414
+ $$renderer2.push(`<!----></div></div></article>`);
415
+ });
416
+ }
417
+ function PassageChart($$renderer, $$props) {
418
+ $$renderer.component(($$renderer2) => {
419
+ let { tasks, projects } = $$props;
420
+ const cols = derived(() => chartColumns(tasks));
421
+ const template = derived(() => `minmax(12rem,18rem) repeat(${cols().length}, minmax(0,1fr))`);
422
+ const rank = (t) => (tone(t) === "you" ? -10 : 0) - progress(t);
423
+ $$renderer2.push(`<div class="overflow-x-auto"><div class="min-w-[52rem]"><div class="grid border-b pb-2 text-xs text-muted-foreground"${attr_style(`grid-template-columns: ${template()}`)}><span></span> <!--[-->`);
424
+ const each_array = ensure_array_like(cols());
425
+ for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {
426
+ let c = each_array[$$index];
427
+ $$renderer2.push(`<span class="text-center">${escape_html(c.label)}</span>`);
428
+ }
429
+ $$renderer2.push(`<!--]--></div> <!--[-->`);
430
+ const each_array_1 = ensure_array_like(projects);
431
+ for (let $$index_3 = 0, $$length = each_array_1.length; $$index_3 < $$length; $$index_3++) {
432
+ let p = each_array_1[$$index_3];
433
+ const rows = tasks.filter((t) => t.projectId === p.id).toSorted((a, b) => rank(a) - rank(b));
434
+ if (rows.length) {
435
+ $$renderer2.push(`<!--[0--><h2 class="pt-6 pb-2 text-sm font-medium">${escape_html(p.name)}</h2> <!--[-->`);
436
+ const each_array_2 = ensure_array_like(rows);
437
+ for (let $$index_2 = 0, $$length2 = each_array_2.length; $$index_2 < $$length2; $$index_2++) {
438
+ let t = each_array_2[$$index_2];
439
+ const tn = tone(t);
440
+ const byCol = new Map(t.passage.steps.map((s, i) => [s.column, { s, i }]));
441
+ const cur = cols().findIndex((c) => c.key === t.passage.steps[t.passage.current]?.column);
442
+ const failed = t.passage.steps[t.passage.current]?.failed ?? false;
443
+ $$renderer2.push(`<a${attr("href", `/tasks/${stringify(encodeURIComponent(t.id))}`)} class="grid items-center rounded-lg py-3 hover:bg-accent/50"${attr_style(`grid-template-columns: ${template()}`)}${attr("aria-label", `${stringify(t.title)}: ${stringify(t.passage.steps[t.passage.current]?.label)}${failed ? " failed" : ""}, ${stringify(t.statusLabel)}`)}><div class="min-w-0 pr-4 pl-2"><p class="truncate font-medium">${escape_html(t.title)}</p> <p${attr_class(`truncate text-xs ${stringify(tn === "normal" || tn === "landed" ? "text-muted-foreground" : textClass[tn])}`)}>${escape_html(tn === "normal" ? workerName(t.worker) ?? t.statusLabel : t.statusLabel)}</p></div> <!--[-->`);
444
+ const each_array_3 = ensure_array_like(cols());
445
+ for (let i = 0, $$length3 = each_array_3.length; i < $$length3; i++) {
446
+ let col = each_array_3[i];
447
+ const step = byCol.get(col.key);
448
+ $$renderer2.push(`<div class="relative flex h-6 items-center justify-center"${attr("title", step?.s.note ?? void 0)}>`);
449
+ if (i > 0) {
450
+ $$renderer2.push(`<!--[0--><span${attr_class(`absolute top-1/2 right-1/2 left-[-50%] h-0.5 -translate-y-1/2 ${i <= cur ? "bg-foreground/50" : "bg-border"}`)}></span>`);
451
+ } else {
452
+ $$renderer2.push("<!--[-1-->");
453
+ }
454
+ $$renderer2.push(`<!--]--> `);
455
+ if (i === cur) {
456
+ $$renderer2.push(`<!--[0--><span${attr_class(`relative z-10 grid size-5 place-items-center rounded-full ring-4 ring-background ${stringify(failed ? "bg-danger" : dotClass[tn])}`)}>`);
457
+ if (tn === "you") {
458
+ $$renderer2.push(`<!--[0--><span class="size-1.5 rounded-full bg-background"></span>`);
459
+ } else {
460
+ $$renderer2.push("<!--[-1-->");
461
+ }
462
+ $$renderer2.push(`<!--]--></span>`);
463
+ } else if (!step || step.s.state === "skipped") {
464
+ $$renderer2.push(`<!--[1--><span class="relative z-10 size-2 rounded-full border border-dashed border-muted-foreground/40 bg-background"></span>`);
465
+ } else if (step.s.state === "done") {
466
+ $$renderer2.push(`<!--[2--><span class="relative z-10 size-2 rounded-full bg-foreground/50"></span>`);
467
+ } else {
468
+ $$renderer2.push(`<!--[-1--><span class="relative z-10 size-2 rounded-full border border-border bg-background"></span>`);
469
+ }
470
+ $$renderer2.push(`<!--]--></div>`);
471
+ }
472
+ $$renderer2.push(`<!--]--></a>`);
473
+ }
474
+ $$renderer2.push(`<!--]-->`);
475
+ } else {
476
+ $$renderer2.push("<!--[-1-->");
477
+ }
478
+ $$renderer2.push(`<!--]-->`);
479
+ }
480
+ $$renderer2.push(`<!--]--></div></div>`);
481
+ });
482
+ }
483
+ const LANES = [
484
+ { key: "queued", label: "Queued", hint: "Waiting its turn" },
485
+ { key: "building", label: "Building", hint: "The crew is writing it" },
486
+ { key: "testing", label: "Testing", hint: "Checks and review" },
487
+ { key: "pr", label: "Pull request", hint: "In CI or with you" },
488
+ { key: "landed", label: "Landed", hint: "In the last day" }
489
+ ];
490
+ const COLUMN_LANE = {
491
+ queued: "queued",
492
+ building: "building",
493
+ checks: "testing",
494
+ pr: "pr",
495
+ review: "pr",
496
+ landed: "landed"
497
+ };
498
+ function laneOf(t) {
499
+ if (t.status === "queued") return "queued";
500
+ if (t.status === "landed") return "landed";
501
+ const steps = t.passage.steps;
502
+ for (let i = Math.min(t.passage.current, steps.length - 1); i >= 0; i--) {
503
+ const lane = COLUMN_LANE[steps[i].column] ?? COLUMN_LANE[steps[i].key];
504
+ if (lane) return lane;
505
+ }
506
+ return "building";
507
+ }
508
+ const SIGNAL_LABEL = {
509
+ you: "Waiting on you",
510
+ stuck: "Stuck",
511
+ firstmate: "With Firstmate",
512
+ busy: "Busy",
513
+ idle: "Idle",
514
+ landed: "Landed"
515
+ };
516
+ function signalOf(t) {
517
+ if (t.status === "landed") return "landed";
518
+ if (needsYou(t)) return "you";
519
+ if (isTrouble(t) || t.passage.steps[t.passage.current]?.failed || t.pipeline?.outcome === "failed")
520
+ return "stuck";
521
+ if (t.status === "with-firstmate") return "firstmate";
522
+ if (t.busy) return "busy";
523
+ return "idle";
524
+ }
525
+ const SIGNAL_ORDER = {
526
+ you: 0,
527
+ stuck: 1,
528
+ firstmate: 2,
529
+ busy: 3,
530
+ idle: 4,
531
+ landed: 5
532
+ };
533
+ const ms = (iso) => {
534
+ const t = iso ? Date.parse(iso) : NaN;
535
+ return Number.isNaN(t) ? null : t;
536
+ };
537
+ function laneSince(t, lane = laneOf(t)) {
538
+ if (lane === "landed") return landedAt(t);
539
+ if (lane === "testing") return ms(t.pipeline?.startedAt);
540
+ return null;
541
+ }
542
+ function track(prev, tasks, at) {
543
+ const next = /* @__PURE__ */ new Map();
544
+ for (const t of tasks) {
545
+ const lane = laneOf(t);
546
+ const step = t.passage.steps[t.passage.current]?.key ?? null;
547
+ const was = prev.get(t.id);
548
+ if (!was || was.lane !== lane) {
549
+ next.set(
550
+ t.id,
551
+ was ? { lane, step, laneSince: at, stepSince: at } : { lane, step, laneSince: laneSince(t, lane), stepSince: null }
552
+ );
553
+ continue;
554
+ }
555
+ const since = was.laneSince ?? laneSince(t, lane);
556
+ next.set(
557
+ t.id,
558
+ was.step !== step ? { ...was, step, laneSince: since, stepSince: at } : since !== was.laneSince ? { ...was, laneSince: since } : was
559
+ );
560
+ }
561
+ return next;
562
+ }
563
+ const LANDED_BRIGHT_MS = 3600 * 1e3;
564
+ const LANDED_FAINTEST = 0.35;
565
+ function landedFade(at, now) {
566
+ if (at === null) return LANDED_FAINTEST;
567
+ const age = now - at;
568
+ if (age <= LANDED_BRIGHT_MS) return 1;
569
+ const k = Math.min(1, (age - LANDED_BRIGHT_MS) / (LANDED_RECENT_MS - LANDED_BRIGHT_MS));
570
+ return 1 - (1 - LANDED_FAINTEST) * k;
571
+ }
572
+ function radar(tasks, now, entries) {
573
+ const byLane = new Map(LANES.map((l) => [l.key, []]));
574
+ const counts = {
575
+ you: 0,
576
+ stuck: 0,
577
+ firstmate: 0,
578
+ busy: 0,
579
+ idle: 0,
580
+ landed: 0
581
+ };
582
+ let landedOlder = 0;
583
+ for (const t of tasks) {
584
+ const lane = laneOf(t);
585
+ const entry = entries?.get(t.id);
586
+ const since = entry ? entry.laneSince : laneSince(t, lane);
587
+ const signal = signalOf(t);
588
+ if (t.status === "landed") {
589
+ if (since === null || now - since > LANDED_RECENT_MS) {
590
+ landedOlder++;
591
+ continue;
592
+ }
593
+ }
594
+ counts[signal]++;
595
+ byLane.get(lane).push({
596
+ id: t.id,
597
+ task: t,
598
+ lane,
599
+ signal,
600
+ since,
601
+ stepSince: entry?.stepSince ?? null,
602
+ opacity: signal === "landed" ? landedFade(since, now) : 1
603
+ });
604
+ }
605
+ const order = (a, b) => a.lane === "landed" ? (b.since ?? 0) - (a.since ?? 0) : SIGNAL_ORDER[a.signal] - SIGNAL_ORDER[b.signal] || (a.since ?? Infinity) - (b.since ?? Infinity) || a.id.localeCompare(b.id);
606
+ return {
607
+ lanes: LANES.map((l) => ({ ...l, blips: byLane.get(l.key).sort(order) })),
608
+ landedOlder,
609
+ counts
610
+ };
611
+ }
612
+ const laneLabel = (lane) => LANES.find((l) => l.key === lane).label;
613
+ function stay(since, now) {
614
+ if (since === null) return "unknown";
615
+ const m = Math.max(0, Math.round((now - since) / 6e4));
616
+ if (m < 1) return "under a minute";
617
+ if (m < 60) return `${m} min`;
618
+ const h = Math.round(m / 60);
619
+ if (h < 48) return `${h} h`;
620
+ return `${Math.round(h / 24)} days`;
621
+ }
622
+ function RadarBoard($$renderer, $$props) {
623
+ $$renderer.component(($$renderer2) => {
624
+ let { tasks, projects, now, connection = "open" } = $$props;
625
+ let seen = /* @__PURE__ */ new Map();
626
+ const entries = derived(() => seen = track(seen, tasks, Date.now()));
627
+ const r = derived(() => radar(tasks, now, entries()));
628
+ const projectName = (id) => projects.find((p) => p.id === id)?.name ?? id;
629
+ const shown = derived(() => {
630
+ return null;
631
+ });
632
+ const SHAPE = {
633
+ busy: "rounded-full bg-sea",
634
+ idle: "rounded-full border-2 border-sea bg-card",
635
+ you: "rounded-full bg-amber ring-[3px] ring-amber/35",
636
+ stuck: "rotate-45 rounded-[2px] bg-danger",
637
+ firstmate: "rounded-full border-2 border-brass bg-card",
638
+ landed: "rounded-full bg-success"
639
+ };
640
+ const LEGEND = ["busy", "idle", "you", "stuck", "firstmate", "landed"];
641
+ const TEXT = {
642
+ busy: "text-sea",
643
+ idle: "text-muted-foreground",
644
+ you: "text-warning",
645
+ stuck: "text-danger",
646
+ firstmate: "text-muted-foreground",
647
+ landed: "text-success"
648
+ };
649
+ const total = derived(() => r().lanes.reduce((n, l) => n + l.blips.length, 0));
650
+ const summary = derived(() => {
651
+ const c = r().counts;
652
+ const parts = [
653
+ c.busy && `${c.busy} busy`,
654
+ c.you && `${c.you} waiting on you`,
655
+ c.stuck && `${c.stuck} stuck`,
656
+ c.firstmate && `${c.firstmate} with Firstmate`,
657
+ c.landed && `${c.landed} landed in the last day`
658
+ ].filter(Boolean);
659
+ return parts.length ? parts.join(", ") : "Nothing on the radar";
660
+ });
661
+ function dot($$renderer3, signal, size = "size-3.5") {
662
+ $$renderer3.push(`<span${attr_class(`relative inline-flex shrink-0 ${stringify(size)}`, "svelte-1qpvlew")} aria-hidden="true">`);
663
+ if (signal === "busy") {
664
+ $$renderer3.push(`<!--[0--><span class="radar-ping absolute inset-0 rounded-full bg-sea svelte-1qpvlew"></span>`);
665
+ } else {
666
+ $$renderer3.push("<!--[-1-->");
667
+ }
668
+ $$renderer3.push(`<!--]--> <span${attr_class(`relative block size-full ${stringify(SHAPE[signal])}`, "svelte-1qpvlew")}></span></span>`);
669
+ }
670
+ $$renderer2.push(`<div class="flex flex-wrap items-center justify-between gap-x-6 gap-y-2 svelte-1qpvlew"><p class="text-sm text-muted-foreground svelte-1qpvlew"><span class="text-foreground svelte-1qpvlew" aria-live="polite">${escape_html(summary())}.</span> `);
671
+ if (r().landedOlder) {
672
+ $$renderer2.push(`<!--[0-->${escape_html(r().landedOlder)} landed earlier ${escape_html(r().landedOlder === 1 ? "is" : "are")} off the radar.`);
673
+ } else {
674
+ $$renderer2.push("<!--[-1-->");
675
+ }
676
+ $$renderer2.push(`<!--]--></p> <p class="flex items-center gap-2 text-sm text-muted-foreground svelte-1qpvlew" aria-live="off"><span${attr_class(
677
+ `size-2 rounded-full ${connection === "open" ? "bg-success" : connection === "lost" ? "bg-danger" : "bg-warning"}`,
678
+ "svelte-1qpvlew"
679
+ )} aria-hidden="true"></span> ${escape_html(connection === "open" ? "Live" : connection === "lost" ? "Lost contact with Wheelhouse" : "Reconnecting…")}</p></div> <ul class="mt-4 flex flex-wrap gap-x-5 gap-y-2 text-sm text-muted-foreground svelte-1qpvlew" aria-label="Key"><!--[-->`);
680
+ const each_array = ensure_array_like(LEGEND);
681
+ for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {
682
+ let s = each_array[$$index];
683
+ $$renderer2.push(`<li class="flex items-center gap-2 svelte-1qpvlew">`);
684
+ dot($$renderer2, s, "size-3");
685
+ $$renderer2.push(`<!---->${escape_html(SIGNAL_LABEL[s])}</li>`);
686
+ }
687
+ $$renderer2.push(`<!--]--></ul> <div class="@container relative mt-5 svelte-1qpvlew"><ol class="grid overflow-hidden rounded-md border border-hair @4xl:grid-cols-5 svelte-1qpvlew"${attr("aria-label", `Fleet radar, ${stringify(total())} ${total() === 1 ? "task" : "tasks"}`)}><!--[-->`);
688
+ const each_array_1 = ensure_array_like(r().lanes);
689
+ for (let i = 0, $$length = each_array_1.length; i < $$length; i++) {
690
+ let lane = each_array_1[i];
691
+ $$renderer2.push(`<li class="radar-lane flex min-w-0 gap-3 border-t border-hair p-3 first:border-t-0 @4xl:flex-col @4xl:border-t-0 @4xl:border-l @4xl:first:border-l-0 svelte-1qpvlew"${attr("aria-label", `${stringify(lane.label)}, ${stringify(lane.blips.length)}`)}><div class="w-[8.5rem] shrink-0 @4xl:w-auto svelte-1qpvlew"><h3 class="radar-lane-label truncate svelte-1qpvlew"><span class="tabular text-brass svelte-1qpvlew" aria-hidden="true">${escape_html(i + 1)}</span> ${escape_html(lane.label)}</h3> <p class="mt-0.5 flex items-center gap-2 text-xs text-muted-foreground svelte-1qpvlew"><span class="tabular rounded-full bg-muted px-1.5 leading-5 font-medium text-foreground svelte-1qpvlew" aria-hidden="true">${escape_html(lane.blips.length)}</span> <span class="min-w-0 svelte-1qpvlew">${escape_html(lane.hint)}</span></p></div> <ul class="flex min-h-14 flex-1 flex-wrap content-start gap-x-1 gap-y-2 @4xl:min-h-[max(16rem,calc(100dvh-22rem))] svelte-1qpvlew"><!--[-->`);
692
+ const each_array_2 = ensure_array_like(lane.blips);
693
+ for (let $$index_1 = 0, $$length2 = each_array_2.length; $$index_1 < $$length2; $$index_1++) {
694
+ let b = each_array_2[$$index_1];
695
+ $$renderer2.push(`<li class="w-[6.25rem] svelte-1qpvlew"${attr_style(`opacity: ${stringify(b.opacity)}`)}><button type="button"${attr("data-blip", b.id)}${attr_class(`flex w-full flex-col items-center gap-1.5 rounded-md px-1 py-1.5 outline-none hover:bg-muted/70 focus-visible:ring-2 focus-visible:ring-ring ${shown()?.id === b.id ? "bg-muted" : ""}`, "svelte-1qpvlew")}${attr("aria-label", `${stringify(b.task.shortTitle)}: ${stringify(lane.label)}, ${stringify(SIGNAL_LABEL[b.signal].toLowerCase())}${b.since === null ? "" : `, ${stay(b.since, now)} in the lane`}`)}${attr("aria-expanded", shown()?.id === b.id)}>`);
696
+ dot($$renderer2, b.signal, "size-4");
697
+ $$renderer2.push(`<!----> <span class="line-clamp-2 w-full text-center text-xs leading-tight break-words svelte-1qpvlew">${escape_html(b.task.shortTitle)}</span></button></li>`);
698
+ }
699
+ $$renderer2.push(`<!--]--></ul></li>`);
700
+ }
701
+ $$renderer2.push(`<!--]--></ol> `);
702
+ if (shown()) {
703
+ $$renderer2.push("<!--[0-->");
704
+ const t = shown().task;
705
+ const step = t.passage.steps[t.passage.current];
706
+ $$renderer2.push(`<div data-radar-card="" role="region"${attr("aria-label", `${stringify(t.shortTitle)} details`)} class="z-10 mt-3 rounded-md border border-hair bg-popover p-4 text-popover-foreground shadow-lg @4xl:absolute @4xl:mt-0 @4xl:w-80 svelte-1qpvlew"${attr_style(void 0)}><p class="text-xs tracking-wide text-muted-foreground uppercase svelte-1qpvlew">${escape_html(projectName(t.projectId))}</p> <p class="mt-1 leading-snug font-medium svelte-1qpvlew">${escape_html(t.shortTitle)}</p> <dl class="mt-3 grid grid-cols-[auto_1fr] gap-x-3 gap-y-1 text-sm svelte-1qpvlew"><dt class="text-muted-foreground svelte-1qpvlew">Step</dt> <dd class="svelte-1qpvlew">${escape_html(step?.label ?? laneLabel(shown().lane))}${escape_html(step?.failed ? ", failed" : "")}</dd> <dt class="text-muted-foreground svelte-1qpvlew">In lane</dt> <dd class="tabular svelte-1qpvlew">${escape_html(stay(shown().since, now))}</dd> `);
707
+ if (shown().stepSince !== null && shown().stepSince !== shown().since) {
708
+ $$renderer2.push(`<!--[0--><dt class="text-muted-foreground svelte-1qpvlew">In step</dt> <dd class="tabular svelte-1qpvlew">${escape_html(stay(shown().stepSince, now))}</dd>`);
709
+ } else {
710
+ $$renderer2.push("<!--[-1-->");
711
+ }
712
+ $$renderer2.push(`<!--]--> <dt class="text-muted-foreground svelte-1qpvlew">State</dt> <dd${attr_class(`flex items-center gap-2 ${stringify(TEXT[shown().signal])}`, "svelte-1qpvlew")}>`);
713
+ dot($$renderer2, shown().signal, "size-2.5");
714
+ $$renderer2.push(`<!---->${escape_html(SIGNAL_LABEL[shown().signal])}</dd></dl> `);
715
+ if (t.attention?.owner === "captain" || t.activity || t.summary) {
716
+ $$renderer2.push(`<!--[0--><p class="mt-3 text-sm text-muted-foreground svelte-1qpvlew">${escape_html(t.attention?.owner === "captain" ? t.attention.text : t.activity?.text ?? t.summary)}</p>`);
717
+ } else {
718
+ $$renderer2.push("<!--[-1-->");
719
+ }
720
+ $$renderer2.push(`<!--]--> <a${attr("href", `/tasks/${stringify(encodeURIComponent(t.id))}`)} class="mt-3 inline-flex items-center gap-1.5 text-sm font-medium text-sea hover:underline svelte-1qpvlew">Open the task`);
721
+ Arrow_right($$renderer2, { class: "size-4", "aria-hidden": "true" });
722
+ $$renderer2.push(`<!----></a></div>`);
723
+ } else {
724
+ $$renderer2.push("<!--[-1-->");
725
+ }
726
+ $$renderer2.push(`<!--]--></div>`);
727
+ });
728
+ }
729
+ function TaskCard($$renderer, $$props) {
730
+ $$renderer.component(($$renderer2) => {
731
+ let { task, projectName = null } = $$props;
732
+ const t = derived(() => tone(task));
733
+ const hint = derived(() => hintLine(task.build));
734
+ const files = derived(() => task.filesChanged ? `${task.filesChanged} ${plural(task.filesChanged, "file", "files")} changed` : null);
735
+ const round = derived(() => task.build?.rounds[0] ?? null);
736
+ let showQuestions = false;
737
+ const panelId = derived(() => `questions-${task.id}`);
738
+ const questions = derived(() => round() ? {
739
+ expanded: showQuestions,
740
+ controls: panelId(),
741
+ toggle: () => showQuestions = !showQuestions
742
+ } : null);
743
+ const lineAsks = derived(() => !!round() && (round().status === "waiting" || !!task.pipeline?.answered || !!task.pipeline?.gate));
744
+ let sample = null;
745
+ const showConsole = derived(() => consoleInImage(task));
746
+ const now = derived(() => nowLine(task, showConsole() ? sample : null, live.now));
747
+ const who = derived(() => agentLine(task.worker) ?? (task.status === "queued" ? "Not started" : "Crew unknown"));
748
+ const lead = derived(() => t() === "trouble" || t() === "firstmate" ? task.statusLabel : null);
749
+ const age = derived(() => !now()?.at ? null : now().source === "console" ? "live" : now().source === "pipeline" ? `started ${ago(now().at, live.now)}` : ago(now().at, live.now));
750
+ $$renderer2.push(`<article class="group relative min-w-0 rounded-lg border bg-card p-3 transition-colors duration-200 hover:border-input hover:shadow-[0_1px_0_var(--hair)] has-[a[data-card-link]:focus-visible]:ring-3 has-[a[data-card-link]:focus-visible]:ring-ring/50">`);
751
+ if (showConsole()) {
752
+ $$renderer2.push("<!--[0-->");
753
+ ConsoleWindow($$renderer2, { task, onsample: (s) => sample = s, class: "rounded-sm" });
754
+ } else {
755
+ $$renderer2.push("<!--[-1-->");
756
+ Thumb($$renderer2, { task, class: "rounded-sm" });
757
+ }
758
+ $$renderer2.push(`<!--]--> `);
759
+ ShotStrip($$renderer2, {
760
+ shots: task.shots,
761
+ total: task.screenshots,
762
+ skip: !showConsole() && task.thumb.kind === "screenshot" ? 1 : 0
763
+ });
764
+ $$renderer2.push(`<!----> <div class="px-1 pt-4 pb-1"><p class="truncate text-xs text-muted-foreground"${attr("title", who())}>`);
765
+ if (projectName) {
766
+ $$renderer2.push(`<!--[0--><span class="text-sea">${escape_html(projectName)}</span> ·`);
767
+ } else {
768
+ $$renderer2.push("<!--[-1-->");
769
+ }
770
+ $$renderer2.push(`<!--]-->${escape_html(who())}</p> <a${attr("href", `/tasks/${stringify(encodeURIComponent(task.id))}`)} data-card-link="" class="mt-0.5 line-clamp-2 leading-snug font-medium group-hover:underline after:absolute after:inset-0 after:rounded-lg after:content-[''] focus-visible:outline-none"${attr("title", task.title)}>${escape_html(task.shortTitle)}</a> `);
771
+ if (showsChecks(task)) {
772
+ $$renderer2.push(`<!--[0--><div class="mt-2">`);
773
+ ChecksStrip($$renderer2, {
774
+ pipeline: task.pipeline,
775
+ busy: task.busy,
776
+ lead: lead(),
777
+ leadClass: textClass[t()],
778
+ questions: lineAsks() ? questions() : null
779
+ });
780
+ $$renderer2.push(`<!----></div>`);
781
+ } else if (now()) {
782
+ $$renderer2.push(`<!--[1--><p${attr_class(`mt-1 line-clamp-2 text-sm ${stringify(lead() ? textClass[t()] : "text-muted-foreground")}`)}${attr("data-now", now().source)}>`);
783
+ if (lead()) {
784
+ $$renderer2.push(`<!--[0--><span class="font-medium">${escape_html(lead())}.</span>`);
785
+ } else {
786
+ $$renderer2.push("<!--[-1-->");
787
+ }
788
+ $$renderer2.push(`<!--]--> <span${attr_class(`font-medium ${lead() ? "" : "text-foreground/80"}`)}>Now:</span> ${escape_html(now().text)}`);
789
+ if (age()) {
790
+ $$renderer2.push(`<!--[0--><span class="text-muted-foreground">${escape_html(` · ${age()}`)}</span>`);
791
+ } else {
792
+ $$renderer2.push("<!--[-1-->");
793
+ }
794
+ $$renderer2.push(`<!--]--></p>`);
795
+ } else {
796
+ $$renderer2.push(`<!--[-1--><p${attr_class(`mt-1 line-clamp-1 text-sm ${stringify(lead() ? textClass[t()] : "text-muted-foreground")}`)}${attr("title", task.summary ?? void 0)}>${escape_html(lead() ?? task.summary ?? task.statusLabel)}</p>`);
797
+ }
798
+ $$renderer2.push(`<!--]--> <div class="mt-4">`);
799
+ StageTrack($$renderer2, { task });
800
+ $$renderer2.push(`<!----></div> `);
801
+ if (task.eta) {
802
+ $$renderer2.push(`<!--[0--><div class="mt-3">`);
803
+ EtaLine($$renderer2, { eta: task.eta });
804
+ $$renderer2.push(`<!----></div>`);
805
+ } else {
806
+ $$renderer2.push("<!--[-1-->");
807
+ }
808
+ $$renderer2.push(`<!--]--> `);
809
+ if (files() || hint()) {
810
+ $$renderer2.push(`<!--[0--><p class="tabular mt-3 text-xs text-muted-foreground"${attr("data-build-hint", hint() ? "" : void 0)}>`);
811
+ if (files()) {
812
+ $$renderer2.push(`<!--[0-->${escape_html(files())}`);
813
+ } else {
814
+ $$renderer2.push("<!--[-1-->");
815
+ }
816
+ $$renderer2.push(`<!--]-->`);
817
+ if (files() && hint()?.questions) {
818
+ $$renderer2.push(`<!--[0--> · `);
819
+ } else {
820
+ $$renderer2.push("<!--[-1-->");
821
+ }
822
+ $$renderer2.push(`<!--]-->`);
823
+ if (hint()?.questions) {
824
+ $$renderer2.push("<!--[0-->");
825
+ if (questions()) {
826
+ $$renderer2.push(`<!--[0--><button type="button" class="relative z-10 cursor-pointer underline decoration-muted-foreground/40 underline-offset-2 hover:text-foreground hover:decoration-foreground"${attr("aria-expanded", questions().expanded)}${attr("aria-controls", panelId())} data-build-questions="">${escape_html(hint().questions)}</button>`);
827
+ } else {
828
+ $$renderer2.push(`<!--[-1--><a${attr("href", `/tasks/${stringify(encodeURIComponent(task.id))}?tab=talk`)} class="relative z-10 hover:text-foreground hover:underline" data-build-questions="">${escape_html(hint().questions)}</a>`);
829
+ }
830
+ $$renderer2.push(`<!--]-->`);
831
+ } else {
832
+ $$renderer2.push("<!--[-1-->");
833
+ }
834
+ $$renderer2.push(`<!--]-->`);
835
+ if ((files() || hint()?.questions) && hint()?.docs) {
836
+ $$renderer2.push(`<!--[0--> · `);
837
+ } else {
838
+ $$renderer2.push("<!--[-1-->");
839
+ }
840
+ $$renderer2.push(`<!--]-->`);
841
+ if (hint()?.docs) {
842
+ $$renderer2.push(`<!--[0--><a${attr("href", `/tasks/${stringify(encodeURIComponent(task.id))}?tab=docs`)} class="relative z-10 hover:text-foreground hover:underline" data-build-docs="">${escape_html(hint().docs)}</a>`);
843
+ } else {
844
+ $$renderer2.push("<!--[-1-->");
845
+ }
846
+ $$renderer2.push(`<!--]--></p>`);
847
+ } else {
848
+ $$renderer2.push("<!--[-1-->");
849
+ }
850
+ $$renderer2.push(`<!--]--> `);
851
+ if (round() && showQuestions) {
852
+ $$renderer2.push(`<!--[0--><section${attr("id", panelId())} class="relative z-10 mt-3 rounded-md border border-hair bg-panel p-2.5" aria-label="Questions for Firstmate" data-card-questions=""><p class="text-xs font-medium">Questions for Firstmate</p> <p class="mt-0.5 mb-2 text-xs text-muted-foreground">${escape_html(roundLine(round(), live.now))}</p> `);
853
+ QuestionList($$renderer2, { questions: round().questions, size: "card" });
854
+ $$renderer2.push(`<!----> <a${attr("href", `/tasks/${stringify(encodeURIComponent(task.id))}?tab=talk`)} class="mt-2 inline-block text-xs text-muted-foreground hover:text-foreground hover:underline">${escape_html(task.build && task.build.rounds.length > 1 ? `Earlier questions are in the conversation` : "Open the conversation")}</a></section>`);
855
+ } else {
856
+ $$renderer2.push("<!--[-1-->");
857
+ }
858
+ $$renderer2.push(`<!--]--> `);
859
+ if (task.pr) {
860
+ $$renderer2.push(`<!--[0--><a${attr("href", `/tasks/${stringify(encodeURIComponent(task.id))}/review`)} class="relative z-10 mt-3 inline-flex items-center gap-1.5 text-xs text-sea hover:underline" data-review-pr="">`);
861
+ Compass($$renderer2, { class: "size-3.5", "aria-hidden": "true" });
862
+ $$renderer2.push(`<!---->Review PR${escape_html(task.pr.number ? ` #${task.pr.number}` : "")}</a>`);
863
+ } else {
864
+ $$renderer2.push("<!--[-1-->");
865
+ }
866
+ $$renderer2.push(`<!--]--> `);
867
+ if (task.preview) {
868
+ $$renderer2.push("<!--[0-->");
869
+ CardPreview($$renderer2, { task });
870
+ } else {
871
+ $$renderer2.push("<!--[-1-->");
872
+ }
873
+ $$renderer2.push(`<!--]--></div></article>`);
874
+ });
875
+ }
876
+ function CompactCard($$renderer, $$props) {
877
+ $$renderer.component(($$renderer2) => {
878
+ let { task, projectName } = $$props;
879
+ const t = derived(() => tone(task));
880
+ const asked = derived(() => task.build?.questions ?? 0);
881
+ const open = derived(() => task.build?.open ?? 0);
882
+ $$renderer2.push(`<article${attr_class(`group relative flex min-w-0 flex-col rounded-lg border bg-card px-3.5 pt-3 pb-3.5 transition-colors duration-200 hover:border-input hover:shadow-[0_1px_0_var(--hair)] has-[a[data-card-link]:focus-visible]:ring-3 has-[a[data-card-link]:focus-visible]:ring-ring/50 ${t() === "you" ? "border-t-2 border-t-sea" : ""}`)} data-compact-card=""><div class="flex min-w-0 items-center justify-between gap-2 text-xs"><span class="min-w-0 truncate rounded-sm border border-hair bg-panel px-1.5 py-0.5 text-sea"${attr("title", projectName)}>${escape_html(projectName)}</span> <span${attr_class(`flex shrink-0 items-center gap-1.5 ${stringify(textClass[t()])}`)}><span${attr_class(`size-1.5 rounded-full ${stringify(dotClass[t()])}`)} aria-hidden="true"></span>${escape_html(task.statusLabel)}</span></div> <a${attr("href", `/tasks/${stringify(encodeURIComponent(task.id))}`)} data-card-link="" class="mt-2 line-clamp-2 leading-snug font-medium group-hover:underline after:absolute after:inset-0 after:rounded-lg after:content-[''] focus-visible:outline-none"${attr("title", task.title)}>${escape_html(task.shortTitle)}</a> <div class="mt-auto pt-3.5">`);
883
+ StageTrack($$renderer2, { task });
884
+ $$renderer2.push(`<!----></div> `);
885
+ if (asked()) {
886
+ $$renderer2.push(`<!--[0--><p class="tabular mt-3 flex items-center gap-1.5 text-xs text-muted-foreground">`);
887
+ Message_circle_question_mark($$renderer2, { class: "size-3.5", "aria-hidden": "true" });
888
+ $$renderer2.push(`<!----> ${escape_html(asked())}
889
+ ${escape_html(plural(asked(), "question", "questions"))}`);
890
+ if (open()) {
891
+ $$renderer2.push(`<!--[0--><span class="text-warning">${escape_html(` · ${open()} open`)}</span>`);
892
+ } else {
893
+ $$renderer2.push("<!--[-1-->");
894
+ }
895
+ $$renderer2.push(`<!--]--></p>`);
896
+ } else {
897
+ $$renderer2.push("<!--[-1-->");
898
+ }
899
+ $$renderer2.push(`<!--]--> `);
900
+ if (task.pr) {
901
+ $$renderer2.push(`<!--[0--><a${attr("href", `/tasks/${stringify(encodeURIComponent(task.id))}/review`)} class="relative z-10 mt-2 inline-flex items-center gap-1.5 self-start text-xs text-sea hover:underline" data-review-pr="">`);
902
+ Compass($$renderer2, { class: "size-3.5", "aria-hidden": "true" });
903
+ $$renderer2.push(`<!---->Review PR${escape_html(task.pr.number ? ` #${task.pr.number}` : "")}</a>`);
904
+ } else {
905
+ $$renderer2.push("<!--[-1-->");
906
+ }
907
+ $$renderer2.push(`<!--]--></article>`);
908
+ });
909
+ }
910
+ function TaskTable($$renderer, $$props) {
911
+ $$renderer.component(($$renderer2) => {
912
+ let { tasks, projectName, sort, onsort, now, label } = $$props;
913
+ const rows = derived(() => sortTasks(tasks, sort, projectName));
914
+ const when = (t) => isCompleted(t) ? completedAt(t) : updatedAt(t);
915
+ const iso = (ms2) => ms2 === null ? null : new Date(ms2).toISOString();
916
+ const COLUMNS = [
917
+ { key: "task", label: "Task" },
918
+ {
919
+ key: "project",
920
+ label: "Project",
921
+ class: "hidden w-[10%] md:table-cell"
922
+ },
923
+ {
924
+ key: "stage",
925
+ label: "Stage",
926
+ class: "hidden w-[16%] sm:table-cell"
927
+ },
928
+ { key: "status", label: "Status", class: "w-[45%] sm:w-[19%]" },
929
+ {
930
+ key: "waiting",
931
+ label: "Waiting on",
932
+ class: "hidden w-[11%] lg:table-cell"
933
+ },
934
+ {
935
+ key: "updated",
936
+ label: "Updated",
937
+ class: "hidden w-[12%] md:table-cell"
938
+ }
939
+ ];
940
+ $$renderer2.push(`<div class="overflow-hidden rounded-lg border bg-card"><table class="w-full table-fixed text-sm"${attr("aria-label", label)} data-task-table=""><thead class="border-b border-hair bg-panel text-xs text-muted-foreground"><tr><!--[-->`);
941
+ const each_array = ensure_array_like(COLUMNS);
942
+ for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {
943
+ let c = each_array[$$index];
944
+ SortHeader($$renderer2, {
945
+ label: c.label,
946
+ column: c.key,
947
+ sort,
948
+ firstDir: TASK_FIRST_DIR[c.key],
949
+ onsort,
950
+ class: c.class
951
+ });
952
+ }
953
+ $$renderer2.push(`<!--]--></tr></thead><tbody><!--[-->`);
954
+ const each_array_1 = ensure_array_like(rows());
955
+ for (let $$index_2 = 0, $$length = each_array_1.length; $$index_2 < $$length; $$index_2++) {
956
+ let t = each_array_1[$$index_2];
957
+ const tn = tone(t);
958
+ const step = t.passage.steps[t.passage.current];
959
+ const w = waitingOn(t);
960
+ const at = iso(when(t));
961
+ $$renderer2.push(`<tr class="border-b border-hair last:border-0 hover:bg-accent/40"><td class="py-2.5 pr-3 pl-4"><a${attr("href", `/tasks/${stringify(encodeURIComponent(t.id))}`)} class="block truncate font-medium hover:underline focus-visible:underline focus-visible:outline-none"${attr("title", t.title)}>${escape_html(t.shortTitle)}</a></td><td class="hidden px-3 py-2.5 md:table-cell"><span class="block truncate text-sea">${escape_html(projectName(t))}</span></td><td class="hidden px-3 py-2.5 sm:table-cell"><span class="flex min-w-0 items-center gap-2"${attr("title", `Step ${stringify(t.passage.current + 1)} of ${stringify(t.passage.steps.length)}`)}><span class="flex shrink-0 items-center gap-0.5" aria-hidden="true"><!--[-->`);
962
+ const each_array_2 = ensure_array_like(t.passage.steps);
963
+ for (let $$index_1 = 0, $$length2 = each_array_2.length; $$index_1 < $$length2; $$index_1++) {
964
+ let s = each_array_2[$$index_1];
965
+ $$renderer2.push(`<span${attr_class(`size-1.5 rounded-full ${stringify(s.state === "current" ? s.failed ? "bg-danger" : dotClass[tn] : s.state === "done" ? "bg-foreground/45" : "border border-border")}`)}></span>`);
966
+ }
967
+ $$renderer2.push(`<!--]--></span> <span${attr_class(`truncate ${step?.failed ? "text-danger" : ""}`)}>${escape_html(step?.label ?? "")}${escape_html(step?.failed ? " failed" : "")}</span></span></td><td class="px-3 py-2.5"><span${attr_class(`flex min-w-0 items-center gap-1.5 ${stringify(textClass[tn])}`)}><span${attr_class(`size-1.5 shrink-0 rounded-full ${stringify(dotClass[tn])}`)} aria-hidden="true"></span><span class="truncate">${escape_html(t.statusLabel)}</span></span></td><td${attr_class(`hidden truncate px-3 py-2.5 lg:table-cell ${w.who === "you" ? "font-medium text-sea" : "text-muted-foreground"}`)}>${escape_html(w.label)}</td><td class="tabular hidden truncate py-2.5 pr-4 pl-3 text-muted-foreground md:table-cell"${attr("title", at ? new Date(at).toLocaleString() : void 0)}>${escape_html(at ? ago(at, now) : "—")}</td></tr>`);
968
+ }
969
+ $$renderer2.push(`<!--]--></tbody></table></div>`);
970
+ });
971
+ }
972
+ function projectName_($$renderer, p) {
973
+ $$renderer.push(`<a${attr("href", `/?project=${stringify(encodeURIComponent(p.id))}`)} class="hover:underline"><h2${attr("id", `proj-${stringify(p.id)}`)} class="font-display text-[1.45rem] font-medium">${escape_html(p.name)}</h2></a>`);
974
+ }
975
+ function projectDescription($$renderer, p) {
976
+ $$renderer.push(`<span class="text-sm text-muted-foreground">${escape_html(p.description)}</span>`);
977
+ }
978
+ function projectPassage($$renderer, p) {
979
+ $$renderer.push(`<a${attr("href", `/projects/${stringify(encodeURIComponent(p.id))}/passage`)}${attr_class(`text-sm hover:underline ${p.passage?.problems ? "text-danger" : p.passage?.needsConsent ? "text-sea" : "text-muted-foreground"}`)}>${escape_html(p.passage?.problems ? "Passage file has problems" : p.passage?.needsConsent ? "Passage checks need enabling" : p.passage?.custom ? "Custom passage" : "Passage")}</a>`);
980
+ }
981
+ function projectPath($$renderer, p) {
982
+ $$renderer.push(`<span class="ml-auto truncate font-mono text-xs text-muted-foreground">${escape_html(p.path)}</span>`);
983
+ }
984
+ function _page($$renderer, $$props) {
985
+ $$renderer.component(($$renderer2) => {
986
+ let { data } = $$props;
987
+ const fleet = derived(currentFleet);
988
+ const view = derived(() => {
989
+ const v = page.url.searchParams.get("view");
990
+ return v === "passage" || v === "radar" ? v : "cards";
991
+ });
992
+ const showing = derived(() => shelfOf(page.url.searchParams.get("view")));
993
+ const scope = derived(() => page.url.searchParams.get("project"));
994
+ const projects = derived(() => fleet()?.projects ?? []);
995
+ const scoped = derived(() => scope() ? projects().find((p) => p.id === scope()) ?? null : null);
996
+ const tasks = derived(() => (fleet()?.tasks ?? []).filter((t) => !scope() || t.projectId === scope()));
997
+ const report = derived(() => harbour(tasks(), live.now));
998
+ const open = derived(() => shelf(tasks(), "under-way"));
999
+ const h = derived(() => harbour(open(), live.now));
1000
+ const completed = derived(() => shelf(tasks(), "completed"));
1001
+ const projectName = (t) => scope() ? null : projects().find((p) => p.id === t.projectId)?.name ?? t.projectId;
1002
+ const nameOf = (t) => projects().find((p) => p.id === t.projectId)?.name ?? t.projectId;
1003
+ let picked = null;
1004
+ const layout = derived(() => picked ?? data.layout);
1005
+ const LAYOUTS = [
1006
+ { value: "large", label: "Large", icon: Rectangle_horizontal },
1007
+ { value: "compact", label: "Compact", icon: Grid_3x3 },
1008
+ { value: "list", label: "List", icon: List }
1009
+ ];
1010
+ function pickLayout(v) {
1011
+ picked = v;
1012
+ rememberView(VIEW_COOKIE.harbour, v);
1013
+ }
1014
+ let sort = { key: "status", dir: "asc" };
1015
+ const entries = (p) => slots.entries(slotKey.project(p.id), data.slots, data.slotsAt);
1016
+ const tabs = (p) => entries(p).filter((e) => e.slot === "project.tab");
1017
+ const cards = (p) => entries(p).filter((e) => e.slot === "harbour.card");
1018
+ const tabHref = (p, e) => projectTabHref(p.id, e);
1019
+ const headerParts = (p) => [
1020
+ { id: "name", render: projectName_, show: true },
1021
+ {
1022
+ id: "description",
1023
+ render: projectDescription,
1024
+ show: !!p.description
1025
+ },
1026
+ { id: "tabs", render: projectTabs, show: tabs(p).length > 0 },
1027
+ {
1028
+ id: "passage",
1029
+ render: projectPassage,
1030
+ show: p.id !== "unassigned"
1031
+ },
1032
+ { id: "path", render: projectPath, show: !!p.path }
1033
+ ].filter((x) => x.show);
1034
+ let showOlder = false;
1035
+ const href = (v) => {
1036
+ const q = [
1037
+ scope() ? `project=${encodeURIComponent(scope())}` : null,
1038
+ v ? `view=${encodeURIComponent(v)}` : null
1039
+ ].filter(Boolean);
1040
+ return q.length ? `/harbour?${q.join("&")}` : "/harbour";
1041
+ };
1042
+ function board($$renderer3, list, label, kind = "task") {
1043
+ if (layout() === "list") {
1044
+ $$renderer3.push("<!--[0-->");
1045
+ TaskTable($$renderer3, {
1046
+ tasks: list,
1047
+ projectName: nameOf,
1048
+ sort,
1049
+ onsort: (s) => sort = s,
1050
+ now: live.now,
1051
+ label
1052
+ });
1053
+ } else if (layout() === "compact") {
1054
+ $$renderer3.push(`<!--[1--><div class="grid gap-3 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 2xl:grid-cols-5"><!--[-->`);
1055
+ const each_array = ensure_array_like(list);
1056
+ for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {
1057
+ let t = each_array[$$index];
1058
+ CompactCard($$renderer3, { task: t, projectName: nameOf(t) });
1059
+ }
1060
+ $$renderer3.push(`<!--]--></div>`);
1061
+ } else if (kind === "move") {
1062
+ $$renderer3.push(`<!--[2--><div class="grid gap-5 md:grid-cols-2 lg:grid-cols-3 2xl:grid-cols-4"><!--[-->`);
1063
+ const each_array_1 = ensure_array_like(list);
1064
+ for (let $$index_1 = 0, $$length = each_array_1.length; $$index_1 < $$length; $$index_1++) {
1065
+ let t = each_array_1[$$index_1];
1066
+ MoveCard($$renderer3, { task: t, projectName: projectName(t) });
1067
+ }
1068
+ $$renderer3.push(`<!--]--></div>`);
1069
+ } else {
1070
+ $$renderer3.push(`<!--[-1--><div class="grid gap-5 sm:grid-cols-2 lg:grid-cols-3 2xl:grid-cols-4"><!--[-->`);
1071
+ const each_array_2 = ensure_array_like(list);
1072
+ for (let $$index_2 = 0, $$length = each_array_2.length; $$index_2 < $$length; $$index_2++) {
1073
+ let t = each_array_2[$$index_2];
1074
+ TaskCard($$renderer3, {
1075
+ task: t,
1076
+ projectName: kind === "named" ? projectName(t) : null
1077
+ });
1078
+ }
1079
+ $$renderer3.push(`<!--]--></div>`);
1080
+ }
1081
+ $$renderer3.push(`<!--]-->`);
1082
+ }
1083
+ function work($$renderer3, list) {
1084
+ const under = h().underWay.filter((t) => list.includes(t));
1085
+ const queued = h().queued.filter((t) => list.includes(t));
1086
+ const landed = h().landedRecent.filter((t) => list.includes(t));
1087
+ const older = h().landedOlder.filter((t) => list.includes(t));
1088
+ if (under.length) {
1089
+ $$renderer3.push(`<!--[0--><h3 class="section-label mb-3">Under way <span class="tabular">${escape_html(under.length)}</span></h3> `);
1090
+ board($$renderer3, under, "Under way");
1091
+ $$renderer3.push(`<!---->`);
1092
+ } else {
1093
+ $$renderer3.push("<!--[-1-->");
1094
+ }
1095
+ $$renderer3.push(`<!--]--> `);
1096
+ if (queued.length) {
1097
+ $$renderer3.push(`<!--[0--><p class="mt-4 text-sm text-muted-foreground">Queued next: <!--[-->`);
1098
+ const each_array_3 = ensure_array_like(queued);
1099
+ for (let i = 0, $$length = each_array_3.length; i < $$length; i++) {
1100
+ let t = each_array_3[i];
1101
+ $$renderer3.push(`<a class="hover:text-foreground hover:underline"${attr("href", `/tasks/${stringify(encodeURIComponent(t.id))}`)}>${escape_html(t.shortTitle)}</a>${escape_html(i < queued.length - 1 ? ", " : ".")}`);
1102
+ }
1103
+ $$renderer3.push(`<!--]--></p>`);
1104
+ } else {
1105
+ $$renderer3.push("<!--[-1-->");
1106
+ }
1107
+ $$renderer3.push(`<!--]--> `);
1108
+ if (landed.length || showOlder) {
1109
+ $$renderer3.push(`<!--[0--><h3 class="section-label mt-8 mb-3">Landed <span class="tabular">${escape_html(landed.length + 0)}</span></h3> `);
1110
+ board($$renderer3, landed, "Landed");
1111
+ $$renderer3.push(`<!---->`);
1112
+ } else {
1113
+ $$renderer3.push("<!--[-1-->");
1114
+ }
1115
+ $$renderer3.push(`<!--]--> `);
1116
+ if (older.length && !showOlder) {
1117
+ $$renderer3.push(`<!--[0--><button class="mt-4 text-sm text-muted-foreground hover:text-foreground hover:underline">Show ${escape_html(older.length)} older landed ${escape_html(older.length === 1 ? "task" : "tasks")}</button>`);
1118
+ } else {
1119
+ $$renderer3.push("<!--[-1-->");
1120
+ }
1121
+ $$renderer3.push(`<!--]--> `);
1122
+ if (!under.length && !queued.length && !landed.length && !older.length) {
1123
+ $$renderer3.push(`<!--[0--><p class="text-sm text-muted-foreground">Nothing else in harbour right now.</p>`);
1124
+ } else {
1125
+ $$renderer3.push("<!--[-1-->");
1126
+ }
1127
+ $$renderer3.push(`<!--]-->`);
1128
+ }
1129
+ function done($$renderer3, list) {
1130
+ board($$renderer3, list, "Completed");
1131
+ }
1132
+ function projectTabs($$renderer3, p) {
1133
+ $$renderer3.push(`<span class="flex flex-wrap gap-1.5" data-slot="project.tab"><!--[-->`);
1134
+ const each_array_4 = ensure_array_like(tabs(p));
1135
+ for (let $$index_4 = 0, $$length = each_array_4.length; $$index_4 < $$length; $$index_4++) {
1136
+ let e = each_array_4[$$index_4];
1137
+ $$renderer3.push(`<a${attr("href", tabHref(p, e))} class="rounded-md border px-2 py-0.5 text-xs text-muted-foreground hover:bg-accent hover:text-foreground">${escape_html(e.title)}</a>`);
1138
+ }
1139
+ $$renderer3.push(`<!--]--></span>`);
1140
+ }
1141
+ function harbourCards($$renderer3, p) {
1142
+ const list = cards(p);
1143
+ if (list.length) {
1144
+ $$renderer3.push(`<!--[0--><div class="mb-8 grid gap-3 sm:grid-cols-2 lg:grid-cols-3 2xl:grid-cols-4"><!--[-->`);
1145
+ const each_array_5 = ensure_array_like(list);
1146
+ for (let $$index_5 = 0, $$length = each_array_5.length; $$index_5 < $$length; $$index_5++) {
1147
+ let e = each_array_5[$$index_5];
1148
+ $$renderer3.push(`<div class="min-w-0 rounded-xl border bg-card px-4 py-3" data-slot="harbour.card"><p class="mb-2 text-xs font-medium text-muted-foreground">${escape_html(e.title)}</p> `);
1149
+ SlotContent($$renderer3, { entry: e, now: live.now });
1150
+ $$renderer3.push(`<!----></div>`);
1151
+ }
1152
+ $$renderer3.push(`<!--]--></div>`);
1153
+ } else {
1154
+ $$renderer3.push("<!--[-1-->");
1155
+ }
1156
+ $$renderer3.push(`<!--]-->`);
1157
+ }
1158
+ function scopedTabs($$renderer3, p) {
1159
+ const list = tabs(p);
1160
+ if (list.length) {
1161
+ $$renderer3.push(`<!--[0--><nav class="mt-8 flex gap-1 border-b text-sm"${attr("aria-label", `${stringify(p.name)} views`)}><a${attr("href", href(null))} aria-current="page" class="-mb-px border-b-2 border-foreground px-3 py-2 font-medium">Work</a> <!--[-->`);
1162
+ const each_array_6 = ensure_array_like(list);
1163
+ for (let $$index_6 = 0, $$length = each_array_6.length; $$index_6 < $$length; $$index_6++) {
1164
+ let e = each_array_6[$$index_6];
1165
+ $$renderer3.push(`<a${attr("href", tabHref(p, e))} class="-mb-px border-b-2 border-transparent px-3 py-2 text-muted-foreground hover:text-foreground">${escape_html(e.title)}</a>`);
1166
+ }
1167
+ $$renderer3.push(`<!--]--></nav>`);
1168
+ } else {
1169
+ $$renderer3.push("<!--[-1-->");
1170
+ }
1171
+ $$renderer3.push(`<!--]-->`);
1172
+ }
1173
+ function section($$renderer3, p, list) {
1174
+ $$renderer3.push(`<section class="surface mt-6 p-5 sm:p-6"${attr("aria-labelledby", `proj-${stringify(p.id)}`)}><div class="mb-6 flex flex-wrap items-baseline gap-x-3 gap-y-1"><!--[-->`);
1175
+ const each_array_7 = ensure_array_like(headerParts(p));
1176
+ for (let $$index_7 = 0, $$length = each_array_7.length; $$index_7 < $$length; $$index_7++) {
1177
+ let part = each_array_7[$$index_7];
1178
+ part.render($$renderer3, p);
1179
+ $$renderer3.push(`<!---->`);
1180
+ }
1181
+ $$renderer3.push(`<!--]--></div> `);
1182
+ harbourCards($$renderer3, p);
1183
+ $$renderer3.push(`<!----> `);
1184
+ work($$renderer3, list);
1185
+ $$renderer3.push(`<!----></section>`);
1186
+ }
1187
+ head("162hjno", $$renderer2, ($$renderer3) => {
1188
+ $$renderer3.title(($$renderer4) => {
1189
+ $$renderer4.push(`<title>${escape_html(scoped() ? `${scoped().name} · ` : "")}Harbour · Wheelhouse</title>`);
1190
+ });
1191
+ });
1192
+ $$renderer2.push(`<main class="px-4 pt-6 pb-24 sm:px-6 lg:px-10"><header${attr_class(`surface px-5 sm:px-6 ${view() === "radar" ? "py-4" : "py-6"}`)}><div${attr_class(`flex flex-wrap items-end justify-between ${view() === "radar" ? "gap-3" : "gap-6"}`)}><div class="max-w-3xl"><p class="font-display text-base text-muted-foreground italic">${escape_html(scoped() ? scoped().name : "All projects")}, watch report${escape_html(fleet()?.collectedAt ? ` at ${clock(fleet().collectedAt)}` : "")}`);
1193
+ if (scoped() && scoped().id !== "unassigned") {
1194
+ $$renderer2.push(`<!--[0--> · `);
1195
+ projectPassage($$renderer2, scoped());
1196
+ $$renderer2.push(`<!---->`);
1197
+ } else {
1198
+ $$renderer2.push("<!--[-1-->");
1199
+ }
1200
+ $$renderer2.push(`<!--]--></p> `);
1201
+ if (fleet()?.collectedAt) {
1202
+ $$renderer2.push(`<!--[0--><h1${attr_class(`leading-tight text-balance ${view() === "radar" ? "mt-1 text-xl" : "mt-2 text-[2.1rem]"}`)}>${escape_html(headline(report()))}</h1>`);
1203
+ } else {
1204
+ $$renderer2.push(`<!--[-1--><h1 class="mt-2 text-[2.1rem] leading-tight text-balance text-muted-foreground">Waiting for the first read of Firstmate…</h1>`);
1205
+ }
1206
+ $$renderer2.push(`<!--]--></div> <div class="flex rounded-md border bg-card p-0.5 text-sm" role="tablist" aria-label="View"><a${attr("href", href(null))} role="tab"${attr("aria-selected", view() === "cards")}${attr_class(`inline-flex items-center gap-1.5 rounded-sm px-3 py-1.5 ${view() === "cards" ? "bg-primary font-medium text-primary-foreground" : "text-muted-foreground hover:text-foreground"}`)}>`);
1207
+ Layout_grid($$renderer2, { class: "size-4" });
1208
+ $$renderer2.push(`<!---->Harbour</a> <a${attr("href", href("passage"))} role="tab"${attr("aria-selected", view() === "passage")}${attr_class(`inline-flex items-center gap-1.5 rounded-sm px-3 py-1.5 ${view() === "passage" ? "bg-primary font-medium text-primary-foreground" : "text-muted-foreground hover:text-foreground"}`)}>`);
1209
+ Waypoints($$renderer2, { class: "size-4" });
1210
+ $$renderer2.push(`<!---->Passage</a> <a${attr("href", href("radar"))} role="tab"${attr("aria-selected", view() === "radar")}${attr_class(`inline-flex items-center gap-1.5 rounded-sm px-3 py-1.5 ${view() === "radar" ? "bg-primary font-medium text-primary-foreground" : "text-muted-foreground hover:text-foreground"}`)}>`);
1211
+ Radar($$renderer2, { class: "size-4" });
1212
+ $$renderer2.push(`<!---->Radar</a></div></div> `);
1213
+ if (scoped() && view() === "cards") {
1214
+ $$renderer2.push("<!--[0-->");
1215
+ scopedTabs($$renderer2, scoped());
1216
+ } else {
1217
+ $$renderer2.push("<!--[-1-->");
1218
+ }
1219
+ $$renderer2.push(`<!--]--> `);
1220
+ if (view() === "cards") {
1221
+ $$renderer2.push(`<!--[0--><div class="mt-8 flex flex-wrap items-center justify-between gap-3"><div class="flex rounded-md border bg-card p-0.5 text-sm max-sm:w-full" role="tablist" aria-label="Show"><!--[-->`);
1222
+ const each_array_8 = ensure_array_like([
1223
+ ["under-way", "Under way", null],
1224
+ ["completed", "Completed", "completed"]
1225
+ ]);
1226
+ for (let $$index_8 = 0, $$length = each_array_8.length; $$index_8 < $$length; $$index_8++) {
1227
+ let [s, label, v] = each_array_8[$$index_8];
1228
+ $$renderer2.push(`<a${attr("href", href(v))} role="tab"${attr("aria-selected", showing() === s)}${attr_class(`flex-1 rounded-sm px-3 py-1.5 text-center whitespace-nowrap ${showing() === s ? "bg-primary font-medium text-primary-foreground" : "text-muted-foreground hover:text-foreground"}`)}>${escape_html(label)}</a>`);
1229
+ }
1230
+ $$renderer2.push(`<!--]--></div> `);
1231
+ ViewToggle($$renderer2, {
1232
+ options: LAYOUTS,
1233
+ value: layout(),
1234
+ onchange: pickLayout,
1235
+ label: "Layout"
1236
+ });
1237
+ $$renderer2.push(`<!----></div>`);
1238
+ } else {
1239
+ $$renderer2.push("<!--[-1-->");
1240
+ }
1241
+ $$renderer2.push(`<!--]--></header> `);
1242
+ if (view() === "passage") {
1243
+ $$renderer2.push(`<!--[0--><div class="surface mt-6 p-5 sm:p-6">`);
1244
+ PassageChart($$renderer2, { tasks: tasks(), projects: scoped() ? [scoped()] : projects() });
1245
+ $$renderer2.push(`<!----></div>`);
1246
+ } else if (view() === "radar") {
1247
+ $$renderer2.push(`<!--[1--><section class="surface mt-4 p-4 sm:p-5" aria-labelledby="radar"><h2 id="radar" class="section-label mb-3">Fleet radar</h2> `);
1248
+ RadarBoard($$renderer2, {
1249
+ tasks: tasks(),
1250
+ projects: projects(),
1251
+ now: live.now,
1252
+ connection: live.connection
1253
+ });
1254
+ $$renderer2.push(`<!----></section>`);
1255
+ } else if (showing() === "completed") {
1256
+ $$renderer2.push("<!--[2-->");
1257
+ if (scoped()) {
1258
+ $$renderer2.push(`<!--[0--><section class="surface mt-6 p-5 sm:p-6">`);
1259
+ done($$renderer2, completed());
1260
+ $$renderer2.push(`<!----></section>`);
1261
+ } else {
1262
+ $$renderer2.push(`<!--[-1--><!--[-->`);
1263
+ const each_array_9 = ensure_array_like(projects());
1264
+ for (let $$index_10 = 0, $$length = each_array_9.length; $$index_10 < $$length; $$index_10++) {
1265
+ let p = each_array_9[$$index_10];
1266
+ const list = completed().filter((t) => t.projectId === p.id);
1267
+ if (list.length) {
1268
+ $$renderer2.push(`<!--[0--><section class="surface mt-6 p-5 sm:p-6"${attr("aria-labelledby", `proj-${stringify(p.id)}`)}><div class="mb-6 flex flex-wrap items-baseline gap-x-3 gap-y-1"><!--[-->`);
1269
+ const each_array_10 = ensure_array_like(headerParts(p));
1270
+ for (let $$index_9 = 0, $$length2 = each_array_10.length; $$index_9 < $$length2; $$index_9++) {
1271
+ let part = each_array_10[$$index_9];
1272
+ part.render($$renderer2, p);
1273
+ $$renderer2.push(`<!---->`);
1274
+ }
1275
+ $$renderer2.push(`<!--]--></div> `);
1276
+ done($$renderer2, list);
1277
+ $$renderer2.push(`<!----></section>`);
1278
+ } else {
1279
+ $$renderer2.push("<!--[-1-->");
1280
+ }
1281
+ $$renderer2.push(`<!--]-->`);
1282
+ }
1283
+ $$renderer2.push(`<!--]-->`);
1284
+ }
1285
+ $$renderer2.push(`<!--]--> `);
1286
+ if (fleet()?.collectedAt && !completed().length) {
1287
+ $$renderer2.push(`<!--[0--><p class="surface mt-6 p-5 text-muted-foreground sm:p-6">Nothing completed${escape_html(scoped() ? " in this project" : "")} yet.</p>`);
1288
+ } else {
1289
+ $$renderer2.push("<!--[-1-->");
1290
+ }
1291
+ $$renderer2.push(`<!--]-->`);
1292
+ } else {
1293
+ $$renderer2.push("<!--[-1-->");
1294
+ if (h().needsYou.length) {
1295
+ $$renderer2.push(`<!--[0--><section class="surface mt-6 p-5 sm:p-6" aria-labelledby="your-move"><h2 id="your-move" class="section-label mb-4 text-sea">Your move</h2> `);
1296
+ board($$renderer2, h().needsYou, "Your move", "move");
1297
+ $$renderer2.push(`<!----></section>`);
1298
+ } else {
1299
+ $$renderer2.push("<!--[-1-->");
1300
+ }
1301
+ $$renderer2.push(`<!--]--> `);
1302
+ if (h().waitingOnFirstmate.length) {
1303
+ $$renderer2.push(`<!--[0--><section class="surface mt-6 p-5 sm:p-6" aria-labelledby="with-firstmate"><h2 id="with-firstmate" class="section-label">Waiting on Firstmate</h2> <p class="mt-1 mb-4 text-sm text-muted-foreground">A worker raised a decision. Firstmate handles it first and brings it to you if it needs
1304
+ you.</p> `);
1305
+ board($$renderer2, h().waitingOnFirstmate, "Waiting on Firstmate", "named");
1306
+ $$renderer2.push(`<!----></section>`);
1307
+ } else {
1308
+ $$renderer2.push("<!--[-1-->");
1309
+ }
1310
+ $$renderer2.push(`<!--]--> `);
1311
+ if (scoped()) {
1312
+ $$renderer2.push(`<!--[0--><section class="surface mt-6 p-5 sm:p-6">`);
1313
+ harbourCards($$renderer2, scoped());
1314
+ $$renderer2.push(`<!---->`);
1315
+ work($$renderer2, open());
1316
+ $$renderer2.push(`<!----></section>`);
1317
+ } else {
1318
+ $$renderer2.push(`<!--[-1--><!--[-->`);
1319
+ const each_array_11 = ensure_array_like(projects());
1320
+ for (let $$index_11 = 0, $$length = each_array_11.length; $$index_11 < $$length; $$index_11++) {
1321
+ let p = each_array_11[$$index_11];
1322
+ const list = open().filter((t) => t.projectId === p.id);
1323
+ if (list.some((t) => !h().needsYou.includes(t) && !h().waitingOnFirstmate.includes(t))) {
1324
+ $$renderer2.push("<!--[0-->");
1325
+ section($$renderer2, p, list);
1326
+ } else {
1327
+ $$renderer2.push("<!--[-1-->");
1328
+ }
1329
+ $$renderer2.push(`<!--]-->`);
1330
+ }
1331
+ $$renderer2.push(`<!--]-->`);
1332
+ }
1333
+ $$renderer2.push(`<!--]--> `);
1334
+ if (fleet()?.collectedAt && !open().length) {
1335
+ $$renderer2.push(`<!--[0--><p class="surface mt-6 p-5 text-muted-foreground sm:p-6">Nothing under way${escape_html(scoped() ? " in this project" : "")} right now.</p>`);
1336
+ } else {
1337
+ $$renderer2.push("<!--[-1-->");
1338
+ }
1339
+ $$renderer2.push(`<!--]-->`);
1340
+ }
1341
+ $$renderer2.push(`<!--]--></main>`);
1342
+ });
1343
+ }
1344
+
1345
+ export { _page as default };
1346
+ //# sourceMappingURL=_page.svelte.js-43FRNSVK.js.map