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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (280) hide show
  1. package/dist/bin.js +3 -3
  2. package/dist/{chunk-TJH2EUAZ.js → chunk-23XVSEV5.js} +20 -18
  3. package/dist/{chunk-BXBCMGIQ.js → chunk-24OXGB3P.js} +1 -1
  4. package/dist/{chunk-DCWN3HFV.js → chunk-24XLDU72.js} +4 -3
  5. package/dist/{chunk-Q46QDDMF.js → chunk-2F4CYZKJ.js} +14 -9
  6. package/dist/{chunk-75ASLHBT.js → chunk-2GF7OLF3.js} +17 -15
  7. package/dist/chunk-2IIMFOPM.js +41 -0
  8. package/dist/{chunk-JRVNXLZP.js → chunk-2LGRMVCA.js} +14 -12
  9. package/dist/{chunk-62DLJSLV.js → chunk-2MMCFP5C.js} +10 -8
  10. package/dist/{chunk-UF4UHCIG.js → chunk-2Q56PQPS.js} +6 -4
  11. package/dist/{chunk-5TDRBOAV.js → chunk-2Q5EDGEO.js} +7 -5
  12. package/dist/{chunk-NYOABJNK.js → chunk-2RLKFUUL.js} +26 -24
  13. package/dist/chunk-2SKB4O2E.js +59 -0
  14. package/dist/{chunk-GCS3FZOB.js → chunk-34S2WGOB.js} +13 -4
  15. package/dist/{chunk-7AB6OWTV.js → chunk-3NFFJL5D.js} +31 -25
  16. package/dist/{chunk-GC2VK3JT.js → chunk-3NWDLGG6.js} +28 -25
  17. package/dist/{chunk-FLVZFTLQ.js → chunk-3RM4UK6W.js} +20 -18
  18. package/dist/{chunk-CNU5Q2D5.js → chunk-42SIDKEU.js} +37 -29
  19. package/dist/{chunk-K6JB6XTX.js → chunk-4EURQWQD.js} +20 -15
  20. package/dist/{chunk-OMPENNWY.js → chunk-4U276ICE.js} +1 -1
  21. package/dist/{chunk-JAABT3DA.js → chunk-53T4O55J.js} +4 -3
  22. package/dist/{chunk-YTTNTQOX.js → chunk-57TDNMI3.js} +17 -15
  23. package/dist/chunk-5BD2KYLE.js +57 -0
  24. package/dist/{chunk-7EFILTCI.js → chunk-5F7GFN2F.js} +28 -0
  25. package/dist/{chunk-KYZMRSPS.js → chunk-5NMKONLP.js} +5 -3
  26. package/dist/{chunk-5CMPVC3N.js → chunk-5SJZW52K.js} +25 -23
  27. package/dist/{chunk-YAH5IQAL.js → chunk-63YRMR6J.js} +6 -5
  28. package/dist/{chunk-GUYL7RMK.js → chunk-66PPNOON.js} +27 -25
  29. package/dist/chunk-6H3Z5JHH.js +64 -0
  30. package/dist/{chunk-Y6K3CJBU.js → chunk-6MUGR4LS.js} +75 -27
  31. package/dist/{chunk-DDJPM5YX.js → chunk-6OJQOPUN.js} +5 -3
  32. package/dist/{chunk-2V2ZPQQU.js → chunk-6PPOWY5E.js} +9 -7
  33. package/dist/{chunk-YO2PKTXT.js → chunk-6ZGLAACW.js} +5 -3
  34. package/dist/{chunk-LIJJCBQI.js → chunk-6ZJ5A7AF.js} +15 -16
  35. package/dist/{chunk-64AADMTW.js → chunk-745DAZ4L.js} +50 -12
  36. package/dist/{chunk-VYOCPTUB.js → chunk-7ASNL4Q4.js} +17 -15
  37. package/dist/{chunk-XEQCQO66.js → chunk-7BR7IPOH.js} +10 -8
  38. package/dist/{chunk-X2CUXTWU.js → chunk-7DOR27HL.js} +6 -6
  39. package/dist/{chunk-G6IQYM25.js → chunk-7FTTA3HD.js} +8 -6
  40. package/dist/{chunk-FAJDKNSD.js → chunk-7GJS6DNX.js} +8 -3
  41. package/dist/{chunk-4KNOJC6J.js → chunk-7IGKHZ4Z.js} +55 -13
  42. package/dist/{chunk-3WON4G3M.js → chunk-7IOWA5D5.js} +11 -6
  43. package/dist/{chunk-PNQLCRSS.js → chunk-7JITZFJC.js} +7 -5
  44. package/dist/{chunk-2D7PWSOK.js → chunk-7MJSQTL5.js} +22 -20
  45. package/dist/{chunk-AE4P57KK.js → chunk-7UOMVMFG.js} +17 -15
  46. package/dist/{chunk-GK4PYVEC.js → chunk-AFWUDXEM.js} +10 -8
  47. package/dist/chunk-AFZ3QA6W.js +47 -0
  48. package/dist/{chunk-7FUIVIBG.js → chunk-AJQ72EBM.js} +13 -8
  49. package/dist/{chunk-QOOEYDNJ.js → chunk-AJYXNTNZ.js} +6 -6
  50. package/dist/chunk-AVTBS4OW.js +49 -0
  51. package/dist/{chunk-WFU77T3A.js → chunk-BDKC6H5P.js} +5 -5
  52. package/dist/{chunk-3AQ2R5NL.js → chunk-BEVTIBRH.js} +9 -7
  53. package/dist/{chunk-J5AAZ6OJ.js → chunk-BHT7QK4G.js} +5 -4
  54. package/dist/{chunk-UFE36WJH.js → chunk-BIGDQDHD.js} +6 -4
  55. package/dist/{chunk-WNTIOBOG.js → chunk-BO4KX37X.js} +20 -18
  56. package/dist/{chunk-455SYIIE.js → chunk-BPK5P77O.js} +5 -3
  57. package/dist/{chunk-OZJ3JLYI.js → chunk-BQ4SQQC6.js} +10 -9
  58. package/dist/chunk-BQGDB6ZL.js +7342 -0
  59. package/dist/{chunk-EZIN5E5B.js → chunk-BTGPE6CR.js} +11 -9
  60. package/dist/{chunk-265LWMOA.js → chunk-BTY3HZBO.js} +18 -16
  61. package/dist/{chunk-TW3KOSQK.js → chunk-BXYMYEJ4.js} +7 -6
  62. package/dist/{chunk-HK3VOHIE.js → chunk-C3RY6KU6.js} +119 -18
  63. package/dist/chunk-C4R4JLHE.js +40 -0
  64. package/dist/{chunk-Z3QFH7YG.js → chunk-CADWLE2T.js} +5 -4
  65. package/dist/{chunk-J2O4LFVI.js → chunk-CBGGOQWU.js} +6 -4
  66. package/dist/chunk-CMDXGQTS.js +47 -0
  67. package/dist/{chunk-TWQRPM76.js → chunk-CQDGOPGH.js} +23 -16
  68. package/dist/{chunk-5PV7S2ZP.js → chunk-CX4RZ2KS.js} +4 -3
  69. package/dist/{chunk-JYMIB5XY.js → chunk-CXJ6FUKN.js} +164 -44
  70. package/dist/{chunk-D57MFJPP.js → chunk-D73UEXYW.js} +3 -3
  71. package/dist/{chunk-UYLBRRFK.js → chunk-DCZWQLYT.js} +125 -26
  72. package/dist/chunk-DLOBCJL6.js +48 -0
  73. package/dist/{chunk-IFHDV6KQ.js → chunk-DOBQKHIF.js} +23 -23
  74. package/dist/{chunk-QJCJOMW3.js → chunk-E3ISYXO3.js} +19 -21
  75. package/dist/{chunk-VAMHOHUU.js → chunk-E6ZIEVOI.js} +16 -13
  76. package/dist/{chunk-EFCQSMXB.js → chunk-EBL2R3YG.js} +10 -4
  77. package/dist/{chunk-HGHRSF3E.js → chunk-EGQRREQH.js} +25 -17
  78. package/dist/{chunk-3J5I7ZOU.js → chunk-EHA7RMZ3.js} +4 -4
  79. package/dist/{chunk-7CZHUZBL.js → chunk-EIPTLPFC.js} +38 -27
  80. package/dist/{chunk-UZACEG2C.js → chunk-EMRIQUND.js} +17 -15
  81. package/dist/{chunk-RALY3E5U.js → chunk-EPCJQQWD.js} +6 -4
  82. package/dist/{chunk-VUVGX5L2.js → chunk-F3P7N7SF.js} +1 -1
  83. package/dist/{chunk-RA33EYS4.js → chunk-FFLNS6VP.js} +19 -17
  84. package/dist/{chunk-OPQZISG3.js → chunk-FFTRTL6R.js} +5 -4
  85. package/dist/{chunk-DUPZPDCJ.js → chunk-FPJPLKDW.js} +18 -14
  86. package/dist/{chunk-2HH3UCZM.js → chunk-FSMSFDLD.js} +5 -4
  87. package/dist/{chunk-AHW3RY3X.js → chunk-FUJM6RTF.js} +8 -7
  88. package/dist/{chunk-2UCRFXFZ.js → chunk-FZOJFH7Q.js} +13 -11
  89. package/dist/{chunk-BVWWPBKD.js → chunk-G6X77UJZ.js} +20 -18
  90. package/dist/{chunk-BPPU3PW7.js → chunk-GCWRWSU7.js} +10 -4
  91. package/dist/chunk-GIW4ZVDB.js +39 -0
  92. package/dist/{chunk-FY3QIRTL.js → chunk-GUX3PTYM.js} +3 -3
  93. package/dist/{chunk-BA2HUMDN.js → chunk-GZY6RUZ6.js} +2 -2
  94. package/dist/chunk-H4VO6WG3.js +10 -0
  95. package/dist/{chunk-UEVZZZU2.js → chunk-H5HBGNXU.js} +5 -4
  96. package/dist/{chunk-GS76RXQE.js → chunk-H7KM7LZE.js} +15 -12
  97. package/dist/{chunk-I2A3Z5AK.js → chunk-HNM2YQT2.js} +4 -4
  98. package/dist/{chunk-3UTYPHN3.js → chunk-HYU5VLGA.js} +1 -1
  99. package/dist/{chunk-HSZMPH5T.js → chunk-IDKCWSM5.js} +225 -50
  100. package/dist/{chunk-BXZ4PKIT.js → chunk-IFKEI4SA.js} +15 -11
  101. package/dist/{chunk-XG4WJHLQ.js → chunk-IGOE6KPG.js} +49 -20
  102. package/dist/{chunk-GNWAOVFQ.js → chunk-IH2XURVQ.js} +5 -5
  103. package/dist/{chunk-YIGBJNH4.js → chunk-INQHESFB.js} +5 -4
  104. package/dist/chunk-IP74LCOQ.js +57 -0
  105. package/dist/chunk-IPHHDDC6.js +45 -0
  106. package/dist/{chunk-5WERBKLE.js → chunk-ISUAAMGS.js} +42 -221
  107. package/dist/{chunk-7FHNFCHK.js → chunk-IUPG3UKI.js} +154 -368
  108. package/dist/{chunk-HWD4JPU7.js → chunk-IVBOQAGB.js} +4 -2
  109. package/dist/{chunk-4SLBCEPD.js → chunk-J2JAKCIW.js} +88 -57
  110. package/dist/{chunk-G5YJBNDZ.js → chunk-J3IOLXWM.js} +8 -6
  111. package/dist/{chunk-FQ6WH6PB.js → chunk-JA5FI3QV.js} +6 -4
  112. package/dist/chunk-JAVI7JSP.js +49 -0
  113. package/dist/{chunk-ZFQMMU5Y.js → chunk-JB5LINEM.js} +6 -2
  114. package/dist/{chunk-LQH4P45K.js → chunk-JENSEMXF.js} +1 -1
  115. package/dist/{chunk-M6D2U3YM.js → chunk-JJF6HALY.js} +4 -3
  116. package/dist/chunk-JLUCKAEL.js +38 -0
  117. package/dist/{chunk-M4H2UG4R.js → chunk-JRBFANFE.js} +19 -16
  118. package/dist/{chunk-YZDZOEV4.js → chunk-KDNTAPLX.js} +3 -3
  119. package/dist/{chunk-IFFRGC3N.js → chunk-KFAVQZSX.js} +14 -12
  120. package/dist/chunk-KJXD4PNL.js +50 -0
  121. package/dist/chunk-KN5BXMWN.js +44 -0
  122. package/dist/{chunk-HXXP2NTE.js → chunk-KQGURXFU.js} +9 -7
  123. package/dist/{chunk-PQH56YF6.js → chunk-KXITGYLF.js} +6 -4
  124. package/dist/{chunk-MMZUN7ZO.js → chunk-L27SV425.js} +22 -20
  125. package/dist/{chunk-XQ3YZ4QW.js → chunk-LDLL7LB3.js} +24 -22
  126. package/dist/{chunk-6DQYZU2W.js → chunk-LFGTYX5U.js} +15 -15
  127. package/dist/{chunk-4D62IZII.js → chunk-LGBMTVNT.js} +7 -5
  128. package/dist/{chunk-YKTE2RU3.js → chunk-LGFL54FP.js} +3 -2
  129. package/dist/{chunk-GDZB57IU.js → chunk-LJXMYKZJ.js} +7 -5
  130. package/dist/{chunk-YJ3TBOTK.js → chunk-LKOR5UET.js} +29 -26
  131. package/dist/{chunk-WIWTJMMR.js → chunk-LNBQOP7D.js} +23 -21
  132. package/dist/{chunk-TGVVUKTG.js → chunk-LO6P2VYG.js} +2 -2
  133. package/dist/{chunk-HE3HRDNZ.js → chunk-LQJPN536.js} +2 -2
  134. package/dist/{chunk-PRW3HXM3.js → chunk-LYBNHMVZ.js} +29 -5
  135. package/dist/{chunk-75ZOZFGH.js → chunk-LZ7NUC62.js} +20 -18
  136. package/dist/chunk-M32BLWDH.js +37 -0
  137. package/dist/{chunk-QKMRFNMA.js → chunk-M3NANSDZ.js} +17 -15
  138. package/dist/chunk-MFHL5URL.js +31 -0
  139. package/dist/{chunk-TYD6I4CZ.js → chunk-MFR5OPBD.js} +6 -6
  140. package/dist/{chunk-LIRVU3HW.js → chunk-MG4ZL5RW.js} +32 -20
  141. package/dist/{chunk-ICHDSWEY.js → chunk-MO6P2JZH.js} +10 -8
  142. package/dist/{chunk-3LZ6P5EP.js → chunk-MUWDB4R4.js} +1 -1
  143. package/dist/{chunk-E57AOFYN.js → chunk-MZCGSXVR.js} +15 -13
  144. package/dist/{chunk-77O633L5.js → chunk-N3XIYPU3.js} +14 -12
  145. package/dist/{chunk-CG6CULP6.js → chunk-NDCF4R6S.js} +7 -5
  146. package/dist/{chunk-JS6WMC3J.js → chunk-NR2UJWOC.js} +10 -8
  147. package/dist/chunk-NXJ5URP6.js +51 -0
  148. package/dist/{chunk-NTAVOWYD.js → chunk-NY2XSR5K.js} +20 -18
  149. package/dist/{chunk-PUEWDYGP.js → chunk-O45HFTFS.js} +3 -2
  150. package/dist/{chunk-URIKUID7.js → chunk-O4GXGGBX.js} +14 -12
  151. package/dist/{chunk-C7CEK3KW.js → chunk-O5PXQR67.js} +7 -5
  152. package/dist/{chunk-E2VXBSIR.js → chunk-O66DM6DJ.js} +6 -4
  153. package/dist/{chunk-P2VBXX7N.js → chunk-O7FDLW7L.js} +11 -9
  154. package/dist/{chunk-COYN3UAN.js → chunk-O7XLYEFA.js} +59 -22
  155. package/dist/{chunk-5QUOPNLN.js → chunk-OHNCWBKF.js} +4 -4
  156. package/dist/{chunk-AZDITBCT.js → chunk-OHVTTOPS.js} +3 -3
  157. package/dist/chunk-OMI6FPPN.js +43 -0
  158. package/dist/chunk-ONUPY3H6.js +53 -0
  159. package/dist/chunk-OTLDSZDV.js +69 -0
  160. package/dist/{chunk-L4CESDPB.js → chunk-OUBGGKDU.js} +1 -1
  161. package/dist/{chunk-4FOAYLI4.js → chunk-OWNCM4ZN.js} +9 -7
  162. package/dist/{chunk-4B6BT75O.js → chunk-P2V7QW4D.js} +81 -24
  163. package/dist/{chunk-QHJJMZLX.js → chunk-P32RUW3B.js} +167 -92
  164. package/dist/{chunk-F6H2RJ3N.js → chunk-PAQ2AS5E.js} +1 -1
  165. package/dist/{chunk-ZLS6PU2O.js → chunk-PBPBMP2B.js} +4 -3
  166. package/dist/{chunk-ZOSD4FXV.js → chunk-PJSJPMJI.js} +3 -3
  167. package/dist/{chunk-XOL3GFW2.js → chunk-PKBHS4AA.js} +68 -31
  168. package/dist/{chunk-ZZFHLRQW.js → chunk-PMUAJGLI.js} +18 -16
  169. package/dist/{chunk-SH27FYPF.js → chunk-PPD7HTDP.js} +20 -18
  170. package/dist/chunk-PSOFBQWB.js +42 -0
  171. package/dist/{chunk-PAINMSID.js → chunk-Q2TECDIT.js} +987 -7619
  172. package/dist/{chunk-LU4MQVAL.js → chunk-Q4K5WB2W.js} +11 -10
  173. package/dist/{chunk-ECLXZWAG.js → chunk-Q6DFNVRJ.js} +14 -12
  174. package/dist/chunk-QA4O2GGC.js +265 -0
  175. package/dist/{chunk-4WXRPQDE.js → chunk-QAXW2N3B.js} +182 -33
  176. package/dist/{chunk-WCEF7H6L.js → chunk-QFWA2DPH.js} +8 -5
  177. package/dist/{chunk-CPK7QSBG.js → chunk-QKUJMING.js} +8 -6
  178. package/dist/{chunk-LEBR5NHW.js → chunk-R44CYFPV.js} +18 -15
  179. package/dist/{chunk-BEPCKDCP.js → chunk-R7NYHMUU.js} +153 -84
  180. package/dist/{chunk-G6X4YL4D.js → chunk-REWWDVQB.js} +5 -4
  181. package/dist/{chunk-LN77DXBM.js → chunk-RGERPOIV.js} +10 -10
  182. package/dist/{chunk-UDXWIPCB.js → chunk-RLDGWLQ7.js} +9 -7
  183. package/dist/chunk-RUGXBPWI.js +384 -0
  184. package/dist/{chunk-FYBF5MB2.js → chunk-RXPJMEOW.js} +13 -11
  185. package/dist/{chunk-K332XW7K.js → chunk-S4PMJU6H.js} +20 -9
  186. package/dist/{chunk-THN26IEF.js → chunk-S7FCV7S5.js} +4 -1
  187. package/dist/{chunk-OV57AHCG.js → chunk-SDKLKB6I.js} +26 -24
  188. package/dist/{chunk-O4IKAIZ2.js → chunk-SFSPGFCV.js} +28 -22
  189. package/dist/{chunk-TQ4TG57V.js → chunk-SFUP7TTO.js} +4 -4
  190. package/dist/{chunk-YBOVNMHC.js → chunk-SLXZOMA6.js} +29 -16
  191. package/dist/{chunk-LWDNKE4X.js → chunk-SQV37XO2.js} +6 -6
  192. package/dist/{chunk-67BP7HXL.js → chunk-SU74NDMQ.js} +19 -17
  193. package/dist/{chunk-JKIGL3XQ.js → chunk-SYV5LHML.js} +36 -33
  194. package/dist/chunk-T4YPZIQN.js +36 -0
  195. package/dist/{chunk-GX74YWR7.js → chunk-T6DQR5TV.js} +16 -14
  196. package/dist/{chunk-LNWEWYCM.js → chunk-THDMSZ3R.js} +345 -253
  197. package/dist/{chunk-NCB6656Z.js → chunk-TNR75OXT.js} +7 -7
  198. package/dist/{chunk-ODMBPDDV.js → chunk-TUULXQRW.js} +124 -2
  199. package/dist/{chunk-MD7KUEJ3.js → chunk-TYQBFTBR.js} +9 -7
  200. package/dist/chunk-U76OWS3Q.js +49 -0
  201. package/dist/{chunk-GSGIZ2OO.js → chunk-UCROWG2D.js} +27 -24
  202. package/dist/{chunk-PTQ3ZALZ.js → chunk-UF4AZOZB.js} +14 -12
  203. package/dist/{chunk-QE527XRY.js → chunk-UF4GLFBX.js} +26 -23
  204. package/dist/{chunk-YWAKDNMH.js → chunk-UGUP3ZM6.js} +70 -19
  205. package/dist/{chunk-3G6S7LAA.js → chunk-UNAGJYET.js} +14 -12
  206. package/dist/{chunk-EDZ45WIR.js → chunk-UOR2DTHH.js} +16 -14
  207. package/dist/{chunk-42EPP7OB.js → chunk-UPOY4YSQ.js} +14 -12
  208. package/dist/{chunk-API5TOUB.js → chunk-UPS2DGFC.js} +1 -1
  209. package/dist/{chunk-D2WSW4GU.js → chunk-UUU4CLJG.js} +4 -2
  210. package/dist/{chunk-ZKYRDV7A.js → chunk-UWMJKX5U.js} +14 -12
  211. package/dist/{chunk-HS4BGB4G.js → chunk-UWOJLHFT.js} +25 -23
  212. package/dist/{chunk-OKUB6RJA.js → chunk-VBTP56CE.js} +8 -6
  213. package/dist/{chunk-3SSTNB4E.js → chunk-VCTWPLAO.js} +34 -14
  214. package/dist/{chunk-YF5DZCPN.js → chunk-VNU26RCO.js} +37 -34
  215. package/dist/{chunk-AOCWFA7T.js → chunk-VTZMAJ3W.js} +8 -8
  216. package/dist/{chunk-ZQLRCA2V.js → chunk-VW62D6QE.js} +10 -8
  217. package/dist/{chunk-WAZEXEJH.js → chunk-VY72R2XZ.js} +45 -2
  218. package/dist/{chunk-WEOMJHPV.js → chunk-VZALIKIF.js} +18 -15
  219. package/dist/{chunk-TSM6T6GQ.js → chunk-W62H2XSO.js} +25 -23
  220. package/dist/{chunk-BC6KKZ67.js → chunk-W7VWI2YH.js} +9 -6
  221. package/dist/{chunk-LO3BLMVG.js → chunk-WERM6KPJ.js} +7 -4
  222. package/dist/{chunk-36RY7ZXM.js → chunk-WF7B67YE.js} +88 -26
  223. package/dist/{chunk-TQTRWENN.js → chunk-WG5U3F5V.js} +14 -12
  224. package/dist/{chunk-NRQ65LTQ.js → chunk-WJF2CS6M.js} +6 -5
  225. package/dist/{chunk-FVMPFCDS.js → chunk-WKUJ3KPV.js} +4 -4
  226. package/dist/{chunk-BA3U7ALS.js → chunk-WMTRHUI5.js} +26 -22
  227. package/dist/chunk-WNKPRSGI.js +36 -0
  228. package/dist/{chunk-GIFMBCTW.js → chunk-WXFLMQSR.js} +10 -8
  229. package/dist/{chunk-JYTIHTIK.js → chunk-X3WY6MN3.js} +4 -4
  230. package/dist/{chunk-S2RY3BOD.js → chunk-X4CXA2IL.js} +31 -21
  231. package/dist/{chunk-26Z7OGQW.js → chunk-X5F3Q5LV.js} +60 -30
  232. package/dist/{chunk-4CLK2RJO.js → chunk-XD75VZIH.js} +6 -4
  233. package/dist/{chunk-KDAHXQIE.js → chunk-XERYFDB5.js} +37 -34
  234. package/dist/{chunk-U3NBK4EU.js → chunk-XI2LCCYQ.js} +8 -8
  235. package/dist/{chunk-MZGRDONP.js → chunk-Y2EQNWKV.js} +55 -38
  236. package/dist/{chunk-A2G72UI4.js → chunk-YHCMZC2J.js} +7 -7
  237. package/dist/{chunk-4TKVU2I2.js → chunk-YYY3AZFE.js} +2 -2
  238. package/dist/{chunk-2HTEMYTB.js → chunk-Z5IA3WDR.js} +17 -15
  239. package/dist/{chunk-FRHD22WM.js → chunk-ZFFYNRIO.js} +25 -23
  240. package/dist/{chunk-6EXDI5GI.js → chunk-ZFL7NY4F.js} +43 -40
  241. package/dist/{chunk-4PYC2UGC.js → chunk-ZGULQAPZ.js} +7 -4
  242. package/dist/{chunk-4SKZDI62.js → chunk-ZIUFM5HT.js} +3 -1
  243. package/dist/{chunk-CNPY4NTZ.js → chunk-ZJFRMSJT.js} +15 -13
  244. package/dist/{chunk-Q26LDIUV.js → chunk-ZJXLNDH4.js} +18 -15
  245. package/dist/{chunk-LPV6T362.js → chunk-ZQ3ON2VQ.js} +8 -6
  246. package/dist/{chunk-ZX7235KR.js → chunk-ZQ7SKESZ.js} +44 -383
  247. package/dist/{chunk-7QPCGTPS.js → chunk-ZQXZ2SES.js} +24 -21
  248. package/dist/{chunk-4CYTJ5TZ.js → chunk-ZX57KSEQ.js} +4 -3
  249. package/dist/{chunk-37WE3LS2.js → chunk-ZZK56BLP.js} +5 -3
  250. package/dist/files.json +533 -509
  251. package/dist/packages/sdk/npm/index.js +448 -67
  252. package/dist/packages/ui/dist/assets/{elk-api-CowTnhEJ.js → elk-api-CIf-0gz5.js} +2 -2
  253. package/dist/packages/ui/dist/assets/index-CoK_Dl0D.js +47 -0
  254. package/dist/packages/ui/dist/index.html +2 -1
  255. package/package.json +4 -4
  256. package/dist/chunk-26WBY34Y.js +0 -37
  257. package/dist/chunk-3TD6S4TC.js +0 -49
  258. package/dist/chunk-5G7ILBUG.js +0 -66
  259. package/dist/chunk-6FNAKCET.js +0 -38
  260. package/dist/chunk-AM6FP6JW.js +0 -43
  261. package/dist/chunk-CFH3QH26.js +0 -29
  262. package/dist/chunk-CLD4RVTA.js +0 -45
  263. package/dist/chunk-D5KV5PSK.js +0 -45
  264. package/dist/chunk-D5MASS4I.js +0 -48
  265. package/dist/chunk-DN4A2Q2O.js +0 -57
  266. package/dist/chunk-FGAGWYZB.js +0 -47
  267. package/dist/chunk-JITJP64K.js +0 -34
  268. package/dist/chunk-JRXHON4E.js +0 -41
  269. package/dist/chunk-JU4QNJSR.js +0 -62
  270. package/dist/chunk-N3RUGTGV.js +0 -39
  271. package/dist/chunk-PKJAV25S.js +0 -43
  272. package/dist/chunk-PRTBPXYA.js +0 -50
  273. package/dist/chunk-PRZ7KMWL.js +0 -42
  274. package/dist/chunk-QSIDVFB7.js +0 -45
  275. package/dist/chunk-SB5GRUFM.js +0 -54
  276. package/dist/chunk-T74WQQGS.js +0 -40
  277. package/dist/chunk-X7EMBM5X.js +0 -34
  278. package/dist/chunk-Z6VLC5X4.js +0 -36
  279. package/dist/chunk-ZPDDEVQX.js +0 -47
  280. package/dist/packages/ui/dist/assets/index-z2wv0d5d.js +0 -47
