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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (299) hide show
  1. package/dist/bin.js +12 -7
  2. package/dist/{chunk-BXBCMGIQ.js → chunk-24OXGB3P.js} +1 -1
  3. package/dist/{chunk-PRW3HXM3.js → chunk-27AJAKX7.js} +29 -5
  4. package/dist/{chunk-PQH56YF6.js → chunk-2QPJ4E4Z.js} +6 -4
  5. package/dist/{chunk-7CZHUZBL.js → chunk-2UMSHYCB.js} +38 -27
  6. package/dist/{chunk-2V2ZPQQU.js → chunk-2WUTCPPJ.js} +9 -7
  7. package/dist/{chunk-YF5DZCPN.js → chunk-2YSD6E6V.js} +38 -34
  8. package/dist/{chunk-QHJJMZLX.js → chunk-3424TLIJ.js} +204 -97
  9. package/dist/{chunk-62DLJSLV.js → chunk-3ASYYMOX.js} +10 -8
  10. package/dist/{chunk-XOL3GFW2.js → chunk-3EWKO457.js} +111 -43
  11. package/dist/{chunk-G5YJBNDZ.js → chunk-3EX5HCZD.js} +8 -6
  12. package/dist/{chunk-WFU77T3A.js → chunk-3MYBT62N.js} +5 -5
  13. package/dist/{chunk-6EXDI5GI.js → chunk-3UHV76UD.js} +72 -41
  14. package/dist/{chunk-LU4MQVAL.js → chunk-3ZA3AK2D.js} +11 -10
  15. package/dist/{chunk-P2VBXX7N.js → chunk-4ETO2FXE.js} +11 -9
  16. package/dist/{chunk-GK4PYVEC.js → chunk-4FLNCK6Q.js} +31 -14
  17. package/dist/{chunk-64AADMTW.js → chunk-4GAB5ZOZ.js} +943 -336
  18. package/dist/{chunk-FLVZFTLQ.js → chunk-4MYHETJ3.js} +20 -18
  19. package/dist/chunk-4R3TO4VL.js +94 -0
  20. package/dist/{chunk-7EFILTCI.js → chunk-5F7GFN2F.js} +28 -0
  21. package/dist/chunk-5MYE42AP.js +43 -0
  22. package/dist/chunk-5O7U67UA.js +57 -0
  23. package/dist/{chunk-MZGRDONP.js → chunk-5OXKCH4Z.js} +54 -37
  24. package/dist/{chunk-PUEWDYGP.js → chunk-5VTIWEWP.js} +3 -2
  25. package/dist/{chunk-3G6S7LAA.js → chunk-63NFFAGI.js} +14 -12
  26. package/dist/{chunk-LIJJCBQI.js → chunk-66AQ2JIU.js} +15 -16
  27. package/dist/chunk-6JVPBGQG.js +50 -0
  28. package/dist/{chunk-WAZEXEJH.js → chunk-6NCPLIIP.js} +167 -2
  29. package/dist/{chunk-D57MFJPP.js → chunk-6NN36LVK.js} +3 -3
  30. package/dist/{chunk-G6IQYM25.js → chunk-6R5VHR3N.js} +8 -6
  31. package/dist/{chunk-Z3QFH7YG.js → chunk-6RQOINER.js} +5 -4
  32. package/dist/{chunk-TQTRWENN.js → chunk-6RYB3EET.js} +14 -12
  33. package/dist/{chunk-FYBF5MB2.js → chunk-6SNTHK43.js} +13 -11
  34. package/dist/{chunk-FRHD22WM.js → chunk-6Y4FXOMI.js} +27 -23
  35. package/dist/{chunk-LWDNKE4X.js → chunk-6ZFF7XSL.js} +6 -6
  36. package/dist/{chunk-FQ6WH6PB.js → chunk-6ZSYLZ7O.js} +6 -4
  37. package/dist/{chunk-LQH4P45K.js → chunk-73CC73I4.js} +1 -1
  38. package/dist/{chunk-Q46QDDMF.js → chunk-73GFVW2L.js} +14 -9
  39. package/dist/{chunk-QKMRFNMA.js → chunk-73V2OONC.js} +17 -15
  40. package/dist/{chunk-FVMPFCDS.js → chunk-75OMRKY2.js} +4 -4
  41. package/dist/{chunk-XEQCQO66.js → chunk-7IFTSAHP.js} +10 -8
  42. package/dist/{chunk-4FOAYLI4.js → chunk-7K5OH45X.js} +139 -17
  43. package/dist/{chunk-3SSTNB4E.js → chunk-7NQAGYK4.js} +34 -14
  44. package/dist/{chunk-URIKUID7.js → chunk-7XWJ6ED2.js} +14 -12
  45. package/dist/{chunk-TYD6I4CZ.js → chunk-7XYLNQFO.js} +7 -7
  46. package/dist/{chunk-BPPU3PW7.js → chunk-7YQBDE5W.js} +10 -4
  47. package/dist/{chunk-CPK7QSBG.js → chunk-A4JXVO5O.js} +8 -6
  48. package/dist/{chunk-YJ3TBOTK.js → chunk-AFBCNZRZ.js} +29 -26
  49. package/dist/{chunk-TW3KOSQK.js → chunk-AGOLEMHK.js} +13 -13
  50. package/dist/chunk-AHFQHPFF.js +49 -0
  51. package/dist/{chunk-NTAVOWYD.js → chunk-APDN6UOR.js} +118 -18
  52. package/dist/chunk-AQRUQNFB.js +322 -0
  53. package/dist/{chunk-KYZMRSPS.js → chunk-AVMWESFZ.js} +6 -3
  54. package/dist/chunk-B4AEL3RF.js +1011 -0
  55. package/dist/{chunk-GS76RXQE.js → chunk-BAY4K55I.js} +15 -12
  56. package/dist/{chunk-4CLK2RJO.js → chunk-BFL4PO64.js} +9 -7
  57. package/dist/{chunk-GCS3FZOB.js → chunk-BFMTGNAQ.js} +15 -4
  58. package/dist/{chunk-YBOVNMHC.js → chunk-BP33TBLI.js} +29 -16
  59. package/dist/chunk-BQGDB6ZL.js +7342 -0
  60. package/dist/{chunk-BXZ4PKIT.js → chunk-BUUJ7N4O.js} +15 -11
  61. package/dist/{chunk-HGHRSF3E.js → chunk-BYBU2EIB.js} +38 -19
  62. package/dist/{chunk-TQ4TG57V.js → chunk-C6ORPLCN.js} +4 -4
  63. package/dist/{chunk-HWD4JPU7.js → chunk-CA3DKO4D.js} +27 -3
  64. package/dist/{chunk-YTTNTQOX.js → chunk-CFUDAW3R.js} +17 -15
  65. package/dist/{chunk-OPQZISG3.js → chunk-CJEBRJBS.js} +5 -4
  66. package/dist/{chunk-RALY3E5U.js → chunk-CKVBDVIW.js} +6 -4
  67. package/dist/{chunk-DUPZPDCJ.js → chunk-CMB7FXHJ.js} +42 -16
  68. package/dist/{chunk-YIGBJNH4.js → chunk-CQ7RF4QN.js} +5 -4
  69. package/dist/{chunk-YAH5IQAL.js → chunk-CS4BMJLL.js} +6 -5
  70. package/dist/{chunk-455SYIIE.js → chunk-CT6NINGR.js} +5 -3
  71. package/dist/chunk-CXTG6AWM.js +40 -0
  72. package/dist/{chunk-JYMIB5XY.js → chunk-CZ2ZS7AT.js} +170 -45
  73. package/dist/{chunk-K332XW7K.js → chunk-D6BVLTDV.js} +100 -33
  74. package/dist/chunk-DCRYOMTM.js +37 -0
  75. package/dist/{chunk-G6X4YL4D.js → chunk-DHKDH464.js} +5 -4
  76. package/dist/{chunk-JRVNXLZP.js → chunk-DSHRA72L.js} +14 -12
  77. package/dist/{chunk-LNWEWYCM.js → chunk-E3PDCQRH.js} +2813 -621
  78. package/dist/chunk-EHXDB3SA.js +25 -0
  79. package/dist/{chunk-EZIN5E5B.js → chunk-EMVZIOOD.js} +11 -9
  80. package/dist/{chunk-IFHDV6KQ.js → chunk-ENH6Z4TY.js} +21 -20
  81. package/dist/{chunk-YKTE2RU3.js → chunk-EVTI22PQ.js} +7 -2
  82. package/dist/{chunk-2D7PWSOK.js → chunk-EXJZBL5N.js} +22 -20
  83. package/dist/{chunk-77O633L5.js → chunk-FBCVC2GJ.js} +14 -12
  84. package/dist/{chunk-HS4BGB4G.js → chunk-FJVUHQPS.js} +37 -24
  85. package/dist/{chunk-4KNOJC6J.js → chunk-FL344WQD.js} +270 -221
  86. package/dist/{chunk-GNWAOVFQ.js → chunk-FMJYKLDY.js} +5 -5
  87. package/dist/chunk-FMR2D3AZ.js +41 -0
  88. package/dist/{chunk-PAINMSID.js → chunk-FPBUTZI5.js} +3102 -7859
  89. package/dist/{chunk-ZOSD4FXV.js → chunk-FQVSLBTV.js} +3 -3
  90. package/dist/chunk-FRAEQVYN.js +52 -0
  91. package/dist/{chunk-UDXWIPCB.js → chunk-FRCOKUU4.js} +9 -7
  92. package/dist/{chunk-UYLBRRFK.js → chunk-FSN6JFXB.js} +129 -27
  93. package/dist/{chunk-BC6KKZ67.js → chunk-FTLYXMHA.js} +9 -6
  94. package/dist/{chunk-FAJDKNSD.js → chunk-FVYZ4Y52.js} +16 -3
  95. package/dist/{chunk-TWQRPM76.js → chunk-G6EFXTUO.js} +23 -16
  96. package/dist/{chunk-ZFQMMU5Y.js → chunk-G7VBMOZH.js} +6 -2
  97. package/dist/{chunk-VYOCPTUB.js → chunk-GM4EFHUX.js} +17 -15
  98. package/dist/chunk-GOZLTLRY.js +232 -0
  99. package/dist/chunk-GPNMSX5H.js +36 -0
  100. package/dist/{chunk-OZJ3JLYI.js → chunk-GUGQSIQM.js} +10 -9
  101. package/dist/chunk-H4VO6WG3.js +10 -0
  102. package/dist/{chunk-QJCJOMW3.js → chunk-HJQVUOUL.js} +16 -18
  103. package/dist/chunk-HMWJWYE2.js +31 -0
  104. package/dist/{chunk-4TKVU2I2.js → chunk-HMZ2DRBC.js} +2 -2
  105. package/dist/{chunk-HK3VOHIE.js → chunk-HRS5O7VV.js} +609 -171
  106. package/dist/{chunk-7FUIVIBG.js → chunk-HUGQZQ2K.js} +13 -8
  107. package/dist/{chunk-QOOEYDNJ.js → chunk-ICBGVVRI.js} +10 -10
  108. package/dist/{chunk-XG4WJHLQ.js → chunk-IGOE6KPG.js} +49 -20
  109. package/dist/{chunk-4SLBCEPD.js → chunk-IKAW2KJU.js} +95 -64
  110. package/dist/{chunk-L4CESDPB.js → chunk-IMZFOMVX.js} +1 -1
  111. package/dist/{chunk-XQ3YZ4QW.js → chunk-ISG547IS.js} +24 -22
  112. package/dist/{chunk-BA2HUMDN.js → chunk-IYNCSYU4.js} +5 -2
  113. package/dist/{chunk-UEVZZZU2.js → chunk-J25YOUIZ.js} +5 -4
  114. package/dist/chunk-J2CDBSFP.js +69 -0
  115. package/dist/chunk-J2H7YG3K.js +34 -0
  116. package/dist/{chunk-O4IKAIZ2.js → chunk-J32IPTVQ.js} +28 -22
  117. package/dist/{chunk-3AQ2R5NL.js → chunk-J4CPHJUL.js} +11 -9
  118. package/dist/{chunk-VUVGX5L2.js → chunk-JFFKHIM6.js} +1 -1
  119. package/dist/chunk-JMEWJPF2.js +384 -0
  120. package/dist/{chunk-LO3BLMVG.js → chunk-JSP73CDW.js} +13 -5
  121. package/dist/chunk-JXAKYP45.js +63 -0
  122. package/dist/{chunk-PNQLCRSS.js → chunk-K4OXYSGS.js} +7 -5
  123. package/dist/{chunk-3J5I7ZOU.js → chunk-K4RNVDR4.js} +4 -4
  124. package/dist/{chunk-LEBR5NHW.js → chunk-K757G7AD.js} +18 -15
  125. package/dist/{chunk-AHW3RY3X.js → chunk-KDJ2YKAZ.js} +8 -7
  126. package/dist/{chunk-4WXRPQDE.js → chunk-KT6Q44CA.js} +178 -31
  127. package/dist/{chunk-EFCQSMXB.js → chunk-KTNOBTV5.js} +10 -4
  128. package/dist/chunk-KVVNAUIG.js +66 -0
  129. package/dist/{chunk-26Z7OGQW.js → chunk-L3RCQWVQ.js} +64 -31
  130. package/dist/{chunk-3WON4G3M.js → chunk-LHH5KG5A.js} +21 -6
  131. package/dist/{chunk-NCB6656Z.js → chunk-LM45GMMB.js} +11 -8
  132. package/dist/{chunk-2HH3UCZM.js → chunk-LO6Y7OTG.js} +5 -4
  133. package/dist/{chunk-36RY7ZXM.js → chunk-LPDTDFKA.js} +88 -26
  134. package/dist/{chunk-67BP7HXL.js → chunk-LSHSDC6S.js} +19 -17
  135. package/dist/{chunk-GDZB57IU.js → chunk-LZVHP7CT.js} +7 -5
  136. package/dist/{chunk-GC2VK3JT.js → chunk-M3EOFSPY.js} +28 -25
  137. package/dist/chunk-MBYYQHPM.js +31 -0
  138. package/dist/{chunk-HXXP2NTE.js → chunk-MEJ63LDG.js} +35 -12
  139. package/dist/{chunk-2UCRFXFZ.js → chunk-MH2ZK67S.js} +13 -11
  140. package/dist/{chunk-BEPCKDCP.js → chunk-MLGWSBF4.js} +5447 -4165
  141. package/dist/{chunk-NRQ65LTQ.js → chunk-MNIPPBCT.js} +6 -5
  142. package/dist/{chunk-3LZ6P5EP.js → chunk-MUWDB4R4.js} +1 -1
  143. package/dist/{chunk-KDAHXQIE.js → chunk-MWF4PXQR.js} +38 -34
  144. package/dist/{chunk-WNTIOBOG.js → chunk-N2YX6JMY.js} +20 -18
  145. package/dist/{chunk-FY3QIRTL.js → chunk-NAPHHWW2.js} +3 -3
  146. package/dist/{chunk-D2WSW4GU.js → chunk-NC755EKE.js} +8 -2
  147. package/dist/{chunk-BA3U7ALS.js → chunk-NCLZJCXA.js} +26 -22
  148. package/dist/chunk-NKJDO4UC.js +39 -0
  149. package/dist/chunk-NOYOFYAJ.js +59 -0
  150. package/dist/{chunk-LPV6T362.js → chunk-NROSSWMS.js} +8 -6
  151. package/dist/{chunk-ZKYRDV7A.js → chunk-OBUB3H72.js} +14 -12
  152. package/dist/{chunk-ZQLRCA2V.js → chunk-OCQWSFJD.js} +10 -8
  153. package/dist/{chunk-42EPP7OB.js → chunk-OK6JGLE7.js} +14 -12
  154. package/dist/{chunk-MD7KUEJ3.js → chunk-OPWGPQ2N.js} +9 -7
  155. package/dist/{chunk-SH27FYPF.js → chunk-OSYHGGL3.js} +20 -18
  156. package/dist/chunk-OXXZZ7HQ.js +50 -0
  157. package/dist/chunk-P22EPEBR.js +57 -0
  158. package/dist/chunk-P4YUT7W7.js +45 -0
  159. package/dist/chunk-PCCLVIDP.js +217 -0
  160. package/dist/chunk-PFULMC2D.js +48 -0
  161. package/dist/chunk-PGAMTKBI.js +16 -0
  162. package/dist/{chunk-Y6K3CJBU.js → chunk-PNSSE7JM.js} +152 -29
  163. package/dist/{chunk-3UTYPHN3.js → chunk-POEMZECG.js} +1 -1
  164. package/dist/{chunk-GSGIZ2OO.js → chunk-POSDBRKV.js} +27 -24
  165. package/dist/{chunk-YZDZOEV4.js → chunk-POSZFDSQ.js} +3 -3
  166. package/dist/{chunk-7AB6OWTV.js → chunk-PQQKZPBU.js} +31 -25
  167. package/dist/{chunk-K6JB6XTX.js → chunk-PRMUQUWN.js} +20 -15
  168. package/dist/{chunk-ICHDSWEY.js → chunk-PT4USJNN.js} +10 -8
  169. package/dist/{chunk-265LWMOA.js → chunk-PWXB5GBB.js} +18 -16
  170. package/dist/{chunk-DCWN3HFV.js → chunk-PXMV2LLY.js} +6 -5
  171. package/dist/{chunk-THN26IEF.js → chunk-PXW2RZGQ.js} +4 -1
  172. package/dist/{chunk-CG6CULP6.js → chunk-Q367UGYN.js} +7 -5
  173. package/dist/chunk-QA4O2GGC.js +265 -0
  174. package/dist/{chunk-7FHNFCHK.js → chunk-QAVRDONY.js} +225 -375
  175. package/dist/{chunk-VAMHOHUU.js → chunk-QBMLBCQH.js} +16 -13
  176. package/dist/{chunk-WEOMJHPV.js → chunk-QLQIFJP3.js} +18 -15
  177. package/dist/{chunk-UZACEG2C.js → chunk-QLWDIKO4.js} +84 -27
  178. package/dist/{chunk-ZZFHLRQW.js → chunk-QVVGJVVX.js} +18 -16
  179. package/dist/{chunk-WIWTJMMR.js → chunk-QX4MAMUG.js} +23 -21
  180. package/dist/{chunk-JYTIHTIK.js → chunk-QZWRPQTI.js} +6 -6
  181. package/dist/{chunk-5WERBKLE.js → chunk-RCG5IAAT.js} +55 -227
  182. package/dist/chunk-RGZFOKVO.js +106 -0
  183. package/dist/{chunk-C7CEK3KW.js → chunk-RLZFL76D.js} +7 -5
  184. package/dist/{chunk-PTQ3ZALZ.js → chunk-RPQITJNX.js} +14 -12
  185. package/dist/{chunk-JS6WMC3J.js → chunk-RQQYEDAC.js} +10 -8
  186. package/dist/chunk-RQSLHZ7T.js +36 -0
  187. package/dist/{chunk-API5TOUB.js → chunk-RRQUQAXP.js} +1 -1
  188. package/dist/chunk-RYQ4JCFT.js +65 -0
  189. package/dist/chunk-S35DIFJH.js +38 -0
  190. package/dist/{chunk-YWAKDNMH.js → chunk-S5GSQPIN.js} +70 -19
  191. package/dist/chunk-S5XFO4GY.js +42 -0
  192. package/dist/chunk-S6LW2RRC.js +25 -0
  193. package/dist/{chunk-TSM6T6GQ.js → chunk-S6W3D5GS.js} +25 -23
  194. package/dist/{chunk-5PV7S2ZP.js → chunk-S7GUZ45I.js} +4 -3
  195. package/dist/{chunk-MMZUN7ZO.js → chunk-SCT4CEF7.js} +22 -20
  196. package/dist/{chunk-AOCWFA7T.js → chunk-SK5RVP7X.js} +8 -8
  197. package/dist/chunk-SRTUETF5.js +50 -0
  198. package/dist/{chunk-E57AOFYN.js → chunk-SVGGMBJI.js} +15 -13
  199. package/dist/{chunk-OV57AHCG.js → chunk-SWNKO4C4.js} +35 -26
  200. package/dist/chunk-SYP56T2D.js +65 -0
  201. package/dist/{chunk-5CMPVC3N.js → chunk-T33TPFGI.js} +25 -23
  202. package/dist/{chunk-Q26LDIUV.js → chunk-T3FNG2H2.js} +18 -15
  203. package/dist/{chunk-UFE36WJH.js → chunk-T6MAWL5P.js} +6 -4
  204. package/dist/{chunk-LN77DXBM.js → chunk-T6MX7WXM.js} +14 -11
  205. package/dist/{chunk-WCEF7H6L.js → chunk-T7IIEDA3.js} +10 -7
  206. package/dist/{chunk-2HTEMYTB.js → chunk-TABH4RBZ.js} +163 -84
  207. package/dist/{chunk-YO2PKTXT.js → chunk-TDSCKP3V.js} +5 -3
  208. package/dist/{chunk-BVWWPBKD.js → chunk-TMFMXQEN.js} +23 -21
  209. package/dist/{chunk-4B6BT75O.js → chunk-TNCF26JK.js} +83 -26
  210. package/dist/{chunk-75ASLHBT.js → chunk-TUM52SOE.js} +21 -15
  211. package/dist/{chunk-ZLS6PU2O.js → chunk-TV56QLLV.js} +4 -3
  212. package/dist/{chunk-JKIGL3XQ.js → chunk-TVQSXWWV.js} +36 -33
  213. package/dist/{chunk-OKUB6RJA.js → chunk-TXNSQ24G.js} +14 -11
  214. package/dist/{chunk-4CYTJ5TZ.js → chunk-UALE35WK.js} +4 -3
  215. package/dist/{chunk-CNU5Q2D5.js → chunk-UJF7PIMP.js} +35 -27
  216. package/dist/chunk-UMCDODBX.js +53 -0
  217. package/dist/{chunk-M6D2U3YM.js → chunk-UTPIFH4I.js} +4 -3
  218. package/dist/{chunk-COYN3UAN.js → chunk-V7PEHQZU.js} +95 -26
  219. package/dist/{chunk-U3NBK4EU.js → chunk-VJFXQISZ.js} +8 -8
  220. package/dist/chunk-VJZI6KFP.js +47 -0
  221. package/dist/{chunk-ECLXZWAG.js → chunk-VK7WYA64.js} +14 -12
  222. package/dist/{chunk-DDJPM5YX.js → chunk-VKTXFFOZ.js} +5 -3
  223. package/dist/{chunk-LIRVU3HW.js → chunk-VNIN7Q6Q.js} +32 -20
  224. package/dist/{chunk-7QPCGTPS.js → chunk-VRO7KSGL.js} +24 -21
  225. package/dist/{chunk-AZDITBCT.js → chunk-W3AZE7LN.js} +3 -3
  226. package/dist/chunk-W4TNCEI4.js +44 -0
  227. package/dist/{chunk-S2RY3BOD.js → chunk-W5VYJWOG.js} +31 -21
  228. package/dist/{chunk-X2CUXTWU.js → chunk-WF3RCZNO.js} +6 -6
  229. package/dist/{chunk-4D62IZII.js → chunk-WOMQQWTO.js} +7 -5
  230. package/dist/{chunk-UF4UHCIG.js → chunk-WXVTYLVH.js} +6 -4
  231. package/dist/{chunk-EDZ45WIR.js → chunk-WYGTSZHR.js} +18 -14
  232. package/dist/{chunk-HSZMPH5T.js → chunk-WZYM5M4U.js} +592 -133
  233. package/dist/chunk-X5ZHDSLU.js +49 -0
  234. package/dist/chunk-X7XVMYIL.js +5 -0
  235. package/dist/chunk-X7ZKNSK4.js +41 -0
  236. package/dist/{chunk-QE527XRY.js → chunk-XAPXKFIS.js} +26 -23
  237. package/dist/{chunk-HE3HRDNZ.js → chunk-XF6TSZW2.js} +2 -2
  238. package/dist/{chunk-GX74YWR7.js → chunk-XFDDJQT7.js} +16 -14
  239. package/dist/{chunk-5QUOPNLN.js → chunk-XGO74QWR.js} +4 -4
  240. package/dist/chunk-XLZAAAPX.js +43 -0
  241. package/dist/{chunk-NYOABJNK.js → chunk-XMUWPA56.js} +26 -24
  242. package/dist/{chunk-M4H2UG4R.js → chunk-XNFM6WUK.js} +19 -16
  243. package/dist/{chunk-TGVVUKTG.js → chunk-XOMEQVLK.js} +2 -2
  244. package/dist/{chunk-A2G72UI4.js → chunk-Y2H7X3VI.js} +7 -7
  245. package/dist/{chunk-37WE3LS2.js → chunk-Y5IE6YKD.js} +5 -3
  246. package/dist/{chunk-IFFRGC3N.js → chunk-YD3KTW4H.js} +14 -12
  247. package/dist/{chunk-75ZOZFGH.js → chunk-YDCOZOER.js} +20 -18
  248. package/dist/{chunk-6DQYZU2W.js → chunk-YERAAEO4.js} +20 -20
  249. package/dist/{chunk-J5AAZ6OJ.js → chunk-YHMPDIRG.js} +5 -4
  250. package/dist/{chunk-CNPY4NTZ.js → chunk-Z2D4P3R3.js} +15 -13
  251. package/dist/{chunk-E2VXBSIR.js → chunk-Z3H27OMV.js} +6 -4
  252. package/dist/{chunk-AE4P57KK.js → chunk-Z3RAFU5B.js} +17 -15
  253. package/dist/{chunk-RA33EYS4.js → chunk-ZENHDXRZ.js} +23 -17
  254. package/dist/{chunk-TJH2EUAZ.js → chunk-ZFHFC74B.js} +20 -18
  255. package/dist/{chunk-4PYC2UGC.js → chunk-ZGULQAPZ.js} +7 -4
  256. package/dist/{chunk-4SKZDI62.js → chunk-ZIUFM5HT.js} +3 -1
  257. package/dist/{chunk-JAABT3DA.js → chunk-ZJGCGKA4.js} +4 -3
  258. package/dist/{chunk-GIFMBCTW.js → chunk-ZLQEQR3D.js} +10 -8
  259. package/dist/{chunk-I2A3Z5AK.js → chunk-ZNHQGG7J.js} +7 -7
  260. package/dist/{chunk-5TDRBOAV.js → chunk-ZNTTW4IT.js} +7 -5
  261. package/dist/{chunk-ZX7235KR.js → chunk-ZR6J4QFQ.js} +44 -383
  262. package/dist/{chunk-F6H2RJ3N.js → chunk-ZSNOILL5.js} +1 -1
  263. package/dist/files.json +585 -509
  264. package/dist/packages/sdk/npm/index.js +1491 -110
  265. package/dist/packages/ui/dist/assets/{elk-api-CowTnhEJ.js → elk-api-DxfAMOJq.js} +2 -2
  266. package/dist/packages/ui/dist/assets/index-Buit9TfP.js +62 -0
  267. package/dist/packages/ui/dist/assets/index-Jyc9dFeZ.css +1 -0
  268. package/dist/packages/ui/dist/index.html +3 -2
  269. package/package.json +3 -3
  270. package/dist/chunk-26WBY34Y.js +0 -37
  271. package/dist/chunk-3TD6S4TC.js +0 -49
  272. package/dist/chunk-5G7ILBUG.js +0 -66
  273. package/dist/chunk-6FNAKCET.js +0 -38
  274. package/dist/chunk-AM6FP6JW.js +0 -43
  275. package/dist/chunk-CFH3QH26.js +0 -29
  276. package/dist/chunk-CLD4RVTA.js +0 -45
  277. package/dist/chunk-D5KV5PSK.js +0 -45
  278. package/dist/chunk-D5MASS4I.js +0 -48
  279. package/dist/chunk-DN4A2Q2O.js +0 -57
  280. package/dist/chunk-FGAGWYZB.js +0 -47
  281. package/dist/chunk-GUYL7RMK.js +0 -60
  282. package/dist/chunk-J2O4LFVI.js +0 -80
  283. package/dist/chunk-JITJP64K.js +0 -34
  284. package/dist/chunk-JRXHON4E.js +0 -41
  285. package/dist/chunk-JU4QNJSR.js +0 -62
  286. package/dist/chunk-N3RUGTGV.js +0 -39
  287. package/dist/chunk-ODMBPDDV.js +0 -298
  288. package/dist/chunk-OMPENNWY.js +0 -39
  289. package/dist/chunk-PKJAV25S.js +0 -43
  290. package/dist/chunk-PRTBPXYA.js +0 -50
  291. package/dist/chunk-PRZ7KMWL.js +0 -42
  292. package/dist/chunk-QSIDVFB7.js +0 -45
  293. package/dist/chunk-SB5GRUFM.js +0 -54
  294. package/dist/chunk-T74WQQGS.js +0 -40
  295. package/dist/chunk-X7EMBM5X.js +0 -34
  296. package/dist/chunk-Z6VLC5X4.js +0 -36
  297. package/dist/chunk-ZPDDEVQX.js +0 -47
  298. package/dist/packages/ui/dist/assets/index-Dw20IRhQ.css +0 -1
  299. package/dist/packages/ui/dist/assets/index-z2wv0d5d.js +0 -47
