@maycombhq/atticus 2.0.0-beta.18 → 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 (270) hide show
  1. package/dist/bin.js +8 -4
  2. package/dist/{chunk-MUSJJ6CQ.js → chunk-265LWMOA.js} +16 -16
  3. package/dist/chunk-26WBY34Y.js +37 -0
  4. package/dist/{chunk-6H5JG5GL.js → chunk-26Z7OGQW.js} +63 -30
  5. package/dist/{chunk-4REDBQOZ.js → chunk-2D7PWSOK.js} +20 -20
  6. package/dist/{chunk-YPH6ZJ6R.js → chunk-2HH3UCZM.js} +4 -4
  7. package/dist/{chunk-RTUUX7PX.js → chunk-2HTEMYTB.js} +12 -26
  8. package/dist/{chunk-EHQUY26D.js → chunk-2UCRFXFZ.js} +11 -11
  9. package/dist/{chunk-ILDGIXNH.js → chunk-2V2ZPQQU.js} +81 -13
  10. package/dist/{chunk-YSEZQ6D3.js → chunk-36RY7ZXM.js} +107 -64
  11. package/dist/{chunk-QXFDM2FZ.js → chunk-37WE3LS2.js} +3 -3
  12. package/dist/{chunk-BAXM3JFQ.js → chunk-3AQ2R5NL.js} +1212 -754
  13. package/dist/chunk-3G6S7LAA.js +43 -0
  14. package/dist/{chunk-7TOAS7KI.js → chunk-3J5I7ZOU.js} +4 -4
  15. package/dist/{chunk-TAKAEJRD.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-UUL6ZGMU.js → chunk-3UTYPHN3.js} +1 -1
  19. package/dist/{chunk-6AP2ZUUM.js → chunk-3WON4G3M.js} +2 -2
  20. package/dist/{chunk-AXY6LBW4.js → chunk-42EPP7OB.js} +12 -12
  21. package/dist/{chunk-QKMDT7VU.js → chunk-455SYIIE.js} +2 -2
  22. package/dist/{chunk-MFUFB3LN.js → chunk-4B6BT75O.js} +110 -20
  23. package/dist/{chunk-75MYLZSB.js → chunk-4CLK2RJO.js} +7 -7
  24. package/dist/chunk-4CYTJ5TZ.js +38 -0
  25. package/dist/{chunk-IH7RANGB.js → chunk-4D62IZII.js} +5 -5
  26. package/dist/{chunk-2QMZOCWN.js → chunk-4FOAYLI4.js} +14 -7
  27. package/dist/{chunk-V3UEPUHT.js → chunk-4KNOJC6J.js} +294 -215
  28. package/dist/{chunk-O6ILVBYB.js → chunk-4PYC2UGC.js} +1 -1
  29. package/dist/{chunk-EZBAS5BL.js → chunk-4SLBCEPD.js} +82 -50
  30. package/dist/{chunk-VIRTPODJ.js → chunk-4TKVU2I2.js} +6 -14
  31. package/dist/{chunk-IVCDU443.js → chunk-4WXRPQDE.js} +281 -51
  32. package/dist/{chunk-RMEEHH24.js → chunk-5CMPVC3N.js} +24 -24
  33. package/dist/chunk-5G7ILBUG.js +66 -0
  34. package/dist/{chunk-Z75XDWQR.js → chunk-5PV7S2ZP.js} +3 -3
  35. package/dist/{chunk-WWPC2AZ2.js → chunk-5QUOPNLN.js} +4 -4
  36. package/dist/{chunk-7OVH2L7L.js → chunk-5TDRBOAV.js} +5 -5
  37. package/dist/{chunk-YXUIUOQZ.js → chunk-5WERBKLE.js} +199 -63
  38. package/dist/{chunk-6WNNXEG6.js → chunk-62DLJSLV.js} +8 -8
  39. package/dist/{chunk-KCQS52TH.js → chunk-64AADMTW.js} +99 -25
  40. package/dist/{chunk-KLRUXRPN.js → chunk-67BP7HXL.js} +17 -17
  41. package/dist/chunk-6DQYZU2W.js +379 -0
  42. package/dist/{chunk-RONDYDMQ.js → chunk-6EXDI5GI.js} +51 -34
  43. package/dist/chunk-6FNAKCET.js +38 -0
  44. package/dist/{chunk-6SNEA73E.js → chunk-75ASLHBT.js} +21 -15
  45. package/dist/{chunk-EFT4KM6K.js → chunk-75ZOZFGH.js} +18 -18
  46. package/dist/{chunk-B3KW7EQW.js → chunk-77O633L5.js} +12 -12
  47. package/dist/{chunk-TLDL2ZZI.js → chunk-7AB6OWTV.js} +3 -3
  48. package/dist/{chunk-R5YXY6NT.js → chunk-7CZHUZBL.js} +25 -25
  49. package/dist/{chunk-F4D4G2A6.js → chunk-7FHNFCHK.js} +306 -125
  50. package/dist/{chunk-CC5RNYZF.js → chunk-7FUIVIBG.js} +19 -9
  51. package/dist/{chunk-UBTOSSNK.js → chunk-7QPCGTPS.js} +21 -21
  52. package/dist/{chunk-CDLTRJ4N.js → chunk-A2G72UI4.js} +7 -7
  53. package/dist/{chunk-YGSOQ5LX.js → chunk-AE4P57KK.js} +23 -17
  54. package/dist/{chunk-PGQL5YGH.js → chunk-AHW3RY3X.js} +7 -7
  55. package/dist/chunk-AM6FP6JW.js +43 -0
  56. package/dist/{chunk-DYNC6BAQ.js → chunk-AOCWFA7T.js} +93 -10
  57. package/dist/{chunk-CYX36GKZ.js → chunk-API5TOUB.js} +1 -1
  58. package/dist/{chunk-BJ5T3KDF.js → chunk-AZDITBCT.js} +3 -3
  59. package/dist/{chunk-U6GZSUMC.js → chunk-BA2HUMDN.js} +25 -3
  60. package/dist/chunk-BA3U7ALS.js +99 -0
  61. package/dist/{chunk-63565QTF.js → chunk-BC6KKZ67.js} +5 -5
  62. package/dist/{chunk-XO5RQKNM.js → chunk-BEPCKDCP.js} +1843 -577
  63. package/dist/{chunk-KUH62AQ3.js → chunk-BPPU3PW7.js} +4 -4
  64. package/dist/{chunk-52ULYRV4.js → chunk-BVWWPBKD.js} +18 -18
  65. package/dist/{chunk-R2FGEBIU.js → chunk-BXZ4PKIT.js} +13 -11
  66. package/dist/{chunk-4BU26GFB.js → chunk-C7CEK3KW.js} +4 -4
  67. package/dist/chunk-CFH3QH26.js +29 -0
  68. package/dist/chunk-CG6CULP6.js +170 -0
  69. package/dist/chunk-CLD4RVTA.js +45 -0
  70. package/dist/{chunk-BU543ZEC.js → chunk-CNPY4NTZ.js} +13 -13
  71. package/dist/{chunk-PLBIWEPV.js → chunk-CNU5Q2D5.js} +32 -31
  72. package/dist/{chunk-JTYYEYRR.js → chunk-COYN3UAN.js} +124 -21
  73. package/dist/{chunk-TNCROWPQ.js → chunk-CPK7QSBG.js} +10 -10
  74. package/dist/{chunk-43E6XX67.js → chunk-D2WSW4GU.js} +1 -1
  75. package/dist/{chunk-SHEUEHKC.js → chunk-D57MFJPP.js} +3 -3
  76. package/dist/chunk-D5KV5PSK.js +45 -0
  77. package/dist/chunk-D5MASS4I.js +48 -0
  78. package/dist/{chunk-TQYBXDVH.js → chunk-DCWN3HFV.js} +1 -1
  79. package/dist/{chunk-FF4IGX4Z.js → chunk-DDJPM5YX.js} +2 -2
  80. package/dist/chunk-DN4A2Q2O.js +57 -0
  81. package/dist/{chunk-4ZCFCIEL.js → chunk-DUPZPDCJ.js} +52 -16
  82. package/dist/{chunk-CUJ5TIEB.js → chunk-E2VXBSIR.js} +4 -4
  83. package/dist/{chunk-BX47X5DJ.js → chunk-E57AOFYN.js} +13 -13
  84. package/dist/{chunk-SSTI7GAV.js → chunk-ECLXZWAG.js} +12 -12
  85. package/dist/{chunk-KYK3TA4Q.js → chunk-EDZ45WIR.js} +14 -14
  86. package/dist/chunk-EFCQSMXB.js +37 -0
  87. package/dist/{chunk-YC2K3FJG.js → chunk-EZIN5E5B.js} +8 -8
  88. package/dist/{chunk-MIZNACDI.js → chunk-F6H2RJ3N.js} +1 -1
  89. package/dist/{chunk-EMZVHDJP.js → chunk-FAJDKNSD.js} +7 -3
  90. package/dist/chunk-FGAGWYZB.js +47 -0
  91. package/dist/{chunk-KBGQ3IAM.js → chunk-FLVZFTLQ.js} +18 -18
  92. package/dist/{chunk-2NNXLH53.js → chunk-FQ6WH6PB.js} +22 -7
  93. package/dist/{chunk-QWSLMVHI.js → chunk-FRHD22WM.js} +61 -23
  94. package/dist/{chunk-5MEN4SM5.js → chunk-FVMPFCDS.js} +4 -4
  95. package/dist/{chunk-KLRZKW7Y.js → chunk-FY3QIRTL.js} +3 -3
  96. package/dist/{chunk-B3SWPNJF.js → chunk-FYBF5MB2.js} +13 -11
  97. package/dist/{chunk-CVZCW3NI.js → chunk-G5YJBNDZ.js} +14 -5
  98. package/dist/{chunk-U6EPS5PF.js → chunk-G6IQYM25.js} +5 -5
  99. package/dist/chunk-G6X4YL4D.js +161 -0
  100. package/dist/{chunk-DOSX3MRW.js → chunk-GC2VK3JT.js} +25 -25
  101. package/dist/{chunk-EEWBTFRP.js → chunk-GCS3FZOB.js} +27 -3
  102. package/dist/{chunk-6H6OPNEP.js → chunk-GDZB57IU.js} +5 -5
  103. package/dist/chunk-GIFMBCTW.js +221 -0
  104. package/dist/{chunk-X5WYPIH3.js → chunk-GK4PYVEC.js} +18 -8
  105. package/dist/{chunk-VBSJ5NRB.js → chunk-GNWAOVFQ.js} +5 -5
  106. package/dist/{chunk-TXFDQRBL.js → chunk-GS76RXQE.js} +11 -11
  107. package/dist/{chunk-U3YC4RGC.js → chunk-GSGIZ2OO.js} +23 -23
  108. package/dist/chunk-GUYL7RMK.js +60 -0
  109. package/dist/{chunk-AZYBHPV4.js → chunk-GX74YWR7.js} +14 -13
  110. package/dist/{chunk-YY7VP7KW.js → chunk-HE3HRDNZ.js} +2 -2
  111. package/dist/{chunk-Z7HYYDZM.js → chunk-HGHRSF3E.js} +14 -13
  112. package/dist/{chunk-Q2X4IREC.js → chunk-HK3VOHIE.js} +106 -36
  113. package/dist/{chunk-P5JYMO7Y.js → chunk-HS4BGB4G.js} +22 -22
  114. package/dist/{chunk-IOW6BF3U.js → chunk-HSZMPH5T.js} +798 -141
  115. package/dist/{chunk-L3T33FA7.js → chunk-HWD4JPU7.js} +4 -2
  116. package/dist/{chunk-7NYCH5HY.js → chunk-HXXP2NTE.js} +6 -6
  117. package/dist/{chunk-7S7OFVIU.js → chunk-I2A3Z5AK.js} +4 -4
  118. package/dist/{chunk-WQSDKX7M.js → chunk-ICHDSWEY.js} +7 -7
  119. package/dist/chunk-IFFRGC3N.js +31 -0
  120. package/dist/{chunk-HMZQAIR5.js → chunk-IFHDV6KQ.js} +24 -17
  121. package/dist/chunk-J2O4LFVI.js +80 -0
  122. package/dist/chunk-J5AAZ6OJ.js +161 -0
  123. package/dist/{chunk-CVRWAG76.js → chunk-JAABT3DA.js} +3 -3
  124. package/dist/chunk-JITJP64K.js +34 -0
  125. package/dist/chunk-JKIGL3XQ.js +162 -0
  126. package/dist/chunk-JRVNXLZP.js +615 -0
  127. package/dist/chunk-JRXHON4E.js +41 -0
  128. package/dist/{chunk-XFCK5B27.js → chunk-JS6WMC3J.js} +8 -8
  129. package/dist/chunk-JU4QNJSR.js +62 -0
  130. package/dist/{chunk-IPSFMTK2.js → chunk-JYMIB5XY.js} +152 -42
  131. package/dist/{chunk-L336AJCZ.js → chunk-JYTIHTIK.js} +8 -6
  132. package/dist/{chunk-VEJYZEPC.js → chunk-K332XW7K.js} +135 -16
  133. package/dist/{chunk-KCF7TFOE.js → chunk-K6JB6XTX.js} +11 -11
  134. package/dist/{chunk-LFIIX4OV.js → chunk-KDAHXQIE.js} +46 -34
  135. package/dist/chunk-KYZMRSPS.js +93 -0
  136. package/dist/chunk-L4CESDPB.js +22 -0
  137. package/dist/{chunk-3LR4522O.js → chunk-LEBR5NHW.js} +14 -14
  138. package/dist/{chunk-US3QZU23.js → chunk-LIJJCBQI.js} +67 -7
  139. package/dist/{chunk-XLHL6WTI.js → chunk-LIRVU3HW.js} +16 -16
  140. package/dist/{chunk-BAT4CBB7.js → chunk-LN77DXBM.js} +19 -10
  141. package/dist/{chunk-E5FM44EJ.js → chunk-LNWEWYCM.js} +2474 -315
  142. package/dist/{chunk-TX4OGZKU.js → chunk-LO3BLMVG.js} +3 -3
  143. package/dist/{chunk-RUOGHYSK.js → chunk-LPV6T362.js} +5 -5
  144. package/dist/{chunk-2T5CQH4R.js → chunk-LQH4P45K.js} +1 -1
  145. package/dist/chunk-LU4MQVAL.js +41 -0
  146. package/dist/{chunk-HW4RRIJA.js → chunk-LWDNKE4X.js} +12 -10
  147. package/dist/chunk-M4H2UG4R.js +218 -0
  148. package/dist/{chunk-CANMOOE6.js → chunk-M6D2U3YM.js} +3 -3
  149. package/dist/{chunk-AB5E5HCN.js → chunk-MD7KUEJ3.js} +14 -272
  150. package/dist/{chunk-ENTAAEDK.js → chunk-MMZUN7ZO.js} +20 -20
  151. package/dist/{chunk-L4MHJG3I.js → chunk-MZGRDONP.js} +46 -36
  152. package/dist/{chunk-IYI2S6BB.js → chunk-N3RUGTGV.js} +18 -18
  153. package/dist/{chunk-WZRCGGXG.js → chunk-NCB6656Z.js} +7 -7
  154. package/dist/{chunk-SBE773JU.js → chunk-NRQ65LTQ.js} +5 -5
  155. package/dist/{chunk-NRPMPZWJ.js → chunk-NTAVOWYD.js} +117 -18
  156. package/dist/{chunk-UJBZS5I7.js → chunk-NYOABJNK.js} +36 -27
  157. package/dist/{chunk-LXAPJ3BL.js → chunk-O4IKAIZ2.js} +24 -20
  158. package/dist/{chunk-MMB2OHUY.js → chunk-ODMBPDDV.js} +48 -13
  159. package/dist/chunk-OKUB6RJA.js +533 -0
  160. package/dist/{chunk-MKFYQQ5Q.js → chunk-OMPENNWY.js} +4 -1
  161. package/dist/chunk-OPQZISG3.js +25 -0
  162. package/dist/{chunk-ROJMXG4E.js → chunk-OV57AHCG.js} +24 -24
  163. package/dist/{chunk-7KGXDIWV.js → chunk-OZJ3JLYI.js} +9 -8
  164. package/dist/{chunk-G5BYKJIM.js → chunk-P2VBXX7N.js} +11 -10
  165. package/dist/{chunk-YK6CSODO.js → chunk-PAINMSID.js} +4353 -1106
  166. package/dist/chunk-PKJAV25S.js +43 -0
  167. package/dist/{chunk-R5MNPIMD.js → chunk-PNQLCRSS.js} +4 -4
  168. package/dist/{chunk-3SMMFQED.js → chunk-PQH56YF6.js} +37 -5
  169. package/dist/chunk-PRTBPXYA.js +50 -0
  170. package/dist/{chunk-FF4ZMLSL.js → chunk-PRW3HXM3.js} +2 -2
  171. package/dist/chunk-PRZ7KMWL.js +42 -0
  172. package/dist/{chunk-IFV6MKYV.js → chunk-PTQ3ZALZ.js} +42 -4
  173. package/dist/{chunk-ELQSLAP6.js → chunk-PUEWDYGP.js} +2 -2
  174. package/dist/{chunk-F2ZCZYIK.js → chunk-Q26LDIUV.js} +12 -11
  175. package/dist/chunk-Q46QDDMF.js +277 -0
  176. package/dist/chunk-QBNWF5ZU.js +19 -0
  177. package/dist/{chunk-ANETFNTV.js → chunk-QE527XRY.js} +24 -21
  178. package/dist/{chunk-QNMLLYTN.js → chunk-QHJJMZLX.js} +397 -32
  179. package/dist/chunk-QJCJOMW3.js +425 -0
  180. package/dist/{chunk-3HOONZUE.js → chunk-QKMRFNMA.js} +15 -15
  181. package/dist/{chunk-7S6VJ643.js → chunk-QOOEYDNJ.js} +101 -13
  182. package/dist/{chunk-4YNKN4DF.js → chunk-QSIDVFB7.js} +20 -18
  183. package/dist/{chunk-2IT7SIJY.js → chunk-RA33EYS4.js} +19 -18
  184. package/dist/{chunk-P7NV3FEJ.js → chunk-RALY3E5U.js} +4 -4
  185. package/dist/{chunk-6NESNLVU.js → chunk-S2RY3BOD.js} +35 -21
  186. package/dist/chunk-SB5GRUFM.js +54 -0
  187. package/dist/{chunk-EUQHM2CH.js → chunk-SH27FYPF.js} +18 -18
  188. package/dist/chunk-T74WQQGS.js +40 -0
  189. package/dist/{chunk-LGDW4G73.js → chunk-TGVVUKTG.js} +2 -2
  190. package/dist/chunk-THN26IEF.js +48 -0
  191. package/dist/{chunk-ZV2VCBMQ.js → chunk-TJH2EUAZ.js} +18 -12
  192. package/dist/{chunk-NGT5LLSE.js → chunk-TQ4TG57V.js} +6 -6
  193. package/dist/{chunk-WEDXFJPG.js → chunk-TQTRWENN.js} +12 -12
  194. package/dist/{chunk-ZRWS54RI.js → chunk-TSM6T6GQ.js} +23 -23
  195. package/dist/{chunk-KET7KOVE.js → chunk-TW3KOSQK.js} +15 -7
  196. package/dist/{chunk-RBXDHCN7.js → chunk-TWQRPM76.js} +2 -2
  197. package/dist/{chunk-IO6DQCZX.js → chunk-TYD6I4CZ.js} +4 -4
  198. package/dist/{chunk-5NLJH6R4.js → chunk-U3NBK4EU.js} +56 -17
  199. package/dist/{chunk-U542BJME.js → chunk-UDXWIPCB.js} +7 -7
  200. package/dist/{chunk-OSB6AKF2.js → chunk-UEVZZZU2.js} +4 -4
  201. package/dist/{chunk-5ZV7BK22.js → chunk-UF4UHCIG.js} +2 -2
  202. package/dist/{chunk-PHJOOL6U.js → chunk-UFE36WJH.js} +4 -4
  203. package/dist/{chunk-IHRP4OYV.js → chunk-URIKUID7.js} +12 -12
  204. package/dist/chunk-UYLBRRFK.js +1106 -0
  205. package/dist/chunk-UZACEG2C.js +515 -0
  206. package/dist/{chunk-LR4XBH4L.js → chunk-VAMHOHUU.js} +12 -12
  207. package/dist/{chunk-S5PSGAQ2.js → chunk-VUVGX5L2.js} +1 -1
  208. package/dist/{chunk-2TG2QGKW.js → chunk-VYOCPTUB.js} +18 -16
  209. package/dist/{chunk-VTEDQ6GY.js → chunk-WAZEXEJH.js} +175 -3
  210. package/dist/{chunk-UTSFKZ72.js → chunk-WCEF7H6L.js} +3 -3
  211. package/dist/{chunk-DXPUYG5L.js → chunk-WEOMJHPV.js} +12 -12
  212. package/dist/{chunk-NFKBU2UH.js → chunk-WFU77T3A.js} +5 -5
  213. package/dist/chunk-WIWTJMMR.js +292 -0
  214. package/dist/{chunk-MRFSUAJH.js → chunk-WNTIOBOG.js} +18 -18
  215. package/dist/{chunk-UROTYIGJ.js → chunk-X2CUXTWU.js} +6 -6
  216. package/dist/chunk-X7EMBM5X.js +34 -0
  217. package/dist/{chunk-OO5TKEAG.js → chunk-XEQCQO66.js} +8 -8
  218. package/dist/{chunk-NBQO75XT.js → chunk-XG4WJHLQ.js} +17 -1
  219. package/dist/{chunk-ZQC7MNQB.js → chunk-XOL3GFW2.js} +101 -30
  220. package/dist/{chunk-GXDATVSY.js → chunk-XQ3YZ4QW.js} +22 -22
  221. package/dist/{chunk-GTW54D3D.js → chunk-Y6K3CJBU.js} +726 -88
  222. package/dist/{chunk-CQCAJI6G.js → chunk-YAH5IQAL.js} +5 -5
  223. package/dist/{chunk-U6TD7UOH.js → chunk-YBOVNMHC.js} +51 -14
  224. package/dist/{chunk-OJICVOZH.js → chunk-YF5DZCPN.js} +79 -39
  225. package/dist/chunk-YIGBJNH4.js +37 -0
  226. package/dist/{chunk-7C7OZARH.js → chunk-YJ3TBOTK.js} +25 -25
  227. package/dist/{chunk-HXFSM4LG.js → chunk-YKTE2RU3.js} +2 -2
  228. package/dist/{chunk-7IM4BVVH.js → chunk-YO2PKTXT.js} +268 -36
  229. package/dist/{chunk-Z3UU7XV6.js → chunk-YTTNTQOX.js} +15 -15
  230. package/dist/{chunk-2ZICHO3V.js → chunk-YWAKDNMH.js} +183 -33
  231. package/dist/{chunk-OXOSJXOI.js → chunk-YZDZOEV4.js} +4 -4
  232. package/dist/{chunk-MRCETHW5.js → chunk-Z3QFH7YG.js} +4 -4
  233. package/dist/{chunk-5KZTRD4V.js → chunk-Z6VLC5X4.js} +17 -17
  234. package/dist/{chunk-EDURU5DF.js → chunk-ZFQMMU5Y.js} +2 -2
  235. package/dist/{chunk-3GLDB4IT.js → chunk-ZKYRDV7A.js} +12 -12
  236. package/dist/{chunk-GBGJ6WSO.js → chunk-ZLS6PU2O.js} +3 -3
  237. package/dist/{chunk-JZOOX3PQ.js → chunk-ZOSD4FXV.js} +3 -3
  238. package/dist/chunk-ZPDDEVQX.js +47 -0
  239. package/dist/{chunk-2TTSX7NB.js → chunk-ZQLRCA2V.js} +7 -7
  240. package/dist/{chunk-ESP3RUUR.js → chunk-ZX7235KR.js} +128 -54
  241. package/dist/{chunk-MH4XG5XS.js → chunk-ZZFHLRQW.js} +18 -16
  242. package/dist/files.json +559 -439
  243. package/dist/packages/sdk/npm/index.js +4679 -2672
  244. package/dist/packages/ui/dist/assets/{elk-api-BuFBvNyV.js → elk-api-CowTnhEJ.js} +2 -2
  245. package/dist/packages/ui/dist/assets/index-Dw20IRhQ.css +1 -0
  246. package/dist/packages/ui/dist/assets/index-z2wv0d5d.js +47 -0
  247. package/dist/packages/ui/dist/index.html +2 -2
  248. package/package.json +3 -3
  249. package/dist/chunk-25TJC2CL.js +0 -48
  250. package/dist/chunk-3Q5RHGCA.js +0 -47
  251. package/dist/chunk-4W7FOGAB.js +0 -41
  252. package/dist/chunk-6AF3CVJT.js +0 -48
  253. package/dist/chunk-A3KEXFQS.js +0 -34
  254. package/dist/chunk-BAUINGGJ.js +0 -41
  255. package/dist/chunk-BOFUCRJX.js +0 -47
  256. package/dist/chunk-GGKGILIP.js +0 -54
  257. package/dist/chunk-IKN6C67W.js +0 -53
  258. package/dist/chunk-K7MYVIFK.js +0 -54
  259. package/dist/chunk-KHA5LVPE.js +0 -34
  260. package/dist/chunk-LSXGM6MB.js +0 -37
  261. package/dist/chunk-M54TDRM3.js +0 -29
  262. package/dist/chunk-M5GF4NAB.js +0 -45
  263. package/dist/chunk-UTZGBCXE.js +0 -38
  264. package/dist/chunk-UVTSMBM4.js +0 -43
  265. package/dist/chunk-XXE3S3OG.js +0 -44
  266. package/dist/chunk-YJRQCUVJ.js +0 -43
  267. package/dist/chunk-ZFTK4BDN.js +0 -41
  268. package/dist/chunk-ZMARAW37.js +0 -38
  269. package/dist/packages/ui/dist/assets/index-C5QnK82A.css +0 -1
  270. package/dist/packages/ui/dist/assets/index-CQ0a1cBg.js +0 -29
