@maycombhq/atticus 2.0.0-beta.25 → 2.0.0-beta.26

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 (266) hide show
  1. package/dist/bin.js +3 -3
  2. package/dist/{chunk-HHZEXF7V.js → chunk-2FTHLB2H.js} +4 -4
  3. package/dist/{chunk-7UYRN4ON.js → chunk-2GT47PWU.js} +2 -2
  4. package/dist/{chunk-YRKAJ42V.js → chunk-2HDNOUJU.js} +31 -12
  5. package/dist/{chunk-C5LX54QK.js → chunk-2IO6XH37.js} +9 -9
  6. package/dist/{chunk-KW4DIXUL.js → chunk-2JT4QV3Q.js} +2 -2
  7. package/dist/{chunk-QSKY7FE3.js → chunk-2SCZZQNQ.js} +6 -6
  8. package/dist/{chunk-DAHKLVHU.js → chunk-2XIIUXGX.js} +12 -12
  9. package/dist/chunk-3FFIDQQB.js +42 -0
  10. package/dist/{chunk-HHZ2ZKUD.js → chunk-3GEAUW62.js} +12 -12
  11. package/dist/{chunk-5UJ7C7IH.js → chunk-3KIMLBGZ.js} +4 -4
  12. package/dist/{chunk-3WO7ASU7.js → chunk-3KP7OOJ4.js} +8 -8
  13. package/dist/{chunk-GIOOA2ZO.js → chunk-43OWNS5N.js} +3 -3
  14. package/dist/{chunk-SRLUADSY.js → chunk-4DHYXODN.js} +3 -3
  15. package/dist/{chunk-FJS2FZFZ.js → chunk-4N5W7LYW.js} +19 -19
  16. package/dist/{chunk-OEUTV6EL.js → chunk-4NWE2KY3.js} +11 -11
  17. package/dist/{chunk-EM7F6XEU.js → chunk-5A4RHEEL.js} +1 -1
  18. package/dist/{chunk-4SS5ZK47.js → chunk-5JGRF53S.js} +3 -3
  19. package/dist/{chunk-NPZ4KXIV.js → chunk-5UIGGXA5.js} +16 -16
  20. package/dist/{chunk-VAZYNF6I.js → chunk-63572EFC.js} +12 -12
  21. package/dist/{chunk-IKRM64KR.js → chunk-64LSDT3D.js} +10 -10
  22. package/dist/{chunk-KFDOL2Y4.js → chunk-6EMJ4XFC.js} +16 -16
  23. package/dist/{chunk-BEDZNT62.js → chunk-6P67IUET.js} +8 -8
  24. package/dist/{chunk-E7PR4WMM.js → chunk-6SIGGA37.js} +21 -21
  25. package/dist/{chunk-OMSH46JK.js → chunk-6TZ4YRGJ.js} +4 -4
  26. package/dist/{chunk-U7YZ3IRI.js → chunk-6U65YB54.js} +2 -2
  27. package/dist/{chunk-GLISHJ4G.js → chunk-6ZDAEUKB.js} +1 -1
  28. package/dist/{chunk-7FUQAT2R.js → chunk-723OQZ3N.js} +4 -4
  29. package/dist/{chunk-ELNIQYLR.js → chunk-76AHTJVY.js} +12 -12
  30. package/dist/{chunk-I2M7MXSV.js → chunk-7AEB74KW.js} +5 -5
  31. package/dist/{chunk-XUCHGEF5.js → chunk-7IWMRZRI.js} +19 -19
  32. package/dist/{chunk-7E3G5NCH.js → chunk-7JZONWAA.js} +6 -6
  33. package/dist/{chunk-CQRFCWQV.js → chunk-7NVLGPER.js} +21 -21
  34. package/dist/{chunk-NMBHFSJQ.js → chunk-7ZBYRMWK.js} +21 -21
  35. package/dist/{chunk-EXGXCVWC.js → chunk-A6LGX56J.js} +22 -22
  36. package/dist/{chunk-K77ILFUQ.js → chunk-ACY3U2RD.js} +4 -4
  37. package/dist/chunk-AHACUPGL.js +46 -0
  38. package/dist/{chunk-P4QTTCVK.js → chunk-ANFBBJEV.js} +17 -17
  39. package/dist/{chunk-DMQJDHXG.js → chunk-B3JHERXM.js} +2 -2
  40. package/dist/{chunk-OOU4N2JQ.js → chunk-B7KGNEFI.js} +20 -20
  41. package/dist/{chunk-6WYOJCB4.js → chunk-BABRMZET.js} +3 -3
  42. package/dist/{chunk-TIOYZDRB.js → chunk-BD7HBZLP.js} +5 -5
  43. package/dist/{chunk-SBNBVUOF.js → chunk-BEEHCL5O.js} +32 -32
  44. package/dist/{chunk-SD3PGZSR.js → chunk-BGOAJFPB.js} +1 -1
  45. package/dist/{chunk-DYVUNT4O.js → chunk-BIAQ6NQS.js} +6 -6
  46. package/dist/{chunk-RSA5JJMN.js → chunk-BIKMME4S.js} +24 -24
  47. package/dist/{chunk-KGT5RIGE.js → chunk-BIWNRS5I.js} +16 -14
  48. package/dist/{chunk-7F4GZ7U2.js → chunk-BSZII65X.js} +1 -1
  49. package/dist/{chunk-LNGFTPU7.js → chunk-BV2BZIUF.js} +17 -17
  50. package/dist/{chunk-DCPI3ETH.js → chunk-C3TBDX7Y.js} +21 -21
  51. package/dist/{chunk-M7XNX5IC.js → chunk-CFK6CFXM.js} +8 -8
  52. package/dist/{chunk-T5QYYB5L.js → chunk-CG6MG7SE.js} +10 -10
  53. package/dist/{chunk-5R3FRI6H.js → chunk-CNEOKSTO.js} +25 -25
  54. package/dist/{chunk-3NA2VE45.js → chunk-CNT6T2JM.js} +12 -12
  55. package/dist/{chunk-K3OIBTCV.js → chunk-CPE7HLIK.js} +14 -14
  56. package/dist/{chunk-IWQEZFVV.js → chunk-CSHJZFOE.js} +13 -13
  57. package/dist/{chunk-GAVEIYKH.js → chunk-CUTMM4NY.js} +14 -14
  58. package/dist/{chunk-TVFADTAT.js → chunk-CWLXVRFH.js} +4 -4
  59. package/dist/{chunk-23QHP4JJ.js → chunk-D4TW3PUO.js} +3 -3
  60. package/dist/{chunk-A3J75BO2.js → chunk-D5H3RZNE.js} +12 -12
  61. package/dist/{chunk-K373N5U6.js → chunk-DARX3ATP.js} +10 -10
  62. package/dist/{chunk-BIQNPWGX.js → chunk-DASVVML7.js} +4 -4
  63. package/dist/{chunk-KN4UQJ7R.js → chunk-DB3NWAU3.js} +3 -3
  64. package/dist/{chunk-LOJGNSPA.js → chunk-DB6TDJ4T.js} +18 -18
  65. package/dist/{chunk-LPXH2DA4.js → chunk-DG7KYZAL.js} +16 -16
  66. package/dist/{chunk-DJ4C5ELF.js → chunk-DHQXCP2X.js} +1 -1
  67. package/dist/{chunk-HV3KPEFH.js → chunk-DJBXXYYA.js} +10 -10
  68. package/dist/{chunk-QE444DZ2.js → chunk-DOU52XFZ.js} +17 -17
  69. package/dist/{chunk-MN2XDLDM.js → chunk-DPH4BS3F.js} +9 -9
  70. package/dist/{chunk-JCKKAELC.js → chunk-DS5M2J2H.js} +12 -12
  71. package/dist/{chunk-UKMA5JFE.js → chunk-DWD6BKHG.js} +23 -23
  72. package/dist/{chunk-ROVOAF2O.js → chunk-DXBXZNKV.js} +9 -9
  73. package/dist/{chunk-XXJSGCDO.js → chunk-DXLWZ3BJ.js} +8 -8
  74. package/dist/{chunk-BS52P2CM.js → chunk-E5NHFHGC.js} +4 -4
  75. package/dist/{chunk-UCQB6NKS.js → chunk-EECFUQP3.js} +109 -15
  76. package/dist/{chunk-CVWKS6GO.js → chunk-EEVSFGIU.js} +19 -19
  77. package/dist/{chunk-WGOQZ4PQ.js → chunk-ELR7DEQM.js} +8 -8
  78. package/dist/{chunk-ONB7M2AF.js → chunk-EN3N6LNU.js} +25 -25
  79. package/dist/{chunk-UI7ID4HG.js → chunk-EQMNMG6X.js} +10 -10
  80. package/dist/{chunk-YEGGQG5E.js → chunk-ET7SPOBA.js} +5 -5
  81. package/dist/{chunk-AGAFNUYZ.js → chunk-EUTZTJIO.js} +10 -10
  82. package/dist/{chunk-PYVFLITV.js → chunk-EVKDWJ5Y.js} +4 -4
  83. package/dist/{chunk-RX56MZLX.js → chunk-EY3OVHNC.js} +19 -19
  84. package/dist/{chunk-MJAIBPI5.js → chunk-F4EGHECF.js} +3 -3
  85. package/dist/{chunk-CB6H7MH2.js → chunk-F6GRBF5L.js} +20 -20
  86. package/dist/{chunk-IP6TSICI.js → chunk-FIZ5LYL2.js} +12 -12
  87. package/dist/{chunk-N3OEBQTA.js → chunk-FOOU5OJE.js} +3 -3
  88. package/dist/{chunk-GPOL5H3B.js → chunk-FWQDH5NK.js} +23 -23
  89. package/dist/{chunk-GD6FXN6R.js → chunk-FYCN2Y5P.js} +14 -14
  90. package/dist/{chunk-IW3QMW3X.js → chunk-GAJBMPWC.js} +7 -7
  91. package/dist/{chunk-MWOPED6I.js → chunk-GFFTVQ7R.js} +5 -5
  92. package/dist/{chunk-D7QIZLWB.js → chunk-GHCFWIUW.js} +18 -18
  93. package/dist/{chunk-MELS6T5J.js → chunk-GHST3KAB.js} +3 -3
  94. package/dist/{chunk-7EAH2MFY.js → chunk-GJSLO2E2.js} +3 -3
  95. package/dist/{chunk-YGNQUFVZ.js → chunk-GNFZ227W.js} +3 -3
  96. package/dist/{chunk-HD72AL3L.js → chunk-GSIJWDXH.js} +18 -18
  97. package/dist/{chunk-5RKN5QIX.js → chunk-GXJ2PSDW.js} +7 -7
  98. package/dist/{chunk-MM5OAVSW.js → chunk-H26T2LQL.js} +25 -25
  99. package/dist/{chunk-MJMEF7SD.js → chunk-H5BIVULF.js} +6 -6
  100. package/dist/{chunk-CPFAWYVC.js → chunk-H7CSCA73.js} +4 -4
  101. package/dist/{chunk-K4C2DWOZ.js → chunk-HCC5547C.js} +11 -11
  102. package/dist/{chunk-2RABF6RT.js → chunk-HLDUWEO7.js} +14 -14
  103. package/dist/{chunk-EXCXNDTQ.js → chunk-HNNMT5L2.js} +1 -1
  104. package/dist/{chunk-M6HI36T3.js → chunk-HQMLY2R6.js} +2 -2
  105. package/dist/{chunk-JJEPU4VS.js → chunk-HSJKYDHI.js} +4 -4
  106. package/dist/{chunk-LP5QGTCR.js → chunk-HV6PXXK7.js} +3 -3
  107. package/dist/{chunk-4GWQVT2C.js → chunk-HVOE7ZW2.js} +14 -14
  108. package/dist/{chunk-Q6UYUCNS.js → chunk-HVWPN2RY.js} +12 -12
  109. package/dist/{chunk-2ULVUSIP.js → chunk-HWPX3T55.js} +14 -14
  110. package/dist/{chunk-2VN4TLGI.js → chunk-I2EWY3MG.js} +2 -2
  111. package/dist/{chunk-VBJHIRKV.js → chunk-I72PEROE.js} +3 -3
  112. package/dist/{chunk-H7GAPNGQ.js → chunk-IBIIKUC7.js} +3 -3
  113. package/dist/{chunk-LKRMVWXB.js → chunk-IDRCBMJF.js} +27 -27
  114. package/dist/{chunk-LGE6H4UP.js → chunk-IEIHVMM6.js} +5 -5
  115. package/dist/{chunk-H75SPCAW.js → chunk-IERXBWQU.js} +15 -15
  116. package/dist/{chunk-77REYYY5.js → chunk-IFQJ3YQE.js} +3 -3
  117. package/dist/{chunk-7QZDGM5V.js → chunk-IH6BYFMH.js} +4 -4
  118. package/dist/{chunk-RFQW7XT3.js → chunk-IJN5PSDU.js} +14 -14
  119. package/dist/{chunk-MM7YWUBB.js → chunk-IL7PVMUO.js} +6 -6
  120. package/dist/{chunk-N6SSI6XO.js → chunk-IP6ARMZU.js} +19 -19
  121. package/dist/{chunk-BPDS7KUR.js → chunk-ISCX25D7.js} +20 -20
  122. package/dist/{chunk-NB664KWQ.js → chunk-IYEET4VM.js} +22 -22
  123. package/dist/{chunk-YAUMNRCB.js → chunk-IZIGZ7KY.js} +4 -4
  124. package/dist/{chunk-3VC2XJ53.js → chunk-JJEXMHNZ.js} +4 -4
  125. package/dist/{chunk-IMTAHDME.js → chunk-JLTJAOO4.js} +5 -5
  126. package/dist/{chunk-EP7ZBZLT.js → chunk-K2NQTROJ.js} +4 -4
  127. package/dist/{chunk-Y3J365UC.js → chunk-K35VNKJH.js} +5 -5
  128. package/dist/{chunk-RL7PETU6.js → chunk-K3QKOVZN.js} +5 -5
  129. package/dist/{chunk-5267F4BS.js → chunk-KAWWXCPI.js} +2 -2
  130. package/dist/{chunk-W2W7YCFL.js → chunk-KFJMQUSK.js} +12 -12
  131. package/dist/{chunk-E2OP6JNF.js → chunk-KFZ5IXEZ.js} +23 -23
  132. package/dist/{chunk-OW53P52N.js → chunk-KJD4DLRZ.js} +17 -17
  133. package/dist/{chunk-UCKG6UE7.js → chunk-KL7UHAOR.js} +8 -8
  134. package/dist/{chunk-TKCNJJ2S.js → chunk-KS2IQYTZ.js} +8 -8
  135. package/dist/{chunk-MJOIMGS4.js → chunk-KUEG2Y7M.js} +5 -5
  136. package/dist/{chunk-SHWHRCMU.js → chunk-KZ4I5M2X.js} +6 -6
  137. package/dist/{chunk-A3AADMM2.js → chunk-KZH5YV6J.js} +5 -5
  138. package/dist/{chunk-XF5UMMQL.js → chunk-LBBI5P5G.js} +20 -20
  139. package/dist/{chunk-NMGFXT4S.js → chunk-LCRQPWTC.js} +14 -14
  140. package/dist/chunk-LH4WAJLC.js +45 -0
  141. package/dist/{chunk-JMOZ6K5A.js → chunk-LHN5UCXD.js} +2 -2
  142. package/dist/{chunk-U7F6E5M3.js → chunk-LTOBNBJ6.js} +22 -22
  143. package/dist/{chunk-5RDKQOY3.js → chunk-LY7DOYX2.js} +12 -12
  144. package/dist/chunk-M5IQUWJR.js +59 -0
  145. package/dist/{chunk-R6HJ4SDB.js → chunk-MCORC2LG.js} +4 -4
  146. package/dist/{chunk-G3ZFEHCX.js → chunk-MEMEO7YO.js} +88 -25
  147. package/dist/{chunk-QBK33722.js → chunk-MGNO4Q6V.js} +21 -21
  148. package/dist/{chunk-KJPKIU2R.js → chunk-MKUBDKE2.js} +22 -22
  149. package/dist/{chunk-7AKJ2XTW.js → chunk-MM7JSMLW.js} +12 -12
  150. package/dist/{chunk-7NLYSTEK.js → chunk-MQ6HP2TU.js} +5 -5
  151. package/dist/{chunk-MXPKXCGP.js → chunk-MTIRNHRJ.js} +1 -1
  152. package/dist/{chunk-CNF7D3A7.js → chunk-MY3LDBMR.js} +3 -3
  153. package/dist/chunk-MZ6GOFRF.js +55 -0
  154. package/dist/{chunk-ZJQ64T6M.js → chunk-MZXDSAKW.js} +8 -8
  155. package/dist/{chunk-EJGUEUXG.js → chunk-N2AW2DHF.js} +22 -22
  156. package/dist/{chunk-X7QLAUNS.js → chunk-N35Y5HZO.js} +22 -22
  157. package/dist/{chunk-BJDVI5W6.js → chunk-NCZS2BN2.js} +17 -17
  158. package/dist/{chunk-Y6KPWRZJ.js → chunk-NECDBPFP.js} +9 -9
  159. package/dist/{chunk-LMNCRSER.js → chunk-NHFMLMLN.js} +11 -11
  160. package/dist/{chunk-Z3KEX7ON.js → chunk-NMCPIYTF.js} +4 -4
  161. package/dist/{chunk-7HW2CMIN.js → chunk-NMURRF5F.js} +8 -8
  162. package/dist/{chunk-7X3WLAKP.js → chunk-NP3PG6OI.js} +31 -31
  163. package/dist/{chunk-CMUJSPP4.js → chunk-NQDVD2YR.js} +9 -9
  164. package/dist/{chunk-IFDCCCEN.js → chunk-NVVEVP5O.js} +4 -4
  165. package/dist/{chunk-DPZD7WVX.js → chunk-OH2OHNB5.js} +2 -2
  166. package/dist/{chunk-QFOJ3UPU.js → chunk-OI32KTDM.js} +12 -12
  167. package/dist/{chunk-UTYL4XVA.js → chunk-OXCHO2QS.js} +18 -18
  168. package/dist/{chunk-DBVQEPZB.js → chunk-P6DM2EFI.js} +5 -5
  169. package/dist/{chunk-UR6JGVX2.js → chunk-P6EJNPFF.js} +213 -177
  170. package/dist/{chunk-G5P7F6RQ.js → chunk-PBDIVTFL.js} +2 -2
  171. package/dist/{chunk-EPXYFJTY.js → chunk-PFWP624T.js} +2 -2
  172. package/dist/{chunk-SGTAQNOP.js → chunk-PGDVJWCI.js} +30 -30
  173. package/dist/{chunk-6576X5BJ.js → chunk-PLSCWC2V.js} +3 -3
  174. package/dist/chunk-PR6Z5L7W.js +67 -0
  175. package/dist/{chunk-7YFUNWFM.js → chunk-PXDAGXQN.js} +8 -8
  176. package/dist/{chunk-U4HZ5CXL.js → chunk-PZFZPHCT.js} +6 -6
  177. package/dist/{chunk-XVQQ3BQS.js → chunk-Q3RKXK5Z.js} +23 -23
  178. package/dist/{chunk-PGKCRK77.js → chunk-QAFQLILX.js} +5 -5
  179. package/dist/{chunk-62FMA437.js → chunk-QQAWI5LD.js} +12 -12
  180. package/dist/{chunk-ELNLHU7Y.js → chunk-QXCGRQGO.js} +4 -4
  181. package/dist/{chunk-MZTU5L6S.js → chunk-R2FUFBHW.js} +2 -2
  182. package/dist/{chunk-WA644MUQ.js → chunk-RBO4A7TC.js} +10 -10
  183. package/dist/{chunk-EUCATH2U.js → chunk-RCLBIJRN.js} +4 -4
  184. package/dist/{chunk-CGVRLQAY.js → chunk-RK5P2DWD.js} +3 -3
  185. package/dist/{chunk-4WIVTPGE.js → chunk-RO6BE7ZS.js} +4 -4
  186. package/dist/{chunk-2Y5FJQSF.js → chunk-RQM5Y3HJ.js} +1 -1
  187. package/dist/{chunk-AYWJMHSX.js → chunk-RTCZKKG7.js} +2 -2
  188. package/dist/{chunk-SEBBJQWK.js → chunk-SAPX3PVK.js} +7 -7
  189. package/dist/{chunk-IDTVBZQI.js → chunk-SDHGFMES.js} +3 -3
  190. package/dist/{chunk-F4WKGX7K.js → chunk-SRB54QGX.js} +15 -15
  191. package/dist/{chunk-BMMTWRWE.js → chunk-STBJ6SVJ.js} +20 -20
  192. package/dist/{chunk-DLNQ3HUM.js → chunk-SZDOBIWE.js} +5 -5
  193. package/dist/{chunk-5GLGLWAJ.js → chunk-TLBPTUFU.js} +16 -16
  194. package/dist/{chunk-Z4N7BKLN.js → chunk-TPKJD42W.js} +5 -5
  195. package/dist/{chunk-GVOQJPKA.js → chunk-TQG2DDWH.js} +18 -18
  196. package/dist/{chunk-XZQBFF65.js → chunk-TYN5SG5H.js} +118 -118
  197. package/dist/{chunk-5P4PNGPL.js → chunk-U3JXMY56.js} +21 -21
  198. package/dist/chunk-U3RGBYXE.js +62 -0
  199. package/dist/{chunk-HR34F2AJ.js → chunk-UAYU6K24.js} +12 -12
  200. package/dist/{chunk-SXF66YNZ.js → chunk-UBEFT3MQ.js} +4 -4
  201. package/dist/{chunk-4U3JLIRC.js → chunk-UFIQ5FWY.js} +1 -1
  202. package/dist/{chunk-S7UQFI4B.js → chunk-UIYPX2BA.js} +22 -22
  203. package/dist/{chunk-TAIYQDIV.js → chunk-UJ5ZJS4B.js} +17 -17
  204. package/dist/chunk-URZKIL37.js +42 -0
  205. package/dist/{chunk-XM3JE4QY.js → chunk-UWBPC5XH.js} +5 -5
  206. package/dist/{chunk-WDJGJ3HV.js → chunk-UXVKFOMC.js} +2 -2
  207. package/dist/{chunk-YGS2YVF2.js → chunk-UZBLVNW6.js} +13 -13
  208. package/dist/{chunk-UJ535VWR.js → chunk-V3M4VFUB.js} +4 -4
  209. package/dist/{chunk-5WZV37WS.js → chunk-V5FT3MZG.js} +5 -5
  210. package/dist/{chunk-JKEUPSCE.js → chunk-V5ZKGBYL.js} +3 -3
  211. package/dist/{chunk-QEP4HTJE.js → chunk-VCXFMXMX.js} +4 -4
  212. package/dist/{chunk-7U6PBBXG.js → chunk-VGGSHDQU.js} +7 -7
  213. package/dist/{chunk-GDGE7ZHC.js → chunk-VIQHZA53.js} +5 -5
  214. package/dist/{chunk-XY6FVBBV.js → chunk-VJO7M34N.js} +1 -1
  215. package/dist/{chunk-LQD3R6NZ.js → chunk-VPQUFIE7.js} +7 -7
  216. package/dist/{chunk-5K6ZKHZR.js → chunk-VTR4AC2U.js} +2 -2
  217. package/dist/{chunk-XC5ZDFW7.js → chunk-VUSYN4R4.js} +5 -5
  218. package/dist/{chunk-USH4VU5D.js → chunk-W4SMKUAK.js} +1 -1
  219. package/dist/{chunk-BDKYHCGI.js → chunk-W7HNZDHB.js} +31 -31
  220. package/dist/{chunk-JQGWP3SC.js → chunk-WH3ZFLXT.js} +5 -5
  221. package/dist/{chunk-5OVSDV77.js → chunk-WLA2JZ2K.js} +4 -4
  222. package/dist/{chunk-FNP4M4VL.js → chunk-WM4EMP7T.js} +37 -37
  223. package/dist/{chunk-EAGSM3XY.js → chunk-WT6EXYEY.js} +8 -8
  224. package/dist/{chunk-P56N3NPT.js → chunk-WYO4L4NU.js} +3 -3
  225. package/dist/{chunk-XP5DF5MC.js → chunk-XDLMQL5A.js} +11 -10
  226. package/dist/{chunk-JXLUHMTC.js → chunk-XEWFVHOT.js} +19 -19
  227. package/dist/{chunk-J65TN6QU.js → chunk-XI3GPYP4.js} +4 -4
  228. package/dist/{chunk-F36DIKJ3.js → chunk-XIGVTH24.js} +10 -10
  229. package/dist/{chunk-WS7KBKP4.js → chunk-XIJBQM45.js} +2 -2
  230. package/dist/{chunk-NL6GIEJU.js → chunk-XT3ZW7C7.js} +14 -14
  231. package/dist/{chunk-JWLABUXL.js → chunk-YEHSJY6B.js} +7 -7
  232. package/dist/{chunk-ZD64ZR64.js → chunk-YIOYKA4V.js} +4 -4
  233. package/dist/{chunk-HU7VXMFV.js → chunk-YJBD5NDV.js} +5 -5
  234. package/dist/{chunk-4PW5SRKJ.js → chunk-YLXPJWNO.js} +13 -13
  235. package/dist/{chunk-D45K3XKK.js → chunk-YWQZ7CCW.js} +12 -12
  236. package/dist/{chunk-F56DNMDD.js → chunk-YXKCE5BA.js} +3 -3
  237. package/dist/{chunk-334N6EI2.js → chunk-YYV276DM.js} +17 -17
  238. package/dist/{chunk-GAU2IFIC.js → chunk-YYZWSVIS.js} +15 -15
  239. package/dist/{chunk-PCZ4C2V7.js → chunk-Z33UNTHI.js} +5 -5
  240. package/dist/{chunk-Q52KWTG5.js → chunk-ZA2PWNR3.js} +12 -12
  241. package/dist/{chunk-KY3BUZYI.js → chunk-ZAMSF2DF.js} +22 -22
  242. package/dist/{chunk-QQD25YNF.js → chunk-ZDA72732.js} +2 -2
  243. package/dist/{chunk-UVKJVTKX.js → chunk-ZFEOIYK5.js} +3 -3
  244. package/dist/{chunk-GX67TNFA.js → chunk-ZFLBWL2G.js} +3 -3
  245. package/dist/{chunk-O6DJMDBR.js → chunk-ZLBUFK7L.js} +4 -4
  246. package/dist/{chunk-NQLTWGF4.js → chunk-ZNYSBQIA.js} +4 -4
  247. package/dist/{chunk-V7T6URII.js → chunk-ZQGFZJH5.js} +3 -3
  248. package/dist/{chunk-VOBG7BLB.js → chunk-ZWMHL346.js} +15 -15
  249. package/dist/{chunk-B2U4AOZ5.js → chunk-ZYLGEWTC.js} +37 -37
  250. package/dist/files.json +551 -551
  251. package/dist/packages/sdk/npm/index.js +73 -2
  252. package/dist/packages/ui/dist/assets/{elk-api-ts8TigYQ.js → elk-api-BdXSPeBO.js} +2 -2
  253. package/dist/packages/ui/dist/assets/index-DRSUhpFi.css +1 -0
  254. package/dist/packages/ui/dist/assets/index-RZe5iotJ.js +63 -0
  255. package/dist/packages/ui/dist/index.html +2 -2
  256. package/package.json +5 -5
  257. package/dist/chunk-5CPZIWIN.js +0 -38
  258. package/dist/chunk-7YSMZEO3.js +0 -55
  259. package/dist/chunk-AENMOZMM.js +0 -42
  260. package/dist/chunk-D2CGJ7RR.js +0 -46
  261. package/dist/chunk-DM3H4V2G.js +0 -62
  262. package/dist/chunk-ELKTDXV3.js +0 -67
  263. package/dist/chunk-MLUHBVCI.js +0 -45
  264. package/dist/chunk-S7I7SLZN.js +0 -59
  265. package/dist/packages/ui/dist/assets/index-CIfmX7DJ.css +0 -1
  266. package/dist/packages/ui/dist/assets/index-DNtpSfZS.js +0 -63
