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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (280) hide show
  1. package/dist/bin.js +3 -3
  2. package/dist/{chunk-TJH2EUAZ.js → chunk-23XVSEV5.js} +20 -18
  3. package/dist/{chunk-BXBCMGIQ.js → chunk-24OXGB3P.js} +1 -1
  4. package/dist/{chunk-DCWN3HFV.js → chunk-24XLDU72.js} +4 -3
  5. package/dist/{chunk-Q46QDDMF.js → chunk-2F4CYZKJ.js} +14 -9
  6. package/dist/{chunk-75ASLHBT.js → chunk-2GF7OLF3.js} +17 -15
  7. package/dist/chunk-2IIMFOPM.js +41 -0
  8. package/dist/{chunk-JRVNXLZP.js → chunk-2LGRMVCA.js} +14 -12
  9. package/dist/{chunk-62DLJSLV.js → chunk-2MMCFP5C.js} +10 -8
  10. package/dist/{chunk-UF4UHCIG.js → chunk-2Q56PQPS.js} +6 -4
  11. package/dist/{chunk-5TDRBOAV.js → chunk-2Q5EDGEO.js} +7 -5
  12. package/dist/{chunk-NYOABJNK.js → chunk-2RLKFUUL.js} +26 -24
  13. package/dist/chunk-2SKB4O2E.js +59 -0
  14. package/dist/{chunk-GCS3FZOB.js → chunk-34S2WGOB.js} +13 -4
  15. package/dist/{chunk-7AB6OWTV.js → chunk-3NFFJL5D.js} +31 -25
  16. package/dist/{chunk-GC2VK3JT.js → chunk-3NWDLGG6.js} +28 -25
  17. package/dist/{chunk-FLVZFTLQ.js → chunk-3RM4UK6W.js} +20 -18
  18. package/dist/{chunk-CNU5Q2D5.js → chunk-42SIDKEU.js} +37 -29
  19. package/dist/{chunk-K6JB6XTX.js → chunk-4EURQWQD.js} +20 -15
  20. package/dist/{chunk-OMPENNWY.js → chunk-4U276ICE.js} +1 -1
  21. package/dist/{chunk-JAABT3DA.js → chunk-53T4O55J.js} +4 -3
  22. package/dist/{chunk-YTTNTQOX.js → chunk-57TDNMI3.js} +17 -15
  23. package/dist/chunk-5BD2KYLE.js +57 -0
  24. package/dist/{chunk-7EFILTCI.js → chunk-5F7GFN2F.js} +28 -0
  25. package/dist/{chunk-KYZMRSPS.js → chunk-5NMKONLP.js} +5 -3
  26. package/dist/{chunk-5CMPVC3N.js → chunk-5SJZW52K.js} +25 -23
  27. package/dist/{chunk-YAH5IQAL.js → chunk-63YRMR6J.js} +6 -5
  28. package/dist/{chunk-GUYL7RMK.js → chunk-66PPNOON.js} +27 -25
  29. package/dist/chunk-6H3Z5JHH.js +64 -0
  30. package/dist/{chunk-Y6K3CJBU.js → chunk-6MUGR4LS.js} +75 -27
  31. package/dist/{chunk-DDJPM5YX.js → chunk-6OJQOPUN.js} +5 -3
  32. package/dist/{chunk-2V2ZPQQU.js → chunk-6PPOWY5E.js} +9 -7
  33. package/dist/{chunk-YO2PKTXT.js → chunk-6ZGLAACW.js} +5 -3
  34. package/dist/{chunk-LIJJCBQI.js → chunk-6ZJ5A7AF.js} +15 -16
  35. package/dist/{chunk-64AADMTW.js → chunk-745DAZ4L.js} +50 -12
  36. package/dist/{chunk-VYOCPTUB.js → chunk-7ASNL4Q4.js} +17 -15
  37. package/dist/{chunk-XEQCQO66.js → chunk-7BR7IPOH.js} +10 -8
  38. package/dist/{chunk-X2CUXTWU.js → chunk-7DOR27HL.js} +6 -6
  39. package/dist/{chunk-G6IQYM25.js → chunk-7FTTA3HD.js} +8 -6
  40. package/dist/{chunk-FAJDKNSD.js → chunk-7GJS6DNX.js} +8 -3
  41. package/dist/{chunk-4KNOJC6J.js → chunk-7IGKHZ4Z.js} +55 -13
  42. package/dist/{chunk-3WON4G3M.js → chunk-7IOWA5D5.js} +11 -6
  43. package/dist/{chunk-PNQLCRSS.js → chunk-7JITZFJC.js} +7 -5
  44. package/dist/{chunk-2D7PWSOK.js → chunk-7MJSQTL5.js} +22 -20
  45. package/dist/{chunk-AE4P57KK.js → chunk-7UOMVMFG.js} +17 -15
  46. package/dist/{chunk-GK4PYVEC.js → chunk-AFWUDXEM.js} +10 -8
  47. package/dist/chunk-AFZ3QA6W.js +47 -0
  48. package/dist/{chunk-7FUIVIBG.js → chunk-AJQ72EBM.js} +13 -8
  49. package/dist/{chunk-QOOEYDNJ.js → chunk-AJYXNTNZ.js} +6 -6
  50. package/dist/chunk-AVTBS4OW.js +49 -0
  51. package/dist/{chunk-WFU77T3A.js → chunk-BDKC6H5P.js} +5 -5
  52. package/dist/{chunk-3AQ2R5NL.js → chunk-BEVTIBRH.js} +9 -7
  53. package/dist/{chunk-J5AAZ6OJ.js → chunk-BHT7QK4G.js} +5 -4
  54. package/dist/{chunk-UFE36WJH.js → chunk-BIGDQDHD.js} +6 -4
  55. package/dist/{chunk-WNTIOBOG.js → chunk-BO4KX37X.js} +20 -18
  56. package/dist/{chunk-455SYIIE.js → chunk-BPK5P77O.js} +5 -3
  57. package/dist/{chunk-OZJ3JLYI.js → chunk-BQ4SQQC6.js} +10 -9
  58. package/dist/chunk-BQGDB6ZL.js +7342 -0
  59. package/dist/{chunk-EZIN5E5B.js → chunk-BTGPE6CR.js} +11 -9
  60. package/dist/{chunk-265LWMOA.js → chunk-BTY3HZBO.js} +18 -16
  61. package/dist/{chunk-TW3KOSQK.js → chunk-BXYMYEJ4.js} +7 -6
  62. package/dist/{chunk-HK3VOHIE.js → chunk-C3RY6KU6.js} +119 -18
  63. package/dist/chunk-C4R4JLHE.js +40 -0
  64. package/dist/{chunk-Z3QFH7YG.js → chunk-CADWLE2T.js} +5 -4
  65. package/dist/{chunk-J2O4LFVI.js → chunk-CBGGOQWU.js} +6 -4
  66. package/dist/chunk-CMDXGQTS.js +47 -0
  67. package/dist/{chunk-TWQRPM76.js → chunk-CQDGOPGH.js} +23 -16
  68. package/dist/{chunk-5PV7S2ZP.js → chunk-CX4RZ2KS.js} +4 -3
  69. package/dist/{chunk-JYMIB5XY.js → chunk-CXJ6FUKN.js} +164 -44
  70. package/dist/{chunk-D57MFJPP.js → chunk-D73UEXYW.js} +3 -3
  71. package/dist/{chunk-UYLBRRFK.js → chunk-DCZWQLYT.js} +125 -26
  72. package/dist/chunk-DLOBCJL6.js +48 -0
  73. package/dist/{chunk-IFHDV6KQ.js → chunk-DOBQKHIF.js} +23 -23
  74. package/dist/{chunk-QJCJOMW3.js → chunk-E3ISYXO3.js} +19 -21
  75. package/dist/{chunk-VAMHOHUU.js → chunk-E6ZIEVOI.js} +16 -13
  76. package/dist/{chunk-EFCQSMXB.js → chunk-EBL2R3YG.js} +10 -4
  77. package/dist/{chunk-HGHRSF3E.js → chunk-EGQRREQH.js} +25 -17
  78. package/dist/{chunk-3J5I7ZOU.js → chunk-EHA7RMZ3.js} +4 -4
  79. package/dist/{chunk-7CZHUZBL.js → chunk-EIPTLPFC.js} +38 -27
  80. package/dist/{chunk-UZACEG2C.js → chunk-EMRIQUND.js} +17 -15
  81. package/dist/{chunk-RALY3E5U.js → chunk-EPCJQQWD.js} +6 -4
  82. package/dist/{chunk-VUVGX5L2.js → chunk-F3P7N7SF.js} +1 -1
  83. package/dist/{chunk-RA33EYS4.js → chunk-FFLNS6VP.js} +19 -17
  84. package/dist/{chunk-OPQZISG3.js → chunk-FFTRTL6R.js} +5 -4
  85. package/dist/{chunk-DUPZPDCJ.js → chunk-FPJPLKDW.js} +18 -14
  86. package/dist/{chunk-2HH3UCZM.js → chunk-FSMSFDLD.js} +5 -4
  87. package/dist/{chunk-AHW3RY3X.js → chunk-FUJM6RTF.js} +8 -7
  88. package/dist/{chunk-2UCRFXFZ.js → chunk-FZOJFH7Q.js} +13 -11
  89. package/dist/{chunk-BVWWPBKD.js → chunk-G6X77UJZ.js} +20 -18
  90. package/dist/{chunk-BPPU3PW7.js → chunk-GCWRWSU7.js} +10 -4
  91. package/dist/chunk-GIW4ZVDB.js +39 -0
  92. package/dist/{chunk-FY3QIRTL.js → chunk-GUX3PTYM.js} +3 -3
  93. package/dist/{chunk-BA2HUMDN.js → chunk-GZY6RUZ6.js} +2 -2
  94. package/dist/chunk-H4VO6WG3.js +10 -0
  95. package/dist/{chunk-UEVZZZU2.js → chunk-H5HBGNXU.js} +5 -4
  96. package/dist/{chunk-GS76RXQE.js → chunk-H7KM7LZE.js} +15 -12
  97. package/dist/{chunk-I2A3Z5AK.js → chunk-HNM2YQT2.js} +4 -4
  98. package/dist/{chunk-3UTYPHN3.js → chunk-HYU5VLGA.js} +1 -1
  99. package/dist/{chunk-HSZMPH5T.js → chunk-IDKCWSM5.js} +225 -50
  100. package/dist/{chunk-BXZ4PKIT.js → chunk-IFKEI4SA.js} +15 -11
  101. package/dist/{chunk-XG4WJHLQ.js → chunk-IGOE6KPG.js} +49 -20
  102. package/dist/{chunk-GNWAOVFQ.js → chunk-IH2XURVQ.js} +5 -5
  103. package/dist/{chunk-YIGBJNH4.js → chunk-INQHESFB.js} +5 -4
  104. package/dist/chunk-IP74LCOQ.js +57 -0
  105. package/dist/chunk-IPHHDDC6.js +45 -0
  106. package/dist/{chunk-5WERBKLE.js → chunk-ISUAAMGS.js} +42 -221
  107. package/dist/{chunk-7FHNFCHK.js → chunk-IUPG3UKI.js} +154 -368
  108. package/dist/{chunk-HWD4JPU7.js → chunk-IVBOQAGB.js} +4 -2
  109. package/dist/{chunk-4SLBCEPD.js → chunk-J2JAKCIW.js} +88 -57
  110. package/dist/{chunk-G5YJBNDZ.js → chunk-J3IOLXWM.js} +8 -6
  111. package/dist/{chunk-FQ6WH6PB.js → chunk-JA5FI3QV.js} +6 -4
  112. package/dist/chunk-JAVI7JSP.js +49 -0
  113. package/dist/{chunk-ZFQMMU5Y.js → chunk-JB5LINEM.js} +6 -2
  114. package/dist/{chunk-LQH4P45K.js → chunk-JENSEMXF.js} +1 -1
  115. package/dist/{chunk-M6D2U3YM.js → chunk-JJF6HALY.js} +4 -3
  116. package/dist/chunk-JLUCKAEL.js +38 -0
  117. package/dist/{chunk-M4H2UG4R.js → chunk-JRBFANFE.js} +19 -16
  118. package/dist/{chunk-YZDZOEV4.js → chunk-KDNTAPLX.js} +3 -3
  119. package/dist/{chunk-IFFRGC3N.js → chunk-KFAVQZSX.js} +14 -12
  120. package/dist/chunk-KJXD4PNL.js +50 -0
  121. package/dist/chunk-KN5BXMWN.js +44 -0
  122. package/dist/{chunk-HXXP2NTE.js → chunk-KQGURXFU.js} +9 -7
  123. package/dist/{chunk-PQH56YF6.js → chunk-KXITGYLF.js} +6 -4
  124. package/dist/{chunk-MMZUN7ZO.js → chunk-L27SV425.js} +22 -20
  125. package/dist/{chunk-XQ3YZ4QW.js → chunk-LDLL7LB3.js} +24 -22
  126. package/dist/{chunk-6DQYZU2W.js → chunk-LFGTYX5U.js} +15 -15
  127. package/dist/{chunk-4D62IZII.js → chunk-LGBMTVNT.js} +7 -5
  128. package/dist/{chunk-YKTE2RU3.js → chunk-LGFL54FP.js} +3 -2
  129. package/dist/{chunk-GDZB57IU.js → chunk-LJXMYKZJ.js} +7 -5
  130. package/dist/{chunk-YJ3TBOTK.js → chunk-LKOR5UET.js} +29 -26
  131. package/dist/{chunk-WIWTJMMR.js → chunk-LNBQOP7D.js} +23 -21
  132. package/dist/{chunk-TGVVUKTG.js → chunk-LO6P2VYG.js} +2 -2
  133. package/dist/{chunk-HE3HRDNZ.js → chunk-LQJPN536.js} +2 -2
  134. package/dist/{chunk-PRW3HXM3.js → chunk-LYBNHMVZ.js} +29 -5
  135. package/dist/{chunk-75ZOZFGH.js → chunk-LZ7NUC62.js} +20 -18
  136. package/dist/chunk-M32BLWDH.js +37 -0
  137. package/dist/{chunk-QKMRFNMA.js → chunk-M3NANSDZ.js} +17 -15
  138. package/dist/chunk-MFHL5URL.js +31 -0
  139. package/dist/{chunk-TYD6I4CZ.js → chunk-MFR5OPBD.js} +6 -6
  140. package/dist/{chunk-LIRVU3HW.js → chunk-MG4ZL5RW.js} +32 -20
  141. package/dist/{chunk-ICHDSWEY.js → chunk-MO6P2JZH.js} +10 -8
  142. package/dist/{chunk-3LZ6P5EP.js → chunk-MUWDB4R4.js} +1 -1
  143. package/dist/{chunk-E57AOFYN.js → chunk-MZCGSXVR.js} +15 -13
  144. package/dist/{chunk-77O633L5.js → chunk-N3XIYPU3.js} +14 -12
  145. package/dist/{chunk-CG6CULP6.js → chunk-NDCF4R6S.js} +7 -5
  146. package/dist/{chunk-JS6WMC3J.js → chunk-NR2UJWOC.js} +10 -8
  147. package/dist/chunk-NXJ5URP6.js +51 -0
  148. package/dist/{chunk-NTAVOWYD.js → chunk-NY2XSR5K.js} +20 -18
  149. package/dist/{chunk-PUEWDYGP.js → chunk-O45HFTFS.js} +3 -2
  150. package/dist/{chunk-URIKUID7.js → chunk-O4GXGGBX.js} +14 -12
  151. package/dist/{chunk-C7CEK3KW.js → chunk-O5PXQR67.js} +7 -5
  152. package/dist/{chunk-E2VXBSIR.js → chunk-O66DM6DJ.js} +6 -4
  153. package/dist/{chunk-P2VBXX7N.js → chunk-O7FDLW7L.js} +11 -9
  154. package/dist/{chunk-COYN3UAN.js → chunk-O7XLYEFA.js} +59 -22
  155. package/dist/{chunk-5QUOPNLN.js → chunk-OHNCWBKF.js} +4 -4
  156. package/dist/{chunk-AZDITBCT.js → chunk-OHVTTOPS.js} +3 -3
  157. package/dist/chunk-OMI6FPPN.js +43 -0
  158. package/dist/chunk-ONUPY3H6.js +53 -0
  159. package/dist/chunk-OTLDSZDV.js +69 -0
  160. package/dist/{chunk-L4CESDPB.js → chunk-OUBGGKDU.js} +1 -1
  161. package/dist/{chunk-4FOAYLI4.js → chunk-OWNCM4ZN.js} +9 -7
  162. package/dist/{chunk-4B6BT75O.js → chunk-P2V7QW4D.js} +81 -24
  163. package/dist/{chunk-QHJJMZLX.js → chunk-P32RUW3B.js} +167 -92
  164. package/dist/{chunk-F6H2RJ3N.js → chunk-PAQ2AS5E.js} +1 -1
  165. package/dist/{chunk-ZLS6PU2O.js → chunk-PBPBMP2B.js} +4 -3
  166. package/dist/{chunk-ZOSD4FXV.js → chunk-PJSJPMJI.js} +3 -3
  167. package/dist/{chunk-XOL3GFW2.js → chunk-PKBHS4AA.js} +68 -31
  168. package/dist/{chunk-ZZFHLRQW.js → chunk-PMUAJGLI.js} +18 -16
  169. package/dist/{chunk-SH27FYPF.js → chunk-PPD7HTDP.js} +20 -18
  170. package/dist/chunk-PSOFBQWB.js +42 -0
  171. package/dist/{chunk-PAINMSID.js → chunk-Q2TECDIT.js} +987 -7619
  172. package/dist/{chunk-LU4MQVAL.js → chunk-Q4K5WB2W.js} +11 -10
  173. package/dist/{chunk-ECLXZWAG.js → chunk-Q6DFNVRJ.js} +14 -12
  174. package/dist/chunk-QA4O2GGC.js +265 -0
  175. package/dist/{chunk-4WXRPQDE.js → chunk-QAXW2N3B.js} +182 -33
  176. package/dist/{chunk-WCEF7H6L.js → chunk-QFWA2DPH.js} +8 -5
  177. package/dist/{chunk-CPK7QSBG.js → chunk-QKUJMING.js} +8 -6
  178. package/dist/{chunk-LEBR5NHW.js → chunk-R44CYFPV.js} +18 -15
  179. package/dist/{chunk-BEPCKDCP.js → chunk-R7NYHMUU.js} +153 -84
  180. package/dist/{chunk-G6X4YL4D.js → chunk-REWWDVQB.js} +5 -4
  181. package/dist/{chunk-LN77DXBM.js → chunk-RGERPOIV.js} +10 -10
  182. package/dist/{chunk-UDXWIPCB.js → chunk-RLDGWLQ7.js} +9 -7
  183. package/dist/chunk-RUGXBPWI.js +384 -0
  184. package/dist/{chunk-FYBF5MB2.js → chunk-RXPJMEOW.js} +13 -11
  185. package/dist/{chunk-K332XW7K.js → chunk-S4PMJU6H.js} +20 -9
  186. package/dist/{chunk-THN26IEF.js → chunk-S7FCV7S5.js} +4 -1
  187. package/dist/{chunk-OV57AHCG.js → chunk-SDKLKB6I.js} +26 -24
  188. package/dist/{chunk-O4IKAIZ2.js → chunk-SFSPGFCV.js} +28 -22
  189. package/dist/{chunk-TQ4TG57V.js → chunk-SFUP7TTO.js} +4 -4
  190. package/dist/{chunk-YBOVNMHC.js → chunk-SLXZOMA6.js} +29 -16
  191. package/dist/{chunk-LWDNKE4X.js → chunk-SQV37XO2.js} +6 -6
  192. package/dist/{chunk-67BP7HXL.js → chunk-SU74NDMQ.js} +19 -17
  193. package/dist/{chunk-JKIGL3XQ.js → chunk-SYV5LHML.js} +36 -33
  194. package/dist/chunk-T4YPZIQN.js +36 -0
  195. package/dist/{chunk-GX74YWR7.js → chunk-T6DQR5TV.js} +16 -14
  196. package/dist/{chunk-LNWEWYCM.js → chunk-THDMSZ3R.js} +345 -253
  197. package/dist/{chunk-NCB6656Z.js → chunk-TNR75OXT.js} +7 -7
  198. package/dist/{chunk-ODMBPDDV.js → chunk-TUULXQRW.js} +124 -2
  199. package/dist/{chunk-MD7KUEJ3.js → chunk-TYQBFTBR.js} +9 -7
  200. package/dist/chunk-U76OWS3Q.js +49 -0
  201. package/dist/{chunk-GSGIZ2OO.js → chunk-UCROWG2D.js} +27 -24
  202. package/dist/{chunk-PTQ3ZALZ.js → chunk-UF4AZOZB.js} +14 -12
  203. package/dist/{chunk-QE527XRY.js → chunk-UF4GLFBX.js} +26 -23
  204. package/dist/{chunk-YWAKDNMH.js → chunk-UGUP3ZM6.js} +70 -19
  205. package/dist/{chunk-3G6S7LAA.js → chunk-UNAGJYET.js} +14 -12
  206. package/dist/{chunk-EDZ45WIR.js → chunk-UOR2DTHH.js} +16 -14
  207. package/dist/{chunk-42EPP7OB.js → chunk-UPOY4YSQ.js} +14 -12
  208. package/dist/{chunk-API5TOUB.js → chunk-UPS2DGFC.js} +1 -1
  209. package/dist/{chunk-D2WSW4GU.js → chunk-UUU4CLJG.js} +4 -2
  210. package/dist/{chunk-ZKYRDV7A.js → chunk-UWMJKX5U.js} +14 -12
  211. package/dist/{chunk-HS4BGB4G.js → chunk-UWOJLHFT.js} +25 -23
  212. package/dist/{chunk-OKUB6RJA.js → chunk-VBTP56CE.js} +8 -6
  213. package/dist/{chunk-3SSTNB4E.js → chunk-VCTWPLAO.js} +34 -14
  214. package/dist/{chunk-YF5DZCPN.js → chunk-VNU26RCO.js} +37 -34
  215. package/dist/{chunk-AOCWFA7T.js → chunk-VTZMAJ3W.js} +8 -8
  216. package/dist/{chunk-ZQLRCA2V.js → chunk-VW62D6QE.js} +10 -8
  217. package/dist/{chunk-WAZEXEJH.js → chunk-VY72R2XZ.js} +45 -2
  218. package/dist/{chunk-WEOMJHPV.js → chunk-VZALIKIF.js} +18 -15
  219. package/dist/{chunk-TSM6T6GQ.js → chunk-W62H2XSO.js} +25 -23
  220. package/dist/{chunk-BC6KKZ67.js → chunk-W7VWI2YH.js} +9 -6
  221. package/dist/{chunk-LO3BLMVG.js → chunk-WERM6KPJ.js} +7 -4
  222. package/dist/{chunk-36RY7ZXM.js → chunk-WF7B67YE.js} +88 -26
  223. package/dist/{chunk-TQTRWENN.js → chunk-WG5U3F5V.js} +14 -12
  224. package/dist/{chunk-NRQ65LTQ.js → chunk-WJF2CS6M.js} +6 -5
  225. package/dist/{chunk-FVMPFCDS.js → chunk-WKUJ3KPV.js} +4 -4
  226. package/dist/{chunk-BA3U7ALS.js → chunk-WMTRHUI5.js} +26 -22
  227. package/dist/chunk-WNKPRSGI.js +36 -0
  228. package/dist/{chunk-GIFMBCTW.js → chunk-WXFLMQSR.js} +10 -8
  229. package/dist/{chunk-JYTIHTIK.js → chunk-X3WY6MN3.js} +4 -4
  230. package/dist/{chunk-S2RY3BOD.js → chunk-X4CXA2IL.js} +31 -21
  231. package/dist/{chunk-26Z7OGQW.js → chunk-X5F3Q5LV.js} +60 -30
  232. package/dist/{chunk-4CLK2RJO.js → chunk-XD75VZIH.js} +6 -4
  233. package/dist/{chunk-KDAHXQIE.js → chunk-XERYFDB5.js} +37 -34
  234. package/dist/{chunk-U3NBK4EU.js → chunk-XI2LCCYQ.js} +8 -8
  235. package/dist/{chunk-MZGRDONP.js → chunk-Y2EQNWKV.js} +55 -38
  236. package/dist/{chunk-A2G72UI4.js → chunk-YHCMZC2J.js} +7 -7
  237. package/dist/{chunk-4TKVU2I2.js → chunk-YYY3AZFE.js} +2 -2
  238. package/dist/{chunk-2HTEMYTB.js → chunk-Z5IA3WDR.js} +17 -15
  239. package/dist/{chunk-FRHD22WM.js → chunk-ZFFYNRIO.js} +25 -23
  240. package/dist/{chunk-6EXDI5GI.js → chunk-ZFL7NY4F.js} +43 -40
  241. package/dist/{chunk-4PYC2UGC.js → chunk-ZGULQAPZ.js} +7 -4
  242. package/dist/{chunk-4SKZDI62.js → chunk-ZIUFM5HT.js} +3 -1
  243. package/dist/{chunk-CNPY4NTZ.js → chunk-ZJFRMSJT.js} +15 -13
  244. package/dist/{chunk-Q26LDIUV.js → chunk-ZJXLNDH4.js} +18 -15
  245. package/dist/{chunk-LPV6T362.js → chunk-ZQ3ON2VQ.js} +8 -6
  246. package/dist/{chunk-ZX7235KR.js → chunk-ZQ7SKESZ.js} +44 -383
  247. package/dist/{chunk-7QPCGTPS.js → chunk-ZQXZ2SES.js} +24 -21
  248. package/dist/{chunk-4CYTJ5TZ.js → chunk-ZX57KSEQ.js} +4 -3
  249. package/dist/{chunk-37WE3LS2.js → chunk-ZZK56BLP.js} +5 -3
  250. package/dist/files.json +533 -509
  251. package/dist/packages/sdk/npm/index.js +448 -67
  252. package/dist/packages/ui/dist/assets/{elk-api-CowTnhEJ.js → elk-api-CIf-0gz5.js} +2 -2
  253. package/dist/packages/ui/dist/assets/index-CoK_Dl0D.js +47 -0
  254. package/dist/packages/ui/dist/index.html +2 -1
  255. package/package.json +4 -4
  256. package/dist/chunk-26WBY34Y.js +0 -37
  257. package/dist/chunk-3TD6S4TC.js +0 -49
  258. package/dist/chunk-5G7ILBUG.js +0 -66
  259. package/dist/chunk-6FNAKCET.js +0 -38
  260. package/dist/chunk-AM6FP6JW.js +0 -43
  261. package/dist/chunk-CFH3QH26.js +0 -29
  262. package/dist/chunk-CLD4RVTA.js +0 -45
  263. package/dist/chunk-D5KV5PSK.js +0 -45
  264. package/dist/chunk-D5MASS4I.js +0 -48
  265. package/dist/chunk-DN4A2Q2O.js +0 -57
  266. package/dist/chunk-FGAGWYZB.js +0 -47
  267. package/dist/chunk-JITJP64K.js +0 -34
  268. package/dist/chunk-JRXHON4E.js +0 -41
  269. package/dist/chunk-JU4QNJSR.js +0 -62
  270. package/dist/chunk-N3RUGTGV.js +0 -39
  271. package/dist/chunk-PKJAV25S.js +0 -43
  272. package/dist/chunk-PRTBPXYA.js +0 -50
  273. package/dist/chunk-PRZ7KMWL.js +0 -42
  274. package/dist/chunk-QSIDVFB7.js +0 -45
  275. package/dist/chunk-SB5GRUFM.js +0 -54
  276. package/dist/chunk-T74WQQGS.js +0 -40
  277. package/dist/chunk-X7EMBM5X.js +0 -34
  278. package/dist/chunk-Z6VLC5X4.js +0 -36
  279. package/dist/chunk-ZPDDEVQX.js +0 -47
  280. package/dist/packages/ui/dist/assets/index-z2wv0d5d.js +0 -47
