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

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 (284) hide show
  1. package/dist/bin.js +8 -4
  2. package/dist/chunk-23XVSEV5.js +49 -0
  3. package/dist/{chunk-ZDPAS56H.js → chunk-24OXGB3P.js} +8 -2
  4. package/dist/{chunk-7EOBHUMC.js → chunk-24XLDU72.js} +4 -3
  5. package/dist/{chunk-CR3MTH32.js → chunk-2F4CYZKJ.js} +86 -11
  6. package/dist/{chunk-6IU67AEK.js → chunk-2GF7OLF3.js} +23 -15
  7. package/dist/chunk-2IIMFOPM.js +41 -0
  8. package/dist/chunk-2LGRMVCA.js +617 -0
  9. package/dist/{chunk-XPCM366L.js → chunk-2MMCFP5C.js} +10 -8
  10. package/dist/{chunk-JBTK5OP2.js → chunk-2Q56PQPS.js} +6 -4
  11. package/dist/{chunk-Z6LF7HQN.js → chunk-2Q5EDGEO.js} +7 -5
  12. package/dist/{chunk-3USYZGRF.js → chunk-2RLKFUUL.js} +38 -27
  13. package/dist/chunk-2SKB4O2E.js +59 -0
  14. package/dist/{chunk-SP2I63OO.js → chunk-34S2WGOB.js} +87 -4
  15. package/dist/{chunk-GQ4N4WKF.js → chunk-3NFFJL5D.js} +33 -27
  16. package/dist/{chunk-SJRGMG6A.js → chunk-3NWDLGG6.js} +28 -25
  17. package/dist/{chunk-4WBVUHXN.js → chunk-3RM4UK6W.js} +20 -18
  18. package/dist/chunk-42SIDKEU.js +583 -0
  19. package/dist/{chunk-GLUX4EEP.js → chunk-4EURQWQD.js} +20 -15
  20. package/dist/chunk-4U276ICE.js +39 -0
  21. package/dist/{chunk-ZMFPW66A.js → chunk-53T4O55J.js} +4 -3
  22. package/dist/{chunk-6J5OKA4Y.js → chunk-57TDNMI3.js} +17 -15
  23. package/dist/chunk-5BD2KYLE.js +57 -0
  24. package/dist/{chunk-7EFILTCI.js → chunk-5F7GFN2F.js} +28 -0
  25. package/dist/chunk-5NMKONLP.js +95 -0
  26. package/dist/{chunk-7ZUIMTOU.js → chunk-5SJZW52K.js} +26 -24
  27. package/dist/{chunk-4RS5KZQD.js → chunk-63YRMR6J.js} +6 -5
  28. package/dist/chunk-66PPNOON.js +62 -0
  29. package/dist/chunk-6H3Z5JHH.js +64 -0
  30. package/dist/{chunk-CEXSU4S6.js → chunk-6MUGR4LS.js} +775 -89
  31. package/dist/{chunk-QSXK2RGH.js → chunk-6OJQOPUN.js} +5 -3
  32. package/dist/{chunk-MVZVGYXH.js → chunk-6PPOWY5E.js} +84 -14
  33. package/dist/{chunk-7EKXJZ2Y.js → chunk-6ZGLAACW.js} +299 -38
  34. package/dist/chunk-6ZJ5A7AF.js +222 -0
  35. package/dist/{chunk-L24C55VN.js → chunk-745DAZ4L.js} +142 -30
  36. package/dist/{chunk-Q4D5X7QB.js → chunk-7ASNL4Q4.js} +46 -24
  37. package/dist/chunk-7BR7IPOH.js +35 -0
  38. package/dist/{chunk-7WD63HU2.js → chunk-7DOR27HL.js} +6 -6
  39. package/dist/chunk-7FTTA3HD.js +341 -0
  40. package/dist/{chunk-OLQJTJJU.js → chunk-7GJS6DNX.js} +12 -3
  41. package/dist/{chunk-7JUKDRSZ.js → chunk-7IGKHZ4Z.js} +347 -226
  42. package/dist/{chunk-G2B4ZQGH.js → chunk-7IOWA5D5.js} +11 -6
  43. package/dist/{chunk-EBEW3XXQ.js → chunk-7JITZFJC.js} +7 -5
  44. package/dist/chunk-7MJSQTL5.js +174 -0
  45. package/dist/{chunk-I4JRCD6M.js → chunk-7UOMVMFG.js} +25 -17
  46. package/dist/{chunk-YY6ZQQBP.js → chunk-AFWUDXEM.js} +19 -7
  47. package/dist/chunk-AFZ3QA6W.js +47 -0
  48. package/dist/chunk-AJQ72EBM.js +420 -0
  49. package/dist/chunk-AJYXNTNZ.js +317 -0
  50. package/dist/chunk-AVTBS4OW.js +49 -0
  51. package/dist/{chunk-FHH4I4ZV.js → chunk-BDKC6H5P.js} +12 -6
  52. package/dist/{chunk-IPKHE5D6.js → chunk-BEVTIBRH.js} +1526 -875
  53. package/dist/chunk-BHT7QK4G.js +162 -0
  54. package/dist/{chunk-6JUBZBMW.js → chunk-BIGDQDHD.js} +6 -4
  55. package/dist/{chunk-2BFCZ3RK.js → chunk-BO4KX37X.js} +20 -18
  56. package/dist/chunk-BPK5P77O.js +115 -0
  57. package/dist/chunk-BQ4SQQC6.js +59 -0
  58. package/dist/chunk-BQGDB6ZL.js +7342 -0
  59. package/dist/{chunk-2ANOROX3.js → chunk-BTGPE6CR.js} +11 -9
  60. package/dist/chunk-BTY3HZBO.js +93 -0
  61. package/dist/{chunk-DPZHZQKE.js → chunk-BXYMYEJ4.js} +44 -10
  62. package/dist/{chunk-2RMYG36Q.js → chunk-C3RY6KU6.js} +309 -346
  63. package/dist/chunk-C4R4JLHE.js +40 -0
  64. package/dist/chunk-CADWLE2T.js +18 -0
  65. package/dist/chunk-CBGGOQWU.js +82 -0
  66. package/dist/chunk-CMDXGQTS.js +47 -0
  67. package/dist/{chunk-MC3H7736.js → chunk-CQDGOPGH.js} +58 -18
  68. package/dist/{chunk-HFQCFSJR.js → chunk-CX4RZ2KS.js} +4 -3
  69. package/dist/{chunk-PAMPPUR6.js → chunk-CXJ6FUKN.js} +1852 -207
  70. package/dist/{chunk-ABWHYWNI.js → chunk-D73UEXYW.js} +3 -3
  71. package/dist/chunk-DCZWQLYT.js +1205 -0
  72. package/dist/chunk-DLOBCJL6.js +48 -0
  73. package/dist/{chunk-4BN53TG3.js → chunk-DOBQKHIF.js} +31 -23
  74. package/dist/chunk-E3ISYXO3.js +423 -0
  75. package/dist/{chunk-7SW2QWLU.js → chunk-E6ZIEVOI.js} +16 -13
  76. package/dist/chunk-EBL2R3YG.js +43 -0
  77. package/dist/{chunk-AIOQPLA5.js → chunk-EGQRREQH.js} +41 -15
  78. package/dist/chunk-EHA7RMZ3.js +58 -0
  79. package/dist/{chunk-M766ZJ6W.js → chunk-EIPTLPFC.js} +38 -27
  80. package/dist/chunk-EMRIQUND.js +517 -0
  81. package/dist/{chunk-DFBCSHVT.js → chunk-EPCJQQWD.js} +6 -4
  82. package/dist/{chunk-RZPYKDWS.js → chunk-F3P7N7SF.js} +1 -1
  83. package/dist/{chunk-R77KLRB3.js → chunk-FFLNS6VP.js} +21 -18
  84. package/dist/chunk-FFTRTL6R.js +26 -0
  85. package/dist/{chunk-IHMLFRVV.js → chunk-FPJPLKDW.js} +62 -16
  86. package/dist/{chunk-JCZIKA4C.js → chunk-FSMSFDLD.js} +5 -4
  87. package/dist/{chunk-AVJDSJ2F.js → chunk-FUJM6RTF.js} +8 -7
  88. package/dist/chunk-FZOJFH7Q.js +132 -0
  89. package/dist/{chunk-QRAOANID.js → chunk-G6X77UJZ.js} +23 -21
  90. package/dist/{chunk-3ALD2W2A.js → chunk-GCWRWSU7.js} +10 -4
  91. package/dist/chunk-GIW4ZVDB.js +39 -0
  92. package/dist/{chunk-B2WLAWNJ.js → chunk-GUX3PTYM.js} +3 -3
  93. package/dist/{chunk-DPUYDDQG.js → chunk-GZY6RUZ6.js} +25 -3
  94. package/dist/chunk-H4VO6WG3.js +10 -0
  95. package/dist/{chunk-MMOSZPWJ.js → chunk-H5HBGNXU.js} +5 -4
  96. package/dist/chunk-H7KM7LZE.js +229 -0
  97. package/dist/{chunk-AA6YULYB.js → chunk-HNM2YQT2.js} +7 -7
  98. package/dist/{chunk-3C7EYRFZ.js → chunk-HYU5VLGA.js} +1 -1
  99. package/dist/{chunk-XY3P7JW7.js → chunk-IDKCWSM5.js} +1032 -172
  100. package/dist/chunk-IFKEI4SA.js +237 -0
  101. package/dist/{chunk-F7HYOUFF.js → chunk-IGOE6KPG.js} +67 -22
  102. package/dist/{chunk-TDD55CJH.js → chunk-IH2XURVQ.js} +6 -5
  103. package/dist/chunk-INQHESFB.js +38 -0
  104. package/dist/chunk-IP74LCOQ.js +57 -0
  105. package/dist/chunk-IPHHDDC6.js +45 -0
  106. package/dist/{chunk-T6AIP7H5.js → chunk-ISUAAMGS.js} +110 -153
  107. package/dist/{chunk-A7UPUQFY.js → chunk-IUPG3UKI.js} +624 -319
  108. package/dist/{chunk-L6SGQIR3.js → chunk-IVBOQAGB.js} +7 -3
  109. package/dist/{chunk-27NKUS3X.js → chunk-J2JAKCIW.js} +2205 -796
  110. package/dist/{chunk-V2YTAIQO.js → chunk-J3IOLXWM.js} +24 -7
  111. package/dist/chunk-JA5FI3QV.js +142 -0
  112. package/dist/chunk-JAVI7JSP.js +49 -0
  113. package/dist/{chunk-HLJAXMM4.js → chunk-JB5LINEM.js} +6 -2
  114. package/dist/{chunk-2VHF7OXM.js → chunk-JENSEMXF.js} +1 -1
  115. package/dist/{chunk-6BVONWJ7.js → chunk-JJF6HALY.js} +4 -3
  116. package/dist/chunk-JLUCKAEL.js +38 -0
  117. package/dist/chunk-JRBFANFE.js +221 -0
  118. package/dist/{chunk-R6XF6UR3.js → chunk-KDNTAPLX.js} +4 -4
  119. package/dist/chunk-KFAVQZSX.js +33 -0
  120. package/dist/chunk-KJXD4PNL.js +50 -0
  121. package/dist/chunk-KN5BXMWN.js +44 -0
  122. package/dist/{chunk-PCVDV3UZ.js → chunk-KQGURXFU.js} +9 -7
  123. package/dist/{chunk-WY6PP6AA.js → chunk-KXITGYLF.js} +40 -6
  124. package/dist/{chunk-66YVAGGM.js → chunk-L27SV425.js} +22 -20
  125. package/dist/{chunk-NE2W3OO7.js → chunk-LDLL7LB3.js} +24 -22
  126. package/dist/chunk-LFGTYX5U.js +379 -0
  127. package/dist/{chunk-EYWIDJFU.js → chunk-LGBMTVNT.js} +7 -5
  128. package/dist/{chunk-Q5AMFEWD.js → chunk-LGFL54FP.js} +3 -2
  129. package/dist/{chunk-6TACQN3N.js → chunk-LJXMYKZJ.js} +7 -5
  130. package/dist/{chunk-BKVWTZ6A.js → chunk-LKOR5UET.js} +29 -26
  131. package/dist/chunk-LNBQOP7D.js +294 -0
  132. package/dist/{chunk-O3WI5KWW.js → chunk-LO6P2VYG.js} +2 -2
  133. package/dist/chunk-LQJPN536.js +122 -0
  134. package/dist/{chunk-YEDDOYSC.js → chunk-LYBNHMVZ.js} +29 -5
  135. package/dist/{chunk-A3GY6SOA.js → chunk-LZ7NUC62.js} +20 -18
  136. package/dist/chunk-M32BLWDH.js +37 -0
  137. package/dist/{chunk-VYDBJ73M.js → chunk-M3NANSDZ.js} +17 -15
  138. package/dist/chunk-MFHL5URL.js +31 -0
  139. package/dist/chunk-MFR5OPBD.js +109 -0
  140. package/dist/{chunk-DE76JROX.js → chunk-MG4ZL5RW.js} +32 -20
  141. package/dist/{chunk-N7IXEHK3.js → chunk-MO6P2JZH.js} +10 -8
  142. package/dist/{chunk-65NYPGRC.js → chunk-MUWDB4R4.js} +1 -1
  143. package/dist/chunk-MZCGSXVR.js +34 -0
  144. package/dist/{chunk-MGYZM27B.js → chunk-N3XIYPU3.js} +51 -23
  145. package/dist/chunk-NDCF4R6S.js +172 -0
  146. package/dist/{chunk-DHPACDG7.js → chunk-NR2UJWOC.js} +10 -8
  147. package/dist/chunk-NXJ5URP6.js +51 -0
  148. package/dist/{chunk-UNM6ZOKP.js → chunk-NY2XSR5K.js} +147 -18
  149. package/dist/{chunk-5GDRCDQB.js → chunk-O45HFTFS.js} +3 -2
  150. package/dist/{chunk-ONLS5QA5.js → chunk-O4GXGGBX.js} +14 -12
  151. package/dist/chunk-O5PXQR67.js +249 -0
  152. package/dist/{chunk-PRPPGYZG.js → chunk-O66DM6DJ.js} +6 -4
  153. package/dist/{chunk-KEM4SDDP.js → chunk-O7FDLW7L.js} +11 -8
  154. package/dist/{chunk-T2UYZSCQ.js → chunk-O7XLYEFA.js} +169 -29
  155. package/dist/{chunk-FITWGOJ2.js → chunk-OHNCWBKF.js} +4 -4
  156. package/dist/{chunk-652QWTLZ.js → chunk-OHVTTOPS.js} +3 -3
  157. package/dist/chunk-OMI6FPPN.js +43 -0
  158. package/dist/chunk-ONUPY3H6.js +53 -0
  159. package/dist/chunk-OTLDSZDV.js +69 -0
  160. package/dist/chunk-OUBGGKDU.js +22 -0
  161. package/dist/chunk-OWNCM4ZN.js +330 -0
  162. package/dist/{chunk-YISXLPHN.js → chunk-P2V7QW4D.js} +235 -35
  163. package/dist/{chunk-CNUKCS2T.js → chunk-P32RUW3B.js} +1632 -93
  164. package/dist/{chunk-BWZ77RQT.js → chunk-PAQ2AS5E.js} +1 -1
  165. package/dist/{chunk-ZMAINWBW.js → chunk-PBPBMP2B.js} +4 -3
  166. package/dist/{chunk-ZVM6AKKM.js → chunk-PJSJPMJI.js} +3 -3
  167. package/dist/{chunk-EFHQ3TWP.js → chunk-PKBHS4AA.js} +233 -56
  168. package/dist/{chunk-GT4I4ZWM.js → chunk-PMUAJGLI.js} +20 -16
  169. package/dist/chunk-PPD7HTDP.js +152 -0
  170. package/dist/chunk-PSOFBQWB.js +42 -0
  171. package/dist/{chunk-S2A7YC3Q.js → chunk-Q2TECDIT.js} +10694 -8896
  172. package/dist/chunk-Q4K5WB2W.js +42 -0
  173. package/dist/{chunk-UGLN7QHV.js → chunk-Q6DFNVRJ.js} +14 -12
  174. package/dist/chunk-QA4O2GGC.js +265 -0
  175. package/dist/chunk-QAXW2N3B.js +1216 -0
  176. package/dist/chunk-QBNWF5ZU.js +19 -0
  177. package/dist/chunk-QFWA2DPH.js +224 -0
  178. package/dist/{chunk-23W7VWKR.js → chunk-QKUJMING.js} +1363 -114
  179. package/dist/{chunk-NXFPS2LR.js → chunk-R44CYFPV.js} +16 -13
  180. package/dist/{chunk-CKSITVS4.js → chunk-R7NYHMUU.js} +2687 -786
  181. package/dist/chunk-REWWDVQB.js +162 -0
  182. package/dist/{chunk-JMSCMUCA.js → chunk-RGERPOIV.js} +145 -21
  183. package/dist/{chunk-6JCPI55B.js → chunk-RLDGWLQ7.js} +49 -7
  184. package/dist/chunk-RUGXBPWI.js +384 -0
  185. package/dist/{chunk-CPA6HPVR.js → chunk-RXPJMEOW.js} +18 -12
  186. package/dist/{chunk-3HI6Z55Y.js → chunk-S4PMJU6H.js} +339 -43
  187. package/dist/chunk-S5LSDXV4.js +40 -0
  188. package/dist/chunk-S7FCV7S5.js +51 -0
  189. package/dist/{chunk-5GGOLAKC.js → chunk-SDKLKB6I.js} +28 -26
  190. package/dist/chunk-SFSPGFCV.js +62 -0
  191. package/dist/{chunk-ZNCEKR4J.js → chunk-SFUP7TTO.js} +12 -8
  192. package/dist/{chunk-64EQYWCA.js → chunk-SLXZOMA6.js} +69 -19
  193. package/dist/chunk-SQV37XO2.js +273 -0
  194. package/dist/{chunk-K65BJIMT.js → chunk-SU74NDMQ.js} +19 -17
  195. package/dist/chunk-SYV5LHML.js +165 -0
  196. package/dist/chunk-T4YPZIQN.js +36 -0
  197. package/dist/chunk-T6DQR5TV.js +323 -0
  198. package/dist/{chunk-JIITQXFB.js → chunk-THDMSZ3R.js} +3075 -802
  199. package/dist/{chunk-JGZCG5VM.js → chunk-TNR75OXT.js} +7 -7
  200. package/dist/{chunk-D3PO4DOZ.js → chunk-TUULXQRW.js} +174 -15
  201. package/dist/chunk-TYQBFTBR.js +516 -0
  202. package/dist/chunk-U76OWS3Q.js +49 -0
  203. package/dist/{chunk-YYQN46FY.js → chunk-UCROWG2D.js} +27 -24
  204. package/dist/{chunk-6M5NK3K3.js → chunk-UF4AZOZB.js} +50 -10
  205. package/dist/chunk-UF4GLFBX.js +345 -0
  206. package/dist/{chunk-OT2O76OS.js → chunk-UGUP3ZM6.js} +240 -39
  207. package/dist/chunk-UNAGJYET.js +45 -0
  208. package/dist/{chunk-5WG5YP4T.js → chunk-UOR2DTHH.js} +16 -14
  209. package/dist/{chunk-S3QNRWYR.js → chunk-UPOY4YSQ.js} +14 -12
  210. package/dist/{chunk-EPTBZ3GP.js → chunk-UPS2DGFC.js} +1 -1
  211. package/dist/{chunk-4AK7IBVP.js → chunk-UUU4CLJG.js} +4 -2
  212. package/dist/{chunk-W3BQAZ3Q.js → chunk-UWMJKX5U.js} +14 -12
  213. package/dist/{chunk-QZSX3F7C.js → chunk-UWOJLHFT.js} +27 -23
  214. package/dist/chunk-VBTP56CE.js +535 -0
  215. package/dist/chunk-VCTWPLAO.js +211 -0
  216. package/dist/chunk-VNU26RCO.js +1215 -0
  217. package/dist/{chunk-CSZ4C5N6.js → chunk-VTZMAJ3W.js} +93 -10
  218. package/dist/{chunk-TXLH6WHQ.js → chunk-VW62D6QE.js} +14 -12
  219. package/dist/{chunk-CAQZUNOH.js → chunk-VY72R2XZ.js} +610 -3
  220. package/dist/{chunk-2DIQQJCB.js → chunk-VZALIKIF.js} +18 -15
  221. package/dist/{chunk-TYAID7B7.js → chunk-W62H2XSO.js} +25 -23
  222. package/dist/{chunk-HVUPKCGJ.js → chunk-W7VWI2YH.js} +9 -6
  223. package/dist/{chunk-TANFV3MZ.js → chunk-WERM6KPJ.js} +7 -4
  224. package/dist/{chunk-BOHJZTEQ.js → chunk-WF7B67YE.js} +208 -87
  225. package/dist/{chunk-7FBGJFEE.js → chunk-WG5U3F5V.js} +14 -12
  226. package/dist/{chunk-4NDAAFQT.js → chunk-WJF2CS6M.js} +8 -5
  227. package/dist/{chunk-XAKWMCXI.js → chunk-WKUJ3KPV.js} +4 -4
  228. package/dist/chunk-WMTRHUI5.js +103 -0
  229. package/dist/chunk-WNKPRSGI.js +36 -0
  230. package/dist/chunk-WXFLMQSR.js +223 -0
  231. package/dist/{chunk-RRTKKSLQ.js → chunk-X3WY6MN3.js} +8 -6
  232. package/dist/{chunk-ZCJDOK2S.js → chunk-X4CXA2IL.js} +47 -23
  233. package/dist/{chunk-UBBC2XSG.js → chunk-X5F3Q5LV.js} +560 -105
  234. package/dist/{chunk-C6EKFH7J.js → chunk-XD75VZIH.js} +9 -7
  235. package/dist/chunk-XERYFDB5.js +297 -0
  236. package/dist/chunk-XI2LCCYQ.js +420 -0
  237. package/dist/chunk-Y2EQNWKV.js +933 -0
  238. package/dist/{chunk-LR3R6Z2A.js → chunk-YHCMZC2J.js} +7 -7
  239. package/dist/chunk-YYY3AZFE.js +122 -0
  240. package/dist/{chunk-GDLULHTC.js → chunk-Z5IA3WDR.js} +19 -31
  241. package/dist/{chunk-T6XQL73F.js → chunk-ZFFYNRIO.js} +63 -23
  242. package/dist/{chunk-EDS2L2LD.js → chunk-ZFL7NY4F.js} +56 -27
  243. package/dist/{chunk-YMZ3TNYB.js → chunk-ZGULQAPZ.js} +7 -4
  244. package/dist/{chunk-4SKZDI62.js → chunk-ZIUFM5HT.js} +3 -1
  245. package/dist/{chunk-DKJA76CJ.js → chunk-ZJFRMSJT.js} +15 -13
  246. package/dist/chunk-ZJXLNDH4.js +239 -0
  247. package/dist/chunk-ZQ3ON2VQ.js +252 -0
  248. package/dist/{chunk-HITVBIJS.js → chunk-ZQ7SKESZ.js} +150 -415
  249. package/dist/{chunk-6QSERWXH.js → chunk-ZQXZ2SES.js} +24 -21
  250. package/dist/chunk-ZX57KSEQ.js +39 -0
  251. package/dist/{chunk-I3E7CX4H.js → chunk-ZZK56BLP.js} +5 -3
  252. package/dist/files.json +664 -368
  253. package/dist/packages/naysayer/constitution/constitution.yaml +19 -0
  254. package/dist/packages/sdk/npm/index.js +6194 -2542
  255. package/dist/packages/ui/dist/assets/{elk-api-tma0MCuh.js → elk-api-CIf-0gz5.js} +2 -2
  256. package/dist/packages/ui/dist/assets/index-CoK_Dl0D.js +47 -0
  257. package/dist/packages/ui/dist/assets/index-Dw20IRhQ.css +1 -0
  258. package/dist/packages/ui/dist/index.html +3 -2
  259. package/package.json +5 -5
  260. package/dist/chunk-2BF2EYJV.js +0 -174
  261. package/dist/chunk-42EVSKME.js +0 -37
  262. package/dist/chunk-4BKGMUIK.js +0 -53
  263. package/dist/chunk-5KLGBXG5.js +0 -48
  264. package/dist/chunk-6BNC6EQ4.js +0 -41
  265. package/dist/chunk-6D2CQ5II.js +0 -41
  266. package/dist/chunk-7AVHLZGD.js +0 -45
  267. package/dist/chunk-D46WUV3T.js +0 -33
  268. package/dist/chunk-E36QOJMD.js +0 -47
  269. package/dist/chunk-FQXYPF7E.js +0 -147
  270. package/dist/chunk-GBRFVT63.js +0 -45
  271. package/dist/chunk-ICY36XCH.js +0 -34
  272. package/dist/chunk-J4K3KVLD.js +0 -131
  273. package/dist/chunk-JZU3H6UQ.js +0 -54
  274. package/dist/chunk-NN2ZQEB4.js +0 -38
  275. package/dist/chunk-PCOCACY3.js +0 -385
  276. package/dist/chunk-RTEYOSJY.js +0 -29
  277. package/dist/chunk-RUVFXE2L.js +0 -666
  278. package/dist/chunk-RVH5SUW5.js +0 -69
  279. package/dist/chunk-VN3DP4LQ.js +0 -43
  280. package/dist/chunk-W5BVQF44.js +0 -36
  281. package/dist/chunk-WVPJSRRJ.js +0 -52
  282. package/dist/chunk-XPTOBS2D.js +0 -48
  283. package/dist/packages/ui/dist/assets/index-B54fm9FQ.js +0 -29
  284. package/dist/packages/ui/dist/assets/index-DD_hufQz.css +0 -1
