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

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 (281) hide show
  1. package/dist/bin.js +3 -3
  2. package/dist/{chunk-S7GUZ45I.js → chunk-23QHP4JJ.js} +5 -3
  3. package/dist/{chunk-73V2OONC.js → chunk-2RABF6RT.js} +17 -15
  4. package/dist/{chunk-ENH6Z4TY.js → chunk-2ULVUSIP.js} +17 -17
  5. package/dist/{chunk-G6EFXTUO.js → chunk-2VN4TLGI.js} +7 -5
  6. package/dist/{chunk-ZSNOILL5.js → chunk-2Y5FJQSF.js} +1 -1
  7. package/dist/{chunk-YDCOZOER.js → chunk-334N6EI2.js} +20 -18
  8. package/dist/chunk-3D74UADA.js +22 -0
  9. package/dist/{chunk-63NFFAGI.js → chunk-3NA2VE45.js} +14 -12
  10. package/dist/{chunk-CJEBRJBS.js → chunk-3VC2XJ53.js} +6 -4
  11. package/dist/{chunk-7NQAGYK4.js → chunk-3WO7ASU7.js} +8 -8
  12. package/dist/{chunk-GM4EFHUX.js → chunk-4GWQVT2C.js} +19 -16
  13. package/dist/{chunk-SVGGMBJI.js → chunk-4PW5SRKJ.js} +15 -13
  14. package/dist/{chunk-27AJAKX7.js → chunk-4SS5ZK47.js} +3 -3
  15. package/dist/{chunk-PQQKZPBU.js → chunk-4U3JLIRC.js} +1 -1
  16. package/dist/{chunk-Z3H27OMV.js → chunk-4WIVTPGE.js} +6 -4
  17. package/dist/{chunk-XF6TSZW2.js → chunk-5267F4BS.js} +6 -4
  18. package/dist/chunk-5CPZIWIN.js +38 -0
  19. package/dist/{chunk-PWXB5GBB.js → chunk-5GLGLWAJ.js} +18 -16
  20. package/dist/{chunk-2QPJ4E4Z.js → chunk-5K6ZKHZR.js} +4 -2
  21. package/dist/{chunk-QZWRPQTI.js → chunk-5OVSDV77.js} +8 -6
  22. package/dist/{chunk-FJVUHQPS.js → chunk-5P4PNGPL.js} +26 -23
  23. package/dist/{chunk-M3EOFSPY.js → chunk-5R3FRI6H.js} +33 -29
  24. package/dist/{chunk-PNSSE7JM.js → chunk-5RDKQOY3.js} +25 -23
  25. package/dist/{chunk-KDJ2YKAZ.js → chunk-5RKN5QIX.js} +9 -7
  26. package/dist/{chunk-3EX5HCZD.js → chunk-5UJ7C7IH.js} +16 -14
  27. package/dist/{chunk-ZLQEQR3D.js → chunk-5WZV37WS.js} +8 -6
  28. package/dist/{chunk-OBUB3H72.js → chunk-62FMA437.js} +14 -12
  29. package/dist/{chunk-UALE35WK.js → chunk-6576X5BJ.js} +5 -3
  30. package/dist/{chunk-TXNSQ24G.js → chunk-6WYOJCB4.js} +3 -3
  31. package/dist/{chunk-TV56QLLV.js → chunk-77REYYY5.js} +5 -3
  32. package/dist/{chunk-QLQIFJP3.js → chunk-7AKJ2XTW.js} +19 -16
  33. package/dist/{chunk-2WUTCPPJ.js → chunk-7E3G5NCH.js} +17 -13
  34. package/dist/{chunk-FVYZ4Y52.js → chunk-7EAH2MFY.js} +5 -3
  35. package/dist/{chunk-PXW2RZGQ.js → chunk-7F4GZ7U2.js} +3 -3
  36. package/dist/{chunk-6RQOINER.js → chunk-7FUQAT2R.js} +6 -4
  37. package/dist/{chunk-AQRUQNFB.js → chunk-7HW2CMIN.js} +10 -8
  38. package/dist/{chunk-AGOLEMHK.js → chunk-7NLYSTEK.js} +10 -8
  39. package/dist/{chunk-YHMPDIRG.js → chunk-7QZDGM5V.js} +6 -4
  40. package/dist/{chunk-MEJ63LDG.js → chunk-7U6PBBXG.js} +11 -9
  41. package/dist/{chunk-UTPIFH4I.js → chunk-7UYRN4ON.js} +5 -3
  42. package/dist/{chunk-5OXKCH4Z.js → chunk-7X3WLAKP.js} +93 -40
  43. package/dist/{chunk-7IFTSAHP.js → chunk-7YFUNWFM.js} +10 -8
  44. package/dist/chunk-7YSMZEO3.js +55 -0
  45. package/dist/{chunk-RPQITJNX.js → chunk-A3AADMM2.js} +10 -8
  46. package/dist/{chunk-VK7WYA64.js → chunk-A3J75BO2.js} +14 -12
  47. package/dist/chunk-AENMOZMM.js +42 -0
  48. package/dist/{chunk-7K5OH45X.js → chunk-AGAFNUYZ.js} +87 -10
  49. package/dist/{chunk-VKTXFFOZ.js → chunk-AYWJMHSX.js} +5 -3
  50. package/dist/{chunk-3UHV76UD.js → chunk-B2U4AOZ5.js} +41 -38
  51. package/dist/chunk-BDKYHCGI.js +71 -0
  52. package/dist/{chunk-RQQYEDAC.js → chunk-BEDZNT62.js} +12 -9
  53. package/dist/{chunk-PGAMTKBI.js → chunk-BIQNPWGX.js} +6 -4
  54. package/dist/{chunk-LSHSDC6S.js → chunk-BJDVI5W6.js} +19 -17
  55. package/dist/{chunk-PFULMC2D.js → chunk-BMMTWRWE.js} +22 -20
  56. package/dist/{chunk-KT6Q44CA.js → chunk-BPDS7KUR.js} +27 -25
  57. package/dist/{chunk-7XYLNQFO.js → chunk-BS52P2CM.js} +13 -5
  58. package/dist/{chunk-TABH4RBZ.js → chunk-C5LX54QK.js} +16 -14
  59. package/dist/{chunk-NCLZJCXA.js → chunk-CB6H7MH2.js} +23 -21
  60. package/dist/{chunk-CZ2ZS7AT.js → chunk-CGVRLQAY.js} +2166 -326
  61. package/dist/{chunk-HJQVUOUL.js → chunk-CMUJSPP4.js} +13 -11
  62. package/dist/{chunk-CT6NINGR.js → chunk-CNF7D3A7.js} +3 -3
  63. package/dist/{chunk-BP33TBLI.js → chunk-CPFAWYVC.js} +9 -7
  64. package/dist/chunk-CQRFCWQV.js +45 -0
  65. package/dist/chunk-CTJHEG6A.js +97 -0
  66. package/dist/{chunk-SCT4CEF7.js → chunk-CVWKS6GO.js} +22 -20
  67. package/dist/chunk-D2CGJ7RR.js +46 -0
  68. package/dist/{chunk-K757G7AD.js → chunk-D45K3XKK.js} +19 -16
  69. package/dist/chunk-D7QIZLWB.js +38 -0
  70. package/dist/{chunk-YERAAEO4.js → chunk-DAHKLVHU.js} +15 -13
  71. package/dist/{chunk-OPWGPQ2N.js → chunk-DBVQEPZB.js} +8 -6
  72. package/dist/{chunk-T33TPFGI.js → chunk-DCPI3ETH.js} +24 -22
  73. package/dist/{chunk-RRQUQAXP.js → chunk-DJ4C5ELF.js} +5 -2
  74. package/dist/{chunk-RCG5IAAT.js → chunk-DLNQ3HUM.js} +12 -10
  75. package/dist/chunk-DM3H4V2G.js +62 -0
  76. package/dist/{chunk-EVTI22PQ.js → chunk-DMQJDHXG.js} +7 -4
  77. package/dist/{chunk-5VTIWEWP.js → chunk-DPZD7WVX.js} +4 -2
  78. package/dist/{chunk-WF3RCZNO.js → chunk-DYVUNT4O.js} +9 -7
  79. package/dist/{chunk-2UMSHYCB.js → chunk-E2OP6JNF.js} +26 -24
  80. package/dist/{chunk-6Y4FXOMI.js → chunk-E7PR4WMM.js} +24 -22
  81. package/dist/{chunk-TNCF26JK.js → chunk-EAGSM3XY.js} +14 -12
  82. package/dist/{chunk-X5ZHDSLU.js → chunk-EJGUEUXG.js} +25 -23
  83. package/dist/chunk-ELKTDXV3.js +67 -0
  84. package/dist/{chunk-T3FNG2H2.js → chunk-ELNIQYLR.js} +14 -12
  85. package/dist/{chunk-DHKDH464.js → chunk-ELNLHU7Y.js} +6 -4
  86. package/dist/{chunk-CA3DKO4D.js → chunk-EM7F6XEU.js} +4 -2
  87. package/dist/{chunk-K4OXYSGS.js → chunk-EP7ZBZLT.js} +7 -5
  88. package/dist/chunk-EPXYFJTY.js +278 -0
  89. package/dist/{chunk-MBYYQHPM.js → chunk-EUCATH2U.js} +6 -4
  90. package/dist/{chunk-73CC73I4.js → chunk-EXCXNDTQ.js} +1 -1
  91. package/dist/{chunk-SRTUETF5.js → chunk-EXGXCVWC.js} +24 -22
  92. package/dist/{chunk-BYBU2EIB.js → chunk-F36DIKJ3.js} +23 -21
  93. package/dist/{chunk-P22EPEBR.js → chunk-F4WKGX7K.js} +18 -16
  94. package/dist/{chunk-ZJGCGKA4.js → chunk-F56DNMDD.js} +5 -3
  95. package/dist/chunk-FJS2FZFZ.js +41 -0
  96. package/dist/{chunk-2YSD6E6V.js → chunk-FNP4M4VL.js} +42 -33
  97. package/dist/{chunk-B4AEL3RF.js → chunk-G3ZFEHCX.js} +21 -107
  98. package/dist/{chunk-XOMEQVLK.js → chunk-G5P7F6RQ.js} +5 -3
  99. package/dist/chunk-GAU2IFIC.js +33 -0
  100. package/dist/{chunk-XNFM6WUK.js → chunk-GAVEIYKH.js} +21 -18
  101. package/dist/{chunk-TUM52SOE.js → chunk-GD6FXN6R.js} +17 -15
  102. package/dist/{chunk-D6BVLTDV.js → chunk-GDGE7ZHC.js} +28 -26
  103. package/dist/{chunk-SYP56T2D.js → chunk-GIOOA2ZO.js} +7 -4
  104. package/dist/chunk-GLISHJ4G.js +21345 -0
  105. package/dist/chunk-GPOL5H3B.js +55 -0
  106. package/dist/{chunk-ZFHFC74B.js → chunk-GVOQJPKA.js} +20 -18
  107. package/dist/{chunk-G7VBMOZH.js → chunk-GX67TNFA.js} +3 -3
  108. package/dist/{chunk-VNIN7Q6Q.js → chunk-H75SPCAW.js} +18 -16
  109. package/dist/{chunk-J4CPHJUL.js → chunk-H7GAPNGQ.js} +29 -18
  110. package/dist/{chunk-X7ZKNSK4.js → chunk-HD72AL3L.js} +20 -18
  111. package/dist/{chunk-FBCVC2GJ.js → chunk-HHZ2ZKUD.js} +16 -13
  112. package/dist/{chunk-K4RNVDR4.js → chunk-HHZEXF7V.js} +8 -6
  113. package/dist/{chunk-OK6JGLE7.js → chunk-HR34F2AJ.js} +14 -12
  114. package/dist/{chunk-3MYBT62N.js → chunk-HU7VXMFV.js} +9 -7
  115. package/dist/{chunk-LPDTDFKA.js → chunk-HV3KPEFH.js} +18 -16
  116. package/dist/{chunk-4ETO2FXE.js → chunk-I2M7MXSV.js} +14 -12
  117. package/dist/{chunk-W3AZE7LN.js → chunk-IDTVBZQI.js} +3 -3
  118. package/dist/{chunk-BFL4PO64.js → chunk-IFDCCCEN.js} +6 -4
  119. package/dist/{chunk-3ZA3AK2D.js → chunk-IKRM64KR.js} +12 -10
  120. package/dist/{chunk-JMEWJPF2.js → chunk-IMTAHDME.js} +7 -7
  121. package/dist/{chunk-DCRYOMTM.js → chunk-IP6TSICI.js} +14 -12
  122. package/dist/{chunk-PT4USJNN.js → chunk-IW3QMW3X.js} +10 -8
  123. package/dist/{chunk-MLGWSBF4.js → chunk-IWQEZFVV.js} +261 -62
  124. package/dist/{chunk-C6ORPLCN.js → chunk-J65TN6QU.js} +7 -5
  125. package/dist/{chunk-QBMLBCQH.js → chunk-JCKKAELC.js} +16 -13
  126. package/dist/{chunk-XGO74QWR.js → chunk-JJEPU4VS.js} +7 -5
  127. package/dist/{chunk-BFMTGNAQ.js → chunk-JKEUPSCE.js} +5 -3
  128. package/dist/{chunk-HMZ2DRBC.js → chunk-JMOZ6K5A.js} +16 -5
  129. package/dist/{chunk-WZYM5M4U.js → chunk-JQGWP3SC.js} +19 -17
  130. package/dist/{chunk-ZR6J4QFQ.js → chunk-JWLABUXL.js} +13 -11
  131. package/dist/{chunk-EXJZBL5N.js → chunk-JXLUHMTC.js} +23 -21
  132. package/dist/{chunk-DSHRA72L.js → chunk-K373N5U6.js} +13 -11
  133. package/dist/{chunk-WYGTSZHR.js → chunk-K3OIBTCV.js} +16 -14
  134. package/dist/{chunk-BAY4K55I.js → chunk-K4C2DWOZ.js} +16 -13
  135. package/dist/{chunk-GOZLTLRY.js → chunk-K77ILFUQ.js} +4 -4
  136. package/dist/{chunk-4R3TO4VL.js → chunk-KFDOL2Y4.js} +19 -17
  137. package/dist/{chunk-T6MX7WXM.js → chunk-KGT5RIGE.js} +30 -13
  138. package/dist/{chunk-SWNKO4C4.js → chunk-KJPKIU2R.js} +29 -26
  139. package/dist/{chunk-T7IIEDA3.js → chunk-KN4UQJ7R.js} +6 -4
  140. package/dist/{chunk-AVMWESFZ.js → chunk-KW4DIXUL.js} +6 -3
  141. package/dist/{chunk-FRAEQVYN.js → chunk-KY3BUZYI.js} +24 -22
  142. package/dist/{chunk-FMJYKLDY.js → chunk-LGE6H4UP.js} +15 -8
  143. package/dist/{chunk-XAPXKFIS.js → chunk-LKRMVWXB.js} +33 -24
  144. package/dist/{chunk-BUUJ7N4O.js → chunk-LMNCRSER.js} +31 -11
  145. package/dist/{chunk-TMFMXQEN.js → chunk-LNGFTPU7.js} +22 -19
  146. package/dist/{chunk-N2YX6JMY.js → chunk-LOJGNSPA.js} +28 -23
  147. package/dist/{chunk-6ZSYLZ7O.js → chunk-LP5QGTCR.js} +3 -3
  148. package/dist/{chunk-S35DIFJH.js → chunk-LPXH2DA4.js} +19 -17
  149. package/dist/{chunk-FRCOKUU4.js → chunk-LQD3R6NZ.js} +9 -7
  150. package/dist/{chunk-FPBUTZI5.js → chunk-LZFKJ2BR.js} +3233 -22921
  151. package/dist/{chunk-TDSCKP3V.js → chunk-M6HI36T3.js} +2 -2
  152. package/dist/{chunk-SK5RVP7X.js → chunk-M7XNX5IC.js} +11 -9
  153. package/dist/{chunk-RGZFOKVO.js → chunk-MELS6T5J.js} +6 -4
  154. package/dist/{chunk-6NN36LVK.js → chunk-MJAIBPI5.js} +3 -3
  155. package/dist/{chunk-Y2H7X3VI.js → chunk-MJMEF7SD.js} +10 -8
  156. package/dist/{chunk-FTLYXMHA.js → chunk-MJOIMGS4.js} +7 -5
  157. package/dist/chunk-MLUHBVCI.js +45 -0
  158. package/dist/{chunk-JXAKYP45.js → chunk-MM5OAVSW.js} +27 -25
  159. package/dist/{chunk-6ZFF7XSL.js → chunk-MM7YWUBB.js} +6 -6
  160. package/dist/{chunk-S5GSQPIN.js → chunk-MN2XDLDM.js} +18 -16
  161. package/dist/{chunk-MNIPPBCT.js → chunk-MWOPED6I.js} +7 -5
  162. package/dist/{chunk-JFFKHIM6.js → chunk-MXPKXCGP.js} +1 -1
  163. package/dist/{chunk-IYNCSYU4.js → chunk-MZTU5L6S.js} +6 -4
  164. package/dist/{chunk-NAPHHWW2.js → chunk-N3OEBQTA.js} +3 -3
  165. package/dist/{chunk-PCCLVIDP.js → chunk-N6SSI6XO.js} +25 -22
  166. package/dist/{chunk-POSDBRKV.js → chunk-NB664KWQ.js} +28 -25
  167. package/dist/{chunk-Z3RAFU5B.js → chunk-NL6GIEJU.js} +17 -15
  168. package/dist/{chunk-ISG547IS.js → chunk-NMBHFSJQ.js} +24 -22
  169. package/dist/{chunk-CFUDAW3R.js → chunk-NMGFXT4S.js} +17 -15
  170. package/dist/{chunk-ZENHDXRZ.js → chunk-NPZ4KXIV.js} +20 -18
  171. package/dist/{chunk-CQ7RF4QN.js → chunk-NQLTWGF4.js} +6 -4
  172. package/dist/{chunk-KTNOBTV5.js → chunk-O6DJMDBR.js} +6 -4
  173. package/dist/{chunk-MH2ZK67S.js → chunk-OEUTV6EL.js} +15 -12
  174. package/dist/{chunk-CKVBDVIW.js → chunk-OMSH46JK.js} +6 -4
  175. package/dist/chunk-ONB7M2AF.js +52 -0
  176. package/dist/{chunk-QX4MAMUG.js → chunk-OOU4N2JQ.js} +136 -30
  177. package/dist/{chunk-4MYHETJ3.js → chunk-OW53P52N.js} +20 -18
  178. package/dist/{chunk-APDN6UOR.js → chunk-P4QTTCVK.js} +20 -18
  179. package/dist/{chunk-JSP73CDW.js → chunk-P56N3NPT.js} +8 -5
  180. package/dist/{chunk-CS4BMJLL.js → chunk-PCZ4C2V7.js} +7 -5
  181. package/dist/{chunk-A4JXVO5O.js → chunk-PGKCRK77.js} +10 -8
  182. package/dist/{chunk-RLZFL76D.js → chunk-PYVFLITV.js} +15 -13
  183. package/dist/{chunk-Z2D4P3R3.js → chunk-Q52KWTG5.js} +14 -12
  184. package/dist/{chunk-YD3KTW4H.js → chunk-Q6UYUCNS.js} +14 -12
  185. package/dist/chunk-QBK33722.js +51 -0
  186. package/dist/{chunk-L3RCQWVQ.js → chunk-QE444DZ2.js} +53 -26
  187. package/dist/{chunk-Y5IE6YKD.js → chunk-QEP4HTJE.js} +6 -4
  188. package/dist/{chunk-FSN6JFXB.js → chunk-QFOJ3UPU.js} +25 -19
  189. package/dist/{chunk-3424TLIJ.js → chunk-QQD25YNF.js} +12 -10
  190. package/dist/{chunk-HRS5O7VV.js → chunk-QSKY7FE3.js} +21 -17
  191. package/dist/{chunk-LO6Y7OTG.js → chunk-R6HJ4SDB.js} +10 -7
  192. package/dist/{chunk-QLWDIKO4.js → chunk-RFQW7XT3.js} +20 -17
  193. package/dist/{chunk-4GAB5ZOZ.js → chunk-RL7PETU6.js} +30 -26
  194. package/dist/{chunk-66AQ2JIU.js → chunk-ROVOAF2O.js} +13 -11
  195. package/dist/{chunk-UJF7PIMP.js → chunk-RSA5JJMN.js} +58 -34
  196. package/dist/{chunk-J32IPTVQ.js → chunk-RX56MZLX.js} +22 -20
  197. package/dist/chunk-S7I7SLZN.js +59 -0
  198. package/dist/{chunk-S6W3D5GS.js → chunk-S7UQFI4B.js} +29 -26
  199. package/dist/{chunk-TVQSXWWV.js → chunk-SBNBVUOF.js} +35 -33
  200. package/dist/{chunk-POEMZECG.js → chunk-SD3PGZSR.js} +1 -1
  201. package/dist/{chunk-EMVZIOOD.js → chunk-SEBBJQWK.js} +17 -15
  202. package/dist/{chunk-MWF4PXQR.js → chunk-SGTAQNOP.js} +37 -34
  203. package/dist/{chunk-HUGQZQ2K.js → chunk-SHWHRCMU.js} +9 -7
  204. package/dist/{chunk-POSZFDSQ.js → chunk-SRLUADSY.js} +6 -4
  205. package/dist/{chunk-J25YOUIZ.js → chunk-SXF66YNZ.js} +6 -4
  206. package/dist/{chunk-PRMUQUWN.js → chunk-T5QYYB5L.js} +16 -14
  207. package/dist/{chunk-OSYHGGL3.js → chunk-TAIYQDIV.js} +20 -18
  208. package/dist/{chunk-NROSSWMS.js → chunk-TIOYZDRB.js} +8 -6
  209. package/dist/{chunk-S6LW2RRC.js → chunk-TKCNJJ2S.js} +10 -8
  210. package/dist/{chunk-T6MAWL5P.js → chunk-TVFADTAT.js} +6 -4
  211. package/dist/{chunk-FMR2D3AZ.js → chunk-U4HZ5CXL.js} +8 -6
  212. package/dist/{chunk-XMUWPA56.js → chunk-U7F6E5M3.js} +27 -24
  213. package/dist/{chunk-FL344WQD.js → chunk-U7YZ3IRI.js} +6 -4
  214. package/dist/{chunk-OCQWSFJD.js → chunk-UCKG6UE7.js} +14 -12
  215. package/dist/{chunk-LM45GMMB.js → chunk-UCQB6NKS.js} +7 -7
  216. package/dist/{chunk-6SNTHK43.js → chunk-UI7ID4HG.js} +24 -19
  217. package/dist/{chunk-S5XFO4GY.js → chunk-UJ535VWR.js} +6 -4
  218. package/dist/chunk-UKMA5JFE.js +52 -0
  219. package/dist/{chunk-E3PDCQRH.js → chunk-UR6JGVX2.js} +299 -247
  220. package/dist/{chunk-IMZFOMVX.js → chunk-USH4VU5D.js} +5 -3
  221. package/dist/{chunk-V7PEHQZU.js → chunk-UTYL4XVA.js} +21 -19
  222. package/dist/{chunk-NC755EKE.js → chunk-UTZMF5CV.js} +1 -1
  223. package/dist/{chunk-FQVSLBTV.js → chunk-UVKJVTKX.js} +3 -3
  224. package/dist/{chunk-Q367UGYN.js → chunk-V7T6URII.js} +10 -8
  225. package/dist/{chunk-6RYB3EET.js → chunk-VAZYNF6I.js} +14 -12
  226. package/dist/{chunk-J2H7YG3K.js → chunk-VBJHIRKV.js} +5 -3
  227. package/dist/{chunk-QVVGJVVX.js → chunk-VOBG7BLB.js} +18 -16
  228. package/dist/{chunk-7XWJ6ED2.js → chunk-W2W7YCFL.js} +16 -13
  229. package/dist/{chunk-XFDDJQT7.js → chunk-WA644MUQ.js} +15 -13
  230. package/dist/{chunk-6NCPLIIP.js → chunk-WDJGJ3HV.js} +441 -365
  231. package/dist/chunk-WGOQZ4PQ.js +488 -0
  232. package/dist/{chunk-3EWKO457.js → chunk-WS7KBKP4.js} +8 -6
  233. package/dist/chunk-X7QLAUNS.js +47 -0
  234. package/dist/{chunk-4FLNCK6Q.js → chunk-XC5ZDFW7.js} +13 -11
  235. package/dist/{chunk-VRO7KSGL.js → chunk-XF5UMMQL.js} +23 -21
  236. package/dist/{chunk-WOMQQWTO.js → chunk-XM3JE4QY.js} +7 -5
  237. package/dist/{chunk-73GFVW2L.js → chunk-XP5DF5MC.js} +51 -14
  238. package/dist/{chunk-W5VYJWOG.js → chunk-XUCHGEF5.js} +25 -23
  239. package/dist/{chunk-AFBCNZRZ.js → chunk-XVQQ3BQS.js} +26 -24
  240. package/dist/{chunk-VJFXQISZ.js → chunk-XXJSGCDO.js} +13 -9
  241. package/dist/{chunk-WXVTYLVH.js → chunk-XY6FVBBV.js} +4 -4
  242. package/dist/{chunk-QAVRDONY.js → chunk-XZQBFF65.js} +121 -119
  243. package/dist/{chunk-LZVHP7CT.js → chunk-Y3J365UC.js} +7 -5
  244. package/dist/{chunk-GUGQSIQM.js → chunk-Y6KPWRZJ.js} +11 -9
  245. package/dist/{chunk-ZNHQGG7J.js → chunk-YAUMNRCB.js} +4 -4
  246. package/dist/{chunk-6R5VHR3N.js → chunk-YEGGQG5E.js} +9 -7
  247. package/dist/{chunk-LHH5KG5A.js → chunk-YGNQUFVZ.js} +3 -3
  248. package/dist/{chunk-CMB7FXHJ.js → chunk-YGS2YVF2.js} +16 -14
  249. package/dist/{chunk-IKAW2KJU.js → chunk-YRKAJ42V.js} +525 -287
  250. package/dist/{chunk-7YQBDE5W.js → chunk-Z3KEX7ON.js} +6 -4
  251. package/dist/{chunk-ZNTTW4IT.js → chunk-Z4N7BKLN.js} +7 -5
  252. package/dist/{chunk-75OMRKY2.js → chunk-ZD64ZR64.js} +7 -5
  253. package/dist/{chunk-3ASYYMOX.js → chunk-ZJQ64T6M.js} +10 -8
  254. package/dist/files.json +563 -547
  255. package/dist/packages/sdk/npm/index.js +5530 -4902
  256. package/dist/packages/ui/dist/assets/{elk-api-DxfAMOJq.js → elk-api-ts8TigYQ.js} +2 -2
  257. package/dist/packages/ui/dist/assets/index-CIfmX7DJ.css +1 -0
  258. package/dist/packages/ui/dist/assets/index-DNtpSfZS.js +63 -0
  259. package/dist/packages/ui/dist/index.html +2 -2
  260. package/package.json +3 -3
  261. package/dist/chunk-5MYE42AP.js +0 -43
  262. package/dist/chunk-5O7U67UA.js +0 -57
  263. package/dist/chunk-6JVPBGQG.js +0 -50
  264. package/dist/chunk-AHFQHPFF.js +0 -49
  265. package/dist/chunk-CXTG6AWM.js +0 -40
  266. package/dist/chunk-GPNMSX5H.js +0 -36
  267. package/dist/chunk-HMWJWYE2.js +0 -31
  268. package/dist/chunk-ICBGVVRI.js +0 -317
  269. package/dist/chunk-J2CDBSFP.js +0 -69
  270. package/dist/chunk-NKJDO4UC.js +0 -39
  271. package/dist/chunk-NOYOFYAJ.js +0 -59
  272. package/dist/chunk-OXXZZ7HQ.js +0 -50
  273. package/dist/chunk-P4YUT7W7.js +0 -45
  274. package/dist/chunk-RQSLHZ7T.js +0 -36
  275. package/dist/chunk-RYQ4JCFT.js +0 -65
  276. package/dist/chunk-UMCDODBX.js +0 -53
  277. package/dist/chunk-VJZI6KFP.js +0 -47
  278. package/dist/chunk-W4TNCEI4.js +0 -44
  279. package/dist/chunk-XLZAAAPX.js +0 -43
  280. package/dist/packages/ui/dist/assets/index-Buit9TfP.js +0 -62
  281. package/dist/packages/ui/dist/assets/index-Jyc9dFeZ.css +0 -1