@@ -10,17 +10,17 @@ import {
10
10
  precisionOf,
11
11
  prepareAudit,
12
12
  writeAudit
13
- } from "./chunk-SHWHRCMU.js";
13
+ } from "./chunk-KZ4I5M2X.js";
14
14
  import {
15
15
  uiCiteRoutes
16
- } from "./chunk-KN4UQJ7R.js";
17
- import "./chunk-5OVSDV77.js";
16
+ } from "./chunk-DB3NWAU3.js";
17
+ import "./chunk-WLA2JZ2K.js";
18
18
  import {
19
19
  uiComponentTypeRoutes
20
- } from "./chunk-V7T6URII.js";
20
+ } from "./chunk-ZQGFZJH5.js";
21
21
  import {
22
22
  conformanceCommand
23
- } from "./chunk-5UJ7C7IH.js";
23
+ } from "./chunk-3KIMLBGZ.js";
24
24
  import {
25
25
  outcomeList,
26
26
  outcomeRecord,
@@ -29,17 +29,17 @@ import {
29
29
  releaseNotesCommand,
30
30
  releasePlanCommand,
31
31
  releaseSecurityCommand
32
- } from "./chunk-IDTVBZQI.js";
32
+ } from "./chunk-SDHGFMES.js";
33
33
  import {
34
34
  historyEntry,
35
35
  listHistory
36
- } from "./chunk-YGNQUFVZ.js";
36
+ } from "./chunk-GNFZ227W.js";
37
37
  import {
38
38
  FORCE_STEPS,
39
39
  appLines,
40
40
  hasKeptResume,
41
41
  mapRepoOf
42
- } from "./chunk-K77ILFUQ.js";
42
+ } from "./chunk-ACY3U2RD.js";
43
43
  import {
44
44
  allRuns,
45
45
  answerOf,
@@ -47,7 +47,7 @@ import {
47
47
  listRuns,
48
48
  partStates,
49
49
  runTranscript
50
- } from "./chunk-MZTU5L6S.js";
50
+ } from "./chunk-R2FUFBHW.js";
51
51
  import {
52
52
  isHandoffStep
53
53
  } from "./chunk-4Q3NN7VF.js";