@@ -5,44 +5,70 @@ var __atticusUrl = (p) => new URL("./" + p, import.meta.url).href;
5
5
  var __atticusPath = (p) => __atticusFileURLToPath(__atticusUrl(p));
6
6
  import {
7
7
  aliasArgv
8
- } from "./chunk-BXBCMGIQ.js";
8
+ } from "./chunk-24OXGB3P.js";
9
9
  import {
10
10
  VERSION
11
- } from "./chunk-VUVGX5L2.js";
11
+ } from "./chunk-JFFKHIM6.js";
12
+ import {
13
+ OPTIONS,
14
+ optionsFor
15
+ } from "./chunk-QA4O2GGC.js";
12
16
  import {
13
17
  SCHEMA_VERSION,
14
- createLog
15
- } from "./chunk-ODMBPDDV.js";
18
+ createLog,
19
+ printToCurrent,
20
+ recordedCommand,
21
+ startTerminalRun
22
+ } from "./chunk-B4AEL3RF.js";
16
23
  import "./chunk-TV45EUGM.js";
17
24
 
18
25
  // packages/cli/dist/main.js
19
26
  import { parseArgs } from "node:util";
20
27
  import { basename, join, resolve } from "node:path";
21
28
  import { existsSync } from "node:fs";
22
- var loadAi = () => import("./chunk-GCS3FZOB.js");
29
+
30
+ // packages/cli/dist/run-progress.js
31
+ import { AsyncLocalStorage } from "node:async_hooks";
32
+ var runLine = new AsyncLocalStorage();
33
+ function withRunLine(line, work) {
34
+ return runLine.run(line, work);
35
+ }
36
+ function printProgress(l, write = (s) => void process.stderr.write(s)) {
37
+ write(`${l}
38
+ `);
39
+ try {
40
+ runLine.getStore()?.(l);
41
+ } catch {
42
+ }
43
+ printToCurrent(l);
44
+ }
45
+
46
+ // packages/cli/dist/main.js
47
+ var loadAi = () => import("./chunk-BFMTGNAQ.js");
23
48
  var runtimeForCli = async (...a) => {
24
49
  await setUpAi();
25
50
  return (await loadAi()).runtimeForCli(...a);
26
51
  };