@@ -5,41 +5,47 @@ var __atticusUrl = (p) => new URL("./" + p, import.meta.url).href;
5
5
  var __atticusPath = (p) => __atticusFileURLToPath(__atticusUrl(p));
6
6
  import {
7
7
  intakeContext
8
- } from "./chunk-ZNCEKR4J.js";
8
+ } from "./chunk-SFUP7TTO.js";
9
9
  import "./chunk-VOGCSYOI.js";
10
10
  import {
11
11
  changeFolder,
12
12
  changeStore
13
- } from "./chunk-XY3P7JW7.js";
14
- import "./chunk-4AK7IBVP.js";
15
- import "./chunk-7JUKDRSZ.js";
13
+ } from "./chunk-IDKCWSM5.js";
14
+ import "./chunk-UUU4CLJG.js";
15
+ import "./chunk-7IGKHZ4Z.js";
16
16
  import {
17
17
  estateFacts,
18
18
  estateRepos,
19
+ hostAliases,
19
20
  joinReposOf,
21
+ outsideProfileSystems,
20
22
  outsideSystems
21
- } from "./chunk-27NKUS3X.js";
22
- import "./chunk-L24C55VN.js";
23
- import "./chunk-PAMPPUR6.js";
23
+ } from "./chunk-J2JAKCIW.js";
24
+ import "./chunk-745DAZ4L.js";
25
+ import "./chunk-CXJ6FUKN.js";
24
26
  import {
25
27
  attachToChange,
26
28
  readChangeInputs,
27
29
  readVendorSpec
28
- } from "./chunk-23W7VWKR.js";
29
- import "./chunk-7EKXJZ2Y.js";
30
- import "./chunk-MC3H7736.js";
31
- import "./chunk-EFHQ3TWP.js";
32
- import "./chunk-GQ4N4WKF.js";
33
- import "./chunk-CNUKCS2T.js";
30
+ } from "./chunk-QKUJMING.js";
31
+ import "./chunk-6ZGLAACW.js";
32
+ import "./chunk-CQDGOPGH.js";
33
+ import "./chunk-3NFFJL5D.js";
34
+ import "./chunk-PKBHS4AA.js";
35
+ import "./chunk-P32RUW3B.js";
36
+ import "./chunk-QA4O2GGC.js";
34
37
  import {
35
38
  PROTOTYPE_GROUPS,
36
39
  comparePrototype,
37
40
  factsDirOf,
38
41
  inputsDirOf,
39
42
  isPrototypeType,
40
- parseFacts
41
- } from "./chunk-S2A7YC3Q.js";
42
- import "./chunk-D3PO4DOZ.js";
43
+ joinConventions,
44
+ parseFacts,
45
+ prototypeArchitectureSection
46
+ } from "./chunk-Q2TECDIT.js";
47
+ import "./chunk-TUULXQRW.js";
48
+ import "./chunk-BQGDB6ZL.js";
43
49
  import "./chunk-TV45EUGM.js";