@@ -7,11 +7,11 @@ import {
7
7
  buildStub,
8
8
  generate,
9
9
  parseSpec
10
- } from "./chunk-3LZ6P5EP.js";
10
+ } from "./chunk-MUWDB4R4.js";
11
11
  import {
12
12
  loadPlanContext,
13
13
  parseStory
14
- } from "./chunk-BEPCKDCP.js";
14
+ } from "./chunk-R7NYHMUU.js";
15
15
  import {
16
16
  docOf,
17
17
  fingerprint,
@@ -20,20 +20,20 @@ import {
20
20
  roundsOf,
21
21
  sectionLines,
22
22
  writeFinding
23
- } from "./chunk-K332XW7K.js";
23
+ } from "./chunk-S4PMJU6H.js";
24
24
  import {
25
25
  changeFolder
26
- } from "./chunk-HSZMPH5T.js";
26
+ } from "./chunk-IDKCWSM5.js";
27
27
  import {
28
28
  baseClonePath,
29
29
  changeWorktreesDir,
30
30
  readChangeRepos,
31
31
  worktreePath
32
- } from "./chunk-XOL3GFW2.js";
32
+ } from "./chunk-PKBHS4AA.js";
33
33
  import {
34
34
  buildContextPack,
35
35
  toRunSummary
36
- } from "./chunk-QHJJMZLX.js";
36
+ } from "./chunk-P32RUW3B.js";
37
37
  import {
38
38
  AgentDefinition,
39
39
  ChecklistPack,
@@ -42,13 +42,15 @@ import {
42
42
  changeBranch,
43
43
  external_exports,
44
44
  normalizePath,
45
- require_dist,
46
45
  taskBranch,
47
46
  toCanonicalYaml
48
- } from "./chunk-PAINMSID.js";
47
+ } from "./chunk-Q2TECDIT.js";
49
48
  import {
50
49
  writeFileAtomic
51
- } from "./chunk-ODMBPDDV.js";
50
+ } from "./chunk-TUULXQRW.js";
51
+ import {
52
+ require_dist
53
+ } from "./chunk-BQGDB6ZL.js";
52
54
  import {
53
55
  __toESM
54
56
  } from "./chunk-TV45EUGM.js";
