@chrisjowen/wheelhouse 0.1.0 → 0.2.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 (997) hide show
  1. package/README.md +87 -56
  2. package/build/client/_app/immutable/assets/0.CKUND0qa.css +1 -0
  3. package/build/client/_app/immutable/assets/0.CKUND0qa.css.br +0 -0
  4. package/build/client/_app/immutable/assets/0.CKUND0qa.css.gz +0 -0
  5. package/build/client/_app/immutable/assets/DocSheet.CaO2v_qh.css +1 -0
  6. package/build/client/_app/immutable/assets/DocSheet.CaO2v_qh.css.br +0 -0
  7. package/build/client/_app/immutable/assets/DocSheet.CaO2v_qh.css.gz +0 -0
  8. package/build/client/_app/immutable/chunks/08Q01-Mc.js +1 -0
  9. package/build/client/_app/immutable/chunks/08Q01-Mc.js.br +0 -0
  10. package/build/client/_app/immutable/chunks/08Q01-Mc.js.gz +0 -0
  11. package/build/client/_app/immutable/chunks/0TvUxbRv.js +1 -0
  12. package/build/client/_app/immutable/chunks/0TvUxbRv.js.br +2 -0
  13. package/build/client/_app/immutable/chunks/0TvUxbRv.js.gz +0 -0
  14. package/build/client/_app/immutable/chunks/3Of2kn6M.js +5 -0
  15. package/build/client/_app/immutable/chunks/3Of2kn6M.js.br +0 -0
  16. package/build/client/_app/immutable/chunks/3Of2kn6M.js.gz +0 -0
  17. package/build/client/_app/immutable/chunks/5fVeMNeJ.js +1 -0
  18. package/build/client/_app/immutable/chunks/5fVeMNeJ.js.br +0 -0
  19. package/build/client/_app/immutable/chunks/5fVeMNeJ.js.gz +0 -0
  20. package/build/client/_app/immutable/chunks/A8GZ5Uuc.js +1 -0
  21. package/build/client/_app/immutable/chunks/A8GZ5Uuc.js.br +0 -0
  22. package/build/client/_app/immutable/chunks/A8GZ5Uuc.js.gz +0 -0
  23. package/build/client/_app/immutable/chunks/AHy1Hzhf.js +1 -0
  24. package/build/client/_app/immutable/chunks/AHy1Hzhf.js.br +0 -0
  25. package/build/client/_app/immutable/chunks/AHy1Hzhf.js.gz +0 -0
  26. package/build/client/_app/immutable/chunks/B3jXa2LJ.js +1 -0
  27. package/build/client/_app/immutable/chunks/B3jXa2LJ.js.br +0 -0
  28. package/build/client/_app/immutable/chunks/B3jXa2LJ.js.gz +0 -0
  29. package/build/client/_app/immutable/chunks/BEDHe9fo.js +1 -0
  30. package/build/client/_app/immutable/chunks/BEDHe9fo.js.br +0 -0
  31. package/build/client/_app/immutable/chunks/BEDHe9fo.js.gz +0 -0
  32. package/build/client/_app/immutable/chunks/BJ_s8GdZ.js +2 -0
  33. package/build/client/_app/immutable/chunks/BJ_s8GdZ.js.br +0 -0
  34. package/build/client/_app/immutable/chunks/BJ_s8GdZ.js.gz +0 -0
  35. package/build/client/_app/immutable/chunks/BKd0HUNP.js +1 -0
  36. package/build/client/_app/immutable/chunks/BKd0HUNP.js.br +1 -0
  37. package/build/client/_app/immutable/chunks/BKd0HUNP.js.gz +0 -0
  38. package/build/client/_app/immutable/chunks/BLL4xbEj.js +1 -0
  39. package/build/client/_app/immutable/chunks/BLL4xbEj.js.br +0 -0
  40. package/build/client/_app/immutable/chunks/BLL4xbEj.js.gz +0 -0
  41. package/build/client/_app/immutable/chunks/BUUcNufp.js +1 -0
  42. package/build/client/_app/immutable/chunks/BUUcNufp.js.br +0 -0
  43. package/build/client/_app/immutable/chunks/BUUcNufp.js.gz +0 -0
  44. package/build/client/_app/immutable/chunks/BVXUMEgB.js +1 -0
  45. package/build/client/_app/immutable/chunks/BVXUMEgB.js.br +0 -0
  46. package/build/client/_app/immutable/chunks/BVXUMEgB.js.gz +0 -0
  47. package/build/client/_app/immutable/chunks/BY5XjwMm.js +1 -0
  48. package/build/client/_app/immutable/chunks/BY5XjwMm.js.br +0 -0
  49. package/build/client/_app/immutable/chunks/BY5XjwMm.js.gz +0 -0
  50. package/build/client/_app/immutable/chunks/BdZ-2OIO.js +1 -0
  51. package/build/client/_app/immutable/chunks/BdZ-2OIO.js.br +0 -0
  52. package/build/client/_app/immutable/chunks/BdZ-2OIO.js.gz +0 -0
  53. package/build/client/_app/immutable/chunks/BdvB_H6l.js +1 -0
  54. package/build/client/_app/immutable/chunks/BdvB_H6l.js.br +0 -0
  55. package/build/client/_app/immutable/chunks/BdvB_H6l.js.gz +0 -0
  56. package/build/client/_app/immutable/chunks/BkLV0FAz.js +1 -0
  57. package/build/client/_app/immutable/chunks/BkLV0FAz.js.br +0 -0
  58. package/build/client/_app/immutable/chunks/BkLV0FAz.js.gz +0 -0
  59. package/build/client/_app/immutable/chunks/Bm8huziG.js +1 -0
  60. package/build/client/_app/immutable/chunks/Bm8huziG.js.br +0 -0
  61. package/build/client/_app/immutable/chunks/Bm8huziG.js.gz +0 -0
  62. package/build/client/_app/immutable/chunks/BnMEvq-8.js +1 -0
  63. package/build/client/_app/immutable/chunks/BnMEvq-8.js.br +0 -0
  64. package/build/client/_app/immutable/chunks/BnMEvq-8.js.gz +0 -0
  65. package/build/client/_app/immutable/chunks/BngQrigD.js +1 -0
  66. package/build/client/_app/immutable/chunks/BngQrigD.js.br +0 -0
  67. package/build/client/_app/immutable/chunks/BngQrigD.js.gz +0 -0
  68. package/build/client/_app/immutable/chunks/BqQtpLRF.js +5 -0
  69. package/build/client/_app/immutable/chunks/BqQtpLRF.js.br +0 -0
  70. package/build/client/_app/immutable/chunks/BqQtpLRF.js.gz +0 -0
  71. package/build/client/_app/immutable/chunks/Bx2K4OII.js +1 -0
  72. package/build/client/_app/immutable/chunks/Bx2K4OII.js.br +0 -0
  73. package/build/client/_app/immutable/chunks/Bx2K4OII.js.gz +0 -0
  74. package/build/client/_app/immutable/chunks/Bypc6r1_.js +1 -0
  75. package/build/client/_app/immutable/chunks/Bypc6r1_.js.br +0 -0
  76. package/build/client/_app/immutable/chunks/Bypc6r1_.js.gz +0 -0
  77. package/build/client/_app/immutable/chunks/C16DfZ5a.js +1 -0
  78. package/build/client/_app/immutable/chunks/C16DfZ5a.js.br +1 -0
  79. package/build/client/_app/immutable/chunks/C16DfZ5a.js.gz +0 -0
  80. package/build/client/_app/immutable/chunks/C3Yi7wCu.js +1 -0
  81. package/build/client/_app/immutable/chunks/C3Yi7wCu.js.br +0 -0
  82. package/build/client/_app/immutable/chunks/C3Yi7wCu.js.gz +0 -0
  83. package/build/client/_app/immutable/chunks/C3e5IrpE.js +1 -0
  84. package/build/client/_app/immutable/chunks/C3e5IrpE.js.br +0 -0
  85. package/build/client/_app/immutable/chunks/C3e5IrpE.js.gz +0 -0
  86. package/build/client/_app/immutable/chunks/C3o9xHsB.js +1 -0
  87. package/build/client/_app/immutable/chunks/C3o9xHsB.js.br +0 -0
  88. package/build/client/_app/immutable/chunks/C3o9xHsB.js.gz +0 -0
  89. package/build/client/_app/immutable/chunks/C6q0X9xa.js +1 -0
  90. package/build/client/_app/immutable/chunks/C6q0X9xa.js.br +0 -0
  91. package/build/client/_app/immutable/chunks/C6q0X9xa.js.gz +0 -0
  92. package/build/client/_app/immutable/chunks/C74jQQYs.js +1 -0
  93. package/build/client/_app/immutable/chunks/C74jQQYs.js.br +0 -0
  94. package/build/client/_app/immutable/chunks/C74jQQYs.js.gz +0 -0
  95. package/build/client/_app/immutable/chunks/CBHYGBBU.js +4 -0
  96. package/build/client/_app/immutable/chunks/CBHYGBBU.js.br +0 -0
  97. package/build/client/_app/immutable/chunks/CBHYGBBU.js.gz +0 -0
  98. package/build/client/_app/immutable/chunks/CD3hbDYc.js +1 -0
  99. package/build/client/_app/immutable/chunks/CD3hbDYc.js.br +0 -0
  100. package/build/client/_app/immutable/chunks/CD3hbDYc.js.gz +0 -0
  101. package/build/client/_app/immutable/chunks/CE3Ue5FU.js +1 -0
  102. package/build/client/_app/immutable/chunks/CE3Ue5FU.js.br +0 -0
  103. package/build/client/_app/immutable/chunks/CE3Ue5FU.js.gz +0 -0
  104. package/build/client/_app/immutable/chunks/CGGuNYjO.js +1 -0
  105. package/build/client/_app/immutable/chunks/CGGuNYjO.js.br +0 -0
  106. package/build/client/_app/immutable/chunks/CGGuNYjO.js.gz +0 -0
  107. package/build/client/_app/immutable/chunks/CH_9Gtej.js +1 -0
  108. package/build/client/_app/immutable/chunks/CH_9Gtej.js.br +0 -0
  109. package/build/client/_app/immutable/chunks/CH_9Gtej.js.gz +0 -0
  110. package/build/client/_app/immutable/chunks/CIj4gWfs.js +1 -0
  111. package/build/client/_app/immutable/chunks/CIj4gWfs.js.br +0 -0
  112. package/build/client/_app/immutable/chunks/CIj4gWfs.js.gz +0 -0
  113. package/build/client/_app/immutable/chunks/CJ3NIasv.js +1 -0
  114. package/build/client/_app/immutable/chunks/CJ3NIasv.js.br +0 -0
  115. package/build/client/_app/immutable/chunks/CJ3NIasv.js.gz +0 -0
  116. package/build/client/_app/immutable/chunks/CKEJURpk.js +1 -0
  117. package/build/client/_app/immutable/chunks/CKEJURpk.js.br +0 -0
  118. package/build/client/_app/immutable/chunks/CKEJURpk.js.gz +0 -0
  119. package/build/client/_app/immutable/chunks/CPmGhju_.js +1 -0
  120. package/build/client/_app/immutable/chunks/CPmGhju_.js.br +1 -0
  121. package/build/client/_app/immutable/chunks/CPmGhju_.js.gz +0 -0
  122. package/build/client/_app/immutable/chunks/CXcL7cOb.js +1 -0
  123. package/build/client/_app/immutable/chunks/CXcL7cOb.js.br +0 -0
  124. package/build/client/_app/immutable/chunks/CXcL7cOb.js.gz +0 -0
  125. package/build/client/_app/immutable/chunks/CXgAyvD-.js +1 -0
  126. package/build/client/_app/immutable/chunks/CXgAyvD-.js.br +0 -0
  127. package/build/client/_app/immutable/chunks/CXgAyvD-.js.gz +0 -0
  128. package/build/client/_app/immutable/chunks/CZBcpBnY.js +1 -0
  129. package/build/client/_app/immutable/chunks/CZBcpBnY.js.br +0 -0
  130. package/build/client/_app/immutable/chunks/CZBcpBnY.js.gz +0 -0
  131. package/build/client/_app/immutable/chunks/CZPeboo-.js +1 -0
  132. package/build/client/_app/immutable/chunks/CZPeboo-.js.br +0 -0
  133. package/build/client/_app/immutable/chunks/CZPeboo-.js.gz +0 -0
  134. package/build/client/_app/immutable/chunks/Cb-gOV5k.js +1 -0
  135. package/build/client/_app/immutable/chunks/Cb-gOV5k.js.br +0 -0
  136. package/build/client/_app/immutable/chunks/Cb-gOV5k.js.gz +0 -0
  137. package/build/client/_app/immutable/chunks/Cl72MTSX.js +1 -0
  138. package/build/client/_app/immutable/chunks/Cl72MTSX.js.br +0 -0
  139. package/build/client/_app/immutable/chunks/Cl72MTSX.js.gz +0 -0
  140. package/build/client/_app/immutable/chunks/Cl7r7DFs.js +1 -0
  141. package/build/client/_app/immutable/chunks/Cl7r7DFs.js.br +0 -0
  142. package/build/client/_app/immutable/chunks/Cl7r7DFs.js.gz +0 -0
  143. package/build/client/_app/immutable/chunks/Cm8CSK8p.js +1 -0
  144. package/build/client/_app/immutable/chunks/Cm8CSK8p.js.br +0 -0
  145. package/build/client/_app/immutable/chunks/Cm8CSK8p.js.gz +0 -0
  146. package/build/client/_app/immutable/chunks/Cng04DK0.js +1 -0
  147. package/build/client/_app/immutable/chunks/Cng04DK0.js.br +0 -0
  148. package/build/client/_app/immutable/chunks/Cng04DK0.js.gz +0 -0
  149. package/build/client/_app/immutable/chunks/CqOnPLsz.js +1 -0
  150. package/build/client/_app/immutable/chunks/CqOnPLsz.js.br +0 -0
  151. package/build/client/_app/immutable/chunks/CqOnPLsz.js.gz +0 -0
  152. package/build/client/_app/immutable/chunks/Cqy1lT7e.js +1 -0
  153. package/build/client/_app/immutable/chunks/Cqy1lT7e.js.br +0 -0
  154. package/build/client/_app/immutable/chunks/Cqy1lT7e.js.gz +0 -0
  155. package/build/client/_app/immutable/chunks/CrjvgIhR.js +1 -0
  156. package/build/client/_app/immutable/chunks/CrjvgIhR.js.br +0 -0
  157. package/build/client/_app/immutable/chunks/CrjvgIhR.js.gz +0 -0
  158. package/build/client/_app/immutable/chunks/CsRBDrRN.js +1 -0
  159. package/build/client/_app/immutable/chunks/CsRBDrRN.js.br +0 -0
  160. package/build/client/_app/immutable/chunks/CsRBDrRN.js.gz +0 -0
  161. package/build/client/_app/immutable/chunks/CwwFbl61.js +62 -0
  162. package/build/client/_app/immutable/chunks/CwwFbl61.js.br +0 -0
  163. package/build/client/_app/immutable/chunks/CwwFbl61.js.gz +0 -0
  164. package/build/client/_app/immutable/chunks/D0JSbOCt.js +1 -0
  165. package/build/client/_app/immutable/chunks/D0JSbOCt.js.br +0 -0
  166. package/build/client/_app/immutable/chunks/D0JSbOCt.js.gz +0 -0
  167. package/build/client/_app/immutable/chunks/D25j-NnT.js +1 -0
  168. package/build/client/_app/immutable/chunks/D25j-NnT.js.br +0 -0
  169. package/build/client/_app/immutable/chunks/D25j-NnT.js.gz +0 -0
  170. package/build/client/_app/immutable/chunks/D5hwKKRv.js +1 -0
  171. package/build/client/_app/immutable/chunks/D5hwKKRv.js.br +0 -0
  172. package/build/client/_app/immutable/chunks/D5hwKKRv.js.gz +0 -0
  173. package/build/client/_app/immutable/chunks/DBxUIz0k.js +1 -0
  174. package/build/client/_app/immutable/chunks/DBxUIz0k.js.br +0 -0
  175. package/build/client/_app/immutable/chunks/DBxUIz0k.js.gz +0 -0
  176. package/build/client/_app/immutable/chunks/DH7t4M9x.js +1 -0
  177. package/build/client/_app/immutable/chunks/DH7t4M9x.js.br +0 -0
  178. package/build/client/_app/immutable/chunks/DH7t4M9x.js.gz +0 -0
  179. package/build/client/_app/immutable/chunks/DIsXG5DF.js +1 -0
  180. package/build/client/_app/immutable/chunks/DIsXG5DF.js.br +0 -0
  181. package/build/client/_app/immutable/chunks/DIsXG5DF.js.gz +0 -0
  182. package/build/client/_app/immutable/chunks/DNgh8jh8.js +1 -0
  183. package/build/client/_app/immutable/chunks/DNgh8jh8.js.br +0 -0
  184. package/build/client/_app/immutable/chunks/DNgh8jh8.js.gz +0 -0
  185. package/build/client/_app/immutable/chunks/DOWSzKHL.js +1 -0
  186. package/build/client/_app/immutable/chunks/DOWSzKHL.js.br +0 -0
  187. package/build/client/_app/immutable/chunks/DOWSzKHL.js.gz +0 -0
  188. package/build/client/_app/immutable/chunks/DSbOoIPC.js +1 -0
  189. package/build/client/_app/immutable/chunks/DSbOoIPC.js.br +0 -0
  190. package/build/client/_app/immutable/chunks/DSbOoIPC.js.gz +0 -0
  191. package/build/client/_app/immutable/chunks/DUYBhCSA.js +1 -0
  192. package/build/client/_app/immutable/chunks/DUYBhCSA.js.br +0 -0
  193. package/build/client/_app/immutable/chunks/DUYBhCSA.js.gz +0 -0
  194. package/build/client/_app/immutable/chunks/DfDxKk91.js +2 -0
  195. package/build/client/_app/immutable/chunks/DfDxKk91.js.br +0 -0
  196. package/build/client/_app/immutable/chunks/DfDxKk91.js.gz +0 -0
  197. package/build/client/_app/immutable/chunks/DhfQd5fc.js +1 -0
  198. package/build/client/_app/immutable/chunks/DhfQd5fc.js.br +0 -0
  199. package/build/client/_app/immutable/chunks/DhfQd5fc.js.gz +0 -0
  200. package/build/client/_app/immutable/chunks/DmYFgZ4g.js +6 -0
  201. package/build/client/_app/immutable/chunks/DmYFgZ4g.js.br +0 -0
  202. package/build/client/_app/immutable/chunks/DmYFgZ4g.js.gz +0 -0
  203. package/build/client/_app/immutable/chunks/Dn-83VwV.js +1 -0
  204. package/build/client/_app/immutable/chunks/Dn-83VwV.js.br +1 -0
  205. package/build/client/_app/immutable/chunks/Dn-83VwV.js.gz +0 -0
  206. package/build/client/_app/immutable/chunks/Dnnuh6qK.js +1 -0
  207. package/build/client/_app/immutable/chunks/Dnnuh6qK.js.br +0 -0
  208. package/build/client/_app/immutable/chunks/Dnnuh6qK.js.gz +0 -0
  209. package/build/client/_app/immutable/chunks/DocaGLjv.js +1 -0
  210. package/build/client/_app/immutable/chunks/DocaGLjv.js.br +0 -0
  211. package/build/client/_app/immutable/chunks/DocaGLjv.js.gz +0 -0
  212. package/build/client/_app/immutable/chunks/Dqlbq2bD.js +2 -0
  213. package/build/client/_app/immutable/chunks/Dqlbq2bD.js.br +0 -0
  214. package/build/client/_app/immutable/chunks/Dqlbq2bD.js.gz +0 -0
  215. package/build/client/_app/immutable/chunks/DugIbHkD.js +1 -0
  216. package/build/client/_app/immutable/chunks/DugIbHkD.js.br +0 -0
  217. package/build/client/_app/immutable/chunks/DugIbHkD.js.gz +0 -0
  218. package/build/client/_app/immutable/chunks/Dy07EIjs.js +1 -0
  219. package/build/client/_app/immutable/chunks/Dy07EIjs.js.br +0 -0
  220. package/build/client/_app/immutable/chunks/Dy07EIjs.js.gz +0 -0
  221. package/build/client/_app/immutable/chunks/Dy_X9Fgu.js +1 -0
  222. package/build/client/_app/immutable/chunks/Dy_X9Fgu.js.br +0 -0
  223. package/build/client/_app/immutable/chunks/Dy_X9Fgu.js.gz +0 -0
  224. package/build/client/_app/immutable/chunks/I26VQaTs.js +2 -0
  225. package/build/client/_app/immutable/chunks/I26VQaTs.js.br +0 -0
  226. package/build/client/_app/immutable/chunks/I26VQaTs.js.gz +0 -0
  227. package/build/client/_app/immutable/chunks/IsTbwoyV.js +1 -0
  228. package/build/client/_app/immutable/chunks/IsTbwoyV.js.br +0 -0
  229. package/build/client/_app/immutable/chunks/IsTbwoyV.js.gz +0 -0
  230. package/build/client/_app/immutable/chunks/Km1CymxJ.js +1 -0
  231. package/build/client/_app/immutable/chunks/Km1CymxJ.js.br +0 -0
  232. package/build/client/_app/immutable/chunks/Km1CymxJ.js.gz +0 -0
  233. package/build/client/_app/immutable/chunks/Me06-nC7.js +1 -0
  234. package/build/client/_app/immutable/chunks/Me06-nC7.js.br +0 -0
  235. package/build/client/_app/immutable/chunks/Me06-nC7.js.gz +0 -0
  236. package/build/client/_app/immutable/chunks/PQApLOOr.js +1 -0
  237. package/build/client/_app/immutable/chunks/PQApLOOr.js.br +0 -0
  238. package/build/client/_app/immutable/chunks/PQApLOOr.js.gz +0 -0
  239. package/build/client/_app/immutable/chunks/WcvPAxq7.js +1 -0
  240. package/build/client/_app/immutable/chunks/WcvPAxq7.js.br +0 -0
  241. package/build/client/_app/immutable/chunks/WcvPAxq7.js.gz +0 -0
  242. package/build/client/_app/immutable/chunks/ZoG8qKMx.js +1 -0
  243. package/build/client/_app/immutable/chunks/ZoG8qKMx.js.br +0 -0
  244. package/build/client/_app/immutable/chunks/ZoG8qKMx.js.gz +0 -0
  245. package/build/client/_app/immutable/chunks/cZnJ0mAm.js +7 -0
  246. package/build/client/_app/immutable/chunks/cZnJ0mAm.js.br +0 -0
  247. package/build/client/_app/immutable/chunks/cZnJ0mAm.js.gz +0 -0
  248. package/build/client/_app/immutable/chunks/qb_JS6rP.js +1 -0
  249. package/build/client/_app/immutable/chunks/qb_JS6rP.js.br +0 -0
  250. package/build/client/_app/immutable/chunks/qb_JS6rP.js.gz +0 -0
  251. package/build/client/_app/immutable/chunks/riwaJFkb.js +3 -0
  252. package/build/client/_app/immutable/chunks/riwaJFkb.js.br +0 -0
  253. package/build/client/_app/immutable/chunks/riwaJFkb.js.gz +0 -0
  254. package/build/client/_app/immutable/chunks/wDLVOANX.js +2 -0
  255. package/build/client/_app/immutable/chunks/wDLVOANX.js.br +0 -0
  256. package/build/client/_app/immutable/chunks/wDLVOANX.js.gz +0 -0
  257. package/build/client/_app/immutable/entry/app.CNnpPQtw.js +2 -0
  258. package/build/client/_app/immutable/entry/app.CNnpPQtw.js.br +0 -0
  259. package/build/client/_app/immutable/entry/app.CNnpPQtw.js.gz +0 -0
  260. package/build/client/_app/immutable/entry/start.BGpEqKH0.js +1 -0
  261. package/build/client/_app/immutable/entry/start.BGpEqKH0.js.br +0 -0
  262. package/build/client/_app/immutable/entry/start.BGpEqKH0.js.gz +0 -0
  263. package/build/client/_app/immutable/nodes/0.CGlGdRWB.js +8 -0
  264. package/build/client/_app/immutable/nodes/0.CGlGdRWB.js.br +0 -0
  265. package/build/client/_app/immutable/nodes/0.CGlGdRWB.js.gz +0 -0
  266. package/build/client/_app/immutable/nodes/1.B4M0q1v4.js +1 -0
  267. package/build/client/_app/immutable/nodes/1.B4M0q1v4.js.br +0 -0
  268. package/build/client/_app/immutable/nodes/1.B4M0q1v4.js.gz +0 -0
  269. package/build/client/_app/immutable/nodes/10.LJhhE6c8.js +3 -0
  270. package/build/client/_app/immutable/nodes/10.LJhhE6c8.js.br +0 -0
  271. package/build/client/_app/immutable/nodes/10.LJhhE6c8.js.gz +0 -0
  272. package/build/client/_app/immutable/nodes/11.CM_xAozz.js +1 -0
  273. package/build/client/_app/immutable/nodes/11.CM_xAozz.js.br +0 -0
  274. package/build/client/_app/immutable/nodes/11.CM_xAozz.js.gz +0 -0
  275. package/build/client/_app/immutable/nodes/12.UENbuJYy.js +14 -0
  276. package/build/client/_app/immutable/nodes/12.UENbuJYy.js.br +0 -0
  277. package/build/client/_app/immutable/nodes/12.UENbuJYy.js.gz +0 -0
  278. package/build/client/_app/immutable/nodes/13.NbAfy9an.js +150 -0
  279. package/build/client/_app/immutable/nodes/13.NbAfy9an.js.br +0 -0
  280. package/build/client/_app/immutable/nodes/13.NbAfy9an.js.gz +0 -0
  281. package/build/client/_app/immutable/nodes/15.BgyPK-jf.js +11 -0
  282. package/build/client/_app/immutable/nodes/15.BgyPK-jf.js.br +0 -0
  283. package/build/client/_app/immutable/nodes/15.BgyPK-jf.js.gz +0 -0
  284. package/build/client/_app/immutable/nodes/16.DcgniGJK.js +9 -0
  285. package/build/client/_app/immutable/nodes/16.DcgniGJK.js.br +0 -0
  286. package/build/client/_app/immutable/nodes/16.DcgniGJK.js.gz +0 -0
  287. package/build/client/_app/immutable/nodes/17.CB9DXHxS.js +2 -0
  288. package/build/client/_app/immutable/nodes/17.CB9DXHxS.js.br +0 -0
  289. package/build/client/_app/immutable/nodes/17.CB9DXHxS.js.gz +0 -0
  290. package/build/client/_app/immutable/nodes/18.BHa-KoGE.js +6 -0
  291. package/build/client/_app/immutable/nodes/18.BHa-KoGE.js.br +0 -0
  292. package/build/client/_app/immutable/nodes/18.BHa-KoGE.js.gz +0 -0
  293. package/build/client/_app/immutable/nodes/19._VaGaWBD.js +1 -0
  294. package/build/client/_app/immutable/nodes/19._VaGaWBD.js.br +0 -0
  295. package/build/client/_app/immutable/nodes/19._VaGaWBD.js.gz +0 -0
  296. package/build/client/_app/immutable/nodes/2.DKxd0T79.js +14 -0
  297. package/build/client/_app/immutable/nodes/2.DKxd0T79.js.br +0 -0
  298. package/build/client/_app/immutable/nodes/2.DKxd0T79.js.gz +0 -0
  299. package/build/client/_app/immutable/nodes/20.C10FVhEw.js +10 -0
  300. package/build/client/_app/immutable/nodes/20.C10FVhEw.js.br +0 -0
  301. package/build/client/_app/immutable/nodes/20.C10FVhEw.js.gz +0 -0
  302. package/build/client/_app/immutable/nodes/21.BhyJIr3P.js +6 -0
  303. package/build/client/_app/immutable/nodes/21.BhyJIr3P.js.br +0 -0
  304. package/build/client/_app/immutable/nodes/21.BhyJIr3P.js.gz +0 -0
  305. package/build/client/_app/immutable/nodes/3.CcRoRYc-.js +5 -0
  306. package/build/client/_app/immutable/nodes/3.CcRoRYc-.js.br +0 -0
  307. package/build/client/_app/immutable/nodes/3.CcRoRYc-.js.gz +0 -0
  308. package/build/client/_app/immutable/nodes/4.BulJqGnt.js +1 -0
  309. package/build/client/_app/immutable/nodes/4.BulJqGnt.js.br +0 -0
  310. package/build/client/_app/immutable/nodes/4.BulJqGnt.js.gz +0 -0
  311. package/build/client/_app/immutable/nodes/5.BT3hraTU.js +1 -0
  312. package/build/client/_app/immutable/nodes/5.BT3hraTU.js.br +0 -0
  313. package/build/client/_app/immutable/nodes/5.BT3hraTU.js.gz +0 -0
  314. package/build/client/_app/immutable/nodes/6.DtNMha3Y.js +7 -0
  315. package/build/client/_app/immutable/nodes/6.DtNMha3Y.js.br +0 -0
  316. package/build/client/_app/immutable/nodes/6.DtNMha3Y.js.gz +0 -0
  317. package/build/client/_app/immutable/nodes/7.Bv6Vn8eC.js +4 -0
  318. package/build/client/_app/immutable/nodes/7.Bv6Vn8eC.js.br +0 -0
  319. package/build/client/_app/immutable/nodes/7.Bv6Vn8eC.js.gz +0 -0
  320. package/build/client/_app/immutable/nodes/9.DgQz7-Cb.js +1 -0
  321. package/build/client/_app/immutable/nodes/9.DgQz7-Cb.js.br +0 -0
  322. package/build/client/_app/immutable/nodes/9.DgQz7-Cb.js.gz +0 -0
  323. package/build/client/_app/version.json +1 -1
  324. package/build/client/_app/version.json.br +0 -0
  325. package/build/client/_app/version.json.gz +0 -0
  326. package/build/handler.js +7 -7
  327. package/build/index.js +7 -7
  328. package/build/server/chunks/chunks/AllowanceMeter.js-DBpmESX6.js +42 -0
  329. package/build/server/chunks/chunks/DecisionCard.js-B1YgF5EF.js +446 -0
  330. package/build/server/chunks/chunks/DictateTextarea.js-CbkGsd1h.js +415 -0
  331. package/build/server/chunks/chunks/DocSheet.js-BPPDMi3P.js +50 -0
  332. package/build/server/chunks/chunks/EtaLine.js-5SCP9O1f.js +79 -0
  333. package/build/server/chunks/chunks/EveryProjectSwitch.js-DzcwkHh4.js +200 -0
  334. package/build/server/chunks/chunks/Icon.js-CVZZ-yuB.js +129 -0
  335. package/build/server/chunks/chunks/InsightsNav.js-Cmn5y1to.js +18 -0
  336. package/build/server/chunks/chunks/InstallPlugin.js-B46b-IrK.js +45 -0
  337. package/build/server/chunks/chunks/LinkedText.js-COjHV297.js +43 -0
  338. package/build/server/chunks/chunks/ProjectBanner.js-ByPp7Y_e.js +111 -0
  339. package/build/server/chunks/chunks/ProjectStateMark.js-BkRD8cX4.js +61 -0
  340. package/build/server/chunks/chunks/QuestionList.js-CppuauNj.js +187 -0
  341. package/build/server/chunks/chunks/ResizableRail.js-BS8hRLV0.js +395 -0
  342. package/build/server/chunks/chunks/SettingsNav.js-BtJIv5cc.js +22 -0
  343. package/build/server/chunks/chunks/SlotContent.js-B4p1QLQN.js +748 -0
  344. package/build/server/chunks/chunks/StageTrack.js-DHvZX7Bl.js +111 -0
  345. package/build/server/chunks/chunks/TimeBar.js-CUFKEJW9.js +32 -0
  346. package/build/server/chunks/chunks/TimeLegend.js-B3Wl61jM.js +29 -0
  347. package/build/server/chunks/chunks/aliases.svelte.js-C_vCoKdk.js +138 -0
  348. package/build/server/chunks/chunks/arrow-down.js-Bt3fQooI.js +18 -0
  349. package/build/server/chunks/chunks/arrow-left.js-BKiSMzvI.js +18 -0
  350. package/build/server/chunks/chunks/arrow-right.js-CNYqcx0M.js +18 -0
  351. package/build/server/chunks/chunks/arrow-up.js-DHbXk79z.js +18 -0
  352. package/build/server/chunks/chunks/attachments.js-BAnnqpd-.js +48 -0
  353. package/build/server/chunks/chunks/bell.js-CXJp-3UZ.js +150 -0
  354. package/build/server/chunks/chunks/berths.js-CuAE9lHW.js +268 -0
  355. package/build/server/chunks/chunks/book-open.js-C2rohN3N.js +23 -0
  356. package/build/server/chunks/chunks/button.js-BF2PsvWw.js +7311 -0
  357. package/build/server/chunks/chunks/chat.svelte.js--pRzj_Xo.js +545 -0
  358. package/build/server/chunks/chunks/check.js-32sYHVxG.js +15 -0
  359. package/build/server/chunks/chunks/checks.js-DR3fVVpO.js +242 -0
  360. package/build/server/chunks/chunks/chevron-down.js-CH53s_me.js +15 -0
  361. package/build/server/chunks/chunks/chevron-left.js-D5RHY-kD.js +15 -0
  362. package/build/server/chunks/chunks/chevron-right.js-DCBAqAae.js +15 -0
  363. package/build/server/chunks/chunks/circle-alert.js-XTuAj7ZH.js +23 -0
  364. package/build/server/chunks/chunks/circle-dashed.js-fXv_bIo-.js +24 -0
  365. package/build/server/chunks/chunks/circle-dot.js-C950Kosw.js +18 -0
  366. package/build/server/chunks/chunks/client.js-B_5mNqUe.js +24 -0
  367. package/build/server/chunks/chunks/clock.js-CHhHTWK_.js +18 -0
  368. package/build/server/chunks/chunks/compass.js-k2sRSGWn.js +23 -0
  369. package/build/server/chunks/chunks/detail.js-DDoqeh1A.js +144 -0
  370. package/build/server/chunks/chunks/docpath.js-D27w_pf9.js +47 -0
  371. package/build/server/chunks/chunks/external-link.js-BQs1euhR.js +24 -0
  372. package/build/server/chunks/chunks/file-text.js-CnuVvHlB.js +26 -0
  373. package/build/server/chunks/chunks/gauge.js-Cbb1aqE7.js +35 -0
  374. package/build/server/chunks/chunks/git-pull-request.js-BMzktlcs.js +20 -0
  375. package/build/server/chunks/chunks/hand.js-BA9yKAan.js +25 -0
  376. package/build/server/chunks/chunks/harbour.js-PHLHOFea.js +117 -0
  377. package/build/server/chunks/chunks/html.js-FW6Ia4bL.js +8 -0
  378. package/build/server/chunks/chunks/http.js-CBM8xgUM.js +25 -0
  379. package/build/server/chunks/chunks/http2.js-fIdVBJaD.js +26 -0
  380. package/build/server/chunks/chunks/inbox.js-Dv8a1ecX.js +184 -0
  381. package/build/server/chunks/chunks/inbox.svelte.js-n7K3YnGB.js +171 -0
  382. package/build/server/chunks/chunks/index-server.js-DsObimPA.js +9 -0
  383. package/build/server/chunks/chunks/index-server2.js-Fb2GE8KQ.js +17 -0
  384. package/build/server/chunks/chunks/index.js-B0NFhRTN.js +1524 -0
  385. package/build/server/chunks/chunks/index2.js-Bxt1T6_K.js +46 -0
  386. package/build/server/chunks/chunks/internal.js-BlgsFxfY.js +146 -0
  387. package/build/server/chunks/chunks/live.svelte.js-By2dseJB.js +253 -0
  388. package/build/server/chunks/chunks/loader-circle.js-rQHvIWN7.js +16 -0
  389. package/build/server/chunks/chunks/markdown.js-CApgGpeX.js +2634 -0
  390. package/build/server/chunks/chunks/message-circle-question-mark.js-DbmaS9k_.js +25 -0
  391. package/build/server/chunks/chunks/message-square-text.js-CyRiNGB8.js +25 -0
  392. package/build/server/chunks/chunks/message-square.js-XK15WVZq.js +22 -0
  393. package/build/server/chunks/chunks/messages-square.js-BXH8BHfd.js +28 -0
  394. package/build/server/chunks/chunks/minus.js-DKvkj8VD.js +15 -0
  395. package/build/server/chunks/chunks/monitor-play.js-4ed3ghDf.js +28 -0
  396. package/build/server/chunks/chunks/nav.js-DwnXJgxd.js +29 -0
  397. package/build/server/chunks/chunks/plus.js-caVrjGZc.js +15 -0
  398. package/build/server/chunks/chunks/preview.js-hrimfbCG.js +69 -0
  399. package/build/server/chunks/chunks/prreview.js-Cg9LDxJp.js +92 -0
  400. package/build/server/chunks/chunks/repo.js-CuWUNKbP.js +33 -0
  401. package/build/server/chunks/chunks/requests.js-DiL4Poa9.js +42 -0
  402. package/build/server/chunks/chunks/restart.js-Dv1_ODgZ.js +12 -0
  403. package/build/server/chunks/chunks/root.js-60iebdW4.js +3105 -0
  404. package/build/server/chunks/chunks/rotate-cw.js-M4SHOpYI.js +21 -0
  405. package/build/server/chunks/chunks/runtime.js-BuGWYyZZ.js +16470 -0
  406. package/build/server/chunks/chunks/scale.js-S5g8YUqL.js +21 -0
  407. package/build/server/chunks/chunks/scroll-lock.js-Ci_ylINL.js +2811 -0
  408. package/build/server/chunks/chunks/service.js-DQK1kj-4.js +914 -0
  409. package/build/server/chunks/chunks/settings.js-C_6kvzhM.js +862 -0
  410. package/build/server/chunks/chunks/square-terminal.js-D9D9_9_V.js +30 -0
  411. package/build/server/chunks/chunks/store.js-XXOawxPN.js +317 -0
  412. package/build/server/chunks/chunks/tone.js-Dxsl-adt.js +31 -0
  413. package/build/server/chunks/chunks/triangle-alert.js-ClLszsZE.js +25 -0
  414. package/build/server/chunks/chunks/uploads.js-D45pIvPk.js +107 -0
  415. package/build/server/chunks/chunks/urls.js-BrlC6XZ8.js +8 -0
  416. package/build/server/chunks/chunks/utils.js-BJgm9WbO.js +2985 -0
  417. package/build/server/chunks/chunks/vault.js-CTaWe09z.js +162 -0
  418. package/build/server/chunks/chunks/view.js-CrOFjYk4.js +76 -0
  419. package/build/server/chunks/chunks/views.js-DyGxvskG.js +124 -0
  420. package/build/server/chunks/chunks/words.js-Cte4wOB4.js +48 -0
  421. package/build/server/chunks/chunks/x.js-YxaUOlq9.js +18 -0
  422. package/build/server/chunks/entries/endpoints/api/apps/_op_/_server.ts.js-DSkVUNdc.js +90 -0
  423. package/build/server/chunks/entries/endpoints/api/events/_server.ts.js-CYnLRjOH.js +106 -0
  424. package/build/server/chunks/entries/endpoints/api/files/_server.ts.js-CG8IGmSp.js +49 -0
  425. package/build/server/chunks/entries/endpoints/api/firstmate/chat/_server.ts.js-fmzKkrXb.js +83 -0
  426. package/build/server/chunks/entries/endpoints/api/firstmate/commands/_server.ts.js-BgIU3add.js +119 -0
  427. package/build/server/chunks/entries/endpoints/api/firstmate/dismiss/_server.ts.js-Ba9E_53E.js +45 -0
  428. package/build/server/chunks/entries/endpoints/api/firstmate/input/_server.ts.js-BQZBERsR.js +51 -0
  429. package/build/server/chunks/entries/endpoints/api/firstmate/interrupt/_server.ts.js-BnT3VHSx.js +44 -0
  430. package/build/server/chunks/entries/endpoints/api/firstmate/messages/_server.ts.js-DRYHwJ7R.js +66 -0
  431. package/build/server/chunks/entries/endpoints/api/firstmate/pick/_server.ts.js-BD2B1ByG.js +54 -0
  432. package/build/server/chunks/entries/endpoints/api/firstmate/start/_server.ts.js-DB-m2WWH.js +44 -0
  433. package/build/server/chunks/entries/endpoints/api/firstmate/uploads/_day_/_id_/_name_/_server.ts.js-CK3swjFX.js +32 -0
  434. package/build/server/chunks/entries/endpoints/api/firstmate/uploads/_server.ts.js-WCE63uer.js +40 -0
  435. package/build/server/chunks/entries/endpoints/api/fleet/_server.ts.js-D5-3acjK.js +36 -0
  436. package/build/server/chunks/entries/endpoints/api/gateway/_server.ts.js-B2I7jHdc.js +100 -0
  437. package/build/server/chunks/entries/endpoints/api/health/_server.ts.js-BFSqEG5B.js +36 -0
  438. package/build/server/chunks/entries/endpoints/api/inbox/_server.ts.js-BpUaHfsf.js +60 -0
  439. package/build/server/chunks/entries/endpoints/api/inbox/report/_server.ts.js-BNRD4HyF.js +51 -0
  440. package/build/server/chunks/entries/endpoints/api/insights/_server.ts.js-7808SNDM.js +36 -0
  441. package/build/server/chunks/entries/endpoints/api/plugins/_plugin_/config/_server.ts.js-B-cQTShG.js +71 -0
  442. package/build/server/chunks/entries/endpoints/api/plugins/_plugin_/load/_server.ts.js-CPAHSih2.js +23 -0
  443. package/build/server/chunks/entries/endpoints/api/plugins/_plugin_/ui/_...path_/_server.ts.js-DW3M1pzH.js +59 -0
  444. package/build/server/chunks/entries/endpoints/api/plugins/_plugin_/update/_server.ts.js-DDTSw0pX.js +35 -0
  445. package/build/server/chunks/entries/endpoints/api/plugins/_server.ts.js-BlD-1l6V.js +36 -0
  446. package/build/server/chunks/entries/endpoints/api/plugins/inspect/_server.ts.js-IT-jeApI.js +35 -0
  447. package/build/server/chunks/entries/endpoints/api/plugins/install/_server.ts.js-DQqKN2MF.js +38 -0
  448. package/build/server/chunks/entries/endpoints/api/plugins/updates/_server.ts.js-D7rx-bwI.js +23 -0
  449. package/build/server/chunks/entries/endpoints/api/projects/_id_/passage/_server.ts.js-BC0HjK9M.js +41 -0
  450. package/build/server/chunks/entries/endpoints/api/projects/_id_/passage/commands/_server.ts.js-aVmcjStV.js +50 -0
  451. package/build/server/chunks/entries/endpoints/api/projects/_id_/passage/consent/_server.ts.js-BuHN_WYU.js +62 -0
  452. package/build/server/chunks/entries/endpoints/api/projects/_id_/passage/draft/_server.ts.js-Dx0x7sws.js +49 -0
  453. package/build/server/chunks/entries/endpoints/api/projects/_id_/passage/file/_server.ts.js-CcCDMmmF.js +72 -0
  454. package/build/server/chunks/entries/endpoints/api/projects/_id_/passage/test/_server.ts.js-BsOOyTNM.js +55 -0
  455. package/build/server/chunks/entries/endpoints/api/services/_server.ts.js-DGyU8Zmu.js +55 -0
  456. package/build/server/chunks/entries/endpoints/api/slots/_server.ts.js-1B8fEiat.js +44 -0
  457. package/build/server/chunks/entries/endpoints/api/tasks/_id_/_server.ts.js-D4CKazw-.js +41 -0
  458. package/build/server/chunks/entries/endpoints/api/tasks/_id_/artifacts/_...name_/_server.ts.js-CUKo26Ia.js +60 -0
  459. package/build/server/chunks/entries/endpoints/api/tasks/_id_/diff/_server.ts.js-BOa2lgvP.js +48 -0
  460. package/build/server/chunks/entries/endpoints/api/tasks/_id_/output/_server.ts.js-BmI8Ofms.js +93 -0
  461. package/build/server/chunks/entries/endpoints/api/tasks/_id_/preview/_server.ts.js-C2mJi22c.js +110 -0
  462. package/build/server/chunks/entries/endpoints/api/tasks/_id_/review/_server.ts.js-8pN6fHl8.js +43 -0
  463. package/build/server/chunks/entries/endpoints/api/tasks/_id_/review/ask/_server.ts.js-D6D9O8Su.js +49 -0
  464. package/build/server/chunks/entries/endpoints/api/tasks/_id_/review/check/_server.ts.js-BAaCwzOf.js +48 -0
  465. package/build/server/chunks/entries/endpoints/api/tasks/_id_/review/guide/_server.ts.js-DfP2iNta.js +48 -0
  466. package/build/server/chunks/entries/endpoints/api/tasks/_id_/review/runs/_run_/stop/_server.ts.js-DZDaSSYT.js +41 -0
  467. package/build/server/chunks/entries/endpoints/api/vault/_server.ts.js-CJNUplXf.js +54 -0
  468. package/build/server/chunks/entries/endpoints/api/wheelhouse/update/_server.ts.js-CVqjWsw8.js +23 -0
  469. package/build/server/chunks/entries/endpoints/api/wheelhouse/upgrade/_server.ts.js-CE2zzWtC.js +23 -0
  470. package/build/server/chunks/entries/endpoints/projects/_server.ts.js-uMp6dcat.js +7 -0
  471. package/build/server/chunks/entries/fallbacks/error.svelte.js-DnpcUjRk.js +15 -0
  472. package/build/server/chunks/entries/hooks.server.js-FjSdw_QS.js +54 -0
  473. package/build/server/chunks/entries/pages/_layout.server.ts.js-BkWAC802.js +22 -0
  474. package/build/server/chunks/entries/pages/_layout.svelte.js-DstinFjN.js +8746 -0
  475. package/build/server/chunks/entries/pages/_page.server.ts.js-BXkuWJh7.js +16 -0
  476. package/build/server/chunks/entries/pages/_page.svelte.js-ehBbQlco.js +2194 -0
  477. package/build/server/chunks/entries/pages/decisions/_page.server.ts.js-B2YZfjBk.js +11 -0
  478. package/build/server/chunks/entries/pages/decisions/_page.svelte.js-C3NsHXP-.js +184 -0
  479. package/build/server/chunks/entries/pages/files/_page.server.ts.js-CT3pm5a6.js +17 -0
  480. package/build/server/chunks/entries/pages/files/_page.svelte.js-Bj-5ZaJn.js +61 -0
  481. package/build/server/chunks/entries/pages/harbour/_page.server.ts.js-CcLkegHq.js +46 -0
  482. package/build/server/chunks/entries/pages/harbour/_page.svelte.js-hBC6QUHZ.js +580 -0
  483. package/build/server/chunks/entries/pages/headroom/_page.server.ts.js-BazCFIuz.js +11 -0
  484. package/build/server/chunks/entries/pages/headroom/_page.svelte.js-BLFQjLz8.js +149 -0
  485. package/build/server/chunks/entries/pages/inbox/_page.svelte.js-rjm303kf.js +185 -0
  486. package/build/server/chunks/entries/pages/plugins/_page.server.ts.js-D_nxVVQ0.js +11 -0
  487. package/build/server/chunks/entries/pages/plugins/_plugin_/_page_/_page.server.ts.js-BRQpg3kQ.js +16 -0
  488. package/build/server/chunks/entries/pages/plugins/_plugin_/_page_/_page.svelte.js-DazeLLT8.js +52 -0
  489. package/build/server/chunks/entries/pages/projects/_id_/_page.server.ts.js-BIypd_XU.js +23 -0
  490. package/build/server/chunks/entries/pages/projects/_id_/_page.svelte.js-DJajtLup.js +945 -0
  491. package/build/server/chunks/entries/pages/projects/_id_/_plugin_/_tab_/_page.server.ts.js-BwAOIwUv.js +21 -0
  492. package/build/server/chunks/entries/pages/projects/_id_/_plugin_/_tab_/_page.svelte.js-Cm8mxt61.js +74 -0
  493. package/build/server/chunks/entries/pages/projects/_id_/passage/_page.server.ts.js-CnfqlJgl.js +27 -0
  494. package/build/server/chunks/entries/pages/projects/_id_/passage/_page.svelte.js-CuMA-rCM.js +433 -0
  495. package/build/server/chunks/entries/pages/projects/_id_/passage/edit/_page.server.ts.js-CG14M19O.js +15 -0
  496. package/build/server/chunks/entries/pages/projects/_id_/passage/edit/_page.svelte.js-mtGQO-dJ.js +1880 -0
  497. package/build/server/chunks/entries/pages/settings/_page.server.ts.js-DnBg1UuM.js +11 -0
  498. package/build/server/chunks/entries/pages/settings/gateway/_page.server.ts.js-Zgfe-LX9.js +11 -0
  499. package/build/server/chunks/entries/pages/settings/gateway/_page.svelte.js-BmbSSxk6.js +208 -0
  500. package/build/server/chunks/entries/pages/settings/plugins/_page.server.ts.js-DZ4oJmnj.js +19 -0
  501. package/build/server/chunks/entries/pages/settings/plugins/_page.svelte.js-gBZCjZlg.js +1847 -0
  502. package/build/server/chunks/entries/pages/settings/plugins/_plugin_/_page.server.ts.js-Dm-tgyir.js +17 -0
  503. package/build/server/chunks/entries/pages/settings/plugins/_plugin_/_page.svelte.js-BFGxdrrb.js +220 -0
  504. package/build/server/chunks/entries/pages/tasks/_id_/_page.server.ts.js-Llp3a0Fb.js +25 -0
  505. package/build/server/chunks/entries/pages/tasks/_id_/_page.svelte.js-LgJMZ2RE.js +2107 -0
  506. package/build/server/chunks/entries/pages/tasks/_id_/doc/_page.server.ts.js-DuWuEdZ2.js +24 -0
  507. package/build/server/chunks/entries/pages/tasks/_id_/doc/_page.svelte.js-BOMmvf6G.js +80 -0
  508. package/build/server/chunks/entries/pages/tasks/_id_/review/_page.server.ts.js-BMQF9I9c.js +15 -0
  509. package/build/server/chunks/entries/pages/tasks/_id_/review/_page.svelte.js-k659tqiw.js +657 -0
  510. package/build/server/chunks/entries/pages/time/_page.server.ts.js-DstGu3ji.js +11 -0
  511. package/build/server/chunks/entries/pages/time/_page.svelte.js-Ckn0YUW_.js +108 -0
  512. package/build/server/chunks/handler-BRidfBIY.js +1474 -0
  513. package/build/server/chunks/index.js-Dhoi5wa_.js +4296 -0
  514. package/build/server/chunks/manifest.js-CF4aVg77.js +537 -0
  515. package/build/server/chunks/nodes/0.js-B2yTHeOL.js +41 -0
  516. package/build/server/chunks/nodes/1.js-BoD2_1or.js +9 -0
  517. package/build/server/chunks/nodes/10.js-C2XmTW8j.js +43 -0
  518. package/build/server/chunks/nodes/11.js-CAJnQkWH.js +42 -0
  519. package/build/server/chunks/nodes/12.js-Cu57dOUj.js +43 -0
  520. package/build/server/chunks/nodes/13.js-1g1BRnk_.js +42 -0
  521. package/build/server/chunks/nodes/14.js-Cl3VZ6XR.js +12 -0
  522. package/build/server/chunks/nodes/15.js-BqL5jpLU.js +41 -0
  523. package/build/server/chunks/nodes/16.js-DibdTAKZ.js +41 -0
  524. package/build/server/chunks/nodes/17.js-BUFA5Avk.js +44 -0
  525. package/build/server/chunks/nodes/18.js-cxLrKmMx.js +42 -0
  526. package/build/server/chunks/nodes/19.js-DMbI3mDp.js +42 -0
  527. package/build/server/chunks/nodes/2.js-8QSIq2KZ.js +41 -0
  528. package/build/server/chunks/nodes/20.js-BNXpftag.js +42 -0
  529. package/build/server/chunks/nodes/21.js-DdJK6h7p.js +41 -0
  530. package/build/server/chunks/nodes/3.js-DHT7fiTy.js +41 -0
  531. package/build/server/chunks/nodes/4.js-DvjrLz8n.js +41 -0
  532. package/build/server/chunks/nodes/5.js-CvUGUQbi.js +45 -0
  533. package/build/server/chunks/nodes/6.js-ptKHsAn6.js +41 -0
  534. package/build/server/chunks/nodes/7.js-BigF9SYG.js +9 -0
  535. package/build/server/chunks/nodes/8.js-D32pPbKa.js +12 -0
  536. package/build/server/chunks/nodes/9.js-DkS4HHqV.js +41 -0
  537. package/dist/cli.js +2156 -62
  538. package/dist/wh-vault.js +1007 -0
  539. package/package.json +5 -3
  540. package/plugins/github-issues/.wheelhouse-plugin/plugin.json +44 -0
  541. package/plugins/github-issues/README.md +16 -0
  542. package/plugins/github-issues/wheelhouse/server/index.js +463 -0
  543. package/plugins/project-links/.wheelhouse-plugin/plugin.json +25 -0
  544. package/plugins/project-links/README.md +17 -0
  545. package/plugins/project-links/wheelhouse/server/index.js +278 -0
  546. package/plugins/project-links/wheelhouse/ui/index.js +87 -0
  547. package/plugins/vault/.wheelhouse-plugin/plugin.json +22 -0
  548. package/plugins/vault/README.md +18 -0
  549. package/plugins/vault/wheelhouse/server/index.js +297 -0
  550. package/build/client/_app/immutable/assets/0.DaQhCSel.css +0 -1
  551. package/build/client/_app/immutable/assets/0.DaQhCSel.css.br +0 -0
  552. package/build/client/_app/immutable/assets/0.DaQhCSel.css.gz +0 -0
  553. package/build/client/_app/immutable/assets/12.DT1C9nmd.css +0 -1
  554. package/build/client/_app/immutable/assets/12.DT1C9nmd.css.br +0 -0
  555. package/build/client/_app/immutable/assets/12.DT1C9nmd.css.gz +0 -0
  556. package/build/client/_app/immutable/assets/14.CjNfSPQ6.css +0 -1
  557. package/build/client/_app/immutable/assets/14.CjNfSPQ6.css.br +0 -0
  558. package/build/client/_app/immutable/assets/14.CjNfSPQ6.css.gz +0 -0
  559. package/build/client/_app/immutable/chunks/36FDwM1G.js +0 -1
  560. package/build/client/_app/immutable/chunks/36FDwM1G.js.br +0 -0
  561. package/build/client/_app/immutable/chunks/36FDwM1G.js.gz +0 -0
  562. package/build/client/_app/immutable/chunks/B1XxiJam.js +0 -1
  563. package/build/client/_app/immutable/chunks/B1XxiJam.js.br +0 -0
  564. package/build/client/_app/immutable/chunks/B1XxiJam.js.gz +0 -0
  565. package/build/client/_app/immutable/chunks/B2wEHue2.js +0 -1
  566. package/build/client/_app/immutable/chunks/B2wEHue2.js.br +0 -0
  567. package/build/client/_app/immutable/chunks/B2wEHue2.js.gz +0 -0
  568. package/build/client/_app/immutable/chunks/BAurN1n6.js +0 -2
  569. package/build/client/_app/immutable/chunks/BAurN1n6.js.br +0 -0
  570. package/build/client/_app/immutable/chunks/BAurN1n6.js.gz +0 -0
  571. package/build/client/_app/immutable/chunks/BEAYWcbT.js +0 -1
  572. package/build/client/_app/immutable/chunks/BEAYWcbT.js.br +0 -0
  573. package/build/client/_app/immutable/chunks/BEAYWcbT.js.gz +0 -0
  574. package/build/client/_app/immutable/chunks/BGINfGsV.js +0 -1
  575. package/build/client/_app/immutable/chunks/BGINfGsV.js.br +0 -4
  576. package/build/client/_app/immutable/chunks/BGINfGsV.js.gz +0 -0
  577. package/build/client/_app/immutable/chunks/BHsdHLbF.js +0 -1
  578. package/build/client/_app/immutable/chunks/BHsdHLbF.js.br +0 -0
  579. package/build/client/_app/immutable/chunks/BHsdHLbF.js.gz +0 -0
  580. package/build/client/_app/immutable/chunks/BR5v76-T.js +0 -1
  581. package/build/client/_app/immutable/chunks/BR5v76-T.js.br +0 -0
  582. package/build/client/_app/immutable/chunks/BR5v76-T.js.gz +0 -0
  583. package/build/client/_app/immutable/chunks/BUo4hMcM.js +0 -1
  584. package/build/client/_app/immutable/chunks/BUo4hMcM.js.br +0 -0
  585. package/build/client/_app/immutable/chunks/BUo4hMcM.js.gz +0 -0
  586. package/build/client/_app/immutable/chunks/BVVO3JPx.js +0 -1
  587. package/build/client/_app/immutable/chunks/BVVO3JPx.js.br +0 -0
  588. package/build/client/_app/immutable/chunks/BVVO3JPx.js.gz +0 -0
  589. package/build/client/_app/immutable/chunks/BZm5e4fE.js +0 -1
  590. package/build/client/_app/immutable/chunks/BZm5e4fE.js.br +0 -0
  591. package/build/client/_app/immutable/chunks/BZm5e4fE.js.gz +0 -0
  592. package/build/client/_app/immutable/chunks/Bfi4vm-w.js +0 -1
  593. package/build/client/_app/immutable/chunks/Bfi4vm-w.js.br +0 -0
  594. package/build/client/_app/immutable/chunks/Bfi4vm-w.js.gz +0 -0
  595. package/build/client/_app/immutable/chunks/BiTivU7x.js +0 -1
  596. package/build/client/_app/immutable/chunks/BiTivU7x.js.br +0 -0
  597. package/build/client/_app/immutable/chunks/BiTivU7x.js.gz +0 -0
  598. package/build/client/_app/immutable/chunks/BiuLIp4b.js +0 -1
  599. package/build/client/_app/immutable/chunks/BiuLIp4b.js.br +0 -0
  600. package/build/client/_app/immutable/chunks/BiuLIp4b.js.gz +0 -0
  601. package/build/client/_app/immutable/chunks/Bns_F-QV.js +0 -1
  602. package/build/client/_app/immutable/chunks/Bns_F-QV.js.br +0 -0
  603. package/build/client/_app/immutable/chunks/Bns_F-QV.js.gz +0 -0
  604. package/build/client/_app/immutable/chunks/Brlpgp90.js +0 -1
  605. package/build/client/_app/immutable/chunks/Brlpgp90.js.br +0 -0
  606. package/build/client/_app/immutable/chunks/Brlpgp90.js.gz +0 -0
  607. package/build/client/_app/immutable/chunks/BunkbzFG.js +0 -1
  608. package/build/client/_app/immutable/chunks/BunkbzFG.js.br +0 -0
  609. package/build/client/_app/immutable/chunks/BunkbzFG.js.gz +0 -0
  610. package/build/client/_app/immutable/chunks/BwOfqJw9.js +0 -1
  611. package/build/client/_app/immutable/chunks/BwOfqJw9.js.br +0 -0
  612. package/build/client/_app/immutable/chunks/BwOfqJw9.js.gz +0 -0
  613. package/build/client/_app/immutable/chunks/C-xrRA1Y.js +0 -1
  614. package/build/client/_app/immutable/chunks/C-xrRA1Y.js.br +0 -0
  615. package/build/client/_app/immutable/chunks/C-xrRA1Y.js.gz +0 -0
  616. package/build/client/_app/immutable/chunks/C2_XZrIO.js +0 -7
  617. package/build/client/_app/immutable/chunks/C2_XZrIO.js.br +0 -0
  618. package/build/client/_app/immutable/chunks/C2_XZrIO.js.gz +0 -0
  619. package/build/client/_app/immutable/chunks/C2d4bDYU.js +0 -1
  620. package/build/client/_app/immutable/chunks/C2d4bDYU.js.br +0 -0
  621. package/build/client/_app/immutable/chunks/C2d4bDYU.js.gz +0 -0
  622. package/build/client/_app/immutable/chunks/C6BQPSOs.js +0 -62
  623. package/build/client/_app/immutable/chunks/C6BQPSOs.js.br +0 -0
  624. package/build/client/_app/immutable/chunks/C6BQPSOs.js.gz +0 -0
  625. package/build/client/_app/immutable/chunks/CDphfOBv.js +0 -1
  626. package/build/client/_app/immutable/chunks/CDphfOBv.js.br +0 -0
  627. package/build/client/_app/immutable/chunks/CDphfOBv.js.gz +0 -0
  628. package/build/client/_app/immutable/chunks/CHoQMvOZ.js +0 -1
  629. package/build/client/_app/immutable/chunks/CHoQMvOZ.js.br +0 -0
  630. package/build/client/_app/immutable/chunks/CHoQMvOZ.js.gz +0 -0
  631. package/build/client/_app/immutable/chunks/CIE0U5Ih.js +0 -1
  632. package/build/client/_app/immutable/chunks/CIE0U5Ih.js.br +0 -0
  633. package/build/client/_app/immutable/chunks/CIE0U5Ih.js.gz +0 -0
  634. package/build/client/_app/immutable/chunks/CLs9Rkbg.js +0 -1
  635. package/build/client/_app/immutable/chunks/CLs9Rkbg.js.br +0 -0
  636. package/build/client/_app/immutable/chunks/CLs9Rkbg.js.gz +0 -0
  637. package/build/client/_app/immutable/chunks/COQ3aAYj.js +0 -1
  638. package/build/client/_app/immutable/chunks/COQ3aAYj.js.br +0 -0
  639. package/build/client/_app/immutable/chunks/COQ3aAYj.js.gz +0 -0
  640. package/build/client/_app/immutable/chunks/COiIt96y.js +0 -1
  641. package/build/client/_app/immutable/chunks/COiIt96y.js.br +0 -0
  642. package/build/client/_app/immutable/chunks/COiIt96y.js.gz +0 -0
  643. package/build/client/_app/immutable/chunks/CQ7gIAH8.js +0 -1
  644. package/build/client/_app/immutable/chunks/CQ7gIAH8.js.br +0 -2
  645. package/build/client/_app/immutable/chunks/CQ7gIAH8.js.gz +0 -0
  646. package/build/client/_app/immutable/chunks/CQlHU-Rx.js +0 -1
  647. package/build/client/_app/immutable/chunks/CQlHU-Rx.js.br +0 -0
  648. package/build/client/_app/immutable/chunks/CQlHU-Rx.js.gz +0 -0
  649. package/build/client/_app/immutable/chunks/CXfdgbLv.js +0 -1
  650. package/build/client/_app/immutable/chunks/CXfdgbLv.js.br +0 -0
  651. package/build/client/_app/immutable/chunks/CXfdgbLv.js.gz +0 -0
  652. package/build/client/_app/immutable/chunks/CeYIQAXD.js +0 -1
  653. package/build/client/_app/immutable/chunks/CeYIQAXD.js.br +0 -0
  654. package/build/client/_app/immutable/chunks/CeYIQAXD.js.gz +0 -0
  655. package/build/client/_app/immutable/chunks/CewXGI4o.js +0 -14
  656. package/build/client/_app/immutable/chunks/CewXGI4o.js.br +0 -0
  657. package/build/client/_app/immutable/chunks/CewXGI4o.js.gz +0 -0
  658. package/build/client/_app/immutable/chunks/CfdzAfq2.js +0 -1
  659. package/build/client/_app/immutable/chunks/CfdzAfq2.js.br +0 -0
  660. package/build/client/_app/immutable/chunks/CfdzAfq2.js.gz +0 -0
  661. package/build/client/_app/immutable/chunks/CkFDaaNz.js +0 -1
  662. package/build/client/_app/immutable/chunks/CkFDaaNz.js.br +0 -0
  663. package/build/client/_app/immutable/chunks/CkFDaaNz.js.gz +0 -0
  664. package/build/client/_app/immutable/chunks/CkLriSVx.js +0 -1
  665. package/build/client/_app/immutable/chunks/CkLriSVx.js.br +0 -0
  666. package/build/client/_app/immutable/chunks/CkLriSVx.js.gz +0 -0
  667. package/build/client/_app/immutable/chunks/Clzs_eXS.js +0 -5
  668. package/build/client/_app/immutable/chunks/Clzs_eXS.js.br +0 -0
  669. package/build/client/_app/immutable/chunks/Clzs_eXS.js.gz +0 -0
  670. package/build/client/_app/immutable/chunks/CrCQ2NNA.js +0 -1
  671. package/build/client/_app/immutable/chunks/CrCQ2NNA.js.br +0 -0
  672. package/build/client/_app/immutable/chunks/CrCQ2NNA.js.gz +0 -0
  673. package/build/client/_app/immutable/chunks/CrgqcyB_.js +0 -1
  674. package/build/client/_app/immutable/chunks/CrgqcyB_.js.br +0 -0
  675. package/build/client/_app/immutable/chunks/CrgqcyB_.js.gz +0 -0
  676. package/build/client/_app/immutable/chunks/CtlVBKf-.js +0 -1
  677. package/build/client/_app/immutable/chunks/CtlVBKf-.js.br +0 -0
  678. package/build/client/_app/immutable/chunks/CtlVBKf-.js.gz +0 -0
  679. package/build/client/_app/immutable/chunks/D4aeBIhU.js +0 -1
  680. package/build/client/_app/immutable/chunks/D4aeBIhU.js.br +0 -0
  681. package/build/client/_app/immutable/chunks/D4aeBIhU.js.gz +0 -0
  682. package/build/client/_app/immutable/chunks/D8Hx-_mj.js +0 -1
  683. package/build/client/_app/immutable/chunks/D8Hx-_mj.js.br +0 -3
  684. package/build/client/_app/immutable/chunks/D8Hx-_mj.js.gz +0 -0
  685. package/build/client/_app/immutable/chunks/DC8T2WRZ.js +0 -1
  686. package/build/client/_app/immutable/chunks/DC8T2WRZ.js.br +0 -0
  687. package/build/client/_app/immutable/chunks/DC8T2WRZ.js.gz +0 -0
  688. package/build/client/_app/immutable/chunks/DGy76IbW.js +0 -2
  689. package/build/client/_app/immutable/chunks/DGy76IbW.js.br +0 -0
  690. package/build/client/_app/immutable/chunks/DGy76IbW.js.gz +0 -0
  691. package/build/client/_app/immutable/chunks/DIABVMrA.js +0 -1
  692. package/build/client/_app/immutable/chunks/DIABVMrA.js.br +0 -0
  693. package/build/client/_app/immutable/chunks/DIABVMrA.js.gz +0 -0
  694. package/build/client/_app/immutable/chunks/DLith9Yi.js +0 -1
  695. package/build/client/_app/immutable/chunks/DLith9Yi.js.br +0 -0
  696. package/build/client/_app/immutable/chunks/DLith9Yi.js.gz +0 -0
  697. package/build/client/_app/immutable/chunks/DPTtvukI.js +0 -1
  698. package/build/client/_app/immutable/chunks/DPTtvukI.js.br +0 -0
  699. package/build/client/_app/immutable/chunks/DPTtvukI.js.gz +0 -0
  700. package/build/client/_app/immutable/chunks/Da92_52d.js +0 -1
  701. package/build/client/_app/immutable/chunks/Da92_52d.js.br +0 -0
  702. package/build/client/_app/immutable/chunks/Da92_52d.js.gz +0 -0
  703. package/build/client/_app/immutable/chunks/Db0WMrvR.js +0 -1
  704. package/build/client/_app/immutable/chunks/Db0WMrvR.js.br +0 -0
  705. package/build/client/_app/immutable/chunks/Db0WMrvR.js.gz +0 -0
  706. package/build/client/_app/immutable/chunks/Dlb_KqyS.js +0 -2
  707. package/build/client/_app/immutable/chunks/Dlb_KqyS.js.br +0 -0
  708. package/build/client/_app/immutable/chunks/Dlb_KqyS.js.gz +0 -0
  709. package/build/client/_app/immutable/chunks/DmcreR7o.js +0 -1
  710. package/build/client/_app/immutable/chunks/DmcreR7o.js.br +0 -0
  711. package/build/client/_app/immutable/chunks/DmcreR7o.js.gz +0 -0
  712. package/build/client/_app/immutable/chunks/Dq9kJk5R.js +0 -1
  713. package/build/client/_app/immutable/chunks/Dq9kJk5R.js.br +0 -0
  714. package/build/client/_app/immutable/chunks/Dq9kJk5R.js.gz +0 -0
  715. package/build/client/_app/immutable/chunks/DxGQT-Hz.js +0 -1
  716. package/build/client/_app/immutable/chunks/DxGQT-Hz.js.br +0 -0
  717. package/build/client/_app/immutable/chunks/DxGQT-Hz.js.gz +0 -0
  718. package/build/client/_app/immutable/chunks/ET-O1REu.js +0 -1
  719. package/build/client/_app/immutable/chunks/ET-O1REu.js.br +0 -0
  720. package/build/client/_app/immutable/chunks/ET-O1REu.js.gz +0 -0
  721. package/build/client/_app/immutable/chunks/Ewrw42Vq.js +0 -1
  722. package/build/client/_app/immutable/chunks/Ewrw42Vq.js.br +0 -0
  723. package/build/client/_app/immutable/chunks/Ewrw42Vq.js.gz +0 -0
  724. package/build/client/_app/immutable/chunks/FQ69txbU.js +0 -1
  725. package/build/client/_app/immutable/chunks/FQ69txbU.js.br +0 -0
  726. package/build/client/_app/immutable/chunks/FQ69txbU.js.gz +0 -0
  727. package/build/client/_app/immutable/chunks/L-6wuY5f.js +0 -2
  728. package/build/client/_app/immutable/chunks/L-6wuY5f.js.br +0 -0
  729. package/build/client/_app/immutable/chunks/L-6wuY5f.js.gz +0 -0
  730. package/build/client/_app/immutable/chunks/M201SoVK.js +0 -1
  731. package/build/client/_app/immutable/chunks/M201SoVK.js.br +0 -1
  732. package/build/client/_app/immutable/chunks/M201SoVK.js.gz +0 -0
  733. package/build/client/_app/immutable/chunks/OeqXO44y.js +0 -1
  734. package/build/client/_app/immutable/chunks/OeqXO44y.js.br +0 -0
  735. package/build/client/_app/immutable/chunks/OeqXO44y.js.gz +0 -0
  736. package/build/client/_app/immutable/chunks/PPVm8Dsz.js +0 -1
  737. package/build/client/_app/immutable/chunks/PPVm8Dsz.js.br +0 -0
  738. package/build/client/_app/immutable/chunks/PPVm8Dsz.js.gz +0 -0
  739. package/build/client/_app/immutable/chunks/QAFSHLn2.js +0 -1
  740. package/build/client/_app/immutable/chunks/QAFSHLn2.js.br +0 -0
  741. package/build/client/_app/immutable/chunks/QAFSHLn2.js.gz +0 -0
  742. package/build/client/_app/immutable/chunks/Tm9AblHs.js +0 -1
  743. package/build/client/_app/immutable/chunks/Tm9AblHs.js.br +0 -0
  744. package/build/client/_app/immutable/chunks/Tm9AblHs.js.gz +0 -0
  745. package/build/client/_app/immutable/chunks/bvY4yrzM.js +0 -4
  746. package/build/client/_app/immutable/chunks/bvY4yrzM.js.br +0 -0
  747. package/build/client/_app/immutable/chunks/bvY4yrzM.js.gz +0 -0
  748. package/build/client/_app/immutable/chunks/eMSiEzFi.js +0 -1
  749. package/build/client/_app/immutable/chunks/eMSiEzFi.js.br +0 -0
  750. package/build/client/_app/immutable/chunks/eMSiEzFi.js.gz +0 -0
  751. package/build/client/_app/immutable/chunks/iVpzjqp1.js +0 -1
  752. package/build/client/_app/immutable/chunks/iVpzjqp1.js.br +0 -0
  753. package/build/client/_app/immutable/chunks/iVpzjqp1.js.gz +0 -0
  754. package/build/client/_app/immutable/chunks/m3YfhLk1.js +0 -1
  755. package/build/client/_app/immutable/chunks/m3YfhLk1.js.br +0 -0
  756. package/build/client/_app/immutable/chunks/m3YfhLk1.js.gz +0 -0
  757. package/build/client/_app/immutable/chunks/p7x6PRF0.js +0 -1
  758. package/build/client/_app/immutable/chunks/p7x6PRF0.js.br +0 -0
  759. package/build/client/_app/immutable/chunks/p7x6PRF0.js.gz +0 -0
  760. package/build/client/_app/immutable/chunks/t4rxsdjl.js +0 -74
  761. package/build/client/_app/immutable/chunks/t4rxsdjl.js.br +0 -0
  762. package/build/client/_app/immutable/chunks/t4rxsdjl.js.gz +0 -0
  763. package/build/client/_app/immutable/chunks/uD7-7yV9.js +0 -1
  764. package/build/client/_app/immutable/chunks/uD7-7yV9.js.br +0 -4
  765. package/build/client/_app/immutable/chunks/uD7-7yV9.js.gz +0 -0
  766. package/build/client/_app/immutable/entry/app.D22_AlD8.js +0 -2
  767. package/build/client/_app/immutable/entry/app.D22_AlD8.js.br +0 -0
  768. package/build/client/_app/immutable/entry/app.D22_AlD8.js.gz +0 -0
  769. package/build/client/_app/immutable/entry/start.xwa7znED.js +0 -1
  770. package/build/client/_app/immutable/entry/start.xwa7znED.js.br +0 -0
  771. package/build/client/_app/immutable/entry/start.xwa7znED.js.gz +0 -0
  772. package/build/client/_app/immutable/nodes/0.DsfUbybd.js +0 -5
  773. package/build/client/_app/immutable/nodes/0.DsfUbybd.js.br +0 -0
  774. package/build/client/_app/immutable/nodes/0.DsfUbybd.js.gz +0 -0
  775. package/build/client/_app/immutable/nodes/1.9tnApS8T.js +0 -1
  776. package/build/client/_app/immutable/nodes/1.9tnApS8T.js.br +0 -0
  777. package/build/client/_app/immutable/nodes/1.9tnApS8T.js.gz +0 -0
  778. package/build/client/_app/immutable/nodes/10.CbyVViLq.js +0 -14
  779. package/build/client/_app/immutable/nodes/10.CbyVViLq.js.br +0 -0
  780. package/build/client/_app/immutable/nodes/10.CbyVViLq.js.gz +0 -0
  781. package/build/client/_app/immutable/nodes/11.xg5UTCOx.js +0 -77
  782. package/build/client/_app/immutable/nodes/11.xg5UTCOx.js.br +0 -0
  783. package/build/client/_app/immutable/nodes/11.xg5UTCOx.js.gz +0 -0
  784. package/build/client/_app/immutable/nodes/12.C6hLGaov.js +0 -32
  785. package/build/client/_app/immutable/nodes/12.C6hLGaov.js.br +0 -0
  786. package/build/client/_app/immutable/nodes/12.C6hLGaov.js.gz +0 -0
  787. package/build/client/_app/immutable/nodes/13.DHbTeLkm.js +0 -5
  788. package/build/client/_app/immutable/nodes/13.DHbTeLkm.js.br +0 -0
  789. package/build/client/_app/immutable/nodes/13.DHbTeLkm.js.gz +0 -0
  790. package/build/client/_app/immutable/nodes/14.BMIOGjF-.js +0 -1
  791. package/build/client/_app/immutable/nodes/14.BMIOGjF-.js.br +0 -0
  792. package/build/client/_app/immutable/nodes/14.BMIOGjF-.js.gz +0 -0
  793. package/build/client/_app/immutable/nodes/15.DYSMqa5A.js +0 -10
  794. package/build/client/_app/immutable/nodes/15.DYSMqa5A.js.br +0 -0
  795. package/build/client/_app/immutable/nodes/15.DYSMqa5A.js.gz +0 -0
  796. package/build/client/_app/immutable/nodes/16.B0mX0t_j.js +0 -6
  797. package/build/client/_app/immutable/nodes/16.B0mX0t_j.js.br +0 -0
  798. package/build/client/_app/immutable/nodes/16.B0mX0t_j.js.gz +0 -0
  799. package/build/client/_app/immutable/nodes/2.CSYV0jmk.js +0 -4
  800. package/build/client/_app/immutable/nodes/2.CSYV0jmk.js.br +0 -0
  801. package/build/client/_app/immutable/nodes/2.CSYV0jmk.js.gz +0 -0
  802. package/build/client/_app/immutable/nodes/3.X5qqsIUa.js +0 -5
  803. package/build/client/_app/immutable/nodes/3.X5qqsIUa.js.br +0 -0
  804. package/build/client/_app/immutable/nodes/3.X5qqsIUa.js.gz +0 -0
  805. package/build/client/_app/immutable/nodes/4.Di4k8SR2.js +0 -3
  806. package/build/client/_app/immutable/nodes/4.Di4k8SR2.js.br +0 -0
  807. package/build/client/_app/immutable/nodes/4.Di4k8SR2.js.gz +0 -0
  808. package/build/client/_app/immutable/nodes/5.DMFYTxVa.js +0 -7
  809. package/build/client/_app/immutable/nodes/5.DMFYTxVa.js.br +0 -0
  810. package/build/client/_app/immutable/nodes/5.DMFYTxVa.js.gz +0 -0
  811. package/build/client/_app/immutable/nodes/6.6yDAURLV.js +0 -4
  812. package/build/client/_app/immutable/nodes/6.6yDAURLV.js.br +0 -0
  813. package/build/client/_app/immutable/nodes/6.6yDAURLV.js.gz +0 -0
  814. package/build/client/_app/immutable/nodes/7.xxvMU05c.js +0 -1
  815. package/build/client/_app/immutable/nodes/7.xxvMU05c.js.br +0 -0
  816. package/build/client/_app/immutable/nodes/7.xxvMU05c.js.gz +0 -0
  817. package/build/client/_app/immutable/nodes/8.GSaWotW8.js +0 -1
  818. package/build/client/_app/immutable/nodes/8.GSaWotW8.js.br +0 -0
  819. package/build/client/_app/immutable/nodes/8.GSaWotW8.js.gz +0 -0
  820. package/build/client/_app/immutable/nodes/9.CEiUwDDg.js +0 -1
  821. package/build/client/_app/immutable/nodes/9.CEiUwDDg.js.br +0 -0
  822. package/build/client/_app/immutable/nodes/9.CEiUwDDg.js.gz +0 -0
  823. package/build/server/chunks/chunks/AllowanceMeter.js-C9jRsAGU.js +0 -42
  824. package/build/server/chunks/chunks/DecisionCard.js-u1VQ9s_v.js +0 -350
  825. package/build/server/chunks/chunks/DictateTextarea.js-BlEnOzcN.js +0 -85
  826. package/build/server/chunks/chunks/EtaLine.js-Pa4_VV6V.js +0 -79
  827. package/build/server/chunks/chunks/Icon.js-D7CY3joB.js +0 -129
  828. package/build/server/chunks/chunks/InsightsNav.js-BlxFBJfj.js +0 -22
  829. package/build/server/chunks/chunks/MicButton.js-BZSQAyuM.js +0 -336
  830. package/build/server/chunks/chunks/QuestionList.js-DglKezUe.js +0 -259
  831. package/build/server/chunks/chunks/SlotContent.js-YqZXXtRz.js +0 -1977
  832. package/build/server/chunks/chunks/StageTrack.js-BaorW-yk.js +0 -59
  833. package/build/server/chunks/chunks/TimeBar.js-k38rc7ZI.js +0 -32
  834. package/build/server/chunks/chunks/TimeLegend.js-BQVvgsvs.js +0 -29
  835. package/build/server/chunks/chunks/access.js-CS2pJasF.js +0 -816
  836. package/build/server/chunks/chunks/anchor.js-ByXDBfbi.js +0 -20
  837. package/build/server/chunks/chunks/arrow-down.js-DXDJc9EE.js +0 -18
  838. package/build/server/chunks/chunks/arrow-left.js-6Yey35CE.js +0 -18
  839. package/build/server/chunks/chunks/arrow-right.js-CfbPWRqu.js +0 -18
  840. package/build/server/chunks/chunks/arrow-up.js-AhghNbhW.js +0 -18
  841. package/build/server/chunks/chunks/bell.js-CAlv92RY.js +0 -143
  842. package/build/server/chunks/chunks/blocks.js-BL9jLCe-.js +0 -710
  843. package/build/server/chunks/chunks/bus.svelte.js-DRTptEhF.js +0 -9
  844. package/build/server/chunks/chunks/button.js-HeBqLheH.js +0 -7311
  845. package/build/server/chunks/chunks/chat.svelte.js-Cgdbtjbw.js +0 -537
  846. package/build/server/chunks/chunks/check.js-bmUhmMEz.js +0 -15
  847. package/build/server/chunks/chunks/checks.js-BnIxIaus.js +0 -175
  848. package/build/server/chunks/chunks/chevron-down.js-D75hVSIe.js +0 -15
  849. package/build/server/chunks/chunks/chevron-right.js-yhLg_GaH.js +0 -15
  850. package/build/server/chunks/chunks/circle-dashed.js-Bm3gZCXK.js +0 -24
  851. package/build/server/chunks/chunks/client.js-BUNengrw.js +0 -24
  852. package/build/server/chunks/chunks/clock.js-D7JTvRbC.js +0 -18
  853. package/build/server/chunks/chunks/compass.js-Tq6uiG8I.js +0 -23
  854. package/build/server/chunks/chunks/detail.js-CSjOmiVi.js +0 -133
  855. package/build/server/chunks/chunks/external-link.js-WxVF0xXO.js +0 -24
  856. package/build/server/chunks/chunks/file-text.js-CAo3vdqd.js +0 -26
  857. package/build/server/chunks/chunks/gauge.js-Dw9bgE72.js +0 -35
  858. package/build/server/chunks/chunks/git-pull-request.js-Cx1w8BQr.js +0 -20
  859. package/build/server/chunks/chunks/hammer.js-fp_Kidfj.js +0 -24
  860. package/build/server/chunks/chunks/hand.js-xkYPYJZj.js +0 -37
  861. package/build/server/chunks/chunks/harbour.js-xu7EfIHk.js +0 -113
  862. package/build/server/chunks/chunks/http.js-TzZuOtxn.js +0 -25
  863. package/build/server/chunks/chunks/http2.js-Cr9xuMRL.js +0 -26
  864. package/build/server/chunks/chunks/inbox.js-CW2sFmx9.js +0 -114
  865. package/build/server/chunks/chunks/inbox.svelte.js-OoKhjjWM.js +0 -134
  866. package/build/server/chunks/chunks/index-server.js-CtyUzIGY.js +0 -17
  867. package/build/server/chunks/chunks/index-server2.js-DMc-UvjC.js +0 -19
  868. package/build/server/chunks/chunks/index.js-Bn6j9diM.js +0 -1524
  869. package/build/server/chunks/chunks/index2.js-CXaRTuov.js +0 -46
  870. package/build/server/chunks/chunks/internal.js-Co-6PAQm.js +0 -146
  871. package/build/server/chunks/chunks/live.svelte.js-BRUTNc9D.js +0 -196
  872. package/build/server/chunks/chunks/loader-circle.js-IYRaUYWq.js +0 -16
  873. package/build/server/chunks/chunks/message-circle-question-mark.js-DwrMi0ty.js +0 -25
  874. package/build/server/chunks/chunks/message-square-text.js-N5uEmy8L.js +0 -25
  875. package/build/server/chunks/chunks/message-square.js-Hp-6BHgG.js +0 -22
  876. package/build/server/chunks/chunks/minus.js-bsfnwE-h.js +0 -15
  877. package/build/server/chunks/chunks/monitor-play.js-B7qbbPH6.js +0 -28
  878. package/build/server/chunks/chunks/preview.js-CVD-Kwks.js +0 -68
  879. package/build/server/chunks/chunks/prreview.js-C5XxDIu2.js +0 -85
  880. package/build/server/chunks/chunks/root.js-CQzYN4Pu.js +0 -3105
  881. package/build/server/chunks/chunks/runtime.js-C0n924wq.js +0 -13280
  882. package/build/server/chunks/chunks/scale.js-vP4G0lZM.js +0 -21
  883. package/build/server/chunks/chunks/shield-check.js-PJLnCKD9.js +0 -23
  884. package/build/server/chunks/chunks/spec.js-B0yI1XqG.js +0 -307
  885. package/build/server/chunks/chunks/split.js-BsCU24rQ.js +0 -20
  886. package/build/server/chunks/chunks/square-terminal.js-D5Z4Sl2-.js +0 -47
  887. package/build/server/chunks/chunks/tone.js-r2qFVrZC.js +0 -30
  888. package/build/server/chunks/chunks/trash.js-DYFbRevY.js +0 -46
  889. package/build/server/chunks/chunks/triangle-alert.js-DuE40HSU.js +0 -38
  890. package/build/server/chunks/chunks/utils.js-DTSGDHlH.js +0 -2956
  891. package/build/server/chunks/chunks/view.js-BtcLmKUY.js +0 -76
  892. package/build/server/chunks/chunks/view2.js-BdUXqNlY.js +0 -87
  893. package/build/server/chunks/chunks/views.js-B0wP-tuB.js +0 -137
  894. package/build/server/chunks/chunks/waypoints.js-D3HN7bje.js +0 -67
  895. package/build/server/chunks/chunks/x.js-tlds9Ooz.js +0 -18
  896. package/build/server/chunks/entries/endpoints/api/events/_server.ts.js-DNHG661Q.js +0 -93
  897. package/build/server/chunks/entries/endpoints/api/firstmate/chat/_server.ts.js-XBUQePMq.js +0 -74
  898. package/build/server/chunks/entries/endpoints/api/firstmate/commands/_server.ts.js-D1tzpRWy.js +0 -110
  899. package/build/server/chunks/entries/endpoints/api/firstmate/input/_server.ts.js-DqhQUZUA.js +0 -42
  900. package/build/server/chunks/entries/endpoints/api/firstmate/interrupt/_server.ts.js-LsZer0Bi.js +0 -35
  901. package/build/server/chunks/entries/endpoints/api/firstmate/messages/_server.ts.js-DQob0XkJ.js +0 -57
  902. package/build/server/chunks/entries/endpoints/api/firstmate/pick/_server.ts.js-DgFjtYYL.js +0 -45
  903. package/build/server/chunks/entries/endpoints/api/firstmate/start/_server.ts.js-DOoA4rRW.js +0 -35
  904. package/build/server/chunks/entries/endpoints/api/fleet/_server.ts.js-DZQsFY87.js +0 -27
  905. package/build/server/chunks/entries/endpoints/api/health/_server.ts.js-DuSzTlq5.js +0 -27
  906. package/build/server/chunks/entries/endpoints/api/inbox/_server.ts.js-C15XwPXH.js +0 -51
  907. package/build/server/chunks/entries/endpoints/api/insights/_server.ts.js--gavJO4f.js +0 -27
  908. package/build/server/chunks/entries/endpoints/api/plugins/_server.ts.js-CsTy_jT6.js +0 -27
  909. package/build/server/chunks/entries/endpoints/api/projects/_id_/passage/_server.ts.js-BWOcGtOU.js +0 -32
  910. package/build/server/chunks/entries/endpoints/api/projects/_id_/passage/commands/_server.ts.js-Kjwbc2wm.js +0 -41
  911. package/build/server/chunks/entries/endpoints/api/projects/_id_/passage/consent/_server.ts.js-BTIb8CUb.js +0 -53
  912. package/build/server/chunks/entries/endpoints/api/projects/_id_/passage/draft/_server.ts.js-Vh52yDJ9.js +0 -40
  913. package/build/server/chunks/entries/endpoints/api/projects/_id_/passage/file/_server.ts.js-LJDJLrpB.js +0 -63
  914. package/build/server/chunks/entries/endpoints/api/projects/_id_/passage/test/_server.ts.js-CdDBYH6K.js +0 -46
  915. package/build/server/chunks/entries/endpoints/api/services/_server.ts.js-DoElFmWK.js +0 -46
  916. package/build/server/chunks/entries/endpoints/api/slots/_server.ts.js-KiiPnPLF.js +0 -35
  917. package/build/server/chunks/entries/endpoints/api/specs/_id_/_server.ts.js-LMXTPr04.js +0 -59
  918. package/build/server/chunks/entries/endpoints/api/specs/_id_/build-request/_server.ts.js-bqjJGIjt.js +0 -47
  919. package/build/server/chunks/entries/endpoints/api/specs/_id_/comments/_comment_/_server.ts.js-DD1qQE9w.js +0 -36
  920. package/build/server/chunks/entries/endpoints/api/specs/_id_/comments/_server.ts.js-Bby1xkpH.js +0 -57
  921. package/build/server/chunks/entries/endpoints/api/specs/_id_/images/_name_/_server.ts.js-CPX8OLQa.js +0 -49
  922. package/build/server/chunks/entries/endpoints/api/specs/_id_/images/_server.ts.js-BjBV4SVl.js +0 -55
  923. package/build/server/chunks/entries/endpoints/api/specs/_id_/sent/_server.ts.js-BAqm0IW0.js +0 -36
  924. package/build/server/chunks/entries/endpoints/api/specs/_id_/turn/_server.ts.js-CNFIHA70.js +0 -82
  925. package/build/server/chunks/entries/endpoints/api/specs/_server.ts.js-Bix9PKKr.js +0 -40
  926. package/build/server/chunks/entries/endpoints/api/tasks/_id_/_server.ts.js-CT7cLDQU.js +0 -32
  927. package/build/server/chunks/entries/endpoints/api/tasks/_id_/artifacts/_...name_/_server.ts.js-zCsm8UJT.js +0 -51
  928. package/build/server/chunks/entries/endpoints/api/tasks/_id_/diff/_server.ts.js-ccyEPbua.js +0 -39
  929. package/build/server/chunks/entries/endpoints/api/tasks/_id_/output/_server.ts.js-eZPQtK6T.js +0 -84
  930. package/build/server/chunks/entries/endpoints/api/tasks/_id_/preview/_server.ts.js-CW76hSLW.js +0 -102
  931. package/build/server/chunks/entries/endpoints/api/tasks/_id_/review/_server.ts.js-Cjuig1dr.js +0 -34
  932. package/build/server/chunks/entries/endpoints/api/tasks/_id_/review/ask/_server.ts.js-C04r1OFS.js +0 -40
  933. package/build/server/chunks/entries/endpoints/api/tasks/_id_/review/check/_server.ts.js-Ca5VNJtJ.js +0 -39
  934. package/build/server/chunks/entries/endpoints/api/tasks/_id_/review/guide/_server.ts.js-BKLIKSUM.js +0 -39
  935. package/build/server/chunks/entries/endpoints/api/tasks/_id_/review/runs/_run_/stop/_server.ts.js-C-D9zXgK.js +0 -32
  936. package/build/server/chunks/entries/fallbacks/error.svelte.js-DlN_tCrh.js +0 -15
  937. package/build/server/chunks/entries/hooks.server.js-Cgq1_RNe.js +0 -40
  938. package/build/server/chunks/entries/pages/_layout.server.ts.js-B7EWMhm1.js +0 -20
  939. package/build/server/chunks/entries/pages/_layout.svelte.js-BJuZaosz.js +0 -10454
  940. package/build/server/chunks/entries/pages/_page.server.ts.js-CrjekE3C.js +0 -16
  941. package/build/server/chunks/entries/pages/_page.svelte.js-BI4c5H0n.js +0 -3699
  942. package/build/server/chunks/entries/pages/decisions/_page.server.ts.js-Olm_zS-k.js +0 -11
  943. package/build/server/chunks/entries/pages/decisions/_page.svelte.js-ClTz3O_K.js +0 -167
  944. package/build/server/chunks/entries/pages/harbour/_page.server.ts.js-CVhhNUGy.js +0 -20
  945. package/build/server/chunks/entries/pages/harbour/_page.svelte.js-43FRNSVK.js +0 -1346
  946. package/build/server/chunks/entries/pages/headroom/_page.server.ts.js-Bv8GukD1.js +0 -11
  947. package/build/server/chunks/entries/pages/headroom/_page.svelte.js-zmKQdAwy.js +0 -135
  948. package/build/server/chunks/entries/pages/inbox/_page.svelte.js-wTvAFPNM.js +0 -175
  949. package/build/server/chunks/entries/pages/plugins/_plugin_/_page_/_page.server.ts.js-BJRmRxez.js +0 -15
  950. package/build/server/chunks/entries/pages/plugins/_plugin_/_page_/_page.svelte.js-DfAqJJ3i.js +0 -55
  951. package/build/server/chunks/entries/pages/projects/_id_/_plugin_/_tab_/_page.server.ts.js-DawJ61h-.js +0 -15
  952. package/build/server/chunks/entries/pages/projects/_id_/_plugin_/_tab_/_page.svelte.js-B472Pugu.js +0 -66
  953. package/build/server/chunks/entries/pages/projects/_id_/passage/_page.server.ts.js-Cm-4qkeb.js +0 -14
  954. package/build/server/chunks/entries/pages/projects/_id_/passage/_page.svelte.js-CWjEArXY.js +0 -394
  955. package/build/server/chunks/entries/pages/projects/_id_/passage/edit/_page.server.ts.js-DWNW8L5o.js +0 -15
  956. package/build/server/chunks/entries/pages/projects/_id_/passage/edit/_page.svelte.js-iHacn81K.js +0 -1859
  957. package/build/server/chunks/entries/pages/projects/_page.server.ts.js-BVDM5Frg.js +0 -37
  958. package/build/server/chunks/entries/pages/projects/_page.svelte.js-B_NQ-Wg3.js +0 -270
  959. package/build/server/chunks/entries/pages/spec/_page.server.ts.js-B3atEUDm.js +0 -31
  960. package/build/server/chunks/entries/pages/spec/_page.svelte.js-BJjweG9u.js +0 -1561
  961. package/build/server/chunks/entries/pages/tasks/_id_/_page.server.ts.js-BDQIO7Ft.js +0 -25
  962. package/build/server/chunks/entries/pages/tasks/_id_/_page.svelte.js-Dr2wwDJG.js +0 -2063
  963. package/build/server/chunks/entries/pages/tasks/_id_/doc/_page.server.ts.js-Bw-3fcQ6.js +0 -24
  964. package/build/server/chunks/entries/pages/tasks/_id_/doc/_page.svelte.js-DOyZ1QzI.js +0 -145
  965. package/build/server/chunks/entries/pages/tasks/_id_/review/_page.server.ts.js-CJek9uLa.js +0 -15
  966. package/build/server/chunks/entries/pages/tasks/_id_/review/_page.svelte.js-BDaRELgE.js +0 -692
  967. package/build/server/chunks/entries/pages/time/_page.server.ts.js-An6F-Ydg.js +0 -11
  968. package/build/server/chunks/entries/pages/time/_page.svelte.js-CSXGxvVs.js +0 -107
  969. package/build/server/chunks/handler-BnRz5A8m.js +0 -1474
  970. package/build/server/chunks/index.js-C8djlQGs.js +0 -4296
  971. package/build/server/chunks/manifest.js-YAglwkb0.js +0 -434
  972. package/build/server/chunks/nodes/0.js-lkzICUiD.js +0 -32
  973. package/build/server/chunks/nodes/1.js-BJHI215Q.js +0 -9
  974. package/build/server/chunks/nodes/10.js-BWB-fD67.js +0 -33
  975. package/build/server/chunks/nodes/11.js-DWkXu85W.js +0 -33
  976. package/build/server/chunks/nodes/12.js-CKTx5eRx.js +0 -37
  977. package/build/server/chunks/nodes/13.js-C9YUj8Wf.js +0 -33
  978. package/build/server/chunks/nodes/14.js-CvfRHrCy.js +0 -33
  979. package/build/server/chunks/nodes/15.js-D_eEoMQb.js +0 -33
  980. package/build/server/chunks/nodes/16.js-BQhgpvij.js +0 -32
  981. package/build/server/chunks/nodes/2.js-C-3t-e-a.js +0 -32
  982. package/build/server/chunks/nodes/3.js-DgwKYi6C.js +0 -32
  983. package/build/server/chunks/nodes/4.js-DRDQ1cZ6.js +0 -34
  984. package/build/server/chunks/nodes/5.js-Bn5aoN6C.js +0 -32
  985. package/build/server/chunks/nodes/6.js-lazTWxVv.js +0 -9
  986. package/build/server/chunks/nodes/7.js-PUjlFfxr.js +0 -32
  987. package/build/server/chunks/nodes/8.js-DYPhaWV-.js +0 -34
  988. package/build/server/chunks/nodes/9.js-C2q_Jaiu.js +0 -32
  989. /package/build/client/_app/immutable/assets/{15.KLSHp5Yu.css → 20.KLSHp5Yu.css} +0 -0
  990. /package/build/client/_app/immutable/assets/{15.KLSHp5Yu.css.br → 20.KLSHp5Yu.css.br} +0 -0
  991. /package/build/client/_app/immutable/assets/{15.KLSHp5Yu.css.gz → 20.KLSHp5Yu.css.gz} +0 -0
  992. /package/build/client/_app/immutable/assets/{4.5dJKCkOT.css → 5.5dJKCkOT.css} +0 -0
  993. /package/build/client/_app/immutable/assets/{4.5dJKCkOT.css.br → 5.5dJKCkOT.css.br} +0 -0
  994. /package/build/client/_app/immutable/assets/{4.5dJKCkOT.css.gz → 5.5dJKCkOT.css.gz} +0 -0
  995. /package/build/client/_app/immutable/assets/{MicButton.Dga9zAug.css → DictateTextarea.Dga9zAug.css} +0 -0
  996. /package/build/client/_app/immutable/assets/{MicButton.Dga9zAug.css.br → DictateTextarea.Dga9zAug.css.br} +0 -0
  997. /package/build/client/_app/immutable/assets/{MicButton.Dga9zAug.css.gz → DictateTextarea.Dga9zAug.css.gz} +0 -0
