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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (270) hide show
  1. package/dist/bin.js +8 -4
  2. package/dist/{chunk-MUSJJ6CQ.js → chunk-265LWMOA.js} +16 -16
  3. package/dist/chunk-26WBY34Y.js +37 -0
  4. package/dist/{chunk-6H5JG5GL.js → chunk-26Z7OGQW.js} +63 -30
  5. package/dist/{chunk-4REDBQOZ.js → chunk-2D7PWSOK.js} +20 -20
  6. package/dist/{chunk-YPH6ZJ6R.js → chunk-2HH3UCZM.js} +4 -4
  7. package/dist/{chunk-RTUUX7PX.js → chunk-2HTEMYTB.js} +12 -26
  8. package/dist/{chunk-EHQUY26D.js → chunk-2UCRFXFZ.js} +11 -11
  9. package/dist/{chunk-ILDGIXNH.js → chunk-2V2ZPQQU.js} +81 -13
  10. package/dist/{chunk-YSEZQ6D3.js → chunk-36RY7ZXM.js} +107 -64
  11. package/dist/{chunk-QXFDM2FZ.js → chunk-37WE3LS2.js} +3 -3
  12. package/dist/{chunk-BAXM3JFQ.js → chunk-3AQ2R5NL.js} +1212 -754
  13. package/dist/chunk-3G6S7LAA.js +43 -0
  14. package/dist/{chunk-7TOAS7KI.js → chunk-3J5I7ZOU.js} +4 -4
  15. package/dist/{chunk-TAKAEJRD.js → chunk-3LZ6P5EP.js} +1 -1
  16. package/dist/chunk-3SSTNB4E.js +191 -0
  17. package/dist/chunk-3TD6S4TC.js +49 -0
  18. package/dist/{chunk-UUL6ZGMU.js → chunk-3UTYPHN3.js} +1 -1
  19. package/dist/{chunk-6AP2ZUUM.js → chunk-3WON4G3M.js} +2 -2
  20. package/dist/{chunk-AXY6LBW4.js → chunk-42EPP7OB.js} +12 -12
  21. package/dist/{chunk-QKMDT7VU.js → chunk-455SYIIE.js} +2 -2
  22. package/dist/{chunk-MFUFB3LN.js → chunk-4B6BT75O.js} +110 -20
  23. package/dist/{chunk-75MYLZSB.js → chunk-4CLK2RJO.js} +7 -7
  24. package/dist/chunk-4CYTJ5TZ.js +38 -0
  25. package/dist/{chunk-IH7RANGB.js → chunk-4D62IZII.js} +5 -5
  26. package/dist/{chunk-2QMZOCWN.js → chunk-4FOAYLI4.js} +14 -7
  27. package/dist/{chunk-V3UEPUHT.js → chunk-4KNOJC6J.js} +294 -215
  28. package/dist/{chunk-O6ILVBYB.js → chunk-4PYC2UGC.js} +1 -1
  29. package/dist/{chunk-EZBAS5BL.js → chunk-4SLBCEPD.js} +82 -50
  30. package/dist/{chunk-VIRTPODJ.js → chunk-4TKVU2I2.js} +6 -14
  31. package/dist/{chunk-IVCDU443.js → chunk-4WXRPQDE.js} +281 -51
  32. package/dist/{chunk-RMEEHH24.js → chunk-5CMPVC3N.js} +24 -24
  33. package/dist/chunk-5G7ILBUG.js +66 -0
  34. package/dist/{chunk-Z75XDWQR.js → chunk-5PV7S2ZP.js} +3 -3
  35. package/dist/{chunk-WWPC2AZ2.js → chunk-5QUOPNLN.js} +4 -4
  36. package/dist/{chunk-7OVH2L7L.js → chunk-5TDRBOAV.js} +5 -5
  37. package/dist/{chunk-YXUIUOQZ.js → chunk-5WERBKLE.js} +199 -63
  38. package/dist/{chunk-6WNNXEG6.js → chunk-62DLJSLV.js} +8 -8
  39. package/dist/{chunk-KCQS52TH.js → chunk-64AADMTW.js} +99 -25
  40. package/dist/{chunk-KLRUXRPN.js → chunk-67BP7HXL.js} +17 -17
  41. package/dist/chunk-6DQYZU2W.js +379 -0
  42. package/dist/{chunk-RONDYDMQ.js → chunk-6EXDI5GI.js} +51 -34
  43. package/dist/chunk-6FNAKCET.js +38 -0
  44. package/dist/{chunk-6SNEA73E.js → chunk-75ASLHBT.js} +21 -15
  45. package/dist/{chunk-EFT4KM6K.js → chunk-75ZOZFGH.js} +18 -18
  46. package/dist/{chunk-B3KW7EQW.js → chunk-77O633L5.js} +12 -12
  47. package/dist/{chunk-TLDL2ZZI.js → chunk-7AB6OWTV.js} +3 -3
  48. package/dist/{chunk-R5YXY6NT.js → chunk-7CZHUZBL.js} +25 -25
  49. package/dist/{chunk-F4D4G2A6.js → chunk-7FHNFCHK.js} +306 -125
  50. package/dist/{chunk-CC5RNYZF.js → chunk-7FUIVIBG.js} +19 -9
  51. package/dist/{chunk-UBTOSSNK.js → chunk-7QPCGTPS.js} +21 -21
  52. package/dist/{chunk-CDLTRJ4N.js → chunk-A2G72UI4.js} +7 -7
  53. package/dist/{chunk-YGSOQ5LX.js → chunk-AE4P57KK.js} +23 -17
  54. package/dist/{chunk-PGQL5YGH.js → chunk-AHW3RY3X.js} +7 -7
  55. package/dist/chunk-AM6FP6JW.js +43 -0
  56. package/dist/{chunk-DYNC6BAQ.js → chunk-AOCWFA7T.js} +93 -10
  57. package/dist/{chunk-CYX36GKZ.js → chunk-API5TOUB.js} +1 -1
  58. package/dist/{chunk-BJ5T3KDF.js → chunk-AZDITBCT.js} +3 -3
  59. package/dist/{chunk-U6GZSUMC.js → chunk-BA2HUMDN.js} +25 -3
  60. package/dist/chunk-BA3U7ALS.js +99 -0
  61. package/dist/{chunk-63565QTF.js → chunk-BC6KKZ67.js} +5 -5
  62. package/dist/{chunk-XO5RQKNM.js → chunk-BEPCKDCP.js} +1843 -577
  63. package/dist/{chunk-KUH62AQ3.js → chunk-BPPU3PW7.js} +4 -4
  64. package/dist/{chunk-52ULYRV4.js → chunk-BVWWPBKD.js} +18 -18
  65. package/dist/{chunk-R2FGEBIU.js → chunk-BXZ4PKIT.js} +13 -11
  66. package/dist/{chunk-4BU26GFB.js → chunk-C7CEK3KW.js} +4 -4
  67. package/dist/chunk-CFH3QH26.js +29 -0
  68. package/dist/chunk-CG6CULP6.js +170 -0
  69. package/dist/chunk-CLD4RVTA.js +45 -0
  70. package/dist/{chunk-BU543ZEC.js → chunk-CNPY4NTZ.js} +13 -13
  71. package/dist/{chunk-PLBIWEPV.js → chunk-CNU5Q2D5.js} +32 -31
  72. package/dist/{chunk-JTYYEYRR.js → chunk-COYN3UAN.js} +124 -21
  73. package/dist/{chunk-TNCROWPQ.js → chunk-CPK7QSBG.js} +10 -10
  74. package/dist/{chunk-43E6XX67.js → chunk-D2WSW4GU.js} +1 -1
  75. package/dist/{chunk-SHEUEHKC.js → chunk-D57MFJPP.js} +3 -3
  76. package/dist/chunk-D5KV5PSK.js +45 -0
  77. package/dist/chunk-D5MASS4I.js +48 -0
  78. package/dist/{chunk-TQYBXDVH.js → chunk-DCWN3HFV.js} +1 -1
  79. package/dist/{chunk-FF4IGX4Z.js → chunk-DDJPM5YX.js} +2 -2
  80. package/dist/chunk-DN4A2Q2O.js +57 -0
  81. package/dist/{chunk-4ZCFCIEL.js → chunk-DUPZPDCJ.js} +52 -16
  82. package/dist/{chunk-CUJ5TIEB.js → chunk-E2VXBSIR.js} +4 -4
  83. package/dist/{chunk-BX47X5DJ.js → chunk-E57AOFYN.js} +13 -13
  84. package/dist/{chunk-SSTI7GAV.js → chunk-ECLXZWAG.js} +12 -12
  85. package/dist/{chunk-KYK3TA4Q.js → chunk-EDZ45WIR.js} +14 -14
  86. package/dist/chunk-EFCQSMXB.js +37 -0
  87. package/dist/{chunk-YC2K3FJG.js → chunk-EZIN5E5B.js} +8 -8
  88. package/dist/{chunk-MIZNACDI.js → chunk-F6H2RJ3N.js} +1 -1
  89. package/dist/{chunk-EMZVHDJP.js → chunk-FAJDKNSD.js} +7 -3
  90. package/dist/chunk-FGAGWYZB.js +47 -0
  91. package/dist/{chunk-KBGQ3IAM.js → chunk-FLVZFTLQ.js} +18 -18
  92. package/dist/{chunk-2NNXLH53.js → chunk-FQ6WH6PB.js} +22 -7
  93. package/dist/{chunk-QWSLMVHI.js → chunk-FRHD22WM.js} +61 -23
  94. package/dist/{chunk-5MEN4SM5.js → chunk-FVMPFCDS.js} +4 -4
  95. package/dist/{chunk-KLRZKW7Y.js → chunk-FY3QIRTL.js} +3 -3
  96. package/dist/{chunk-B3SWPNJF.js → chunk-FYBF5MB2.js} +13 -11
  97. package/dist/{chunk-CVZCW3NI.js → chunk-G5YJBNDZ.js} +14 -5
  98. package/dist/{chunk-U6EPS5PF.js → chunk-G6IQYM25.js} +5 -5
  99. package/dist/chunk-G6X4YL4D.js +161 -0
  100. package/dist/{chunk-DOSX3MRW.js → chunk-GC2VK3JT.js} +25 -25
  101. package/dist/{chunk-EEWBTFRP.js → chunk-GCS3FZOB.js} +27 -3
  102. package/dist/{chunk-6H6OPNEP.js → chunk-GDZB57IU.js} +5 -5
  103. package/dist/chunk-GIFMBCTW.js +221 -0
  104. package/dist/{chunk-X5WYPIH3.js → chunk-GK4PYVEC.js} +18 -8
  105. package/dist/{chunk-VBSJ5NRB.js → chunk-GNWAOVFQ.js} +5 -5
  106. package/dist/{chunk-TXFDQRBL.js → chunk-GS76RXQE.js} +11 -11
  107. package/dist/{chunk-U3YC4RGC.js → chunk-GSGIZ2OO.js} +23 -23
  108. package/dist/chunk-GUYL7RMK.js +60 -0
  109. package/dist/{chunk-AZYBHPV4.js → chunk-GX74YWR7.js} +14 -13
  110. package/dist/{chunk-YY7VP7KW.js → chunk-HE3HRDNZ.js} +2 -2
  111. package/dist/{chunk-Z7HYYDZM.js → chunk-HGHRSF3E.js} +14 -13
  112. package/dist/{chunk-Q2X4IREC.js → chunk-HK3VOHIE.js} +106 -36
  113. package/dist/{chunk-P5JYMO7Y.js → chunk-HS4BGB4G.js} +22 -22
  114. package/dist/{chunk-IOW6BF3U.js → chunk-HSZMPH5T.js} +798 -141
  115. package/dist/{chunk-L3T33FA7.js → chunk-HWD4JPU7.js} +4 -2
  116. package/dist/{chunk-7NYCH5HY.js → chunk-HXXP2NTE.js} +6 -6
  117. package/dist/{chunk-7S7OFVIU.js → chunk-I2A3Z5AK.js} +4 -4
  118. package/dist/{chunk-WQSDKX7M.js → chunk-ICHDSWEY.js} +7 -7
  119. package/dist/chunk-IFFRGC3N.js +31 -0
  120. package/dist/{chunk-HMZQAIR5.js → chunk-IFHDV6KQ.js} +24 -17
  121. package/dist/chunk-J2O4LFVI.js +80 -0
  122. package/dist/chunk-J5AAZ6OJ.js +161 -0
  123. package/dist/{chunk-CVRWAG76.js → chunk-JAABT3DA.js} +3 -3
  124. package/dist/chunk-JITJP64K.js +34 -0
  125. package/dist/chunk-JKIGL3XQ.js +162 -0
  126. package/dist/chunk-JRVNXLZP.js +615 -0
  127. package/dist/chunk-JRXHON4E.js +41 -0
  128. package/dist/{chunk-XFCK5B27.js → chunk-JS6WMC3J.js} +8 -8
  129. package/dist/chunk-JU4QNJSR.js +62 -0
  130. package/dist/{chunk-IPSFMTK2.js → chunk-JYMIB5XY.js} +152 -42
  131. package/dist/{chunk-L336AJCZ.js → chunk-JYTIHTIK.js} +8 -6
  132. package/dist/{chunk-VEJYZEPC.js → chunk-K332XW7K.js} +135 -16
  133. package/dist/{chunk-KCF7TFOE.js → chunk-K6JB6XTX.js} +11 -11
  134. package/dist/{chunk-LFIIX4OV.js → chunk-KDAHXQIE.js} +46 -34
  135. package/dist/chunk-KYZMRSPS.js +93 -0
  136. package/dist/chunk-L4CESDPB.js +22 -0
  137. package/dist/{chunk-3LR4522O.js → chunk-LEBR5NHW.js} +14 -14
  138. package/dist/{chunk-US3QZU23.js → chunk-LIJJCBQI.js} +67 -7
  139. package/dist/{chunk-XLHL6WTI.js → chunk-LIRVU3HW.js} +16 -16
  140. package/dist/{chunk-BAT4CBB7.js → chunk-LN77DXBM.js} +19 -10
  141. package/dist/{chunk-E5FM44EJ.js → chunk-LNWEWYCM.js} +2474 -315
  142. package/dist/{chunk-TX4OGZKU.js → chunk-LO3BLMVG.js} +3 -3
  143. package/dist/{chunk-RUOGHYSK.js → chunk-LPV6T362.js} +5 -5
  144. package/dist/{chunk-2T5CQH4R.js → chunk-LQH4P45K.js} +1 -1
  145. package/dist/chunk-LU4MQVAL.js +41 -0
  146. package/dist/{chunk-HW4RRIJA.js → chunk-LWDNKE4X.js} +12 -10
  147. package/dist/chunk-M4H2UG4R.js +218 -0
  148. package/dist/{chunk-CANMOOE6.js → chunk-M6D2U3YM.js} +3 -3
  149. package/dist/{chunk-AB5E5HCN.js → chunk-MD7KUEJ3.js} +14 -272
  150. package/dist/{chunk-ENTAAEDK.js → chunk-MMZUN7ZO.js} +20 -20
  151. package/dist/{chunk-L4MHJG3I.js → chunk-MZGRDONP.js} +46 -36
  152. package/dist/{chunk-IYI2S6BB.js → chunk-N3RUGTGV.js} +18 -18
  153. package/dist/{chunk-WZRCGGXG.js → chunk-NCB6656Z.js} +7 -7
  154. package/dist/{chunk-SBE773JU.js → chunk-NRQ65LTQ.js} +5 -5
  155. package/dist/{chunk-NRPMPZWJ.js → chunk-NTAVOWYD.js} +117 -18
  156. package/dist/{chunk-UJBZS5I7.js → chunk-NYOABJNK.js} +36 -27
  157. package/dist/{chunk-LXAPJ3BL.js → chunk-O4IKAIZ2.js} +24 -20
  158. package/dist/{chunk-MMB2OHUY.js → chunk-ODMBPDDV.js} +48 -13
  159. package/dist/chunk-OKUB6RJA.js +533 -0
  160. package/dist/{chunk-MKFYQQ5Q.js → chunk-OMPENNWY.js} +4 -1
  161. package/dist/chunk-OPQZISG3.js +25 -0
  162. package/dist/{chunk-ROJMXG4E.js → chunk-OV57AHCG.js} +24 -24
  163. package/dist/{chunk-7KGXDIWV.js → chunk-OZJ3JLYI.js} +9 -8
  164. package/dist/{chunk-G5BYKJIM.js → chunk-P2VBXX7N.js} +11 -10
  165. package/dist/{chunk-YK6CSODO.js → chunk-PAINMSID.js} +4353 -1106
  166. package/dist/chunk-PKJAV25S.js +43 -0
  167. package/dist/{chunk-R5MNPIMD.js → chunk-PNQLCRSS.js} +4 -4
  168. package/dist/{chunk-3SMMFQED.js → chunk-PQH56YF6.js} +37 -5
  169. package/dist/chunk-PRTBPXYA.js +50 -0
  170. package/dist/{chunk-FF4ZMLSL.js → chunk-PRW3HXM3.js} +2 -2
  171. package/dist/chunk-PRZ7KMWL.js +42 -0
  172. package/dist/{chunk-IFV6MKYV.js → chunk-PTQ3ZALZ.js} +42 -4
  173. package/dist/{chunk-ELQSLAP6.js → chunk-PUEWDYGP.js} +2 -2
  174. package/dist/{chunk-F2ZCZYIK.js → chunk-Q26LDIUV.js} +12 -11
  175. package/dist/chunk-Q46QDDMF.js +277 -0
  176. package/dist/chunk-QBNWF5ZU.js +19 -0
  177. package/dist/{chunk-ANETFNTV.js → chunk-QE527XRY.js} +24 -21
  178. package/dist/{chunk-QNMLLYTN.js → chunk-QHJJMZLX.js} +397 -32
  179. package/dist/chunk-QJCJOMW3.js +425 -0
  180. package/dist/{chunk-3HOONZUE.js → chunk-QKMRFNMA.js} +15 -15
  181. package/dist/{chunk-7S6VJ643.js → chunk-QOOEYDNJ.js} +101 -13
  182. package/dist/{chunk-4YNKN4DF.js → chunk-QSIDVFB7.js} +20 -18
  183. package/dist/{chunk-2IT7SIJY.js → chunk-RA33EYS4.js} +19 -18
  184. package/dist/{chunk-P7NV3FEJ.js → chunk-RALY3E5U.js} +4 -4
  185. package/dist/{chunk-6NESNLVU.js → chunk-S2RY3BOD.js} +35 -21
  186. package/dist/chunk-SB5GRUFM.js +54 -0
  187. package/dist/{chunk-EUQHM2CH.js → chunk-SH27FYPF.js} +18 -18
  188. package/dist/chunk-T74WQQGS.js +40 -0
  189. package/dist/{chunk-LGDW4G73.js → chunk-TGVVUKTG.js} +2 -2
  190. package/dist/chunk-THN26IEF.js +48 -0
  191. package/dist/{chunk-ZV2VCBMQ.js → chunk-TJH2EUAZ.js} +18 -12
  192. package/dist/{chunk-NGT5LLSE.js → chunk-TQ4TG57V.js} +6 -6
  193. package/dist/{chunk-WEDXFJPG.js → chunk-TQTRWENN.js} +12 -12
  194. package/dist/{chunk-ZRWS54RI.js → chunk-TSM6T6GQ.js} +23 -23
  195. package/dist/{chunk-KET7KOVE.js → chunk-TW3KOSQK.js} +15 -7
  196. package/dist/{chunk-RBXDHCN7.js → chunk-TWQRPM76.js} +2 -2
  197. package/dist/{chunk-IO6DQCZX.js → chunk-TYD6I4CZ.js} +4 -4
  198. package/dist/{chunk-5NLJH6R4.js → chunk-U3NBK4EU.js} +56 -17
  199. package/dist/{chunk-U542BJME.js → chunk-UDXWIPCB.js} +7 -7
  200. package/dist/{chunk-OSB6AKF2.js → chunk-UEVZZZU2.js} +4 -4
  201. package/dist/{chunk-5ZV7BK22.js → chunk-UF4UHCIG.js} +2 -2
  202. package/dist/{chunk-PHJOOL6U.js → chunk-UFE36WJH.js} +4 -4
  203. package/dist/{chunk-IHRP4OYV.js → chunk-URIKUID7.js} +12 -12
  204. package/dist/chunk-UYLBRRFK.js +1106 -0
  205. package/dist/chunk-UZACEG2C.js +515 -0
  206. package/dist/{chunk-LR4XBH4L.js → chunk-VAMHOHUU.js} +12 -12
  207. package/dist/{chunk-S5PSGAQ2.js → chunk-VUVGX5L2.js} +1 -1
  208. package/dist/{chunk-2TG2QGKW.js → chunk-VYOCPTUB.js} +18 -16
  209. package/dist/{chunk-VTEDQ6GY.js → chunk-WAZEXEJH.js} +175 -3
  210. package/dist/{chunk-UTSFKZ72.js → chunk-WCEF7H6L.js} +3 -3
  211. package/dist/{chunk-DXPUYG5L.js → chunk-WEOMJHPV.js} +12 -12
  212. package/dist/{chunk-NFKBU2UH.js → chunk-WFU77T3A.js} +5 -5
  213. package/dist/chunk-WIWTJMMR.js +292 -0
  214. package/dist/{chunk-MRFSUAJH.js → chunk-WNTIOBOG.js} +18 -18
  215. package/dist/{chunk-UROTYIGJ.js → chunk-X2CUXTWU.js} +6 -6
  216. package/dist/chunk-X7EMBM5X.js +34 -0
  217. package/dist/{chunk-OO5TKEAG.js → chunk-XEQCQO66.js} +8 -8
  218. package/dist/{chunk-NBQO75XT.js → chunk-XG4WJHLQ.js} +17 -1
  219. package/dist/{chunk-ZQC7MNQB.js → chunk-XOL3GFW2.js} +101 -30
  220. package/dist/{chunk-GXDATVSY.js → chunk-XQ3YZ4QW.js} +22 -22
  221. package/dist/{chunk-GTW54D3D.js → chunk-Y6K3CJBU.js} +726 -88
  222. package/dist/{chunk-CQCAJI6G.js → chunk-YAH5IQAL.js} +5 -5
  223. package/dist/{chunk-U6TD7UOH.js → chunk-YBOVNMHC.js} +51 -14
  224. package/dist/{chunk-OJICVOZH.js → chunk-YF5DZCPN.js} +79 -39
  225. package/dist/chunk-YIGBJNH4.js +37 -0
  226. package/dist/{chunk-7C7OZARH.js → chunk-YJ3TBOTK.js} +25 -25
  227. package/dist/{chunk-HXFSM4LG.js → chunk-YKTE2RU3.js} +2 -2
  228. package/dist/{chunk-7IM4BVVH.js → chunk-YO2PKTXT.js} +268 -36
  229. package/dist/{chunk-Z3UU7XV6.js → chunk-YTTNTQOX.js} +15 -15
  230. package/dist/{chunk-2ZICHO3V.js → chunk-YWAKDNMH.js} +183 -33
  231. package/dist/{chunk-OXOSJXOI.js → chunk-YZDZOEV4.js} +4 -4
  232. package/dist/{chunk-MRCETHW5.js → chunk-Z3QFH7YG.js} +4 -4
  233. package/dist/{chunk-5KZTRD4V.js → chunk-Z6VLC5X4.js} +17 -17
  234. package/dist/{chunk-EDURU5DF.js → chunk-ZFQMMU5Y.js} +2 -2
  235. package/dist/{chunk-3GLDB4IT.js → chunk-ZKYRDV7A.js} +12 -12
  236. package/dist/{chunk-GBGJ6WSO.js → chunk-ZLS6PU2O.js} +3 -3
  237. package/dist/{chunk-JZOOX3PQ.js → chunk-ZOSD4FXV.js} +3 -3
  238. package/dist/chunk-ZPDDEVQX.js +47 -0
  239. package/dist/{chunk-2TTSX7NB.js → chunk-ZQLRCA2V.js} +7 -7
  240. package/dist/{chunk-ESP3RUUR.js → chunk-ZX7235KR.js} +128 -54
  241. package/dist/{chunk-MH4XG5XS.js → chunk-ZZFHLRQW.js} +18 -16
  242. package/dist/files.json +559 -439
  243. package/dist/packages/sdk/npm/index.js +4679 -2672
  244. package/dist/packages/ui/dist/assets/{elk-api-BuFBvNyV.js → elk-api-CowTnhEJ.js} +2 -2
  245. package/dist/packages/ui/dist/assets/index-Dw20IRhQ.css +1 -0
  246. package/dist/packages/ui/dist/assets/index-z2wv0d5d.js +47 -0
  247. package/dist/packages/ui/dist/index.html +2 -2
  248. package/package.json +3 -3
  249. package/dist/chunk-25TJC2CL.js +0 -48
  250. package/dist/chunk-3Q5RHGCA.js +0 -47
  251. package/dist/chunk-4W7FOGAB.js +0 -41
  252. package/dist/chunk-6AF3CVJT.js +0 -48
  253. package/dist/chunk-A3KEXFQS.js +0 -34
  254. package/dist/chunk-BAUINGGJ.js +0 -41
  255. package/dist/chunk-BOFUCRJX.js +0 -47
  256. package/dist/chunk-GGKGILIP.js +0 -54
  257. package/dist/chunk-IKN6C67W.js +0 -53
  258. package/dist/chunk-K7MYVIFK.js +0 -54
  259. package/dist/chunk-KHA5LVPE.js +0 -34
  260. package/dist/chunk-LSXGM6MB.js +0 -37
  261. package/dist/chunk-M54TDRM3.js +0 -29
  262. package/dist/chunk-M5GF4NAB.js +0 -45
  263. package/dist/chunk-UTZGBCXE.js +0 -38
  264. package/dist/chunk-UVTSMBM4.js +0 -43
  265. package/dist/chunk-XXE3S3OG.js +0 -44
  266. package/dist/chunk-YJRQCUVJ.js +0 -43
  267. package/dist/chunk-ZFTK4BDN.js +0 -41
  268. package/dist/chunk-ZMARAW37.js +0 -38
  269. package/dist/packages/ui/dist/assets/index-C5QnK82A.css +0 -1
  270. package/dist/packages/ui/dist/assets/index-CQ0a1cBg.js +0 -29
