@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
@@ -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
  factsRepos
8
- } from "./chunk-BAT4CBB7.js";
8
+ } from "./chunk-LN77DXBM.js";
9
9
  import {
10
10
  checkoutOf
11
- } from "./chunk-AB5E5HCN.js";
11
+ } from "./chunk-Q46QDDMF.js";
12
12
  import {
13
13
  AUDIT_ANSWERS,
14
14
  AUDIT_DEFAULT_SIZE,
@@ -26,7 +26,7 @@ import {
26
26
  require_dist,
27
27
  serializeAuditFile,
28
28
  sumAuditPrecision
29
- } from "./chunk-YK6CSODO.js";
29
+ } from "./chunk-PAINMSID.js";
30
30
  import {
31
31
  __toESM
32
32
  } from "./chunk-TV45EUGM.js";
@@ -78,6 +78,11 @@ function precisionLines(p) {
78
78
  out.push(`Links: ${tallyWords(p.links)}.`);
79
79
  for (const [k, t] of Object.entries(p.byHow))
80
80
  out.push(` ${k}: ${tallyWords(t)}`);
81
+ if (p.ai?.drawn) {
82
+ out.push(`AI decisions: ${tallyWords(p.ai)}.`);
83
+ for (const [k, t] of Object.entries(p.byAi ?? {}))
84
+ out.push(` ${k}: ${tallyWords(t)}`);
85
+ }
81
86
  const answered = p.facts.right + p.facts.wrong + p.links.right + p.links.wrong;
82
87
  if (answered < 30)
83
88
  out.push(AUDIT_WORDS.small(answered));
@@ -102,10 +107,10 @@ async function readFactsOf(root, repo) {
102
107
  return r.ok ? { facts: r.facts } : { bad: true };
103
108
  }
104
109
  async function linksOf(root, repo) {
105
- const { estateFacts, estateJoinOf, auditLinkCandidates } = await import("./chunk-R2FGEBIU.js");
110
+ const { estateFacts, estateJoinOf, auditLinkCandidates } = await import("./chunk-BXZ4PKIT.js");
106
111
  const op = await loadOrgPack(orgPackDirOf(root));
107
112
  const estate = await estateFacts(root, op, "");
108
- const join2 = estateJoinOf(op, estate.repos, estate.targets);
113
+ const join2 = estateJoinOf(op, estate.repos, estate.targets, estate.pairs, estate.aiTargets);
109
114
  return auditLinkCandidates(join2, estate.repos, repo);
110
115
  }
111
116
  async function givenAnswers(root, o) {
@@ -187,7 +192,9 @@ async function prepareAudit(root, repo, o = {}) {
187
192
  const size = o.size && o.size > 0 ? Math.floor(o.size) : AUDIT_DEFAULT_SIZE;
188
193
  const seed = o.seed ?? defaultAuditSeed(repo, commit);
189
194
  const links = await linksOf(root, repo);
190
- const drawn = drawAudit({ facts: auditCandidates(facts), links, size, seed });
195
+ const { aiAuditCandidates } = await import("./chunk-LU4MQVAL.js");
196
+ const ai = await aiAuditCandidates(root, repo);
197
+ const drawn = drawAudit({ facts: auditCandidates(facts), links, ai, size, seed });
191
198
  const now = (o.now ?? (() => /* @__PURE__ */ new Date()))().toISOString();
192
199
  const audit = mergeDraw(onFile.file, repo, drawn, {
193
200
  seed,
@@ -202,15 +209,18 @@ function answerAudit(audit, answers, by, now) {
202
209
  const byId = new Map(audit.items.map((i) => [i.id, i]));
203
210
  const unknown = [];
204
211
  for (const [id, a] of answers) {
205
- const item = byId.get(id) ?? byId.get(`fact:${id}`) ?? byId.get(`link:${id}`);
212
+ const item = byId.get(id) ?? byId.get(`fact:${id}`) ?? byId.get(`link:${id}`) ?? byId.get(`ai:${id}`);
206
213
  if (!item) {
207
214
  unknown.push(id);
208
215
  continue;
209
216
  }
217
+ if (item.answer === a.answer && item.by !== void 0 && (!a.note || a.note === item.note))
218
+ continue;
219
+ const changedAnswer = item.answer !== a.answer;
210
220
  item.answer = a.answer;
211
221
  if (a.note)
212
222
  item.note = a.note;
213
- else
223
+ else if (changedAnswer)
214
224
  delete item.note;
215
225
  item.by = by;
216
226
  item.at = now;
@@ -330,7 +340,7 @@ async function auditCommand(root, repo, o, io) {
330
340
  async function precisionOf(root, repo, audit, facts) {
331
341
  const byId = new Map(facts.map((f) => [f.id, f]));
332
342
  const links = new Map((await linksOf(root, repo)).map((l) => [l.id, l]));
333
- return auditPrecision(audit.items, (i) => i.kind === "fact" ? auditItemHolds(i, byId) : links.get(i.id)?.to === i.to);
343
+ return auditPrecision(audit.items, (i) => i.kind === "fact" ? auditItemHolds(i, byId) : i.kind === "ai" ? true : links.get(i.id)?.to === i.to);
334
344
  }
335
345
  async function auditReport(root, repo, o, io) {
336
346
  const fileRel = `${factsRelOf(root)}/${repo}.audit.yaml`;
@@ -15,28 +15,28 @@ import {
15
15
  glossaryScan,
16
16
  testsGenerate,
17
17
  traceCommand
18
- } from "./chunk-ESP3RUUR.js";
19
- import "./chunk-YC2K3FJG.js";
20
- import "./chunk-TAKAEJRD.js";
21
- import "./chunk-XO5RQKNM.js";
22
- import "./chunk-L3T33FA7.js";
18
+ } from "./chunk-ZX7235KR.js";
19
+ import "./chunk-EZIN5E5B.js";
20
+ import "./chunk-3LZ6P5EP.js";
21
+ import "./chunk-BEPCKDCP.js";
22
+ import "./chunk-HWD4JPU7.js";
23
+ import "./chunk-5WERBKLE.js";
23
24
  import "./chunk-VOGCSYOI.js";
24
- import "./chunk-VEJYZEPC.js";
25
- import "./chunk-IOW6BF3U.js";
26
- import "./chunk-43E6XX67.js";
27
- import "./chunk-V3UEPUHT.js";
28
- import "./chunk-EZBAS5BL.js";
29
- import "./chunk-KCQS52TH.js";
30
- import "./chunk-IPSFMTK2.js";
31
- import "./chunk-TNCROWPQ.js";
32
- import "./chunk-7IM4BVVH.js";
33
- import "./chunk-RBXDHCN7.js";
34
- import "./chunk-YXUIUOQZ.js";
35
- import "./chunk-ZQC7MNQB.js";
36
- import "./chunk-TLDL2ZZI.js";
37
- import "./chunk-QNMLLYTN.js";
38
- import "./chunk-YK6CSODO.js";
39
- import "./chunk-MMB2OHUY.js";
25
+ import "./chunk-K332XW7K.js";
26
+ import "./chunk-HSZMPH5T.js";
27
+ import "./chunk-D2WSW4GU.js";
28
+ import "./chunk-4KNOJC6J.js";
29
+ import "./chunk-4SLBCEPD.js";
30
+ import "./chunk-64AADMTW.js";
31
+ import "./chunk-JYMIB5XY.js";
32
+ import "./chunk-CPK7QSBG.js";
33
+ import "./chunk-YO2PKTXT.js";
34
+ import "./chunk-TWQRPM76.js";
35
+ import "./chunk-XOL3GFW2.js";
36
+ import "./chunk-QHJJMZLX.js";
37
+ import "./chunk-7AB6OWTV.js";
38
+ import "./chunk-PAINMSID.js";
39
+ import "./chunk-ODMBPDDV.js";
40
40
  import "./chunk-TV45EUGM.js";
41
41
  export {
42
42
  ciArchiveGate,
@@ -8,13 +8,13 @@ import {
8
8
  } from "./chunk-VOGCSYOI.js";
9
9
  import {
10
10
  storeSpecLookup
11
- } from "./chunk-IOW6BF3U.js";
11
+ } from "./chunk-HSZMPH5T.js";
12
12
  import {
13
13
  createAdapters
14
- } from "./chunk-V3UEPUHT.js";
14
+ } from "./chunk-4KNOJC6J.js";
15
15
  import {
16
16
  readCatalog
17
- } from "./chunk-EZBAS5BL.js";
17
+ } from "./chunk-4SLBCEPD.js";
18
18
  import {
19
19
  FeatureError,
20
20
  FlowGraph,
@@ -33,10 +33,10 @@ import {
33
33
  suggestFeatureLinks,
34
34
  workItemsFromTracker,
35
35
  writeNameProposals
36
- } from "./chunk-KCQS52TH.js";
36
+ } from "./chunk-64AADMTW.js";
37
37
  import {
38
38
  readWorkItemExports
39
- } from "./chunk-TNCROWPQ.js";
39
+ } from "./chunk-CPK7QSBG.js";
40
40
  import {
41
41
  applyCurated,
42
42
  loadOrgPack,
@@ -44,10 +44,10 @@ import {
44
44
  orgPackDirOf,
45
45
  recordPath,
46
46
  serializeRecord
47
- } from "./chunk-YK6CSODO.js";
47
+ } from "./chunk-PAINMSID.js";
48
48
  import {
49
49
  SCHEMA_VERSION
50
- } from "./chunk-MMB2OHUY.js";
50
+ } from "./chunk-ODMBPDDV.js";
51
51
 
52
52
  // packages/cli/dist/feature-commands.js
53
53
  import { mkdir, readFile, writeFile } from "node:fs/promises";
@@ -11,24 +11,24 @@ import {
11
11
  planJourney,
12
12
  recordCommitment,
13
13
  requestFromTeam
14
- } from "./chunk-ILDGIXNH.js";
14
+ } from "./chunk-2V2ZPQQU.js";
15
15
  import {
16
16
  table
17
17
  } from "./chunk-VOGCSYOI.js";
18
- import "./chunk-IOW6BF3U.js";
19
- import "./chunk-43E6XX67.js";
20
- import "./chunk-V3UEPUHT.js";
21
- import "./chunk-EZBAS5BL.js";
22
- import "./chunk-KCQS52TH.js";
23
- import "./chunk-IPSFMTK2.js";
24
- import "./chunk-TNCROWPQ.js";
25
- import "./chunk-7IM4BVVH.js";
26
- import "./chunk-RBXDHCN7.js";
27
- import "./chunk-ZQC7MNQB.js";
28
- import "./chunk-TLDL2ZZI.js";
29
- import "./chunk-QNMLLYTN.js";
30
- import "./chunk-YK6CSODO.js";
31
- import "./chunk-MMB2OHUY.js";
18
+ import "./chunk-HSZMPH5T.js";
19
+ import "./chunk-D2WSW4GU.js";
20
+ import "./chunk-4KNOJC6J.js";
21
+ import "./chunk-4SLBCEPD.js";
22
+ import "./chunk-64AADMTW.js";
23
+ import "./chunk-JYMIB5XY.js";
24
+ import "./chunk-CPK7QSBG.js";
25
+ import "./chunk-YO2PKTXT.js";
26
+ import "./chunk-TWQRPM76.js";
27
+ import "./chunk-XOL3GFW2.js";
28
+ import "./chunk-QHJJMZLX.js";
29
+ import "./chunk-7AB6OWTV.js";
30
+ import "./chunk-PAINMSID.js";
31
+ import "./chunk-ODMBPDDV.js";
32
32
  import "./chunk-TV45EUGM.js";
33
33
 
34
34
  // packages/cli/dist/initiative-commands.js
@@ -164,12 +164,18 @@ async function requestFromTeam2(root, initiativeId, partyId, o, io, deps = {}) {
164
164
  async function initiativeCommitment(root, id, status, o, io) {
165
165
  const states = ["open", "at-risk", "done", "slipped"];
166
166
  if (!id || !status || !o.by || !states.includes(status)) {
167
- io.err(`Usage: atticus initiative commit <commitment> <${states.join("|")}> [--by <you>]`);
167
+ io.err(`Usage: atticus initiative commit <commitment> <${states.join("|")}> [--by <you>] [--note "<words>"]`);
168
168
  return 2;
169
169
  }
170
170
  try {
171
- const r = await recordCommitment(root, id, { status, by: o.by });
171
+ const r = await recordCommitment(root, id, {
172
+ status,
173
+ by: o.by,
174
+ ...o.note ? { note: o.note } : {}
175
+ });
172
176
  io.out(`${r.commitment.id} is ${status}. Wrote ${r.written}.`);
177
+ if (r.notes)
178
+ io.out(`Noted in ${r.notes}.`);
173
179
  return 0;
174
180
  } catch (e) {
175
181
  return fail(io, e);
@@ -5,13 +5,13 @@ var __atticusUrl = (p) => new URL("./" + p, import.meta.url).href;
5
5
  var __atticusPath = (p) => __atticusFileURLToPath(__atticusUrl(p));
6
6
  import {
7
7
  conformanceCommand
8
- } from "./chunk-CVZCW3NI.js";
9
- import "./chunk-FF4IGX4Z.js";
10
- import "./chunk-V3UEPUHT.js";
11
- import "./chunk-RBXDHCN7.js";
12
- import "./chunk-TLDL2ZZI.js";
13
- import "./chunk-YK6CSODO.js";
14
- import "./chunk-MMB2OHUY.js";
8
+ } from "./chunk-G5YJBNDZ.js";
9
+ import "./chunk-DDJPM5YX.js";
10
+ import "./chunk-4KNOJC6J.js";
11
+ import "./chunk-TWQRPM76.js";
12
+ import "./chunk-7AB6OWTV.js";
13
+ import "./chunk-PAINMSID.js";
14
+ import "./chunk-ODMBPDDV.js";
15
15
  import "./chunk-TV45EUGM.js";
16
16
  export {
17
17
  conformanceCommand
@@ -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
+ MIGRATIONS,
8
+ STAMP_FILE,
9
+ newerThan,
10
+ readStamp,
11
+ upgradeCheck,
12
+ upgradeCommand
13
+ } from "./chunk-4B6BT75O.js";
14
+ import "./chunk-2HTEMYTB.js";
15
+ import "./chunk-3AQ2R5NL.js";
16
+ import "./chunk-BEPCKDCP.js";
17
+ import "./chunk-HWD4JPU7.js";
18
+ import "./chunk-5WERBKLE.js";
19
+ import "./chunk-K332XW7K.js";
20
+ import "./chunk-HSZMPH5T.js";
21
+ import "./chunk-D2WSW4GU.js";
22
+ import "./chunk-4KNOJC6J.js";
23
+ import "./chunk-4SLBCEPD.js";
24
+ import "./chunk-64AADMTW.js";
25
+ import "./chunk-JYMIB5XY.js";
26
+ import "./chunk-CPK7QSBG.js";
27
+ import "./chunk-YO2PKTXT.js";
28
+ import "./chunk-TWQRPM76.js";
29
+ import "./chunk-VUVGX5L2.js";
30
+ import "./chunk-XOL3GFW2.js";
31
+ import "./chunk-QHJJMZLX.js";
32
+ import "./chunk-7AB6OWTV.js";
33
+ import "./chunk-PAINMSID.js";
34
+ import "./chunk-ODMBPDDV.js";
35
+ import "./chunk-TV45EUGM.js";
36
+ export {
37
+ MIGRATIONS,
38
+ STAMP_FILE,
39
+ newerThan,
40
+ readStamp,
41
+ upgradeCheck,
42
+ upgradeCommand
43
+ };
@@ -5,32 +5,40 @@ var __atticusUrl = (p) => new URL("./" + p, import.meta.url).href;
5
5
  var __atticusPath = (p) => __atticusFileURLToPath(__atticusUrl(p));
6
6
  import {
7
7
  RunLevel,
8
+ TASK_RUNNER,
8
9
  completeTaskHandoff,
10
+ findTaskRunOfRun,
11
+ isTaskRun,
12
+ previewTaskRun,
9
13
  runTask
10
- } from "./chunk-GTW54D3D.js";
14
+ } from "./chunk-Y6K3CJBU.js";
15
+ import {
16
+ handoffDone
17
+ } from "./chunk-IFHDV6KQ.js";
11
18
  import {
12
19
  driftCheck,
13
20
  handDown,
14
21
  handUp
15
- } from "./chunk-2ZICHO3V.js";
22
+ } from "./chunk-YWAKDNMH.js";
16
23
  import {
17
24
  generateAssistantFiles,
18
25
  smokeCheck
19
- } from "./chunk-BAXM3JFQ.js";
26
+ } from "./chunk-3AQ2R5NL.js";
20
27
  import {
21
28
  createAdapters,
22
29
  fileStepStore
23
- } from "./chunk-V3UEPUHT.js";
30
+ } from "./chunk-4KNOJC6J.js";
24
31
  import {
25
32
  RUNTIME_MODES,
26
33
  runtimeForCli
27
- } from "./chunk-QNMLLYTN.js";
34
+ } from "./chunk-QHJJMZLX.js";
28
35
  import {
29
36
  changesRelOf,
30
37
  loadOrgPack,
31
38
  orgPackDirOf,
39
+ runsDirOf,
32
40
  runsRelOf
33
- } from "./chunk-YK6CSODO.js";
41
+ } from "./chunk-PAINMSID.js";
34
42
 