@@ -5,23 +5,25 @@ var __atticusUrl = (p) => new URL("./" + p, import.meta.url).href;
5
5
  var __atticusPath = (p) => __atticusFileURLToPath(__atticusUrl(p));
6
6
  import {
7
7
  contractCheckOf
8
- } from "./chunk-GX74YWR7.js";
9
- import "./chunk-G6IQYM25.js";
10
- import "./chunk-LPV6T362.js";
11
- import "./chunk-TQ4TG57V.js";
8
+ } from "./chunk-T6DQR5TV.js";
9
+ import "./chunk-SFUP7TTO.js";
10
+ import "./chunk-7FTTA3HD.js";
11
+ import "./chunk-ZQ3ON2VQ.js";
12
12
  import "./chunk-VOGCSYOI.js";
13
- import "./chunk-4SLBCEPD.js";
14
- import "./chunk-64AADMTW.js";
15
- import "./chunk-JYMIB5XY.js";
16
- import "./chunk-CPK7QSBG.js";
17
- import "./chunk-YO2PKTXT.js";
18
- import "./chunk-TWQRPM76.js";
19
- import "./chunk-VUVGX5L2.js";
20
- import "./chunk-XOL3GFW2.js";
21
- import "./chunk-QHJJMZLX.js";
22
- import "./chunk-7AB6OWTV.js";
23
- import "./chunk-PAINMSID.js";
24
- import "./chunk-ODMBPDDV.js";
13
+ import "./chunk-J2JAKCIW.js";
14
+ import "./chunk-745DAZ4L.js";
15
+ import "./chunk-CXJ6FUKN.js";
16
+ import "./chunk-QKUJMING.js";
17
+ import "./chunk-6ZGLAACW.js";
18
+ import "./chunk-CQDGOPGH.js";
19
+ import "./chunk-3NFFJL5D.js";
20
+ import "./chunk-F3P7N7SF.js";
21
+ import "./chunk-PKBHS4AA.js";
22
+ import "./chunk-P32RUW3B.js";
23
+ import "./chunk-QA4O2GGC.js";
24
+ import "./chunk-Q2TECDIT.js";
25
+ import "./chunk-TUULXQRW.js";
26
+ import "./chunk-BQGDB6ZL.js";
25
27
  import "./chunk-TV45EUGM.js";