@@ -56,11 +56,11 @@ import {
56
56
  todoDone,
57
57
  todoRun,
58
58
  todoShow
59
- } from "./chunk-GX67TNFA.js";
59
+ } from "./chunk-ZFLBWL2G.js";
60
60
  import {
61
61
  inputsSha256,
62
62
  loadExecutors
63
- } from "./chunk-AYWJMHSX.js";
63
+ } from "./chunk-RTCZKKG7.js";
64
64
  import {
65
65
  isSandbox,
66
66
  learnCheck,
@@ -68,23 +68,23 @@ import {
68
68
  lessonsFor,
69
69
  readProgress,
70
70
  sandboxCreate
71
- } from "./chunk-UCKG6UE7.js";
71
+ } from "./chunk-KL7UHAOR.js";
72
72
  import {
73
73
  defencesScan,
74
74
  evalRun
75
- } from "./chunk-ZD64ZR64.js";
75
+ } from "./chunk-YIOYKA4V.js";
76
76
  import {
77
77
  listReports,
78
78
  readQuality
79
- } from "./chunk-UI7ID4HG.js";
79
+ } from "./chunk-EQMNMG6X.js";
80
80
  import {
81
81
  estimateOf
82
- } from "./chunk-HU7VXMFV.js";
82
+ } from "./chunk-YJBD5NDV.js";
83
83
  import {
84
84
  changeMapBody,
85
85
  changeMapOf,
86
86
  targetFlowsOf
87
- } from "./chunk-LGE6H4UP.js";
87
+ } from "./chunk-IEIHVMM6.js";
88
88
  import {
89
89
  changeArchive,
90
90
  changeHandoff,
@@ -92,111 +92,111 @@ import {
92
92
  changeReleasePrs,
93
93
  changeSync,
94
94
  syncAfterManualStep
95
- } from "./chunk-UTYL4XVA.js";
95
+ } from "./chunk-OXCHO2QS.js";
96
96
  import {
97
97
  boxesOf,
98
98
  candidatesOf,
99
99
  uiLinkRoutes
100
- } from "./chunk-DAHKLVHU.js";
100
+ } from "./chunk-2XIIUXGX.js";
101
101
  import {
102
102
  matchDone,
103
103
  quotesOf,
104
104
  readMatch,
105
105
  runMatch
106
- } from "./chunk-CMUJSPP4.js";
107
- import "./chunk-3WO7ASU7.js";
106
+ } from "./chunk-NQDVD2YR.js";
107
+ import "./chunk-3KP7OOJ4.js";
108
108
  import {
109
109
  readServiceRequests
110
- } from "./chunk-HV3KPEFH.js";
110
+ } from "./chunk-DJBXXYYA.js";
111
111
  import {
112
112
  initiativeStatus,
113
113
  readView
114
- } from "./chunk-7E3G5NCH.js";
114
+ } from "./chunk-7JZONWAA.js";
115
115
  import {
116
116
  runDone,
117
117
  taskRun,
118
118
  taskRunNotWaiting
119
- } from "./chunk-M7XNX5IC.js";
119
+ } from "./chunk-CFK6CFXM.js";
120
120
  import {
121
121
  idFromUrl
122
- } from "./chunk-7NLYSTEK.js";
122
+ } from "./chunk-MQ6HP2TU.js";
123
123
  import {
124
124
  DecideError,
125
125
  correctDecision,
126
126
  decisionsView,
127
127
  undoBatch
128
- } from "./chunk-QFOJ3UPU.js";
129
- import "./chunk-K373N5U6.js";
128
+ } from "./chunk-OI32KTDM.js";
129
+ import "./chunk-DARX3ATP.js";
130
130
  import {
131
131
  copilotAcpAllowed
132
- } from "./chunk-ROVOAF2O.js";
133
- import "./chunk-QE444DZ2.js";
134
- import "./chunk-6WYOJCB4.js";
132
+ } from "./chunk-DXBXZNKV.js";
133
+ import "./chunk-DOU52XFZ.js";
134
+ import "./chunk-BABRMZET.js";
135
135
  import {
136
136
  readRepos
137
- } from "./chunk-JMOZ6K5A.js";
137
+ } from "./chunk-LHN5UCXD.js";
138
138
  import {
139
139
  filesUnder,
140
140
  memoByFiles,
141
141
  recheckNow,
142
142
  uiFactsRoutes
143
- } from "./chunk-WGOQZ4PQ.js";
143
+ } from "./chunk-ELR7DEQM.js";
144
144
  import {
145
145
  safeMessage,
146
146
  withFileLock
147
- } from "./chunk-7F4GZ7U2.js";
148
- import "./chunk-KGT5RIGE.js";
147
+ } from "./chunk-BSZII65X.js";
148
+ import "./chunk-BIWNRS5I.js";
149
149
  import {
150
150
  syncNextOf
151
151
  } from "./chunk-EHXDB3SA.js";
152
- import "./chunk-USH4VU5D.js";
153
- import "./chunk-XXJSGCDO.js";
154
- import "./chunk-CNF7D3A7.js";
152
+ import "./chunk-W4SMKUAK.js";
153
+ import "./chunk-DXLWZ3BJ.js";
154
+ import "./chunk-MY3LDBMR.js";
155
155
  import {
156
156
  digestCommand
157
- } from "./chunk-DYVUNT4O.js";
157
+ } from "./chunk-BIAQ6NQS.js";
158
158
  import {
159
159
  reconcileCommand
160
- } from "./chunk-SRLUADSY.js";
160
+ } from "./chunk-4DHYXODN.js";
161
161
  import {
162
162
  sourcesAdd,
163
163
  sourcesSync
164
- } from "./chunk-7U6PBBXG.js";
164
+ } from "./chunk-VGGSHDQU.js";
165
165
  import {
166
166
  INPUTS_SOURCE_ID
167
- } from "./chunk-MJAIBPI5.js";
168
- import "./chunk-JJEPU4VS.js";
167
+ } from "./chunk-F4EGHECF.js";
168
+ import "./chunk-HSJKYDHI.js";
169
169
  import {
170
170
  uiOnboardingRoutes
171
- } from "./chunk-EP7ZBZLT.js";
171
+ } from "./chunk-K2NQTROJ.js";
172
172
  import "./chunk-X7XVMYIL.js";
173
- import "./chunk-HHZEXF7V.js";
173
+ import "./chunk-2FTHLB2H.js";
174
174
  import {
175
175
  answersMayHaveChanged,
176
176
  checkoutsStamp,
177
177
  keepAnswersWhileWatched,
178
178
  keptAnswer,
179
179
  uiTrustRoutes
180
- } from "./chunk-AGAFNUYZ.js";
180
+ } from "./chunk-EUTZTJIO.js";
181
181
  import {
182
182
  contractCheckOf,
183
183
  estateJoinOnFile,
184
184
  stampOf
185
- } from "./chunk-WA644MUQ.js";
186
- import "./chunk-YEGGQG5E.js";
187
- import "./chunk-TIOYZDRB.js";
185
+ } from "./chunk-RBO4A7TC.js";
186
+ import "./chunk-ET7SPOBA.js";
187
+ import "./chunk-BD7HBZLP.js";
188
188
  import {
189
189
  MACHINE_CHECKING,
190
190
  baselineCommand,
191
191
  setupSteps
192
- } from "./chunk-XC5ZDFW7.js";
192
+ } from "./chunk-VUSYN4R4.js";
193
193
  import {
194
194
  doctorChecks
195
- } from "./chunk-F36DIKJ3.js";
195
+ } from "./chunk-XIGVTH24.js";
196
196
  import {
197
197
  readMe,
198
198
  writeMe
199
- } from "./chunk-XY6FVBBV.js";
199
+ } from "./chunk-VJO7M34N.js";
200
200
  import {
201
201
  buildTask,
202
202
  cancelTaskRunWait,
@@ -210,69 +210,70 @@ import {
210
210
  settleTaskPr,
211
211
  stopAllBuilds,
212
212
  taskRunOfRun
213
- } from "./chunk-5RDKQOY3.js";
214
- import "./chunk-5WZV37WS.js";
215
- import "./chunk-DBVQEPZB.js";
213
+ } from "./chunk-LY7DOYX2.js";
214
+ import "./chunk-V5FT3MZG.js";
215
+ import "./chunk-P6DM2EFI.js";
216
216
  import {
217
217
  checkoutOf
218
- } from "./chunk-XP5DF5MC.js";
219
- import "./chunk-G5P7F6RQ.js";
218
+ } from "./chunk-XDLMQL5A.js";
219
+ import "./chunk-PBDIVTFL.js";
220
220
  import {
221
221
  intakeContext
222
- } from "./chunk-J65TN6QU.js";
222
+ } from "./chunk-XI3GPYP4.js";
223
223
  import {
224
- scanCommand
225
- } from "./chunk-UCQB6NKS.js";
226
- import "./chunk-BS52P2CM.js";
224
+ scanCommand,
225
+ scanSummaryLines
226
+ } from "./chunk-EECFUQP3.js";
227
+ import "./chunk-E5NHFHGC.js";
227
228
  import {
228
229
  catalogRecords,
229
230
  openChanges,
230
231
  systemGuide
231
- } from "./chunk-N3OEBQTA.js";
232
+ } from "./chunk-FOOU5OJE.js";
232
233
  import {
233
234
  isMetarepo
234
235
  } from "./chunk-3G4YI4ZU.js";
