@chrisjowen/wheelhouse 0.1.1 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (968) hide show
  1. package/README.md +36 -31
  2. package/build/client/_app/immutable/assets/0.CF4I5T-G.css +1 -0
  3. package/build/client/_app/immutable/assets/0.CF4I5T-G.css.br +0 -0
  4. package/build/client/_app/immutable/assets/0.CF4I5T-G.css.gz +0 -0
  5. package/build/client/_app/immutable/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/-F7frqRp.js +1 -0
  9. package/build/client/_app/immutable/chunks/-F7frqRp.js.br +0 -0
  10. package/build/client/_app/immutable/chunks/-F7frqRp.js.gz +0 -0
  11. package/build/client/_app/immutable/chunks/127nenIp.js +1 -0
  12. package/build/client/_app/immutable/chunks/127nenIp.js.br +0 -0
  13. package/build/client/_app/immutable/chunks/127nenIp.js.gz +0 -0
  14. package/build/client/_app/immutable/chunks/2Frsddx8.js +1 -0
  15. package/build/client/_app/immutable/chunks/2Frsddx8.js.br +2 -0
  16. package/build/client/_app/immutable/chunks/2Frsddx8.js.gz +0 -0
  17. package/build/client/_app/immutable/chunks/4nLjU3dc.js +1 -0
  18. package/build/client/_app/immutable/chunks/4nLjU3dc.js.br +0 -0
  19. package/build/client/_app/immutable/chunks/4nLjU3dc.js.gz +0 -0
  20. package/build/client/_app/immutable/chunks/6IjAKxKZ.js +1 -0
  21. package/build/client/_app/immutable/chunks/6IjAKxKZ.js.br +0 -0
  22. package/build/client/_app/immutable/chunks/6IjAKxKZ.js.gz +0 -0
  23. package/build/client/_app/immutable/chunks/6JIb870c.js +1 -0
  24. package/build/client/_app/immutable/chunks/6JIb870c.js.br +0 -0
  25. package/build/client/_app/immutable/chunks/6JIb870c.js.gz +0 -0
  26. package/build/client/_app/immutable/chunks/B8szyIrI.js +1 -0
  27. package/build/client/_app/immutable/chunks/B8szyIrI.js.br +0 -0
  28. package/build/client/_app/immutable/chunks/B8szyIrI.js.gz +0 -0
  29. package/build/client/_app/immutable/chunks/BDL2L18I.js +1 -0
  30. package/build/client/_app/immutable/chunks/BDL2L18I.js.br +0 -0
  31. package/build/client/_app/immutable/chunks/BDL2L18I.js.gz +0 -0
  32. package/build/client/_app/immutable/chunks/BJ_boZ6o.js +1 -0
  33. package/build/client/_app/immutable/chunks/BJ_boZ6o.js.br +0 -0
  34. package/build/client/_app/immutable/chunks/BJ_boZ6o.js.gz +0 -0
  35. package/build/client/_app/immutable/chunks/BMOWf_e5.js +1 -0
  36. package/build/client/_app/immutable/chunks/BMOWf_e5.js.br +0 -0
  37. package/build/client/_app/immutable/chunks/BMOWf_e5.js.gz +0 -0
  38. package/build/client/_app/immutable/chunks/BOOJ9_kJ.js +6 -0
  39. package/build/client/_app/immutable/chunks/BOOJ9_kJ.js.br +0 -0
  40. package/build/client/_app/immutable/chunks/BOOJ9_kJ.js.gz +0 -0
  41. package/build/client/_app/immutable/chunks/BPEcp4vD.js +1 -0
  42. package/build/client/_app/immutable/chunks/BPEcp4vD.js.br +0 -0
  43. package/build/client/_app/immutable/chunks/BPEcp4vD.js.gz +0 -0
  44. package/build/client/_app/immutable/chunks/BTcSoYfa.js +1 -0
  45. package/build/client/_app/immutable/chunks/BTcSoYfa.js.br +2 -0
  46. package/build/client/_app/immutable/chunks/BTcSoYfa.js.gz +0 -0
  47. package/build/client/_app/immutable/chunks/BVXUMEgB.js +1 -0
  48. package/build/client/_app/immutable/chunks/BVXUMEgB.js.br +0 -0
  49. package/build/client/_app/immutable/chunks/BVXUMEgB.js.gz +0 -0
  50. package/build/client/_app/immutable/chunks/BV_Ro843.js +1 -0
  51. package/build/client/_app/immutable/chunks/BV_Ro843.js.br +0 -0
  52. package/build/client/_app/immutable/chunks/BV_Ro843.js.gz +0 -0
  53. package/build/client/_app/immutable/chunks/BboI5NX2.js +1 -0
  54. package/build/client/_app/immutable/chunks/BboI5NX2.js.br +0 -0
  55. package/build/client/_app/immutable/chunks/BboI5NX2.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/BnqQNG8I.js +1 -0
  60. package/build/client/_app/immutable/chunks/BnqQNG8I.js.br +0 -0
  61. package/build/client/_app/immutable/chunks/BnqQNG8I.js.gz +0 -0
  62. package/build/client/_app/immutable/chunks/Bo3sLJjL.js +3 -0
  63. package/build/client/_app/immutable/chunks/Bo3sLJjL.js.br +0 -0
  64. package/build/client/_app/immutable/chunks/Bo3sLJjL.js.gz +0 -0
  65. package/build/client/_app/immutable/chunks/Bpgn0RyM.js +1 -0
  66. package/build/client/_app/immutable/chunks/Bpgn0RyM.js.br +0 -0
  67. package/build/client/_app/immutable/chunks/Bpgn0RyM.js.gz +0 -0
  68. package/build/client/_app/immutable/chunks/BrGclueo.js +1 -0
  69. package/build/client/_app/immutable/chunks/BrGclueo.js.br +0 -0
  70. package/build/client/_app/immutable/chunks/BrGclueo.js.gz +0 -0
  71. package/build/client/_app/immutable/chunks/C-Ka3szt.js +1 -0
  72. package/build/client/_app/immutable/chunks/C-Ka3szt.js.br +0 -0
  73. package/build/client/_app/immutable/chunks/C-Ka3szt.js.gz +0 -0
  74. package/build/client/_app/immutable/chunks/C-YySHlv.js +1 -0
  75. package/build/client/_app/immutable/chunks/C-YySHlv.js.br +0 -0
  76. package/build/client/_app/immutable/chunks/C-YySHlv.js.gz +0 -0
  77. package/build/client/_app/immutable/chunks/C27rbWKB.js +1 -0
  78. package/build/client/_app/immutable/chunks/C27rbWKB.js.br +0 -0
  79. package/build/client/_app/immutable/chunks/C27rbWKB.js.gz +0 -0
  80. package/build/client/_app/immutable/chunks/CA1hL-S6.js +1 -0
  81. package/build/client/_app/immutable/chunks/CA1hL-S6.js.br +0 -0
  82. package/build/client/_app/immutable/chunks/CA1hL-S6.js.gz +0 -0
  83. package/build/client/_app/immutable/chunks/CFdPbSqS.js +1 -0
  84. package/build/client/_app/immutable/chunks/CFdPbSqS.js.br +1 -0
  85. package/build/client/_app/immutable/chunks/CFdPbSqS.js.gz +0 -0
  86. package/build/client/_app/immutable/chunks/CJGygju8.js +1 -0
  87. package/build/client/_app/immutable/chunks/CJGygju8.js.br +0 -0
  88. package/build/client/_app/immutable/chunks/CJGygju8.js.gz +0 -0
  89. package/build/client/_app/immutable/chunks/CLdaRjQZ.js +1 -0
  90. package/build/client/_app/immutable/chunks/CLdaRjQZ.js.br +0 -0
  91. package/build/client/_app/immutable/chunks/CLdaRjQZ.js.gz +0 -0
  92. package/build/client/_app/immutable/chunks/CS3TvEHF.js +1 -0
  93. package/build/client/_app/immutable/chunks/CS3TvEHF.js.br +0 -0
  94. package/build/client/_app/immutable/chunks/CS3TvEHF.js.gz +0 -0
  95. package/build/client/_app/immutable/chunks/CSfYMiqF.js +8 -0
  96. package/build/client/_app/immutable/chunks/CSfYMiqF.js.br +0 -0
  97. package/build/client/_app/immutable/chunks/CSfYMiqF.js.gz +0 -0
  98. package/build/client/_app/immutable/chunks/CW_pu1E1.js +1 -0
  99. package/build/client/_app/immutable/chunks/CW_pu1E1.js.br +0 -0
  100. package/build/client/_app/immutable/chunks/CW_pu1E1.js.gz +0 -0
  101. package/build/client/_app/immutable/chunks/CZPeboo-.js +1 -0
  102. package/build/client/_app/immutable/chunks/CZPeboo-.js.br +0 -0
  103. package/build/client/_app/immutable/chunks/CZPeboo-.js.gz +0 -0
  104. package/build/client/_app/immutable/chunks/CZYAayp0.js +2 -0
  105. package/build/client/_app/immutable/chunks/CZYAayp0.js.br +0 -0
  106. package/build/client/_app/immutable/chunks/CZYAayp0.js.gz +0 -0
  107. package/build/client/_app/immutable/chunks/Cap_NU8Z.js +1 -0
  108. package/build/client/_app/immutable/chunks/Cap_NU8Z.js.br +0 -0
  109. package/build/client/_app/immutable/chunks/Cap_NU8Z.js.gz +0 -0
  110. package/build/client/_app/immutable/chunks/Cf6ZwSDE.js +1 -0
  111. package/build/client/_app/immutable/chunks/Cf6ZwSDE.js.br +0 -0
  112. package/build/client/_app/immutable/chunks/Cf6ZwSDE.js.gz +0 -0
  113. package/build/client/_app/immutable/chunks/Ch8_zhFw.js +1 -0
  114. package/build/client/_app/immutable/chunks/Ch8_zhFw.js.br +0 -0
  115. package/build/client/_app/immutable/chunks/Ch8_zhFw.js.gz +0 -0
  116. package/build/client/_app/immutable/chunks/Cjji8YKo.js +1 -0
  117. package/build/client/_app/immutable/chunks/Cjji8YKo.js.br +0 -0
  118. package/build/client/_app/immutable/chunks/Cjji8YKo.js.gz +0 -0
  119. package/build/client/_app/immutable/chunks/Ckfspn2s.js +1 -0
  120. package/build/client/_app/immutable/chunks/Ckfspn2s.js.br +0 -0
  121. package/build/client/_app/immutable/chunks/Ckfspn2s.js.gz +0 -0
  122. package/build/client/_app/immutable/chunks/Cl72MTSX.js +1 -0
  123. package/build/client/_app/immutable/chunks/Cl72MTSX.js.br +0 -0
  124. package/build/client/_app/immutable/chunks/Cl72MTSX.js.gz +0 -0
  125. package/build/client/_app/immutable/chunks/CpkLqQ7l.js +1 -0
  126. package/build/client/_app/immutable/chunks/CpkLqQ7l.js.br +0 -0
  127. package/build/client/_app/immutable/chunks/CpkLqQ7l.js.gz +0 -0
  128. package/build/client/_app/immutable/chunks/Crzhp-x5.js +5 -0
  129. package/build/client/_app/immutable/chunks/Crzhp-x5.js.br +0 -0
  130. package/build/client/_app/immutable/chunks/Crzhp-x5.js.gz +0 -0
  131. package/build/client/_app/immutable/chunks/Cwah_dMw.js +1 -0
  132. package/build/client/_app/immutable/chunks/Cwah_dMw.js.br +0 -0
  133. package/build/client/_app/immutable/chunks/Cwah_dMw.js.gz +0 -0
  134. package/build/client/_app/immutable/chunks/CzsfD4hc.js +1 -0
  135. package/build/client/_app/immutable/chunks/CzsfD4hc.js.br +2 -0
  136. package/build/client/_app/immutable/chunks/CzsfD4hc.js.gz +0 -0
  137. package/build/client/_app/immutable/chunks/D32oVJ_N.js +1 -0
  138. package/build/client/_app/immutable/chunks/D32oVJ_N.js.br +1 -0
  139. package/build/client/_app/immutable/chunks/D32oVJ_N.js.gz +0 -0
  140. package/build/client/_app/immutable/chunks/D4sWXBG7.js +1 -0
  141. package/build/client/_app/immutable/chunks/D4sWXBG7.js.br +0 -0
  142. package/build/client/_app/immutable/chunks/D4sWXBG7.js.gz +0 -0
  143. package/build/client/_app/immutable/chunks/DBs-gHlm.js +2 -0
  144. package/build/client/_app/immutable/chunks/DBs-gHlm.js.br +0 -0
  145. package/build/client/_app/immutable/chunks/DBs-gHlm.js.gz +0 -0
  146. package/build/client/_app/immutable/chunks/DEFXAgPm.js +1 -0
  147. package/build/client/_app/immutable/chunks/DEFXAgPm.js.br +0 -0
  148. package/build/client/_app/immutable/chunks/DEFXAgPm.js.gz +0 -0
  149. package/build/client/_app/immutable/chunks/DHbme8uq.js +1 -0
  150. package/build/client/_app/immutable/chunks/DHbme8uq.js.br +0 -0
  151. package/build/client/_app/immutable/chunks/DHbme8uq.js.gz +0 -0
  152. package/build/client/_app/immutable/chunks/DMkU8x7K.js +1 -0
  153. package/build/client/_app/immutable/chunks/DMkU8x7K.js.br +0 -0
  154. package/build/client/_app/immutable/chunks/DMkU8x7K.js.gz +0 -0
  155. package/build/client/_app/immutable/chunks/DRIYWZlo.js +1 -0
  156. package/build/client/_app/immutable/chunks/DRIYWZlo.js.br +1 -0
  157. package/build/client/_app/immutable/chunks/DRIYWZlo.js.gz +0 -0
  158. package/build/client/_app/immutable/chunks/DUCO61Nb.js +1 -0
  159. package/build/client/_app/immutable/chunks/DUCO61Nb.js.br +0 -0
  160. package/build/client/_app/immutable/chunks/DUCO61Nb.js.gz +0 -0
  161. package/build/client/_app/immutable/chunks/DXz8WA1c.js +1 -0
  162. package/build/client/_app/immutable/chunks/DXz8WA1c.js.br +0 -0
  163. package/build/client/_app/immutable/chunks/DXz8WA1c.js.gz +0 -0
  164. package/build/client/_app/immutable/chunks/D_4WLGwX.js +1 -0
  165. package/build/client/_app/immutable/chunks/D_4WLGwX.js.br +0 -0
  166. package/build/client/_app/immutable/chunks/D_4WLGwX.js.gz +0 -0
  167. package/build/client/_app/immutable/chunks/D_5WjoQx.js +1 -0
  168. package/build/client/_app/immutable/chunks/D_5WjoQx.js.br +0 -0
  169. package/build/client/_app/immutable/chunks/D_5WjoQx.js.gz +0 -0
  170. package/build/client/_app/immutable/chunks/D_C2ZtkZ.js +1 -0
  171. package/build/client/_app/immutable/chunks/D_C2ZtkZ.js.br +0 -0
  172. package/build/client/_app/immutable/chunks/D_C2ZtkZ.js.gz +0 -0
  173. package/build/client/_app/immutable/chunks/De5PDvrQ.js +1 -0
  174. package/build/client/_app/immutable/chunks/De5PDvrQ.js.br +0 -0
  175. package/build/client/_app/immutable/chunks/De5PDvrQ.js.gz +0 -0
  176. package/build/client/_app/immutable/chunks/DhWdMQ8J.js +1 -0
  177. package/build/client/_app/immutable/chunks/DhWdMQ8J.js.br +0 -0
  178. package/build/client/_app/immutable/chunks/DhWdMQ8J.js.gz +0 -0
  179. package/build/client/_app/immutable/chunks/DiCw6gM6.js +1 -0
  180. package/build/client/_app/immutable/chunks/DiCw6gM6.js.br +0 -0
  181. package/build/client/_app/immutable/chunks/DiCw6gM6.js.gz +0 -0
  182. package/build/client/_app/immutable/chunks/DugIbHkD.js +1 -0
  183. package/build/client/_app/immutable/chunks/DugIbHkD.js.br +0 -0
  184. package/build/client/_app/immutable/chunks/DugIbHkD.js.gz +0 -0
  185. package/build/client/_app/immutable/chunks/JhgT3vN-.js +1 -0
  186. package/build/client/_app/immutable/chunks/JhgT3vN-.js.br +0 -0
  187. package/build/client/_app/immutable/chunks/JhgT3vN-.js.gz +0 -0
  188. package/build/client/_app/immutable/chunks/KA4C2mxd.js +1 -0
  189. package/build/client/_app/immutable/chunks/KA4C2mxd.js.br +0 -0
  190. package/build/client/_app/immutable/chunks/KA4C2mxd.js.gz +0 -0
  191. package/build/client/_app/immutable/chunks/MoZXz26A.js +2 -0
  192. package/build/client/_app/immutable/chunks/MoZXz26A.js.br +0 -0
  193. package/build/client/_app/immutable/chunks/MoZXz26A.js.gz +0 -0
  194. package/build/client/_app/immutable/chunks/PMi1c_Z5.js +2 -0
  195. package/build/client/_app/immutable/chunks/PMi1c_Z5.js.br +0 -0
  196. package/build/client/_app/immutable/chunks/PMi1c_Z5.js.gz +0 -0
  197. package/build/client/_app/immutable/chunks/Pd3Oo-LF.js +1 -0
  198. package/build/client/_app/immutable/chunks/Pd3Oo-LF.js.br +0 -0
  199. package/build/client/_app/immutable/chunks/Pd3Oo-LF.js.gz +0 -0
  200. package/build/client/_app/immutable/chunks/RXXzt1fg.js +1 -0
  201. package/build/client/_app/immutable/chunks/RXXzt1fg.js.br +0 -0
  202. package/build/client/_app/immutable/chunks/RXXzt1fg.js.gz +0 -0
  203. package/build/client/_app/immutable/chunks/WfixpLtG.js +1 -0
  204. package/build/client/_app/immutable/chunks/WfixpLtG.js.br +2 -0
  205. package/build/client/_app/immutable/chunks/WfixpLtG.js.gz +0 -0
  206. package/build/client/_app/immutable/chunks/YB3ysJRI.js +1 -0
  207. package/build/client/_app/immutable/chunks/YB3ysJRI.js.br +0 -0
  208. package/build/client/_app/immutable/chunks/YB3ysJRI.js.gz +0 -0
  209. package/build/client/_app/immutable/chunks/YUajk67G.js +1 -0
  210. package/build/client/_app/immutable/chunks/YUajk67G.js.br +0 -0
  211. package/build/client/_app/immutable/chunks/YUajk67G.js.gz +0 -0
  212. package/build/client/_app/immutable/chunks/a2ZeDrXd.js +1 -0
  213. package/build/client/_app/immutable/chunks/a2ZeDrXd.js.br +0 -0
  214. package/build/client/_app/immutable/chunks/a2ZeDrXd.js.gz +0 -0
  215. package/build/client/_app/immutable/chunks/cZnJ0mAm.js +7 -0
  216. package/build/client/_app/immutable/chunks/cZnJ0mAm.js.br +0 -0
  217. package/build/client/_app/immutable/chunks/cZnJ0mAm.js.gz +0 -0
  218. package/build/client/_app/immutable/chunks/is3b6W5i.js +1 -0
  219. package/build/client/_app/immutable/chunks/is3b6W5i.js.br +0 -0
  220. package/build/client/_app/immutable/chunks/is3b6W5i.js.gz +0 -0
  221. package/build/client/_app/immutable/chunks/kM8ObZQs.js +62 -0
  222. package/build/client/_app/immutable/chunks/kM8ObZQs.js.br +0 -0
  223. package/build/client/_app/immutable/chunks/kM8ObZQs.js.gz +0 -0
  224. package/build/client/_app/immutable/chunks/qep4C0YL.js +2 -0
  225. package/build/client/_app/immutable/chunks/qep4C0YL.js.br +0 -0
  226. package/build/client/_app/immutable/chunks/qep4C0YL.js.gz +0 -0
  227. package/build/client/_app/immutable/chunks/sSJbwAI9.js +1 -0
  228. package/build/client/_app/immutable/chunks/sSJbwAI9.js.br +0 -0
  229. package/build/client/_app/immutable/chunks/sSJbwAI9.js.gz +0 -0
  230. package/build/client/_app/immutable/chunks/vAxbu4w9.js +1 -0
  231. package/build/client/_app/immutable/chunks/vAxbu4w9.js.br +0 -0
  232. package/build/client/_app/immutable/chunks/vAxbu4w9.js.gz +0 -0
  233. package/build/client/_app/immutable/chunks/zfjlAER1.js +1 -0
  234. package/build/client/_app/immutable/chunks/zfjlAER1.js.br +0 -0
  235. package/build/client/_app/immutable/chunks/zfjlAER1.js.gz +0 -0
  236. package/build/client/_app/immutable/chunks/zrknQfzW.js +1 -0
  237. package/build/client/_app/immutable/chunks/zrknQfzW.js.br +0 -0
  238. package/build/client/_app/immutable/chunks/zrknQfzW.js.gz +0 -0
  239. package/build/client/_app/immutable/entry/app.BVW8a1Lc.js +2 -0
  240. package/build/client/_app/immutable/entry/app.BVW8a1Lc.js.br +0 -0
  241. package/build/client/_app/immutable/entry/app.BVW8a1Lc.js.gz +0 -0
  242. package/build/client/_app/immutable/entry/start.DfAhzzBh.js +1 -0
  243. package/build/client/_app/immutable/entry/start.DfAhzzBh.js.br +0 -0
  244. package/build/client/_app/immutable/entry/start.DfAhzzBh.js.gz +0 -0
  245. package/build/client/_app/immutable/nodes/0.CByWY48H.js +8 -0
  246. package/build/client/_app/immutable/nodes/0.CByWY48H.js.br +0 -0
  247. package/build/client/_app/immutable/nodes/0.CByWY48H.js.gz +0 -0
  248. package/build/client/_app/immutable/nodes/1.BQxkVmZR.js +1 -0
  249. package/build/client/_app/immutable/nodes/1.BQxkVmZR.js.br +0 -0
  250. package/build/client/_app/immutable/nodes/1.BQxkVmZR.js.gz +0 -0
  251. package/build/client/_app/immutable/nodes/10.DF_JvWer.js +3 -0
  252. package/build/client/_app/immutable/nodes/10.DF_JvWer.js.br +0 -0
  253. package/build/client/_app/immutable/nodes/10.DF_JvWer.js.gz +0 -0
  254. package/build/client/_app/immutable/nodes/11.Da20qmQ1.js +1 -0
  255. package/build/client/_app/immutable/nodes/11.Da20qmQ1.js.br +0 -0
  256. package/build/client/_app/immutable/nodes/11.Da20qmQ1.js.gz +0 -0
  257. package/build/client/_app/immutable/nodes/12.DeNfg3Jn.js +14 -0
  258. package/build/client/_app/immutable/nodes/12.DeNfg3Jn.js.br +0 -0
  259. package/build/client/_app/immutable/nodes/12.DeNfg3Jn.js.gz +0 -0
  260. package/build/client/_app/immutable/nodes/13.Vg3b6KJ-.js +150 -0
  261. package/build/client/_app/immutable/nodes/13.Vg3b6KJ-.js.br +0 -0
  262. package/build/client/_app/immutable/nodes/13.Vg3b6KJ-.js.gz +0 -0
  263. package/build/client/_app/immutable/nodes/15.DNQBbVNt.js +11 -0
  264. package/build/client/_app/immutable/nodes/15.DNQBbVNt.js.br +0 -0
  265. package/build/client/_app/immutable/nodes/15.DNQBbVNt.js.gz +0 -0
  266. package/build/client/_app/immutable/nodes/16.PXR5gryE.js +9 -0
  267. package/build/client/_app/immutable/nodes/16.PXR5gryE.js.br +0 -0
  268. package/build/client/_app/immutable/nodes/16.PXR5gryE.js.gz +0 -0
  269. package/build/client/_app/immutable/nodes/17.D6wwTzw0.js +2 -0
  270. package/build/client/_app/immutable/nodes/17.D6wwTzw0.js.br +0 -0
  271. package/build/client/_app/immutable/nodes/17.D6wwTzw0.js.gz +0 -0
  272. package/build/client/_app/immutable/nodes/18.BYPKt-Zj.js +6 -0
  273. package/build/client/_app/immutable/nodes/18.BYPKt-Zj.js.br +0 -0
  274. package/build/client/_app/immutable/nodes/18.BYPKt-Zj.js.gz +0 -0
  275. package/build/client/_app/immutable/nodes/19.eOj7WL-z.js +1 -0
  276. package/build/client/_app/immutable/nodes/19.eOj7WL-z.js.br +0 -0
  277. package/build/client/_app/immutable/nodes/19.eOj7WL-z.js.gz +0 -0
  278. package/build/client/_app/immutable/nodes/2.iGkQWI53.js +14 -0
  279. package/build/client/_app/immutable/nodes/2.iGkQWI53.js.br +0 -0
  280. package/build/client/_app/immutable/nodes/2.iGkQWI53.js.gz +0 -0
  281. package/build/client/_app/immutable/nodes/20.COEvYhSn.js +6 -0
  282. package/build/client/_app/immutable/nodes/20.COEvYhSn.js.br +0 -0
  283. package/build/client/_app/immutable/nodes/20.COEvYhSn.js.gz +0 -0
  284. package/build/client/_app/immutable/nodes/3.DgV1VyBd.js +5 -0
  285. package/build/client/_app/immutable/nodes/3.DgV1VyBd.js.br +0 -0
  286. package/build/client/_app/immutable/nodes/3.DgV1VyBd.js.gz +0 -0
  287. package/build/client/_app/immutable/nodes/4.BFV94RXa.js +1 -0
  288. package/build/client/_app/immutable/nodes/4.BFV94RXa.js.br +0 -0
  289. package/build/client/_app/immutable/nodes/4.BFV94RXa.js.gz +0 -0
  290. package/build/client/_app/immutable/nodes/5.DXQSdCv2.js +1 -0
  291. package/build/client/_app/immutable/nodes/5.DXQSdCv2.js.br +0 -0
  292. package/build/client/_app/immutable/nodes/5.DXQSdCv2.js.gz +0 -0
  293. package/build/client/_app/immutable/nodes/6.BVvx9mug.js +7 -0
  294. package/build/client/_app/immutable/nodes/6.BVvx9mug.js.br +0 -0
  295. package/build/client/_app/immutable/nodes/6.BVvx9mug.js.gz +0 -0
  296. package/build/client/_app/immutable/nodes/7.bgzyRDkn.js +4 -0
  297. package/build/client/_app/immutable/nodes/7.bgzyRDkn.js.br +0 -0
  298. package/build/client/_app/immutable/nodes/7.bgzyRDkn.js.gz +0 -0
  299. package/build/client/_app/immutable/nodes/9.BjRlvbf0.js +1 -0
  300. package/build/client/_app/immutable/nodes/9.BjRlvbf0.js.br +0 -0
  301. package/build/client/_app/immutable/nodes/9.BjRlvbf0.js.gz +0 -0
  302. package/build/client/_app/version.json +1 -1
  303. package/build/client/_app/version.json.br +0 -0
  304. package/build/client/_app/version.json.gz +0 -0
  305. package/build/handler.js +7 -7
  306. package/build/index.js +7 -7
  307. package/build/server/chunks/chunks/AllowanceMeter.js-DBpmESX6.js +42 -0
  308. package/build/server/chunks/chunks/DecisionCard.js-CvR7ULLC.js +461 -0
  309. package/build/server/chunks/chunks/DocSheet.js-BPPDMi3P.js +50 -0
  310. package/build/server/chunks/chunks/EtaLine.js-CtcOSLzV.js +79 -0
  311. package/build/server/chunks/chunks/EveryProjectSwitch.js-DWet6DU1.js +200 -0
  312. package/build/server/chunks/chunks/Icon.js-CVZZ-yuB.js +129 -0
  313. package/build/server/chunks/chunks/InsightsNav.js-Cmn5y1to.js +18 -0
  314. package/build/server/chunks/chunks/InstallPlugin.js-B46b-IrK.js +45 -0
  315. package/build/server/chunks/chunks/LinkedText.js-COjHV297.js +43 -0
  316. package/build/server/chunks/chunks/ProjectBanner.js-19PQF0LD.js +111 -0
  317. package/build/server/chunks/chunks/ProjectStateMark.js-BkRD8cX4.js +61 -0
  318. package/build/server/chunks/chunks/QuestionList.js-CppuauNj.js +187 -0
  319. package/build/server/chunks/chunks/ResizableRail.js-BmMh1aVL.js +801 -0
  320. package/build/server/chunks/chunks/SettingsNav.js-BtJIv5cc.js +22 -0
  321. package/build/server/chunks/chunks/SlotContent.js-B4p1QLQN.js +748 -0
  322. package/build/server/chunks/chunks/StageTrack.js-DHvZX7Bl.js +111 -0
  323. package/build/server/chunks/chunks/TimeBar.js-CUFKEJW9.js +32 -0
  324. package/build/server/chunks/chunks/TimeLegend.js-B3Wl61jM.js +29 -0
  325. package/build/server/chunks/chunks/aliases.svelte.js-C_vCoKdk.js +138 -0
  326. package/build/server/chunks/chunks/arrow-down.js-Bt3fQooI.js +18 -0
  327. package/build/server/chunks/chunks/arrow-left.js-BKiSMzvI.js +18 -0
  328. package/build/server/chunks/chunks/arrow-right.js-CNYqcx0M.js +18 -0
  329. package/build/server/chunks/chunks/arrow-up.js-DHbXk79z.js +18 -0
  330. package/build/server/chunks/chunks/attachments.js-BAnnqpd-.js +48 -0
  331. package/build/server/chunks/chunks/bell.js-CXJp-3UZ.js +150 -0
  332. package/build/server/chunks/chunks/berths.js-CuAE9lHW.js +268 -0
  333. package/build/server/chunks/chunks/book-open.js-C2rohN3N.js +23 -0
  334. package/build/server/chunks/chunks/button.js-BF2PsvWw.js +7311 -0
  335. package/build/server/chunks/chunks/chat.svelte.js-b0uQXOge.js +545 -0
  336. package/build/server/chunks/chunks/check.js-32sYHVxG.js +15 -0
  337. package/build/server/chunks/chunks/checks.js-DR3fVVpO.js +242 -0
  338. package/build/server/chunks/chunks/chevron-down.js-CH53s_me.js +15 -0
  339. package/build/server/chunks/chunks/chevron-left.js-D5RHY-kD.js +15 -0
  340. package/build/server/chunks/chunks/chevron-right.js-DCBAqAae.js +15 -0
  341. package/build/server/chunks/chunks/circle-alert.js-XTuAj7ZH.js +23 -0
  342. package/build/server/chunks/chunks/circle-dashed.js-fXv_bIo-.js +24 -0
  343. package/build/server/chunks/chunks/circle-dot.js-C950Kosw.js +18 -0
  344. package/build/server/chunks/chunks/client.js-B_5mNqUe.js +24 -0
  345. package/build/server/chunks/chunks/clock.js-CHhHTWK_.js +18 -0
  346. package/build/server/chunks/chunks/detail.js-9VHqIqfd.js +121 -0
  347. package/build/server/chunks/chunks/docpath.js-D27w_pf9.js +47 -0
  348. package/build/server/chunks/chunks/external-link.js-BQs1euhR.js +24 -0
  349. package/build/server/chunks/chunks/file-text.js-CnuVvHlB.js +26 -0
  350. package/build/server/chunks/chunks/gauge.js-Cbb1aqE7.js +35 -0
  351. package/build/server/chunks/chunks/hand.js-BA9yKAan.js +25 -0
  352. package/build/server/chunks/chunks/harbour.js-PHLHOFea.js +117 -0
  353. package/build/server/chunks/chunks/html.js-FW6Ia4bL.js +8 -0
  354. package/build/server/chunks/chunks/http.js-CBM8xgUM.js +25 -0
  355. package/build/server/chunks/chunks/inbox.js-Dv8a1ecX.js +184 -0
  356. package/build/server/chunks/chunks/inbox.svelte.js-n7K3YnGB.js +171 -0
  357. package/build/server/chunks/chunks/index-server.js-DsObimPA.js +9 -0
  358. package/build/server/chunks/chunks/index-server2.js-Fb2GE8KQ.js +17 -0
  359. package/build/server/chunks/chunks/index.js-B0NFhRTN.js +1524 -0
  360. package/build/server/chunks/chunks/index2.js-Bxt1T6_K.js +46 -0
  361. package/build/server/chunks/chunks/internal.js-CxWYnS4m.js +146 -0
  362. package/build/server/chunks/chunks/keys.js-iHygUPeb.js +20 -0
  363. package/build/server/chunks/chunks/live.svelte.js-DavJCZVs.js +238 -0
  364. package/build/server/chunks/chunks/loader-circle.js-rQHvIWN7.js +16 -0
  365. package/build/server/chunks/chunks/markdown.js-CApgGpeX.js +2634 -0
  366. package/build/server/chunks/chunks/message-circle-question-mark.js-DbmaS9k_.js +25 -0
  367. package/build/server/chunks/chunks/message-square.js-XK15WVZq.js +22 -0
  368. package/build/server/chunks/chunks/messages-square.js-BXH8BHfd.js +28 -0
  369. package/build/server/chunks/chunks/minus.js-DKvkj8VD.js +15 -0
  370. package/build/server/chunks/chunks/nav.js-DwnXJgxd.js +29 -0
  371. package/build/server/chunks/chunks/plus.js-caVrjGZc.js +15 -0
  372. package/build/server/chunks/chunks/preview.js-hrimfbCG.js +69 -0
  373. package/build/server/chunks/chunks/pullrequests.js-CWGxTy8C.js +68 -0
  374. package/build/server/chunks/chunks/pullrequests2.js-CCzk2sqm.js +12 -0
  375. package/build/server/chunks/chunks/repo.js-DU-pK5Nw.js +33 -0
  376. package/build/server/chunks/chunks/requests.js-DiL4Poa9.js +42 -0
  377. package/build/server/chunks/chunks/restart.js-Dv1_ODgZ.js +12 -0
  378. package/build/server/chunks/chunks/root.js-60iebdW4.js +3105 -0
  379. package/build/server/chunks/chunks/rotate-cw.js-M4SHOpYI.js +21 -0
  380. package/build/server/chunks/chunks/runtime.js-4msnOWzY.js +15335 -0
  381. package/build/server/chunks/chunks/scale.js-S5g8YUqL.js +21 -0
  382. package/build/server/chunks/chunks/scroll-lock.js-Ci_ylINL.js +2811 -0
  383. package/build/server/chunks/chunks/service.js-DZR6CoEI.js +914 -0
  384. package/build/server/chunks/chunks/settings.js-C_6kvzhM.js +862 -0
  385. package/build/server/chunks/chunks/slots.svelte.js-CLIV5nwM.js +34 -0
  386. package/build/server/chunks/chunks/square-terminal.js-D9D9_9_V.js +30 -0
  387. package/build/server/chunks/chunks/store.js-ByNV-OHV.js +323 -0
  388. package/build/server/chunks/chunks/tone.js-Dxsl-adt.js +31 -0
  389. package/build/server/chunks/chunks/triangle-alert.js-ClLszsZE.js +25 -0
  390. package/build/server/chunks/chunks/uploads.js-4OZ09onz.js +107 -0
  391. package/build/server/chunks/chunks/urls.js-BrlC6XZ8.js +8 -0
  392. package/build/server/chunks/chunks/utils.js-BJgm9WbO.js +2985 -0
  393. package/build/server/chunks/chunks/vault.js-CTaWe09z.js +162 -0
  394. package/build/server/chunks/chunks/view.js-BPycofxX.js +76 -0
  395. package/build/server/chunks/chunks/views.js-DyGxvskG.js +124 -0
  396. package/build/server/chunks/chunks/words.js-Cte4wOB4.js +48 -0
  397. package/build/server/chunks/chunks/x.js-YxaUOlq9.js +18 -0
  398. package/build/server/chunks/entries/endpoints/api/apps/_op_/_server.ts.js-DqDt7aNN.js +90 -0
  399. package/build/server/chunks/entries/endpoints/api/events/_server.ts.js-D-mwPJ4E.js +100 -0
  400. package/build/server/chunks/entries/endpoints/api/files/_server.ts.js-DTl4eBah.js +49 -0
  401. package/build/server/chunks/entries/endpoints/api/firstmate/chat/_server.ts.js-HFyCRRIx.js +83 -0
  402. package/build/server/chunks/entries/endpoints/api/firstmate/commands/_server.ts.js-CO7kITUs.js +119 -0
  403. package/build/server/chunks/entries/endpoints/api/firstmate/dismiss/_server.ts.js-CTdaQTFX.js +45 -0
  404. package/build/server/chunks/entries/endpoints/api/firstmate/input/_server.ts.js-DKxlZSX3.js +51 -0
  405. package/build/server/chunks/entries/endpoints/api/firstmate/interrupt/_server.ts.js-Bp4CsZQ9.js +44 -0
  406. package/build/server/chunks/entries/endpoints/api/firstmate/messages/_server.ts.js--Ti6GfKf.js +66 -0
  407. package/build/server/chunks/entries/endpoints/api/firstmate/pick/_server.ts.js-DudckFen.js +54 -0
  408. package/build/server/chunks/entries/endpoints/api/firstmate/start/_server.ts.js-H09D-uaY.js +44 -0
  409. package/build/server/chunks/entries/endpoints/api/firstmate/uploads/_day_/_id_/_name_/_server.ts.js-B1jFlBJC.js +31 -0
  410. package/build/server/chunks/entries/endpoints/api/firstmate/uploads/_server.ts.js-B2h2nWSK.js +39 -0
  411. package/build/server/chunks/entries/endpoints/api/fleet/_server.ts.js-BMcNM7_1.js +36 -0
  412. package/build/server/chunks/entries/endpoints/api/gateway/_server.ts.js-CVc8gLps.js +100 -0
  413. package/build/server/chunks/entries/endpoints/api/health/_server.ts.js-BcVLJq4f.js +36 -0
  414. package/build/server/chunks/entries/endpoints/api/inbox/_server.ts.js-DKqY2sWJ.js +60 -0
  415. package/build/server/chunks/entries/endpoints/api/inbox/report/_server.ts.js-a4l41m0P.js +51 -0
  416. package/build/server/chunks/entries/endpoints/api/insights/_server.ts.js-Cr_YrS6N.js +36 -0
  417. package/build/server/chunks/entries/endpoints/api/plugins/_plugin_/config/_server.ts.js-CZUfk-OY.js +71 -0
  418. package/build/server/chunks/entries/endpoints/api/plugins/_plugin_/load/_server.ts.js-CPBW7xEV.js +23 -0
  419. package/build/server/chunks/entries/endpoints/api/plugins/_plugin_/ui/_...path_/_server.ts.js-Dg2Sbcgq.js +59 -0
  420. package/build/server/chunks/entries/endpoints/api/plugins/_plugin_/update/_server.ts.js-C9LXRfKc.js +35 -0
  421. package/build/server/chunks/entries/endpoints/api/plugins/_server.ts.js-C7RCx22P.js +36 -0
  422. package/build/server/chunks/entries/endpoints/api/plugins/inspect/_server.ts.js-CSPS_3gF.js +35 -0
  423. package/build/server/chunks/entries/endpoints/api/plugins/install/_server.ts.js-DWxejv3K.js +38 -0
  424. package/build/server/chunks/entries/endpoints/api/plugins/updates/_server.ts.js-BYYXspMy.js +23 -0
  425. package/build/server/chunks/entries/endpoints/api/projects/_id_/passage/_server.ts.js-BAPnLV-3.js +41 -0
  426. package/build/server/chunks/entries/endpoints/api/projects/_id_/passage/commands/_server.ts.js-OYV-kJGk.js +50 -0
  427. package/build/server/chunks/entries/endpoints/api/projects/_id_/passage/consent/_server.ts.js-DovNLcSw.js +62 -0
  428. package/build/server/chunks/entries/endpoints/api/projects/_id_/passage/draft/_server.ts.js-CYU1VGUf.js +49 -0
  429. package/build/server/chunks/entries/endpoints/api/projects/_id_/passage/file/_server.ts.js-CgCzXBIB.js +72 -0
  430. package/build/server/chunks/entries/endpoints/api/projects/_id_/passage/test/_server.ts.js-BZ2S7d9x.js +55 -0
  431. package/build/server/chunks/entries/endpoints/api/services/_server.ts.js-CMVRpWqZ.js +55 -0
  432. package/build/server/chunks/entries/endpoints/api/slots/_server.ts.js-BhhLjW17.js +44 -0
  433. package/build/server/chunks/entries/endpoints/api/tasks/_id_/_server.ts.js-Bukv4dSq.js +41 -0
  434. package/build/server/chunks/entries/endpoints/api/tasks/_id_/artifacts/_...name_/_server.ts.js-BsHRnnS7.js +60 -0
  435. package/build/server/chunks/entries/endpoints/api/tasks/_id_/diff/_server.ts.js-B9eygpXJ.js +48 -0
  436. package/build/server/chunks/entries/endpoints/api/tasks/_id_/output/_server.ts.js-o7w8BRpJ.js +93 -0
  437. package/build/server/chunks/entries/endpoints/api/tasks/_id_/preview/_server.ts.js-BaXho4qD.js +110 -0
  438. package/build/server/chunks/entries/endpoints/api/vault/_server.ts.js-CagOXKfp.js +54 -0
  439. package/build/server/chunks/entries/endpoints/api/wheelhouse/update/_server.ts.js-CAcsCtS9.js +23 -0
  440. package/build/server/chunks/entries/endpoints/api/wheelhouse/upgrade/_server.ts.js-CSlKdXcw.js +23 -0
  441. package/build/server/chunks/entries/endpoints/projects/_server.ts.js-uMp6dcat.js +7 -0
  442. package/build/server/chunks/entries/endpoints/tasks/_id_/review/_server.ts.js-OEWlGF9d.js +40 -0
  443. package/build/server/chunks/entries/fallbacks/error.svelte.js-DnpcUjRk.js +15 -0
  444. package/build/server/chunks/entries/hooks.server.js-BeVVnKyB.js +54 -0
  445. package/build/server/chunks/entries/pages/_layout.server.ts.js-CFzh0bb7.js +24 -0
  446. package/build/server/chunks/entries/pages/_layout.svelte.js-BQyvY_vc.js +8746 -0
  447. package/build/server/chunks/entries/pages/_page.server.ts.js-DqT-OIkV.js +16 -0
  448. package/build/server/chunks/entries/pages/_page.svelte.js-DMDSI7Tw.js +2220 -0
  449. package/build/server/chunks/entries/pages/decisions/_page.server.ts.js-CGjy1S4B.js +11 -0
  450. package/build/server/chunks/entries/pages/decisions/_page.svelte.js-C3NsHXP-.js +184 -0
  451. package/build/server/chunks/entries/pages/files/_page.server.ts.js-D6VF_7EK.js +17 -0
  452. package/build/server/chunks/entries/pages/files/_page.svelte.js-Bj-5ZaJn.js +61 -0
  453. package/build/server/chunks/entries/pages/harbour/_page.server.ts.js-Cbei7bFp.js +46 -0
  454. package/build/server/chunks/entries/pages/harbour/_page.svelte.js-D8RsASWB.js +580 -0
  455. package/build/server/chunks/entries/pages/headroom/_page.server.ts.js-DtFxpkIR.js +11 -0
  456. package/build/server/chunks/entries/pages/headroom/_page.svelte.js-BLFQjLz8.js +149 -0
  457. package/build/server/chunks/entries/pages/inbox/_page.svelte.js-Bn5pWt__.js +185 -0
  458. package/build/server/chunks/entries/pages/plugins/_page.server.ts.js-D_nxVVQ0.js +11 -0
  459. package/build/server/chunks/entries/pages/plugins/_plugin_/_page_/_page.server.ts.js-CybSuVD4.js +16 -0
  460. package/build/server/chunks/entries/pages/plugins/_plugin_/_page_/_page.svelte.js-DMPiRdLN.js +52 -0
  461. package/build/server/chunks/entries/pages/projects/_id_/_page.server.ts.js-CroKCV4u.js +23 -0
  462. package/build/server/chunks/entries/pages/projects/_id_/_page.svelte.js-_DNqdqJc.js +976 -0
  463. package/build/server/chunks/entries/pages/projects/_id_/_plugin_/_tab_/_page.server.ts.js-Vb8907y2.js +21 -0
  464. package/build/server/chunks/entries/pages/projects/_id_/_plugin_/_tab_/_page.svelte.js-BLTTCa_O.js +74 -0
  465. package/build/server/chunks/entries/pages/projects/_id_/passage/_page.server.ts.js-Cor2JYpv.js +27 -0
  466. package/build/server/chunks/entries/pages/projects/_id_/passage/_page.svelte.js-BTgNmS_4.js +433 -0
  467. package/build/server/chunks/entries/pages/projects/_id_/passage/edit/_page.server.ts.js-Dtvwihv0.js +15 -0
  468. package/build/server/chunks/entries/pages/projects/_id_/passage/edit/_page.svelte.js-DuitNXlV.js +1880 -0
  469. package/build/server/chunks/entries/pages/settings/_page.server.ts.js-DnBg1UuM.js +11 -0
  470. package/build/server/chunks/entries/pages/settings/gateway/_page.server.ts.js-BqNGCjSG.js +11 -0
  471. package/build/server/chunks/entries/pages/settings/gateway/_page.svelte.js-BmbSSxk6.js +208 -0
  472. package/build/server/chunks/entries/pages/settings/plugins/_page.server.ts.js-CQ9DVI4s.js +19 -0
  473. package/build/server/chunks/entries/pages/settings/plugins/_page.svelte.js-U1GPMY59.js +1847 -0
  474. package/build/server/chunks/entries/pages/settings/plugins/_plugin_/_page.server.ts.js-C_YGnjmx.js +17 -0
  475. package/build/server/chunks/entries/pages/settings/plugins/_plugin_/_page.svelte.js-C_gSykyo.js +220 -0
  476. package/build/server/chunks/entries/pages/tasks/_id_/_page.server.ts.js-C-lePqYN.js +25 -0
  477. package/build/server/chunks/entries/pages/tasks/_id_/_page.svelte.js-Ds1ivkgU.js +2142 -0
  478. package/build/server/chunks/entries/pages/tasks/_id_/doc/_page.server.ts.js-DH7nAB6U.js +24 -0
  479. package/build/server/chunks/entries/pages/tasks/_id_/doc/_page.svelte.js-BOMmvf6G.js +80 -0
  480. package/build/server/chunks/entries/pages/time/_page.server.ts.js-Bfe-SSUC.js +11 -0
  481. package/build/server/chunks/entries/pages/time/_page.svelte.js-Ckn0YUW_.js +108 -0
  482. package/build/server/chunks/handler-CViJcHBG.js +1474 -0
  483. package/build/server/chunks/index.js-DO8YdJ_5.js +4296 -0
  484. package/build/server/chunks/manifest.js-DJYckUS-.js +501 -0
  485. package/build/server/chunks/nodes/0.js-DZ4kFPNe.js +41 -0
  486. package/build/server/chunks/nodes/1.js-CLGjQTlS.js +9 -0
  487. package/build/server/chunks/nodes/10.js-BN4Clcbg.js +43 -0
  488. package/build/server/chunks/nodes/11.js-DWB1yiJ6.js +42 -0
  489. package/build/server/chunks/nodes/12.js-CA99401F.js +43 -0
  490. package/build/server/chunks/nodes/13.js-YsHE2JFx.js +42 -0
  491. package/build/server/chunks/nodes/14.js-Cl3VZ6XR.js +12 -0
  492. package/build/server/chunks/nodes/15.js-CLdnAt4r.js +41 -0
  493. package/build/server/chunks/nodes/16.js-B-2Iq3Ye.js +41 -0
  494. package/build/server/chunks/nodes/17.js-BTM2TsmR.js +44 -0
  495. package/build/server/chunks/nodes/18.js-D3m0ATU2.js +42 -0
  496. package/build/server/chunks/nodes/19.js-C3dO33LH.js +42 -0
  497. package/build/server/chunks/nodes/2.js-51wjL-91.js +41 -0
  498. package/build/server/chunks/nodes/20.js-e41qDeY7.js +41 -0
  499. package/build/server/chunks/nodes/3.js-3JUV-tiI.js +41 -0
  500. package/build/server/chunks/nodes/4.js-CI6WGOXE.js +41 -0
  501. package/build/server/chunks/nodes/5.js-tZ-lWwlu.js +45 -0
  502. package/build/server/chunks/nodes/6.js-BgQesykU.js +41 -0
  503. package/build/server/chunks/nodes/7.js-CFXzqkNQ.js +9 -0
  504. package/build/server/chunks/nodes/8.js-D32pPbKa.js +12 -0
  505. package/build/server/chunks/nodes/9.js-CUQI6T4W.js +41 -0
  506. package/dist/cli.js +2156 -72
  507. package/dist/wh-vault.js +1007 -0
  508. package/package.json +5 -3
  509. package/plugins/github-issues/.wheelhouse-plugin/plugin.json +44 -0
  510. package/plugins/github-issues/README.md +16 -0
  511. package/plugins/github-issues/wheelhouse/server/index.js +463 -0
  512. package/plugins/project-links/.wheelhouse-plugin/plugin.json +25 -0
  513. package/plugins/project-links/README.md +17 -0
  514. package/plugins/project-links/wheelhouse/server/index.js +278 -0
  515. package/plugins/project-links/wheelhouse/ui/index.js +87 -0
  516. package/plugins/vault/.wheelhouse-plugin/plugin.json +22 -0
  517. package/plugins/vault/README.md +18 -0
  518. package/plugins/vault/wheelhouse/server/index.js +297 -0
  519. package/build/client/_app/immutable/assets/0.DaQhCSel.css +0 -1
  520. package/build/client/_app/immutable/assets/0.DaQhCSel.css.br +0 -0
  521. package/build/client/_app/immutable/assets/0.DaQhCSel.css.gz +0 -0
  522. package/build/client/_app/immutable/assets/12.DT1C9nmd.css +0 -1
  523. package/build/client/_app/immutable/assets/12.DT1C9nmd.css.br +0 -0
  524. package/build/client/_app/immutable/assets/12.DT1C9nmd.css.gz +0 -0
  525. package/build/client/_app/immutable/assets/14.CjNfSPQ6.css +0 -1
  526. package/build/client/_app/immutable/assets/14.CjNfSPQ6.css.br +0 -0
  527. package/build/client/_app/immutable/assets/14.CjNfSPQ6.css.gz +0 -0
  528. package/build/client/_app/immutable/assets/15.KLSHp5Yu.css +0 -1
  529. package/build/client/_app/immutable/assets/15.KLSHp5Yu.css.br +0 -0
  530. package/build/client/_app/immutable/assets/15.KLSHp5Yu.css.gz +0 -0
  531. package/build/client/_app/immutable/chunks/36FDwM1G.js +0 -1
  532. package/build/client/_app/immutable/chunks/36FDwM1G.js.br +0 -0
  533. package/build/client/_app/immutable/chunks/36FDwM1G.js.gz +0 -0
  534. package/build/client/_app/immutable/chunks/B1XxiJam.js +0 -1
  535. package/build/client/_app/immutable/chunks/B1XxiJam.js.br +0 -0
  536. package/build/client/_app/immutable/chunks/B1XxiJam.js.gz +0 -0
  537. package/build/client/_app/immutable/chunks/B1bNvkZf.js +0 -1
  538. package/build/client/_app/immutable/chunks/B1bNvkZf.js.br +0 -0
  539. package/build/client/_app/immutable/chunks/B1bNvkZf.js.gz +0 -0
  540. package/build/client/_app/immutable/chunks/B2wEHue2.js +0 -1
  541. package/build/client/_app/immutable/chunks/B2wEHue2.js.br +0 -0
  542. package/build/client/_app/immutable/chunks/B2wEHue2.js.gz +0 -0
  543. package/build/client/_app/immutable/chunks/BEAYWcbT.js +0 -1
  544. package/build/client/_app/immutable/chunks/BEAYWcbT.js.br +0 -0
  545. package/build/client/_app/immutable/chunks/BEAYWcbT.js.gz +0 -0
  546. package/build/client/_app/immutable/chunks/BGINfGsV.js +0 -1
  547. package/build/client/_app/immutable/chunks/BGINfGsV.js.br +0 -4
  548. package/build/client/_app/immutable/chunks/BGINfGsV.js.gz +0 -0
  549. package/build/client/_app/immutable/chunks/BHsdHLbF.js +0 -1
  550. package/build/client/_app/immutable/chunks/BHsdHLbF.js.br +0 -0
  551. package/build/client/_app/immutable/chunks/BHsdHLbF.js.gz +0 -0
  552. package/build/client/_app/immutable/chunks/BORDV711.js +0 -1
  553. package/build/client/_app/immutable/chunks/BORDV711.js.br +0 -0
  554. package/build/client/_app/immutable/chunks/BORDV711.js.gz +0 -0
  555. package/build/client/_app/immutable/chunks/BR5v76-T.js +0 -1
  556. package/build/client/_app/immutable/chunks/BR5v76-T.js.br +0 -0
  557. package/build/client/_app/immutable/chunks/BR5v76-T.js.gz +0 -0
  558. package/build/client/_app/immutable/chunks/BUo4hMcM.js +0 -1
  559. package/build/client/_app/immutable/chunks/BUo4hMcM.js.br +0 -0
  560. package/build/client/_app/immutable/chunks/BUo4hMcM.js.gz +0 -0
  561. package/build/client/_app/immutable/chunks/BVVO3JPx.js +0 -1
  562. package/build/client/_app/immutable/chunks/BVVO3JPx.js.br +0 -0
  563. package/build/client/_app/immutable/chunks/BVVO3JPx.js.gz +0 -0
  564. package/build/client/_app/immutable/chunks/BWJa0dU7.js +0 -1
  565. package/build/client/_app/immutable/chunks/BWJa0dU7.js.br +0 -0
  566. package/build/client/_app/immutable/chunks/BWJa0dU7.js.gz +0 -0
  567. package/build/client/_app/immutable/chunks/Bfi4vm-w.js +0 -1
  568. package/build/client/_app/immutable/chunks/Bfi4vm-w.js.br +0 -0
  569. package/build/client/_app/immutable/chunks/Bfi4vm-w.js.gz +0 -0
  570. package/build/client/_app/immutable/chunks/BiTivU7x.js +0 -1
  571. package/build/client/_app/immutable/chunks/BiTivU7x.js.br +0 -0
  572. package/build/client/_app/immutable/chunks/BiTivU7x.js.gz +0 -0
  573. package/build/client/_app/immutable/chunks/BiuLIp4b.js +0 -1
  574. package/build/client/_app/immutable/chunks/BiuLIp4b.js.br +0 -0
  575. package/build/client/_app/immutable/chunks/BiuLIp4b.js.gz +0 -0
  576. package/build/client/_app/immutable/chunks/Bns_F-QV.js +0 -1
  577. package/build/client/_app/immutable/chunks/Bns_F-QV.js.br +0 -0
  578. package/build/client/_app/immutable/chunks/Bns_F-QV.js.gz +0 -0
  579. package/build/client/_app/immutable/chunks/Brlpgp90.js +0 -1
  580. package/build/client/_app/immutable/chunks/Brlpgp90.js.br +0 -0
  581. package/build/client/_app/immutable/chunks/Brlpgp90.js.gz +0 -0
  582. package/build/client/_app/immutable/chunks/BunkbzFG.js +0 -1
  583. package/build/client/_app/immutable/chunks/BunkbzFG.js.br +0 -0
  584. package/build/client/_app/immutable/chunks/BunkbzFG.js.gz +0 -0
  585. package/build/client/_app/immutable/chunks/BwOfqJw9.js +0 -1
  586. package/build/client/_app/immutable/chunks/BwOfqJw9.js.br +0 -0
  587. package/build/client/_app/immutable/chunks/BwOfqJw9.js.gz +0 -0
  588. package/build/client/_app/immutable/chunks/C-xrRA1Y.js +0 -1
  589. package/build/client/_app/immutable/chunks/C-xrRA1Y.js.br +0 -0
  590. package/build/client/_app/immutable/chunks/C-xrRA1Y.js.gz +0 -0
  591. package/build/client/_app/immutable/chunks/C2_XZrIO.js +0 -7
  592. package/build/client/_app/immutable/chunks/C2_XZrIO.js.br +0 -0
  593. package/build/client/_app/immutable/chunks/C2_XZrIO.js.gz +0 -0
  594. package/build/client/_app/immutable/chunks/C2d4bDYU.js +0 -1
  595. package/build/client/_app/immutable/chunks/C2d4bDYU.js.br +0 -0
  596. package/build/client/_app/immutable/chunks/C2d4bDYU.js.gz +0 -0
  597. package/build/client/_app/immutable/chunks/C6BQPSOs.js +0 -62
  598. package/build/client/_app/immutable/chunks/C6BQPSOs.js.br +0 -0
  599. package/build/client/_app/immutable/chunks/C6BQPSOs.js.gz +0 -0
  600. package/build/client/_app/immutable/chunks/CDphfOBv.js +0 -1
  601. package/build/client/_app/immutable/chunks/CDphfOBv.js.br +0 -0
  602. package/build/client/_app/immutable/chunks/CDphfOBv.js.gz +0 -0
  603. package/build/client/_app/immutable/chunks/CIE0U5Ih.js +0 -1
  604. package/build/client/_app/immutable/chunks/CIE0U5Ih.js.br +0 -0
  605. package/build/client/_app/immutable/chunks/CIE0U5Ih.js.gz +0 -0
  606. package/build/client/_app/immutable/chunks/CIfcjhKg.js +0 -14
  607. package/build/client/_app/immutable/chunks/CIfcjhKg.js.br +0 -0
  608. package/build/client/_app/immutable/chunks/CIfcjhKg.js.gz +0 -0
  609. package/build/client/_app/immutable/chunks/CKhg4Tm6.js +0 -1
  610. package/build/client/_app/immutable/chunks/CKhg4Tm6.js.br +0 -0
  611. package/build/client/_app/immutable/chunks/CKhg4Tm6.js.gz +0 -0
  612. package/build/client/_app/immutable/chunks/CLs9Rkbg.js +0 -1
  613. package/build/client/_app/immutable/chunks/CLs9Rkbg.js.br +0 -0
  614. package/build/client/_app/immutable/chunks/CLs9Rkbg.js.gz +0 -0
  615. package/build/client/_app/immutable/chunks/COQ3aAYj.js +0 -1
  616. package/build/client/_app/immutable/chunks/COQ3aAYj.js.br +0 -0
  617. package/build/client/_app/immutable/chunks/COQ3aAYj.js.gz +0 -0
  618. package/build/client/_app/immutable/chunks/COiIt96y.js +0 -1
  619. package/build/client/_app/immutable/chunks/COiIt96y.js.br +0 -0
  620. package/build/client/_app/immutable/chunks/COiIt96y.js.gz +0 -0
  621. package/build/client/_app/immutable/chunks/CQ7gIAH8.js +0 -1
  622. package/build/client/_app/immutable/chunks/CQ7gIAH8.js.br +0 -2
  623. package/build/client/_app/immutable/chunks/CQ7gIAH8.js.gz +0 -0
  624. package/build/client/_app/immutable/chunks/CQlHU-Rx.js +0 -1
  625. package/build/client/_app/immutable/chunks/CQlHU-Rx.js.br +0 -0
  626. package/build/client/_app/immutable/chunks/CQlHU-Rx.js.gz +0 -0
  627. package/build/client/_app/immutable/chunks/CXfdgbLv.js +0 -1
  628. package/build/client/_app/immutable/chunks/CXfdgbLv.js.br +0 -0
  629. package/build/client/_app/immutable/chunks/CXfdgbLv.js.gz +0 -0
  630. package/build/client/_app/immutable/chunks/CdOazBBu.js +0 -1
  631. package/build/client/_app/immutable/chunks/CdOazBBu.js.br +0 -0
  632. package/build/client/_app/immutable/chunks/CdOazBBu.js.gz +0 -0
  633. package/build/client/_app/immutable/chunks/CeYIQAXD.js +0 -1
  634. package/build/client/_app/immutable/chunks/CeYIQAXD.js.br +0 -0
  635. package/build/client/_app/immutable/chunks/CeYIQAXD.js.gz +0 -0
  636. package/build/client/_app/immutable/chunks/CfdzAfq2.js +0 -1
  637. package/build/client/_app/immutable/chunks/CfdzAfq2.js.br +0 -0
  638. package/build/client/_app/immutable/chunks/CfdzAfq2.js.gz +0 -0
  639. package/build/client/_app/immutable/chunks/CkFDaaNz.js +0 -1
  640. package/build/client/_app/immutable/chunks/CkFDaaNz.js.br +0 -0
  641. package/build/client/_app/immutable/chunks/CkFDaaNz.js.gz +0 -0
  642. package/build/client/_app/immutable/chunks/CkLriSVx.js +0 -1
  643. package/build/client/_app/immutable/chunks/CkLriSVx.js.br +0 -0
  644. package/build/client/_app/immutable/chunks/CkLriSVx.js.gz +0 -0
  645. package/build/client/_app/immutable/chunks/Clzs_eXS.js +0 -5
  646. package/build/client/_app/immutable/chunks/Clzs_eXS.js.br +0 -0
  647. package/build/client/_app/immutable/chunks/Clzs_eXS.js.gz +0 -0
  648. package/build/client/_app/immutable/chunks/CrCQ2NNA.js +0 -1
  649. package/build/client/_app/immutable/chunks/CrCQ2NNA.js.br +0 -0
  650. package/build/client/_app/immutable/chunks/CrCQ2NNA.js.gz +0 -0
  651. package/build/client/_app/immutable/chunks/CrgqcyB_.js +0 -1
  652. package/build/client/_app/immutable/chunks/CrgqcyB_.js.br +0 -0
  653. package/build/client/_app/immutable/chunks/CrgqcyB_.js.gz +0 -0
  654. package/build/client/_app/immutable/chunks/CtlVBKf-.js +0 -1
  655. package/build/client/_app/immutable/chunks/CtlVBKf-.js.br +0 -0
  656. package/build/client/_app/immutable/chunks/CtlVBKf-.js.gz +0 -0
  657. package/build/client/_app/immutable/chunks/D4aeBIhU.js +0 -1
  658. package/build/client/_app/immutable/chunks/D4aeBIhU.js.br +0 -0
  659. package/build/client/_app/immutable/chunks/D4aeBIhU.js.gz +0 -0
  660. package/build/client/_app/immutable/chunks/DC8T2WRZ.js +0 -1
  661. package/build/client/_app/immutable/chunks/DC8T2WRZ.js.br +0 -0
  662. package/build/client/_app/immutable/chunks/DC8T2WRZ.js.gz +0 -0
  663. package/build/client/_app/immutable/chunks/DGy76IbW.js +0 -2
  664. package/build/client/_app/immutable/chunks/DGy76IbW.js.br +0 -0
  665. package/build/client/_app/immutable/chunks/DGy76IbW.js.gz +0 -0
  666. package/build/client/_app/immutable/chunks/DIABVMrA.js +0 -1
  667. package/build/client/_app/immutable/chunks/DIABVMrA.js.br +0 -0
  668. package/build/client/_app/immutable/chunks/DIABVMrA.js.gz +0 -0
  669. package/build/client/_app/immutable/chunks/DLith9Yi.js +0 -1
  670. package/build/client/_app/immutable/chunks/DLith9Yi.js.br +0 -0
  671. package/build/client/_app/immutable/chunks/DLith9Yi.js.gz +0 -0
  672. package/build/client/_app/immutable/chunks/Da92_52d.js +0 -1
  673. package/build/client/_app/immutable/chunks/Da92_52d.js.br +0 -0
  674. package/build/client/_app/immutable/chunks/Da92_52d.js.gz +0 -0
  675. package/build/client/_app/immutable/chunks/Db0WMrvR.js +0 -1
  676. package/build/client/_app/immutable/chunks/Db0WMrvR.js.br +0 -0
  677. package/build/client/_app/immutable/chunks/Db0WMrvR.js.gz +0 -0
  678. package/build/client/_app/immutable/chunks/Dlb_KqyS.js +0 -2
  679. package/build/client/_app/immutable/chunks/Dlb_KqyS.js.br +0 -0
  680. package/build/client/_app/immutable/chunks/Dlb_KqyS.js.gz +0 -0
  681. package/build/client/_app/immutable/chunks/Dq9kJk5R.js +0 -1
  682. package/build/client/_app/immutable/chunks/Dq9kJk5R.js.br +0 -0
  683. package/build/client/_app/immutable/chunks/Dq9kJk5R.js.gz +0 -0
  684. package/build/client/_app/immutable/chunks/DxGQT-Hz.js +0 -1
  685. package/build/client/_app/immutable/chunks/DxGQT-Hz.js.br +0 -0
  686. package/build/client/_app/immutable/chunks/DxGQT-Hz.js.gz +0 -0
  687. package/build/client/_app/immutable/chunks/ET-O1REu.js +0 -1
  688. package/build/client/_app/immutable/chunks/ET-O1REu.js.br +0 -0
  689. package/build/client/_app/immutable/chunks/ET-O1REu.js.gz +0 -0
  690. package/build/client/_app/immutable/chunks/FQ69txbU.js +0 -1
  691. package/build/client/_app/immutable/chunks/FQ69txbU.js.br +0 -0
  692. package/build/client/_app/immutable/chunks/FQ69txbU.js.gz +0 -0
  693. package/build/client/_app/immutable/chunks/L-6wuY5f.js +0 -2
  694. package/build/client/_app/immutable/chunks/L-6wuY5f.js.br +0 -0
  695. package/build/client/_app/immutable/chunks/L-6wuY5f.js.gz +0 -0
  696. package/build/client/_app/immutable/chunks/M201SoVK.js +0 -1
  697. package/build/client/_app/immutable/chunks/M201SoVK.js.br +0 -1
  698. package/build/client/_app/immutable/chunks/M201SoVK.js.gz +0 -0
  699. package/build/client/_app/immutable/chunks/OeqXO44y.js +0 -1
  700. package/build/client/_app/immutable/chunks/OeqXO44y.js.br +0 -0
  701. package/build/client/_app/immutable/chunks/OeqXO44y.js.gz +0 -0
  702. package/build/client/_app/immutable/chunks/PPVm8Dsz.js +0 -1
  703. package/build/client/_app/immutable/chunks/PPVm8Dsz.js.br +0 -0
  704. package/build/client/_app/immutable/chunks/PPVm8Dsz.js.gz +0 -0
  705. package/build/client/_app/immutable/chunks/QAFSHLn2.js +0 -1
  706. package/build/client/_app/immutable/chunks/QAFSHLn2.js.br +0 -0
  707. package/build/client/_app/immutable/chunks/QAFSHLn2.js.gz +0 -0
  708. package/build/client/_app/immutable/chunks/Tm9AblHs.js +0 -1
  709. package/build/client/_app/immutable/chunks/Tm9AblHs.js.br +0 -0
  710. package/build/client/_app/immutable/chunks/Tm9AblHs.js.gz +0 -0
  711. package/build/client/_app/immutable/chunks/_7N5fmOy.js +0 -2
  712. package/build/client/_app/immutable/chunks/_7N5fmOy.js.br +0 -0
  713. package/build/client/_app/immutable/chunks/_7N5fmOy.js.gz +0 -0
  714. package/build/client/_app/immutable/chunks/eMSiEzFi.js +0 -1
  715. package/build/client/_app/immutable/chunks/eMSiEzFi.js.br +0 -0
  716. package/build/client/_app/immutable/chunks/eMSiEzFi.js.gz +0 -0
  717. package/build/client/_app/immutable/chunks/euRlC7pA.js +0 -1
  718. package/build/client/_app/immutable/chunks/euRlC7pA.js.br +0 -1
  719. package/build/client/_app/immutable/chunks/euRlC7pA.js.gz +0 -0
  720. package/build/client/_app/immutable/chunks/hBAvbyDe.js +0 -4
  721. package/build/client/_app/immutable/chunks/hBAvbyDe.js.br +0 -0
  722. package/build/client/_app/immutable/chunks/hBAvbyDe.js.gz +0 -0
  723. package/build/client/_app/immutable/chunks/iVpzjqp1.js +0 -1
  724. package/build/client/_app/immutable/chunks/iVpzjqp1.js.br +0 -0
  725. package/build/client/_app/immutable/chunks/iVpzjqp1.js.gz +0 -0
  726. package/build/client/_app/immutable/chunks/m3YfhLk1.js +0 -1
  727. package/build/client/_app/immutable/chunks/m3YfhLk1.js.br +0 -0
  728. package/build/client/_app/immutable/chunks/m3YfhLk1.js.gz +0 -0
  729. package/build/client/_app/immutable/chunks/p7x6PRF0.js +0 -1
  730. package/build/client/_app/immutable/chunks/p7x6PRF0.js.br +0 -0
  731. package/build/client/_app/immutable/chunks/p7x6PRF0.js.gz +0 -0
  732. package/build/client/_app/immutable/chunks/t4rxsdjl.js +0 -74
  733. package/build/client/_app/immutable/chunks/t4rxsdjl.js.br +0 -0
  734. package/build/client/_app/immutable/chunks/t4rxsdjl.js.gz +0 -0
  735. package/build/client/_app/immutable/chunks/uD7-7yV9.js +0 -1
  736. package/build/client/_app/immutable/chunks/uD7-7yV9.js.br +0 -4
  737. package/build/client/_app/immutable/chunks/uD7-7yV9.js.gz +0 -0
  738. package/build/client/_app/immutable/entry/app.Dzyng0dn.js +0 -2
  739. package/build/client/_app/immutable/entry/app.Dzyng0dn.js.br +0 -0
  740. package/build/client/_app/immutable/entry/app.Dzyng0dn.js.gz +0 -0
  741. package/build/client/_app/immutable/entry/start.9fa7Jj4n.js +0 -1
  742. package/build/client/_app/immutable/entry/start.9fa7Jj4n.js.br +0 -0
  743. package/build/client/_app/immutable/entry/start.9fa7Jj4n.js.gz +0 -0
  744. package/build/client/_app/immutable/nodes/0.CaNaBMzB.js +0 -5
  745. package/build/client/_app/immutable/nodes/0.CaNaBMzB.js.br +0 -0
  746. package/build/client/_app/immutable/nodes/0.CaNaBMzB.js.gz +0 -0
  747. package/build/client/_app/immutable/nodes/1.BCMmEnhe.js +0 -1
  748. package/build/client/_app/immutable/nodes/1.BCMmEnhe.js.br +0 -0
  749. package/build/client/_app/immutable/nodes/1.BCMmEnhe.js.gz +0 -0
  750. package/build/client/_app/immutable/nodes/10.BO2VoEpn.js +0 -14
  751. package/build/client/_app/immutable/nodes/10.BO2VoEpn.js.br +0 -0
  752. package/build/client/_app/immutable/nodes/10.BO2VoEpn.js.gz +0 -0
  753. package/build/client/_app/immutable/nodes/11.BOR5Lt2T.js +0 -77
  754. package/build/client/_app/immutable/nodes/11.BOR5Lt2T.js.br +0 -0
  755. package/build/client/_app/immutable/nodes/11.BOR5Lt2T.js.gz +0 -0
  756. package/build/client/_app/immutable/nodes/12.BGnaA6g1.js +0 -32
  757. package/build/client/_app/immutable/nodes/12.BGnaA6g1.js.br +0 -0
  758. package/build/client/_app/immutable/nodes/12.BGnaA6g1.js.gz +0 -0
  759. package/build/client/_app/immutable/nodes/13.BMHoWbLt.js +0 -5
  760. package/build/client/_app/immutable/nodes/13.BMHoWbLt.js.br +0 -0
  761. package/build/client/_app/immutable/nodes/13.BMHoWbLt.js.gz +0 -0
  762. package/build/client/_app/immutable/nodes/14.BMIOGjF-.js +0 -1
  763. package/build/client/_app/immutable/nodes/14.BMIOGjF-.js.br +0 -0
  764. package/build/client/_app/immutable/nodes/14.BMIOGjF-.js.gz +0 -0
  765. package/build/client/_app/immutable/nodes/15.BDQ6GGok.js +0 -10
  766. package/build/client/_app/immutable/nodes/15.BDQ6GGok.js.br +0 -0
  767. package/build/client/_app/immutable/nodes/15.BDQ6GGok.js.gz +0 -0
  768. package/build/client/_app/immutable/nodes/16.BYZHF6Y1.js +0 -6
  769. package/build/client/_app/immutable/nodes/16.BYZHF6Y1.js.br +0 -0
  770. package/build/client/_app/immutable/nodes/16.BYZHF6Y1.js.gz +0 -0
  771. package/build/client/_app/immutable/nodes/2.DmiGTHZF.js +0 -4
  772. package/build/client/_app/immutable/nodes/2.DmiGTHZF.js.br +0 -0
  773. package/build/client/_app/immutable/nodes/2.DmiGTHZF.js.gz +0 -0
  774. package/build/client/_app/immutable/nodes/3.qyqfVtUJ.js +0 -5
  775. package/build/client/_app/immutable/nodes/3.qyqfVtUJ.js.br +0 -0
  776. package/build/client/_app/immutable/nodes/3.qyqfVtUJ.js.gz +0 -0
  777. package/build/client/_app/immutable/nodes/4.DMxs5dS-.js +0 -3
  778. package/build/client/_app/immutable/nodes/4.DMxs5dS-.js.br +0 -0
  779. package/build/client/_app/immutable/nodes/4.DMxs5dS-.js.gz +0 -0
  780. package/build/client/_app/immutable/nodes/5.pFV6qgYd.js +0 -7
  781. package/build/client/_app/immutable/nodes/5.pFV6qgYd.js.br +0 -0
  782. package/build/client/_app/immutable/nodes/5.pFV6qgYd.js.gz +0 -0
  783. package/build/client/_app/immutable/nodes/6.DKZQPZQe.js +0 -4
  784. package/build/client/_app/immutable/nodes/6.DKZQPZQe.js.br +0 -0
  785. package/build/client/_app/immutable/nodes/6.DKZQPZQe.js.gz +0 -0
  786. package/build/client/_app/immutable/nodes/7.DmCbsQpY.js +0 -1
  787. package/build/client/_app/immutable/nodes/7.DmCbsQpY.js.br +0 -0
  788. package/build/client/_app/immutable/nodes/7.DmCbsQpY.js.gz +0 -0
  789. package/build/client/_app/immutable/nodes/8.C5_-lQ12.js +0 -1
  790. package/build/client/_app/immutable/nodes/8.C5_-lQ12.js.br +0 -0
  791. package/build/client/_app/immutable/nodes/8.C5_-lQ12.js.gz +0 -0
  792. package/build/client/_app/immutable/nodes/9.DdS_3rh5.js +0 -1
  793. package/build/client/_app/immutable/nodes/9.DdS_3rh5.js.br +0 -0
  794. package/build/client/_app/immutable/nodes/9.DdS_3rh5.js.gz +0 -0
  795. package/build/server/chunks/chunks/AllowanceMeter.js-C9jRsAGU.js +0 -42
  796. package/build/server/chunks/chunks/DecisionCard.js-u1VQ9s_v.js +0 -350
  797. package/build/server/chunks/chunks/DictateTextarea.js-BlEnOzcN.js +0 -85
  798. package/build/server/chunks/chunks/EtaLine.js-Pa4_VV6V.js +0 -79
  799. package/build/server/chunks/chunks/Icon.js-D7CY3joB.js +0 -129
  800. package/build/server/chunks/chunks/InsightsNav.js-BlxFBJfj.js +0 -22
  801. package/build/server/chunks/chunks/MicButton.js-BZSQAyuM.js +0 -336
  802. package/build/server/chunks/chunks/QuestionList.js-DglKezUe.js +0 -259
  803. package/build/server/chunks/chunks/SlotContent.js-YqZXXtRz.js +0 -1977
  804. package/build/server/chunks/chunks/StageTrack.js-BaorW-yk.js +0 -59
  805. package/build/server/chunks/chunks/TimeBar.js-k38rc7ZI.js +0 -32
  806. package/build/server/chunks/chunks/TimeLegend.js-BQVvgsvs.js +0 -29
  807. package/build/server/chunks/chunks/access.js-XFAczbHS.js +0 -816
  808. package/build/server/chunks/chunks/anchor.js-ByXDBfbi.js +0 -20
  809. package/build/server/chunks/chunks/arrow-down.js-DXDJc9EE.js +0 -18
  810. package/build/server/chunks/chunks/arrow-left.js-6Yey35CE.js +0 -18
  811. package/build/server/chunks/chunks/arrow-right.js-CfbPWRqu.js +0 -18
  812. package/build/server/chunks/chunks/arrow-up.js-AhghNbhW.js +0 -18
  813. package/build/server/chunks/chunks/bell.js-CAlv92RY.js +0 -143
  814. package/build/server/chunks/chunks/blocks.js-BL9jLCe-.js +0 -710
  815. package/build/server/chunks/chunks/bus.svelte.js-DRTptEhF.js +0 -9
  816. package/build/server/chunks/chunks/button.js-HeBqLheH.js +0 -7311
  817. package/build/server/chunks/chunks/chat.svelte.js-Cgdbtjbw.js +0 -537
  818. package/build/server/chunks/chunks/check.js-bmUhmMEz.js +0 -15
  819. package/build/server/chunks/chunks/checks.js-BnIxIaus.js +0 -175
  820. package/build/server/chunks/chunks/chevron-down.js-D75hVSIe.js +0 -15
  821. package/build/server/chunks/chunks/chevron-right.js-yhLg_GaH.js +0 -15
  822. package/build/server/chunks/chunks/circle-dashed.js-Bm3gZCXK.js +0 -24
  823. package/build/server/chunks/chunks/client.js-BUNengrw.js +0 -24
  824. package/build/server/chunks/chunks/clock.js-D7JTvRbC.js +0 -18
  825. package/build/server/chunks/chunks/compass.js-Tq6uiG8I.js +0 -23
  826. package/build/server/chunks/chunks/detail.js-COMRu1TY.js +0 -133
  827. package/build/server/chunks/chunks/external-link.js-WxVF0xXO.js +0 -24
  828. package/build/server/chunks/chunks/file-text.js-CAo3vdqd.js +0 -26
  829. package/build/server/chunks/chunks/gauge.js-Dw9bgE72.js +0 -35
  830. package/build/server/chunks/chunks/git-pull-request.js-Cx1w8BQr.js +0 -20
  831. package/build/server/chunks/chunks/hammer.js-fp_Kidfj.js +0 -24
  832. package/build/server/chunks/chunks/hand.js-xkYPYJZj.js +0 -37
  833. package/build/server/chunks/chunks/harbour.js-xu7EfIHk.js +0 -113
  834. package/build/server/chunks/chunks/http.js-TzZuOtxn.js +0 -25
  835. package/build/server/chunks/chunks/http2.js-BO84xGO4.js +0 -26
  836. package/build/server/chunks/chunks/inbox.js-CW2sFmx9.js +0 -114
  837. package/build/server/chunks/chunks/inbox.svelte.js-OoKhjjWM.js +0 -134
  838. package/build/server/chunks/chunks/index-server.js-CtyUzIGY.js +0 -17
  839. package/build/server/chunks/chunks/index-server2.js-DMc-UvjC.js +0 -19
  840. package/build/server/chunks/chunks/index.js-Bn6j9diM.js +0 -1524
  841. package/build/server/chunks/chunks/index2.js-CXaRTuov.js +0 -46
  842. package/build/server/chunks/chunks/internal.js-C_uDXIpd.js +0 -146
  843. package/build/server/chunks/chunks/keys.js-CdtCzv-v.js +0 -20
  844. package/build/server/chunks/chunks/live.svelte.js-BRUTNc9D.js +0 -196
  845. package/build/server/chunks/chunks/loader-circle.js-IYRaUYWq.js +0 -16
  846. package/build/server/chunks/chunks/message-circle-question-mark.js-DwrMi0ty.js +0 -25
  847. package/build/server/chunks/chunks/message-square-text.js-N5uEmy8L.js +0 -25
  848. package/build/server/chunks/chunks/message-square.js-Hp-6BHgG.js +0 -22
  849. package/build/server/chunks/chunks/minus.js-bsfnwE-h.js +0 -15
  850. package/build/server/chunks/chunks/monitor-play.js-B7qbbPH6.js +0 -28
  851. package/build/server/chunks/chunks/preview.js-CVD-Kwks.js +0 -68
  852. package/build/server/chunks/chunks/prreview.js-C5XxDIu2.js +0 -85
  853. package/build/server/chunks/chunks/root.js-CQzYN4Pu.js +0 -3105
  854. package/build/server/chunks/chunks/runtime.js-fVZqJsqU.js +0 -13280
  855. package/build/server/chunks/chunks/scale.js-vP4G0lZM.js +0 -21
  856. package/build/server/chunks/chunks/shield-check.js-PJLnCKD9.js +0 -23
  857. package/build/server/chunks/chunks/slots.svelte.js-0Ejhe-hS.js +0 -34
  858. package/build/server/chunks/chunks/spec.js-B0yI1XqG.js +0 -307
  859. package/build/server/chunks/chunks/split.js-BsCU24rQ.js +0 -20
  860. package/build/server/chunks/chunks/square-terminal.js-D5Z4Sl2-.js +0 -47
  861. package/build/server/chunks/chunks/tone.js-r2qFVrZC.js +0 -30
  862. package/build/server/chunks/chunks/trash.js-DYFbRevY.js +0 -46
  863. package/build/server/chunks/chunks/triangle-alert.js-DuE40HSU.js +0 -38
  864. package/build/server/chunks/chunks/utils.js-DTSGDHlH.js +0 -2956
  865. package/build/server/chunks/chunks/view.js-tvgxW0fE.js +0 -76
  866. package/build/server/chunks/chunks/view2.js-BdUXqNlY.js +0 -87
  867. package/build/server/chunks/chunks/views.js-B0wP-tuB.js +0 -137
  868. package/build/server/chunks/chunks/waypoints.js-D3HN7bje.js +0 -67
  869. package/build/server/chunks/chunks/x.js-tlds9Ooz.js +0 -18
  870. package/build/server/chunks/entries/endpoints/api/events/_server.ts.js-gil57_h5.js +0 -93
  871. package/build/server/chunks/entries/endpoints/api/firstmate/chat/_server.ts.js-CWFdWS2r.js +0 -74
  872. package/build/server/chunks/entries/endpoints/api/firstmate/commands/_server.ts.js-0h1duDYU.js +0 -110
  873. package/build/server/chunks/entries/endpoints/api/firstmate/input/_server.ts.js-DUtAFI8B.js +0 -42
  874. package/build/server/chunks/entries/endpoints/api/firstmate/interrupt/_server.ts.js-BVjvk1Kr.js +0 -35
  875. package/build/server/chunks/entries/endpoints/api/firstmate/messages/_server.ts.js-CZKuOhTq.js +0 -57
  876. package/build/server/chunks/entries/endpoints/api/firstmate/pick/_server.ts.js-DbYNDgMY.js +0 -45
  877. package/build/server/chunks/entries/endpoints/api/firstmate/start/_server.ts.js-Dez_V83F.js +0 -35
  878. package/build/server/chunks/entries/endpoints/api/fleet/_server.ts.js-XScFl7NC.js +0 -27
  879. package/build/server/chunks/entries/endpoints/api/health/_server.ts.js-BOvoz2OJ.js +0 -27
  880. package/build/server/chunks/entries/endpoints/api/inbox/_server.ts.js-DuUHrmV4.js +0 -51
  881. package/build/server/chunks/entries/endpoints/api/insights/_server.ts.js-P-j2jdcu.js +0 -27
  882. package/build/server/chunks/entries/endpoints/api/plugins/_server.ts.js-BuaL2gbp.js +0 -27
  883. package/build/server/chunks/entries/endpoints/api/projects/_id_/passage/_server.ts.js-Dwoaon5p.js +0 -32
  884. package/build/server/chunks/entries/endpoints/api/projects/_id_/passage/commands/_server.ts.js-CpRObQnb.js +0 -41
  885. package/build/server/chunks/entries/endpoints/api/projects/_id_/passage/consent/_server.ts.js-Dml05WPU.js +0 -53
  886. package/build/server/chunks/entries/endpoints/api/projects/_id_/passage/draft/_server.ts.js-rp9RtX4F.js +0 -40
  887. package/build/server/chunks/entries/endpoints/api/projects/_id_/passage/file/_server.ts.js-DLdJWcj-.js +0 -63
  888. package/build/server/chunks/entries/endpoints/api/projects/_id_/passage/test/_server.ts.js-Co_h1q_m.js +0 -46
  889. package/build/server/chunks/entries/endpoints/api/services/_server.ts.js-SRzfx-2h.js +0 -46
  890. package/build/server/chunks/entries/endpoints/api/slots/_server.ts.js-lFuRL8QC.js +0 -35
  891. package/build/server/chunks/entries/endpoints/api/specs/_id_/_server.ts.js-D-QFRPpb.js +0 -59
  892. package/build/server/chunks/entries/endpoints/api/specs/_id_/build-request/_server.ts.js-CEZLC3cJ.js +0 -47
  893. package/build/server/chunks/entries/endpoints/api/specs/_id_/comments/_comment_/_server.ts.js-BHNzMZ7H.js +0 -36
  894. package/build/server/chunks/entries/endpoints/api/specs/_id_/comments/_server.ts.js-DHMiene7.js +0 -57
  895. package/build/server/chunks/entries/endpoints/api/specs/_id_/images/_name_/_server.ts.js-BxmqxnuG.js +0 -49
  896. package/build/server/chunks/entries/endpoints/api/specs/_id_/images/_server.ts.js-CvRTk1JX.js +0 -55
  897. package/build/server/chunks/entries/endpoints/api/specs/_id_/sent/_server.ts.js-VHXvHVC9.js +0 -36
  898. package/build/server/chunks/entries/endpoints/api/specs/_id_/turn/_server.ts.js-BjbvOskQ.js +0 -82
  899. package/build/server/chunks/entries/endpoints/api/specs/_server.ts.js-CUNgX4FQ.js +0 -40
  900. package/build/server/chunks/entries/endpoints/api/tasks/_id_/_server.ts.js-CTJxYuKH.js +0 -32
  901. package/build/server/chunks/entries/endpoints/api/tasks/_id_/artifacts/_...name_/_server.ts.js-BsDmTo5q.js +0 -51
  902. package/build/server/chunks/entries/endpoints/api/tasks/_id_/diff/_server.ts.js-DmDd31bm.js +0 -39
  903. package/build/server/chunks/entries/endpoints/api/tasks/_id_/output/_server.ts.js-xNagO0jC.js +0 -84
  904. package/build/server/chunks/entries/endpoints/api/tasks/_id_/preview/_server.ts.js-fNh7CbDX.js +0 -102
  905. package/build/server/chunks/entries/endpoints/api/tasks/_id_/review/_server.ts.js-DL1M1PqI.js +0 -34
  906. package/build/server/chunks/entries/endpoints/api/tasks/_id_/review/ask/_server.ts.js-G8t4mipV.js +0 -40
  907. package/build/server/chunks/entries/endpoints/api/tasks/_id_/review/check/_server.ts.js-B0ymV1Pa.js +0 -39
  908. package/build/server/chunks/entries/endpoints/api/tasks/_id_/review/guide/_server.ts.js-Bi08FNu1.js +0 -39
  909. package/build/server/chunks/entries/endpoints/api/tasks/_id_/review/runs/_run_/stop/_server.ts.js-C_TftzeG.js +0 -32
  910. package/build/server/chunks/entries/fallbacks/error.svelte.js-DlN_tCrh.js +0 -15
  911. package/build/server/chunks/entries/hooks.server.js-IwCMs7or.js +0 -40
  912. package/build/server/chunks/entries/pages/_layout.server.ts.js-DQI-pH0T.js +0 -20
  913. package/build/server/chunks/entries/pages/_layout.svelte.js-BJuZaosz.js +0 -10454
  914. package/build/server/chunks/entries/pages/_page.server.ts.js-PgqrVobO.js +0 -16
  915. package/build/server/chunks/entries/pages/_page.svelte.js-BI4c5H0n.js +0 -3699
  916. package/build/server/chunks/entries/pages/decisions/_page.server.ts.js-SL6FScVj.js +0 -11
  917. package/build/server/chunks/entries/pages/decisions/_page.svelte.js-ClTz3O_K.js +0 -167
  918. package/build/server/chunks/entries/pages/harbour/_page.server.ts.js-DIvSuIkZ.js +0 -20
  919. package/build/server/chunks/entries/pages/harbour/_page.svelte.js-43FRNSVK.js +0 -1346
  920. package/build/server/chunks/entries/pages/headroom/_page.server.ts.js-CGLa7Yrr.js +0 -11
  921. package/build/server/chunks/entries/pages/headroom/_page.svelte.js-zmKQdAwy.js +0 -135
  922. package/build/server/chunks/entries/pages/inbox/_page.svelte.js-wTvAFPNM.js +0 -175
  923. package/build/server/chunks/entries/pages/plugins/_plugin_/_page_/_page.server.ts.js-BoG4CT_l.js +0 -15
  924. package/build/server/chunks/entries/pages/plugins/_plugin_/_page_/_page.svelte.js-DfAqJJ3i.js +0 -55
  925. package/build/server/chunks/entries/pages/projects/_id_/_plugin_/_tab_/_page.server.ts.js-BVTs44zi.js +0 -15
  926. package/build/server/chunks/entries/pages/projects/_id_/_plugin_/_tab_/_page.svelte.js-B472Pugu.js +0 -66
  927. package/build/server/chunks/entries/pages/projects/_id_/passage/_page.server.ts.js-CER4deq2.js +0 -14
  928. package/build/server/chunks/entries/pages/projects/_id_/passage/_page.svelte.js-CWjEArXY.js +0 -394
  929. package/build/server/chunks/entries/pages/projects/_id_/passage/edit/_page.server.ts.js-DiCdDip4.js +0 -15
  930. package/build/server/chunks/entries/pages/projects/_id_/passage/edit/_page.svelte.js-iHacn81K.js +0 -1859
  931. package/build/server/chunks/entries/pages/projects/_page.server.ts.js-BH_VcZlY.js +0 -37
  932. package/build/server/chunks/entries/pages/projects/_page.svelte.js-B_NQ-Wg3.js +0 -270
  933. package/build/server/chunks/entries/pages/spec/_page.server.ts.js-CTzZ3jGx.js +0 -31
  934. package/build/server/chunks/entries/pages/spec/_page.svelte.js-BJjweG9u.js +0 -1561
  935. package/build/server/chunks/entries/pages/tasks/_id_/_page.server.ts.js-YgQ9nhRn.js +0 -25
  936. package/build/server/chunks/entries/pages/tasks/_id_/_page.svelte.js-Dr2wwDJG.js +0 -2063
  937. package/build/server/chunks/entries/pages/tasks/_id_/doc/_page.server.ts.js-DdBsWj8_.js +0 -24
  938. package/build/server/chunks/entries/pages/tasks/_id_/doc/_page.svelte.js-DOyZ1QzI.js +0 -145
  939. package/build/server/chunks/entries/pages/tasks/_id_/review/_page.server.ts.js-DY0lh_8-.js +0 -15
  940. package/build/server/chunks/entries/pages/tasks/_id_/review/_page.svelte.js-BDaRELgE.js +0 -692
  941. package/build/server/chunks/entries/pages/time/_page.server.ts.js-kriWArLo.js +0 -11
  942. package/build/server/chunks/entries/pages/time/_page.svelte.js-CSXGxvVs.js +0 -107
  943. package/build/server/chunks/handler-BZ-YqSXJ.js +0 -1474
  944. package/build/server/chunks/index.js-CmcXVwBU.js +0 -4296
  945. package/build/server/chunks/manifest.js-DqwS7AJB.js +0 -434
  946. package/build/server/chunks/nodes/0.js-DS2IDkUW.js +0 -32
  947. package/build/server/chunks/nodes/1.js-_0OBbjVP.js +0 -9
  948. package/build/server/chunks/nodes/10.js-CMSpRrcc.js +0 -33
  949. package/build/server/chunks/nodes/11.js-D1M01GlQ.js +0 -33
  950. package/build/server/chunks/nodes/12.js-DaC2vk2U.js +0 -37
  951. package/build/server/chunks/nodes/13.js-BSWYX8Ak.js +0 -33
  952. package/build/server/chunks/nodes/14.js-CY9oBxXM.js +0 -33
  953. package/build/server/chunks/nodes/15.js-Bg9hD2dR.js +0 -33
  954. package/build/server/chunks/nodes/16.js-qlcIEvV6.js +0 -32
  955. package/build/server/chunks/nodes/2.js-CW_-me_g.js +0 -32
  956. package/build/server/chunks/nodes/3.js-CUCcQUgI.js +0 -32
  957. package/build/server/chunks/nodes/4.js-CSYxmBts.js +0 -34
  958. package/build/server/chunks/nodes/5.js-CHwpTnZj.js +0 -32
  959. package/build/server/chunks/nodes/6.js-XHZwJGEg.js +0 -9
  960. package/build/server/chunks/nodes/7.js-DK_vuZQs.js +0 -32
  961. package/build/server/chunks/nodes/8.js-Crd93Nlx.js +0 -34
  962. package/build/server/chunks/nodes/9.js-CWqhWBb9.js +0 -32
  963. /package/build/client/_app/immutable/assets/{4.5dJKCkOT.css → 5.5dJKCkOT.css} +0 -0
  964. /package/build/client/_app/immutable/assets/{4.5dJKCkOT.css.br → 5.5dJKCkOT.css.br} +0 -0
  965. /package/build/client/_app/immutable/assets/{4.5dJKCkOT.css.gz → 5.5dJKCkOT.css.gz} +0 -0
  966. /package/build/client/_app/immutable/assets/{MicButton.Dga9zAug.css → checks.Dga9zAug.css} +0 -0
  967. /package/build/client/_app/immutable/assets/{MicButton.Dga9zAug.css.br → checks.Dga9zAug.css.br} +0 -0
  968. /package/build/client/_app/immutable/assets/{MicButton.Dga9zAug.css.gz → checks.Dga9zAug.css.gz} +0 -0
