@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
@@ -3,23 +3,23 @@ import { fileURLToPath as __atticusFileURLToPath } from "node:url";
3
3
  var require = __atticusCreateRequire(import.meta.url);
4
4
  var __atticusUrl = (p) => new URL("./" + p, import.meta.url).href;
5
5
  var __atticusPath = (p) => __atticusFileURLToPath(__atticusUrl(p));
6
- import {
7
- featuresForScan,
8
- namingHint,
9
- syncSources
10
- } from "./chunk-64AADMTW.js";
11
6
  import {
12
7
  dirSource,
13
8
  rereadPlan,
14
9
  sameCommit,
15
10
  verifyFacts
16
- } from "./chunk-JYMIB5XY.js";
11
+ } from "./chunk-CZ2ZS7AT.js";
12
+ import {
13
+ featuresForScan,
14
+ namingHint,
15
+ syncSources
16
+ } from "./chunk-4GAB5ZOZ.js";
17
17
  import {
18
18
  scanInputs
19
- } from "./chunk-CPK7QSBG.js";
19
+ } from "./chunk-A4JXVO5O.js";
20
20
  import {
21
21
  listIngestors
22
- } from "./chunk-YO2PKTXT.js";
22
+ } from "./chunk-TDSCKP3V.js";
23
23
  import {
24
24
  BUILT_IN_EXTRACTORS,
25
25
  MODEL_READERS,
@@ -34,17 +34,7 @@ import {
34
34
  runDialectTests,
35
35
  runFrameworkTests,
36
36
  unmodelledFrameworks
37
- } from "./chunk-TWQRPM76.js";
38
- import {
39
- baseClonePath,
40
- changesSince,
41
- checkoutState,
42
- inPlaceDir
43
- } from "./chunk-XOL3GFW2.js";
44
- import {
45
- buildContextPack,
46
- toRunSummary
47
- } from "./chunk-QHJJMZLX.js";
37
+ } from "./chunk-G6EFXTUO.js";
48
38
  import {
49
39
  DEFAULT_IGNORES,
50
40
  configHash,
@@ -56,7 +46,17 @@ import {
56
46
  sandboxedExtractor,
57
47
  scanRepo,
58
48
  withParseCache
59
- } from "./chunk-7AB6OWTV.js";
49
+ } from "./chunk-PQQKZPBU.js";
50
+ import {
51
+ baseClonePath,
52
+ changesSince,
53
+ checkoutState,
54
+ inPlaceDir
55
+ } from "./chunk-3EWKO457.js";
56
+ import {
57
+ buildContextPack,
58
+ toRunSummary
59
+ } from "./chunk-3424TLIJ.js";
60
60
  import {
61
61
  AgentDefinition,
62
62
  DECLARED_CALLER,
@@ -83,6 +83,8 @@ import {
83
83
  callTargetQuestion,
84
84
  callerRecords,
85
85
  catalogDirOf,
86
+ cmpNatural,
87
+ cmpText,
86
88
  conventionsOf,
87
89
  declaredCallsOf,
88
90
  deserializeRecord,
@@ -127,7 +129,6 @@ import {
127
129
  questionId,
128
130
  readParsedFiles,
129
131
  recordPath,
130
- require_dist,
131
132
  serializeRecord,
132
133
  sharedJoinAbout,
133
134
  singularNoun,
@@ -140,13 +141,18 @@ import {
140
141
  termGrantRecords,
141
142
  throwIfCancelled,
142
143
  toCanonicalYaml,
144
+ topicOfQuestion,
143
145
  topicQuestionText,
144
146
  urlHostPort
145
- } from "./chunk-PAINMSID.js";
147
+ } from "./chunk-FPBUTZI5.js";
146
148
  import {
147
149
  SCHEMA_VERSION,
150
+ keptParse,
148
151
  writeFileAtomic
149
- } from "./chunk-ODMBPDDV.js";
152
+ } from "./chunk-B4AEL3RF.js";
153
+ import {
154
+ require_dist
155
+ } from "./chunk-BQGDB6ZL.js";
150
156
  import {
151
157
  __toESM
152
158
  } from "./chunk-TV45EUGM.js";
@@ -1281,7 +1287,7 @@ function resolveFederatedLooseEnds(o) {
1281
1287
  return false;
1282
1288
  });
1283
1289
  return {
1284
- federated: [...kept2, ...added].sort((a, b) => a.kind === b.kind ? a.id.localeCompare(b.id) : a.kind.localeCompare(b.kind)),
1290
+ federated: [...kept2, ...added].sort((a, b) => a.kind === b.kind ? cmpText(a.id, b.id) : cmpText(a.kind, b.kind)),
1285
1291
  resolved
1286
1292
  };
1287
1293
  }
@@ -1324,7 +1330,7 @@ async function readCatalogFiles(dir, cacheRoot) {
1324
1330
  } catch {
1325
1331
  return;
1326
1332
  }