235
- import "./chunk-EAGSM3XY.js";
236
- import "./chunk-C5LX54QK.js";
236
+ import "./chunk-WT6EXYEY.js";
237
+ import "./chunk-2IO6XH37.js";
237
238
  import {
238
239
  workspaceOpen,
239
240
  workspaceSync
240
- } from "./chunk-2ULVUSIP.js";
241
- import "./chunk-EXCXNDTQ.js";
242
- import "./chunk-I2M7MXSV.js";
241
+ } from "./chunk-HWPX3T55.js";
242
+ import "./chunk-HNNMT5L2.js";
243
+ import "./chunk-7AEB74KW.js";
243
244
  import {
244
245
  readChangeTasks,
245
246
  readStory,
246
247
  setTaskDone
247
- } from "./chunk-MN2XDLDM.js";
248
+ } from "./chunk-DPH4BS3F.js";
248
249
  import {
249
250
  ASSISTANT_FORMATS,
250
251
  readProbes,
251
252
  whatRunsWhere
252
- } from "./chunk-H7GAPNGQ.js";
253
+ } from "./chunk-IBIIKUC7.js";
253
254
  import {
254
255
  critic,
255
256
  criticStats,
256
257
  findingAction
257
- } from "./chunk-A3AADMM2.js";
258
- import "./chunk-MJMEF7SD.js";
258
+ } from "./chunk-KZH5YV6J.js";
259
+ import "./chunk-H5BIVULF.js";
259
260
  import {
260
261
  planStories,
261
262
  snowDraft,
262
263
  snowSubmit
263
- } from "./chunk-YAUMNRCB.js";
264
- import "./chunk-2Y5FJQSF.js";
264
+ } from "./chunk-IZIGZ7KY.js";
265
+ import "./chunk-RQM5Y3HJ.js";
265
266
  import {
266
267
  ciArchiveGate
267
- } from "./chunk-IMTAHDME.js";
268
+ } from "./chunk-JLTJAOO4.js";
268
269
  import {
269
270
  traceMatrix
270
- } from "./chunk-SEBBJQWK.js";
271
+ } from "./chunk-SAPX3PVK.js";
271
272
  import "./chunk-MUWDB4R4.js";
272
273
  import "./chunk-VOGCSYOI.js";
273
274
  import {
274
275
  archiveGate
275
- } from "./chunk-JWLABUXL.js";
276
+ } from "./chunk-YEHSJY6B.js";
276
277
  import {
277
278
  CORRECTIONS_FILE,
278
279
  FEATURE_FILE,
@@ -322,14 +323,14 @@ import {
322
323
  syncWorkItems,
323
324
  threadReplies,
324
325
  writeSketch
325
- } from "./chunk-IWQEZFVV.js";
326
+ } from "./chunk-CSHJZFOE.js";
326
327
  import {
327
328
  FeaturePlacement,
328
329
  STAGES,
329
330
  STAGE_PHASE,
330
331
  fieldNames,
331
332
  rerunOf
332
- } from "./chunk-EM7F6XEU.js";
333
+ } from "./chunk-5A4RHEEL.js";
333
334
  import {
334
335
  HttpError,
335
336
  badRequest,
@@ -339,7 +340,7 @@ import {
339
340
  requireConfirmation,
340
341
  startServer,
341
342
  strParam
342
- } from "./chunk-QSKY7FE3.js";
343
+ } from "./chunk-2SCZZQNQ.js";
343
344
  import {
344
345
  layerRules,
345
346
  loadConstitution,
@@ -352,7 +353,7 @@ import {
352
353
  readStoryIndex,
353
354
  reviewedGates,
354
355
  roundsOf
355
- } from "./chunk-GDGE7ZHC.js";
356
+ } from "./chunk-VIQHZA53.js";
356
357
  import {
357
358
  ChangeOwnersError,
358
359
  artifactFiles,
@@ -372,14 +373,14 @@ import {
372
373
  setChangeOwners,
373
374
  unmergedTaskBranches,
374
375
  unmergedTaskWords
375
- } from "./chunk-JQGWP3SC.js";
376
+ } from "./chunk-WH3ZFLXT.js";
376
377
  import "./chunk-UTZMF5CV.js";
377
378
  import {
378
379
  fileStepStore,
379
380
  manualAdapter,
380
381
  stepOfProvisional
381
- } from "./chunk-U7YZ3IRI.js";
382
- import "./chunk-DLNQ3HUM.js";
382
+ } from "./chunk-6U65YB54.js";
383
+ import "./chunk-SZDOBIWE.js";
383
384
  import {
384
385
  addressRefusal,
385
386
  asTheApp,
@@ -387,7 +388,7 @@ import {
387
388
  requireConfirmedModel,
388
389
  servingTheApp,
389
390
  whereKeyGoes
390
- } from "./chunk-MELS6T5J.js";
391
+ } from "./chunk-GHST3KAB.js";
391
392
  import "./chunk-KVVNAUIG.js";
392
393
  import {
393
394
  COMMON_SETTINGS,
@@ -395,7 +396,7 @@ import {
395
396
  defaultKeyStore,
396
397
  keyEnvFromEnvironment,
397
398
  looksLikeKey
398
- } from "./chunk-4SS5ZK47.js";
399
+ } from "./chunk-5JGRF53S.js";
399
400
  import {
400
401
  componentRenames,
401
402
  estateFacts,
@@ -407,14 +408,14 @@ import {
407
408
  outsideProfileSystems,
408
409
  readCatalog,
409
410
  targetPicker
410
- } from "./chunk-YRKAJ42V.js";
411
+ } from "./chunk-2HDNOUJU.js";
411
412
  import {
412
413
  NoSuchNode,
413
414
  buildEstate,
414
415
  focusView,
415
416
  nodeView,
416
417
  viewKey
417
- } from "./chunk-CGVRLQAY.js";
418
+ } from "./chunk-RK5P2DWD.js";
418
419
  import {
419
420
  OrgPackProposal,
420
421
  SNAPSHOT_FILE,
@@ -438,21 +439,21 @@ import {
438
439
  snapshotDates,
439
440
  snapshotSources,
440
441
  writeReview
441
- } from "./chunk-RL7PETU6.js";
442
+ } from "./chunk-K3QKOVZN.js";
442
443
  import {
443
444
  readServiceRequestExports,
444
445
  readVendorSpec,
445
446
  readWorkItemExports
446
- } from "./chunk-PGKCRK77.js";
447
- import "./chunk-M6HI36T3.js";
448
- import "./chunk-2VN4TLGI.js";
449
- import "./chunk-4U3JLIRC.js";
450
- import "./chunk-MXPKXCGP.js";
451
- import "./chunk-DJ4C5ELF.js";
447
+ } from "./chunk-QAFQLILX.js";
448
+ import "./chunk-HQMLY2R6.js";
449
+ import "./chunk-I2EWY3MG.js";
450
+ import "./chunk-UFIQ5FWY.js";
451
+ import "./chunk-MTIRNHRJ.js";
452
+ import "./chunk-DHQXCP2X.js";
452
453
  import {
453
454
  batchSections,
454
455
  providerFactoryFor
455
- } from "./chunk-QQD25YNF.js";
456
+ } from "./chunk-ZDA72732.js";
456
457
  import "./chunk-QA4O2GGC.js";
457
458
  import {
458
459
  baseClonePath,
@@ -460,7 +461,7 @@ import {
460
461
  cloneUrlKey,
461
462
  loadRepos,
462
463
  readChangeRepos
463
- } from "./chunk-WS7KBKP4.js";
464
+ } from "./chunk-XIJBQM45.js";
464
465
  import {
465
466
  ADAPTER_FIELDS,
466
467
  ADAPTER_KINDS,
@@ -532,7 +533,7 @@ import {
532
533
  specRepos,
533
534
  undeclareLink,
534
535
  writeOrgPackFile
535
- } from "./chunk-GLISHJ4G.js";
536
+ } from "./chunk-6ZDAEUKB.js";
536
537
  import {
537
538
  FileChangedError,
538
539
  RUN_LOG_READ_MAX,
@@ -544,7 +545,7 @@ import {
544
545
  tailTerminalRunLines,
545
546
  writeFileAtomic,
546
547
  writeFileIfUnchanged
547
- } from "./chunk-G3ZFEHCX.js";
548
+ } from "./chunk-MEMEO7YO.js";
548
549
  import {
549
550
  ASSISTANTS,
550
551
  ChangeArtifact,
@@ -650,6 +651,13 @@ async function trackedLocal(ctx, title, work, o = {}) {
650
651
  }, { kind: "local", ...o.meta ? { meta: o.meta } : {} });
651
652
  }
652
653
  var jobState = (j) => j.state === "queued" ? "running" : j.state;