@@ -0,0 +1,43 @@
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
+ effectiveRules,
8
+ exampleOf,
9
+ kindGlob,
10
+ orgRulesLacking,
11
+ readingRulesText,
12
+ ruleFromPairing,
13
+ ruleId,
14
+ ruleIds,
15
+ ruleMatches,
16
+ rulesDirOf,
17
+ rulesLackingAll
18
+ } from "./chunk-GIFMBCTW.js";
19
+ import "./chunk-4SLBCEPD.js";
20
+ import "./chunk-64AADMTW.js";
21
+ import "./chunk-JYMIB5XY.js";
22
+ import "./chunk-CPK7QSBG.js";
23
+ import "./chunk-YO2PKTXT.js";
24
+ import "./chunk-TWQRPM76.js";
25
+ import "./chunk-XOL3GFW2.js";
26
+ import "./chunk-QHJJMZLX.js";
27
+ import "./chunk-7AB6OWTV.js";
28
+ import "./chunk-PAINMSID.js";
29
+ import "./chunk-ODMBPDDV.js";
30
+ import "./chunk-TV45EUGM.js";
31
+ export {
32
+ effectiveRules,
33
+ exampleOf,
34
+ kindGlob,
35
+ orgRulesLacking,
36
+ readingRulesText,
37
+ ruleFromPairing,
38
+ ruleId,
39
+ ruleIds,
40
+ ruleMatches,
41
+ rulesDirOf,
42
+ rulesLackingAll
43
+ };
@@ -5,20 +5,20 @@ var __atticusUrl = (p) => new URL("./" + p, import.meta.url).href;
5
5
  var __atticusPath = (p) => __atticusFileURLToPath(__atticusUrl(p));