26
28
 
27
29
  // packages/cli/dist/contracts-commands.js
@@ -5,11 +5,11 @@ var __atticusUrl = (p) => new URL("./" + p, import.meta.url).href;
5
5
  var __atticusPath = (p) => __atticusFileURLToPath(__atticusUrl(p));
6
6
  import {
7
7
  nearRepos
8
- } from "./chunk-OMPENNWY.js";
8
+ } from "./chunk-4U276ICE.js";
9
9
  import {
10
10
  gitUser,
11
11
  loadRepos
12
- } from "./chunk-XOL3GFW2.js";
12
+ } from "./chunk-PKBHS4AA.js";
13
13
  import {
14
14
  ManifestEditError,
15
15
  REPO_DESCRIPTION_MAX,
@@ -21,10 +21,11 @@ import {
21
21
  manifestFiles,
22
22
  parseFacts,
23
23
  setManifestDescription
24
- } from "./chunk-PAINMSID.js";
24
+ } from "./chunk-Q2TECDIT.js";
25
25
  import {
26
26
  FileChangedError
27
- } from "./chunk-ODMBPDDV.js";
27
+ } from "./chunk-TUULXQRW.js";
28
+ import "./chunk-BQGDB6ZL.js";
28
29
  import "./chunk-TV45EUGM.js";