1327
- for (const e of entries.sort((a, b) => a.name.localeCompare(b.name))) {
1333
+ for (const e of entries.sort((a, b) => cmpText(a.name, b.name))) {
1328
1334
  const full = join4(d, e.name);
1329
1335
  if (e.isDirectory())
1330
1336
  await walk(full);
@@ -1349,7 +1355,7 @@ async function readCatalogFiles(dir, cacheRoot) {
1349
1355
  else
1350
1356
  problems.push({ file: p.rel, message: p.problem });
1351
1357
  }
1352
- records.sort((a, b) => a.kind === b.kind ? a.id.localeCompare(b.id) : a.kind.localeCompare(b.kind));
1358
+ records.sort((a, b) => a.kind === b.kind ? cmpText(a.id, b.id) : cmpText(a.kind, b.kind));
1353
1359
  return { records, problems };
1354
1360
  }
1355
1361
  async function writeCatalog(dir, records) {
@@ -1420,7 +1426,7 @@ function diffCatalogs(before, after) {
1420
1426
  for (const [k, r] of a)
1421
1427
  if (!b.has(k))
1422
1428
  diff.removed.push({ kind: r.kind, id: r.id });
1423
- const sort = (xs) => xs.sort((x, y) => x.kind === y.kind ? x.id.localeCompare(y.id) : x.kind.localeCompare(y.kind));
1429
+ const sort = (xs) => xs.sort((x, y) => x.kind === y.kind ? cmpText(x.id, y.id) : cmpText(x.kind, y.kind));
1424
1430
  sort(diff.added);
1425
1431
  sort(diff.removed);
1426
1432
  sort(diff.changed);
@@ -1726,7 +1732,7 @@ function targetSuggestions(f, ctx) {
1726
1732
  s.why = [...new Set(s.why)];
1727
1733
  out.push(s);
1728
1734
  }
1729
- return out.sort((a, b) => b.score - a.score || Number(b.read) - Number(a.read) || (a.kind === b.kind ? 0 : a.kind === "repo" ? -1 : 1) || a.label.localeCompare(b.label));
1735
+ return out.sort((a, b) => b.score - a.score || Number(b.read) - Number(a.read) || (a.kind === b.kind ? 0 : a.kind === "repo" ? -1 : 1) || cmpText(a.label, b.label));
1730
1736
  }
1731
1737
  function offeredSuggestions(ranked, o) {
1732
1738
  const max = o.max ?? TARGETS_MAX_SUGGESTED;
@@ -1740,9 +1746,9 @@ function targetPicker(op, read = /* @__PURE__ */ new Set()) {
1740
1746
  kind: "repo",
1741
1747
  name: r.component && r.component !== r.id ? `${r.id} (${r.component})` : r.id,
1742
1748
  read: read.has(r.id)
1743
- })).sort((a, b) => a.id.localeCompare(b.id));
1749
+ })).sort((a, b) => cmpText(a.id, b.id));
1744
1750
  const seen = /* @__PURE__ */ new Set();
1745
- const systems = op.profiles.flatMap((p) => p.profile?.systems ?? []).filter((s) => !seen.has(s.id) && !!seen.add(s.id)).map((s) => ({ id: s.id, kind: "system", name: s.name, boundary: s.boundary })).sort((a, b) => a.id.localeCompare(b.id));
1751
+ const systems = op.profiles.flatMap((p) => p.profile?.systems ?? []).filter((s) => !seen.has(s.id) && !!seen.add(s.id)).map((s) => ({ id: s.id, kind: "system", name: s.name, boundary: s.boundary })).sort((a, b) => cmpText(a.id, b.id));
1746
1752
  const owned = new Set(op.profiles.flatMap((p) => (p.profile?.systems ?? []).flatMap((s) => s.owner ? [s.owner] : [])));
1747
1753
  const teams = (op.roles?.teams ?? []).map((t) => {
1748
1754
  const name = t.name ?? t.id;
@@ -1760,7 +1766,7 @@ function targetPicker(op, read = /* @__PURE__ */ new Set()) {
1760
1766
  }
1761
1767
  }
1762
1768
  };
1763
- }).sort((a, b) => a.id.localeCompare(b.id));
1769
+ }).sort((a, b) => cmpText(a.id, b.id));
1764
1770
  return [...repos, ...systems, ...teams];
1765
1771
  }
1766
1772
  function pickerLines(picks) {
@@ -1808,13 +1814,13 @@ function topicQuestionDrafts(repo, records) {
1808
1814
  if (!out.has(id))
1809
1815
  out.set(id, { topic, id, draft });
1810
1816
  }
1811
- return [...out.values()].sort((a, b) => a.topic.localeCompare(b.topic));
1817
+ return [...out.values()].sort((a, b) => cmpText(a.topic, b.topic));
1812
1818
  }
1813
1819
 
1814
1820
  // packages/scanner/dist/facts-catalog.js
1815
1821
  var TARGETS_STEP = TARGETS_STEP_ID;
1816
1822
  var TARGETS_NONE = "None of these";
1817
- var byKindId = (a, b) => a.kind === b.kind ? a.id.localeCompare(b.id) : a.kind.localeCompare(b.kind);
1823
+ var byKindId = (a, b) => a.kind === b.kind ? cmpText(a.id, b.id) : cmpText(a.kind, b.kind);
1818
1824
  var URL_RE = /^[a-z][a-z0-9+.-]*:\/\//i;
1819
1825
  var joinUrl = (base2, path) => `${base2.replace(/\/+$/, "")}${path.startsWith("/") ? path : `/${path}`}`;