27
- var gitUser = (...a) => import("./chunk-FAJDKNSD.js").then((m) => m.gitUser(...a));
52
+ var gitUser = (...a) => import("./chunk-FVYZ4Y52.js").then((m) => m.gitUser(...a));
28
53
  var loadAiSetUp = () => Promise.all([
29
54
  loadAi(),
30
- import("./chunk-BPPU3PW7.js"),
31
- import("./chunk-GDZB57IU.js"),
32
- import("./chunk-75ASLHBT.js"),
33
- import("./chunk-5TDRBOAV.js"),
34
- import("./chunk-3UTYPHN3.js")
55
+ import("./chunk-7YQBDE5W.js"),
56
+ import("./chunk-LZVHP7CT.js"),
57
+ import("./chunk-TUM52SOE.js"),
58
+ import("./chunk-ZNTTW4IT.js"),
59
+ import("./chunk-POEMZECG.js"),
60
+ import("./chunk-J2H7YG3K.js")
35
61
  ]);
36
62
  async function setUpAi() {
37
- const [ai, providers, plugins, naysayer, codeTools, draftCheck] = await loadAiSetUp();
63
+ const [ai, providers, plugins, naysayer, codeTools, draftCheck, address] = await loadAiSetUp();
64
+ ai.registerModelGuard((o) => address.guardModelAddress(o));
38
65
  providers.registerBuiltInModelProviders();
39
66
  plugins.registerModelProviderPlugins();
40
67
  ai.registerToolSource((at) => (req) => draftCheck.bothTools(codeTools.metarepoToolBox(at), draftCheck.draftCheckTool(at, req)));
41
68
  naysayer.registerCodeSearch(codeTools.criticCodeSearch);
42
69
  ai.registerCopilotAcp({
43
70
  ...process.argv[1] ? { exec: ai.atticusExec(process.argv[1]) } : {},
44
- onProgress: (l) => process.stderr.write(`${l}
45
- `),
71
+ onProgress: (l) => printProgress(l),
46
72
  clientVersion: VERSION
47
73
  });
48
74
  }
@@ -68,73 +94,73 @@ var NO_AI = /* @__PURE__ */ new Set([
68
94
  "questions show"
69
95
  ]);
70
96
  var runsNoAi = (group, command) => NO_AI.has(group) || NO_AI.has(`${group} ${command ?? ""}`);
71
- var loadCommands = () => import("./chunk-YKTE2RU3.js");
97
+ var loadCommands = () => import("./chunk-EVTI22PQ.js");
72
98
  var catalogValidate = (...a) => loadCommands().then((m) => m.catalogValidate(...a));
73
99
  var orgPackValidate = (...a) => loadCommands().then((m) => m.orgPackValidate(...a));
74
100
  var schemaExport = (...a) => loadCommands().then((m) => m.schemaExport(...a));
75
- var loadWorkspaceCommands = () => import("./chunk-SB5GRUFM.js");
101
+ var loadWorkspaceCommands = () => import("./chunk-5O7U67UA.js");
76
102
  var openspecCheck = (...a) => loadWorkspaceCommands().then((m) => m.openspecCheck(...a));
77
103
  var openspecSetup = (...a) => loadWorkspaceCommands().then((m) => m.openspecSetup(...a));
78
104
  var workspaceOpen = (...a) => loadWorkspaceCommands().then((m) => m.workspaceOpen(...a));
79
105
  var workspacePrune = (...a) => loadWorkspaceCommands().then((m) => m.workspacePrune(...a));
80
106
  var workspaceSync = (...a) => loadWorkspaceCommands().then((m) => m.workspaceSync(...a));
81
- var loadScanCommands = () => import("./chunk-JITJP64K.js");
107
+ var loadScanCommands = () => import("./chunk-RQSLHZ7T.js");
82
108
  var catalogDiff = (...a) => loadScanCommands().then((m) => m.catalogDiff(...a));
83
109
  var scanCommand = (...a) => loadScanCommands().then((m) => m.scanCommand(...a));
84
- var loadIndexCommands = () => import("./chunk-4CLK2RJO.js");
110
+ var loadIndexCommands = () => import("./chunk-BFL4PO64.js");
85
111
  var askCommand = (...a) => loadIndexCommands().then((m) => m.askCommand(...a));
86
112
  var impactCommand = (...a) => loadIndexCommands().then((m) => m.impactCommand(...a));
87
113
  var indexRebuild = (...a) => loadIndexCommands().then((m) => m.indexRebuild(...a));
88
114
  var queryCommand = (...a) => loadIndexCommands().then((m) => m.queryCommand(...a));
89
115
  var searchCommand = (...a) => loadIndexCommands().then((m) => m.searchCommand(...a));
90
- var loadSiteCommands = () => import("./chunk-QKMRFNMA.js");
116
+ var loadSiteCommands = () => import("./chunk-73V2OONC.js");
91
117
  var guideCommand = (...a) => loadSiteCommands().then((m) => m.guideCommand(...a));
92
118
  var siteBuildCommand = (...a) => loadSiteCommands().then((m) => m.siteBuildCommand(...a));
93
- var loadBaselineCommands = () => import("./chunk-CLD4RVTA.js");
119
+ var loadBaselineCommands = () => import("./chunk-OXXZZ7HQ.js");
94
120
  var baselineCommand = (...a) => loadBaselineCommands().then((m) => m.baselineCommand(...a));
95
121
  var setupCommand = (...a) => loadBaselineCommands().then((m) => m.setupCommand(...a));
96
- var loadDigestCommands = () => import("./chunk-CFH3QH26.js");
122
+ var loadDigestCommands = () => import("./chunk-HMWJWYE2.js");
97
123
  var digestCommand = (...a) => loadDigestCommands().then((m) => m.digestCommand(...a));
98
- var loadDoctor = () => import("./chunk-PRTBPXYA.js");
124
+ var loadDoctor = () => import("./chunk-UMCDODBX.js");
99
125
  var doctorCommand = (...a) => loadDoctor().then((m) => m.doctorCommand(...a));
100
- var loadSupport = () => import("./chunk-GC2VK3JT.js");
126
+ var loadSupport = () => import("./chunk-M3EOFSPY.js");
101
127
  var supportBundleCommand = (...a) => loadSupport().then((m) => m.supportBundleCommand(...a));
102
- var loadUpgrade = () => import("./chunk-AM6FP6JW.js");
128
+ var loadUpgrade = () => import("./chunk-AHFQHPFF.js");
103
129
  var upgradeCommand = (...a) => loadUpgrade().then((m) => m.upgradeCommand(...a));
104
- var loadReconcileCommands = () => import("./chunk-42EPP7OB.js");
130
+ var loadReconcileCommands = () => import("./chunk-OK6JGLE7.js");
105
131
  var aliasCommand = (...a) => loadReconcileCommands().then((m) => m.aliasCommand(...a));
106
132
  var reconcileCommand = (...a) => loadReconcileCommands().then((m) => m.reconcileCommand(...a));
107
- var loadKnowledgeCommands = () => import("./chunk-EDZ45WIR.js");
133
+ var loadKnowledgeCommands = () => import("./chunk-WYGTSZHR.js");
108
134
  var coverageCommand = (...a) => loadKnowledgeCommands().then((m) => m.coverageCommand(...a));
109
135
  var patternsScan = (...a) => loadKnowledgeCommands().then((m) => m.patternsScan(...a));
110
136
  var questionsCommand = (...a) => loadKnowledgeCommands().then((m) => m.questionsCommand(...a));
111
- var questionsFiles = (...a) => import("./chunk-CNU5Q2D5.js").then((m) => m.questionsFiles(...a));
137
+ var questionsFiles = (...a) => import("./chunk-UJF7PIMP.js").then((m) => m.questionsFiles(...a));
112
138
  var sourcesAdd = (...a) => loadKnowledgeCommands().then((m) => m.sourcesAdd(...a));
113
139
  var sourcesSync = (...a) => loadKnowledgeCommands().then((m) => m.sourcesSync(...a));
114
- var loadDiagramCommands = () => import("./chunk-ECLXZWAG.js");
140
+ var loadDiagramCommands = () => import("./chunk-VK7WYA64.js");
115
141
  var diagramLibrary = (...a) => loadDiagramCommands().then((m) => m.diagramLibrary(...a));
116
142
  var diagramRender = (...a) => loadDiagramCommands().then((m) => m.diagramRender(...a));
117
- var loadStubCommands = () => import("./chunk-CNPY4NTZ.js");
143
+ var loadStubCommands = () => import("./chunk-Z2D4P3R3.js");
118
144
  var stubCheck = (...a) => loadStubCommands().then((m) => m.stubCheck(...a));
119
145
  var stubServe = (...a) => loadStubCommands().then((m) => m.stubServe(...a));
120
- var loadIntakeCommands = () => import("./chunk-ZKYRDV7A.js");
146
+ var loadIntakeCommands = () => import("./chunk-OBUB3H72.js");
121
147
  var intakeAdd = (...a) => loadIntakeCommands().then((m) => m.intakeAdd(...a));
122
148
  var intakeList = (...a) => loadIntakeCommands().then((m) => m.intakeList(...a));
123
149
  var triageDecide = (...a) => loadIntakeCommands().then((m) => m.triageDecide(...a));
124
150
  var triageList = (...a) => loadIntakeCommands().then((m) => m.triageList(...a));
125
- var loadRunCommands = () => import("./chunk-5G7ILBUG.js");
151
+ var loadRunCommands = () => import("./chunk-J2CDBSFP.js");
126
152
  var assistantFiles = (...a) => loadRunCommands().then((m) => m.assistantFiles(...a));
127
153
  var driftCommand = (...a) => loadRunCommands().then((m) => m.driftCommand(...a));
128
154
  var specHandDown = (...a) => loadRunCommands().then((m) => m.specHandDown(...a));
129
155
  var specHandUp = (...a) => loadRunCommands().then((m) => m.specHandUp(...a));
130
156
  var runDone = (...a) => loadRunCommands().then((m) => m.runDone(...a));
131
157
  var taskRun = (...a) => loadRunCommands().then((m) => m.taskRun(...a));
132
- var taskRunReady = (...a) => import("./chunk-JKIGL3XQ.js").then((m) => m.taskRunReady(...a));
133
- var loadFeatureCommands = () => import("./chunk-YTTNTQOX.js");
158
+ var taskRunReady = (...a) => import("./chunk-TVQSXWWV.js").then((m) => m.taskRunReady(...a));
159
+ var loadFeatureCommands = () => import("./chunk-CFUDAW3R.js");
134
160
  var featureSuggestNames = (...a) => loadFeatureCommands().then((m) => m.featureSuggestNames(...a));
135
- var loadDomainCommands = () => import("./chunk-TQTRWENN.js");
161
+ var loadDomainCommands = () => import("./chunk-6RYB3EET.js");
136
162
  var domainProfileCommand = (...a) => loadDomainCommands().then((m) => m.domainProfileCommand(...a));
137
- var loadPlanCommands = () => import("./chunk-MMZUN7ZO.js");
163
+ var loadPlanCommands = () => import("./chunk-SCT4CEF7.js");
138
164
  var adoSync = (...a) => loadPlanCommands().then((m) => m.adoSync(...a));
139
165
  var changeDraft = (...a) => loadPlanCommands().then((m) => m.changeDraft(...a));
140
166
  var planStories = (...a) => loadPlanCommands().then((m) => m.planStories(...a));
@@ -142,13 +168,13 @@ var snowDraft = (...a) => loadPlanCommands().then((m) => m.snowDraft(...a));
142
168
  var snowSubmit = (...a) => loadPlanCommands().then((m) => m.snowSubmit(...a));
143
169
  var storyBarCommand = (...a) => loadPlanCommands().then((m) => m.storyBarCommand(...a));
144
170
  var templatesDraft = (...a) => loadPlanCommands().then((m) => m.templatesDraft(...a));
145
- var loadTodoCommands = () => import("./chunk-YAH5IQAL.js");
171
+ var loadTodoCommands = () => import("./chunk-CS4BMJLL.js");
146
172
  var executorsCheck = (...a) => loadTodoCommands().then((m) => m.executorsCheck(...a));
147
173
  var todoDone = (...a) => loadTodoCommands().then((m) => m.todoDone(...a));
148
174
  var todoList = (...a) => loadTodoCommands().then((m) => m.todoList(...a));
149
175
  var todoRun = (...a) => loadTodoCommands().then((m) => m.todoRun(...a));
150
176
  var todoShow = (...a) => loadTodoCommands().then((m) => m.todoShow(...a));
151
- var loadSetupCommands = () => import("./chunk-HS4BGB4G.js");
177
+ var loadSetupCommands = () => import("./chunk-FJVUHQPS.js");
152
178
  var absorbCommand = (...a) => loadSetupCommands().then((m) => m.absorbCommand(...a));
153
179
  var absorbAcceptCommand = (...a) => loadSetupCommands().then((m) => m.absorbAcceptCommand(...a));
154
180
  var absorbRefreshCommand = (...a) => loadSetupCommands().then((m) => m.absorbRefreshCommand(...a));
