@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
@@ -7,23 +7,27 @@ import {
7
7
  onboardingQueue,
8
8
  queueWhy,
9
9
  reasonOf
10
- } from "./chunk-YY7VP7KW.js";
10
+ } from "./chunk-HE3HRDNZ.js";
11
+ import {
12
+ onboardingView
13
+ } from "./chunk-PNQLCRSS.js";
11
14
  import {
12
15
  houseUntaughtOf,
13
16
  houseUntaughtWords
14
- } from "./chunk-7TOAS7KI.js";
17
+ } from "./chunk-3J5I7ZOU.js";
15
18
  import {
16
19
  repoIdKey
17
- } from "./chunk-MKFYQQ5Q.js";
18
- import {
19
- onboardingView
20
- } from "./chunk-R5MNPIMD.js";
20
+ } from "./chunk-OMPENNWY.js";
21
21
  import {
22
22
  catalogSources
23
- } from "./chunk-2QMZOCWN.js";
23
+ } from "./chunk-4FOAYLI4.js";
24
+ import {
25
+ readTaskRun
26
+ } from "./chunk-Y6K3CJBU.js";
27
+ import {
28
+ rulesLackingAll
29
+ } from "./chunk-GIFMBCTW.js";
24
30
  import {
25
- checkoutOf,
26
- conventionsAt,
27
31
  loadReadPlan,
28
32
  partOfWords,
29
33
  readCostOf,
@@ -31,53 +35,60 @@ import {
31
35
  readPlanProgress,
32
36
  readPlanRelOf,
33
37
  tokensWords
34
- } from "./chunk-AB5E5HCN.js";
38
+ } from "./chunk-MD7KUEJ3.js";
39
+ import {
40
+ checkoutOf,
41
+ conventionsAt
42
+ } from "./chunk-Q46QDDMF.js";
43
+ import {
44
+ readChangeTasks
45
+ } from "./chunk-YWAKDNMH.js";
35
46
  import {
36
47
  isMetarepo,
37
48
  notMetarepo
38
49
  } from "./chunk-3G4YI4ZU.js";
39
- import {
40
- readChangeTasks
41
- } from "./chunk-2ZICHO3V.js";
42
50
  import {
43
51
  ASSISTANT_FORMATS,
44
52
  probedAssistant,
45
53
  readProbes,
46
- rulesLacking,
47
54
  whatRunsWhere
48
- } from "./chunk-BAXM3JFQ.js";
55
+ } from "./chunk-3AQ2R5NL.js";
49
56
  import {
50
- metarepoOpenSpec,
51
- openspecProgress,
52
57
  readNeeds,
53
58
  seedCollisions
54
- } from "./chunk-XO5RQKNM.js";
59
+ } from "./chunk-BEPCKDCP.js";
55
60
  import {
56
61
  readChangeFiles
57
- } from "./chunk-VEJYZEPC.js";
62
+ } from "./chunk-K332XW7K.js";
58
63
  import {
64
+ assess,
59
65
  changeStore,
66
+ isManualPrUrl,
67
+ liveHandoff,
68
+ loadChangeContext,
60
69
  loadChangePolicy,
70
+ releasePrReasons,
61
71
  stageCompletion
62
- } from "./chunk-IOW6BF3U.js";
72
+ } from "./chunk-HSZMPH5T.js";
63
73
  import {
64
74
  readCatalog
65
- } from "./chunk-EZBAS5BL.js";
75
+ } from "./chunk-4SLBCEPD.js";
66
76
  import {
67
77
  readKnowledge,
68
78
  snapshotDates,
69
79
  workingDays
70
- } from "./chunk-KCQS52TH.js";
80
+ } from "./chunk-64AADMTW.js";
71
81
  import {
72
82
  baseClonePath
73
- } from "./chunk-ZQC7MNQB.js";
83
+ } from "./chunk-XOL3GFW2.js";
74
84
  import {
75
85
  stepClassOfNextStep
76
- } from "./chunk-QNMLLYTN.js";
86
+ } from "./chunk-QHJJMZLX.js";
77
87
  import {
78
88
  ScanVerifyProposal,
79
89
  catalogDirOf,
80
90
  changesDirOf,
91
+ changesRelOf,
81
92
  factsDirOf,
82
93
  factsFileOf,
83
94
  factsRelOf,
@@ -94,7 +105,7 @@ import {
94
105
  readSpecFindings,
95
106
  require_dist,
96
107
  stepModelsOf
97
- } from "./chunk-YK6CSODO.js";
108
+ } from "./chunk-PAINMSID.js";
98
109
  import {
99
110
  __toESM
100
111
  } from "./chunk-TV45EUGM.js";