@@ -0,0 +1,488 @@
1
+ import { createRequire as __atticusCreateRequire } from "node:module";
2
+ import { fileURLToPath as __atticusFileURLToPath } from "node:url";
3
+ var require = __atticusCreateRequire(import.meta.url);
4
+ var __atticusUrl = (p) => new URL("./" + p, import.meta.url).href;
5
+ var __atticusPath = (p) => __atticusFileURLToPath(__atticusUrl(p));
6
+ import {
7
+ appendLines
8
+ } from "./chunk-7F4GZ7U2.js";
9
+ import {
10
+ readCorrections
11
+ } from "./chunk-XP5DF5MC.js";
12
+ import {
13
+ HttpError,
14
+ badRequest,
15
+ notFound
16
+ } from "./chunk-QSKY7FE3.js";
17
+ import {
18
+ applyCorrections,
19
+ correctedFact,
20
+ correctionFor,
21
+ outsidePairingFor,
22
+ repairFormSlips
23
+ } from "./chunk-CGVRLQAY.js";
24
+ import {
25
+ loadRepos
26
+ } from "./chunk-WS7KBKP4.js";
27
+ import {
28
+ FACT_FIXED_FIELDS,
29
+ FactCorrection,
30
+ FactId,
31
+ api_exports,
32
+ correctionLine,
33
+ factsDirOf,
34
+ factsRelOf,
35
+ listQuestions,
36
+ parseAuditFile,
37
+ parseCorrections,
38
+ parseFactsLines,
39
+ questionsDirOf,
40
+ sampleConfirmed
41
+ } from "./chunk-GLISHJ4G.js";
42
+ import {
43
+ LockHeldError,
44
+ withSharedFileLock,
45
+ writeFileAtomic
46
+ } from "./chunk-G3ZFEHCX.js";
47
+
48
+ // packages/cli/dist/ui-api-facts.js
49
+ import { mkdir, readdir as readdir2, readFile, rm } from "node:fs/promises";
50
+
51
+ // packages/cli/dist/file-memo.js
52
+ import { readdir, stat } from "node:fs/promises";
53
+ import { join } from "node:path";
54
+ var kept = /* @__PURE__ */ new Map();
55
+ async function stampOf(paths) {
56
+ const parts = await Promise.all(paths.map((p) => stat(p).then((s) => `${s.size}:${s.mtimeMs}`, () => "-")));
57
+ return parts.join("|");
58
+ }
59
+ var asking = /* @__PURE__ */ new Map();
60
+ function memoByFiles(key, paths, work, o = {}) {
61
+ const on = asking.get(key);
62
+ if (on)
63
+ return on;
64
+ const p = memoOnce(key, paths, work, o).finally(() => {
65
+ if (asking.get(key) === p)
66
+ asking.delete(key);
67
+ });
68
+ asking.set(key, p);
69
+ return p;
70
+ }
71
+ async function memoOnce(key, paths, work, o) {
72
+ const hit = kept.get(key);
73
+ if (hit && o.recheckAfterMs && Date.now() - hit.checked < o.recheckAfterMs)
74
+ return hit.value;
75
+ const stamp = await stampOf(typeof paths === "function" ? await paths() : paths);
76
+ if (hit && hit.stamp === stamp) {
77
+ hit.checked = Date.now();
78
+ return hit.value;
79
+ }
80
+ const value = work();
81
+ kept.set(key, { stamp, value, checked: Date.now() });
82
+ value.catch(() => {
83
+ if (kept.get(key)?.value === value)
84
+ kept.delete(key);
85
+ });
86
+ return value;
87
+ }
88
+ async function filesIn(dir) {
89
+ const names = await readdir(dir).catch(() => []);
90
+ return [dir, ...names.sort().map((n) => join(dir, n))];
91
+ }
92
+ async function filesUnder(dir) {
93
+ const out = [dir];
94
+ const entries = await readdir(dir, { withFileTypes: true }).catch(() => []);
95
+ for (const e of entries.sort((a, b) => a.name < b.name ? -1 : 1)) {
96
+ const p = join(dir, e.name);
97
+ if (e.isDirectory())
98
+ out.push(...await filesUnder(p));
99
+ else
100
+ out.push(p);
101
+ }
102
+ return out;
103
+ }
104
+ function recheckNow(key) {
105
+ const hit = kept.get(key);
106
+ if (hit)
107
+ hit.checked = 0;
108
+ }
109
+
110
+ // packages/cli/dist/ui-api-facts.js
111
+ import { join as join2 } from "node:path";
112
+ var REPO = /^[a-z0-9][a-z0-9._-]{0,99}$/i;
113
+ var fixed = new Set(FACT_FIXED_FIELDS);
114
+ function factLabel(f) {
115
+ switch (f.kind) {
116
+ case "entry":
117
+ return `${f.method ? `${f.method} ` : ""}${f.path}`;
118
+ case "call":
119
+ return `${f.method ? `${f.method} ` : ""}${f.path}${f.to ? ` \u2192 ${f.to}` : ""}`;
120
+ case "store":
121
+ return `${f.name} (${f.op})`;
122
+ case "field":
123
+ return `${f.name}${f.type ? `: ${f.type}` : ""}`;
124
+ case "deploy":
125
+ return `${f.platform}${f.resourceName ? ` ${f.resourceName}` : ""}`;
126
+ case "config":
127
+ return `${f.key}${f.value !== void 0 ? ` = ${f.value}` : ""}`;
128
+ // ADR 0124 addendum A-framework: what the repo or the module is built on.
129
+ case "framework":
130
+ return `${f.name}${f.version ? ` ${f.version}` : ""}`;
131
+ case "flow":
132
+ return f.name;
133
+ // ADR 0163: a term of the organisation's, with the role a note gave it.
134
+ case "term":
135
+ return `${f.term} ${f.value} (${f.role})`;
136
+ // ADR 0180: what a component is.
137
+ case "component":
138
+ return `${f.component ?? f.repo} is a ${f.type}`;
139
+ // ADR 0192: what a component's build publishes, and what it builds on.
140
+ case "artifact":
141
+ return `publishes ${f.group}:${f.name}${f.version ? `:${f.version}` : ""}`;
142
+ case "dependency":
143
+ return `builds on ${f.group}:${f.name}${f.version ? `:${f.version}` : ""}${f.scope && f.scope !== "compile" ? ` (${f.scope})` : ""}`;
144
+ }
145
+ }
146
+ function claimOf(f) {
147
+ const out = {};
148
+ for (const [k, v] of Object.entries(f))
149
+ if (!fixed.has(k) && typeof v === "string")
150
+ out[k] = v;
151
+ out.value = f.cite.value;
152
+ return out;
153
+ }
154
+ var spot = (c) => ({
155
+ file: c.file,
156
+ line: c.line,
157
+ value: c.value,
158
+ ...c.quote ? { quote: c.quote } : {}
159
+ });
160
+ async function readFacts(root, repo) {
161
+ const file = `${factsRelOf(root)}/${repo}.jsonl`;
162
+ const text = await readFile(join2(factsDirOf(root), `${repo}.jsonl`), "utf8").catch(() => void 0);
163
+ if (text === void 0)
164
+ return { file, present: false, facts: [], bad: [] };
165
+ const read = parseFactsLines(text);
166
+ const p = repairFormSlips(read.facts, read.bad);
167
+ return {
168
+ file,
169
+ present: true,
170
+ facts: p.facts,
171
+ bad: [
172
+ ...p.slips.map((x) => ({
173
+ file,
174
+ message: `slip of form fixed as read (a note; atticus verify ${repo} writes the fix into the facts file): ${x.message}`
175
+ })),
176
+ ...p.bad.map((b) => ({
177
+ file,
178
+ message: `line ${b.line} isn't a fact: ${b.issues.map((i) => i.message).join("; ")}`
179
+ }))
180
+ ]
181
+ };
182
+ }
183
+ async function repoFactsView(root, repo) {
184
+ const dir = factsDirOf(root);
185
+ return memoByFiles(`facts-view\0${root}\0${repo}`, [
186
+ ...[`${repo}.jsonl`, `${repo}.corrections.jsonl`, `${repo}.audit.yaml`].map((f) => join2(dir, f)),
187
+ // Its open questions are part of the view.
188
+ ...await filesIn(questionsDirOf(root))
189
+ ], () => repoFactsViewNow(root, repo));
190
+ }
191
+ async function repoFactsViewNow(root, repo) {
192
+ const f = await readFacts(root, repo);
193
+ const cFile = `${factsRelOf(root)}/${repo}.corrections.jsonl`;
194
+ const c = await readCorrections(root, repo);
195
+ const problems = [
196
+ ...f.bad,
197
+ ...c.bad.map((b) => ({
198
+ file: cFile,
199
+ message: `line ${b.line} isn't a correction: ${b.message}`
200
+ }))
201
+ ];
202
+ const auditText = await readFile(join2(factsDirOf(root), `${repo}.audit.yaml`), "utf8").catch(() => void 0);
203
+ const audit = auditText === void 0 ? void 0 : parseAuditFile(auditText);
204
+ const sampled = sampleConfirmed(audit?.ok ? audit.file : void 0, f.facts);
205
+ if (audit && !audit.ok)
206
+ problems.push({
207
+ file: `${factsRelOf(root)}/${repo}.audit.yaml`,
208
+ message: `isn't an audit file: ${audit.issues[0] ?? "invalid"}`
209
+ });
210
+ const facts = f.facts.map((x) => {
211
+ const corr = correctionFor(x, c.corrections) ?? outsidePairingFor(x, c.corrections);
212
+ return {
213
+ id: x.id,
214
+ kind: x.kind,
215
+ label: factLabel(x),
216
+ claim: claimOf(x),
217
+ cite: spot(x.cite),
218
+ ...x.kind === "flow" ? {
219
+ steps: [
220
+ ...x.steps.map((s) => ({ ...spot(s.cite), what: s.what })),
221
+ ...x.errors.map((e) => ({ ...spot(e.cite), what: `${e.when} \u2192 ${e.then}` }))
222
+ ]
223
+ } : {},
224
+ verified: x.verified === "line" && sampled.has(x.id) ? "sample" : x.verified,
225
+ by: x.by,
226
+ ...corr ? { correction: corr } : {}
227
+ };
228
+ });
229
+ const staleAll = applyCorrections(f.facts, c.corrections).stale;
230
+ const stale = staleAll.filter((s) => s.why === "none").map((s) => s.correction.fact);
231
+ for (const s of staleAll)
232
+ if (s.why === "invalid")
233
+ problems.push({ file: cFile, message: s.message });
234
+ const questions = await listQuestions(root, { repo, state: "open" }).then((l) => l.questions.map((q) => ({ id: q.id, question: q.question, evidence: q.evidence })), () => []);
235
+ return {
236
+ repo,
237
+ file: f.file,
238
+ present: f.present,
239
+ ...f.facts[0] ? { commit: f.facts[0].commit } : {},
240
+ facts,
241
+ corrections: { file: cFile, count: c.corrections.length, stale: [...new Set(stale)].sort() },
242
+ questions,
243
+ verify: `atticus verify ${repo}`,
244
+ problems
245
+ };
246
+ }
247
+ var repoOf = (v) => {
248
+ if (!REPO.test(v))
249
+ throw badRequest(`${JSON.stringify(v)} isn't a repo name.`);
250
+ return v;
251
+ };
252
+ function correctionOfRequest(f, req, user, at) {
253
+ const fact = f.facts.find((x) => x.id === req.fact);
254
+ if (!fact)
255
+ throw notFound(`${f.file} has no fact ${req.fact}.`);
256
+ const was = claimOf(fact);
257
+ const set = Object.fromEntries(Object.entries(req.set ?? {}).map(([k, v]) => [k, v.trim()]).filter(([k, v]) => was[k] !== v));
258
+ const line = req.line !== void 0 && req.line !== fact.cite.line ? req.line : void 0;
259
+ const c = FactCorrection.safeParse({
260
+ schemaVersion: 1,
261
+ fact: fact.id,
262
+ target: {
263
+ kind: fact.kind,
264
+ file: fact.cite.file,
265
+ line: fact.cite.line,
266
+ value: fact.cite.value
267
+ },
268
+ action: req.action,
269
+ ...req.action === "edit" && Object.keys(set).length ? { set } : {},
270
+ ...req.action === "edit" && line !== void 0 ? { line } : {},
271
+ ...req.reason ? { reason: req.reason } : {},
272
+ by: user,
273
+ at: at.toISOString()
274
+ });
275
+ if (!c.success)
276
+ throw new HttpError(422, "Atticus can't record that", c.error.issues.map((i) => i.message).join("; "));
277
+ if (c.data.action === "edit") {
278
+ const fixedFact = correctedFact(fact, c.data);
279
+ if (typeof fixedFact === "string")
280
+ throw new HttpError(422, "That isn't a fact", `The corrected ${fact.kind} isn't one: ${fixedFact}.`);
281
+ }
282
+ return { c: c.data, fact };
283
+ }
284
+ var saysOf = (c) => JSON.stringify([
285
+ c.action,
286
+ Object.entries(c.set ?? {}).sort(([a], [b]) => a < b ? -1 : a > b ? 1 : 0),
287
+ c.line ?? null,
288
+ c.reason ?? null
289
+ ]);
290
+ var LINK_CORRECTIONS_MAX_BODY = 16 * 1024 * 1024;
291
+ var holdingAll = (files, work, o = {}) => files.length ? withSharedFileLock(files[0], () => holdingAll(files.slice(1), work, o), o) : work();
292
+ async function repoSpellings(root) {
293
+ const byLower = /* @__PURE__ */ new Map();
294
+ const add = (n) => {
295
+ const k = n.toLowerCase();
296
+ byLower.set(k, (byLower.get(k) ?? /* @__PURE__ */ new Set()).add(n));
297
+ };
298
+ const manifests = /* @__PURE__ */ new Map();
299
+ for (const r of await loadRepos(root).catch(() => []))
300
+ manifests.set(r.id.toLowerCase(), r.id);
301
+ for (const n of await readdir2(factsDirOf(root)).catch(() => []))
302
+ if (n.endsWith(".jsonl") && !/\.(corrections|rejected|reviewed|questions)\.jsonl$/.test(n))
303
+ add(n.slice(0, -6));
304
+ return (name) => {
305
+ const k = name.toLowerCase();
306
+ const same = [...byLower.get(k) ?? []].sort();
307
+ const manifest = manifests.get(k);
308
+ if (!same.length && manifest)
309
+ return manifest;
310
+ if (!same.length)
311
+ throw notFound(`No repo of the estate is named ${name}.`);
312
+ if (same.length > 1)
313
+ throw new HttpError(422, "Atticus can't tell which repo that is", `The facts files spell ${same.join(", ")}, which differ only by case: one repo where case is ignored. Rename one (and its facts files) so each repo is spelt one way.`, { written: [] });
314
+ return same[0];
315
+ };
316
+ }
317
+ function uiFactsRoutes(r, ctx, deps = {}) {
318
+ const now = deps.now ?? (() => /* @__PURE__ */ new Date());
319
+ const write = deps.write ?? writeFileAtomic;
320
+ return r.add("GET", "/api/facts/{repo}", async ({ params }) => ({
321
+ status: 200,
322
+ body: await repoFactsView(ctx.root, repoOf(params.repo))
323
+ })).add("GET", "/api/facts/{repo}/preview", async ({ params, query }) => {
324
+ const repo = repoOf(params.repo);
325
+ const fact = query.get("fact") || void 0;
326
+ if (fact && !FactId.safeParse(fact).success)
327
+ throw badRequest(`${JSON.stringify(fact)} isn't a fact id.`);
328
+ const { verifyWritePreview } = await import("./chunk-SGTAQNOP.js");
329
+ const v = await verifyWritePreview(ctx.root, repo, fact ? { fact } : {});
330
+ if (!v)
331
+ throw notFound(`There are no facts for ${repo} at ${factsRelOf(ctx.root)}/${repo}.jsonl.`);
332
+ return { status: 200, body: v };
333
+ }).add("POST", "/api/facts/{repo}/corrections", async ({ params, body }) => {
334
+ const repo = (await repoSpellings(ctx.root))(repoOf(params.repo));
335
+ const b = api_exports.FactCorrectionRequest.safeParse(body ?? {});
336
+ if (!b.success)
337
+ throw badRequest("Say which fact and what is wrong: { fact, action, set, line, reason }.", {
338
+ errors: b.error.issues.map((i) => ({ path: i.path.join("."), message: i.message }))
339
+ });
340
+ const f = await readFacts(ctx.root, repo);
341
+ if (!f.present)
342
+ throw notFound(`There are no facts for ${repo} at ${f.file}.`);
343
+ const { c, fact } = correctionOfRequest(f, b.data, ctx.user, now());
344
+ const rel = `${factsRelOf(ctx.root)}/${repo}.corrections.jsonl`;
345
+ const written = correctionLine(c);
346
+ await mkdir(factsDirOf(ctx.root), { recursive: true });
347
+ const cfile = join2(factsDirOf(ctx.root), `${repo}.corrections.jsonl`);
348
+ await appendLines(cfile, [written], { waitMs: deps.lockWaitMs ?? 15e3 }).catch((e) => {
349
+ if (!(e instanceof LockHeldError))
350
+ throw e;
351
+ throw new HttpError(409, "Another write holds a corrections file", `${e.message} Nothing was written; try again once it is done.`, { written: [] });
352
+ });
353
+ ctx.events.publish({ type: "file.changed", path: rel });
354
+ const result = {
355
+ correction: c,
356
+ file: rel,
357
+ commit: `git add ${rel}
358
+ git commit -m "${repo}: a person's correction of ${fact.id}"`,
359
+ verify: `atticus verify ${repo}`,
360
+ line: written
361
+ };
362
+ return { status: 200, body: result };
363
+ }).add(
364
+ "POST",
365
+ "/api/links/corrections",
366
+ async ({ body }) => {
367
+ const b = api_exports.LinkCorrectionsRequest.safeParse(body ?? {});
368
+ if (!b.success)
369
+ throw badRequest("Say which calls and what is wrong: { items: [{ repo, fact, action, set }], reason }.", {
370
+ errors: b.error.issues.map((i) => ({ path: i.path.join("."), message: i.message }))
371
+ });
372
+ const at = now();
373
+ const byRepo = /* @__PURE__ */ new Map();
374
+ const read = /* @__PURE__ */ new Map();
375
+ const spelt = await repoSpellings(ctx.root);
376
+ for (const item of b.data.items) {
377
+ const repo = spelt(repoOf(item.repo));
378
+ let f = read.get(repo);
379
+ if (!f) {
380
+ f = await readFacts(ctx.root, repo);
381
+ read.set(repo, f);
382
+ }
383
+ if (!f.present)
384
+ throw notFound(`There are no facts for ${repo} at ${f.file}.`);
385
+ const reason = item.reason ?? b.data.reason;
386
+ const corrected = correctionOfRequest(f, {
387
+ fact: item.fact,
388
+ action: item.action,
389
+ ...item.set ? { set: item.set } : {},
390
+ ...reason ? { reason } : {}
391
+ }, ctx.user, at);
392
+ byRepo.set(repo, [...byRepo.get(repo) ?? [], corrected]);
393
+ }
394
+ await mkdir(factsDirOf(ctx.root), { recursive: true });
395
+ const repos = [...byRepo.keys()].sort((a, b2) => a < b2 ? -1 : a > b2 ? 1 : 0);
396
+ const fileOf = (repo) => join2(factsDirOf(ctx.root), `${repo}.corrections.jsonl`);
397
+ const relOf = (repo) => `${factsRelOf(ctx.root)}/${repo}.corrections.jsonl`;
398
+ const files = [];
399
+ const skipped = [];
400
+ const held = holdingAll(repos.map(fileOf), async () => {
401
+ const plan = [];
402
+ for (const repo of repos) {
403
+ const before = await readFile(fileOf(repo), "utf8").catch((e) => {
404
+ if (e.code === "ENOENT")
405
+ return void 0;
406
+ throw new HttpError(500, "Atticus wrote none of it", `${relOf(repo)} couldn't be read (${e instanceof Error ? e.message : String(e)}): nothing was written to any repo.`, { written: [] });
407
+ });
408
+ const onFile = parseCorrections(before ?? "").corrections;
409
+ const cs = [];
410
+ for (const { c, fact } of byRepo.get(repo)) {
411
+ const meets = correctionFor(fact, onFile);
412
+ if (meets && saysOf(meets) === saysOf(c)) {
413
+ if (!skipped.some((x) => x.repo === repo && x.fact === c.fact))
414
+ skipped.push({ repo, fact: c.fact });
415
+ continue;
416
+ }
417
+ onFile.push(c);
418
+ cs.push(c);
419
+ }
420
+ if (!cs.length)
421
+ continue;
422
+ const was = before ?? "";
423
+ const eol = /\r\n/.test(was) ? "\r\n" : "\n";
424
+ const lead = was && !was.endsWith("\n") ? eol : "";
425
+ const lines = cs.map(correctionLine);
426
+ plan.push({
427
+ repo,
428
+ before,
429
+ after: was + lead + lines.map((l) => `${l}${eol}`).join(""),
430
+ cs
431
+ });
432
+ }
433
+ const done = [];
434
+ for (const x of plan) {
435
+ try {
436
+ await write(fileOf(x.repo), x.after);
437
+ done.push(x);
438
+ } catch (e) {
439
+ const why = e instanceof Error ? e.message : String(e);
440
+ const kept2 = [];
441
+ for (const y of [...done].reverse())
442
+ await (y.before === void 0 ? rm(fileOf(y.repo), { force: true }) : write(fileOf(y.repo), y.before)).catch(() => kept2.push(y));
443
+ const written = kept2.sort((a, b2) => a.repo < b2.repo ? -1 : 1).map((y) => ({ repo: y.repo, file: relOf(y.repo) }));
444
+ for (const w of written)
445
+ ctx.events.publish({ type: "file.changed", path: w.file });
446
+ throw new HttpError(500, written.length ? "Atticus wrote only part of it" : "Atticus wrote none of it", written.length ? `${relOf(x.repo)} couldn't be written (${why}), and ${written.map((w) => w.file).join(", ")} couldn't be put back as it was: the corrections for ${written.map((w) => w.repo).join(", ")} are on file, the others are not. Asked again, the ones on file are skipped.` : `${relOf(x.repo)} couldn't be written (${why}): nothing was written to any repo.`, { written });
447
+ }
448
+ }
449
+ for (const x of done)
450
+ files.push({
451
+ repo: x.repo,
452
+ file: relOf(x.repo),
453
+ lines: x.cs.map(correctionLine),
454
+ corrections: x.cs
455
+ });
456
+ }, { waitMs: deps.lockWaitMs ?? 15e3 });
457
+ await held.catch((e) => {
458
+ if (!(e instanceof LockHeldError))
459
+ throw e;
460
+ throw new HttpError(409, "Another write holds a corrections file", `${e.message} Nothing was written to any repo; try again once it is done.`, { written: [] });
461
+ });
462
+ for (const f of files)
463
+ ctx.events.publish({ type: "file.changed", path: f.file });
464
+ const n = files.reduce((k, f) => k + f.corrections.length, 0);
465
+ const result = {
466
+ files,
467
+ // Nothing new written (every one on file already): nothing to commit.
468
+ commit: files.length ? `git add ${files.map((f) => f.file).join(" ")}
469
+ git commit -m "A person's correction of ${n} call${n === 1 ? "" : "s"} on one link"` : "",
470
+ verify: files.map((f) => `atticus verify ${f.repo}`),
471
+ ...skipped.length ? { skipped } : {}
472
+ };
473
+ return { status: 200, body: result };
474
+ },
475
+ // Review of beta.24: up to 5000 calls in one request (every call edge-calls gives), each
476
+ // with its why: more than the server's usual 4 MB.
477
+ { maxBody: LINK_CORRECTIONS_MAX_BODY }
478
+ );
479
+ }
480
+
481
+ export {
482
+ memoByFiles,
483
+ filesUnder,
484
+ recheckNow,
485
+ factLabel,
486
+ claimOf,
487
+ uiFactsRoutes
488
+ };
@@ -4,19 +4,21 @@ var require = __atticusCreateRequire(import.meta.url);
4
4
  var __atticusUrl = (p) => new URL("./" + p, import.meta.url).href;
