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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (325) hide show
  1. package/dist/bin.js +3 -3
  2. package/dist/{chunk-7JZONWAA.js → chunk-23OQZY5Z.js} +22 -18
  3. package/dist/{chunk-UTZMF5CV.js → chunk-23TTURB2.js} +1 -1
  4. package/dist/{chunk-YIOYKA4V.js → chunk-2AIOOA3U.js} +7 -7
  5. package/dist/chunk-2ANBMA74.js +107 -0
  6. package/dist/{chunk-ZYLGEWTC.js → chunk-2FORECYK.js} +78 -57
  7. package/dist/{chunk-D5H3RZNE.js → chunk-2J2GMERV.js} +16 -15
  8. package/dist/{chunk-ZDA72732.js → chunk-2MRYL45Z.js} +50 -9
  9. package/dist/{chunk-RBO4A7TC.js → chunk-2WPUSHB6.js} +15 -15
  10. package/dist/{chunk-2IO6XH37.js → chunk-3BQDBTQJ.js} +15 -15
  11. package/dist/{chunk-B3JHERXM.js → chunk-3CMGSQIA.js} +7 -5
  12. package/dist/{chunk-UFIQ5FWY.js → chunk-3M3MDBOG.js} +1 -1
  13. package/dist/chunk-3NGHSBVS.js +50 -0
  14. package/dist/{chunk-DHQXCP2X.js → chunk-3PBIZBWN.js} +1 -1
  15. package/dist/{chunk-CFK6CFXM.js → chunk-3PG6QOQF.js} +9 -9
  16. package/dist/chunk-3PN7KJBA.js +48 -0
  17. package/dist/{chunk-DARX3ATP.js → chunk-3TWERSTY.js} +11 -11
  18. package/dist/chunk-3XNE6XXF.js +211 -0
  19. package/dist/chunk-3YL2GZZH.js +55 -0
  20. package/dist/{chunk-ZGULQAPZ.js → chunk-44SWXDD7.js} +8 -5
  21. package/dist/{chunk-XI3GPYP4.js → chunk-44XGOSUU.js} +5 -5
  22. package/dist/{chunk-SAPX3PVK.js → chunk-4BK5EJ2C.js} +11 -11
  23. package/dist/{chunk-OH2OHNB5.js → chunk-4FLIW5PJ.js} +4 -4
  24. package/dist/{chunk-EUTZTJIO.js → chunk-4HMOOBIR.js} +19 -15
  25. package/dist/chunk-4NPWOUI2.js +514 -0
  26. package/dist/{chunk-RQM5Y3HJ.js → chunk-4UVTNHA6.js} +1 -1
  27. package/dist/{chunk-KVVNAUIG.js → chunk-4XK3HLOH.js} +1 -0
  28. package/dist/{chunk-ZQGFZJH5.js → chunk-523NRKHF.js} +4 -4
  29. package/dist/chunk-5A4FHGTI.js +34 -0
  30. package/dist/{chunk-SDHGFMES.js → chunk-5CIW5RMP.js} +3 -3
  31. package/dist/{chunk-GJSLO2E2.js → chunk-5GCCG3GJ.js} +11 -5
  32. package/dist/{chunk-LCRQPWTC.js → chunk-5KR2DHDW.js} +19 -18
  33. package/dist/{chunk-UIYPX2BA.js → chunk-5PAIR73N.js} +27 -26
  34. package/dist/{chunk-K35VNKJH.js → chunk-5YEUAZZE.js} +8 -8
  35. package/dist/{chunk-DB6TDJ4T.js → chunk-5YX7MJWW.js} +22 -21
  36. package/dist/{chunk-IH6BYFMH.js → chunk-5ZFLP2IK.js} +6 -6
  37. package/dist/chunk-66CMRGI2.js +44 -0
  38. package/dist/{chunk-YWQZ7CCW.js → chunk-6DHGNY3O.js} +18 -17
  39. package/dist/{chunk-WLA2JZ2K.js → chunk-6ESJWPR3.js} +8 -8
  40. package/dist/{chunk-2SCZZQNQ.js → chunk-6GX3OFEZ.js} +121 -15
  41. package/dist/{chunk-2HDNOUJU.js → chunk-6H62UHY5.js} +7065 -3456
  42. package/dist/{chunk-YYV276DM.js → chunk-6MSACVCY.js} +22 -21
  43. package/dist/{chunk-GXJ2PSDW.js → chunk-6OTGCKYH.js} +9 -9
  44. package/dist/{chunk-HSJKYDHI.js → chunk-6TXB2WR6.js} +5 -5
  45. package/dist/{chunk-KL7UHAOR.js → chunk-6VFR3DYS.js} +36 -21
  46. package/dist/{chunk-KS2IQYTZ.js → chunk-7BOGXFZ3.js} +11 -11
  47. package/dist/chunk-7GZ46N4V.js +37 -0
  48. package/dist/{chunk-KFJMQUSK.js → chunk-7HUCEHUK.js} +16 -15
  49. package/dist/{chunk-LY7DOYX2.js → chunk-7LOXUBRB.js} +53 -112
  50. package/dist/{chunk-NQDVD2YR.js → chunk-7SO6CGJH.js} +12 -12
  51. package/dist/{chunk-LZFKJ2BR.js → chunk-A3LVMCA5.js} +1 -1
  52. package/dist/{chunk-2XIIUXGX.js → chunk-A3QZZEJA.js} +16 -16
  53. package/dist/{chunk-PXDAGXQN.js → chunk-AHAEHBH5.js} +11 -11
  54. package/dist/{chunk-PFWP624T.js → chunk-AKZTCZ6F.js} +4 -4
  55. package/dist/{chunk-V5ZKGBYL.js → chunk-AOQG37K4.js} +8 -6
  56. package/dist/chunk-APYIIVBH.js +72 -0
  57. package/dist/{chunk-HV6PXXK7.js → chunk-AQLDQK2M.js} +3 -3
  58. package/dist/{chunk-YJBD5NDV.js → chunk-AXJCABA5.js} +6 -6
  59. package/dist/{chunk-CG6MG7SE.js → chunk-AZBP5DTU.js} +14 -14
  60. package/dist/chunk-B4WPO6FX.js +58 -0
  61. package/dist/{chunk-3GEAUW62.js → chunk-BSGOUHL6.js} +16 -15
  62. package/dist/{chunk-D4TW3PUO.js → chunk-BUBKKEUV.js} +5 -5
  63. package/dist/chunk-BV7WB32T.js +1068 -0
  64. package/dist/{chunk-I72PEROE.js → chunk-C5DY4R7R.js} +6 -6
  65. package/dist/chunk-CBFQO2F2.js +62 -0
  66. package/dist/{chunk-723OQZ3N.js → chunk-CHS5BJ34.js} +6 -6
  67. package/dist/{chunk-2FTHLB2H.js → chunk-CLM5Z3R5.js} +5 -5
  68. package/dist/{chunk-7AEB74KW.js → chunk-CPB4XMFI.js} +9 -9
  69. package/dist/{chunk-KZH5YV6J.js → chunk-CWJDZ5VP.js} +6 -6
  70. package/dist/chunk-CWKQRP6Y.js +56 -0
  71. package/dist/{chunk-PLSCWC2V.js → chunk-D3L5SO27.js} +5 -5
  72. package/dist/{chunk-OI32KTDM.js → chunk-D566V3T3.js} +13 -13
  73. package/dist/{chunk-JLTJAOO4.js → chunk-DDRTAEFZ.js} +50 -13
  74. package/dist/{chunk-TYN5SG5H.js → chunk-DGNTEKF6.js} +403 -148
  75. package/dist/{chunk-VUSYN4R4.js → chunk-DNDIT3LD.js} +8 -8
  76. package/dist/{chunk-IERXBWQU.js → chunk-DNKYWTVZ.js} +20 -19
  77. package/dist/{chunk-KJD4DLRZ.js → chunk-DS2OZXBN.js} +22 -21
  78. package/dist/{chunk-CSHJZFOE.js → chunk-DTW37FJ6.js} +91 -93
  79. package/dist/{chunk-KAWWXCPI.js → chunk-DVQCYF3V.js} +3 -3
  80. package/dist/{chunk-UZBLVNW6.js → chunk-DX7WEXYG.js} +38 -17
  81. package/dist/{chunk-PZFZPHCT.js → chunk-E7Q52EOO.js} +11 -11
  82. package/dist/{chunk-R2FUFBHW.js → chunk-EFDUC35B.js} +3 -3
  83. package/dist/chunk-EHT2KP5A.js +43 -0
  84. package/dist/{chunk-43OWNS5N.js → chunk-EHXEJFHD.js} +5 -5
  85. package/dist/{chunk-HQMLY2R6.js → chunk-ELJ5Q4J2.js} +2 -2
  86. package/dist/{chunk-BD7HBZLP.js → chunk-ELZGWEK4.js} +6 -6
  87. package/dist/{chunk-F4EGHECF.js → chunk-EM6DKBTJ.js} +3 -3
  88. package/dist/{chunk-PBDIVTFL.js → chunk-FADIWOA5.js} +3 -3
  89. package/dist/{chunk-IL7PVMUO.js → chunk-FBG3QHOL.js} +6 -6
  90. package/dist/{chunk-LHN5UCXD.js → chunk-FBNJZ3VH.js} +3 -3
  91. package/dist/chunk-FFIHRQ3O.js +67 -0
  92. package/dist/chunk-FT55WYNB.js +39 -0
  93. package/dist/{chunk-E5NHFHGC.js → chunk-FVT6LUOC.js} +7 -7
  94. package/dist/{chunk-KUEG2Y7M.js → chunk-FYRBBFIF.js} +8 -8
  95. package/dist/chunk-FZ2K3IXP.js +46 -0
  96. package/dist/{chunk-IBIIKUC7.js → chunk-G33UIUG3.js} +46 -20
  97. package/dist/chunk-G4TFQ4EG.js +60 -0
  98. package/dist/{chunk-2GT47PWU.js → chunk-GBJRFFDW.js} +5 -5
  99. package/dist/{chunk-BIKMME4S.js → chunk-GEHB2LMA.js} +28 -27
  100. package/dist/{chunk-NMURRF5F.js → chunk-GF6GBHFN.js} +13 -11
  101. package/dist/{chunk-6SIGGA37.js → chunk-GLNSLQSV.js} +26 -25
  102. package/dist/{chunk-BABRMZET.js → chunk-GZILYRGC.js} +3 -3
  103. package/dist/{chunk-5JGRF53S.js → chunk-GZSOZYEP.js} +3 -3
  104. package/dist/{chunk-Z33UNTHI.js → chunk-HBHPOKL2.js} +7 -7
  105. package/dist/{chunk-2JT4QV3Q.js → chunk-HDWVR5KD.js} +4 -4
  106. package/dist/{chunk-UJ5ZJS4B.js → chunk-HNU4AQXB.js} +22 -21
  107. package/dist/{chunk-IJN5PSDU.js → chunk-HOEZQRZU.js} +57 -27
  108. package/dist/{chunk-HWPX3T55.js → chunk-HPCGQAYH.js} +31 -24
  109. package/dist/{chunk-JJEXMHNZ.js → chunk-HUMM4S5I.js} +6 -6
  110. package/dist/{chunk-BIWNRS5I.js → chunk-I2NGDERG.js} +78 -47
  111. package/dist/{chunk-IGOE6KPG.js → chunk-I34CXV2C.js} +185 -11
  112. package/dist/{chunk-DOU52XFZ.js → chunk-I4P72R2F.js} +61 -28
  113. package/dist/{chunk-6U65YB54.js → chunk-I57IH5X6.js} +360 -271
  114. package/dist/{chunk-WYO4L4NU.js → chunk-I5X4WU7U.js} +6 -6
  115. package/dist/{chunk-DXLWZ3BJ.js → chunk-IDFUGYTS.js} +8 -8
  116. package/dist/{chunk-5A4RHEEL.js → chunk-INCFIDCB.js} +2 -2
  117. package/dist/{chunk-RTCZKKG7.js → chunk-IPMPLTEG.js} +3 -3
  118. package/dist/{chunk-QAFQLILX.js → chunk-IPSZDVLI.js} +12 -12
  119. package/dist/{chunk-ZFLBWL2G.js → chunk-J3ZUKQLV.js} +11 -3
  120. package/dist/chunk-J4L64TUA.js +58 -0
  121. package/dist/chunk-JA7AUBHU.js +51 -0
  122. package/dist/chunk-JD3QDLM2.js +50 -0
  123. package/dist/{chunk-4DHYXODN.js → chunk-JF2HM2IF.js} +4 -4
  124. package/dist/{chunk-XEWFVHOT.js → chunk-JGR4X2UA.js} +24 -23
  125. package/dist/chunk-JOG5O2ZH.js +185 -0
  126. package/dist/{chunk-ACY3U2RD.js → chunk-JRXFZB6J.js} +8 -8
  127. package/dist/{chunk-ZWMHL346.js → chunk-JWIAVNEC.js} +20 -19
  128. package/dist/{chunk-MQ6HP2TU.js → chunk-KMBI6IQD.js} +6 -6
  129. package/dist/chunk-KOITA526.js +42 -0
  130. package/dist/chunk-KZ5G3KEN.js +90 -0
  131. package/dist/{chunk-DPH4BS3F.js → chunk-L3KSU4QU.js} +17 -17
  132. package/dist/{chunk-4NWE2KY3.js → chunk-L4WFMAHI.js} +15 -14
  133. package/dist/{chunk-H7CSCA73.js → chunk-LAPVW2F6.js} +5 -5
  134. package/dist/{chunk-SZDOBIWE.js → chunk-LCQIRCOT.js} +55 -10
  135. package/dist/{chunk-ZLBUFK7L.js → chunk-LCWC6NDE.js} +7 -7
  136. package/dist/{chunk-ELR7DEQM.js → chunk-LH52QGNY.js} +34 -9
  137. package/dist/{chunk-WT6EXYEY.js → chunk-LJEEVZIH.js} +138 -22
  138. package/dist/{chunk-EVKDWJ5Y.js → chunk-LKLB5IJ7.js} +5 -5
  139. package/dist/{chunk-VIQHZA53.js → chunk-LP6BFBE5.js} +6 -6
  140. package/dist/{chunk-FIZ5LYL2.js → chunk-LQEMCF43.js} +16 -15
  141. package/dist/{chunk-RO6BE7ZS.js → chunk-LTVOQJKT.js} +7 -7
  142. package/dist/{chunk-C3TBDX7Y.js → chunk-M25UUEKC.js} +26 -25
  143. package/dist/{chunk-PXMV2LLY.js → chunk-M65AZ4ZE.js} +3 -5
  144. package/dist/chunk-MA44TMTL.js +190 -0
  145. package/dist/{chunk-EQMNMG6X.js → chunk-MA73J3E6.js} +13 -13
  146. package/dist/{chunk-P6EJNPFF.js → chunk-MBIJNU3D.js} +951 -409
  147. package/dist/chunk-MIKRDA2P.js +68 -0
  148. package/dist/{chunk-DJBXXYYA.js → chunk-MNOZDE6W.js} +15 -15
  149. package/dist/{chunk-QQAWI5LD.js → chunk-MP7W6OKP.js} +16 -15
  150. package/dist/chunk-MSNEGKI3.js +492 -0
  151. package/dist/{chunk-ZNYSBQIA.js → chunk-MUXYUIBV.js} +6 -6
  152. package/dist/{chunk-VJO7M34N.js → chunk-MZDHFWTN.js} +2 -2
  153. package/dist/{chunk-K3QKOVZN.js → chunk-N5DLB74D.js} +367 -71
  154. package/dist/{chunk-3D74UADA.js → chunk-NGSGJLKW.js} +2 -2
  155. package/dist/{chunk-3KP7OOJ4.js → chunk-NJ5IEZIG.js} +8 -8
  156. package/dist/chunk-NK6JCNJX.js +41 -0
  157. package/dist/{chunk-IYEET4VM.js → chunk-NNRQZUVW.js} +27 -26
  158. package/dist/{chunk-76AHTJVY.js → chunk-NNURP7VO.js} +15 -15
  159. package/dist/{chunk-GFFTVQ7R.js → chunk-NV5S63YK.js} +7 -7
  160. package/dist/{chunk-MKUBDKE2.js → chunk-NWAMUD7B.js} +29 -28
  161. package/dist/{chunk-CTJHEG6A.js → chunk-NWMFVPEP.js} +2 -0
  162. package/dist/{chunk-6EMJ4XFC.js → chunk-NWQ76YQ5.js} +31 -20
  163. package/dist/{chunk-H5BIVULF.js → chunk-O5BUMSB3.js} +10 -10
  164. package/dist/{chunk-IEIHVMM6.js → chunk-O6UC7ASJ.js} +5 -5
  165. package/dist/{chunk-Q3RKXK5Z.js → chunk-OBQL7GX4.js} +28 -27
  166. package/dist/{chunk-NCZS2BN2.js → chunk-OILAH2C7.js} +21 -20
  167. package/dist/{chunk-U3JXMY56.js → chunk-OOZKLLW7.js} +28 -25
  168. package/dist/{chunk-UAYU6K24.js → chunk-ORGB6645.js} +16 -15
  169. package/dist/{chunk-BGOAJFPB.js → chunk-OUALZ5RA.js} +1 -1
  170. package/dist/{chunk-6TZ4YRGJ.js → chunk-OUDGBJC2.js} +16 -9
  171. package/dist/{chunk-W4SMKUAK.js → chunk-OUGTAOGA.js} +2 -2
  172. package/dist/{chunk-7ZBYRMWK.js → chunk-OY2VC2IU.js} +26 -25
  173. package/dist/{chunk-GHST3KAB.js → chunk-OY6H7JX6.js} +5 -5
  174. package/dist/{chunk-KZ4I5M2X.js → chunk-P7H5WZH6.js} +37 -19
  175. package/dist/{chunk-ZA2PWNR3.js → chunk-PCIENCB7.js} +16 -15
  176. package/dist/{chunk-DXBXZNKV.js → chunk-PGAXZLNF.js} +21 -13
  177. package/dist/{chunk-UXVKFOMC.js → chunk-PPKH6ULR.js} +152 -20
  178. package/dist/{chunk-IP6ARMZU.js → chunk-PT77IUYQ.js} +58 -36
  179. package/dist/chunk-PVJZR4JB.js +653 -0
  180. package/dist/chunk-Q7EUPQEG.js +5 -0
  181. package/dist/{chunk-HNNMT5L2.js → chunk-Q7YDUGVZ.js} +1 -1
  182. package/dist/{chunk-MTIRNHRJ.js → chunk-QK3UFHFC.js} +1 -1
  183. package/dist/{chunk-VCXFMXMX.js → chunk-QLT3WYTD.js} +6 -6
  184. package/dist/{chunk-UWBPC5XH.js → chunk-QNXMVJMA.js} +8 -8
  185. package/dist/{chunk-XDLMQL5A.js → chunk-QPAANKUR.js} +7 -7
  186. package/dist/chunk-QQUAEM3U.js +57 -0
  187. package/dist/chunk-QU3ENIJV.js +52 -0
  188. package/dist/{chunk-TPKJD42W.js → chunk-QUFZDWPC.js} +8 -8
  189. package/dist/{chunk-DB3NWAU3.js → chunk-QXSYFB5L.js} +4 -4
  190. package/dist/{chunk-QXCGRQGO.js → chunk-QXXEOH3A.js} +18 -6
  191. package/dist/{chunk-QA4O2GGC.js → chunk-R4TUWD4C.js} +17 -1
  192. package/dist/{chunk-CNEOKSTO.js → chunk-R6KZWNZM.js} +34 -31
  193. package/dist/{chunk-CNT6T2JM.js → chunk-R7NPDUBL.js} +16 -15
  194. package/dist/{chunk-HVWPN2RY.js → chunk-R7VX5BSP.js} +16 -15
  195. package/dist/chunk-RCPWEZD7.js +47 -0
  196. package/dist/{chunk-FOOU5OJE.js → chunk-RDFRB26Z.js} +3 -3
  197. package/dist/{chunk-ISCX25D7.js → chunk-RTHQIGGY.js} +200 -56
  198. package/dist/{chunk-FYCN2Y5P.js → chunk-RX2SMQV3.js} +19 -18
  199. package/dist/{chunk-XIGVTH24.js → chunk-RZEYZOLW.js} +19 -19
  200. package/dist/{chunk-VTR4AC2U.js → chunk-RZYRUXSU.js} +4 -4
  201. package/dist/{chunk-YLXPJWNO.js → chunk-S5O57P5P.js} +17 -16
  202. package/dist/{chunk-CWLXVRFH.js → chunk-S6TLXRBR.js} +7 -7
  203. package/dist/{chunk-MCORC2LG.js → chunk-SF3HXNXR.js} +6 -6
  204. package/dist/{chunk-BSZII65X.js → chunk-SFCFL7Y5.js} +1 -1
  205. package/dist/chunk-SJ2Z3AWF.js +89 -0
  206. package/dist/{chunk-KFZ5IXEZ.js → chunk-SKVLJL2E.js} +28 -27
  207. package/dist/chunk-SMFFUFMN.js +1876 -0
  208. package/dist/{chunk-IDRCBMJF.js → chunk-SP5BWA5H.js} +32 -31
  209. package/dist/chunk-SRIU7L4Z.js +425 -0
  210. package/dist/{chunk-CUTMM4NY.js → chunk-SSYD4XIW.js} +154 -25
  211. package/dist/{chunk-UBEFT3MQ.js → chunk-TFN2N227.js} +6 -6
  212. package/dist/{chunk-YEHSJY6B.js → chunk-TLSL7OII.js} +13 -13
  213. package/dist/{chunk-B7KGNEFI.js → chunk-TM2WY65Q.js} +25 -24
  214. package/dist/{chunk-6P67IUET.js → chunk-TMETWJFO.js} +11 -11
  215. package/dist/{chunk-SRB54QGX.js → chunk-TMMGQBLO.js} +20 -19
  216. package/dist/{chunk-VGGSHDQU.js → chunk-TOSHT6NJ.js} +8 -8
  217. package/dist/{chunk-64LSDT3D.js → chunk-TPKDYSHO.js} +12 -12
  218. package/dist/{chunk-OXCHO2QS.js → chunk-TQISA4VW.js} +26 -23
  219. package/dist/{chunk-NVVEVP5O.js → chunk-TRSNIJNM.js} +7 -7
  220. package/dist/{chunk-TQG2DDWH.js → chunk-TUMHMISE.js} +22 -21
  221. package/dist/{chunk-WM4EMP7T.js → chunk-U36V664P.js} +283 -61
  222. package/dist/{chunk-5UIGGXA5.js → chunk-U4K34CXK.js} +21 -20
  223. package/dist/{chunk-3KIMLBGZ.js → chunk-UDM6HGF4.js} +6 -6
  224. package/dist/{chunk-NMCPIYTF.js → chunk-UDM7LXNJ.js} +7 -7
  225. package/dist/{chunk-ZFEOIYK5.js → chunk-UEUPEUZX.js} +3 -3
  226. package/dist/{chunk-RCLBIJRN.js → chunk-UGJSKAZ2.js} +6 -6
  227. package/dist/{chunk-DS5M2J2H.js → chunk-UMIZYX3U.js} +16 -15
  228. package/dist/{chunk-63572EFC.js → chunk-USYDJY63.js} +21 -19
  229. package/dist/{chunk-V5FT3MZG.js → chunk-UXETN43F.js} +8 -8
  230. package/dist/{chunk-LBBI5P5G.js → chunk-V6BP4XHZ.js} +25 -24
  231. package/dist/chunk-V7DGFWDB.js +55 -0
  232. package/dist/chunk-VGXE7XFO.js +35 -0
  233. package/dist/{chunk-IZIGZ7KY.js → chunk-VSED7FYC.js} +13 -8
  234. package/dist/{chunk-HVOE7ZW2.js → chunk-VTQ55N4O.js} +19 -18
  235. package/dist/{chunk-P6DM2EFI.js → chunk-VVLWEM2Y.js} +6 -6
  236. package/dist/{chunk-YXKCE5BA.js → chunk-VWCNMDMZ.js} +5 -5
  237. package/dist/{chunk-EY3OVHNC.js → chunk-VX5CORDG.js} +24 -23
  238. package/dist/{chunk-XT3ZW7C7.js → chunk-W4SWXJZQ.js} +19 -18
  239. package/dist/{chunk-BV2BZIUF.js → chunk-W5UMEIYG.js} +25 -24
  240. package/dist/{chunk-VPQUFIE7.js → chunk-W6OY2PMB.js} +10 -10
  241. package/dist/chunk-W7NNZFIL.js +52 -0
  242. package/dist/{chunk-6ZDAEUKB.js → chunk-WJWSB65O.js} +1602 -452
  243. package/dist/{chunk-IFQJ3YQE.js → chunk-WNPGLGCJ.js} +5 -5
  244. package/dist/{chunk-MM7JSMLW.js → chunk-WNRIL6JQ.js} +18 -17
  245. package/dist/{chunk-TLBPTUFU.js → chunk-WPZCSFND.js} +20 -19
  246. package/dist/chunk-WTGQJXRJ.js +55 -0
  247. package/dist/{chunk-BEEHCL5O.js → chunk-WTLFRINF.js} +37 -36
  248. package/dist/{chunk-XIJBQM45.js → chunk-X5B7KYPD.js} +507 -20
  249. package/dist/{chunk-GNFZ227W.js → chunk-XIIT4PVT.js} +3 -3
  250. package/dist/{chunk-EECFUQP3.js → chunk-XKWPEY4B.js} +184 -46
  251. package/dist/{chunk-GAJBMPWC.js → chunk-XRNMQZFC.js} +28 -9
  252. package/dist/{chunk-BIAQ6NQS.js → chunk-XRTECHVH.js} +7 -7
  253. package/dist/{chunk-I2EWY3MG.js → chunk-XZY4GTCX.js} +14 -9
  254. package/dist/{chunk-V3M4VFUB.js → chunk-Y6S7VCYN.js} +6 -6
  255. package/dist/{chunk-MY3LDBMR.js → chunk-YAPVAYZN.js} +3 -3
  256. package/dist/{chunk-WH3ZFLXT.js → chunk-YBAJ5SAR.js} +197 -124
  257. package/dist/{chunk-ET7SPOBA.js → chunk-YHS7TSQS.js} +8 -8
  258. package/dist/{chunk-RK5P2DWD.js → chunk-YIGSUTW2.js} +1329 -92
  259. package/dist/{chunk-ANFBBJEV.js → chunk-YPXBGNUV.js} +24 -22
  260. package/dist/{chunk-MZXDSAKW.js → chunk-YRHKEXTP.js} +11 -11
  261. package/dist/{chunk-CPE7HLIK.js → chunk-YTPND655.js} +18 -17
  262. package/dist/{chunk-LTOBNBJ6.js → chunk-YZUOOTC3.js} +27 -26
  263. package/dist/{chunk-F6GRBF5L.js → chunk-Z245SJ64.js} +25 -24
  264. package/dist/{chunk-NP3PG6OI.js → chunk-Z5CIRZNO.js} +157 -89
  265. package/dist/chunk-ZCARJ77R.js +56 -0
  266. package/dist/{chunk-DASVVML7.js → chunk-ZIAMPN7N.js} +6 -6
  267. package/dist/chunk-ZNZYMUBK.js +53 -0
  268. package/dist/{chunk-NECDBPFP.js → chunk-ZOAX7W5S.js} +11 -11
  269. package/dist/{chunk-7IWMRZRI.js → chunk-ZQZRNVNS.js} +83 -40
  270. package/dist/{chunk-PGDVJWCI.js → chunk-ZT6GPGZ4.js} +52 -37
  271. package/dist/{chunk-H26T2LQL.js → chunk-ZW3OEHLT.js} +29 -28
  272. package/dist/files.json +653 -549
  273. package/dist/fixtures/forge/expected/crosscheck.json +726 -0
  274. package/dist/fixtures/forge/slots/README.md +13 -0
  275. package/dist/fixtures/forge/slots/build.json +2686 -0
  276. package/dist/fixtures/forge/slots/crosscheck/forge-ledger.crosscheck.yaml +8 -0
  277. package/dist/fixtures/forge/slots/facts/forge-ledger.jsonl +17 -0
  278. package/dist/fixtures/forge/slots/facts/forge-ledger.meta.json +9 -0
  279. package/dist/fixtures/forge/slots/legacy/joins.json +113 -0
  280. package/dist/fixtures/forge/slots/readers/forge-events.json +306 -0
  281. package/dist/fixtures/forge/slots/readers/forge-gateway.json +238 -0
  282. package/dist/fixtures/forge/slots/readers/forge-infra.json +264 -0
  283. package/dist/fixtures/forge/slots/readers/forge-ledger.json +756 -0
  284. package/dist/fixtures/forge/slots/readers/forge-portal-bff.json +349 -0
  285. package/dist/fixtures/forge/slots/readers/forge-portal-ui.json +214 -0
  286. package/dist/fixtures/forge/slots/readers/forge-reports-job.json +258 -0
  287. package/dist/packages/sdk/npm/index.js +3788 -2939
  288. package/dist/packages/ui/dist/assets/{elk-api-BdXSPeBO.js → elk-api-CPE6PVL8.js} +2 -2
  289. package/dist/packages/ui/dist/assets/index-BYcVqj0l.js +65 -0
  290. package/dist/packages/ui/dist/assets/index-DF52Ejvz.css +1 -0
  291. package/dist/packages/ui/dist/index.html +2 -2
  292. package/package.json +5 -5
  293. package/dist/chunk-24OXGB3P.js +0 -82
  294. package/dist/chunk-3FFIDQQB.js +0 -42
  295. package/dist/chunk-4N5W7LYW.js +0 -41
  296. package/dist/chunk-7NVLGPER.js +0 -45
  297. package/dist/chunk-A6LGX56J.js +0 -52
  298. package/dist/chunk-AHACUPGL.js +0 -46
  299. package/dist/chunk-DG7KYZAL.js +0 -40
  300. package/dist/chunk-DWD6BKHG.js +0 -52
  301. package/dist/chunk-EEVSFGIU.js +0 -50
  302. package/dist/chunk-EN3N6LNU.js +0 -52
  303. package/dist/chunk-FWQDH5NK.js +0 -55
  304. package/dist/chunk-GHCFWIUW.js +0 -38
  305. package/dist/chunk-GSIJWDXH.js +0 -43
  306. package/dist/chunk-HCC5547C.js +0 -232
  307. package/dist/chunk-HLDUWEO7.js +0 -36
  308. package/dist/chunk-K2NQTROJ.js +0 -170
  309. package/dist/chunk-LH4WAJLC.js +0 -45
  310. package/dist/chunk-M5IQUWJR.js +0 -59
  311. package/dist/chunk-MEMEO7YO.js +0 -988
  312. package/dist/chunk-MGNO4Q6V.js +0 -51
  313. package/dist/chunk-MZ6GOFRF.js +0 -55
  314. package/dist/chunk-N2AW2DHF.js +0 -51
  315. package/dist/chunk-N35Y5HZO.js +0 -47
  316. package/dist/chunk-NHFMLMLN.js +0 -257
  317. package/dist/chunk-PR6Z5L7W.js +0 -67
  318. package/dist/chunk-STBJ6SVJ.js +0 -50
  319. package/dist/chunk-U3RGBYXE.js +0 -62
  320. package/dist/chunk-URZKIL37.js +0 -42
  321. package/dist/chunk-W7HNZDHB.js +0 -71
  322. package/dist/chunk-YYZWSVIS.js +0 -33
  323. package/dist/chunk-ZAMSF2DF.js +0 -54
  324. package/dist/packages/ui/dist/assets/index-DRSUhpFi.css +0 -1
  325. package/dist/packages/ui/dist/assets/index-RZe5iotJ.js +0 -63