44
50
 
45
51
  // packages/cli/dist/prototype-commands.js
@@ -62,6 +68,8 @@ var PROTOTYPE_CLI_WORDS = {
62
68
  new: "New: nothing in the estate serves it.",
63
69
  vendor: "Vendor: only a vendor provides it, so it needs a route through the external gateway."
64
70
  },
71
+ /** The vendor group's heading when another team's system provides one of its calls (O2). */
72
+ outside: "Outside: only a vendor or another team's system provides it; a vendor's needs a route through the external gateway, another team's is called as it publishes it.",
65
73
  left: (n) => `${n} call${n === 1 ? "" : "s"} of the prototype reach${n === 1 ? "es" : ""} nothing in it and ${n === 1 ? "isn't" : "aren't"} compared:`,
66
74
  attached: (path) => `Attached as ${path}: the change's feature and architecture stages read it as data, citing it by line.`,
67
75
  unchanged: (path) => `The comparison is what ${path} already says: nothing to attach again.`,
@@ -88,12 +96,12 @@ async function loadPrototypeComparison(root, repo, io) {
88
96
  if (!parsed?.ok || !parsed.facts.length || parsed.facts.some((f) => f.verified === "none"))
89
97
  return { error: PROTOTYPE_CLI_WORDS.notRead(repo) };
90
98
  const estate = await estateFacts(root, op, repo);
91
- const systems = op.profiles.flatMap((p) => p.profile?.systems ?? []);
99
+ const systems = outsideProfileSystems(op);
92
100
  const vendors = [];
93
101
  for (const d of inputs.documents) {
94
102
  if (!d.id || d.supersededBy || !SPECS.has(d.classification))
95
103
  continue;
96
- const system = systems.find((s) => s.id === d.systems[0] && s.boundary === "vendor");
104
+ const system = systems.find((s) => s.id === d.systems[0]);
97
105
  if (!system)
98
106
  continue;
99
107
  const body = await readFile(join(inputsDirOf(root), ...d.path.split("/").slice(1)), "utf8");
@@ -117,8 +125,11 @@ async function loadPrototypeComparison(root, repo, io) {
117
125
  name: f.name,
118
126
  ...f.type ? { type: f.type } : {},
119
127
  ...f.required !== void 0 ? { required: f.required } : {},
128
+ ...f.enum ? { enum: f.enum } : {},
129
+ ...f.in === "header" ? { in: f.in } : {},
120
130
  at: f.cite
121
- }))
131
+ })),
132
+ ...o.errors ? { errors: o.errors.map((e) => ({ status: e.status, at: e.cite })) } : {}
122
133
  }));