@@ -15,16 +15,17 @@ import {
15
15
  inAcpSession,
16
16
  proposalsSnapshot,
17
17
  undoBatch
18
- } from "./chunk-UYLBRRFK.js";
19
- import "./chunk-THN26IEF.js";
20
- import "./chunk-Q46QDDMF.js";
21
- import "./chunk-TGVVUKTG.js";
22
- import "./chunk-JYMIB5XY.js";
23
- import "./chunk-TWQRPM76.js";
24
- import "./chunk-XOL3GFW2.js";
25
- import "./chunk-7AB6OWTV.js";
26
- import "./chunk-PAINMSID.js";
27
- import "./chunk-ODMBPDDV.js";
18
+ } from "./chunk-DCZWQLYT.js";
19
+ import "./chunk-S7FCV7S5.js";
20
+ import "./chunk-2F4CYZKJ.js";
21
+ import "./chunk-LO6P2VYG.js";
22
+ import "./chunk-CXJ6FUKN.js";
23
+ import "./chunk-CQDGOPGH.js";
24
+ import "./chunk-3NFFJL5D.js";
25
+ import "./chunk-PKBHS4AA.js";
26
+ import "./chunk-Q2TECDIT.js";
27
+ import "./chunk-TUULXQRW.js";
28
+ import "./chunk-BQGDB6ZL.js";
28
29
  import "./chunk-TV45EUGM.js";
