@maycombhq/atticus 2.0.0-beta.2 → 2.0.0-beta.21

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 (273) hide show
  1. package/dist/bin.js +8 -4
  2. package/dist/chunk-265LWMOA.js +91 -0
  3. package/dist/chunk-26WBY34Y.js +37 -0
  4. package/dist/{chunk-UBBC2XSG.js → chunk-26Z7OGQW.js} +518 -93
  5. package/dist/chunk-2D7PWSOK.js +172 -0
  6. package/dist/{chunk-JCZIKA4C.js → chunk-2HH3UCZM.js} +4 -4
  7. package/dist/{chunk-GDLULHTC.js → chunk-2HTEMYTB.js} +12 -26
  8. package/dist/chunk-2UCRFXFZ.js +130 -0
  9. package/dist/{chunk-MVZVGYXH.js → chunk-2V2ZPQQU.js} +81 -13
  10. package/dist/{chunk-BOHJZTEQ.js → chunk-36RY7ZXM.js} +130 -71
  11. package/dist/{chunk-I3E7CX4H.js → chunk-37WE3LS2.js} +3 -3
  12. package/dist/{chunk-IPKHE5D6.js → chunk-3AQ2R5NL.js} +1520 -871
  13. package/dist/chunk-3G6S7LAA.js +43 -0
  14. package/dist/chunk-3J5I7ZOU.js +58 -0
  15. package/dist/{chunk-65NYPGRC.js → chunk-3LZ6P5EP.js} +1 -1
  16. package/dist/chunk-3SSTNB4E.js +191 -0
  17. package/dist/chunk-3TD6S4TC.js +49 -0
  18. package/dist/{chunk-3C7EYRFZ.js → chunk-3UTYPHN3.js} +1 -1
  19. package/dist/{chunk-G2B4ZQGH.js → chunk-3WON4G3M.js} +2 -2
  20. package/dist/{chunk-S3QNRWYR.js → chunk-42EPP7OB.js} +12 -12
  21. package/dist/chunk-455SYIIE.js +113 -0
  22. package/dist/{chunk-YISXLPHN.js → chunk-4B6BT75O.js} +166 -23
  23. package/dist/{chunk-C6EKFH7J.js → chunk-4CLK2RJO.js} +7 -7
  24. package/dist/chunk-4CYTJ5TZ.js +38 -0
  25. package/dist/{chunk-EYWIDJFU.js → chunk-4D62IZII.js} +5 -5
  26. package/dist/chunk-4FOAYLI4.js +328 -0
  27. package/dist/{chunk-7JUKDRSZ.js → chunk-4KNOJC6J.js} +294 -215
  28. package/dist/{chunk-YMZ3TNYB.js → chunk-4PYC2UGC.js} +2 -2
  29. package/dist/{chunk-27NKUS3X.js → chunk-4SLBCEPD.js} +2104 -726
  30. package/dist/chunk-4TKVU2I2.js +122 -0
  31. package/dist/{chunk-RUVFXE2L.js → chunk-4WXRPQDE.js} +448 -47
  32. package/dist/{chunk-7ZUIMTOU.js → chunk-5CMPVC3N.js} +24 -24
  33. package/dist/chunk-5G7ILBUG.js +66 -0
  34. package/dist/{chunk-HFQCFSJR.js → chunk-5PV7S2ZP.js} +3 -3
  35. package/dist/{chunk-FITWGOJ2.js → chunk-5QUOPNLN.js} +4 -4
  36. package/dist/{chunk-Z6LF7HQN.js → chunk-5TDRBOAV.js} +5 -5
  37. package/dist/{chunk-T6AIP7H5.js → chunk-5WERBKLE.js} +199 -63
  38. package/dist/{chunk-XPCM366L.js → chunk-62DLJSLV.js} +8 -8
  39. package/dist/{chunk-L24C55VN.js → chunk-64AADMTW.js} +99 -25
  40. package/dist/{chunk-K65BJIMT.js → chunk-67BP7HXL.js} +17 -17
  41. package/dist/chunk-6DQYZU2W.js +379 -0
  42. package/dist/{chunk-EDS2L2LD.js → chunk-6EXDI5GI.js} +52 -26
  43. package/dist/chunk-6FNAKCET.js +38 -0
  44. package/dist/{chunk-6IU67AEK.js → chunk-75ASLHBT.js} +21 -15
  45. package/dist/{chunk-A3GY6SOA.js → chunk-75ZOZFGH.js} +18 -18
  46. package/dist/{chunk-MGYZM27B.js → chunk-77O633L5.js} +49 -23
  47. package/dist/{chunk-GQ4N4WKF.js → chunk-7AB6OWTV.js} +3 -3
  48. package/dist/{chunk-M766ZJ6W.js → chunk-7CZHUZBL.js} +25 -25
  49. package/dist/{chunk-A7UPUQFY.js → chunk-7FHNFCHK.js} +643 -124
  50. package/dist/chunk-7FUIVIBG.js +415 -0
  51. package/dist/{chunk-6QSERWXH.js → chunk-7QPCGTPS.js} +21 -21
  52. package/dist/{chunk-LR3R6Z2A.js → chunk-A2G72UI4.js} +7 -7
  53. package/dist/{chunk-I4JRCD6M.js → chunk-AE4P57KK.js} +23 -17
  54. package/dist/{chunk-AVJDSJ2F.js → chunk-AHW3RY3X.js} +7 -7
  55. package/dist/chunk-AM6FP6JW.js +43 -0
  56. package/dist/{chunk-CSZ4C5N6.js → chunk-AOCWFA7T.js} +93 -10
  57. package/dist/{chunk-EPTBZ3GP.js → chunk-API5TOUB.js} +1 -1
  58. package/dist/{chunk-652QWTLZ.js → chunk-AZDITBCT.js} +3 -3
  59. package/dist/{chunk-DPUYDDQG.js → chunk-BA2HUMDN.js} +25 -3
  60. package/dist/chunk-BA3U7ALS.js +99 -0
  61. package/dist/{chunk-HVUPKCGJ.js → chunk-BC6KKZ67.js} +5 -5
  62. package/dist/{chunk-CKSITVS4.js → chunk-BEPCKDCP.js} +2554 -722
  63. package/dist/{chunk-3ALD2W2A.js → chunk-BPPU3PW7.js} +4 -4
  64. package/dist/{chunk-QRAOANID.js → chunk-BVWWPBKD.js} +21 -21
  65. package/dist/{chunk-ZDPAS56H.js → chunk-BXBCMGIQ.js} +7 -1
  66. package/dist/chunk-BXZ4PKIT.js +233 -0
  67. package/dist/chunk-C7CEK3KW.js +247 -0
  68. package/dist/chunk-CFH3QH26.js +29 -0
  69. package/dist/chunk-CG6CULP6.js +170 -0
  70. package/dist/chunk-CLD4RVTA.js +45 -0
  71. package/dist/{chunk-DKJA76CJ.js → chunk-CNPY4NTZ.js} +13 -13
  72. package/dist/chunk-CNU5Q2D5.js +575 -0
  73. package/dist/{chunk-T2UYZSCQ.js → chunk-COYN3UAN.js} +126 -23
  74. package/dist/{chunk-23W7VWKR.js → chunk-CPK7QSBG.js} +1360 -113
  75. package/dist/{chunk-4AK7IBVP.js → chunk-D2WSW4GU.js} +1 -1
  76. package/dist/{chunk-ABWHYWNI.js → chunk-D57MFJPP.js} +3 -3
  77. package/dist/chunk-D5KV5PSK.js +45 -0
  78. package/dist/chunk-D5MASS4I.js +48 -0
  79. package/dist/{chunk-7EOBHUMC.js → chunk-DCWN3HFV.js} +2 -2
  80. package/dist/{chunk-QSXK2RGH.js → chunk-DDJPM5YX.js} +2 -2
  81. package/dist/chunk-DN4A2Q2O.js +57 -0
  82. package/dist/{chunk-IHMLFRVV.js → chunk-DUPZPDCJ.js} +58 -16
  83. package/dist/{chunk-PRPPGYZG.js → chunk-E2VXBSIR.js} +4 -4
  84. package/dist/chunk-E57AOFYN.js +32 -0
  85. package/dist/{chunk-UGLN7QHV.js → chunk-ECLXZWAG.js} +12 -12
  86. package/dist/{chunk-5WG5YP4T.js → chunk-EDZ45WIR.js} +14 -14
  87. package/dist/chunk-EFCQSMXB.js +37 -0
  88. package/dist/{chunk-2ANOROX3.js → chunk-EZIN5E5B.js} +8 -8
  89. package/dist/{chunk-BWZ77RQT.js → chunk-F6H2RJ3N.js} +1 -1
  90. package/dist/{chunk-OLQJTJJU.js → chunk-FAJDKNSD.js} +7 -3
  91. package/dist/chunk-FGAGWYZB.js +47 -0
  92. package/dist/{chunk-4WBVUHXN.js → chunk-FLVZFTLQ.js} +18 -18
  93. package/dist/chunk-FQ6WH6PB.js +140 -0
  94. package/dist/{chunk-T6XQL73F.js → chunk-FRHD22WM.js} +61 -23
  95. package/dist/{chunk-XAKWMCXI.js → chunk-FVMPFCDS.js} +4 -4
  96. package/dist/{chunk-B2WLAWNJ.js → chunk-FY3QIRTL.js} +3 -3
  97. package/dist/{chunk-CPA6HPVR.js → chunk-FYBF5MB2.js} +15 -11
  98. package/dist/{chunk-V2YTAIQO.js → chunk-G5YJBNDZ.js} +21 -6
  99. package/dist/chunk-G6IQYM25.js +339 -0
  100. package/dist/chunk-G6X4YL4D.js +161 -0
  101. package/dist/{chunk-SJRGMG6A.js → chunk-GC2VK3JT.js} +25 -25
  102. package/dist/{chunk-SP2I63OO.js → chunk-GCS3FZOB.js} +77 -3
  103. package/dist/{chunk-6TACQN3N.js → chunk-GDZB57IU.js} +5 -5
  104. package/dist/chunk-GIFMBCTW.js +221 -0
  105. package/dist/{chunk-YY6ZQQBP.js → chunk-GK4PYVEC.js} +18 -8
  106. package/dist/{chunk-TDD55CJH.js → chunk-GNWAOVFQ.js} +6 -5
  107. package/dist/chunk-GS76RXQE.js +226 -0
  108. package/dist/{chunk-YYQN46FY.js → chunk-GSGIZ2OO.js} +23 -23
  109. package/dist/chunk-GUYL7RMK.js +60 -0
  110. package/dist/chunk-GX74YWR7.js +321 -0
  111. package/dist/chunk-HE3HRDNZ.js +122 -0
  112. package/dist/{chunk-AIOQPLA5.js → chunk-HGHRSF3E.js} +30 -12
  113. package/dist/{chunk-2RMYG36Q.js → chunk-HK3VOHIE.js} +198 -336
  114. package/dist/{chunk-QZSX3F7C.js → chunk-HS4BGB4G.js} +24 -22
  115. package/dist/{chunk-XY3P7JW7.js → chunk-HSZMPH5T.js} +834 -149
  116. package/dist/{chunk-L6SGQIR3.js → chunk-HWD4JPU7.js} +4 -2
  117. package/dist/{chunk-PCVDV3UZ.js → chunk-HXXP2NTE.js} +6 -6
  118. package/dist/{chunk-AA6YULYB.js → chunk-I2A3Z5AK.js} +7 -7
  119. package/dist/{chunk-N7IXEHK3.js → chunk-ICHDSWEY.js} +7 -7
  120. package/dist/chunk-IFFRGC3N.js +31 -0
  121. package/dist/{chunk-4BN53TG3.js → chunk-IFHDV6KQ.js} +31 -23
  122. package/dist/chunk-J2O4LFVI.js +80 -0
  123. package/dist/chunk-J5AAZ6OJ.js +161 -0
  124. package/dist/{chunk-ZMFPW66A.js → chunk-JAABT3DA.js} +3 -3
  125. package/dist/chunk-JITJP64K.js +34 -0
  126. package/dist/chunk-JKIGL3XQ.js +162 -0
  127. package/dist/chunk-JRVNXLZP.js +615 -0
  128. package/dist/chunk-JRXHON4E.js +41 -0
  129. package/dist/{chunk-DHPACDG7.js → chunk-JS6WMC3J.js} +8 -8
  130. package/dist/chunk-JU4QNJSR.js +62 -0
  131. package/dist/{chunk-PAMPPUR6.js → chunk-JYMIB5XY.js} +1697 -172
  132. package/dist/{chunk-RRTKKSLQ.js → chunk-JYTIHTIK.js} +8 -6
  133. package/dist/{chunk-3HI6Z55Y.js → chunk-K332XW7K.js} +324 -39
  134. package/dist/{chunk-GLUX4EEP.js → chunk-K6JB6XTX.js} +9 -9
  135. package/dist/chunk-KDAHXQIE.js +294 -0
  136. package/dist/chunk-KYZMRSPS.js +93 -0
  137. package/dist/chunk-L4CESDPB.js +22 -0
  138. package/dist/{chunk-NXFPS2LR.js → chunk-LEBR5NHW.js} +14 -14
  139. package/dist/chunk-LIJJCBQI.js +223 -0
  140. package/dist/{chunk-DE76JROX.js → chunk-LIRVU3HW.js} +16 -16
  141. package/dist/{chunk-JMSCMUCA.js → chunk-LN77DXBM.js} +145 -21
  142. package/dist/{chunk-JIITQXFB.js → chunk-LNWEWYCM.js} +2969 -788
  143. package/dist/{chunk-TANFV3MZ.js → chunk-LO3BLMVG.js} +3 -3
  144. package/dist/chunk-LPV6T362.js +250 -0
  145. package/dist/{chunk-2VHF7OXM.js → chunk-LQH4P45K.js} +1 -1
  146. package/dist/chunk-LU4MQVAL.js +41 -0
  147. package/dist/chunk-LWDNKE4X.js +273 -0
  148. package/dist/chunk-M4H2UG4R.js +218 -0
  149. package/dist/{chunk-6BVONWJ7.js → chunk-M6D2U3YM.js} +3 -3
  150. package/dist/chunk-MD7KUEJ3.js +514 -0
  151. package/dist/{chunk-66YVAGGM.js → chunk-MMZUN7ZO.js} +20 -20
  152. package/dist/chunk-MZGRDONP.js +916 -0
  153. package/dist/chunk-N3RUGTGV.js +39 -0
  154. package/dist/{chunk-JGZCG5VM.js → chunk-NCB6656Z.js} +7 -7
  155. package/dist/{chunk-4NDAAFQT.js → chunk-NRQ65LTQ.js} +7 -5
  156. package/dist/{chunk-UNM6ZOKP.js → chunk-NTAVOWYD.js} +145 -18
  157. package/dist/{chunk-3USYZGRF.js → chunk-NYOABJNK.js} +36 -27
  158. package/dist/{chunk-WVPJSRRJ.js → chunk-O4IKAIZ2.js} +24 -20
  159. package/dist/{chunk-D3PO4DOZ.js → chunk-ODMBPDDV.js} +51 -14
  160. package/dist/chunk-OKUB6RJA.js +533 -0
  161. package/dist/chunk-OMPENNWY.js +39 -0
  162. package/dist/chunk-OPQZISG3.js +25 -0
  163. package/dist/{chunk-5GGOLAKC.js → chunk-OV57AHCG.js} +26 -26
  164. package/dist/chunk-OZJ3JLYI.js +58 -0
  165. package/dist/{chunk-KEM4SDDP.js → chunk-P2VBXX7N.js} +11 -10
  166. package/dist/{chunk-S2A7YC3Q.js → chunk-PAINMSID.js} +10150 -1720
  167. package/dist/chunk-PKJAV25S.js +43 -0
  168. package/dist/{chunk-EBEW3XXQ.js → chunk-PNQLCRSS.js} +4 -4
  169. package/dist/{chunk-WY6PP6AA.js → chunk-PQH56YF6.js} +37 -5
  170. package/dist/chunk-PRTBPXYA.js +50 -0
  171. package/dist/{chunk-YEDDOYSC.js → chunk-PRW3HXM3.js} +2 -2
  172. package/dist/chunk-PRZ7KMWL.js +42 -0
  173. package/dist/{chunk-6M5NK3K3.js → chunk-PTQ3ZALZ.js} +42 -4
  174. package/dist/{chunk-5GDRCDQB.js → chunk-PUEWDYGP.js} +2 -2
  175. package/dist/chunk-Q26LDIUV.js +236 -0
  176. package/dist/{chunk-CR3MTH32.js → chunk-Q46QDDMF.js} +77 -7
  177. package/dist/chunk-QBNWF5ZU.js +19 -0
  178. package/dist/chunk-QE527XRY.js +342 -0
  179. package/dist/{chunk-CNUKCS2T.js → chunk-QHJJMZLX.js} +1518 -54
  180. package/dist/chunk-QJCJOMW3.js +425 -0
  181. package/dist/{chunk-VYDBJ73M.js → chunk-QKMRFNMA.js} +15 -15
  182. package/dist/chunk-QOOEYDNJ.js +317 -0
  183. package/dist/chunk-QSIDVFB7.js +45 -0
  184. package/dist/{chunk-R77KLRB3.js → chunk-RA33EYS4.js} +19 -18
  185. package/dist/{chunk-DFBCSHVT.js → chunk-RALY3E5U.js} +4 -4
  186. package/dist/{chunk-ZCJDOK2S.js → chunk-S2RY3BOD.js} +35 -21
  187. package/dist/chunk-S5LSDXV4.js +40 -0
  188. package/dist/chunk-SB5GRUFM.js +54 -0
  189. package/dist/chunk-SH27FYPF.js +150 -0
  190. package/dist/chunk-T74WQQGS.js +40 -0
  191. package/dist/{chunk-O3WI5KWW.js → chunk-TGVVUKTG.js} +2 -2
  192. package/dist/chunk-THN26IEF.js +48 -0
  193. package/dist/chunk-TJH2EUAZ.js +47 -0
  194. package/dist/{chunk-ZNCEKR4J.js → chunk-TQ4TG57V.js} +12 -8
  195. package/dist/{chunk-7FBGJFEE.js → chunk-TQTRWENN.js} +12 -12
  196. package/dist/{chunk-TYAID7B7.js → chunk-TSM6T6GQ.js} +23 -23
  197. package/dist/{chunk-DPZHZQKE.js → chunk-TW3KOSQK.js} +43 -10
  198. package/dist/{chunk-MC3H7736.js → chunk-TWQRPM76.js} +37 -4
  199. package/dist/chunk-TYD6I4CZ.js +109 -0
  200. package/dist/chunk-U3NBK4EU.js +420 -0
  201. package/dist/{chunk-6JCPI55B.js → chunk-UDXWIPCB.js} +47 -7
  202. package/dist/{chunk-MMOSZPWJ.js → chunk-UEVZZZU2.js} +4 -4
  203. package/dist/{chunk-JBTK5OP2.js → chunk-UF4UHCIG.js} +2 -2
  204. package/dist/{chunk-6JUBZBMW.js → chunk-UFE36WJH.js} +4 -4
  205. package/dist/{chunk-ONLS5QA5.js → chunk-URIKUID7.js} +12 -12
  206. package/dist/chunk-UYLBRRFK.js +1106 -0
  207. package/dist/chunk-UZACEG2C.js +515 -0
  208. package/dist/{chunk-7SW2QWLU.js → chunk-VAMHOHUU.js} +12 -12
  209. package/dist/{chunk-RZPYKDWS.js → chunk-VUVGX5L2.js} +1 -1
  210. package/dist/{chunk-Q4D5X7QB.js → chunk-VYOCPTUB.js} +44 -24
  211. package/dist/{chunk-CAQZUNOH.js → chunk-WAZEXEJH.js} +567 -3
  212. package/dist/chunk-WCEF7H6L.js +221 -0
  213. package/dist/{chunk-2DIQQJCB.js → chunk-WEOMJHPV.js} +12 -12
  214. package/dist/{chunk-FHH4I4ZV.js → chunk-WFU77T3A.js} +12 -6
  215. package/dist/chunk-WIWTJMMR.js +292 -0
  216. package/dist/{chunk-2BFCZ3RK.js → chunk-WNTIOBOG.js} +18 -18
  217. package/dist/{chunk-7WD63HU2.js → chunk-X2CUXTWU.js} +6 -6
  218. package/dist/chunk-X7EMBM5X.js +34 -0
  219. package/dist/chunk-XEQCQO66.js +33 -0
  220. package/dist/{chunk-F7HYOUFF.js → chunk-XG4WJHLQ.js} +20 -4
  221. package/dist/{chunk-EFHQ3TWP.js → chunk-XOL3GFW2.js} +171 -31
  222. package/dist/{chunk-NE2W3OO7.js → chunk-XQ3YZ4QW.js} +22 -22
  223. package/dist/{chunk-CEXSU4S6.js → chunk-Y6K3CJBU.js} +723 -85
  224. package/dist/{chunk-4RS5KZQD.js → chunk-YAH5IQAL.js} +5 -5
  225. package/dist/{chunk-64EQYWCA.js → chunk-YBOVNMHC.js} +51 -14
  226. package/dist/chunk-YF5DZCPN.js +1212 -0
  227. package/dist/chunk-YIGBJNH4.js +37 -0
  228. package/dist/{chunk-BKVWTZ6A.js → chunk-YJ3TBOTK.js} +25 -25
  229. package/dist/{chunk-Q5AMFEWD.js → chunk-YKTE2RU3.js} +2 -2
  230. package/dist/{chunk-7EKXJZ2Y.js → chunk-YO2PKTXT.js} +296 -37
  231. package/dist/{chunk-6J5OKA4Y.js → chunk-YTTNTQOX.js} +15 -15
  232. package/dist/{chunk-OT2O76OS.js → chunk-YWAKDNMH.js} +183 -33
  233. package/dist/{chunk-R6XF6UR3.js → chunk-YZDZOEV4.js} +4 -4
  234. package/dist/chunk-Z3QFH7YG.js +17 -0
  235. package/dist/{chunk-W5BVQF44.js → chunk-Z6VLC5X4.js} +17 -17
  236. package/dist/{chunk-HLJAXMM4.js → chunk-ZFQMMU5Y.js} +2 -2
  237. package/dist/{chunk-W3BQAZ3Q.js → chunk-ZKYRDV7A.js} +12 -12
  238. package/dist/{chunk-ZMAINWBW.js → chunk-ZLS6PU2O.js} +3 -3
  239. package/dist/{chunk-ZVM6AKKM.js → chunk-ZOSD4FXV.js} +3 -3
  240. package/dist/chunk-ZPDDEVQX.js +47 -0
  241. package/dist/{chunk-TXLH6WHQ.js → chunk-ZQLRCA2V.js} +11 -11
  242. package/dist/{chunk-HITVBIJS.js → chunk-ZX7235KR.js} +128 -54
  243. package/dist/{chunk-GT4I4ZWM.js → chunk-ZZFHLRQW.js} +18 -16
  244. package/dist/files.json +636 -364
  245. package/dist/packages/naysayer/constitution/constitution.yaml +19 -0
  246. package/dist/packages/sdk/npm/index.js +5614 -2343
  247. package/dist/packages/ui/dist/assets/{elk-api-tma0MCuh.js → elk-api-CowTnhEJ.js} +2 -2
  248. package/dist/packages/ui/dist/assets/index-Dw20IRhQ.css +1 -0
  249. package/dist/packages/ui/dist/assets/index-z2wv0d5d.js +47 -0
  250. package/dist/packages/ui/dist/index.html +2 -2
  251. package/package.json +4 -4
  252. package/dist/chunk-2BF2EYJV.js +0 -174
  253. package/dist/chunk-42EVSKME.js +0 -37
  254. package/dist/chunk-4BKGMUIK.js +0 -53
  255. package/dist/chunk-5KLGBXG5.js +0 -48
  256. package/dist/chunk-6BNC6EQ4.js +0 -41
  257. package/dist/chunk-6D2CQ5II.js +0 -41
  258. package/dist/chunk-7AVHLZGD.js +0 -45
  259. package/dist/chunk-D46WUV3T.js +0 -33
  260. package/dist/chunk-E36QOJMD.js +0 -47
  261. package/dist/chunk-FQXYPF7E.js +0 -147
  262. package/dist/chunk-GBRFVT63.js +0 -45
  263. package/dist/chunk-ICY36XCH.js +0 -34
  264. package/dist/chunk-J4K3KVLD.js +0 -131
  265. package/dist/chunk-JZU3H6UQ.js +0 -54
  266. package/dist/chunk-NN2ZQEB4.js +0 -38
  267. package/dist/chunk-PCOCACY3.js +0 -385
  268. package/dist/chunk-RTEYOSJY.js +0 -29
  269. package/dist/chunk-RVH5SUW5.js +0 -69
  270. package/dist/chunk-VN3DP4LQ.js +0 -43
  271. package/dist/chunk-XPTOBS2D.js +0 -48
  272. package/dist/packages/ui/dist/assets/index-B54fm9FQ.js +0 -29
  273. package/dist/packages/ui/dist/assets/index-DD_hufQz.css +0 -1
