@maycombhq/atticus 2.0.0-beta.21 → 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 (299) hide show
  1. package/dist/bin.js +12 -7
  2. package/dist/{chunk-BXBCMGIQ.js → chunk-24OXGB3P.js} +1 -1
  3. package/dist/{chunk-PRW3HXM3.js → chunk-27AJAKX7.js} +29 -5
  4. package/dist/{chunk-PQH56YF6.js → chunk-2QPJ4E4Z.js} +6 -4
  5. package/dist/{chunk-7CZHUZBL.js → chunk-2UMSHYCB.js} +38 -27
  6. package/dist/{chunk-2V2ZPQQU.js → chunk-2WUTCPPJ.js} +9 -7
  7. package/dist/{chunk-YF5DZCPN.js → chunk-2YSD6E6V.js} +38 -34
  8. package/dist/{chunk-QHJJMZLX.js → chunk-3424TLIJ.js} +204 -97
  9. package/dist/{chunk-62DLJSLV.js → chunk-3ASYYMOX.js} +10 -8
  10. package/dist/{chunk-XOL3GFW2.js → chunk-3EWKO457.js} +111 -43
  11. package/dist/{chunk-G5YJBNDZ.js → chunk-3EX5HCZD.js} +8 -6
  12. package/dist/{chunk-WFU77T3A.js → chunk-3MYBT62N.js} +5 -5
  13. package/dist/{chunk-6EXDI5GI.js → chunk-3UHV76UD.js} +72 -41
  14. package/dist/{chunk-LU4MQVAL.js → chunk-3ZA3AK2D.js} +11 -10
  15. package/dist/{chunk-P2VBXX7N.js → chunk-4ETO2FXE.js} +11 -9
  16. package/dist/{chunk-GK4PYVEC.js → chunk-4FLNCK6Q.js} +31 -14
  17. package/dist/{chunk-64AADMTW.js → chunk-4GAB5ZOZ.js} +943 -336
  18. package/dist/{chunk-FLVZFTLQ.js → chunk-4MYHETJ3.js} +20 -18
  19. package/dist/chunk-4R3TO4VL.js +94 -0
  20. package/dist/{chunk-7EFILTCI.js → chunk-5F7GFN2F.js} +28 -0
  21. package/dist/chunk-5MYE42AP.js +43 -0
  22. package/dist/chunk-5O7U67UA.js +57 -0
  23. package/dist/{chunk-MZGRDONP.js → chunk-5OXKCH4Z.js} +54 -37
  24. package/dist/{chunk-PUEWDYGP.js → chunk-5VTIWEWP.js} +3 -2
  25. package/dist/{chunk-3G6S7LAA.js → chunk-63NFFAGI.js} +14 -12
  26. package/dist/{chunk-LIJJCBQI.js → chunk-66AQ2JIU.js} +15 -16
  27. package/dist/chunk-6JVPBGQG.js +50 -0
  28. package/dist/{chunk-WAZEXEJH.js → chunk-6NCPLIIP.js} +167 -2
  29. package/dist/{chunk-D57MFJPP.js → chunk-6NN36LVK.js} +3 -3
  30. package/dist/{chunk-G6IQYM25.js → chunk-6R5VHR3N.js} +8 -6
  31. package/dist/{chunk-Z3QFH7YG.js → chunk-6RQOINER.js} +5 -4
  32. package/dist/{chunk-TQTRWENN.js → chunk-6RYB3EET.js} +14 -12
  33. package/dist/{chunk-FYBF5MB2.js → chunk-6SNTHK43.js} +13 -11
  34. package/dist/{chunk-FRHD22WM.js → chunk-6Y4FXOMI.js} +27 -23
  35. package/dist/{chunk-LWDNKE4X.js → chunk-6ZFF7XSL.js} +6 -6
  36. package/dist/{chunk-FQ6WH6PB.js → chunk-6ZSYLZ7O.js} +6 -4
  37. package/dist/{chunk-LQH4P45K.js → chunk-73CC73I4.js} +1 -1
  38. package/dist/{chunk-Q46QDDMF.js → chunk-73GFVW2L.js} +14 -9
  39. package/dist/{chunk-QKMRFNMA.js → chunk-73V2OONC.js} +17 -15
  40. package/dist/{chunk-FVMPFCDS.js → chunk-75OMRKY2.js} +4 -4
  41. package/dist/{chunk-XEQCQO66.js → chunk-7IFTSAHP.js} +10 -8
  42. package/dist/{chunk-4FOAYLI4.js → chunk-7K5OH45X.js} +139 -17
  43. package/dist/{chunk-3SSTNB4E.js → chunk-7NQAGYK4.js} +34 -14
  44. package/dist/{chunk-URIKUID7.js → chunk-7XWJ6ED2.js} +14 -12
  45. package/dist/{chunk-TYD6I4CZ.js → chunk-7XYLNQFO.js} +7 -7
  46. package/dist/{chunk-BPPU3PW7.js → chunk-7YQBDE5W.js} +10 -4
  47. package/dist/{chunk-CPK7QSBG.js → chunk-A4JXVO5O.js} +8 -6
  48. package/dist/{chunk-YJ3TBOTK.js → chunk-AFBCNZRZ.js} +29 -26
  49. package/dist/{chunk-TW3KOSQK.js → chunk-AGOLEMHK.js} +13 -13
  50. package/dist/chunk-AHFQHPFF.js +49 -0
  51. package/dist/{chunk-NTAVOWYD.js → chunk-APDN6UOR.js} +118 -18
  52. package/dist/chunk-AQRUQNFB.js +322 -0
  53. package/dist/{chunk-KYZMRSPS.js → chunk-AVMWESFZ.js} +6 -3
  54. package/dist/chunk-B4AEL3RF.js +1011 -0
  55. package/dist/{chunk-GS76RXQE.js → chunk-BAY4K55I.js} +15 -12
  56. package/dist/{chunk-4CLK2RJO.js → chunk-BFL4PO64.js} +9 -7
  57. package/dist/{chunk-GCS3FZOB.js → chunk-BFMTGNAQ.js} +15 -4
  58. package/dist/{chunk-YBOVNMHC.js → chunk-BP33TBLI.js} +29 -16
  59. package/dist/chunk-BQGDB6ZL.js +7342 -0
  60. package/dist/{chunk-BXZ4PKIT.js → chunk-BUUJ7N4O.js} +15 -11
  61. package/dist/{chunk-HGHRSF3E.js → chunk-BYBU2EIB.js} +38 -19
  62. package/dist/{chunk-TQ4TG57V.js → chunk-C6ORPLCN.js} +4 -4
  63. package/dist/{chunk-HWD4JPU7.js → chunk-CA3DKO4D.js} +27 -3
  64. package/dist/{chunk-YTTNTQOX.js → chunk-CFUDAW3R.js} +17 -15
  65. package/dist/{chunk-OPQZISG3.js → chunk-CJEBRJBS.js} +5 -4
  66. package/dist/{chunk-RALY3E5U.js → chunk-CKVBDVIW.js} +6 -4
  67. package/dist/{chunk-DUPZPDCJ.js → chunk-CMB7FXHJ.js} +42 -16
  68. package/dist/{chunk-YIGBJNH4.js → chunk-CQ7RF4QN.js} +5 -4
  69. package/dist/{chunk-YAH5IQAL.js → chunk-CS4BMJLL.js} +6 -5
  70. package/dist/{chunk-455SYIIE.js → chunk-CT6NINGR.js} +5 -3
  71. package/dist/chunk-CXTG6AWM.js +40 -0
  72. package/dist/{chunk-JYMIB5XY.js → chunk-CZ2ZS7AT.js} +170 -45
  73. package/dist/{chunk-K332XW7K.js → chunk-D6BVLTDV.js} +100 -33
  74. package/dist/chunk-DCRYOMTM.js +37 -0
  75. package/dist/{chunk-G6X4YL4D.js → chunk-DHKDH464.js} +5 -4
  76. package/dist/{chunk-JRVNXLZP.js → chunk-DSHRA72L.js} +14 -12
  77. package/dist/{chunk-LNWEWYCM.js → chunk-E3PDCQRH.js} +2813 -621
  78. package/dist/chunk-EHXDB3SA.js +25 -0
  79. package/dist/{chunk-EZIN5E5B.js → chunk-EMVZIOOD.js} +11 -9
  80. package/dist/{chunk-IFHDV6KQ.js → chunk-ENH6Z4TY.js} +21 -20
  81. package/dist/{chunk-YKTE2RU3.js → chunk-EVTI22PQ.js} +7 -2
  82. package/dist/{chunk-2D7PWSOK.js → chunk-EXJZBL5N.js} +22 -20
  83. package/dist/{chunk-77O633L5.js → chunk-FBCVC2GJ.js} +14 -12
  84. package/dist/{chunk-HS4BGB4G.js → chunk-FJVUHQPS.js} +37 -24
  85. package/dist/{chunk-4KNOJC6J.js → chunk-FL344WQD.js} +270 -221
  86. package/dist/{chunk-GNWAOVFQ.js → chunk-FMJYKLDY.js} +5 -5
  87. package/dist/chunk-FMR2D3AZ.js +41 -0
  88. package/dist/{chunk-PAINMSID.js → chunk-FPBUTZI5.js} +3102 -7859
  89. package/dist/{chunk-ZOSD4FXV.js → chunk-FQVSLBTV.js} +3 -3
  90. package/dist/chunk-FRAEQVYN.js +52 -0
  91. package/dist/{chunk-UDXWIPCB.js → chunk-FRCOKUU4.js} +9 -7
  92. package/dist/{chunk-UYLBRRFK.js → chunk-FSN6JFXB.js} +129 -27
  93. package/dist/{chunk-BC6KKZ67.js → chunk-FTLYXMHA.js} +9 -6
  94. package/dist/{chunk-FAJDKNSD.js → chunk-FVYZ4Y52.js} +16 -3
  95. package/dist/{chunk-TWQRPM76.js → chunk-G6EFXTUO.js} +23 -16
  96. package/dist/{chunk-ZFQMMU5Y.js → chunk-G7VBMOZH.js} +6 -2
  97. package/dist/{chunk-VYOCPTUB.js → chunk-GM4EFHUX.js} +17 -15
  98. package/dist/chunk-GOZLTLRY.js +232 -0
  99. package/dist/chunk-GPNMSX5H.js +36 -0
  100. package/dist/{chunk-OZJ3JLYI.js → chunk-GUGQSIQM.js} +10 -9
  101. package/dist/chunk-H4VO6WG3.js +10 -0
  102. package/dist/{chunk-QJCJOMW3.js → chunk-HJQVUOUL.js} +16 -18
  103. package/dist/chunk-HMWJWYE2.js +31 -0
  104. package/dist/{chunk-4TKVU2I2.js → chunk-HMZ2DRBC.js} +2 -2
  105. package/dist/{chunk-HK3VOHIE.js → chunk-HRS5O7VV.js} +609 -171
  106. package/dist/{chunk-7FUIVIBG.js → chunk-HUGQZQ2K.js} +13 -8
  107. package/dist/{chunk-QOOEYDNJ.js → chunk-ICBGVVRI.js} +10 -10
  108. package/dist/{chunk-XG4WJHLQ.js → chunk-IGOE6KPG.js} +49 -20
  109. package/dist/{chunk-4SLBCEPD.js → chunk-IKAW2KJU.js} +95 -64
  110. package/dist/{chunk-L4CESDPB.js → chunk-IMZFOMVX.js} +1 -1
  111. package/dist/{chunk-XQ3YZ4QW.js → chunk-ISG547IS.js} +24 -22
  112. package/dist/{chunk-BA2HUMDN.js → chunk-IYNCSYU4.js} +5 -2
  113. package/dist/{chunk-UEVZZZU2.js → chunk-J25YOUIZ.js} +5 -4
  114. package/dist/chunk-J2CDBSFP.js +69 -0
  115. package/dist/chunk-J2H7YG3K.js +34 -0
  116. package/dist/{chunk-O4IKAIZ2.js → chunk-J32IPTVQ.js} +28 -22
  117. package/dist/{chunk-3AQ2R5NL.js → chunk-J4CPHJUL.js} +11 -9
  118. package/dist/{chunk-VUVGX5L2.js → chunk-JFFKHIM6.js} +1 -1
  119. package/dist/chunk-JMEWJPF2.js +384 -0
  120. package/dist/{chunk-LO3BLMVG.js → chunk-JSP73CDW.js} +13 -5
  121. package/dist/chunk-JXAKYP45.js +63 -0
  122. package/dist/{chunk-PNQLCRSS.js → chunk-K4OXYSGS.js} +7 -5
  123. package/dist/{chunk-3J5I7ZOU.js → chunk-K4RNVDR4.js} +4 -4
  124. package/dist/{chunk-LEBR5NHW.js → chunk-K757G7AD.js} +18 -15
  125. package/dist/{chunk-AHW3RY3X.js → chunk-KDJ2YKAZ.js} +8 -7
  126. package/dist/{chunk-4WXRPQDE.js → chunk-KT6Q44CA.js} +178 -31
  127. package/dist/{chunk-EFCQSMXB.js → chunk-KTNOBTV5.js} +10 -4
  128. package/dist/chunk-KVVNAUIG.js +66 -0
  129. package/dist/{chunk-26Z7OGQW.js → chunk-L3RCQWVQ.js} +64 -31
  130. package/dist/{chunk-3WON4G3M.js → chunk-LHH5KG5A.js} +21 -6
  131. package/dist/{chunk-NCB6656Z.js → chunk-LM45GMMB.js} +11 -8
  132. package/dist/{chunk-2HH3UCZM.js → chunk-LO6Y7OTG.js} +5 -4
  133. package/dist/{chunk-36RY7ZXM.js → chunk-LPDTDFKA.js} +88 -26
  134. package/dist/{chunk-67BP7HXL.js → chunk-LSHSDC6S.js} +19 -17
  135. package/dist/{chunk-GDZB57IU.js → chunk-LZVHP7CT.js} +7 -5
  136. package/dist/{chunk-GC2VK3JT.js → chunk-M3EOFSPY.js} +28 -25
  137. package/dist/chunk-MBYYQHPM.js +31 -0
  138. package/dist/{chunk-HXXP2NTE.js → chunk-MEJ63LDG.js} +35 -12
  139. package/dist/{chunk-2UCRFXFZ.js → chunk-MH2ZK67S.js} +13 -11
  140. package/dist/{chunk-BEPCKDCP.js → chunk-MLGWSBF4.js} +5447 -4165
  141. package/dist/{chunk-NRQ65LTQ.js → chunk-MNIPPBCT.js} +6 -5
  142. package/dist/{chunk-3LZ6P5EP.js → chunk-MUWDB4R4.js} +1 -1
  143. package/dist/{chunk-KDAHXQIE.js → chunk-MWF4PXQR.js} +38 -34
  144. package/dist/{chunk-WNTIOBOG.js → chunk-N2YX6JMY.js} +20 -18
  145. package/dist/{chunk-FY3QIRTL.js → chunk-NAPHHWW2.js} +3 -3
  146. package/dist/{chunk-D2WSW4GU.js → chunk-NC755EKE.js} +8 -2
  147. package/dist/{chunk-BA3U7ALS.js → chunk-NCLZJCXA.js} +26 -22
  148. package/dist/chunk-NKJDO4UC.js +39 -0
  149. package/dist/chunk-NOYOFYAJ.js +59 -0
  150. package/dist/{chunk-LPV6T362.js → chunk-NROSSWMS.js} +8 -6
  151. package/dist/{chunk-ZKYRDV7A.js → chunk-OBUB3H72.js} +14 -12
  152. package/dist/{chunk-ZQLRCA2V.js → chunk-OCQWSFJD.js} +10 -8
  153. package/dist/{chunk-42EPP7OB.js → chunk-OK6JGLE7.js} +14 -12
  154. package/dist/{chunk-MD7KUEJ3.js → chunk-OPWGPQ2N.js} +9 -7
  155. package/dist/{chunk-SH27FYPF.js → chunk-OSYHGGL3.js} +20 -18
  156. package/dist/chunk-OXXZZ7HQ.js +50 -0
  157. package/dist/chunk-P22EPEBR.js +57 -0
  158. package/dist/chunk-P4YUT7W7.js +45 -0
  159. package/dist/chunk-PCCLVIDP.js +217 -0
  160. package/dist/chunk-PFULMC2D.js +48 -0
  161. package/dist/chunk-PGAMTKBI.js +16 -0
  162. package/dist/{chunk-Y6K3CJBU.js → chunk-PNSSE7JM.js} +152 -29
  163. package/dist/{chunk-3UTYPHN3.js → chunk-POEMZECG.js} +1 -1
  164. package/dist/{chunk-GSGIZ2OO.js → chunk-POSDBRKV.js} +27 -24
  165. package/dist/{chunk-YZDZOEV4.js → chunk-POSZFDSQ.js} +3 -3
  166. package/dist/{chunk-7AB6OWTV.js → chunk-PQQKZPBU.js} +31 -25
  167. package/dist/{chunk-K6JB6XTX.js → chunk-PRMUQUWN.js} +20 -15
  168. package/dist/{chunk-ICHDSWEY.js → chunk-PT4USJNN.js} +10 -8
  169. package/dist/{chunk-265LWMOA.js → chunk-PWXB5GBB.js} +18 -16
  170. package/dist/{chunk-DCWN3HFV.js → chunk-PXMV2LLY.js} +6 -5
  171. package/dist/{chunk-THN26IEF.js → chunk-PXW2RZGQ.js} +4 -1
  172. package/dist/{chunk-CG6CULP6.js → chunk-Q367UGYN.js} +7 -5
  173. package/dist/chunk-QA4O2GGC.js +265 -0
  174. package/dist/{chunk-7FHNFCHK.js → chunk-QAVRDONY.js} +225 -375
  175. package/dist/{chunk-VAMHOHUU.js → chunk-QBMLBCQH.js} +16 -13
  176. package/dist/{chunk-WEOMJHPV.js → chunk-QLQIFJP3.js} +18 -15
  177. package/dist/{chunk-UZACEG2C.js → chunk-QLWDIKO4.js} +84 -27
  178. package/dist/{chunk-ZZFHLRQW.js → chunk-QVVGJVVX.js} +18 -16
  179. package/dist/{chunk-WIWTJMMR.js → chunk-QX4MAMUG.js} +23 -21
  180. package/dist/{chunk-JYTIHTIK.js → chunk-QZWRPQTI.js} +6 -6
  181. package/dist/{chunk-5WERBKLE.js → chunk-RCG5IAAT.js} +55 -227
  182. package/dist/chunk-RGZFOKVO.js +106 -0
  183. package/dist/{chunk-C7CEK3KW.js → chunk-RLZFL76D.js} +7 -5
  184. package/dist/{chunk-PTQ3ZALZ.js → chunk-RPQITJNX.js} +14 -12
  185. package/dist/{chunk-JS6WMC3J.js → chunk-RQQYEDAC.js} +10 -8
  186. package/dist/chunk-RQSLHZ7T.js +36 -0
  187. package/dist/{chunk-API5TOUB.js → chunk-RRQUQAXP.js} +1 -1
  188. package/dist/chunk-RYQ4JCFT.js +65 -0
  189. package/dist/chunk-S35DIFJH.js +38 -0
  190. package/dist/{chunk-YWAKDNMH.js → chunk-S5GSQPIN.js} +70 -19
  191. package/dist/chunk-S5XFO4GY.js +42 -0
  192. package/dist/chunk-S6LW2RRC.js +25 -0
  193. package/dist/{chunk-TSM6T6GQ.js → chunk-S6W3D5GS.js} +25 -23
  194. package/dist/{chunk-5PV7S2ZP.js → chunk-S7GUZ45I.js} +4 -3
  195. package/dist/{chunk-MMZUN7ZO.js → chunk-SCT4CEF7.js} +22 -20
  196. package/dist/{chunk-AOCWFA7T.js → chunk-SK5RVP7X.js} +8 -8
  197. package/dist/chunk-SRTUETF5.js +50 -0
  198. package/dist/{chunk-E57AOFYN.js → chunk-SVGGMBJI.js} +15 -13
  199. package/dist/{chunk-OV57AHCG.js → chunk-SWNKO4C4.js} +35 -26
  200. package/dist/chunk-SYP56T2D.js +65 -0
  201. package/dist/{chunk-5CMPVC3N.js → chunk-T33TPFGI.js} +25 -23
  202. package/dist/{chunk-Q26LDIUV.js → chunk-T3FNG2H2.js} +18 -15
  203. package/dist/{chunk-UFE36WJH.js → chunk-T6MAWL5P.js} +6 -4
  204. package/dist/{chunk-LN77DXBM.js → chunk-T6MX7WXM.js} +14 -11
  205. package/dist/{chunk-WCEF7H6L.js → chunk-T7IIEDA3.js} +10 -7
  206. package/dist/{chunk-2HTEMYTB.js → chunk-TABH4RBZ.js} +163 -84
  207. package/dist/{chunk-YO2PKTXT.js → chunk-TDSCKP3V.js} +5 -3
  208. package/dist/{chunk-BVWWPBKD.js → chunk-TMFMXQEN.js} +23 -21
  209. package/dist/{chunk-4B6BT75O.js → chunk-TNCF26JK.js} +83 -26
  210. package/dist/{chunk-75ASLHBT.js → chunk-TUM52SOE.js} +21 -15
  211. package/dist/{chunk-ZLS6PU2O.js → chunk-TV56QLLV.js} +4 -3
  212. package/dist/{chunk-JKIGL3XQ.js → chunk-TVQSXWWV.js} +36 -33
  213. package/dist/{chunk-OKUB6RJA.js → chunk-TXNSQ24G.js} +14 -11
  214. package/dist/{chunk-4CYTJ5TZ.js → chunk-UALE35WK.js} +4 -3
  215. package/dist/{chunk-CNU5Q2D5.js → chunk-UJF7PIMP.js} +35 -27
  216. package/dist/chunk-UMCDODBX.js +53 -0
  217. package/dist/{chunk-M6D2U3YM.js → chunk-UTPIFH4I.js} +4 -3
  218. package/dist/{chunk-COYN3UAN.js → chunk-V7PEHQZU.js} +95 -26
  219. package/dist/{chunk-U3NBK4EU.js → chunk-VJFXQISZ.js} +8 -8
  220. package/dist/chunk-VJZI6KFP.js +47 -0
  221. package/dist/{chunk-ECLXZWAG.js → chunk-VK7WYA64.js} +14 -12
  222. package/dist/{chunk-DDJPM5YX.js → chunk-VKTXFFOZ.js} +5 -3
  223. package/dist/{chunk-LIRVU3HW.js → chunk-VNIN7Q6Q.js} +32 -20
  224. package/dist/{chunk-7QPCGTPS.js → chunk-VRO7KSGL.js} +24 -21
  225. package/dist/{chunk-AZDITBCT.js → chunk-W3AZE7LN.js} +3 -3
  226. package/dist/chunk-W4TNCEI4.js +44 -0
  227. package/dist/{chunk-S2RY3BOD.js → chunk-W5VYJWOG.js} +31 -21
  228. package/dist/{chunk-X2CUXTWU.js → chunk-WF3RCZNO.js} +6 -6
  229. package/dist/{chunk-4D62IZII.js → chunk-WOMQQWTO.js} +7 -5
  230. package/dist/{chunk-UF4UHCIG.js → chunk-WXVTYLVH.js} +6 -4
  231. package/dist/{chunk-EDZ45WIR.js → chunk-WYGTSZHR.js} +18 -14
  232. package/dist/{chunk-HSZMPH5T.js → chunk-WZYM5M4U.js} +592 -133
  233. package/dist/chunk-X5ZHDSLU.js +49 -0
  234. package/dist/chunk-X7XVMYIL.js +5 -0
  235. package/dist/chunk-X7ZKNSK4.js +41 -0
  236. package/dist/{chunk-QE527XRY.js → chunk-XAPXKFIS.js} +26 -23
  237. package/dist/{chunk-HE3HRDNZ.js → chunk-XF6TSZW2.js} +2 -2
  238. package/dist/{chunk-GX74YWR7.js → chunk-XFDDJQT7.js} +16 -14
  239. package/dist/{chunk-5QUOPNLN.js → chunk-XGO74QWR.js} +4 -4
  240. package/dist/chunk-XLZAAAPX.js +43 -0
  241. package/dist/{chunk-NYOABJNK.js → chunk-XMUWPA56.js} +26 -24
  242. package/dist/{chunk-M4H2UG4R.js → chunk-XNFM6WUK.js} +19 -16
  243. package/dist/{chunk-TGVVUKTG.js → chunk-XOMEQVLK.js} +2 -2
  244. package/dist/{chunk-A2G72UI4.js → chunk-Y2H7X3VI.js} +7 -7
  245. package/dist/{chunk-37WE3LS2.js → chunk-Y5IE6YKD.js} +5 -3
  246. package/dist/{chunk-IFFRGC3N.js → chunk-YD3KTW4H.js} +14 -12
  247. package/dist/{chunk-75ZOZFGH.js → chunk-YDCOZOER.js} +20 -18
  248. package/dist/{chunk-6DQYZU2W.js → chunk-YERAAEO4.js} +20 -20
  249. package/dist/{chunk-J5AAZ6OJ.js → chunk-YHMPDIRG.js} +5 -4
  250. package/dist/{chunk-CNPY4NTZ.js → chunk-Z2D4P3R3.js} +15 -13
  251. package/dist/{chunk-E2VXBSIR.js → chunk-Z3H27OMV.js} +6 -4
  252. package/dist/{chunk-AE4P57KK.js → chunk-Z3RAFU5B.js} +17 -15
  253. package/dist/{chunk-RA33EYS4.js → chunk-ZENHDXRZ.js} +23 -17
  254. package/dist/{chunk-TJH2EUAZ.js → chunk-ZFHFC74B.js} +20 -18
  255. package/dist/{chunk-4PYC2UGC.js → chunk-ZGULQAPZ.js} +7 -4
  256. package/dist/{chunk-4SKZDI62.js → chunk-ZIUFM5HT.js} +3 -1
  257. package/dist/{chunk-JAABT3DA.js → chunk-ZJGCGKA4.js} +4 -3
  258. package/dist/{chunk-GIFMBCTW.js → chunk-ZLQEQR3D.js} +10 -8
  259. package/dist/{chunk-I2A3Z5AK.js → chunk-ZNHQGG7J.js} +7 -7
  260. package/dist/{chunk-5TDRBOAV.js → chunk-ZNTTW4IT.js} +7 -5
  261. package/dist/{chunk-ZX7235KR.js → chunk-ZR6J4QFQ.js} +44 -383
  262. package/dist/{chunk-F6H2RJ3N.js → chunk-ZSNOILL5.js} +1 -1
  263. package/dist/files.json +585 -509
  264. package/dist/packages/sdk/npm/index.js +1491 -110
  265. package/dist/packages/ui/dist/assets/{elk-api-CowTnhEJ.js → elk-api-DxfAMOJq.js} +2 -2
  266. package/dist/packages/ui/dist/assets/index-Buit9TfP.js +62 -0
  267. package/dist/packages/ui/dist/assets/index-Jyc9dFeZ.css +1 -0
  268. package/dist/packages/ui/dist/index.html +3 -2
  269. package/package.json +3 -3
  270. package/dist/chunk-26WBY34Y.js +0 -37
  271. package/dist/chunk-3TD6S4TC.js +0 -49
  272. package/dist/chunk-5G7ILBUG.js +0 -66
  273. package/dist/chunk-6FNAKCET.js +0 -38
  274. package/dist/chunk-AM6FP6JW.js +0 -43
  275. package/dist/chunk-CFH3QH26.js +0 -29
  276. package/dist/chunk-CLD4RVTA.js +0 -45
  277. package/dist/chunk-D5KV5PSK.js +0 -45
  278. package/dist/chunk-D5MASS4I.js +0 -48
  279. package/dist/chunk-DN4A2Q2O.js +0 -57
  280. package/dist/chunk-FGAGWYZB.js +0 -47
  281. package/dist/chunk-GUYL7RMK.js +0 -60
  282. package/dist/chunk-J2O4LFVI.js +0 -80
  283. package/dist/chunk-JITJP64K.js +0 -34
  284. package/dist/chunk-JRXHON4E.js +0 -41
  285. package/dist/chunk-JU4QNJSR.js +0 -62
  286. package/dist/chunk-N3RUGTGV.js +0 -39
  287. package/dist/chunk-ODMBPDDV.js +0 -298
  288. package/dist/chunk-OMPENNWY.js +0 -39
  289. package/dist/chunk-PKJAV25S.js +0 -43
  290. package/dist/chunk-PRTBPXYA.js +0 -50
  291. package/dist/chunk-PRZ7KMWL.js +0 -42
  292. package/dist/chunk-QSIDVFB7.js +0 -45
  293. package/dist/chunk-SB5GRUFM.js +0 -54
  294. package/dist/chunk-T74WQQGS.js +0 -40
  295. package/dist/chunk-X7EMBM5X.js +0 -34
  296. package/dist/chunk-Z6VLC5X4.js +0 -36
  297. package/dist/chunk-ZPDDEVQX.js +0 -47
  298. package/dist/packages/ui/dist/assets/index-Dw20IRhQ.css +0 -1
  299. package/dist/packages/ui/dist/assets/index-z2wv0d5d.js +0 -47