1820
1826
  function urlOf(f, facts) {
@@ -1890,7 +1896,7 @@ function targetAsks(facts, records, asks) {
1890
1896
  if (r.kind === "Component" && r.repo)
1891
1897
  repoOf.set(r.id, r.repo);
1892
1898
  const list = [];
1893
- for (const f of [...facts].sort((a, b) => a.id.localeCompare(b.id))) {
1899
+ for (const f of [...facts].sort((a, b) => cmpText(a.id, b.id))) {
1894
1900
  const ask = asks?.find((a) => a.reason === "ambiguous" && a.call.repo === f.repo && a.call.fact === f.id);
1895
1901
  if (f.kind !== "call" || !needsTarget(f, facts) && !ask)
1896
1902
  continue;
@@ -1971,7 +1977,7 @@ function offered(members, facts, records, op, asks, ctx) {
1971
1977
  }
1972
1978
  }
1973
1979
  }
1974
- const ranked = [...merged.values()].sort((a, b) => b.score - a.score || Number(b.read) - Number(a.read) || (a.kind === b.kind ? 0 : a.kind === "repo" ? -1 : 1) || a.label.localeCompare(b.label));
1980
+ const ranked = [...merged.values()].sort((a, b) => b.score - a.score || Number(b.read) - Number(a.read) || (a.kind === b.kind ? 0 : a.kind === "repo" ? -1 : 1) || cmpText(a.label, b.label));
1975
1981
  const serving = new Set(members.flatMap((m) => m.servers));
1976
1982
  const types = new Set(members.flatMap((m) => SERVES[m.f.callType] ?? []));
1977
1983
  return offeredSuggestions(ranked, { types, serving });
@@ -2052,7 +2058,7 @@ function targetGroupWordings(repo, f, facts) {
2052
2058
  return [.../* @__PURE__ */ new Set([targetGroupQuestion(repo, f, facts), targetGroupQuestion(repo, f)])];
2053
2059
  }
2054
2060
  var repo0 = (members) => members[0].f.repo;
2055
- var byLine = (a, b) => a.localeCompare(b, "en", { numeric: true });
2061
+ var byLine = (a, b) => cmpNatural(a, b);
2056
2062
  var answerLabel2 = (q) => q.answer?.option !== void 0 ? q.options[q.answer.option - 1]?.label : q.answer?.text;
2057
2063
  function splitTargetGroups(questions) {
2058
2064
  return new Set(questions.filter((q) => q.askedBy?.step === TARGETS_STEP && q.state === "answered" && answerLabel2(q) === TARGETS_SPLIT).map((q) => q.question.trim()));
@@ -2111,7 +2117,7 @@ function groupedTargetDrafts(facts, records, op, asks, o) {
2111
2117
  draft
2112
2118
  });
2113
2119
  }
2114
- return out.sort((a, b) => a.factId.localeCompare(b.factId));
2120
+ return out.sort((a, b) => cmpText(a.factId, b.factId));
2115
2121
  }
