@maycombhq/atticus 2.0.0-beta.24 → 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 (277) hide show
  1. package/dist/bin.js +3 -3
  2. package/dist/{chunk-YA2IJJ6N.js → chunk-2FTHLB2H.js} +5 -5
  3. package/dist/{chunk-QPLNB2BM.js → chunk-2GT47PWU.js} +4 -4
  4. package/dist/{chunk-25CUJJTP.js → chunk-2HDNOUJU.js} +56 -19
  5. package/dist/{chunk-IUBBEU6O.js → chunk-2IO6XH37.js} +11 -11
  6. package/dist/{chunk-SGYQORAD.js → chunk-2JT4QV3Q.js} +3 -3
  7. package/dist/{chunk-W4EG25TI.js → chunk-2SCZZQNQ.js} +7 -7
  8. package/dist/{chunk-NQDHRT2H.js → chunk-2XIIUXGX.js} +13 -13
  9. package/dist/{chunk-RSKMV3VC.js → chunk-3D74UADA.js} +1 -1
  10. package/dist/chunk-3FFIDQQB.js +42 -0
  11. package/dist/{chunk-X7HFXXTZ.js → chunk-3GEAUW62.js} +13 -13
  12. package/dist/{chunk-TXYMNKGM.js → chunk-3KIMLBGZ.js} +5 -5
  13. package/dist/{chunk-GKZDHXC2.js → chunk-3KP7OOJ4.js} +8 -8
  14. package/dist/{chunk-LBG4GMOR.js → chunk-43OWNS5N.js} +4 -4
  15. package/dist/{chunk-NTEPBOAF.js → chunk-4DHYXODN.js} +4 -4
  16. package/dist/chunk-4N5W7LYW.js +41 -0
  17. package/dist/{chunk-MUY5MAGM.js → chunk-4NWE2KY3.js} +12 -12
  18. package/dist/{chunk-5FUFVNXB.js → chunk-5A4RHEEL.js} +2 -2
  19. package/dist/{chunk-NTOPAOBY.js → chunk-5JGRF53S.js} +3 -3
  20. package/dist/{chunk-G3W7GNEP.js → chunk-5UIGGXA5.js} +18 -18
  21. package/dist/{chunk-QGBS4GMS.js → chunk-63572EFC.js} +13 -13
  22. package/dist/{chunk-BFQ5IKQA.js → chunk-64LSDT3D.js} +11 -11
  23. package/dist/{chunk-3VS7RNEB.js → chunk-6EMJ4XFC.js} +18 -18
  24. package/dist/{chunk-XERIHPBF.js → chunk-6P67IUET.js} +9 -9
  25. package/dist/{chunk-FDL2JOLB.js → chunk-6SIGGA37.js} +23 -23
  26. package/dist/{chunk-NC56V6KQ.js → chunk-6TZ4YRGJ.js} +5 -5
  27. package/dist/{chunk-ESJALLOK.js → chunk-6U65YB54.js} +3 -3
  28. package/dist/{chunk-GJVCBTSO.js → chunk-6ZDAEUKB.js} +798 -175
  29. package/dist/{chunk-5EIKOU7L.js → chunk-723OQZ3N.js} +5 -5
  30. package/dist/{chunk-XXRBAJ36.js → chunk-76AHTJVY.js} +13 -13
  31. package/dist/{chunk-BYKWWSXL.js → chunk-7AEB74KW.js} +6 -6
  32. package/dist/{chunk-JMH6TCZJ.js → chunk-7IWMRZRI.js} +21 -21
  33. package/dist/{chunk-JUHZBZPZ.js → chunk-7JZONWAA.js} +7 -7
  34. package/dist/chunk-7NVLGPER.js +45 -0
  35. package/dist/{chunk-ZCU2UY47.js → chunk-7ZBYRMWK.js} +23 -23
  36. package/dist/{chunk-6FIYEB7M.js → chunk-A6LGX56J.js} +23 -23
  37. package/dist/{chunk-UWJOM457.js → chunk-ACY3U2RD.js} +4 -4
  38. package/dist/chunk-AHACUPGL.js +46 -0
  39. package/dist/{chunk-YUJTOALL.js → chunk-ANFBBJEV.js} +19 -19
  40. package/dist/{chunk-D5CJEKZI.js → chunk-B3JHERXM.js} +3 -3
  41. package/dist/{chunk-MQFSEGTU.js → chunk-B7KGNEFI.js} +135 -31
  42. package/dist/{chunk-2ITYURTR.js → chunk-BABRMZET.js} +3 -3
  43. package/dist/{chunk-OYTSRNSZ.js → chunk-BD7HBZLP.js} +6 -6
  44. package/dist/{chunk-CCQZN6W3.js → chunk-BEEHCL5O.js} +34 -34
  45. package/dist/{chunk-JCG2EBNB.js → chunk-BGOAJFPB.js} +1 -1
  46. package/dist/{chunk-MVXMISNA.js → chunk-BIAQ6NQS.js} +7 -7
  47. package/dist/{chunk-GS7N3RFG.js → chunk-BIKMME4S.js} +30 -25
  48. package/dist/{chunk-4DCIUKIE.js → chunk-BIWNRS5I.js} +26 -14
  49. package/dist/{chunk-QOC3Q4UU.js → chunk-BSZII65X.js} +3 -3
  50. package/dist/{chunk-7U46TCRZ.js → chunk-BV2BZIUF.js} +19 -19
  51. package/dist/{chunk-FFDVAV56.js → chunk-C3TBDX7Y.js} +23 -23
  52. package/dist/{chunk-ASFRT33J.js → chunk-CFK6CFXM.js} +9 -9
  53. package/dist/{chunk-DF6DPCW2.js → chunk-CG6MG7SE.js} +11 -11
  54. package/dist/{chunk-M3RWF7MC.js → chunk-CNEOKSTO.js} +27 -27
  55. package/dist/{chunk-JFBVIMGY.js → chunk-CNT6T2JM.js} +13 -13
  56. package/dist/{chunk-MPATOMY5.js → chunk-CPE7HLIK.js} +15 -15
  57. package/dist/{chunk-WECCLSYY.js → chunk-CSHJZFOE.js} +229 -32
  58. package/dist/{chunk-XKNISZ6N.js → chunk-CUTMM4NY.js} +16 -16
  59. package/dist/{chunk-NOU5IBLM.js → chunk-CWLXVRFH.js} +5 -5
  60. package/dist/{chunk-MWN7CBVL.js → chunk-D4TW3PUO.js} +4 -4
  61. package/dist/{chunk-QJ3AYXVO.js → chunk-D5H3RZNE.js} +13 -13
  62. package/dist/{chunk-XPXOKHNZ.js → chunk-DARX3ATP.js} +11 -11
  63. package/dist/{chunk-L3PIN47C.js → chunk-DASVVML7.js} +5 -5
  64. package/dist/{chunk-37UTWGU4.js → chunk-DB3NWAU3.js} +4 -4
  65. package/dist/{chunk-DCQSPSXU.js → chunk-DB6TDJ4T.js} +19 -19
  66. package/dist/{chunk-CCQWQFOT.js → chunk-DG7KYZAL.js} +18 -18
  67. package/dist/{chunk-FL53R4SW.js → chunk-DHQXCP2X.js} +5 -2
  68. package/dist/{chunk-6UTD5RQH.js → chunk-DJBXXYYA.js} +11 -11
  69. package/dist/{chunk-PZBNDFZ7.js → chunk-DOU52XFZ.js} +40 -20
  70. package/dist/{chunk-BWYW533C.js → chunk-DPH4BS3F.js} +10 -10
  71. package/dist/{chunk-LAGZBQHK.js → chunk-DS5M2J2H.js} +13 -13
  72. package/dist/chunk-DWD6BKHG.js +52 -0
  73. package/dist/{chunk-2JHE75RW.js → chunk-DXBXZNKV.js} +10 -10
  74. package/dist/{chunk-HXFZX2BI.js → chunk-DXLWZ3BJ.js} +9 -9
  75. package/dist/{chunk-EUMXLSW5.js → chunk-E5NHFHGC.js} +5 -5
  76. package/dist/{chunk-U37ZOYJJ.js → chunk-EECFUQP3.js} +109 -15
  77. package/dist/{chunk-66DWUSNY.js → chunk-EEVSFGIU.js} +21 -21
  78. package/dist/{chunk-3XCCT2GR.js → chunk-ELR7DEQM.js} +156 -110
  79. package/dist/chunk-EN3N6LNU.js +52 -0
  80. package/dist/{chunk-FGW5TLGM.js → chunk-EQMNMG6X.js} +11 -11
  81. package/dist/{chunk-AWDCVZYO.js → chunk-ET7SPOBA.js} +6 -6
  82. package/dist/{chunk-ZIAYNHHE.js → chunk-EUTZTJIO.js} +32 -15
  83. package/dist/{chunk-4CS3PMIM.js → chunk-EVKDWJ5Y.js} +5 -5
  84. package/dist/{chunk-ANUMIPF6.js → chunk-EY3OVHNC.js} +21 -21
  85. package/dist/{chunk-UXO25YBN.js → chunk-F4EGHECF.js} +3 -3
  86. package/dist/{chunk-YHWX5LPT.js → chunk-F6GRBF5L.js} +22 -22
  87. package/dist/{chunk-KYO5HT4G.js → chunk-FIZ5LYL2.js} +13 -13
  88. package/dist/{chunk-JVMNEI7B.js → chunk-FOOU5OJE.js} +3 -3
  89. package/dist/{chunk-RQSUFGU2.js → chunk-FWQDH5NK.js} +25 -25
  90. package/dist/{chunk-IRXZKKCG.js → chunk-FYCN2Y5P.js} +16 -16
  91. package/dist/{chunk-BQXAHIZ6.js → chunk-GAJBMPWC.js} +8 -8
  92. package/dist/{chunk-ZJ2W2RDE.js → chunk-GFFTVQ7R.js} +6 -6
  93. package/dist/chunk-GHCFWIUW.js +38 -0
  94. package/dist/{chunk-4MNMOUU7.js → chunk-GHST3KAB.js} +4 -4
  95. package/dist/{chunk-UKRJ2ISN.js → chunk-GJSLO2E2.js} +4 -4
  96. package/dist/{chunk-XNW3EDCY.js → chunk-GNFZ227W.js} +3 -3
  97. package/dist/{chunk-CI4D6VSU.js → chunk-GSIJWDXH.js} +19 -19
  98. package/dist/{chunk-432FGEVB.js → chunk-GXJ2PSDW.js} +8 -8
  99. package/dist/{chunk-CKRPMRFQ.js → chunk-H26T2LQL.js} +26 -26
  100. package/dist/{chunk-G67GOK4S.js → chunk-H5BIVULF.js} +7 -7
  101. package/dist/{chunk-4RKIOUPA.js → chunk-H7CSCA73.js} +5 -5
  102. package/dist/{chunk-HYHV2P3G.js → chunk-HCC5547C.js} +12 -12
  103. package/dist/{chunk-SUAHNYNQ.js → chunk-HLDUWEO7.js} +16 -16
  104. package/dist/{chunk-HI7ADE4E.js → chunk-HNNMT5L2.js} +1 -1
  105. package/dist/{chunk-DIYNRYXW.js → chunk-HQMLY2R6.js} +2 -2
  106. package/dist/{chunk-RSHVSXPJ.js → chunk-HSJKYDHI.js} +5 -5
  107. package/dist/{chunk-SLGUSFOD.js → chunk-HV6PXXK7.js} +3 -3
  108. package/dist/{chunk-77AZRGWE.js → chunk-HVOE7ZW2.js} +16 -16
  109. package/dist/{chunk-B63NWU3P.js → chunk-HVWPN2RY.js} +13 -13
  110. package/dist/{chunk-CU7ZK7KP.js → chunk-HWPX3T55.js} +15 -15
  111. package/dist/{chunk-5FPAKAGE.js → chunk-I2EWY3MG.js} +3 -3
  112. package/dist/{chunk-OCU5S2XG.js → chunk-I72PEROE.js} +4 -4
  113. package/dist/{chunk-J4K4C4T5.js → chunk-IBIIKUC7.js} +14 -19
  114. package/dist/{chunk-LDKP7OWQ.js → chunk-IDRCBMJF.js} +29 -29
  115. package/dist/{chunk-L6Z6TMIK.js → chunk-IEIHVMM6.js} +15 -8
  116. package/dist/{chunk-ABDE5IRC.js → chunk-IERXBWQU.js} +17 -17
  117. package/dist/{chunk-D5ZC7IMC.js → chunk-IFQJ3YQE.js} +4 -4
  118. package/dist/{chunk-U66RQUFC.js → chunk-IH6BYFMH.js} +5 -5
  119. package/dist/{chunk-A53IYUCR.js → chunk-IJN5PSDU.js} +16 -16
  120. package/dist/{chunk-LTIXFLYE.js → chunk-IL7PVMUO.js} +6 -6
  121. package/dist/{chunk-ZSNNF26J.js → chunk-IP6ARMZU.js} +21 -21
  122. package/dist/{chunk-SUYC5NP6.js → chunk-ISCX25D7.js} +21 -21
  123. package/dist/{chunk-CFSBBLDD.js → chunk-IYEET4VM.js} +24 -24
  124. package/dist/{chunk-775FMPUB.js → chunk-IZIGZ7KY.js} +4 -4
  125. package/dist/{chunk-SWSGRRNO.js → chunk-JJEXMHNZ.js} +5 -5
  126. package/dist/{chunk-5QF5W5P2.js → chunk-JLTJAOO4.js} +5 -5
  127. package/dist/{chunk-3UMKLB6P.js → chunk-K2NQTROJ.js} +5 -5
  128. package/dist/{chunk-GXQYEIYM.js → chunk-K35VNKJH.js} +6 -6
  129. package/dist/{chunk-CZ75S2EZ.js → chunk-K3QKOVZN.js} +6 -6
  130. package/dist/{chunk-IK6LHW3E.js → chunk-KAWWXCPI.js} +3 -3
  131. package/dist/{chunk-T5NH5L7A.js → chunk-KFJMQUSK.js} +13 -13
  132. package/dist/{chunk-CFSHLQPK.js → chunk-KFZ5IXEZ.js} +25 -25
  133. package/dist/{chunk-3FGQFDS4.js → chunk-KJD4DLRZ.js} +19 -19
  134. package/dist/{chunk-3BEGKSDW.js → chunk-KL7UHAOR.js} +9 -9
  135. package/dist/{chunk-FFYOZ7PF.js → chunk-KS2IQYTZ.js} +9 -9
  136. package/dist/{chunk-H7KERB6Q.js → chunk-KUEG2Y7M.js} +6 -6
  137. package/dist/{chunk-532HDXMM.js → chunk-KZ4I5M2X.js} +7 -7
  138. package/dist/{chunk-PB3NCPRF.js → chunk-KZH5YV6J.js} +6 -6
  139. package/dist/{chunk-5ORLKITZ.js → chunk-LBBI5P5G.js} +22 -22
  140. package/dist/{chunk-HRYI22QU.js → chunk-LCRQPWTC.js} +16 -16
  141. package/dist/chunk-LH4WAJLC.js +45 -0
  142. package/dist/{chunk-BBZ6UKN3.js → chunk-LHN5UCXD.js} +3 -3
  143. package/dist/{chunk-PIPYJTIL.js → chunk-LTOBNBJ6.js} +24 -24
  144. package/dist/{chunk-R6CJOMPC.js → chunk-LY7DOYX2.js} +13 -13
  145. package/dist/{chunk-QFDPX6C4.js → chunk-LZFKJ2BR.js} +4 -0
  146. package/dist/chunk-M5IQUWJR.js +59 -0
  147. package/dist/{chunk-3TGX4SJ3.js → chunk-MCORC2LG.js} +5 -5
  148. package/dist/{chunk-G3ZFEHCX.js → chunk-MEMEO7YO.js} +88 -25
  149. package/dist/{chunk-VE2T5URA.js → chunk-MGNO4Q6V.js} +23 -23
  150. package/dist/{chunk-RRKM3GJA.js → chunk-MKUBDKE2.js} +24 -24
  151. package/dist/{chunk-Z5YDTIWQ.js → chunk-MM7JSMLW.js} +13 -13
  152. package/dist/{chunk-MZWM73S2.js → chunk-MQ6HP2TU.js} +6 -6
  153. package/dist/{chunk-QYFNVQLK.js → chunk-MTIRNHRJ.js} +1 -1
  154. package/dist/{chunk-5Z7L2TSR.js → chunk-MY3LDBMR.js} +3 -3
  155. package/dist/chunk-MZ6GOFRF.js +55 -0
  156. package/dist/{chunk-RQAMZVWW.js → chunk-MZXDSAKW.js} +9 -9
  157. package/dist/{chunk-RU5W7JJQ.js → chunk-N2AW2DHF.js} +24 -24
  158. package/dist/chunk-N35Y5HZO.js +47 -0
  159. package/dist/{chunk-OKSRK2LJ.js → chunk-NCZS2BN2.js} +18 -18
  160. package/dist/{chunk-ZX6RAGE6.js → chunk-NECDBPFP.js} +10 -10
  161. package/dist/{chunk-UI6KNLSO.js → chunk-NHFMLMLN.js} +12 -12
  162. package/dist/{chunk-O4ZWZZZT.js → chunk-NMCPIYTF.js} +5 -5
  163. package/dist/{chunk-TBQHBOFF.js → chunk-NMURRF5F.js} +9 -9
  164. package/dist/{chunk-BTS56NV7.js → chunk-NP3PG6OI.js} +37 -34
  165. package/dist/{chunk-EPQQ2XVM.js → chunk-NQDVD2YR.js} +10 -10
  166. package/dist/{chunk-OSWOIFRQ.js → chunk-NVVEVP5O.js} +5 -5
  167. package/dist/{chunk-A3NUZJFI.js → chunk-OH2OHNB5.js} +3 -3
  168. package/dist/{chunk-IOHRX4KF.js → chunk-OI32KTDM.js} +18 -14
  169. package/dist/{chunk-ZSD75FYI.js → chunk-OXCHO2QS.js} +19 -19
  170. package/dist/{chunk-LKUTBQ2Y.js → chunk-P6DM2EFI.js} +6 -6
  171. package/dist/{chunk-OYKNPZCV.js → chunk-P6EJNPFF.js} +224 -180
  172. package/dist/{chunk-HWNFFCGB.js → chunk-PBDIVTFL.js} +3 -3
  173. package/dist/chunk-PFWP624T.js +278 -0
  174. package/dist/{chunk-3XZRYQWU.js → chunk-PGDVJWCI.js} +32 -32
  175. package/dist/{chunk-DIXA74N7.js → chunk-PLSCWC2V.js} +4 -4
  176. package/dist/chunk-PR6Z5L7W.js +67 -0
  177. package/dist/{chunk-LOCJHNZI.js → chunk-PXDAGXQN.js} +9 -9
  178. package/dist/{chunk-JJ4SCGRJ.js → chunk-PZFZPHCT.js} +7 -7
  179. package/dist/{chunk-TKE6ZJMM.js → chunk-Q3RKXK5Z.js} +25 -25
  180. package/dist/{chunk-GFYVVTKH.js → chunk-QAFQLILX.js} +6 -6
  181. package/dist/{chunk-WWSCJBF6.js → chunk-QQAWI5LD.js} +13 -13
  182. package/dist/{chunk-ZRQHSMPK.js → chunk-QXCGRQGO.js} +5 -5
  183. package/dist/{chunk-EHF2MBGR.js → chunk-R2FUFBHW.js} +3 -3
  184. package/dist/{chunk-AM7PYKVP.js → chunk-RBO4A7TC.js} +11 -11
  185. package/dist/{chunk-ETQSQ2EC.js → chunk-RCLBIJRN.js} +5 -5
  186. package/dist/{chunk-HNPKCRCE.js → chunk-RK5P2DWD.js} +1375 -210
  187. package/dist/{chunk-WAAPMZWO.js → chunk-RO6BE7ZS.js} +5 -5
  188. package/dist/{chunk-YF6N45QN.js → chunk-RQM5Y3HJ.js} +1 -1
  189. package/dist/{chunk-QXXEO4TF.js → chunk-RTCZKKG7.js} +3 -3
  190. package/dist/{chunk-QIDSEHJA.js → chunk-SAPX3PVK.js} +8 -8
  191. package/dist/{chunk-5PSKLTBR.js → chunk-SDHGFMES.js} +3 -3
  192. package/dist/{chunk-GQFUEUC7.js → chunk-SRB54QGX.js} +17 -17
  193. package/dist/{chunk-UCFNHK5L.js → chunk-STBJ6SVJ.js} +21 -21
  194. package/dist/{chunk-MCE74XMF.js → chunk-SZDOBIWE.js} +6 -6
  195. package/dist/{chunk-F63F4NKT.js → chunk-TLBPTUFU.js} +17 -17
  196. package/dist/{chunk-JLYH2QOE.js → chunk-TPKJD42W.js} +6 -6
  197. package/dist/{chunk-3NS4RS3C.js → chunk-TQG2DDWH.js} +19 -19
  198. package/dist/{chunk-CNF2EZ6S.js → chunk-TYN5SG5H.js} +119 -119
  199. package/dist/{chunk-SYLXQNPC.js → chunk-U3JXMY56.js} +23 -23
  200. package/dist/chunk-U3RGBYXE.js +62 -0
  201. package/dist/{chunk-A4VDFIMR.js → chunk-UAYU6K24.js} +13 -13
  202. package/dist/{chunk-LIQWFDOZ.js → chunk-UBEFT3MQ.js} +5 -5
  203. package/dist/{chunk-IJQHBK76.js → chunk-UFIQ5FWY.js} +1 -1
  204. package/dist/{chunk-IWPO5AUT.js → chunk-UIYPX2BA.js} +24 -24
  205. package/dist/{chunk-XNH5ZWIA.js → chunk-UJ5ZJS4B.js} +19 -19
  206. package/dist/chunk-URZKIL37.js +42 -0
  207. package/dist/{chunk-5MKV4TV6.js → chunk-UTZMF5CV.js} +1 -1
  208. package/dist/{chunk-YB5AKYVQ.js → chunk-UWBPC5XH.js} +6 -6
  209. package/dist/{chunk-6OZAQPU5.js → chunk-UXVKFOMC.js} +29 -5
  210. package/dist/{chunk-HRHXTLUM.js → chunk-UZBLVNW6.js} +15 -15
  211. package/dist/{chunk-JYJMIAFS.js → chunk-V3M4VFUB.js} +5 -5
  212. package/dist/{chunk-DCRZ3OQ7.js → chunk-V5FT3MZG.js} +6 -6
  213. package/dist/{chunk-KIY2WCN7.js → chunk-V5ZKGBYL.js} +4 -4
  214. package/dist/{chunk-MMOMKHAX.js → chunk-VCXFMXMX.js} +5 -5
  215. package/dist/{chunk-YLZNTVZR.js → chunk-VGGSHDQU.js} +8 -8
  216. package/dist/{chunk-A6ZG3UOS.js → chunk-VIQHZA53.js} +6 -6
  217. package/dist/{chunk-MT3FNSXO.js → chunk-VJO7M34N.js} +2 -2
  218. package/dist/{chunk-4DX4DIND.js → chunk-VPQUFIE7.js} +8 -8
  219. package/dist/{chunk-TAR6T2RE.js → chunk-VTR4AC2U.js} +3 -3
  220. package/dist/{chunk-6TNQO76I.js → chunk-VUSYN4R4.js} +6 -6
  221. package/dist/{chunk-HGDBM3A5.js → chunk-W4SMKUAK.js} +2 -2
  222. package/dist/chunk-W7HNZDHB.js +71 -0
  223. package/dist/{chunk-U2JTTRKS.js → chunk-WH3ZFLXT.js} +7 -7
  224. package/dist/{chunk-IB66ZLDN.js → chunk-WLA2JZ2K.js} +5 -5
  225. package/dist/{chunk-H5EQOSTC.js → chunk-WM4EMP7T.js} +39 -39
  226. package/dist/{chunk-E7YDJH6B.js → chunk-WT6EXYEY.js} +10 -10
  227. package/dist/{chunk-JCEYOSST.js → chunk-WYO4L4NU.js} +4 -4
  228. package/dist/{chunk-GCMDDVIE.js → chunk-XDLMQL5A.js} +44 -11
  229. package/dist/{chunk-U57VLY6X.js → chunk-XEWFVHOT.js} +21 -21
  230. package/dist/{chunk-44QUCNPH.js → chunk-XI3GPYP4.js} +5 -5
  231. package/dist/{chunk-MDTAZ6NE.js → chunk-XIGVTH24.js} +12 -12
  232. package/dist/{chunk-OSZTENIA.js → chunk-XIJBQM45.js} +3 -3
  233. package/dist/{chunk-NN6AXKFX.js → chunk-XT3ZW7C7.js} +16 -16
  234. package/dist/{chunk-LELM7X5H.js → chunk-YEHSJY6B.js} +8 -8
  235. package/dist/{chunk-7HWCEDPX.js → chunk-YIOYKA4V.js} +5 -5
  236. package/dist/{chunk-ROWZYQOI.js → chunk-YJBD5NDV.js} +6 -6
  237. package/dist/{chunk-PUMNCWHJ.js → chunk-YLXPJWNO.js} +14 -14
  238. package/dist/{chunk-NX5IPHI3.js → chunk-YWQZ7CCW.js} +13 -13
  239. package/dist/{chunk-DH3EQMIA.js → chunk-YXKCE5BA.js} +4 -4
  240. package/dist/{chunk-D63NU53X.js → chunk-YYV276DM.js} +19 -19
  241. package/dist/{chunk-GQPP4P2E.js → chunk-YYZWSVIS.js} +17 -17
  242. package/dist/{chunk-RYY554OA.js → chunk-Z33UNTHI.js} +6 -6
  243. package/dist/{chunk-Q5QSWV2R.js → chunk-ZA2PWNR3.js} +13 -13
  244. package/dist/{chunk-T24TBI7F.js → chunk-ZAMSF2DF.js} +23 -23
  245. package/dist/{chunk-MOWUP33K.js → chunk-ZDA72732.js} +3 -3
  246. package/dist/{chunk-ENZ3PI7L.js → chunk-ZFEOIYK5.js} +3 -3
  247. package/dist/{chunk-YDDLVBQ4.js → chunk-ZFLBWL2G.js} +3 -3
  248. package/dist/{chunk-QK6CGRKK.js → chunk-ZLBUFK7L.js} +5 -5
  249. package/dist/{chunk-LIB6AUZS.js → chunk-ZNYSBQIA.js} +5 -5
  250. package/dist/{chunk-OTUBMKSG.js → chunk-ZQGFZJH5.js} +4 -4
  251. package/dist/{chunk-AAY6VPPO.js → chunk-ZWMHL346.js} +17 -17
  252. package/dist/{chunk-BLVFHN3C.js → chunk-ZYLGEWTC.js} +39 -39
  253. package/dist/files.json +551 -551
  254. package/dist/packages/sdk/npm/index.js +183 -30
  255. package/dist/packages/ui/dist/assets/{elk-api--rH6Kdl4.js → elk-api-BdXSPeBO.js} +2 -2
  256. package/dist/packages/ui/dist/assets/index-DRSUhpFi.css +1 -0
  257. package/dist/packages/ui/dist/assets/index-RZe5iotJ.js +63 -0
  258. package/dist/packages/ui/dist/index.html +2 -2
  259. package/package.json +3 -3
  260. package/dist/chunk-26AB2WNW.js +0 -62
  261. package/dist/chunk-C7BB6IQT.js +0 -147
  262. package/dist/chunk-DD2AXECF.js +0 -41
  263. package/dist/chunk-DYDNW4O6.js +0 -52
  264. package/dist/chunk-EEKQI3U4.js +0 -45
  265. package/dist/chunk-FYWLB7PO.js +0 -38
  266. package/dist/chunk-L27KUL5B.js +0 -38
  267. package/dist/chunk-MA6UK7GX.js +0 -42
  268. package/dist/chunk-NBZ7RKX3.js +0 -46
  269. package/dist/chunk-OYZ64UMQ.js +0 -67
  270. package/dist/chunk-PIPJZIJE.js +0 -47
  271. package/dist/chunk-Q2ULHBCJ.js +0 -59
  272. package/dist/chunk-QVF4KYIO.js +0 -71
  273. package/dist/chunk-T2HXLDY3.js +0 -55
  274. package/dist/chunk-TKEXS74L.js +0 -52
  275. package/dist/chunk-WQDJGNJQ.js +0 -45
  276. package/dist/packages/ui/dist/assets/index-Bf2immpE.css +0 -1
  277. package/dist/packages/ui/dist/assets/index-CH4nGIW3.js +0 -62