@@ -0,0 +1,226 @@
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
+ forgetCatalogs,
8
+ readCatalog
9
+ } from "./chunk-4SLBCEPD.js";
10
+ import "./chunk-64AADMTW.js";
11
+ import "./chunk-JYMIB5XY.js";
12
+ import "./chunk-CPK7QSBG.js";
13
+ import "./chunk-YO2PKTXT.js";
14
+ import "./chunk-TWQRPM76.js";
15
+ import {
16
+ loadRepos
17
+ } from "./chunk-XOL3GFW2.js";
18
+ import "./chunk-QHJJMZLX.js";
19
+ import "./chunk-7AB6OWTV.js";
20
+ import {
21
+ FACTS_COMPANIONS,
22
+ ManifestEditError,
23
+ RecordId,
24
+ catalogDirOf,
25
+ factsDirOf,
26
+ factsRelOf,
27
+ listQuestions,
28
+ mapRelOf,
29
+ orgPackDirOf,
30
+ parseRecord,
31
+ recordPath,
32
+ renameManifestRepo,
33
+ require_dist,
34
+ serializeRecord,
35
+ specRelOf,
36
+ writeQuestion
37
+ } from "./chunk-PAINMSID.js";
38
+ import {
39
+ LockHeldError,
40
+ acquireLock,
41
+ writeFileAtomic
42
+ } from "./chunk-ODMBPDDV.js";
43
+ import {
44
+ __toESM
45
+ } from "./chunk-TV45EUGM.js";
46
+
47
+ // packages/cli/dist/repo-rename.js
48
+ var import_yaml = __toESM(require_dist(), 1);
49
+ import { existsSync } from "node:fs";
50
+ import { readFile, rm } from "node:fs/promises";
51
+ import { join, relative, sep } from "node:path";
52
+ var posix = (p) => p.split(sep).join("/");
53
+ function renamed(v, from, to) {
54
+ let changed = false;
55
+ const walk = (x) => {
56
+ if (Array.isArray(x))
57
+ return x.map(walk);
58
+ if (x && typeof x === "object") {
59
+ const out = {};
60
+ for (const [k, y] of Object.entries(x)) {
61
+ if (k === "repo" && y === from) {
62
+ out[k] = to;
63
+ changed = true;
64
+ } else
65
+ out[k] = walk(y);
66
+ }
67
+ return out;
68
+ }
69
+ return x;
70
+ };
71
+ return { value: walk(v), changed };
72
+ }
73
+ function renamedText(text, from, to) {
74
+ const esc = from.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
75
+ return text.replace(new RegExp(`(?<![A-Za-z0-9._-])${esc}(?![A-Za-z0-9._-])`, "g"), to);
76
+ }
77
+ function rewriteFactsFile(name, text, from, to) {
78
+ if (name.endsWith(".jsonl"))
79
+ return text.split(/\r?\n/).map((line) => {
80
+ if (!line.trim())
81
+ return line;
82
+ try {
83
+ const r = renamed(JSON.parse(line), from, to);
84
+ return r.changed ? JSON.stringify(r.value) : line;
85
+ } catch {
86
+ return line;
87
+ }
88
+ }).join("\n");
89
+ try {
90
+ const r = renamed((0, import_yaml.parse)(text), from, to);
91
+ return r.changed ? (0, import_yaml.stringify)(r.value) : text;
92
+ } catch {
93
+ return text;
94
+ }
95
+ }
96
+ async function repoRename(root, from, to, io) {
97
+ if (!from || !to) {
98
+ io.err("Usage: atticus repo rename <old id> <new id>");
99
+ return 2;
100
+ }
101
+ if (!RecordId.safeParse(to).success) {
102
+ io.err(`${to} isn't a repo id: ids are lowercase slugs (a-z, 0-9, '.', '_' and '-').`);
103
+ return 2;
104
+ }
105
+ const listed = await loadRepos(root).catch(() => []);
106
+ if (!listed.some((r) => r.id === from)) {
107
+ io.err(`There is no repo ${from} in any manifest (atticus repos list shows the ids).`);
108
+ return 2;
109
+ }
110
+ if (listed.some((r) => r.id === to)) {
111
+ io.err(`${to} is already listed; repo ids are unique across every profile.`);
112
+ return 2;
113
+ }
114
+ const factsDir = factsDirOf(root);
115
+ const fRel = factsRelOf(root);
116
+ const moves = [];
117
+ for (const suffix of [".jsonl", ...FACTS_COMPANIONS]) {
118
+ const src = join(factsDir, `${from}${suffix}`);
119
+ if (!existsSync(src))
120
+ continue;
121
+ moves.push({
122
+ src,
123
+ dst: join(factsDir, `${to}${suffix}`),
124
+ rel: `${fRel}/${from}${suffix}`,
125
+ relTo: `${fRel}/${to}${suffix}`,
126
+ name: suffix
127
+ });
128
+ }
129
+ const scanDir = join(orgPackDirOf(root), "scan");
130
+ const scanSrc = join(scanDir, `${from}.yaml`);
131
+ if (existsSync(scanSrc)) {
132
+ const rel = posix(relative(root, scanDir));
133
+ moves.push({
134
+ src: scanSrc,
135
+ dst: join(scanDir, `${to}.yaml`),
136
+ rel: `${rel}/${from}.yaml`,
137
+ relTo: `${rel}/${to}.yaml`,
138
+ name: ".yaml"
139
+ });
140
+ }
141
+ const taken = moves.filter((m) => existsSync(m.dst));
142
+ if (taken.length) {
143
+ for (const m of taken)
144
+ io.err(`${m.relTo} is already there: move or remove it first, so ${m.rel} doesn't overwrite it. Nothing was changed.`);
145
+ return 1;
146
+ }
147
+ let lock;
148
+ try {
149
+ lock = await acquireLock(root, "scan", `atticus repo rename ${from} ${to}`);
150
+ } catch (e) {
151
+ if (e instanceof LockHeldError) {
152
+ io.err(e.message);
153
+ return 1;
154
+ }
155
+ throw e;
156
+ }
157
+ try {
158
+ const said = [];
159
+ let manifest;
160
+ try {
161
+ manifest = await renameManifestRepo(root, from, to);
162
+ } catch (e) {
163
+ if (e instanceof ManifestEditError) {
164
+ io.err(e.message);
165
+ return e.code === "not-found" ? 2 : 1;
166
+ }
167
+ throw e;
168
+ }
169
+ said.push(`${manifest.rel}: the entry's id`);
170
+ for (const m of moves) {
171
+ const text = await readFile(m.src, "utf8");
172
+ await writeFileAtomic(m.dst, rewriteFactsFile(m.name, text, from, to));
173
+ await rm(m.src, { force: true });
174
+ said.push(`${m.rel} \u2192 ${m.relTo}`);
175
+ }
176
+ const qs = (await listQuestions(root)).questions.filter((q) => q.repo === from);
177
+ for (const q of qs) {
178
+ const next = {
179
+ ...q,
180
+ repo: to,
181
+ rerun: renamedText(q.rerun, from, to),
182
+ askedBy: { ...q.askedBy, command: renamedText(q.askedBy.command, from, to) },
183
+ ...q.scope.level === "repo" && q.scope.id === from ? { scope: { ...q.scope, id: to } } : {}
184
+ };
185
+ await writeQuestion(root, next);
186
+ }
187
+ if (qs.length)
188
+ said.push(`${qs.length} question${qs.length === 1 ? "" : "s"} (repo ${to})`);
189
+ let records = 0;
190
+ for (const sub of ["generated", "curated"]) {
191
+ const dir = join(catalogDirOf(root), sub);
192
+ const cat = await readCatalog(dir, { cacheRoot: root });
193
+ for (const r of cat.records) {
194
+ const n = renamed(r, from, to);
195
+ if (!n.changed)
196
+ continue;
197
+ const p = parseRecord(n.value);
198
+ if (!p.ok) {
199
+ io.err(`${r.kind} ${r.id} names ${from} but wouldn't be valid renamed (${p.issues.map((i) => i.message).join("; ")}); left as it is.`);
200
+ continue;
201
+ }
202
+ await writeFileAtomic(join(dir, ...recordPath(p.record).split("/")), serializeRecord(p.record));
203
+ records++;
204
+ }
205
+ }
206
+ forgetCatalogs();
207
+ if (records)
208
+ said.push(`${records} catalog record${records === 1 ? "" : "s"} (repo ${to})`);
209
+ io.out(`Renamed ${from} to ${to}:`);
210
+ for (const l of said)
211
+ io.out(` ${l}`);
212
+ const left = [
213
+ existsSync(join(root, ...specRelOf(root, from).split("/"))) ? specRelOf(root, from) : "",
214
+ existsSync(join(root, ...`${mapRelOf(root)}/${from}`.split("/"))) ? `${mapRelOf(root)}/${from}` : ""
215
+ ].filter(Boolean);
216
+ if (left.length)
217
+ io.out(`Left as they are: ${left.join(" and ")}. atticus verify ${to} --write writes them under ${to}; remove the old ones in the same pull request.`);
218
+ io.out(`Review the change and commit it in a pull request: Atticus commits and pushes nothing. A clone under the old id is cloned again under ${to} by atticus workspace sync.`);
219
+ return 0;
220
+ } finally {
221
+ await lock.release();
222
+ }
223
+ }
224
+ export {
225
+ repoRename
226
+ };
@@ -3,40 +3,40 @@ 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 "./chunk-GLUX4EEP.js";
6
+ import "./chunk-K6JB6XTX.js";
7
7
  import {
8
8
  loadCatalog
9
- } from "./chunk-FITWGOJ2.js";
9
+ } from "./chunk-5QUOPNLN.js";
10
10
  import {
11
11
  repoFor
12
- } from "./chunk-O3WI5KWW.js";
12
+ } from "./chunk-TGVVUKTG.js";
13
13
  import {
14
14
  recordFact,
15
15
  verifyScan
16
- } from "./chunk-KEM4SDDP.js";
17
- import "./chunk-ZVM6AKKM.js";
16
+ } from "./chunk-P2VBXX7N.js";
17
+ import "./chunk-ZOSD4FXV.js";
18
18
  import {
19
19
  stepJudges
20
- } from "./chunk-CKSITVS4.js";
21
- import "./chunk-L6SGQIR3.js";
22
- import "./chunk-3HI6Z55Y.js";
23
- import "./chunk-XY3P7JW7.js";
24
- import "./chunk-4AK7IBVP.js";
25
- import "./chunk-7JUKDRSZ.js";
20
+ } from "./chunk-BEPCKDCP.js";
21
+ import "./chunk-HWD4JPU7.js";
22
+ import "./chunk-5WERBKLE.js";
23
+ import "./chunk-K332XW7K.js";
24
+ import "./chunk-HSZMPH5T.js";
25
+ import "./chunk-D2WSW4GU.js";
26
+ import "./chunk-4KNOJC6J.js";
26
27
  import {
27
28
  checkScanSettings
28
- } from "./chunk-27NKUS3X.js";
29
- import "./chunk-L24C55VN.js";
30
- import "./chunk-PAMPPUR6.js";
31
- import "./chunk-23W7VWKR.js";
32
- import "./chunk-7EKXJZ2Y.js";
33
- import "./chunk-MC3H7736.js";
34
- import "./chunk-T6AIP7H5.js";
35
- import "./chunk-EFHQ3TWP.js";
29
+ } from "./chunk-4SLBCEPD.js";
30
+ import "./chunk-64AADMTW.js";
31
+ import "./chunk-JYMIB5XY.js";
32
+ import "./chunk-CPK7QSBG.js";
33
+ import "./chunk-YO2PKTXT.js";
34
+ import "./chunk-TWQRPM76.js";
35
+ import "./chunk-XOL3GFW2.js";
36
+ import "./chunk-QHJJMZLX.js";
36
37
  import {
37
38
  fsRepo
38
- } from "./chunk-GQ4N4WKF.js";
39
- import "./chunk-CNUKCS2T.js";
39
+ } from "./chunk-7AB6OWTV.js";
40
40
  import {
41
41
  SCAN_VERIFY_SCHEMA_VERSION,
42
42
  ScanSettings,
@@ -50,8 +50,8 @@ import {
50
50
  raiseQuestions,
51
51
  require_dist,
52
52
  reusedLine
53
- } from "./chunk-S2A7YC3Q.js";
54
- import "./chunk-D3PO4DOZ.js";
53
+ } from "./chunk-PAINMSID.js";
54
+ import "./chunk-ODMBPDDV.js";
55
55
  import {
56
56
  __toESM
57
57
  } from "./chunk-TV45EUGM.js";