6
6
  import {
7
7
  excludesOf
8
- } from "./chunk-AB5E5HCN.js";
8
+ } from "./chunk-Q46QDDMF.js";
9
9
  import {
10
10
  dirSource,
11
11
  houseImportsUntaught,
12
12
  readRulesOf
13
- } from "./chunk-IPSFMTK2.js";
13
+ } from "./chunk-JYMIB5XY.js";
14
14
  import {
15
15
  globToRegExp
16
- } from "./chunk-TLDL2ZZI.js";
16
+ } from "./chunk-7AB6OWTV.js";
17
17
  import {
18
18
  conventionsOf,
19
19
  loadOrgPack,
20
20
  orgPackDirOf
21
- } from "./chunk-YK6CSODO.js";
21
+ } from "./chunk-PAINMSID.js";
22
22
 
23
23
  // packages/cli/dist/house-imports.js
24
24
  async function houseUntaughtOf(root, repo, o) {
@@ -5,7 +5,7 @@ var __atticusUrl = (p) => new URL("./" + p, import.meta.url).href;
5
5
  var __atticusPath = (p) => __atticusFileURLToPath(__atticusUrl(p));
6
6
  import {
7
7
  require_dist
8
- } from "./chunk-YK6CSODO.js";
8
+ } from "./chunk-PAINMSID.js";
9
9
  import {
10
10
  __toESM
11
11
  } from "./chunk-TV45EUGM.js";