2116
2122
  function targetRuleOffers(questions, factsOf) {
2117
2123
  const byKey = /* @__PURE__ */ new Map();
@@ -2148,25 +2154,25 @@ ${match}`;
2148
2154
  return out;
2149
2155
  }
2150
2156
  var segmentsOf = (p) => p.split(/[?#]/)[0].split("/").filter(Boolean).map((x) => /^[{:<]/.test(x) ? "{}" : x);
2151
- function ruleCoversCall(match, f, facts) {
2157
+ function ruleCoversCall(match, f, facts, o = {}) {
2152
2158
  if (isPathMatch(match)) {
2153
2159
  const want = segmentsOf(match.replace(/\/\*\*$/, ""));
2154
2160
  const got = segmentsOf(f.path);
2155
- return want.length <= got.length && want.every((x, i) => x === "{}" || got[i] === "{}" || x === got[i]);
2161
+ return want.length <= got.length && want.every((x, i) => x === "{}" || !o.strict && got[i] === "{}" || x === got[i]);
2156
2162
  }
2157
2163
  const url = urlOf(f, facts);
2158
2164
  const hp = url ? urlHostPort(url) : void 0;
2159
2165
  return !!hp?.host && hostMatches(match, hp.host, hp.port);
2160
2166
  }
2161
2167
  function ruledTargets(repo, facts, questions, o = {}) {
2162
- const rules = questions.filter((q) => q.askedBy?.step === TARGETS_STEP && q.state === "answered" && !!q.answer?.match && (q.answer.scope.level === "repo" ? q.answer.scope.id === repo : !!o.repoType && q.answer.scope.id === o.repoType)).sort((a, b) => (a.answer.scope.level === "repo" ? 0 : 1) - (b.answer.scope.level === "repo" ? 0 : 1) || b.answer.match.length - a.answer.match.length || b.answer.at.localeCompare(a.answer.at) || a.id.localeCompare(b.id));
2168
+ const rules = questions.filter((q) => q.askedBy?.step === TARGETS_STEP && q.state === "answered" && !!q.answer?.match && (q.answer.scope.level === "repo" ? q.answer.scope.id === repo : !!o.repoType && q.answer.scope.id === o.repoType)).sort((a, b) => (a.answer.scope.level === "repo" ? 0 : 1) - (b.answer.scope.level === "repo" ? 0 : 1) || b.answer.match.length - a.answer.match.length || cmpText(b.answer.at, a.answer.at) || cmpText(a.id, b.id));
2163
2169
  const out = /* @__PURE__ */ new Map();
2164
2170
  if (!rules.length)
2165
2171
  return out;
2166
2172
  for (const f of facts) {
2167
2173
  if (!ruleMayName(f, facts))
2168
2174
  continue;
2169
- const q = rules.find((r) => ruleCoversCall(r.answer.match, f, facts));
2175
+ const q = rules.find((r) => ruleCoversCall(r.answer.match, f, facts, o.strict ? { strict: true } : {}));
2170
2176
  const label2 = q ? answerLabel2(q) : void 0;
2171
2177
  if (q && label2 && label2 !== TARGETS_SPLIT)
2172
2178
  out.set(f.id, { id: q.id, match: q.answer.match, label: label2 });
@@ -2176,11 +2182,11 @@ function ruledTargets(repo, facts, questions, o = {}) {
2176
2182
  function targetsFromAnswers(repo, facts, questions, o = {}) {
2177
2183
  const byId = new Map(questions.map((q) => [q.id, q]));
2178
2184
  const groups = /* @__PURE__ */ new Map();
2179
- for (const q of [...questions].filter((x) => x.askedBy?.step === TARGETS_STEP && x.state === "answered" && !!x.answer && typeof x.question === "string").sort((a, b) => a.answer.at.localeCompare(b.answer.at) || a.id.localeCompare(b.id)))
2185
+ for (const q of [...questions].filter((x) => x.askedBy?.step === TARGETS_STEP && x.state === "answered" && !!x.answer && typeof x.question === "string").sort((a, b) => cmpText(a.answer.at, b.answer.at) || cmpText(a.id, b.id)))
2180
2186
  groups.set(q.question.trim(), q);
2181
2187
  const ruled = ruledTargets(repo, facts, questions, o);
2182
2188
  const out = {};
2183
- for (const f of [...facts].sort((a, b) => a.id.localeCompare(b.id))) {
2189
+ for (const f of [...facts].sort((a, b) => cmpText(a.id, b.id))) {
2184
2190
  if (f.kind !== "call")
2185
2191
  continue;
2186
2192
  const q = targetQuestionFor(f);
@@ -2282,7 +2288,26 @@ function staleTargetQuestions(input) {
2282
2288
  ...rules.length ? { replacedBy: rules } : {}
2283
2289
  });
2284
2290
  }
2285
- return out.sort((a, b) => a.id.localeCompare(b.id));
2291
+ return out.sort((a, b) => cmpText(a.id, b.id));
2292
+ }
2293
+ function staleTopicQuestions(input) {
2294
+ const drafted = new Set(input.drafted.map((d) => d.id));
2295
+ const out = [];
2296
+ for (const q of input.open) {
2297
+ if (q.state !== "open" || q.askedBy.step !== TOPICS_STEP_ID || q.repo !== input.repo)
2298
+ continue;
2299
+ if (drafted.has(q.id))
2300
+ continue;
2301
+ const topic = topicOfQuestion(q);
2302
+ if (!topic)
2303
+ continue;
2304
+ const by = input.drafted.filter((d) => d.topic === topic).map((d) => d.id);
2305
+ out.push(by.length ? { id: q.id, why: `${topic} is asked now in ${by.join(", ")}`, replacedBy: by } : {
2306
+ id: q.id,
2307
+ why: `${topic} is no longer a loose end: a repo of the estate serves its other side now, or the profile names who owns it`
2308
+ });
2309
+ }
2310
+ return out.sort((a, b) => cmpText(a.id, b.id));
2286
2311
  }
2287
2312
  function componentRenames(repos, op, taken = []) {
2288
2313
  const manifests = estateRepos(op);
@@ -2298,7 +2323,7 @@ function componentRenames(repos, op, taken = []) {
2298
2323
  if (users.has(t.id))
2299
2324
  use(t.id, t.repo);
2300
2325
  const out = {};
2301
- for (const [id, set] of [...users].sort((a, b) => a[0].localeCompare(b[0]))) {
2326
+ for (const [id, set] of [...users].sort((a, b) => cmpText(a[0], b[0]))) {
2302
2327
  if (set.size < 2)
2303
2328
  continue;
2304
2329
  for (const repo of repos.map((r) => r.repo).filter((r) => set.has(r))) {
@@ -2667,10 +2692,10 @@ function catalogWithFacts(given) {
2667
2692
  raw: r.raw
2668
2693
  });
2669
2694
  }
2670
- unresolved.sort((a, b) => a.factId.localeCompare(b.factId));
2695
+ unresolved.sort((a, b) => cmpText(a.factId, b.factId));
2671
2696
  return {
2672
2697
  records: applied.records.sort(byKindId),
2673
- flows: flows.sort((a, b) => a.id.localeCompare(b.id)),
2698
+ flows: flows.sort((a, b) => cmpText(a.id, b.id)),
2674
2699
  unresolved,
2675
2700
  curated: {
2676
2701
  applied: applied.applied,
@@ -2759,7 +2784,7 @@ function answerRuleOffers(input) {
2759
2784
  ]);
2760
2785
  }
2761
2786
  const out = [];
2762
- for (const [via, xs] of [...groups].sort(([a], [b]) => a.localeCompare(b))) {
2787
+ for (const [via, xs] of [...groups].sort(([a], [b]) => cmpText(a, b))) {
2763
2788
  const repos = [...new Set(xs.map((x) => x.repo))].sort();
2764
2789
  const labels = new Set(xs.map((x) => slugify(x.label)));
2765
2790
  if (repos.length < 2 || labels.size !== 1)
@@ -2876,7 +2901,7 @@ async function factsForScan(root, op, repo, commit, readerRecords, at3 = {}) {
2876
2901
  continue;
2877
2902
  extra.set(r.kind, (extra.get(r.kind) ?? 0) + 1);
2878
2903
  }
2879
- const said = [...extra.entries()].sort((a, b) => a[0].localeCompare(b[0])).map(([k, n]) => `${n} ${k}`).join(", ");
2904
+ const said = [...extra.entries()].sort((a, b) => cmpText(a[0], b[0])).map(([k, n]) => `${n} ${k}`).join(", ");
2880
2905
  return {
2881
2906
  records: newRecords,
2882
2907
  facts: used,
@@ -2887,9 +2912,9 @@ async function factsForScan(root, op, repo, commit, readerRecords, at3 = {}) {
2887
2912
  }
2888
2913
  async function pairsOfRepo(root, repo, facts) {
2889
2914
  const text2 = await readFile4(join6(factsDirOf(root), `${repo}.corrections.jsonl`), "utf8").catch(() => void 0);
2890
- if (!text2 || !text2.includes('"link"'))
2915
+ if (!text2 || !/"(?:un)?link"/.test(text2))
2891
2916
  return {};
2892
- return pairsFromCorrections(facts, parseCorrections(text2).corrections);
2917
+ return pairsFromCorrections(facts, parseCorrections(text2).corrections, { declined: true });
2893
2918
  }
2894
2919
  async function estateFacts(root, op, except) {
2895
2920
  const repos = [];
@@ -2902,10 +2927,9 @@ async function estateFacts(root, op, except) {
2902
2927
  for (const r of productionRepos(op)) {
2903
2928
  if (r.id === except)
2904
2929
  continue;
2905
- const text2 = await readFile4(join6(factsDirOf(root), `${r.id}.jsonl`), "utf8").catch(() => void 0);
2906
- if (text2 === void 0 || text2.trim() === "")
2930
+ const parsed = await keptParse(join6(factsDirOf(root), `${r.id}.jsonl`), "facts", (t) => t.trim() ? parseFacts(t) : null, { copy: true }).catch(() => void 0);
2931
+ if (!parsed)
2907
2932
  continue;
2908
- const parsed = parseFacts(text2);
2909
2933
  if (!parsed.ok) {
2910
2934
  notes.push(`${r.id}: its facts don't read, so the estate join leaves them out.`);
2911
2935
  continue;
@@ -3129,6 +3153,12 @@ function withExcludes(repo, exclude) {
3129
3153
  yield f;
3130
3154
  }
3131
3155
  });