@@ -107,10 +118,6 @@ import { join } from "node:path";
107
118
  var METAREPO = "metarepo";
108
119
  var DRAFTING = ["feature", "architecture", "stories"];
109
120
  var draftingAt = (s) => DRAFTING.indexOf(s);
110
- var canMoveOn = (state) => {
111
- const at = draftingAt(stageOf(state));
112
- return at >= 0 && at < DRAFTING.length - 1;
113
- };
114
121
  var STALE_DAYS = 14;
115
122
  var plural = (n, one, many = `${one}s`) => `${n} ${n === 1 ? one : many}`;
116
123
  async function verifyState(root, repo) {
@@ -165,7 +172,7 @@ async function readNextState(root) {
165
172
  const planFile = await loadReadPlan(root, r.id);
166
173
  const mapped = !!spec.header?.template.startsWith("facts@") || (fromFacts.get(r.id)?.facts ?? 0) > 0;
167
174
  const stale = mapped && hasFacts ? await staleOf(root, r.id) : void 0;
168
- const rules = hasFacts && r.cloned && !await staleOf(root, r.id) ? rulesLacking(planFile?.rules) : [];
175
+ const rules = hasFacts && r.cloned && !await staleOf(root, r.id) ? await rulesLackingAll(root, r.id, planFile?.rules) : [];
169
176
  repos.push({
170
177
  id: r.id,
171
178
  cloned: r.cloned,
@@ -215,6 +222,7 @@ async function readNextState(root) {
215
222
  problems.push(...open.problems);
216
223
  const changeIds = new Set(await changeStore(root).list().then((cs) => cs.map((c) => c.id), () => []));
217
224
  const changeQuestions = {};
225
+ const openIds = new Set(open.questions.map((q) => q.id));
218
226
  for (const q of open.questions)
219
227
  if (changeIds.has(q.repo))
220
228
  (changeQuestions[q.repo] ??= []).push(q.id);
@@ -254,8 +262,9 @@ async function readNextState(root) {
254
262
  let active;
255
263
  const types = orgPack instanceof Error ? [] : orgPack.changeTypes.types;
256
264
  const { policy } = await loadChangePolicy(orgPackDirOf(root));
257
- const os = metarepoOpenSpec(root);
258
265
  const clashes = await seedCollisions(root).catch(() => []);
266
+ let ctxP;
267
+ const changeContext = () => ctxP ??= loadChangeContext(root);
259
268
  try {
260
269
  for (const c of await changeStore(root).list()) {
261
270
  const clash = clashes.filter((x) => x.change === c.id).map(({ seed, repo, capability, flow }) => ({ seed, repo, capability, flow }));
@@ -272,17 +281,40 @@ async function readNextState(root) {
272
281
  // The lead time as the knowledge scan read it (ADR 0117); a need with none sorts last.
273
282
  days: n.leadTimeDays ? workingDays(n.leadTimeDays) : 0
274
283
  })).sort((a, b) => b.days - a.days)[0];
275
- const progress = os && canMoveOn(c.state) ? await openspecProgress(os, c.id).catch(() => void 0) : void 0;
284
+ const own = stageOf(c.state);
285
+ const loop = draftingAt(own) >= 0 ? await loopState(root, c.id, own) : void 0;
286
+ const live = c.state === "returned" ? void 0 : liveHandoff(c);
276
287
  const busy = await stageInProgress(root, c.id);
288
+ const asked = await stageQuestions(root, c.id, openIds);
289
+ const questions = [.../* @__PURE__ */ new Set([...changeQuestions[c.id] ?? [], ...asked])];
290
+ const missing = c.state === "define" || c.state === "returned" ? await draftMissing(changeContext, c).catch(() => ({ draft: false, brief: false })) : { draft: false, brief: false };
291
+ const blocking = stageOf(c.state) === "tasks" ? await blockingOf(changeContext, c).catch(() => 0) : 0;
277
292
  if (busy && stageOf(c.state) !== "done" && (!active || busy > active.at))
278
293
  active = { id: c.id, at: busy };
279
294
  changes.push({
280
295
  id: c.id,
281
296
  state: c.state,
282
- tasks: files ? readChangeTasks(files).map((t) => ({ id: t.id, repo: t.repo, done: t.done })) : [],
297
+ tasks: files ? await Promise.all(readChangeTasks(files).map(async (t) => {
298
+ const run = t.done ? void 0 : (await readTaskRun(root, c.id, t.id).catch(() => void 0))?.state;
299
+ return { id: t.id, repo: t.repo, done: t.done, ...run ? { run } : {} };
300
+ })) : [],
283
301
  feature: existsSync(join(changesDirOf(root), c.id, "feature.yaml")),
302
+ ...missing.draft ? { undrafted: true } : {},
303
+ ...blocking ? { blocking } : {},
304
+ ...stageOf(c.state) === "release" ? await releasePrsOf(root, c.id) : {},
305
+ ...missing.brief ? { brief: `${changesRelOf(root)}/${c.id}/brief.md` } : {},
306
+ ...questions.length ? { questions } : {},
307
+ ...knowledge.items.length ? { knowledge: true } : {},
284
308
  ...stagesDone.length ? { stagesDone } : {},
285
- ...progress?.next ? { openspecStage: progress.next } : {},
309
+ ...loop ? { loop } : {},
310
+ ...live ? {
311
+ handoff: {
312
+ phase: live.phase,
313
+ number: live.pr.number,
314
+ url: live.pr.url,
315
+ state: live.state
316
+ }
317
+ } : {},
286
318
  ...clash.length ? { seedCollisions: clash } : {},
287
319
  ...await isFast(root, c, types) ? {
288
320
  fast: true,
@@ -331,6 +363,35 @@ async function stageInProgress(root, change) {
331
363
  }
332
364
  return newest;
333
365
  }
366
+ async function loopState(root, change, stage) {
367
+ const t = await readFile(join(changesDirOf(root), change, "stage", `${stage}.yaml`), "utf8").catch(() => void 0);
368
+ if (t === void 0)
369
+ return void 0;
370
+ try {
371
+ const s = (0, import_yaml.parse)(t)?.state;
372
+ return typeof s === "string" ? s : void 0;
373
+ } catch {
374
+ return void 0;
375
+ }
376
+ }
377
+ async function stageQuestions(root, change, open) {
378
+ const out = [];
379
+ for (const s of DRAFTING) {
380
+ const t = await readFile(join(changesDirOf(root), change, "stage", `${s}.yaml`), "utf8").catch(() => "");
381
+ let y;
382
+ try {
383
+ y = (0, import_yaml.parse)(t);
384
+ } catch {
385
+ continue;
386
+ }
387
+ if (Array.isArray(y?.questions)) {
388
+ for (const q of y.questions)
389
+ if (typeof q === "string" && open.has(q))
390
+ out.push(q);
391
+ }
392
+ }
393
+ return out;
394
+ }
334
395
  async function isFast(root, c, types) {
335
396
  const type = types.find((t) => t.id === c.type);
336
397
  if (!type || type.size !== "small" && !type.smallWhenBriefSays)
@@ -338,6 +399,25 @@ async function isFast(root, c, types) {
338
399
  const brief = await readFile(join(changesDirOf(root), c.id, "brief.md"), "utf8").catch(() => "");
339
400
  return fastPathOf(type, brief).fast;
340
401
  }
402
+ async function draftMissing(ctx, c) {
403
+ const a = await assess(await ctx(), c);
404
+ return {
405
+ draft: a.blockers.some((b) => b.code === "missing-artifact" && (b.artifact === "proposal" || b.artifact === "specs")),
406
+ brief: a.blockers.some((b) => (b.code === "missing-artifact" || b.code === "unfilled-artifact") && b.artifact === "brief")
407
+ };
408
+ }
409
+ async function blockingOf(ctx, c) {
410
+ const a = await assess(await ctx(), c);
411
+ return a.blockers.filter((b) => b.code === "blocking-finding" || b.code === "open-gap").length;
412
+ }
413
+ async function releasePrsOf(root, id) {
414
+ const reasons = await releasePrReasons(root, id).catch(() => []);
415
+ if (reasons.some((r) => r.code === "release-pr-missing"))
416
+ return { releasePrs: "raise" };
417
+ if (reasons.some((r) => r.code === "release-pr-not-merged"))
418
+ return { releasePrs: "merge" };
419
+ return {};
420
+ }
341
421
  function stageOf(state) {
342
422
  switch (state) {
343
423
  case "draft":
@@ -362,7 +442,7 @@ function changeSteps(c) {
362
442
  const stage = stageSteps(c);
363
443
  const id = c.id;
364
444
  const done = stageOf(c.state) === "done";
365
- const find = c.feature && !c.needs && !done ? [
445
+ const find = c.feature && c.knowledge && !c.needs && !done ? [
366
446
  {
367
447
  step: "needs",
368
448
  command: `atticus change needs ${id}`,
@@ -394,13 +474,89 @@ function changeSteps(c) {
394
474
  repo
395
475
  };
396
476
  });
397
- return [...find, ...seeds, ...stage, ...raise];
477
+ const gate = done ? [] : handoffWait(c);
478
+ if (gate.length)
479
+ return [...gate, ...find, ...raise];
480
+ const asked = done ? [] : questionStep(c);
481
+ const ownDone = (c.stagesDone ?? []).includes(stageOf(c.state));
482
+ return ownDone ? [...seeds, ...stage, ...asked, ...find, ...raise] : [...asked, ...seeds, ...stage, ...find, ...raise];
483
+ }
484
+ function handoffWait(c) {
485
+ const h = c.handoff;
486
+ if (!h)
487
+ return [];
488
+ const id = c.id;
489
+ if (h.state === "changes-requested")
490
+ return [
491
+ {
492
+ step: "handoff",
493
+ command: `atticus change handoff ${id} --approve`,
494
+ where: METAREPO,
495
+ why: `Changes were requested on PR #${h.number} (${id}'s ${h.phase} hand-off): update the work, then a person hands it off again.`,
496
+ change: id,
497
+ person: true,
498
+ ...isManualPrUrl(h.url) ? {} : { pr: h.url }
499
+ }
500
+ ];
501
+ if (isManualPrUrl(h.url))
502
+ return [
503
+ {
504
+ step: "merge",
505
+ command: `atticus todo --change ${id}`,
506
+ where: METAREPO,
507
+ why: `${id}'s ${h.phase} hand-off PR isn't open yet: your Git host is manual, so opening it is a step waiting on you (atticus todo, or Home \u203A Manual steps in the app). Open it on the Git host as its step says, record its link, then sync; merging it approves the ${h.phase} gate.`,
508
+ change: id,
509
+ person: true,
510
+ pr: h.url
511
+ }
512
+ ];
513
+ return [
514
+ {
515
+ step: "merge",
516
+ command: `atticus change sync ${id}`,
517
+ where: METAREPO,
518
+ why: `${id}'s ${h.phase} hand-off PR #${h.number} is raised (${h.url}): a person approves and merges it on the Git host, then syncing moves the change on (ADR 0073).`,
519
+ change: id,
520
+ person: true,
521
+ pr: h.url
522
+ }
523
+ ];
524
+ }
525
+ function questionStep(c) {
526
+ const ids = c.questions ?? [];
527
+ if (!ids.length)
528
+ return [];
529
+ const stage = stageOf(c.state);
530
+ const again = draftingAt(stage) >= 0 ? `Answer ${plural(ids.length, "question")} on Questions (or atticus questions answer <id>), then run the ${c.fast ? "fast path's one step" : `${stage} stage`} again.` : `Its stage goes on once ${ids.length === 1 ? "it is" : "they are"} answered.`;
531
+ return [
532
+ {
533
+ step: "answer",
534
+ command: "atticus questions list --state open",
535
+ slash: "/atticus-answer",
536
+ where: METAREPO,
537
+ why: `${plural(ids.length, "question")} of ${c.id} ${ids.length === 1 ? "is" : "are"} waiting for a person: ${ids.join(", ")}. ${again}`,
538
+ person: true,
539
+ change: c.id
540
+ }
541
+ ];
542
+ }
543
+ function againWhy(c, stage) {
544
+ return c.loop === "questions" && !c.questions?.length ? `The questions the ${stage} stage of ${c.id} asked are answered: run the stage again so it reads the answers (ADR 0087).` : void 0;
398
545
  }
399
546
  function stageSteps(c) {
400
547
  const id = c.id;
401
- const byState = stageOf(c.state);
402
- const at = draftingAt;
403
- const stage = c.openspecStage && at(byState) >= 0 && at(c.openspecStage) > at(byState) ? c.openspecStage : byState;
548
+ const stage = stageOf(c.state);
549
+ if (c.brief && stage === "feature" && !c.stagesDone?.includes("feature"))
550
+ return [
551
+ {
552
+ step: "brief",
553
+ command: c.brief,
554
+ where: METAREPO,
555
+ why: `Write the brief of ${id} (${c.brief}): it still holds only the template. The feature stage places the change on the estate from it.`,
556
+ change: id,
557
+ person: true
558
+ }
559
+ ];
404
560
  if (c.fast && (stage === "feature" || stage === "architecture" || stage === "stories"))
405
561
  return c.fastDone ? [
406
562
  {
@@ -424,6 +580,17 @@ function stageSteps(c) {
424
580
  if ((stage === "feature" || stage === "architecture" || stage === "stories") && c.stagesDone?.includes(stage)) {
425
581
  const later = c.stagesDone.slice(c.stagesDone.indexOf(stage) + 1);
426
582
  const gate = c.state === "returned" ? "define" : c.state;
583
+ if (stage === "feature" && c.undrafted)
584
+ return [
585
+ {
586
+ step: "draft",
587
+ command: `atticus change draft ${id}`,
588
+ slash: `/atticus-draft ${id}`,
589
+ where: METAREPO,
590
+ why: `${id} is placed on the estate, but its proposal or specs aren't written yet: your assistant drafts them, and Atticus checks the draft. Then a person raises the define hand-off.`,
591
+ change: id
592
+ }
593
+ ];
427
594
  return [
428
595
  {
429
596
  step: "handoff",
@@ -443,18 +610,29 @@ function stageSteps(c) {
443
610
  command: `atticus change feature ${id}`,
444
611
  slash: `/atticus-feature ${id}`,
445
612
  where: METAREPO,
446
- why: `${id} is at the feature stage: your assistant places it on the estate's flows and features, and Atticus checks and criticises every draft until nothing blocks (ADR 0087).`,
613
+ why: againWhy(c, "feature") ?? `${id} is at the feature stage: your assistant places it on the estate's flows and features, and Atticus checks and criticises every draft until nothing blocks (ADR 0087).`,
447
614
  change: id
448
615
  }
449
616
  ];
450
617
  case "architecture":
451
618
  return [
619
+ // Fifth UX walk: the architecture stage reads the placed feature; without one it refuses.
620
+ ...c.feature === false ? [
621
+ {
622
+ step: "feature",
623
+ command: `atticus change feature ${id}`,
624
+ slash: `/atticus-feature ${id}`,
625
+ where: METAREPO,
626
+ why: `${id} isn't placed on the estate yet: your assistant places it on the flows and features first, then writes its target flows.`,
627
+ change: id
628
+ }
629
+ ] : [],
452
630
  {
453
631
  step: "architecture",
454
632
  command: `atticus change architecture ${id}`,
455
633
  slash: `/atticus-architecture ${id}`,
456
634
  where: METAREPO,
457
- why: `${id} is at the architecture stage: your assistant writes its target flows, and Atticus checks and criticises every draft until nothing blocks (ADR 0087).`,
635
+ why: againWhy(c, "architecture") ?? `${id} is at the architecture stage: your assistant writes its target flows, and Atticus checks and criticises every draft until nothing blocks (ADR 0087).`,
458
636
  change: id
459
637
  }
460
638
  ];
@@ -465,35 +643,83 @@ function stageSteps(c) {
465
643
  command: `atticus plan stories ${id}`,
466
644
  slash: `/atticus-stories ${id}`,
467
645
  where: METAREPO,
468
- why: `${id} has an approved design: write its stories and tasks.`,
646
+ why: againWhy(c, "stories") ?? `${id} has an approved design: write its stories and tasks.`,
469
647
  change: id
470
648
  }
471
649
  ];
472
650
  case "tasks": {
473
- const t = c.tasks.find((x) => !x.done);
474
- if (!t)
651
+ const underWay = (x) => x.run === "built" || x.run === "unverified" || x.run === "pr-open" || x.run === "waiting";
652
+ const open = c.tasks.filter((x) => !x.done);
653
+ const t = open.find((x) => !underWay(x));
654
+ const drafted = open.filter(underWay).map((x) => x.id);
655
+ const draftedNote = drafted.length ? ` ${drafted.length === 1 ? "Task" : "Tasks"} ${drafted.join(", ")} ${drafted.length === 1 ? "is" : "are"} under way: raise or merge ${drafted.length === 1 ? "its" : "their"} PR on the Task board.` : "";
656
+ if (!t && drafted.length)
475
657
  return [
476
658
  {
477
659
  step: "tasks",
478
660
  command: `atticus change status ${id}`,
479
661
  where: METAREPO,
480
- why: `Every task of ${id} is ticked; the status says what is left before release.`,
662
+ why: `Every task of ${id} not ticked is under way.${draftedNote}`,
481
663
  change: id
482
664
  }
483
665
  ];
666
+ const handoffStep = {
667
+ step: "handoff",
668
+ command: `atticus change handoff ${id} --approve`,
669
+ where: METAREPO,
670
+ why: `Every task of ${id} is ticked: a person raises its ${c.state} hand-off PR, and merging it approves the ${c.state} gate and moves it on (ADR 0073).`,
671
+ change: id,
672
+ person: true
673
+ };
674
+ if (!t && c.blocking)
675
+ return [
676
+ {
677
+ step: "findings",
678
+ command: `atticus change status ${id}`,
679
+ where: METAREPO,
680
+ why: `Every task of ${id} is ticked, but ${plural(c.blocking, "blocking finding")} hold${c.blocking === 1 ? "s" : ""} its ${c.state} hand-off: a person resolves each (Apply fix, Not relevant or Waive, on the change's page), then raises the hand-off PR.`,
681
+ change: id,
682
+ person: true
683
+ },
684
+ handoffStep
685
+ ];
686
+ if (!t)
687
+ return [handoffStep];
484
688
  return [
485
689
  {
486
690
  step: "task",
487
691
  command: `atticus task run ${id} ${t.id}`,
488
692
  slash: `/atticus-task ${id} ${t.id}`,
489
693
  where: METAREPO,
490
- why: `Task ${t.id} of ${id} in ${t.repo} is the first one not done. /atticus-task gives your assistant its context (atticus task context ${id} ${t.id}): the story, the criteria, the step with today's code and the files to change (ADR 0113).`,
694
+ why: `Task ${t.id} of ${id} in ${t.repo} is the first one not done. /atticus-task gives your assistant its context (atticus task context ${id} ${t.id}): the story, the criteria, the step with today's code and the files to change (ADR 0113).${draftedNote}`,
491
695
  repo: t.repo,
492
696
  change: id
493
697
  }
494
698
  ];
495
699
  }
496
700
  case "release":
701
+ if (c.releasePrs === "raise")
702
+ return [
703
+ {
704
+ step: "release-prs",
705
+ command: `atticus change release-prs ${id} --approve`,
706
+ where: METAREPO,
707
+ why: `${id}'s code reaches each repo's default branch through its release PRs: raise them (Release \u203A Raise the release PRs), then a person merges each on the Git host.`,
708
+ person: true,
709
+ change: id
710
+ }
711
+ ];
712
+ if (c.releasePrs === "merge")
713
+ return [
714
+ {
715
+ step: "release-prs-merge",
716
+ command: `atticus change sync ${id}`,
717
+ where: METAREPO,
718
+ why: `${id}'s release PRs wait on a person on the Git host: merge each, then Sync records it (Release).`,
719
+ person: true,
720
+ change: id
721
+ }
722
+ ];
497
723
  return [
498
724
  {
499
725
  step: "release",
@@ -508,7 +734,9 @@ function stageSteps(c) {
508
734
  return [];
509
735
  }
510
736
  }
511
- function changeAnswer(id, ids) {
737
+ function changeAnswer(c, filed) {
738
+ const id = c.id;
739
+ const ids = filed.filter((q) => !c.questions?.includes(q));
512
740
  if (!ids.length)
513
741
  return [];
514
742
  return [
@@ -537,8 +765,11 @@ function nextSteps(s) {
537
765
  const byChange = s.changeQuestions ?? {};
538
766
  const inHand = s.active ? s.changes.find((c) => c.id === s.active) : void 0;
539
767
  if (inHand && stageOf(inHand.state) !== "done")
540
- out.push(...changeAnswer(inHand.id, byChange[inHand.id] ?? []), ...changeSteps(inHand));
541
- const ofChanges = new Set(Object.values(byChange).flat());
768
+ out.push(...changeAnswer(inHand, byChange[inHand.id] ?? []), ...changeSteps(inHand));
769
+ const ofChanges = /* @__PURE__ */ new Set([
770
+ ...Object.values(byChange).flat(),
771
+ ...s.changes.filter((c) => stageOf(c.state) !== "done").flatMap((c) => c.questions ?? [])
772
+ ]);
542
773
  const repoQuestions = s.openQuestions.filter((id) => !ofChanges.has(id));
543
774
  if (s.repos.length === 0 && !inHand) {
544
775
  out.push({
@@ -727,7 +958,7 @@ function nextSteps(s) {
727
958
  const inFlight = s.changes.filter((c) => stageOf(c.state) !== "done");
728
959
  for (const c of inFlight)
729
960
  if (c !== inHand)
730
- out.push(...changeAnswer(c.id, byChange[c.id] ?? []), ...changeSteps(c));
961
+ out.push(...changeAnswer(c, byChange[c.id] ?? []), ...changeSteps(c));
731
962
  if (!inFlight.length)
732
963
  out.push({
733
964
  step: "new-change",
@@ -829,7 +1060,6 @@ function queueOut(s, o, io) {
829
1060
  }
830
1061
 
831
1062
  export {
832
- canMoveOn,
833
1063
  readNextState,
834
1064
  changeSteps,
835
1065
  nextSteps,
@@ -7,29 +7,29 @@ import {
7
7
  ConformError,
8
8
  conformChange,
9
9
  conformanceOf
10
- } from "./chunk-GTW54D3D.js";
11
- import "./chunk-2ZICHO3V.js";
12
- import "./chunk-BAXM3JFQ.js";
13
- import "./chunk-YC2K3FJG.js";
14
- import "./chunk-TAKAEJRD.js";
15
- import "./chunk-XO5RQKNM.js";
16
- import "./chunk-L3T33FA7.js";
17
- import "./chunk-VEJYZEPC.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-YXUIUOQZ.js";
28
- import "./chunk-ZQC7MNQB.js";
29
- import "./chunk-TLDL2ZZI.js";
30
- import "./chunk-QNMLLYTN.js";
31
- import "./chunk-YK6CSODO.js";
32
- import "./chunk-MMB2OHUY.js";
10
+ } from "./chunk-Y6K3CJBU.js";
11
+ import "./chunk-EZIN5E5B.js";
12
+ import "./chunk-3LZ6P5EP.js";
13
+ import "./chunk-YWAKDNMH.js";
14
+ import "./chunk-3AQ2R5NL.js";
15
+ import "./chunk-BEPCKDCP.js";
16
+ import "./chunk-HWD4JPU7.js";
17
+ import "./chunk-5WERBKLE.js";
18
+ import "./chunk-K332XW7K.js";
19
+ import "./chunk-HSZMPH5T.js";
20
+ import "./chunk-D2WSW4GU.js";
21
+ import "./chunk-4KNOJC6J.js";
22
+ import "./chunk-4SLBCEPD.js";
23
+ import "./chunk-64AADMTW.js";
24
+ import "./chunk-JYMIB5XY.js";
25
+ import "./chunk-CPK7QSBG.js";
26
+ import "./chunk-YO2PKTXT.js";
27
+ import "./chunk-TWQRPM76.js";
28
+ import "./chunk-XOL3GFW2.js";
29
+ import "./chunk-QHJJMZLX.js";
30
+ import "./chunk-7AB6OWTV.js";
31
+ import "./chunk-PAINMSID.js";
32
+ import "./chunk-ODMBPDDV.js";
33
33
  import "./chunk-TV45EUGM.js";
34
34
 
35
35
  // packages/cli/dist/change-conform.js
@@ -94,7 +94,7 @@ async function changeConformCommand(root, change, o, io) {
94
94
  return 1;
95
95
  print(run.results, io);
96
96
  io.out(bad ? `The findings are on the conform gate${run.round ? ` (round ${run.round})` : ""}: atticus findings ${change} lists them; dismiss one with atticus finding ${change} <id> not-relevant --reason "...".` : "The code has everything its target flows add, and nothing they don't name.");
97
- return bad ? 1 : 0;
97
+ return bad && !o.findingsAnswer ? 1 : 0;
98
98
  } catch (e) {
99
99
  if (e instanceof ConformError) {
100
100
  io.err(e.message);
@@ -0,0 +1,66 @@
1
+ import { createRequire as __atticusCreateRequire } from "node:module";
2
+ import { fileURLToPath as __atticusFileURLToPath } from "node:url";
3
+ var require = __atticusCreateRequire(import.meta.url);
4
+ var __atticusUrl = (p) => new URL("./" + p, import.meta.url).href;
5
+ var __atticusPath = (p) => __atticusFileURLToPath(__atticusUrl(p));
6
+ import {
7
+ assistantFiles,
8
+ describeRun,
9
+ driftCommand,
10
+ runDone,
11
+ specHandDown,
12
+ specHandUp,
13
+ taskHandoff,
14
+ taskRun,
15
+ taskRunNotWaiting
16
+ } from "./chunk-AOCWFA7T.js";
17
+ import {
18
+ isTaskRun
19
+ } from "./chunk-Y6K3CJBU.js";
20
+ import "./chunk-IFHDV6KQ.js";
21
+ import "./chunk-LQH4P45K.js";
22
+ import "./chunk-P2VBXX7N.js";
23
+ import "./chunk-ZX7235KR.js";
24
+ import "./chunk-EZIN5E5B.js";
25
+ import "./chunk-3LZ6P5EP.js";
26
+ import "./chunk-YWAKDNMH.js";
27
+ import "./chunk-3AQ2R5NL.js";
28
+ import "./chunk-PTQ3ZALZ.js";
29
+ import "./chunk-A2G72UI4.js";
30
+ import "./chunk-I2A3Z5AK.js";
31
+ import "./chunk-F6H2RJ3N.js";
32
+ import "./chunk-BEPCKDCP.js";
33
+ import "./chunk-HWD4JPU7.js";
34
+ import "./chunk-5WERBKLE.js";
35
+ import "./chunk-VOGCSYOI.js";
36
+ import "./chunk-K332XW7K.js";
37
+ import "./chunk-HSZMPH5T.js";
38
+ import "./chunk-D2WSW4GU.js";
39
+ import "./chunk-4KNOJC6J.js";
40
+ import "./chunk-4SLBCEPD.js";
41
+ import "./chunk-64AADMTW.js";
42
+ import "./chunk-JYMIB5XY.js";
43
+ import "./chunk-CPK7QSBG.js";
44
+ import "./chunk-YO2PKTXT.js";
45
+ import "./chunk-TWQRPM76.js";
46
+ import "./chunk-XOL3GFW2.js";
47
+ import {
48
+ runtimeForCli
49
+ } from "./chunk-QHJJMZLX.js";
50
+ import "./chunk-7AB6OWTV.js";
51
+ import "./chunk-PAINMSID.js";
52
+ import "./chunk-ODMBPDDV.js";
53
+ import "./chunk-TV45EUGM.js";
54
+ export {
55
+ assistantFiles,
56
+ describeRun,
57
+ driftCommand,
58
+ isTaskRun,
59
+ runDone,
60
+ runtimeForCli,
61
+ specHandDown,
62
+ specHandUp,
63
+ taskHandoff,
64
+ taskRun,
65
+ taskRunNotWaiting
66
+ };
@@ -28,9 +28,9 @@ import {
28
28
  stampEvidence,
29
29
  tooLargeMessage,
30
30
  withParseCache
31
- } from "./chunk-TLDL2ZZI.js";
32
- import "./chunk-YK6CSODO.js";
33
- import "./chunk-MMB2OHUY.js";
31
+ } from "./chunk-7AB6OWTV.js";
32
+ import "./chunk-PAINMSID.js";
33
+ import "./chunk-ODMBPDDV.js";
34
34
  import "./chunk-TV45EUGM.js";
35
35
  export {
36
36
  DEFAULT_IGNORES,