@@ -10,17 +10,17 @@ import {
10
10
  precisionOf,
11
11
  prepareAudit,
12
12
  writeAudit
13
- } from "./chunk-532HDXMM.js";
13
+ } from "./chunk-KZ4I5M2X.js";
14
14
  import {
15
15
  uiCiteRoutes
16
- } from "./chunk-37UTWGU4.js";
17
- import "./chunk-IB66ZLDN.js";
16
+ } from "./chunk-DB3NWAU3.js";
17
+ import "./chunk-WLA2JZ2K.js";
18
18
  import {
19
19
  uiComponentTypeRoutes
20
- } from "./chunk-OTUBMKSG.js";
20
+ } from "./chunk-ZQGFZJH5.js";
21
21
  import {
22
22
  conformanceCommand
23
- } from "./chunk-TXYMNKGM.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-5PSKLTBR.js";
32
+ } from "./chunk-SDHGFMES.js";
33
33
  import {
34
34
  historyEntry,
35
35
  listHistory
36
- } from "./chunk-XNW3EDCY.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-UWJOM457.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-EHF2MBGR.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-YDDLVBQ4.js";
59
+ } from "./chunk-ZFLBWL2G.js";
60
60
  import {
61
61
  inputsSha256,
62
62
  loadExecutors
63
- } from "./chunk-QXXEO4TF.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-3BEGKSDW.js";
71
+ } from "./chunk-KL7UHAOR.js";
72
72
  import {
73
73
  defencesScan,
74
74
  evalRun
75
- } from "./chunk-7HWCEDPX.js";
75
+ } from "./chunk-YIOYKA4V.js";
76
76
  import {
77
77
  listReports,
78
78
  readQuality
79
- } from "./chunk-FGW5TLGM.js";
79
+ } from "./chunk-EQMNMG6X.js";
80
80
  import {
81
81
  estimateOf
82
- } from "./chunk-ROWZYQOI.js";
82
+ } from "./chunk-YJBD5NDV.js";
83
83
  import {
84
84
  changeMapBody,
85
85
  changeMapOf,
86
86
  targetFlowsOf
87
- } from "./chunk-L6Z6TMIK.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-ZSD75FYI.js";
95
+ } from "./chunk-OXCHO2QS.js";
96
96
  import {
97
97
  boxesOf,
98
98
  candidatesOf,
99
99
  uiLinkRoutes
100
- } from "./chunk-NQDHRT2H.js";
100
+ } from "./chunk-2XIIUXGX.js";
101
101
  import {
102
102
  matchDone,
103
103
  quotesOf,
104
104
  readMatch,
105
105
  runMatch
106
- } from "./chunk-EPQQ2XVM.js";
107
- import "./chunk-GKZDHXC2.js";
106
+ } from "./chunk-NQDVD2YR.js";
107
+ import "./chunk-3KP7OOJ4.js";
108
108
  import {
109
109
  readServiceRequests
110
- } from "./chunk-6UTD5RQH.js";
110
+ } from "./chunk-DJBXXYYA.js";
111
111
  import {
112
112
  initiativeStatus,
113
113
  readView
114
- } from "./chunk-JUHZBZPZ.js";
114
+ } from "./chunk-7JZONWAA.js";
115
115
  import {
116
116
  runDone,
117
117
  taskRun,
118
118
  taskRunNotWaiting
119
- } from "./chunk-ASFRT33J.js";
119
+ } from "./chunk-CFK6CFXM.js";
120
120
  import {
121
121
  idFromUrl
122
- } from "./chunk-MZWM73S2.js";
122
+ } from "./chunk-MQ6HP2TU.js";
123
123
  import {
124
124
  DecideError,
125
125
  correctDecision,
126
126
  decisionsView,
127
127
  undoBatch
128
- } from "./chunk-IOHRX4KF.js";
129
- import "./chunk-XPXOKHNZ.js";
128
+ } from "./chunk-OI32KTDM.js";
129
+ import "./chunk-DARX3ATP.js";
130
130
  import {
131
131
  copilotAcpAllowed
132
- } from "./chunk-2JHE75RW.js";
133
- import "./chunk-PZBNDFZ7.js";
134
- import "./chunk-2ITYURTR.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-BBZ6UKN3.js";
137
+ } from "./chunk-LHN5UCXD.js";
138
138
  import {
139
139
  filesUnder,
140
140
  memoByFiles,
141
141
  recheckNow,
142
142
  uiFactsRoutes
143
- } from "./chunk-3XCCT2GR.js";
143
+ } from "./chunk-ELR7DEQM.js";
144
144
  import {
145
145
  safeMessage,
146
146
  withFileLock
147
- } from "./chunk-QOC3Q4UU.js";
148
- import "./chunk-4DCIUKIE.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-HGDBM3A5.js";
153
- import "./chunk-HXFZX2BI.js";
154
- import "./chunk-5Z7L2TSR.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-MVXMISNA.js";
157
+ } from "./chunk-BIAQ6NQS.js";
158
158
  import {
159
159
  reconcileCommand
160
- } from "./chunk-NTEPBOAF.js";
160
+ } from "./chunk-4DHYXODN.js";
161
161
  import {
162
162
  sourcesAdd,
163
163
  sourcesSync
164
- } from "./chunk-YLZNTVZR.js";
164
+ } from "./chunk-VGGSHDQU.js";
165
165
  import {
166
166
  INPUTS_SOURCE_ID
167
- } from "./chunk-UXO25YBN.js";
168
- import "./chunk-RSHVSXPJ.js";
167
+ } from "./chunk-F4EGHECF.js";
168
+ import "./chunk-HSJKYDHI.js";
169
169
  import {
170
170
  uiOnboardingRoutes
171
- } from "./chunk-3UMKLB6P.js";
171
+ } from "./chunk-K2NQTROJ.js";
172
172
  import "./chunk-X7XVMYIL.js";