3156
+ const listing = /* @__PURE__ */ Symbol.for("@maycombhq/sdk.listing");
3157
+ const before = repo[listing];
3158
+ Object.defineProperty(wrapped, listing, {
3159
+ value: `${typeof before === "string" ? before : ""}|exclude:${JSON.stringify(exclude.map((x) => `${x.source}/${x.flags}`))}`,
3160
+ configurable: true
3161
+ });
3132
3162
  return wrapped;
3133
3163
  }
3134
3164
  var join7 = (prefix, path) => `${prefix.replace(/\/+$/, "")}${path.startsWith("/") ? path : `/${path}`}`.replace(/\/+$/, "") || "/";
@@ -3629,7 +3659,7 @@ async function scanEstate(o) {
3629
3659
  orgPackDir
3630
3660
  });
3631
3661
  const notes = [...factNotes, ...merged.notes, ...glossary.problems.map((p) => `glossary: ${p}`)];
3632
- const withFeatures = [...glossary.records, ...fedRecords].sort((a, b) => a.kind === b.kind ? a.id.localeCompare(b.id) : a.kind.localeCompare(b.kind));
3662
+ const withFeatures = [...glossary.records, ...fedRecords].sort((a, b) => a.kind === b.kind ? cmpText(a.id, b.id) : cmpText(a.kind, b.kind));
3633
3663
  const applied = applyCurated(withFeatures, curated.records);
3634
3664
  for (const p of applied.problems)
3635
3665
  problems.push({ source: "curated", message: JSON.stringify(p) });