123
134
  if (prior) {
124
135
  prior.operations.push(...operations);
@@ -127,7 +138,8 @@ async function loadPrototypeComparison(root, repo, io) {
127
138
  vendors.push({
128
139
  system: system.id,
129
140
  names: [system.name, ...system.aliases],
130
- hosts: [...spec.hosts],
141
+ hosts: [.../* @__PURE__ */ new Set([...spec.hosts, ...hostAliases(system.aliases)])],
142
+ ...system.boundary === "vendor" ? {} : { boundary: "internal" },
131
143
  operations
132
144
  });
133
145
  }
@@ -139,13 +151,15 @@ async function loadPrototypeComparison(root, repo, io) {
139
151
  },
140
152
  estate: joinReposOf(op, estate.repos),
141
153
  vendors,
142
- outside: outsideSystems(op)
154
+ outside: outsideSystems(op),
155
+ ...joinConventions(op)
143
156
  });
144
157
  return {
145
158
  repo,
146
159
  ...manifest.description ? { about: manifest.description } : {},
147
160
  comparison,
148
161
  notes: estate.notes,
162
+ architecture: prototypeArchitectureSection(comparison, parsed.facts),
149
163
  systemOf: Object.fromEntries(estateRepos(op).flatMap((r) => r.system ? [[r.id, r.system]] : []))
150
164
  };
