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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (279) hide show
  1. package/dist/bin.js +12 -7
  2. package/dist/{chunk-LYBNHMVZ.js → chunk-27AJAKX7.js} +3 -3
  3. package/dist/{chunk-KXITGYLF.js → chunk-2QPJ4E4Z.js} +2 -2
  4. package/dist/{chunk-EIPTLPFC.js → chunk-2UMSHYCB.js} +24 -24
  5. package/dist/{chunk-6PPOWY5E.js → chunk-2WUTCPPJ.js} +6 -6
  6. package/dist/{chunk-VNU26RCO.js → chunk-2YSD6E6V.js} +33 -32
  7. package/dist/{chunk-P32RUW3B.js → chunk-3424TLIJ.js} +39 -7
  8. package/dist/{chunk-2MMCFP5C.js → chunk-3ASYYMOX.js} +8 -8
  9. package/dist/{chunk-PKBHS4AA.js → chunk-3EWKO457.js} +48 -17
  10. package/dist/{chunk-J3IOLXWM.js → chunk-3EX5HCZD.js} +5 -5
  11. package/dist/{chunk-BDKC6H5P.js → chunk-3MYBT62N.js} +5 -5
  12. package/dist/{chunk-ZFL7NY4F.js → chunk-3UHV76UD.js} +69 -41
  13. package/dist/{chunk-Q4K5WB2W.js → chunk-3ZA3AK2D.js} +10 -10
  14. package/dist/{chunk-O7FDLW7L.js → chunk-4ETO2FXE.js} +5 -5
  15. package/dist/{chunk-AFWUDXEM.js → chunk-4FLNCK6Q.js} +26 -11
  16. package/dist/{chunk-745DAZ4L.js → chunk-4GAB5ZOZ.js} +901 -332
  17. package/dist/{chunk-3RM4UK6W.js → chunk-4MYHETJ3.js} +18 -18
  18. package/dist/chunk-4R3TO4VL.js +94 -0
  19. package/dist/chunk-5MYE42AP.js +43 -0
  20. package/dist/chunk-5O7U67UA.js +57 -0
  21. package/dist/{chunk-Y2EQNWKV.js → chunk-5OXKCH4Z.js} +31 -31
  22. package/dist/{chunk-O45HFTFS.js → chunk-5VTIWEWP.js} +2 -2
  23. package/dist/{chunk-UNAGJYET.js → chunk-63NFFAGI.js} +12 -12
  24. package/dist/{chunk-6ZJ5A7AF.js → chunk-66AQ2JIU.js} +9 -9
  25. package/dist/chunk-6JVPBGQG.js +50 -0
  26. package/dist/{chunk-VY72R2XZ.js → chunk-6NCPLIIP.js} +124 -2
  27. package/dist/{chunk-D73UEXYW.js → chunk-6NN36LVK.js} +3 -3
  28. package/dist/{chunk-7FTTA3HD.js → chunk-6R5VHR3N.js} +5 -5
  29. package/dist/{chunk-CADWLE2T.js → chunk-6RQOINER.js} +4 -4
  30. package/dist/{chunk-WG5U3F5V.js → chunk-6RYB3EET.js} +12 -12
  31. package/dist/{chunk-RXPJMEOW.js → chunk-6SNTHK43.js} +10 -10
  32. package/dist/{chunk-ZFFYNRIO.js → chunk-6Y4FXOMI.js} +24 -22
  33. package/dist/{chunk-SQV37XO2.js → chunk-6ZFF7XSL.js} +6 -6
  34. package/dist/{chunk-JA5FI3QV.js → chunk-6ZSYLZ7O.js} +3 -3
  35. package/dist/{chunk-JENSEMXF.js → chunk-73CC73I4.js} +1 -1
  36. package/dist/{chunk-2F4CYZKJ.js → chunk-73GFVW2L.js} +5 -5
  37. package/dist/{chunk-M3NANSDZ.js → chunk-73V2OONC.js} +15 -15
  38. package/dist/{chunk-WKUJ3KPV.js → chunk-75OMRKY2.js} +4 -4
  39. package/dist/{chunk-7BR7IPOH.js → chunk-7IFTSAHP.js} +8 -8
  40. package/dist/{chunk-OWNCM4ZN.js → chunk-7K5OH45X.js} +136 -16
  41. package/dist/{chunk-VCTWPLAO.js → chunk-7NQAGYK4.js} +8 -8
  42. package/dist/{chunk-O4GXGGBX.js → chunk-7XWJ6ED2.js} +12 -12
  43. package/dist/{chunk-MFR5OPBD.js → chunk-7XYLNQFO.js} +5 -5
  44. package/dist/{chunk-GCWRWSU7.js → chunk-7YQBDE5W.js} +4 -4
  45. package/dist/{chunk-QKUJMING.js → chunk-A4JXVO5O.js} +5 -5
  46. package/dist/{chunk-LKOR5UET.js → chunk-AFBCNZRZ.js} +24 -24
  47. package/dist/{chunk-BXYMYEJ4.js → chunk-AGOLEMHK.js} +13 -14
  48. package/dist/{chunk-AVTBS4OW.js → chunk-AHFQHPFF.js} +22 -22
  49. package/dist/{chunk-NY2XSR5K.js → chunk-APDN6UOR.js} +116 -18
  50. package/dist/chunk-AQRUQNFB.js +322 -0
  51. package/dist/{chunk-5NMKONLP.js → chunk-AVMWESFZ.js} +3 -2
  52. package/dist/chunk-B4AEL3RF.js +1011 -0
  53. package/dist/{chunk-H7KM7LZE.js → chunk-BAY4K55I.js} +11 -11
  54. package/dist/{chunk-XD75VZIH.js → chunk-BFL4PO64.js} +7 -7
  55. package/dist/{chunk-34S2WGOB.js → chunk-BFMTGNAQ.js} +5 -3
  56. package/dist/{chunk-SLXZOMA6.js → chunk-BP33TBLI.js} +4 -4
  57. package/dist/{chunk-IFKEI4SA.js → chunk-BUUJ7N4O.js} +11 -11
  58. package/dist/{chunk-EGQRREQH.js → chunk-BYBU2EIB.js} +26 -15
  59. package/dist/{chunk-SFUP7TTO.js → chunk-C6ORPLCN.js} +4 -4
  60. package/dist/{chunk-IVBOQAGB.js → chunk-CA3DKO4D.js} +24 -2
  61. package/dist/{chunk-57TDNMI3.js → chunk-CFUDAW3R.js} +15 -15
  62. package/dist/{chunk-FFTRTL6R.js → chunk-CJEBRJBS.js} +4 -4
  63. package/dist/{chunk-EPCJQQWD.js → chunk-CKVBDVIW.js} +4 -4
  64. package/dist/{chunk-FPJPLKDW.js → chunk-CMB7FXHJ.js} +38 -16
  65. package/dist/{chunk-INQHESFB.js → chunk-CQ7RF4QN.js} +4 -4
  66. package/dist/{chunk-63YRMR6J.js → chunk-CS4BMJLL.js} +5 -5
  67. package/dist/{chunk-BPK5P77O.js → chunk-CT6NINGR.js} +3 -3
  68. package/dist/chunk-CXTG6AWM.js +40 -0
  69. package/dist/{chunk-CXJ6FUKN.js → chunk-CZ2ZS7AT.js} +9 -4
  70. package/dist/{chunk-S4PMJU6H.js → chunk-D6BVLTDV.js} +85 -29
  71. package/dist/{chunk-M32BLWDH.js → chunk-DCRYOMTM.js} +12 -12
  72. package/dist/{chunk-REWWDVQB.js → chunk-DHKDH464.js} +4 -4
  73. package/dist/{chunk-2LGRMVCA.js → chunk-DSHRA72L.js} +10 -10
  74. package/dist/{chunk-THDMSZ3R.js → chunk-E3PDCQRH.js} +2765 -665
  75. package/dist/chunk-EHXDB3SA.js +25 -0
  76. package/dist/{chunk-BTGPE6CR.js → chunk-EMVZIOOD.js} +7 -7
  77. package/dist/{chunk-DOBQKHIF.js → chunk-ENH6Z4TY.js} +28 -27
  78. package/dist/{chunk-LGFL54FP.js → chunk-EVTI22PQ.js} +6 -2
  79. package/dist/{chunk-7MJSQTL5.js → chunk-EXJZBL5N.js} +20 -20
  80. package/dist/{chunk-N3XIYPU3.js → chunk-FBCVC2GJ.js} +12 -12
  81. package/dist/{chunk-UWOJLHFT.js → chunk-FJVUHQPS.js} +34 -23
  82. package/dist/{chunk-7IGKHZ4Z.js → chunk-FL344WQD.js} +218 -211
  83. package/dist/{chunk-IH2XURVQ.js → chunk-FMJYKLDY.js} +5 -5
  84. package/dist/chunk-FMR2D3AZ.js +41 -0
  85. package/dist/{chunk-Q2TECDIT.js → chunk-FPBUTZI5.js} +2201 -326
  86. package/dist/{chunk-PJSJPMJI.js → chunk-FQVSLBTV.js} +3 -3
  87. package/dist/{chunk-NXJ5URP6.js → chunk-FRAEQVYN.js} +23 -22
  88. package/dist/{chunk-RLDGWLQ7.js → chunk-FRCOKUU4.js} +7 -7
  89. package/dist/{chunk-DCZWQLYT.js → chunk-FSN6JFXB.js} +18 -15
  90. package/dist/{chunk-W7VWI2YH.js → chunk-FTLYXMHA.js} +5 -5
  91. package/dist/{chunk-7GJS6DNX.js → chunk-FVYZ4Y52.js} +11 -3
  92. package/dist/{chunk-CQDGOPGH.js → chunk-G6EFXTUO.js} +2 -2
  93. package/dist/{chunk-JB5LINEM.js → chunk-G7VBMOZH.js} +3 -3
  94. package/dist/{chunk-7ASNL4Q4.js → chunk-GM4EFHUX.js} +15 -15
  95. package/dist/chunk-GOZLTLRY.js +232 -0
  96. package/dist/chunk-GPNMSX5H.js +36 -0
  97. package/dist/{chunk-BQ4SQQC6.js → chunk-GUGQSIQM.js} +9 -9
  98. package/dist/{chunk-E3ISYXO3.js → chunk-HJQVUOUL.js} +12 -12
  99. package/dist/{chunk-MFHL5URL.js → chunk-HMWJWYE2.js} +16 -16
  100. package/dist/{chunk-YYY3AZFE.js → chunk-HMZ2DRBC.js} +2 -2
  101. package/dist/{chunk-C3RY6KU6.js → chunk-HRS5O7VV.js} +500 -163
  102. package/dist/{chunk-AJQ72EBM.js → chunk-HUGQZQ2K.js} +6 -6
  103. package/dist/{chunk-AJYXNTNZ.js → chunk-ICBGVVRI.js} +10 -10
  104. package/dist/{chunk-J2JAKCIW.js → chunk-IKAW2KJU.js} +17 -17
  105. package/dist/{chunk-OUBGGKDU.js → chunk-IMZFOMVX.js} +1 -1
  106. package/dist/{chunk-LDLL7LB3.js → chunk-ISG547IS.js} +22 -22
  107. package/dist/{chunk-GZY6RUZ6.js → chunk-IYNCSYU4.js} +5 -2
  108. package/dist/{chunk-H5HBGNXU.js → chunk-J25YOUIZ.js} +4 -4
  109. package/dist/chunk-J2CDBSFP.js +69 -0
  110. package/dist/chunk-J2H7YG3K.js +34 -0
  111. package/dist/{chunk-SFSPGFCV.js → chunk-J32IPTVQ.js} +20 -20
  112. package/dist/{chunk-BEVTIBRH.js → chunk-J4CPHJUL.js} +5 -5
  113. package/dist/{chunk-F3P7N7SF.js → chunk-JFFKHIM6.js} +1 -1
  114. package/dist/{chunk-RUGXBPWI.js → chunk-JMEWJPF2.js} +8 -8
  115. package/dist/{chunk-WERM6KPJ.js → chunk-JSP73CDW.js} +9 -4
  116. package/dist/{chunk-66PPNOON.js → chunk-JXAKYP45.js} +26 -25
  117. package/dist/{chunk-7JITZFJC.js → chunk-K4OXYSGS.js} +4 -4
  118. package/dist/{chunk-EHA7RMZ3.js → chunk-K4RNVDR4.js} +4 -4
  119. package/dist/{chunk-R44CYFPV.js → chunk-K757G7AD.js} +12 -12
  120. package/dist/{chunk-FUJM6RTF.js → chunk-KDJ2YKAZ.js} +7 -7
  121. package/dist/{chunk-QAXW2N3B.js → chunk-KT6Q44CA.js} +28 -30
  122. package/dist/{chunk-EBL2R3YG.js → chunk-KTNOBTV5.js} +4 -4
  123. package/dist/chunk-KVVNAUIG.js +66 -0
  124. package/dist/{chunk-X5F3Q5LV.js → chunk-L3RCQWVQ.js} +21 -18
  125. package/dist/{chunk-7IOWA5D5.js → chunk-LHH5KG5A.js} +13 -3
  126. package/dist/{chunk-TNR75OXT.js → chunk-LM45GMMB.js} +11 -8
  127. package/dist/{chunk-FSMSFDLD.js → chunk-LO6Y7OTG.js} +4 -4
  128. package/dist/{chunk-WF7B67YE.js → chunk-LPDTDFKA.js} +10 -10
  129. package/dist/{chunk-SU74NDMQ.js → chunk-LSHSDC6S.js} +17 -17
  130. package/dist/{chunk-LJXMYKZJ.js → chunk-LZVHP7CT.js} +5 -5
  131. package/dist/{chunk-3NWDLGG6.js → chunk-M3EOFSPY.js} +26 -26
  132. package/dist/chunk-MBYYQHPM.js +31 -0
  133. package/dist/{chunk-KQGURXFU.js → chunk-MEJ63LDG.js} +32 -11
  134. package/dist/{chunk-FZOJFH7Q.js → chunk-MH2ZK67S.js} +11 -11
  135. package/dist/{chunk-R7NYHMUU.js → chunk-MLGWSBF4.js} +5108 -3895
  136. package/dist/{chunk-WJF2CS6M.js → chunk-MNIPPBCT.js} +5 -5
  137. package/dist/{chunk-XERYFDB5.js → chunk-MWF4PXQR.js} +32 -31
  138. package/dist/{chunk-BO4KX37X.js → chunk-N2YX6JMY.js} +18 -18
  139. package/dist/{chunk-GUX3PTYM.js → chunk-NAPHHWW2.js} +3 -3
  140. package/dist/{chunk-UUU4CLJG.js → chunk-NC755EKE.js} +5 -1
  141. package/dist/{chunk-WMTRHUI5.js → chunk-NCLZJCXA.js} +21 -21
  142. package/dist/chunk-NKJDO4UC.js +39 -0
  143. package/dist/chunk-NOYOFYAJ.js +59 -0
  144. package/dist/{chunk-ZQ3ON2VQ.js → chunk-NROSSWMS.js} +5 -5
  145. package/dist/{chunk-UWMJKX5U.js → chunk-OBUB3H72.js} +12 -12
  146. package/dist/{chunk-VW62D6QE.js → chunk-OCQWSFJD.js} +7 -7
  147. package/dist/{chunk-UPOY4YSQ.js → chunk-OK6JGLE7.js} +12 -12
  148. package/dist/{chunk-TYQBFTBR.js → chunk-OPWGPQ2N.js} +5 -5
  149. package/dist/{chunk-PPD7HTDP.js → chunk-OSYHGGL3.js} +18 -18
  150. package/dist/chunk-OXXZZ7HQ.js +50 -0
  151. package/dist/{chunk-5BD2KYLE.js → chunk-P22EPEBR.js} +16 -16
  152. package/dist/chunk-P4YUT7W7.js +45 -0
  153. package/dist/chunk-PCCLVIDP.js +217 -0
  154. package/dist/{chunk-CMDXGQTS.js → chunk-PFULMC2D.js} +21 -20
  155. package/dist/chunk-PGAMTKBI.js +16 -0
  156. package/dist/{chunk-6MUGR4LS.js → chunk-PNSSE7JM.js} +93 -18
  157. package/dist/{chunk-HYU5VLGA.js → chunk-POEMZECG.js} +1 -1
  158. package/dist/{chunk-UCROWG2D.js → chunk-POSDBRKV.js} +23 -23
  159. package/dist/{chunk-KDNTAPLX.js → chunk-POSZFDSQ.js} +3 -3
  160. package/dist/{chunk-3NFFJL5D.js → chunk-PQQKZPBU.js} +1 -1
  161. package/dist/{chunk-4EURQWQD.js → chunk-PRMUQUWN.js} +10 -10
  162. package/dist/{chunk-MO6P2JZH.js → chunk-PT4USJNN.js} +7 -7
  163. package/dist/{chunk-BTY3HZBO.js → chunk-PWXB5GBB.js} +16 -16
  164. package/dist/{chunk-S7FCV7S5.js → chunk-PXW2RZGQ.js} +1 -1
  165. package/dist/{chunk-NDCF4R6S.js → chunk-Q367UGYN.js} +3 -3
  166. package/dist/{chunk-IUPG3UKI.js → chunk-QAVRDONY.js} +187 -123
  167. package/dist/{chunk-E6ZIEVOI.js → chunk-QBMLBCQH.js} +12 -12
  168. package/dist/{chunk-VZALIKIF.js → chunk-QLQIFJP3.js} +12 -12
  169. package/dist/{chunk-EMRIQUND.js → chunk-QLWDIKO4.js} +82 -27
  170. package/dist/{chunk-PMUAJGLI.js → chunk-QVVGJVVX.js} +16 -16
  171. package/dist/{chunk-LNBQOP7D.js → chunk-QX4MAMUG.js} +21 -21
  172. package/dist/{chunk-X3WY6MN3.js → chunk-QZWRPQTI.js} +6 -6
  173. package/dist/{chunk-ISUAAMGS.js → chunk-RCG5IAAT.js} +18 -11
  174. package/dist/chunk-RGZFOKVO.js +106 -0
  175. package/dist/{chunk-O5PXQR67.js → chunk-RLZFL76D.js} +4 -4
  176. package/dist/{chunk-UF4AZOZB.js → chunk-RPQITJNX.js} +5 -5
  177. package/dist/{chunk-NR2UJWOC.js → chunk-RQQYEDAC.js} +8 -8
  178. package/dist/chunk-RQSLHZ7T.js +36 -0
  179. package/dist/{chunk-UPS2DGFC.js → chunk-RRQUQAXP.js} +1 -1
  180. package/dist/chunk-RYQ4JCFT.js +65 -0
  181. package/dist/{chunk-JLUCKAEL.js → chunk-S35DIFJH.js} +17 -17
  182. package/dist/{chunk-UGUP3ZM6.js → chunk-S5GSQPIN.js} +9 -9
  183. package/dist/chunk-S5XFO4GY.js +42 -0
  184. package/dist/chunk-S6LW2RRC.js +25 -0
  185. package/dist/{chunk-W62H2XSO.js → chunk-S6W3D5GS.js} +23 -23
  186. package/dist/{chunk-CX4RZ2KS.js → chunk-S7GUZ45I.js} +3 -3
  187. package/dist/{chunk-L27SV425.js → chunk-SCT4CEF7.js} +20 -20
  188. package/dist/{chunk-VTZMAJ3W.js → chunk-SK5RVP7X.js} +8 -8
  189. package/dist/{chunk-JAVI7JSP.js → chunk-SRTUETF5.js} +23 -22
  190. package/dist/{chunk-MZCGSXVR.js → chunk-SVGGMBJI.js} +13 -13
  191. package/dist/{chunk-SDKLKB6I.js → chunk-SWNKO4C4.js} +32 -25
  192. package/dist/chunk-SYP56T2D.js +65 -0
  193. package/dist/{chunk-5SJZW52K.js → chunk-T33TPFGI.js} +22 -22
  194. package/dist/{chunk-ZJXLNDH4.js → chunk-T3FNG2H2.js} +12 -12
  195. package/dist/{chunk-BIGDQDHD.js → chunk-T6MAWL5P.js} +4 -4
  196. package/dist/{chunk-RGERPOIV.js → chunk-T6MX7WXM.js} +14 -11
  197. package/dist/{chunk-QFWA2DPH.js → chunk-T7IIEDA3.js} +5 -5
  198. package/dist/{chunk-Z5IA3WDR.js → chunk-TABH4RBZ.js} +156 -79
  199. package/dist/{chunk-6ZGLAACW.js → chunk-TDSCKP3V.js} +2 -2
  200. package/dist/{chunk-G6X77UJZ.js → chunk-TMFMXQEN.js} +21 -21
  201. package/dist/{chunk-P2V7QW4D.js → chunk-TNCF26JK.js} +11 -11
  202. package/dist/{chunk-2GF7OLF3.js → chunk-TUM52SOE.js} +19 -15
  203. package/dist/{chunk-PBPBMP2B.js → chunk-TV56QLLV.js} +3 -3
  204. package/dist/{chunk-SYV5LHML.js → chunk-TVQSXWWV.js} +33 -33
  205. package/dist/{chunk-VBTP56CE.js → chunk-TXNSQ24G.js} +9 -8
  206. package/dist/{chunk-ZX57KSEQ.js → chunk-UALE35WK.js} +3 -3
  207. package/dist/{chunk-42SIDKEU.js → chunk-UJF7PIMP.js} +26 -26
  208. package/dist/{chunk-ONUPY3H6.js → chunk-UMCDODBX.js} +24 -24
  209. package/dist/{chunk-JJF6HALY.js → chunk-UTPIFH4I.js} +3 -3
  210. package/dist/{chunk-O7XLYEFA.js → chunk-V7PEHQZU.js} +54 -22
  211. package/dist/{chunk-XI2LCCYQ.js → chunk-VJFXQISZ.js} +8 -8
  212. package/dist/{chunk-AFZ3QA6W.js → chunk-VJZI6KFP.js} +22 -22
  213. package/dist/{chunk-Q6DFNVRJ.js → chunk-VK7WYA64.js} +12 -12
  214. package/dist/{chunk-6OJQOPUN.js → chunk-VKTXFFOZ.js} +2 -2
  215. package/dist/{chunk-MG4ZL5RW.js → chunk-VNIN7Q6Q.js} +16 -16
  216. package/dist/{chunk-ZQXZ2SES.js → chunk-VRO7KSGL.js} +21 -21
  217. package/dist/{chunk-OHVTTOPS.js → chunk-W3AZE7LN.js} +3 -3
  218. package/dist/chunk-W4TNCEI4.js +44 -0
  219. package/dist/{chunk-X4CXA2IL.js → chunk-W5VYJWOG.js} +22 -22
  220. package/dist/{chunk-7DOR27HL.js → chunk-WF3RCZNO.js} +6 -6
  221. package/dist/{chunk-LGBMTVNT.js → chunk-WOMQQWTO.js} +5 -5
  222. package/dist/{chunk-2Q56PQPS.js → chunk-WXVTYLVH.js} +2 -2
  223. package/dist/{chunk-UOR2DTHH.js → chunk-WYGTSZHR.js} +16 -14
  224. package/dist/{chunk-IDKCWSM5.js → chunk-WZYM5M4U.js} +388 -104
  225. package/dist/{chunk-U76OWS3Q.js → chunk-X5ZHDSLU.js} +23 -23
  226. package/dist/chunk-X7XVMYIL.js +5 -0
  227. package/dist/{chunk-2IIMFOPM.js → chunk-X7ZKNSK4.js} +18 -18
  228. package/dist/{chunk-UF4GLFBX.js → chunk-XAPXKFIS.js} +22 -22
  229. package/dist/{chunk-LQJPN536.js → chunk-XF6TSZW2.js} +2 -2
  230. package/dist/{chunk-T6DQR5TV.js → chunk-XFDDJQT7.js} +12 -12
  231. package/dist/{chunk-OHNCWBKF.js → chunk-XGO74QWR.js} +4 -4
  232. package/dist/chunk-XLZAAAPX.js +43 -0
  233. package/dist/{chunk-2RLKFUUL.js → chunk-XMUWPA56.js} +23 -23
  234. package/dist/{chunk-JRBFANFE.js → chunk-XNFM6WUK.js} +15 -15
  235. package/dist/{chunk-LO6P2VYG.js → chunk-XOMEQVLK.js} +2 -2
  236. package/dist/{chunk-YHCMZC2J.js → chunk-Y2H7X3VI.js} +7 -7
  237. package/dist/{chunk-ZZK56BLP.js → chunk-Y5IE6YKD.js} +4 -4
  238. package/dist/{chunk-KFAVQZSX.js → chunk-YD3KTW4H.js} +12 -12
  239. package/dist/{chunk-LZ7NUC62.js → chunk-YDCOZOER.js} +18 -18
  240. package/dist/{chunk-LFGTYX5U.js → chunk-YERAAEO4.js} +17 -17
  241. package/dist/{chunk-BHT7QK4G.js → chunk-YHMPDIRG.js} +4 -4
  242. package/dist/{chunk-ZJFRMSJT.js → chunk-Z2D4P3R3.js} +12 -12
  243. package/dist/{chunk-O66DM6DJ.js → chunk-Z3H27OMV.js} +4 -4
  244. package/dist/{chunk-7UOMVMFG.js → chunk-Z3RAFU5B.js} +15 -15
  245. package/dist/{chunk-FFLNS6VP.js → chunk-ZENHDXRZ.js} +21 -17
  246. package/dist/{chunk-23XVSEV5.js → chunk-ZFHFC74B.js} +18 -18
  247. package/dist/{chunk-53T4O55J.js → chunk-ZJGCGKA4.js} +3 -3
  248. package/dist/{chunk-WXFLMQSR.js → chunk-ZLQEQR3D.js} +5 -5
  249. package/dist/{chunk-HNM2YQT2.js → chunk-ZNHQGG7J.js} +7 -7
  250. package/dist/{chunk-2Q5EDGEO.js → chunk-ZNTTW4IT.js} +5 -5
  251. package/dist/{chunk-ZQ7SKESZ.js → chunk-ZR6J4QFQ.js} +7 -7
  252. package/dist/{chunk-PAQ2AS5E.js → chunk-ZSNOILL5.js} +1 -1
  253. package/dist/files.json +563 -511
  254. package/dist/packages/sdk/npm/index.js +1043 -43
  255. package/dist/packages/ui/dist/assets/{elk-api-CIf-0gz5.js → elk-api-DxfAMOJq.js} +2 -2
  256. package/dist/packages/ui/dist/assets/index-Buit9TfP.js +62 -0
  257. package/dist/packages/ui/dist/assets/index-Jyc9dFeZ.css +1 -0
  258. package/dist/packages/ui/dist/index.html +2 -2
  259. package/package.json +4 -4
  260. package/dist/chunk-2SKB4O2E.js +0 -59
  261. package/dist/chunk-4U276ICE.js +0 -39
  262. package/dist/chunk-6H3Z5JHH.js +0 -64
  263. package/dist/chunk-C4R4JLHE.js +0 -40
  264. package/dist/chunk-CBGGOQWU.js +0 -82
  265. package/dist/chunk-DLOBCJL6.js +0 -48
  266. package/dist/chunk-GIW4ZVDB.js +0 -39
  267. package/dist/chunk-IP74LCOQ.js +0 -57
  268. package/dist/chunk-IPHHDDC6.js +0 -45
  269. package/dist/chunk-KJXD4PNL.js +0 -50
  270. package/dist/chunk-KN5BXMWN.js +0 -44
  271. package/dist/chunk-OMI6FPPN.js +0 -43
  272. package/dist/chunk-OTLDSZDV.js +0 -69
  273. package/dist/chunk-PSOFBQWB.js +0 -42
  274. package/dist/chunk-T4YPZIQN.js +0 -36
  275. package/dist/chunk-TUULXQRW.js +0 -420
  276. package/dist/chunk-WNKPRSGI.js +0 -36
  277. package/dist/packages/ui/dist/assets/index-CoK_Dl0D.js +0 -47
  278. package/dist/packages/ui/dist/assets/index-Dw20IRhQ.css +0 -1
  279. package/dist/{chunk-24XLDU72.js → chunk-PXMV2LLY.js} +3 -3