@@ -0,0 +1,191 @@
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
+ makeRunId
8
+ } from "./chunk-QHJJMZLX.js";
9
+ import {
10
+ runsDirOf,
11
+ runsRelOf
12
+ } from "./chunk-PAINMSID.js";
13
+ import {
14
+ writeFileAtomic
15
+ } from "./chunk-ODMBPDDV.js";
16
+
17
+ // packages/cli/dist/decide-handoff.js
18
+ import { createHash } from "node:crypto";
19
+ import { mkdir, readdir, readFile, stat } from "node:fs/promises";
20
+ import { join } from "node:path";
21
+ var DECIDE_AGENTS = {
22
+ questions: "decide-propose",
23
+ links: "decide-match"
24
+ };
25
+ var PROPOSE_CHANGE = "questions-propose";
26
+ var matchChangeOf = (from) => `match-${from}`;
27
+ var sha256 = (text) => createHash("sha256").update(text).digest("hex");
28
+ var runDir = (root, change, runId) => join(runsDirOf(root), change, runId);
29
+ async function startDecideRun(root, o) {
30
+ const now = o.now ?? /* @__PURE__ */ new Date();
31
+ let runId = makeRunId(now);
32
+ while (await stat(runDir(root, o.change, runId)).catch(() => void 0))
33
+ runId = makeRunId(now);
34
+ const dir = runDir(root, o.change, runId);
35
+ await mkdir(dir, { recursive: true });
36
+ await writeFileAtomic(join(dir, "prompt.md"), o.prompt.endsWith("\n") ? o.prompt : `${o.prompt}
37
+ `);
38
+ const run = {
39
+ runId,
40
+ request: { change: o.change, agent: DECIDE_AGENTS[o.kind], outputPath: o.outputPath },
41
+ runtime: "hand-off",
42
+ state: "waiting",
43
+ attempt: 1,
44
+ startedAt: now.toISOString(),
45
+ errors: [],
46
+ decide: o.decide
47
+ };
48
+ await saveRun(root, run);
49
+ return { ...run, promptRel: `${runsRelOf(root)}/${o.change}/${runId}/prompt.md` };
50
+ }
51
+ async function saveRun(root, run) {
52
+ await writeFileAtomic(join(runDir(root, run.request.change, run.runId), "run.json"), JSON.stringify(run, null, 2) + "\n");
53
+ }
54
+ var isDecide = (x) => {
55
+ const r = x;
56
+ return r?.runtime === "hand-off" && !!r.decide && (r.request?.agent === DECIDE_AGENTS.questions || r.request?.agent === DECIDE_AGENTS.links);
57
+ };
58
+ async function readRun(file) {
59
+ const text = await readFile(file, "utf8").catch(() => void 0);
60
+ if (!text)
61
+ return void 0;
62
+ try {
63
+ const r = JSON.parse(text);
64
+ return isDecide(r) ? r : void 0;
65
+ } catch {
66
+ return void 0;
67
+ }
68
+ }
69
+ async function findDecideRun(root, runId) {
70
+ if (!/^run-[0-9a-z-]+$/.test(runId))
71
+ return void 0;
72
+ for (const change of await readdir(runsDirOf(root)).catch(() => [])) {
73
+ const r = await readRun(join(runsDirOf(root), change, runId, "run.json"));
74
+ if (r)
75
+ return r;
76
+ }
77
+ return void 0;
78
+ }
79
+ var open = (r) => r.state === "waiting" || r.state === "prepared" || r.state === "failed";
80
+ async function openDecideRun(root, change, pick = () => true) {
81
+ const ids = (await readdir(join(runsDirOf(root), change)).catch(() => [])).filter((n) => n.startsWith("run-")).sort().reverse();
82
+ for (const id of ids) {
83
+ const r = await readRun(join(runsDirOf(root), change, id, "run.json"));
84
+ if (r && open(r) && pick(r))
85
+ return r;
86
+ }
87
+ return void 0;
88
+ }
89
+ var openMatchRun = (root, from, to) => openDecideRun(root, matchChangeOf(from), (r) => r.decide.kind === "links" && r.decide.from === from && (r.decide.to.repo ?? "") === (to.repo ?? "") && (r.decide.to.system ?? "") === (to.system ?? ""));
90
+ async function finishDecideRun(root, run, o) {
91
+ const done = {
92
+ ...run,
93
+ state: o.state,
94
+ finishedAt: (o.now ?? /* @__PURE__ */ new Date()).toISOString(),
95
+ errors: o.errors ?? []
96
+ };
97
+ await saveRun(root, done);
98
+ return done;
99
+ }
100
+ async function decideRunDone(root, runId, io, o = {}) {
101
+ const run = await findDecideRun(root, runId);
102
+ if (!run) {
103
+ io.err(`There is no hand-off run ${runId} to decide from.`);
104
+ return 2;
105
+ }
106
+ if (!open(run)) {
107
+ io.err(`Run ${runId} is already ${run.state}.`);
108
+ return 2;
109
+ }
110
+ if (run.decide.kind === "questions")
111
+ return proposeDone(root, run, io, o);
112
+ const { candidatesOf } = await import("./chunk-PRZ7KMWL.js");
113
+ const { view, facts } = await candidatesOf(root, run.decide.from, run.decide.to);
114
+ const { matchDone, matchLines } = await import("./chunk-JU4QNJSR.js");
115
+ const m = await matchDone(root, { view, facts, run, ...o.now ? { now: o.now } : {} });
116
+ if (m.state !== "done") {
117
+ io.err(m.error ?? `The answer isn't written yet: ${m.answer ?? "the answer file"}.`);
118
+ return 1;
119
+ }
120
+ for (const l of matchLines(m, run.decide.from, view.toName, run.decide.to))
121
+ io.out(l);
122
+ return 0;
123
+ }
124
+ async function proposedSince(root, before) {
125
+ const { proposalsSnapshot } = await import("./chunk-LU4MQVAL.js");
126
+ const after = await proposalsSnapshot(root);
127
+ return new Set([...after].filter(([id, text]) => before[id] !== sha256(text)).map(([id]) => id));
128
+ }
129
+ async function proposeDone(root, run, io, o) {
130
+ if (run.decide.kind !== "questions")
131
+ return 2;
132
+ const { inAcpSession } = await import("./chunk-LU4MQVAL.js");
133
+ if (inAcpSession()) {
134
+ io.err(`Run ${run.runId} decides as the AI only on a person's Done: press Done in the app, or run atticus handoff done ${run.runId} outside the Copilot session.`);
135
+ return 1;
136
+ }
137
+ const ids = await proposedSince(root, run.decide.before);
138
+ if (!ids.size) {
139
+ const why = "No proposal was written or changed since this hand-off: run /atticus-propose in a new Copilot Chat (agent mode) or Claude Code session, then Done again.";
140
+ await finishDecideRun(root, run, {
141
+ state: "failed",
142
+ errors: [why],
143
+ ...o.now ? { now: o.now } : {}
144
+ });
145
+ io.err(why);
146
+ return 1;
147
+ }
148
+ const { decideAnswers } = await import("./chunk-LU4MQVAL.js");
149
+ const d = await decideAnswers(root, {
150
+ run: run.runId,
151
+ runtime: "hand-off",
152
+ ids,
153
+ ...o.now ? { now: o.now } : {}
154
+ });
155
+ await finishDecideRun(root, run, { state: "validated", ...o.now ? { now: o.now } : {} });
156
+ io.out(`Read ${ids.size} proposal${ids.size === 1 ? "" : "s"} from hand-off run ${run.runId}.`);
157
+ for (const l of decidedAnswerLines(d, run.runId))
158
+ io.out(l);
159
+ return 0;
160
+ }
161
+ function decidedAnswerLines(d, runId) {
162
+ const out = [];
163
+ if (!d)
164
+ out.push("runtime.yaml's decide.questions is propose: each proposal waits on its question for a person to accept or answer otherwise.");
165
+ if (d?.paused)
166
+ out.push(`Deciding is paused: ${d.paused}`);
167
+ if (d?.applied.length) {
168
+ out.push(`Detected by AI: ${d.applied.length} answer${d.applied.length === 1 ? "" : "s"} applied in batch ${d.batch} (by AI, run ${runId}):`);
169
+ for (const a of d.applied)
170
+ out.push(` ${a.id}: option ${a.option} (${a.bar})`);
171
+ out.push(`Correct one with atticus questions correct <id> --option <n> | --none; undo them all with atticus questions undo ${d.batch}.`);
172
+ }
173
+ for (const k of d?.kept ?? [])
174
+ out.push(` kept as a proposal: ${k.id} (${k.why})`);
175
+ return out;
176
+ }
177
+
178
+ export {
179
+ DECIDE_AGENTS,
180
+ PROPOSE_CHANGE,
181
+ matchChangeOf,
182
+ sha256,
183
+ startDecideRun,
184
+ findDecideRun,
185
+ openDecideRun,
186
+ openMatchRun,
187
+ finishDecideRun,
188
+ decideRunDone,
189
+ proposedSince,
190
+ decidedAnswerLines
191
+ };
@@ -0,0 +1,49 @@
1
+ import { createRequire as __atticusCreateRequire } from "node:module";
2
+ import { fileURLToPath as __atticusFileURLToPath } from "node:url";
3
+ var require = __atticusCreateRequire(import.meta.url);
4
+ var __atticusUrl = (p) => new URL("./" + p, import.meta.url).href;
5
+ var __atticusPath = (p) => __atticusFileURLToPath(__atticusUrl(p));
6
+ import {
7
+ AUDIT_WORDS,
8
+ answerAudit,
9
+ auditCommand,
10
+ auditLines,
11
+ defaultAuditSeed,
12
+ precisionOf,
13
+ prepareAudit,
14
+ tallyWords,
15
+ writeAudit
16
+ } from "./chunk-7FUIVIBG.js";
17
+ import "./chunk-LN77DXBM.js";
18
+ import "./chunk-L4CESDPB.js";
19
+ import "./chunk-U3NBK4EU.js";
20
+ import "./chunk-455SYIIE.js";
21
+ import "./chunk-GIFMBCTW.js";
22
+ import "./chunk-MD7KUEJ3.js";
23
+ import "./chunk-Q46QDDMF.js";
24
+ import "./chunk-TGVVUKTG.js";
25
+ import "./chunk-3AQ2R5NL.js";
26
+ import "./chunk-4SLBCEPD.js";
27
+ import "./chunk-64AADMTW.js";
28
+ import "./chunk-JYMIB5XY.js";
29
+ import "./chunk-CPK7QSBG.js";
30
+ import "./chunk-YO2PKTXT.js";
31
+ import "./chunk-TWQRPM76.js";
32
+ import "./chunk-API5TOUB.js";
33
+ import "./chunk-XOL3GFW2.js";
34
+ import "./chunk-QHJJMZLX.js";
35
+ import "./chunk-7AB6OWTV.js";
36
+ import "./chunk-PAINMSID.js";
37
+ import "./chunk-ODMBPDDV.js";
38
+ import "./chunk-TV45EUGM.js";
39
+ export {
40
+ AUDIT_WORDS,
41
+ answerAudit,
42
+ auditCommand,
43
+ auditLines,
44
+ defaultAuditSeed,
45
+ precisionOf,
46
+ prepareAudit,
47
+ tallyWords,
48
+ writeAudit
49
+ };
@@ -10,7 +10,7 @@ function draftCheckTool(root, request) {
10
10
  if (!request.selfCheck || !/^(feature|architecture|stories|small)-answer\.yaml$/.test(request.outputPath))
11
11
  return void 0;
12
12
  let box;
13
- const planner = () => box ??= import("./chunk-NRPMPZWJ.js").then((p) => p.draftCheckBox(root, request));
13
+ const planner = () => box ??= import("./chunk-NTAVOWYD.js").then((p) => p.draftCheckBox(root, request));
14
14
  return {
15
15
  definitions: [
16
16
  {
@@ -8,11 +8,11 @@ import {
8
8
  changesDirOf,
9
9
  orgPackDirOf,
10
10
  require_dist
11
- } from "./chunk-YK6CSODO.js";
11
+ } from "./chunk-PAINMSID.js";
12
12
  import {
13
13
  ensureLocalIgnore,
14
14
  redactText
15
- } from "./chunk-MMB2OHUY.js";
15
+ } from "./chunk-ODMBPDDV.js";
16
16
  import {
17
17
  __toESM
18
18
  } from "./chunk-TV45EUGM.js";
@@ -6,18 +6,18 @@ var __atticusPath = (p) => __atticusFileURLToPath(__atticusUrl(p));
6
6
  import {
7
7
  aliasCommand,
8
8
  reconcileCommand
9
- } from "./chunk-OXOSJXOI.js";
10
- import "./chunk-EZBAS5BL.js";
11
- import "./chunk-KCQS52TH.js";
12
- import "./chunk-IPSFMTK2.js";
13
- import "./chunk-TNCROWPQ.js";
14
- import "./chunk-7IM4BVVH.js";
15
- import "./chunk-RBXDHCN7.js";
16
- import "./chunk-ZQC7MNQB.js";
17
- import "./chunk-TLDL2ZZI.js";
18
- import "./chunk-QNMLLYTN.js";
19
- import "./chunk-YK6CSODO.js";
20
- import "./chunk-MMB2OHUY.js";
9
+ } from "./chunk-YZDZOEV4.js";
10
+ import "./chunk-4SLBCEPD.js";
11
+ import "./chunk-64AADMTW.js";
12
+ import "./chunk-JYMIB5XY.js";
13
+ import "./chunk-CPK7QSBG.js";
14
+ import "./chunk-YO2PKTXT.js";
15
+ import "./chunk-TWQRPM76.js";
16
+ import "./chunk-XOL3GFW2.js";
17
+ import "./chunk-QHJJMZLX.js";
18
+ import "./chunk-7AB6OWTV.js";
19
+ import "./chunk-PAINMSID.js";
20
+ import "./chunk-ODMBPDDV.js";
21
21
  import "./chunk-TV45EUGM.js";
22
22
  export {
23
23
  aliasCommand,
@@ -9,12 +9,12 @@ import {
9
9
  planBatches,
10
10
  reachableModels,
11
11
  readingRank
12
- } from "./chunk-IPSFMTK2.js";
12
+ } from "./chunk-JYMIB5XY.js";
13
13
  import {
14
14
  estimateTokens,
15
15
  neutralise,
16
16
  wrapData
17
- } from "./chunk-QNMLLYTN.js";
17
+ } from "./chunk-QHJJMZLX.js";
18
18
 