@@ -5,27 +5,41 @@ var __atticusUrl = (p) => new URL("./" + p, import.meta.url).href;
5
5
  var __atticusPath = (p) => __atticusFileURLToPath(__atticusUrl(p));
6
6
  import {
7
7
  askHosts
8
- } from "./chunk-E5NHFHGC.js";
8
+ } from "./chunk-FVT6LUOC.js";
9
9
  import {
10
10
  driftAfterScan
11
- } from "./chunk-DPH4BS3F.js";
11
+ } from "./chunk-L3KSU4QU.js";
12
12
  import {
13
+ buildPlanOf,
14
+ pageChanged,
15
+ refusalPlanOf
16
+ } from "./chunk-3XNE6XXF.js";
17
+ import {
18
+ buildAndWrite,
19
+ buildLines,
13
20
  diffCatalogs,
14
21
  diffIsEmpty,
15
22
  readCatalog,
16
23
  scanEstate,
17
- writeCatalog
18
- } from "./chunk-2HDNOUJU.js";
24
+ writeRefusedReport
25
+ } from "./chunk-6H62UHY5.js";
26
+ import {
27
+ readersSlotPath,
28
+ serializeReadersSlot,
29
+ sourcesRelOf,
30
+ writeReadersSlots
31
+ } from "./chunk-4NPWOUI2.js";
19
32
  import {
20
33
  loadRepos
21
- } from "./chunk-XIJBQM45.js";
34
+ } from "./chunk-X5B7KYPD.js";
22
35
  import {
23
- catalogDirOf
24
- } from "./chunk-6ZDAEUKB.js";
36
+ catalogDirOf,
37
+ throwIfCancelled
38
+ } from "./chunk-WJWSB65O.js";
25
39
  import {
26
40
  LockHeldError,
27
41
  acquireLock
28
- } from "./chunk-MEMEO7YO.js";
42
+ } from "./chunk-SMFFUFMN.js";
29
43
 