@@ -9,7 +9,7 @@ import {
9
9
  namesInCode,
10
10
  openIndex,
11
11
  workspaceRepos
12
- } from "./chunk-ISUAAMGS.js";
12
+ } from "./chunk-RCG5IAAT.js";
13
13
 
14
14
  // packages/cli/dist/code-tools.js
15
15
  var offered = /* @__PURE__ */ new Map();
@@ -21,7 +21,7 @@ function codeToolOptions(root) {
21
21
  codeDir: (r) => offered.get(r) ?? defaultCodeDir(root, r),
22
22
  repos: () => [.../* @__PURE__ */ new Set([...workspaceRepos(root), ...offered.keys()])].sort(),
23
23
  // Loaded on first use: the readers are large, and most commands never outline a file.
24
- outline: async (path, text) => (await import("./chunk-H5HBGNXU.js")).declarationOutline(path, text)
24
+ outline: async (path, text) => (await import("./chunk-J25YOUIZ.js")).declarationOutline(path, text)
25
25
  };
26
26
  }
27
27
  function metarepoToolBox(root, calls) {
@@ -31,7 +31,7 @@ function metarepoToolBox(root, calls) {
31
31
  });
32
32
  }
33
33
  async function criticCodeSearch(root, names) {
34
- const x = await import("./chunk-H5HBGNXU.js");
34
+ const x = await import("./chunk-J25YOUIZ.js");
35
35
  const r = await namesInCode(root, names, {
36
36
  ...codeToolOptions(root),
37
37
  outlines: (path) => x.syntaxLanguageOf(path) !== void 0
@@ -13,29 +13,30 @@ import {
13
13
  prepareAudit,
14
14
  tallyWords,
15
15
  writeAudit
16
- } from "./chunk-AJQ72EBM.js";
17
- import "./chunk-RGERPOIV.js";
18
- import "./chunk-OUBGGKDU.js";
19
- import "./chunk-XI2LCCYQ.js";
20
- import "./chunk-BPK5P77O.js";
21
- import "./chunk-WXFLMQSR.js";
22
- import "./chunk-TYQBFTBR.js";
23
- import "./chunk-2F4CYZKJ.js";
24
- import "./chunk-LO6P2VYG.js";
25
- import "./chunk-BEVTIBRH.js";
26
- import "./chunk-J2JAKCIW.js";
27
- import "./chunk-745DAZ4L.js";
28
- import "./chunk-CXJ6FUKN.js";
29
- import "./chunk-QKUJMING.js";
30
- import "./chunk-6ZGLAACW.js";
31
- import "./chunk-CQDGOPGH.js";
32
- import "./chunk-3NFFJL5D.js";
33
- import "./chunk-UPS2DGFC.js";
34
- import "./chunk-PKBHS4AA.js";
35
- import "./chunk-P32RUW3B.js";
16
+ } from "./chunk-HUGQZQ2K.js";
17
+ import "./chunk-T6MX7WXM.js";
18
+ import "./chunk-EHXDB3SA.js";
19
+ import "./chunk-IMZFOMVX.js";
20
+ import "./chunk-VJFXQISZ.js";
21
+ import "./chunk-CT6NINGR.js";
22
+ import "./chunk-ZLQEQR3D.js";
23
+ import "./chunk-OPWGPQ2N.js";
24
+ import "./chunk-73GFVW2L.js";
25
+ import "./chunk-XOMEQVLK.js";
26
+ import "./chunk-J4CPHJUL.js";
27
+ import "./chunk-IKAW2KJU.js";
28
+ import "./chunk-CZ2ZS7AT.js";
29
+ import "./chunk-4GAB5ZOZ.js";
30
+ import "./chunk-A4JXVO5O.js";
31
+ import "./chunk-TDSCKP3V.js";
32
+ import "./chunk-G6EFXTUO.js";
33
+ import "./chunk-PQQKZPBU.js";
34
+ import "./chunk-RRQUQAXP.js";
35
+ import "./chunk-3EWKO457.js";
36
+ import "./chunk-3424TLIJ.js";
36
37
  import "./chunk-QA4O2GGC.js";
37
- import "./chunk-Q2TECDIT.js";
38
- import "./chunk-TUULXQRW.js";
38
+ import "./chunk-FPBUTZI5.js";
39
+ import "./chunk-B4AEL3RF.js";
39
40
  import "./chunk-BQGDB6ZL.js";
40
41
  import "./chunk-TV45EUGM.js";
41
42
  export {
@@ -62,14 +62,14 @@ import {
62
62
  specEndpointIds,
63
63
  specFormatOf,
64
64
  vendorImpact
65
- } from "./chunk-QKUJMING.js";
66
- import "./chunk-6ZGLAACW.js";
67
- import "./chunk-CQDGOPGH.js";
68
- import "./chunk-3NFFJL5D.js";
69
- import "./chunk-P32RUW3B.js";
65
+ } from "./chunk-A4JXVO5O.js";
66
+ import "./chunk-TDSCKP3V.js";
67
+ import "./chunk-G6EFXTUO.js";
68
+ import "./chunk-PQQKZPBU.js";
69
+ import "./chunk-3424TLIJ.js";
70
70
  import "./chunk-QA4O2GGC.js";
71
- import "./chunk-Q2TECDIT.js";
72
- import "./chunk-TUULXQRW.js";
71
+ import "./chunk-FPBUTZI5.js";
72
+ import "./chunk-B4AEL3RF.js";
73
73
  import "./chunk-BQGDB6ZL.js";
74
74
  import "./chunk-TV45EUGM.js";
75
75
  export {
@@ -5,10 +5,10 @@ var __atticusUrl = (p) => new URL("./" + p, import.meta.url).href;
5
5
  var __atticusPath = (p) => __atticusFileURLToPath(__atticusUrl(p));
6
6
  import {
7
7
  safeMessage
8
- } from "./chunk-S7FCV7S5.js";
8
+ } from "./chunk-PXW2RZGQ.js";
9
9
  import {
10
10
  checkoutOf
11
- } from "./chunk-2F4CYZKJ.js";
11
+ } from "./chunk-73GFVW2L.js";
12
12
  import {
13
13
  AI_LINE_BY,
14
14
  AnswerMatch,
@@ -47,6 +47,7 @@ import {
47
47
  parseAuditFile,
48
48
  parseCorrections,
49
49
  parseFacts,
50
+ personEditOfTo,
50
51
  proposalRelOf,
51
52
  questionAiProblem,
52
53
  questionBar,
@@ -56,12 +57,12 @@ import {
56
57
  ruleKindOf,
57
58
  writeBatch,
58
59
  writeQuestion
59
- } from "./chunk-Q2TECDIT.js";
60
+ } from "./chunk-FPBUTZI5.js";
60
61
  import {
61
62
  FileChangedError,
62
63
  withSharedFileLock,
63
64
  writeFileAtomic
64
- } from "./chunk-TUULXQRW.js";
65
+ } from "./chunk-B4AEL3RF.js";
65
66
 
66
67
  // packages/cli/dist/ai-decide.js
67
68
  import { mkdir, readdir, readFile, rm, stat } from "node:fs/promises";
@@ -136,7 +137,7 @@ async function coversCall(match, f, facts) {
136
137
  const s = subjectOfCall(f);
137
138
  if (s?.topic)
138
139
  return matchCovers(match, s);
139
- const { ruleCoversCall } = await import("./chunk-IFKEI4SA.js");
140
+ const { ruleCoversCall } = await import("./chunk-BUUJ7N4O.js");
140
141
  return ruleCoversCall(match, f, facts, { strict: true });
141
142
  }
142
143
  async function answeredByPerson(root, repo, facts) {
@@ -144,7 +145,7 @@ async function answeredByPerson(root, repo, facts) {
144
145
  const people = questions.filter((q) => q.state === "answered" && !!q.answer && !isAiBy(q.answer.by));
145
146
  if (!people.length)
146
147
  return /* @__PURE__ */ new Set();
147
- const { estateRepos, targetsFromAnswers, TARGETS_SPLIT } = await import("./chunk-IFKEI4SA.js");
148
+ const { estateRepos, targetsFromAnswers, TARGETS_SPLIT } = await import("./chunk-BUUJ7N4O.js");
148
149
  const byRepo = /* @__PURE__ */ new Map([[repo, facts]]);
149
150
  const out = new Set(people.filter((q) => q.repo === repo && q.options[(q.answer.option ?? 0) - 1]?.label !== TARGETS_SPLIT).flatMap((q) => callsOfQuestion(q, byRepo).map((c) => c.id)));
150
151
  const op = await loadOrgPack(orgPackDirOf(root));
@@ -337,7 +338,7 @@ async function decideLinks(root, o) {
337
338
  const byPerson = await answeredByPerson(root, o.view.from, o.facts);
338
339
  return lines.filter((l) => {
339
340
  const f = calls.get(l);
340
- if (linksFor(f, now).some((c) => !c.ai))
341
+ if (linksFor(f, now).some((c) => !c.ai) || personEditOfTo(f, now))
341
342
  return false;
342
343
  if (byPerson.has(f.id)) {
343
344
  answered.add(l);
@@ -387,7 +388,7 @@ async function targetRuleVerdict(root, q, label, questions) {
387
388
  if (!calls.length)
388
389
  return void 0;
389
390
  const op = await loadOrgPack(orgPackDirOf(root));
390
- const { estateRepos, ruledTargets } = await import("./chunk-IFKEI4SA.js");
391
+ const { estateRepos, ruledTargets } = await import("./chunk-BUUJ7N4O.js");
391
392
  const repoType = estateRepos(op).find((r) => r.id === q.repo)?.type;
392
393
  const ruled = ruledTargets(q.repo, facts, questions, {
393
394
  ...repoType ? { repoType } : {},
@@ -404,7 +405,7 @@ async function personLinkVerdict(root, q, label) {
404
405
  if (!calls.length)
405
406
  return void 0;
406
407
  const corrections = await correctionsOf(root, q.repo);
407
- if (calls.some((c) => linksFor(c, corrections).some((l) => !l.ai)))
408
+ if (calls.some((c) => linksFor(c, corrections).some((l) => !l.ai) || personEditOfTo(c, corrections)))
408
409
  return "a person said where its call goes on the canvas (a pairing or none): their word stands";
409
410
  const rules = await linkRulesOf(root, q.repo);
410
411
  for (const c of calls)
@@ -457,7 +458,7 @@ async function decideAnswers(root, o) {
457
458
  continue;
458
459
  }
459
460
  const label = q.options[option - 1].label;
460
- const { TARGETS_NO_EVIDENCE } = await import("./chunk-IFKEI4SA.js");
461
+ const { TARGETS_NO_EVIDENCE } = await import("./chunk-BUUJ7N4O.js");
461
462
  const shapesFirst = option === 1 && !q.options[0].means.includes(TARGETS_NO_EVIDENCE);
462
463
  const rule = await targetRuleVerdict(root, q, label, everyTarget);
463
464
  if (rule === "against") {
@@ -584,8 +585,8 @@ async function decisionsView(root) {
584
585
  qCounts.byPerson++;
585
586
  }
586
587
  const linkCounts = { fromCode: 0, byPerson: 0, byAi: 0 };
587
- const { readCatalog } = await import("./chunk-IFKEI4SA.js");
588
- const cat = await readCatalog(join(catalogDirOf(root), "generated")).catch(() => void 0);
588
+ const { readCatalog } = await import("./chunk-BUUJ7N4O.js");
589
+ const cat = await readCatalog(join(catalogDirOf(root), "generated"), { cacheRoot: root }).catch(() => void 0);
589
590
  for (const r of cat?.records ?? []) {
590
591
  if (r.kind !== "Interface")
591
592
  continue;
@@ -749,7 +750,7 @@ async function correctQuestion(root, req, o) {
749
750
  }
750
751
  const spread = plans.map((p) => p.view);
751
752
  const op = await loadOrgPack(orgPackDirOf(root));
752
- const { estateRepos } = await import("./chunk-IFKEI4SA.js");
753
+ const { estateRepos } = await import("./chunk-BUUJ7N4O.js");
753
754
  const repoType = estateRepos(op).find((r) => r.id === q.repo)?.type;
754
755
  const shape = `question:${repoType ?? q.repo}:${rule?.match ?? calls[0]?.path ?? q.id}`;
755
756
  const n = await shapeCount(root, shape);
@@ -892,7 +893,7 @@ async function correctLink(root, req, o) {
892
893
  const appliedItems = [{ kind: "link", repo, fact: f.id, line: ownLine }];
893
894
  const revertedItems = [];
894
895
  if (rule) {
895
- const { candidatesOf, settingsOf } = await import("./chunk-KN5BXMWN.js");
896
+ const { candidatesOf, settingsOf } = await import("./chunk-W4TNCEI4.js");
896
897
  const box = { repo: target ?? aiRepo };
897
898
  const cands = box.repo !== repo ? await candidatesOf(root, repo, box).catch(() => void 0) : void 0;
898
899
  const loose = new Set((cands?.view.calls ?? []).filter((c) => c.status !== "paired").map((c) => c.fact));
@@ -922,6 +923,8 @@ async function correctLink(root, req, o) {
922
923
  const st = linksFor(c, corrections)[0];
923
924
  if (st && !st.ai)
924
925
  continue;
926
+ if (personEditOfTo(c, corrections))
927
+ continue;
925
928
  if (byPerson.has(c.id))
926
929
  continue;
927
930
  const item = `link:${repo}:${c.id}`;
@@ -969,7 +972,7 @@ async function correctLink(root, req, o) {
969
972
  }
970
973
  }
971
974
  const op = await loadOrgPack(orgPackDirOf(root));
972
- const { estateRepos } = await import("./chunk-IFKEI4SA.js");
975
+ const { estateRepos } = await import("./chunk-BUUJ7N4O.js");
973
976
  const repoType = estateRepos(op).find((r) => r.id === repo)?.type;
974
977
  const shape = `link:${repoType ?? repo}:${rule?.match ?? f.path}`;
975
978
  const n = await shapeCount(root, shape);
@@ -6,13 +6,13 @@ var __atticusPath = (p) => __atticusFileURLToPath(__atticusUrl(p));
6
6
  import {
7
7
  openIndex,
8
8
  searchIndex
9
- } from "./chunk-ISUAAMGS.js";
10
- import "./chunk-P32RUW3B.js";
9
+ } from "./chunk-RCG5IAAT.js";
10
+ import "./chunk-3424TLIJ.js";
11
11
  import "./chunk-QA4O2GGC.js";
12
12
  import {
13
13
  changesDirOf
14
- } from "./chunk-Q2TECDIT.js";
15
- import "./chunk-TUULXQRW.js";
14
+ } from "./chunk-FPBUTZI5.js";
15
+ import "./chunk-B4AEL3RF.js";
16
16
  import {
17
17
  require_dist
18
18
  } from "./chunk-BQGDB6ZL.js";
@@ -121,7 +121,7 @@ async function pastChangeMarkdown(root, folder) {
121
121
  `;
122
122
  }
123
123
  async function attachPastChange(root, change, folder, by, now = /* @__PURE__ */ new Date()) {
124
- const { attachFiles } = await import("./chunk-LDLL7LB3.js");
124
+ const { attachFiles } = await import("./chunk-ISG547IS.js");
125
125
  const name = `like-${folder.replace(DATED, "$2")}.md`;
126
126
  await attachFiles(root, change, [{ name, bytes: new TextEncoder().encode(await pastChangeMarkdown(root, folder)) }], by, now);
127
127
  return name;
@@ -6,6 +6,7 @@ var __atticusPath = (p) => __atticusFileURLToPath(__atticusUrl(p));
6
6
  import {
7
7
  GitError,
8
8
  IGNORED,
9
+ SAME_ID_WHY,
9
10
  WORKSPACE_DIR,
10
11
  WorkspaceFileError,
11
12
  baseClonePath,
@@ -17,6 +18,7 @@ import {
17
18
  changedFiles,
18
19
  changesSince,
19
20
  checkoutState,
21
+ cloneUrlKey,
20
22
  createGit,
21
23
  createWorkspace,
22
24
  ensureGitignore,
@@ -30,9 +32,11 @@ import {
30
32
  legacyBranchSlug,
31
33
  loadManifest,
32
34
  loadRepos,
35
+ nearRepos,
33
36
  readChangeRepos,
34
37
  remoteDefaultBranch,
35
38
  removeEditorWorkspaces,
39
+ repoIdKey,
36
40
  toHandle,
37
41
  toRepoRelative,
38
42
  vscodeWorkspace,
@@ -40,14 +44,15 @@ import {
40
44
  worktreePath,
41
45
  writeChangeRepos,
42
46
  writeEditorWorkspaces
43
- } from "./chunk-PKBHS4AA.js";
44
- import "./chunk-Q2TECDIT.js";
45
- import "./chunk-TUULXQRW.js";
47
+ } from "./chunk-3EWKO457.js";
48
+ import "./chunk-FPBUTZI5.js";
49
+ import "./chunk-B4AEL3RF.js";
46
50
  import "./chunk-BQGDB6ZL.js";
47
51
  import "./chunk-TV45EUGM.js";
48
52
  export {
49
53
  GitError,
50
54
  IGNORED,
55
+ SAME_ID_WHY,
51
56
  WORKSPACE_DIR,
52
57
  WorkspaceFileError,
53
58
  baseClonePath,
@@ -59,6 +64,7 @@ export {
59
64
  changedFiles,
60
65
  changesSince,
61
66
  checkoutState,
67
+ cloneUrlKey,
62
68
  createGit,
63
69
  createWorkspace,
64
70
  ensureGitignore,
@@ -72,9 +78,11 @@ export {
72
78
  legacyBranchSlug,
73
79
  loadManifest,
74
80
  loadRepos,
81
+ nearRepos,
75
82
  readChangeRepos,
76
83
  remoteDefaultBranch,
77
84
  removeEditorWorkspaces,
85
+ repoIdKey,
78
86
  toHandle,
79
87
  toRepoRelative,
80
88
  vscodeWorkspace,
@@ -10,7 +10,7 @@ import {
10
10
  globToRegExp,
11
11
  memoryRepo,
12
12
  scanRepo
13
- } from "./chunk-3NFFJL5D.js";
13
+ } from "./chunk-PQQKZPBU.js";
14
14
  import {
15
15
  Dialect,
16
16
  FrameworkModel,
@@ -26,7 +26,7 @@ import {
26
26
  readZip,
27
27
  renderExpr,
28
28
  renderTemplate
29
- } from "./chunk-Q2TECDIT.js";
29
+ } from "./chunk-FPBUTZI5.js";
30
30
  import {
31
31
  require_dist
32
32
  } from "./chunk-BQGDB6ZL.js";
@@ -8,7 +8,7 @@ import {
8
8
  executorsCheck,
9
9
  inputsSha256,
10
10
  runStep
11
- } from "./chunk-6OJQOPUN.js";
11
+ } from "./chunk-VKTXFFOZ.js";
12
12
  import {
13
13
  table
14
14
  } from "./chunk-VOGCSYOI.js";
@@ -17,7 +17,7 @@ import {
17
17
  exportStep,
18
18
  fileStepStore,
19
19
  recordStep
20
- } from "./chunk-7IGKHZ4Z.js";
20
+ } from "./chunk-FL344WQD.js";
21
21
 
22
22
  // packages/cli/dist/todo-commands.js
23
23
  var iso = (d) => d.toISOString().replace(/\.\d{3}Z$/, "Z");
@@ -147,7 +147,7 @@ async function todoDone(root, stepRef, o, io, deps = {}) {
147
147
  });
148
148
  io.out(done.state === "skipped" ? `Skipped step ${done.id}: ${o.note}` : `Recorded step ${done.id}${Object.keys(done.recorded?.values ?? {}).length ? `: ${Object.entries(done.recorded.values).map(([k, v]) => `${k} ${Array.isArray(v) ? v.join(", ") : String(v)}`).join(", ")}` : ""}.`);
149
149
  if (deps.sync !== false) {
150
- const { syncAfterManualStep } = await import("./chunk-SFSPGFCV.js");
150
+ const { syncAfterManualStep } = await import("./chunk-J32IPTVQ.js");
151
151
  await syncAfterManualStep(root, done, o.by, io, deps.sync ?? {});
152
152
  }
153
153
  return 0;
@@ -5,14 +5,14 @@ var __atticusUrl = (p) => new URL("./" + p, import.meta.url).href;
5
5
  var __atticusPath = (p) => __atticusFileURLToPath(__atticusUrl(p));
6
6
  import {
7
7
  intakeContext
8
- } from "./chunk-SFUP7TTO.js";
8
+ } from "./chunk-C6ORPLCN.js";
9
9
  import "./chunk-VOGCSYOI.js";
10
10
  import {
11
11
  changeFolder,
12
12
  changeStore
13
- } from "./chunk-IDKCWSM5.js";
14
- import "./chunk-UUU4CLJG.js";
15
- import "./chunk-7IGKHZ4Z.js";
13
+ } from "./chunk-WZYM5M4U.js";
14
+ import "./chunk-NC755EKE.js";
15
+ import "./chunk-FL344WQD.js";
16
16
  import {
17
17
  estateFacts,
18
18
  estateRepos,
@@ -20,19 +20,19 @@ import {
20
20
  joinReposOf,
21
21
  outsideProfileSystems,
22
22
  outsideSystems
23
- } from "./chunk-J2JAKCIW.js";
24
- import "./chunk-745DAZ4L.js";
25
- import "./chunk-CXJ6FUKN.js";
23
+ } from "./chunk-IKAW2KJU.js";
24
+ import "./chunk-CZ2ZS7AT.js";
25
+ import "./chunk-4GAB5ZOZ.js";
26
26
  import {
27
27
  attachToChange,
28
28
  readChangeInputs,
29
29
  readVendorSpec
30
- } from "./chunk-QKUJMING.js";
31
- import "./chunk-6ZGLAACW.js";
32
- import "./chunk-CQDGOPGH.js";
33
- import "./chunk-3NFFJL5D.js";
34
- import "./chunk-PKBHS4AA.js";
35
- import "./chunk-P32RUW3B.js";
30
+ } from "./chunk-A4JXVO5O.js";
31
+ import "./chunk-TDSCKP3V.js";
32
+ import "./chunk-G6EFXTUO.js";
33
+ import "./chunk-PQQKZPBU.js";
34
+ import "./chunk-3EWKO457.js";
35
+ import "./chunk-3424TLIJ.js";
36
36
  import "./chunk-QA4O2GGC.js";
37
37
  import {
38
38
  PROTOTYPE_GROUPS,
@@ -43,8 +43,8 @@ import {
43
43
  joinConventions,
44
44
  parseFacts,
45
45
  prototypeArchitectureSection
46
- } from "./chunk-Q2TECDIT.js";
47
- import "./chunk-TUULXQRW.js";
46
+ } from "./chunk-FPBUTZI5.js";
47
+ import "./chunk-B4AEL3RF.js";
48
48
  import "./chunk-BQGDB6ZL.js";
49
49
  import "./chunk-TV45EUGM.js";
50
50
 
@@ -0,0 +1,232 @@
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
+ listRuns
8
+ } from "./chunk-IYNCSYU4.js";
9
+ import {
10
+ isHandoffStep
11
+ } from "./chunk-4Q3NN7VF.js";
12
+ import {
13
+ withFileLock
14
+ } from "./chunk-PXW2RZGQ.js";
15
+ import {
16
+ forgetUserState,
17
+ readUserState,
18
+ writeUserState
19
+ } from "./chunk-KVVNAUIG.js";
20
+ import {
21
+ runsDirOf
22
+ } from "./chunk-FPBUTZI5.js";
23
+ import {
24
+ writeFileIfUnchanged
25
+ } from "./chunk-B4AEL3RF.js";
26
+
27
+ // packages/cli/dist/handoff-resume.js
28
+ import { readFile } from "node:fs/promises";
29
+ import { join } from "node:path";
30
+ var STAGE_PAGES = [
31
+ [
32
+ /^atticus change feature \S+(?: --\S+(?: \S+)?)*$/,
33
+ "prepare the feature stage again on Feature design"
34
+ ],
35
+ [
36
+ /^atticus change architecture \S+(?: --\S+(?: \S+)?)*$/,
37
+ "prepare the architecture stage again on Architecture"
38
+ ],
39
+ [/^atticus plan stories \S+(?: --\S+(?: \S+)?)*$/, "prepare the stories stage again on Stories"],
40
+ [/^atticus change small \S+(?: --\S+(?: \S+)?)*$/, "prepare its one step again on At a glance"]
41
+ ];
42
+ var againWords = (command) => STAGE_PAGES.find(([re]) => re.test(command))?.[1] ?? "prepare it again on the page you prepared it from";
43
+ function appLines(lines, o = {}) {
44
+ const ready = o.next ? "The next prompt is ready in the stage's thread." : "The prompt is ready in the stage's thread: paste it into your assistant. The app checks the answer once your assistant has written the file.";
45
+ return lines.map((l) => l.replace(/\s*When it is done(?:, run)?: atticus handoff done \S+.*$/, ` ${ready}`).replace(/\s*(?:Next:\s*|[Rr]un:?\s*)?atticus [^\n]*?--resume run-[0-9a-z-]+(?::[^\n]*|\.)?$/, " The next prompt is ready in the stage's thread.").replace(/,? (?:and|then) run atticus handoff done \S+ again/g, ", then press Done again").replace(/\b([Rr])un atticus handoff done \S+ again/g, (_m, r) => r === "R" ? "Press Done again" : "press Done again").replace(/: pull \S+, then run atticus change learn\.$/, ": Bring in what merged on Home; the comparison with what Atticus drafted is kept the next time the drafts are measured.").replace(/^Answer each with atticus questions answer <id> .*, or with \/atticus-answer\.$/, "Answer each on Questions.").replace(/\b([Tt])hen run (atticus [^:]+?) again\b/, (_m, t, cmd) => `${t}hen ${againWords(cmd)}`).replace(/^Open the stage's pull request for a person to approve: .*$/, "Raise the stage's hand-off on the change page for a person to approve.").replace(/^No checkout of (\S+): clone it \(atticus workspace sync\) or give its folder with --dir\.$/, "No checkout of $1 on this machine: Sync the repos to clone it, then try again.").replace(/^(No repo has facts yet \([^)]*\))\. Read one first: \/atticus-map <repo> in your assistant\.$/, "$1. Read one first on Map \u203A Trust.").replace(/^(No facts for (\S+) at \S+)\. Run \/atticus-map \S+ in your assistant first \(or atticus map \S+ to read it in batches\); it writes that file\.$/, "$1. Read $2 first on Map \u203A Trust; the read writes that file.").replace(/^(There are no repo specs in \S+ yet)\. Draft them first: atticus spec draft <repo>\.$/, "$1: read a repo on Map \u203A Trust and apply it, which writes its spec.").trimStart());
46
+ }
47
+ var resumeFile = (runId) => {
48
+ if (!/^[A-Za-z0-9][A-Za-z0-9._-]*$/.test(runId))
49
+ throw new Error(`${runId} isn't a run id.`);
50
+ return `resume/${runId}.json`;
51
+ };
52
+ async function hasKeptResume(root, runId) {
53
+ return !!await readUserState(root, resumeFile(runId)).catch(() => void 0);
54
+ }
55
+ function resumedRunOf(argv) {
56
+ const isRun = (v) => !!v && /^run-[0-9A-Za-z._-]+$/.test(v);
57
+ for (let i = 0; i < argv.length; i++) {
58
+ const a = argv[i];
59
+ if (a === "--resume" && isRun(argv[i + 1]))
60
+ return argv[i + 1];
61
+ if (a.startsWith("--resume=") && isRun(a.slice("--resume=".length)))
62
+ return a.slice("--resume=".length);
63
+ }
64
+ return void 0;
65
+ }
66
+ async function forgetKeptResume(root, runId) {
67
+ await forgetUserState(root, resumeFile(runId)).catch(() => void 0);
68
+ }
69
+ var SOURCE_STEPS = /* @__PURE__ */ new Set(["knowledge scan", "knowledge find"]);
70
+ var FORCE_STEPS = /* @__PURE__ */ new Set(["plan stories"]);
71
+ function resumeRefusal(args, runId) {
72
+ if (!Array.isArray(args) || !args.every((a) => typeof a === "string" && a !== ""))
73
+ return "it isn't a step's words";
74
+ const words = args;
75
+ if (!isHandoffStep(words[0], words[1]))
76
+ return `atticus ${words.slice(0, 2).join(" ")} isn't an AI step the app prepares`;
77
+ let resumed = false;
78
+ let source = false;
79
+ for (let i = 2; i < words.length; i++) {
80
+ const a = words[i];
81
+ if (!a.startsWith("-"))
82
+ continue;
83
+ if (a === "--handoff")
84
+ continue;
85
+ if (a === "--resume" && !resumed && words[i + 1] === runId) {
86
+ resumed = true;
87
+ i++;
88
+ continue;
89
+ }
90
+ if (a === "--force" && FORCE_STEPS.has(`${words[0]} ${words[1]}`))
91
+ continue;
92
+ const value = words[i + 1];
93
+ if (a === "--source" && !source && SOURCE_STEPS.has(`${words[0]} ${words[1]}`) && value && !value.startsWith("-")) {
94
+ source = true;
95
+ i++;
96
+ continue;
97
+ }
98
+ return `it names ${a}${a === "--resume" ? " for another run" : ""}, which a step's resume never does`;
99
+ }
100
+ return resumed ? void 0 : `it doesn't resume ${runId}`;
101
+ }
102
+ function ownWords(args) {
103
+ const out = [];
104
+ for (let i = 0; i < args.length; i++) {
105
+ const a = args[i];
106
+ if (a === "--handoff" || a === "--json")
107
+ continue;
108
+ if (a === "--resume") {
109
+ i++;
110
+ continue;
111
+ }
112
+ out.push(a);
113
+ }
114
+ return out;
115
+ }
116
+ async function keepResume(root, change, runId, args) {
117
+ await writeUserState(root, resumeFile(runId), { change, runId, args });
118
+ }
119
+ async function supersede(root, change, runId, by) {
120
+ const file = join(runsDirOf(root), change, runId, "run.json");
121
+ const was = await readFile(file, "utf8").catch(() => void 0);
122
+ if (was === void 0)
123
+ return false;
124
+ let rec;
125
+ try {
126
+ rec = JSON.parse(was);
127
+ } catch {
128
+ return false;
129
+ }
130
+ if (rec.state !== "waiting" && rec.state !== "prepared")
131
+ return false;
132
+ rec.state = "cancelled";
133
+ rec.finishedAt = (/* @__PURE__ */ new Date()).toISOString();
134
+ rec.errors = [
135
+ `Superseded by run ${by}: the step was prepared again, so this run's answer is no longer read.`
136
+ ];
137
+ await writeFileIfUnchanged(file, was, JSON.stringify(rec, null, 2) + "\n").catch(() => void 0);
138
+ await forgetUserState(root, resumeFile(runId)).catch(() => void 0);
139
+ return true;
140
+ }
141
+ async function prepareStep(root, runStep, args, o = {}) {
142
+ const res = await runStep([...args, "--handoff", "--json"]);
143
+ const lines = [...res.out, ...res.err];
144
+ const json = [...res.out].reverse().find((l) => l.trim().startsWith("{"));
145
+ let h = {};
146
+ try {
147
+ h = json ? JSON.parse(json) : {};
148
+ } catch {
149
+ h = {};
150
+ }
151
+ const said = appLines([
152
+ ...lines.filter((l) => !l.trim().startsWith("{")),
153
+ ...h.messages ?? [],
154
+ ...h.errors ?? [],
155
+ ...(h.questions ?? []).map((q) => `Question ${q.id}: ${q.question} (answer it on Questions)`),
156
+ ...h.pagesLeft ? [`${h.pagesLeft} pages are left for the next part: Prepare it again.`] : []
157
+ ], o);
158
+ if (h.state !== "handoff" || !h.runId)
159
+ return { code: res.code, prepared: { lines: said } };
160
+ const runs = await listRuns(root, { limit: 1e5 });
161
+ const run = runs.find((x) => x.runId === h.runId);
162
+ if (run && h.resumeArgs) {
163
+ const resume = [...ownWords(args), "--resume", run.runId];
164
+ if (!resumeRefusal(resume, run.runId))
165
+ await keepResume(root, run.change, run.runId, resume).catch(() => void 0);
166
+ }
167
+ if (run && !h.stillWaiting) {
168
+ const mine = JSON.stringify(ownWords(args));
169
+ for (const x of runs) {
170
+ if (x.runId === run.runId || x.change !== run.change)
171
+ continue;
172
+ if (x.state !== "waiting" && x.state !== "prepared")
173
+ continue;
174
+ const kept = await readUserState(root, resumeFile(x.runId)).catch(() => void 0);
175
+ if (!Array.isArray(kept?.args) || JSON.stringify(ownWords(kept.args)) !== mine)
176
+ continue;
177
+ if (await supersede(root, x.change, x.runId, run.runId))
178
+ said.push(`Run ${x.runId} was waiting for the same step: it is cancelled.`);
179
+ }
180
+ }
181
+ return {
182
+ code: res.code,
183
+ prepared: {
184
+ runId: h.runId,
185
+ lines: said,
186
+ ...h.stillWaiting ? { stillWaiting: true } : {}
187
+ }
188
+ };
189
+ }
190
+ function resumeAfterDone(root, runStep, change, runId) {
191
+ return withFileLock(join(runsDirOf(root), change, runId, "resume"), () => resumeOnce(root, runStep, change, runId));
192
+ }
193
+ async function resumeOnce(root, runStep, change, runId) {
194
+ const kept = await readUserState(root, resumeFile(runId));
195
+ if (!kept)
196
+ return void 0;
197
+ const no = kept.runId !== runId || kept.change !== change ? "it was kept for another run" : resumeRefusal(kept.args, runId);
198
+ if (no)
199
+ return {
200
+ lines: [
201
+ `The step's resume for ${runId} wasn't run: ${no}. Prepare the step again from the page you prepared it on.`
202
+ ]
203
+ };
204
+ await forgetUserState(root, resumeFile(runId)).catch(() => void 0);
205
+ const words = kept.args.filter((a) => a !== "--handoff");
206
+ const r = await prepareStep(root, runStep, words, { next: true });
207
+ if (r.prepared.runId && r.prepared.runId !== runId)
208
+ return { next: r.prepared.runId, lines: r.prepared.lines };
209
+ const repo = mapRepoOf(words);
210
+ if (repo && !r.prepared.runId) {
211
+ const v = await runStep(["verify", repo, "--write"]);
212
+ return { lines: [...r.prepared.lines, ...appLines([...v.out, ...v.err])], applied: repo };
213
+ }
214
+ return { lines: r.prepared.lines };
215
+ }
216
+ function mapRepoOf(words) {
217
+ return words[0] === "map" && words[1] && !words[1].startsWith("-") ? words[1] : void 0;
218
+ }
219
+
220
+ export {
221
+ appLines,
222
+ hasKeptResume,
223
+ resumedRunOf,
224
+ forgetKeptResume,
225
+ SOURCE_STEPS,
226
+ FORCE_STEPS,
227
+ resumeRefusal,
228
+ keepResume,
229
+ prepareStep,
230
+ resumeAfterDone,
231
+ mapRepoOf
232
+ };