5
5
  var __atticusPath = (p) => __atticusFileURLToPath(__atticusUrl(p));
6
6
  import {
7
- ChangeRepos,
8
- RecordId,
9
- RepoManifest,
10
- WORKSPACE_SCHEMA_VERSION,
11
7
  changeBranch,
12
8
  changesDirOf,
13
9
  orgPackDirOf,
14
10
  runsDirOf,
15
11
  toCanonicalYaml
16
- } from "./chunk-FPBUTZI5.js";
12
+ } from "./chunk-GLISHJ4G.js";
17
13
  import {
18
14
  withSharedFileLock
19
- } from "./chunk-B4AEL3RF.js";
15
+ } from "./chunk-G3ZFEHCX.js";
16
+ import {
17
+ ChangeRepos,
18
+ RecordId,
19
+ RepoManifest,
20
+ WORKSPACE_SCHEMA_VERSION
21
+ } from "./chunk-LZFKJ2BR.js";
20
22
  import {
21
23
  require_dist
22
24
  } from "./chunk-BQGDB6ZL.js";
@@ -0,0 +1,47 @@
1
+ import { createRequire as __atticusCreateRequire } from "node:module";
2
+ import { fileURLToPath as __atticusFileURLToPath } from "node:url";
3
+ var require = __atticusCreateRequire(import.meta.url);
4
+ var __atticusUrl = (p) => new URL("./" + p, import.meta.url).href;
5
+ var __atticusPath = (p) => __atticusFileURLToPath(__atticusUrl(p));
6
+ import {
7
+ explainCommand,
8
+ learnCheck,
9
+ learnList,
10
+ learnStart,
11
+ sandboxCreate
12
+ } from "./chunk-UCKG6UE7.js";
13
+ import "./chunk-EAGSM3XY.js";
14
+ import "./chunk-C5LX54QK.js";
15
+ import "./chunk-H7GAPNGQ.js";
16
+ import "./chunk-VOGCSYOI.js";
17
+ import "./chunk-IWQEZFVV.js";
18
+ import "./chunk-EM7F6XEU.js";
19
+ import "./chunk-GDGE7ZHC.js";
20
+ import "./chunk-JQGWP3SC.js";
21
+ import "./chunk-UTZMF5CV.js";
22
+ import "./chunk-U7YZ3IRI.js";
23
+ import "./chunk-DLNQ3HUM.js";
24
+ import "./chunk-YRKAJ42V.js";
25
+ import "./chunk-CGVRLQAY.js";
26
+ import "./chunk-RL7PETU6.js";
27
+ import "./chunk-PGKCRK77.js";
28
+ import "./chunk-M6HI36T3.js";
29
+ import "./chunk-2VN4TLGI.js";
30
+ import "./chunk-4U3JLIRC.js";
31
+ import "./chunk-MXPKXCGP.js";
32
+ import "./chunk-QQD25YNF.js";
33
+ import "./chunk-QA4O2GGC.js";
34
+ import "./chunk-WS7KBKP4.js";
35
+ import "./chunk-GLISHJ4G.js";
36
+ import "./chunk-G3ZFEHCX.js";
37
+ import "./chunk-LZFKJ2BR.js";
38
+ import "./chunk-CTJHEG6A.js";
39
+ import "./chunk-BQGDB6ZL.js";
40
+ import "./chunk-TV45EUGM.js";
41
+ export {
42
+ explainCommand,
43
+ learnCheck,
44
+ learnList,
45
+ learnStart,
46
+ sandboxCreate
47
+ };
@@ -3,31 +3,33 @@ import { fileURLToPath as __atticusFileURLToPath } from "node:url";
3
3
  var require = __atticusCreateRequire(import.meta.url);