30
44
  // packages/cli/dist/scan-commands.js
31
45
  import { join } from "node:path";
@@ -40,7 +54,6 @@ function diffLines(d) {
40
54
  ];
41
55
  return lines;
42
56
  }
43
- var FACTS_PATH = "Scan every repo (atticus scan, after atticus workspace sync), or put one repo's read in the catalog from its facts: atticus verify <repo> --write.";
44
57
  function unreadMessage(u) {
45
58
  switch (u.why) {
46
59
  case "not-cloned":
@@ -53,36 +66,96 @@ function unreadMessage(u) {
53
66
  return "left out by --repos";
54
67
  }
55
68
  }
56
- var fromCode = (r) => r.evidence.some((e) => !!e.repo);
57
- function scanRefusal(scan, before) {
69
+ function scanRefusal(scan) {
70
+ if (scan.observations.some((o) => o.full))
71
+ return void 0;
58
72
  const unread = scan.unread;
59
- if (unread.length) {
60
- const asked = unread.filter((u) => u.why === "not-asked");
61
- const lines = unread.filter((u) => u.why !== "not-asked").map((u) => `${u.repo}: ${unreadMessage(u)}`);
62
- if (asked.length)
63
- lines.push(`${asked.map((u) => u.repo).join(", ")}: left out by --repos; a scan of only some repos would replace the catalog with them alone, so it isn't written`);
73
+ const lines = unread.map((u) => `${u.repo}: ${unreadMessage(u)}`);
74
+ for (const o of scan.observations)
75
+ if (!o.full && !unread.some((u) => u.repo === o.repo))
76
+ lines.push(`${o.repo}: ${keptWhy({ reason: o.why, ...o.detail ? { detail: o.detail } : {} })}`);
77
+ return {
78
+ reasons: ["nothing-read"],
79
+ repos: unread.map((u) => ({
80
+ repo: u.repo,
81
+ why: u.why,
82
+ message: unreadMessage(u),
83
+ ...u.runs ? { runs: u.runs } : {}
84
+ })),
85
+ message: [
86
+ "Nothing written: the scan read no repo in full, so every slot and catalog/generated are as they were:",
87
+ ...lines.map((l) => ` ${l}`),
88
+ "Clone the repos (atticus workspace sync) or fix what stopped their read, then scan again."
89
+ ].join("\n")
90
+ };
91
+ }
92
+ function scanSources(scan, slots) {
93
+ return scan.observations.map((o) => {
94
+ const s = slots.find((x) => x.repo === o.repo);
95
+ const built = scan.build?.sources.find((x) => x.repo === o.repo);
64
96
  return {
65
- repos: unread.map((u) => ({
66
- repo: u.repo,
67
- why: u.why,
68
- message: unreadMessage(u),
69
- ...u.runs ? { runs: u.runs } : {}
70
- })),
71
- message: [
72
- `Nothing written: catalog/generated is as it was. A scan replaces the whole catalog, so it writes only when it has read every repo in full, and it didn't read ${unread.length === 1 ? "this one" : `these ${unread.length}`}:`,
73
- ...lines.map((l) => ` ${l}`),
74
- FACTS_PATH
75
- ].join("\n")
97
+ repo: o.repo,
98
+ source: built?.source ?? "none",
99
+ ...built?.commit ? { sourceCommit: built.commit } : {},
100
+ slot: s?.slot ?? "none",
101
+ ...s?.commit ? { commit: s.commit } : {},
102
+ ...s?.reason ? { reason: s.reason } : {},
103
+ ...s?.detail ? { detail: s.detail } : {},
104
+ ...o.factsStale ? { factsStale: o.factsStale } : {}
76
105
  };
106
+ });
107
+ }
108
+ var short = (c) => /^[0-9a-f]{8,}$/.test(c) ? c.slice(0, 7) : c;
109
+ function keptWhy(s) {
110
+ switch (s.reason) {
111
+ case "not-cloned":
112
+ return "it isn't cloned here";
113
+ case "unreadable":
114
+ return "its clone can't be read";
115
+ case "not-asked":
116
+ return "--repos left it out";
117
+ case "run-failed":
118
+ return `a run failed (${s.detail ?? "a reader"})`;
119
+ case "plugin-refused":
120
+ return `a plugin that applies to it isn't used (${s.detail ?? "a plugin"})`;
121
+ case "readers-off":
122
+ return "the readers are switched off (ATTICUS_HELPERS_OFF=readers)";
123
+ case "dirty":
124
+ return "its clone has changes not committed (commit or stash them, then scan again)";
125
+ case "refused":
126
+ return "the scan wrote nothing";
127
+ case "dry-run":
128
+ return "a dry run writes nothing";
129
+ default:
130
+ return "it wasn't read in full";
77
131
  }
78
- const had = before.filter(fromCode).length;
79
- if (had > 0 && !scan.records.some(fromCode))
80
- return {
81
- repos: [],
82
- empty: { before: had },
83
- message: `Nothing written: the scan found no records in any repo's code, and catalog/generated has ${had}, so it is left as it was. Check that the manifests list the repos to read (an archived repo or a prototype isn't read), then scan again.`
84
- };
85
- return void 0;
132
+ }
133
+ function sourceLines(rel, sources, wrote) {
134
+ const out = [];
135
+ if (wrote) {
136
+ const n = (k) => sources.filter((s) => s.slot === k).length;
137
+ out.push(`${rel}/readers: ${n("written")} written, ${n("unchanged")} unchanged`);
138
+ for (const s of sources)
139
+ if (s.reason && s.reason !== "refused" && s.reason !== "dry-run")
140
+ out.push(s.slot === "kept-last-good" ? `${s.repo}: its readers slot keeps its last good read${s.commit ? ` (commit ${short(s.commit)})` : ""}: ${keptWhy(s)}.` : `${s.repo}: no readers slot written: ${keptWhy(s)}.`);
141
+ }
142
+ for (const s of sources) {
143
+ const f = s.factsStale;
144
+ if (!f)
145
+ continue;
146
+ const at = `${rel}/facts/${s.repo}.jsonl`;
147
+ if (f.unusable)
148
+ out.push(`${s.repo}: its facts snapshot (${at}) ${f.unusable}, so it isn't used; write it again: ${f.command}`);
149
+ else if (f.notComparable)
150
+ out.push(`${s.repo}: its facts snapshot (${at}) is of commit ${short(f.commit)}, which can't be compared with ${short(f.head)} here; the snapshot stays as it is; refresh it: ${f.command}`);
151
+ else {
152
+ const shown = f.files.slice(0, 5).map((x) => `${x.path} ${x.how}${x.to ? ` to ${x.to}` : ""}: ${x.facts.slice(0, 5).join(", ")}${x.facts.length > 5 ? ` and ${x.facts.length - 5} more` : ""}`);
153
+ if (f.files.length > 5)
154
+ shown.push(`${f.files.length - 5} more files`);
155
+ out.push(`${s.repo}: its facts snapshot (${at}, commit ${short(f.commit)}) is stale at ${short(f.head)}: ${f.facts} ${f.facts === 1 ? "fact cites" : "facts cite"} files changed since (${shown.join("; ")}). The snapshot stays as it is; refresh it: ${f.command}`);
156
+ }
157
+ }
158
+ return out;
86
159
  }
87
160
  function saidByRefusal(p, refused) {
88
161
  const r = refused?.repos.find((x) => x.repo === p.repo);
@@ -122,6 +195,8 @@ function scanSummaryLines(report) {
122
195
  const w = Array.isArray(report.warnings) ? report.warnings.length : 0;
123
196
  if (w)
124
197
  out.push(`${n(w, "warning")}: atticus scan --warnings lists ${w === 1 ? "it" : "them"}`);
198
+ if (Array.isArray(report.sources))
199
+ out.push(...sourceLines(typeof report.sourcesDir === "string" ? report.sourcesDir : "catalog/sources", report.sources, report.written === true));
125
200
  if (typeof refusal?.message === "string")
126
201
  out.push(...refusal.message.split("\n"));
127
202
  return out;
@@ -160,11 +235,14 @@ async function scanCommand(root, o, io) {
160
235
  }
161
236
  try {
162
237
  if (o.ref) {
163
- const { scanBranch } = await import("./chunk-7IWMRZRI.js");
238
+ const { scanBranch } = await import("./chunk-ZQZRNVNS.js");
164
239
  return await scanBranch(root, o.ref, {
165
240
  ...o.repos ? { repos: o.repos } : {},
166
241
  ...o.full ? { full: true } : {},
167
- ...o.json ? { json: true } : {}
242
+ ...o.json ? { json: true } : {},
243
+ ...o.allowRemovals !== void 0 ? { allowRemovals: o.allowRemovals } : {},
244
+ ...o.discardEdits !== void 0 ? { discardEdits: o.discardEdits } : {},
245
+ ...o.plan !== void 0 ? { plan: o.plan } : {}
168
246
  }, io);
169
247
  }
170
248
  return await scanLocked(root, o, io);
@@ -174,16 +252,60 @@ async function scanCommand(root, o, io) {
174
252
  }
175
253
  async function scanLocked(root, o, io) {
176
254
  const out = join(catalogDirOf(root), "generated");
177
- const before = await readCatalog(out, { cacheRoot: root });
255
+ const before = await readCatalog(out, { cacheRoot: root, fresh: true });
178
256
  const started = Date.now();
179
257
  const scan = await scanEstate({
180
258
  root,
181
259
  ...o.repos ? { repos: o.repos } : {},
182
260
  ...o.full ? { cache: null } : {}
183
261
  });
184
- const refused = scanRefusal(scan, before.records);
262
+ throwIfCancelled();
263
+ const command = `atticus scan${o.repos?.length ? ` --repos ${o.repos.join(",")}` : ""}`;
264
+ const unreadAll = scanRefusal(scan);
265
+ if (unreadAll && !o.dryRun)
266
+ await writeRefusedReport(root, command, {
267
+ reasons: ["nothing-read"],
268
+ message: unreadAll.message,
269
+ unread: unreadAll.repos.map((r) => ({ repo: r.repo, why: r.message }))
270
+ });
271
+ const slotWrites = scan.observations.flatMap((x) => x.full ? [{ path: readersSlotPath(root, x.repo), text: serializeReadersSlot(x.slot) }] : []);
272
+ const planned = await writeReadersSlots(root, scan.observations, { hold: "dry-run" });
273
+ const built = unreadAll ? void 0 : await buildAndWrite(root, {
274
+ command,
275
+ build: scan.build,
276
+ slots: slotWrites,
277
+ ...o.dryRun ? { check: true } : {},
278
+ ...o.allowRemovals !== void 0 ? { allowRemovals: o.allowRemovals } : {},
279
+ ...o.discardEdits !== void 0 ? { discardEdits: o.discardEdits } : {},
280
+ // The app's confirm: the list worked out again under the lock (the review of beta.27).
281
+ ...o.plan !== void 0 && !o.dryRun ? { expect: (listed) => buildPlanOf(listed) === o.plan } : {}
282
+ });
283
+ const guardRefused = built && !o.dryRun ? built.guard.refused : void 0;
284
+ const changed = built?.changed ? pageChanged("what the build would remove or discard") : void 0;
285
+ const refused = unreadAll ?? (changed && !guardRefused ? { reasons: [], repos: [], message: changed } : void 0) ?? (guardRefused ? {
286
+ reasons: guardRefused.reasons,
287
+ repos: [],
288
+ message: changed ? `${changed}
289
+ ${guardRefused.message}` : guardRefused.message,
290
+ ...guardRefused.removals ? { removals: guardRefused.removals } : {},
291
+ ...guardRefused.unexplained ? { unexplained: guardRefused.unexplained } : {},
292
+ ...guardRefused.allowRemovals !== void 0 ? { allowRemovals: guardRefused.allowRemovals } : {},
293
+ ...guardRefused.edits ? { edits: guardRefused.edits } : {},
294
+ ...guardRefused.discardEdits !== void 0 ? { discardEdits: guardRefused.discardEdits } : {},
295
+ plan: refusalPlanOf(guardRefused)
296
+ } : void 0);
297
+ const w = built?.write;
185
298
  const diff = refused ? { added: [], removed: [], changed: [], evidenceOnly: [] } : diffCatalogs(before.records, scan.records);
186
- const write = o.dryRun || refused ? void 0 : await writeCatalog(out, scan.records);
299
+ const slots = planned.map((x) => {
300
+ if (x.reason !== "dry-run")
301
+ return x;
302
+ const obs = scan.observations.find((y) => y.repo === x.repo);
303
+ if (w && obs?.full)
304
+ return { repo: x.repo, slot: "written", commit: obs.slot.commit };
305
+ return { ...x, reason: o.dryRun ? "dry-run" : "refused" };
306
+ });
307
+ const sources = scanSources(scan, slots);
308
+ const write = w ? { written: w.written, unchanged: w.unchanged, removed: w.removed } : void 0;
187
309
  const drift = write && !o.noDrift ? await driftAfterScan(root) : [];
188
310
  const hosts = write ? await askHosts(root, scan.records, {
189
311
  command: "atticus scan",
@@ -194,8 +316,8 @@ async function scanLocked(root, o, io) {
194
316
  ...scan.problems
195
317
  ];
196
318
  const seen = /* @__PURE__ */ new Set();
197
- const warnings = scan.repos.flatMap((r) => r.warnings.map((w) => ({ repo: r.repo, ...w })).filter((w) => {
198
- const k = `${w.repo}\0${w.path ?? ""}\0${w.message}`;
319
+ const warnings = scan.repos.flatMap((r) => r.warnings.map((w2) => ({ repo: r.repo, ...w2 })).filter((w2) => {
320
+ const k = `${w2.repo}\0${w2.path ?? ""}\0${w2.message}`;
199
321
  if (seen.has(k))
200
322
  return false;
201
323
  seen.add(k);
@@ -212,6 +334,17 @@ async function scanLocked(root, o, io) {
212
334
  notes: scan.notes,
213
335
  written: write !== void 0,
214
336
  files: write ?? null,
337
+ sources,
338
+ sourcesDir: sourcesRelOf(root),
339
+ removed: (w?.removals ?? []).map((x) => ({
340
+ kind: x.kind,
341
+ id: x.id,
342
+ repos: x.repos,
343
+ explainedBy: x.explainedBy,
344
+ reasons: x.reasons
345
+ })),
346
+ retired: scan.build.retired,
347
+ ...w?.undo !== void 0 ? { undo: w.undo } : {},
215
348
  drift,
216
349
  questions: [...hosts.raised, ...hosts.open].map((q) => q.id),
217
350
  ...refused ? { refused } : {}
@@ -241,10 +374,13 @@ async function scanLocked(root, o, io) {
241
374
  if (!refused)
242
375
  for (const l of diffLines(diff))
243
376
  io.out(l);
244
- if (write)
245
- io.out(`catalog/generated: ${write.written} written, ${write.unchanged} unchanged, ${write.removed} removed`);
377
+ if (built && w)
378
+ for (const l of buildLines(root, built))
379
+ io.out(l);
246
380
  else if (!refused)
247
381
  io.out("Dry run: nothing written.");
382
+ for (const l of sourceLines(sourcesRelOf(root), sources, write !== void 0))
383
+ io.out(l);
248
384
  for (const d of drift)
249
385
  io.out(driftLine(d));
250
386
  for (const l of hosts.lines)
@@ -252,8 +388,8 @@ async function scanLocked(root, o, io) {
252
388
  for (const n of scan.notes)
253
389
  io.out(`note: ${n}`);
254
390
  if (o.warnings)
255
- for (const w of warnings)
256
- io.out(`warning: ${w.repo}: ${w.path ? `${w.path}: ` : ""}${w.message}`);
391
+ for (const w2 of warnings)
392
+ io.out(`warning: ${w2.repo}: ${w2.path ? `${w2.path}: ` : ""}${w2.message}`);
257
393
  else if (warnings.length)
258
394
  io.out(`${warnings.length} warning${warnings.length === 1 ? "" : "s"}: atticus scan --warnings lists ${warnings.length === 1 ? "it" : "them"}`);
259
395
  for (const p of problems.filter((x) => !saidByRefusal(x, refused)))
@@ -280,6 +416,8 @@ async function catalogDiff(a, b, json, io) {
280
416
  export {
281
417
  diffLines,
282
418
  scanRefusal,
419
+ scanSources,
420
+ sourceLines,
283
421
  scanSummaryLines,
284
422
  scanCommand,
285
423
  catalogDiff
@@ -10,19 +10,23 @@ import {
10
10
  scoreRepo,
11
11
  scoreSpecs,
12
12
  scoreVerifier
13
- } from "./chunk-EQMNMG6X.js";
13
+ } from "./chunk-MA73J3E6.js";
14
14
  import {
15
15
  readCatalog
16
- } from "./chunk-2HDNOUJU.js";
16
+ } from "./chunk-6H62UHY5.js";
17
+ import {
18
+ dirSource,
19
+ verifyFacts
20
+ } from "./chunk-YIGSUTW2.js";
17
21
  import {
18
22
  ScanVerifyProposal,
19
23
  parseFacts,
20
24
  readEstateJoins,
21
25
  readRepoSpec
22
- } from "./chunk-6ZDAEUKB.js";
26
+ } from "./chunk-WJWSB65O.js";
23
27
  import {
24
28
  external_exports
25
- } from "./chunk-LZFKJ2BR.js";
29
+ } from "./chunk-A3LVMCA5.js";
26
30
  import {
27
31
  require_dist
28
32
  } from "./chunk-BQGDB6ZL.js";
@@ -117,7 +121,7 @@ var pct = (x) => `${Math.round(x * 100)}%`;
117
121
  async function benchRun(o, io) {
118
122
  try {
119
123
  const { dir, cache, repos } = await load(o);
120
- const { main } = await import("./chunk-TYN5SG5H.js");
124
+ const { main } = await import("./chunk-DGNTEKF6.js");
121
125
  const quiet = { out: () => {
122
126
  }, err: () => {
123
127
  } };
@@ -270,8 +274,22 @@ async function benchFactsCommand(o, io) {
270
274
  const parsed = parseFacts(await readFile(file, "utf8"));
271
275
  if (!parsed.ok)
272
276
  throw new BenchError(`${file} does not read as facts: ${parsed.issues.slice(0, 5).map((i) => `${i.line !== void 0 ? `line ${i.line}: ` : ""}${i.message}`).join("; ")}${parsed.issues.length > 5 ? ` (and ${parsed.issues.length - 5} more)` : ""}`);
277
+ const clone = join(cache, r.id);
278
+ let facts = parsed.facts;
279
+ let verify = { verified: false, why: "no-clone" };
280
+ const head = existsSync(clone) ? await cloneCommit(clone) : void 0;
281
+ if (existsSync(clone) && head !== r.commit)
282
+ verify = { verified: false, why: "off-pin", head: head ?? "none" };
283
+ else if (existsSync(clone)) {
284
+ const v = await verifyFacts({ facts, source: dirSource(clone) });
285
+ const codes = {};
286
+ for (const x of v.rejected)
287
+ codes[x.code] = (codes[x.code] ?? 0) + 1;
288
+ facts = v.accepted;
289
+ verify = { verified: true, kept: v.accepted.length, rejected: v.rejected.length, codes };
290
+ }
273
291
  try {
274
- scores.push(scoreFacts(ref, parsed.facts));
292
+ scores.push({ ...scoreFacts(ref, facts), verify });
275
293
  } catch (e) {
276
294
  throw new BenchError(`${r.id}: ${e.message}`);
277
295
  }
@@ -311,6 +329,7 @@ async function benchFactsCommand(o, io) {
311
329
  io.out("REPO FACTS FOUND MISSED WRONG PRECISION RECALL");
312
330
  for (const s of scores) {
313
331
  io.out(row(s.repo, s.total, s.facts.total));
332
+ io.out(s.verify.verified ? ` verified against the clone: ${s.verify.kept} kept, ${s.verify.rejected} rejected${s.verify.rejected ? ` (${Object.entries(s.verify.codes).map(([c, n]) => `${n} ${c}`).join(", ")})` : ""}; only the kept are scored` : s.verify.why === "off-pin" ? ` not verified: the clone at ${join(cache, s.repo)} is ${s.verify.head === "none" ? "no git checkout" : `at ${s.verify.head.slice(0, 12)}`}, not the pinned ${(repos.find((r) => r.id === s.repo)?.commit ?? "").slice(0, 12)} (atticus bench fetch); every fact is scored` : ` not verified: no clone at ${join(cache, s.repo)} (atticus bench fetch); every fact is scored`);
314
333
  for (const [k, v] of Object.entries(s.kinds))
315
334
  io.out(row(` ${k}`, { found: v.found, missed: v.missed.length, wrong: v.wrong.length }));
316
335
  }
@@ -437,7 +456,7 @@ function printSpecScores(scores, none, passes, cache, io) {
437
456
  async function benchSurvey(o, io) {
438
457
  try {
439
458
  const { cache, repos } = await load(o);
440
- const { main } = await import("./chunk-TYN5SG5H.js");
459
+ const { main } = await import("./chunk-DGNTEKF6.js");
441
460
  const quiet = { out: () => {
442
461
  }, err: () => {
443
462
  } };
@@ -485,7 +504,7 @@ $1- ${mode}`), "utf8");
485
504
  async function benchVerify(o, io, deps = {}) {
486
505
  try {
487
506
  const { cache, repos } = await load(o);
488
- const { main } = await import("./chunk-TYN5SG5H.js");
507
+ const { main } = await import("./chunk-DGNTEKF6.js");
489
508
  const quiet = { out: () => {
490
509
  }, err: () => {
491
510
  } };
@@ -512,7 +531,7 @@ async function benchVerify(o, io, deps = {}) {
512
531
  const capture = { out: (l) => lines.push(l), err: (l) => lines.push(l) };
513
532
  let code;
514
533
  if (deps.runtime) {
515
- const { scanVerify } = await import("./chunk-IYEET4VM.js");
534
+ const { scanVerify } = await import("./chunk-NNRQZUVW.js");
516
535
  code = await scanVerify(path, path, {}, { runtime: deps.runtime, ...deps.now ? { now: deps.now } : {} }, capture);
517
536
  } else
518
537
  code = await main(["scan", "verify", path, "--root", path, ...o.mode ? ["--mode", o.mode] : []], capture);
@@ -7,20 +7,20 @@ import {
7
7
  readRound,
8
8
  reviewedGates,
9
9
  roundsOf
10
- } from "./chunk-VIQHZA53.js";
10
+ } from "./chunk-LP6BFBE5.js";
11
11
  import {
12
12
  changeStore,
13
13
  liveHandoff
14
- } from "./chunk-WH3ZFLXT.js";
14
+ } from "./chunk-YBAJ5SAR.js";
15
15
  import {
16
16
  createAdapters
17
- } from "./chunk-6U65YB54.js";
17
+ } from "./chunk-I57IH5X6.js";
18
18
  import {
19
19
  orgPackDirOf
20
- } from "./chunk-6ZDAEUKB.js";
20
+ } from "./chunk-WJWSB65O.js";
21
21
  import {
22
22
  loadOrgPack
23
- } from "./chunk-LZFKJ2BR.js";
23
+ } from "./chunk-A3LVMCA5.js";
24
24
 
25
25
  // packages/cli/dist/digest-commands.js
26
26
  var norm = (s) => s.toLowerCase().replace(/^@/, "");
@@ -70,8 +70,8 @@ async function buildDigest(root, user) {
70
70
  }
71
71
  if (!lines.length)
72
72
  lines.push("Nothing waits on you.");
73
- const { readMe } = await import("./chunk-IFQJ3YQE.js");
74
- const { watchLine } = await import("./chunk-IERXBWQU.js");
73
+ const { readMe } = await import("./chunk-WNPGLGCJ.js");
74
+ const { watchLine } = await import("./chunk-DNKYWTVZ.js");
75
75
  const watching = [];
76
76
  for (const c of (await readMe(root)).watch)
77
77
  watching.push(await watchLine(root, c));
@@ -10,12 +10,12 @@ import {
10
10
  globToRegExp,
11
11
  memoryRepo,
12
12
  scanRepo
13
- } from "./chunk-UFIQ5FWY.js";
13
+ } from "./chunk-3M3MDBOG.js";
14
14
  import {
15
15
  MESH_KEY,
16
16
  readTarGz,
17
17
  readZip
18
- } from "./chunk-6ZDAEUKB.js";
18
+ } from "./chunk-WJWSB65O.js";
19
19
  import {
20
20
  Dialect,
21
21
  FrameworkModel,
@@ -28,7 +28,7 @@ import {
28
28
  normalizePath,
29
29
  renderExpr,
30
30
  renderTemplate
31
- } from "./chunk-LZFKJ2BR.js";
31
+ } from "./chunk-A3LVMCA5.js";
32
32
  import {
33
33
  require_dist
34
34
  } from "./chunk-BQGDB6ZL.js";
@@ -1965,8 +1965,8 @@ function grammarFile(lang, here = __atticus_import_meta_url) {
1965
1965
  if (lang === "groovy")
1966
1966
  return fileURLToPath(new URL("../../grammars/tree-sitter-groovy.wasm", here));
1967
1967
  const name2 = `tree-sitter-${lang}.wasm`;
1968
- const shipped = fileURLToPath(new URL(`../../../../vendor/tree-sitter-wasms/out/${name2}`, here));
1969
- return existsSync(shipped) ? shipped : require2.resolve(`tree-sitter-wasms/out/${name2}`);
1968
+ const shipped2 = fileURLToPath(new URL(`../../../../vendor/tree-sitter-wasms/out/${name2}`, here));
1969
+ return existsSync(shipped2) ? shipped2 : require2.resolve(`tree-sitter-wasms/out/${name2}`);
1970
1970
  }
1971
1971
  async function parseSyntax(lang, text2) {
1972
1972
  const l = await language(lang);
@@ -15323,11 +15323,16 @@ function listShippedDialects() {
15323
15323
  return names.filter((n) => /\.ya?ml$/.test(n)).sort().map((n) => join5(SHIPPED_DIALECTS_DIR, n));
15324
15324
  }
15325
15325
  async function loadShippedDialects() {
15326
- const out2 = [];
15327
- for (const p of listShippedDialects())
15328
- out2.push(Dialect.parse((0, import_yaml13.parse)(await readFile(p, "utf8"))));
15329
- return out2;
15326
+ shipped ??= (async () => {
15327
+ const out2 = [];
15328
+ for (const p of listShippedDialects())
15329
+ out2.push(Dialect.parse((0, import_yaml13.parse)(await readFile(p, "utf8"))));
15330
+ return out2;
15331
+ })();
15332
+ shipped.catch(() => shipped = void 0);
15333
+ return structuredClone(await shipped);
15330
15334
  }
15335
+ var shipped;
15331
15336
 
15332
15337
  // packages/extractors/dist/data/index.js
15333
15338
  var DATA_EXTRACTORS = [
@@ -18,12 +18,12 @@ import {
18
18
  readHistory,
19
19
  recordingOf,
20
20
  setLocalRecording
21
- } from "./chunk-GNFZ227W.js";
22
- import "./chunk-BSZII65X.js";
23
- import "./chunk-6ZDAEUKB.js";
24
- import "./chunk-MEMEO7YO.js";
25
- import "./chunk-LZFKJ2BR.js";
26
- import "./chunk-CTJHEG6A.js";
21
+ } from "./chunk-XIIT4PVT.js";
22
+ import "./chunk-SFCFL7Y5.js";
23
+ import "./chunk-WJWSB65O.js";
24
+ import "./chunk-SMFFUFMN.js";
25
+ import "./chunk-A3LVMCA5.js";
26
+ import "./chunk-NWMFVPEP.js";
27
27
  import "./chunk-BQGDB6ZL.js";
28
28
  import "./chunk-TV45EUGM.js";
29
29
  export {
@@ -9,14 +9,14 @@ import {
9
9
  planBatches,
10
10
  reachableModels,
11
11
  readingRank
12
- } from "./chunk-RK5P2DWD.js";
12
+ } from "./chunk-YIGSUTW2.js";
13
13
  import {
14
14
  neutralise,
15
15
  wrapData
16
- } from "./chunk-ZDA72732.js";
16
+ } from "./chunk-2MRYL45Z.js";
17
17
  import {
18
18
  estimateTokens
19
- } from "./chunk-6ZDAEUKB.js";
19
+ } from "./chunk-WJWSB65O.js";
20
20
 
21
21
  // packages/cli/dist/map-reach.js
22
22
  var CLIENT_ONLY_WHY = "reached only from an outbound client; --models reachable reads them";