@@ -1,1561 +0,0 @@
1
- import { af as head, aj as escape_html, ai as attr, aa as ensure_array_like, ak as stringify, ah as attr_class, _ as derived, a6 as bind_props, ae as spread_props, m as is_array, l as get_prototype_of, o as object_prototype } from '../../../chunks/index.js-Bn6j9diM.js';
2
- import { g as goto } from '../../../chunks/client.js-BUNengrw.js';
3
- import { B as Button } from '../../../chunks/button.js-HeBqLheH.js';
4
- import { a as currentFleet } from '../../../chunks/live.svelte.js-BRUTNc9D.js';
5
- import { S as SESSION_HEADER } from '../../../chunks/messages.js-CFyGKoqq.js';
6
- import { h as html, c as composerBus } from '../../../chunks/bus.svelte.js-DRTptEhF.js';
7
- import { D as DictateTextarea } from '../../../chunks/DictateTextarea.js-BlEnOzcN.js';
8
- import '../_page.svelte.js-BI4c5H0n.js';
9
- import { d as dictation } from '../../../chunks/MicButton.js-BZSQAyuM.js';
10
- import { L as Loader_circle } from '../../../chunks/loader-circle.js-IYRaUYWq.js';
11
- import { R as Rotate_ccw, P as Plus, T as Trash } from '../../../chunks/trash.js-DYFbRevY.js';
12
- import { A as Arrow_up } from '../../../chunks/arrow-up.js-AhghNbhW.js';
13
- import { C as Compass } from '../../../chunks/compass.js-Tq6uiG8I.js';
14
- import { t as tick } from '../../../chunks/index-server.js-CtyUzIGY.js';
15
- import { h as specTitle, S as SPEC_SECTIONS, j as sectionFilled, d as specMessage, g as specMarkdown, k as sectionMarkdown, s as summarize } from '../../../chunks/spec.js-B0yI1XqG.js';
16
- import { X } from '../../../chunks/x.js-tlds9Ooz.js';
17
- import { I as Icon } from '../../../chunks/Icon.js-D7CY3joB.js';
18
- import { A as Arrow_left } from '../../../chunks/arrow-left.js-6Yey35CE.js';
19
- import { A as Arrow_right } from '../../../chunks/arrow-right.js-CfbPWRqu.js';
20
- import { C as Check } from '../../../chunks/check.js-bmUhmMEz.js';
21
- import { a as ago } from '../../../chunks/format.js-D3lWEg6U.js';
22
- import { C as Chevron_down } from '../../../chunks/chevron-down.js-D75hVSIe.js';
23
- import { H as Hammer } from '../../../chunks/hammer.js-fp_Kidfj.js';
24
- import '../../../chunks/utils.js-DTSGDHlH.js';
25
- import '../../../chunks/utils2.js-BQzn9ikS.js';
26
- import '../../../chunks/exports.js-BZBK1HC9.js';
27
- import '../../../chunks/root.js-CQzYN4Pu.js';
28
- import '../../../chunks/index2.js-CXaRTuov.js';
29
- import '../../../chunks/slots.svelte.js-0Ejhe-hS.js';
30
- import '../../../chunks/keys.js-CdtCzv-v.js';
31
- import '../../../chunks/harbour.js-xu7EfIHk.js';
32
- import '../../../chunks/chat.svelte.js-Cgdbtjbw.js';
33
- import '../../../chunks/blocks.js-BL9jLCe-.js';
34
- import 'yaml';
35
- import '../../../chunks/SlotContent.js-YqZXXtRz.js';
36
- import '../../../chunks/external-link.js-WxVF0xXO.js';
37
- import '../../../chunks/git-pull-request.js-Cx1w8BQr.js';
38
- import '../../../chunks/index-server2.js-DMc-UvjC.js';
39
- import '../../../chunks/anchor.js-ByXDBfbi.js';
40
- import '../../../chunks/triangle-alert.js-DuE40HSU.js';
41
- import '../../../chunks/file-text.js-CAo3vdqd.js';
42
- import '../../../chunks/square-terminal.js-D5Z4Sl2-.js';
43
- import '../../../chunks/split.js-BsCU24rQ.js';
44
- import '../../../chunks/message-square-text.js-N5uEmy8L.js';
45
- import '../../../chunks/hand.js-xkYPYJZj.js';
46
- import '../../../chunks/circle-dashed.js-Bm3gZCXK.js';
47
- import '../../../chunks/chevron-right.js-yhLg_GaH.js';
48
- import '../../../chunks/message-circle-question-mark.js-DwrMi0ty.js';
49
- import '../../../chunks/gauge.js-Dw9bgE72.js';
50
- import '../../../chunks/insights.js-CzzfyHGp.js';
51
- import '../../../chunks/EtaLine.js-Pa4_VV6V.js';
52
- import '../../../chunks/checks.js-BnIxIaus.js';
53
- import '../../../chunks/clock.js-D7JTvRbC.js';
54
- import '../../../chunks/StageTrack.js-BaorW-yk.js';
55
- import '../../../chunks/tone.js-r2qFVrZC.js';
56
- import '../../../chunks/AllowanceMeter.js-C9jRsAGU.js';
57
- import '../../../chunks/TimeBar.js-k38rc7ZI.js';
58
- import '../../../chunks/inbox.svelte.js-OoKhjjWM.js';
59
- import '../../../chunks/inbox.js-CW2sFmx9.js';
60
- import '../../../chunks/DecisionCard.js-u1VQ9s_v.js';
61
- import '../../../chunks/monitor-play.js-B7qbbPH6.js';
62
- import '../../../chunks/scale.js-vP4G0lZM.js';
63
- import '../../../chunks/message-square.js-Hp-6BHgG.js';
64
-
65
- const empty = [];
66
- function snapshot(value, skip_warning = false, no_tojson = false) {
67
- return clone(value, /* @__PURE__ */ new Map(), "", empty, null, no_tojson);
68
- }
69
- function clone(value, cloned, path, paths, original = null, no_tojson = false) {
70
- if (typeof value === "object" && value !== null) {
71
- var unwrapped = cloned.get(value);
72
- if (unwrapped !== void 0) return unwrapped;
73
- if (value instanceof Map) return (
74
- /** @type {Snapshot<T>} */
75
- new Map(value)
76
- );
77
- if (value instanceof Set) return (
78
- /** @type {Snapshot<T>} */
79
- new Set(value)
80
- );
81
- if (is_array(value)) {
82
- var copy = (
83
- /** @type {Snapshot<any>} */
84
- Array(value.length)
85
- );
86
- cloned.set(value, copy);
87
- if (original !== null) {
88
- cloned.set(original, copy);
89
- }
90
- for (var i = 0; i < value.length; i += 1) {
91
- var element = value[i];
92
- if (i in value) {
93
- copy[i] = clone(element, cloned, path, paths, null, no_tojson);
94
- }
95
- }
96
- return copy;
97
- }
98
- if (get_prototype_of(value) === object_prototype) {
99
- copy = {};
100
- cloned.set(value, copy);
101
- if (original !== null) {
102
- cloned.set(original, copy);
103
- }
104
- for (var key of Object.keys(value)) {
105
- copy[key] = clone(
106
- // @ts-expect-error
107
- value[key],
108
- cloned,
109
- path,
110
- paths,
111
- null,
112
- no_tojson
113
- );
114
- }
115
- return copy;
116
- }
117
- if (value instanceof Date) {
118
- value.getTime();
119
- return (
120
- /** @type {Snapshot<T>} */
121
- structuredClone(value)
122
- );
123
- }
124
- if (typeof /** @type {T & { toJSON?: any } } */
125
- value.toJSON === "function" && !no_tojson) {
126
- return clone(
127
- /** @type {T & { toJSON(): any } } */
128
- value.toJSON(),
129
- cloned,
130
- path,
131
- paths,
132
- // Associate the instance with the toJSON clone
133
- value
134
- );
135
- }
136
- }
137
- if (value instanceof EventTarget) {
138
- return (
139
- /** @type {Snapshot<T>} */
140
- value
141
- );
142
- }
143
- try {
144
- return (
145
- /** @type {Snapshot<T>} */
146
- structuredClone(value)
147
- );
148
- } catch (e) {
149
- return (
150
- /** @type {Snapshot<T>} */
151
- value
152
- );
153
- }
154
- }
155
- function File_plus_corner($$renderer, $$props) {
156
- let { $$slots, $$events, ...props } = $$props;
157
- const iconData = {
158
- "name": "file-plus-corner",
159
- "size": 24,
160
- "node": [
161
- [
162
- "path",
163
- {
164
- "d": "M11.35 22H6a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v5.35"
165
- }
166
- ],
167
- ["path", { "d": "M14 2v5a1 1 0 0 0 1 1h5" }],
168
- ["path", { "d": "M14 19h6" }],
169
- ["path", { "d": "M17 16v6" }]
170
- ],
171
- "aliases": ["file-plus-2"]
172
- };
173
- Icon($$renderer, spread_props([props, { icon: iconData }]));
174
- }
175
- function Image_plus($$renderer, $$props) {
176
- let { $$slots, $$events, ...props } = $$props;
177
- const iconData = {
178
- "name": "image-plus",
179
- "size": 24,
180
- "node": [
181
- ["path", { "d": "M16 5h6" }],
182
- ["path", { "d": "M19 2v6" }],
183
- [
184
- "path",
185
- {
186
- "d": "M21 11.5V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h7.5"
187
- }
188
- ],
189
- ["path", { "d": "m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21" }],
190
- ["circle", { "cx": "9", "cy": "9", "r": "2" }]
191
- ]
192
- };
193
- Icon($$renderer, spread_props([props, { icon: iconData }]));
194
- }
195
- function Message_square_plus($$renderer, $$props) {
196
- let { $$slots, $$events, ...props } = $$props;
197
- const iconData = {
198
- "name": "message-square-plus",
199
- "size": 24,
200
- "node": [
201
- [
202
- "path",
203
- {
204
- "d": "M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z"
205
- }
206
- ],
207
- ["path", { "d": "M12 8v6" }],
208
- ["path", { "d": "M9 11h6" }]
209
- ]
210
- };
211
- Icon($$renderer, spread_props([props, { icon: iconData }]));
212
- }
213
- function agentHead($$renderer) {
214
- $$renderer.push(`<span class="flex size-7 shrink-0 items-center justify-center rounded-full border border-brass bg-card text-sea" aria-hidden="true">`);
215
- Compass($$renderer, { class: "size-4" });
216
- $$renderer.push(`<!----></span>`);
217
- }
218
- function Interview($$renderer, $$props) {
219
- $$renderer.component(($$renderer2) => {
220
- let {
221
- draft,
222
- busy,
223
- streaming,
224
- activity,
225
- error,
226
- pending,
227
- model,
228
- effort,
229
- onAnswer,
230
- onRetry
231
- /** The agent's message so far, while it writes. */
232
- /** What the agent is looking at in the project, while it does. */
233
- /** What the captain just said, shown until the interview's record of it arrives. */
234
- } = $$props;
235
- let answer = "";
236
- const turns = derived(() => draft.interview.turns);
237
- const started = derived(() => turns().length > 0);
238
- const last = derived(() => turns().at(-1));
239
- const offered = derived(() => !busy && last()?.role === "agent" ? last() : null);
240
- const unanswered = derived(() => !busy && last()?.role === "captain");
241
- const usage = derived(() => draft.interview.usage);
242
- async function send() {
243
- if (dictation.phase !== "idle") dictation.commit();
244
- const text = answer.trim();
245
- if (!text || busy) return;
246
- const before = answer;
247
- answer = "";
248
- if (!await onAnswer(text)) answer = before;
249
- }
250
- function onkeydown(e) {
251
- if (e.key === "Enter" && !e.shiftKey && !e.isComposing) {
252
- e.preventDefault();
253
- void send();
254
- }
255
- }
256
- const tokens = (n) => n >= 1e3 ? `${(n / 1e3).toFixed(1)}k` : String(n);
257
- const usageNote = derived(() => usage().turns ? ` · ${usage().turns} turn${usage().turns === 1 ? "" : "s"}, ${tokens(usage().inputTokens)} tokens in, ${tokens(usage().outputTokens)} out${usage().costUsd > 0 ? `, about $${usage().costUsd.toFixed(2)} at API prices` : ""}` : "");
258
- let $$settled = true;
259
- let $$inner_renderer;
260
- function $$render_inner($$renderer3) {
261
- $$renderer3.push(`<div class="flex min-h-0 flex-col"><div class="max-h-[65dvh] min-h-0 flex-1 space-y-5 overflow-y-auto pr-1 xl:max-h-[calc(100dvh-20rem)]" aria-live="polite"${attr("aria-busy", busy)}>`);
262
- if (!started()) {
263
- $$renderer3.push(`<!--[0--><div class="rounded-lg border border-dashed border-hair p-5"><h2 class="font-display text-xl font-medium">What do you want built?</h2> <p class="mt-2 max-w-prose text-sm text-muted-foreground">Describe the idea in a sentence or two. The interviewer asks one question at a time,
264
- offers answers with the one it recommends, and writes the spec alongside as you go.
265
- Comment on anything in the spec and it will be addressed. When it is ready, send it to
266
- build.</p></div>`);
267
- } else {
268
- $$renderer3.push("<!--[-1-->");
269
- }
270
- $$renderer3.push(`<!--]--> <!--[-->`);
271
- const each_array = ensure_array_like(turns());
272
- for (let i = 0, $$length = each_array.length; i < $$length; i++) {
273
- let t = each_array[i];
274
- if (t.role === "agent") {
275
- $$renderer3.push(`<!--[0--><div class="flex items-start gap-3">`);
276
- agentHead($$renderer3);
277
- $$renderer3.push(`<!----> <div class="min-w-0 flex-1"><p class="mb-1 text-xs text-muted-foreground"><span class="font-semibold text-foreground">Interviewer</span></p> <div class="bubble bubble-firstmate chat-md text-[0.95rem]">`);
278
- {
279
- $$renderer3.push(`<!--[-1-->${escape_html(t.text)}`);
280
- }
281
- $$renderer3.push(`<!--]--></div> `);
282
- if (offered() === t && t.options.length) {
283
- $$renderer3.push(`<!--[0--><div class="mt-2 flex flex-wrap gap-2" role="group" aria-label="Suggested answers"><!--[-->`);
284
- const each_array_1 = ensure_array_like(t.options);
285
- for (let k = 0, $$length2 = each_array_1.length; k < $$length2; k++) {
286
- let o = each_array_1[k];
287
- $$renderer3.push(`<button${attr_class(`rounded-md border px-3 py-1.5 text-left text-sm hover:bg-accent ${t.recommended === k ? "border-brass bg-card" : "border-hair bg-card"}`)}>${escape_html(o)} `);
288
- if (t.recommended === k) {
289
- $$renderer3.push(`<!--[0--><span class="ml-1.5 text-[0.7rem] font-medium tracking-wide text-brass uppercase">Recommended</span>`);
290
- } else {
291
- $$renderer3.push("<!--[-1-->");
292
- }
293
- $$renderer3.push(`<!--]--></button>`);
294
- }
295
- $$renderer3.push(`<!--]--></div>`);
296
- } else {
297
- $$renderer3.push("<!--[-1-->");
298
- }
299
- $$renderer3.push(`<!--]--></div></div>`);
300
- } else {
301
- $$renderer3.push(`<!--[-1--><div class="flex justify-end"><div class="bubble bubble-captain max-w-[85%] text-[0.95rem]">${escape_html(t.text)}</div></div>`);
302
- }
303
- $$renderer3.push(`<!--]-->`);
304
- }
305
- $$renderer3.push(`<!--]--> `);
306
- if (pending) {
307
- $$renderer3.push(`<!--[0--><div class="flex justify-end"><div class="bubble bubble-captain max-w-[85%] text-[0.95rem]">${escape_html(pending)}</div></div>`);
308
- } else {
309
- $$renderer3.push("<!--[-1-->");
310
- }
311
- $$renderer3.push(`<!--]--> `);
312
- if (busy) {
313
- $$renderer3.push(`<!--[0--><div class="flex items-start gap-3">`);
314
- agentHead($$renderer3);
315
- $$renderer3.push(`<!----> <div class="min-w-0 flex-1"><p class="mb-1 flex items-center gap-2 text-xs text-muted-foreground"><span class="font-semibold text-foreground">Interviewer</span> `);
316
- Loader_circle($$renderer3, { class: "size-3 animate-spin", "aria-hidden": "true" });
317
- $$renderer3.push(`<!----> ${escape_html(activity ?? (streaming ? "Writing…" : "Thinking…"))}</p> `);
318
- if (streaming) {
319
- $$renderer3.push(`<!--[0--><div class="bubble bubble-firstmate chat-md text-[0.95rem]">`);
320
- {
321
- $$renderer3.push(`<!--[-1-->${escape_html(streaming)}`);
322
- }
323
- $$renderer3.push(`<!--]--></div>`);
324
- } else {
325
- $$renderer3.push("<!--[-1-->");
326
- }
327
- $$renderer3.push(`<!--]--></div></div>`);
328
- } else {
329
- $$renderer3.push("<!--[-1-->");
330
- }
331
- $$renderer3.push(`<!--]--> `);
332
- if (draft.interview.done && !busy && last()?.role === "agent") {
333
- $$renderer3.push(`<!--[0--><p class="rounded-md border border-sea/40 bg-sea/5 px-4 py-3 text-sm">The interviewer thinks the spec is ready. Read it over, comment on anything that is off, and
334
- send it to build when you are happy. You can keep answering to add more.</p>`);
335
- } else {
336
- $$renderer3.push("<!--[-1-->");
337
- }
338
- $$renderer3.push(`<!--]--> `);
339
- if (error) {
340
- $$renderer3.push(`<!--[0--><div class="flex flex-wrap items-center gap-3 rounded-md border border-danger/30 bg-danger/5 px-4 py-3" role="alert"><p class="min-w-0 flex-1 text-sm text-danger">${escape_html(error)}</p> `);
341
- if (unanswered()) {
342
- $$renderer3.push("<!--[0-->");
343
- Button($$renderer3, {
344
- variant: "outline",
345
- size: "sm",
346
- onclick: onRetry,
347
- children: ($$renderer4) => {
348
- Rotate_ccw($$renderer4, { "aria-hidden": "true" });
349
- $$renderer4.push(`<!---->Try again`);
350
- },
351
- $$slots: { default: true }
352
- });
353
- } else {
354
- $$renderer3.push("<!--[-1-->");
355
- }
356
- $$renderer3.push(`<!--]--></div>`);
357
- } else if (unanswered()) {
358
- $$renderer3.push(`<!--[1--><div class="flex items-center gap-3 text-sm text-muted-foreground">Your last answer has no reply yet. `);
359
- Button($$renderer3, {
360
- variant: "outline",
361
- size: "sm",
362
- onclick: onRetry,
363
- children: ($$renderer4) => {
364
- Rotate_ccw($$renderer4, { "aria-hidden": "true" });
365
- $$renderer4.push(`<!---->Ask the interviewer`);
366
- },
367
- $$slots: { default: true }
368
- });
369
- $$renderer3.push(`<!----></div>`);
370
- } else {
371
- $$renderer3.push("<!--[-1-->");
372
- }
373
- $$renderer3.push(`<!--]--></div> <div class="mt-4 border-t border-hair pt-4"><label for="spec-answer" class="sr-only">${escape_html(started() ? "Your answer" : "What you want built")}</label> <div class="flex items-end gap-2"><div class="min-w-0 flex-1">`);
374
- DictateTextarea($$renderer3, {
375
- id: "spec-answer",
376
- "data-answer": true,
377
- rows: started() ? 2 : 3,
378
- placeholder: started() ? "Answer in your own words, or pick a suggestion…" : "e.g. Let a family add their trip photos to one shared album",
379
- onkeydown,
380
- class: "bg-card text-[0.95rem]",
381
- get value() {
382
- return answer;
383
- },
384
- set value($$value) {
385
- answer = $$value;
386
- $$settled = false;
387
- }
388
- });
389
- $$renderer3.push(`<!----></div> `);
390
- Button($$renderer3, {
391
- size: "icon",
392
- onclick: send,
393
- disabled: busy || !answer.trim(),
394
- "aria-label": started() ? "Send answer" : "Start the interview",
395
- title: "Send (Enter)",
396
- children: ($$renderer4) => {
397
- if (busy) {
398
- $$renderer4.push("<!--[0-->");
399
- Loader_circle($$renderer4, { class: "animate-spin", "aria-hidden": "true" });
400
- } else {
401
- $$renderer4.push("<!--[-1-->");
402
- Arrow_up($$renderer4, { "aria-hidden": "true" });
403
- }
404
- $$renderer4.push(`<!--]-->`);
405
- },
406
- $$slots: { default: true }
407
- });
408
- $$renderer3.push(`<!----></div> <p class="mt-2 text-xs text-muted-foreground">Enter sends, Shift+Enter starts a new line. Interviewer: Claude ${escape_html(model)}, ${escape_html(effort)} effort, read-only${escape_html(usageNote())}.</p></div></div>`);
409
- }
410
- do {
411
- $$settled = true;
412
- $$inner_renderer = $$renderer2.copy();
413
- $$render_inner($$inner_renderer);
414
- } while (!$$settled);
415
- $$renderer2.subsume($$inner_renderer);
416
- });
417
- }
418
- function ListField($$renderer, $$props) {
419
- $$renderer.component(($$renderer2) => {
420
- let {
421
- items = void 0,
422
- label,
423
- item,
424
- addLabel,
425
- placeholder,
426
- numbered = false,
427
- multiline = false
428
- /** The list's name, e.g. "Requirements". */
429
- /** One entry's name, e.g. "Requirement". */
430
- } = $$props;
431
- let list = void 0;
432
- const entry = (i) => list?.querySelectorAll("[data-entry]")[i];
433
- async function add(at = items.length) {
434
- items = [...items.slice(0, at), "", ...items.slice(at)];
435
- await tick();
436
- }
437
- async function remove(i) {
438
- items = items.filter((_, j) => j !== i);
439
- await tick();
440
- entry(Math.min(i, items.length - 1))?.focus();
441
- }
442
- function onkeydown(e, i) {
443
- if (e.key === "Enter" && !e.shiftKey && !e.isComposing && (!multiline || e.metaKey)) {
444
- e.preventDefault();
445
- void add(i + 1);
446
- } else if (e.key === "Backspace" && !items[i] && items.length > 1) {
447
- e.preventDefault();
448
- void remove(i).then(() => entry(Math.max(0, i - 1))?.focus());
449
- }
450
- }
451
- let $$settled = true;
452
- let $$inner_renderer;
453
- function $$render_inner($$renderer3) {
454
- $$renderer3.push(`<fieldset class="min-w-0"><legend class="text-sm font-medium">${escape_html(label)}</legend> <p class="mt-0.5 text-xs text-muted-foreground">${escape_html(multiline ? "⌘ Enter" : "Enter")} adds another; an empty one is left out.</p> <ol class="mt-2 space-y-2"><!--[-->`);
455
- const each_array = ensure_array_like(items);
456
- for (let i = 0, $$length = each_array.length; i < $$length; i++) {
457
- each_array[i];
458
- $$renderer3.push(`<li class="flex items-start gap-2"><span class="tabular mt-2 w-6 shrink-0 text-right text-sm text-muted-foreground" aria-hidden="true">${escape_html(numbered ? `${i + 1}.` : "•")}</span> `);
459
- if (multiline) {
460
- $$renderer3.push("<!--[0-->");
461
- DictateTextarea($$renderer3, {
462
- "data-entry": true,
463
- rows: 2,
464
- placeholder,
465
- "aria-label": `${stringify(item)} ${stringify(i + 1)}`,
466
- class: "min-h-10 bg-card",
467
- onkeydown: (e) => onkeydown(e, i),
468
- get value() {
469
- return items[i];
470
- },
471
- set value($$value) {
472
- items[i] = $$value;
473
- $$settled = false;
474
- }
475
- });
476
- } else {
477
- $$renderer3.push(`<!--[-1--><input data-entry=""${attr("value", items[i])}${attr("placeholder", placeholder)}${attr("aria-label", `${stringify(item)} ${stringify(i + 1)}`)} class="h-9 w-full min-w-0 rounded-md border border-input bg-card px-2.5 text-sm shadow-xs outline-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50"/>`);
478
- }
479
- $$renderer3.push(`<!--]--> <button type="button" class="mt-1 rounded-md p-1.5 text-muted-foreground hover:bg-muted hover:text-foreground"${attr("aria-label", `Remove ${stringify(item.toLowerCase())} ${stringify(i + 1)}`)}>`);
480
- X($$renderer3, { class: "size-4" });
481
- $$renderer3.push(`<!----></button></li>`);
482
- }
483
- $$renderer3.push(`<!--]--></ol> <button type="button" class="mt-2 inline-flex items-center gap-1.5 rounded-md px-2 py-1 text-sm text-sea hover:bg-muted">`);
484
- Plus($$renderer3, { class: "size-4", "aria-hidden": "true" });
485
- $$renderer3.push(`<!---->${escape_html(addLabel)}</button></fieldset>`);
486
- }
487
- do {
488
- $$settled = true;
489
- $$inner_renderer = $$renderer2.copy();
490
- $$render_inner($$inner_renderer);
491
- } while (!$$settled);
492
- $$renderer2.subsume($$inner_renderer);
493
- bind_props($$props, { items });
494
- });
495
- }
496
- function field($$renderer, id, label, hint) {
497
- $$renderer.push(`<label${attr("for", id)} class="block text-sm font-medium">${escape_html(label)}</label> <p class="mt-0.5 text-xs text-muted-foreground">${escape_html(hint)}</p>`);
498
- }
499
- function SectionFields($$renderer, $$props) {
500
- $$renderer.component(($$renderer2) => {
501
- let {
502
- draft,
503
- section,
504
- projects,
505
- imageUrl,
506
- uploading = false,
507
- uploadError = null
508
- /** Project names Firstmate knows, offered as suggestions. */
509
- } = $$props;
510
- const newProject = derived(() => !!draft.project.trim() && projects.length > 0 && !projects.some((p) => p.toLowerCase() === draft.project.trim().toLowerCase()));
511
- let $$settled = true;
512
- let $$inner_renderer;
513
- function $$render_inner($$renderer3) {
514
- $$renderer3.push(`<div class="space-y-6">`);
515
- if (section === "project") {
516
- $$renderer3.push(`<!--[0--><div>`);
517
- field($$renderer3, "spec-project", "Project", "Pick one Firstmate knows, or type a new name.");
518
- $$renderer3.push(`<!----> <input id="spec-project" class="h-9 w-full min-w-0 rounded-md border border-input bg-card px-2.5 text-sm shadow-xs outline-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 mt-2" list="spec-projects" autocomplete="off"${attr("value", draft.project)}/> <datalist id="spec-projects"><!--[-->`);
519
- const each_array = ensure_array_like(projects);
520
- for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {
521
- let p = each_array[$$index];
522
- $$renderer3.option({ value: p }, ($$renderer4) => {
523
- });
524
- }
525
- $$renderer3.push(`<!--]--></datalist> `);
526
- if (newProject()) {
527
- $$renderer3.push(`<!--[0--><p class="mt-1.5 text-xs text-muted-foreground">A project Firstmate does not know yet; it will ask where it lives.</p>`);
528
- } else {
529
- $$renderer3.push("<!--[-1-->");
530
- }
531
- $$renderer3.push(`<!--]--></div> <div>`);
532
- field($$renderer3, "spec-title", "Title", "A short name for the work.");
533
- $$renderer3.push(`<!----> <input id="spec-title" class="h-9 w-full min-w-0 rounded-md border border-input bg-card px-2.5 text-sm shadow-xs outline-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 mt-2"${attr("value", draft.title)}/></div> <div>`);
534
- field($$renderer3, "spec-summary", "In one sentence", "What it is, as you would say it aloud.");
535
- $$renderer3.push(`<!----> `);
536
- DictateTextarea($$renderer3, {
537
- id: "spec-summary",
538
- class: "mt-2 bg-card",
539
- rows: 2,
540
- get value() {
541
- return draft.summary;
542
- },
543
- set value($$value) {
544
- draft.summary = $$value;
545
- $$settled = false;
546
- }
547
- });
548
- $$renderer3.push(`<!----></div>`);
549
- } else if (section === "problem") {
550
- $$renderer3.push(`<!--[1--><div>`);
551
- field($$renderer3, "spec-problem", "The problem", "What is wrong or missing today.");
552
- $$renderer3.push(`<!----> `);
553
- DictateTextarea($$renderer3, {
554
- id: "spec-problem",
555
- class: "mt-2 min-h-28 bg-card",
556
- get value() {
557
- return draft.problem;
558
- },
559
- set value($$value) {
560
- draft.problem = $$value;
561
- $$settled = false;
562
- }
563
- });
564
- $$renderer3.push(`<!----></div> <div>`);
565
- field($$renderer3, "spec-goal", "The goal", "What will be true once this is done.");
566
- $$renderer3.push(`<!----> `);
567
- DictateTextarea($$renderer3, {
568
- id: "spec-goal",
569
- class: "mt-2 min-h-24 bg-card",
570
- get value() {
571
- return draft.goal;
572
- },
573
- set value($$value) {
574
- draft.goal = $$value;
575
- $$settled = false;
576
- }
577
- });
578
- $$renderer3.push(`<!----></div>`);
579
- } else if (section === "audience") {
580
- $$renderer3.push(`<!--[2--><div>`);
581
- field($$renderer3, "spec-audience", "Who it is for", "Who uses it, what they are trying to get done, and how often.");
582
- $$renderer3.push(`<!----> `);
583
- DictateTextarea($$renderer3, {
584
- id: "spec-audience",
585
- class: "mt-2 min-h-32 bg-card",
586
- get value() {
587
- return draft.audience;
588
- },
589
- set value($$value) {
590
- draft.audience = $$value;
591
- $$settled = false;
592
- }
593
- });
594
- $$renderer3.push(`<!----></div>`);
595
- } else if (section === "journeys") {
596
- $$renderer3.push("<!--[3-->");
597
- ListField($$renderer3, {
598
- label: "Journeys",
599
- item: "Journey",
600
- addLabel: "Add a journey",
601
- placeholder: "Describe one journey, step by step",
602
- numbered: true,
603
- multiline: true,
604
- get items() {
605
- return draft.journeys;
606
- },
607
- set items($$value) {
608
- draft.journeys = $$value;
609
- $$settled = false;
610
- }
611
- });
612
- } else if (section === "scope") {
613
- $$renderer3.push(`<!--[4--><div>`);
614
- field($$renderer3, "spec-scope", "In scope", "What this piece of work includes.");
615
- $$renderer3.push(`<!----> `);
616
- DictateTextarea($$renderer3, {
617
- id: "spec-scope",
618
- class: "mt-2 min-h-24 bg-card",
619
- get value() {
620
- return draft.scope;
621
- },
622
- set value($$value) {
623
- draft.scope = $$value;
624
- $$settled = false;
625
- }
626
- });
627
- $$renderer3.push(`<!----></div> <div>`);
628
- field($$renderer3, "spec-non-goals", "Not in scope", "What it deliberately leaves for later.");
629
- $$renderer3.push(`<!----> `);
630
- DictateTextarea($$renderer3, {
631
- id: "spec-non-goals",
632
- class: "mt-2 min-h-24 bg-card",
633
- get value() {
634
- return draft.nonGoals;
635
- },
636
- set value($$value) {
637
- draft.nonGoals = $$value;
638
- $$settled = false;
639
- }
640
- });
641
- $$renderer3.push(`<!----></div>`);
642
- } else if (section === "requirements") {
643
- $$renderer3.push("<!--[5-->");
644
- ListField($$renderer3, {
645
- label: "Requirements",
646
- item: "Requirement",
647
- addLabel: "Add a requirement",
648
- placeholder: "One thing that must be true when it is done",
649
- get items() {
650
- return draft.requirements;
651
- },
652
- set items($$value) {
653
- draft.requirements = $$value;
654
- $$settled = false;
655
- }
656
- });
657
- } else if (section === "ui") {
658
- $$renderer3.push(`<!--[6--><div>`);
659
- field($$renderer3, "spec-ui", "Look and feel", "Layout, tone, anything to match or avoid.");
660
- $$renderer3.push(`<!----> `);
661
- DictateTextarea($$renderer3, {
662
- id: "spec-ui",
663
- class: "mt-2 min-h-24 bg-card",
664
- get value() {
665
- return draft.uiNotes;
666
- },
667
- set value($$value) {
668
- draft.uiNotes = $$value;
669
- $$settled = false;
670
- }
671
- });
672
- $$renderer3.push(`<!----></div> `);
673
- ListField($$renderer3, {
674
- label: "References",
675
- item: "Reference",
676
- addLabel: "Add a link",
677
- placeholder: "https://… or the name of a page to follow",
678
- get items() {
679
- return draft.links;
680
- },
681
- set items($$value) {
682
- draft.links = $$value;
683
- $$settled = false;
684
- }
685
- });
686
- $$renderer3.push(`<!----> <div><p class="text-sm font-medium">Screenshots</p> <p class="mt-0.5 text-xs text-muted-foreground">Drop pictures here, paste them, or choose files. Firstmate receives each one with its
687
- caption.</p> <div${attr_class(`mt-2 rounded-lg border border-dashed p-4 transition-colors ${"border-hair"}`)}>`);
688
- if (draft.images.length) {
689
- $$renderer3.push(`<!--[0--><ul class="mb-4 grid grid-cols-[repeat(auto-fill,minmax(10rem,1fr))] gap-3"><!--[-->`);
690
- const each_array_1 = ensure_array_like(draft.images);
691
- for (let $$index_1 = 0, $$length = each_array_1.length; $$index_1 < $$length; $$index_1++) {
692
- let img = each_array_1[$$index_1];
693
- $$renderer3.push(`<li class="min-w-0 rounded-md border bg-card p-2"><div class="relative"><img${attr("src", imageUrl(img))}${attr("alt", img.caption || "Screenshot")} class="aspect-video w-full rounded-sm bg-muted object-cover" loading="lazy"/> <button type="button" class="absolute top-1 right-1 rounded-full bg-background/90 p-1 text-muted-foreground shadow-sm hover:text-foreground" aria-label="Remove this screenshot">`);
694
- X($$renderer3, { class: "size-3.5" });
695
- $$renderer3.push(`<!----></button></div> <input class="mt-2 h-8 w-full min-w-0 rounded-sm border border-transparent bg-transparent px-1 text-xs outline-none hover:border-input focus-visible:border-ring"${attr("value", img.caption)} placeholder="Caption" aria-label="Caption"/></li>`);
696
- }
697
- $$renderer3.push(`<!--]--></ul>`);
698
- } else {
699
- $$renderer3.push("<!--[-1-->");
700
- }
701
- $$renderer3.push(`<!--]--> <button type="button" class="inline-flex items-center gap-2 rounded-md px-2 py-1 text-sm text-sea hover:bg-muted"${attr("disabled", uploading, true)}>`);
702
- if (uploading) {
703
- $$renderer3.push("<!--[0-->");
704
- Loader_circle($$renderer3, { class: "size-4 animate-spin", "aria-hidden": "true" });
705
- $$renderer3.push(`<!---->Adding…`);
706
- } else {
707
- $$renderer3.push("<!--[-1-->");
708
- Image_plus($$renderer3, { class: "size-4", "aria-hidden": "true" });
709
- $$renderer3.push(`<!---->Choose screenshots`);
710
- }
711
- $$renderer3.push(`<!--]--></button> <input type="file" accept="image/png,image/jpeg,image/webp,image/gif" multiple="" class="hidden"/> `);
712
- if (uploadError) {
713
- $$renderer3.push(`<!--[0--><p class="mt-2 text-sm text-danger" role="alert">${escape_html(uploadError)}</p>`);
714
- } else {
715
- $$renderer3.push("<!--[-1-->");
716
- }
717
- $$renderer3.push(`<!--]--></div></div>`);
718
- } else if (section === "constraints") {
719
- $$renderer3.push(`<!--[7--><div>`);
720
- field($$renderer3, "spec-constraints", "Constraints", "Rules it must follow: technology, data, permissions, deadlines.");
721
- $$renderer3.push(`<!----> `);
722
- DictateTextarea($$renderer3, {
723
- id: "spec-constraints",
724
- class: "mt-2 min-h-24 bg-card",
725
- get value() {
726
- return draft.constraints;
727
- },
728
- set value($$value) {
729
- draft.constraints = $$value;
730
- $$settled = false;
731
- }
732
- });
733
- $$renderer3.push(`<!----></div> <div>`);
734
- field($$renderer3, "spec-risks", "Risks", "What could go wrong, or needs extra care.");
735
- $$renderer3.push(`<!----> `);
736
- DictateTextarea($$renderer3, {
737
- id: "spec-risks",
738
- class: "mt-2 min-h-24 bg-card",
739
- get value() {
740
- return draft.risks;
741
- },
742
- set value($$value) {
743
- draft.risks = $$value;
744
- $$settled = false;
745
- }
746
- });
747
- $$renderer3.push(`<!----></div>`);
748
- } else if (section === "questions") {
749
- $$renderer3.push("<!--[8-->");
750
- ListField($$renderer3, {
751
- label: "Questions",
752
- item: "Question",
753
- addLabel: "Add a question",
754
- placeholder: "Something still to decide",
755
- get items() {
756
- return draft.questions;
757
- },
758
- set items($$value) {
759
- draft.questions = $$value;
760
- $$settled = false;
761
- }
762
- });
763
- } else {
764
- $$renderer3.push("<!--[-1-->");
765
- }
766
- $$renderer3.push(`<!--]--></div>`);
767
- }
768
- do {
769
- $$settled = true;
770
- $$inner_renderer = $$renderer2.copy();
771
- $$render_inner($$inner_renderer);
772
- } while (!$$settled);
773
- $$renderer2.subsume($$inner_renderer);
774
- });
775
- }
776
- function SpecPreview($$renderer, $$props) {
777
- $$renderer.component(($$renderer2) => {
778
- let mode = "document";
779
- $$renderer2.push(`<div class="flex items-center gap-1" role="radiogroup" aria-label="Preview as"><!--[-->`);
780
- const each_array = ensure_array_like(
781
- // Scroll when the section (or whether it shows yet) changes, not on every keystroke.
782
- [["document", "Document"], ["sent", "As sent"]]
783
- );
784
- for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {
785
- let [m, label] = each_array[$$index];
786
- $$renderer2.push(`<button role="radio"${attr("aria-checked", mode === m)}${attr_class(`rounded-full border px-3 py-0.5 text-xs ${mode === m ? "border-foreground/30 bg-accent font-medium" : "border-transparent text-muted-foreground hover:text-foreground"}`)}>${escape_html(label)}</button>`);
787
- }
788
- $$renderer2.push(`<!--]--></div> <div class="relative mt-3 rounded-lg border bg-card px-6 py-5 shadow-xs xl:max-h-[calc(100dvh-13rem)] xl:overflow-y-auto">`);
789
- {
790
- $$renderer2.push("<!--[-1-->");
791
- }
792
- $$renderer2.push(`<!--]--></div>`);
793
- });
794
- }
795
- function QuickForm($$renderer, $$props) {
796
- $$renderer.component(($$renderer2) => {
797
- let {
798
- draft,
799
- projects,
800
- imageUrl,
801
- uploading,
802
- uploadError
803
- /** The spec as Markdown, with pictures the page can show. */
804
- /** The message as sent. */
805
- } = $$props;
806
- let step = 0;
807
- const section = derived(() => SPEC_SECTIONS[step]);
808
- const filled = derived(() => SPEC_SECTIONS.filter((s) => sectionFilled(draft, s.id)).length);
809
- async function go(i) {
810
- step = i;
811
- await tick();
812
- return;
813
- }
814
- $$renderer2.push(`<div class="grid items-start gap-8 xl:grid-cols-2"><section class="min-w-0 scroll-mt-20" aria-labelledby="section-heading"><div class="flex flex-wrap items-baseline gap-3"><label><span class="sr-only">Section</span> `);
815
- $$renderer2.select(
816
- {
817
- class: "h-8 rounded-md border border-input bg-card px-2 text-xs",
818
- value: step,
819
- onchange: (e) => go(Number(e.currentTarget.value))
820
- },
821
- ($$renderer3) => {
822
- $$renderer3.push(`<!--[-->`);
823
- const each_array = ensure_array_like(SPEC_SECTIONS);
824
- for (let i = 0, $$length = each_array.length; i < $$length; i++) {
825
- let s = each_array[i];
826
- $$renderer3.option({ value: i }, ($$renderer4) => {
827
- $$renderer4.push(`Step ${escape_html(i + 1)} of ${escape_html(SPEC_SECTIONS.length)}: ${escape_html(s.title)}${escape_html(sectionFilled(draft, s.id) ? " ✓" : "")}`);
828
- });
829
- }
830
- $$renderer3.push(`<!--]-->`);
831
- }
832
- );
833
- $$renderer2.push(`</label> <p class="text-xs text-muted-foreground">${escape_html(filled())} of ${escape_html(SPEC_SECTIONS.length)} sections written</p></div> <h2 id="section-heading" tabindex="-1" class="mt-2 scroll-mt-20 font-display text-2xl font-medium outline-none">${escape_html(section().title)}</h2> <p class="mt-1 max-w-prose text-sm text-muted-foreground">${escape_html(section().prompt)}</p> <p class="mt-3 max-w-prose border-l-2 border-hair pl-3 text-sm text-muted-foreground italic"><span class="not-italic">For example:</span> ${escape_html(section().example)}</p> <div class="mt-6"><!---->`);
834
- {
835
- SectionFields($$renderer2, {
836
- draft,
837
- section: section().id,
838
- projects,
839
- imageUrl,
840
- uploading,
841
- uploadError
842
- });
843
- }
844
- $$renderer2.push(`<!----></div> <div class="mt-8 flex flex-wrap items-center gap-3 border-t border-hair pt-5">`);
845
- Button($$renderer2, {
846
- variant: "ghost",
847
- onclick: () => go(step - 1),
848
- disabled: step === 0,
849
- children: ($$renderer3) => {
850
- Arrow_left($$renderer3, { "aria-hidden": "true" });
851
- $$renderer3.push(`<!---->Back`);
852
- },
853
- $$slots: { default: true }
854
- });
855
- $$renderer2.push(`<!----> `);
856
- if (step < SPEC_SECTIONS.length - 1) {
857
- $$renderer2.push("<!--[0-->");
858
- Button($$renderer2, {
859
- variant: "outline",
860
- onclick: () => go(step + 1),
861
- children: ($$renderer3) => {
862
- $$renderer3.push(`<!---->Next: ${escape_html(SPEC_SECTIONS[step + 1].title)}`);
863
- Arrow_right($$renderer3, { "aria-hidden": "true" });
864
- $$renderer3.push(`<!---->`);
865
- },
866
- $$slots: { default: true }
867
- });
868
- } else {
869
- $$renderer2.push(`<!--[-1--><p class="text-sm text-muted-foreground">That is every section. Read the preview, then send it to build.</p>`);
870
- }
871
- $$renderer2.push(`<!--]--></div></section> <section class="min-w-0 xl:sticky xl:top-20" aria-labelledby="preview-heading"><h2 id="preview-heading" class="section-label">Preview</h2> <div class="mt-3">`);
872
- SpecPreview($$renderer2, {
873
- focus: section().id === "project" ? null : section().title
874
- });
875
- $$renderer2.push(`<!----></div></section></div>`);
876
- });
877
- }
878
- function SpecDocument($$renderer, $$props) {
879
- $$renderer.component(($$renderer2) => {
880
- let { draft, changed, busy, onComment } = $$props;
881
- const sections = SPEC_SECTIONS.filter((s) => s.id !== "project");
882
- const covered = derived(() => SPEC_SECTIONS.filter((s) => sectionFilled(draft, s.id)).length);
883
- const html$1 = (id) => "";
884
- const comments = (id) => draft.comments.filter((c) => c.section === id);
885
- const openCount = derived(() => draft.comments.filter((c) => !c.resolvedAt).length);
886
- const changedTitles = derived(() => SPEC_SECTIONS.filter((s) => changed.includes(s.id)).map((s) => s.id === "project" ? "Title and summary" : s.title));
887
- let writing = null;
888
- let text = "";
889
- let posting = false;
890
- async function post() {
891
- if (!writing || !text.trim() || posting) return;
892
- posting = true;
893
- const ok = await onComment({ ...writing, text: text.trim() });
894
- posting = false;
895
- if (ok) {
896
- writing = null;
897
- text = "";
898
- window.getSelection()?.removeAllRanges();
899
- }
900
- }
901
- function onkeydown(e) {
902
- if (e.key === "Enter" && (e.metaKey || e.ctrlKey)) {
903
- e.preventDefault();
904
- void post();
905
- } else if (e.key === "Escape") {
906
- writing = null;
907
- }
908
- }
909
- function commentBox($$renderer3, section) {
910
- if (writing?.section === section) {
911
- $$renderer3.push(`<!--[0--><div class="mt-3 rounded-md border border-brass/50 bg-background p-3" data-comment-box="">`);
912
- if (writing.quote) {
913
- $$renderer3.push(`<!--[0--><p class="mb-2 border-l-2 border-brass pl-2 text-xs text-muted-foreground italic">“${escape_html(writing.quote)}”</p>`);
914
- } else {
915
- $$renderer3.push("<!--[-1-->");
916
- }
917
- $$renderer3.push(`<!--]--> `);
918
- DictateTextarea($$renderer3, {
919
- rows: 2,
920
- placeholder: "What should change here?",
921
- "aria-label": "Your comment",
922
- onkeydown,
923
- get value() {
924
- return text;
925
- },
926
- set value($$value) {
927
- text = $$value;
928
- $$settled = false;
929
- }
930
- });
931
- $$renderer3.push(`<!----> <div class="mt-2 flex items-center justify-end gap-2">`);
932
- Button($$renderer3, {
933
- variant: "ghost",
934
- size: "sm",
935
- onclick: () => writing = null,
936
- children: ($$renderer4) => {
937
- $$renderer4.push(`<!---->Cancel`);
938
- },
939
- $$slots: { default: true }
940
- });
941
- $$renderer3.push(`<!----> `);
942
- Button($$renderer3, {
943
- size: "sm",
944
- onclick: post,
945
- disabled: !text.trim() || posting,
946
- children: ($$renderer4) => {
947
- if (posting) {
948
- $$renderer4.push("<!--[0-->");
949
- Loader_circle($$renderer4, { class: "animate-spin", "aria-hidden": "true" });
950
- } else {
951
- $$renderer4.push("<!--[-1-->");
952
- }
953
- $$renderer4.push(`<!--]--> Comment`);
954
- },
955
- $$slots: { default: true }
956
- });
957
- $$renderer3.push(`<!----></div></div>`);
958
- } else {
959
- $$renderer3.push("<!--[-1-->");
960
- }
961
- $$renderer3.push(`<!--]-->`);
962
- }
963
- function commentList($$renderer3, section) {
964
- const list = comments(section);
965
- if (list.length) {
966
- $$renderer3.push(`<!--[0--><ul class="mt-3 space-y-2" aria-label="Comments"><!--[-->`);
967
- const each_array = ensure_array_like(list);
968
- for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {
969
- let c = each_array[$$index];
970
- $$renderer3.push(`<li${attr_class(`rounded-md border px-3 py-2 text-sm ${c.resolvedAt ? "border-hair bg-muted/40 text-muted-foreground" : "border-brass/50 bg-background"}`)}><div class="flex items-start gap-2"><div class="min-w-0 flex-1">`);
971
- if (c.quote) {
972
- $$renderer3.push(`<!--[0--><p class="mb-1 border-l-2 border-brass/70 pl-2 text-xs italic">“${escape_html(c.quote)}”</p>`);
973
- } else {
974
- $$renderer3.push("<!--[-1-->");
975
- }
976
- $$renderer3.push(`<!--]--> <p${attr_class(`break-words ${c.resolvedAt ? "" : "text-foreground"}`)}>${escape_html(c.text)}</p> `);
977
- if (c.resolvedAt) {
978
- $$renderer3.push(`<!--[0--><p class="mt-1 flex items-start gap-1.5 text-xs">`);
979
- Check($$renderer3, {
980
- class: "mt-0.5 size-3.5 shrink-0 text-sea",
981
- "aria-hidden": "true"
982
- });
983
- $$renderer3.push(`<!----> <span><span class="sr-only">Resolved:</span>${escape_html(c.reply || "Addressed.")}</span></p>`);
984
- } else {
985
- $$renderer3.push(`<!--[-1--><p class="mt-1 flex items-center gap-1.5 text-xs text-muted-foreground">`);
986
- if (busy) {
987
- $$renderer3.push("<!--[0-->");
988
- Loader_circle($$renderer3, { class: "size-3 animate-spin", "aria-hidden": "true" });
989
- $$renderer3.push(`<!---->The
990
- interviewer is on it`);
991
- } else {
992
- $$renderer3.push(`<!--[-1-->Open: the interviewer addresses it next`);
993
- }
994
- $$renderer3.push(`<!--]--></p>`);
995
- }
996
- $$renderer3.push(`<!--]--></div> `);
997
- if (!c.resolvedAt) {
998
- $$renderer3.push(`<!--[0--><button class="-mt-0.5 -mr-1 rounded p-1 text-muted-foreground hover:bg-muted hover:text-foreground" aria-label="Remove this comment" title="Remove this comment">`);
999
- X($$renderer3, { class: "size-3.5", "aria-hidden": "true" });
1000
- $$renderer3.push(`<!----></button>`);
1001
- } else {
1002
- $$renderer3.push("<!--[-1-->");
1003
- }
1004
- $$renderer3.push(`<!--]--></div></li>`);
1005
- }
1006
- $$renderer3.push(`<!--]--></ul>`);
1007
- } else {
1008
- $$renderer3.push("<!--[-1-->");
1009
- }
1010
- $$renderer3.push(`<!--]-->`);
1011
- }
1012
- function commentButton($$renderer3, section, label) {
1013
- $$renderer3.push(`<button class="comment-btn ml-auto shrink-0 rounded p-1 text-muted-foreground hover:bg-muted hover:text-foreground svelte-byyley"${attr("aria-label", `Comment on ${stringify(label)}`)}${attr("title", `Comment on ${stringify(label)}`)}>`);
1014
- Message_square_plus($$renderer3, { class: "size-4", "aria-hidden": "true" });
1015
- $$renderer3.push(`<!----></button>`);
1016
- }
1017
- let $$settled = true;
1018
- let $$inner_renderer;
1019
- function $$render_inner($$renderer3) {
1020
- $$renderer3.push(`<div class="spec-doc relative rounded-lg border border-hair bg-card px-5 py-5 sm:px-7 sm:py-6"><p class="flex flex-wrap items-center gap-x-3 gap-y-1 text-xs text-muted-foreground"><span class="tabular">${escape_html(covered())} of ${escape_html(SPEC_SECTIONS.length)} sections covered</span> `);
1021
- if (openCount()) {
1022
- $$renderer3.push(`<!--[0--><span class="text-brass">${escape_html(openCount())} open comment${escape_html(openCount() === 1 ? "" : "s")}</span>`);
1023
- } else {
1024
- $$renderer3.push("<!--[-1-->");
1025
- }
1026
- $$renderer3.push(`<!--]--> `);
1027
- if (draft.interview.done) {
1028
- $$renderer3.push(`<!--[0--><span class="rounded-full border border-sea/50 px-2 py-0.5 font-medium text-sea">Ready to build</span>`);
1029
- } else {
1030
- $$renderer3.push("<!--[-1-->");
1031
- }
1032
- $$renderer3.push(`<!--]--></p> `);
1033
- if (changedTitles().length) {
1034
- $$renderer3.push(`<!--[0--><p class="mt-1 text-xs text-muted-foreground" aria-live="polite">Just changed: ${escape_html(changedTitles().join(", "))}.</p>`);
1035
- } else {
1036
- $$renderer3.push("<!--[-1-->");
1037
- }
1038
- $$renderer3.push(`<!--]--> <header data-section="project"${attr_class(`doc-section mt-4 ${changed.includes("project") ? "is-updated" : ""}`, "svelte-byyley")}><div class="flex items-start gap-2"><h2 class="min-w-0 flex-1 font-display text-[1.7rem] leading-tight font-medium">${escape_html(specTitle(draft))}</h2> `);
1039
- commentButton($$renderer3, "project", "the title and summary");
1040
- $$renderer3.push(`<!----></div> `);
1041
- if (sectionMarkdown(draft, "project")) {
1042
- $$renderer3.push(`<!--[0--><div class="chat-md mt-2 text-[0.95rem]">${html(html$1())}</div>`);
1043
- } else {
1044
- $$renderer3.push(`<!--[-1--><p class="mt-2 text-sm text-muted-foreground italic">The project and a one-line summary appear here as the interview goes.</p>`);
1045
- }
1046
- $$renderer3.push(`<!--]--> `);
1047
- commentList($$renderer3, "project");
1048
- $$renderer3.push(`<!----> `);
1049
- commentBox($$renderer3, "project");
1050
- $$renderer3.push(`<!----></header> <!--[-->`);
1051
- const each_array_1 = ensure_array_like(sections);
1052
- for (let $$index_1 = 0, $$length = each_array_1.length; $$index_1 < $$length; $$index_1++) {
1053
- let s = each_array_1[$$index_1];
1054
- const body = sectionMarkdown(draft, s.id);
1055
- $$renderer3.push(`<section${attr("data-section", s.id)}${attr_class(`doc-section mt-6 ${changed.includes(s.id) ? "is-updated" : ""}`, "svelte-byyley")}${attr("aria-labelledby", `doc-${stringify(s.id)}`)}><div class="flex items-center gap-2 border-b border-hair pb-1"><h3${attr("id", `doc-${stringify(s.id)}`)} class="font-display text-[1.2rem] font-medium">${escape_html(s.title)}</h3> `);
1056
- if (changed.includes(s.id)) {
1057
- $$renderer3.push(`<!--[0--><span class="rounded-full bg-brass/15 px-2 py-0.5 text-[0.7rem] font-medium tracking-wide text-brass">Updated</span>`);
1058
- } else {
1059
- $$renderer3.push("<!--[-1-->");
1060
- }
1061
- $$renderer3.push(`<!--]--> `);
1062
- commentButton($$renderer3, s.id, s.title);
1063
- $$renderer3.push(`<!----></div> `);
1064
- if (body) {
1065
- $$renderer3.push(`<!--[0--><div class="chat-md doc-md mt-2 text-[0.95rem] svelte-byyley">${html(html$1(s.id))}</div>`);
1066
- } else {
1067
- $$renderer3.push(`<!--[-1--><p class="mt-2 text-sm text-muted-foreground italic">Not covered yet.</p>`);
1068
- }
1069
- $$renderer3.push(`<!--]--> `);
1070
- commentList($$renderer3, s.id);
1071
- $$renderer3.push(`<!----> `);
1072
- commentBox($$renderer3, s.id);
1073
- $$renderer3.push(`<!----></section>`);
1074
- }
1075
- $$renderer3.push(`<!--]--> `);
1076
- {
1077
- $$renderer3.push("<!--[-1-->");
1078
- }
1079
- $$renderer3.push(`<!--]--></div>`);
1080
- }
1081
- do {
1082
- $$settled = true;
1083
- $$inner_renderer = $$renderer2.copy();
1084
- $$render_inner($$inner_renderer);
1085
- } while (!$$settled);
1086
- $$renderer2.subsume($$inner_renderer);
1087
- });
1088
- }
1089
- function _page($$renderer, $$props) {
1090
- $$renderer.component(($$renderer2) => {
1091
- let { data } = $$props;
1092
- const clone2 = (d) => d ? JSON.parse(JSON.stringify(d)) : null;
1093
- const initial = clone2(data.draft);
1094
- let draft = initial;
1095
- let specs = data.specs;
1096
- let savedJson = JSON.stringify(initial);
1097
- let saveState = "saved";
1098
- let saveError = null;
1099
- let uploading = false;
1100
- let uploadError = null;
1101
- let confirmDelete = false;
1102
- let busy = false;
1103
- let now = Date.now();
1104
- let working = !!data.interviewer?.busy;
1105
- let streaming = "";
1106
- let activity = null;
1107
- let turnError = null;
1108
- let pendingAnswer = null;
1109
- let commentsWaiting = false;
1110
- let pane = "interview";
1111
- let specUnseen = false;
1112
- initial?.id ?? null;
1113
- const fleet = derived(currentFleet);
1114
- const projects = derived(() => (fleet()?.projects ?? []).map((p) => p.name).filter(Boolean));
1115
- const imageUrl = (img) => `/api/specs/${encodeURIComponent(draft?.id ?? "")}/images/${encodeURIComponent(img.name)}`;
1116
- const preview = derived(() => draft ? specMarkdown(draft, imageUrl) : "");
1117
- const asSent = derived(() => draft ? specMessage(draft, () => "attached").replace(/!\[([^\]]*)\]\(<attached>\)/g, "[Screenshot: $1, sent as a file]") : "");
1118
- const lastAgent = derived(() => draft?.interview.turns.findLast((t) => t.role === "agent") ?? null);
1119
- const changed = derived(() => lastAgent()?.changed ?? []);
1120
- const openComments = derived(() => draft?.comments.filter((c) => !c.resolvedAt).length ?? 0);
1121
- const hasWhat = derived(() => !!draft && (!!draft.title.trim() || !!draft.summary.trim()));
1122
- const hasProject = derived(() => !!draft?.project.trim());
1123
- const editedSinceSent = (s) => !!s.sentAt && Date.parse(s.updatedAt) - Date.parse(s.sentAt) > 5e3;
1124
- const canSend = derived(() => hasWhat() && hasProject() && !busy && !working);
1125
- const headers = (extra = {}) => ({ [SESSION_HEADER]: data.sessionToken, ...extra });
1126
- async function problem(res) {
1127
- const body = await res.json().catch(() => null);
1128
- return body?.message ?? `Wheelhouse answered ${res.status}.`;
1129
- }
1130
- function adopt(d) {
1131
- if (!d || d.id !== draft?.id) return;
1132
- const local = saveState === "saved" ? null : { project: draft.project, mode: draft.mode };
1133
- const next = clone2(d);
1134
- savedJson = JSON.stringify(next);
1135
- if (local) Object.assign(next, local);
1136
- draft = next;
1137
- specs = specs.map((s) => s.id === d.id ? summarize(d) : s);
1138
- if (pendingAnswer && d.interview.turns.at(-1)?.role === "captain") pendingAnswer = null;
1139
- }
1140
- let timer;
1141
- let saving = Promise.resolve(true);
1142
- function save(keepalive = false) {
1143
- clearTimeout(timer);
1144
- saving = saving.then(() => saveNow(keepalive));
1145
- return saving;
1146
- }
1147
- async function saveNow(keepalive) {
1148
- if (!draft) return true;
1149
- const snapshot$1 = draft;
1150
- const json = JSON.stringify(snapshot$1);
1151
- if (json === savedJson) {
1152
- saveState = "saved";
1153
- return true;
1154
- }
1155
- saveState = "saving";
1156
- const base = JSON.parse(savedJson);
1157
- const edited = ["project", "title", "mode"].filter((f) => base?.[f] !== snapshot$1[f]);
1158
- try {
1159
- const res = await fetch(`/api/specs/${encodeURIComponent(snapshot$1.id)}`, {
1160
- method: "PUT",
1161
- headers: headers({ "content-type": "application/json" }),
1162
- body: JSON.stringify({ ...snapshot$1, edited }),
1163
- keepalive
1164
- });
1165
- if (!res.ok) {
1166
- saveError = await problem(res);
1167
- saveState = "error";
1168
- return false;
1169
- }
1170
- const stored = (await res.json()).draft;
1171
- saveError = null;
1172
- specs = specs.map((s) => s.id === stored.id ? summarize(stored) : s);
1173
- if (draft?.id === stored.id) {
1174
- savedJson = JSON.stringify(stored);
1175
- if (JSON.stringify(snapshot(draft)) === json) draft = clone2(stored);
1176
- if (pendingAnswer && stored.interview.turns.at(-1)?.role === "captain") pendingAnswer = null;
1177
- }
1178
- saveState = draft && JSON.stringify(draft) !== savedJson ? "unsaved" : "saved";
1179
- return true;
1180
- } catch {
1181
- saveError = "Could not reach the Wheelhouse server.";
1182
- saveState = "error";
1183
- return false;
1184
- }
1185
- }
1186
- let wide = true;
1187
- async function* events(res) {
1188
- const reader = res.body.pipeThrough(new TextDecoderStream()).getReader();
1189
- let buf = "";
1190
- for (; ; ) {
1191
- const { value, done } = await reader.read();
1192
- if (done) return;
1193
- buf += value;
1194
- let end;
1195
- while ((end = buf.indexOf("\n\n")) >= 0) {
1196
- const chunk = buf.slice(0, end);
1197
- buf = buf.slice(end + 2);
1198
- const event = /^event: (.*)$/m.exec(chunk)?.[1];
1199
- const body = /^data: (.*)$/m.exec(chunk)?.[1];
1200
- if (event && body) yield { event, data: JSON.parse(body) };
1201
- }
1202
- }
1203
- }
1204
- async function runTurn(answer) {
1205
- if (!draft || working) return false;
1206
- const id = draft.id;
1207
- if (!await save()) return false;
1208
- working = true;
1209
- streaming = "";
1210
- activity = null;
1211
- turnError = null;
1212
- pendingAnswer = answer;
1213
- let accepted = false;
1214
- try {
1215
- const res = await fetch(`/api/specs/${encodeURIComponent(id)}/turn`, {
1216
- method: "POST",
1217
- headers: headers({ "content-type": "application/json" }),
1218
- body: JSON.stringify(answer ? { answer } : {})
1219
- });
1220
- if (!res.ok || !res.body) {
1221
- turnError = await problem(res);
1222
- if (res.status === 409) void waitForTurn();
1223
- return false;
1224
- }
1225
- accepted = true;
1226
- for await (const e of events(res)) {
1227
- const d = e.data;
1228
- if (e.event === "text") {
1229
- streaming += d.text ?? "";
1230
- activity = null;
1231
- } else if (e.event === "reset") streaming = "";
1232
- else if (e.event === "tool") activity = `Reading ${d.detail || d.name}`;
1233
- else if (e.event === "done") {
1234
- adopt(d.draft);
1235
- if (pane === "interview" && lastAgent()?.changed.length) specUnseen = true;
1236
- } else if (e.event === "error") {
1237
- turnError = d.message ?? "The interviewer stopped.";
1238
- adopt(d.draft);
1239
- }
1240
- }
1241
- return true;
1242
- } catch {
1243
- turnError ??= "Lost touch with the Wheelhouse server. Reload to see where the interview got to.";
1244
- return accepted;
1245
- } finally {
1246
- if (draft?.id === id) {
1247
- working = false;
1248
- streaming = "";
1249
- activity = null;
1250
- pendingAnswer = null;
1251
- if (commentsWaiting) {
1252
- commentsWaiting = false;
1253
- void runTurn(null);
1254
- }
1255
- }
1256
- }
1257
- }
1258
- async function waitForTurn() {
1259
- const id = draft?.id;
1260
- if (!id) return;
1261
- working = true;
1262
- for (; ; ) {
1263
- await new Promise((r) => setTimeout(r, 1500));
1264
- if (draft?.id !== id) return;
1265
- const res = await fetch(`/api/specs/${encodeURIComponent(id)}`).catch(() => null);
1266
- if (!res?.ok) continue;
1267
- const body = await res.json();
1268
- if (body.busy) continue;
1269
- adopt(body.draft);
1270
- working = false;
1271
- if (turnError?.startsWith("The interviewer is already")) turnError = null;
1272
- return;
1273
- }
1274
- }
1275
- async function addComment(c) {
1276
- if (!draft) return false;
1277
- const res = await fetch(`/api/specs/${encodeURIComponent(draft.id)}/comments`, {
1278
- method: "POST",
1279
- headers: headers({ "content-type": "application/json" }),
1280
- body: JSON.stringify(c)
1281
- }).catch(() => null);
1282
- if (!res?.ok) {
1283
- turnError = res ? await problem(res) : "Could not reach the Wheelhouse server.";
1284
- return false;
1285
- }
1286
- adopt((await res.json()).draft);
1287
- if (working) commentsWaiting = true;
1288
- else void runTurn(null);
1289
- return true;
1290
- }
1291
- async function newSpec() {
1292
- busy = true;
1293
- if (!await save()) {
1294
- busy = false;
1295
- return;
1296
- }
1297
- try {
1298
- const res = await fetch("/api/specs", { method: "POST", headers: headers() });
1299
- if (!res.ok) {
1300
- saveError = await problem(res);
1301
- saveState = "error";
1302
- return;
1303
- }
1304
- const { draft: d } = await res.json();
1305
- await goto(`/spec?id=${encodeURIComponent(d.id)}`, { invalidateAll: true });
1306
- } finally {
1307
- busy = false;
1308
- }
1309
- }
1310
- async function remove() {
1311
- if (!draft) return;
1312
- busy = true;
1313
- clearTimeout(timer);
1314
- const res = await fetch(`/api/specs/${encodeURIComponent(draft.id)}`, { method: "DELETE", headers: headers() }).catch(() => null);
1315
- busy = false;
1316
- confirmDelete = false;
1317
- if (!res?.ok && res?.status !== 404) {
1318
- saveError = res ? await problem(res) : "Could not reach the Wheelhouse server.";
1319
- saveState = "error";
1320
- return;
1321
- }
1322
- savedJson = "null";
1323
- draft = null;
1324
- await goto("/spec", {});
1325
- }
1326
- async function send() {
1327
- if (!draft || !canSend()) return;
1328
- busy = true;
1329
- const id = draft.id;
1330
- try {
1331
- if (!await save()) return;
1332
- const res = await fetch(`/api/specs/${encodeURIComponent(id)}/build-request`, { method: "POST", headers: headers() }).catch(() => null);
1333
- if (!res?.ok) {
1334
- saveError = res ? await problem(res) : "Could not reach the Wheelhouse server.";
1335
- saveState = "error";
1336
- return;
1337
- }
1338
- const { message } = await res.json();
1339
- const token = data.sessionToken;
1340
- composerBus.outgoing = {
1341
- text: message,
1342
- from: `/spec?id=${encodeURIComponent(id)}`,
1343
- onSent: () => {
1344
- void fetch(`/api/specs/${encodeURIComponent(id)}/sent`, { method: "POST", headers: { [SESSION_HEADER]: token } });
1345
- }
1346
- };
1347
- await goto("/");
1348
- } finally {
1349
- busy = false;
1350
- }
1351
- }
1352
- const saveLabel = derived(() => saveState === "saving" ? "Saving…" : saveState === "unsaved" ? "Unsaved changes" : saveState === "error" ? "Not saved" : "Saved");
1353
- const sendHint = derived(() => {
1354
- if (!draft) return "";
1355
- if (!hasWhat()) return "Send to build once the spec has a title or a summary.";
1356
- if (!hasProject()) return "Choose the project it is for, then send it to build.";
1357
- if (working) return "Wait for the interviewer to finish its turn.";
1358
- if (draft.sentAt) {
1359
- return `Sent to build ${ago(draft.sentAt, now)}${editedSinceSent(draft) ? "; edited since" : ""}.`;
1360
- }
1361
- return `Sends the spec to Firstmate as one build request for ${draft.project.trim()}.`;
1362
- });
1363
- head("1flepf4", $$renderer2, ($$renderer3) => {
1364
- $$renderer3.title(($$renderer4) => {
1365
- $$renderer4.push(`<title>Spec · Wheelhouse</title>`);
1366
- });
1367
- });
1368
- $$renderer2.push(`<main class="px-4 py-6 sm:px-6 lg:px-10"><div class="surface px-4 py-6 sm:px-8 sm:py-8"><h1 class="text-2xl">Write a spec</h1> <p class="mt-1 max-w-prose text-sm text-muted-foreground">An interviewer asks you one question at a time and writes the spec as you answer. Comment on
1369
- anything in the spec to have it changed, then send it to build.</p> `);
1370
- if (data.problem) {
1371
- $$renderer2.push(`<!--[0--><p class="mt-8 rounded-lg border border-dashed p-6 text-sm text-muted-foreground">${escape_html(data.problem)}</p>`);
1372
- } else {
1373
- $$renderer2.push(`<!--[-1--><div class="mt-8 grid items-start gap-8 lg:grid-cols-[14rem_minmax(0,1fr)]"><aside class="min-w-0 lg:sticky lg:top-20"><details class="group"${attr("open", wide, true)}><summary class="section-label list-none lg:pointer-events-none [&amp;::-webkit-details-marker]:hidden"><span id="specs-heading">Your specs</span><span class="lg:hidden"> (${escape_html(specs.length)})</span> `);
1374
- Chevron_down($$renderer2, {
1375
- class: "size-4 shrink-0 transition-transform group-open:rotate-180 lg:hidden",
1376
- "aria-hidden": "true"
1377
- });
1378
- $$renderer2.push(`<!----></summary> `);
1379
- Button($$renderer2, {
1380
- variant: "outline",
1381
- size: "sm",
1382
- class: "mt-3 w-full justify-start",
1383
- onclick: newSpec,
1384
- disabled: busy,
1385
- children: ($$renderer3) => {
1386
- File_plus_corner($$renderer3, { "aria-hidden": "true" });
1387
- $$renderer3.push(`<!---->New spec`);
1388
- },
1389
- $$slots: { default: true }
1390
- });
1391
- $$renderer2.push(`<!----> `);
1392
- if (specs.length) {
1393
- $$renderer2.push(`<!--[0--><ul class="mt-3 space-y-0.5" aria-labelledby="specs-heading"><!--[-->`);
1394
- const each_array = ensure_array_like(specs);
1395
- for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {
1396
- let s = each_array[$$index];
1397
- const open = draft?.id === s.id;
1398
- $$renderer2.push(`<li><a${attr("href", `/spec?id=${stringify(encodeURIComponent(s.id))}`)}${attr("aria-current", open ? "page" : void 0)}${attr_class(`block rounded-md border-l-2 px-3 py-2 hover:bg-muted ${open ? "border-brass bg-accent" : "border-transparent"}`)}><span class="block truncate text-sm font-medium">${escape_html(open && draft ? specTitle(draft) : s.title)}</span> <span class="block truncate text-xs text-muted-foreground">${escape_html([
1399
- (open && draft ? draft.project.trim() : s.project) || null,
1400
- s.sentAt ? editedSinceSent(s) ? "Edited since sent" : "Sent" : null,
1401
- `edited ${ago(s.updatedAt, now)}`
1402
- ].filter(Boolean).join(" · "))}</span></a></li>`);
1403
- }
1404
- $$renderer2.push(`<!--]--></ul>`);
1405
- } else {
1406
- $$renderer2.push("<!--[-1-->");
1407
- }
1408
- $$renderer2.push(`<!--]--></details></aside> `);
1409
- if (!draft) {
1410
- $$renderer2.push(`<!--[0--><section class="rounded-lg border border-dashed p-8" aria-label="No spec open"><h2 class="font-display text-xl font-medium">Start a spec for Firstmate</h2> <p class="mt-2 max-w-prose text-sm text-muted-foreground">Say what you want built. An interviewer grills you on it one question at a time,
1411
- offering answers with the one it recommends, and writes the spec as you go: the
1412
- problem, who it is for, how they use it, what is in and out, how you will know it is
1413
- done, and what to watch out for. Your work is saved as you go.</p> `);
1414
- Button($$renderer2, {
1415
- class: "mt-5",
1416
- onclick: newSpec,
1417
- disabled: busy,
1418
- children: ($$renderer3) => {
1419
- File_plus_corner($$renderer3, { "aria-hidden": "true" });
1420
- $$renderer3.push(`<!---->Start a spec`);
1421
- },
1422
- $$slots: { default: true }
1423
- });
1424
- $$renderer2.push(`<!----></section>`);
1425
- } else {
1426
- $$renderer2.push(`<!--[-1--><div class="min-w-0"><div class="flex flex-wrap items-center gap-x-4 gap-y-3 border-b border-hair pb-4"><div class="flex rounded-md border border-hair p-0.5" role="radiogroup" aria-label="Build the spec with"><!--[-->`);
1427
- const each_array_1 = ensure_array_like([["interview", "Interview"], ["form", "Quick form"]]);
1428
- for (let $$index_1 = 0, $$length = each_array_1.length; $$index_1 < $$length; $$index_1++) {
1429
- let [m, label] = each_array_1[$$index_1];
1430
- $$renderer2.push(`<button role="radio"${attr("aria-checked", draft.mode === m)}${attr_class(`rounded px-3 py-1 text-sm ${draft.mode === m ? "bg-accent font-medium text-foreground" : "text-muted-foreground hover:text-foreground"}`)}>${escape_html(label)}</button>`);
1431
- }
1432
- $$renderer2.push(`<!--]--></div> <label class="flex min-w-0 items-center gap-2 text-sm"><span class="text-muted-foreground">Project</span> <input class="h-8 w-44 min-w-0 rounded-md border border-input bg-card px-2.5 text-sm shadow-xs outline-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50" name="project" list="spec-projects"${attr("value", draft.project)} placeholder="Choose a project"/> <datalist id="spec-projects"><!--[-->`);
1433
- const each_array_2 = ensure_array_like(projects());
1434
- for (let $$index_2 = 0, $$length = each_array_2.length; $$index_2 < $$length; $$index_2++) {
1435
- let p = each_array_2[$$index_2];
1436
- $$renderer2.option({ value: p }, ($$renderer3) => {
1437
- });
1438
- }
1439
- $$renderer2.push(`<!--]--></datalist></label> <p${attr_class(`text-xs ${saveState === "error" ? "text-danger" : "text-muted-foreground"}`)} aria-live="polite">${escape_html(saveLabel())}</p> <div class="ml-auto flex items-center gap-2">`);
1440
- if (!confirmDelete) {
1441
- $$renderer2.push("<!--[0-->");
1442
- Button($$renderer2, {
1443
- variant: "ghost",
1444
- size: "sm",
1445
- class: "text-muted-foreground",
1446
- onclick: () => confirmDelete = true,
1447
- children: ($$renderer3) => {
1448
- Trash($$renderer3, { "aria-hidden": "true" });
1449
- $$renderer3.push(`<!---->Delete`);
1450
- },
1451
- $$slots: { default: true }
1452
- });
1453
- } else {
1454
- $$renderer2.push("<!--[-1-->");
1455
- }
1456
- $$renderer2.push(`<!--]--> `);
1457
- Button($$renderer2, {
1458
- onclick: send,
1459
- disabled: !canSend(),
1460
- children: ($$renderer3) => {
1461
- if (busy) {
1462
- $$renderer3.push("<!--[0-->");
1463
- Loader_circle($$renderer3, { class: "animate-spin", "aria-hidden": "true" });
1464
- } else {
1465
- $$renderer3.push("<!--[-1-->");
1466
- Hammer($$renderer3, { "aria-hidden": "true" });
1467
- }
1468
- $$renderer3.push(`<!--]--> ${escape_html(draft.sentAt ? "Send to build again" : "Send to build")}`);
1469
- },
1470
- $$slots: { default: true }
1471
- });
1472
- $$renderer2.push(`<!----></div></div> <p class="mt-2 text-xs text-muted-foreground">${escape_html(sendHint())}</p> `);
1473
- if (saveState === "error" && saveError) {
1474
- $$renderer2.push(`<!--[0--><p class="mt-2 text-sm text-danger" role="alert">${escape_html(saveError)}</p>`);
1475
- } else {
1476
- $$renderer2.push("<!--[-1-->");
1477
- }
1478
- $$renderer2.push(`<!--]--> `);
1479
- if (confirmDelete) {
1480
- $$renderer2.push(`<!--[0--><div class="mt-3 flex flex-wrap items-center gap-3 rounded-md border border-danger/30 bg-danger/5 px-4 py-3" role="group" aria-label="Delete this spec"><p class="text-sm">Delete “${escape_html(specTitle(draft))}”, its interview and its screenshots for good?</p> <div class="ml-auto flex gap-2">`);
1481
- Button($$renderer2, {
1482
- variant: "ghost",
1483
- size: "sm",
1484
- onclick: () => confirmDelete = false,
1485
- children: ($$renderer3) => {
1486
- $$renderer3.push(`<!---->Keep it`);
1487
- },
1488
- $$slots: { default: true }
1489
- });
1490
- $$renderer2.push(`<!----> `);
1491
- Button($$renderer2, {
1492
- variant: "destructive",
1493
- size: "sm",
1494
- onclick: remove,
1495
- disabled: busy,
1496
- children: ($$renderer3) => {
1497
- $$renderer3.push(`<!---->Delete`);
1498
- },
1499
- $$slots: { default: true }
1500
- });
1501
- $$renderer2.push(`<!----></div></div>`);
1502
- } else {
1503
- $$renderer2.push("<!--[-1-->");
1504
- }
1505
- $$renderer2.push(`<!--]--> <div class="mt-6">`);
1506
- if (draft.mode === "form") {
1507
- $$renderer2.push("<!--[0-->");
1508
- QuickForm($$renderer2, {
1509
- draft,
1510
- projects: projects(),
1511
- imageUrl,
1512
- preview: preview(),
1513
- asSent: asSent(),
1514
- uploading,
1515
- uploadError
1516
- });
1517
- } else {
1518
- $$renderer2.push(`<!--[-1--><div class="mb-4 flex rounded-md border border-hair p-0.5 xl:hidden" role="tablist" aria-label="Show"><button role="tab"${attr("aria-selected", pane === "interview")}${attr_class(`flex-1 rounded px-3 py-1.5 text-sm ${"bg-accent font-medium"}`)}>Interview</button> <button role="tab"${attr("aria-selected", pane === "spec")}${attr_class(`flex flex-1 items-center justify-center gap-1.5 rounded px-3 py-1.5 text-sm ${"text-muted-foreground"}`)}>Spec`);
1519
- if (openComments()) {
1520
- $$renderer2.push(`<!--[0--><span class="text-xs text-brass">(${escape_html(openComments())})</span>`);
1521
- } else {
1522
- $$renderer2.push("<!--[-1-->");
1523
- }
1524
- $$renderer2.push(`<!--]--> `);
1525
- if (specUnseen) {
1526
- $$renderer2.push(`<!--[0--><span class="size-1.5 rounded-full bg-brass" aria-label="Updated" role="img"></span>`);
1527
- } else {
1528
- $$renderer2.push("<!--[-1-->");
1529
- }
1530
- $$renderer2.push(`<!--]--></button></div> <div class="grid items-start gap-8 xl:grid-cols-[minmax(0,1fr)_minmax(0,1.15fr)]"><section${attr_class(`min-w-0 ${""}`)} aria-label="Interview">`);
1531
- Interview($$renderer2, {
1532
- draft,
1533
- busy: working,
1534
- streaming,
1535
- activity,
1536
- error: turnError,
1537
- pending: pendingAnswer,
1538
- model: data.interviewer?.model ?? "sonnet",
1539
- effort: data.interviewer?.effort ?? "low",
1540
- onAnswer: (text) => runTurn(text),
1541
- onRetry: () => void runTurn(null)
1542
- });
1543
- $$renderer2.push(`<!----></section> <section${attr_class(`min-w-0 xl:sticky xl:top-20 xl:max-h-[calc(100dvh-7rem)] xl:overflow-y-auto ${"hidden xl:block"}`)} aria-label="The spec">`);
1544
- SpecDocument($$renderer2, {
1545
- draft,
1546
- changed: changed(),
1547
- busy: working,
1548
- onComment: addComment
1549
- });
1550
- $$renderer2.push(`<!----></section></div>`);
1551
- }
1552
- $$renderer2.push(`<!--]--></div></div>`);
1553
- }
1554
- $$renderer2.push(`<!--]--></div>`);
1555
- }
1556
- $$renderer2.push(`<!--]--></div></main>`);
1557
- });
1558
- }
1559
-
1560
- export { _page as default };
1561
- //# sourceMappingURL=_page.svelte.js-BJjweG9u.js.map