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

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 (279) hide show
  1. package/dist/bin.js +12 -7
  2. package/dist/{chunk-LYBNHMVZ.js → chunk-27AJAKX7.js} +3 -3
  3. package/dist/{chunk-KXITGYLF.js → chunk-2QPJ4E4Z.js} +2 -2
  4. package/dist/{chunk-EIPTLPFC.js → chunk-2UMSHYCB.js} +24 -24
  5. package/dist/{chunk-6PPOWY5E.js → chunk-2WUTCPPJ.js} +6 -6
  6. package/dist/{chunk-VNU26RCO.js → chunk-2YSD6E6V.js} +33 -32
  7. package/dist/{chunk-P32RUW3B.js → chunk-3424TLIJ.js} +39 -7
  8. package/dist/{chunk-2MMCFP5C.js → chunk-3ASYYMOX.js} +8 -8
  9. package/dist/{chunk-PKBHS4AA.js → chunk-3EWKO457.js} +48 -17
  10. package/dist/{chunk-J3IOLXWM.js → chunk-3EX5HCZD.js} +5 -5
  11. package/dist/{chunk-BDKC6H5P.js → chunk-3MYBT62N.js} +5 -5
  12. package/dist/{chunk-ZFL7NY4F.js → chunk-3UHV76UD.js} +69 -41
  13. package/dist/{chunk-Q4K5WB2W.js → chunk-3ZA3AK2D.js} +10 -10
  14. package/dist/{chunk-O7FDLW7L.js → chunk-4ETO2FXE.js} +5 -5
  15. package/dist/{chunk-AFWUDXEM.js → chunk-4FLNCK6Q.js} +26 -11
  16. package/dist/{chunk-745DAZ4L.js → chunk-4GAB5ZOZ.js} +901 -332
  17. package/dist/{chunk-3RM4UK6W.js → chunk-4MYHETJ3.js} +18 -18
  18. package/dist/chunk-4R3TO4VL.js +94 -0
  19. package/dist/chunk-5MYE42AP.js +43 -0
  20. package/dist/chunk-5O7U67UA.js +57 -0
  21. package/dist/{chunk-Y2EQNWKV.js → chunk-5OXKCH4Z.js} +31 -31
  22. package/dist/{chunk-O45HFTFS.js → chunk-5VTIWEWP.js} +2 -2
  23. package/dist/{chunk-UNAGJYET.js → chunk-63NFFAGI.js} +12 -12
  24. package/dist/{chunk-6ZJ5A7AF.js → chunk-66AQ2JIU.js} +9 -9
  25. package/dist/chunk-6JVPBGQG.js +50 -0
  26. package/dist/{chunk-VY72R2XZ.js → chunk-6NCPLIIP.js} +124 -2
  27. package/dist/{chunk-D73UEXYW.js → chunk-6NN36LVK.js} +3 -3
  28. package/dist/{chunk-7FTTA3HD.js → chunk-6R5VHR3N.js} +5 -5
  29. package/dist/{chunk-CADWLE2T.js → chunk-6RQOINER.js} +4 -4
  30. package/dist/{chunk-WG5U3F5V.js → chunk-6RYB3EET.js} +12 -12
  31. package/dist/{chunk-RXPJMEOW.js → chunk-6SNTHK43.js} +10 -10
  32. package/dist/{chunk-ZFFYNRIO.js → chunk-6Y4FXOMI.js} +24 -22
  33. package/dist/{chunk-SQV37XO2.js → chunk-6ZFF7XSL.js} +6 -6
  34. package/dist/{chunk-JA5FI3QV.js → chunk-6ZSYLZ7O.js} +3 -3
  35. package/dist/{chunk-JENSEMXF.js → chunk-73CC73I4.js} +1 -1
  36. package/dist/{chunk-2F4CYZKJ.js → chunk-73GFVW2L.js} +5 -5
  37. package/dist/{chunk-M3NANSDZ.js → chunk-73V2OONC.js} +15 -15
  38. package/dist/{chunk-WKUJ3KPV.js → chunk-75OMRKY2.js} +4 -4
  39. package/dist/{chunk-7BR7IPOH.js → chunk-7IFTSAHP.js} +8 -8
  40. package/dist/{chunk-OWNCM4ZN.js → chunk-7K5OH45X.js} +136 -16
  41. package/dist/{chunk-VCTWPLAO.js → chunk-7NQAGYK4.js} +8 -8
  42. package/dist/{chunk-O4GXGGBX.js → chunk-7XWJ6ED2.js} +12 -12
  43. package/dist/{chunk-MFR5OPBD.js → chunk-7XYLNQFO.js} +5 -5
  44. package/dist/{chunk-GCWRWSU7.js → chunk-7YQBDE5W.js} +4 -4
  45. package/dist/{chunk-QKUJMING.js → chunk-A4JXVO5O.js} +5 -5
  46. package/dist/{chunk-LKOR5UET.js → chunk-AFBCNZRZ.js} +24 -24
  47. package/dist/{chunk-BXYMYEJ4.js → chunk-AGOLEMHK.js} +13 -14
  48. package/dist/{chunk-AVTBS4OW.js → chunk-AHFQHPFF.js} +22 -22
  49. package/dist/{chunk-NY2XSR5K.js → chunk-APDN6UOR.js} +116 -18
  50. package/dist/chunk-AQRUQNFB.js +322 -0
  51. package/dist/{chunk-5NMKONLP.js → chunk-AVMWESFZ.js} +3 -2
  52. package/dist/chunk-B4AEL3RF.js +1011 -0
  53. package/dist/{chunk-H7KM7LZE.js → chunk-BAY4K55I.js} +11 -11
  54. package/dist/{chunk-XD75VZIH.js → chunk-BFL4PO64.js} +7 -7
  55. package/dist/{chunk-34S2WGOB.js → chunk-BFMTGNAQ.js} +5 -3
  56. package/dist/{chunk-SLXZOMA6.js → chunk-BP33TBLI.js} +4 -4
  57. package/dist/{chunk-IFKEI4SA.js → chunk-BUUJ7N4O.js} +11 -11
  58. package/dist/{chunk-EGQRREQH.js → chunk-BYBU2EIB.js} +26 -15
  59. package/dist/{chunk-SFUP7TTO.js → chunk-C6ORPLCN.js} +4 -4
  60. package/dist/{chunk-IVBOQAGB.js → chunk-CA3DKO4D.js} +24 -2
  61. package/dist/{chunk-57TDNMI3.js → chunk-CFUDAW3R.js} +15 -15
  62. package/dist/{chunk-FFTRTL6R.js → chunk-CJEBRJBS.js} +4 -4
  63. package/dist/{chunk-EPCJQQWD.js → chunk-CKVBDVIW.js} +4 -4
  64. package/dist/{chunk-FPJPLKDW.js → chunk-CMB7FXHJ.js} +38 -16
  65. package/dist/{chunk-INQHESFB.js → chunk-CQ7RF4QN.js} +4 -4
  66. package/dist/{chunk-63YRMR6J.js → chunk-CS4BMJLL.js} +5 -5
  67. package/dist/{chunk-BPK5P77O.js → chunk-CT6NINGR.js} +3 -3
  68. package/dist/chunk-CXTG6AWM.js +40 -0
  69. package/dist/{chunk-CXJ6FUKN.js → chunk-CZ2ZS7AT.js} +9 -4
  70. package/dist/{chunk-S4PMJU6H.js → chunk-D6BVLTDV.js} +85 -29
  71. package/dist/{chunk-M32BLWDH.js → chunk-DCRYOMTM.js} +12 -12
  72. package/dist/{chunk-REWWDVQB.js → chunk-DHKDH464.js} +4 -4
  73. package/dist/{chunk-2LGRMVCA.js → chunk-DSHRA72L.js} +10 -10
  74. package/dist/{chunk-THDMSZ3R.js → chunk-E3PDCQRH.js} +2765 -665
  75. package/dist/chunk-EHXDB3SA.js +25 -0
  76. package/dist/{chunk-BTGPE6CR.js → chunk-EMVZIOOD.js} +7 -7
  77. package/dist/{chunk-DOBQKHIF.js → chunk-ENH6Z4TY.js} +28 -27
  78. package/dist/{chunk-LGFL54FP.js → chunk-EVTI22PQ.js} +6 -2
  79. package/dist/{chunk-7MJSQTL5.js → chunk-EXJZBL5N.js} +20 -20
  80. package/dist/{chunk-N3XIYPU3.js → chunk-FBCVC2GJ.js} +12 -12
  81. package/dist/{chunk-UWOJLHFT.js → chunk-FJVUHQPS.js} +34 -23
  82. package/dist/{chunk-7IGKHZ4Z.js → chunk-FL344WQD.js} +218 -211
  83. package/dist/{chunk-IH2XURVQ.js → chunk-FMJYKLDY.js} +5 -5
  84. package/dist/chunk-FMR2D3AZ.js +41 -0
  85. package/dist/{chunk-Q2TECDIT.js → chunk-FPBUTZI5.js} +2201 -326
  86. package/dist/{chunk-PJSJPMJI.js → chunk-FQVSLBTV.js} +3 -3
  87. package/dist/{chunk-NXJ5URP6.js → chunk-FRAEQVYN.js} +23 -22
  88. package/dist/{chunk-RLDGWLQ7.js → chunk-FRCOKUU4.js} +7 -7
  89. package/dist/{chunk-DCZWQLYT.js → chunk-FSN6JFXB.js} +18 -15
  90. package/dist/{chunk-W7VWI2YH.js → chunk-FTLYXMHA.js} +5 -5
  91. package/dist/{chunk-7GJS6DNX.js → chunk-FVYZ4Y52.js} +11 -3
  92. package/dist/{chunk-CQDGOPGH.js → chunk-G6EFXTUO.js} +2 -2
  93. package/dist/{chunk-JB5LINEM.js → chunk-G7VBMOZH.js} +3 -3
  94. package/dist/{chunk-7ASNL4Q4.js → chunk-GM4EFHUX.js} +15 -15
  95. package/dist/chunk-GOZLTLRY.js +232 -0
  96. package/dist/chunk-GPNMSX5H.js +36 -0
  97. package/dist/{chunk-BQ4SQQC6.js → chunk-GUGQSIQM.js} +9 -9
  98. package/dist/{chunk-E3ISYXO3.js → chunk-HJQVUOUL.js} +12 -12
  99. package/dist/{chunk-MFHL5URL.js → chunk-HMWJWYE2.js} +16 -16
  100. package/dist/{chunk-YYY3AZFE.js → chunk-HMZ2DRBC.js} +2 -2
  101. package/dist/{chunk-C3RY6KU6.js → chunk-HRS5O7VV.js} +500 -163
  102. package/dist/{chunk-AJQ72EBM.js → chunk-HUGQZQ2K.js} +6 -6
  103. package/dist/{chunk-AJYXNTNZ.js → chunk-ICBGVVRI.js} +10 -10
  104. package/dist/{chunk-J2JAKCIW.js → chunk-IKAW2KJU.js} +17 -17
  105. package/dist/{chunk-OUBGGKDU.js → chunk-IMZFOMVX.js} +1 -1
  106. package/dist/{chunk-LDLL7LB3.js → chunk-ISG547IS.js} +22 -22
  107. package/dist/{chunk-GZY6RUZ6.js → chunk-IYNCSYU4.js} +5 -2
  108. package/dist/{chunk-H5HBGNXU.js → chunk-J25YOUIZ.js} +4 -4
  109. package/dist/chunk-J2CDBSFP.js +69 -0
  110. package/dist/chunk-J2H7YG3K.js +34 -0
  111. package/dist/{chunk-SFSPGFCV.js → chunk-J32IPTVQ.js} +20 -20
  112. package/dist/{chunk-BEVTIBRH.js → chunk-J4CPHJUL.js} +5 -5
  113. package/dist/{chunk-F3P7N7SF.js → chunk-JFFKHIM6.js} +1 -1
  114. package/dist/{chunk-RUGXBPWI.js → chunk-JMEWJPF2.js} +8 -8
  115. package/dist/{chunk-WERM6KPJ.js → chunk-JSP73CDW.js} +9 -4
  116. package/dist/{chunk-66PPNOON.js → chunk-JXAKYP45.js} +26 -25
  117. package/dist/{chunk-7JITZFJC.js → chunk-K4OXYSGS.js} +4 -4
  118. package/dist/{chunk-EHA7RMZ3.js → chunk-K4RNVDR4.js} +4 -4
  119. package/dist/{chunk-R44CYFPV.js → chunk-K757G7AD.js} +12 -12
  120. package/dist/{chunk-FUJM6RTF.js → chunk-KDJ2YKAZ.js} +7 -7
  121. package/dist/{chunk-QAXW2N3B.js → chunk-KT6Q44CA.js} +28 -30
  122. package/dist/{chunk-EBL2R3YG.js → chunk-KTNOBTV5.js} +4 -4
  123. package/dist/chunk-KVVNAUIG.js +66 -0
  124. package/dist/{chunk-X5F3Q5LV.js → chunk-L3RCQWVQ.js} +21 -18
  125. package/dist/{chunk-7IOWA5D5.js → chunk-LHH5KG5A.js} +13 -3
  126. package/dist/{chunk-TNR75OXT.js → chunk-LM45GMMB.js} +11 -8
  127. package/dist/{chunk-FSMSFDLD.js → chunk-LO6Y7OTG.js} +4 -4
  128. package/dist/{chunk-WF7B67YE.js → chunk-LPDTDFKA.js} +10 -10
  129. package/dist/{chunk-SU74NDMQ.js → chunk-LSHSDC6S.js} +17 -17
  130. package/dist/{chunk-LJXMYKZJ.js → chunk-LZVHP7CT.js} +5 -5
  131. package/dist/{chunk-3NWDLGG6.js → chunk-M3EOFSPY.js} +26 -26
  132. package/dist/chunk-MBYYQHPM.js +31 -0
  133. package/dist/{chunk-KQGURXFU.js → chunk-MEJ63LDG.js} +32 -11
  134. package/dist/{chunk-FZOJFH7Q.js → chunk-MH2ZK67S.js} +11 -11
  135. package/dist/{chunk-R7NYHMUU.js → chunk-MLGWSBF4.js} +5108 -3895
  136. package/dist/{chunk-WJF2CS6M.js → chunk-MNIPPBCT.js} +5 -5
  137. package/dist/{chunk-XERYFDB5.js → chunk-MWF4PXQR.js} +32 -31
  138. package/dist/{chunk-BO4KX37X.js → chunk-N2YX6JMY.js} +18 -18
  139. package/dist/{chunk-GUX3PTYM.js → chunk-NAPHHWW2.js} +3 -3
  140. package/dist/{chunk-UUU4CLJG.js → chunk-NC755EKE.js} +5 -1
  141. package/dist/{chunk-WMTRHUI5.js → chunk-NCLZJCXA.js} +21 -21
  142. package/dist/chunk-NKJDO4UC.js +39 -0
  143. package/dist/chunk-NOYOFYAJ.js +59 -0
  144. package/dist/{chunk-ZQ3ON2VQ.js → chunk-NROSSWMS.js} +5 -5
  145. package/dist/{chunk-UWMJKX5U.js → chunk-OBUB3H72.js} +12 -12
  146. package/dist/{chunk-VW62D6QE.js → chunk-OCQWSFJD.js} +7 -7
  147. package/dist/{chunk-UPOY4YSQ.js → chunk-OK6JGLE7.js} +12 -12
  148. package/dist/{chunk-TYQBFTBR.js → chunk-OPWGPQ2N.js} +5 -5
  149. package/dist/{chunk-PPD7HTDP.js → chunk-OSYHGGL3.js} +18 -18
  150. package/dist/chunk-OXXZZ7HQ.js +50 -0
  151. package/dist/{chunk-5BD2KYLE.js → chunk-P22EPEBR.js} +16 -16
  152. package/dist/chunk-P4YUT7W7.js +45 -0
  153. package/dist/chunk-PCCLVIDP.js +217 -0
  154. package/dist/{chunk-CMDXGQTS.js → chunk-PFULMC2D.js} +21 -20
  155. package/dist/chunk-PGAMTKBI.js +16 -0
  156. package/dist/{chunk-6MUGR4LS.js → chunk-PNSSE7JM.js} +93 -18
  157. package/dist/{chunk-HYU5VLGA.js → chunk-POEMZECG.js} +1 -1
  158. package/dist/{chunk-UCROWG2D.js → chunk-POSDBRKV.js} +23 -23
  159. package/dist/{chunk-KDNTAPLX.js → chunk-POSZFDSQ.js} +3 -3
  160. package/dist/{chunk-3NFFJL5D.js → chunk-PQQKZPBU.js} +1 -1
  161. package/dist/{chunk-4EURQWQD.js → chunk-PRMUQUWN.js} +10 -10
  162. package/dist/{chunk-MO6P2JZH.js → chunk-PT4USJNN.js} +7 -7
  163. package/dist/{chunk-BTY3HZBO.js → chunk-PWXB5GBB.js} +16 -16
  164. package/dist/{chunk-S7FCV7S5.js → chunk-PXW2RZGQ.js} +1 -1
  165. package/dist/{chunk-NDCF4R6S.js → chunk-Q367UGYN.js} +3 -3
  166. package/dist/{chunk-IUPG3UKI.js → chunk-QAVRDONY.js} +187 -123
  167. package/dist/{chunk-E6ZIEVOI.js → chunk-QBMLBCQH.js} +12 -12
  168. package/dist/{chunk-VZALIKIF.js → chunk-QLQIFJP3.js} +12 -12
  169. package/dist/{chunk-EMRIQUND.js → chunk-QLWDIKO4.js} +82 -27
  170. package/dist/{chunk-PMUAJGLI.js → chunk-QVVGJVVX.js} +16 -16
  171. package/dist/{chunk-LNBQOP7D.js → chunk-QX4MAMUG.js} +21 -21
  172. package/dist/{chunk-X3WY6MN3.js → chunk-QZWRPQTI.js} +6 -6
  173. package/dist/{chunk-ISUAAMGS.js → chunk-RCG5IAAT.js} +18 -11
  174. package/dist/chunk-RGZFOKVO.js +106 -0
  175. package/dist/{chunk-O5PXQR67.js → chunk-RLZFL76D.js} +4 -4
  176. package/dist/{chunk-UF4AZOZB.js → chunk-RPQITJNX.js} +5 -5
  177. package/dist/{chunk-NR2UJWOC.js → chunk-RQQYEDAC.js} +8 -8
  178. package/dist/chunk-RQSLHZ7T.js +36 -0
  179. package/dist/{chunk-UPS2DGFC.js → chunk-RRQUQAXP.js} +1 -1
  180. package/dist/chunk-RYQ4JCFT.js +65 -0
  181. package/dist/{chunk-JLUCKAEL.js → chunk-S35DIFJH.js} +17 -17
  182. package/dist/{chunk-UGUP3ZM6.js → chunk-S5GSQPIN.js} +9 -9
  183. package/dist/chunk-S5XFO4GY.js +42 -0
  184. package/dist/chunk-S6LW2RRC.js +25 -0
  185. package/dist/{chunk-W62H2XSO.js → chunk-S6W3D5GS.js} +23 -23
  186. package/dist/{chunk-CX4RZ2KS.js → chunk-S7GUZ45I.js} +3 -3
  187. package/dist/{chunk-L27SV425.js → chunk-SCT4CEF7.js} +20 -20
  188. package/dist/{chunk-VTZMAJ3W.js → chunk-SK5RVP7X.js} +8 -8
  189. package/dist/{chunk-JAVI7JSP.js → chunk-SRTUETF5.js} +23 -22
  190. package/dist/{chunk-MZCGSXVR.js → chunk-SVGGMBJI.js} +13 -13
  191. package/dist/{chunk-SDKLKB6I.js → chunk-SWNKO4C4.js} +32 -25
  192. package/dist/chunk-SYP56T2D.js +65 -0
  193. package/dist/{chunk-5SJZW52K.js → chunk-T33TPFGI.js} +22 -22
  194. package/dist/{chunk-ZJXLNDH4.js → chunk-T3FNG2H2.js} +12 -12
  195. package/dist/{chunk-BIGDQDHD.js → chunk-T6MAWL5P.js} +4 -4
  196. package/dist/{chunk-RGERPOIV.js → chunk-T6MX7WXM.js} +14 -11
  197. package/dist/{chunk-QFWA2DPH.js → chunk-T7IIEDA3.js} +5 -5
  198. package/dist/{chunk-Z5IA3WDR.js → chunk-TABH4RBZ.js} +156 -79
  199. package/dist/{chunk-6ZGLAACW.js → chunk-TDSCKP3V.js} +2 -2
  200. package/dist/{chunk-G6X77UJZ.js → chunk-TMFMXQEN.js} +21 -21
  201. package/dist/{chunk-P2V7QW4D.js → chunk-TNCF26JK.js} +11 -11
  202. package/dist/{chunk-2GF7OLF3.js → chunk-TUM52SOE.js} +19 -15
  203. package/dist/{chunk-PBPBMP2B.js → chunk-TV56QLLV.js} +3 -3
  204. package/dist/{chunk-SYV5LHML.js → chunk-TVQSXWWV.js} +33 -33
  205. package/dist/{chunk-VBTP56CE.js → chunk-TXNSQ24G.js} +9 -8
  206. package/dist/{chunk-ZX57KSEQ.js → chunk-UALE35WK.js} +3 -3
  207. package/dist/{chunk-42SIDKEU.js → chunk-UJF7PIMP.js} +26 -26
  208. package/dist/{chunk-ONUPY3H6.js → chunk-UMCDODBX.js} +24 -24
  209. package/dist/{chunk-JJF6HALY.js → chunk-UTPIFH4I.js} +3 -3
  210. package/dist/{chunk-O7XLYEFA.js → chunk-V7PEHQZU.js} +54 -22
  211. package/dist/{chunk-XI2LCCYQ.js → chunk-VJFXQISZ.js} +8 -8
  212. package/dist/{chunk-AFZ3QA6W.js → chunk-VJZI6KFP.js} +22 -22
  213. package/dist/{chunk-Q6DFNVRJ.js → chunk-VK7WYA64.js} +12 -12
  214. package/dist/{chunk-6OJQOPUN.js → chunk-VKTXFFOZ.js} +2 -2
  215. package/dist/{chunk-MG4ZL5RW.js → chunk-VNIN7Q6Q.js} +16 -16
  216. package/dist/{chunk-ZQXZ2SES.js → chunk-VRO7KSGL.js} +21 -21
  217. package/dist/{chunk-OHVTTOPS.js → chunk-W3AZE7LN.js} +3 -3
  218. package/dist/chunk-W4TNCEI4.js +44 -0
  219. package/dist/{chunk-X4CXA2IL.js → chunk-W5VYJWOG.js} +22 -22
  220. package/dist/{chunk-7DOR27HL.js → chunk-WF3RCZNO.js} +6 -6
  221. package/dist/{chunk-LGBMTVNT.js → chunk-WOMQQWTO.js} +5 -5
  222. package/dist/{chunk-2Q56PQPS.js → chunk-WXVTYLVH.js} +2 -2
  223. package/dist/{chunk-UOR2DTHH.js → chunk-WYGTSZHR.js} +16 -14
  224. package/dist/{chunk-IDKCWSM5.js → chunk-WZYM5M4U.js} +388 -104
  225. package/dist/{chunk-U76OWS3Q.js → chunk-X5ZHDSLU.js} +23 -23
  226. package/dist/chunk-X7XVMYIL.js +5 -0
  227. package/dist/{chunk-2IIMFOPM.js → chunk-X7ZKNSK4.js} +18 -18
  228. package/dist/{chunk-UF4GLFBX.js → chunk-XAPXKFIS.js} +22 -22
  229. package/dist/{chunk-LQJPN536.js → chunk-XF6TSZW2.js} +2 -2
  230. package/dist/{chunk-T6DQR5TV.js → chunk-XFDDJQT7.js} +12 -12
  231. package/dist/{chunk-OHNCWBKF.js → chunk-XGO74QWR.js} +4 -4
  232. package/dist/chunk-XLZAAAPX.js +43 -0
  233. package/dist/{chunk-2RLKFUUL.js → chunk-XMUWPA56.js} +23 -23
  234. package/dist/{chunk-JRBFANFE.js → chunk-XNFM6WUK.js} +15 -15
  235. package/dist/{chunk-LO6P2VYG.js → chunk-XOMEQVLK.js} +2 -2
  236. package/dist/{chunk-YHCMZC2J.js → chunk-Y2H7X3VI.js} +7 -7
  237. package/dist/{chunk-ZZK56BLP.js → chunk-Y5IE6YKD.js} +4 -4
  238. package/dist/{chunk-KFAVQZSX.js → chunk-YD3KTW4H.js} +12 -12
  239. package/dist/{chunk-LZ7NUC62.js → chunk-YDCOZOER.js} +18 -18
  240. package/dist/{chunk-LFGTYX5U.js → chunk-YERAAEO4.js} +17 -17
  241. package/dist/{chunk-BHT7QK4G.js → chunk-YHMPDIRG.js} +4 -4
  242. package/dist/{chunk-ZJFRMSJT.js → chunk-Z2D4P3R3.js} +12 -12
  243. package/dist/{chunk-O66DM6DJ.js → chunk-Z3H27OMV.js} +4 -4
  244. package/dist/{chunk-7UOMVMFG.js → chunk-Z3RAFU5B.js} +15 -15
  245. package/dist/{chunk-FFLNS6VP.js → chunk-ZENHDXRZ.js} +21 -17
  246. package/dist/{chunk-23XVSEV5.js → chunk-ZFHFC74B.js} +18 -18
  247. package/dist/{chunk-53T4O55J.js → chunk-ZJGCGKA4.js} +3 -3
  248. package/dist/{chunk-WXFLMQSR.js → chunk-ZLQEQR3D.js} +5 -5
  249. package/dist/{chunk-HNM2YQT2.js → chunk-ZNHQGG7J.js} +7 -7
  250. package/dist/{chunk-2Q5EDGEO.js → chunk-ZNTTW4IT.js} +5 -5
  251. package/dist/{chunk-ZQ7SKESZ.js → chunk-ZR6J4QFQ.js} +7 -7
  252. package/dist/{chunk-PAQ2AS5E.js → chunk-ZSNOILL5.js} +1 -1
  253. package/dist/files.json +563 -511
  254. package/dist/packages/sdk/npm/index.js +1043 -43
  255. package/dist/packages/ui/dist/assets/{elk-api-CIf-0gz5.js → elk-api-DxfAMOJq.js} +2 -2
  256. package/dist/packages/ui/dist/assets/index-Buit9TfP.js +62 -0
  257. package/dist/packages/ui/dist/assets/index-Jyc9dFeZ.css +1 -0
  258. package/dist/packages/ui/dist/index.html +2 -2
  259. package/package.json +4 -4
  260. package/dist/chunk-2SKB4O2E.js +0 -59
  261. package/dist/chunk-4U276ICE.js +0 -39
  262. package/dist/chunk-6H3Z5JHH.js +0 -64
  263. package/dist/chunk-C4R4JLHE.js +0 -40
  264. package/dist/chunk-CBGGOQWU.js +0 -82
  265. package/dist/chunk-DLOBCJL6.js +0 -48
  266. package/dist/chunk-GIW4ZVDB.js +0 -39
  267. package/dist/chunk-IP74LCOQ.js +0 -57
  268. package/dist/chunk-IPHHDDC6.js +0 -45
  269. package/dist/chunk-KJXD4PNL.js +0 -50
  270. package/dist/chunk-KN5BXMWN.js +0 -44
  271. package/dist/chunk-OMI6FPPN.js +0 -43
  272. package/dist/chunk-OTLDSZDV.js +0 -69
  273. package/dist/chunk-PSOFBQWB.js +0 -42
  274. package/dist/chunk-T4YPZIQN.js +0 -36
  275. package/dist/chunk-TUULXQRW.js +0 -420
  276. package/dist/chunk-WNKPRSGI.js +0 -36
  277. package/dist/packages/ui/dist/assets/index-CoK_Dl0D.js +0 -47
  278. package/dist/packages/ui/dist/assets/index-Dw20IRhQ.css +0 -1
  279. package/dist/{chunk-24XLDU72.js → chunk-PXMV2LLY.js} +3 -3