@@ -158,7 +184,7 @@ var initCommand = (...a) => loadSetupCommands().then((m) => m.initCommand(...a))
158
184
  var reposDiscoverCommand = (...a) => loadSetupCommands().then((m) => m.reposDiscoverCommand(...a));
159
185
  var unadoptCommand = (...a) => loadSetupCommands().then((m) => m.unadoptCommand(...a));
160
186
  var zeroInstallCommand = (...a) => loadSetupCommands().then((m) => m.zeroInstallCommand(...a));
161
- var loadQualityCommands = () => import("./chunk-7QPCGTPS.js");
187
+ var loadQualityCommands = () => import("./chunk-VRO7KSGL.js");
162
188
  var ciArchiveGate = (...a) => loadQualityCommands().then((m) => m.ciArchiveGate(...a));
163
189
  var ciDrift = (...a) => loadQualityCommands().then((m) => m.ciDrift(...a));
164
190
  var ciSnippet = (...a) => loadQualityCommands().then((m) => m.ciSnippet(...a));
@@ -169,33 +195,33 @@ var glossaryList = (...a) => loadQualityCommands().then((m) => m.glossaryList(..
169
195
  var glossaryScan = (...a) => loadQualityCommands().then((m) => m.glossaryScan(...a));
170
196
  var testsGenerate = (...a) => loadQualityCommands().then((m) => m.testsGenerate(...a));
171
197
  var traceCommand = (...a) => loadQualityCommands().then((m) => m.traceCommand(...a));
172
- var loadInitiativeCommands = () => import("./chunk-AE4P57KK.js");
198
+ var loadInitiativeCommands = () => import("./chunk-Z3RAFU5B.js");
173
199
  var initiativeCommitment = (...a) => loadInitiativeCommands().then((m) => m.initiativeCommitment(...a));
174
200
  var initiativeNew = (...a) => loadInitiativeCommands().then((m) => m.initiativeNew(...a));
175
201
  var initiativePlan = (...a) => loadInitiativeCommands().then((m) => m.initiativePlan(...a));
176
202
  var initiativeStatus = (...a) => loadInitiativeCommands().then((m) => m.initiativeStatus(...a));
177
203
  var requestFromTeam = (...a) => loadInitiativeCommands().then((m) => m.requestFromTeam(...a));
178
- var loadLearnCommands = () => import("./chunk-PKJAV25S.js");
204
+ var loadLearnCommands = () => import("./chunk-P4YUT7W7.js");
179
205
  var explainCommand = (...a) => loadLearnCommands().then((m) => m.explainCommand(...a));
180
206
  var learnCheck = (...a) => loadLearnCommands().then((m) => m.learnCheck(...a));
181
207
  var learnList = (...a) => loadLearnCommands().then((m) => m.learnList(...a));
182
208
  var learnStart = (...a) => loadLearnCommands().then((m) => m.learnStart(...a));
183
209
  var sandboxCreate = (...a) => loadLearnCommands().then((m) => m.sandboxCreate(...a));
184
- var loadEvalCommands = () => import("./chunk-JRXHON4E.js");
185
- var loadBenchCommands = () => import("./chunk-D5MASS4I.js");
210
+ var loadEvalCommands = () => import("./chunk-5MYE42AP.js");
211
+ var loadBenchCommands = () => import("./chunk-6JVPBGQG.js");
186
212
  var benchFetch = (...a) => loadBenchCommands().then((m) => m.benchFetch(...a));
187
213
  var benchRun = (...a) => loadBenchCommands().then((m) => m.benchRun(...a));
188
214
  var benchSurvey = (...a) => loadBenchCommands().then((m) => m.benchSurvey(...a));
189
215
  var benchVerify = (...a) => loadBenchCommands().then((m) => m.benchVerify(...a));
190
- var loadScanVerifyCommands = () => import("./chunk-GSGIZ2OO.js");
191
- var stageCli = (...a) => import("./chunk-NYOABJNK.js").then((m) => m.stageCli(...a));
192
- var knowledgeCli = (...a) => import("./chunk-OV57AHCG.js").then((m) => m.knowledgeCli(...a));
216
+ var loadScanVerifyCommands = () => import("./chunk-POSDBRKV.js");
217
+ var stageCli = (...a) => import("./chunk-XMUWPA56.js").then((m) => m.stageCli(...a));
218
+ var knowledgeCli = (...a) => import("./chunk-SWNKO4C4.js").then((m) => m.knowledgeCli(...a));
193
219
  var defencesScan = (...a) => loadEvalCommands().then((m) => m.defencesScan(...a));
194
220
  var evalReport = (...a) => loadEvalCommands().then((m) => m.evalReport(...a));
195
221
  var evalRun = (...a) => loadEvalCommands().then((m) => m.evalRun(...a));
196
- var loadU1Commands = () => import("./chunk-AHW3RY3X.js");
222
+ var loadU1Commands = () => import("./chunk-KDJ2YKAZ.js");
197
223
  var conformanceCommand = (...a) => loadU1Commands().then((m) => m.conformanceCommand(...a));
198
- var loadReleaseCommands = () => import("./chunk-FGAGWYZB.js");
224
+ var loadReleaseCommands = () => import("./chunk-X5ZHDSLU.js");
199
225
  var outcomeList = (...a) => loadReleaseCommands().then((m) => m.outcomeList(...a));
200
226
  var outcomeRecord = (...a) => loadReleaseCommands().then((m) => m.outcomeRecord(...a));
201
227
  var releaseEvidenceCommand = (...a) => loadReleaseCommands().then((m) => m.releaseEvidenceCommand(...a));
@@ -203,9 +229,9 @@ var releaseForecastCommand = (...a) => loadReleaseCommands().then((m) => m.relea
203
229
  var releaseNotesCommand = (...a) => loadReleaseCommands().then((m) => m.releaseNotesCommand(...a));
204
230
  var releasePlanCommand = (...a) => loadReleaseCommands().then((m) => m.releasePlanCommand(...a));
205
231
  var releaseSecurityCommand = (...a) => loadReleaseCommands().then((m) => m.releaseSecurityCommand(...a));
206
- var loadUiCommands = () => import("./chunk-LNWEWYCM.js");
232
+ var loadUiCommands = () => import("./chunk-E3PDCQRH.js");
207
233
  var uiCommand = (...a) => loadUiCommands().then((m) => m.uiCommand(...a));
208
- var loadCriticCommands = () => import("./chunk-ZZFHLRQW.js");
234
+ var loadCriticCommands = () => import("./chunk-QVVGJVVX.js");
209
235
  var critic = (...a) => loadCriticCommands().then((m) => m.critic(...a));
210
236
  var criticStats = (...a) => loadCriticCommands().then((m) => m.criticStats(...a));
211
237
  var findingAction = (...a) => loadCriticCommands().then((m) => m.findingAction(...a));
@@ -220,7 +246,7 @@ var featureSpec = (...a) => loadFeatureCommands().then((m) => m.featureSpec(...a
220
246
  var featureSplit = (...a) => loadFeatureCommands().then((m) => m.featureSplit(...a));
221
247
  var featureSuggestLinks = (...a) => loadFeatureCommands().then((m) => m.featureSuggestLinks(...a));
222
248
  var featureTag = (...a) => loadFeatureCommands().then((m) => m.featureTag(...a));
223
- var loadChangeCommands = () => import("./chunk-O4IKAIZ2.js");
249
+ var loadChangeCommands = () => import("./chunk-J32IPTVQ.js");
224
250
  var changeArchive = (...a) => loadChangeCommands().then((m) => m.changeArchive(...a));
225
251
  var changeConflicts = (...a) => loadChangeCommands().then((m) => m.changeConflicts(...a));
226
252
  var changeHandoff = (...a) => loadChangeCommands().then((m) => m.changeHandoff(...a));
@@ -231,33 +257,33 @@ var changeStatus = (...a) => loadChangeCommands().then((m) => m.changeStatus(...
231
257
  var changeSync = (...a) => loadChangeCommands().then((m) => m.changeSync(...a));
232
258
  var changeReleasePrs = (...a) => loadChangeCommands().then((m) => m.changeReleasePrs(...a));
233
259
  var changeLearn = (...a) => loadChangeCommands().then((m) => m.changeLearn(...a));
234
- var loadDialectCommands = () => import("./chunk-VAMHOHUU.js");
260
+ var loadDialectCommands = () => import("./chunk-QBMLBCQH.js");
235
261
  var dialectGrade = (...a) => loadDialectCommands().then((m) => m.dialectGrade(...a));
236
262
  var dialectKit = (...a) => loadDialectCommands().then((m) => m.dialectKit(...a));
237
263
  var dialectTree = (...a) => loadDialectCommands().then((m) => m.dialectTree(...a));
238
264
  var dialectNew = (...a) => loadDialectCommands().then((m) => m.dialectNew(...a));
239
265
  var dialectRun = (...a) => loadDialectCommands().then((m) => m.dialectRun(...a));
240
266
  var dialectTest = (...a) => loadDialectCommands().then((m) => m.dialectTest(...a));
241
- var loadPluginCommands = () => import("./chunk-LEBR5NHW.js");
267
+ var loadPluginCommands = () => import("./chunk-K757G7AD.js");
242
268
  var pluginTest = (...a) => loadPluginCommands().then((m) => m.pluginTest(...a));
243
269
  var pluginPin = (...a) => loadPluginCommands().then((m) => m.pluginPin(...a));
244
270
  var pluginAdd = (...a) => loadPluginCommands().then((m) => m.pluginAdd(...a));
245
- var loadFrameworkCommands = () => import("./chunk-WEOMJHPV.js");
271
+ var loadFrameworkCommands = () => import("./chunk-QLQIFJP3.js");
246
272
  var frameworksCheck = (...a) => loadFrameworkCommands().then((m) => m.frameworksCheck(...a));
247
273
  var frameworksDiscover = (...a) => loadFrameworkCommands().then((m) => m.frameworksDiscover(...a));
248
274
  var frameworksKit = (...a) => loadFrameworkCommands().then((m) => m.frameworksKit(...a));
249
275
  var frameworksLearn = (...a) => loadFrameworkCommands().then((m) => m.frameworksLearn(...a));
250
276
  var frameworksSurvey = (...a) => loadFrameworkCommands().then((m) => m.frameworksSurvey(...a));
251
- var loadOnboardCommands = () => import("./chunk-67BP7HXL.js");
277
+ var loadOnboardCommands = () => import("./chunk-LSHSDC6S.js");
252
278
  var onboardAccept = (...a) => loadOnboardCommands().then((m) => m.onboardAccept(...a));
253
279
  var onboardCheck = (...a) => loadOnboardCommands().then((m) => m.onboardCheck(...a));
254
280
  var onboardDraft = (...a) => loadOnboardCommands().then((m) => m.onboardDraft(...a));
255
281
  var scanReview = (...a) => loadOnboardCommands().then((m) => m.scanReview(...a));
256
282
  var scanSurvey = (...a) => loadOnboardCommands().then((m) => m.scanSurvey(...a));
257
- var loadRepoTypeCommands = () => import("./chunk-N3RUGTGV.js");
258
- var loadRepoCommands = () => import("./chunk-TW3KOSQK.js");
259
- var loadSpecCommands = () => import("./chunk-TSM6T6GQ.js");
260
- var loadEstateCommands = () => import("./chunk-WNTIOBOG.js");
283
+ var loadRepoTypeCommands = () => import("./chunk-X7ZKNSK4.js");
284
+ var loadRepoCommands = () => import("./chunk-MBYYQHPM.js");
285
+ var loadSpecCommands = () => import("./chunk-S6W3D5GS.js");
286
+ var loadEstateCommands = () => import("./chunk-N2YX6JMY.js");
261
287
  var onboardEval = (...a) => loadOnboardCommands().then((m) => m.onboardEval(...a));
262
288
  var onboardFramework = (...a) => loadOnboardCommands().then((m) => m.onboardFramework(...a));
263
289
  var onboardFrameworkAccept = (...a) => loadOnboardCommands().then((m) => m.onboardFrameworkAccept(...a));
@@ -322,7 +348,7 @@ Usage:
322
348
  atticus types notes <id> A component type's notes (the architect's write-up), or where to write them
323
349
  atticus connect match <repo> --to <repo> | --system <id> [--mode copilot-acp|hand-off] [--read] [--json] Copilot reads the repo's loose call sites and proposes which of the other box's APIs each reaches, naming the lines; it writes only its answer under proposals/matching/, and nothing is a correction until a person ticks it in the app's Connect panel; --read reads the answer back after a hand-off (ADR 0178)
324
350
  atticus rules list [<repo>] [--json] The organisation's reading rules (ADR 0176): every layer's file, or the rules a repo's reads are given, with their layer, drafts and what is switched off
325
- atticus rules add --org-wide | --type <t> | --repo <r> --key <k> --rule "..." [--files <glob,glob>] [--example <path:line>] [--draft] Write a reading rule to a layer's file, for review
351
+ atticus rules add --key <k> --rule "..." --org-wide | --type <t> | --repo <r> [--files <glob,glob>] [--example <path:line>] [--draft] Write a reading rule to a layer's file, for review
326
352
  atticus rules activate <key> --org-wide | --type <t> | --repo <r> | --team <team> --type <t> Give a draft rule to reads (--team: one of another team's imported copy)
327
353
  atticus rules off <key> --reason "..." --org-wide | --type <t> | --repo <r> Switch an earlier layer's rule (or builtin:<set>) off for this scope, saying why
328
354
  atticus rules draft --type <t> [--repos a,b] | --repo <r> --about "..." [--mode copilot-acp|hand-off] Copilot drafts rules from what the reads keep missing (rejections, corrections, open questions); each is a draft a person sets active
@@ -335,7 +361,7 @@ Usage:
335
361
  [--limit n] [--json] (see docs/query-language.md)
336
362
  atticus context show <id> One record, flow, step, knowledge item, change, answered question or wiki section in full, with its file
337
363
  atticus context walk <id> [--hops 1] [--kind k,k] [--limit n] The links from one id, how each was made, at most two hops
338
- atticus cites --repo <repo> --path <path> What cites each line of one file: the flow steps, with the changes in flight on them, and the records (or --file <path on disk>) [--json]
364
+ atticus cites --repo <repo> --path <path> What cites each line of one file: the flow steps, with the changes in flight on them, and the records (or --file <path on disk>) [--file <path on disk>] [--json]
339
365
  atticus context code <id> [--around 6] The code a fact cites, a few lines around each cited line, from the workspace checkout
340
366
  [--repo r --path p --line n] (or one line a fact cites)
341
367
  atticus context similar <id> [--kind k,k] [--limit n] What reads like one id, by the local embedding model: a hint where to look, never a link
@@ -397,8 +423,9 @@ Usage:
397
423
  atticus questions propose [<id>] /atticus-propose as a command (ADR 0171): under --mode copilot-acp (or runtime.yaml's default) Copilot proposes in a new session, unattended, writing only proposals/questions/, then the proposals are checked; otherwise it prints the line to paste. A person still accepts each one [--mode copilot-acp|hand-off]
398
424
  atticus questions proposed [--json] The answers /atticus-propose proposed for open questions, each citation checked (the file, the line, the quote on it); exits 1 while one doesn't check
399
425
  atticus questions decisions [--json] What the AI decided that stands (ADR 0181): its pairings and answers, Detected by AI with the run; counts from code, by a person, by AI; the batches; whether deciding is paused by the sample audit
400
- atticus questions correct <q-id | link:<repo>:<call>> --option <n> | --api <entry> --to <repo> | --none Correct an AI decision as yours; with Apply to similar (on; --no-similar off) a rule derived from it (or --match) re-checks every AI decision and open item it covers [--preview] [--json]
426
+ atticus questions correct <q-id | link:<repo>:<call>> --option <n> | --api <entry> --to <repo> | --none Correct an AI decision as yours; with Apply to similar (on; --no-similar off) a rule derived from it (or --match) re-checks every AI decision and open item it covers [--no-similar] [--match <rule>] [--preview] [--json]
401
427
  atticus questions undo <batch> [--json] Undo one batch of decisions (by AI, or a correction and its rule): exactly its lines and answers
428
+ atticus questions route <id> --to product|architecture|analysis|delivery Move a question to the role that answers it (ADR 0191): a business question to the product owner, a design one to the architect [--by who]
402
429
  atticus questions sheet [--out <file>] Every open question in one YAML answer sheet, each with an empty answer:, to answer in one sitting
403
430
  atticus questions sheet --apply <file> [--by who] [--json] Answer each filled entry as you; skips blanks, refuses one whose question changed since
404
431
  atticus intake add <files...> Drop documents, specs and diagrams into inputs/inbox for intake
@@ -411,7 +438,7 @@ Usage:
411
438
  atticus diagram render <view|file> Draw a view (context, container, data, event, sequence) or a .drawio file
412
439
  [--focus id] [--format mermaid|drawio] [--out file]
413
440
  atticus diagram library <file> Write the draw.io shape library
414
- atticus stub serve <spec|id> Serve a stub of an API from its spec, or from the catalog (--from-catalog)
441
+ atticus stub serve <spec|id> Serve a stub of an API from its spec, or from the catalog [--from-catalog]
415
442
  [--port 4010] [--host 127.0.0.1]
416
443
  atticus stub check <spec> Which operations have examples to answer with
417
444
  atticus dialect new <name> --from <repo>[,<repo>...] Scaffold a dialect from sample repos
@@ -436,12 +463,12 @@ Usage:
436
463
  atticus frameworks check [name] Run each framework model's own tests; a failing model isn't used
437
464
  atticus frameworks survey [--package <prefix>[,...]] How the repos use house frameworks, any language [--json]
438
465
  atticus frameworks kit [dir] Export the framework-model kit for an assistant
439
- atticus change new "<title>" Start a change from a template: --type <type>
466
+ atticus change new "<title>" --type <type> Start a change from a template
440
467
  [--template id] [--id id] [--owner role=a,b]... [--system id]... [--like <archived change>]
441
468
  [--impact <vendor spec>] (its footprint: what the spec's newer version reaches, see intake impact)
442
469
  atticus change sketch <change> --from <file.drawio|.mmd> [--save] [--json] Read a draw.io export or a Mermaid flowchart as strokes into the change's target flows (a line marked new or not on today's map is a call or a topic; one marked retired takes today's step out); shows what it would draw, --save draws it (ADR 0179)
443
470
  atticus change impact <change> [--json] What the change's target flows break across the estate: each entry or table, who calls or uses it (a link the map guessed: may break, not counted), the fields that stop crossing and the gateway routes to update, each with its owner team; then who calls the callers, up to five hops up
444
- atticus change similar "<brief>" The archived changes nearest a new brief (or --change <id>: a change's own), to start from one with change new --like or change attach --like [--limit n] [--json]
471
+ atticus change similar "<brief>" The archived changes nearest a new brief (or --change <id>: a change's own), to start from one with change new --like or change attach --like [--change <id>] [--limit n] [--json]
445
472
  atticus domain profile <system> A system as a domain profile, filled from the catalog [--out file]
446
473
  atticus change feature <change> The feature stage: your assistant places the change on the estate's flows and features from the brief, stories or a design; checked and criticised every draft until done [--from-figma f.json] [--mode m] [--resume run] [--force] [--context-tokens n] [--whole-context] [--max-tokens n]
447
474
  atticus change architecture <change> The architecture stage: the target flows (steps added, changed or removed, with fields) as flow deltas; looped the same way [--mode m] [--resume run] [--context-tokens n] [--whole-context] [--max-tokens n]
@@ -515,7 +542,7 @@ Usage:
515
542
  atticus todo done <step> Record a manual step's result [--result k=v]... [--skip --note why]
516
543
  atticus todo run <step> --with <executor> Run a step with a team's own tool [--approve --inputs sha] [--fill-only]
517
544
  atticus executors check Ping configured executors and show what each covers
518
- atticus init <folder> --platform <p> Create a new metarepo named after the folder [--from pack] [--owner who] [--openspec-store: also an OpenSpec store, beta]
545
+ atticus init <folder> --platform <p> Create a new metarepo named after the folder [--from pack] [--owner who] [--by you] [--openspec-store: also an OpenSpec store, beta]
519
546
  atticus adopt <path> Use Atticus in an existing repo; writes only .atticus/ [--platform p] [--name n]
520
547
  atticus unadopt <path> Remove Atticus from an adopted repo, leaving it as it was
521
548
  atticus repos discover <folder> | --org <org> Propose repos.manifest.yaml entries [--platform p] [--dry-run]
@@ -585,7 +612,7 @@ Usage:
585
612
  atticus next [--all] [--json] The next step to take, its command and slash command, and why; from the files only
586
613
  [--queue] The repos to read next, gateways and the repos others call first so links land early, each with its estimated cost, and what each read so far took (ADR 0141)
587
614
  atticus <step> --handoff [--json] On map, scan survey, scan verify, spec draft, knowledge scan, change feature, change architecture, change small, change draft, stories, change needs, knowledge find, knowledge ask and critic (its lenses one at a time, as a stage offers its critic lenses after each draft): print only the prompt, the result file and the commands that finish it
588
- atticus <step> --max-tokens n On the same steps: the model's limit. The whole prompt fits n tokens (counted as characters / 4, a quarter kept back for the count's error), or the step says before handing off that it can't, with the numbers. The VS Code extension passes its model's limit to every step
615
+ atticus <step> --max-tokens n On the same steps: the model's limit. The whole prompt fits n tokens (counted as characters / 4 and characters outside ASCII one each, a quarter kept back for the count's error), or the step says before handing off that it can't, with the numbers. The VS Code extension passes its model's limit to every step
589
616
  atticus workspace sync Clone or update the base clone of every repo in the manifests
590
617
  [--repos a,b] Only these repos
591
618
  [--from <folder>] Copy a missing base clone from your own clone of it in that folder: no network, your clone only read
@@ -601,7 +628,7 @@ Usage:
601
628
  atticus ui [--port n] [--open] Start the app on this machine (127.0.0.1); Ctrl+C stops it
602
629
  [--embed vscode] Let a VS Code panel show the app (the Atticus extension starts it so)
603
630
  [--parent pid] Stop when that process ends (an editor that started it)
604
- [--show-token] Print the session token, for an assistant or a script (an editor that starts it gets it)
631
+ [--show-token] Print the session token, for an assistant or a script (an editor that starts it gets it); it never approves a PR, push, merge or message (ADR 0186)
605
632
  [--full] Every page a tab of its section, and the menu's More pages open
606
633
  atticus --version Print the version
607
634
  atticus --help Show this help
@@ -639,7 +666,7 @@ function num(v) {
639
666
  const n = typeof v === "string" ? Number(v) : NaN;
640
667
  return Number.isInteger(n) && n > 0 ? n : void 0;
641
668
  }
642
- async function main(given, io, o = {}) {
669
+ async function main(given, givenIo, o = {}) {
643
670
  const started = Date.now();
644
671
  const argv = aliasArgv(given, positionalsAt(given));
645
672
  const words = argv.filter((a) => !a.startsWith("-")).slice(0, 2);
@@ -650,11 +677,34 @@ async function main(given, io, o = {}) {
650
677
  const rootEq = argv.find((a) => a.startsWith("--root="));
651
678
  const root = resolve(rootAt >= 0 && argv[rootAt + 1] ? argv[rootAt + 1] : rootEq ? rootEq.slice("--root=".length) : process.env.ATTICUS_ACP_SESSION && process.env.ATTICUS_ROOT ? process.env.ATTICUS_ROOT : process.cwd());
652
679
  const log = () => isMetarepoRoot(root) ? createLog(root, o.quiet ? { level: "warn" } : {}) : void 0;
680
+ const said = o.record ? recorderFor(argv, flags, root) : void 0;
681
+ const io = {
682
+ ...givenIo,
683
+ out: (l) => {
684
+ said?.line(l);
685
+ printToCurrent(l);
686
+ givenIo.out(l);
687
+ },
688
+ err: (l) => {
689
+ said?.line(l);
690
+ printToCurrent(l);
691
+ givenIo.err(l);
692
+ }
693
+ };
653
694
  try {
654
- const code = await dispatch(argv, io);
695
+ const code = await (said ? withRunLine((l) => said.line(l), () => dispatch(argv, io)) : dispatch(argv, io));
696
+ if (code === 0 && argv.some((a) => a === "--resume" || a.startsWith("--resume="))) {
697
+ const { forgetKeptResume, resumedRunOf } = await import("./chunk-FMR2D3AZ.js");
698
+ const resumed = resumedRunOf(argv);
699
+ if (resumed)
700
+ await forgetKeptResume(root, resumed);
701
+ }
702
+ said?.end(code);
655
703
  log()?.info("command", { command: words.join(" "), flags, code, ms: Date.now() - started });
656
704
  return code;
657
705
  } catch (e) {
706
+ said?.line(`atticus: ${e instanceof Error ? e.message : String(e)}`);
707
+ said?.end(1, "crash");
658
708
  const l = log();
659
709
  l?.error("crash", e, { command: words.join(" "), flags, ms: Date.now() - started });
660
710
  if (l && e instanceof Error)
@@ -681,12 +731,25 @@ function positionalsAt(argv) {
681
731
  const { tokens } = parseArgs({
682
732
  args: argv,
683
733
  allowPositionals: true,
684
- options: OPTIONS,
734
+ options: optionsFor(argv),
685
735
  strict: false,
686
736
  tokens: true
687
737
  });
688
738
  return tokens.filter((t) => t.kind === "positional").map((t) => t.index);
689
739
  }
740
+ function recorderFor(argv, flags, root) {
741
+ if (process.env.ATTICUS_RUN_LOG === "off")
742
+ return void 0;
743
+ let positionals;
744
+ try {
745
+ positionals = positionalsAt(argv).map((i) => argv[i]);
746
+ } catch {
747
+ return void 0;
748
+ }
749
+ if (!recordedCommand(positionals, flags) || !isMetarepoRoot(root))
750
+ return void 0;
751
+ return startTerminalRun(root, { positionals, flags, hookProcess: true });
752
+ }
690
753
  function isMetarepoRoot(root) {
691
754
  return existsSync(join(root, "org-pack")) || existsSync(join(root, ".atticus", "org-pack"));
692
755
  }
@@ -710,219 +773,18 @@ async function dispatch(argv, io) {
710
773
  return 2;
711
774
  }
712
775
  }
713
- var OPTIONS = {
714
- help: { type: "boolean", short: "h" },
715
- // ADR 0141: what a read took, as the reader reports it (atticus map <repo> --spent).
716
- spent: { type: "string" },
717
- sessions: { type: "string" },
718
- part: { type: "string" },
719
- queue: { type: "boolean" },
720
- // F10: atticus doctor --counts.
721
- counts: { type: "boolean" },
722
- version: { type: "boolean", short: "v" },
723
- fix: { type: "boolean" },
724
- root: { type: "string" },
725
- repos: { type: "string" },
726
- all: { type: "boolean" },
727
- kind: { type: "string" },
728
- executor: { type: "string" },
729
- fixture: { type: "string" },
730
- force: { type: "boolean" },
731
- draft: { type: "boolean" },
732
- story: { type: "string" },
733
- gaps: { type: "boolean" },
734
- // ADR 0167: atticus map <repo> --rules, a top-up for reading rules added since a read.
735
- rules: { type: "boolean" },
736
- // ADR 0169: atticus map <repo> --models reachable|all (ADR 0170: or entries).
737
- models: { type: "string" },
738
- // ADR 0161: atticus map --all.
739
- stale: { type: "boolean" },
740
- "max-parts": { type: "string" },
741
- "budget-tokens": { type: "string" },
742
- idle: { type: "string" },
743
- full: { type: "boolean" },
744
- "dry-run": { type: "boolean" },
745
- json: { type: "boolean" },
746
- limit: { type: "string" },
747
- filter: { type: "string" },
748
- "batch-tokens": { type: "string" },
749
- "max-tokens": { type: "string" },
750
- // atticus probe (ADR 0124 addendum A-probe).
751
- assistant: { type: "string" },
752
- pasted: { type: "boolean" },
753
- "context-tokens": { type: "string" },
754
- "whole-context": { type: "boolean" },
755
- search: { type: "boolean" },
756
- regex: { type: "boolean" },
757
- "ignore-case": { type: "boolean" },
758
- paths: { type: "string" },
759
- // atticus context (ADR 0107 addendum): the context tools.
760
- input: { type: "string" },
761
- run: { type: "string" },
762
- round: { type: "string" },
763
- hops: { type: "string" },
764
- line: { type: "string" },
765
- around: { type: "string" },
766
- depth: { type: "string" },
767
- by: { type: "string" },
768
- as: { type: "string" },
769
- group: { type: "string", multiple: true },
770
- channel: { type: "string" },
771
- send: { type: "boolean" },
772
- site: { type: "string" },
773
- reason: { type: "string" },
774
- focus: { type: "string" },
775
- format: { type: "string" },
776
- out: { type: "string" },
777
- area: { type: "string" },
778
- iteration: { type: "string" },
779
- port: { type: "string" },
780
- open: { type: "boolean" },
781
- "show-token": { type: "boolean" },
782
- embed: { type: "string" },
783
- parent: { type: "string" },
784
- host: { type: "string" },
785
- catalog: { type: "string" },
786
- "from-catalog": { type: "boolean" },
787
- from: { type: "string" },
788
- to: { type: "string" },
789
- package: { type: "string" },
790
- jars: { type: "string", multiple: true },
791
- learn: { type: "boolean" },
792
- type: { type: "string" },
793
- template: { type: "string" },
794
- like: { type: "string" },
795
- impact: { type: "string" },
796
- id: { type: "string" },
797
- owner: { type: "string", multiple: true },
798
- system: { type: "string", multiple: true },
799
- base: { type: "string" },
800
- repo: { type: "string" },
801
- gate: { type: "string" },
802
- lens: { type: "string" },
803
- model: { type: "string" },
804
- "asked-of": { type: "string" },
805
- edit: { type: "string" },
806
- description: { type: "string" },
807
- title: { type: "string" },
808
- name: { type: "string" },
809
- badge: { type: "string" },
810
- shape: { type: "string" },
811
- colour: { type: "string" },
812
- attempts: { type: "string" },
813
- users: { type: "string" },
814
- language: { type: "string" },
815
- replace: { type: "boolean" },
816
- into: { type: "string" },
817
- level: { type: "string" },
818
- mode: { type: "string" },
819
- approve: { type: "boolean" },
820
- pr: { type: "string" },
821
- "pr-url": { type: "string" },
822
- change: { type: "string" },
823
- check: { type: "boolean" },
824
- resume: { type: "string" },
825
- eval: { type: "string" },
826
- epic: { type: "string" },
827
- "no-ai": { type: "boolean" },
828
- "openspec-store": { type: "boolean" },
829
- "no-drift": { type: "boolean" },
830
- warnings: { type: "boolean" },
831
- "no-rescan": { type: "boolean" },
832
- refresh: { type: "string" },
833
- export: { type: "string" },
834
- result: { type: "string", multiple: true },
835
- skip: { type: "boolean" },
836
- note: { type: "string" },
837
- for: { type: "string" },
838
- with: { type: "string" },
839
- inputs: { type: "string" },
840
- "fill-only": { type: "boolean" },
841
- platform: { type: "string" },
842
- ref: { type: "string" },
843
- task: { type: "string" },
844
- latest: { type: "boolean" },
845
- org: { type: "string" },
846
- framework: { type: "string" },
847
- csv: { type: "boolean" },
848
- "no-write": { type: "boolean" },
849
- junit: { type: "string" },
850
- summary: { type: "string" },
851
- "json-out": { type: "string" },
852
- "warn-only": { type: "boolean" },
853
- write: { type: "string" },
854
- path: { type: "string" },
855
- file: { type: "string" },
856
- submodule: { type: "boolean" },
857
- save: { type: "boolean" },
858
- read: { type: "boolean" },
859
- only: { type: "string" },
860
- "verified-only": { type: "boolean" },
861
- unverified: { type: "boolean" },
862
- set: { type: "string", multiple: true },
863
- find: { type: "string" },
864
- drift: { type: "string", multiple: true },
865
- journey: { type: "string" },
866
- release: { type: "string" },
867
- target: { type: "string" },
868
- answer: { type: "string" },
869
- lesson: { type: "string" },
870
- step: { type: "string" },
871
- agent: { type: "string", multiple: true },
872
- runs: { type: "string" },
873
- audience: { type: "string" },
874
- value: { type: "string" },
875
- bench: { type: "string" },
876
- cache: { type: "string" },
877
- batch: { type: "string" },
878
- specs: { type: "boolean" },
879
- estate: { type: "string" },
880
- accept: { type: "boolean" },
881
- // atticus repo add / repo describe (ADR 0128)
882
- reject: { type: "boolean" },
883
- cites: { type: "string" },
884
- drafted: { type: "string" },
885
- "no-description": { type: "boolean" },
886
- component: { type: "string" },
887
- tag: { type: "string" },
888
- source: { type: "string" },
889
- "from-figma": { type: "string" },
890
- replaces: { type: "string" },
891
- promote: { type: "string" },
892
- prototype: { type: "string" },
893
- off: { type: "boolean" },
894
- surface: { type: "string" },
895
- session: { type: "string" },
896
- command: { type: "string" },
897
- markdown: { type: "boolean" },
898
- dir: { type: "string" },
899
- commit: { type: "string" },
900
- confirm: { type: "string" },
901
- exclude: { type: "string" },
902
- routed: { type: "string" },
903
- // atticus map (ADR 0124 §4)
904
- estimate: { type: "boolean" },
905
- next: { type: "boolean" },
906
- copy: { type: "boolean" },
907
- facts: { type: "string" },
908
- // ADR 0163: atticus repo-type note.
909
- add: { type: "string" },
910
- "org-wide": { type: "boolean" },
911
- // G4 (ADR 0176): atticus rules.
912
- key: { type: "string" },
913
- rule: { type: "string" },
914
- files: { type: "string" },
915
- example: { type: "string" },
916
- about: { type: "string" },
917
- at: { type: "string" },
918
- team: { type: "string" },
919
- compare: { type: "boolean" }
920
- };
921
- async function dispatchCommand(argv, io) {
776
+ async function dispatchCommand(raw, io) {
777
+ const options = optionsFor(raw);
778
+ const switched = (await import("./chunk-ZIUFM5HT.js")).switchValues(raw, options);
779
+ if (switched.error !== void 0) {
780
+ io.err(switched.error);
781
+ return 2;
782
+ }
783
+ const argv = switched.argv;
922
784
  const { values, positionals } = parseArgs({
923
785
  args: argv,
924
786
  allowPositionals: true,
925
- options: OPTIONS,
787
+ options,
926
788
  strict: false
927
789
  });
928
790
  if (values.version) {
@@ -934,26 +796,26 @@ async function dispatchCommand(argv, io) {
934
796
  if (refused !== void 0)
935
797
  return refused;
936
798
  if (process.env.ATTICUS_ACP_SESSION) {
937
- const { personOnlyWhy } = await import("./chunk-GCS3FZOB.js");
938
- const why = personOnlyWhy([...positionals, ...argv.filter((x) => x.startsWith("-"))]);
799
+ const { personOnlyWhy } = await import("./chunk-BFMTGNAQ.js");
800
+ const why = personOnlyWhy(argv);
939
801
  if (why) {
940
802
  io.err(`This runs inside a Copilot session that Atticus started, so it is refused: ${why}. The person runs it, in the app or their own terminal.`);
941
803
  return 2;
942
804
  }
943
805
  }
944
806
  if (group === "help" || values.help || !group) {
945
- const { helpCommand } = await import("./chunk-DCWN3HFV.js");
807
+ const { helpCommand } = await import("./chunk-PXMV2LLY.js");
946
808
  return helpCommand(group === "help" ? positionals.slice(1) : positionals, HELP, io, {
947
809
  all: values.all === true
948
810
  });
949
811
  }
950
812
  if (group === "legacy") {
951
- const { legacyHelp } = await import("./chunk-DCWN3HFV.js");
813
+ const { legacyHelp } = await import("./chunk-PXMV2LLY.js");
952
814
  io.out(legacyHelp(HELP, { all: values.all === true }));
953
815
  return 0;
954
816
  }
955
817
  if (group === "commands") {
956
- const { AREAS, commandCatalog: commandCatalog2 } = await import("./chunk-4PYC2UGC.js");
818
+ const { AREAS, commandCatalog: commandCatalog2 } = await import("./chunk-ZGULQAPZ.js");
957
819
  const commands = commandCatalog2(HELP);
958
820
  if (values.json === true)
959
821
  io.out(JSON.stringify({ areas: AREAS, commands }, null, 2));
@@ -989,9 +851,9 @@ async function dispatchCommand(argv, io) {
989
851
  if (!runsNoAi(group, command))
990
852
  await setUpAi();
991
853
  if (group === "next")
992
- return (await import("./chunk-DN4A2Q2O.js")).nextCommand(root, { json: values.json === true, all: values.all === true, queue: values.queue === true }, io);
854
+ return (await import("./chunk-NOYOFYAJ.js")).nextCommand(root, { json: values.json === true, all: values.all === true, queue: values.queue === true }, io);
993
855
  if (values.handoff === true && (await import("./chunk-KQDZXGNR.js")).isHandoffStep(group, command))
994
- return (await import("./chunk-Z6VLC5X4.js")).handoffStep(root, argv, io, dispatch);
856
+ return (await import("./chunk-S35DIFJH.js")).handoffStep(root, argv, io, dispatch);
995
857
  const given = typeof values.by === "string" && values.by.trim() ? values.by : void 0;
996
858
  const person = !given && RECORDS_A_PERSON.has(group) ? await gitUser(root) : void 0;
997
859
  let warned = false;
@@ -1006,7 +868,7 @@ async function dispatchCommand(argv, io) {
1006
868
  };
1007
869
  const repoIds = typeof values.repos === "string" ? values.repos.split(",").map((s) => s.trim()).filter(Boolean) : void 0;
1008
870
  if (group === "change" && command === "needs" || group === "needs") {
1009
- const handled = await (await import("./chunk-BVWWPBKD.js")).needsCli(root, positionals, values, io, who);
871
+ const handled = await (await import("./chunk-TMFMXQEN.js")).needsCli(root, positionals, values, io, who);
1010
872
  if (handled !== void 0)
1011
873
  return handled;
1012
874
  }
@@ -1030,7 +892,7 @@ async function dispatchCommand(argv, io) {
1030
892
  }, io, run);
1031
893
  }
1032
894
  if (group === "runs") {
1033
- const m = await import("./chunk-E2VXBSIR.js");
895
+ const m = await import("./chunk-Z3H27OMV.js");
1034
896
  if (command === "show") {
1035
897
  const id = positionals[2];
1036
898
  if (!id) {
@@ -1051,7 +913,7 @@ async function dispatchCommand(argv, io) {
1051
913
  }, io);
1052
914
  }
1053
915
  if (group === "history") {
1054
- const m = await import("./chunk-37WE3LS2.js");
916
+ const m = await import("./chunk-Y5IE6YKD.js");
1055
917
  const text = (v) => typeof v === "string" && v.trim() ? v : void 0;
1056
918
  if (command === "add") {
1057
919
  if (process.stdin.isTTY) {
@@ -1095,7 +957,7 @@ async function dispatchCommand(argv, io) {
1095
957
  return handled;
1096
958
  }
1097
959
  if (group === "repo" && command === "rename") {
1098
- const { repoRename } = await import("./chunk-GS76RXQE.js");
960
+ const { repoRename } = await import("./chunk-BAY4K55I.js");
1099
961
  return repoRename(root, positionals[2], positionals[3], io);
1100
962
  }
1101
963
  if (group === "repo" && (command === "add" || command === "describe")) {
@@ -1129,7 +991,7 @@ async function dispatchCommand(argv, io) {
1129
991
  }, io);
1130
992
  }
1131
993
  if (group === "types") {
1132
- const t = await import("./chunk-OPQZISG3.js");
994
+ const t = await import("./chunk-CJEBRJBS.js");
1133
995
  const text = (v) => typeof v === "string" ? v : void 0;
1134
996
  if (!command || command === "list")
1135
997
  return t.typesListCommand(root, { json: values.json === true }, io);
@@ -1151,8 +1013,8 @@ async function dispatchCommand(argv, io) {
1151
1013
  const text = (v) => typeof v === "string" ? v : void 0;
1152
1014
  const sys = Array.isArray(values.system) ? text(values.system[0]) : text(values.system);
1153
1015
  if (command === "match") {
1154
- const m = await import("./chunk-JU4QNJSR.js");
1155
- const l = await import("./chunk-PRZ7KMWL.js");
1016
+ const m = await import("./chunk-RYQ4JCFT.js");
1017
+ const l = await import("./chunk-W4TNCEI4.js");
1156
1018
  return m.connectMatchCommand(root, positionals[2], {
1157
1019
  ...text(values.to) ? { to: text(values.to) } : {},
1158
1020
  ...sys ? { system: sys } : {},
@@ -1166,7 +1028,7 @@ async function dispatchCommand(argv, io) {
1166
1028
  return 2;
1167
1029
  }
1168
1030
  if (group === "skills") {
1169
- const k = await import("./chunk-YIGBJNH4.js");
1031
+ const k = await import("./chunk-CQ7RF4QN.js");
1170
1032
  const text = (v) => typeof v === "string" ? v : void 0;
1171
1033
  if (!command || command === "list")
1172
1034
  return k.skillsListCommand(root, { json: values.json === true }, io);
@@ -1183,7 +1045,7 @@ async function dispatchCommand(argv, io) {
1183
1045
  return 2;
1184
1046
  }
1185
1047
  if (group === "rules") {
1186
- const r = await import("./chunk-GUYL7RMK.js");
1048
+ const r = await import("./chunk-JXAKYP45.js");
1187
1049
  const text = (v) => typeof v === "string" ? v : void 0;
1188
1050
  const scope = {
1189
1051
  ...values["org-wide"] === true ? { org: true } : {},
@@ -1278,11 +1140,11 @@ async function dispatchCommand(argv, io) {
1278
1140
  }
1279
1141
  }
1280
1142
  if (group === "estate" && command === "fresh") {
1281
- const m = await import("./chunk-D5KV5PSK.js");
1143
+ const m = await import("./chunk-VJZI6KFP.js");
1282
1144
  return m.estateFresh(root, { json: values.json === true, all: values.all === true }, io);
1283
1145
  }
1284
1146
  if (group === "estate" && command === "shared") {
1285
- const m = await import("./chunk-E57AOFYN.js");
1147
+ const m = await import("./chunk-SVGGMBJI.js");
1286
1148
  const json2 = values.json === true;
1287
1149
  const text = (v) => typeof v === "string" && v.trim() ? v : void 0;
1288
1150
  if (arg === "import")
@@ -1305,11 +1167,11 @@ async function dispatchCommand(argv, io) {
1305
1167
  return 2;
1306
1168
  }
1307
1169
  if (group === "estate" && command === "contracts") {
1308
- const m = await import("./chunk-265LWMOA.js");
1170
+ const m = await import("./chunk-PWXB5GBB.js");
1309
1171
  return m.joinContracts(root, { json: values.json === true }, io);
1310
1172
  }
1311
1173
  if (group === "estate" && command === "measure") {
1312
- const m = await import("./chunk-2UCRFXFZ.js");
1174
+ const m = await import("./chunk-MH2ZK67S.js");
1313
1175
  return m.joinMeasure(root, arg, { json: values.json === true }, io);
1314
1176
  }
1315
1177
  if (group === "estate" && (command === "join" || command === "flow" || command === "lineage")) {
@@ -1326,7 +1188,7 @@ async function dispatchCommand(argv, io) {
1326
1188
  return command === "flow" ? m.estateFlowCommand(root, arg, o, io) : m.estateLineage(root, arg, field, o, io);
1327
1189
  }
1328
1190
  if (group === "spec" && (command === "seed" || command === "accept")) {
1329
- const m = await import("./chunk-SH27FYPF.js");
1191
+ const m = await import("./chunk-OSYHGGL3.js");
1330
1192
  if (!arg) {
1331
1193
  io.err(command === "seed" ? "Usage: atticus spec seed <repo> [--json]" : "Usage: atticus spec accept <repo> [--by you]");
1332
1194
  return 2;
@@ -1370,7 +1232,7 @@ async function dispatchCommand(argv, io) {
1370
1232
  io.err("Usage: atticus map render <repo> [--json]");
1371
1233
  return 2;
1372
1234
  }
1373
- const { mapRenderCommand } = await import("./chunk-MZGRDONP.js");
1235
+ const { mapRenderCommand } = await import("./chunk-5OXKCH4Z.js");
1374
1236
  return mapRenderCommand(root, repo, { json: values.json === true }, io);
1375
1237
  }
1376
1238
  const models = values.models === "entries" || values.models === "reachable" || values.models === "all" ? values.models : void 0;
@@ -1383,7 +1245,7 @@ async function dispatchCommand(argv, io) {
1383
1245
  io.err("This runs inside a Copilot session that Atticus started, so atticus map starts no read of its own: Atticus outside this session gives each part and verifies it. Do the step you were given: read the files it names, write the facts, then run atticus verify <repo> on its own.");
1384
1246
  return 2;
1385
1247
  }
1386
- const { mapAllCommand } = await import("./chunk-YF5DZCPN.js");
1248
+ const { mapAllCommand } = await import("./chunk-2YSD6E6V.js");
1387
1249
  const { copyToClipboard } = await import("./chunk-S5LSDXV4.js");
1388
1250
  const typed = [];
1389
1251
  const { createInterface } = await import("node:readline");
@@ -1404,7 +1266,7 @@ async function dispatchCommand(argv, io) {
1404
1266
  signal: ac.signal,
1405
1267
  makeRuntime: async () => (await runtimeForCli(root, { mode: "model", handoffValidate: async () => [] })).runtime,
1406
1268
  // ADR 0171: Copilot driven through its Agent Client Protocol, one new session a part.
1407
- makeAcp: async () => (await import("./chunk-ZPDDEVQX.js")).acpStepRunner(root)
1269
+ makeAcp: async () => (await import("./chunk-SRTUETF5.js")).acpStepRunner(root)
1408
1270
  });
1409
1271
  } catch (e) {
1410
1272
  if (e instanceof (await loadAi()).RuntimeConfigError) {
@@ -1420,10 +1282,10 @@ async function dispatchCommand(argv, io) {
1420
1282
  if (group === "map" && !command && values.all === true) {
1421
1283
  const text = (v) => typeof v === "string" ? v : void 0;
1422
1284
  const count = (flag) => {
1423
- const raw = text(values[flag]);
1424
- if (raw === void 0)
1285
+ const raw2 = text(values[flag]);
1286
+ if (raw2 === void 0)
1425
1287
  return void 0;
1426
- const n = Number(raw);
1288
+ const n = Number(raw2);
1427
1289
  return Number.isInteger(n) && n > 0 ? n : NaN;
1428
1290
  };
1429
1291
  const numbers = {
@@ -1467,7 +1329,7 @@ async function dispatchCommand(argv, io) {
1467
1329
  }
1468
1330
  const text = (v) => typeof v === "string" ? v : void 0;
1469
1331
  if (values.spent !== void 0 || values.sessions !== void 0) {
1470
- const { mapSpent } = await import("./chunk-OZJ3JLYI.js");
1332
+ const { mapSpent } = await import("./chunk-GUGQSIQM.js");
1471
1333
  return mapSpent(root, repo, {
1472
1334
  ...text(values.spent) !== void 0 ? { spent: text(values.spent) } : {},
1473
1335
  ...text(values.sessions) !== void 0 ? { sessions: text(values.sessions) } : {},
@@ -1475,7 +1337,7 @@ async function dispatchCommand(argv, io) {
1475
1337
  ...text(values.by) ? { by: text(values.by) } : {}
1476
1338
  }, io);
1477
1339
  }
1478
- const { mapCommand } = await import("./chunk-QSIDVFB7.js");
1340
+ const { mapCommand } = await import("./chunk-PFULMC2D.js");
1479
1341
  const o = {
1480
1342
  ...text(values.dir) ? { dir: resolve(text(values.dir)) } : {},
1481
1343
  ...text(values.commit) ? { commit: text(values.commit) } : {},
@@ -1495,8 +1357,8 @@ async function dispatchCommand(argv, io) {
1495
1357
  };
1496
1358
  const acpAsked = text(values.mode) === "copilot-acp";
1497
1359
  if (!o.estimate && !o.copy && o.answer === void 0 && !o.next && o.resume === void 0) {
1498
- const { copilotAcpByDefault } = await import("./chunk-ZPDDEVQX.js");
1499
- const core = await import("./chunk-WAZEXEJH.js");
1360
+ const { copilotAcpByDefault } = await import("./chunk-SRTUETF5.js");
1361
+ const core = await import("./chunk-6NCPLIIP.js");
1500
1362
  const op = await core.loadOrgPack(core.orgPackDirOf(root)).catch(() => void 0);
1501
1363
  if (acpAsked || !text(values.mode) && op && copilotAcpByDefault(op) && !o.json) {
1502
1364
  const idle = Number(text(values.idle));
@@ -1515,7 +1377,7 @@ async function dispatchCommand(argv, io) {
1515
1377
  if (o.estimate || o.gaps || o.rules && !o.copy && !text(values.mode))
1516
1378
  return mapCommand(root, repo, o, io);
1517
1379
  const starting = !o.next && o.resume === void 0 && !o.copy && o.answer === void 0 && !text(values.mode);
1518
- const { mapReader } = await import("./chunk-YF5DZCPN.js");
1380
+ const { mapReader } = await import("./chunk-2YSD6E6V.js");
1519
1381
  const reader = await mapReader(root);
1520
1382
  if (starting && !o.json && !o.dir && !o.commit && reader.loop) {
1521
1383
  const idle = Number(text(values.idle));
@@ -1545,28 +1407,11 @@ async function dispatchCommand(argv, io) {
1545
1407
  }
1546
1408
  }
1547
1409
  if (group === "verify") {
1548
- const v = parseArgs({
1549
- args: argv,
1550
- allowPositionals: true,
1551
- options: {
1552
- ...OPTIONS,
1553
- write: { type: "boolean" },
1554
- verbose: { type: "boolean" },
1555
- skipped: { type: "boolean" },
1556
- size: { type: "string" },
1557
- seed: { type: "string" },
1558
- answers: { type: "string" },
1559
- right: { type: "string" },
1560
- wrong: { type: "string" },
1561
- unsure: { type: "string" },
1562
- report: { type: "boolean" }
1563
- },
1564
- strict: false
1565
- });
1410
+ const v = { values, positionals };
1566
1411
  const repo = v.positionals[1];
1567
1412
  const text = (x) => typeof x === "string" ? x : void 0;
1568
1413
  if (repo === "audit" && (v.positionals[2] || v.values.report === true)) {
1569
- const { auditCommand } = await import("./chunk-3TD6S4TC.js");
1414
+ const { auditCommand } = await import("./chunk-FRAEQVYN.js");
1570
1415
  const ids = (x) => text(x)?.split(",").map((y) => y.trim()).filter(Boolean);
1571
1416
  const size = Number(text(v.values.size));
1572
1417
  const interactive = process.stdin.isTTY && v.values.json !== true;
@@ -1595,7 +1440,7 @@ async function dispatchCommand(argv, io) {
1595
1440
  }
1596
1441
  }
1597
1442
  if (!repo && v.values.all === true) {
1598
- const { verifyAllCommand } = await import("./chunk-T74WQQGS.js");
1443
+ const { verifyAllCommand } = await import("./chunk-XLZAAAPX.js");
1599
1444
  return verifyAllCommand(text(v.values.root) ? resolve(text(v.values.root)) : root, {
1600
1445
  ...v.values.write === true ? { write: true } : {},
1601
1446
  ...v.values.verbose === true ? { verbose: true } : {}
@@ -1605,10 +1450,9 @@ async function dispatchCommand(argv, io) {
1605
1450
  io.err("Usage: atticus verify <repo> [--write [--verbose]] [--dir path] [--commit sha] [--routed a,b] [--skipped] [--json], or atticus verify --all [--write]");
1606
1451
  return 2;
1607
1452
  }
1608
- const { verifyCommand } = await import("./chunk-T74WQQGS.js");
1453
+ const { verifyCommand } = await import("./chunk-XLZAAAPX.js");
1609
1454
  return verifyCommand(
1610
- // The first reading took --write's next word as its value, so a --root right after it
1611
- // was lost; this reading has --write as a switch.
1455
+ // --write is a switch, so a --root right after it is read (it once took --root as its value).
1612
1456
  text(v.values.root) ? resolve(text(v.values.root)) : root,
1613
1457
  repo,
1614
1458
  {
@@ -1700,7 +1544,7 @@ async function dispatchCommand(argv, io) {
1700
1544
  if (group === "cites") {
1701
1545
  const given2 = (v) => typeof v === "string" && v.trim() ? v.trim() : void 0;
1702
1546
  const [repo, path, file] = [given2(values.repo), given2(values.path), given2(values.file)];
1703
- return (await import("./chunk-X7EMBM5X.js")).citesCli(root, {
1547
+ return (await import("./chunk-GPNMSX5H.js")).citesCli(root, {
1704
1548
  ...repo ? { repo } : {},
1705
1549
  ...path ? { path } : {},
1706
1550
  ...file ? { file: resolve(file) } : {},
@@ -1708,15 +1552,15 @@ async function dispatchCommand(argv, io) {
1708
1552
  }, io);
1709
1553
  }
1710
1554
  if (group === "watch")
1711
- return (await import("./chunk-LIRVU3HW.js")).watchCommand(root, command, { off: values.off === true, json: values.json === true }, io);
1555
+ return (await import("./chunk-VNIN7Q6Q.js")).watchCommand(root, command, { off: values.off === true, json: values.json === true }, io);
1712
1556
  if (group === "setup" && !command)
1713
1557
  return setupCommand(root, { json: values.json === true }, io);
1714
1558
  if (group === "doctor" && values.counts === true)
1715
- return (await import("./chunk-QE527XRY.js")).doctorCountsCommand(root, { json: values.json === true }, io);
1559
+ return (await import("./chunk-XAPXKFIS.js")).doctorCountsCommand(root, { json: values.json === true }, io);
1716
1560
  if (group === "doctor")
1717
1561
  return doctorCommand(root, { json: values.json === true }, io);
1718
1562
  if (group === "probe") {
1719
- const { probeCommand, probeAnswerCommand } = await import("./chunk-2HH3UCZM.js");
1563
+ const { probeCommand, probeAnswerCommand } = await import("./chunk-LO6Y7OTG.js");
1720
1564
  const max = typeof values["max-tokens"] === "string" ? Number(values["max-tokens"]) : void 0;
1721
1565
  const json2 = values.json === true;
1722
1566
  if (command === "answer")
@@ -1769,7 +1613,7 @@ async function dispatchCommand(argv, io) {
1769
1613
  return askCommand(root, command, { json: values.json === true }, io);
1770
1614
  }
1771
1615
  if (group === "context") {
1772
- const m = await import("./chunk-4D62IZII.js");
1616
+ const m = await import("./chunk-WOMQQWTO.js");
1773
1617
  const target = positionals[2];
1774
1618
  const csv = (v) => typeof v === "string" ? v.split(",").map((k) => k.trim()).filter(Boolean) : void 0;
1775
1619
  if (command === "tools")
@@ -1884,7 +1728,7 @@ async function dispatchCommand(argv, io) {
1884
1728
  if (group === "index" && command === "rebuild")
1885
1729
  return indexRebuild(root, io);
1886
1730
  if (group === "index" && command === "embed")
1887
- return (await import("./chunk-4CLK2RJO.js")).indexEmbed(root, io);
1731
+ return (await import("./chunk-BFL4PO64.js")).indexEmbed(root, io);
1888
1732
  if (group === "alias") {
1889
1733
  const target = positionals[2];
1890
1734
  if (!command || !target) {
@@ -1954,7 +1798,7 @@ async function dispatchCommand(argv, io) {
1954
1798
  if (group === "eval" && command === "report")
1955
1799
  return evalReport(root, { json }, io);
1956
1800
  if (group === "bench" && (command === "facts" || command === "stories")) {
1957
- const m = await import("./chunk-YJ3TBOTK.js");
1801
+ const m = await import("./chunk-AFBCNZRZ.js");
1958
1802
  return m.benchScoreCli(command, arg, values, io, root);
1959
1803
  }
1960
1804
  if (group === "bench" && (command === "fetch" || command === "run" || command === "survey" || command === "verify")) {
@@ -2006,7 +1850,7 @@ async function dispatchCommand(argv, io) {
2006
1850
  }, io);
2007
1851
  }
2008
1852
  if (group === "secret") {
2009
- const { secretCommand } = await import("./chunk-RALY3E5U.js");
1853
+ const { secretCommand } = await import("./chunk-CKVBDVIW.js");
2010
1854
  return secretCommand(positionals.slice(1), io);
2011
1855
  }
2012
1856
  if (group === "conformance") {
@@ -2090,6 +1934,8 @@ async function dispatchCommand(argv, io) {
2090
1934
  ...str(values.platform) ? { platform: str(values.platform) } : {},
2091
1935
  ...str(values.from) ? { packFrom: resolve(str(values.from)) } : {},
2092
1936
  ...owner ? { owner } : {},
1937
+ // Round 49: the person the stamp records as having upgraded it (default the owner, then the Git user).
1938
+ ...str(values.by) ? { by: str(values.by) } : {},
2093
1939
  ...values["openspec-store"] === true ? { openspecStore: true } : {},
2094
1940
  json
2095
1941
  }, io);
@@ -2132,7 +1978,10 @@ async function dispatchCommand(argv, io) {
2132
1978
  const dryRun = values["dry-run"] === true;
2133
1979
  if (group === "plan") {
2134
1980
  if (!arg) {
2135
- io.err(`plan ${command ?? ""} needs a change id, for example: atticus plan stories add-transfer-limit`.replace(" ", " "));
1981
+ io.err(
1982
+ // Round 50: the example names the subcommand asked for (plan snow's is plan snow).
1983
+ `plan ${command ?? ""} needs a change id, for example: atticus plan ${command && ["stories", "snow", "bar", "submit"].includes(command) ? command : "stories"} add-transfer-limit`.replace(" ", " ")
1984
+ );
2136
1985
  return 2;
2137
1986
  }
2138
1987
  if (command === "stories")
@@ -2201,9 +2050,9 @@ async function dispatchCommand(argv, io) {
2201
2050
  }, io);
2202
2051
  }
2203
2052
  if (group === "task" && command === "context")
2204
- return (await import("./chunk-XQ3YZ4QW.js")).taskContextCli(root, arg, positionals[3], { json, markdown: values.markdown === true }, io);
2053
+ return (await import("./chunk-ISG547IS.js")).taskContextCli(root, arg, positionals[3], { json, markdown: values.markdown === true }, io);
2205
2054
  if (group === "change" && command === "attach")
2206
- return (await import("./chunk-XQ3YZ4QW.js")).changeAttachCli(root, arg, positionals.slice(3), {
2055
+ return (await import("./chunk-ISG547IS.js")).changeAttachCli(root, arg, positionals.slice(3), {
2207
2056
  by: who(),
2208
2057
  json,
2209
2058
  ...typeof values.replaces === "string" && values.replaces.trim() ? { replaces: values.replaces.trim() } : {},
@@ -2340,7 +2189,7 @@ async function dispatchCommand(argv, io) {
2340
2189
  io.err('finding needs a change, a finding id and an action, for example: atticus finding add-transfer-limit f-1 not-relevant --reason "..."');
2341
2190
  return 2;
2342
2191
  }
2343
- const session = given ? void 0 : (await import("./chunk-PUEWDYGP.js")).assistantSession(process.env);
2192
+ const session = given ? void 0 : (await import("./chunk-5VTIWEWP.js")).assistantSession(process.env);
2344
2193
  if (session)
2345
2194
  io.err(`Recorded as ${session.by}: ${session.because}.`);
2346
2195
  return findingAction(root, command, findingId, action, {
@@ -2367,7 +2216,7 @@ async function dispatchCommand(argv, io) {
2367
2216
  ...str(values.impact) ? { impact: str(values.impact) } : {}
2368
2217
  }, io);
2369
2218
  if (command === "sketch") {
2370
- const { changeSketchCommand } = await import("./chunk-WIWTJMMR.js");
2219
+ const { changeSketchCommand } = await import("./chunk-QX4MAMUG.js");
2371
2220
  return changeSketchCommand(root, arg, {
2372
2221
  ...str(values.from) ? { from: str(values.from) } : {},
2373
2222
  ...values.save === true ? { save: true } : {},
@@ -2376,11 +2225,11 @@ async function dispatchCommand(argv, io) {
2376
2225
  }, io);
2377
2226
  }
2378
2227
  if (command === "impact") {
2379
- const { changeImpactCli } = await import("./chunk-2D7PWSOK.js");
2228
+ const { changeImpactCli } = await import("./chunk-EXJZBL5N.js");
2380
2229
  return changeImpactCli(root, arg, { json }, io);
2381
2230
  }
2382
2231
  if (command === "similar") {
2383
- const { changeSimilarCli } = await import("./chunk-BC6KKZ67.js");
2232
+ const { changeSimilarCli } = await import("./chunk-FTLYXMHA.js");
2384
2233
  const limit = Number(str(values.limit) ?? 5);
2385
2234
  return changeSimilarCli(root, arg, {
2386
2235
  json,
@@ -2391,7 +2240,7 @@ async function dispatchCommand(argv, io) {
2391
2240
  if (command === "list")
2392
2241
  return changeList(root, { json }, io);
2393
2242
  if (command === "export") {
2394
- const { changeExportCommand } = await import("./chunk-FLVZFTLQ.js");
2243
+ const { changeExportCommand } = await import("./chunk-4MYHETJ3.js");
2395
2244
  const named = positionals[3];
2396
2245
  const fmt = str(values.format) ?? (named === "ado" || named === "jira" ? named : void 0);
2397
2246
  return changeExportCommand(root, arg, {
@@ -2408,7 +2257,7 @@ async function dispatchCommand(argv, io) {
2408
2257
  io.err("change conform needs a change id, for example: atticus change conform add-transfer-limit");
2409
2258
  return 2;
2410
2259
  }
2411
- const { changeConformCommand } = await import("./chunk-5CMPVC3N.js");
2260
+ const { changeConformCommand } = await import("./chunk-T33TPFGI.js");
2412
2261
  return changeConformCommand(root, arg, {
2413
2262
  ...str(values.repo) ? { repo: str(values.repo) } : {},
2414
2263
  ...str(values.ref) ? { ref: str(values.ref) } : {},
@@ -2422,7 +2271,7 @@ async function dispatchCommand(argv, io) {
2422
2271
  io.err("change estimate needs a change id, for example: atticus change estimate add-transfer-limit");
2423
2272
  return 2;
2424
2273
  }
2425
- const { changeEstimateCommand } = await import("./chunk-6FNAKCET.js");
2274
+ const { changeEstimateCommand } = await import("./chunk-CXTG6AWM.js");
2426
2275
  return changeEstimateCommand(root, arg, { json }, io);
2427
2276
  }
2428
2277
  if (command === "map") {
@@ -2430,7 +2279,7 @@ async function dispatchCommand(argv, io) {
2430
2279
  io.err("change map needs a change id, for example: atticus change map add-transfer-limit");
2431
2280
  return 2;
2432
2281
  }
2433
- const { changeMapCommand } = await import("./chunk-26WBY34Y.js");
2282
+ const { changeMapCommand } = await import("./chunk-NKJDO4UC.js");
2434
2283
  return changeMapCommand(root, arg, { ...str(values.format) ? { format: str(values.format) } : {}, json }, io);
2435
2284
  }
2436
2285
  if (command === "learn")
@@ -2450,7 +2299,7 @@ async function dispatchCommand(argv, io) {
2450
2299
  if (command === "status")
2451
2300
  return changeStatus(root, arg, { json }, io);
2452
2301
  if (command === "knowledge") {
2453
- const { changeKnowledge } = await import("./chunk-75ZOZFGH.js");
2302
+ const { changeKnowledge } = await import("./chunk-YDCOZOER.js");
2454
2303
  return changeKnowledge(root, arg, {
2455
2304
  ...str(values.confirm) ? { confirm: str(values.confirm) } : {},
2456
2305
  ...str(values.exclude) ? { exclude: str(values.exclude) } : {},
@@ -2486,7 +2335,7 @@ async function dispatchCommand(argv, io) {
2486
2335
  if (group === "intake" && command === "list")
2487
2336
  return intakeList(root, io, { json });
2488
2337
  if (group === "intake" && command === "traffic") {
2489
- const { intakeTraffic } = await import("./chunk-XEQCQO66.js");
2338
+ const { intakeTraffic } = await import("./chunk-7IFTSAHP.js");
2490
2339
  return intakeTraffic(root, positionals[2] ?? "", {
2491
2340
  ...str(values.source) ? { source: str(values.source) } : {},
2492
2341
  ...str(values.from) ? { from: str(values.from) } : {},
@@ -2495,7 +2344,7 @@ async function dispatchCommand(argv, io) {
2495
2344
  }, io);
2496
2345
  }
2497
2346
  if (group === "intake" && command === "impact") {
2498
- const { intakeImpact } = await import("./chunk-77O633L5.js");
2347
+ const { intakeImpact } = await import("./chunk-FBCVC2GJ.js");
2499
2348
  return intakeImpact(root, positionals[2] ?? "", { json }, io);
2500
2349
  }
2501
2350
  if (group === "triage" && !command)
@@ -2750,7 +2599,7 @@ async function dispatchCommand(argv, io) {
2750
2599
  return sourcesRefreshCommand(root, { json }, io);
2751
2600
  if (group === "sources" && command === "estimate") {
2752
2601
  const bt = str(values["batch-tokens"]);
2753
- return (await import("./chunk-JS6WMC3J.js")).sourcesEstimate(root, {
2602
+ return (await import("./chunk-RQQYEDAC.js")).sourcesEstimate(root, {
2754
2603
  ...str(values.source) ? { source: str(values.source) } : {},
2755
2604
  ...bt && Number(bt) > 0 ? { batchTokens: Number(bt) } : {},
2756
2605
  ...values.full === true ? { full: true } : {},
@@ -2758,7 +2607,7 @@ async function dispatchCommand(argv, io) {
2758
2607
  }, io);
2759
2608
  }
2760
2609
  if (group === "standards")
2761
- return (await import("./chunk-JS6WMC3J.js")).standardsCli(root, command, values, io);
2610
+ return (await import("./chunk-RQQYEDAC.js")).standardsCli(root, command, values, io);
2762
2611
  if (group === "sources" && command === "sync")
2763
2612
  return sourcesSync(root, io, {
2764
2613
  json: values.json === true,
@@ -2771,7 +2620,7 @@ async function dispatchCommand(argv, io) {
2771
2620
  if (group === "domain" && command === "profile")
2772
2621
  return domainProfileCommand(root, arg, str(values.out) ? { out: str(values.out) } : {}, io);
2773
2622
  if (group === "questions" && command === "propose") {
2774
- const { questionsProposeCommand } = await import("./chunk-ZPDDEVQX.js");
2623
+ const { questionsProposeCommand } = await import("./chunk-SRTUETF5.js");
2775
2624
  const ac = new AbortController();
2776
2625
  const onInt = () => ac.abort();
2777
2626
  process.on("SIGINT", onInt);
@@ -2785,10 +2634,12 @@ async function dispatchCommand(argv, io) {
2785
2634
  process.off("SIGINT", onInt);
2786
2635
  }
2787
2636
  }
2637
+ if (group === "questions" && command === "route")
2638
+ return (await import("./chunk-SYP56T2D.js")).questionRouteCommand(root, argv, io);
2788
2639
  if (group === "questions" && command === "owner")
2789
- return (await import("./chunk-M4H2UG4R.js")).ownerQuestionCommand(root, argv, io);
2640
+ return (await import("./chunk-XNFM6WUK.js")).ownerQuestionCommand(root, argv, io);
2790
2641
  if (group === "questions" && ["decisions", "correct", "undo"].includes(command ?? ""))
2791
- return (await import("./chunk-J5AAZ6OJ.js")).decisionsCli(root, argv, io);
2642
+ return (await import("./chunk-YHMPDIRG.js")).decisionsCli(root, argv, io);
2792
2643
  if (group === "questions" && command)
2793
2644
  return questionsFiles(root, argv, io);
2794
2645
  if (group === "questions")
@@ -2796,13 +2647,13 @@ async function dispatchCommand(argv, io) {
2796
2647
  if (group === "reconcile")
2797
2648
  return reconcileCommand(root, positionals.slice(1), { json: values.json === true }, io);
2798
2649
  if (group === "orgpack" && (command === "draft" || command === "accept"))
2799
- return (await import("./chunk-62DLJSLV.js")).orgPackDraftCli(root, command, arg, values, io);
2650
+ return (await import("./chunk-3ASYYMOX.js")).orgPackDraftCli(root, command, arg, values, io);
2800
2651
  if (group === "orgpack" && command === "owner")
2801
- return (await import("./chunk-PQH56YF6.js")).orgPackOwnerCli(root, arg, io);
2652
+ return (await import("./chunk-2QPJ4E4Z.js")).orgPackOwnerCli(root, arg, io);
2802
2653
  if (group === "orgpack" && command === "validate")
2803
- return orgPackValidate(arg ? resolve(arg) : join((await import("./chunk-WAZEXEJH.js")).orgPackDirOf(root)), io);
2654
+ return orgPackValidate(arg ? resolve(arg) : join((await import("./chunk-6NCPLIIP.js")).orgPackDirOf(root)), io);
2804
2655
  if (group === "stage" && command === "check")
2805
- return (await import("./chunk-NYOABJNK.js")).stageCheck(root, arg, positionals[3], positionals[4], io);
2656
+ return (await import("./chunk-XMUWPA56.js")).stageCheck(root, arg, positionals[3], positionals[4], io);
2806
2657
  if (group === "handoff" && command === "done") {
2807
2658
  if (!arg) {
2808
2659
  io.err("handoff done needs the run id from the prompt, for example: atticus handoff done run-20261018060000-0001");
@@ -2820,11 +2671,11 @@ async function dispatchCommand(argv, io) {
2820
2671
  if (group === "openspec" && command === "check")
2821
2672
  return openspecCheck(root, io);
2822
2673
  if (group === "openspec") {
2823
- const { openspecRun } = await import("./chunk-M6D2U3YM.js");
2674
+ const { openspecRun } = await import("./chunk-UTPIFH4I.js");
2824
2675
  return openspecRun(root, openspecArgsOf(argv), io);
2825
2676
  }
2826
2677
  if (group === "workspace" && command === "bring-in") {
2827
- const { bringInMerged } = await import("./chunk-UZACEG2C.js");
2678
+ const { bringInMerged } = await import("./chunk-QLWDIKO4.js");
2828
2679
  return bringInMerged(root, io);
2829
2680
  }
2830
2681
  if (group === "workspace" && command === "sync")
@@ -2838,20 +2689,19 @@ async function dispatchCommand(argv, io) {
2838
2689
  return workspaceOpen(root, arg, repoIds, io);
2839
2690
  return workspacePrune(root, arg, { all: values.all === true, force: values.force === true }, io);
2840
2691
  }
2841
- const { commandCatalog } = await import("./chunk-4PYC2UGC.js");
2842
- const { nearestCommand } = await import("./chunk-4SKZDI62.js");
2692
+ const { commandCatalog } = await import("./chunk-ZGULQAPZ.js");
2693
+ const { nearestCommand } = await import("./chunk-ZIUFM5HT.js");
2843
2694
  const near = nearestCommand(positionals, commandCatalog(HELP).map((c) => c.id));
2844
2695
  io.err(`Unknown command: ${positionals.join(" ")}.${near ? ` Did you mean atticus ${near}?` : ""}`);
2845
2696
  io.err("atticus help lists the main commands, atticus legacy the rest; atticus help <command> explains one.");
2846
2697
  return 2;
2847
2698
  }
2848
- var QUESTION_FLAGS = ["state", "option", "text", "scope", "type"];
2849
2699
  async function checkFlags(argv, positionals, io) {
2850
- const { unknownFlags, unknownFlagMessages } = await import("./chunk-4SKZDI62.js");
2851
- const quick = /* @__PURE__ */ new Set([...Object.keys(OPTIONS), ...QUESTION_FLAGS, "handoff"]);
2700
+ const { unknownFlags, unknownFlagMessages } = await import("./chunk-ZIUFM5HT.js");
2701
+ const quick = new Set(Object.keys(OPTIONS));
2852
2702
  if (!unknownFlags(argv, quick).length)
2853
2703
  return void 0;
2854
- const { commandCatalog } = await import("./chunk-4PYC2UGC.js");
2704
+ const { commandCatalog } = await import("./chunk-ZGULQAPZ.js");
2855
2705
  const catalog = commandCatalog(HELP);
2856
2706
  const known = /* @__PURE__ */ new Set([
2857
2707
  ...quick,
@@ -2862,7 +2712,7 @@ async function checkFlags(argv, positionals, io) {
2862
2712
  return void 0;
2863
2713
  for (const m of unknownFlagMessages(unknown, known))
2864
2714
  io.err(m);
2865
- const { commandOf } = await import("./chunk-DCWN3HFV.js");
2715
+ const { commandOf } = await import("./chunk-PXMV2LLY.js");
2866
2716
  const id = commandOf(positionals, catalog.map((c) => c.id));
2867
2717
  io.err(id ? `atticus help ${id} lists what it takes. Nothing was run.` : "atticus help --all lists every command and what it takes. Nothing was run.");
2868
2718
  return 2;