29
30
  export {
30
31
  DecideError,
@@ -7,18 +7,20 @@ import {
7
7
  diagramLibrary,
8
8
  diagramRender,
9
9
  loadCatalog
10
- } from "./chunk-5QUOPNLN.js";
11
- import "./chunk-4SLBCEPD.js";
12
- import "./chunk-64AADMTW.js";
13
- import "./chunk-JYMIB5XY.js";
14
- import "./chunk-CPK7QSBG.js";
15
- import "./chunk-YO2PKTXT.js";
16
- import "./chunk-TWQRPM76.js";
17
- import "./chunk-XOL3GFW2.js";
18
- import "./chunk-QHJJMZLX.js";
19
- import "./chunk-7AB6OWTV.js";
20
- import "./chunk-PAINMSID.js";
21
- import "./chunk-ODMBPDDV.js";
10
+ } from "./chunk-OHNCWBKF.js";
11
+ import "./chunk-J2JAKCIW.js";
12
+ import "./chunk-745DAZ4L.js";
13
+ import "./chunk-CXJ6FUKN.js";
14
+ import "./chunk-QKUJMING.js";
15
+ import "./chunk-6ZGLAACW.js";
16
+ import "./chunk-CQDGOPGH.js";
17
+ import "./chunk-3NFFJL5D.js";
18
+ import "./chunk-PKBHS4AA.js";
19
+ import "./chunk-P32RUW3B.js";
20
+ import "./chunk-QA4O2GGC.js";
21
+ import "./chunk-Q2TECDIT.js";
22
+ import "./chunk-TUULXQRW.js";
23
+ import "./chunk-BQGDB6ZL.js";
22
24
  import "./chunk-TV45EUGM.js";