151
165
  }
@@ -166,7 +180,7 @@ function prototypeLines(l) {
166
180
  const calls = c.calls.filter((x) => x.group === g);
167
181
  if (!calls.length)
168
182
  continue;
169
- out.push(PROTOTYPE_CLI_WORDS.group[g]);
183
+ out.push(g === "vendor" && calls.some((x) => x.vendor?.boundary === "internal") ? PROTOTYPE_CLI_WORDS.outside : PROTOTYPE_CLI_WORDS.group[g]);
170
184
  for (const x of calls)
171
185
  out.push(...callLines(x));
172
186
  }
@@ -181,13 +195,21 @@ function prototypeLines(l) {
181
195
  function prototypeDocument(l) {
182
196
  return {
183
197
  name: `prototype-${l.repo}.md`,
184
- text: [PROTOTYPE_CLI_WORDS.docTitle(l.repo), "", ...prototypeLines(l), ""].join("\n")
198
+ text: [
199
+ PROTOTYPE_CLI_WORDS.docTitle(l.repo),
200
+ "",
201
+ ...prototypeLines(l),
202
+ "",
203
+ ...l.architecture
204
+ ].join("\n")
185
205
  };
186
206
  }
187
207
  var sorted = (xs) => [...new Set(xs)].sort();
188
208
  var ATTACHED = /^prototype-(.+)\.md$/;
189
209
  async function changePrototypes(root, change) {
190
210
  const quiet = { out: () => void 0, err: () => void 0 };
211
+ const { op } = await intakeContext(root, quiet);
212
+ const candidates = estateRepos(op).filter((r) => isPrototypeType(r.type)).map((r) => r.id).sort();
191
213
  const files = (await readChangeInputs(changeFolder(root, change))).files.filter((f) => !f.supersededBy && ATTACHED.test(f.name)).sort((a, b) => a.name < b.name ? -1 : a.name > b.name ? 1 : 0);
192
214
  const prototypes = [];
193
215
  for (const f of files) {
@@ -200,7 +222,7 @@ async function changePrototypes(root, change) {
200
222
  comparison: got.comparison
201
223
  });
202
224
  }
203
- return { prototypes };
225
+ return { prototypes, candidates };
204
226
  }