173
- import "./chunk-YA2IJJ6N.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-ZIAYNHHE.js";
180
+ } from "./chunk-EUTZTJIO.js";
181
181
  import {
182
182
  contractCheckOf,
183
183
  estateJoinOnFile,
184
184
  stampOf
185
- } from "./chunk-AM7PYKVP.js";
186
- import "./chunk-AWDCVZYO.js";
187
- import "./chunk-OYTSRNSZ.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-6TNQO76I.js";
192
+ } from "./chunk-VUSYN4R4.js";
193
193
  import {
194
194
  doctorChecks
195
- } from "./chunk-MDTAZ6NE.js";
195
+ } from "./chunk-XIGVTH24.js";
196
196
  import {
197
197
  readMe,
198
198
  writeMe
199
- } from "./chunk-MT3FNSXO.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-R6CJOMPC.js";
214
- import "./chunk-DCRZ3OQ7.js";
215
- import "./chunk-LKUTBQ2Y.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-GCMDDVIE.js";
219
- import "./chunk-HWNFFCGB.js";
218
+ } from "./chunk-XDLMQL5A.js";
219
+ import "./chunk-PBDIVTFL.js";
220
220
  import {
221
221
  intakeContext
222
- } from "./chunk-44QUCNPH.js";
222
+ } from "./chunk-XI3GPYP4.js";
223
223
  import {
224
- scanCommand
225
- } from "./chunk-U37ZOYJJ.js";
226
- import "./chunk-EUMXLSW5.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-JVMNEI7B.js";
232
+ } from "./chunk-FOOU5OJE.js";
232
233
  import {
233
234
  isMetarepo
234
235
  } from "./chunk-3G4YI4ZU.js";