23
25
  export {
24
26
  diagramLibrary,
@@ -0,0 +1,265 @@
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
+
7
+ // packages/ai/dist/cli-options.js
8
+ import { parseArgs } from "node:util";
9
+ var OPTIONS = {
10
+ help: { type: "boolean", short: "h" },
11
+ // ADR 0141: what a read took, as the reader reports it (atticus map <repo> --spent).
12
+ spent: { type: "string" },
13
+ sessions: { type: "string" },
14
+ part: { type: "string" },
15
+ queue: { type: "boolean" },
16
+ // F10: atticus doctor --counts.
17
+ counts: { type: "boolean" },
18
+ version: { type: "boolean", short: "v" },
19
+ fix: { type: "boolean" },
20
+ root: { type: "string" },
21
+ repos: { type: "string" },
22
+ all: { type: "boolean" },
23
+ kind: { type: "string" },
24
+ executor: { type: "string" },
25
+ fixture: { type: "string" },
26
+ force: { type: "boolean" },
27
+ draft: { type: "boolean" },
28
+ story: { type: "string" },
29
+ gaps: { type: "boolean" },
30
+ // ADR 0167: atticus map <repo> --rules, a top-up for reading rules added since a read.
31
+ rules: { type: "boolean" },
32
+ // ADR 0169: atticus map <repo> --models reachable|all (ADR 0170: or entries).
33
+ models: { type: "string" },
34
+ // ADR 0161: atticus map --all.
35
+ stale: { type: "boolean" },
36
+ "max-parts": { type: "string" },
37
+ "budget-tokens": { type: "string" },
38
+ idle: { type: "string" },
39
+ full: { type: "boolean" },
40
+ "dry-run": { type: "boolean" },
41
+ json: { type: "boolean" },
42
+ limit: { type: "string" },
43
+ filter: { type: "string" },
44
+ "batch-tokens": { type: "string" },
45
+ "max-tokens": { type: "string" },
46
+ // atticus probe (ADR 0124 addendum A-probe).
47
+ assistant: { type: "string" },
48
+ pasted: { type: "boolean" },
49
+ "context-tokens": { type: "string" },
50
+ "whole-context": { type: "boolean" },
51
+ search: { type: "boolean" },
52
+ regex: { type: "boolean" },
53
+ "ignore-case": { type: "boolean" },
54
+ paths: { type: "string" },
55
+ // atticus context (ADR 0107 addendum): the context tools.
56
+ input: { type: "string" },
57
+ run: { type: "string" },
58
+ round: { type: "string" },
59
+ hops: { type: "string" },
60
+ line: { type: "string" },
61
+ around: { type: "string" },
62
+ depth: { type: "string" },
63
+ by: { type: "string" },
64
+ as: { type: "string" },
65
+ group: { type: "string", multiple: true },
66
+ channel: { type: "string" },
67
+ send: { type: "boolean" },
68
+ site: { type: "string" },
69
+ reason: { type: "string" },
70
+ focus: { type: "string" },
71
+ format: { type: "string" },
72
+ out: { type: "string" },
73
+ area: { type: "string" },
74
+ iteration: { type: "string" },
75
+ port: { type: "string" },
76
+ open: { type: "boolean" },
77
+ "show-token": { type: "boolean" },
78
+ embed: { type: "string" },
79
+ parent: { type: "string" },
80
+ host: { type: "string" },
81
+ catalog: { type: "string" },
82
+ "from-catalog": { type: "boolean" },
83
+ from: { type: "string" },
84
+ to: { type: "string" },
85
+ package: { type: "string" },
86
+ jars: { type: "string", multiple: true },
87
+ learn: { type: "boolean" },
88
+ type: { type: "string" },
89
+ template: { type: "string" },
90
+ like: { type: "string" },
91
+ impact: { type: "string" },
92
+ id: { type: "string" },
93
+ owner: { type: "string", multiple: true },
94
+ system: { type: "string", multiple: true },
95
+ base: { type: "string" },
96
+ repo: { type: "string" },
97
+ gate: { type: "string" },
98
+ lens: { type: "string" },
99
+ model: { type: "string" },
100
+ "asked-of": { type: "string" },
101
+ edit: { type: "string" },
102
+ description: { type: "string" },
103
+ title: { type: "string" },
104
+ name: { type: "string" },
105
+ badge: { type: "string" },
106
+ shape: { type: "string" },
107
+ colour: { type: "string" },
108
+ attempts: { type: "string" },
109
+ users: { type: "string" },
110
+ language: { type: "string" },
111
+ replace: { type: "boolean" },
112
+ into: { type: "string" },
113
+ level: { type: "string" },
114
+ mode: { type: "string" },
115
+ approve: { type: "boolean" },
116
+ pr: { type: "string" },
117
+ "pr-url": { type: "string" },
118
+ change: { type: "string" },
119
+ check: { type: "boolean" },
120
+ resume: { type: "string" },
121
+ eval: { type: "string" },
122
+ epic: { type: "string" },
123
+ "no-ai": { type: "boolean" },
124
+ "openspec-store": { type: "boolean" },
125
+ "no-drift": { type: "boolean" },
126
+ warnings: { type: "boolean" },
127
+ "no-rescan": { type: "boolean" },
128
+ refresh: { type: "string" },
129
+ export: { type: "string" },
130
+ result: { type: "string", multiple: true },
131
+ skip: { type: "boolean" },
132
+ note: { type: "string" },
133
+ for: { type: "string" },
134
+ with: { type: "string" },
135
+ inputs: { type: "string" },
136
+ "fill-only": { type: "boolean" },
137
+ platform: { type: "string" },
138
+ ref: { type: "string" },
139
+ task: { type: "string" },
140
+ latest: { type: "boolean" },
141
+ org: { type: "string" },
142
+ framework: { type: "string" },
143
+ csv: { type: "boolean" },
144
+ "no-write": { type: "boolean" },
145
+ junit: { type: "string" },
146
+ summary: { type: "string" },
147
+ "json-out": { type: "string" },
148
+ "warn-only": { type: "boolean" },
149
+ // A switch (verify --write, verify --all --write); ci snippet --write <dir> takes a folder
150
+ // (BY_COMMAND below).
151
+ write: { type: "boolean" },
152
+ path: { type: "string" },
153
+ file: { type: "string" },
154
+ submodule: { type: "boolean" },
155
+ save: { type: "boolean" },
156
+ read: { type: "boolean" },
157
+ only: { type: "string" },
158
+ "verified-only": { type: "boolean" },
159
+ unverified: { type: "boolean" },
160
+ set: { type: "string", multiple: true },
161
+ find: { type: "string" },
162
+ drift: { type: "string", multiple: true },
163
+ journey: { type: "string" },
164
+ release: { type: "string" },
165
+ target: { type: "string" },
166
+ answer: { type: "string" },
167
+ lesson: { type: "string" },
168
+ step: { type: "string" },
169
+ agent: { type: "string", multiple: true },
170
+ runs: { type: "string" },
171
+ audience: { type: "string" },
172
+ value: { type: "string" },
173
+ bench: { type: "string" },
174
+ cache: { type: "string" },
175
+ batch: { type: "string" },
176
+ specs: { type: "boolean" },
177
+ estate: { type: "string" },
178
+ accept: { type: "boolean" },
179
+ // atticus repo add / repo describe (ADR 0128)
180
+ reject: { type: "boolean" },
181
+ cites: { type: "string" },
182
+ drafted: { type: "string" },
183
+ "no-description": { type: "boolean" },
184
+ component: { type: "string" },
185
+ tag: { type: "string" },
186
+ source: { type: "string" },
187
+ "from-figma": { type: "string" },
188
+ replaces: { type: "string" },
189
+ promote: { type: "string" },
190
+ prototype: { type: "string" },
191
+ off: { type: "boolean" },
192
+ surface: { type: "string" },
193
+ session: { type: "string" },
194
+ command: { type: "string" },
195
+ markdown: { type: "boolean" },
196
+ dir: { type: "string" },
197
+ commit: { type: "string" },
198
+ confirm: { type: "string" },
199
+ exclude: { type: "string" },
200
+ routed: { type: "string" },
201
+ // atticus map (ADR 0124 §4)
202
+ estimate: { type: "boolean" },
203
+ next: { type: "boolean" },
204
+ copy: { type: "boolean" },
205
+ facts: { type: "string" },
206
+ // ADR 0163: atticus repo-type note.
207
+ add: { type: "string" },
208
+ "org-wide": { type: "boolean" },
209
+ // G4 (ADR 0176): atticus rules.
210
+ key: { type: "string" },
211
+ rule: { type: "string" },
212
+ files: { type: "string" },
213
+ example: { type: "string" },
214
+ about: { type: "string" },
215
+ at: { type: "string" },
216
+ team: { type: "string" },
217
+ compare: { type: "boolean" },
218
+ // Review round 47: the flags the questions, decisions and verify commands read, here with their
219
+ // types, so the command line's first reading never takes their values for command words.
220
+ handoff: { type: "boolean" },
221
+ state: { type: "string" },
222
+ option: { type: "string" },
223
+ text: { type: "string" },
224
+ scope: { type: "string" },
225
+ match: { type: "string" },
226
+ "add-system": { type: "string" },
227
+ api: { type: "string" },
228
+ apply: { type: "string" },
229
+ mine: { type: "boolean" },
230
+ none: { type: "boolean" },
231
+ similar: { type: "boolean" },
232
+ "no-similar": { type: "boolean" },
233
+ preview: { type: "boolean" },
234
+ "accept-proposal": { type: "boolean" },
235
+ size: { type: "string" },
236
+ seed: { type: "string" },
237
+ answers: { type: "string" },
238
+ right: { type: "string" },
239
+ wrong: { type: "string" },
240
+ unsure: { type: "string" },
241
+ report: { type: "boolean" },
242
+ verbose: { type: "boolean" },
243
+ skipped: { type: "boolean" }
244
+ };
245
+ var BY_COMMAND = [
246
+ { words: ["critic"], options: { resume: { type: "boolean" } } },
247
+ { words: ["ci", "snippet"], options: { write: { type: "string" } } },
248
+ { words: ["bench", "stories"], options: { draft: { type: "string" } } }
249
+ ];
250
+ var read = (argv, options) => parseArgs({ args: [...argv], allowPositionals: true, options, strict: false });
251
+ function optionsFor(argv) {
252
+ const words = read(argv, OPTIONS).positionals;
253
+ const named = words[0] === "legacy" ? words.slice(1) : words;
254
+ const own = BY_COMMAND.find((c) => c.words.every((w, i) => named[i] === w));
255
+ return own ? { ...OPTIONS, ...own.options } : OPTIONS;
256
+ }
257
+ function commandWords(argv) {
258
+ return read(argv, optionsFor(argv)).positionals;
259
+ }
260
+
261
+ export {
262
+ OPTIONS,
263
+ optionsFor,
264
+ commandWords
265
+ };
@@ -3,30 +3,27 @@ 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
+ onboardingView
8
+ } from "./chunk-7JITZFJC.js";
6
9
  import {
7
10
  onboardingQueue,
8
11
  queueWhy,
9
12
  reasonOf
10
- } from "./chunk-HE3HRDNZ.js";
13
+ } from "./chunk-LQJPN536.js";
11
14
  import {
12
- onboardingView
13
- } from "./chunk-PNQLCRSS.js";
15
+ repoIdKey
16
+ } from "./chunk-4U276ICE.js";
14
17
  import {
15
18
  houseUntaughtOf,
16
19
  houseUntaughtWords
17
- } from "./chunk-3J5I7ZOU.js";
18
- import {
19
- repoIdKey
20
- } from "./chunk-OMPENNWY.js";
20
+ } from "./chunk-EHA7RMZ3.js";
21
21
  import {
22
22
  catalogSources
23
- } from "./chunk-4FOAYLI4.js";
24
- import {
25
- readTaskRun
26
- } from "./chunk-Y6K3CJBU.js";
23
+ } from "./chunk-OWNCM4ZN.js";
27
24
  import {
28
25
  rulesLackingAll
29
- } from "./chunk-GIFMBCTW.js";
26
+ } from "./chunk-WXFLMQSR.js";
30
27
  import {
31
28
  loadReadPlan,
32
29
  partOfWords,
@@ -35,31 +32,34 @@ import {
35
32
  readPlanProgress,
36
33
  readPlanRelOf,
37
34
  tokensWords
38
- } from "./chunk-MD7KUEJ3.js";
35
+ } from "./chunk-TYQBFTBR.js";
39
36
  import {
40
37
  checkoutOf,
41
38
  conventionsAt
42
- } from "./chunk-Q46QDDMF.js";
43
- import {
44
- readChangeTasks
45
- } from "./chunk-YWAKDNMH.js";
39
+ } from "./chunk-2F4CYZKJ.js";
46
40
  import {
47
41
  isMetarepo,
48
42
  notMetarepo
49
43
  } from "./chunk-3G4YI4ZU.js";