29
30
 
30
31
  // packages/cli/dist/repo-commands.js
@@ -75,8 +76,8 @@ async function typeOf(url, description, frameworks = []) {
75
76
  if (!await stat(dir).then((s) => s.isDirectory(), () => false))
76
77
  return void 0;
77
78
  const [{ detectRepoType }, { fsRepo }] = await Promise.all([
78
- import("./chunk-RA33EYS4.js"),
79
- import("./chunk-5PV7S2ZP.js")
79
+ import("./chunk-FFLNS6VP.js"),
80
+ import("./chunk-CX4RZ2KS.js")
80
81
  ]);
81
82
  const d = await detectRepoType(fsRepo(basename(dir), dir, "0".repeat(40)), {
82
83
  ...description ? { description } : {},
@@ -10,21 +10,21 @@ import {
10
10
  impact,
11
11
  openIndex,
12
12
  translate
13
- } from "./chunk-5WERBKLE.js";
13
+ } from "./chunk-ISUAAMGS.js";
14
14
  import {
15
15
  readRound,
16
16
  reviewedGates,
17
17
  roundsOf
18
- } from "./chunk-K332XW7K.js";
18
+ } from "./chunk-S4PMJU6H.js";
19
19
  import {
20
20
  changeFolder,
21
21
  changeStore
22
- } from "./chunk-HSZMPH5T.js";
22
+ } from "./chunk-IDKCWSM5.js";
23
23
  import {
24
24
  baseClonePath,
25
25
  gitUser,
26
26
  loadRepos
27
- } from "./chunk-XOL3GFW2.js";
27
+ } from "./chunk-PKBHS4AA.js";
28
28
  import {
29
29
  API_VERSION,
30
30
  DEFAULT_PORT,
@@ -32,6 +32,7 @@ import {
32
32
  RECORD_KINDS,
33
33
  RecordId,
34
34
  Severity,
35
+ api_exports,
35
36
  catalogDirOf,
36
37
  factsDirOf,
37
38
  fastPathOf,
@@ -47,11 +48,11 @@ import {
47
48
  runsDirOf,
48
49
  specsDirOf,
49
50
  withSignal
50
- } from "./chunk-PAINMSID.js";
51
+ } from "./chunk-Q2TECDIT.js";
51
52
  import {
52
53
  FileChangedError,
53
54
  SCHEMA_VERSION
54
- } from "./chunk-ODMBPDDV.js";
55
+ } from "./chunk-TUULXQRW.js";
55
56
 