4
4
  var __atticusUrl = (p) => new URL("./" + p, import.meta.url).href;
5
5
  var __atticusPath = (p) => __atticusFileURLToPath(__atticusUrl(p));
6
+ import {
7
+ doctorChecks
8
+ } from "./chunk-F36DIKJ3.js";
6
9
  import {
7
10
  buildSite,
8
11
  catalogRecords,
9
12
  openChanges
10
- } from "./chunk-NAPHHWW2.js";
11
- import {
12
- doctorChecks
13
- } from "./chunk-BYBU2EIB.js";
13
+ } from "./chunk-N3OEBQTA.js";
14
14
  import {
15
15
  readProbes,
16
16
  whatRunsWhere
17
- } from "./chunk-J4CPHJUL.js";
17
+ } from "./chunk-H7GAPNGQ.js";
18
18
  import {
19
19
  baseClonePath,
20
20
  loadRepos
21
- } from "./chunk-3EWKO457.js";
21
+ } from "./chunk-WS7KBKP4.js";
22
22
  import {
23
- CatalogBaseline,
24
- DEFAULT_RUNTIME,
25
- WORKSPACE_SCHEMA_VERSION,
26
23
  catalogDirOf,
27
24
  inputsDirOf,
28
- loadOrgPack,
29
25
  orgPackDirOf
30
- } from "./chunk-FPBUTZI5.js";
26
+ } from "./chunk-GLISHJ4G.js";
27
+ import {
28
+ CatalogBaseline,
29
+ DEFAULT_RUNTIME,
30
+ WORKSPACE_SCHEMA_VERSION,
31
+ loadOrgPack
32
+ } from "./chunk-LZFKJ2BR.js";
31
33
  import {
32
34
  require_dist
33
35
  } from "./chunk-BQGDB6ZL.js";