@@ -10,17 +10,17 @@ import {
10
10
  parseHeader,
11
11
  renderAssistantFiles,
12
12
  writeAssistantFiles
13
- } from "./chunk-BEVTIBRH.js";
13
+ } from "./chunk-J4CPHJUL.js";
14
14
  import {
15
15
  BUILT_IN_CHECKS,
16
16
  STARTER_REVIEW_PATH,
17
17
  starterReviewText
18
- } from "./chunk-S4PMJU6H.js";
18
+ } from "./chunk-D6BVLTDV.js";
19
19
  import {
20
20
  changeFootprint,
21
21
  changeStore,
22
22
  loadChangeContext
23
- } from "./chunk-IDKCWSM5.js";
23
+ } from "./chunk-WZYM5M4U.js";
24
24
  import {
25
25
  ORG_FLOW,
26
26
  createOpenSpec,
@@ -28,23 +28,24 @@ import {
28
28
  storeIdOf,
29
29
  writeOrgFlowSchema,
30
30
  writeStoreMarker
31
- } from "./chunk-UUU4CLJG.js";
31
+ } from "./chunk-NC755EKE.js";
32
32
  import {
33
33
  readCatalog
34
- } from "./chunk-J2JAKCIW.js";
34
+ } from "./chunk-IKAW2KJU.js";
35
35
  import {
36
36
  componentExtractor
37
- } from "./chunk-CQDGOPGH.js";
37
+ } from "./chunk-G6EFXTUO.js";
38
38
  import {
39
39
  DEFAULT_IGNORES,
40
40
  fsRepo,
41
41
  memoryRepo,
42
42
  runExtractor
43
- } from "./chunk-3NFFJL5D.js";
43
+ } from "./chunk-PQQKZPBU.js";
44
44
  import {
45
+ cloneUrlKey,
45
46
  createGit,
46
47
  ensureGitignore
47
- } from "./chunk-PKBHS4AA.js";
48
+ } from "./chunk-3EWKO457.js";
48
49
  import {
49
50
  ChangeLifecycle,
50
51
  ChecklistPack,
@@ -59,11 +60,14 @@ import {
59
60
  SOURCES_SCHEMA_VERSION,
60
61
  SkillMeta,
61
62
  Sources,
63
+ WORKSPACE_SCHEMA_VERSION,
64
+ eolOf,
65
+ inEol,
62
66
  loadOrgPack
63
- } from "./chunk-Q2TECDIT.js";
67
+ } from "./chunk-FPBUTZI5.js";
64
68
  import {
65
69
  LOCAL_ONLY
66
- } from "./chunk-TUULXQRW.js";
70
+ } from "./chunk-B4AEL3RF.js";
67
71
  import {
68
72
  require_dist
69
73
  } from "./chunk-BQGDB6ZL.js";