@@ -0,0 +1,60 @@
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
+ READS_AS_RULE,
8
+ dataBlock,
9
+ draftPrompt,
10
+ missedOf,
11
+ rulesAddCommand,
12
+ rulesDraftCommand,
13
+ rulesImportCommand,
14
+ rulesListCommand,
15
+ rulesNotesCommand,
16
+ rulesSetCommand,
17
+ rulesTryCommand,
18
+ scopeFile,
19
+ tryDiff
20
+ } from "./chunk-JRVNXLZP.js";
21
+ import "./chunk-LIJJCBQI.js";
22
+ import "./chunk-26Z7OGQW.js";
23
+ import "./chunk-OKUB6RJA.js";
24
+ import "./chunk-THN26IEF.js";
25
+ import "./chunk-L4CESDPB.js";
26
+ import "./chunk-455SYIIE.js";
27
+ import "./chunk-3J5I7ZOU.js";
28
+ import "./chunk-GIFMBCTW.js";
29
+ import "./chunk-MD7KUEJ3.js";
30
+ import "./chunk-Q46QDDMF.js";
31
+ import "./chunk-TGVVUKTG.js";
32
+ import "./chunk-3AQ2R5NL.js";
33
+ import "./chunk-4SLBCEPD.js";
34
+ import "./chunk-64AADMTW.js";
35
+ import "./chunk-JYMIB5XY.js";
36
+ import "./chunk-CPK7QSBG.js";
37
+ import "./chunk-YO2PKTXT.js";
38
+ import "./chunk-TWQRPM76.js";
39
+ import "./chunk-VUVGX5L2.js";
40
+ import "./chunk-XOL3GFW2.js";
41
+ import "./chunk-QHJJMZLX.js";
42
+ import "./chunk-7AB6OWTV.js";
43
+ import "./chunk-PAINMSID.js";
44
+ import "./chunk-ODMBPDDV.js";
45
+ import "./chunk-TV45EUGM.js";
46
+ export {
47
+ READS_AS_RULE,
48
+ dataBlock,
49
+ draftPrompt,
50
+ missedOf,
51
+ rulesAddCommand,
52
+ rulesDraftCommand,
53
+ rulesImportCommand,
54
+ rulesListCommand,
55
+ rulesNotesCommand,
56
+ rulesSetCommand,
57
+ rulesTryCommand,
58
+ scopeFile,
59
+ tryDiff
60
+ };
@@ -0,0 +1,321 @@
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
+ headCommitOf
8
+ } from "./chunk-G6IQYM25.js";
9
+ import {
10
+ denyHashesAt
11
+ } from "./chunk-LPV6T362.js";
12
+ import {
13
+ intakeContext
14
+ } from "./chunk-TQ4TG57V.js";
15
+ import {
16
+ componentRenames,
17
+ estateFacts,
18
+ estateJoinOf,
19
+ hostAliases,
20
+ joinReposOf,
21
+ outsideProfileSystems
22
+ } from "./chunk-4SLBCEPD.js";
23
+ import {
24
+ sameCommit
25
+ } from "./chunk-JYMIB5XY.js";
26
+ import {
27
+ openApiContractSpecs,
28
+ readContractSpecs,
29
+ readRepoSpecs,
30
+ readVendorSpec
31
+ } from "./chunk-CPK7QSBG.js";
32
+ import {
33
+ VERSION
34
+ } from "./chunk-VUVGX5L2.js";
35
+ import {
36
+ createGit
37
+ } from "./chunk-XOL3GFW2.js";
38
+ import {
39
+ SpecsFile,
40
+ catalogDirOf,
41
+ checkContracts,
42
+ factsDirOf,
43
+ factsRelOf,
44
+ inputsDirOf,
45
+ joinConventions,
46
+ joinVendorOperations,
47
+ newFindings,
48
+ orgPackDirOf,
49
+ questionsDirOf,
50
+ require_dist
51
+ } from "./chunk-PAINMSID.js";
52
+ import {
53
+ writeFileAtomic
54
+ } from "./chunk-ODMBPDDV.js";
55
+ import {
56
+ __toESM
57
+ } from "./chunk-TV45EUGM.js";
58
+
59
+ // packages/cli/dist/contract-check-files.js
60
+ var import_yaml = __toESM(require_dist(), 1);
61
+ import { createHash } from "node:crypto";
62
+ import { existsSync } from "node:fs";
63
+ import { readdir, readFile, rm, stat } from "node:fs/promises";
64
+ import { join, resolve } from "node:path";
65
+ var SPEC_CLASSES = /* @__PURE__ */ new Set(["openapi", "swagger", "asyncapi", "protobuf", "avro"]);
66
+ async function specsCommitOf(facts, dir, git = createGit()) {
67
+ const counts = /* @__PURE__ */ new Map();
68
+ for (const f of facts)
69
+ counts.set(f.commit, (counts.get(f.commit) ?? 0) + 1);
70
+ if (!counts.size)
71
+ return void 0;
72
+ const head = await headCommitOf(dir);
73
+ const atHead = head ? [...counts.keys()].find((c) => sameCommit(c, head)) : void 0;
74
+ if (atHead)
75
+ return atHead;
76
+ const most = Math.max(...counts.values());
77
+ const top = [...counts].filter(([, n]) => n === most).map(([c]) => c).sort();
78
+ if (top.length === 1)
79
+ return top[0];
80
+ const newest = await git(["rev-list", "--no-walk", ...top], dir).then((r) => r.stdout.split("\n")[0]?.trim(), () => void 0);
81
+ return top.find((c) => !!newest && sameCommit(c, newest)) ?? top[0];
82
+ }
83
+ async function commitTree(dir, commit, git) {
84
+ const listed = await git(["ls-tree", "-r", "-l", "-z", "--full-tree", commit], dir).then((r) => r.stdout, () => void 0);
85
+ if (listed === void 0)
86
+ return void 0;
87
+ const files = listed.split("\0").filter(Boolean).flatMap((line) => {
88
+ const tab = line.indexOf(" ");
89
+ const [mode, type, , size] = line.slice(0, tab).trim().split(/\s+/);
90
+ if (tab < 0 || type !== "blob" || mode === "120000")
91
+ return [];
92
+ return [{ path: line.slice(tab + 1), size: Number(size) || 0 }];
93
+ });
94
+ return {
95
+ files: async () => files,
96
+ read: (p) => git(["cat-file", "blob", `${commit}:${p}`], dir).then((r) => r.stdout, () => void 0)
97
+ };
98
+ }
99
+ async function specTreeOf(repo, dir, commit, git, note) {
100
+ const as = commit ? { commit } : {};
101
+ if (!existsSync(join(dir, ".git")))
102
+ return as;
103
+ if (commit) {
104
+ const tree2 = await commitTree(dir, commit, git);
105
+ if (tree2)
106
+ return { tree: tree2, commit };
107
+ note?.(`${repo}: the facts' commit ${commit.slice(0, 12)} isn't in the clone, so its specs are read at the clone's HEAD; fetch it, or read the repo again.`);
108
+ }
109
+ const tree = await commitTree(dir, "HEAD", git);
110
+ if (!tree) {
111
+ note?.(`${repo}: git can't list the clone's files, so its specs are read from the folder.`);
112
+ return as;
113
+ }
114
+ const head = await headCommitOf(dir);
115
+ return { tree, ...head ? { commit: head } : as };
116
+ }
117
+ async function writeRepoSpecs(root, repo, dir, facts, onRefused, git = createGit()) {
118
+ const { tree, commit } = await specTreeOf(repo, dir, await specsCommitOf(facts, dir, git), git, onRefused);
119
+ const deny = await denyHashesAt(root);
120
+ const file = await readRepoSpecs(dir, {
121
+ repo,
122
+ ...commit ? { commit } : {},
123
+ ...tree ? { tree } : {},
124
+ facts,
125
+ ...deny.size ? { denyHashes: deny } : {},
126
+ ...onRefused ? { onRefused } : {}
127
+ });
128
+ const path = join(factsDirOf(root), `${repo}.specs.yaml`);
129
+ if (file.specs.length)
130
+ await writeFileAtomic(path, (0, import_yaml.stringify)(file, { lineWidth: 0 }));
131
+ else
132
+ await rm(path, { force: true });
133
+ return file;
134
+ }
135
+ async function loadRepoSpecs(root) {
136
+ const files = [];
137
+ const problems = [];
138
+ const rel = factsRelOf(root);
139
+ for (const n of (await readdir(factsDirOf(root)).catch(() => [])).sort()) {
140
+ if (!n.endsWith(".specs.yaml"))
141
+ continue;
142
+ let v;
143
+ try {
144
+ v = (0, import_yaml.parse)(await readFile(join(factsDirOf(root), n), "utf8"));
145
+ } catch (e) {
146
+ problems.push(`${rel}/${n} isn't YAML (${e.message}); it is left out.`);
147
+ continue;
148
+ }
149
+ const p = SpecsFile.safeParse(v);
150
+ if (p.success)
151
+ files.push(p.data);
152
+ else
153
+ problems.push(`${rel}/${n} isn't a specs file; it is left out.`);
154
+ }
155
+ return { files, problems };
156
+ }
157
+ async function intakenSpec(root, doc, system) {
158
+ const body = await readFile(join(inputsDirOf(root), ...doc.path.split("/").slice(1)), "utf8").catch(() => void 0);
159
+ if (body === void 0)
160
+ return void 0;
161
+ const vendor = readVendorSpec(doc.path, body, system);
162
+ const specs = vendor ? openApiContractSpecs(vendor) : readContractSpecs(doc.path, body);
163
+ if (!specs.length)
164
+ return void 0;
165
+ return {
166
+ path: doc.path,
167
+ ...doc.title ? { title: doc.title } : {},
168
+ ...doc.version ? { version: doc.version } : {},
169
+ specs,
170
+ operations: (vendor?.operations ?? []).map((o) => ({
171
+ id: o.id,
172
+ method: o.method,
173
+ path: o.path,
174
+ fullPath: o.fullPath,
175
+ cite: o.cite
176
+ })),
177
+ hosts: vendor?.hosts ?? []
178
+ };
179
+ }
180
+ async function stampOf(root) {
181
+ const out = [];
182
+ const walk = async (dir, rel) => {
183
+ const entries = await readdir(dir, { withFileTypes: true }).catch(() => void 0);
184
+ if (!entries)
185
+ return;
186
+ await Promise.all(entries.map(async (e) => {
187
+ const p = join(dir, e.name);
188
+ if (e.isDirectory())
189
+ return walk(p, `${rel}/${e.name}`);
190
+ const s = await stat(p).catch(() => void 0);
191
+ if (s)
192
+ out.push(`${rel}/${e.name}\0${s.size}\0${s.mtimeMs}`);
193
+ }));
194
+ };
195
+ const dirs = [
196
+ factsDirOf(root),
197
+ inputsDirOf(root),
198
+ orgPackDirOf(root),
199
+ questionsDirOf(root),
200
+ join(catalogDirOf(root), "curated")
201
+ ];
202
+ await Promise.all(dirs.map((d, i) => walk(d, String(i))));
203
+ return out.sort().join("\n");
204
+ }
205
+ var kept = /* @__PURE__ */ new Map();
206
+ var cacheFileOf = (root, name) => join(resolve(root), ".atticus", "cache", `${name}.json`);
207
+ var stampKey = (stamp) => createHash("sha256").update(VERSION).update("\0").update(stamp).digest("hex");
208
+ async function readCached(root, name, stamp) {
209
+ try {
210
+ const c = JSON.parse(await readFile(cacheFileOf(root, name), "utf8"));
211
+ return c.key === stampKey(stamp) ? c.value : void 0;
212
+ } catch {
213
+ return void 0;
214
+ }
215
+ }
216
+ async function writeCached(root, name, stamp, value) {
217
+ await writeFileAtomic(cacheFileOf(root, name), JSON.stringify({ key: stampKey(stamp), value })).catch(() => void 0);
218
+ }
219
+ var breathe = () => new Promise((r) => setImmediate(r));
220
+ async function estateJoinOnFile(root, op, estate, stamp) {
221
+ const at = stamp ?? await stampOf(root);
222
+ const hit = await readCached(root, "estate-join", at);
223
+ if (hit)
224
+ return hit;
225
+ await breathe();
226
+ const join2 = estateJoinOf(op, estate.repos, estate.targets, estate.pairs, estate.aiTargets);
227
+ await writeCached(root, "estate-join", at, join2);
228
+ return join2;
229
+ }
230
+ async function contractCheckOf(root) {
231
+ const key = resolve(root);
232
+ const stamp = await stampOf(root);
233
+ const hit = kept.get(key);
234
+ if (hit && hit.stamp === stamp)
235
+ return hit.value;
236
+ const value = (async () => {
237
+ const disk = await readCached(root, "contract-check", stamp);
238
+ if (disk)
239
+ return { ...disk, newBySystem: new Map(disk.newBySystem) };
240
+ const v = await workOutContractCheck(root, stamp);
241
+ await writeCached(root, "contract-check", stamp, {
242
+ ...v,
243
+ newBySystem: [...v.newBySystem]
244
+ });
245
+ return v;
246
+ })();
247
+ kept.set(key, { stamp, value });
248
+ value.catch(() => {
249
+ if (kept.get(key)?.value === value)
250
+ kept.delete(key);
251
+ });
252
+ return value;
253
+ }
254
+ async function workOutContractCheck(root, stamp) {
255
+ const quiet = { out: () => void 0, err: () => void 0 };
256
+ const { op, inputs } = await intakeContext(root, quiet);
257
+ const estate = await estateFacts(root, op, "");
258
+ const join2 = await estateJoinOnFile(root, op, estate, stamp);
259
+ const { files, problems } = await loadRepoSpecs(root);
260
+ const systems = outsideProfileSystems(op);
261
+ const outside = [];
262
+ for (const s of systems) {
263
+ const docs = inputs.documents.filter((d) => d.id && SPEC_CLASSES.has(d.classification) && d.systems[0] === s.id);
264
+ const newestDoc = docs.find((d) => !d.supersededBy);
265
+ const previousDoc = newestDoc ? docs.find((d) => d.supersededBy === newestDoc.id) : void 0;
266
+ const newest = newestDoc ? await intakenSpec(root, newestDoc, s.id) : void 0;
267
+ const previous = previousDoc ? await intakenSpec(root, previousDoc, s.id) : void 0;
268
+ outside.push({
269
+ system: s.id,
270
+ name: s.name,
271
+ ...newest ? { newest } : {},
272
+ ...previous ? { previous } : {}
273
+ });
274
+ }
275
+ const repos = joinReposOf(op, estate.repos, componentRenames(estate.repos, op));
276
+ const run = (pick) => {
277
+ const specs = [];
278
+ const vendors = [];
279
+ for (const o of outside) {
280
+ const s = pick(o);
281
+ if (!s)
282
+ continue;
283
+ const sys = systems.find((x) => x.id === o.system);
284
+ specs.push({ system: o.system, name: o.name, specs: s.specs });
285
+ if (s.operations.length)
286
+ vendors.push({
287
+ system: o.system,
288
+ boundary: "internal",
289
+ names: [sys.name, ...sys.aliases],
290
+ hosts: [.../* @__PURE__ */ new Set([...s.hosts, ...hostAliases(sys.aliases)])],
291
+ operations: s.operations
292
+ });
293
+ }
294
+ const matched = vendors.length ? joinVendorOperations({ repos, vendors, targets: estate.targets, ...joinConventions(op) }) : { matches: [] };
295
+ return checkContracts({
296
+ repos: estate.repos,
297
+ join: join2,
298
+ specs: files,
299
+ outside: specs,
300
+ vendorMatches: matched.matches
301
+ });
302
+ };
303
+ await breathe();
304
+ const result = run((o) => o.newest);
305
+ const newBySystem = /* @__PURE__ */ new Map();
306
+ if (outside.some((o) => o.previous)) {
307
+ await breathe();
308
+ const before = run((o) => o.previous ?? o.newest);
309
+ for (const o of outside)
310
+ if (o.previous)
311
+ newBySystem.set(o.system, newFindings(result.findings.filter((f) => f.system === o.system), before.findings.filter((f) => f.system === o.system)));
312
+ }
313
+ return { result, notes: [...estate.notes, ...problems], outside, newBySystem };
314
+ }
315
+
316
+ export {
317
+ writeRepoSpecs,
318
+ stampOf,
319
+ estateJoinOnFile,
320
+ contractCheckOf
321
+ };