@@ -15,30 +15,32 @@ import {
15
15
  glossaryScan,
16
16
  testsGenerate,
17
17
  traceCommand
18
- } from "./chunk-JMEWJPF2.js";
19
- import "./chunk-EMVZIOOD.js";
18
+ } from "./chunk-IMTAHDME.js";
19
+ import "./chunk-SEBBJQWK.js";
20
20
  import "./chunk-MUWDB4R4.js";
21
21
  import "./chunk-VOGCSYOI.js";
22
- import "./chunk-ZR6J4QFQ.js";
23
- import "./chunk-MLGWSBF4.js";
24
- import "./chunk-CA3DKO4D.js";
25
- import "./chunk-D6BVLTDV.js";
26
- import "./chunk-RCG5IAAT.js";
27
- import "./chunk-WZYM5M4U.js";
28
- import "./chunk-NC755EKE.js";
29
- import "./chunk-FL344WQD.js";
30
- import "./chunk-IKAW2KJU.js";
31
- import "./chunk-CZ2ZS7AT.js";
32
- import "./chunk-4GAB5ZOZ.js";
33
- import "./chunk-A4JXVO5O.js";
34
- import "./chunk-TDSCKP3V.js";
35
- import "./chunk-G6EFXTUO.js";
36
- import "./chunk-PQQKZPBU.js";
37
- import "./chunk-3EWKO457.js";
38
- import "./chunk-3424TLIJ.js";
22
+ import "./chunk-JWLABUXL.js";
23
+ import "./chunk-IWQEZFVV.js";
24
+ import "./chunk-EM7F6XEU.js";
25
+ import "./chunk-GDGE7ZHC.js";
26
+ import "./chunk-JQGWP3SC.js";
27
+ import "./chunk-UTZMF5CV.js";
28
+ import "./chunk-U7YZ3IRI.js";
29
+ import "./chunk-DLNQ3HUM.js";
30
+ import "./chunk-YRKAJ42V.js";
31
+ import "./chunk-CGVRLQAY.js";
32
+ import "./chunk-RL7PETU6.js";
33
+ import "./chunk-PGKCRK77.js";
34
+ import "./chunk-M6HI36T3.js";
35
+ import "./chunk-2VN4TLGI.js";
36
+ import "./chunk-4U3JLIRC.js";
37
+ import "./chunk-QQD25YNF.js";
39
38
  import "./chunk-QA4O2GGC.js";