@@ -9,7 +9,7 @@ import {
9
9
  namesInCode,
10
10
  openIndex,
11
11
  workspaceRepos
12
- } from "./chunk-5WERBKLE.js";
12
+ } from "./chunk-RCG5IAAT.js";
13
13
 
14
14
  // packages/cli/dist/code-tools.js
15
15
  var offered = /* @__PURE__ */ new Map();
@@ -21,7 +21,7 @@ function codeToolOptions(root) {
21
21
  codeDir: (r) => offered.get(r) ?? defaultCodeDir(root, r),
22
22
  repos: () => [.../* @__PURE__ */ new Set([...workspaceRepos(root), ...offered.keys()])].sort(),
23
23
  // Loaded on first use: the readers are large, and most commands never outline a file.
24
- outline: async (path, text) => (await import("./chunk-UEVZZZU2.js")).declarationOutline(path, text)
24
+ outline: async (path, text) => (await import("./chunk-J25YOUIZ.js")).declarationOutline(path, text)
25
25
  };
26
26
  }
27
27
  function metarepoToolBox(root, calls) {
@@ -31,7 +31,7 @@ function metarepoToolBox(root, calls) {
31
31
  });
32
32
  }
33
33
  async function criticCodeSearch(root, names) {
34
- const x = await import("./chunk-UEVZZZU2.js");
34
+ const x = await import("./chunk-J25YOUIZ.js");
35
35
  const r = await namesInCode(root, names, {
36
36
  ...codeToolOptions(root),
37
37
  outlines: (path) => x.syntaxLanguageOf(path) !== void 0
@@ -0,0 +1,52 @@
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
+ AUDIT_WORDS,
8
+ answerAudit,
9
+ auditCommand,
10
+ auditLines,
11
+ defaultAuditSeed,
12
+ precisionOf,
13
+ prepareAudit,
14
+ tallyWords,
15
+ writeAudit
16
+ } from "./chunk-HUGQZQ2K.js";
17
+ import "./chunk-T6MX7WXM.js";
18
+ import "./chunk-EHXDB3SA.js";
19
+ import "./chunk-IMZFOMVX.js";
20
+ import "./chunk-VJFXQISZ.js";
21
+ import "./chunk-CT6NINGR.js";
22
+ import "./chunk-ZLQEQR3D.js";
23
+ import "./chunk-OPWGPQ2N.js";
24
+ import "./chunk-73GFVW2L.js";
25
+ import "./chunk-XOMEQVLK.js";
26
+ import "./chunk-J4CPHJUL.js";
27
+ import "./chunk-IKAW2KJU.js";
28
+ import "./chunk-CZ2ZS7AT.js";
29
+ import "./chunk-4GAB5ZOZ.js";
30
+ import "./chunk-A4JXVO5O.js";
31
+ import "./chunk-TDSCKP3V.js";
32
+ import "./chunk-G6EFXTUO.js";
33
+ import "./chunk-PQQKZPBU.js";
34
+ import "./chunk-RRQUQAXP.js";
35
+ import "./chunk-3EWKO457.js";
36
+ import "./chunk-3424TLIJ.js";
37
+ import "./chunk-QA4O2GGC.js";
38
+ import "./chunk-FPBUTZI5.js";
39
+ import "./chunk-B4AEL3RF.js";
40
+ import "./chunk-BQGDB6ZL.js";
41
+ import "./chunk-TV45EUGM.js";
42
+ export {
43
+ AUDIT_WORDS,
44
+ answerAudit,
45
+ auditCommand,
46
+ auditLines,
47
+ defaultAuditSeed,
48
+ precisionOf,
49
+ prepareAudit,
50
+ tallyWords,
51
+ writeAudit
52
+ };
@@ -62,13 +62,15 @@ import {
62
62
  specEndpointIds,
63
63
  specFormatOf,
64
64
  vendorImpact
65
- } from "./chunk-CPK7QSBG.js";
66
- import "./chunk-YO2PKTXT.js";
67
- import "./chunk-TWQRPM76.js";
68
- import "./chunk-QHJJMZLX.js";
69
- import "./chunk-7AB6OWTV.js";
70
- import "./chunk-PAINMSID.js";
71
- import "./chunk-ODMBPDDV.js";
65
+ } from "./chunk-A4JXVO5O.js";
66
+ import "./chunk-TDSCKP3V.js";
67
+ import "./chunk-G6EFXTUO.js";
68
+ import "./chunk-PQQKZPBU.js";
69
+ import "./chunk-3424TLIJ.js";
70
+ import "./chunk-QA4O2GGC.js";
71
+ import "./chunk-FPBUTZI5.js";
72
+ import "./chunk-B4AEL3RF.js";
73
+ import "./chunk-BQGDB6ZL.js";
72
74
  import "./chunk-TV45EUGM.js";
73
75
  export {
74
76
  CHANGE_INPUTS_SCHEMA_VERSION,
@@ -4,12 +4,11 @@ var require = __atticusCreateRequire(import.meta.url);
4
4
  var __atticusUrl = (p) => new URL("./" + p, import.meta.url).href;
5
5
  var __atticusPath = (p) => __atticusFileURLToPath(__atticusUrl(p));
6
6
  import {
7
- safeMessage,
8
- withFileLock
9
- } from "./chunk-THN26IEF.js";
7
+ safeMessage
8
+ } from "./chunk-PXW2RZGQ.js";
10
9
  import {
11
10
  checkoutOf
12
- } from "./chunk-Q46QDDMF.js";
11
+ } from "./chunk-73GFVW2L.js";
13
12
  import {
14
13
  AI_LINE_BY,
15
14
  AnswerMatch,
@@ -48,6 +47,7 @@ import {
48
47
  parseAuditFile,
49
48
  parseCorrections,
50
49
  parseFacts,
50
+ personEditOfTo,
51
51
  proposalRelOf,
52
52
  questionAiProblem,
53
53
  questionBar,
@@ -57,14 +57,16 @@ import {
57
57
  ruleKindOf,
58
58
  writeBatch,
59
59
  writeQuestion
60
- } from "./chunk-PAINMSID.js";
60
+ } from "./chunk-FPBUTZI5.js";
61
61
  import {
62
+ FileChangedError,
63
+ withSharedFileLock,
62
64
  writeFileAtomic
63
- } from "./chunk-ODMBPDDV.js";
65
+ } from "./chunk-B4AEL3RF.js";
64
66
 