@@ -407,7 +411,7 @@ async function detectRepoType(repo, o = {}) {
407
411
 
408
412
  // packages/adopt/dist/discover.js
409
413
  var import_yaml2 = __toESM(require_dist(), 1);
410
- import { readdir as readdir2, realpath } from "node:fs/promises";
414
+ import { readdir as readdir2, readFile as readFile2, realpath } from "node:fs/promises";
411
415
  import { basename, isAbsolute, join as join3, relative as relative2, resolve } from "node:path";
412
416
  var UNASSIGNED = "unassigned";
413
417
  var MockRepoListing = class {
@@ -430,12 +434,15 @@ var MockRepoListing = class {
430
434
  throw new Error(`no repo ${repo.name} on the mock Git host`);
431
435
  }
432
436
  };
433
- async function originUrl(dir) {
434
- const cfg = await readText(join3(dir, ".git", "config"));
435
- if (!cfg)
437
+ function withoutCredentials(url) {
438
+ return url.replace(/^(https?:\/\/)[^/@]*@/i, "$1");
439
+ }
440
+ async function originUrl(dir, git) {
441
+ if (!await exists(join3(dir, ".git")))
436
442
  return void 0;
437
- const m = /\[remote "origin"\][^[]*?url\s*=\s*(\S+)/.exec(cfg);
438
- return m?.[1]?.replace(/^([a-z][a-z0-9+.-]*:\/\/)[^/@]+@/i, "$1");
443
+ const asked = await isDir(join3(dir, ".git")) ? ["config", "--file", join3(dir, ".git", "config"), "--get", "remote.origin.url"] : ["config", "--get", "remote.origin.url"];
444
+ const url = await git(asked, dir).then((r) => r.stdout.replace(/\r?\n$/, ""), () => "");
445
+ return url ? withoutCredentials(url) : void 0;
439
446
  }
440
447
  async function headBranch(dir) {
441
448
  const head = await readText(join3(dir, ".git", "HEAD"));
@@ -600,27 +607,41 @@ function questionsFor(entry, det) {
600
607
  return q;
601
608
  }
602
609
  async function existingManifest(path) {
603
- const text2 = await readText(path);
610
+ const text2 = await readFile2(path, "utf8").catch(() => void 0);
604
611
  if (text2 === void 0)
605
612
  return void 0;
606
613
  try {
607
614
  const r = RepoManifest.safeParse((0, import_yaml2.parse)(text2));
608
- return r.success ? r.data.repos : null;
615
+ return { text: text2, repos: r.success ? r.data.repos : null };
609
616
  } catch {
610
- return null;
617
+ return { text: text2, repos: null };
611
618
  }
612
619
  }
620
+ var unset = (k, v) => v === void 0 || Array.isArray(v) && v.length === 0 || k === "archived" && v === false;
621
+ function entryOut(r) {
622
+ const out = {};
623
+ for (const [k, v] of Object.entries(r)) {
624
+ if (unset(k, v))
625
+ continue;
626
+ out[k] = k === "modules" ? v.map((m) => Object.fromEntries(Object.entries(m).filter(([mk, mv]) => !unset(mk, mv)))) : v;
627
+ }
628
+ return out;
629
+ }
630
+ function sameRepo(a, b) {
631
+ const ka = cloneUrlKey(a.url);
632
+ const kb = cloneUrlKey(b.url);
633
+ return ka !== void 0 && kb !== void 0 ? ka === kb : a.url.trim() === b.url.trim();
634
+ }
613
635
  var HEADER = "# Proposed by atticus repos discover. Types come from each repo's files; owners marked\n# `unassigned` and missing systems are questions (see QUESTIONS.md). Review before use.\n";
614
636
  async function reposDiscover(root, source, o = {}, paths) {
615
637
  const p = paths ?? await resolveMetarepo(root);
638
+ const git = o.git ?? createGit({ timeoutMs: 15e3 });
616
639
  let platform = o.platform;
617
640
  if (!platform) {
618
- try {
619
- const profiles = (await readdir2(join3(p.orgPackDir, "profiles"), { withFileTypes: true })).filter((d) => d.isDirectory()).map((d) => d.name);
620
- platform = profiles.length === 1 ? profiles[0] : "default";
621
- } catch {
622
- platform = "default";
623
- }
641
+ const profiles = (await readdir2(join3(p.orgPackDir, "profiles"), { withFileTypes: true }).catch(() => [])).filter((d) => d.isDirectory()).map((d) => d.name).sort();
642
+ if (profiles.length > 1)
643
+ throw new AdoptError("usage", `There are ${profiles.length} platform profiles (${profiles.join(", ")}): say which the repos belong to with --platform.`);
644
+ platform = profiles[0] ?? "default";
624
645
  }
625
646
  const found = [];
626
647
  let skipped = [];
@@ -639,7 +660,7 @@ async function reposDiscover(root, source, o = {}, paths) {
639
660
  const det = await detectRepoType(repo);
640
661
  const rel = toPosix(relative2(root, dir));
641
662
  const inside = !rel.startsWith("..") && !isAbsolute(rel);
642
- const url = o.inPlace && inside ? rel === "" ? "." : `./${rel}` : await originUrl(dir) ?? toPosix(resolve(dir));
663
+ const url = o.inPlace && inside ? rel === "" ? "." : `./${rel}` : await originUrl(dir, git) ?? toPosix(resolve(dir));
643
664
  const entry = {
644
665
  id: uniqueId(dir === source.dir ? basename(resolve(dir)) : basename(dir)),
645
666
  url,
@@ -679,45 +700,67 @@ async function reposDiscover(root, source, o = {}, paths) {
679
700
  });
680
701
  }
681
702
  }
682
- const questions = found.flatMap((f) => questionsFor(f.entry, f.detection));
683
703
  const manifestPath = join3(p.orgPackDir, "profiles", platform, "repos.manifest.yaml");
684
704
  const current = await existingManifest(manifestPath);
685
- const result = { platform, repos: found, skipped, questions, wrote: "nothing" };
705
+ const kept = current?.repos ?? [];
706
+ const renamed = [];
707
+ const taken = /* @__PURE__ */ new Set([...kept.map((r) => r.id), ...found.map((f) => f.entry.id)]);
708
+ const added = [];
709
+ for (const f of found) {
710
+ if (kept.some((k) => sameRepo(k, f.entry)))
711
+ continue;
712
+ if (kept.some((k) => k.id === f.entry.id)) {
713
+ let id = f.entry.id;
714
+ for (let n = 2; taken.has(id); n++)
715
+ id = `${f.entry.id}-${n}`;
716
+ taken.add(id);
717
+ renamed.push({
718
+ from: f.entry.id,
719
+ to: id,
720
+ why: `the manifest lists ${f.entry.id} already, with another clone URL`
721
+ });
722
+ f.entry = { ...f.entry, id };
723
+ }
724
+ added.push(f);
725
+ }
726
+ const questions = found.flatMap((f) => questionsFor(f.entry, f.detection));
727
+ const result = {
728
+ platform,
729
+ repos: found,
730
+ skipped,
731
+ questions,
732
+ renamed,
733
+ wrote: "nothing"
734
+ };
686
735
  if (o.dryRun)
687
736
  return result;
688
- const doc = (repos) => (0, import_yaml2.stringify)({
689
- schemaVersion: 1,
690
- platform,
691
- repos: repos.map((r) => ({
692
- id: r.id,
693
- url: r.url,
694
- defaultBranch: r.defaultBranch,
695
- ...r.branches.length ? { branches: r.branches } : {},
696
- type: r.type,
697
- owner: r.owner,
698
- ...r.system ? { system: r.system } : {},
699
- ...r.component ? { component: r.component } : {},
700
- ...r.archived ? { archived: true } : {},
701
- ...r.modules.length ? {
702
- modules: r.modules.map((m) => ({
703
- path: m.path,
704
- component: m.component,
705
- ...m.hosts.length ? { hosts: m.hosts } : {}
706
- }))
707
- } : {}
708
- }))
709
- }, { lineWidth: 0 });
737
+ const fresh = (repos) => (0, import_yaml2.stringify)({ schemaVersion: WORKSPACE_SCHEMA_VERSION, platform, repos: repos.map(entryOut) }, { lineWidth: 0 });
738
+ const appended = (text2, repos) => {
739
+ const doc = (0, import_yaml2.parseDocument)(text2.replace(/\r\n/g, "\n"));
740
+ let list = doc.get("repos");
741
+ if (!(0, import_yaml2.isSeq)(list)) {
742
+ doc.set("repos", doc.createNode([]));
743
+ list = doc.get("repos");
744
+ }
745
+ if (!(0, import_yaml2.isSeq)(list))
746
+ return fresh(repos);
747
+ if (!list.items.length)
748
+ list.flow = false;
749
+ for (const r of repos)
750
+ list.add(doc.createNode(entryOut(r)));
751
+ return inEol(doc.toString({ lineWidth: 0, flowCollectionPadding: /\[ \S/.test(text2) }), eolOf(text2));
752
+ };
710
753
  const proposalDir = join3(p.proposalsDir, "repos", platform);
711
- if (current === void 0 || current !== null && current.length === 0) {
712
- await writeNew(manifestPath, HEADER + doc(found.map((f) => f.entry)), false);
754
+ if (current === void 0 || current.repos !== null && current.repos.length === 0) {
755
+ const entries = found.map((f) => f.entry);
756
+ await writeNew(manifestPath, current ? inEol((current.text.includes(HEADER) ? "" : HEADER) + appended(current.text, entries), eolOf(current.text)) : HEADER + fresh(entries), false);
713
757
  result.wrote = "manifest";
714
758
  result.file = toPosix(relative2(root, manifestPath));
759
+ await writeNew(join3(p.orgPackDir, "profiles", platform, "profile.yaml"), (0, import_yaml2.stringify)({ schemaVersion: 1, platform, name: platform, systems: [] }, { lineWidth: 0 }));
715
760
  } else {
716
- const kept = current ?? [];
717
- const have = new Set(kept.flatMap((r) => [r.id, r.url]));
718
- const added = found.filter((f) => !have.has(f.entry.id) && !have.has(f.entry.url));
719
761
  const file = join3(proposalDir, "repos.manifest.yaml");
720
- await writeNew(file, HEADER + doc([...kept, ...added.map((a) => a.entry)]), false);
762
+ const entries = added.map((a) => a.entry);
763
+ await writeNew(file, current.repos === null ? HEADER + fresh(entries) : inEol(HEADER + appended(current.text, entries), eolOf(current.text)), false);
721
764
  result.wrote = "proposal";
722
765
  result.file = toPosix(relative2(root, file));
723
766
  }
@@ -764,6 +807,18 @@ var FOLDER_READMES = [
764
807
  "# Service-desk templates\n\nOne YAML file per request template. `atticus templates draft` proposes them from wikis and past tickets.\n"
765
808
  ]
766
809
  ];
810
+ function runtimeText(gitHost) {
811
+ if (!gitHost)
812
+ return yaml(DEFAULT_RUNTIME, DEFAULT_HEADER);
813
+ const doc = new import_yaml3.Document(DEFAULT_RUNTIME);
814
+ const host = gitHost.metarepo ? doc.createNode({ type: "manual", settings: { metarepo: gitHost.metarepo } }) : doc.createNode("manual");
815
+ doc.setIn(["adapters", "gitHost"], host);
816
+ const adapters = doc.get("adapters");
817
+ if ((0, import_yaml3.isMap)(adapters))
818
+ adapters.flow = false;
819
+ return `# ${DEFAULT_HEADER}
820
+ ${doc.toString({ lineWidth: 0 })}`;
821
+ }
767
822
  async function writeStartingPack(dir, p) {
768
823
  const files = [
769
824
  [
@@ -782,13 +837,14 @@ async function writeStartingPack(dir, p) {
782
837
  ],
783
838
  [
784
839
  `profiles/${p.platform}/repos.manifest.yaml`,
785
- yaml({ schemaVersion: 1, platform: p.platform, repos: [] })
840
+ // Round 50: at the current version, so a new metarepo has no manifest step to upgrade.
841
+ yaml({ schemaVersion: WORKSPACE_SCHEMA_VERSION, platform: p.platform, repos: [] })
786
842
  ],
787
843
  ["checklists/README.md", p.defaults ? STARTER_CHECKLISTS_README : CHECKLISTS_README],
788
844
  ...FOLDER_READMES
789
845
  ];
790
846
  if (p.defaults)
791
- files.push([STARTER_REVIEW_PATH, await starterReviewText()], ["change-types.yaml", yaml(DEFAULT_CHANGE_TYPES, DEFAULT_HEADER)], ["gates.yaml", yaml(DEFAULT_GATES, DEFAULT_HEADER)], ["runtime.yaml", yaml(DEFAULT_RUNTIME, DEFAULT_HEADER)], ["test-strategy.yaml", yaml(DEFAULT_TEST_STRATEGY, DEFAULT_HEADER)]);
847
+ files.push([STARTER_REVIEW_PATH, await starterReviewText()], ["change-types.yaml", yaml(DEFAULT_CHANGE_TYPES, DEFAULT_HEADER)], ["gates.yaml", yaml(DEFAULT_GATES, DEFAULT_HEADER)], ["runtime.yaml", runtimeText(p.gitHost)], ["test-strategy.yaml", yaml(DEFAULT_TEST_STRATEGY, DEFAULT_HEADER)]);
792
848
  const written = [];
793
849
  for (const [rel, text2] of files)
794
850
  if (await writeNew(join4(dir, ...rel.split("/")), text2))
@@ -797,9 +853,25 @@ async function writeStartingPack(dir, p) {
797
853
  }
798
854
 
799
855
  // packages/adopt/dist/init.js
800
- import { mkdir as mkdir2, readFile as readFile2, writeFile as writeFile2 } from "node:fs/promises";
856
+ import { mkdir as mkdir2, readFile as readFile3, writeFile as writeFile2 } from "node:fs/promises";
801
857
  import { dirname as dirname2, join as join5, resolve as resolve2 } from "node:path";
802
858
  var ATTICUS_FOLDER_IGNORE = ["/.atticus/*", "!/.atticus/metarepo.yaml"];
859
+ function metarepoIdFromUrl(url) {
860
+ const u = url.trim().replace(/^([a-z][a-z0-9+.-]*:\/\/[^?#]*)[?#].*$/i, "$1").replace(/[/\\]+$/, "").replace(/\.git$/i, "");
861
+ if (!u)
862
+ return void 0;
863
+ const underGit = /\/_git\/([^/]+)/.exec(u);
864
+ if (underGit)
865
+ return decodeURIComponent(underGit[1]);
866
+ const scheme = /^[a-z][a-z0-9+.-]*:\/\/[^/]+\/(.+)$/i.exec(u);
867
+ const scp = /^[^/\\@\s]+@[^:/\\]+:(.+)$/.exec(u);
868
+ const path = scheme?.[1] ?? scp?.[1];
869
+ if (path) {
870
+ const parts = path.split("/").filter(Boolean).map(decodeURIComponent);
871
+ return parts.slice(-2).join("/") || void 0;
872
+ }
873
+ return u.split(/[/\\]/).pop() || void 0;
874
+ }
803
875
  async function insideRepo(dir) {
804
876
  for (let d = resolve2(dir); ; d = dirname2(d)) {
805
877
  if (await exists(join5(d, ".git")))
@@ -866,12 +938,14 @@ async function init(dir, o) {
866
938
  defaults: false
867
939
  });
868
940
  } else {
941
+ const origin = o.metarepo ?? (gitState !== "inside" ? void 0 : await (o.git ?? createGit())(["config", "--get", "remote.origin.url"], dir).then((r) => metarepoIdFromUrl(r.stdout), () => void 0));
869
942
  await writeStartingPack(orgPack, {
870
943
  name: o.name,
871
944
  platform: o.platform,
872
945
  owner,
873
946
  sources: { schemaVersion: SOURCES_SCHEMA_VERSION },
874
- defaults: true
947
+ defaults: true,
948
+ gitHost: origin ? { metarepo: origin } : {}
875
949
  });
876
950
  }
877
951
  let mode = "folders";
@@ -908,11 +982,10 @@ async function init(dir, o) {
908
982
  await writeNew(join5(dir, "README.md"), README(o.name, o.platform));
909
983
  await ensureGitignore(dir);
910
984
  const gi = join5(dir, ".gitignore");
911
- const text2 = await readFile2(gi, "utf8");
912
- if (!/^\/?\.atticus(\/\*?)?$/m.test(text2))
913
- await writeFile2(gi, `${text2.endsWith("\n") ? text2 : `${text2}
914
- `}${ATTICUS_FOLDER_IGNORE.join("\n")}
915
- `, "utf8");
985
+ const text2 = await readFile3(gi, "utf8");
986
+ const eol = text2.includes("\r\n") ? "\r\n" : "\n";
987
+ if (!/^\/?\.atticus(\/\*?)?\r?$/m.test(text2))
988
+ await writeFile2(gi, `${text2.endsWith("\n") ? text2 : `${text2}${eol}`}${ATTICUS_FOLDER_IGNORE.join(eol)}${eol}`, "utf8");
916
989
  const op = await loadOrgPack(orgPack);
917
990
  let assistantFiles = 0;
918
991
  try {
@@ -1013,6 +1086,8 @@ var GITIGNORE = `# Atticus local state in an adopted repo: never committed.
1013
1086
  ${STATE_FOLDERS.map((f) => `/${f}/`).join("\n")}
1014
1087
  /executors.yaml
1015
1088
  /inputs/inbox/
1089
+ # This machine's own files: never committed.
1090
+ ${LOCAL_ONLY.join("\n")}
1016
1091
  `;
1017
1092
  var README2 = `# .atticus
1018
1093
 
@@ -1105,7 +1180,7 @@ async function adopt(path, o = {}) {
1105
1180
  }
1106
1181
 
1107
1182
  // packages/adopt/dist/unadopt.js
1108
- import { readFile as readFile3, rm, rmdir, writeFile as writeFile4 } from "node:fs/promises";
1183
+ import { readFile as readFile4, rm, rmdir, writeFile as writeFile4 } from "node:fs/promises";
1109
1184
  import { join as join7, resolve as resolve4 } from "node:path";
1110
1185
  var ROOT_STATE = ["workspace", ".index", ".runs"];
1111
1186
  var CHANGE_OWNED = /* @__PURE__ */ new Set(["change.yaml", "brief.md", "repos.yaml", "ux.md"]);
@@ -1157,7 +1232,7 @@ async function unadopt(path) {
1157
1232
  const layout = await readLayout(join7(a, "org-pack"));
1158
1233
  let snap;
1159
1234
  try {
1160
- snap = JSON.parse(await readFile3(join7(root, SNAPSHOT_FILE), "utf8"));
1235
+ snap = JSON.parse(await readFile4(join7(root, SNAPSHOT_FILE), "utf8"));
1161
1236
  } catch {
1162
1237
  snap = void 0;
1163
1238
  }
@@ -1195,7 +1270,7 @@ async function unadopt(path) {
1195
1270
  for (const f of files) {
1196
1271
  const full = join7(root, f);
1197
1272
  if (existed(f)) {
1198
- const now = sha256(await readFile3(full));
1273
+ const now = sha256(await readFile4(full));
1199
1274
  if (now === before[f])
1200
1275
  continue;
1201
1276
  const text2 = await readText(full) ?? "";
@@ -1874,7 +1949,7 @@ async function openSource(source, o) {
1874
1949
 
1875
1950
  // packages/adopt/dist/absorb/absorb.js
1876
1951
  var import_yaml7 = __toESM(require_dist(), 1);
1877
- import { mkdir as mkdir5, readFile as readFile4, rm as rm3, writeFile as writeFile5 } from "node:fs/promises";
1952
+ import { mkdir as mkdir5, readFile as readFile5, rm as rm3, writeFile as writeFile5 } from "node:fs/promises";
1878
1953
  import { dirname as dirname4, join as join9 } from "node:path";
1879
1954
  var DOC = /(^|\/)(README|LICENSE|LICENCE|CHANGELOG|CONTRIBUTING|CODE_OF_CONDUCT|SECURITY|NOTICE|CODEOWNERS)(\.(md|txt|rst|adoc))?$/i;
1880
1955
  var CODE = /\.(java|kt|scala|groovy|ts|tsx|js|jsx|mjs|cjs|vue|py|go|cs|fs|rb|php|rs|c|h|cpp|swift|sql|sh|ps1|bat|cbl|cob|jcl|cpy|tf|hcl|gradle|xml|properties|toml|lock|csproj|sln|dockerfile|ini|cfg)$|(^|\/)(Dockerfile|Makefile|tspconfig\.ya?ml|go\.mod|go\.sum|package\.json|package-lock\.json|pnpm-lock\.yaml|yarn\.lock|requirements\.txt|\.gitignore|\.gitattributes|\.editorconfig|\.npmrc|\.nvmrc)$/i;
@@ -1910,7 +1985,7 @@ async function absorb(root, source, o, paths) {
1910
1985
  fmt.openspec = theirs.sources.layout.openspec;
1911
1986
  }
1912
1987
  const files = (await listFiles(dir, { skipNames: /* @__PURE__ */ new Set([".git", "node_modules"]) })).filter((f) => !isLocalState(f, fmt.format === "atticus"));
1913
- const read = async (f) => (await readFile4(join9(dir, f), "utf8")).replace(/\r\n/g, "\n");
1988
+ const read = async (f) => (await readFile5(join9(dir, f), "utf8")).replace(/\r\n/g, "\n");
1914
1989
  const items = [];
1915
1990
  const problems = [];
1916
1991
  const claimed = /* @__PURE__ */ new Set();
@@ -2443,7 +2518,7 @@ async function absorb(root, source, o, paths) {
2443
2518
  files: [],
2444
2519
  problems,
2445
2520
  ms: 0,
2446
- sourceFiles: Object.fromEntries(await Promise.all(files.map(async (f) => [f, sha256(await readFile4(join9(dir, f)))])))
2521
+ sourceFiles: Object.fromEntries(await Promise.all(files.map(async (f) => [f, sha256(await readFile5(join9(dir, f)))])))
2447
2522
  };
2448
2523
  if (!o.dryRun) {
2449
2524
  const out = join9(p.proposalsDir, "absorb", o.id);
@@ -2559,21 +2634,21 @@ function prMd(r) {
2559
2634
  }
2560
2635
 
2561
2636
  // packages/adopt/dist/absorb/refresh.js
2562
- import { readFile as readFile5 } from "node:fs/promises";
2637
+ import { readFile as readFile6 } from "node:fs/promises";
2563
2638
  import { join as join10 } from "node:path";
2564
2639
  var META = /* @__PURE__ */ new Set(["SUMMARY.md", "PR.md", "inventory.json"]);
2565
2640
  async function snapshot(dir) {
2566
2641
  const out = /* @__PURE__ */ new Map();
2567
2642
  for (const f of await listFiles(dir))
2568
2643
  if (!META.has(f))
2569
- out.set(f, sha256(await readFile5(join10(dir, f))));
2644
+ out.set(f, sha256(await readFile6(join10(dir, f))));
2570
2645
  return out;
2571
2646
  }
2572
2647
  async function refreshAbsorbed(root, id, o = {}) {
2573
2648
  const p = await resolveMetarepo(root);
2574
2649
  const listed = (await loadOrgPack(p.orgPackDir)).sources.absorbed.find((a) => a.id === id);
2575
2650
  const proposal = join10(p.proposalsDir, "absorb", id);
2576
- const inventory = JSON.parse(await readFile5(join10(proposal, "inventory.json"), "utf8").catch(() => "{}"));
2651
+ const inventory = JSON.parse(await readFile6(join10(proposal, "inventory.json"), "utf8").catch(() => "{}"));
2577
2652
  const entry = listed ?? inventory.entry;
2578
2653
  if (!entry)
2579
2654
  throw new AdoptError("not-found", `There is no absorbed source ${id}: absorb it first with atticus absorb <git-url|path> --id ${id}.`);
@@ -2620,7 +2695,7 @@ async function refreshAllAbsorbed(root, o = {}) {
2620
2695
 
2621
2696
  // packages/adopt/dist/absorb/accept.js
2622
2697
  var import_yaml8 = __toESM(require_dist(), 1);
2623
- import { copyFile, mkdir as mkdir6, readFile as readFile6, writeFile as writeFile6 } from "node:fs/promises";
2698
+ import { copyFile, mkdir as mkdir6, readFile as readFile7, writeFile as writeFile6 } from "node:fs/promises";
2624
2699
  import { dirname as dirname5, join as join11, relative as relative3 } from "node:path";
2625
2700
  function targetOf(p, file) {
2626
2701
  const [head, ...rest] = file.split("/");
@@ -2653,8 +2728,8 @@ async function acceptAbsorbed(root, id, o = {}, paths) {
2653
2728
  if (!to)
2654
2729
  continue;
2655
2730
  const from = join11(dir, ...f.split("/"));
2656
- const theirs = await readFile6(from);
2657
- const ours = await readFile6(to).catch(() => void 0);
2731
+ const theirs = await readFile7(from);
2732
+ const ours = await readFile7(to).catch(() => void 0);
2658
2733
  if (ours && ours.equals(theirs)) {
2659
2734
  out.same.push(rel(to));
2660
2735
  continue;
@@ -2696,7 +2771,7 @@ async function acceptAbsorbed(root, id, o = {}, paths) {
2696
2771
 
2697
2772
  // packages/adopt/dist/federation.js
2698
2773
  var import_yaml9 = __toESM(require_dist(), 1);
2699
- import { readdir as readdir4, readFile as readFile7 } from "node:fs/promises";
2774
+ import { readdir as readdir4, readFile as readFile8 } from "node:fs/promises";
2700
2775
  import { isAbsolute as isAbsolute3, join as join12, resolve as resolve6 } from "node:path";
2701
2776
  import { fileURLToPath as fileURLToPath2 } from "node:url";
2702
2777
  var REMOTE2 = /^[a-z][a-z0-9+.-]*:\/\//i;
@@ -2732,7 +2807,7 @@ async function federatedChanges(sources) {
2732
2807
  for (const n of names) {
2733
2808
  let text2;
2734
2809
  try {
2735
- text2 = await readFile7(join12(changes, n, "change.yaml"), "utf8");
2810
+ text2 = await readFile8(join12(changes, n, "change.yaml"), "utf8");
2736
2811
  } catch {
2737
2812
  continue;
2738
2813
  }
@@ -2863,11 +2938,13 @@ export {
2863
2938
  detectRepoType,
2864
2939
  UNASSIGNED,
2865
2940
  MockRepoListing,
2941
+ withoutCredentials,
2866
2942
  reposDiscover,
2867
2943
  CHECKLISTS_README,
2868
2944
  STARTER_CHECKLISTS_README,
2869
2945
  writeStartingPack,
2870
2946
  ATTICUS_FOLDER_IGNORE,
2947
+ metarepoIdFromUrl,
2871
2948
  init,
2872
2949
  SNAPSHOT_FILE,
2873
2950
  ADOPTED_FILE,
@@ -5,13 +5,13 @@ var __atticusUrl = (p) => new URL("./" + p, import.meta.url).href;
5
5
  var __atticusPath = (p) => __atticusFileURLToPath(__atticusUrl(p));
6
6
  import {
7
7
  parseXml
8
- } from "./chunk-CQDGOPGH.js";
8
+ } from "./chunk-G6EFXTUO.js";
9
9
  import {
10
10
  JOINED_BY_PERSON,
11
11
  ZipError,
12
12
  peekZip,
13
13
  readZip
14
- } from "./chunk-Q2TECDIT.js";
14
+ } from "./chunk-FPBUTZI5.js";
15
15
  import {
16
16
  require_dist
17
17
  } from "./chunk-BQGDB6ZL.js";
@@ -7,42 +7,42 @@ import {
7
7
  contextFlags,
8
8
  contextLines
9
9
  } from "./chunk-R6RY4Q5T.js";
10
+ import {
11
+ table
12
+ } from "./chunk-VOGCSYOI.js";
10
13
  import {
11
14
  findNeeds,
12
15
  markNeed,
13
16
  readNeeds
14
- } from "./chunk-R7NYHMUU.js";
15
- import "./chunk-IVBOQAGB.js";
16
- import "./chunk-ISUAAMGS.js";
17
- import {
18
- table
19
- } from "./chunk-VOGCSYOI.js";
20
- import "./chunk-S4PMJU6H.js";
21
- import "./chunk-IDKCWSM5.js";
22
- import "./chunk-UUU4CLJG.js";
23
- import "./chunk-7IGKHZ4Z.js";
24
- import "./chunk-J2JAKCIW.js";
17
+ } from "./chunk-MLGWSBF4.js";
18
+ import "./chunk-CA3DKO4D.js";
19
+ import "./chunk-D6BVLTDV.js";
20
+ import "./chunk-RCG5IAAT.js";
21
+ import "./chunk-WZYM5M4U.js";
22
+ import "./chunk-NC755EKE.js";
23
+ import "./chunk-FL344WQD.js";
24
+ import "./chunk-IKAW2KJU.js";
25
+ import "./chunk-CZ2ZS7AT.js";
25
26
  import {
26
27
  readKnowledge
27
- } from "./chunk-745DAZ4L.js";
28
- import "./chunk-CXJ6FUKN.js";
29
- import "./chunk-QKUJMING.js";
30
- import "./chunk-6ZGLAACW.js";
31
- import "./chunk-CQDGOPGH.js";
32
- import "./chunk-3NFFJL5D.js";
33
- import "./chunk-PKBHS4AA.js";
28
+ } from "./chunk-4GAB5ZOZ.js";
29
+ import "./chunk-A4JXVO5O.js";
30
+ import "./chunk-TDSCKP3V.js";
31
+ import "./chunk-G6EFXTUO.js";
32
+ import "./chunk-PQQKZPBU.js";
33
+ import "./chunk-3EWKO457.js";
34
34
  import {
35
35
  RuntimeConfigError,
36
36
  runtimeForCli
37
- } from "./chunk-P32RUW3B.js";
37
+ } from "./chunk-3424TLIJ.js";
38
38
  import "./chunk-QA4O2GGC.js";
39
39
  import {
40
40
  changesDirOf,
41
41
  changesRelOf,
42
42
  loadOrgPack,
43
43
  orgPackDirOf
44
- } from "./chunk-Q2TECDIT.js";
45
- import "./chunk-TUULXQRW.js";
44
+ } from "./chunk-FPBUTZI5.js";
45
+ import "./chunk-B4AEL3RF.js";
46
46
  import "./chunk-BQGDB6ZL.js";
47
47
  import "./chunk-TV45EUGM.js";
48
48
 
@@ -7,19 +7,19 @@ import {
7
7
  ATTICUS_FOLDER_IGNORE,
8
8
  CHECKLISTS_README,
9
9
  STARTER_CHECKLISTS_README
10
- } from "./chunk-Z5IA3WDR.js";
10
+ } from "./chunk-TABH4RBZ.js";
11
11
  import {
12
12
  openspecRootOf,
13
13
  rewriteStories
14
- } from "./chunk-R7NYHMUU.js";
14
+ } from "./chunk-MLGWSBF4.js";
15
15
  import {
16
16
  STARTER_REVIEW_PATH,
17
17
  readPackFiles,
18
18
  starterReviewText
19
- } from "./chunk-S4PMJU6H.js";
19
+ } from "./chunk-D6BVLTDV.js";
20
20
  import {
21
21
  metarepoOrigin
22
- } from "./chunk-IDKCWSM5.js";
22
+ } from "./chunk-WZYM5M4U.js";
23
23
  import {
24
24
  ORG_FLOW_VERSION,
25
25
  STORE_MARKER,
@@ -28,15 +28,15 @@ import {
28
28
  storeIdOf,
29
29
  writeOrgFlowSchema,
30
30
  writeStoreMarker
31
- } from "./chunk-UUU4CLJG.js";
31
+ } from "./chunk-NC755EKE.js";
32
32
  import {
33
33
  VERSION
34
- } from "./chunk-F3P7N7SF.js";
34
+ } from "./chunk-JFFKHIM6.js";
35
35
  import {
36
36
  IGNORED,
37
37
  ensureGitignore,
38
38
  gitUser
39
- } from "./chunk-PKBHS4AA.js";
39
+ } from "./chunk-3EWKO457.js";
40
40
  import {
41
41
  MetarepoStamp,
42
42
  WORKSPACE_SCHEMA_VERSION,
@@ -60,12 +60,12 @@ import {
60
60
  orgPackDirOf,
61
61
  specsDirOf,
62
62
  specsRelOf
63
- } from "./chunk-Q2TECDIT.js";
63
+ } from "./chunk-FPBUTZI5.js";
64
64
  import {
65
65
  LOCAL_ONLY,
66
66
  ensureLocalIgnore,
67
67
  writeFileAtomic
68
- } from "./chunk-TUULXQRW.js";
68
+ } from "./chunk-B4AEL3RF.js";
69
69
  import {
70
70
  require_dist
71
71
  } from "./chunk-BQGDB6ZL.js";
@@ -167,7 +167,7 @@ var MIGRATIONS = [
167
167
  {
168
168
  // The id is kept as it was first shipped (stamps record it); the step writes the current version.
169
169
  id: "questions-v3",
170
- summary: "Questions at schema version 5: a question can name the earlier one it may be the same as (ADR 0117), an answer can carry its rule and the proposal it accepted (ADR 0153), a question the code later disagreed with keeps why it reopened and the answer it had (ADR 0162), and a change's question carries the role that owns it, derived from the stage that asked when the file doesn't say (ADR 0181)",
170
+ summary: "Questions at schema version 6: a question can name the earlier one it may be the same as (ADR 0117), an answer can carry its rule and the proposal it accepted (ADR 0153), a question the code later disagreed with keeps why it reopened and the answer it had (ADR 0162), a change's question carries the role that owns it, derived from the stage that asked when the file doesn't say (ADR 0181), and what it asks (business, design or delivery) and a person's re-routing of it (ADR 0191)",
171
171
  pending: (root) => migrateQuestions(root, { dryRun: true }),
172
172
  apply: (root) => migrateQuestions(root),
173
173
  async problems(root) {
@@ -264,7 +264,7 @@ var MIGRATIONS = [
264
264
  },
265
265
  {
266
266
  id: "roles-v2",
267
- summary: "roles.yaml at version 2: it can name the teams repos are owned by and who is on each, so questions go to their owner; no team is named until a person writes one (ADR 0140)",
267
+ summary: "roles.yaml at version 3: it can name the teams repos are owned by and who is on each, so questions go to their owner (ADR 0140), and who takes each role on a change, so a new change's owners are suggested (ADR 0191); no team or role is named until a person writes one",
268
268
  async pending(root) {
269
269
  const rel2 = packRel(root, "roles.yaml");
270
270
  const text = await readFile(join(root, rel2), "utf8").catch(() => void 0);