@@ -3823,7 +3853,7 @@ async function matchRepoType(repo, types, o = {}) {
3823
3853
  for (const t of types)
3824
3854
  matches.push(await scoreType(t, files));
3825
3855
  const pct = (m) => Math.round(m.score * 100);
3826
- matches.sort((a, b) => Number(a.ruledOut) - Number(b.ruledOut) || pct(b) - pct(a) || a.type.localeCompare(b.type));
3856
+ matches.sort((a, b) => Number(a.ruledOut) - Number(b.ruledOut) || pct(b) - pct(a) || cmpText(a.type, b.type));
3827
3857
  const said = typeFromWords(o.description, types);
3828
3858
  const eligible = matches.filter((m) => !m.ruledOut && pct(m) >= PARTIAL_MATCH * 100);
3829
3859
  const top2 = eligible[0];
@@ -3906,7 +3936,7 @@ async function resolveSettingsTemplate(t, repo, repoId) {
3906
3936
  out.exclude.push({ path: e.path, why: e.why, at: `${first}:1` });
3907
3937
  }
3908
3938
  for (const rule of t.settings.prefixes) {
3909
- const candidates2 = (await files.matching(rule.files)).sort((a, b) => a.length - b.length || a.localeCompare(b));
3939
+ const candidates2 = (await files.matching(rule.files)).sort((a, b) => a.length - b.length || cmpText(a, b));
3910
3940
  for (const f of candidates2) {
3911
3941
  const hit = await readRule(rule, f, files);
3912
3942
  if (!hit)
@@ -3981,7 +4011,7 @@ var PLAIN_ANNOTATIONS = /* @__PURE__ */ new Set([
3981
4011
  "JvmStatic"
3982
4012
  ]);
3983
4013
  function top(counts, n) {
3984
- return [...counts].sort((a, b) => b[1] - a[1] || a[0].localeCompare(b[0])).slice(0, n).map(([k]) => k);
4014
+ return [...counts].sort((a, b) => b[1] - a[1] || cmpText(a[0], b[0])).slice(0, n).map(([k]) => k);
3985
4015
  }
3986
4016
  var TEST_FILE = /(^|\/)(test|tests|__tests__|src\/test)\/|\.(spec|test)\.[jt]sx?$|Tests?\.(java|kt|cs)$/;
3987
4017
  async function draftMarkers(files) {
@@ -4209,7 +4239,7 @@ function specTriggers(records, repoId, template) {
4209
4239
  }
4210
4240
  }
4211
4241
  }
4212
- return out.sort((a, b) => a.id.localeCompare(b.id));
4242
+ return out.sort((a, b) => cmpText(a.id, b.id));
4213
4243
  }
4214
4244
  var methodPath = (s) => {
4215
4245
  const m = /^([A-Za-z]+)\s+(\S+)$/.exec(s.trim());
@@ -4680,7 +4710,7 @@ async function joinEstate(o) {
4680
4710
  const c = byId.get(id);
4681
4711
  return c?.kind === "Component" ? c.repo ?? c.evidence.find((e) => e.repo)?.repo : void 0;
4682
4712
  };
4683
- const servingExactly = (caller, want, scope) => endpoints.filter((e) => e.component !== caller && (!scope || scope.has(e.component)) && sameMethod(want.method, e.method) && pathScore(want.path, e.normalizedPath ?? e.pathOrTopic) === 1e3).sort((a, b) => a.id.localeCompare(b.id));
4713
+ const servingExactly = (caller, want, scope) => endpoints.filter((e) => e.component !== caller && (!scope || scope.has(e.component)) && sameMethod(want.method, e.method) && pathScore(want.path, e.normalizedPath ?? e.pathOrTopic) === 1e3).sort((a, b) => cmpText(a.id, b.id));
4684
4714
  const joins = [];
4685
4715
  const unmatched = [];
4686
4716
  const inferred = [];
@@ -4852,7 +4882,7 @@ async function joinEstate(o) {
4852
4882
  inferred.push({ from: { repo, flow: flow.id, step }, named: s.to.component, ...guess });
4853
4883
  }
4854
4884
  }
4855
- const order = (a, b) => a.from.flow.localeCompare(b.from.flow) || a.from.step - b.from.step;
4885
+ const order = (a, b) => cmpText(a.from.flow, b.from.flow) || a.from.step - b.from.step;
4856
4886
  return {
4857
4887
  joins: joins.sort(order),
4858
4888
  unmatched: unmatched.sort(order),
@@ -5123,7 +5153,7 @@ async function unknownHosts(o) {
5123
5153
  return out;
5124
5154
  };
5125
5155
  const asks = [];
5126
- for (const [host, entry] of [...byHost.entries()].sort(([a], [b]) => a.localeCompare(b))) {
5156
+ for (const [host, entry] of [...byHost.entries()].sort(([a], [b]) => cmpText(a, b))) {
5127
5157
  if (servers.length === 0)
5128
5158
  continue;
5129
5159
  const hits = [];
@@ -5137,7 +5167,7 @@ async function unknownHosts(o) {
5137
5167
  }
5138
5168
  }
5139
5169
  const suggest = hits.length === 1 ? hits[0] : void 0;
5140
- const calls = entry.calls.sort((a, b) => a.repo.localeCompare(b.repo) || a.at.localeCompare(b.at, "en", { numeric: true }));
5170
+ const calls = entry.calls.sort((a, b) => cmpText(a.repo, b.repo) || cmpNatural(a.at, b.at));
5141
5171
  const byPath = [];
5142
5172
  for (const g of o.records) {
5143
5173
  if (g.kind !== "GatewayRoute")
@@ -5155,7 +5185,7 @@ async function unknownHosts(o) {
5155
5185
  serves: hit ? [hit.method?.toUpperCase(), hit.pathOrTopic].filter(Boolean).join(" ") : `the routes under ${g.basepath}`
5156
5186
  });
5157
5187
  }
5158
- byPath.sort((a, b) => a.repo.localeCompare(b.repo));
5188
+ byPath.sort((a, b) => cmpText(a.repo, b.repo));
5159
5189
  const first = suggest ? [suggest.repo] : byPath.map((b) => b.repo).filter((x) => servers.includes(x));
5160
5190
  const about = Object.fromEntries(servers.flatMap((s) => {
5161
5191
  const d = o.repos.find((r) => r.id === s)?.description;
@@ -5644,6 +5674,7 @@ export {
5644
5674
  answeredQuestionOfCall,
5645
5675
  answerReconfirmed,
5646
5676
  staleTargetQuestions,
5677
+ staleTopicQuestions,
5647
5678
  componentRenames,
5648
5679
  factsRecords,
5649
5680
  outsideSystems,
@@ -7,7 +7,7 @@ import {
7
7
  effectiveComponentTypes,
8
8
  loadOrgPack,
9
9
  orgPackDirOf
10
- } from "./chunk-PAINMSID.js";
10
+ } from "./chunk-FPBUTZI5.js";
11
11
 
12
12
  // packages/cli/dist/component-types.js
13
13
  async function componentTypesAt(root, given) {
@@ -6,32 +6,34 @@ var __atticusPath = (p) => __atticusFileURLToPath(__atticusUrl(p));
6
6
  import {
7
7
  renderTaskContext,
8
8
  taskContext
9
- } from "./chunk-BEPCKDCP.js";
10
- import "./chunk-HWD4JPU7.js";
11
- import "./chunk-5WERBKLE.js";
12
- import "./chunk-K332XW7K.js";
9
+ } from "./chunk-MLGWSBF4.js";
10
+ import "./chunk-CA3DKO4D.js";
11
+ import "./chunk-D6BVLTDV.js";
12
+ import "./chunk-RCG5IAAT.js";
13
13
  import {
14
14
  changeFolder,
15
15
  changeStore
16
- } from "./chunk-HSZMPH5T.js";
17
- import "./chunk-D2WSW4GU.js";
18
- import "./chunk-4KNOJC6J.js";
19
- import "./chunk-4SLBCEPD.js";
20
- import "./chunk-64AADMTW.js";
21
- import "./chunk-JYMIB5XY.js";
16
+ } from "./chunk-WZYM5M4U.js";
17
+ import "./chunk-NC755EKE.js";
18
+ import "./chunk-FL344WQD.js";
19
+ import "./chunk-IKAW2KJU.js";
20
+ import "./chunk-CZ2ZS7AT.js";
21
+ import "./chunk-4GAB5ZOZ.js";
22
22
  import {
23
23
  attachToChange
24
- } from "./chunk-CPK7QSBG.js";
25
- import "./chunk-YO2PKTXT.js";
26
- import "./chunk-TWQRPM76.js";
27
- import "./chunk-XOL3GFW2.js";
28
- import "./chunk-QHJJMZLX.js";
29
- import "./chunk-7AB6OWTV.js";
24
+ } from "./chunk-A4JXVO5O.js";
25
+ import "./chunk-TDSCKP3V.js";
26
+ import "./chunk-G6EFXTUO.js";
27
+ import "./chunk-PQQKZPBU.js";
28
+ import "./chunk-3EWKO457.js";
29
+ import "./chunk-3424TLIJ.js";
30
+ import "./chunk-QA4O2GGC.js";
30
31
  import {
31
32
  changesRelOf,
32
33
  inputsDirOf
33
- } from "./chunk-PAINMSID.js";
34
- import "./chunk-ODMBPDDV.js";
34
+ } from "./chunk-FPBUTZI5.js";
35
+ import "./chunk-B4AEL3RF.js";
36
+ import "./chunk-BQGDB6ZL.js";
35
37
  import "./chunk-TV45EUGM.js";
36
38
 
37
39
  // packages/cli/dist/attach-commands.js
@@ -90,7 +92,7 @@ async function promoteChangeInput(root, change, file) {
90
92
  } catch {
91
93
  throw new AttachError("not-found", `inputs/${name} isn't attached to ${c.id}: atticus change attach ${c.id} adds it.`);
92
94
  }
93
- const { addToInbox } = await import("./chunk-ZKYRDV7A.js");
95
+ const { addToInbox } = await import("./chunk-OBUB3H72.js");
94
96
  const r = await addToInbox(root, [{ name, bytes }]);
95
97
  const added = r.added[0];
96
98
  if (!added)
@@ -107,11 +109,11 @@ function attachedLine(rel, a) {
107
109
  async function changeAttachCli(root, change, paths, o, io) {
108
110
  if (change && o.prototype) {
109
111
  if (paths.length) {
110
- const { PROTOTYPE_CLI_WORDS } = await import("./chunk-VYOCPTUB.js");
112
+ const { PROTOTYPE_CLI_WORDS } = await import("./chunk-GM4EFHUX.js");
111
113
  io.err(PROTOTYPE_CLI_WORDS.usage(change, o.prototype));
112
114
  return 2;
113
115
  }
114
- const { attachPrototype } = await import("./chunk-VYOCPTUB.js");
116
+ const { attachPrototype } = await import("./chunk-GM4EFHUX.js");
115
117
  return attachPrototype(root, change, o.prototype, { by: o.by, ...o.json ? { json: true } : {}, ...o.now ? { now: o.now } : {} }, io);
116
118
  }
117
119
  if (change && o.like) {
@@ -119,7 +121,7 @@ async function changeAttachCli(root, change, paths, o, io) {
119
121
  io.err("--like names an archived change, attached on its own: atticus change attach add-refund-window --like raise-transfer-limit");
120
122
  return 2;
121
123
  }
122
- const { attachPastChange, findPastChange } = await import("./chunk-BC6KKZ67.js");
124
+ const { attachPastChange, findPastChange } = await import("./chunk-FTLYXMHA.js");
123
125
  const folder = await findPastChange(root, o.like);
124
126
  if (!folder) {
125
127
  io.err(`There is no archived change ${o.like}: atticus change similar "<what it is about>" lists them.`);
@@ -6,14 +6,14 @@ var __atticusPath = (p) => __atticusFileURLToPath(__atticusUrl(p));
6
6
  import {
7
7
  resumedAttempt,
8
8
  stepClassOf
9
- } from "./chunk-QHJJMZLX.js";
9
+ } from "./chunk-3424TLIJ.js";
10
10
  import {
11
11
  RUN_SCHEMA_VERSION,
12
12
  STEP_CLASSES,
13
13
  changesDirOf,
14
14
  runsDirOf,
15
15
  runsRelOf
16
- } from "./chunk-PAINMSID.js";
16
+ } from "./chunk-FPBUTZI5.js";
17
17
 
18
18
  // packages/cli/dist/runs-view.js
19
19
  import { createHash } from "node:crypto";
@@ -180,7 +180,10 @@ async function runTranscript(root, runId) {
180
180
  }
181
181
 
182
182
  export {
183
+ answerOf,
184
+ item,
183
185
  partStates,
186
+ allRuns,
184
187
  listRuns,
185
188
  runTranscript
186
189
  };
@@ -134,10 +134,11 @@ import {
134
134
  webhooksExtractor,
135
135
  wrapperCalls,
136
136
  yamlKeyLine
137
- } from "./chunk-TWQRPM76.js";
138
- import "./chunk-7AB6OWTV.js";
139
- import "./chunk-PAINMSID.js";
140
- import "./chunk-ODMBPDDV.js";
137
+ } from "./chunk-G6EFXTUO.js";
138
+ import "./chunk-PQQKZPBU.js";
139
+ import "./chunk-FPBUTZI5.js";
140
+ import "./chunk-B4AEL3RF.js";
141
+ import "./chunk-BQGDB6ZL.js";
141
142
  import "./chunk-TV45EUGM.js";
142
143
  export {
143
144
  BACKEND_EXTRACTORS,
@@ -0,0 +1,69 @@
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
+ assistantFiles,
8
+ describeRun,
9
+ driftCommand,
10
+ runDone,
11
+ specHandDown,
12
+ specHandUp,
13
+ taskHandoff,
14
+ taskRun,
15
+ taskRunNotWaiting
16
+ } from "./chunk-SK5RVP7X.js";
17
+ import {
18
+ isTaskRun
19
+ } from "./chunk-PNSSE7JM.js";
20
+ import "./chunk-ENH6Z4TY.js";
21
+ import "./chunk-73CC73I4.js";
22
+ import "./chunk-4ETO2FXE.js";
23
+ import "./chunk-S5GSQPIN.js";
24
+ import "./chunk-J4CPHJUL.js";
25
+ import "./chunk-RPQITJNX.js";
26
+ import "./chunk-Y2H7X3VI.js";
27
+ import "./chunk-ZNHQGG7J.js";
28
+ import "./chunk-ZSNOILL5.js";
29
+ import "./chunk-JMEWJPF2.js";
30
+ import "./chunk-EMVZIOOD.js";
31
+ import "./chunk-MUWDB4R4.js";
32
+ import "./chunk-VOGCSYOI.js";
33
+ import "./chunk-ZR6J4QFQ.js";
34
+ import "./chunk-MLGWSBF4.js";
35
+ import "./chunk-CA3DKO4D.js";
36
+ import "./chunk-D6BVLTDV.js";
37
+ import "./chunk-RCG5IAAT.js";
38
+ import "./chunk-WZYM5M4U.js";
39
+ import "./chunk-NC755EKE.js";
40
+ import "./chunk-FL344WQD.js";
41
+ import "./chunk-IKAW2KJU.js";
42
+ import "./chunk-CZ2ZS7AT.js";
43
+ import "./chunk-4GAB5ZOZ.js";
44
+ import "./chunk-A4JXVO5O.js";
45
+ import "./chunk-TDSCKP3V.js";
46
+ import "./chunk-G6EFXTUO.js";
47
+ import "./chunk-PQQKZPBU.js";
48
+ import "./chunk-3EWKO457.js";
49
+ import {
50
+ runtimeForCli
51
+ } from "./chunk-3424TLIJ.js";
52
+ import "./chunk-QA4O2GGC.js";
53
+ import "./chunk-FPBUTZI5.js";
54
+ import "./chunk-B4AEL3RF.js";
55
+ import "./chunk-BQGDB6ZL.js";
56
+ import "./chunk-TV45EUGM.js";
57
+ export {
58
+ assistantFiles,
59
+ describeRun,
60
+ driftCommand,
61
+ isTaskRun,
62
+ runDone,
63
+ runtimeForCli,
64
+ specHandDown,
65
+ specHandUp,
66
+ taskHandoff,
67
+ taskRun,
68
+ taskRunNotWaiting
69
+ };