205
227
  async function attachPrototype(root, change, repo, o, io) {
206
228
  const store = changeStore(root);
@@ -0,0 +1,35 @@
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
+ denyHash,
8
+ denyHashesAt,
9
+ intakeTraffic,
10
+ linkEvidenceAbout,
11
+ linkEvidenceLines,
12
+ loadLinkEvidence,
13
+ repoContractsOf,
14
+ writeRepoContracts
15
+ } from "./chunk-ZQ3ON2VQ.js";
16
+ import "./chunk-QKUJMING.js";
17
+ import "./chunk-6ZGLAACW.js";
18
+ import "./chunk-CQDGOPGH.js";
19
+ import "./chunk-3NFFJL5D.js";
20
+ import "./chunk-P32RUW3B.js";
21
+ import "./chunk-QA4O2GGC.js";
22
+ import "./chunk-Q2TECDIT.js";
23
+ import "./chunk-TUULXQRW.js";
24
+ import "./chunk-BQGDB6ZL.js";
25
+ import "./chunk-TV45EUGM.js";
26
+ export {
27
+ denyHash,
28
+ denyHashesAt,
29
+ intakeTraffic,
30
+ linkEvidenceAbout,
31
+ linkEvidenceLines,
32
+ loadLinkEvidence,
33
+ repoContractsOf,
34
+ writeRepoContracts
35
+ };
@@ -7,18 +7,18 @@ import {
7
7
  readRound,
8
8
  reviewedGates,
9
9
  roundsOf
10
- } from "./chunk-3HI6Z55Y.js";
10
+ } from "./chunk-S4PMJU6H.js";
11
11
  import {
12
12
  changeStore,
13
13
  liveHandoff
14
- } from "./chunk-XY3P7JW7.js";
14
+ } from "./chunk-IDKCWSM5.js";
15
15
  import {
16
16
  createAdapters
17
- } from "./chunk-7JUKDRSZ.js";
17
+ } from "./chunk-7IGKHZ4Z.js";
18
18
  import {
19
19
  loadOrgPack,
20
20
  orgPackDirOf
21
- } from "./chunk-S2A7YC3Q.js";
21
+ } from "./chunk-Q2TECDIT.js";
22
22
 
23
23
  // packages/cli/dist/digest-commands.js
24
24
  var norm = (s) => s.toLowerCase().replace(/^@/, "");
@@ -68,8 +68,8 @@ async function buildDigest(root, user) {
68
68
  }
69
69
  if (!lines.length)
70
70
  lines.push("Nothing waits on you.");
71
- const { readMe } = await import("./chunk-ZMAINWBW.js");
72
- const { watchLine } = await import("./chunk-DE76JROX.js");
71
+ const { readMe } = await import("./chunk-PBPBMP2B.js");
72
+ const { watchLine } = await import("./chunk-MG4ZL5RW.js");
73
73
  const watching = [];
74
74
  for (const c of (await readMe(root)).watch)
75
75
  watching.push(await watchLine(root, c));