19
19
  // packages/cli/dist/map-reach.js
20
20
  var CLIENT_ONLY_WHY = "reached only from an outbound client; --models reachable reads them";
@@ -7,19 +7,19 @@ import {
7
7
  ATTICUS_FOLDER_IGNORE,
8
8
  CHECKLISTS_README,
9
9
  STARTER_CHECKLISTS_README
10
- } from "./chunk-RTUUX7PX.js";
10
+ } from "./chunk-2HTEMYTB.js";
11
11
  import {
12
12
  openspecRootOf,
13
13
  rewriteStories
14
- } from "./chunk-XO5RQKNM.js";
14
+ } from "./chunk-BEPCKDCP.js";
15
15
  import {
16
16
  STARTER_REVIEW_PATH,
17
17
  readPackFiles,
18
18
  starterReviewText
19
- } from "./chunk-VEJYZEPC.js";
19
+ } from "./chunk-K332XW7K.js";
20
20
  import {
21
21
  metarepoOrigin
22
- } from "./chunk-IOW6BF3U.js";
22
+ } from "./chunk-HSZMPH5T.js";
23
23
  import {
24
24
  ORG_FLOW_VERSION,
25
25
  STORE_MARKER,
@@ -28,16 +28,15 @@ import {
28
28
  storeIdOf,
29
29
  writeOrgFlowSchema,
30
30
  writeStoreMarker
31
- } from "./chunk-43E6XX67.js";
31
+ } from "./chunk-D2WSW4GU.js";
32
32
  import {
33
- VERSION,
34
- versionAtLeast
35
- } from "./chunk-S5PSGAQ2.js";
33
+ VERSION
34
+ } from "./chunk-VUVGX5L2.js";
36
35
  import {
37
36
  IGNORED,
38
37
  ensureGitignore,
39
38
  gitUser
40
- } from "./chunk-ZQC7MNQB.js";
39
+ } from "./chunk-XOL3GFW2.js";
41
40
  import {
42
41
  MetarepoStamp,
43
42
  WORKSPACE_SCHEMA_VERSION,
@@ -49,23 +48,25 @@ import {
49
48
  loadOrgPack,
50
49
  migrateCatalog,
51
50
  migrateChangeTypesText,
51
+ migrateCorrections,
52
52
  migrateGatesText,
53
53
  migrateManifests,
54
54
  migrateQuestions,
55
55
  migrateRolesText,
56
56
  migrateRuntimeText,
57
57
  migrateRuntimeV3Text,
58
+ migrateRuntimeV4Text,
58
59
  migrateSourcesText,
59
60
  orgPackDirOf,
60
61
  require_dist,
61
62
  specsDirOf,
62
63
  specsRelOf
63
- } from "./chunk-YK6CSODO.js";
64
+ } from "./chunk-PAINMSID.js";
64
65
  import {
65
66
  LOCAL_ONLY,
66
67
  ensureLocalIgnore,
67
68
  writeFileAtomic
68
- } from "./chunk-MMB2OHUY.js";
69
+ } from "./chunk-ODMBPDDV.js";
69
70
  import {
70
71
  __toESM
71
72
  } from "./chunk-TV45EUGM.js";