235
- import "./chunk-E7YDJH6B.js";
236
- import "./chunk-IUBBEU6O.js";
236
+ import "./chunk-WT6EXYEY.js";
237
+ import "./chunk-2IO6XH37.js";
237
238
  import {
238
239
  workspaceOpen,
239
240
  workspaceSync
240
- } from "./chunk-CU7ZK7KP.js";
241
- import "./chunk-HI7ADE4E.js";
242
- import "./chunk-BYKWWSXL.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-BWYW533C.js";
248
+ } from "./chunk-DPH4BS3F.js";
248
249
  import {
249
250
  ASSISTANT_FORMATS,
250
251
  readProbes,
251
252
  whatRunsWhere
252
- } from "./chunk-J4K4C4T5.js";
253
+ } from "./chunk-IBIIKUC7.js";
253
254
  import {
254
255
  critic,
255
256
  criticStats,
256
257
  findingAction
257
- } from "./chunk-PB3NCPRF.js";
258
- import "./chunk-G67GOK4S.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-775FMPUB.js";
264
- import "./chunk-YF6N45QN.js";
264
+ } from "./chunk-IZIGZ7KY.js";
265
+ import "./chunk-RQM5Y3HJ.js";
265
266
  import {
266
267
  ciArchiveGate
267
- } from "./chunk-5QF5W5P2.js";
268
+ } from "./chunk-JLTJAOO4.js";
268
269
  import {
269
270
  traceMatrix
270
- } from "./chunk-QIDSEHJA.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-LELM7X5H.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-WECCLSYY.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-5FUFVNXB.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-W4EG25TI.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-A6ZG3UOS.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-U2JTTRKS.js";
376
- import "./chunk-5MKV4TV6.js";
376
+ } from "./chunk-WH3ZFLXT.js";
377
+ import "./chunk-UTZMF5CV.js";
377
378
  import {
378
379
  fileStepStore,
379
380
  manualAdapter,
380
381
  stepOfProvisional
381
- } from "./chunk-ESJALLOK.js";
382
- import "./chunk-MCE74XMF.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-4MNMOUU7.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-NTOPAOBY.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-25CUJJTP.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-HNPKCRCE.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-CZ75S2EZ.js";
442
+ } from "./chunk-K3QKOVZN.js";
442
443
  import {
443
444
  readServiceRequestExports,
444
445
  readVendorSpec,
445
446
  readWorkItemExports
446
- } from "./chunk-GFYVVTKH.js";
447
- import "./chunk-DIYNRYXW.js";
448
- import "./chunk-5FPAKAGE.js";
449
- import "./chunk-IJQHBK76.js";
450
- import "./chunk-QYFNVQLK.js";
451
- import "./chunk-FL53R4SW.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-MOWUP33K.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-OSZTENIA.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-GJVCBTSO.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,
@@ -569,7 +570,7 @@ import {
569
570
  knowledgeKindOf,
570
571
  loadOrgPack,
571
572
  pageStanding
572
- } from "./chunk-QFDPX6C4.js";
573
+ } from "./chunk-LZFKJ2BR.js";
573
574
  import {
574
575
  keptFilesMayHaveChanged,
575
576
  trustKeptFiles
@@ -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-EEKQI3U4.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-DCQSPSXU.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-MPATOMY5.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-Q2ULHBCJ.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-ZCU2UY47.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-JYJMIAFS.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-6OZAQPU5.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-ZSNNF26J.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-CCQZN6W3.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-JJ4SCGRJ.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-JJ4SCGRJ.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-JJ4SCGRJ.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-CNF2EZ6S.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-JJ4SCGRJ.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-EEKQI3U4.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-VE2T5URA.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-VE2T5URA.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-A53IYUCR.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-A53IYUCR.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-A53IYUCR.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-A53IYUCR.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-FFDVAV56.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-YUJTOALL.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-JJ4SCGRJ.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-4DX4DIND.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-77AZRGWE.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-77AZRGWE.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-ZCU2UY47.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-CNF2EZ6S.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-CNF2EZ6S.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-WWSCJBF6.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-NN6AXKFX.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-5EIKOU7L.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-SGYQORAD.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-XKNISZ6N.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-XKNISZ6N.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-B63NWU3P.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-NOU5IBLM.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-B63NWU3P.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 } : {}
@@ -4203,8 +4239,16 @@ function uiGraphRoutes(r, ctx) {
4203
4239
  throw badRequest("Say edge=<edge id> and node=<id> or focus=<id>.");
4204
4240
  const id = idOf(node ?? focus);
4205
4241
  const lens = lensOf(query.get("lens"), node ? "architecture" : "data");
4242
+ const d = query.get("depth");
4243
+ if (d !== null && !/^[1-3]$/.test(d))
4244
+ throw badRequest("depth is 1, 2 or 3.");
4206
4245
  const est = await estate();
4207
- const v = guard(() => node ? nodeView(est, id, { lens, everyJoin: true }) : focusView(est, id, { lens, everyJoin: true }));
4246
+ const v = guard(() => node ? nodeView(est, id, {
4247
+ lens,
4248
+ depth: d ? Number(d) : 1,
4249
+ all: query.get("all") === "1",
4250
+ everyJoin: true
4251
+ }) : focusView(est, id, { lens, everyJoin: true }));
4208
4252
  const e = v.edges.find((x) => x.id === edge);
4209
4253
  if (!e)
4210
4254
  throw notFound(`The ${lens} view of ${id} has no edge ${edge}.`);
@@ -4440,7 +4484,7 @@ function uiSpecRoutes(r, ctx) {
4440
4484
  });