@@ -0,0 +1,341 @@
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
+ denyHashesAt
8
+ } from "./chunk-ZQ3ON2VQ.js";
9
+ import {
10
+ estateRepos,
11
+ outsideProfileSystems
12
+ } from "./chunk-J2JAKCIW.js";
13
+ import {
14
+ denyListHits
15
+ } from "./chunk-QKUJMING.js";
16
+ import {
17
+ RepoManifest,
18
+ SHARED_MAP_SCHEMA_VERSION,
19
+ SharedMapFile,
20
+ factsDirOf,
21
+ factsFileOf,
22
+ isAdopted,
23
+ isSecretPath,
24
+ loadOrgPack,
25
+ orgPackDirOf,
26
+ parseFactsLines,
27
+ readSharedMaps,
28
+ redactSecrets,
29
+ serializeFacts,
30
+ sharedDirOf,
31
+ sharedRelOf
32
+ } from "./chunk-Q2TECDIT.js";
33
+ import {
34
+ writeFileAtomic
35
+ } from "./chunk-TUULXQRW.js";
36
+ import {
37
+ require_dist
38
+ } from "./chunk-BQGDB6ZL.js";
39
+ import {
40
+ __toESM
41
+ } from "./chunk-TV45EUGM.js";
42
+
43
+ // packages/cli/dist/shared-commands.js
44
+ var import_yaml = __toESM(require_dist(), 1);
45
+ import { readdir, readFile, rm, mkdir, stat } from "node:fs/promises";
46
+ import { isAbsolute, join, relative, resolve } from "node:path";
47
+ var SLUG = /^[a-z0-9][a-z0-9_-]*$/;
48
+ var SHA = /^[0-9a-f]{7,64}$/;
49
+ var SECRET_WORD = /(password|passwd|secret|token|api[-_]?key|access[-_]?key|private[-_]?key|credential)/i;
50
+ var posix = (p) => p.split("\\").join("/");
51
+ async function headCommitOf(dir) {
52
+ let git = join(dir, ".git");
53
+ const s = await stat(git).catch(() => void 0);
54
+ if (!s)
55
+ return void 0;
56
+ if (s.isFile()) {
57
+ const m = /^gitdir:\s*(.+)$/m.exec(await readFile(git, "utf8"));
58
+ if (!m)
59
+ return void 0;
60
+ git = resolve(dir, m[1].trim());
61
+ }
62
+ const head = (await readFile(join(git, "HEAD"), "utf8").catch(() => "")).trim();
63
+ if (SHA.test(head))
64
+ return head;
65
+ const ref = /^ref:\s*(.+)$/.exec(head)?.[1]?.trim();
66
+ if (!ref)
67
+ return void 0;
68
+ const common = (await readFile(join(git, "commondir"), "utf8").catch(() => "")).trim();
69
+ for (const g of [git, ...common ? [resolve(git, common)] : []]) {
70
+ const loose = (await readFile(join(g, ...ref.split("/")), "utf8").catch(() => "")).trim();
71
+ if (SHA.test(loose))
72
+ return loose;
73
+ const packed = await readFile(join(g, "packed-refs"), "utf8").catch(() => "");
74
+ for (const line of packed.split(/\r?\n/)) {
75
+ const [sha, name] = line.trim().split(/\s+/);
76
+ if (name === ref && sha && SHA.test(sha))
77
+ return sha;
78
+ }
79
+ }
80
+ return void 0;
81
+ }
82
+ async function theirManifest(dir) {
83
+ const out = /* @__PURE__ */ new Map();
84
+ const profiles = join(orgPackDirOf(dir), "profiles");
85
+ for (const p of (await readdir(profiles).catch(() => [])).sort()) {
86
+ const text = await readFile(join(profiles, p, "repos.manifest.yaml"), "utf8").catch(() => void 0);
87
+ if (text === void 0)
88
+ continue;
89
+ let raw;
90
+ try {
91
+ raw = (0, import_yaml.parse)(text);
92
+ } catch {
93
+ continue;
94
+ }
95
+ const m = RepoManifest.safeParse(raw);
96
+ if (m.success) {
97
+ for (const r of m.data.repos)
98
+ if (!out.has(r.id))
99
+ out.set(r.id, r);
100
+ }
101
+ }
102
+ return out;
103
+ }
104
+ function kept(f) {
105
+ const q = f.cite.quote;
106
+ if (q === void 0)
107
+ return { fact: f, redacted: false };
108
+ const red = isSecretPath(f.cite.file) ? void 0 : redactSecrets(q);
109
+ const quote = red !== void 0 && red === q && SECRET_WORD.test(q) ? void 0 : red;
110
+ if (quote === q)
111
+ return { fact: f, redacted: false };
112
+ const { quote: _q, ...cite } = f.cite;
113
+ return { fact: { ...f, cite: quote ? { ...cite, quote } : cite }, redacted: true };
114
+ }
115
+ async function readTheirMap(root, dir, o) {
116
+ if (!SLUG.test(o.team))
117
+ return {
118
+ ok: false,
119
+ message: `${o.team} isn't a team id: use a lowercase slug, e.g. forge-risk-team.`
120
+ };
121
+ const op = await loadOrgPack(orgPackDirOf(root));
122
+ const systems = outsideProfileSystems(op);
123
+ const system = systems.find((s) => s.id === o.system);
124
+ if (!system)
125
+ return {
126
+ ok: false,
127
+ message: `${o.system} isn't a system of your profiles that no estate repo belongs to (${systems.map((s) => s.id).join(", ") || "none"}). Add their system to a profile, boundary internal, with its host as an alias, then import again.`
128
+ };
129
+ const others = (await readSharedMaps(root)).maps.filter((m) => m.system === o.system && m.team !== o.team);
130
+ if (others.length)
131
+ return {
132
+ ok: false,
133
+ message: `${o.system} already has ${others[0].name}'s map (shared/${others[0].team}/): one map per system.`
134
+ };
135
+ const from = resolve(dir);
136
+ const st = await stat(from).catch(() => void 0);
137
+ if (!st?.isDirectory())
138
+ return { ok: false, message: `${dir} isn't a folder.` };
139
+ const commit = o.commit ?? await headCommitOf(from);
140
+ if (!commit || !SHA.test(commit))
141
+ return {
142
+ ok: false,
143
+ message: o.commit ? `${o.commit} isn't a commit sha.` : `${dir} isn't a git clone Atticus can read the commit of: say which commit of their metarepo these files are at with --commit <sha>.`
144
+ };
145
+ const theirFacts = isAdopted(from) || await stat(factsDirOf(from)).catch(() => void 0) ? factsDirOf(from) : from;
146
+ const names = (await readdir(theirFacts).catch(() => [])).sort();
147
+ const files = names.flatMap((n) => {
148
+ const f = factsFileOf(n);
149
+ return f?.facts ? [f.repo] : [];
150
+ });
151
+ if (!files.length)
152
+ return {
153
+ ok: false,
154
+ message: `No facts files (<repo>.jsonl) in ${dir}: give their metarepo, or the folder their facts are in.`
155
+ };
156
+ const ours = new Set(estateRepos(op).map((r) => r.id));
157
+ const clash = files.filter((r) => ours.has(r));
158
+ if (clash.length)
159
+ return {
160
+ ok: false,
161
+ message: `${clash.join(", ")} ${clash.length === 1 ? "is a repo" : "are repos"} of your estate: a shared map holds only another team's repos.`
162
+ };
163
+ const manifest = await theirManifest(from);
164
+ const leftOut = { other: 0, unverified: 0, bad: 0, redacted: 0 };
165
+ const facts = {};
166
+ const repos = [];
167
+ for (const repo of files) {
168
+ const { facts: read, bad } = parseFactsLines(await readFile(join(theirFacts, `${repo}.jsonl`), "utf8"));
169
+ leftOut.bad += bad.length;
170
+ const list = [];
171
+ for (const f of read) {
172
+ if (f.kind !== "entry" || f.repo !== repo)
173
+ leftOut.other++;
174
+ else if (f.verified === "none")
175
+ leftOut.unverified++;
176
+ else {
177
+ const k = kept(f);
178
+ if (k.redacted)
179
+ leftOut.redacted++;
180
+ list.push(k.fact);
181
+ }
182
+ }
183
+ const m = manifest.get(repo);
184
+ const hosts = [
185
+ .../* @__PURE__ */ new Set([...m?.hosts ?? [], ...(m?.modules ?? []).flatMap((x) => x.hosts)])
186
+ ].sort();
187
+ const codeCommit = list.map((f) => f.commit).sort()[0];
188
+ facts[repo] = list;
189
+ repos.push({
190
+ repo,
191
+ ...m?.component ? { component: m.component } : {},
192
+ ...codeCommit ? { commit: codeCommit } : {},
193
+ hosts,
194
+ ...m?.basePath ? { basePath: m.basePath } : {},
195
+ entries: list.length
196
+ });
197
+ }
198
+ const rel = posix(relative(root, from));
199
+ const inside = !!rel && rel !== ".." && !rel.startsWith("../") && !isAbsolute(rel);
200
+ const file = SharedMapFile.parse({
201
+ schemaVersion: SHARED_MAP_SCHEMA_VERSION,
202
+ team: o.team,
203
+ name: o.name ?? o.team,
204
+ system: o.system,
205
+ ...inside ? { source: rel } : {},
206
+ commit,
207
+ importedAt: (o.now ?? /* @__PURE__ */ new Date()).toISOString(),
208
+ repos
209
+ });
210
+ const deny = await denyHashesAt(root);
211
+ if (deny.size) {
212
+ for (const [repo, list] of Object.entries(facts)) {
213
+ const hits = denyListHits(list.length ? serializeFacts(list) : "", deny);
214
+ if (hits.length)
215
+ return {
216
+ ok: false,
217
+ message: `Refused: the deny-list names a word in ${repo}'s entries (line${hits.length === 1 ? "" : "s"} ${hits.join(", ")} as they would be kept). Nothing was written.`
218
+ };
219
+ }
220
+ if (denyListHits((0, import_yaml.stringify)(file), deny).length)
221
+ return {
222
+ ok: false,
223
+ message: "Refused: the deny-list names a word in the map's own file. Nothing was written."
224
+ };
225
+ }
226
+ const was = (await readSharedMaps(root)).maps.find((m) => m.team === o.team);
227
+ return { ok: true, file, facts, leftOut, ...was ? { replaced: was.commit } : {} };
228
+ }
229
+ async function writeTheirMap(root, r) {
230
+ const dir = join(sharedDirOf(root), r.file.team);
231
+ await rm(join(dir, "facts"), { recursive: true, force: true });
232
+ await mkdir(join(dir, "facts"), { recursive: true });
233
+ for (const [repo, list] of Object.entries(r.facts))
234
+ await writeFileAtomic(join(dir, "facts", `${repo}.jsonl`), list.length ? serializeFacts(list) : "");
235
+ await writeFileAtomic(join(dir, "map.yaml"), `# ${r.file.name}'s Atticus map, read-only (ADR 0160): their entries at their commit. Theirs to
236
+ # change: import it again (atticus join shared refresh ${r.file.team}); never edit it here.
237
+ ${(0, import_yaml.stringify)(r.file)}`);
238
+ return `${sharedRelOf(root)}/${r.file.team}`;
239
+ }
240
+ function sayImported(r, where, io) {
241
+ const f = r.file;
242
+ const entries = f.repos.reduce((n, x) => n + x.entries, 0);
243
+ io.out(`${r.replaced && r.replaced !== f.commit ? `Replaced ${f.name}'s map at ${r.replaced.slice(0, 7)} with` : r.replaced ? `Imported ${f.name}'s map again,` : `Imported ${f.name}'s map,`} their commit ${f.commit.slice(0, 7)}: ${entries} entr${entries === 1 ? "y" : "ies"} from ${f.repos.length} repo${f.repos.length === 1 ? "" : "s"} (${f.repos.map((x) => `${x.repo} ${x.entries}`).join(", ")}), standing for ${f.system}. Written to ${where}/.`);
244
+ const lo = r.leftOut;
245
+ const parts = [
246
+ lo.other ? `${lo.other} fact${lo.other === 1 ? "" : "s"} that aren't entries` : "",
247
+ lo.unverified ? `${lo.unverified} entr${lo.unverified === 1 ? "y" : "ies"} their verify didn't confirm` : "",
248
+ lo.bad ? `${lo.bad} line${lo.bad === 1 ? "" : "s"} that don't read as facts` : ""
249
+ ].filter(Boolean);
250
+ if (parts.length)
251
+ io.out(` Left out: ${parts.join(", ")}.`);
252
+ if (lo.redacted)
253
+ io.out(` ${lo.redacted} quote${lo.redacted === 1 ? "" : "s"} naming a secret-looking key redacted or dropped.`);
254
+ if (!f.source)
255
+ io.out(` Their folder is outside this metarepo, so where it is isn't recorded: refresh with atticus join shared refresh ${f.team} <folder>.`);
256
+ io.out(` Their entries stay theirs: never verified, corrected or reported on here. Review ${where}/ in a pull request, then atticus verify --all --write joins the calls to ${f.system} to them.`);
257
+ }
258
+ async function sharedImport(root, dir, o, io) {
259
+ if (!dir || !o.team || !o.system) {
260
+ io.err("Usage: atticus join shared import <their metarepo or facts folder> --team <id> --system <our profile's system id> [--name <team name>] [--commit <sha>] [--json]");
261
+ return 2;
262
+ }
263
+ const r = await readTheirMap(root, dir, o);
264
+ if (!r.ok) {
265
+ io.err(r.message);
266
+ return 1;
267
+ }
268
+ const where = await writeTheirMap(root, r);
269
+ if (o.json)
270
+ io.out(JSON.stringify({ written: where, map: r.file, leftOut: r.leftOut }, null, 2));
271
+ else
272
+ sayImported(r, where, io);
273
+ return 0;
274
+ }
275
+ async function sharedRefresh(root, team, o, io) {
276
+ const { maps, problems } = await readSharedMaps(root);
277
+ for (const p of problems)
278
+ io.err(p.message);
279
+ const which = team ? maps.filter((m) => m.team === team) : maps;
280
+ if (team && !which.length) {
281
+ io.err(`No shared map for ${team} in ${sharedRelOf(root)}/: import it first (atticus join shared import).`);
282
+ return 1;
283
+ }
284
+ if (o.dir && which.length !== 1) {
285
+ io.err("Give the team with a new folder: atticus join shared refresh <team> <folder>.");
286
+ return 2;
287
+ }
288
+ let failed = 0;
289
+ let noFolder = 0;
290
+ for (const m of which) {
291
+ const source = m.file.source;
292
+ if (!o.dir && !source) {
293
+ io.err(`${m.team}'s map doesn't record where it came from (its folder was outside this metarepo): give the folder, atticus join shared refresh ${m.team} <folder>.`);
294
+ noFolder++;
295
+ continue;
296
+ }
297
+ const src = o.dir ?? (isAbsolute(source) ? source : join(root, ...source.split("/")));
298
+ const r = await readTheirMap(root, src, {
299
+ team: m.team,
300
+ name: m.name,
301
+ system: m.system,
302
+ ...o.commit ? { commit: o.commit } : {},
303
+ ...o.now ? { now: o.now } : {}
304
+ });
305
+ if (!r.ok) {
306
+ io.err(`${m.team}: ${r.message}`);
307
+ failed++;
308
+ continue;
309
+ }
310
+ sayImported(r, await writeTheirMap(root, r), io);
311
+ }
312
+ if (!which.length)
313
+ io.out(`No shared maps in ${sharedRelOf(root)}/.`);
314
+ return failed ? 1 : noFolder ? 2 : 0;
315
+ }
316
+ async function sharedList(root, o, io) {
317
+ const { maps, problems } = await readSharedMaps(root);
318
+ if (o.json) {
319
+ io.out(JSON.stringify({ maps: maps.map((m) => m.file), problems }, null, 2));
320
+ return problems.length ? 1 : 0;
321
+ }
322
+ for (const p of problems)
323
+ io.err(p.message);
324
+ if (!maps.length) {
325
+ io.out(`No shared maps in ${sharedRelOf(root)}/. Import another team's: atticus join shared import <their metarepo> --team <id> --system <id>.`);
326
+ return problems.length ? 1 : 0;
327
+ }
328
+ for (const m of maps) {
329
+ const n = m.file.repos.reduce((k, r) => k + r.entries, 0);
330
+ io.out(`${m.team}: ${m.name}'s map for ${m.system}, their commit ${m.commit.slice(0, 7)}, imported ${m.file.importedAt.slice(0, 10)} from ${m.file.source ?? "a folder outside the metarepo"}: ${n} entr${n === 1 ? "y" : "ies"} in ${m.file.repos.map((r) => r.repo).join(", ")}.`);
331
+ }
332
+ return problems.length ? 1 : 0;
333
+ }
334
+
335
+ export {
336
+ headCommitOf,
337
+ readTheirMap,
338
+ sharedImport,
339
+ sharedRefresh,
340
+ sharedList
341
+ };
@@ -21,9 +21,13 @@ import {
21
21
  createWorkspace,
22
22
  ensureGitignore,
23
23
  gitUser,
24
+ inPlaceDir,
25
+ inPlacePath,
24
26
  intellijProject,
25
27
  intellijProjectPath,
26
28
  isInPlace,
29
+ legacyBranchCheckoutPath,
30
+ legacyBranchSlug,
27
31
  loadManifest,
28
32
  loadRepos,
29
33
  readChangeRepos,
@@ -36,9 +40,10 @@ import {
36
40
  worktreePath,
37
41
  writeChangeRepos,
38
42
  writeEditorWorkspaces
39
- } from "./chunk-EFHQ3TWP.js";
40
- import "./chunk-S2A7YC3Q.js";
41
- import "./chunk-D3PO4DOZ.js";
43
+ } from "./chunk-PKBHS4AA.js";
44
+ import "./chunk-Q2TECDIT.js";
45
+ import "./chunk-TUULXQRW.js";
46
+ import "./chunk-BQGDB6ZL.js";
42
47
  import "./chunk-TV45EUGM.js";
43
48
  export {
44
49
  GitError,
@@ -58,9 +63,13 @@ export {
58
63
  createWorkspace,
59
64
  ensureGitignore,
60
65
  gitUser,
66
+ inPlaceDir,
67
+ inPlacePath,
61
68
  intellijProject,
62
69
  intellijProjectPath,
63
70
  isInPlace,
71
+ legacyBranchCheckoutPath,
72
+ legacyBranchSlug,
64
73
  loadManifest,
65
74
  loadRepos,
66
75
  readChangeRepos,