35
43
  // packages/cli/dist/run-commands.js
36
44
  import { readFile } from "node:fs/promises";
@@ -38,6 +46,8 @@ import { join } from "node:path";
38
46
  var KNOWN = /* @__PURE__ */ new Set([
39
47
  "SpecKitError",
40
48
  "TaskRunError",
49
+ "GitError",
50
+ "RuntimeError",
41
51
  "RuntimeConfigError",
42
52
  "AssistantFilesError",
43
53
  "ChangeError",
@@ -53,10 +63,11 @@ function fail(io, e) {
53
63
  throw e;
54
64
  }
55
65
  var plural = (n, w) => `${n} ${w}${n === 1 ? "" : "s"}`;
66
+ var exitOf = (r) => r.state === "failed" || r.state === "needs-person" || r.level === "pr" && r.state === "built" ? 1 : 0;
56
67
  function describeRun(root, r, io) {
57
68
  const what = {
58
69
  planned: `Wrote the plan for task ${r.task}: ${changesRelOf(root)}/${r.change}/tasks/${r.task}/plan.md.`,
59
- waiting: `Handed task ${r.task} to your assistant. The prompt is in ${runsRelOf(root)}/${r.change}/${r.waiting}/prompt.md; it ends with: atticus handoff done ${r.waiting}`,
70
+ waiting: r.level === "pr" ? `Handed task ${r.task} to your assistant. The prompt is in ${runsRelOf(root)}/${r.change}/${r.waiting}/prompt.md. When it is done, you run: atticus handoff done ${r.waiting} --approve (it pushes the branch and opens the PR; an assistant never approves a push)` : `Handed task ${r.task} to your assistant. The prompt is in ${runsRelOf(root)}/${r.change}/${r.waiting}/prompt.md; it ends with: atticus handoff done ${r.waiting}`,
60
71
  built: `Task ${r.task} is drafted on ${r.branch} and the build passes (${plural(r.attempts.length, "attempt")}); committed ${r.commit?.slice(0, 12) ?? ""}.`,
61
72
  unverified: `Task ${r.task} is drafted on ${r.branch} but wasn't built: ${r.repo} has no build command.`,
62
73
  "pr-open": `Opened PR ${r.pr?.url ?? ""} from ${r.branch} for review.`,
@@ -67,7 +78,7 @@ function describeRun(root, r, io) {
67
78
  io.out(reason ? `The run for task ${r.task} failed: ${reason}` : what[r.state]);
68
79
  for (const n of reason ? r.notes.slice(0, -1) : r.notes)
69
80
  io.out(` ${n}`);
70
- return r.state === "failed" || r.state === "needs-person" ? 1 : 0;
81
+ return exitOf(r);
71
82
  }
72
83
  async function taskRun(root, changeId, taskId, o, io, deps = {}) {
73
84
  if (!changeId || !taskId) {
@@ -88,6 +99,30 @@ async function taskRun(root, changeId, taskId, o, io, deps = {}) {
88
99
  io.err(`Unknown mode ${mode}. Use one of: hand-off, model, headless-claude-code, replay.`);
89
100
  return 2;
90
101
  }
102
+ if (o.dryRun || !o.approve) {
103
+ let p;
104
+ try {
105
+ p = await previewTaskRun(root, changeId, taskId, {
106
+ ...o.level ? { level: o.level } : {},
107
+ ...deps.gitHost ? { gitHost: deps.gitHost } : {}
108
+ });
109
+ } catch (e) {
110
+ return fail(io, e);
111
+ }
112
+ if (o.dryRun || p.level === "pr") {
113
+ const what = [
114
+ p.level === "plan" ? `Task ${p.task} of ${p.change} at the plan level: the plan is written to tasks/${p.task}/plan.md; no code changes.` : `Task ${p.task} of ${p.change} at the ${p.level} level: drafted on ${p.branch} in its own worktree of ${p.repo}, built and committed${p.level === "pr" ? p.gitHost ? `, then the branch is pushed and a PR opened into change/${p.change}.` : `; no Git host is connected (runtime.yaml adapters.gitHost), so you push it and open the PR by hand.` : "."}`,
115
+ // The yes is the person's: an assistant that ran this says so to them, never adds it.
116
+ o.dryRun || p.level !== "pr" || o.approve ? "Nothing was done: this was a dry run." : p.gitHost ? "Nothing was done: run it again with --approve to let it push and open the PR (the person's yes; an assistant never approves a push)." : "Nothing was done: run it again with --approve to draft and commit it; you push and open the PR (the person's yes; an assistant never approves a push)."
117
+ ];
118
+ if (o.json)
119
+ io.out(JSON.stringify({ dryRun: true, ...p, lines: what }, null, 2));
120
+ else
121
+ for (const l of what)
122
+ io.out(l);
123
+ return 0;
124
+ }
125
+ }
91
126
  const now = deps.now ?? (() => /* @__PURE__ */ new Date());
92
127
  try {
93
128
  const r = await runTask(root, changeId, taskId, {
@@ -111,7 +146,7 @@ async function taskRun(root, changeId, taskId, o, io, deps = {}) {
111
146
  });
112
147
  if (o.json) {
113
148
  io.out(JSON.stringify(r, null, 2));
114
- return r.state === "failed" || r.state === "needs-person" ? 1 : 0;
149
+ return exitOf(r);
115
150
  }
116
151
  return describeRun(root, r, io);
117
152
  } catch (e) {
@@ -135,7 +170,7 @@ async function taskHandoff(root, runId, o, io, deps = {}) {
135
170
  if (o.json)
136
171
  io.out(JSON.stringify(r, null, 2));
137
172
  else if (r.state === "waiting")
138
- io.out(`The build still fails; fix it in ${r.worktree} and run atticus handoff done ${runId} again.`);
173
+ io.out(r.notes.at(-1)?.startsWith("Build attempt") ? `The build still fails; fix it in ${r.worktree} and run atticus handoff done ${runId} again.` : r.notes.at(-1) ?? `Run atticus handoff done ${runId} again.`);
139
174
  else
140
175
  return describeRun(root, r, io);
141
176
  return r.state === "waiting" ? 1 : 0;
@@ -143,6 +178,52 @@ async function taskHandoff(root, runId, o, io, deps = {}) {
143
178
  return fail(io, e);
144
179
  }
145
180
  }
181
+ async function runDone(root, runId, o, io, deps = {}) {
182
+ if (await isTaskRun(root, runId))
183
+ return taskHandoff(root, runId, {
184
+ ...o.by ? { by: o.by } : {},
185
+ ...o.approve ? { approve: true } : {},
186
+ ...o.json ? { json: true } : {}
187
+ }, io, deps);
188
+ const owner = await findTaskRunOfRun(root, runId);
189
+ if (owner) {
190
+ io.err(taskRunNotWaiting(runId, owner));
191
+ return 1;
192
+ }
193
+ if (await runAgentOf(root, runId) === TASK_RUNNER) {
194
+ io.err(`Run ${runId} was a task run's, and no task run waits on it now: run the task again (atticus task run <change> <task>).`);
195
+ return 1;
196
+ }
197
+ const agent = await runAgentOf(root, runId);
198
+ if (agent === "decide-propose" || agent === "decide-match") {
199
+ const { decideRunDone } = await import("./chunk-EFCQSMXB.js");
200
+ return decideRunDone(root, runId, io);
201
+ }
202
+ return handoffDone(root, runId, io, o.model ? { model: o.model } : {});
203
+ }
204
+ async function runAgentOf(root, runId) {
205
+ if (!/^run-[0-9a-z-]+$/.test(runId))
206
+ return void 0;
207
+ const { readdir } = await import("node:fs/promises");
208
+ const runs = runsDirOf(root);
209
+ for (const change of await readdir(runs).catch(() => [])) {
210
+ const text = await readFile(join(runs, change, runId, "run.json"), "utf8").catch(() => void 0);
211
+ if (!text)
212
+ continue;
213
+ try {
214
+ const a = JSON.parse(text).request?.agent;
215
+ return typeof a === "string" ? a : a?.id;
216
+ } catch {
217
+ return void 0;
218
+ }
219
+ }
220
+ return void 0;
221
+ }
222
+ function taskRunNotWaiting(runId, r) {
223
+ if (r.notes.at(-1)?.startsWith(`Run ${runId} was cancelled`))
224
+ return `Run ${runId} was cancelled; run the task again (atticus task run ${r.change} ${r.task}).`;
225
+ return r.state === "needs-person" ? `Run ${runId} is part of task ${r.task}'s run, which needs a person now: carry on in ${r.worktree}, or run atticus task run ${r.change} ${r.task} again.` : `Run ${runId} is part of task ${r.task}'s run, which is ${r.state} and waits on no run: run the task again (atticus task run ${r.change} ${r.task}).`;
226
+ }
146
227
  async function specHandDown(root, changeId, taskId, o, io, deps = {}) {
147
228
  if (!changeId || !taskId) {
148
229
  io.err("Usage: atticus spec hand-down <change> <task> [--force]");
@@ -300,6 +381,8 @@ export {
300
381
  describeRun,
301
382
  taskRun,
302
383
  taskHandoff,
384
+ runDone,
385
+ taskRunNotWaiting,
303
386
  specHandDown,
304
387
  specHandUp,
305
388
  driftCommand,
@@ -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
  parseFactLine
8
- } from "./chunk-YK6CSODO.js";
8
+ } from "./chunk-PAINMSID.js";
9
9
 
10
10
  // packages/cli/dist/memory-room.js
11
11
  import { createReadStream } from "node:fs";
@@ -15,13 +15,13 @@ import {
15
15
  releaseNotes,
16
16
  securityReview,
17
17
  writeEvidencePack
18
- } from "./chunk-YSEZQ6D3.js";
18
+ } from "./chunk-36RY7ZXM.js";
19
19
  import {
20
20
  judgingRuntime
21
- } from "./chunk-MIZNACDI.js";
21
+ } from "./chunk-F6H2RJ3N.js";
22
22
  import {
23
23
  changeStore
24
- } from "./chunk-IOW6BF3U.js";
24
+ } from "./chunk-HSZMPH5T.js";
25
25
 
26
26
  // packages/cli/dist/release-commands.js
27
27
  import { resolve } from "node:path";
@@ -6,14 +6,14 @@ var __atticusPath = (p) => __atticusFileURLToPath(__atticusUrl(p));
6
6
  import {
7
7
  resumedAttempt,
8
8
  stepClassOf
9
- } from "./chunk-QNMLLYTN.js";
9
+ } from "./chunk-QHJJMZLX.js";
10
10
  import {
11
11
  RUN_SCHEMA_VERSION,
12
12
  STEP_CLASSES,
13
13
  changesDirOf,
14
14
  runsDirOf,
15
15
  runsRelOf
16
- } from "./chunk-YK6CSODO.js";
16
+ } from "./chunk-PAINMSID.js";
17
17
 
18
18
  // packages/cli/dist/runs-view.js
19
19
  import { createHash } from "node:crypto";
@@ -86,6 +86,8 @@ async function item(root, s) {
86
86
  startedAt: r.startedAt,
87
87
  ...r.finishedAt ? { finishedAt: r.finishedAt } : {},
88
88
  ...r.request.outputPath ? { output: r.request.outputPath } : {},
89
+ // Third UX walk: a failed run's problems, which its page shows (they were left out).
90
+ errors: r.errors ?? [],
89
91
  ...r.usage ? { usage: r.usage } : {},
90
92
  contextManifestSha256: sha(manifest),
91
93
  promptPath: `${runsRelOf(root)}/${r.request.change}/${r.runId}/prompt.md`,
@@ -97,9 +99,28 @@ async function item(root, s) {
97
99
  // ADR 0121 addendum: the kind of step and the model that ran it. A run kept before either
98
100
  // was recorded is given its kind from its agent; its model stays unsaid.
99
101
  ...classOf(r) ? { stepClass: classOf(r) } : {},
100
- ...r.model ? { model: r.model } : {}
102
+ ...r.model ? { model: r.model } : {},
103
+ // ADR 0185: the batched hand-off a lens was asked in, or a batch's lenses and where each is.
104
+ ...r.batch ? { batch: r.batch } : {},
105
+ ...r.parts?.length ? { parts: await partStates(root, r.request.change, r.parts) } : {}
101
106
  };
102
107
  }
108
+ async function partStates(root, change, parts) {
109
+ return Promise.all(parts.map(async (p) => {
110
+ const text = RUN_ID.test(p.runId) ? await readFile(join(runsDirOf(root), change, p.runId, "run.json"), "utf8").catch(() => void 0) : void 0;
111
+ let state;
112
+ try {
113
+ state = text ? JSON.parse(text).state : void 0;
114
+ } catch {
115
+ state = void 0;
116
+ }
117
+ return {
118
+ name: p.name,
119
+ runId: p.runId,
120
+ ...state ? { state } : {}
121
+ };
122
+ }));
123
+ }
103
124
  function classOf(r) {
104
125
  if (r.stepClass && STEP_CLASSES.includes(r.stepClass))
105
126
  return r.stepClass;
@@ -159,6 +180,7 @@ async function runTranscript(root, runId) {
159
180
  }
160
181
 
161
182
  export {
183
+ partStates,
162
184
  listRuns,
163
185
  runTranscript
164
186
  };