@@ -0,0 +1,515 @@
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
+ initiativesDirOf
8
+ } from "./chunk-2V2ZPQQU.js";
9
+ import {
10
+ gitHandoffPublisher,
11
+ mergeChangeText
12
+ } from "./chunk-HSZMPH5T.js";
13
+ import "./chunk-D2WSW4GU.js";
14
+ import {
15
+ createAdapters,
16
+ fileStepStore
17
+ } from "./chunk-4KNOJC6J.js";
18
+ import "./chunk-4SLBCEPD.js";
19
+ import "./chunk-64AADMTW.js";
20
+ import "./chunk-JYMIB5XY.js";
21
+ import "./chunk-CPK7QSBG.js";
22
+ import "./chunk-YO2PKTXT.js";
23
+ import "./chunk-TWQRPM76.js";
24
+ import {
25
+ createGit
26
+ } from "./chunk-XOL3GFW2.js";
27
+ import "./chunk-QHJJMZLX.js";
28
+ import "./chunk-7AB6OWTV.js";
29
+ import {
30
+ catalogDirOf,
31
+ changesRelOf,
32
+ decisionsRelOf,
33
+ factsDirOf,
34
+ loadOrgPack,
35
+ mapDirOf,
36
+ orgPackDirOf,
37
+ questionsDirOf,
38
+ specsDirOf,
39
+ stateDirOf
40
+ } from "./chunk-PAINMSID.js";
41
+ import "./chunk-ODMBPDDV.js";
42
+ import "./chunk-TV45EUGM.js";
43
+
44
+ // packages/cli/dist/propose.js
45
+ import { existsSync } from "node:fs";
46
+ import { mkdir, mkdtemp, readFile, rm, writeFile } from "node:fs/promises";
47
+ import { tmpdir } from "node:os";
48
+ import { dirname, join, relative } from "node:path";
49
+ var PROPOSE_SCOPES = [
50
+ "answers",
51
+ "corrections",
52
+ "audit",
53
+ "org-pack",
54
+ "owner-answers",
55
+ "baseline",
56
+ "initiatives",
57
+ "outcomes",
58
+ "work",
59
+ "service-desk"
60
+ ];
61
+ var TITLES = {
62
+ answers: "Answers to the map's questions",
63
+ corrections: "Corrections to the map",
64
+ audit: "A sample audit's answers",
65
+ "org-pack": "Org pack and settings",
66
+ "owner-answers": "Owners' answers to the knowledge gaps",
67
+ baseline: "Accept the catalog as the baseline",
68
+ initiatives: "Initiatives and commitments",
69
+ outcomes: "Outcomes measured after release",
70
+ work: "Changes made in the Atticus app",
71
+ "service-desk": "Service-desk request fields"
72
+ };
73
+ var rel = (root, dir) => relative(root, dir).split("\\").join("/");
74
+ function scopeDirs(root, scope) {
75
+ const facts = rel(root, factsDirOf(root));
76
+ const catalog = rel(root, catalogDirOf(root));
77
+ const map = rel(root, mapDirOf(root));
78
+ const specs = rel(root, specsDirOf(root));
79
+ const decisions = decisionsRelOf(root);
80
+ switch (scope) {
81
+ // Round 36: the fields filled in the app are each open change's snow.md, nothing else of
82
+ // the change (its other files are its stages' and its hand-off's).
83
+ case "service-desk":
84
+ return [`:(glob)${changesRelOf(root)}/*/snow.md`];
85
+ // An answer also writes in the org pack (a repo type's skill file, a host in the manifest,
86
+ // an outside system in a profile): its PR carries those too (review round 35).
87
+ // UX re-walk: Apply (verify --write) also writes the repo's map and specs: they go too.
88
+ case "answers":
89
+ return [
90
+ rel(root, questionsDirOf(root)),
91
+ facts,
92
+ catalog,
93
+ rel(root, orgPackDirOf(root)),
94
+ map,
95
+ specs,
96
+ decisions
97
+ ];
98
+ case "corrections":
99
+ return [facts, catalog, map, specs, decisions];
100
+ // An audit is its repo's audit file, not every repo's facts.
101
+ case "audit":
102
+ return [`${facts}/*.audit.yaml`];
103
+ // Everything the app's work writes, for the one Propose on Home (UX re-walk).
104
+ case "work":
105
+ return [
106
+ rel(root, questionsDirOf(root)),
107
+ facts,
108
+ catalog,
109
+ rel(root, orgPackDirOf(root)),
110
+ map,
111
+ specs,
112
+ decisions,
113
+ rel(root, initiativesDirOf(root)),
114
+ `${changesRelOf(root)}/*/review/outcomes.yaml`,
115
+ `${changesRelOf(root)}/*/snow.md`,
116
+ // Ninth UX walk: a person's corrections of a stage's drafts, and who drafted each file
117
+ // (ADR 0181), saved in the app; they ride the stage's hand-off too.
118
+ `${changesRelOf(root)}/*/stage/corrections.yaml`,
119
+ `${changesRelOf(root)}/*/stage/drafted.yaml`
120
+ ];
121
+ case "org-pack":
122
+ return [rel(root, orgPackDirOf(root))];
123
+ // UX review (2026-11-08): an owner's answer to a knowledge gap is a curated record.
124
+ case "owner-answers":
125
+ return [`${catalog}/curated/ownerquestion`];
126
+ // Accepting the baseline writes catalog/baseline.yaml, over the catalog it accepts.
127
+ case "baseline":
128
+ return [catalog];
129
+ // UX review: an initiative's curated records (the initiative, its commitments and the
130
+ // parties its plan names) and its folder (the plan, the notes, the system cards); not the
131
+ // rest of the curated catalog (a triage decision is its own review).
132
+ case "initiatives":
133
+ return [
134
+ ...["initiative", "commitment", "party"].map((k) => `${catalog}/curated/${k}`),
135
+ rel(root, initiativesDirOf(root))
136
+ ];
137
+ // UX review: an outcome recorded after release is the change's review/outcomes.yaml, open
138
+ // or archived (a pathspec's * crosses folders); nothing else of the change.
139
+ case "outcomes":
140
+ return [`${changesRelOf(root)}/*/review/outcomes.yaml`];
141
+ }
142
+ }
143
+ var proposedFile = (root) => join(stateDirOf(root), ".index", "proposed.json");
144
+ async function readProposed(root) {
145
+ try {
146
+ return JSON.parse(await readFile(proposedFile(root), "utf8"));
147
+ } catch {
148
+ return {};
149
+ }
150
+ }
151
+ async function proposePlan(root, scope, o = {}) {
152
+ const git = o.git ?? createGit();
153
+ const dirs = scopeDirs(root, scope).filter((d) => d && !d.startsWith(".."));
154
+ const out = (await git([
155
+ "-c",
156
+ "core.quotePath=false",
157
+ "status",
158
+ "--porcelain=v1",
159
+ "-z",
160
+ "--untracked-files=all",
161
+ "--",
162
+ ...dirs
163
+ ], root)).stdout;
164
+ const files = [];
165
+ const parts = out.split("\0");
166
+ for (let i = 0; i < parts.length; i++) {
167
+ const e = parts[i];
168
+ if (e.length < 4)
169
+ continue;
170
+ const status = e.slice(0, 2).trim() || "M";
171
+ if (status.startsWith("R"))
172
+ files.push({ path: e.slice(3), status, from: parts[++i] });
173
+ else
174
+ files.push({ path: e.slice(3), status });
175
+ }
176
+ const was = await readProposed(root);
177
+ for (const f of files) {
178
+ const p = was[f.path];
179
+ if (!p)
180
+ continue;
181
+ if (p.branch && !await git(["rev-parse", "--verify", "--quiet", `refs/remotes/origin/${p.branch}`], root).then(() => true, () => false))
182
+ continue;
183
+ const blob = existsSync(join(root, f.path)) ? (await git(["hash-object", "--", f.path], root).catch(() => ({ stdout: "" }))).stdout.trim() : "";
184
+ if (blob === p.blob)
185
+ f.proposed = p.where;
186
+ }
187
+ const stamp = (o.now ?? /* @__PURE__ */ new Date()).toISOString();
188
+ const day = `${stamp.slice(0, 10)}-${stamp.slice(11, 19).replace(/:/g, "")}`;
189
+ const who = (o.by ?? "someone").toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-|-$/g, "");
190
+ return {
191
+ scope,
192
+ files: files.sort((a, b) => a.path.localeCompare(b.path)),
193
+ branch: `propose/${scope}/${day}-${who || "someone"}`,
194
+ title: TITLES[scope]
195
+ };
196
+ }
197
+ async function proposeForReview(root, o, io) {
198
+ const plan = await proposePlan(root, o.scope, {
199
+ ...o.git ? { git: o.git } : {},
200
+ ...o.now ? { now: o.now } : {},
201
+ by: o.by
202
+ });
203
+ if (o.branch && new RegExp(`^propose/${o.scope}/[0-9a-z-]+$`).test(o.branch))
204
+ plan.branch = o.branch;
205
+ const seen = new Map(plan.files.map((f) => [f.path, f]));
206
+ const picked = o.files.filter((f) => seen.has(f));
207
+ const files = [
208
+ ...new Set(picked.flatMap((f) => [f, ...seen.get(f).from ? [seen.get(f).from] : []]))
209
+ ];
210
+ if (!picked.length) {
211
+ io.err("Nothing to propose: none of those files has a change now. Look at the list again.");
212
+ return 2;
213
+ }
214
+ const op = await loadOrgPack(orgPackDirOf(root));
215
+ const gitHost = o.gitHost ?? createAdapters(op.runtime, {}, { store: fileStepStore(root), root, procedures: op.procedures }).gitHost;
216
+ if (!gitHost) {
217
+ io.err("No Git host is configured. Set adapters.gitHost in org-pack/runtime.yaml.");
218
+ return 1;
219
+ }
220
+ const repo = op.runtime.adapters.gitHost?.settings.metarepo;
221
+ if (typeof repo !== "string") {
222
+ io.err("Say which repo on the Git host is the metarepo: set metarepo under adapters.gitHost.settings in runtime.yaml.");
223
+ return 1;
224
+ }
225
+ const at = (o.now ?? /* @__PURE__ */ new Date()).toISOString();
226
+ const approval = { by: o.by, at, ref: plan.branch };
227
+ const base = (await gitHost.getRepo(repo)).defaultBranch;
228
+ const title = o.title?.trim() || plan.title;
229
+ const publisher = o.publisher ?? gitHandoffPublisher();
230
+ try {
231
+ await publisher.publish({ root, branch: plan.branch, base, files, message: title, approval });
232
+ io.out(`Pushed ${files.length} file${files.length === 1 ? "" : "s"} to ${plan.branch}.`);
233
+ } catch (e) {
234
+ io.out(`The branch ${plan.branch} wasn't pushed (${e.message.split("\n")[0]}): push it yourself before the PR is opened.`);
235
+ }
236
+ let pr;
237
+ try {
238
+ pr = await gitHost.createPullRequest({
239
+ repo,
240
+ head: plan.branch,
241
+ base,
242
+ title,
243
+ body: [
244
+ `${title}, proposed from the Atticus app by ${o.by}.`,
245
+ "",
246
+ "Files:",
247
+ ...files.map((f) => `- ${f}`),
248
+ "",
249
+ "A person reviews and merges this PR; Atticus never merges."
250
+ ].join("\n")
251
+ }, approval);
252
+ } catch (e) {
253
+ io.err(`The PR wasn't opened: ${e.message.split("\n")[0]}`);
254
+ return 1;
255
+ }
256
+ try {
257
+ const was = await readProposed(root);
258
+ const where = pr.url.startsWith("manual:") ? plan.branch : pr.url;
259
+ const g2 = o.git ?? createGit();
260
+ for (const f of files) {
261
+ const blob = existsSync(join(root, f)) ? (await g2(["hash-object", "--", f], root)).stdout.trim() : "";
262
+ was[f] = { blob, where, branch: plan.branch };
263
+ }
264
+ await mkdir(dirname(proposedFile(root)), { recursive: true });
265
+ await writeFile(proposedFile(root), JSON.stringify(was, null, 2) + "\n", "utf8");
266
+ } catch {
267
+ }
268
+ io.out(pr.url.startsWith("manual:") ? `The PR is a step for you on Home: open it on the Git host from ${plan.branch} and record its link.` : `PR #${pr.number} is open for review: ${pr.url}`);
269
+ io.out("When it merges, Bring in what merged updates your copy of the metarepo.");
270
+ return 0;
271
+ }
272
+ async function bringInMerged(root, io, o = {}) {
273
+ const git = o.git ?? createGit();
274
+ const run = async (args) => (await git(args, root)).stdout;
275
+ const first = (e) => e.message.split("\n")[0];
276
+ const up = (await run(["rev-parse", "--abbrev-ref", "--symbolic-full-name", "@{u}"]).catch(() => "")).trim();
277
+ if (!up) {
278
+ io.err("This branch follows no remote branch, so there is nothing to bring in.");
279
+ return 2;
280
+ }
281
+ try {
282
+ await run(["fetch", "--quiet", "--prune", up.split("/")[0]]);
283
+ } catch (e) {
284
+ io.err(`The remote couldn't be reached, so nothing was changed: ${first(e)}`);
285
+ return 1;
286
+ }
287
+ const ancestor = await run(["merge-base", "--is-ancestor", "HEAD", up]).then(() => true, () => false);
288
+ if (!ancestor) {
289
+ io.err(`Your branch has commits ${up} doesn't, so nothing was changed. Push them in a pull request, or ask someone who uses git to bring the two together.`);
290
+ return 1;
291
+ }
292
+ const incoming = new Set((await run(["-c", "core.quotePath=false", "diff", "--name-only", "-z", "HEAD", up])).split("\0").filter(Boolean));
293
+ const status = await run([
294
+ "-c",
295
+ "core.quotePath=false",
296
+ "status",
297
+ "--porcelain=v1",
298
+ "-z",
299
+ "--untracked-files=all"
300
+ ]);
301
+ const parts = status.split("\0");
302
+ const kept = [];
303
+ const tidy = [];
304
+ for (let i = 0; i < parts.length; i++) {
305
+ const e = parts[i];
306
+ if (e.length < 4)
307
+ continue;
308
+ const st = e.slice(0, 2);
309
+ const path = e.slice(3);
310
+ if (st.startsWith("R")) {
311
+ kept.push(path, parts[++i]);
312
+ continue;
313
+ }
314
+ const theirs = (await run(["rev-parse", "--verify", "--quiet", `${up}:${path}`]).catch(() => "")).trim();
315
+ const mine = existsSync(join(root, path)) ? (await run(["hash-object", "--", path]).catch(() => "")).trim() : "";
316
+ const bothGone = !theirs && !mine && st.includes("D");
317
+ if (!bothGone && (!theirs || theirs !== mine)) {
318
+ kept.push(path);
319
+ continue;
320
+ }
321
+ const inHead = await run(["cat-file", "-e", `HEAD:${path}`]).then(() => true, () => false);
322
+ tidy.push({ path, inHead, staged: st[0] !== " " && st[0] !== "?" });
323
+ }
324
+ const own = new RegExp(`^${changesRelOf(root).replace(/[.*+?^${}()|[\]\\]/g, "\\$&")}/[^/]+/change\\.yaml$`);
325
+ const ownClash = kept.filter((k) => incoming.has(k) && own.test(k) && existsSync(join(root, k)));
326
+ const clash = kept.filter((k) => incoming.has(k) && !ownClash.includes(k));
327
+ if (clash.length) {
328
+ io.err(`What merged also changes files you edited, so nothing was changed: ${clash.join(", ")}. Propose your edits for review, or ask someone who uses git to bring them together.`);
329
+ return 1;
330
+ }
331
+ const done = [];
332
+ const putBack = async () => {
333
+ for (const p of done)
334
+ await run(["checkout", up, "--", p]).then(() => run(["reset", "-q", "--", p])).catch(() => void 0);
335
+ };
336
+ const held = /* @__PURE__ */ new Map();
337
+ const original = /* @__PURE__ */ new Map();
338
+ const tmp = await mkdtemp(join(tmpdir(), "atticus-bring-in-"));
339
+ try {
340
+ for (const k of ownClash) {
341
+ const at = async (rev) => await run(["show", `${rev}:${k}`]).catch(() => "");
342
+ const base = join(tmp, "base");
343
+ const ours = join(tmp, "ours");
344
+ const theirs = join(tmp, "theirs");
345
+ const inHead = await run(["cat-file", "-e", `HEAD:${k}`]).then(() => true, () => false);
346
+ const id = k.split("/").at(-2);
347
+ const newest = async (prefix) => (await run([
348
+ "for-each-ref",
349
+ "--sort=-committerdate",
350
+ "--count=1",
351
+ "--format=%(refname)",
352
+ prefix
353
+ ]).catch(() => "")).trim() || void 0;
354
+ const publishedOnRemote = async (ref) => {
355
+ const fork = (await run(["merge-base", "HEAD", ref]).catch(() => "")).trim();
356
+ if (!fork)
357
+ return void 0;
358
+ const after = (await run(["rev-list", "--first-parent", "--reverse", `${fork}..${ref}`]).catch(() => "")).trim();
359
+ return after.split("\n")[0] || void 0;
360
+ };
361
+ let handoff;
362
+ if (!inHead) {
363
+ handoff = await newest(`refs/heads/handoff/${id}/`);
364
+ if (!handoff) {
365
+ const remote = await newest(`refs/remotes/origin/handoff/${id}/`);
366
+ if (remote)
367
+ handoff = await publishedOnRemote(remote);
368
+ }
369
+ }
370
+ const baseText = inHead ? await at("HEAD") : handoff ? await at(handoff) : "";
371
+ const mine = await readFile(join(root, k), "utf8");
372
+ original.set(k, mine);
373
+ const theirsText = await at(up);
374
+ const fields = mergeChangeText(baseText, mine, theirsText);
375
+ if (fields && !fields.ok) {
376
+ io.err(`What merged also changes ${fields.field} in ${k} where your copy changed it differently, so nothing was changed. Propose your edits for review, or ask someone who uses git to bring them together.`);
377
+ return 1;
378
+ }
379
+ if (fields) {
380
+ held.set(k, fields.text);
381
+ continue;
382
+ }
383
+ await writeFile(base, baseText, "utf8");
384
+ await writeFile(ours, mine, "utf8");
385
+ await writeFile(theirs, theirsText, "utf8");
386
+ const merged = await git(["merge-file", "-p", ours, base, theirs], root).then((r) => ({ ok: true, text: r.stdout }), () => ({ ok: false, text: "" }));
387
+ if (!merged.ok) {
388
+ io.err(`What merged also changes ${k} where your copy changed it, so nothing was changed. Propose your edits for review, or ask someone who uses git to bring them together.`);
389
+ return 1;
390
+ }
391
+ held.set(k, merged.text);
392
+ }
393
+ } finally {
394
+ await rm(tmp, { recursive: true, force: true });
395
+ }
396
+ const ownEdits = kept.filter((k) => !held.has(k));
397
+ const editsText = (list) => list.length > 5 ? `${list.slice(0, 5).join(", ")} and ${list.length - 5} more` : list.join(", ");
398
+ const restoreHeld = async () => {
399
+ for (const [k, text] of held)
400
+ await writeFile(join(root, k), text, "utf8");
401
+ };
402
+ try {
403
+ for (const k of ownClash) {
404
+ const inHead = await run(["cat-file", "-e", `HEAD:${k}`]).then(() => true, () => false);
405
+ if (inHead)
406
+ await run(["checkout", "HEAD", "--", k]);
407
+ else {
408
+ await run(["rm", "--cached", "--quiet", "--ignore-unmatch", "--", k]);
409
+ await rm(join(root, k), { force: true });
410
+ }
411
+ }
412
+ for (const t of tidy) {
413
+ if (t.inHead)
414
+ await run(["checkout", "HEAD", "--", t.path]);
415
+ else {
416
+ if (t.staged)
417
+ await run(["rm", "--cached", "--quiet", "--", t.path]);
418
+ await rm(join(root, t.path), { force: true });
419
+ }
420
+ done.push(t.path);
421
+ }
422
+ await run(["merge", "--ff-only", "--quiet", up]);
423
+ await restoreHeld();
424
+ } catch (e) {
425
+ await putBack();
426
+ for (const [k, text] of original)
427
+ await writeFile(join(root, k), text, "utf8");
428
+ io.err(`Your copy couldn't be brought up to ${up}: ${first(e)}. Your files are as they were${kept.length ? `, and your own edits stay: ${editsText(kept)}` : ""}.`);
429
+ return 1;
430
+ }
431
+ const closed = await closeMergedSteps(root, up, run, o.now);
432
+ const sayClosed = () => {
433
+ if (closed.length)
434
+ io.out(`Closed the manual steps of ${closed.length === 1 ? "a pull request" : `${closed.length} pull requests`} that merged (merged, seen by Bring in): ${closed.join(", ")}.`);
435
+ };
436
+ if (!incoming.size && !done.length) {
437
+ io.out(`Nothing new has merged on ${up} yet: your copy is up to date with it.`);
438
+ if (kept.length)
439
+ io.out(`Your own edits stay as they were: ${editsText(kept)}.`);
440
+ sayClosed();
441
+ return 0;
442
+ }
443
+ io.out(`Brought in what merged on ${up}${done.length ? ` (${done.length === 1 ? "1 file was" : `${done.length} files were`} already the same)` : ""}.`);
444
+ if (held.size)
445
+ io.out(`Merged with your copy's newer state: ${[...held.keys()].join(", ")} (Sync's state and the reviewer's edits are both kept).`);
446
+ if (ownEdits.length)
447
+ io.out(`Your own edits stay as they were: ${editsText(ownEdits)}.`);
448
+ sayClosed();
449
+ return 0;
450
+ }
451
+ async function closeMergedSteps(root, up, run, now) {
452
+ let repo;
453
+ try {
454
+ repo = (await loadOrgPack(orgPackDirOf(root))).runtime.adapters.gitHost?.settings.metarepo;
455
+ } catch {
456
+ return [];
457
+ }
458
+ if (typeof repo !== "string")
459
+ return [];
460
+ const store = fileStepStore(root);
461
+ const steps = await store.list({ system: "git-host" }).catch(() => []);
462
+ const opens = steps.filter((s) => s.action === "open-pull-request" && s.state !== "skipped" && s.inputs.repo === repo && typeof s.inputs.head === "string");
463
+ if (!opens.length)
464
+ return [];
465
+ const mainLine = new Set((await run(["rev-list", "--first-parent", up]).catch(() => "")).split("\n").filter(Boolean));
466
+ const remote = up.split("/")[0];
467
+ const at = (now ?? /* @__PURE__ */ new Date()).toISOString().replace(/\.\d{3}Z$/, "Z");
468
+ const close = (s, values) => store.save({
469
+ ...s,
470
+ state: "done",
471
+ recorded: {
472
+ at,
473
+ by: "atticus",
474
+ values,
475
+ via: "person",
476
+ evidence: [],
477
+ note: "merged, seen by Bring in"
478
+ }
479
+ });
480
+ const out = [];
481
+ for (const open of opens) {
482
+ const number = open.inputs.number;
483
+ const related = steps.filter((s) => s.state === "open" && s.inputs.repo === repo && s.inputs.number === number && (s.action === "report-pull-request" || s.action === "merge-pull-request"));
484
+ if (open.state !== "open" && !related.length)
485
+ continue;
486
+ const head = String(open.inputs.head);
487
+ let tip = "";
488
+ for (const ref of [`refs/remotes/${remote}/${head}`, `refs/heads/${head}`]) {
489
+ tip = (await run(["rev-parse", "--verify", "--quiet", `${ref}^{commit}`]).catch(() => "")).trim();
490
+ if (tip)
491
+ break;
492
+ }
493
+ if (!tip || mainLine.has(tip))
494
+ continue;
495
+ const merged = await run(["merge-base", "--is-ancestor", tip, up]).then(() => true, () => false);
496
+ if (!merged)
497
+ continue;
498
+ if (open.state === "open")
499
+ await close(open, {
500
+ number: Number(number),
501
+ url: `manual://git-host/${repo}/pull/${String(number)}`
502
+ });
503
+ for (const s of related)
504
+ await close(s, s.action === "report-pull-request" ? { merged: true, checksPassing: true } : {});
505
+ out.push(head);
506
+ }
507
+ return out;
508
+ }
509
+ export {
510
+ PROPOSE_SCOPES,
511
+ bringInMerged,
512
+ proposeForReview,
513
+ proposePlan,
514
+ scopeDirs
515
+ };
@@ -14,26 +14,26 @@ import {
14
14
  scaffoldDialect,
15
15
  surveyRepos,
16
16
  testDialect
17
- } from "./chunk-G5BYKJIM.js";
18
- import "./chunk-EZBAS5BL.js";
19
- import "./chunk-KCQS52TH.js";
20
- import "./chunk-IPSFMTK2.js";
21
- import "./chunk-TNCROWPQ.js";
22
- import "./chunk-7IM4BVVH.js";
17
+ } from "./chunk-P2VBXX7N.js";
18
+ import "./chunk-4SLBCEPD.js";
19
+ import "./chunk-64AADMTW.js";
20
+ import "./chunk-JYMIB5XY.js";
21
+ import "./chunk-CPK7QSBG.js";
22
+ import "./chunk-YO2PKTXT.js";
23
23
  import {
24
24
  SYNTAX_LANGUAGES,
25
25
  syntaxLanguageOf,
26
26
  syntaxOutline
27
- } from "./chunk-RBXDHCN7.js";
28
- import "./chunk-ZQC7MNQB.js";
29
- import "./chunk-TLDL2ZZI.js";
30
- import "./chunk-QNMLLYTN.js";
27
+ } from "./chunk-TWQRPM76.js";
28
+ import "./chunk-XOL3GFW2.js";
29
+ import "./chunk-QHJJMZLX.js";
30
+ import "./chunk-7AB6OWTV.js";
31
31
  import {
32
32
  RecordId,
33
33
  orgPackDirOf,
34
34
  require_dist
35
- } from "./chunk-YK6CSODO.js";
36
- import "./chunk-MMB2OHUY.js";
35
+ } from "./chunk-PAINMSID.js";
36
+ import "./chunk-ODMBPDDV.js";
37
37
  import {
38
38
  __toESM
39
39
  } from "./chunk-TV45EUGM.js";