@@ -1,816 +0,0 @@
1
- import path from 'node:path';
2
- import { j as json } from './utils.js-DTSGDHlH.js';
3
- import { N as NO_STORE } from './http.js-TzZuOtxn.js';
4
- import { e as currentFleet, k as defaultStateDir, g as getRuntime, m as isInside, t as trackChild } from './runtime.js-fVZqJsqU.js';
5
- import { stat, readFile, readdir, mkdir, writeFile, rename, rm } from 'node:fs/promises';
6
- import { spawn } from 'node:child_process';
7
- import { S as SPEC_SECTIONS, a as SPEC_ID, s as summarize, n as normalizeSpec, e as emptySpec, i as isSectionId, M as MAX_COMMENTS, C as COMMENT_ID, I as IMAGE_NAME, c as changedSections, b as MAX_TURNS } from './spec.js-B0yI1XqG.js';
8
- import { randomBytes } from 'node:crypto';
9
-
10
- const CLAUDE_EFFORTS = ["low", "medium", "high"];
11
- const READ_ONLY_TOOLS = /* @__PURE__ */ new Set(["Read", "Grep", "Glob"]);
12
- function claudeArgs(c) {
13
- const tools = c.tools.filter((t) => READ_ONLY_TOOLS.has(t));
14
- return [
15
- "-p",
16
- "--output-format",
17
- "stream-json",
18
- "--verbose",
19
- "--include-partial-messages",
20
- "--model",
21
- c.model,
22
- "--effort",
23
- c.effort,
24
- "--system-prompt",
25
- c.systemPrompt,
26
- "--tools",
27
- tools.join(","),
28
- // The captain's hooks, plugins and MCP servers are for their own sessions, not this one.
29
- "--setting-sources",
30
- "",
31
- "--strict-mcp-config",
32
- "--no-session-persistence"
33
- ];
34
- }
35
- const num = (v) => typeof v === "number" && Number.isFinite(v) ? v : 0;
36
- function usageOf(o) {
37
- const u = o.usage && typeof o.usage === "object" ? o.usage : {};
38
- return {
39
- inputTokens: num(u.input_tokens) + num(u.cache_read_input_tokens) + num(u.cache_creation_input_tokens),
40
- outputTokens: num(u.output_tokens),
41
- costUsd: num(o.total_cost_usd)
42
- };
43
- }
44
- function toolDetail(input) {
45
- if (!input || typeof input !== "object") return "";
46
- const i = input;
47
- const v = i.file_path ?? i.pattern ?? i.path ?? "";
48
- return typeof v === "string" ? v.slice(0, 200) : "";
49
- }
50
- function readLine(line, emit) {
51
- let o;
52
- try {
53
- const v = JSON.parse(line);
54
- if (!v || typeof v !== "object") return null;
55
- o = v;
56
- } catch {
57
- return null;
58
- }
59
- if (o.type === "stream_event" && o.event && typeof o.event === "object") {
60
- const ev = o.event;
61
- const delta = ev.delta;
62
- if (ev.type === "message_start") emit({ type: "message" });
63
- else if (ev.type === "content_block_delta" && delta?.type === "text_delta") {
64
- if (typeof delta.text === "string" && delta.text) emit({ type: "text", text: delta.text });
65
- }
66
- return null;
67
- }
68
- if (o.type === "assistant" && o.message && typeof o.message === "object") {
69
- const content = o.message.content;
70
- for (const c of Array.isArray(content) ? content : []) {
71
- if (c && typeof c === "object" && c.type === "tool_use") {
72
- const t = c;
73
- emit({ type: "tool", name: String(t.name ?? "tool"), detail: toolDetail(t.input) });
74
- }
75
- }
76
- return null;
77
- }
78
- if (o.type === "result") {
79
- const usage = usageOf(o);
80
- const text = typeof o.result === "string" ? o.result : "";
81
- if (o.is_error === true || o.subtype !== "success") {
82
- return {
83
- result: { ok: false, message: text || `claude stopped (${String(o.subtype)}).`, usage }
84
- };
85
- }
86
- return { result: { ok: true, text, usage } };
87
- }
88
- return null;
89
- }
90
- const NO_USAGE = { inputTokens: 0, outputTokens: 0, costUsd: 0 };
91
- function runClaude(config, opts) {
92
- return new Promise((resolve) => {
93
- let child;
94
- try {
95
- child = spawn(config.bin, claudeArgs(config), {
96
- cwd: config.cwd,
97
- env: opts.env ?? process.env,
98
- shell: false,
99
- detached: true,
100
- stdio: ["pipe", "pipe", "pipe"]
101
- });
102
- } catch (err) {
103
- resolve({ ok: false, message: spawnMessage(config.bin, err), usage: NO_USAGE });
104
- return;
105
- }
106
- const kill = trackChild(child);
107
- let result = null;
108
- let failure = null;
109
- let settled = false;
110
- let pending = "";
111
- let stderr = "";
112
- const finish = (fallback) => {
113
- if (settled) return;
114
- settled = true;
115
- clearTimeout(timer);
116
- opts.signal?.removeEventListener("abort", abort);
117
- if (pending.trim()) handle(pending);
118
- resolve(
119
- failure ? { ok: false, message: failure, usage: result?.usage ?? NO_USAGE } : result ?? { ok: false, message: fallback, usage: NO_USAGE }
120
- );
121
- };
122
- const stop = (why) => {
123
- failure ??= why;
124
- kill();
125
- };
126
- const timer = setTimeout(
127
- () => stop(`The interviewer took longer than ${Math.round(opts.timeoutMs / 1e3)} s.`),
128
- opts.timeoutMs
129
- );
130
- const abort = () => stop("Stopped.");
131
- if (opts.signal?.aborted) abort();
132
- opts.signal?.addEventListener("abort", abort);
133
- const handle = (line) => {
134
- const r = readLine(line, (e) => opts.onEvent?.(e));
135
- if (r) result = r.result;
136
- };
137
- child.stdout?.setEncoding("utf8");
138
- child.stdout?.on("data", (chunk) => {
139
- pending += chunk;
140
- let nl;
141
- while ((nl = pending.indexOf("\n")) >= 0) {
142
- const line = pending.slice(0, nl);
143
- pending = pending.slice(nl + 1);
144
- if (line.trim()) handle(line);
145
- }
146
- if (pending.length > 4 * 1024 * 1024) stop("The interviewer wrote more than expected.");
147
- });
148
- child.stderr?.setEncoding("utf8");
149
- child.stderr?.on("data", (chunk) => {
150
- if (stderr.length < 8192) stderr += chunk;
151
- });
152
- child.stdin?.on("error", () => {
153
- });
154
- child.stdin?.end(opts.prompt);
155
- child.on("error", (err) => {
156
- failure ??= spawnMessage(config.bin, err);
157
- finish(failure);
158
- });
159
- child.on("close", (code) => {
160
- const why = stderr.trim().split("\n").filter(Boolean).pop();
161
- finish(
162
- code === 0 ? "claude finished without an answer." : `claude exited with code ${code}${why ? `: ${why.slice(0, 300)}` : ""}.`
163
- );
164
- });
165
- });
166
- }
167
- function spawnMessage(bin, err) {
168
- const code = err?.code;
169
- if (code === "ENOENT") {
170
- return `Could not find the claude CLI (${bin}). Install Claude Code, or point WHEELHOUSE_CLAUDE_BIN at it.`;
171
- }
172
- return `Could not start claude: ${err instanceof Error ? err.message : String(err)}`;
173
- }
174
- const SPEC_MARKER = "===SPEC===";
175
- const FIELDS = {
176
- title: false,
177
- project: false,
178
- summary: false,
179
- problem: false,
180
- goal: false,
181
- audience: false,
182
- journeys: true,
183
- scope: false,
184
- nonGoals: false,
185
- requirements: true,
186
- uiNotes: false,
187
- links: true,
188
- constraints: false,
189
- risks: false,
190
- questions: true
191
- };
192
- const FALLBACK_INTERVIEW_SKILL = `Interview the captain relentlessly about every aspect of this until you reach a shared understanding. Walk down each branch of the decision tree, resolving dependencies between decisions one by one. For each question, give your recommended answer.
193
-
194
- Ask the questions one at a time, waiting for an answer to each before continuing. Asking several questions at once is bewildering.
195
-
196
- If a fact can be found by exploring the project (its files), look it up rather than asking. The decisions, though, are the captain's: put each one to them and wait for their answer.`;
197
- async function findInterviewSkill(dirs) {
198
- const read = async (name) => {
199
- for (const dir of dirs) {
200
- try {
201
- const raw = await readFile(path.join(dir, name, "SKILL.md"), "utf8");
202
- const body = raw.replace(/^---\n[\s\S]*?\n---\n?/, "").trim();
203
- if (body) return body.slice(0, 8e3);
204
- } catch {
205
- }
206
- }
207
- return null;
208
- };
209
- const grilling = await read("grilling");
210
- if (grilling) return grilling;
211
- const grill = await read("grill-me");
212
- if (!grill) return null;
213
- const pointer = grill.match(/^Run an? `\/([\w-]+)` session\.?$/);
214
- return pointer ? await read(pointer[1]) : grill;
215
- }
216
- function skillDirs(env = process.env) {
217
- const home = env.HOME ?? "";
218
- const config = env.CLAUDE_CONFIG_DIR || path.join(home, ".claude");
219
- return [path.join(config, "skills"), path.join(home, ".agents", "skills")];
220
- }
221
- function systemPrompt(skill) {
222
- const sections = SPEC_SECTIONS.map((s) => `- ${s.title}: ${s.prompt}`).join("\n");
223
- return `You are the spec interviewer in Wheelhouse, the captain's window onto Firstmate, an AI crew that builds software. The captain has an idea for a piece of work. Your job is to grill them, one question at a time, until the idea is a clear, buildable spec, and to keep the spec up to date after every answer. When the spec is done the captain sends it to Firstmate as a build request. You never build, change or write anything yourself: you only ask, read and update the spec.
224
-
225
- # How to interview
226
-
227
- ${skill ?? FALLBACK_INTERVIEW_SKILL}
228
-
229
- In this interview, also:
230
- - Ask exactly one question per turn. Keep each message short: a sentence or two of context at most, then the question.
231
- - Challenge vague answers ("fast", "simple", "users") and ask for the concrete case.
232
- - Offer 2 to 4 short answers the captain can pick from, and say which one you recommend and why, in a few words. The captain may answer in their own words instead.
233
- - Cover the spec's sections in a sensible order, skipping what does not apply:
234
- ${sections}
235
- - Turn what the captain says into testable requirements, one check each.
236
- - Know when to stop. When the spec covers the problem, who it is for, how they use it, scope, testable requirements and the main risks, and nothing important is left open, say the spec looks ready to send to build, ask whether anything is missing, and set "done" to true. Do not drag the interview on with minor questions.
237
-
238
- # Comments
239
-
240
- The captain can comment on parts of the spec. Address every open comment you are given: revise the spec to reflect it, or ask a follow-up question when it needs a decision. Mark each one you addressed as resolved with a one-line reply saying what you did.
241
-
242
- # How to answer
243
-
244
- Write your message to the captain in plain Markdown. Then, on its own line, write ${SPEC_MARKER} and after it one JSON object, with no code fence:
245
-
246
- {"spec": {<only the fields you changed>}, "options": ["...", "..."], "recommended": 0, "resolved": [{"id": "c-...", "reply": "..."}], "done": false}
247
-
248
- - "spec" holds the fields you changed, each with its whole new value. Text fields: title, project, summary, problem, goal, audience, scope, nonGoals, uiNotes, constraints, risks. List fields (arrays of strings): journeys, requirements, links, questions. Keep the captain's words where you can; write in plain, short sentences. "questions" holds what is still undecided.
249
- - "options" are the answers you offer for your question (may be empty); "recommended" is the index of the one you recommend, or null.
250
- - "resolved" lists the comments you addressed (may be empty).
251
- - Put the options in "options", not in your message.`;
252
- }
253
- function specFields(d) {
254
- const out = {};
255
- for (const f of Object.keys(FIELDS)) out[f] = d[f];
256
- return out;
257
- }
258
- const sectionTitle = (id) => SPEC_SECTIONS.find((s) => s.id === id)?.title ?? id;
259
- function openComments(d) {
260
- return d.comments.filter((c) => !c.resolvedAt);
261
- }
262
- function turnPrompt(d) {
263
- const transcript = d.interview.turns.map((t) => `${t.role === "agent" ? "You" : "Captain"}: ${t.text}`).join("\n\n");
264
- const comments = openComments(d).map(
265
- (c) => `- [${c.id}] on "${sectionTitle(c.section)}"${c.quote ? `, about "${c.quote}"` : ""}: ${c.text}`
266
- ).join("\n");
267
- const turns = d.interview.turns;
268
- const next = turns.at(-1)?.role === "captain" ? turns.length <= 1 ? "The captain has just described what they want built (the last message above). Start the interview: fill in what you can of the spec from it, then ask your first question." : "The captain has just answered (the last message above). Update the spec with the answer, then ask your next question, or say the spec is ready." : comments ? "The captain has added comments on the spec. Address them, then carry on with the interview." : "Carry on with the interview: ask your next question, or say the spec is ready.";
269
- return [
270
- `# The spec so far
271
-
272
- ${JSON.stringify(specFields(d), null, 2)}`,
273
- transcript ? `# The interview so far
274
-
275
- ${transcript}` : "",
276
- comments ? `# The captain's open comments on the spec
277
-
278
- ${comments}` : "",
279
- `# Your turn
280
-
281
- ${next}`
282
- ].filter(Boolean).join("\n\n");
283
- }
284
- function parseTail(tail) {
285
- const body = tail.trim().replace(/^```(?:json)?\s*/i, "").replace(/\s*```$/, "");
286
- const start = body.indexOf("{");
287
- const end = body.lastIndexOf("}");
288
- if (start < 0 || end < start) return null;
289
- try {
290
- const v = JSON.parse(body.slice(start, end + 1));
291
- return v && typeof v === "object" && !Array.isArray(v) ? v : null;
292
- } catch {
293
- return null;
294
- }
295
- }
296
- function parseReply(raw) {
297
- const at = raw.indexOf(SPEC_MARKER);
298
- const message = (at < 0 ? raw : raw.slice(0, at)).trim();
299
- const tail = at < 0 ? null : parseTail(raw.slice(at + SPEC_MARKER.length));
300
- const reply = {
301
- message,
302
- spec: {},
303
- options: [],
304
- recommended: null,
305
- resolved: [],
306
- done: false
307
- };
308
- if (!tail) return reply;
309
- const spec = tail.spec && typeof tail.spec === "object" ? tail.spec : {};
310
- for (const f of Object.keys(FIELDS)) {
311
- const v = spec[f];
312
- if (FIELDS[f] && Array.isArray(v)) {
313
- reply.spec[f] = v.filter((x) => typeof x === "string");
314
- } else if (!FIELDS[f] && typeof v === "string") {
315
- reply.spec[f] = v;
316
- }
317
- }
318
- if (Array.isArray(tail.options)) {
319
- reply.options = tail.options.filter((x) => typeof x === "string" && !!x.trim()).map((x) => x.trim().slice(0, 500)).slice(0, 6);
320
- }
321
- const rec = tail.recommended;
322
- reply.recommended = typeof rec === "number" && Number.isInteger(rec) && rec >= 0 && rec < reply.options.length ? rec : null;
323
- if (Array.isArray(tail.resolved)) {
324
- for (const r of tail.resolved) {
325
- if (r && typeof r === "object" && typeof r.id === "string") {
326
- const { id, reply: text } = r;
327
- reply.resolved.push({ id, reply: typeof text === "string" ? text : "" });
328
- }
329
- }
330
- }
331
- reply.done = tail.done === true;
332
- return reply;
333
- }
334
- function applyReply(d, reply, now = /* @__PURE__ */ new Date()) {
335
- const at = now.toISOString();
336
- const edited = normalizeSpec({ ...d, ...reply.spec }, d.id, now) ?? d;
337
- const next = {
338
- ...d,
339
- ...Object.fromEntries(Object.keys(FIELDS).map((f) => [f, edited[f]]))
340
- };
341
- const changed = changedSections(d, next);
342
- const resolved = new Map(reply.resolved.map((r) => [r.id, r.reply]));
343
- next.comments = d.comments.map(
344
- (c) => !c.resolvedAt && resolved.has(c.id) ? { ...c, resolvedAt: at, reply: (resolved.get(c.id) ?? "").slice(0, 2e3) } : c
345
- );
346
- next.interview = {
347
- ...d.interview,
348
- done: reply.done,
349
- turns: [
350
- ...d.interview.turns,
351
- {
352
- role: "agent",
353
- text: reply.message || "I have updated the spec.",
354
- at,
355
- options: reply.options,
356
- recommended: reply.recommended,
357
- changed
358
- }
359
- ]
360
- };
361
- next.updatedAt = at;
362
- return { draft: next, changed };
363
- }
364
- class MessageStream {
365
- text = "";
366
- shown = 0;
367
- ended = false;
368
- /** New text to show, if any. */
369
- push(chunk) {
370
- if (this.ended) return "";
371
- this.text += chunk;
372
- const at = this.text.indexOf(SPEC_MARKER);
373
- if (at >= 0) {
374
- this.ended = true;
375
- return this.take(at);
376
- }
377
- let safe = this.text.length;
378
- for (let k = Math.min(SPEC_MARKER.length - 1, this.text.length); k > 0; k--) {
379
- if (SPEC_MARKER.startsWith(this.text.slice(-k))) {
380
- safe = this.text.length - k;
381
- break;
382
- }
383
- }
384
- return this.take(safe);
385
- }
386
- /** Start over (the agent began a new message, e.g. after reading a file). */
387
- reset() {
388
- this.text = "";
389
- this.shown = 0;
390
- this.ended = false;
391
- }
392
- take(upTo) {
393
- const out = this.text.slice(this.shown, upTo);
394
- this.shown = Math.max(this.shown, upTo);
395
- return out;
396
- }
397
- }
398
- function interviewerSettings(env = process.env) {
399
- const effort = env.WHEELHOUSE_SPEC_EFFORT;
400
- return {
401
- bin: env.WHEELHOUSE_CLAUDE_BIN || "claude",
402
- model: env.WHEELHOUSE_SPEC_MODEL || "sonnet",
403
- effort: CLAUDE_EFFORTS.includes(effort) ? effort : "low"
404
- };
405
- }
406
- const TURN_TIMEOUT_MS = 5 * 6e4;
407
- class Interviewer {
408
- constructor(store, opts) {
409
- this.store = store;
410
- this.opts = opts;
411
- }
412
- store;
413
- opts;
414
- busy = /* @__PURE__ */ new Set();
415
- get settings() {
416
- return this.opts.settings;
417
- }
418
- isBusy(id) {
419
- return this.busy.has(id);
420
- }
421
- /**
422
- * One turn: `answer` is what the captain just said (null to have the agent
423
- * address new comments, or try again after a failed turn).
424
- */
425
- async turn(id, answer, onEvent = () => {
426
- }, signal) {
427
- if (this.busy.has(id)) {
428
- return {
429
- ok: false,
430
- status: 409,
431
- message: "The interviewer is already working on this spec.",
432
- draft: null
433
- };
434
- }
435
- this.busy.add(id);
436
- try {
437
- let draft = await this.store.get(id);
438
- if (!draft) return { ok: false, status: 404, message: "That spec no longer exists.", draft };
439
- const said = answer?.trim() ?? "";
440
- if (said) draft = await this.store.addAnswer(id, said);
441
- if (!draft) return { ok: false, status: 404, message: "That spec no longer exists.", draft };
442
- if (!said && !draft.interview.turns.length && !openComments(draft).length) {
443
- return {
444
- ok: false,
445
- status: 400,
446
- message: "Say what you want built first.",
447
- draft
448
- };
449
- }
450
- const project = draft.project.trim();
451
- const cwd = project && await this.opts.projectPath?.(project) || null;
452
- const readable = !!cwd && await isDir(cwd);
453
- const config = {
454
- ...this.opts.settings,
455
- systemPrompt: systemPrompt(await findInterviewSkill(this.opts.skillDirs ?? skillDirs())),
456
- tools: readable ? ["Read", "Grep", "Glob"] : [],
457
- cwd: readable ? cwd : this.store.dir
458
- };
459
- const stream = new MessageStream();
460
- const result = await runClaude(config, {
461
- prompt: turnPrompt(draft),
462
- env: this.opts.env,
463
- timeoutMs: this.opts.timeoutMs ?? TURN_TIMEOUT_MS,
464
- signal,
465
- onEvent: (e) => {
466
- if (e.type === "message") {
467
- stream.reset();
468
- onEvent({ type: "reset" });
469
- } else if (e.type === "text") {
470
- const text = stream.push(e.text);
471
- if (text) onEvent({ type: "text", text });
472
- } else onEvent(e);
473
- }
474
- });
475
- if (!result.ok) {
476
- const after = await this.store.addUsage(id, result.usage);
477
- return { ok: false, status: 502, message: result.message, draft: after ?? draft };
478
- }
479
- const saved = await this.store.applyAgent(id, parseReply(result.text), result.usage);
480
- if (!saved) return { ok: false, status: 404, message: "That spec no longer exists.", draft };
481
- return { ok: true, draft: saved };
482
- } finally {
483
- this.busy.delete(id);
484
- }
485
- }
486
- }
487
- async function isDir(p) {
488
- try {
489
- return (await stat(p)).isDirectory();
490
- } catch {
491
- return false;
492
- }
493
- }
494
- const SPEC_IMAGE_MAX_BYTES = 10 * 1024 * 1024;
495
- const SPEC_IMAGE_TYPES = {
496
- "image/png": "png",
497
- "image/jpeg": "jpg",
498
- "image/webp": "webp",
499
- "image/gif": "gif"
500
- };
501
- const CONTENT_TYPE = {
502
- png: "image/png",
503
- jpg: "image/jpeg",
504
- jpeg: "image/jpeg",
505
- webp: "image/webp",
506
- gif: "image/gif"
507
- };
508
- const STALE_EDITABLE = ["project", "title", "mode"];
509
- const token = () => randomBytes(6).toString("hex");
510
- const addUsage = (d, u) => ({
511
- turns: d.interview.usage.turns + 1,
512
- inputTokens: d.interview.usage.inputTokens + u.inputTokens,
513
- outputTokens: d.interview.usage.outputTokens + u.outputTokens,
514
- costUsd: d.interview.usage.costUsd + u.costUsd
515
- });
516
- class SpecStore {
517
- constructor(dir) {
518
- this.dir = dir;
519
- }
520
- dir;
521
- queues = /* @__PURE__ */ new Map();
522
- /** Run one read-change-write of a draft after any already under way for it. */
523
- serial(id, fn) {
524
- const run = (this.queues.get(id) ?? Promise.resolve()).then(fn, fn);
525
- const tail = run.catch(() => {
526
- });
527
- this.queues.set(id, tail);
528
- void tail.then(() => {
529
- if (this.queues.get(id) === tail) this.queues.delete(id);
530
- });
531
- return run;
532
- }
533
- file(id) {
534
- return path.join(this.dir, `${id}.json`);
535
- }
536
- /** Where a spec's pictures live (also what the message to Firstmate names). */
537
- imageDir(id) {
538
- return path.join(this.dir, id);
539
- }
540
- /** Every draft, most recently edited first. Unreadable files are skipped. */
541
- async list() {
542
- let names;
543
- try {
544
- names = await readdir(this.dir);
545
- } catch {
546
- return [];
547
- }
548
- const out = [];
549
- for (const n of names) {
550
- const id = n.endsWith(".json") ? n.slice(0, -5) : "";
551
- if (!SPEC_ID.test(id)) continue;
552
- const d = await this.get(id);
553
- if (d) out.push(summarize(d));
554
- }
555
- return out.sort((a, b) => b.updatedAt.localeCompare(a.updatedAt));
556
- }
557
- async get(id) {
558
- if (!SPEC_ID.test(id)) return null;
559
- try {
560
- return normalizeSpec(JSON.parse(await readFile(this.file(id), "utf8")), id);
561
- } catch {
562
- return null;
563
- }
564
- }
565
- async create(now = /* @__PURE__ */ new Date()) {
566
- const d = emptySpec(`spec-${token()}`, now);
567
- await this.write(d);
568
- return d;
569
- }
570
- /**
571
- * Save the captain's edits over an existing draft. The id, creation time,
572
- * pictures (which only upload and remove change), when it was last sent
573
- * (which only `markSent` changes), the interview and the comments (which
574
- * only their own calls change) are kept from the stored draft. Edits made
575
- * on a copy older than the interview's last turn keep the spec as that
576
- * turn left it, apart from those of the project, the title and the mode
577
- * the edit lists in `edited` as changed by the captain.
578
- */
579
- save(id, edit, now = /* @__PURE__ */ new Date()) {
580
- return this.serial(id, async () => {
581
- const before = await this.get(id);
582
- if (!before) return null;
583
- const next = normalizeSpec(edit, id, now);
584
- if (!next) return null;
585
- const captions = new Map(next.images.map((i) => [i.name, i.caption]));
586
- const stale = next.interview.turns.at(-1)?.at !== before.interview.turns.at(-1)?.at;
587
- const listed = edit.edited;
588
- const edited = new Set(Array.isArray(listed) ? listed : []);
589
- const merged = stale ? { ...before } : next;
590
- if (stale) {
591
- for (const f of STALE_EDITABLE) if (edited.has(f)) Object.assign(merged, { [f]: next[f] });
592
- }
593
- const d = {
594
- ...merged,
595
- createdAt: before.createdAt,
596
- updatedAt: now.toISOString(),
597
- sentAt: before.sentAt,
598
- interview: before.interview,
599
- comments: before.comments,
600
- images: before.images.map((i) => ({
601
- ...i,
602
- caption: captions.get(i.name) ?? i.caption
603
- }))
604
- };
605
- await this.write(d);
606
- return d;
607
- });
608
- }
609
- /** Record that the draft was sent to Firstmate, changing nothing else. */
610
- markSent(id, now = /* @__PURE__ */ new Date()) {
611
- return this.serial(id, async () => {
612
- const d = await this.get(id);
613
- if (!d) return null;
614
- const next = { ...d, sentAt: now.toISOString() };
615
- await this.write(next);
616
- return next;
617
- });
618
- }
619
- /** Change a draft with `fn` (null when there is no such draft), stamped and written. */
620
- change(id, now, fn) {
621
- return this.serial(id, async () => {
622
- const d = await this.get(id);
623
- const next = d && fn(d);
624
- if (!next) return null;
625
- const out = { ...next, updatedAt: now.toISOString() };
626
- await this.write(out);
627
- return out;
628
- });
629
- }
630
- /** Add what the captain said to the interview. */
631
- addAnswer(id, text, now = /* @__PURE__ */ new Date()) {
632
- return this.change(id, now, (d) => ({
633
- ...d,
634
- mode: "interview",
635
- interview: {
636
- ...d.interview,
637
- turns: [
638
- ...d.interview.turns,
639
- {
640
- role: "captain",
641
- text: text.slice(0, 2e4),
642
- at: now.toISOString(),
643
- options: [],
644
- recommended: null,
645
- changed: []
646
- }
647
- ].slice(-MAX_TURNS)
648
- }
649
- }));
650
- }
651
- /**
652
- * Apply the agent's reply to the draft as it is now (comments added while
653
- * the agent worked are kept), and count what the turn cost.
654
- */
655
- applyAgent(id, reply, usage, now = /* @__PURE__ */ new Date()) {
656
- return this.change(id, now, (d) => {
657
- const { draft } = applyReply(d, reply, now);
658
- draft.interview.turns = draft.interview.turns.slice(-MAX_TURNS);
659
- draft.interview.usage = addUsage(d, usage);
660
- return draft;
661
- });
662
- }
663
- /** Count what a turn that produced no reply cost. */
664
- addUsage(id, usage, now = /* @__PURE__ */ new Date()) {
665
- return this.change(id, now, (d) => ({
666
- ...d,
667
- interview: { ...d.interview, usage: addUsage(d, usage) }
668
- }));
669
- }
670
- /**
671
- * Leave a comment on a section of the spec, for the agent to address. The
672
- * oldest resolved comments make room for it; null when too many are open.
673
- */
674
- addComment(id, c, now = /* @__PURE__ */ new Date()) {
675
- const text = typeof c.text === "string" ? c.text.trim().slice(0, 4e3) : "";
676
- if (!isSectionId(c.section) || !text) return Promise.resolve(null);
677
- const comment = {
678
- id: `c-${token()}`,
679
- section: c.section,
680
- quote: typeof c.quote === "string" ? c.quote.trim().slice(0, 2e3) : "",
681
- text,
682
- at: now.toISOString(),
683
- resolvedAt: null,
684
- reply: ""
685
- };
686
- return this.change(id, now, (d) => {
687
- if (openComments(d).length >= MAX_COMMENTS) return null;
688
- let drop = d.comments.length + 1 - MAX_COMMENTS;
689
- const kept = d.comments.filter((c2) => !(drop > 0 && c2.resolvedAt && drop-- > 0));
690
- return { ...d, comments: [...kept, comment] };
691
- });
692
- }
693
- /** Take a comment back. */
694
- removeComment(id, commentId, now = /* @__PURE__ */ new Date()) {
695
- if (!COMMENT_ID.test(commentId)) return Promise.resolve(null);
696
- return this.change(
697
- id,
698
- now,
699
- (d) => d.comments.some((c) => c.id === commentId) ? { ...d, comments: d.comments.filter((c) => c.id !== commentId) } : null
700
- );
701
- }
702
- /**
703
- * Write the whole spec beside the draft as `spec.md`, for a spec too long
704
- * to send as one message; returns the file's path.
705
- */
706
- async writeAttachment(id, markdown) {
707
- if (!SPEC_ID.test(id) || !await this.get(id)) return null;
708
- const file = path.join(this.imageDir(id), "spec.md");
709
- await mkdir(this.imageDir(id), { recursive: true });
710
- const tmp = `${file}.${token()}.tmp`;
711
- await writeFile(tmp, markdown);
712
- await rename(tmp, file);
713
- return file;
714
- }
715
- remove(id) {
716
- return this.serial(id, async () => {
717
- if (!SPEC_ID.test(id) || !await this.get(id)) return false;
718
- await rm(this.file(id), { force: true });
719
- await rm(this.imageDir(id), { recursive: true, force: true });
720
- return true;
721
- });
722
- }
723
- /** Store a picture for a draft and list it on the draft. */
724
- addImage(id, type, bytes, caption, now = /* @__PURE__ */ new Date()) {
725
- return this.serial(id, async () => {
726
- const ext = SPEC_IMAGE_TYPES[type];
727
- const d = await this.get(id);
728
- if (!ext || !d) return null;
729
- const name = `img-${token()}.${ext}`;
730
- await mkdir(this.imageDir(id), { recursive: true });
731
- await writeFile(path.join(this.imageDir(id), name), bytes);
732
- const next = {
733
- ...d,
734
- updatedAt: now.toISOString(),
735
- images: [...d.images, { name, caption: caption.slice(0, 500) }]
736
- };
737
- await this.write(next);
738
- return next;
739
- });
740
- }
741
- removeImage(id, name, now = /* @__PURE__ */ new Date()) {
742
- return this.serial(id, async () => {
743
- const d = await this.get(id);
744
- if (!d || !IMAGE_NAME.test(name)) return null;
745
- await rm(path.join(this.imageDir(id), name), { force: true });
746
- const next = {
747
- ...d,
748
- updatedAt: now.toISOString(),
749
- images: d.images.filter((i) => i.name !== name)
750
- };
751
- await this.write(next);
752
- return next;
753
- });
754
- }
755
- /** A picture the draft lists, with its content type; null for anything else. */
756
- async readImage(id, name) {
757
- if (!SPEC_ID.test(id) || !IMAGE_NAME.test(name)) return null;
758
- const d = await this.get(id);
759
- if (!d?.images.some((i) => i.name === name)) return null;
760
- try {
761
- const bytes = await readFile(path.join(this.imageDir(id), name));
762
- return {
763
- bytes,
764
- type: CONTENT_TYPE[name.split(".").pop() ?? ""] ?? "application/octet-stream"
765
- };
766
- } catch {
767
- return null;
768
- }
769
- }
770
- async write(d) {
771
- await mkdir(this.dir, { recursive: true });
772
- const file = this.file(d.id);
773
- const tmp = `${file}.${token()}.tmp`;
774
- await writeFile(tmp, JSON.stringify(d, null, 2));
775
- await rename(tmp, file);
776
- }
777
- }
778
- let cached = null;
779
- let interviewer = null;
780
- async function specStore(env = process.env) {
781
- const stateDir = defaultStateDir(env);
782
- const runtime = await getRuntime();
783
- if (runtime.configured && isInside(stateDir, runtime.install.homeDir)) {
784
- return {
785
- ok: false,
786
- reason: `The Wheelhouse state directory ${stateDir} is inside the Firstmate home, so specs cannot be saved; choose one outside it with --state-dir.`
787
- };
788
- }
789
- const dir = path.join(stateDir, "specs");
790
- if (cached?.dir !== dir) cached = new SpecStore(dir);
791
- return { ok: true, store: cached };
792
- }
793
- async function specStoreOrResponse() {
794
- const s = await specStore();
795
- return s.ok ? s.store : json({ message: s.reason }, { status: 503, headers: NO_STORE });
796
- }
797
- const notFound = () => json({ message: "That spec no longer exists." }, { status: 404, headers: NO_STORE });
798
- function specInterviewer(store) {
799
- if (interviewer?.store !== store) {
800
- interviewer = new Interviewer(store, {
801
- settings: interviewerSettings(),
802
- projectPath: async (name) => {
803
- const want = name.toLowerCase();
804
- const fleet = await currentFleet();
805
- const p = fleet.projects.find(
806
- (x) => x.name.toLowerCase() === want || x.id.toLowerCase() === want
807
- );
808
- return p?.path ?? null;
809
- }
810
- });
811
- }
812
- return interviewer;
813
- }
814
-
815
- export { SPEC_IMAGE_TYPES as S, specInterviewer as a, specStoreOrResponse as b, SPEC_IMAGE_MAX_BYTES as c, notFound as n, openComments as o, specStore as s };
816
- //# sourceMappingURL=access.js-XFAczbHS.js.map