654
+ var PREPARED_MS = 15 * 60 * 1e3;
655
+ var WHERE_WORDS = {
656
+ terminal: "in a terminal",
657
+ vscode: "in VS Code",
658
+ intellij: "in IntelliJ",
659
+ copilot: "in a Copilot session"
660
+ };
653
661
  function readHandoffRuns(root, now) {
654
662
  const out = [];
655
663
  let changes;
@@ -854,10 +862,29 @@ function uiActivityRoutes(r, ctx, deps = {}) {
854
862
  handoffCache = { at: t, runs: readHandoffRuns(root, now().getTime()) };
855
863
  return handoffCache.runs;
856
864
  };
865
+ const preparedBy = (h) => {
866
+ const at = Date.parse(h.startedAt);
867
+ let best;
868
+ for (const t of readTerminalRuns(root, readOpts)) {
869
+ if (t.command[0] === "handoff" || !t.command.slice(1).includes(h.change))
870
+ continue;
871
+ const s = Date.parse(t.startedAt);
872
+ if (!(s <= at && at - s <= PREPARED_MS))
873
+ continue;
874
+ if (!best || t.startedAt > best.startedAt)
875
+ best = t;
876
+ }
877
+ return best;
878
+ };
857
879
  const handoffLines = (h) => {
858
880
  const shape = [handoffState(h.state)];
859
881
  const prompt = `${runsRelOf(root)}/${h.change}/${h.runId}/prompt.md`;
860
882
  const out = [];
883
+ const by = preparedBy(h);
884
+ if (by) {
885
+ shape.push(`prepared ${by.runId}`);
886
+ out.push(`Prepared by ${by.title}, ${WHERE_WORDS[by.startedBy] ?? `in ${by.startedBy}`}.`);
887
+ }
861
888
  if (handoffState(h.state) === "waiting") {
862
889
  out.push(`Waiting for your assistant${h.agent ? ` (${h.agent})` : ""} on ${h.change}.`, `The prompt: ${prompt}`, "Give it to your assistant (Copilot Chat, Claude Code): copy it from Set up \u203A Model runs, or open the file.", h.output ? `When the answer is in ${h.output}, press Done on its run, or run: atticus handoff done ${h.runId}` : `When the answer is written, press Done on its run, or run: atticus handoff done ${h.runId}`);
863
890
  } else {
@@ -1006,19 +1033,19 @@ async function changesWithWorktrees(root) {
1006
1033
  function uiStepRoutes(r, ctx, asJob) {
1007
1034
  const root = ctx.root;
1008
1035
  return r.add("POST", "/api/facts/apply-all", async () => {
1009
- const { verifyAllCommand } = await import("./chunk-CQRFCWQV.js");
1036
+ const { verifyAllCommand } = await import("./chunk-7NVLGPER.js");
1010
1037
  return asJob("Applying to every repo", () => captured((io) => verifyAllCommand(root, { write: true, verbose: false, json: false }, io)));
1011
1038
  }).add("POST", "/api/estate/join", async () => {
1012
- const { estateJoin } = await import("./chunk-LOJGNSPA.js");
1039
+ const { estateJoin } = await import("./chunk-DB6TDJ4T.js");
1013
1040
  return asJob("Joining the estate's flows", () => captured((io) => estateJoin(root, { json: false }, io)));
1014
1041
  }).add("POST", "/api/knowledge/sources/sync", async () => {
1015
- const { sourcesSync: sourcesSync2 } = await import("./chunk-K3OIBTCV.js");
1042
+ const { sourcesSync: sourcesSync2 } = await import("./chunk-CPE7HLIK.js");
1016
1043
  return asJob("Syncing every wiki", () => captured((io) => sourcesSync2(root, io, { json: false })));
1017
1044
  }).add("POST", "/api/workspace/prune", async ({ body }) => {
1018
1045
  const change = body?.change;
1019
1046
  if (change !== void 0 && (typeof change !== "string" || !ID2.test(change)))
1020
1047
  throw badRequest("change is a change id, or left out for every change with worktrees.");
1021
- const { workspacePrune } = await import("./chunk-S7I7SLZN.js");
1048
+ const { workspacePrune } = await import("./chunk-M5IQUWJR.js");
1022
1049
  return asJob(change ? `Cleaning up ${change}'s worktrees` : "Cleaning up worktrees", () => captured(async (io) => {
1023
1050
  const list = change ? [change] : await changesWithWorktrees(root);
1024
1051
  if (!list.length) {
@@ -1033,7 +1060,7 @@ function uiStepRoutes(r, ctx, asJob) {
1033
1060
  return code;
1034
1061
  }));
1035
1062
  }).add("GET", "/api/changes/{changeId}/tasks/{taskId}/context", async ({ params }) => {
1036
- const { taskContextCli } = await import("./chunk-NMBHFSJQ.js");
1063
+ const { taskContextCli } = await import("./chunk-7ZBYRMWK.js");
1037
1064
  const lines = [];
1038
1065
  const errs = [];
1039
1066
  const code = await taskContextCli(root, params.changeId, params.taskId, { markdown: true }, { out: (l) => lines.push(l), err: (l) => errs.push(l) });
@@ -1044,7 +1071,7 @@ function uiStepRoutes(r, ctx, asJob) {
1044
1071
  const on = body?.on;
1045
1072
  if (typeof on !== "boolean")
1046
1073
  throw badRequest("on is true or false.");
1047
- const { setLocalRecording } = await import("./chunk-UJ535VWR.js");
1074
+ const { setLocalRecording } = await import("./chunk-V3M4VFUB.js");
1048
1075
  await setLocalRecording(root, on);
1049
1076
  ctx.events.publish({ type: "file.changed", path: ".atticus/me.yaml" });
1050
1077
  return { status: 200, body: { on } };
@@ -1117,7 +1144,7 @@ async function answerFile(root, s) {
1117
1144
  const inRun = join3(s.dir, out);
1118
1145
  if (s.run.request.outputIn === "run" || s.run.parts?.length)
1119
1146
  return inRun;
1120
- const { changesDirOf: changesDirOf2 } = await import("./chunk-WDJGJ3HV.js");
1147
+ const { changesDirOf: changesDirOf2 } = await import("./chunk-UXVKFOMC.js");
1121
1148
  return join3(changesDirOf2(root), s.run.request.change, out);
1122
1149
  }
1123
1150
  async function dueRuns(root, o) {
@@ -1271,13 +1298,14 @@ var TASK_ERRORS = /* @__PURE__ */ new Set([
1271
1298
  "GitError",
1272
1299
  "RuntimeError"
1273
1300
  ]);
1274
- async function run(f) {
1301
+ async function run(f, o = {}) {
1275
1302
  const out = [];
1276
1303
  const err = [];
1277
1304
  const code = await f({
1278
1305
  out: (l) => {
1279
1306
  out.push(l);
1280
- printToCurrent(l);
1307
+ if (!o.jsonOut)
1308
+ printToCurrent(l);
1281
1309
  },
1282
1310
  err: (l) => {
1283
1311
  err.push(l);
@@ -1366,7 +1394,7 @@ async function changeDetail(root, id) {
1366
1394
  state: c.state,
1367
1395
  // ADR 0191 (app-only audit): the repos it names and its target flows' ("Name its repos on its
1368
1396
  // brief" stayed after the stories named them; the brief has no repos).
1369
- repos: await (await import("./chunk-N6SSI6XO.js")).changeRepos(root, c),
1397
+ repos: await (await import("./chunk-IP6ARMZU.js")).changeRepos(root, c),
1370
1398
  openFindings: open,
1371
1399
  updatedAt: c.history.at(-1)?.at ?? c.createdAt,
1372
1400
  ...fast ? { fastPath: true } : {},
@@ -1536,7 +1564,7 @@ function uiRoutes(r, ctx, deps = {}) {
1536
1564
  const { root, user, jobs } = ctx;
1537
1565
  const confirmed2 = (write, target, given) => requireConfirmation(ctx.confirmations, write, target, given);
1538
1566
  const readyView = async (change) => {
1539
- const { deployOrderOf } = await import("./chunk-SBNBVUOF.js");
1567
+ const { deployOrderOf } = await import("./chunk-BEEHCL5O.js");
1540
1568
  const repoOrder = await deployOrderOf(root, change);
1541
1569
  const prStates = /* @__PURE__ */ new Map();
1542
1570
  for (const t of await taskViews(root, change, {
@@ -1568,7 +1596,7 @@ function uiRoutes(r, ctx, deps = {}) {
1568
1596
  c.progress(1, 1, res.code === 0 ? "Done" : "Stopped");
1569
1597
  ctx.events.publish({ type: "file.changed", path: "." });
1570
1598
  const raw = [...res.out, ...res.err];
1571
- const { appLines: appLines2 } = await import("./chunk-U4HZ5CXL.js");
1599
+ const { appLines: appLines2 } = await import("./chunk-PZFZPHCT.js");
1572
1600
  const lines = appLines2(raw);
1573
1601
  const next = res.code === 0 ? void 0 : syncNextOf(raw);
1574
1602
  return {
@@ -1599,7 +1627,7 @@ function uiRoutes(r, ctx, deps = {}) {
1599
1627
  };
1600
1628
  const doneMayStart = async (runId) => {
1601
1629
  const before = await findRun(root, runId);
1602
- const { hasKeptResume: hasKeptResume2 } = await import("./chunk-U4HZ5CXL.js");
1630
+ const { hasKeptResume: hasKeptResume2 } = await import("./chunk-PZFZPHCT.js");
1603
1631
  const onlyResume = before.state === "validated" && await hasKeptResume2(root, runId);
1604
1632
  if (before.state === "validated" && !onlyResume || before.state === "cancelled")
1605
1633
  throw conflict(`Run ${runId} is already ${before.state}.`);
@@ -1621,17 +1649,17 @@ function uiRoutes(r, ctx, deps = {}) {
1621
1649
  }
1622
1650
  const after = await findRun(root, runId);
1623
1651
  ctx.events.publish({ type: "run.changed", runId: after.runId, state: after.state });
1624
- const { resumeAfterDone, appLines: appLines2 } = await import("./chunk-U4HZ5CXL.js");
1652
+ const { resumeAfterDone, appLines: appLines2 } = await import("./chunk-PZFZPHCT.js");
1625
1653
  if (res.code !== 0)
1626
1654
  throw refused({ ...res, out: appLines2(res.out), err: appLines2(res.err) });
1627
1655
  const stepRunner = deps.runStep ?? (async (args) => {
1628
- const { main } = await import("./chunk-XZQBFF65.js");
1656
+ const { main } = await import("./chunk-TYN5SG5H.js");
1629
1657
  const out = [];
1630
1658
  const err = [];
1631
1659
  const code = await main([...args, "--root", root], { out: (l) => out.push(l), err: (l) => err.push(l) }, { quiet: true });
1632
1660
  return { code, out, err };
1633
1661
  });
1634
- const { hasKeptResume: kept } = await import("./chunk-U4HZ5CXL.js");
1662
+ const { hasKeptResume: kept } = await import("./chunk-PZFZPHCT.js");
1635
1663
  const resumed = !await kept(root, after.runId) ? void 0 : await trackedLocal(ctx, `Finishing the step: ${after.runId}`, () => resumeAfterDone(root, stepRunner, after.change, after.runId), { meta: { handoffRun: after.runId } }).catch((e) => ({ lines: [e.message] }));
1636
1664
  if (resumed)
1637
1665
  ctx.events.publish({ type: "file.changed", path: changesRelOf(root) });
@@ -1651,7 +1679,7 @@ function uiRoutes(r, ctx, deps = {}) {
1651
1679
  };
1652
1680
  startAutoDone(ctx, (runId) => doneRun(runId, "app"), deps.autoDone ?? {});
1653
1681
  return r.add("POST", "/api/facts/{repo}/apply", async ({ params }) => {
1654
- const { verifyCommand } = await import("./chunk-CQRFCWQV.js");
1682
+ const { verifyCommand } = await import("./chunk-7NVLGPER.js");
1655
1683
  const repo = params.repo;
1656
1684
  if (!FACTS_REPO.test(repo))
1657
1685
  throw badRequest(`${JSON.stringify(repo)} isn't a repo name.`);
@@ -1659,7 +1687,7 @@ function uiRoutes(r, ctx, deps = {}) {
1659
1687
  throw notFound(`There is no repo ${repo} in this workspace.`);
1660
1688
  return asJob(`Applying to ${repo}`, () => run((io) => verifyCommand(root, repo, { write: true, verbose: false, json: false }, io)));
1661
1689
  }).add("GET", "/api/upgrade", async () => keptAnswer(root, "upgrade", async () => {
1662
- const { newerAtticusOf, upgradeCheck } = await import("./chunk-QBK33722.js");
1690
+ const { newerAtticusOf, upgradeCheck } = await import("./chunk-MGNO4Q6V.js");
1663
1691
  const c = await upgradeCheck(root);
1664
1692
  const stamp3 = c.stamp?.atticus ?? newerAtticusOf(c);
1665
1693
  const body = {
@@ -1670,7 +1698,7 @@ function uiRoutes(r, ctx, deps = {}) {
1670
1698
  };
1671
1699
  return { status: 200, body };
1672
1700
  })).add("POST", "/api/upgrade", async () => {
1673
- const { newerThan, newerWords, upgradeCheck, upgradeCommand } = await import("./chunk-QBK33722.js");
1701
+ const { newerThan, newerWords, upgradeCheck, upgradeCommand } = await import("./chunk-MGNO4Q6V.js");
1674
1702
  const c = await upgradeCheck(root);
1675
1703
  if (c.newer)
1676
1704
  throw conflict(newerWords(c));
@@ -1678,7 +1706,7 @@ function uiRoutes(r, ctx, deps = {}) {
1678
1706
  throw conflict(`Nothing to upgrade: up to date for Atticus ${c.atticus}.`);
1679
1707
  return asJob("Upgrading the metarepo", () => run((io) => upgradeCommand(root, { by: user }, io)));
1680
1708
  }).add("GET", "/api/propose", async ({ query }) => {
1681
- const { proposePlan, PROPOSE_SCOPES } = await import("./chunk-RFQW7XT3.js");
1709
+ const { proposePlan, PROPOSE_SCOPES } = await import("./chunk-IJN5PSDU.js");
1682
1710
  const scope = query.get("scope") ?? "";
1683
1711
  if (!PROPOSE_SCOPES.includes(scope))
1684
1712
  throw refused({
@@ -1701,7 +1729,7 @@ function uiRoutes(r, ctx, deps = {}) {
1701
1729
  }).add("POST", "/api/propose", async ({ body }) => {
1702
1730
  const b = parseBody(api_exports.ProposeRequest, body);
1703
1731
  confirmed2("propose", b.scope, b.confirmation);
1704
- const { proposeForReview } = await import("./chunk-RFQW7XT3.js");
1732
+ const { proposeForReview } = await import("./chunk-IJN5PSDU.js");
1705
1733
  return asJob("Proposing for review", () => run((io) => proposeForReview(root, {
1706
1734
  scope: b.scope,
1707
1735
  by: user,
@@ -1710,15 +1738,15 @@ function uiRoutes(r, ctx, deps = {}) {
1710
1738
  ...b.branch ? { branch: b.branch } : {}
1711
1739
  }, io)));
1712
1740
  }).add("POST", "/api/propose/bring-in", async () => {
1713
- const { bringInMerged } = await import("./chunk-RFQW7XT3.js");
1741
+ const { bringInMerged } = await import("./chunk-IJN5PSDU.js");
1714
1742
  return asJob("Bringing in what merged", () => run((io) => bringInMerged(root, io)));
1715
1743
  }).add("POST", "/api/propose/upstream", async ({ body }) => {
1716
1744
  const b = parseBody(api_exports.UpstreamRequest, body);
1717
- const { setUpstream } = await import("./chunk-RFQW7XT3.js");
1745
+ const { setUpstream } = await import("./chunk-IJN5PSDU.js");
1718
1746
  return asJob(`Setting the upstream to ${b.upstream}`, () => run((io) => setUpstream(root, b.upstream, io)));
1719
1747
  }).add("POST", "/api/changes/{changeId}/conformance", async ({ params }) => {
1720
1748
  await readChange(root, params.changeId);
1721
- const { changeConformCommand } = await import("./chunk-DCPI3ETH.js");
1749
+ const { changeConformCommand } = await import("./chunk-C3TBDX7Y.js");
1722
1750
  return asJob(`Checking ${params.changeId}'s code against its design`, () => run((io) => changeConformCommand(root, params.changeId, { findingsAnswer: true }, io)));
1723
1751
  }).add("GET", "/api/change-types", async () => {
1724
1752
  const op = await loadOrgPack(orgPackDirOf(root));
@@ -1821,7 +1849,7 @@ function uiRoutes(r, ctx, deps = {}) {
1821
1849
  throw conflict(`${rel} changed since you opened it. Reload it, then make your edit again.`);
1822
1850
  await mkdir(dirname3(file), { recursive: true });
1823
1851
  await writeFileIfUnchanged(file, was, b.content);
1824
- const { recordPersonSave: recordPersonSave2 } = await import("./chunk-P4QTTCVK.js");
1852
+ const { recordPersonSave: recordPersonSave2 } = await import("./chunk-ANFBBJEV.js");
1825
1853
  await recordPersonSave2(join4(changesDirOf(root), params.changeId), params.changeId, {
1826
1854
  file: rel,
1827
1855
  who: user,
@@ -2119,7 +2147,7 @@ function uiRoutes(r, ctx, deps = {}) {
2119
2147
  const res = await run((io) => changeSync(root, params.changeId, { by: user, approve, ...b.repo ? { repo: b.repo } : {} }, io, changeDeps));
2120
2148
  if (res.code === 2)
2121
2149
  throw refused(res);
2122
- const { appLines: appLines2 } = await import("./chunk-U4HZ5CXL.js");
2150
+ const { appLines: appLines2 } = await import("./chunk-PZFZPHCT.js");
2123
2151
  return {
2124
2152
  status: 200,
2125
2153
  body: {
@@ -2129,14 +2157,14 @@ function uiRoutes(r, ctx, deps = {}) {
2129
2157
  };
2130
2158
  }).add("GET", "/api/changes/{changeId}/inputs", async ({ params }) => {
2131
2159
  const c = await readChange(root, params.changeId);
2132
- const { readChangeInputs } = await import("./chunk-LQD3R6NZ.js");
2160
+ const { readChangeInputs } = await import("./chunk-VPQUFIE7.js");
2133
2161
  return {
2134
2162
  status: 200,
2135
2163
  body: api_exports.ChangeInputList.parse(await readChangeInputs(join4(changesDirOf(root), c.id)))
2136
2164
  };
2137
2165
  }).add("GET", "/api/changes/{changeId}/prototypes", async ({ params }) => {
2138
2166
  const c = await readChange(root, params.changeId);
2139
- const { changePrototypes } = await import("./chunk-4GWQVT2C.js");
2167
+ const { changePrototypes } = await import("./chunk-HVOE7ZW2.js");
2140
2168
  return {
2141
2169
  status: 200,
2142
2170
  body: api_exports.ChangePrototypeList.parse(await changePrototypes(root, c.id))
@@ -2144,7 +2172,7 @@ function uiRoutes(r, ctx, deps = {}) {
2144
2172
  }).add("POST", "/api/changes/{changeId}/prototypes", async ({ params, body }) => {
2145
2173
  const c = await readChange(root, params.changeId);
2146
2174
  const b = parseBody(api_exports.ComparePrototypeRequest, body);
2147
- const { attachPrototype, changePrototypes } = await import("./chunk-4GWQVT2C.js");
2175
+ const { attachPrototype, changePrototypes } = await import("./chunk-HVOE7ZW2.js");
2148
2176
  const res = await run((io) => attachPrototype(root, c.id, b.repo, { by: user, ...deps.now ? { now: new Date(deps.now) } : {} }, io));
2149
2177
  if (res.code !== 0)
2150
2178
  throw refused(res);
@@ -2162,7 +2190,7 @@ function uiRoutes(r, ctx, deps = {}) {
2162
2190
  const bytes = new Uint8Array(Buffer.from(b.content, "base64"));
2163
2191
  if (bytes.length > MAX_ATTACH)
2164
2192
  throw new HttpError(413, "The file is too large", "Attach a file of 15 MB or less.");
2165
- const { attachFiles } = await import("./chunk-NMBHFSJQ.js");
2193
+ const { attachFiles } = await import("./chunk-7ZBYRMWK.js");
2166
2194
  const r2 = await attachFiles(root, c.id, [{ name: b.name, bytes }], user);
2167
2195
  if (!r2.added.length)
2168
2196
  throw new HttpError(422, "Atticus can't attach that", r2.refused[0]?.why ?? "", {
@@ -2378,7 +2406,7 @@ function uiRoutes(r, ctx, deps = {}) {
2378
2406
  // ADR 0123: another branch, scanned beside the baseline.
2379
2407
  ...b.ref ? { ref: b.ref } : {},
2380
2408
  ...askFrom ? { askFrom } : {}
2381
- }, io));
2409
+ }, io), { jsonOut: true });
2382
2410
  c.progress(1, 1, "Scanned");
2383
2411
  const parsed = (() => {
2384
2412
  try {
@@ -2387,7 +2415,15 @@ function uiRoutes(r, ctx, deps = {}) {
2387
2415
  return {};
2388
2416
  }
2389
2417
  })();
2418
+ for (const l of scanSummaryLines(parsed))
2419
+ printToCurrent(l);
2390
2420
  const problems = parsed.problems?.length ?? 0;
2421
+ const refusal3 = parsed.refused;
2422
+ if (refusal3)
2423
+ return {
2424
+ result: { stats: parsed.stats, problems, written: false, refused: refusal3 },
2425
+ errors: refusal3.message.split("\n")
2426
+ };
2391
2427
  ctx.events.publish({
2392
2428
  type: "index.rebuilt",
2393
2429
  records: Number(parsed.stats?.records ?? 0)
@@ -3431,7 +3467,7 @@ function uiKnowRoutes(r, ctx, o = {}) {
3431
3467
  const args = build(arg);
3432
3468
  if (!args)
3433
3469
  throw badRequest(`The ${name} view needs an id: /api/view/${name}/<id>.`);
3434
- const { main } = await import("./chunk-XZQBFF65.js");
3470
+ const { main } = await import("./chunk-TYN5SG5H.js");
3435
3471
  const out = [];
3436
3472
  const err = [];
3437
3473
  const code = await main([...args, "--json", "--root", ctx.root], { out: (l) => out.push(l), err: (l) => err.push(l) }, { quiet: true });
@@ -3461,7 +3497,7 @@ function uiKnowRoutes(r, ctx, o = {}) {
3461
3497
  return { status: 200, body: { code, data: body, problems: err } };
3462
3498
  };
3463
3499
  const text = async (args) => {
3464
- const { main } = await import("./chunk-XZQBFF65.js");
3500
+ const { main } = await import("./chunk-TYN5SG5H.js");
3465
3501
  const out = [];
3466
3502
  const err = [];
3467
3503
  const code = await main([...args, "--root", ctx.root], { out: (l) => out.push(l), err: (l) => err.push(l) }, { quiet: true });
@@ -3479,7 +3515,7 @@ function uiKnowRoutes(r, ctx, o = {}) {
3479
3515
  throw badRequest("Some fields aren't right.", {
3480
3516
  errors: b.error.issues.map((i) => ({ path: i.path.join("."), message: i.message }))
3481
3517
  });
3482
- const { triageDecide } = await import("./chunk-62FMA437.js");
3518
+ const { triageDecide } = await import("./chunk-QQAWI5LD.js");
3483
3519
  const out = [];
3484
3520
  const err = [];
3485
3521
  const code = await triageDecide(ctx.root, params.itemId, b.data.option, { by: ctx.user, ...b.data.reason ? { reason: b.data.reason } : {} }, { out: (l) => out.push(l), err: (l) => err.push(l) });
@@ -3606,7 +3642,7 @@ function refused3(r) {
3606
3642
  return r.code === 2 ? badRequest(detail) : new HttpError(422, "Atticus refused", detail);
3607
3643
  }
3608
3644
  function uiInitiativeRoutes(r, ctx) {
3609
- const commands = () => import("./chunk-NL6GIEJU.js");
3645
+ const commands = () => import("./chunk-XT3ZW7C7.js");
3610
3646
  const changed = () => ctx.events.publish({ type: "file.changed", path: "catalog/curated" });
3611
3647
  return r.add("POST", "/api/initiatives", async ({ body }) => {
3612
3648
  const b = parseBody3(api_exports.NewInitiativeRequest, body);
@@ -3685,9 +3721,9 @@ function uiQuestionRoutes(r, ctx, deps = {}) {
3685
3721
  throw badRequest("role is product, architecture, analysis or delivery, or left out.");
3686
3722
  const onFile = await listQuestions(ctx.root);
3687
3723
  const every = { ...onFile, questions: onFile.questions.filter((q) => !q.finding) };
3688
- const { routeQuestions } = await import("./chunk-7FUQAT2R.js");
3724
+ const { routeQuestions } = await import("./chunk-723OQZ3N.js");
3689
3725
  const routedAll = await routeQuestions(ctx.root, every.questions, mine ? { mine: ctx.user } : {});
3690
- const { stageQuestions, roleWithStage, isChangeQuestion, countByRole, personsRoles } = await import("./chunk-KW4DIXUL.js");
3726
+ const { stageQuestions, roleWithStage, isChangeQuestion, countByRole, personsRoles } = await import("./chunk-2JT4QV3Q.js");
3691
3727
  const stages = await stageQuestions(ctx.root);
3692
3728
  const roleOf = (q) => roleWithStage(q, stages);
3693
3729
  for (const q of every.questions) {
@@ -3738,13 +3774,13 @@ function uiQuestionRoutes(r, ctx, deps = {}) {
3738
3774
  return { status: 200, body };
3739
3775
  };
3740
3776
  return r.add("GET", "/api/questions", async ({ query }) => keptAnswer(ctx.root, `questions?${query.toString()}&by=${ctx.user}`, () => questionsAnswer(query), () => checkoutsStamp(ctx.root))).add("GET", "/api/owner-questions", async () => keptAnswer(ctx.root, "owner-questions", async () => {
3741
- const { ownerQuestions } = await import("./chunk-GAVEIYKH.js");
3777
+ const { ownerQuestions } = await import("./chunk-CUTMM4NY.js");
3742
3778
  return { status: 200, body: await ownerQuestions(ctx.root, { now: now() }) };
3743
3779
  })).add("POST", "/api/owner-questions/{id}/answer", async ({ params, body }) => {
3744
3780
  const b = api_exports.OwnerAnswerRequest.safeParse(body ?? {});
3745
3781
  if (!b.success || !b.data.answer.trim())
3746
3782
  throw badRequest('Answer with { answer: "what the owner said" }.');
3747
- const { answerOwnerQuestion, OwnerQuestionError } = await import("./chunk-GAVEIYKH.js");
3783
+ const { answerOwnerQuestion, OwnerQuestionError } = await import("./chunk-CUTMM4NY.js");
3748
3784
  try {
3749
3785
  const r2 = await answerOwnerQuestion(ctx.root, params.id, b.data.answer, {
3750
3786
  by: ctx.user,
@@ -3769,13 +3805,13 @@ function uiQuestionRoutes(r, ctx, deps = {}) {
3769
3805
  throw notFound(`There is no question ${params.id}.`);
3770
3806
  if (q.askedBy.step !== TARGETS_STEP_ID && q.askedBy.step !== TOPICS_STEP_ID)
3771
3807
  throw new HttpError(422, "That question doesn't ask where a call goes or who owns a topic", `${q.id} isn't a targets or topics question, so it has no picker.`);
3772
- const { pickerOf } = await import("./chunk-Q6UYUCNS.js");
3808
+ const { pickerOf } = await import("./chunk-HVWPN2RY.js");
3773
3809
  return { status: 200, body: { picks: await pickerOf(ctx.root) } };
3774
3810
  }).add("GET", "/api/questions/{id}/evidence", async ({ params }) => {
3775
3811
  const q = await readQuestion(ctx.root, params.id).catch(() => void 0);
3776
3812
  if (!q)
3777
3813
  throw notFound(`There is no question ${params.id}.`);
3778
- const { evidenceExcerpts } = await import("./chunk-TVFADTAT.js");
3814
+ const { evidenceExcerpts } = await import("./chunk-CWLXVRFH.js");
3779
3815
  return {
3780
3816
  status: 200,
3781
3817
  body: {
@@ -3820,7 +3856,7 @@ function uiQuestionRoutes(r, ctx, deps = {}) {
3820
3856
  const q0 = await readQuestion(ctx.root, params.id).catch(() => void 0);
3821
3857
  if (!q0)
3822
3858
  throw notFound(`There is no question ${params.id}.`);
3823
- const { targetAnswerOf, offerLine } = await import("./chunk-Q6UYUCNS.js");
3859
+ const { targetAnswerOf, offerLine } = await import("./chunk-HVWPN2RY.js");
3824
3860
  const t = await targetAnswerOf(ctx.root, q0, target, {
3825
3861
  ...addSystem ? { addSystem } : {},
3826
3862
  ...name ? { name } : {}
@@ -4448,7 +4484,7 @@ function uiSpecRoutes(r, ctx) {
4448
4484
  });
4449
4485
  r.add("GET", "/api/changes/{changeId}/conformance", async ({ params }) => {
4450
4486
  const change = idOf2(params.changeId, "change");
4451
- const { conformanceOf } = await import("./chunk-E7PR4WMM.js");
4487
+ const { conformanceOf } = await import("./chunk-6SIGGA37.js");
4452
4488
  const c = await conformanceOf(root, change);
4453
4489
  if (!c)
4454
4490
  throw notFound(`There is no change ${change}.`);
@@ -4463,7 +4499,7 @@ function uiSpecRoutes(r, ctx) {
4463
4499
  });
4464
4500
  r.add("GET", "/api/changes/{changeId}/impact", async ({ params }) => {
4465
4501
  const change = idOf2(params.changeId, "change");
4466
- const { changeImpactOf } = await import("./chunk-JXLUHMTC.js");
4502
+ const { changeImpactOf } = await import("./chunk-XEWFVHOT.js");
4467
4503
  const i = await changeImpactOf(root, change);
4468
4504
  if (!i)
4469
4505
  throw notFound(`There is no change ${change}.`);
@@ -4616,8 +4652,8 @@ function uiKnowledgeRoutes(r, ctx, deps = {}) {
4616
4652
  const slash = id.indexOf("/");
4617
4653
  return hash > 0 && slash > 0 && slash < hash ? { source: id.slice(0, slash), page: id.slice(slash + 1, hash) } : void 0;
4618
4654
  };
4619
- const { knowledgePages } = await import("./chunk-N6SSI6XO.js");
4620
- const { sectionOf } = await import("./chunk-7HW2CMIN.js");
4655
+ const { knowledgePages } = await import("./chunk-IP6ARMZU.js");
4656
+ const { sectionOf } = await import("./chunk-NMURRF5F.js");
4621
4657
  const pages = doc?.items.some((i) => i.id.includes("#")) ? await knowledgePages(root) : [];
4622
4658
  const records = doc?.items.length ? new Map((await readKnowledge(root, { cacheRoot: root })).items.map((r2) => [r2.id, r2])) : /* @__PURE__ */ new Map();
4623
4659
  const passageOf = (id) => {
@@ -4908,7 +4944,7 @@ function uiKnowledgeRoutes(r, ctx, deps = {}) {
4908
4944
  if (source !== void 0)
4909
4945
  idOf3(source, "source");
4910
4946
  const ids = await snapshotSources(root);
4911
- const { inputsPassagePages, pastableArg } = await import("./chunk-N6SSI6XO.js");
4947
+ const { inputsPassagePages, pastableArg } = await import("./chunk-IP6ARMZU.js");
4912
4948
  const live = !ids.includes(INPUTS_SOURCE_ID) && (!source || source === INPUTS_SOURCE_ID) ? await inputsPassagePages(root) : [];
4913
4949
  if (source && !ids.includes(source) && !(source === INPUTS_SOURCE_ID && live.length))
4914
4950
  throw notFound(`${source} has no snapshot yet: atticus sources sync --source ${source}.`);
@@ -5123,7 +5159,7 @@ async function configuredModel(root) {
5123
5159
  function uiModelRunRoutes(r, ctx, deps = {}) {
5124
5160
  const root = ctx.root;
5125
5161
  const runStep = deps.runStep ?? (async (args) => {
5126
- const { main } = await import("./chunk-XZQBFF65.js");
5162
+ const { main } = await import("./chunk-TYN5SG5H.js");
5127
5163
  const out = [];
5128
5164
  const err = [];
5129
5165
  const code = await main([...args, "--root", root], { out: (l) => out.push(l), err: (l) => err.push(l) }, { quiet: true });
@@ -5131,7 +5167,7 @@ function uiModelRunRoutes(r, ctx, deps = {}) {
5131
5167
  });
5132
5168
  return r.add("POST", "/api/runs/handoff", async ({ body }) => {
5133
5169
  const words = stepWords(body);
5134
- const { prepareStep } = await import("./chunk-U4HZ5CXL.js");
5170
+ const { prepareStep } = await import("./chunk-PZFZPHCT.js");
5135
5171
  const { code, prepared } = await prepareStep(root, runStep, words);
5136
5172
  ctx.events.publish({ type: "file.changed", path: runsRelOf(root) });
5137
5173
  if (!prepared.runId && code !== 0) {
@@ -5349,10 +5385,10 @@ var CopilotRun = class {
5349
5385
 
5350
5386
  // packages/cli/dist/ui-api-copilot-runs.js
5351
5387
  var defaultStarter = (root) => async (o, io, deps) => {
5352
- const { mapAllCommand } = await import("./chunk-FNP4M4VL.js");
5388
+ const { mapAllCommand } = await import("./chunk-WM4EMP7T.js");
5353
5389
  return mapAllCommand(root, o, io, {
5354
5390
  ...deps,
5355
- makeAcp: async () => (await import("./chunk-EXGXCVWC.js")).acpStepRunner(root)
5391
+ makeAcp: async () => (await import("./chunk-A6LGX56J.js")).acpStepRunner(root)
5356
5392
  });
5357
5393
  };
5358
5394
  var TAIL = 200;
@@ -5676,7 +5712,7 @@ function uiDecisionRoutes(r, ctx, deps = {}) {
5676
5712
  ctx.events.publish({ type: "file.changed", path });
5677
5713
  return { status: 200, body: out };
5678
5714
  }).add("GET", "/api/propose-answers", async () => {
5679
- const { openDecideRun, PROPOSE_CHANGE } = await import("./chunk-O6DJMDBR.js");
5715
+ const { openDecideRun, PROPOSE_CHANGE } = await import("./chunk-ZLBUFK7L.js");
5680
5716
  const run5 = await openDecideRun(ctx.root, PROPOSE_CHANGE);
5681
5717
  const body = run5 ? {
5682
5718
  state: "waiting",
@@ -5690,7 +5726,7 @@ function uiDecisionRoutes(r, ctx, deps = {}) {
5690
5726
  const op = await loadOrgPack(orgPackDirOf(ctx.root));
5691
5727
  if (op.runtime.ai === "off")
5692
5728
  throw conflict("runtime.yaml turns AI off here (ai: off): answer the questions yourself.");
5693
- const { startProposeHandoff } = await import("./chunk-EXGXCVWC.js");
5729
+ const { startProposeHandoff } = await import("./chunk-A6LGX56J.js");
5694
5730
  const h = await startProposeHandoff(ctx.root, { now: now() });
5695
5731
  const body = {
5696
5732
  state: "waiting",
@@ -6347,7 +6383,7 @@ function uiDocumentRoutes(r, ctx) {
6347
6383
  const root = ctx.root;
6348
6384
  const changed = (path) => ctx.events.publish({ type: "file.changed", path });
6349
6385
  return r.add("GET", "/api/knowledge/documents", async () => {
6350
- const { listDocuments } = await import("./chunk-W2W7YCFL.js");
6386
+ const { listDocuments } = await import("./chunk-KFJMQUSK.js");
6351
6387
  return { status: 200, body: api_exports.DocumentList.parse(await listDocuments(root)) };
6352
6388
  }).add("POST", "/api/knowledge/documents", async ({ body }) => {
6353
6389
  const b = api_exports.AttachFileRequest.safeParse(body ?? {});
@@ -6356,7 +6392,7 @@ function uiDocumentRoutes(r, ctx) {
6356
6392
  const bytes = new Uint8Array(Buffer.from(b.data.content, "base64"));
6357
6393
  if (bytes.length > MAX_FILE)
6358
6394
  throw new HttpError(413, "The file is too large", "Add a file of 15 MB or less.");
6359
- const { addToInbox } = await import("./chunk-62FMA437.js");
6395
+ const { addToInbox } = await import("./chunk-QQAWI5LD.js");
6360
6396
  const res = await addToInbox(root, [{ name: b.data.name, bytes }]);
6361
6397
  if (!res.added.length)
6362
6398
  throw new HttpError(422, "Atticus can't add that", res.refused[0]?.why ?? "", {
@@ -6366,7 +6402,7 @@ function uiDocumentRoutes(r, ctx) {
6366
6402
  changed(a.path);
6367
6403
  return { status: 201, body: api_exports.AddDocumentResult.parse(res) };
6368
6404
  }, { maxBody: Math.ceil(MAX_FILE * 4 / 3) + 64 * 1024 }).add("POST", "/api/changes/{changeId}/inputs/{name}/promote", async ({ params }) => {
6369
- const { AttachError, promoteChangeInput } = await import("./chunk-NMBHFSJQ.js");
6405
+ const { AttachError, promoteChangeInput } = await import("./chunk-7ZBYRMWK.js");
6370
6406
  try {
6371
6407
  const res = await promoteChangeInput(root, params.changeId, params.name);
6372
6408
  changed(res.path);
@@ -6383,13 +6419,13 @@ function uiDocumentRoutes(r, ctx) {
6383
6419
  function uiRepoRoutes(r, ctx) {
6384
6420
  const root = ctx.root;
6385
6421
  return r.add("GET", "/api/repos/branches", async () => {
6386
- const { repoBranches } = await import("./chunk-IP6TSICI.js");
6422
+ const { repoBranches } = await import("./chunk-FIZ5LYL2.js");
6387
6423
  return { status: 200, body: api_exports.RepoBranchesList.parse(await repoBranches(root)) };
6388
6424
  }).add("GET", "/api/repos/compare", async ({ query }) => {
6389
6425
  const branch = query.get("branch")?.trim() ?? "";
6390
6426
  if (!branch)
6391
6427
  throw badRequest("Say which branch: ?branch=<name>.");
6392
- const { compareBranch } = await import("./chunk-IP6TSICI.js");
6428
+ const { compareBranch } = await import("./chunk-FIZ5LYL2.js");
6393
6429
  const c = await compareBranch(root, branch);
6394
6430
  if (!c)
6395
6431
  throw notFound(`${branch} hasn't been scanned beside the baseline yet.`);
@@ -6398,7 +6434,7 @@ function uiRepoRoutes(r, ctx) {
6398
6434
  const b = api_exports.EditRepoBranchesRequest.safeParse(body ?? {});
6399
6435
  if (!b.success)
6400
6436
  throw badRequest("Send defaultBranch and branches as branch names.");
6401
- const { editRepoBranches, RepoEditError } = await import("./chunk-IP6TSICI.js");
6437
+ const { editRepoBranches, RepoEditError } = await import("./chunk-FIZ5LYL2.js");
6402
6438
  try {
6403
6439
  const file = await editRepoBranches(root, params.repoId, b.data);
6404
6440
  ctx.events.publish({ type: "file.changed", path: file });
@@ -6418,7 +6454,7 @@ function uiRepoRoutes(r, ctx) {
6418
6454
  const b = api_exports.EditRepoBuildRequest.safeParse(body ?? {});
6419
6455
  if (!b.success)
6420
6456
  throw badRequest('Send the build command as build ("" clears it), up to 500 characters.');
6421
- const { editRepoBuild, RepoEditError } = await import("./chunk-IP6TSICI.js");
6457
+ const { editRepoBuild, RepoEditError } = await import("./chunk-FIZ5LYL2.js");
6422
6458
  try {
6423
6459
  const r2 = await editRepoBuild(root, params.repoId, b.data);
6424
6460
  ctx.events.publish({ type: "file.changed", path: r2.file });
@@ -6439,7 +6475,7 @@ function uiRepoRoutes(r, ctx) {
6439
6475
  const b = api_exports.SetOrgPackOwnerRequest.safeParse(body ?? {});
6440
6476
  if (!b.success)
6441
6477
  throw badRequest("Send the owner as one handle: { owner }.");
6442
- const { setOrgPackOwner, OwnerEditError } = await import("./chunk-5K6ZKHZR.js");
6478
+ const { setOrgPackOwner, OwnerEditError } = await import("./chunk-VTR4AC2U.js");
6443
6479
  try {
6444
6480
  const r2 = await setOrgPackOwner(root, b.data.owner, b.data.was);
6445
6481
  ctx.events.publish({ type: "file.changed", path: r2.file });
@@ -6460,7 +6496,7 @@ function uiRepoRoutes(r, ctx) {
6460
6496
  const b = api_exports.EditRepoDescriptionRequest.safeParse(body ?? {});
6461
6497
  if (!b.success)
6462
6498
  throw badRequest("Send what the repo is as text, or accept: true to confirm the draft, or reject: true to drop it.");
6463
- const { editRepoDescription, RepoEditError } = await import("./chunk-IP6TSICI.js");
6499
+ const { editRepoDescription, RepoEditError } = await import("./chunk-FIZ5LYL2.js");
6464
6500
  try {
6465
6501
  const r2 = await editRepoDescription(root, params.repoId, b.data);
6466
6502
  ctx.events.publish({ type: "file.changed", path: r2.file });
@@ -6489,7 +6525,7 @@ function changeIdOf(v) {
6489
6525
  function uiCockpitRoutes(r, ctx) {
6490
6526
  return r.add("GET", "/api/changes/{changeId}/cockpit", async ({ params }) => {
6491
6527
  const id = changeIdOf(params.changeId);
6492
- const { cockpit } = await import("./chunk-B2U4AOZ5.js");
6528
+ const { cockpit } = await import("./chunk-ZYLGEWTC.js");
6493
6529
  try {
6494
6530
  return await keptAnswer(ctx.root, `cockpit:${id}:${ctx.user}`, async () => ({
6495
6531
  status: 200,
@@ -6501,7 +6537,7 @@ function uiCockpitRoutes(r, ctx) {
6501
6537
  throw e;
6502
6538
  }
6503
6539
  }).add("GET", "/api/past-changes", async ({ query }) => {
6504
- const { changeAboutText, similarChanges } = await import("./chunk-MJOIMGS4.js");
6540
+ const { changeAboutText, similarChanges } = await import("./chunk-KUEG2Y7M.js");
6505
6541
  const given = query.get("change");
6506
6542
  const change = given ? changeIdOf(given) : void 0;
6507
6543
  const text = change ? await changeAboutText(ctx.root, change) : query.get("text")?.trim();
@@ -6520,11 +6556,11 @@ function uiCockpitRoutes(r, ctx) {
6520
6556
  const b = api_exports.AttachPastChangeRequest.safeParse(body ?? {});
6521
6557
  if (!b.success)
6522
6558
  throw badRequest("Say which archived change: { like: <its folder or id> }.");
6523
- const { attachPastChange, findPastChange } = await import("./chunk-MJOIMGS4.js");
6559
+ const { attachPastChange, findPastChange } = await import("./chunk-KUEG2Y7M.js");
6524
6560
  const folder = await findPastChange(ctx.root, b.data.like);
6525
6561
  if (!folder)
6526
6562
  throw notFound(`There is no archived change ${b.data.like}.`);
6527
- const { AttachError } = await import("./chunk-NMBHFSJQ.js");
6563
+ const { AttachError } = await import("./chunk-7ZBYRMWK.js");
6528
6564
  try {
6529
6565
  const name = await attachPastChange(ctx.root, params.changeId, folder, ctx.user);
6530
6566
  ctx.events.publish({ type: "file.changed", path: `inputs/${name}` });
@@ -7719,7 +7755,7 @@ function uiSetupRoutes(r, ctx, deps = {}) {
7719
7755
  };
7720
7756
  return r.add("GET", "/api/setup/metarepo", async () => {
7721
7757
  const origin = await originOf(root);
7722
- const { metarepoIdFromUrl } = await import("./chunk-NPZ4KXIV.js");
7758
+ const { metarepoIdFromUrl } = await import("./chunk-5UIGGXA5.js");
7723
7759
  const folder = basename2(root);
7724
7760
  const body = {
7725
7761
  metarepo: isMetarepo(root),
@@ -7737,7 +7773,7 @@ function uiSetupRoutes(r, ctx, deps = {}) {
7737
7773
  const b = parseBody4(api_exports.CreateMetarepoRequest, body);
7738
7774
  if (isMetarepo(root))
7739
7775
  throw conflict(`${root} is a metarepo already.`);
7740
- const { initCommand } = await import("./chunk-5P4PNGPL.js");
7776
+ const { initCommand } = await import("./chunk-U3JXMY56.js");
7741
7777
  const res = await run4((io) => initCommand(root, {
7742
7778
  name: b.name,
7743
7779
  platform: b.platform,
@@ -7762,7 +7798,7 @@ function uiSetupRoutes(r, ctx, deps = {}) {
7762
7798
  if (!await stat9(dir).then((s) => s.isDirectory(), () => false))
7763
7799
  throw notFound(`There is no folder ${dir} on this machine.`);
7764
7800
  const open = deps.openFolder ?? (async (d) => {
7765
- const { startUi: startUi2 } = await import("./chunk-UR6JGVX2.js");
7801
+ const { startUi: startUi2 } = await import("./chunk-P6EJNPFF.js");
7766
7802
  const srv = await startUi2(d, {
7767
7803
  port: 0,
7768
7804
  user,
@@ -7794,7 +7830,7 @@ function uiSetupRoutes(r, ctx, deps = {}) {
7794
7830
  };
7795
7831
  return { status: 200, body: ask };
7796
7832
  }
7797
- const { reposDiscover, AdoptError } = await import("./chunk-NPZ4KXIV.js");
7833
+ const { reposDiscover, AdoptError } = await import("./chunk-5UIGGXA5.js");
7798
7834
  const found = await reposDiscover(root, { dir }, { dryRun: true, ...b.platform ? { platform: b.platform } : {} }).catch((e) => {
7799
7835
  if (e instanceof AdoptError)
7800
7836
  throw unprocessable2(e.message.replace(/ with --platform\b/g, " (choose the platform)"));
@@ -7811,7 +7847,7 @@ function uiSetupRoutes(r, ctx, deps = {}) {
7811
7847
  detected: { signals: f.detection.signals, confidence: f.detection.confidence }
7812
7848
  }));
7813
7849
  } else {
7814
- const { cloneAt, typeOf } = await import("./chunk-EUCATH2U.js");
7850
+ const { cloneAt, typeOf } = await import("./chunk-RCLBIJRN.js");
7815
7851
  for (const given of pastedUrls(b.urls ?? "").slice(0, 500)) {
7816
7852
  const c = candidateOf(given);
7817
7853
  const clone = await cloneAt(c.url);
@@ -7882,13 +7918,13 @@ function uiSetupRoutes(r, ctx, deps = {}) {
7882
7918
  const id = params.repoId;
7883
7919
  if (!(await loadRepos(root).catch(() => [])).some((x) => x.id === id))
7884
7920
  throw notFound(`There is no repo ${id} in any manifest.`);
7885
- const { repoFor } = await import("./chunk-BIQNPWGX.js");
7921
+ const { repoFor } = await import("./chunk-DASVVML7.js");
7886
7922
  const repo = await repoFor(root, id);
7887
7923
  if (!repo)
7888
7924
  throw conflict(`${id} isn't cloned here yet, so there are no files to read its type from: clone it first (Sync on Onboarding, or atticus workspace sync).`);
7889
7925
  const op = await loadOrgPack(orgPackDirOf(root));
7890
7926
  if (op.repoTypes.length) {
7891
- const { repoTypeDetect } = await import("./chunk-HD72AL3L.js");
7927
+ const { repoTypeDetect } = await import("./chunk-GSIJWDXH.js");
7892
7928
  const res = await run4((io) => repoTypeDetect(root, id, { json: true }, io));
7893
7929
  if (res.code !== 0)
7894
7930
  throw unprocessable2([...res.err, ...res.out].join("\n"));
@@ -7902,7 +7938,7 @@ function uiSetupRoutes(r, ctx, deps = {}) {
7902
7938
  };
7903
7939
  return { status: 200, body: body2 };
7904
7940
  }
7905
- const { typeOf } = await import("./chunk-EUCATH2U.js");
7941
+ const { typeOf } = await import("./chunk-RCLBIJRN.js");
7906
7942
  const t = await typeOf(repo.dir, void 0);
7907
7943
  const body = {
7908
7944
  repo: id,
@@ -8043,7 +8079,7 @@ function uiSetupRoutes(r, ctx, deps = {}) {
8043
8079
  const b = parseBody4(api_exports.SourceRequest, body);
8044
8080
  const file = join17(orgPackDirOf(root), "sources.yaml");
8045
8081
  const before = await readFile13(file, "utf8").catch(() => "");
8046
- const { sourcesAdd: sourcesAdd2 } = await import("./chunk-K3OIBTCV.js");
8082
+ const { sourcesAdd: sourcesAdd2 } = await import("./chunk-CPE7HLIK.js");
8047
8083
  const res = await run4((io) => sourcesAdd2(root, b.type, b.location.trim(), io, {
8048
8084
  ...b.id ? { id: b.id } : {},
8049
8085
  ...b.path ? { path: b.path } : {},
@@ -8066,7 +8102,7 @@ function uiSetupRoutes(r, ctx, deps = {}) {
8066
8102
  };
8067
8103
  }
8068
8104
  const after = await readFile13(file, "utf8").catch(() => "");
8069
- const { changedLines: changedLines2, lfOnly: lfOnly2 } = await import("./chunk-WDJGJ3HV.js");
8105
+ const { changedLines: changedLines2, lfOnly: lfOnly2 } = await import("./chunk-UXVKFOMC.js");
8070
8106
  changed(path);
8071
8107
  return {
8072
8108
  status: 200,
@@ -8091,7 +8127,7 @@ function uiRolesRoutes(r, ctx, deps = {}) {
8091
8127
  const root = ctx.root;
8092
8128
  const now = deps.now ?? (() => /* @__PURE__ */ new Date());
8093
8129
  ctx.askKnowledge = async (q) => {
8094
- const { knowledgeAnswerOf } = await import("./chunk-N6SSI6XO.js");
8130
+ const { knowledgeAnswerOf } = await import("./chunk-IP6ARMZU.js");
8095
8131
  return api_exports.KnowledgeAnswerView.parse(await knowledgeAnswerOf(root, q));
8096
8132
  };
8097
8133
  const exists4 = async (id) => {
@@ -8152,7 +8188,7 @@ function uiRolesRoutes(r, ctx, deps = {}) {
8152
8188
  const id = changeIdOf2(params.changeId);
8153
8189
  if (!await exists4(id))
8154
8190
  throw notFound(`There is no change ${id}.`);
8155
- const { ownerSuggestions } = await import("./chunk-N6SSI6XO.js");
8191
+ const { ownerSuggestions } = await import("./chunk-IP6ARMZU.js");
8156
8192
  return {
8157
8193
  status: 200,
8158
8194
  body: api_exports.OwnerSuggestionList.parse(await ownerSuggestions(root, id))
@@ -8262,12 +8298,12 @@ function uiRolesRoutes(r, ctx, deps = {}) {
8262
8298
  const b = api_exports.SendOwnerAskRequest.safeParse(body ?? {});
8263
8299
  if (!b.success)
8264
8300
  throw badRequest("Send { confirmation? }.");
8265
- const { ownerQuestions } = await import("./chunk-GAVEIYKH.js");
8301
+ const { ownerQuestions } = await import("./chunk-CUTMM4NY.js");
8266
8302
  const list = await ownerQuestions(root, { now: now() });
8267
8303
  const q = list.questions.find((x) => x.id === params.id);
8268
8304
  if (!q)
8269
8305
  throw notFound(`There is no owner question ${params.id}.`);
8270
- const { notifierFor } = await import("./chunk-N6SSI6XO.js");
8306
+ const { notifierFor } = await import("./chunk-IP6ARMZU.js");
8271
8307
  const n = await notifierFor(root, q.finding?.change, deps.notify);
8272
8308
  const to = q.owner;
8273
8309
  if (!n.notify || n.kind === "none")
@@ -8322,7 +8358,7 @@ Answer it in Atticus (Questions \u203A Owner questions), or reply to ${ctx.user}
8322
8358
  const id = strParam(query, "id")?.trim();
8323
8359
  if (!id || id.length > 400 || /[\p{Cc}]/u.test(id))
8324
8360
  throw badRequest("Say which section: ?id=<source>/<page>#<heading>.");
8325
- const { passageOf } = await import("./chunk-N6SSI6XO.js");
8361
+ const { passageOf } = await import("./chunk-IP6ARMZU.js");
8326
8362
  const p = await passageOf(root, id);
8327
8363
  if (!p)
8328
8364
  throw notFound(`No page or section ${id} is in a snapshot or in inputs/.`);