@@ -5,7 +5,7 @@ var __atticusUrl = (p) => new URL("./" + p, import.meta.url).href;
5
5
  var __atticusPath = (p) => __atticusFileURLToPath(__atticusUrl(p));
6
6
 
7
7
  // packages/cli/dist/version.js
8
- var VERSION = "2.0.0-beta.18";
8
+ var VERSION = "2.0.0-beta.21";
9
9
  function versionAtLeast(v, min) {
10
10
  const a = v.replace(/^v/, "").split(/[.+-]/).map(Number);
11
11
  const b = min.split(".").map(Number);
@@ -5,14 +5,14 @@ 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-NGT5LLSE.js";
8
+ } from "./chunk-TQ4TG57V.js";
9
9
  import "./chunk-VOGCSYOI.js";
10
10
  import {
11
11
  changeFolder,
12
12
  changeStore
13
- } from "./chunk-IOW6BF3U.js";
14
- import "./chunk-43E6XX67.js";
15
- import "./chunk-V3UEPUHT.js";
13
+ } from "./chunk-HSZMPH5T.js";
14
+ import "./chunk-D2WSW4GU.js";
15
+ import "./chunk-4KNOJC6J.js";
16
16
  import {
17
17
  estateFacts,
18
18
  estateRepos,
@@ -20,19 +20,19 @@ import {
20
20
  joinReposOf,
21
21
  outsideProfileSystems,
22
22
  outsideSystems
23
- } from "./chunk-EZBAS5BL.js";
24
- import "./chunk-KCQS52TH.js";
25
- import "./chunk-IPSFMTK2.js";
23
+ } from "./chunk-4SLBCEPD.js";
24
+ import "./chunk-64AADMTW.js";
25
+ import "./chunk-JYMIB5XY.js";
26
26
  import {
27
27
  attachToChange,
28
28
  readChangeInputs,
29
29
  readVendorSpec
30
- } from "./chunk-TNCROWPQ.js";
31
- import "./chunk-7IM4BVVH.js";
32
- import "./chunk-RBXDHCN7.js";
33
- import "./chunk-ZQC7MNQB.js";
34
- import "./chunk-TLDL2ZZI.js";
35
- import "./chunk-QNMLLYTN.js";
30
+ } from "./chunk-CPK7QSBG.js";
31
+ import "./chunk-YO2PKTXT.js";
32
+ import "./chunk-TWQRPM76.js";
33
+ import "./chunk-XOL3GFW2.js";
34
+ import "./chunk-QHJJMZLX.js";
35
+ import "./chunk-7AB6OWTV.js";
36
36
  import {
37
37
  PROTOTYPE_GROUPS,
38
38
  comparePrototype,
@@ -42,8 +42,8 @@ import {
42
42
  joinConventions,
43
43
  parseFacts,
44
44
  prototypeArchitectureSection
45
- } from "./chunk-YK6CSODO.js";
46
- import "./chunk-MMB2OHUY.js";
45
+ } from "./chunk-PAINMSID.js";
46
+ import "./chunk-ODMBPDDV.js";
47
47
  import "./chunk-TV45EUGM.js";
48
48
 
49
49
  // packages/cli/dist/prototype-commands.js
@@ -206,6 +206,8 @@ var sorted = (xs) => [...new Set(xs)].sort();
206
206
  var ATTACHED = /^prototype-(.+)\.md$/;
207
207
  async function changePrototypes(root, change) {
208
208
  const quiet = { out: () => void 0, err: () => void 0 };
209
+ const { op } = await intakeContext(root, quiet);
210
+ const candidates = estateRepos(op).filter((r) => isPrototypeType(r.type)).map((r) => r.id).sort();
209
211
  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);
210
212
  const prototypes = [];
211
213
  for (const f of files) {
@@ -218,7 +220,7 @@ async function changePrototypes(root, change) {
218
220
  comparison: got.comparison
219
221
  });
220
222
  }
221
- return { prototypes };
223
+ return { prototypes, candidates };
222
224
  }
223
225
  async function attachPrototype(root, change, repo, o, io) {
224
226
  const store = changeStore(root);