56
57
  // packages/server/dist/http.js
57
58
  var HttpError = class extends Error {
@@ -136,7 +137,7 @@ function intParam(q, name, min, max) {
136
137
  var strParam = (q, name) => q.get(name) || void 0;
137
138
 
138
139
  // packages/server/dist/server.js
139
- import { randomBytes, timingSafeEqual } from "node:crypto";
140
+ import { randomBytes as randomBytes2 } from "node:crypto";
140
141
  import { createServer } from "node:http";
141
142
 
142
143
  // packages/server/dist/jobs.js
@@ -580,7 +581,7 @@ function appCsp(port, embed) {
580
581
  ].join("; ");
581
582
  }
582
583
  var escapeAttr = (s) => s.replace(/&/g, "&amp;").replace(/"/g, "&quot;").replace(/</g, "&lt;");
583
- async function staticFile(givenDir, path, token) {
584
+ async function staticFile(givenDir, path, token, pageKey) {
584
585
  const dir = resolve(givenDir);
585
586
  let rel;
586
587
  try {
@@ -600,7 +601,12 @@ async function staticFile(givenDir, path, token) {
600
601
  const ext = extname(target).toLowerCase();
601
602
  const type = TYPES[ext] ?? "application/octet-stream";
602
603
  if (ext === ".html") {
603
- const html = (await readFile2(target, "utf8")).replace(/<meta name="atticus-token" content="[^"]*"\s*\/?>/, `<meta name="atticus-token" content="${escapeAttr(token)}" />`);
604
+ const tokenMeta = `<meta name="atticus-token" content="${escapeAttr(token)}" />`;
605
+ const keyMeta = pageKey === void 0 ? "" : `<meta name="atticus-page-key" content="${escapeAttr(pageKey)}" />`;
606
+ let html = (await readFile2(target, "utf8")).replace(/<meta name="atticus-token" content="[^"]*"\s*\/?>/, () => tokenMeta);
607
+ if (keyMeta)
608
+ html = /<meta name="atticus-page-key" content="[^"]*"\s*\/?>/.test(html) ? html.replace(/<meta name="atticus-page-key" content="[^"]*"\s*\/?>/, () => keyMeta) : html.replace(tokenMeta, () => `${tokenMeta}
609
+ ${keyMeta}`);
604
610
  return { status: 200, type, body: html, cache: "no-store" };
605
611
  }
606
612
  return {
@@ -612,6 +618,91 @@ async function staticFile(givenDir, path, token) {
612
618
  };
613
619
  }
614
620
 
621
+ // packages/server/dist/confirm.js
622
+ import { randomBytes, timingSafeEqual } from "node:crypto";
623
+ var CONFIRM_TTL_MS = 12e4;
624
+ var MAX_OPEN = 256;
625
+ var Confirmations = class {
626
+ now;
627
+ open = /* @__PURE__ */ new Map();
628
+ constructor(now = () => Date.now()) {
629
+ this.now = now;
630
+ }
631
+ issue(write, target) {
632
+ const t = this.now();
633
+ for (const [k, v] of this.open)
634
+ if (v.until < t)
635
+ this.open.delete(k);
636
+ while (this.open.size >= MAX_OPEN)
637
+ this.open.delete(this.open.keys().next().value);
638
+ const confirmation = randomBytes(32).toString("base64url");
639
+ const until = t + CONFIRM_TTL_MS;
640
+ this.open.set(confirmation, { write, target, until });
641
+ return { confirmation, write, target, expiresAt: new Date(until).toISOString() };
642
+ }
643
+ /**
644
+ * Whether `given` confirms this write of this target now. It is spent whatever the answer, so a
645
+ * confirmation is never tried twice: a replay, another target or another write is refused.
646
+ */
647
+ take(write, target, given) {
648
+ if (typeof given !== "string" || !given)
649
+ return false;
650
+ const c = this.open.get(given);
651
+ if (!c)
652
+ return false;
653
+ this.open.delete(given);
654
+ return c.write === write && c.target === target && this.now() <= c.until;
655
+ }
656
+ };
657
+ function sameSecret(a, b) {
658
+ const x = Buffer.from(a);
659
+ const y = Buffer.from(b);
660
+ return x.length === y.length && timingSafeEqual(x, y);
661
+ }
662
+ var WITHOUT_THE_APP = {
663
+ handoff: {
664
+ what: "Raising a hand-off opens a PR",
665
+ cli: "atticus change handoff <change> --approve"
666
+ },
667
+ "release-prs": {
668
+ what: "Raising the release PRs pushes the change branch and opens PRs",
669
+ cli: "atticus change release-prs <change> --approve"
670
+ },
671
+ merge: { what: "Merging a ready PR", cli: "atticus change sync <change> --approve" },
672
+ "task-pr": {
673
+ what: "Raising a task's PR pushes its branch and opens a PR",
674
+ cli: "atticus task run <change> <task> --level pr --approve"
675
+ },
676
+ "digest-send": {
677
+ what: "Sending the digest posts a message",
678
+ cli: "atticus digest --send"
679
+ },
680
+ propose: {
681
+ what: "Propose for review pushes a branch and opens a PR",
682
+ cli: "git commit, push and open the PR yourself"
683
+ },
684
+ "step-run": {
685
+ what: "Running a step with a team's tool acts on their systems",
686
+ cli: "atticus todo run <step> --with <executor> --approve <you> --inputs <sha-256>"
687
+ },
688
+ "ai-model": {
689
+ what: "Changing where runtime.yaml sends the model's key (its provider, keyEnv or address)",
690
+ cli: "edit runtime.yaml yourself and propose it for review"
691
+ },
692
+ "ai-test": {
693
+ what: "Testing model settings that aren't committed sends the key to them",
694
+ cli: "commit runtime.yaml first, or run the step from the command line"
695
+ }
696
+ };
697
+ function needsConfirmation(write) {
698
+ const w = WITHOUT_THE_APP[write];
699
+ return new HttpError(403, "This needs a person's confirmation", `${w.what}, which a person confirms: click it in the Atticus app, or run ${w.cli} in a terminal. The session token alone (atticus ui --show-token, for assistants and scripts) never approves a write to a shared system (ADR 0186).`, { confirm: write });
700
+ }
701
+ function requireConfirmation(c, write, target, given) {
702
+ if (!c.take(write, target, given))
703
+ throw needsConfirmation(write);
704
+ }
705
+
615
706
  // packages/server/dist/watch.js
616
707
  import { statSync, watch } from "node:fs";
617
708
  import { join as join3, relative, sep as sep2 } from "node:path";
@@ -893,11 +984,8 @@ var EventHub = class {
893
984
  }
894
985
  };
895
986
  var MAX_BODY = 4 * 1024 * 1024;
896
- function sameToken(a, b) {
897
- const x = Buffer.from(a);
898
- const y = Buffer.from(b);
899
- return x.length === y.length && timingSafeEqual(x, y);
900
- }
987
+ var sameToken = sameSecret;
988
+ var STRONG = /^[A-Za-z0-9_-]{32,}$/;
901
989
  async function readBody(req, max = MAX_BODY) {
902
990
  const chunks = [];
903
991
  let size = 0;
@@ -939,9 +1027,11 @@ async function startServer(o) {
939
1027
  const host = o.host ?? "127.0.0.1";
940
1028
  if (host !== "127.0.0.1")
941
1029
  throw new Error(`Atticus only listens on 127.0.0.1 (asked for ${host}).`);
942
- const token = o.token && /^[A-Za-z0-9_-]{32,}$/.test(o.token) ? o.token : randomBytes(32).toString("base64url");
1030
+ const token = o.token && STRONG.test(o.token) ? o.token : randomBytes2(32).toString("base64url");
1031
+ const pageKey = o.pageKey && STRONG.test(o.pageKey) && o.pageKey !== token ? o.pageKey : randomBytes2(32).toString("base64url");
943
1032
  const events = new EventHub();
944
1033
  const jobs = new JobManager((e) => events.publish(e));
1034
+ const confirmations = new Confirmations();
945
1035
  const person = o.user ? { handle: o.user, source: "given" } : await gitUser(o.root);
946
1036
  const ctx = {
947
1037
  root: o.root,
@@ -950,9 +1040,17 @@ async function startServer(o) {
950
1040
  version: o.version ?? "0.0.0",
951
1041
  full: o.full === true,
952
1042
  events,
953
- jobs
1043
+ jobs,
1044
+ confirmations
954
1045
  };
955
- const router = apiRoutes(new Router(), ctx).add("GET", "/api/jobs/{jobId}", ({ params }) => {
1046
+ const router = apiRoutes(new Router(), ctx).add("POST", "/api/confirmations", ({ body }) => {
1047
+ const b = api_exports.ConfirmationRequest.safeParse(body ?? {});
1048
+ if (!b.success)
1049
+ throw badRequest(`Say which write and what for: { write: ${api_exports.CONFIRMED_WRITES.join(" | ")}, target }.`);
1050
+ if (!b.data.pageKey || !sameSecret(b.data.pageKey, pageKey))
1051
+ throw new HttpError(403, "Only the Atticus app asks for a confirmation", "A write to a shared system is a person's: they click it in the Atticus app, or run its command with --approve in a terminal. The session token alone (atticus ui --show-token) can't confirm one (ADR 0186).");
1052
+ return { status: 201, body: confirmations.issue(b.data.write, b.data.target) };
1053
+ }).add("GET", "/api/jobs/{jobId}", ({ params }) => {
956
1054
  const j = jobs.get(params.jobId);
957
1055
  if (!j)
958
1056
  throw notFound(`There is no job ${params.jobId}.`);
@@ -998,7 +1096,7 @@ async function startServer(o) {
998
1096
  throw new HttpError(403, "Requests must be addressed to this server");
999
1097
  if (!o.staticDir || req.method !== "GET" && req.method !== "HEAD")
1000
1098
  throw new HttpError(404, "Not found", `Nothing is served at ${url.pathname}.`);
1001
- const f = await staticFile(o.staticDir, url.pathname, token);
1099
+ const f = await staticFile(o.staticDir, url.pathname, token, pageKey);
1002
1100
  const { "X-Frame-Options": deny, ...rest } = HARDENING;
1003
1101
  res.writeHead(f.status, {
1004
1102
  ...o.embed ? rest : { ...rest, "X-Frame-Options": deny },
@@ -1064,6 +1162,8 @@ Connection: close\r
1064
1162
  url: `http://127.0.0.1:${port}`,
1065
1163
  port,
1066
1164
  token,
1165
+ pageKey,
1166
+ confirmations,
1067
1167
  events,
1068
1168
  jobs,
1069
1169
  person,
@@ -1085,5 +1185,6 @@ export {
1085
1185
  notFound,
1086
1186
  conflict,
1087
1187
  strParam,
1188
+ requireConfirmation,
1088
1189
  startServer
1089
1190
  };
@@ -0,0 +1,40 @@
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
+ changeEstimateCommand,
8
+ estimateOf
9
+ } from "./chunk-BDKC6H5P.js";
10
+ import "./chunk-IH2XURVQ.js";
11
+ import "./chunk-WF7B67YE.js";
12
+ import "./chunk-6PPOWY5E.js";
13
+ import "./chunk-OHNCWBKF.js";
14
+ import "./chunk-BTGPE6CR.js";
15
+ import "./chunk-MUWDB4R4.js";
16
+ import "./chunk-R7NYHMUU.js";
17
+ import "./chunk-IVBOQAGB.js";
18
+ import "./chunk-ISUAAMGS.js";
19
+ import "./chunk-S4PMJU6H.js";
20
+ import "./chunk-IDKCWSM5.js";
21
+ import "./chunk-UUU4CLJG.js";
22
+ import "./chunk-7IGKHZ4Z.js";
23
+ import "./chunk-J2JAKCIW.js";
24
+ import "./chunk-745DAZ4L.js";
25
+ import "./chunk-CXJ6FUKN.js";
26
+ import "./chunk-QKUJMING.js";
27
+ import "./chunk-6ZGLAACW.js";
28
+ import "./chunk-CQDGOPGH.js";
29
+ import "./chunk-3NFFJL5D.js";
30
+ import "./chunk-PKBHS4AA.js";
31
+ import "./chunk-P32RUW3B.js";
32
+ import "./chunk-QA4O2GGC.js";
33
+ import "./chunk-Q2TECDIT.js";
34
+ import "./chunk-TUULXQRW.js";
35
+ import "./chunk-BQGDB6ZL.js";
36
+ import "./chunk-TV45EUGM.js";
37
+ export {
38
+ changeEstimateCommand,
39
+ estimateOf
40
+ };
@@ -6,10 +6,11 @@ var __atticusPath = (p) => __atticusFileURLToPath(__atticusUrl(p));
6
6
  import {
7
7
  routeQuestions,
8
8
  ruleOffers
9
- } from "./chunk-FQ6WH6PB.js";
10
- import "./chunk-XOL3GFW2.js";
11
- import "./chunk-PAINMSID.js";
12
- import "./chunk-ODMBPDDV.js";
9
+ } from "./chunk-JA5FI3QV.js";
10
+ import "./chunk-PKBHS4AA.js";
11
+ import "./chunk-Q2TECDIT.js";
12
+ import "./chunk-TUULXQRW.js";
13
+ import "./chunk-BQGDB6ZL.js";
13
14
  import "./chunk-TV45EUGM.js";
14
15
  export {
15
16
  routeQuestions,
@@ -5,12 +5,14 @@ var __atticusUrl = (p) => new URL("./" + p, import.meta.url).href;
5
5
  var __atticusPath = (p) => __atticusFileURLToPath(__atticusUrl(p));
6
6
  import {
7
7
  listRuns
8
- } from "./chunk-BA2HUMDN.js";
9
- import "./chunk-QHJJMZLX.js";
8
+ } from "./chunk-GZY6RUZ6.js";
9
+ import "./chunk-P32RUW3B.js";
10
+ import "./chunk-QA4O2GGC.js";
10
11
  import {
11
12
  runsDirOf
12
- } from "./chunk-PAINMSID.js";
13
- import "./chunk-ODMBPDDV.js";
13
+ } from "./chunk-Q2TECDIT.js";
14
+ import "./chunk-TUULXQRW.js";
15
+ import "./chunk-BQGDB6ZL.js";
14
16
  import "./chunk-TV45EUGM.js";
15
17
 
16
18
  // packages/cli/dist/handoff-resume.js
@@ -0,0 +1,47 @@
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
+ REPO_READER,
8
+ mapCommand,
9
+ mapStateOf,
10
+ readAnswer,
11
+ repoReaderAgent,
12
+ ruleLineOf,
13
+ rulesCovering,
14
+ taughtIn
15
+ } from "./chunk-X5F3Q5LV.js";
16
+ import "./chunk-OUBGGKDU.js";
17
+ import "./chunk-BPK5P77O.js";
18
+ import "./chunk-EHA7RMZ3.js";
19
+ import "./chunk-WXFLMQSR.js";
20
+ import "./chunk-TYQBFTBR.js";
21
+ import "./chunk-2F4CYZKJ.js";
22
+ import "./chunk-LO6P2VYG.js";
23
+ import "./chunk-BEVTIBRH.js";
24
+ import "./chunk-J2JAKCIW.js";
25
+ import "./chunk-745DAZ4L.js";
26
+ import "./chunk-CXJ6FUKN.js";
27
+ import "./chunk-QKUJMING.js";
28
+ import "./chunk-6ZGLAACW.js";
29
+ import "./chunk-CQDGOPGH.js";
30
+ import "./chunk-3NFFJL5D.js";
31
+ import "./chunk-PKBHS4AA.js";
32
+ import "./chunk-P32RUW3B.js";
33
+ import "./chunk-QA4O2GGC.js";
34
+ import "./chunk-Q2TECDIT.js";
35
+ import "./chunk-TUULXQRW.js";
36
+ import "./chunk-BQGDB6ZL.js";
37
+ import "./chunk-TV45EUGM.js";
38
+ export {
39
+ REPO_READER,
40
+ mapCommand,
41
+ mapStateOf,
42
+ readAnswer,
43
+ repoReaderAgent,
44
+ ruleLineOf,
45
+ rulesCovering,
46
+ taughtIn
47
+ };
@@ -10,13 +10,14 @@ import {
10
10
  globToRegExp,
11
11
  memoryRepo,
12
12
  scanRepo
13
- } from "./chunk-7AB6OWTV.js";
13
+ } from "./chunk-3NFFJL5D.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-Q2TECDIT.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