40
- import "./chunk-FPBUTZI5.js";
41
- import "./chunk-B4AEL3RF.js";
39
+ import "./chunk-WS7KBKP4.js";
40
+ import "./chunk-GLISHJ4G.js";
41
+ import "./chunk-G3ZFEHCX.js";
42
+ import "./chunk-LZFKJ2BR.js";
43
+ import "./chunk-CTJHEG6A.js";
42
44
  import "./chunk-BQGDB6ZL.js";
43
45
  import "./chunk-TV45EUGM.js";
44
46
  export {
@@ -5,19 +5,21 @@ var __atticusUrl = (p) => new URL("./" + p, import.meta.url).href;
5
5
  var __atticusPath = (p) => __atticusFileURLToPath(__atticusUrl(p));
6
6
  import {
7
7
  metarepoToolBox
8
- } from "./chunk-FQVSLBTV.js";
8
+ } from "./chunk-UVKJVTKX.js";
9
9
  import {
10
10
  CONTEXT_TOOLS
11
- } from "./chunk-RCG5IAAT.js";
11
+ } from "./chunk-DLNQ3HUM.js";
12
12
  import {
13
13
  TOOL_LIMITS,
14
14
  ToolSession,
15
15
  readToolCalls,
16
16
  recordToolCalls
17
- } from "./chunk-3424TLIJ.js";
17
+ } from "./chunk-QQD25YNF.js";
18
18
  import "./chunk-QA4O2GGC.js";
19
- import "./chunk-FPBUTZI5.js";
20
- import "./chunk-B4AEL3RF.js";
19
+ import "./chunk-GLISHJ4G.js";
20
+ import "./chunk-G3ZFEHCX.js";
21
+ import "./chunk-LZFKJ2BR.js";
22
+ import "./chunk-CTJHEG6A.js";
21
23
  import "./chunk-BQGDB6ZL.js";
22
24
  import "./chunk-TV45EUGM.js";
23
25