@@ -73,7 +74,7 @@ import {
73
74
  // packages/cli/dist/upgrade.js
74
75
  var import_yaml = __toESM(require_dist(), 1);
75
76
  import { cp, mkdir, readdir, readFile, stat } from "node:fs/promises";
76
- import { join } from "node:path";
77
+ import { join, relative, sep } from "node:path";
77
78
  var STAMP_FILE = join(".atticus", "metarepo.yaml");
78
79
  var rel = (prefix, files) => files.map((f) => `${prefix}/${f}`);
79
80
  var MIGRATIONS = [
@@ -162,7 +163,7 @@ var MIGRATIONS = [
162
163
  {
163
164
  // The id is kept as it was first shipped (stamps record it); the step writes the current version.
164
165
  id: "questions-v3",
165
- summary: "Questions at schema version 4: a question can name the earlier one it may be the same as (ADR 0117), an answer can carry its rule and the proposal it accepted (ADR 0153), and a question the code later disagreed with keeps why it reopened and the answer it had (ADR 0162)",
166
+ summary: "Questions at schema version 5: a question can name the earlier one it may be the same as (ADR 0117), an answer can carry its rule and the proposal it accepted (ADR 0153), a question the code later disagreed with keeps why it reopened and the answer it had (ADR 0162), and a change's question carries the role that owns it, derived from the stage that asked when the file doesn't say (ADR 0181)",
166
167
  pending: (root) => migrateQuestions(root, { dryRun: true }),
167
168
  apply: (root) => migrateQuestions(root)
168
169
  },
@@ -296,14 +297,20 @@ var MIGRATIONS = [
296
297
  // call: short story files, task prompts in tasks/, tasks numbered per story, OpenSpec specs.
297
298
  id: "stories-b-short",
298
299
  summary: "Each change's stories in the short form, with OpenSpec spec deltas and a proposal, from the kept stories answer (no model call; ADR 0124 addendum B-short)",
300
+ // The whole change folder: writing the stories again also writes stories.md, tasks.md,
301
+ // requests.md, the proposal, specs/, the task prompts and the needs files, all backed up.
299
302
  async pending(root) {
300
- return (await longStories(root)).map((c) => `${changesRelOf(root)}/${c}/stories`);
303
+ return (await longStories(root)).map((c) => `${changesRelOf(root)}/${c}`);
301
304
  },
302
305
  async apply(root) {
303
306
  const out = [];
304
- for (const c of await longStories(root))
305
- for (const f of await rewriteStories(root, c).catch(() => []))
307
+ for (const c of await longStories(root)) {
308
+ const files = await rewriteStories(root, c).catch((e) => {
309
+ throw new Error(`The stories of ${c} couldn't be written again (${e instanceof Error ? e.message : String(e)}).`, { cause: e });
310
+ });
311
+ for (const f of files)
306
312
  out.push(`${changesRelOf(root)}/${c}/${f}`);
313
+ }
307
314
  return out;
308
315
  }
309
316
  },
@@ -318,6 +325,39 @@ var MIGRATIONS = [
318
325
  summary: "repos.manifest.yaml at version 3: a repo can give the base path it answers under on a shared host (ADR 0134)",
319
326
  pending: (root) => migrateManifests(root, { dryRun: true, to: 3 }),
320
327
  apply: (root) => migrateManifests(root, { to: 3 })
328
+ },
329
+ // ADR 0181: the version-4 files: only the number changes; version 5 adds the evidence source
330
+ // `ai` with its run (a link the AI decided, flagged joined-by-ai).
331
+ catalogStep("catalog-schema-v5", "Catalog records at schema version 5: a link can be the AI's, with the run that decided it (ADR 0181)", [4]),
332
+ {
333
+ // ADR 0181: a runtime.yaml that sets `decide` needs version 4; any other file means the same
334
+ // at 1 to 3 and is left as it is.
335
+ id: "runtime-v4",
336
+ summary: "runtime.yaml at version 4 where it sets decide: whether the AI decides pairings and option questions itself (ADR 0181); the number only",
337
+ async pending(root) {
338
+ const rel2 = packRel(root, "runtime.yaml");
339
+ const text = await readFile(join(root, rel2), "utf8").catch(() => void 0);
340
+ return text !== void 0 && migrateRuntimeV4Text(text).changed ? [rel2] : [];
341
+ },
342
+ async apply(root) {
343
+ const rel2 = packRel(root, "runtime.yaml");
344
+ const text = await readFile(join(root, rel2), "utf8").catch(() => void 0);
345
+ if (text === void 0)
346
+ return [];
347
+ const r = migrateRuntimeV4Text(text);
348
+ if (!r.changed)
349
+ return [];
350
+ await writeFileAtomic(join(root, rel2), r.text);
351
+ return [rel2];
352
+ }
353
+ },
354
+ {
355
+ // ADR 0181: a corrections line that uses version 2's fields (ai, batch, rule, match, unlink)
356
+ // but says version 1 (written by hand) says 2; every other line means the same at 1.
357
+ id: "corrections-v2",
358
+ summary: "Corrections lines at version 2 where they use its fields: an AI pairing, a batch, a rule, an unlink (ADR 0181); the number only",
359
+ pending: (root) => migrateCorrections(root, { dryRun: true }),
360
+ apply: (root) => migrateCorrections(root)
321
361
  }
322
362
  ];
323
363
  var orgFlowRel = (root) => `${layoutOf(root).openspec.replace(/\/+$/, "")}/schemas/org-flow/schema.yaml`;
@@ -413,7 +453,45 @@ async function readStamp(root) {
413
453
  return void 0;
414
454
  }
415
455
  }
416
- var newerThan = (a, b) => !versionAtLeast(b, a.replace(/-.*$/, ""));
456
+ function newerThan(a, b) {
457
+ const split = (v) => {
458
+ const [core, pre] = v.trim().replace(/^v/, "").split(/-(.*)/s, 2);
459
+ return { core: (core ?? "").split(".").map((n) => Number(n) || 0), pre: pre ?? "" };
460
+ };
461
+ const x = split(a);
462
+ const y = split(b);
463
+ for (let i = 0; i < Math.max(x.core.length, y.core.length); i++) {
464
+ const d = (x.core[i] ?? 0) - (y.core[i] ?? 0);
465
+ if (d)
466
+ return d > 0;
467
+ }
468
+ if (x.pre === y.pre)
469
+ return false;
470
+ if (!x.pre)
471
+ return true;
472
+ if (!y.pre)
473
+ return false;
474
+ const xp = x.pre.split(".");
475
+ const yp = y.pre.split(".");
476
+ for (let i = 0; i < Math.max(xp.length, yp.length); i++) {
477
+ const p = xp[i];
478
+ const q = yp[i];
479
+ if (p === void 0)
480
+ return false;
481
+ if (q === void 0)
482
+ return true;
483
+ if (p === q)
484
+ continue;
485
+ const pn = /^\d+$/.test(p);
486
+ const qn = /^\d+$/.test(q);
487
+ if (pn && qn)
488
+ return Number(p) > Number(q);
489
+ if (pn !== qn)
490
+ return !pn;
491
+ return p > q;
492
+ }
493
+ return false;
494
+ }
417
495
  async function upgradeCheck(root, version = VERSION) {
418
496
  const [stamp, found] = await Promise.all([
419
497
  readStamp(root),
@@ -423,7 +501,7 @@ async function upgradeCheck(root, version = VERSION) {
423
501
  return {
424
502
  atticus: version,
425
503
  ...stamp ? { stamp } : {},
426
- newer: !!stamp && newerThan(stamp.atticus.replace(/-.*$/, ""), version.replace(/-.*$/, "")),
504
+ newer: !!stamp && newerThan(stamp.atticus, version),
427
505
  pending
428
506
  };
429
507
  }
@@ -498,10 +576,21 @@ async function upgradeCommand(root, o, io, version = VERSION) {
498
576
  await ensureLocalIgnore(root);
499
577
  for (const p of c.pending)
500
578
  for (const f of p.files)
501
- await cp(join(root, ...f.split("/")), join(backup, ...f.split("/"))).catch(() => void 0);
579
+ await cp(join(root, ...f.split("/")), join(backup, ...f.split("/")), {
580
+ recursive: true
581
+ }).catch((e) => {
582
+ if (e.code === "ENOENT")
583
+ return;
584
+ throw new Error(`Couldn't back up ${f} before upgrading (${e.message}); nothing was changed.`);
585
+ });
502
586
  for (const p of c.pending) {
503
587
  const m = MIGRATIONS.find((x) => x.id === p.id);
504
- changed.push(...await m.apply(root));
588
+ try {
589
+ changed.push(...await m.apply(root));
590
+ } catch (e) {
591
+ const done = c.pending.slice(0, c.pending.indexOf(p)).map((x) => x.id);
592
+ throw new Error(`${e instanceof Error ? e.message : String(e)} The files as they were before this upgrade are in ${relative(root, backup).split(sep).join("/")}${done.length ? `; these steps had already run: ${done.join(", ")}` : ""}. Run atticus upgrade again once it's fixed.`, { cause: e });
593
+ }
505
594
  }
506
595
  }
507
596
  const stamp = MetarepoStamp.parse({
@@ -544,6 +633,7 @@ export {
544
633
  STAMP_FILE,
545
634
  MIGRATIONS,
546
635
  readStamp,
636
+ newerThan,
547
637
  upgradeCheck,
548
638
  upgradeCommand
549
639
  };
@@ -3,9 +3,6 @@ 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
- table
8
- } from "./chunk-VOGCSYOI.js";
9
6
  import {
10
7
  QueryError,
11
8
  askLookup,
@@ -13,10 +10,13 @@ import {
13
10
  openIndex,
14
11
  runContextTool,
15
12
  translate
16
- } from "./chunk-YXUIUOQZ.js";
17
- import "./chunk-QNMLLYTN.js";
18
- import "./chunk-YK6CSODO.js";
19
- import "./chunk-MMB2OHUY.js";
13
+ } from "./chunk-5WERBKLE.js";
14
+ import {
15
+ table
16
+ } from "./chunk-VOGCSYOI.js";
17
+ import "./chunk-QHJJMZLX.js";
18
+ import "./chunk-PAINMSID.js";
19
+ import "./chunk-ODMBPDDV.js";
20
20
  import "./chunk-TV45EUGM.js";
21
21
 
22
22
  // packages/cli/dist/index-commands.js