65
67
  // packages/cli/dist/ai-decide.js
66
- import { readdir, readFile, rm, stat } from "node:fs/promises";
67
- import { isAbsolute, join, relative, resolve } from "node:path";
68
+ import { mkdir, readdir, readFile, rm, stat } from "node:fs/promises";
69
+ import { dirname, isAbsolute, join, relative, resolve } from "node:path";
68
70
  var DecideError = class extends Error {
69
71
  code;
70
72
  constructor(code, message) {
@@ -92,7 +94,7 @@ async function correctedRepos(root) {
92
94
  }
93
95
  async function rewriteCorrections(root, repo, o) {
94
96
  const file = correctionsFile(root, repo);
95
- return withFileLock(file, async () => {
97
+ return withSharedFileLock(file, async () => {
96
98
  const text = await readFile(file, "utf8").catch(() => "");
97
99
  const eol = /\r\n/.test(text) ? "\r\n" : "\n";
98
100
  const lines = text.split(/\r?\n/).filter((l, i, all) => l !== "" || i < all.length - 1);
@@ -107,7 +109,7 @@ async function rewriteCorrections(root, repo, o) {
107
109
  return true;
108
110
  });
109
111
  const have = new Set(kept.map((l) => l.trim()));
110
- const wanted = o.pick ? o.pick(parseCorrections(text).corrections) : o.add ?? [];
112
+ const wanted = o.pick ? await o.pick(parseCorrections(text).corrections) : o.add ?? [];
111
113
  const add = wanted.filter((l) => !have.has(l.trim()));
112
114
  const out = [...kept.filter((l) => l.trim() !== ""), ...add];
113
115
  if (!removed && !add.length)
@@ -135,8 +137,28 @@ async function coversCall(match, f, facts) {
135
137
  const s = subjectOfCall(f);
136
138
  if (s?.topic)
137
139
  return matchCovers(match, s);
138
- const { ruleCoversCall } = await import("./chunk-BXZ4PKIT.js");
139
- return ruleCoversCall(match, f, facts);
140
+ const { ruleCoversCall } = await import("./chunk-BUUJ7N4O.js");
141
+ return ruleCoversCall(match, f, facts, { strict: true });
142
+ }
143
+ async function answeredByPerson(root, repo, facts) {
144
+ const questions = (await listQuestions(root, { step: TARGETS_STEP_ID })).questions;
145
+ const people = questions.filter((q) => q.state === "answered" && !!q.answer && !isAiBy(q.answer.by));
146
+ if (!people.length)
147
+ return /* @__PURE__ */ new Set();
148
+ const { estateRepos, targetsFromAnswers, TARGETS_SPLIT } = await import("./chunk-BUUJ7N4O.js");
149
+ const byRepo = /* @__PURE__ */ new Map([[repo, facts]]);
150
+ const out = new Set(people.filter((q) => q.repo === repo && q.options[(q.answer.option ?? 0) - 1]?.label !== TARGETS_SPLIT).flatMap((q) => callsOfQuestion(q, byRepo).map((c) => c.id)));
151
+ const op = await loadOrgPack(orgPackDirOf(root));
152
+ const repoType = estateRepos(op).find((r) => r.id === repo)?.type;
153
+ const ai = {};
154
+ const named = targetsFromAnswers(repo, facts, questions, {
155
+ ...repoType ? { repoType } : {},
156
+ ai
157
+ });
158
+ for (const id of Object.keys(named))
159
+ if (!ai[id])
160
+ out.add(id);
161
+ return out;
140
162
  }
141
163
  async function aiAuditItems(root) {
142
164
  const out = [];
@@ -310,11 +332,21 @@ async function decideLinks(root, o) {
310
332
  }
311
333
  if (!lines.length)
312
334
  return { mode: "auto", applied, kept };
335
+ const answered = /* @__PURE__ */ new Set();
313
336
  const r = await rewriteCorrections(root, o.view.from, {
314
- pick: (now) => lines.filter((l) => {
315
- const f = calls.get(l);
316
- return !linksFor(f, now).some((c) => !c.ai);
317
- })
337
+ pick: async (now) => {
338
+ const byPerson = await answeredByPerson(root, o.view.from, o.facts);
339
+ return lines.filter((l) => {
340
+ const f = calls.get(l);
341
+ if (linksFor(f, now).some((c) => !c.ai) || personEditOfTo(f, now))
342
+ return false;
343
+ if (byPerson.has(f.id)) {
344
+ answered.add(l);
345
+ return false;
346
+ }
347
+ return true;
348
+ });
349
+ }
318
350
  });
319
351
  const written = new Set(r.picked ?? []);
320
352
  for (let i = applied.length - 1; i >= 0; i--) {
@@ -323,7 +355,7 @@ async function decideLinks(root, o) {
323
355
  kept.push({
324
356
  call: applied[i].call,
325
357
  api: applied[i].api,
326
- why: "a person has said where this call goes: their word stands"
358
+ why: answered.has(lines[i]) ? "a person answered where this call goes (its targets question): their word stands" : "a person has said where this call goes: their word stands"
327
359
  });
328
360
  applied.splice(i, 1);
329
361
  items.splice(i, 1);
@@ -356,14 +388,35 @@ async function targetRuleVerdict(root, q, label, questions) {
356
388
  if (!calls.length)
357
389
  return void 0;
358
390
  const op = await loadOrgPack(orgPackDirOf(root));
359
- const { estateRepos, ruledTargets } = await import("./chunk-BXZ4PKIT.js");
391
+ const { estateRepos, ruledTargets } = await import("./chunk-BUUJ7N4O.js");
360
392
  const repoType = estateRepos(op).find((r) => r.id === q.repo)?.type;
361
- const ruled = ruledTargets(q.repo, facts, questions, repoType ? { repoType } : {});
393
+ const ruled = ruledTargets(q.repo, facts, questions, {
394
+ ...repoType ? { repoType } : {},
395
+ strict: true
396
+ });
362
397
  const labels = calls.map((c) => ruled.get(c.id)?.label);
363
398
  if (labels.some((l) => l !== void 0 && l !== label))
364
399
  return "against";
365
400
  return labels.every((l) => l === label) ? "agrees" : void 0;
366
401
  }
402
+ async function personLinkVerdict(root, q, label) {
403
+ const facts = await factsOf(root, q.repo);
404
+ const calls = callsOfQuestion(q, /* @__PURE__ */ new Map([[q.repo, facts]]));
405
+ if (!calls.length)
406
+ return void 0;
407
+ const corrections = await correctionsOf(root, q.repo);
408
+ if (calls.some((c) => linksFor(c, corrections).some((l) => !l.ai) || personEditOfTo(c, corrections)))
409
+ return "a person said where its call goes on the canvas (a pairing or none): their word stands";
410
+ const rules = await linkRulesOf(root, q.repo);
411
+ for (const c of calls)
412
+ for (const r of rules)
413
+ if (await coversCall(r.match, c, facts)) {
414
+ if (r.answer !== label)
415
+ return `a person's rule (${r.match}) says these calls go to ${r.answer}`;
416
+ break;
417
+ }
418
+ return void 0;
419
+ }
367
420
  async function decideAnswers(root, o) {
368
421
  if (inAcpSession(o.env))
369
422
  return void 0;
@@ -405,13 +458,18 @@ async function decideAnswers(root, o) {
405
458
  continue;
406
459
  }
407
460
  const label = q.options[option - 1].label;
408
- const { TARGETS_NO_EVIDENCE } = await import("./chunk-BXZ4PKIT.js");
461
+ const { TARGETS_NO_EVIDENCE } = await import("./chunk-BUUJ7N4O.js");
409
462
  const shapesFirst = option === 1 && !q.options[0].means.includes(TARGETS_NO_EVIDENCE);
410
463
  const rule = await targetRuleVerdict(root, q, label, everyTarget);
411
464
  if (rule === "against") {
412
465
  kept.push({ id: p.id, why: "a person's rule covers its calls and says otherwise" });
413
466
  continue;
414
467
  }
468
+ const declined = await personLinkVerdict(root, q, label);
469
+ if (declined) {
470
+ kept.push({ id: p.id, why: declined });
471
+ continue;
472
+ }
415
473
  const bar = questionBar(q, option, { shapesFirst, ruleAgrees: rule === "agrees" });
416
474
  if (!bar) {
417
475
  kept.push({
@@ -421,6 +479,8 @@ async function decideAnswers(root, o) {
421
479
  continue;
422
480
  }
423
481
  const by = { kind: "ai", runtime, run: o.run, bar };
482
+ const proposalFile = join(root, ...proposalRelOf(root, q.id).split("/"));
483
+ const proposalText = await readFile(proposalFile, "utf8").catch(() => void 0);
424
484
  try {
425
485
  await answerQuestion(root, q.id, {
426
486
  option,
@@ -434,10 +494,18 @@ async function decideAnswers(root, o) {
434
494
  kept.push({ id: p.id, why: e.message });
435
495
  continue;
436
496
  }
497
+ if (e instanceof FileChangedError) {
498
+ kept.push({ id: p.id, why: "a person changed it meanwhile: theirs stands" });
499
+ continue;
500
+ }
437
501
  throw e;
438
502
  }
439
- await rm(join(root, ...proposalRelOf(root, q.id).split("/")), { force: true });
440
- items.push({ kind: "question", id: q.id });
503
+ await rm(proposalFile, { force: true });
504
+ items.push({
505
+ kind: "question",
506
+ id: q.id,
507
+ ...proposalText?.trim() && proposalText.length <= 65536 ? { proposal: proposalText } : {}
508
+ });
441
509
  applied.push({ id: q.id, option, bar });
442
510
  }
443
511
  if (items.length)
@@ -517,8 +585,8 @@ async function decisionsView(root) {
517
585
  qCounts.byPerson++;
518
586
  }
519
587
  const linkCounts = { fromCode: 0, byPerson: 0, byAi: 0 };
520
- const { readCatalog } = await import("./chunk-BXZ4PKIT.js");
521
- const cat = await readCatalog(join(catalogDirOf(root), "generated")).catch(() => void 0);
588
+ const { readCatalog } = await import("./chunk-BUUJ7N4O.js");
589
+ const cat = await readCatalog(join(catalogDirOf(root), "generated"), { cacheRoot: root }).catch(() => void 0);
522
590
  for (const r of cat?.records ?? []) {
523
591
  if (r.kind !== "Interface")
524
592
  continue;
@@ -682,7 +750,7 @@ async function correctQuestion(root, req, o) {
682
750
  }
683
751
  const spread = plans.map((p) => p.view);
684
752
  const op = await loadOrgPack(orgPackDirOf(root));
685
- const { estateRepos } = await import("./chunk-BXZ4PKIT.js");
753
+ const { estateRepos } = await import("./chunk-BUUJ7N4O.js");
686
754
  const repoType = estateRepos(op).find((r) => r.id === q.repo)?.type;
687
755
  const shape = `question:${repoType ?? q.repo}:${rule?.match ?? calls[0]?.path ?? q.id}`;
688
756
  const n = await shapeCount(root, shape);
@@ -825,7 +893,7 @@ async function correctLink(root, req, o) {
825
893
  const appliedItems = [{ kind: "link", repo, fact: f.id, line: ownLine }];
826
894
  const revertedItems = [];
827
895
  if (rule) {
828
- const { candidatesOf, settingsOf } = await import("./chunk-PRZ7KMWL.js");
896
+ const { candidatesOf, settingsOf } = await import("./chunk-W4TNCEI4.js");
829
897
  const box = { repo: target ?? aiRepo };
830
898
  const cands = box.repo !== repo ? await candidatesOf(root, repo, box).catch(() => void 0) : void 0;
831
899
  const loose = new Set((cands?.view.calls ?? []).filter((c) => c.status !== "paired").map((c) => c.fact));
@@ -846,6 +914,7 @@ async function correctLink(root, req, o) {
846
914
  return s ? apis.find((a) => a.id === s) : void 0;
847
915
  };
848
916
  const words = (c) => `${repo}'s call ${[c.method?.toUpperCase(), c.path].filter(Boolean).join(" ")} (${c.cite.file}:${c.cite.line})`;
917
+ const byPerson = await answeredByPerson(root, repo, facts);
849
918
  for (const c of facts) {
850
919
  if (c.kind !== "call" || c.id === f.id)
851
920
  continue;
@@ -854,6 +923,10 @@ async function correctLink(root, req, o) {
854
923
  const st = linksFor(c, corrections)[0];
855
924
  if (st && !st.ai)
856
925
  continue;
926
+ if (personEditOfTo(c, corrections))
927
+ continue;
928
+ if (byPerson.has(c.id))
929
+ continue;
857
930
  const item = `link:${repo}:${c.id}`;
858
931
  const was = st?.ai ? `${st.link.repo} ${[st.link.method, st.link.path].filter(Boolean).join(" ")}` : void 0;
859
932
  if (!st && !loose.has(c.id))
@@ -899,7 +972,7 @@ async function correctLink(root, req, o) {
899
972
  }
900
973
  }
901
974
  const op = await loadOrgPack(orgPackDirOf(root));
902
- const { estateRepos } = await import("./chunk-BXZ4PKIT.js");
975
+ const { estateRepos } = await import("./chunk-BUUJ7N4O.js");
903
976
  const repoType = estateRepos(op).find((r) => r.id === repo)?.type;
904
977
  const shape = `link:${repoType ?? repo}:${rule?.match ?? f.path}`;
905
978
  const n = await shapeCount(root, shape);
@@ -954,6 +1027,30 @@ async function batchStands(root, b) {
954
1027
  }
955
1028
  return false;
956
1029
  }
1030
+ async function restoreProposal(root, q, text) {
1031
+ const rel = proposalRelOf(root, q.id);
1032
+ const file = join(root, ...rel.split("/"));
1033
+ if (await stat(file).then(() => true, () => false))
1034
+ return void 0;
1035
+ let out = text;
1036
+ const p = q.answer?.proposal;
1037
+ if (!out && p && q.answer?.option && p.cites.length) {
1038
+ const { stringify } = await import("./chunk-H4VO6WG3.js");
1039
+ out = stringify({
1040
+ schemaVersion: 1,
1041
+ answer: { option: q.answer.option },
1042
+ why: `Put back on Undo of the AI's answer: ${p.by} proposed it, citing the lines below.`,
1043
+ cites: p.cites,
1044
+ by: p.by,
1045
+ at: p.at
1046
+ });
1047
+ }
1048
+ if (!out)
1049
+ return void 0;
1050
+ await mkdir(dirname(file), { recursive: true });
1051
+ await writeFileAtomic(file, out);
1052
+ return rel.replace(/[^/]+$/, "");
1053
+ }
957
1054
  async function undoBatch(root, id, o) {
958
1055
  if (inAcpSession(o.env))
959
1056
  throw new DecideError("refused", "Undo is a person's: a Copilot session acts as no one.");
@@ -1019,6 +1116,11 @@ async function undoBatch(root, id, o) {
1019
1116
  skipped.push(`${i.id} was answered again since: left as it is`);
1020
1117
  continue;
1021
1118
  }
1119
+ if (b.kind === "ai" && isAiBy(q.answer.by)) {
1120
+ const restoredProposal = await restoreProposal(root, q, i.proposal);
1121
+ if (restoredProposal)
1122
+ files.add(restoredProposal);
1123
+ }
1022
1124
  const { answer: _a, ...rest } = q;
1023
1125
  const before = i.before && !await isUndone(i.before.batch) ? i.before : void 0;
1024
1126
  if (i.before && !before)
@@ -6,13 +6,16 @@ var __atticusPath = (p) => __atticusFileURLToPath(__atticusUrl(p));
6
6
  import {
7
7
  openIndex,
8
8
  searchIndex
9
- } from "./chunk-5WERBKLE.js";
10
- import "./chunk-QHJJMZLX.js";
9
+ } from "./chunk-RCG5IAAT.js";
10
+ import "./chunk-3424TLIJ.js";
11
+ import "./chunk-QA4O2GGC.js";
12
+ import {
13
+ changesDirOf
14
+ } from "./chunk-FPBUTZI5.js";
15
+ import "./chunk-B4AEL3RF.js";
11
16
  import {
12
- changesDirOf,
13
17
  require_dist
14
- } from "./chunk-PAINMSID.js";
15
- import "./chunk-ODMBPDDV.js";
18
+ } from "./chunk-BQGDB6ZL.js";
16
19
  import {
17
20
  __toESM
18
21
  } from "./chunk-TV45EUGM.js";
@@ -118,7 +121,7 @@ async function pastChangeMarkdown(root, folder) {
118
121
  `;
119
122
  }
120
123
  async function attachPastChange(root, change, folder, by, now = /* @__PURE__ */ new Date()) {
121
- const { attachFiles } = await import("./chunk-XQ3YZ4QW.js");
124
+ const { attachFiles } = await import("./chunk-ISG547IS.js");
122
125
  const name = `like-${folder.replace(DATED, "$2")}.md`;
123
126
  await attachFiles(root, change, [{ name, bytes: new TextEncoder().encode(await pastChangeMarkdown(root, folder)) }], by, now);
124
127
  return name;
@@ -6,6 +6,7 @@ var __atticusPath = (p) => __atticusFileURLToPath(__atticusUrl(p));
6
6
  import {
7
7
  GitError,
8
8
  IGNORED,
9
+ SAME_ID_WHY,
9
10
  WORKSPACE_DIR,
10
11
  WorkspaceFileError,
11
12
  baseClonePath,
@@ -17,6 +18,7 @@ import {
17
18
  changedFiles,
18
19
  changesSince,
19
20
  checkoutState,
21
+ cloneUrlKey,
20
22
  createGit,
21
23
  createWorkspace,
22
24
  ensureGitignore,
@@ -26,11 +28,15 @@ import {
26
28
  intellijProject,
27
29
  intellijProjectPath,
28
30
  isInPlace,
31
+ legacyBranchCheckoutPath,
32
+ legacyBranchSlug,
29
33
  loadManifest,
30
34
  loadRepos,
35
+ nearRepos,
31
36
  readChangeRepos,
32
37
  remoteDefaultBranch,
33
38
  removeEditorWorkspaces,
39
+ repoIdKey,
34
40
  toHandle,
35
41
  toRepoRelative,
36
42
  vscodeWorkspace,
@@ -38,13 +44,15 @@ import {
38
44
  worktreePath,
39
45
  writeChangeRepos,
40
46
  writeEditorWorkspaces
41
- } from "./chunk-XOL3GFW2.js";
42
- import "./chunk-PAINMSID.js";
43
- import "./chunk-ODMBPDDV.js";
47
+ } from "./chunk-3EWKO457.js";
48
+ import "./chunk-FPBUTZI5.js";
49
+ import "./chunk-B4AEL3RF.js";
50
+ import "./chunk-BQGDB6ZL.js";
44
51
  import "./chunk-TV45EUGM.js";
45
52
  export {
46
53
  GitError,
47
54
  IGNORED,
55
+ SAME_ID_WHY,
48
56
  WORKSPACE_DIR,
49
57
  WorkspaceFileError,
50
58
  baseClonePath,
@@ -56,6 +64,7 @@ export {
56
64
  changedFiles,
57
65
  changesSince,
58
66
  checkoutState,
67
+ cloneUrlKey,
59
68
  createGit,
60
69
  createWorkspace,
61
70
  ensureGitignore,
@@ -65,11 +74,15 @@ export {
65
74
  intellijProject,
66
75
  intellijProjectPath,
67
76
  isInPlace,
77
+ legacyBranchCheckoutPath,
78
+ legacyBranchSlug,
68
79
  loadManifest,
69
80
  loadRepos,
81
+ nearRepos,
70
82
  readChangeRepos,
71
83
  remoteDefaultBranch,
72
84
  removeEditorWorkspaces,
85
+ repoIdKey,
73
86
  toHandle,
74
87
  toRepoRelative,
75
88
  vscodeWorkspace,
@@ -10,13 +10,14 @@ import {
10
10
  globToRegExp,
11
11
  memoryRepo,
12
12
  scanRepo
13
- } from "./chunk-7AB6OWTV.js";
13
+ } from "./chunk-PQQKZPBU.js";
14
14
  import {
15
15
  Dialect,
16
16
  FrameworkModel,
17
17
  MESH_KEY,
18
18
  RECORD_SCHEMAS,
19
19
  RecordId,
20
+ cmpText,
20
21
  fieldTemplates,
21
22
  interfaceId,
22
23
  matchType,
@@ -24,9 +25,11 @@ import {
24
25
  readTarGz,
25
26
  readZip,
26
27
  renderExpr,
27
- renderTemplate,
28
+ renderTemplate
29
+ } from "./chunk-FPBUTZI5.js";
30
+ import {
28
31
  require_dist
29
- } from "./chunk-PAINMSID.js";
32
+ } from "./chunk-BQGDB6ZL.js";
30
33
  import {
31
34
  __commonJS,
32
35
  __require,
@@ -1677,7 +1680,7 @@ async function configSources(repo, globs = [
1677
1680
  }
1678
1681
  function layer(sources2, keep) {
1679
1682
  const rank = (s) => !s.profile ? 0 : PROD.test(s.profile) ? 1 : 2;
1680
- const ordered = sources2.filter(keep).sort((a, b) => rank(a) - rank(b) || (a.profile ?? "").localeCompare(b.profile ?? "") || a.file.split("/").pop().length - b.file.split("/").pop().length || a.file.localeCompare(b.file));
1683
+ const ordered = sources2.filter(keep).sort((a, b) => rank(a) - rank(b) || cmpText(a.profile ?? "", b.profile ?? "") || a.file.split("/").pop().length - b.file.split("/").pop().length || cmpText(a.file, b.file));
1681
1684
  const out2 = /* @__PURE__ */ new Map();
1682
1685
  for (const s of ordered)
1683
1686
  for (const [k, v] of s.values)
@@ -2670,7 +2673,7 @@ async function dotenv(repo) {
2670
2673
  for await (const p of repo.listFiles([".env", "**/.env", ".env.example", "**/.env.example"]))
2671
2674
  if (!skipPath(p))
2672
2675
  files.push(p);
2673
- files.sort((a, b) => Number(a.endsWith(".example")) - Number(b.endsWith(".example")) || a.split("/").length - b.split("/").length || a.localeCompare(b));
2676
+ files.sort((a, b) => Number(a.endsWith(".example")) - Number(b.endsWith(".example")) || a.split("/").length - b.split("/").length || cmpText(a, b));
2674
2677
  for (const f of files) {
2675
2678
  (await repo.readText(f)).split(/\r?\n/).forEach((raw, i2) => {
2676
2679
  const m = /^\s*(?:export\s+)?([A-Za-z_][A-Za-z0-9_.]*)\s*=\s*(.*?)\s*$/.exec(raw);
@@ -4087,7 +4090,7 @@ async function wrapperRequests(repo, paths, scriptOf = (_p, t) => t) {
4087
4090
  if (url)
4088
4091
  out2.push({ method: w.method.v, url, path: w.at.path, line: w.at.line });
4089
4092
  }
4090
- return out2.sort((x, y) => x.path.localeCompare(y.path) || x.line - y.line);
4093
+ return out2.sort((x, y) => cmpText(x.path, y.path) || x.line - y.line);
4091
4094
  }
4092
4095
 
4093
4096
  // packages/extractors/dist/lang/sql.js
@@ -4709,7 +4712,7 @@ var migrationsExtractor = defineExtractor({
4709
4712
  for (let i2 = 0; i2 < Math.max(x.length, y.length); i2++)
4710
4713
  if ((x[i2] ?? 0) !== (y[i2] ?? 0))
4711
4714
  return (x[i2] ?? 0) - (y[i2] ?? 0);
4712
- return a.path.localeCompare(b.path);
4715
+ return cmpText(a.path, b.path);
4713
4716
  });
4714
4717
  let first2 = true;
4715
4718
  const state = new DesignState();
@@ -6293,7 +6296,7 @@ var springExtractor = defineExtractor({
6293
6296
  }
6294
6297
  });
6295
6298
  function* settings(repoName, component2, config) {
6296
- for (const [key, v] of [...config.entries()].sort(([a], [b]) => a.localeCompare(b))) {
6299
+ for (const [key, v] of [...config.entries()].sort(([a], [b]) => cmpText(a, b))) {
6297
6300
  const kind = SETTING_KIND.find(([re2]) => re2.test(key.split(".").pop() ?? ""))?.[1];
6298
6301
  if (!kind || v.value === "")
6299
6302
  continue;
@@ -6922,7 +6925,7 @@ var int = (v) => {
6922
6925
  return Number.isInteger(n) && n >= 0 ? n : void 0;
6923
6926
  };
6924
6927
  function deployment(f) {
6925
- const ingress = [...f.ingress ?? []].sort((a, b) => `${a.host}|${a.path ?? ""}`.localeCompare(`${b.host}|${b.path ?? ""}`));
6928
+ const ingress = [...f.ingress ?? []].sort((a, b) => cmpText(`${a.host}|${a.path ?? ""}`, `${b.host}|${b.path ?? ""}`));
6926
6929
  return {
6927
6930
  schemaVersion: 1,
6928
6931
  kind: "Deployment",
@@ -7003,7 +7006,7 @@ async function loadTerraform(repo, ctx, relevant) {
7003
7006
  byDir.set(dirOf2(path), [...byDir.get(dirOf2(path)) ?? [], { path, text: text2 }]);
7004
7007
  }
7005
7008
  const folders = /* @__PURE__ */ new Map();
7006
- for (const [dir, list2] of [...byDir.entries()].sort(([a], [b]) => a.localeCompare(b))) {
7009
+ for (const [dir, list2] of [...byDir.entries()].sort(([a], [b]) => cmpText(a, b))) {
7007
7010
  const f = {
7008
7011
  dir,
7009
7012
  relevant: list2.some((x) => x.path.endsWith(".tf") && relevant.test(x.text)),
@@ -7608,6 +7611,7 @@ async function repoConfigFiles(repo, globs) {
7608
7611
  }
7609
7612
  function dialectExtractor(dialect, parents = /* @__PURE__ */ new Map(), o = {}) {
7610
7613
  const rules = /* @__PURE__ */ new Map();
7614
+ const applied = /* @__PURE__ */ new Set();
7611
7615
  const visit = (d, seen) => {
7612
7616
  for (const p of d.extends) {
7613
7617
  if (seen.has(p))
@@ -7615,8 +7619,11 @@ function dialectExtractor(dialect, parents = /* @__PURE__ */ new Map(), o = {})
7615
7619
  const parent = parents.get(p);
7616
7620
  if (!parent)
7617
7621
  throw new Error(`dialect ${d.name} extends ${p}, which isn't loaded`);
7622
+ if (applied.has(p))
7623
+ continue;
7618
7624
  visit(parent, /* @__PURE__ */ new Set([...seen, p]));
7619
7625
  }
7626
+ applied.add(d.name);
7620
7627
  for (const r of d.rules)
7621
7628
  rules.set(r.id, r);
7622
7629
  };
@@ -7738,7 +7745,7 @@ function dialectExtractor(dialect, parents = /* @__PURE__ */ new Map(), o = {})
7738
7745
  }
7739
7746
  tables.set(name2, table);
7740
7747
  }
7741
- for (const rule of [...rules.values()].sort((a, b) => a.id.localeCompare(b.id))) {
7748
+ for (const rule of [...rules.values()].sort((a, b) => cmpText(a.id, b.id))) {
7742
7749
  const emits = Array.isArray(rule.emit) ? rule.emit : [rule.emit];
7743
7750
  const yamlValues = await yamlFor([
7744
7751
  ...emits.flatMap(templatesOf),
@@ -8218,7 +8225,7 @@ function attrGroup(src, open, close) {
8218
8225
  }
8219
8226
  async function appsettings(repo) {
8220
8227
  const files = await listSources(repo, ["**/appsettings.json", "**/appsettings.*.json"]);
8221
- files.sort((a, b) => a.split("/").pop().length - b.split("/").pop().length || a.localeCompare(b));
8228
+ files.sort((a, b) => a.split("/").pop().length - b.split("/").pop().length || cmpText(a, b));
8222
8229
  const out2 = /* @__PURE__ */ new Map();
8223
8230
  for (const f of files) {
8224
8231
  const flat2 = flattenYaml(stripJsonComments(await repo.readText(f)), f, repo.parseCache);
@@ -8487,7 +8494,7 @@ var dotnetExtractor = defineExtractor({
8487
8494
  }
8488
8495
  const csproj = (await listSources(repo, ["**/*.csproj"])).map((p) => repo.readText(p));
8489
8496
  const packages = (await Promise.all(csproj)).join("\n");
8490
- for (const [key, v] of [...config.entries()].sort(([a], [b]) => a.localeCompare(b))) {
8497
+ for (const [key, v] of [...config.entries()].sort(([a], [b]) => cmpText(a, b))) {
8491
8498
  if (!key.startsWith("connectionstrings."))
8492
8499
  continue;
8493
8500
  const scheme = /Npgsql/i.test(packages) ? "postgresql" : /MySql|Pomelo/i.test(packages) ? "mysql" : /SqlClient|SqlServer/i.test(packages) ? "sqlserver" : /Oracle/i.test(packages) ? "oracle" : /(^|;)\s*Host\s*=/i.test(v.value) ? "postgresql" : "sqlserver";
@@ -14737,7 +14744,7 @@ async function readEfCore(repo) {
14737
14744
  const has = (p, name2) => p.attrs.find((a) => a.name === name2);
14738
14745
  const scalar2 = (p) => SCALARS.has(p.type.replace(/^System\./, "")) || enums.has(p.type);
14739
14746
  const info2 = /* @__PURE__ */ new Map();
14740
- const sorted = entities.map((n) => classes.get(n)).sort((a, b) => a.path.localeCompare(b.path) || a.line - b.line);
14747
+ const sorted = entities.map((n) => classes.get(n)).sort((a, b) => cmpText(a.path, b.path) || a.line - b.line);
14741
14748
  for (const c of sorted) {
14742
14749
  const tableAttr = has(c, "Table");
14743
14750
  const name2 = fluent.get(c.name) ?? (tableAttr && firstString(tableAttr)) ?? sets.get(c.name) ?? c.name;
@@ -16005,7 +16012,7 @@ async function markers(repo, ctx) {
16005
16012
  line: firstLine2(text2, /<Use(WPF|WindowsForms)>/i)
16006
16013
  });
16007
16014
  }
16008
- return found.sort((a, b) => order.indexOf(a.runtime) - order.indexOf(b.runtime) || a.path.localeCompare(b.path));
16015
+ return found.sort((a, b) => order.indexOf(a.runtime) - order.indexOf(b.runtime) || cmpText(a.path, b.path));
16009
16016
  }
16010
16017
  function joinBase(base, path) {
16011
16018
  if (!base || /^https?:\/\//.test(path))
@@ -19385,7 +19392,7 @@ async function detectModules(repo) {
19385
19392
  }
19386
19393
  if (parts2.size + (rootPart ? 1 : 0) < 2)
19387
19394
  return [];
19388
- return [...parts2].sort(([a], [b]) => a.localeCompare(b)).map(([path, component2]) => ({ path, component: component2 }));
19395
+ return [...parts2].sort(([a], [b]) => cmpText(a, b)).map(([path, component2]) => ({ path, component: component2 }));
19389
19396
  }
19390
19397
 
19391
19398
  // packages/extractors/dist/dependencies.js