44
+ import {
45
+ readTaskRun
46
+ } from "./chunk-6MUGR4LS.js";
47
+ import {
48
+ readChangeTasks
49
+ } from "./chunk-UGUP3ZM6.js";
50
+ import {
51
+ readNeeds,
52
+ seedCollisions
53
+ } from "./chunk-R7NYHMUU.js";
50
54
  import {
51
55
  ASSISTANT_FORMATS,
52
56
  probedAssistant,
53
57
  readProbes,
54
58
  whatRunsWhere
55
- } from "./chunk-3AQ2R5NL.js";
56
- import {
57
- readNeeds,
58
- seedCollisions
59
- } from "./chunk-BEPCKDCP.js";
59
+ } from "./chunk-BEVTIBRH.js";
60
60
  import {
61
61
  readChangeFiles
62
- } from "./chunk-K332XW7K.js";
62
+ } from "./chunk-S4PMJU6H.js";
63
63
  import {
64
64
  assess,
65
65
  changeStore,
@@ -69,21 +69,24 @@ import {
69
69
  loadChangePolicy,
70
70
  releasePrReasons,
71
71
  stageCompletion
72
- } from "./chunk-HSZMPH5T.js";
72
+ } from "./chunk-IDKCWSM5.js";
73
+ import {
74
+ fileStepStore
75
+ } from "./chunk-7IGKHZ4Z.js";
73
76
  import {
74
77
  readCatalog
75
- } from "./chunk-4SLBCEPD.js";
78
+ } from "./chunk-J2JAKCIW.js";
76
79
  import {
77
80
  readKnowledge,
78
81
  snapshotDates,
79
82
  workingDays
80
- } from "./chunk-64AADMTW.js";
83
+ } from "./chunk-745DAZ4L.js";
81
84
  import {
82
85
  baseClonePath
83
- } from "./chunk-XOL3GFW2.js";
86
+ } from "./chunk-PKBHS4AA.js";
84
87
  import {
85
88
  stepClassOfNextStep
86
- } from "./chunk-QHJJMZLX.js";
89
+ } from "./chunk-P32RUW3B.js";
87
90
  import {
88
91
  ScanVerifyProposal,
89
92
  catalogDirOf,
@@ -103,9 +106,11 @@ import {
103
106
  questionWeights,
104
107
  readRepoSpec,
105
108
  readSpecFindings,
106
- require_dist,
107
109
  stepModelsOf
108
- } from "./chunk-PAINMSID.js";
110
+ } from "./chunk-Q2TECDIT.js";
111
+ import {
112
+ require_dist
113
+ } from "./chunk-BQGDB6ZL.js";
109
114
  import {
110
115
  __toESM
111
116
  } from "./chunk-TV45EUGM.js";