4441
4485
  r.add("GET", "/api/changes/{changeId}/conformance", async ({ params }) => {
4442
4486
  const change = idOf2(params.changeId, "change");
4443
- const { conformanceOf } = await import("./chunk-FDL2JOLB.js");
4487
+ const { conformanceOf } = await import("./chunk-6SIGGA37.js");
4444
4488
  const c = await conformanceOf(root, change);
4445
4489
  if (!c)
4446
4490
  throw notFound(`There is no change ${change}.`);
@@ -4455,7 +4499,7 @@ function uiSpecRoutes(r, ctx) {
4455
4499
  });
4456
4500
  r.add("GET", "/api/changes/{changeId}/impact", async ({ params }) => {
4457
4501
  const change = idOf2(params.changeId, "change");
4458
- const { changeImpactOf } = await import("./chunk-U57VLY6X.js");
4502
+ const { changeImpactOf } = await import("./chunk-XEWFVHOT.js");
4459
4503
  const i = await changeImpactOf(root, change);
4460
4504
  if (!i)
4461
4505
  throw notFound(`There is no change ${change}.`);
@@ -4608,8 +4652,8 @@ function uiKnowledgeRoutes(r, ctx, deps = {}) {
4608
4652
  const slash = id.indexOf("/");
4609
4653
  return hash > 0 && slash > 0 && slash < hash ? { source: id.slice(0, slash), page: id.slice(slash + 1, hash) } : void 0;
4610
4654
  };
4611
- const { knowledgePages } = await import("./chunk-ZSNNF26J.js");
4612
- const { sectionOf } = await import("./chunk-TBQHBOFF.js");
4655
+ const { knowledgePages } = await import("./chunk-IP6ARMZU.js");
4656
+ const { sectionOf } = await import("./chunk-NMURRF5F.js");
4613
4657
  const pages = doc?.items.some((i) => i.id.includes("#")) ? await knowledgePages(root) : [];
4614
4658
  const records = doc?.items.length ? new Map((await readKnowledge(root, { cacheRoot: root })).items.map((r2) => [r2.id, r2])) : /* @__PURE__ */ new Map();
4615
4659
  const passageOf = (id) => {
@@ -4900,7 +4944,7 @@ function uiKnowledgeRoutes(r, ctx, deps = {}) {
4900
4944
  if (source !== void 0)
4901
4945
  idOf3(source, "source");
4902
4946
  const ids = await snapshotSources(root);
4903
- const { inputsPassagePages, pastableArg } = await import("./chunk-ZSNNF26J.js");
4947
+ const { inputsPassagePages, pastableArg } = await import("./chunk-IP6ARMZU.js");
4904
4948
  const live = !ids.includes(INPUTS_SOURCE_ID) && (!source || source === INPUTS_SOURCE_ID) ? await inputsPassagePages(root) : [];
4905
4949
  if (source && !ids.includes(source) && !(source === INPUTS_SOURCE_ID && live.length))
4906
4950
  throw notFound(`${source} has no snapshot yet: atticus sources sync --source ${source}.`);
@@ -5115,7 +5159,7 @@ async function configuredModel(root) {
5115
5159
  function uiModelRunRoutes(r, ctx, deps = {}) {
5116
5160
  const root = ctx.root;
5117
5161
  const runStep = deps.runStep ?? (async (args) => {
5118
- const { main } = await import("./chunk-CNF2EZ6S.js");
5162
+ const { main } = await import("./chunk-TYN5SG5H.js");
5119
5163
  const out = [];
5120
5164
  const err = [];
5121
5165
  const code = await main([...args, "--root", root], { out: (l) => out.push(l), err: (l) => err.push(l) }, { quiet: true });
@@ -5123,7 +5167,7 @@ function uiModelRunRoutes(r, ctx, deps = {}) {
5123
5167
  });
5124
5168
  return r.add("POST", "/api/runs/handoff", async ({ body }) => {
5125
5169
  const words = stepWords(body);
5126
- const { prepareStep } = await import("./chunk-JJ4SCGRJ.js");
5170
+ const { prepareStep } = await import("./chunk-PZFZPHCT.js");
5127
5171
  const { code, prepared } = await prepareStep(root, runStep, words);
5128
5172
  ctx.events.publish({ type: "file.changed", path: runsRelOf(root) });
5129
5173
  if (!prepared.runId && code !== 0) {
@@ -5341,10 +5385,10 @@ var CopilotRun = class {
5341
5385
 
5342
5386
  // packages/cli/dist/ui-api-copilot-runs.js
5343
5387
  var defaultStarter = (root) => async (o, io, deps) => {
5344
- const { mapAllCommand } = await import("./chunk-H5EQOSTC.js");
5388
+ const { mapAllCommand } = await import("./chunk-WM4EMP7T.js");
5345
5389
  return mapAllCommand(root, o, io, {
5346
5390
  ...deps,
5347
- makeAcp: async () => (await import("./chunk-6FIYEB7M.js")).acpStepRunner(root)
5391
+ makeAcp: async () => (await import("./chunk-A6LGX56J.js")).acpStepRunner(root)
5348
5392
  });
5349
5393
  };
5350
5394
  var TAIL = 200;
@@ -5668,7 +5712,7 @@ function uiDecisionRoutes(r, ctx, deps = {}) {
5668
5712
  ctx.events.publish({ type: "file.changed", path });
5669
5713
  return { status: 200, body: out };
5670
5714
  }).add("GET", "/api/propose-answers", async () => {
5671
- const { openDecideRun, PROPOSE_CHANGE } = await import("./chunk-QK6CGRKK.js");
5715
+ const { openDecideRun, PROPOSE_CHANGE } = await import("./chunk-ZLBUFK7L.js");
5672
5716
  const run5 = await openDecideRun(ctx.root, PROPOSE_CHANGE);
5673
5717
  const body = run5 ? {
5674
5718
  state: "waiting",
@@ -5682,7 +5726,7 @@ function uiDecisionRoutes(r, ctx, deps = {}) {
5682
5726
  const op = await loadOrgPack(orgPackDirOf(ctx.root));
5683
5727
  if (op.runtime.ai === "off")
5684
5728
  throw conflict("runtime.yaml turns AI off here (ai: off): answer the questions yourself.");
5685
- const { startProposeHandoff } = await import("./chunk-6FIYEB7M.js");
5729
+ const { startProposeHandoff } = await import("./chunk-A6LGX56J.js");
5686
5730
  const h = await startProposeHandoff(ctx.root, { now: now() });
5687
5731
  const body = {
5688
5732
  state: "waiting",
@@ -6339,7 +6383,7 @@ function uiDocumentRoutes(r, ctx) {
6339
6383
  const root = ctx.root;
6340
6384
  const changed = (path) => ctx.events.publish({ type: "file.changed", path });
6341
6385
  return r.add("GET", "/api/knowledge/documents", async () => {
6342
- const { listDocuments } = await import("./chunk-T5NH5L7A.js");
6386
+ const { listDocuments } = await import("./chunk-KFJMQUSK.js");
6343
6387
  return { status: 200, body: api_exports.DocumentList.parse(await listDocuments(root)) };
6344
6388
  }).add("POST", "/api/knowledge/documents", async ({ body }) => {
6345
6389
  const b = api_exports.AttachFileRequest.safeParse(body ?? {});
@@ -6348,7 +6392,7 @@ function uiDocumentRoutes(r, ctx) {
6348
6392
  const bytes = new Uint8Array(Buffer.from(b.data.content, "base64"));
6349
6393
  if (bytes.length > MAX_FILE)
6350
6394
  throw new HttpError(413, "The file is too large", "Add a file of 15 MB or less.");
6351
- const { addToInbox } = await import("./chunk-WWSCJBF6.js");
6395
+ const { addToInbox } = await import("./chunk-QQAWI5LD.js");
6352
6396
  const res = await addToInbox(root, [{ name: b.data.name, bytes }]);
6353
6397
  if (!res.added.length)
6354
6398
  throw new HttpError(422, "Atticus can't add that", res.refused[0]?.why ?? "", {
@@ -6358,7 +6402,7 @@ function uiDocumentRoutes(r, ctx) {
6358
6402
  changed(a.path);
6359
6403
  return { status: 201, body: api_exports.AddDocumentResult.parse(res) };
6360
6404
  }, { maxBody: Math.ceil(MAX_FILE * 4 / 3) + 64 * 1024 }).add("POST", "/api/changes/{changeId}/inputs/{name}/promote", async ({ params }) => {
6361
- const { AttachError, promoteChangeInput } = await import("./chunk-ZCU2UY47.js");
6405
+ const { AttachError, promoteChangeInput } = await import("./chunk-7ZBYRMWK.js");
6362
6406
  try {
6363
6407
  const res = await promoteChangeInput(root, params.changeId, params.name);
6364
6408
  changed(res.path);
@@ -6375,13 +6419,13 @@ function uiDocumentRoutes(r, ctx) {
6375
6419
  function uiRepoRoutes(r, ctx) {
6376
6420
  const root = ctx.root;
6377
6421
  return r.add("GET", "/api/repos/branches", async () => {
6378
- const { repoBranches } = await import("./chunk-KYO5HT4G.js");
6422
+ const { repoBranches } = await import("./chunk-FIZ5LYL2.js");
6379
6423
  return { status: 200, body: api_exports.RepoBranchesList.parse(await repoBranches(root)) };
6380
6424
  }).add("GET", "/api/repos/compare", async ({ query }) => {
6381
6425
  const branch = query.get("branch")?.trim() ?? "";
6382
6426
  if (!branch)
6383
6427
  throw badRequest("Say which branch: ?branch=<name>.");
6384
- const { compareBranch } = await import("./chunk-KYO5HT4G.js");
6428
+ const { compareBranch } = await import("./chunk-FIZ5LYL2.js");
6385
6429
  const c = await compareBranch(root, branch);
6386
6430
  if (!c)
6387
6431
  throw notFound(`${branch} hasn't been scanned beside the baseline yet.`);
@@ -6390,7 +6434,7 @@ function uiRepoRoutes(r, ctx) {
6390
6434
  const b = api_exports.EditRepoBranchesRequest.safeParse(body ?? {});
6391
6435
  if (!b.success)
6392
6436
  throw badRequest("Send defaultBranch and branches as branch names.");
6393
- const { editRepoBranches, RepoEditError } = await import("./chunk-KYO5HT4G.js");
6437
+ const { editRepoBranches, RepoEditError } = await import("./chunk-FIZ5LYL2.js");
6394
6438
  try {
6395
6439
  const file = await editRepoBranches(root, params.repoId, b.data);
6396
6440
  ctx.events.publish({ type: "file.changed", path: file });
@@ -6410,7 +6454,7 @@ function uiRepoRoutes(r, ctx) {
6410
6454
  const b = api_exports.EditRepoBuildRequest.safeParse(body ?? {});
6411
6455
  if (!b.success)
6412
6456
  throw badRequest('Send the build command as build ("" clears it), up to 500 characters.');
6413
- const { editRepoBuild, RepoEditError } = await import("./chunk-KYO5HT4G.js");
6457
+ const { editRepoBuild, RepoEditError } = await import("./chunk-FIZ5LYL2.js");
6414
6458
  try {
6415
6459
  const r2 = await editRepoBuild(root, params.repoId, b.data);
6416
6460
  ctx.events.publish({ type: "file.changed", path: r2.file });
@@ -6431,7 +6475,7 @@ function uiRepoRoutes(r, ctx) {
6431
6475
  const b = api_exports.SetOrgPackOwnerRequest.safeParse(body ?? {});
6432
6476
  if (!b.success)
6433
6477
  throw badRequest("Send the owner as one handle: { owner }.");
6434
- const { setOrgPackOwner, OwnerEditError } = await import("./chunk-TAR6T2RE.js");
6478
+ const { setOrgPackOwner, OwnerEditError } = await import("./chunk-VTR4AC2U.js");
6435
6479
  try {
6436
6480
  const r2 = await setOrgPackOwner(root, b.data.owner, b.data.was);
6437
6481
  ctx.events.publish({ type: "file.changed", path: r2.file });
@@ -6452,7 +6496,7 @@ function uiRepoRoutes(r, ctx) {
6452
6496
  const b = api_exports.EditRepoDescriptionRequest.safeParse(body ?? {});
6453
6497
  if (!b.success)
6454
6498
  throw badRequest("Send what the repo is as text, or accept: true to confirm the draft, or reject: true to drop it.");
6455
- const { editRepoDescription, RepoEditError } = await import("./chunk-KYO5HT4G.js");
6499
+ const { editRepoDescription, RepoEditError } = await import("./chunk-FIZ5LYL2.js");
6456
6500
  try {
6457
6501
  const r2 = await editRepoDescription(root, params.repoId, b.data);
6458
6502
  ctx.events.publish({ type: "file.changed", path: r2.file });
@@ -6481,7 +6525,7 @@ function changeIdOf(v) {
6481
6525
  function uiCockpitRoutes(r, ctx) {
6482
6526
  return r.add("GET", "/api/changes/{changeId}/cockpit", async ({ params }) => {
6483
6527
  const id = changeIdOf(params.changeId);
6484
- const { cockpit } = await import("./chunk-BLVFHN3C.js");
6528
+ const { cockpit } = await import("./chunk-ZYLGEWTC.js");
6485
6529
  try {
6486
6530
  return await keptAnswer(ctx.root, `cockpit:${id}:${ctx.user}`, async () => ({
6487
6531
  status: 200,
@@ -6493,7 +6537,7 @@ function uiCockpitRoutes(r, ctx) {
6493
6537
  throw e;
6494
6538
  }
6495
6539
  }).add("GET", "/api/past-changes", async ({ query }) => {
6496
- const { changeAboutText, similarChanges } = await import("./chunk-H7KERB6Q.js");
6540
+ const { changeAboutText, similarChanges } = await import("./chunk-KUEG2Y7M.js");
6497
6541
  const given = query.get("change");
6498
6542
  const change = given ? changeIdOf(given) : void 0;
6499
6543
  const text = change ? await changeAboutText(ctx.root, change) : query.get("text")?.trim();
@@ -6512,11 +6556,11 @@ function uiCockpitRoutes(r, ctx) {
6512
6556
  const b = api_exports.AttachPastChangeRequest.safeParse(body ?? {});
6513
6557
  if (!b.success)
6514
6558
  throw badRequest("Say which archived change: { like: <its folder or id> }.");
6515
- const { attachPastChange, findPastChange } = await import("./chunk-H7KERB6Q.js");
6559
+ const { attachPastChange, findPastChange } = await import("./chunk-KUEG2Y7M.js");
6516
6560
  const folder = await findPastChange(ctx.root, b.data.like);
6517
6561
  if (!folder)
6518
6562
  throw notFound(`There is no archived change ${b.data.like}.`);
6519
- const { AttachError } = await import("./chunk-ZCU2UY47.js");
6563
+ const { AttachError } = await import("./chunk-7ZBYRMWK.js");
6520
6564
  try {
6521
6565
  const name = await attachPastChange(ctx.root, params.changeId, folder, ctx.user);
6522
6566
  ctx.events.publish({ type: "file.changed", path: `inputs/${name}` });
@@ -7711,7 +7755,7 @@ function uiSetupRoutes(r, ctx, deps = {}) {
7711
7755
  };
7712
7756
  return r.add("GET", "/api/setup/metarepo", async () => {
7713
7757
  const origin = await originOf(root);
7714
- const { metarepoIdFromUrl } = await import("./chunk-G3W7GNEP.js");
7758
+ const { metarepoIdFromUrl } = await import("./chunk-5UIGGXA5.js");
7715
7759
  const folder = basename2(root);
7716
7760
  const body = {
7717
7761
  metarepo: isMetarepo(root),
@@ -7729,7 +7773,7 @@ function uiSetupRoutes(r, ctx, deps = {}) {
7729
7773
  const b = parseBody4(api_exports.CreateMetarepoRequest, body);
7730
7774
  if (isMetarepo(root))
7731
7775
  throw conflict(`${root} is a metarepo already.`);
7732
- const { initCommand } = await import("./chunk-SYLXQNPC.js");
7776
+ const { initCommand } = await import("./chunk-U3JXMY56.js");
7733
7777
  const res = await run4((io) => initCommand(root, {
7734
7778
  name: b.name,
7735
7779
  platform: b.platform,
@@ -7754,7 +7798,7 @@ function uiSetupRoutes(r, ctx, deps = {}) {
7754
7798
  if (!await stat9(dir).then((s) => s.isDirectory(), () => false))
7755
7799
  throw notFound(`There is no folder ${dir} on this machine.`);
7756
7800
  const open = deps.openFolder ?? (async (d) => {
7757
- const { startUi: startUi2 } = await import("./chunk-OYKNPZCV.js");
7801
+ const { startUi: startUi2 } = await import("./chunk-P6EJNPFF.js");
7758
7802
  const srv = await startUi2(d, {
7759
7803
  port: 0,
7760
7804
  user,
@@ -7786,7 +7830,7 @@ function uiSetupRoutes(r, ctx, deps = {}) {
7786
7830
  };
7787
7831
  return { status: 200, body: ask };
7788
7832
  }
7789
- const { reposDiscover, AdoptError } = await import("./chunk-G3W7GNEP.js");
7833
+ const { reposDiscover, AdoptError } = await import("./chunk-5UIGGXA5.js");
7790
7834
  const found = await reposDiscover(root, { dir }, { dryRun: true, ...b.platform ? { platform: b.platform } : {} }).catch((e) => {
7791
7835
  if (e instanceof AdoptError)
7792
7836
  throw unprocessable2(e.message.replace(/ with --platform\b/g, " (choose the platform)"));
@@ -7803,7 +7847,7 @@ function uiSetupRoutes(r, ctx, deps = {}) {
7803
7847
  detected: { signals: f.detection.signals, confidence: f.detection.confidence }
7804
7848
  }));
7805
7849
  } else {
7806
- const { cloneAt, typeOf } = await import("./chunk-ETQSQ2EC.js");
7850
+ const { cloneAt, typeOf } = await import("./chunk-RCLBIJRN.js");
7807
7851
  for (const given of pastedUrls(b.urls ?? "").slice(0, 500)) {
7808
7852
  const c = candidateOf(given);
7809
7853
  const clone = await cloneAt(c.url);
@@ -7874,13 +7918,13 @@ function uiSetupRoutes(r, ctx, deps = {}) {
7874
7918
  const id = params.repoId;
7875
7919
  if (!(await loadRepos(root).catch(() => [])).some((x) => x.id === id))
7876
7920
  throw notFound(`There is no repo ${id} in any manifest.`);
7877
- const { repoFor } = await import("./chunk-L3PIN47C.js");
7921
+ const { repoFor } = await import("./chunk-DASVVML7.js");
7878
7922
  const repo = await repoFor(root, id);
7879
7923
  if (!repo)
7880
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).`);
7881
7925
  const op = await loadOrgPack(orgPackDirOf(root));
7882
7926
  if (op.repoTypes.length) {
7883
- const { repoTypeDetect } = await import("./chunk-CI4D6VSU.js");
7927
+ const { repoTypeDetect } = await import("./chunk-GSIJWDXH.js");
7884
7928
  const res = await run4((io) => repoTypeDetect(root, id, { json: true }, io));
7885
7929
  if (res.code !== 0)
7886
7930
  throw unprocessable2([...res.err, ...res.out].join("\n"));
@@ -7894,7 +7938,7 @@ function uiSetupRoutes(r, ctx, deps = {}) {
7894
7938
  };
7895
7939
  return { status: 200, body: body2 };
7896
7940
  }
7897
- const { typeOf } = await import("./chunk-ETQSQ2EC.js");
7941
+ const { typeOf } = await import("./chunk-RCLBIJRN.js");
7898
7942
  const t = await typeOf(repo.dir, void 0);
7899
7943
  const body = {
7900
7944
  repo: id,
@@ -8035,7 +8079,7 @@ function uiSetupRoutes(r, ctx, deps = {}) {
8035
8079
  const b = parseBody4(api_exports.SourceRequest, body);
8036
8080
  const file = join17(orgPackDirOf(root), "sources.yaml");
8037
8081
  const before = await readFile13(file, "utf8").catch(() => "");
8038
- const { sourcesAdd: sourcesAdd2 } = await import("./chunk-MPATOMY5.js");
8082
+ const { sourcesAdd: sourcesAdd2 } = await import("./chunk-CPE7HLIK.js");
8039
8083
  const res = await run4((io) => sourcesAdd2(root, b.type, b.location.trim(), io, {
8040
8084
  ...b.id ? { id: b.id } : {},
8041
8085
  ...b.path ? { path: b.path } : {},
@@ -8058,7 +8102,7 @@ function uiSetupRoutes(r, ctx, deps = {}) {
8058
8102
  };
8059
8103
  }
8060
8104
  const after = await readFile13(file, "utf8").catch(() => "");
8061
- const { changedLines: changedLines2, lfOnly: lfOnly2 } = await import("./chunk-6OZAQPU5.js");
8105
+ const { changedLines: changedLines2, lfOnly: lfOnly2 } = await import("./chunk-UXVKFOMC.js");
8062
8106
  changed(path);
8063
8107
  return {
8064
8108
  status: 200,
@@ -8083,7 +8127,7 @@ function uiRolesRoutes(r, ctx, deps = {}) {
8083
8127
  const root = ctx.root;
8084
8128
  const now = deps.now ?? (() => /* @__PURE__ */ new Date());
8085
8129
  ctx.askKnowledge = async (q) => {
8086
- const { knowledgeAnswerOf } = await import("./chunk-ZSNNF26J.js");
8130
+ const { knowledgeAnswerOf } = await import("./chunk-IP6ARMZU.js");
8087
8131
  return api_exports.KnowledgeAnswerView.parse(await knowledgeAnswerOf(root, q));
8088
8132
  };
8089
8133
  const exists4 = async (id) => {
@@ -8144,7 +8188,7 @@ function uiRolesRoutes(r, ctx, deps = {}) {
8144
8188
  const id = changeIdOf2(params.changeId);
8145
8189
  if (!await exists4(id))
8146
8190
  throw notFound(`There is no change ${id}.`);
8147
- const { ownerSuggestions } = await import("./chunk-ZSNNF26J.js");
8191
+ const { ownerSuggestions } = await import("./chunk-IP6ARMZU.js");
8148
8192
  return {
8149
8193
  status: 200,
8150
8194
  body: api_exports.OwnerSuggestionList.parse(await ownerSuggestions(root, id))
@@ -8254,12 +8298,12 @@ function uiRolesRoutes(r, ctx, deps = {}) {
8254
8298
  const b = api_exports.SendOwnerAskRequest.safeParse(body ?? {});
8255
8299
  if (!b.success)
8256
8300
  throw badRequest("Send { confirmation? }.");
8257
- const { ownerQuestions } = await import("./chunk-XKNISZ6N.js");
8301
+ const { ownerQuestions } = await import("./chunk-CUTMM4NY.js");
8258
8302
  const list = await ownerQuestions(root, { now: now() });
8259
8303
  const q = list.questions.find((x) => x.id === params.id);
8260
8304
  if (!q)
8261
8305
  throw notFound(`There is no owner question ${params.id}.`);
8262
- const { notifierFor } = await import("./chunk-ZSNNF26J.js");
8306
+ const { notifierFor } = await import("./chunk-IP6ARMZU.js");
8263
8307
  const n = await notifierFor(root, q.finding?.change, deps.notify);
8264
8308
  const to = q.owner;
8265
8309
  if (!n.notify || n.kind === "none")
@@ -8314,7 +8358,7 @@ Answer it in Atticus (Questions \u203A Owner questions), or reply to ${ctx.user}
8314
8358
  const id = strParam(query, "id")?.trim();
8315
8359
  if (!id || id.length > 400 || /[\p{Cc}]/u.test(id))
8316
8360
  throw badRequest("Say which section: ?id=<source>/<page>#<heading>.");
8317
- const { passageOf } = await import("./chunk-ZSNNF26J.js");
8361
+ const { passageOf } = await import("./chunk-IP6ARMZU.js");
8318
8362
  const p = await passageOf(root, id);
8319
8363
  if (!p)
8320
8364
  throw notFound(`No page or section ${id} is in a snapshot or in inputs/.`);