@@ -289,6 +294,7 @@ async function readNextState(root) {
289
294
  const questions = [.../* @__PURE__ */ new Set([...changeQuestions[c.id] ?? [], ...asked])];
290
295
  const missing = c.state === "define" || c.state === "returned" ? await draftMissing(changeContext, c).catch(() => ({ draft: false, brief: false })) : { draft: false, brief: false };
291
296
  const blocking = stageOf(c.state) === "tasks" ? await blockingOf(changeContext, c).catch(() => 0) : 0;
297
+ const gate = draftingAt(own) >= 0 && !live && (stagesDone.includes(own) || c.state === "returned") ? await gateFindingsOf(changeContext, c).catch(() => []) : [];
292
298
  if (busy && stageOf(c.state) !== "done" && (!active || busy > active.at))
293
299
  active = { id: c.id, at: busy };
294
300
  changes.push({
@@ -301,6 +307,8 @@ async function readNextState(root) {
301
307
  feature: existsSync(join(changesDirOf(root), c.id, "feature.yaml")),
302
308
  ...missing.draft ? { undrafted: true } : {},
303
309
  ...blocking ? { blocking } : {},
310
+ ...gate.length ? { gate } : {},
311
+ ...c.state === "released" ? await releasedOf(root, c.id) : {},
304
312
  ...stageOf(c.state) === "release" ? await releasePrsOf(root, c.id) : {},
305
313
  ...missing.brief ? { brief: `${changesRelOf(root)}/${c.id}/brief.md` } : {},
306
314
  ...questions.length ? { questions } : {},
@@ -312,7 +320,8 @@ async function readNextState(root) {
312
320
  phase: live.phase,
313
321
  number: live.pr.number,
314
322
  url: live.pr.url,
315
- state: live.state
323
+ state: live.state,
324
+ ...isManualPrUrl(live.pr.url) ? await manualPrRecorded(root, c.id, live.branch, orgPack) : {}
316
325
  }
317
326
  } : {},
318
327
  ...clash.length ? { seedCollisions: clash } : {},
@@ -410,9 +419,124 @@ async function blockingOf(ctx, c) {
410
419
  const a = await assess(await ctx(), c);
411
420
  return a.blockers.filter((b) => b.code === "blocking-finding" || b.code === "open-gap").length;
412
421
  }
422
+ async function gateFindingsOf(ctx, c) {
423
+ const a = await assess(await ctx(), c);
424
+ return a.blockers.flatMap((b) => b.code === "blocking-finding" || b.code === "open-gap" ? [{ code: b.code, ...b.finding ? { finding: b.finding } : {}, message: b.message }] : []);
425
+ }
426
+ function gateBlockedStep(c, stage, gate) {
427
+ const first = c.gate?.[0];
428
+ if (!first)
429
+ return void 0;
430
+ const id = c.id;
431
+ const more = c.gate.length - 1;
432
+ const head = `${id}'s ${stage} stage is done, but the ${gate} gate is blocked, so its hand-off would be refused: ${first.message.replace(/\.?$/, ".")}`;
433
+ const tail = more ? `; ${more} more after it.` : ".";
434
+ const asked = /\(owner question (q-[0-9a-f]+)[,)]/.exec(first.message)?.[1];
435
+ if (asked)
436
+ return {
437
+ step: "answer",
438
+ command: `atticus questions answer ${asked}`,
439
+ where: METAREPO,
440
+ why: `${head} Its owner answers ${asked} (Questions, Owner questions), and the answer closes the gap${tail}`,
441
+ person: true,
442
+ change: id
443
+ };
444
+ const f = first.finding ?? "<id>";
445
+ if (first.code === "open-gap")
446
+ return {
447
+ step: "finding",
448
+ command: `atticus finding ${id} ${f} ask`,
449
+ where: METAREPO,
450
+ why: `${head} Ask its owner (atticus finding ${id} ${f} ask --asked-of <who>), or fill it in (atticus finding ${id} ${f} edit-and-apply)${tail}`,
451
+ person: true,
452
+ change: id
453
+ };
454
+ return {
455
+ step: "finding",
456
+ command: `atticus finding ${id} ${f} edit-and-apply`,
457
+ where: METAREPO,
458
+ why: `${head} Fix it (atticus finding ${id} ${f} edit-and-apply), or record why it doesn't apply (not-relevant --reason, or waive)${tail}`,
459
+ person: true,
460
+ change: id
461
+ };
462
+ }
463
+ async function releasedOf(root, id) {
464
+ try {
465
+ const { archiveGate } = await import("./chunk-5BD2KYLE.js");
466
+ const g = await archiveGate(root, id);
467
+ return {
468
+ released: { blockers: g.blockers.map((b) => ({ code: b.code, message: b.message })) }
469
+ };
470
+ } catch {
471
+ return { released: { blockers: [] } };
472
+ }
473
+ }
474
+ function releasedSteps(c) {
475
+ const id = c.id;
476
+ const blockers = c.released?.blockers ?? [];
477
+ const repoOf = (m) => /^([A-Za-z0-9][\w.-]*): /.exec(m)?.[1];
478
+ const reads = [];
479
+ for (const b of blockers) {
480
+ const repo = repoOf(b.message);
481
+ if (!repo)
482
+ continue;
483
+ if (b.code === "needs-reading")
484
+ reads.push({
485
+ step: "reread",
486
+ command: `atticus map ${repo}`,
487
+ slash: `/atticus-map ${repo}`,
488
+ where: METAREPO,
489
+ why: `${id} is released, and the archive gate needs what shipped read: ${b.message}`,
490
+ repo,
491
+ change: id
492
+ });
493
+ else if (b.code === "catalog-stale")
494
+ reads.push({
495
+ step: "verify",
496
+ command: `atticus verify ${repo} --write`,
497
+ where: METAREPO,
498
+ why: `${id} is released, and the archive gate needs the catalog written from what shipped: ${b.message}`,
499
+ repo,
500
+ change: id
501
+ });
502
+ else if (b.code === "not-synced")
503
+ reads.push({
504
+ step: "sync",
505
+ command: `atticus workspace sync --repos ${repo}`,
506
+ where: METAREPO,
507
+ why: `${id} is released, and the archive gate needs ${repo}'s clone at what merged: ${b.message}`,
508
+ repo,
509
+ change: id
510
+ });
511
+ }
512
+ const others = blockers.filter((b) => !repoOf(b.message) || !["needs-reading", "catalog-stale", "not-synced"].includes(b.code));
513
+ if (others.length)
514
+ return [
515
+ ...reads,
516
+ {
517
+ step: "archive-gate",
518
+ command: `atticus ci archive-gate ${id}`,
519
+ where: METAREPO,
520
+ why: `${id} is released, but the archive gate doesn't pass yet: ${others.map((b) => b.message).join(" ")}`,
521
+ change: id,
522
+ person: true
523
+ }
524
+ ];
525
+ return [
526
+ ...reads,
527
+ {
528
+ step: "archive",
529
+ command: `atticus change archive ${id}`,
530
+ where: METAREPO,
531
+ why: reads.length ? `Then a person archives ${id} (its spec deltas merge into openspec/specs/ and the estate is scanned again).` : `${id} is released and the archive gate passes: a person archives it (its spec deltas merge into openspec/specs/ and the estate is scanned again, so the catalog says what shipped).`,
532
+ change: id,
533
+ person: true
534
+ }
535
+ ];
536
+ }
413
537
  async function releasePrsOf(root, id) {
414
538
  const reasons = await releasePrReasons(root, id).catch(() => []);
415
- if (reasons.some((r) => r.code === "release-pr-missing"))
539
+ if (reasons.some((r) => r.code === "release-pr-missing" || r.code === "release-pr-stale"))
416
540
  return { releasePrs: "raise" };
417
541
  if (reasons.some((r) => r.code === "release-pr-not-merged"))
418
542
  return { releasePrs: "merge" };
@@ -439,6 +563,8 @@ function stageOf(state) {
439
563
  }
440
564
  }
441
565
  function changeSteps(c) {
566
+ if (c.state === "released")
567
+ return releasedSteps(c);
442
568
  const stage = stageSteps(c);
443
569
  const id = c.id;
444
570
  const done = stageOf(c.state) === "done";
@@ -481,6 +607,15 @@ function changeSteps(c) {
481
607
  const ownDone = (c.stagesDone ?? []).includes(stageOf(c.state));
482
608
  return ownDone ? [...seeds, ...stage, ...asked, ...find, ...raise] : [...asked, ...seeds, ...stage, ...find, ...raise];
483
609
  }
610
+ async function manualPrRecorded(root, change, branch, orgPack) {
611
+ const steps = await fileStepStore(root).list({ change, system: "git-host" }).catch(() => []);
612
+ const open = steps.find((x) => x.action === "open-pull-request" && x.inputs.head === branch && x.state !== "open");
613
+ if (!open)
614
+ return {};
615
+ const named = orgPack instanceof Error ? void 0 : orgPack.runtime.adapters.gitHost?.settings.metarepo;
616
+ const repo = typeof open.inputs.repo === "string" ? open.inputs.repo : void 0;
617
+ return { recorded: typeof named === "string" || !repo ? {} : { repo } };
618
+ }
484
619
  function handoffWait(c) {
485
620
  const h = c.handoff;
486
621
  if (!h)
@@ -498,6 +633,17 @@ function handoffWait(c) {
498
633
  ...isManualPrUrl(h.url) ? {} : { pr: h.url }
499
634
  }
500
635
  ];
636
+ if (isManualPrUrl(h.url) && h.recorded)
637
+ return [
638
+ {
639
+ step: "merge",
640
+ command: `atticus change sync ${id}${h.recorded.repo ? ` --repo ${h.recorded.repo}` : ""}`,
641
+ where: METAREPO,
642
+ why: `${id}'s ${h.phase} hand-off PR is recorded on its manual steps: syncing reads what was recorded and moves the change on; once its merge is recorded, that approves the ${h.phase} gate.`,
643
+ change: id,
644
+ person: true
645
+ }
646
+ ];
501
647
  if (isManualPrUrl(h.url))
502
648
  return [
503
649
  {
@@ -591,6 +737,9 @@ function stageSteps(c) {
591
737
  change: id
592
738
  }
593
739
  ];
740
+ const blocked = gateBlockedStep(c, stage, gate);
741
+ if (blocked)
742
+ return [blocked];
594
743
  return [
595
744
  {
596
745
  step: "handoff",
@@ -955,7 +1104,7 @@ function nextSteps(s) {
955
1104
  why: `${plural(s.unverifiedNeeds, "open need")} of changes ${s.unverifiedNeeds === 1 ? "comes" : "come"} from knowledge items no person has verified: check each against its page (atticus knowledge verify, correct or reject).`,
956
1105
  person: true
957
1106
  });
958
- const inFlight = s.changes.filter((c) => stageOf(c.state) !== "done");
1107
+ const inFlight = s.changes.filter((c) => stageOf(c.state) !== "done" || c.state === "released");
959
1108
  for (const c of inFlight)
960
1109
  if (c !== inHand)
961
1110
  out.push(...changeAnswer(c, byChange[c.id] ?? []), ...changeSteps(c));