@maycombhq/atticus 2.0.0-beta.26 → 2.0.0-beta.27

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 (325) hide show
  1. package/dist/bin.js +3 -3
  2. package/dist/chunk-22A2K555.js +653 -0
  3. package/dist/{chunk-UTZMF5CV.js → chunk-23TTURB2.js} +1 -1
  4. package/dist/{chunk-XIGVTH24.js → chunk-2666BPJE.js} +19 -19
  5. package/dist/{chunk-KFZ5IXEZ.js → chunk-2ALBHI4Q.js} +28 -27
  6. package/dist/chunk-2ANBMA74.js +107 -0
  7. package/dist/{chunk-UIYPX2BA.js → chunk-2HCW6HXK.js} +27 -26
  8. package/dist/{chunk-DJBXXYYA.js → chunk-2ISR6MWD.js} +15 -15
  9. package/dist/{chunk-ZDA72732.js → chunk-2MRYL45Z.js} +50 -9
  10. package/dist/{chunk-DB3NWAU3.js → chunk-3GNUHLAN.js} +4 -4
  11. package/dist/chunk-3GURU22K.js +44 -0
  12. package/dist/{chunk-UFIQ5FWY.js → chunk-3M3MDBOG.js} +1 -1
  13. package/dist/{chunk-DHQXCP2X.js → chunk-3PBIZBWN.js} +1 -1
  14. package/dist/{chunk-7IWMRZRI.js → chunk-3PWXVBCB.js} +83 -40
  15. package/dist/chunk-3W2QX6TT.js +58 -0
  16. package/dist/{chunk-H7CSCA73.js → chunk-3Z7ATALI.js} +5 -5
  17. package/dist/{chunk-ZGULQAPZ.js → chunk-44SWXDD7.js} +8 -5
  18. package/dist/{chunk-IEIHVMM6.js → chunk-46N5O5H7.js} +5 -5
  19. package/dist/{chunk-4DHYXODN.js → chunk-4D4DNTFE.js} +4 -4
  20. package/dist/{chunk-B3JHERXM.js → chunk-4EAT7HOX.js} +7 -5
  21. package/dist/{chunk-OH2OHNB5.js → chunk-4FLIW5PJ.js} +4 -4
  22. package/dist/{chunk-PGDVJWCI.js → chunk-4LWA5VMJ.js} +52 -37
  23. package/dist/{chunk-YWQZ7CCW.js → chunk-4ODVHNA6.js} +18 -17
  24. package/dist/{chunk-IH6BYFMH.js → chunk-4POSAXNC.js} +6 -6
  25. package/dist/{chunk-D5H3RZNE.js → chunk-4PQ4KDOA.js} +16 -15
  26. package/dist/{chunk-RQM5Y3HJ.js → chunk-4UVTNHA6.js} +1 -1
  27. package/dist/{chunk-KVVNAUIG.js → chunk-4XK3HLOH.js} +1 -0
  28. package/dist/{chunk-ZQGFZJH5.js → chunk-523NRKHF.js} +4 -4
  29. package/dist/{chunk-GJSLO2E2.js → chunk-5GCCG3GJ.js} +11 -5
  30. package/dist/{chunk-VGGSHDQU.js → chunk-5XW6RUDV.js} +8 -8
  31. package/dist/{chunk-K35VNKJH.js → chunk-5YEUAZZE.js} +8 -8
  32. package/dist/{chunk-YEHSJY6B.js → chunk-62LD7CSY.js} +13 -13
  33. package/dist/{chunk-DB6TDJ4T.js → chunk-67Y2J55V.js} +22 -21
  34. package/dist/{chunk-KL7UHAOR.js → chunk-6DSZ4CL7.js} +36 -21
  35. package/dist/{chunk-WM4EMP7T.js → chunk-6G67LSBG.js} +283 -61
  36. package/dist/{chunk-TLBPTUFU.js → chunk-6OEB4FTC.js} +20 -19
  37. package/dist/{chunk-GXJ2PSDW.js → chunk-6OTGCKYH.js} +9 -9
  38. package/dist/{chunk-EQMNMG6X.js → chunk-6XLCMDIP.js} +13 -13
  39. package/dist/chunk-76DZJTU7.js +190 -0
  40. package/dist/chunk-7764GVJK.js +37 -0
  41. package/dist/{chunk-KS2IQYTZ.js → chunk-7BOGXFZ3.js} +11 -11
  42. package/dist/{chunk-ZA2PWNR3.js → chunk-7CVHKNAF.js} +16 -15
  43. package/dist/{chunk-LBBI5P5G.js → chunk-7FEIS3KV.js} +25 -24
  44. package/dist/{chunk-OXCHO2QS.js → chunk-7GXM45T5.js} +26 -23
  45. package/dist/{chunk-YLXPJWNO.js → chunk-7YMAMNMT.js} +17 -16
  46. package/dist/chunk-7YWS47SE.js +56 -0
  47. package/dist/{chunk-LZFKJ2BR.js → chunk-A3LVMCA5.js} +1 -1
  48. package/dist/{chunk-PXDAGXQN.js → chunk-A7ZJKLFC.js} +11 -11
  49. package/dist/chunk-AANQC5QP.js +47 -0
  50. package/dist/{chunk-HV6PXXK7.js → chunk-AIQLTDC3.js} +3 -3
  51. package/dist/{chunk-PFWP624T.js → chunk-AKZTCZ6F.js} +4 -4
  52. package/dist/{chunk-KAWWXCPI.js → chunk-ALCSTVWQ.js} +3 -3
  53. package/dist/{chunk-7ZBYRMWK.js → chunk-ALUHO7SE.js} +26 -25
  54. package/dist/{chunk-3KP7OOJ4.js → chunk-AMZ4XMES.js} +8 -8
  55. package/dist/{chunk-V5ZKGBYL.js → chunk-AOQG37K4.js} +8 -6
  56. package/dist/{chunk-CNT6T2JM.js → chunk-ARXZTHEI.js} +16 -15
  57. package/dist/{chunk-KFJMQUSK.js → chunk-AS4CTARY.js} +16 -15
  58. package/dist/{chunk-MM7JSMLW.js → chunk-AVUPW23W.js} +18 -17
  59. package/dist/{chunk-NQDVD2YR.js → chunk-B56FCIEJ.js} +12 -12
  60. package/dist/{chunk-CPE7HLIK.js → chunk-BABATPOZ.js} +18 -17
  61. package/dist/{chunk-63572EFC.js → chunk-BIOKDLLX.js} +21 -19
  62. package/dist/{chunk-D4TW3PUO.js → chunk-BUBKKEUV.js} +5 -5
  63. package/dist/{chunk-FOOU5OJE.js → chunk-CDC6VECU.js} +3 -3
  64. package/dist/chunk-CHEFUNZ4.js +425 -0
  65. package/dist/{chunk-IL7PVMUO.js → chunk-CIFR3DPV.js} +6 -6
  66. package/dist/{chunk-DS5M2J2H.js → chunk-CLBVKD4P.js} +16 -15
  67. package/dist/{chunk-2FTHLB2H.js → chunk-CLM5Z3R5.js} +5 -5
  68. package/dist/{chunk-CFK6CFXM.js → chunk-CLYV5MB6.js} +9 -9
  69. package/dist/{chunk-KZ4I5M2X.js → chunk-CRYIBCGP.js} +37 -19
  70. package/dist/{chunk-PLSCWC2V.js → chunk-D3L5SO27.js} +5 -5
  71. package/dist/chunk-DAZM2INZ.js +34 -0
  72. package/dist/{chunk-I72PEROE.js → chunk-DF4BXBB2.js} +6 -6
  73. package/dist/{chunk-PZFZPHCT.js → chunk-E7Q52EOO.js} +11 -11
  74. package/dist/{chunk-R2FUFBHW.js → chunk-EFDUC35B.js} +3 -3
  75. package/dist/{chunk-43OWNS5N.js → chunk-EHXEJFHD.js} +5 -5
  76. package/dist/{chunk-HQMLY2R6.js → chunk-ELJ5Q4J2.js} +2 -2
  77. package/dist/{chunk-F4EGHECF.js → chunk-EM6DKBTJ.js} +3 -3
  78. package/dist/{chunk-UZBLVNW6.js → chunk-EMC46SU4.js} +38 -17
  79. package/dist/{chunk-F6GRBF5L.js → chunk-EQEDIWFQ.js} +25 -24
  80. package/dist/chunk-EW574EZI.js +57 -0
  81. package/dist/{chunk-HSJKYDHI.js → chunk-EYINWNXL.js} +5 -5
  82. package/dist/{chunk-KUEG2Y7M.js → chunk-EYVYHYCA.js} +8 -8
  83. package/dist/{chunk-ELR7DEQM.js → chunk-F66542M6.js} +34 -9
  84. package/dist/{chunk-RCLBIJRN.js → chunk-F74OMLNU.js} +6 -6
  85. package/dist/{chunk-PBDIVTFL.js → chunk-FADIWOA5.js} +3 -3
  86. package/dist/{chunk-LHN5UCXD.js → chunk-FC3ZVD3O.js} +3 -3
  87. package/dist/{chunk-DXLWZ3BJ.js → chunk-FG65LXED.js} +8 -8
  88. package/dist/{chunk-V5FT3MZG.js → chunk-FKAUBC4Y.js} +8 -8
  89. package/dist/{chunk-RBO4A7TC.js → chunk-FM3EEDS2.js} +15 -15
  90. package/dist/{chunk-TYN5SG5H.js → chunk-FS4E7F6O.js} +403 -148
  91. package/dist/{chunk-HVWPN2RY.js → chunk-FSYJPYLE.js} +16 -15
  92. package/dist/{chunk-IBIIKUC7.js → chunk-G33UIUG3.js} +46 -20
  93. package/dist/{chunk-4NWE2KY3.js → chunk-G3F4BYML.js} +15 -14
  94. package/dist/{chunk-2GT47PWU.js → chunk-GBJRFFDW.js} +5 -5
  95. package/dist/{chunk-NMURRF5F.js → chunk-GF6GBHFN.js} +13 -11
  96. package/dist/{chunk-C3TBDX7Y.js → chunk-GLHOUT5E.js} +26 -25
  97. package/dist/{chunk-ZWMHL346.js → chunk-GM6GXO2A.js} +20 -19
  98. package/dist/{chunk-MKUBDKE2.js → chunk-GSJ2RXE7.js} +29 -28
  99. package/dist/{chunk-YJBD5NDV.js → chunk-GT72FDER.js} +6 -6
  100. package/dist/{chunk-BEEHCL5O.js → chunk-GW6ZH77P.js} +37 -36
  101. package/dist/{chunk-BABRMZET.js → chunk-GZILYRGC.js} +3 -3
  102. package/dist/{chunk-5JGRF53S.js → chunk-GZSOZYEP.js} +3 -3
  103. package/dist/{chunk-IP6ARMZU.js → chunk-H25QNDKK.js} +58 -36
  104. package/dist/{chunk-BIAQ6NQS.js → chunk-H3RKW4RF.js} +7 -7
  105. package/dist/chunk-H7M7ZH6H.js +52 -0
  106. package/dist/chunk-H7NRWSMP.js +55 -0
  107. package/dist/{chunk-2JT4QV3Q.js → chunk-HDWVR5KD.js} +4 -4
  108. package/dist/{chunk-UAYU6K24.js → chunk-HG24EF5S.js} +16 -15
  109. package/dist/chunk-HPNYSY5M.js +1068 -0
  110. package/dist/{chunk-JJEXMHNZ.js → chunk-HUMM4S5I.js} +6 -6
  111. package/dist/{chunk-DARX3ATP.js → chunk-HVPS2YCW.js} +11 -11
  112. package/dist/{chunk-IGOE6KPG.js → chunk-I34CXV2C.js} +185 -11
  113. package/dist/{chunk-6U65YB54.js → chunk-I57IH5X6.js} +360 -271
  114. package/dist/{chunk-WYO4L4NU.js → chunk-I5X4WU7U.js} +6 -6
  115. package/dist/chunk-IAVVJ34R.js +55 -0
  116. package/dist/chunk-IBJE2E2S.js +51 -0
  117. package/dist/{chunk-HNNMT5L2.js → chunk-IF3X6FMO.js} +1 -1
  118. package/dist/{chunk-CUTMM4NY.js → chunk-IJHJIL6T.js} +154 -25
  119. package/dist/chunk-IM435QAM.js +72 -0
  120. package/dist/{chunk-MQ6HP2TU.js → chunk-IMBJ7WAO.js} +6 -6
  121. package/dist/{chunk-5A4RHEEL.js → chunk-INCFIDCB.js} +2 -2
  122. package/dist/{chunk-RTCZKKG7.js → chunk-IPMPLTEG.js} +3 -3
  123. package/dist/{chunk-QAFQLILX.js → chunk-IPSZDVLI.js} +12 -12
  124. package/dist/{chunk-JLTJAOO4.js → chunk-IX2EOYOU.js} +50 -13
  125. package/dist/{chunk-DOU52XFZ.js → chunk-IXNMGPF7.js} +61 -28
  126. package/dist/{chunk-XT3ZW7C7.js → chunk-J6GO3K7G.js} +19 -18
  127. package/dist/chunk-JBLM6IUA.js +42 -0
  128. package/dist/{chunk-CSHJZFOE.js → chunk-JL2VOYSL.js} +91 -93
  129. package/dist/{chunk-ACY3U2RD.js → chunk-JRXFZB6J.js} +8 -8
  130. package/dist/{chunk-P6EJNPFF.js → chunk-JTOLBS7R.js} +951 -409
  131. package/dist/{chunk-FYCN2Y5P.js → chunk-K73BHPTQ.js} +19 -18
  132. package/dist/{chunk-EVKDWJ5Y.js → chunk-KF7KVUNJ.js} +5 -5
  133. package/dist/{chunk-SRB54QGX.js → chunk-KKUCBKJE.js} +20 -19
  134. package/dist/{chunk-LTOBNBJ6.js → chunk-KLFFHBWG.js} +27 -26
  135. package/dist/{chunk-DXBXZNKV.js → chunk-KMYB2XO7.js} +21 -13
  136. package/dist/chunk-KNYQUWFN.js +52 -0
  137. package/dist/{chunk-6EMJ4XFC.js → chunk-KOAJPMU2.js} +31 -20
  138. package/dist/chunk-KRTSE73S.js +55 -0
  139. package/dist/{chunk-GAJBMPWC.js → chunk-L3AM5YRP.js} +28 -9
  140. package/dist/{chunk-YYV276DM.js → chunk-LCIIFAID.js} +22 -21
  141. package/dist/{chunk-SZDOBIWE.js → chunk-LCQIRCOT.js} +55 -10
  142. package/dist/{chunk-OI32KTDM.js → chunk-LFHBAWIM.js} +13 -13
  143. package/dist/chunk-LIHEMWIT.js +39 -0
  144. package/dist/{chunk-CG6MG7SE.js → chunk-LJLYWILK.js} +14 -14
  145. package/dist/{chunk-6SIGGA37.js → chunk-LNJKDS5C.js} +26 -25
  146. package/dist/{chunk-3GEAUW62.js → chunk-LTHY7E2P.js} +16 -15
  147. package/dist/{chunk-RO6BE7ZS.js → chunk-LTVOQJKT.js} +7 -7
  148. package/dist/{chunk-BD7HBZLP.js → chunk-LZO3JABE.js} +6 -6
  149. package/dist/{chunk-PXMV2LLY.js → chunk-M65AZ4ZE.js} +3 -5
  150. package/dist/chunk-MPNTEWNY.js +492 -0
  151. package/dist/chunk-MQGQ3AWK.js +58 -0
  152. package/dist/{chunk-ZNYSBQIA.js → chunk-MUXYUIBV.js} +6 -6
  153. package/dist/{chunk-CNEOKSTO.js → chunk-MWRRJDXQ.js} +34 -31
  154. package/dist/{chunk-VJO7M34N.js → chunk-MZDHFWTN.js} +2 -2
  155. package/dist/chunk-N2XCT5OX.js +68 -0
  156. package/dist/{chunk-2IO6XH37.js → chunk-N3JGYAMD.js} +15 -15
  157. package/dist/{chunk-K3QKOVZN.js → chunk-N5DLB74D.js} +367 -71
  158. package/dist/{chunk-H5BIVULF.js → chunk-NC3Q7RIB.js} +10 -10
  159. package/dist/{chunk-HVOE7ZW2.js → chunk-NCNLX4DL.js} +19 -18
  160. package/dist/{chunk-3D74UADA.js → chunk-NGSGJLKW.js} +2 -2
  161. package/dist/{chunk-B7KGNEFI.js → chunk-NN7K2LLN.js} +25 -24
  162. package/dist/{chunk-76AHTJVY.js → chunk-NNURP7VO.js} +15 -15
  163. package/dist/chunk-NSQB24WR.js +56 -0
  164. package/dist/{chunk-GFFTVQ7R.js → chunk-NV5S63YK.js} +7 -7
  165. package/dist/{chunk-CTJHEG6A.js → chunk-NWMFVPEP.js} +2 -0
  166. package/dist/{chunk-7JZONWAA.js → chunk-NYT6QGZA.js} +22 -18
  167. package/dist/chunk-OB2DAIJX.js +62 -0
  168. package/dist/{chunk-IZIGZ7KY.js → chunk-OC3OXDTG.js} +13 -8
  169. package/dist/{chunk-2XIIUXGX.js → chunk-OD6RNYMQ.js} +16 -16
  170. package/dist/{chunk-723OQZ3N.js → chunk-OFYBRMRG.js} +6 -6
  171. package/dist/chunk-OGTELPDN.js +43 -0
  172. package/dist/{chunk-E5NHFHGC.js → chunk-OQ7SBQ2Z.js} +7 -7
  173. package/dist/{chunk-6TZ4YRGJ.js → chunk-OUDGBJC2.js} +16 -9
  174. package/dist/{chunk-W4SMKUAK.js → chunk-OUGTAOGA.js} +2 -2
  175. package/dist/chunk-OWP5FCYM.js +60 -0
  176. package/dist/{chunk-ET7SPOBA.js → chunk-P36PTWBM.js} +8 -8
  177. package/dist/{chunk-64LSDT3D.js → chunk-P6Y2J2QY.js} +12 -12
  178. package/dist/{chunk-ANFBBJEV.js → chunk-PDJL2HO5.js} +24 -22
  179. package/dist/{chunk-UXVKFOMC.js → chunk-PPKH6ULR.js} +152 -20
  180. package/dist/{chunk-WLA2JZ2K.js → chunk-Q4PFF2ZE.js} +8 -8
  181. package/dist/chunk-Q7EUPQEG.js +5 -0
  182. package/dist/{chunk-2HDNOUJU.js → chunk-QC6GSNIK.js} +7055 -3456
  183. package/dist/chunk-QCRQNYGI.js +211 -0
  184. package/dist/chunk-QDF533AW.js +90 -0
  185. package/dist/chunk-QDGNDNBG.js +50 -0
  186. package/dist/{chunk-HWPX3T55.js → chunk-QGMD3PYL.js} +31 -24
  187. package/dist/{chunk-VCXFMXMX.js → chunk-QLT3WYTD.js} +6 -6
  188. package/dist/{chunk-ZFLBWL2G.js → chunk-QNDMAKQS.js} +11 -3
  189. package/dist/{chunk-UWBPC5XH.js → chunk-QNXMVJMA.js} +8 -8
  190. package/dist/{chunk-XDLMQL5A.js → chunk-QPAANKUR.js} +7 -7
  191. package/dist/{chunk-BGOAJFPB.js → chunk-QS4VX3HZ.js} +1 -1
  192. package/dist/{chunk-YIOYKA4V.js → chunk-QSM4K6LI.js} +7 -7
  193. package/dist/{chunk-TPKJD42W.js → chunk-QUFZDWPC.js} +8 -8
  194. package/dist/{chunk-QXCGRQGO.js → chunk-QXXEOH3A.js} +18 -6
  195. package/dist/{chunk-QA4O2GGC.js → chunk-R4TUWD4C.js} +17 -1
  196. package/dist/{chunk-UJ5ZJS4B.js → chunk-ROI64BAI.js} +22 -21
  197. package/dist/{chunk-LCRQPWTC.js → chunk-RPVL3RTX.js} +19 -18
  198. package/dist/{chunk-QQAWI5LD.js → chunk-RUNHVUCW.js} +16 -15
  199. package/dist/{chunk-7AEB74KW.js → chunk-RWYPLODE.js} +9 -9
  200. package/dist/{chunk-VTR4AC2U.js → chunk-RZYRUXSU.js} +4 -4
  201. package/dist/{chunk-CWLXVRFH.js → chunk-S6TLXRBR.js} +7 -7
  202. package/dist/{chunk-Z33UNTHI.js → chunk-SCOP3J6X.js} +7 -7
  203. package/dist/{chunk-XEWFVHOT.js → chunk-SCP24MJX.js} +24 -23
  204. package/dist/{chunk-MCORC2LG.js → chunk-SF3HXNXR.js} +6 -6
  205. package/dist/{chunk-BSZII65X.js → chunk-SFCFL7Y5.js} +1 -1
  206. package/dist/{chunk-LY7DOYX2.js → chunk-SHFY73RI.js} +53 -112
  207. package/dist/{chunk-IERXBWQU.js → chunk-SHIARIEZ.js} +20 -19
  208. package/dist/chunk-SMFFUFMN.js +1876 -0
  209. package/dist/{chunk-WH3ZFLXT.js → chunk-SVOGRJO6.js} +197 -124
  210. package/dist/chunk-SVZAAOHJ.js +46 -0
  211. package/dist/{chunk-NCZS2BN2.js → chunk-SZOU32VF.js} +21 -20
  212. package/dist/{chunk-MTIRNHRJ.js → chunk-T2MN24LZ.js} +1 -1
  213. package/dist/{chunk-KZH5YV6J.js → chunk-TD5WWJLN.js} +6 -6
  214. package/dist/{chunk-UBEFT3MQ.js → chunk-TFN2N227.js} +6 -6
  215. package/dist/{chunk-BIKMME4S.js → chunk-TFXNOQEU.js} +28 -27
  216. package/dist/{chunk-6P67IUET.js → chunk-TMETWJFO.js} +11 -11
  217. package/dist/chunk-TNSAIISO.js +50 -0
  218. package/dist/{chunk-SDHGFMES.js → chunk-TRJO2I4S.js} +3 -3
  219. package/dist/{chunk-NVVEVP5O.js → chunk-TRSNIJNM.js} +7 -7
  220. package/dist/{chunk-VIQHZA53.js → chunk-U3Z2QZE3.js} +6 -6
  221. package/dist/{chunk-TQG2DDWH.js → chunk-U7L3ORPK.js} +22 -21
  222. package/dist/{chunk-3KIMLBGZ.js → chunk-UDM6HGF4.js} +6 -6
  223. package/dist/{chunk-NMCPIYTF.js → chunk-UDM7LXNJ.js} +7 -7
  224. package/dist/chunk-UDTO3U6E.js +35 -0
  225. package/dist/{chunk-ZFEOIYK5.js → chunk-UEUPEUZX.js} +3 -3
  226. package/dist/chunk-UWBODTY7.js +514 -0
  227. package/dist/{chunk-BIWNRS5I.js → chunk-UYYYQTPD.js} +78 -47
  228. package/dist/{chunk-IDRCBMJF.js → chunk-V34N6JAN.js} +32 -31
  229. package/dist/{chunk-EY3OVHNC.js → chunk-V3Y5P7OS.js} +24 -23
  230. package/dist/chunk-V6MLVGTP.js +89 -0
  231. package/dist/{chunk-EECFUQP3.js → chunk-VC2XHC7P.js} +184 -46
  232. package/dist/{chunk-H26T2LQL.js → chunk-VCYE4MUD.js} +29 -28
  233. package/dist/{chunk-EUTZTJIO.js → chunk-VN2VJ6BV.js} +19 -15
  234. package/dist/{chunk-P6DM2EFI.js → chunk-VVLWEM2Y.js} +6 -6
  235. package/dist/{chunk-YXKCE5BA.js → chunk-VWCNMDMZ.js} +5 -5
  236. package/dist/{chunk-BV2BZIUF.js → chunk-W2A4NHQD.js} +25 -24
  237. package/dist/{chunk-VPQUFIE7.js → chunk-W6OY2PMB.js} +10 -10
  238. package/dist/{chunk-FIZ5LYL2.js → chunk-WC6DHBVG.js} +16 -15
  239. package/dist/{chunk-GHST3KAB.js → chunk-WCA3WIGG.js} +5 -5
  240. package/dist/{chunk-6ZDAEUKB.js → chunk-WJWSB65O.js} +1602 -452
  241. package/dist/{chunk-IFQJ3YQE.js → chunk-WNPGLGCJ.js} +5 -5
  242. package/dist/chunk-WTOVWEY3.js +67 -0
  243. package/dist/{chunk-XIJBQM45.js → chunk-X5B7KYPD.js} +507 -20
  244. package/dist/{chunk-ZLBUFK7L.js → chunk-X73WLHSN.js} +7 -7
  245. package/dist/{chunk-GNFZ227W.js → chunk-XIIT4PVT.js} +3 -3
  246. package/dist/{chunk-U3JXMY56.js → chunk-XLTT5QCX.js} +28 -25
  247. package/dist/{chunk-5UIGGXA5.js → chunk-XMIS25ZJ.js} +21 -20
  248. package/dist/{chunk-IYEET4VM.js → chunk-XPDQ4T6G.js} +27 -26
  249. package/dist/{chunk-WT6EXYEY.js → chunk-XRWUYOX3.js} +138 -22
  250. package/dist/{chunk-I2EWY3MG.js → chunk-XZY4GTCX.js} +14 -9
  251. package/dist/{chunk-2SCZZQNQ.js → chunk-Y2TVTI4P.js} +121 -15
  252. package/dist/{chunk-Q3RKXK5Z.js → chunk-Y2U4CSCA.js} +28 -27
  253. package/dist/chunk-Y2U63JKE.js +41 -0
  254. package/dist/{chunk-V3M4VFUB.js → chunk-Y6S7VCYN.js} +6 -6
  255. package/dist/{chunk-SAPX3PVK.js → chunk-YAPMGK7E.js} +11 -11
  256. package/dist/{chunk-MY3LDBMR.js → chunk-YAPVAYZN.js} +3 -3
  257. package/dist/{chunk-ZYLGEWTC.js → chunk-YCBDNWX3.js} +78 -57
  258. package/dist/{chunk-RK5P2DWD.js → chunk-YIGSUTW2.js} +1329 -92
  259. package/dist/{chunk-XI3GPYP4.js → chunk-YJTBE6AJ.js} +5 -5
  260. package/dist/chunk-YQ3IXQIH.js +185 -0
  261. package/dist/{chunk-MZXDSAKW.js → chunk-YRHKEXTP.js} +11 -11
  262. package/dist/{chunk-DPH4BS3F.js → chunk-YSSFS3YC.js} +17 -17
  263. package/dist/{chunk-ISCX25D7.js → chunk-YXG2VQJJ.js} +200 -56
  264. package/dist/{chunk-VUSYN4R4.js → chunk-Z4GLFTEH.js} +8 -8
  265. package/dist/{chunk-NP3PG6OI.js → chunk-Z65FWO6A.js} +157 -89
  266. package/dist/{chunk-KJD4DLRZ.js → chunk-ZDG637ZT.js} +22 -21
  267. package/dist/{chunk-DASVVML7.js → chunk-ZIAMPN7N.js} +6 -6
  268. package/dist/chunk-ZIIBQHCX.js +53 -0
  269. package/dist/{chunk-IJN5PSDU.js → chunk-ZJJMYPGZ.js} +57 -27
  270. package/dist/{chunk-NECDBPFP.js → chunk-ZOAX7W5S.js} +11 -11
  271. package/dist/chunk-ZSSR5GGB.js +48 -0
  272. package/dist/files.json +657 -553
  273. package/dist/fixtures/forge/expected/crosscheck.json +726 -0
  274. package/dist/fixtures/forge/slots/README.md +13 -0
  275. package/dist/fixtures/forge/slots/build.json +2686 -0
  276. package/dist/fixtures/forge/slots/crosscheck/forge-ledger.crosscheck.yaml +8 -0
  277. package/dist/fixtures/forge/slots/facts/forge-ledger.jsonl +17 -0
  278. package/dist/fixtures/forge/slots/facts/forge-ledger.meta.json +9 -0
  279. package/dist/fixtures/forge/slots/legacy/joins.json +113 -0
  280. package/dist/fixtures/forge/slots/readers/forge-events.json +306 -0
  281. package/dist/fixtures/forge/slots/readers/forge-gateway.json +238 -0
  282. package/dist/fixtures/forge/slots/readers/forge-infra.json +264 -0
  283. package/dist/fixtures/forge/slots/readers/forge-ledger.json +756 -0
  284. package/dist/fixtures/forge/slots/readers/forge-portal-bff.json +349 -0
  285. package/dist/fixtures/forge/slots/readers/forge-portal-ui.json +214 -0
  286. package/dist/fixtures/forge/slots/readers/forge-reports-job.json +258 -0
  287. package/dist/packages/sdk/npm/index.js +3788 -2939
  288. package/dist/packages/ui/dist/assets/{elk-api-BdXSPeBO.js → elk-api-CPE6PVL8.js} +2 -2
  289. package/dist/packages/ui/dist/assets/index-BYcVqj0l.js +65 -0
  290. package/dist/packages/ui/dist/assets/index-DF52Ejvz.css +1 -0
  291. package/dist/packages/ui/dist/index.html +2 -2
  292. package/package.json +4 -4
  293. package/dist/chunk-24OXGB3P.js +0 -82
  294. package/dist/chunk-3FFIDQQB.js +0 -42
  295. package/dist/chunk-4N5W7LYW.js +0 -41
  296. package/dist/chunk-7NVLGPER.js +0 -45
  297. package/dist/chunk-A6LGX56J.js +0 -52
  298. package/dist/chunk-AHACUPGL.js +0 -46
  299. package/dist/chunk-DG7KYZAL.js +0 -40
  300. package/dist/chunk-DWD6BKHG.js +0 -52
  301. package/dist/chunk-EEVSFGIU.js +0 -50
  302. package/dist/chunk-EN3N6LNU.js +0 -52
  303. package/dist/chunk-FWQDH5NK.js +0 -55
  304. package/dist/chunk-GHCFWIUW.js +0 -38
  305. package/dist/chunk-GSIJWDXH.js +0 -43
  306. package/dist/chunk-HCC5547C.js +0 -232
  307. package/dist/chunk-HLDUWEO7.js +0 -36
  308. package/dist/chunk-K2NQTROJ.js +0 -170
  309. package/dist/chunk-LH4WAJLC.js +0 -45
  310. package/dist/chunk-M5IQUWJR.js +0 -59
  311. package/dist/chunk-MEMEO7YO.js +0 -988
  312. package/dist/chunk-MGNO4Q6V.js +0 -51
  313. package/dist/chunk-MZ6GOFRF.js +0 -55
  314. package/dist/chunk-N2AW2DHF.js +0 -51
  315. package/dist/chunk-N35Y5HZO.js +0 -47
  316. package/dist/chunk-NHFMLMLN.js +0 -257
  317. package/dist/chunk-PR6Z5L7W.js +0 -67
  318. package/dist/chunk-STBJ6SVJ.js +0 -50
  319. package/dist/chunk-U3RGBYXE.js +0 -62
  320. package/dist/chunk-URZKIL37.js +0 -42
  321. package/dist/chunk-W7HNZDHB.js +0 -71
  322. package/dist/chunk-YYZWSVIS.js +0 -33
  323. package/dist/chunk-ZAMSF2DF.js +0 -54
  324. package/dist/packages/ui/dist/assets/index-DRSUhpFi.css +0 -1
  325. package/dist/packages/ui/dist/assets/index-RZe5iotJ.js +0 -63
@@ -3,25 +3,34 @@ import { fileURLToPath as __atticusFileURLToPath } from "node:url";
3
3
  var require = __atticusCreateRequire(import.meta.url);
4
4
  var __atticusUrl = (p) => new URL("./" + p, import.meta.url).href;
5
5
  var __atticusPath = (p) => __atticusFileURLToPath(__atticusUrl(p));
6
- import {
7
- aliasArgv
8
- } from "./chunk-24OXGB3P.js";
6
+ import "./chunk-Q7EUPQEG.js";
9
7
  import {
10
8
  VERSION
11
- } from "./chunk-MTIRNHRJ.js";
12
- import {
13
- OPTIONS,
14
- optionsFor
15
- } from "./chunk-QA4O2GGC.js";
9
+ } from "./chunk-T2MN24LZ.js";
16
10
  import {
11
+ TITLE_VALUE_FLAGS,
17
12
  createLog,
13
+ onAtticusSignal,
18
14
  printToCurrent,
19
15
  recordedCommand,
16
+ retitleTerminalRuns,
17
+ runLogKept,
18
+ runTitle,
20
19
  startTerminalRun
21
- } from "./chunk-MEMEO7YO.js";
20
+ } from "./chunk-SMFFUFMN.js";
22
21
  import {
23
22
  SCHEMA_VERSION
24
- } from "./chunk-CTJHEG6A.js";
23
+ } from "./chunk-NWMFVPEP.js";
24
+ import {
25
+ aliasArgv,
26
+ titleSlotsOf,
27
+ titleWordsByHelp
28
+ } from "./chunk-I34CXV2C.js";
29
+ import {
30
+ OPTIONS,
31
+ optionsFor
32
+ } from "./chunk-R4TUWD4C.js";
33
+ import "./chunk-4Q3NN7VF.js";
25
34
  import "./chunk-TV45EUGM.js";
26
35
 
27
36
  // packages/cli/dist/main.js
@@ -46,20 +55,20 @@ function printProgress(l, write = (s) => void process.stderr.write(s)) {
46
55
  }
47
56
 
48
57
  // packages/cli/dist/main.js
49
- var loadAi = () => import("./chunk-V5ZKGBYL.js");
58
+ var loadAi = () => import("./chunk-AOQG37K4.js");
50
59
  var runtimeForCli = async (...a) => {
51
60
  await setUpAi();
52
61
  return (await loadAi()).runtimeForCli(...a);
53
62
  };
54
- var gitUser = (...a) => import("./chunk-GJSLO2E2.js").then((m) => m.gitUser(...a));
63
+ var gitUser = (...a) => import("./chunk-5GCCG3GJ.js").then((m) => m.gitUser(...a));
55
64
  var loadAiSetUp = () => Promise.all([
56
65
  loadAi(),
57
- import("./chunk-NMCPIYTF.js"),
58
- import("./chunk-K35VNKJH.js"),
59
- import("./chunk-FYCN2Y5P.js"),
60
- import("./chunk-TPKJD42W.js"),
61
- import("./chunk-BGOAJFPB.js"),
62
- import("./chunk-I72PEROE.js")
66
+ import("./chunk-UDM7LXNJ.js"),
67
+ import("./chunk-5YEUAZZE.js"),
68
+ import("./chunk-K73BHPTQ.js"),
69
+ import("./chunk-QUFZDWPC.js"),
70
+ import("./chunk-QS4VX3HZ.js"),
71
+ import("./chunk-DF4BXBB2.js")
63
72
  ]);
64
73
  async function setUpAi() {
65
74
  const [ai, providers, plugins, naysayer, codeTools, draftCheck, address] = await loadAiSetUp();
@@ -90,79 +99,81 @@ var NO_AI = /* @__PURE__ */ new Set([
90
99
  "estate measure",
91
100
  "estate fresh",
92
101
  "estate shared",
102
+ // ADR 0196: a canary copies, plants by template and checks with the verifier; no model.
103
+ "canary",
93
104
  "change status",
94
105
  // Reading the questions on file and printing one: files only, no model (question-commands.ts).
95
106
  "questions list",
96
107
  "questions show"
97
108
  ]);
98
109
  var runsNoAi = (group, command) => NO_AI.has(group) || NO_AI.has(`${group} ${command ?? ""}`);
99
- var loadCommands = () => import("./chunk-B3JHERXM.js");
110
+ var loadCommands = () => import("./chunk-4EAT7HOX.js");
100
111
  var catalogValidate = (...a) => loadCommands().then((m) => m.catalogValidate(...a));
101
112
  var orgPackValidate = (...a) => loadCommands().then((m) => m.orgPackValidate(...a));
102
113
  var schemaExport = (...a) => loadCommands().then((m) => m.schemaExport(...a));
103
- var loadWorkspaceCommands = () => import("./chunk-M5IQUWJR.js");
114
+ var loadWorkspaceCommands = () => import("./chunk-OWP5FCYM.js");
104
115
  var openspecCheck = (...a) => loadWorkspaceCommands().then((m) => m.openspecCheck(...a));
105
116
  var openspecSetup = (...a) => loadWorkspaceCommands().then((m) => m.openspecSetup(...a));
106
117
  var workspaceOpen = (...a) => loadWorkspaceCommands().then((m) => m.workspaceOpen(...a));
107
118
  var workspacePrune = (...a) => loadWorkspaceCommands().then((m) => m.workspacePrune(...a));
108
119
  var workspaceSync = (...a) => loadWorkspaceCommands().then((m) => m.workspaceSync(...a));
109
- var loadScanCommands = () => import("./chunk-3FFIDQQB.js");
120
+ var loadScanCommands = () => import("./chunk-ZSSR5GGB.js");
110
121
  var catalogDiff = (...a) => loadScanCommands().then((m) => m.catalogDiff(...a));
111
122
  var scanCommand = (...a) => loadScanCommands().then((m) => m.scanCommand(...a));
112
- var loadIndexCommands = () => import("./chunk-NVVEVP5O.js");
123
+ var loadIndexCommands = () => import("./chunk-TRSNIJNM.js");
113
124
  var askCommand = (...a) => loadIndexCommands().then((m) => m.askCommand(...a));
114
125
  var impactCommand = (...a) => loadIndexCommands().then((m) => m.impactCommand(...a));
115
126
  var indexRebuild = (...a) => loadIndexCommands().then((m) => m.indexRebuild(...a));
116
127
  var queryCommand = (...a) => loadIndexCommands().then((m) => m.queryCommand(...a));
117
128
  var searchCommand = (...a) => loadIndexCommands().then((m) => m.searchCommand(...a));
118
- var loadSiteCommands = () => import("./chunk-HLDUWEO7.js");
129
+ var loadSiteCommands = () => import("./chunk-7764GVJK.js");
119
130
  var guideCommand = (...a) => loadSiteCommands().then((m) => m.guideCommand(...a));
120
131
  var siteBuildCommand = (...a) => loadSiteCommands().then((m) => m.siteBuildCommand(...a));
121
- var loadBaselineCommands = () => import("./chunk-EN3N6LNU.js");
132
+ var loadBaselineCommands = () => import("./chunk-H7NRWSMP.js");
122
133
  var baselineCommand = (...a) => loadBaselineCommands().then((m) => m.baselineCommand(...a));
123
134
  var setupCommand = (...a) => loadBaselineCommands().then((m) => m.setupCommand(...a));
124
- var loadDigestCommands = () => import("./chunk-YYZWSVIS.js");
135
+ var loadDigestCommands = () => import("./chunk-DAZM2INZ.js");
125
136
  var digestCommand = (...a) => loadDigestCommands().then((m) => m.digestCommand(...a));
126
- var loadDoctor = () => import("./chunk-FWQDH5NK.js");
137
+ var loadDoctor = () => import("./chunk-MQGQ3AWK.js");
127
138
  var doctorCommand = (...a) => loadDoctor().then((m) => m.doctorCommand(...a));
128
- var loadSupport = () => import("./chunk-CNEOKSTO.js");
139
+ var loadSupport = () => import("./chunk-MWRRJDXQ.js");
129
140
  var supportBundleCommand = (...a) => loadSupport().then((m) => m.supportBundleCommand(...a));
130
- var loadUpgrade = () => import("./chunk-MGNO4Q6V.js");
141
+ var loadUpgrade = () => import("./chunk-NSQB24WR.js");
131
142
  var upgradeCommand = (...a) => loadUpgrade().then((m) => m.upgradeCommand(...a));
132
- var loadReconcileCommands = () => import("./chunk-UAYU6K24.js");
143
+ var loadReconcileCommands = () => import("./chunk-HG24EF5S.js");
133
144
  var aliasCommand = (...a) => loadReconcileCommands().then((m) => m.aliasCommand(...a));
134
145
  var reconcileCommand = (...a) => loadReconcileCommands().then((m) => m.reconcileCommand(...a));
135
- var loadKnowledgeCommands = () => import("./chunk-CPE7HLIK.js");
146
+ var loadKnowledgeCommands = () => import("./chunk-BABATPOZ.js");
136
147
  var coverageCommand = (...a) => loadKnowledgeCommands().then((m) => m.coverageCommand(...a));
137
148
  var patternsScan = (...a) => loadKnowledgeCommands().then((m) => m.patternsScan(...a));
138
149
  var questionsCommand = (...a) => loadKnowledgeCommands().then((m) => m.questionsCommand(...a));
139
- var questionsFiles = (...a) => import("./chunk-BIKMME4S.js").then((m) => m.questionsFiles(...a));
150
+ var questionsFiles = (...a) => import("./chunk-TFXNOQEU.js").then((m) => m.questionsFiles(...a));
140
151
  var sourcesAdd = (...a) => loadKnowledgeCommands().then((m) => m.sourcesAdd(...a));
141
152
  var sourcesSync = (...a) => loadKnowledgeCommands().then((m) => m.sourcesSync(...a));
142
- var loadDiagramCommands = () => import("./chunk-D5H3RZNE.js");
153
+ var loadDiagramCommands = () => import("./chunk-4PQ4KDOA.js");
143
154
  var diagramLibrary = (...a) => loadDiagramCommands().then((m) => m.diagramLibrary(...a));
144
155
  var diagramRender = (...a) => loadDiagramCommands().then((m) => m.diagramRender(...a));
145
- var loadStubCommands = () => import("./chunk-ZA2PWNR3.js");
156
+ var loadStubCommands = () => import("./chunk-7CVHKNAF.js");
146
157
  var stubCheck = (...a) => loadStubCommands().then((m) => m.stubCheck(...a));
147
158
  var stubServe = (...a) => loadStubCommands().then((m) => m.stubServe(...a));
148
- var loadIntakeCommands = () => import("./chunk-QQAWI5LD.js");
159
+ var loadIntakeCommands = () => import("./chunk-RUNHVUCW.js");
149
160
  var intakeAdd = (...a) => loadIntakeCommands().then((m) => m.intakeAdd(...a));
150
161
  var intakeList = (...a) => loadIntakeCommands().then((m) => m.intakeList(...a));
151
162
  var triageDecide = (...a) => loadIntakeCommands().then((m) => m.triageDecide(...a));
152
163
  var triageList = (...a) => loadIntakeCommands().then((m) => m.triageList(...a));
153
- var loadRunCommands = () => import("./chunk-W7HNZDHB.js");
164
+ var loadRunCommands = () => import("./chunk-IM435QAM.js");
154
165
  var assistantFiles = (...a) => loadRunCommands().then((m) => m.assistantFiles(...a));
155
166
  var driftCommand = (...a) => loadRunCommands().then((m) => m.driftCommand(...a));
156
167
  var specHandDown = (...a) => loadRunCommands().then((m) => m.specHandDown(...a));
157
168
  var specHandUp = (...a) => loadRunCommands().then((m) => m.specHandUp(...a));
158
169
  var runDone = (...a) => loadRunCommands().then((m) => m.runDone(...a));
159
170
  var taskRun = (...a) => loadRunCommands().then((m) => m.taskRun(...a));
160
- var taskRunReady = (...a) => import("./chunk-BEEHCL5O.js").then((m) => m.taskRunReady(...a));
161
- var loadFeatureCommands = () => import("./chunk-LCRQPWTC.js");
171
+ var taskRunReady = (...a) => import("./chunk-GW6ZH77P.js").then((m) => m.taskRunReady(...a));
172
+ var loadFeatureCommands = () => import("./chunk-RPVL3RTX.js");
162
173
  var featureSuggestNames = (...a) => loadFeatureCommands().then((m) => m.featureSuggestNames(...a));
163
- var loadDomainCommands = () => import("./chunk-63572EFC.js");
174
+ var loadDomainCommands = () => import("./chunk-BIOKDLLX.js");
164
175
  var domainProfileCommand = (...a) => loadDomainCommands().then((m) => m.domainProfileCommand(...a));
165
- var loadPlanCommands = () => import("./chunk-EEVSFGIU.js");
176
+ var loadPlanCommands = () => import("./chunk-IBJE2E2S.js");
166
177
  var adoSync = (...a) => loadPlanCommands().then((m) => m.adoSync(...a));
167
178
  var changeDraft = (...a) => loadPlanCommands().then((m) => m.changeDraft(...a));
168
179
  var planStories = (...a) => loadPlanCommands().then((m) => m.planStories(...a));
@@ -170,13 +181,13 @@ var snowDraft = (...a) => loadPlanCommands().then((m) => m.snowDraft(...a));
170
181
  var snowSubmit = (...a) => loadPlanCommands().then((m) => m.snowSubmit(...a));
171
182
  var storyBarCommand = (...a) => loadPlanCommands().then((m) => m.storyBarCommand(...a));
172
183
  var templatesDraft = (...a) => loadPlanCommands().then((m) => m.templatesDraft(...a));
173
- var loadTodoCommands = () => import("./chunk-Z33UNTHI.js");
184
+ var loadTodoCommands = () => import("./chunk-SCOP3J6X.js");
174
185
  var executorsCheck = (...a) => loadTodoCommands().then((m) => m.executorsCheck(...a));
175
186
  var todoDone = (...a) => loadTodoCommands().then((m) => m.todoDone(...a));
176
187
  var todoList = (...a) => loadTodoCommands().then((m) => m.todoList(...a));
177
188
  var todoRun = (...a) => loadTodoCommands().then((m) => m.todoRun(...a));
178
189
  var todoShow = (...a) => loadTodoCommands().then((m) => m.todoShow(...a));
179
- var loadSetupCommands = () => import("./chunk-U3JXMY56.js");
190
+ var loadSetupCommands = () => import("./chunk-XLTT5QCX.js");
180
191
  var absorbCommand = (...a) => loadSetupCommands().then((m) => m.absorbCommand(...a));
181
192
  var absorbAcceptCommand = (...a) => loadSetupCommands().then((m) => m.absorbAcceptCommand(...a));
182
193
  var absorbRefreshCommand = (...a) => loadSetupCommands().then((m) => m.absorbRefreshCommand(...a));
@@ -186,7 +197,7 @@ var initCommand = (...a) => loadSetupCommands().then((m) => m.initCommand(...a))
186
197
  var reposDiscoverCommand = (...a) => loadSetupCommands().then((m) => m.reposDiscoverCommand(...a));
187
198
  var unadoptCommand = (...a) => loadSetupCommands().then((m) => m.unadoptCommand(...a));
188
199
  var zeroInstallCommand = (...a) => loadSetupCommands().then((m) => m.zeroInstallCommand(...a));
189
- var loadQualityCommands = () => import("./chunk-LBBI5P5G.js");
200
+ var loadQualityCommands = () => import("./chunk-7FEIS3KV.js");
190
201
  var ciArchiveGate = (...a) => loadQualityCommands().then((m) => m.ciArchiveGate(...a));
191
202
  var ciDrift = (...a) => loadQualityCommands().then((m) => m.ciDrift(...a));
192
203
  var ciSnippet = (...a) => loadQualityCommands().then((m) => m.ciSnippet(...a));
@@ -197,33 +208,33 @@ var glossaryList = (...a) => loadQualityCommands().then((m) => m.glossaryList(..
197
208
  var glossaryScan = (...a) => loadQualityCommands().then((m) => m.glossaryScan(...a));
198
209
  var testsGenerate = (...a) => loadQualityCommands().then((m) => m.testsGenerate(...a));
199
210
  var traceCommand = (...a) => loadQualityCommands().then((m) => m.traceCommand(...a));
200
- var loadInitiativeCommands = () => import("./chunk-XT3ZW7C7.js");
211
+ var loadInitiativeCommands = () => import("./chunk-J6GO3K7G.js");
201
212
  var initiativeCommitment = (...a) => loadInitiativeCommands().then((m) => m.initiativeCommitment(...a));
202
213
  var initiativeNew = (...a) => loadInitiativeCommands().then((m) => m.initiativeNew(...a));
203
214
  var initiativePlan = (...a) => loadInitiativeCommands().then((m) => m.initiativePlan(...a));
204
215
  var initiativeStatus = (...a) => loadInitiativeCommands().then((m) => m.initiativeStatus(...a));
205
216
  var requestFromTeam = (...a) => loadInitiativeCommands().then((m) => m.requestFromTeam(...a));
206
- var loadLearnCommands = () => import("./chunk-N35Y5HZO.js");
217
+ var loadLearnCommands = () => import("./chunk-TNSAIISO.js");
207
218
  var explainCommand = (...a) => loadLearnCommands().then((m) => m.explainCommand(...a));
208
219
  var learnCheck = (...a) => loadLearnCommands().then((m) => m.learnCheck(...a));
209
220
  var learnList = (...a) => loadLearnCommands().then((m) => m.learnList(...a));
210
221
  var learnStart = (...a) => loadLearnCommands().then((m) => m.learnStart(...a));
211
222
  var sandboxCreate = (...a) => loadLearnCommands().then((m) => m.sandboxCreate(...a));
212
- var loadEvalCommands = () => import("./chunk-LH4WAJLC.js");
213
- var loadBenchCommands = () => import("./chunk-DWD6BKHG.js");
223
+ var loadEvalCommands = () => import("./chunk-SVZAAOHJ.js");
224
+ var loadBenchCommands = () => import("./chunk-ZIIBQHCX.js");
214
225
  var benchFetch = (...a) => loadBenchCommands().then((m) => m.benchFetch(...a));
215
226
  var benchRun = (...a) => loadBenchCommands().then((m) => m.benchRun(...a));
216
227
  var benchSurvey = (...a) => loadBenchCommands().then((m) => m.benchSurvey(...a));
217
228
  var benchVerify = (...a) => loadBenchCommands().then((m) => m.benchVerify(...a));
218
- var loadScanVerifyCommands = () => import("./chunk-IYEET4VM.js");
219
- var stageCli = (...a) => import("./chunk-LTOBNBJ6.js").then((m) => m.stageCli(...a));
220
- var knowledgeCli = (...a) => import("./chunk-MKUBDKE2.js").then((m) => m.knowledgeCli(...a));
229
+ var loadScanVerifyCommands = () => import("./chunk-XPDQ4T6G.js");
230
+ var stageCli = (...a) => import("./chunk-KLFFHBWG.js").then((m) => m.stageCli(...a));
231
+ var knowledgeCli = (...a) => import("./chunk-GSJ2RXE7.js").then((m) => m.knowledgeCli(...a));
221
232
  var defencesScan = (...a) => loadEvalCommands().then((m) => m.defencesScan(...a));
222
233
  var evalReport = (...a) => loadEvalCommands().then((m) => m.evalReport(...a));
223
234
  var evalRun = (...a) => loadEvalCommands().then((m) => m.evalRun(...a));
224
- var loadU1Commands = () => import("./chunk-GXJ2PSDW.js");
235
+ var loadU1Commands = () => import("./chunk-6OTGCKYH.js");
225
236
  var conformanceCommand = (...a) => loadU1Commands().then((m) => m.conformanceCommand(...a));
226
- var loadReleaseCommands = () => import("./chunk-N2AW2DHF.js");
237
+ var loadReleaseCommands = () => import("./chunk-H7M7ZH6H.js");
227
238
  var outcomeList = (...a) => loadReleaseCommands().then((m) => m.outcomeList(...a));
228
239
  var outcomeRecord = (...a) => loadReleaseCommands().then((m) => m.outcomeRecord(...a));
229
240
  var releaseEvidenceCommand = (...a) => loadReleaseCommands().then((m) => m.releaseEvidenceCommand(...a));
@@ -231,9 +242,9 @@ var releaseForecastCommand = (...a) => loadReleaseCommands().then((m) => m.relea
231
242
  var releaseNotesCommand = (...a) => loadReleaseCommands().then((m) => m.releaseNotesCommand(...a));
232
243
  var releasePlanCommand = (...a) => loadReleaseCommands().then((m) => m.releasePlanCommand(...a));
233
244
  var releaseSecurityCommand = (...a) => loadReleaseCommands().then((m) => m.releaseSecurityCommand(...a));
234
- var loadUiCommands = () => import("./chunk-P6EJNPFF.js");
245
+ var loadUiCommands = () => import("./chunk-JTOLBS7R.js");
235
246
  var uiCommand = (...a) => loadUiCommands().then((m) => m.uiCommand(...a));
236
- var loadCriticCommands = () => import("./chunk-ZWMHL346.js");
247
+ var loadCriticCommands = () => import("./chunk-GM6GXO2A.js");
237
248
  var critic = (...a) => loadCriticCommands().then((m) => m.critic(...a));
238
249
  var criticStats = (...a) => loadCriticCommands().then((m) => m.criticStats(...a));
239
250
  var findingAction = (...a) => loadCriticCommands().then((m) => m.findingAction(...a));
@@ -248,7 +259,7 @@ var featureSpec = (...a) => loadFeatureCommands().then((m) => m.featureSpec(...a
248
259
  var featureSplit = (...a) => loadFeatureCommands().then((m) => m.featureSplit(...a));
249
260
  var featureSuggestLinks = (...a) => loadFeatureCommands().then((m) => m.featureSuggestLinks(...a));
250
261
  var featureTag = (...a) => loadFeatureCommands().then((m) => m.featureTag(...a));
251
- var loadChangeCommands = () => import("./chunk-EY3OVHNC.js");
262
+ var loadChangeCommands = () => import("./chunk-V3Y5P7OS.js");
252
263
  var changeArchive = (...a) => loadChangeCommands().then((m) => m.changeArchive(...a));
253
264
  var changeConflicts = (...a) => loadChangeCommands().then((m) => m.changeConflicts(...a));
254
265
  var changeHandoff = (...a) => loadChangeCommands().then((m) => m.changeHandoff(...a));
@@ -259,33 +270,33 @@ var changeStatus = (...a) => loadChangeCommands().then((m) => m.changeStatus(...
259
270
  var changeSync = (...a) => loadChangeCommands().then((m) => m.changeSync(...a));
260
271
  var changeReleasePrs = (...a) => loadChangeCommands().then((m) => m.changeReleasePrs(...a));
261
272
  var changeLearn = (...a) => loadChangeCommands().then((m) => m.changeLearn(...a));
262
- var loadDialectCommands = () => import("./chunk-DS5M2J2H.js");
273
+ var loadDialectCommands = () => import("./chunk-CLBVKD4P.js");
263
274
  var dialectGrade = (...a) => loadDialectCommands().then((m) => m.dialectGrade(...a));
264
275
  var dialectKit = (...a) => loadDialectCommands().then((m) => m.dialectKit(...a));
265
276
  var dialectTree = (...a) => loadDialectCommands().then((m) => m.dialectTree(...a));
266
277
  var dialectNew = (...a) => loadDialectCommands().then((m) => m.dialectNew(...a));
267
278
  var dialectRun = (...a) => loadDialectCommands().then((m) => m.dialectRun(...a));
268
279
  var dialectTest = (...a) => loadDialectCommands().then((m) => m.dialectTest(...a));
269
- var loadPluginCommands = () => import("./chunk-YWQZ7CCW.js");
280
+ var loadPluginCommands = () => import("./chunk-4ODVHNA6.js");
270
281
  var pluginTest = (...a) => loadPluginCommands().then((m) => m.pluginTest(...a));
271
282
  var pluginPin = (...a) => loadPluginCommands().then((m) => m.pluginPin(...a));
272
283
  var pluginAdd = (...a) => loadPluginCommands().then((m) => m.pluginAdd(...a));
273
- var loadFrameworkCommands = () => import("./chunk-MM7JSMLW.js");
284
+ var loadFrameworkCommands = () => import("./chunk-AVUPW23W.js");
274
285
  var frameworksCheck = (...a) => loadFrameworkCommands().then((m) => m.frameworksCheck(...a));
275
286
  var frameworksDiscover = (...a) => loadFrameworkCommands().then((m) => m.frameworksDiscover(...a));
276
287
  var frameworksKit = (...a) => loadFrameworkCommands().then((m) => m.frameworksKit(...a));
277
288
  var frameworksLearn = (...a) => loadFrameworkCommands().then((m) => m.frameworksLearn(...a));
278
289
  var frameworksSurvey = (...a) => loadFrameworkCommands().then((m) => m.frameworksSurvey(...a));
279
- var loadOnboardCommands = () => import("./chunk-NCZS2BN2.js");
290
+ var loadOnboardCommands = () => import("./chunk-SZOU32VF.js");
280
291
  var onboardAccept = (...a) => loadOnboardCommands().then((m) => m.onboardAccept(...a));
281
292
  var onboardCheck = (...a) => loadOnboardCommands().then((m) => m.onboardCheck(...a));
282
293
  var onboardDraft = (...a) => loadOnboardCommands().then((m) => m.onboardDraft(...a));
283
294
  var scanReview = (...a) => loadOnboardCommands().then((m) => m.scanReview(...a));
284
295
  var scanSurvey = (...a) => loadOnboardCommands().then((m) => m.scanSurvey(...a));
285
- var loadRepoTypeCommands = () => import("./chunk-GSIJWDXH.js");
286
- var loadRepoCommands = () => import("./chunk-RCLBIJRN.js");
287
- var loadSpecCommands = () => import("./chunk-UIYPX2BA.js");
288
- var loadEstateCommands = () => import("./chunk-DB6TDJ4T.js");
296
+ var loadRepoTypeCommands = () => import("./chunk-3GURU22K.js");
297
+ var loadRepoCommands = () => import("./chunk-F74OMLNU.js");
298
+ var loadSpecCommands = () => import("./chunk-2HCW6HXK.js");
299
+ var loadEstateCommands = () => import("./chunk-67Y2J55V.js");
289
300
  var onboardEval = (...a) => loadOnboardCommands().then((m) => m.onboardEval(...a));
290
301
  var onboardFramework = (...a) => loadOnboardCommands().then((m) => m.onboardFramework(...a));
291
302
  var onboardFrameworkAccept = (...a) => loadOnboardCommands().then((m) => m.onboardFrameworkAccept(...a));
@@ -297,8 +308,10 @@ Usage:
297
308
  atticus catalog validate <dir> Check record files: schema, location and canonical form
298
309
  [--fix] Rewrite files that aren't in canonical form
299
310
  atticus catalog diff <a> <b> Compare two catalog folders (exit 1 when they differ)
300
- atticus scan [--no-drift] Scan every repo's base clone and write catalog/generated, only when every production repo was read in full (cloned, readable, no reader run failed); otherwise write nothing, name each repo and why, and exit 1
301
- [--repos a,b] Only these repos: a check that writes nothing (a scan of some repos would replace the catalog with them alone; put one repo in from its facts with atticus verify <repo> --write)
311
+ atticus scan [--no-drift] Scan every repo's base clone: write the readers slot of each repo read in full (catalog/sources/readers/<repo>.json), keep every other repo's last good read and say why, then build catalog/generated from every slot (ADR 0195); a scan that read no repo in full writes nothing
312
+ [--repos a,b] Only these repos: the others keep their last good read
313
+ [--allow-removals <n>] Confirm the removals a refused build listed, with the count it named (more than 10% of a repo's records, or 200)
314
+ [--discard-edits <n>] Discard the hand edits to catalog/generated a refused build listed, with their count (a copy is kept for atticus catalog undo)
302
315
  [--full] Ignore the scan cache
303
316
  [--dry-run] Show what would change; write nothing
304
317
  [--warnings] List what the scan left out or couldn't read, not just how many
@@ -317,11 +330,17 @@ Usage:
317
330
  [--spent <tokens>] [--sessions n] [--part n] Record what the read took as your assistant reports it, in facts/<repo>.read-plan.yaml beside --estimate's estimate (Atticus can't meter an assistant's tokens; ADR 0141)
318
331
  atticus map --all Map or re-map the whole estate in one command (ADR 0161): every repo's read planned at the model's limit, in the onboarding queue's order, fresh repos skipped, and repos read before the reading rules there are now topped up for the new rules only (ADR 0167). Under Copilot you paste one line per part into a new chat and Atticus waits for the facts, verifies them and moves on (s skip, r retry what's left, q stop; it resumes); where runtime.yaml allows model mode it runs unattended; with --mode copilot-acp (runtime.yaml version 3, ADR 0171) Atticus drives Copilot itself through its Agent Client Protocol, one new session per part, unattended. Then the estate is joined once. A part is done when verify's coverage leaves no file under it unaccounted; after --idle minutes (30) with nothing written it stops waiting, saying how to carry on; --force reads the repos (all, or --repos) whole again, the facts on file kept as already kept (ADR 0170) [--max-tokens n] [--stale | --gaps | --force] [--models entries|reachable|all] [--repos a,b] [--dry-run] [--mode model|hand-off|copilot-acp] [--max-parts n] [--budget-tokens n] [--idle minutes]
319
332
  atticus verify <repo> Check the facts your assistant wrote for a repo (/atticus-map) against its code: the claim on each cited line, the quote, references, secrets, coverage; raises the questions it wrote for a person; rejected facts go back to the assistant (ADR 0124) [--dir path] [--commit sha] [--routed a,b] [--skipped] [--json]
320
- [--write] When nothing is rejected: put the facts in the catalog, the flows in specs/<repo>/, ask about calls nothing joins, and render the map
333
+ [--write] When nothing is rejected: take the facts snapshot (catalog/sources/facts/<repo>.jsonl), build the catalog from every slot, write the flows in specs/<repo>/, ask about calls nothing joins, and render the map [--allow-removals <n>] [--discard-edits <n>]
321
334
  [--verbose] With --write: list every record changed and flow written, not only the counts
322
335
  atticus verify --all [--write] Every repo read so far (each with a facts file), one after another; no model is called
336
+ atticus verify --here Check facts.jsonl in this read folder against its copy: the claim on each cited line, rejected facts to rejected.jsonl, the coverage and the lines no fact cites to verify.yaml; exits 1 while any is rejected or a line doesn't read [--facts file] [--skipped]
323
337
  atticus verify audit <repo> Confirm a reproducible random sample of the repo's kept facts and its links, each with its cited lines (right, wrong or unsure); the answers go to facts/<repo>.audit.yaml, a person's record for a pull request (ADR 0148) [--size n] [--seed s] [--answers file] [--right ids] [--wrong ids] [--unsure ids] [--dir path] [--json]
324
338
  atticus verify audit <repo> --report Precision from the answers, per kind of fact and for links (by how each was joined), with the sample size and a 95% interval; without a repo, every repo audited and the estate [--json]
339
+ atticus canary plant <repo> A canary (ADR 0196): copy the repo to a run folder outside the metarepo (no file of secrets, no link), plant a few synthetic entries, calls, topics and config keys the repo can serve and comment out a few real lines its verified facts cite, by a seed drawn at random (the same seed plants the same again), and write /atticus-map's prompt for the copy; open the run folder as your assistant's workspace; what was planted is kept on this machine, apart from the copy [--seed s] [--size n] [--json]
340
+ atticus canary check <repo> The canary read's own verify loop: check the facts the assistant wrote against the copy, rejected ones to the run's rejected.jsonl and the coverage and the lines no fact cites to its verify.yaml, printed as atticus verify prints them; exits 1 while any is rejected or a line doesn't read; run in the run folder, it needs no metarepo, and there it is also atticus verify --here, the name the prompt gives it (one that says nothing of a canary) [--facts file] [--skipped]
341
+ atticus canary score <repo> Score the canary read: recall on the planted, fabrication on the commented-out (and how much the verifier kept), written to reports/canaries/<date>-<repo>.yaml (item kinds and results, no planted word); the copy, the facts and the key are deleted once it scores (kept when nothing in the facts file reads) [--facts file] [--json]
342
+ atticus canary report [--json] How often a claim graded as backed is wrong, as two numbers side by side: the audit misread rate (the sample audit's answers) and the canary pass-through rate (the latest canary of each repo), each with its count and a 95% interval, and what the canaries cover
343
+ atticus canary clean <repo> Delete a planted canary's run folder and key without scoring it (a key that doesn't read too, with the run folders of that repo this metarepo planted); --all for every one this metarepo planted on this machine [--all]
325
344
  atticus map render <repo> [--json] Render the repo's map from the catalog: map.md, a page per flow with its sequence diagram, an OpenAPI file per component, under map/<repo>/
326
345
  atticus spec draft <repo> Your assistant writes the repo's flows, one per trigger, each step cited and checked [--attempts 3] [--resume run] [--force] [--mode m] [--max-tokens n]
327
346
  atticus spec check <repo> [--json] Check the repo's flows against the catalog, the template and the code; confirms steps on their cited lines
@@ -382,6 +401,8 @@ Usage:
382
401
  atticus probe answer <code> Check the assistant's answer (none when it couldn't open the file) and keep what it measured in .atticus/probe/<assistant>.yaml, on this machine only [--pasted] [--max-tokens n] [--json]
383
402
  atticus secret set|check|forget <name> Keep a model provider's key in this machine's credential store under the name runtime.yaml gives as keyEnv; read from stdin, never printed
384
403
  atticus upgrade [--check|--dry-run] Bring the metarepo's files up to this version (backs them up first) [--openspec-store: also make it an OpenSpec store, beta]
404
+ [--yes] Apply the step that adopts a catalog from before beta.27 into source slots (ADR 0195); without it the step only shows what it would write
405
+ [--accept-changes <n>] With --yes: accept the record files the first build would change, with the count the step listed
385
406
  atticus support bundle Collect versions, checks, counts and the redacted log in a zip [--out f]
386
407
  atticus digest What waits on you: hand-offs to revise, blocking findings [--channel c] [--send] [--json]
387
408
  atticus watch [<change>] [--off] Follow a change without being on it (or stop); with no change, how each one you watch is doing [--json]
@@ -509,6 +530,17 @@ Usage:
509
530
  atticus feature suggest-links [--json] Suggest links between features and work items
510
531
  atticus feature spec <id> Draft an OpenSpec capability spec from a confirmed feature
511
532
  atticus catalog migrate [--dry-run] Rewrite catalog files to the current schema version
533
+ atticus catalog build Build catalog/generated from the source slots and inputs (ADR 0195): after a curated file is edited by hand, or a merge conflict [--allow-removals <n>] [--discard-edits <n>] [--json]
534
+ [--check] Write nothing; exit 1 when catalog/generated isn't what the slots build (for a metarepo's CI)
535
+ atticus catalog edits List the files under catalog/generated changed by hand since the last build [--json]
536
+ [--curate] Make each a curated decision, an edit to propose (an assert of what it changed, a suppress for a deleted one; an added record can't be one, and is said); it builds nothing: the next atticus catalog build keeps the edits and replaces the files
537
+ [--drop-fields <n>] With --curate: also make curated the files that change fields no decision can set (evidence, confidence) or remove a field, with the count listed; the next build puts those fields back
538
+ atticus catalog undo [<n>] List the last five builds kept on this machine and what undoing would put back; with --yes, put back catalog/generated, build.json and the slots as they were before the latest build (or before build n) [--json]
539
+ atticus catalog crosscheck [<repo>] The readers' cross-check (ADR 0195): per repo with facts, what the built-in readers found that the facts don't have, where they disagree, and what only the facts have; a repo's items with <repo> [--json]
540
+ [--dismiss <key>] Dismiss an item at the readers' value it has now, in facts/<repo>.crosscheck.yaml (listed again when that value changes)
541
+ [--undismiss <key>] Take a dismissal back
542
+ [--promote <key>] Promote what the readers found to your own fact (by: person, the reader's citation) in facts/<repo>.jsonl, an edit to propose; atticus verify <repo> then checks it on its line
543
+ atticus catalog prune List the slot files no build reads (repos no longer listed or archived, the upgrade's copy of the catalog); with --yes, remove exactly those [--json]
512
544
  atticus task context <change> <task> [--json|--markdown] The task's context for an assistant: its story and criteria, the step it implements with today's code, what applies, the knowledge that applies to it (how-tos with their steps, standards, processes, decisions, each with its page, the pages that say the same and those that disagree), the files attached and the files likely to change
513
545
  atticus task run <change> <task> Run a task with AI [--level plan|draft|pr] [--mode m] [--approve] [--dry-run]
514
546
  atticus task run-ready <change> Run all ready tasks: every task whose dependencies are done, in cross-repo order, one task run each, stopping on the first that needs a person (ADR 0181) [--level draft|pr] [--mode m] [--approve] [--dry-run]
@@ -679,6 +711,12 @@ async function main(given, givenIo, o = {}) {
679
711
  const rootEq = argv.find((a) => a.startsWith("--root="));
680
712
  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());
681
713
  const log = () => isMetarepoRoot(root) ? createLog(root, o.quiet ? { level: "warn" } : {}) : void 0;
714
+ if (o.record && runLogKept(root)) {
715
+ try {
716
+ retitleTerminalRuns(root, retitled);
717
+ } catch {
718
+ }
719
+ }
682
720
  const said = o.record ? recorderFor(argv, flags, root) : void 0;
683
721
  const io = {
684
722
  ...givenIo,
@@ -696,7 +734,7 @@ async function main(given, givenIo, o = {}) {
696
734
  try {
697
735
  const code = await (said ? withRunLine((l) => said.line(l), () => dispatch(argv, io)) : dispatch(argv, io));
698
736
  if (code === 0 && argv.some((a) => a === "--resume" || a.startsWith("--resume="))) {
699
- const { forgetKeptResume, resumedRunOf } = await import("./chunk-PZFZPHCT.js");
737
+ const { forgetKeptResume, resumedRunOf } = await import("./chunk-E7Q52EOO.js");
700
738
  const resumed = resumedRunOf(argv);
701
739
  if (resumed)
702
740
  await forgetKeptResume(root, resumed);
@@ -739,18 +777,106 @@ function positionalsAt(argv) {
739
777
  });
740
778
  return tokens.filter((t) => t.kind === "positional").map((t) => t.index);
741
779
  }
780
+ var slots;
781
+ var helpSlots = () => slots ??= titleSlotsOf(HELP);
782
+ function beforeTerminator(argv) {
783
+ const { tokens } = parseArgs({
784
+ args: argv,
785
+ allowPositionals: true,
786
+ options: optionsFor(argv),
787
+ strict: false,
788
+ tokens: true
789
+ });
790
+ const cut = tokens.find((t) => t.kind === "option-terminator");
791
+ return cut ? argv.slice(0, cut.index) : argv;
792
+ }
793
+ function titleWordsOf(argv) {
794
+ const options = optionsFor(argv);
795
+ const { tokens } = parseArgs({
796
+ args: argv,
797
+ allowPositionals: true,
798
+ options,
799
+ strict: false,
800
+ tokens: true
801
+ });
802
+ const words = [];
803
+ let hidden = false;
804
+ let prev;
805
+ for (const t of tokens) {
806
+ if (t.kind === "option-terminator") {
807
+ hidden ||= t.index < argv.length - 1;
808
+ break;
809
+ }
810
+ if (t.kind === "positional") {
811
+ const flagValue = prev?.kind === "option" && prev.inlineValue !== true && (!Object.hasOwn(options, prev.name) || (prev.value ?? "").startsWith("-"));
812
+ if (flagValue)
813
+ hidden = true;
814
+ else
815
+ words.push(argv[t.index]);
816
+ }
817
+ prev = t;
818
+ }
819
+ const out = titleWordsByHelp(words, helpSlots());
820
+ return hidden && out.at(-1) !== "\u2026" ? [...out, "\u2026"] : out;
821
+ }
822
+ var retitled = (r) => {
823
+ const flags = declaredFlags(r.command, r.flags);
824
+ return {
825
+ ...runTitle(titleWordsByHelp(r.command, helpSlots()), flags),
826
+ flags: flags.filter((f) => f !== "\u2026")
827
+ };
828
+ };
829
+ function declaredFlags(argv, flags) {
830
+ const known = optionsFor(argv);
831
+ return flags.map((f) => Object.hasOwn(known, f) ? f : "\u2026");
832
+ }
742
833
  function recorderFor(argv, flags, root) {
743
- if (process.env.ATTICUS_RUN_LOG === "off")
834
+ if (!runLogKept(root))
744
835
  return void 0;
745
- let positionals;
836
+ let title;
746
837
  try {
747
- positionals = positionalsAt(argv).map((i) => argv[i]);
838
+ title = titleInputsOf(argv, flags);
748
839
  } catch {
749
840
  return void 0;
750
841
  }
751
- if (!recordedCommand(positionals, flags) || !isMetarepoRoot(root))
842
+ if (!recordedCommand(title.positionals, flags))
752
843
  return void 0;
753
- return startTerminalRun(root, { positionals, flags, hookProcess: true });
844
+ return startTerminalRun(root, { ...title, hookProcess: true });
845
+ }
846
+ function commandTitleInputsOf(given) {
847
+ const argv = aliasArgv(given, positionalsAt(given));
848
+ const flags = [
849
+ ...new Set(argv.filter((a) => a.startsWith("--")).map((a) => a.slice(2).split("=")[0]))
850
+ ];
851
+ try {
852
+ return titleInputsOf(argv, flags);
853
+ } catch {
854
+ return { positionals: [], flags: [], values: {} };
855
+ }
856
+ }
857
+ function titleInputsOf(argv, flags) {
858
+ const shown = beforeTerminator(argv);
859
+ return {
860
+ positionals: titleWordsOf(argv),
861
+ flags: declaredFlags(argv, flags.filter((f) => shown.some((a) => a === `--${f}` || a.startsWith(`--${f}=`)))),
862
+ values: optionValuesOf(shown)
863
+ };
864
+ }
865
+ function optionValuesOf(argv) {
866
+ const options = optionsFor(argv);
867
+ const declared = options;
868
+ const { tokens } = parseArgs({
869
+ args: argv,
870
+ allowPositionals: true,
871
+ options,
872
+ strict: false,
873
+ tokens: true
874
+ });
875
+ const out = {};
876
+ for (const t of tokens)
877
+ if (t.kind === "option" && typeof t.value === "string" && !(t.inlineValue === false && t.value.startsWith("-")) && Object.hasOwn(declared, t.name) && declared[t.name].type === "string" && TITLE_VALUE_FLAGS.has(t.name))
878
+ out[t.name] = t.value;
879
+ return out;
754
880
  }
755
881
  function isMetarepoRoot(root) {
756
882
  return existsSync(join(root, "org-pack")) || existsSync(join(root, ".atticus", "org-pack"));
@@ -798,7 +924,7 @@ async function dispatchCommand(raw, io) {
798
924
  if (refused !== void 0)
799
925
  return refused;
800
926
  if (process.env.ATTICUS_ACP_SESSION) {
801
- const { personOnlyWhy } = await import("./chunk-V5ZKGBYL.js");
927
+ const { personOnlyWhy } = await import("./chunk-AOQG37K4.js");
802
928
  const why = personOnlyWhy(argv);
803
929
  if (why) {
804
930
  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.`);
@@ -806,18 +932,18 @@ async function dispatchCommand(raw, io) {
806
932
  }
807
933
  }
808
934
  if (group === "help" || values.help || !group) {
809
- const { helpCommand } = await import("./chunk-PXMV2LLY.js");
935
+ const { helpCommand } = await import("./chunk-M65AZ4ZE.js");
810
936
  return helpCommand(group === "help" ? positionals.slice(1) : positionals, HELP, io, {
811
937
  all: values.all === true
812
938
  });
813
939
  }
814
940
  if (group === "legacy") {
815
- const { legacyHelp } = await import("./chunk-PXMV2LLY.js");
941
+ const { legacyHelp } = await import("./chunk-M65AZ4ZE.js");
816
942
  io.out(legacyHelp(HELP, { all: values.all === true }));
817
943
  return 0;
818
944
  }
819
945
  if (group === "commands") {
820
- const { AREAS, commandCatalog: commandCatalog2 } = await import("./chunk-ZGULQAPZ.js");
946
+ const { AREAS, commandCatalog: commandCatalog2 } = await import("./chunk-44SWXDD7.js");
821
947
  const commands = commandCatalog2(HELP);
822
948
  if (values.json === true)
823
949
  io.out(JSON.stringify({ areas: AREAS, commands }, null, 2));
@@ -853,9 +979,9 @@ async function dispatchCommand(raw, io) {
853
979
  if (!runsNoAi(group, command))
854
980
  await setUpAi();
855
981
  if (group === "next")
856
- return (await import("./chunk-U3RGBYXE.js")).nextCommand(root, { json: values.json === true, all: values.all === true, queue: values.queue === true }, io);
982
+ return (await import("./chunk-OB2DAIJX.js")).nextCommand(root, { json: values.json === true, all: values.all === true, queue: values.queue === true }, io);
857
983
  if (values.handoff === true && (await import("./chunk-KQDZXGNR.js")).isHandoffStep(group, command))
858
- return (await import("./chunk-DG7KYZAL.js")).handoffStep(root, argv, io, dispatch);
984
+ return (await import("./chunk-Y2U63JKE.js")).handoffStep(root, argv, io, dispatch);
859
985
  const given = typeof values.by === "string" && values.by.trim() ? values.by : void 0;
860
986
  const person = !given && RECORDS_A_PERSON.has(group) ? await gitUser(root) : void 0;
861
987
  let warned = false;
@@ -870,7 +996,7 @@ async function dispatchCommand(raw, io) {
870
996
  };
871
997
  const repoIds = typeof values.repos === "string" ? values.repos.split(",").map((s) => s.trim()).filter(Boolean) : void 0;
872
998
  if (group === "change" && command === "needs" || group === "needs") {
873
- const handled = await (await import("./chunk-BV2BZIUF.js")).needsCli(root, positionals, values, io, who);
999
+ const handled = await (await import("./chunk-W2A4NHQD.js")).needsCli(root, positionals, values, io, who);
874
1000
  if (handled !== void 0)
875
1001
  return handled;
876
1002
  }
@@ -894,7 +1020,7 @@ async function dispatchCommand(raw, io) {
894
1020
  }, io, run);
895
1021
  }
896
1022
  if (group === "runs") {
897
- const m = await import("./chunk-RO6BE7ZS.js");
1023
+ const m = await import("./chunk-LTVOQJKT.js");
898
1024
  if (command === "show") {
899
1025
  const id = positionals[2];
900
1026
  if (!id) {
@@ -915,7 +1041,7 @@ async function dispatchCommand(raw, io) {
915
1041
  }, io);
916
1042
  }
917
1043
  if (group === "history") {
918
- const m = await import("./chunk-VCXFMXMX.js");
1044
+ const m = await import("./chunk-QLT3WYTD.js");
919
1045
  const text = (v) => typeof v === "string" && v.trim() ? v : void 0;
920
1046
  if (command === "add") {
921
1047
  if (process.stdin.isTTY) {
@@ -959,8 +1085,14 @@ async function dispatchCommand(raw, io) {
959
1085
  return handled;
960
1086
  }
961
1087
  if (group === "repo" && command === "rename") {
962
- const { repoRename } = await import("./chunk-HCC5547C.js");
963
- return repoRename(root, positionals[2], positionals[3], io);
1088
+ const { repoRename } = await import("./chunk-CHEFUNZ4.js");
1089
+ const counts = countFlags(values, io);
1090
+ if (counts === void 0)
1091
+ return 2;
1092
+ return repoRename(root, positionals[2], positionals[3], io, {
1093
+ json: values.json === true,
1094
+ ...counts
1095
+ });
964
1096
  }
965
1097
  if (group === "repo" && (command === "add" || command === "describe")) {
966
1098
  const m = await loadRepoCommands();
@@ -993,7 +1125,7 @@ async function dispatchCommand(raw, io) {
993
1125
  }, io);
994
1126
  }
995
1127
  if (group === "types") {
996
- const t = await import("./chunk-JJEXMHNZ.js");
1128
+ const t = await import("./chunk-HUMM4S5I.js");
997
1129
  const text = (v) => typeof v === "string" ? v : void 0;
998
1130
  if (!command || command === "list")
999
1131
  return t.typesListCommand(root, { json: values.json === true }, io);
@@ -1015,8 +1147,8 @@ async function dispatchCommand(raw, io) {
1015
1147
  const text = (v) => typeof v === "string" ? v : void 0;
1016
1148
  const sys = Array.isArray(values.system) ? text(values.system[0]) : text(values.system);
1017
1149
  if (command === "match") {
1018
- const m = await import("./chunk-PR6Z5L7W.js");
1019
- const l = await import("./chunk-AHACUPGL.js");
1150
+ const m = await import("./chunk-N2XCT5OX.js");
1151
+ const l = await import("./chunk-AANQC5QP.js");
1020
1152
  return m.connectMatchCommand(root, positionals[2], {
1021
1153
  ...text(values.to) ? { to: text(values.to) } : {},
1022
1154
  ...sys ? { system: sys } : {},
@@ -1030,7 +1162,7 @@ async function dispatchCommand(raw, io) {
1030
1162
  return 2;
1031
1163
  }
1032
1164
  if (group === "skills") {
1033
- const k = await import("./chunk-ZNYSBQIA.js");
1165
+ const k = await import("./chunk-MUXYUIBV.js");
1034
1166
  const text = (v) => typeof v === "string" ? v : void 0;
1035
1167
  if (!command || command === "list")
1036
1168
  return k.skillsListCommand(root, { json: values.json === true }, io);
@@ -1047,7 +1179,7 @@ async function dispatchCommand(raw, io) {
1047
1179
  return 2;
1048
1180
  }
1049
1181
  if (group === "rules") {
1050
- const r = await import("./chunk-H26T2LQL.js");
1182
+ const r = await import("./chunk-VCYE4MUD.js");
1051
1183
  const text = (v) => typeof v === "string" ? v : void 0;
1052
1184
  const scope = {
1053
1185
  ...values["org-wide"] === true ? { org: true } : {},
@@ -1142,11 +1274,11 @@ async function dispatchCommand(raw, io) {
1142
1274
  }
1143
1275
  }
1144
1276
  if (group === "estate" && command === "fresh") {
1145
- const m = await import("./chunk-MZ6GOFRF.js");
1277
+ const m = await import("./chunk-7YWS47SE.js");
1146
1278
  return m.estateFresh(root, { json: values.json === true, all: values.all === true }, io);
1147
1279
  }
1148
1280
  if (group === "estate" && command === "shared") {
1149
- const m = await import("./chunk-YLXPJWNO.js");
1281
+ const m = await import("./chunk-7YMAMNMT.js");
1150
1282
  const json2 = values.json === true;
1151
1283
  const text = (v) => typeof v === "string" && v.trim() ? v : void 0;
1152
1284
  if (arg === "import")
@@ -1169,11 +1301,11 @@ async function dispatchCommand(raw, io) {
1169
1301
  return 2;
1170
1302
  }
1171
1303
  if (group === "estate" && command === "contracts") {
1172
- const m = await import("./chunk-TLBPTUFU.js");
1304
+ const m = await import("./chunk-6OEB4FTC.js");
1173
1305
  return m.joinContracts(root, { json: values.json === true }, io);
1174
1306
  }
1175
1307
  if (group === "estate" && command === "measure") {
1176
- const m = await import("./chunk-4NWE2KY3.js");
1308
+ const m = await import("./chunk-G3F4BYML.js");
1177
1309
  return m.joinMeasure(root, arg, { json: values.json === true }, io);
1178
1310
  }
1179
1311
  if (group === "estate" && (command === "join" || command === "flow" || command === "lineage")) {
@@ -1190,7 +1322,7 @@ async function dispatchCommand(raw, io) {
1190
1322
  return command === "flow" ? m.estateFlowCommand(root, arg, o, io) : m.estateLineage(root, arg, field, o, io);
1191
1323
  }
1192
1324
  if (group === "spec" && (command === "seed" || command === "accept")) {
1193
- const m = await import("./chunk-UJ5ZJS4B.js");
1325
+ const m = await import("./chunk-ROI64BAI.js");
1194
1326
  if (!arg) {
1195
1327
  io.err(command === "seed" ? "Usage: atticus spec seed <repo> [--json]" : "Usage: atticus spec accept <repo> [--by you]");
1196
1328
  return 2;
@@ -1234,7 +1366,7 @@ async function dispatchCommand(raw, io) {
1234
1366
  io.err("Usage: atticus map render <repo> [--json]");
1235
1367
  return 2;
1236
1368
  }
1237
- const { mapRenderCommand } = await import("./chunk-NP3PG6OI.js");
1369
+ const { mapRenderCommand } = await import("./chunk-Z65FWO6A.js");
1238
1370
  return mapRenderCommand(root, repo, { json: values.json === true }, io);
1239
1371
  }
1240
1372
  const models = values.models === "entries" || values.models === "reachable" || values.models === "all" ? values.models : void 0;
@@ -1247,7 +1379,7 @@ async function dispatchCommand(raw, io) {
1247
1379
  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.");
1248
1380
  return 2;
1249
1381
  }
1250
- const { mapAllCommand } = await import("./chunk-WM4EMP7T.js");
1382
+ const { mapAllCommand } = await import("./chunk-6G67LSBG.js");
1251
1383
  const { copyToClipboard } = await import("./chunk-S5LSDXV4.js");
1252
1384
  const typed = [];
1253
1385
  const { createInterface } = await import("node:readline");
@@ -1260,7 +1392,7 @@ async function dispatchCommand(raw, io) {
1260
1392
  ac.abort();
1261
1393
  io.err("Stopping after this step (Ctrl+C again stops at once)...");
1262
1394
  };
1263
- process.on("SIGINT", onInt);
1395
+ const offInt = onAtticusSignal("SIGINT", onInt);
1264
1396
  try {
1265
1397
  return await mapAllCommand(root, o, io, {
1266
1398
  clipboard: copyToClipboard,
@@ -1268,7 +1400,7 @@ async function dispatchCommand(raw, io) {
1268
1400
  signal: ac.signal,
1269
1401
  makeRuntime: async () => (await runtimeForCli(root, { mode: "model", handoffValidate: async () => [] })).runtime,
1270
1402
  // ADR 0171: Copilot driven through its Agent Client Protocol, one new session a part.
1271
- makeAcp: async () => (await import("./chunk-A6LGX56J.js")).acpStepRunner(root)
1403
+ makeAcp: async () => (await import("./chunk-IAVVJ34R.js")).acpStepRunner(root)
1272
1404
  });
1273
1405
  } catch (e) {
1274
1406
  if (e instanceof (await loadAi()).RuntimeConfigError) {
@@ -1277,7 +1409,7 @@ async function dispatchCommand(raw, io) {
1277
1409
  }
1278
1410
  throw e;
1279
1411
  } finally {
1280
- process.off("SIGINT", onInt);
1412
+ offInt();
1281
1413
  rl?.close();
1282
1414
  }
1283
1415
  };
@@ -1331,7 +1463,7 @@ async function dispatchCommand(raw, io) {
1331
1463
  }
1332
1464
  const text = (v) => typeof v === "string" ? v : void 0;
1333
1465
  if (values.spent !== void 0 || values.sessions !== void 0) {
1334
- const { mapSpent } = await import("./chunk-NECDBPFP.js");
1466
+ const { mapSpent } = await import("./chunk-ZOAX7W5S.js");
1335
1467
  return mapSpent(root, repo, {
1336
1468
  ...text(values.spent) !== void 0 ? { spent: text(values.spent) } : {},
1337
1469
  ...text(values.sessions) !== void 0 ? { sessions: text(values.sessions) } : {},
@@ -1339,7 +1471,7 @@ async function dispatchCommand(raw, io) {
1339
1471
  ...text(values.by) ? { by: text(values.by) } : {}
1340
1472
  }, io);
1341
1473
  }
1342
- const { mapCommand } = await import("./chunk-STBJ6SVJ.js");
1474
+ const { mapCommand } = await import("./chunk-KRTSE73S.js");
1343
1475
  const o = {
1344
1476
  ...text(values.dir) ? { dir: resolve(text(values.dir)) } : {},
1345
1477
  ...text(values.commit) ? { commit: text(values.commit) } : {},
@@ -1359,8 +1491,8 @@ async function dispatchCommand(raw, io) {
1359
1491
  };
1360
1492
  const acpAsked = text(values.mode) === "copilot-acp";
1361
1493
  if (!o.estimate && !o.copy && o.answer === void 0 && !o.next && o.resume === void 0) {
1362
- const { copilotAcpByDefault } = await import("./chunk-A6LGX56J.js");
1363
- const core = await import("./chunk-UXVKFOMC.js");
1494
+ const { copilotAcpByDefault } = await import("./chunk-IAVVJ34R.js");
1495
+ const core = await import("./chunk-PPKH6ULR.js");
1364
1496
  const op = await core.loadOrgPack(core.orgPackDirOf(root)).catch(() => void 0);
1365
1497
  if (acpAsked || !text(values.mode) && op && copilotAcpByDefault(op) && !o.json) {
1366
1498
  const idle = Number(text(values.idle));
@@ -1379,7 +1511,7 @@ async function dispatchCommand(raw, io) {
1379
1511
  if (o.estimate || o.gaps || o.rules && !o.copy && !text(values.mode))
1380
1512
  return mapCommand(root, repo, o, io);
1381
1513
  const starting = !o.next && o.resume === void 0 && !o.copy && o.answer === void 0 && !text(values.mode);
1382
- const { mapReader } = await import("./chunk-WM4EMP7T.js");
1514
+ const { mapReader } = await import("./chunk-6G67LSBG.js");
1383
1515
  const reader = await mapReader(root);
1384
1516
  if (starting && !o.json && !o.dir && !o.commit && reader.loop) {
1385
1517
  const idle = Number(text(values.idle));
@@ -1408,12 +1540,59 @@ async function dispatchCommand(raw, io) {
1408
1540
  throw e;
1409
1541
  }
1410
1542
  }
1543
+ if (group === "canary") {
1544
+ const c = await import("./chunk-HPNYSY5M.js");
1545
+ const text = (x) => typeof x === "string" ? x : void 0;
1546
+ const size = Number(text(values.size));
1547
+ const o = {
1548
+ by: who(),
1549
+ ...text(values.seed) ? { seed: text(values.seed) } : {},
1550
+ ...Number.isFinite(size) && size >= 0 && text(values.size) ? { size } : {},
1551
+ ...text(values.facts) ? { facts: text(values.facts) } : {},
1552
+ json: values.json === true,
1553
+ skipped: values.skipped === true,
1554
+ // second review of ADR 0196: every canary is cleaned only with --all, never by no repo
1555
+ all: values.all === true
1556
+ };
1557
+ if (command === "check" && typeof values.root !== "string") {
1558
+ const here = await c.runHolding(process.cwd());
1559
+ if (here)
1560
+ return c.canaryCheckHere(process.cwd(), arg, o, io);
1561
+ }
1562
+ if (arg !== void 0 && ["plant", "check", "score", "clean"].includes(command ?? "")) {
1563
+ const problem = await c.canaryRepoProblem(root, arg);
1564
+ if (problem) {
1565
+ io.err(problem);
1566
+ return 2;
1567
+ }
1568
+ }
1569
+ if (command === "plant")
1570
+ return c.canaryPlant(root, arg, o, io);
1571
+ if (command === "check")
1572
+ return c.canaryCheck(root, arg, o, io);
1573
+ if (command === "score")
1574
+ return c.canaryScore(root, arg, o, io);
1575
+ if (command === "report")
1576
+ return c.canaryReport(root, o, io);
1577
+ if (command === "clean")
1578
+ return c.canaryClean(root, arg, o, io);
1579
+ io.err(c.CANARY_WORDS.usage);
1580
+ return 2;
1581
+ }
1411
1582
  if (group === "verify") {
1412
1583
  const v = { values, positionals };
1413
1584
  const repo = v.positionals[1];
1414
1585
  const text = (x) => typeof x === "string" ? x : void 0;
1586
+ if (v.values.here === true) {
1587
+ const c = await import("./chunk-HPNYSY5M.js");
1588
+ return c.canaryCheckHere(process.cwd(), repo, {
1589
+ by: who(),
1590
+ ...text(v.values.facts) ? { facts: text(v.values.facts) } : {},
1591
+ skipped: v.values.skipped === true
1592
+ }, io);
1593
+ }
1415
1594
  if (repo === "audit" && (v.positionals[2] || v.values.report === true)) {
1416
- const { auditCommand } = await import("./chunk-ZAMSF2DF.js");
1595
+ const { auditCommand } = await import("./chunk-EW574EZI.js");
1417
1596
  const ids = (x) => text(x)?.split(",").map((y) => y.trim()).filter(Boolean);
1418
1597
  const size = Number(text(v.values.size));
1419
1598
  const interactive = process.stdin.isTTY && v.values.json !== true;
@@ -1442,7 +1621,7 @@ async function dispatchCommand(raw, io) {
1442
1621
  }
1443
1622
  }
1444
1623
  if (!repo && v.values.all === true) {
1445
- const { verifyAllCommand } = await import("./chunk-7NVLGPER.js");
1624
+ const { verifyAllCommand } = await import("./chunk-QDGNDNBG.js");
1446
1625
  return verifyAllCommand(text(v.values.root) ? resolve(text(v.values.root)) : root, {
1447
1626
  ...v.values.write === true ? { write: true } : {},
1448
1627
  ...v.values.verbose === true ? { verbose: true } : {}
@@ -1452,7 +1631,10 @@ async function dispatchCommand(raw, io) {
1452
1631
  io.err("Usage: atticus verify <repo> [--write [--verbose]] [--dir path] [--commit sha] [--routed a,b] [--skipped] [--json], or atticus verify --all [--write]");
1453
1632
  return 2;
1454
1633
  }
1455
- const { verifyCommand } = await import("./chunk-7NVLGPER.js");
1634
+ const { verifyCommand } = await import("./chunk-QDGNDNBG.js");
1635
+ const counts = countFlags(v.values, io);
1636
+ if (counts === void 0)
1637
+ return 2;
1456
1638
  return verifyCommand(
1457
1639
  // --write is a switch, so a --root right after it is read (it once took --root as its value).
1458
1640
  text(v.values.root) ? resolve(text(v.values.root)) : root,
@@ -1466,7 +1648,8 @@ async function dispatchCommand(raw, io) {
1466
1648
  write: v.values.write === true,
1467
1649
  verbose: v.values.verbose === true,
1468
1650
  json: v.values.json === true,
1469
- ...v.values.skipped === true ? { skipped: true } : {}
1651
+ ...v.values.skipped === true ? { skipped: true } : {},
1652
+ ...counts
1470
1653
  },
1471
1654
  io
1472
1655
  );
@@ -1533,6 +1716,9 @@ async function dispatchCommand(raw, io) {
1533
1716
  throw e;
1534
1717
  }
1535
1718
  }
1719
+ const scanCounts = group === "scan" ? countFlags(values, io) : {};
1720
+ if (scanCounts === void 0)
1721
+ return 2;
1536
1722
  if (group === "scan")
1537
1723
  return scanCommand(root, {
1538
1724
  ...repoIds ? { repos: repoIds } : {},
@@ -1541,12 +1727,13 @@ async function dispatchCommand(raw, io) {
1541
1727
  json: values.json === true,
1542
1728
  noDrift: values["no-drift"] === true,
1543
1729
  warnings: values.warnings === true,
1544
- ...typeof values.ref === "string" && values.ref.trim() ? { ref: values.ref.trim() } : {}
1730
+ ...typeof values.ref === "string" && values.ref.trim() ? { ref: values.ref.trim() } : {},
1731
+ ...scanCounts
1545
1732
  }, io);
1546
1733
  if (group === "cites") {
1547
1734
  const given2 = (v) => typeof v === "string" && v.trim() ? v.trim() : void 0;
1548
1735
  const [repo, path, file] = [given2(values.repo), given2(values.path), given2(values.file)];
1549
- return (await import("./chunk-GHCFWIUW.js")).citesCli(root, {
1736
+ return (await import("./chunk-LIHEMWIT.js")).citesCli(root, {
1550
1737
  ...repo ? { repo } : {},
1551
1738
  ...path ? { path } : {},
1552
1739
  ...file ? { file: resolve(file) } : {},
@@ -1554,15 +1741,15 @@ async function dispatchCommand(raw, io) {
1554
1741
  }, io);
1555
1742
  }
1556
1743
  if (group === "watch")
1557
- return (await import("./chunk-IERXBWQU.js")).watchCommand(root, command, { off: values.off === true, json: values.json === true }, io);
1744
+ return (await import("./chunk-SHIARIEZ.js")).watchCommand(root, command, { off: values.off === true, json: values.json === true }, io);
1558
1745
  if (group === "setup" && !command)
1559
1746
  return setupCommand(root, { json: values.json === true }, io);
1560
1747
  if (group === "doctor" && values.counts === true)
1561
- return (await import("./chunk-IDRCBMJF.js")).doctorCountsCommand(root, { json: values.json === true }, io);
1748
+ return (await import("./chunk-V34N6JAN.js")).doctorCountsCommand(root, { json: values.json === true }, io);
1562
1749
  if (group === "doctor")
1563
1750
  return doctorCommand(root, { json: values.json === true }, io);
1564
1751
  if (group === "probe") {
1565
- const { probeCommand, probeAnswerCommand } = await import("./chunk-MCORC2LG.js");
1752
+ const { probeCommand, probeAnswerCommand } = await import("./chunk-SF3HXNXR.js");
1566
1753
  const max = typeof values["max-tokens"] === "string" ? Number(values["max-tokens"]) : void 0;
1567
1754
  const json2 = values.json === true;
1568
1755
  if (command === "answer")
@@ -1577,13 +1764,19 @@ async function dispatchCommand(raw, io) {
1577
1764
  json: json2
1578
1765
  }, io);
1579
1766
  }
1767
+ if (group === "upgrade" && values["accept-changes"] !== void 0 && !(typeof values["accept-changes"] === "string" && /^\d+$/.test(values["accept-changes"]))) {
1768
+ io.err("--accept-changes takes the count of the first build's changes atticus upgrade listed, a whole number. Nothing was written.");
1769
+ return 2;
1770
+ }
1580
1771
  if (group === "upgrade")
1581
1772
  return upgradeCommand(root, {
1582
1773
  check: values.check === true,
1583
1774
  dryRun: values["dry-run"] === true,
1584
1775
  ...values.check === true || values["dry-run"] === true ? {} : { by: who() },
1585
1776
  json: values.json === true,
1586
- ...values["openspec-store"] === true ? { openspecStore: true } : {}
1777
+ ...values["openspec-store"] === true ? { openspecStore: true } : {},
1778
+ ...values.yes === true ? { yes: true } : {},
1779
+ ...typeof values["accept-changes"] === "string" && Number.isInteger(Number(values["accept-changes"])) ? { acceptChanges: Number(values["accept-changes"]) } : {}
1587
1780
  }, io);
1588
1781
  if (group === "support" && command === "bundle")
1589
1782
  return supportBundleCommand(root, {
@@ -1615,7 +1808,7 @@ async function dispatchCommand(raw, io) {
1615
1808
  return askCommand(root, command, { json: values.json === true }, io);
1616
1809
  }
1617
1810
  if (group === "context") {
1618
- const m = await import("./chunk-UWBPC5XH.js");
1811
+ const m = await import("./chunk-QNXMVJMA.js");
1619
1812
  const target = positionals[2];
1620
1813
  const csv = (v) => typeof v === "string" ? v.split(",").map((k) => k.trim()).filter(Boolean) : void 0;
1621
1814
  if (command === "tools")
@@ -1730,7 +1923,7 @@ async function dispatchCommand(raw, io) {
1730
1923
  if (group === "index" && command === "rebuild")
1731
1924
  return indexRebuild(root, io);
1732
1925
  if (group === "index" && command === "embed")
1733
- return (await import("./chunk-NVVEVP5O.js")).indexEmbed(root, io);
1926
+ return (await import("./chunk-TRSNIJNM.js")).indexEmbed(root, io);
1734
1927
  if (group === "alias") {
1735
1928
  const target = positionals[2];
1736
1929
  if (!command || !target) {
@@ -1800,7 +1993,7 @@ async function dispatchCommand(raw, io) {
1800
1993
  if (group === "eval" && command === "report")
1801
1994
  return evalReport(root, { json }, io);
1802
1995
  if (group === "bench" && (command === "facts" || command === "stories")) {
1803
- const m = await import("./chunk-Q3RKXK5Z.js");
1996
+ const m = await import("./chunk-Y2U4CSCA.js");
1804
1997
  return m.benchScoreCli(command, arg, values, io, root);
1805
1998
  }
1806
1999
  if (group === "bench" && (command === "fetch" || command === "run" || command === "survey" || command === "verify")) {
@@ -1852,7 +2045,7 @@ async function dispatchCommand(raw, io) {
1852
2045
  }, io);
1853
2046
  }
1854
2047
  if (group === "secret") {
1855
- const { secretCommand } = await import("./chunk-6TZ4YRGJ.js");
2048
+ const { secretCommand } = await import("./chunk-OUDGBJC2.js");
1856
2049
  return secretCommand(positionals.slice(1), io);
1857
2050
  }
1858
2051
  if (group === "conformance") {
@@ -2052,9 +2245,9 @@ async function dispatchCommand(raw, io) {
2052
2245
  }, io);
2053
2246
  }
2054
2247
  if (group === "task" && command === "context")
2055
- return (await import("./chunk-7ZBYRMWK.js")).taskContextCli(root, arg, positionals[3], { json, markdown: values.markdown === true }, io);
2248
+ return (await import("./chunk-ALUHO7SE.js")).taskContextCli(root, arg, positionals[3], { json, markdown: values.markdown === true }, io);
2056
2249
  if (group === "change" && command === "attach")
2057
- return (await import("./chunk-7ZBYRMWK.js")).changeAttachCli(root, arg, positionals.slice(3), {
2250
+ return (await import("./chunk-ALUHO7SE.js")).changeAttachCli(root, arg, positionals.slice(3), {
2058
2251
  by: who(),
2059
2252
  json,
2060
2253
  ...typeof values.replaces === "string" && values.replaces.trim() ? { replaces: values.replaces.trim() } : {},
@@ -2103,6 +2296,46 @@ async function dispatchCommand(raw, io) {
2103
2296
  }, io);
2104
2297
  if (group === "catalog" && command === "migrate")
2105
2298
  return catalogMigrate(root, io, { dryRun: values["dry-run"] === true });
2299
+ if (group === "catalog" && command === "crosscheck") {
2300
+ const { catalogCrossCheck } = await import("./chunk-YQ3IXQIH.js");
2301
+ return catalogCrossCheck(root, {
2302
+ ...arg ? { repo: arg } : {},
2303
+ json: values.json === true,
2304
+ ...str(values.dismiss) !== void 0 ? { dismiss: str(values.dismiss) } : {},
2305
+ ...str(values.undismiss) !== void 0 ? { undismiss: str(values.undismiss) } : {},
2306
+ ...str(values.promote) !== void 0 ? { promote: str(values.promote) } : {}
2307
+ }, io);
2308
+ }
2309
+ if (group === "catalog" && (command === "build" || command === "undo" || command === "prune" || command === "edits")) {
2310
+ const m = await import("./chunk-22A2K555.js");
2311
+ const counts = countFlags(values, io);
2312
+ if (counts === void 0)
2313
+ return 2;
2314
+ const json2 = values.json === true;
2315
+ if (command === "build")
2316
+ return m.catalogBuild(root, { check: values.check === true, json: json2, ...counts }, io);
2317
+ if (command === "edits") {
2318
+ const drop = values["drop-fields"];
2319
+ if (drop !== void 0 && !(typeof drop === "string" && /^\d+$/.test(drop))) {
2320
+ io.err("--drop-fields takes the count of files catalog edits listed, a whole number.");
2321
+ return 2;
2322
+ }
2323
+ return m.catalogEdits(root, {
2324
+ curate: values.curate === true,
2325
+ json: json2,
2326
+ by: who(),
2327
+ ...typeof drop === "string" ? { dropFields: Number(drop) } : {}
2328
+ }, io);
2329
+ }
2330
+ if (command === "prune")
2331
+ return m.catalogPrune(root, { yes: values.yes === true, json: json2 }, io);
2332
+ const n = arg === void 0 ? void 0 : Number(arg);
2333
+ if (n !== void 0 && !(Number.isInteger(n) && n > 0)) {
2334
+ io.err("catalog undo takes the number of an undo copy (atticus catalog undo lists them).");
2335
+ return 2;
2336
+ }
2337
+ return m.catalogUndo(root, { ...n ? { n } : {}, yes: values.yes === true, json: json2 }, io);
2338
+ }
2106
2339
  if (group === "feature") {
2107
2340
  const rest = positionals.slice(3);
2108
2341
  const writes = ["name", "tag", "merge", "split", "link"].includes(command ?? "");
@@ -2191,7 +2424,7 @@ async function dispatchCommand(raw, io) {
2191
2424
  io.err('finding needs a change, a finding id and an action, for example: atticus finding add-transfer-limit f-1 not-relevant --reason "..."');
2192
2425
  return 2;
2193
2426
  }
2194
- const session = given ? void 0 : (await import("./chunk-OH2OHNB5.js")).assistantSession(process.env);
2427
+ const session = given ? void 0 : (await import("./chunk-4FLIW5PJ.js")).assistantSession(process.env);
2195
2428
  if (session)
2196
2429
  io.err(`Recorded as ${session.by}: ${session.because}.`);
2197
2430
  return findingAction(root, command, findingId, action, {
@@ -2218,7 +2451,7 @@ async function dispatchCommand(raw, io) {
2218
2451
  ...str(values.impact) ? { impact: str(values.impact) } : {}
2219
2452
  }, io);
2220
2453
  if (command === "sketch") {
2221
- const { changeSketchCommand } = await import("./chunk-B7KGNEFI.js");
2454
+ const { changeSketchCommand } = await import("./chunk-NN7K2LLN.js");
2222
2455
  return changeSketchCommand(root, arg, {
2223
2456
  ...str(values.from) ? { from: str(values.from) } : {},
2224
2457
  ...values.save === true ? { save: true } : {},
@@ -2227,11 +2460,11 @@ async function dispatchCommand(raw, io) {
2227
2460
  }, io);
2228
2461
  }
2229
2462
  if (command === "impact") {
2230
- const { changeImpactCli } = await import("./chunk-XEWFVHOT.js");
2463
+ const { changeImpactCli } = await import("./chunk-SCP24MJX.js");
2231
2464
  return changeImpactCli(root, arg, { json }, io);
2232
2465
  }
2233
2466
  if (command === "similar") {
2234
- const { changeSimilarCli } = await import("./chunk-KUEG2Y7M.js");
2467
+ const { changeSimilarCli } = await import("./chunk-EYVYHYCA.js");
2235
2468
  const limit = Number(str(values.limit) ?? 5);
2236
2469
  return changeSimilarCli(root, arg, {
2237
2470
  json,
@@ -2242,7 +2475,7 @@ async function dispatchCommand(raw, io) {
2242
2475
  if (command === "list")
2243
2476
  return changeList(root, { json }, io);
2244
2477
  if (command === "export") {
2245
- const { changeExportCommand } = await import("./chunk-KJD4DLRZ.js");
2478
+ const { changeExportCommand } = await import("./chunk-ZDG637ZT.js");
2246
2479
  const named = positionals[3];
2247
2480
  const fmt = str(values.format) ?? (named === "ado" || named === "jira" ? named : void 0);
2248
2481
  return changeExportCommand(root, arg, {
@@ -2259,7 +2492,7 @@ async function dispatchCommand(raw, io) {
2259
2492
  io.err("change conform needs a change id, for example: atticus change conform add-transfer-limit");
2260
2493
  return 2;
2261
2494
  }
2262
- const { changeConformCommand } = await import("./chunk-C3TBDX7Y.js");
2495
+ const { changeConformCommand } = await import("./chunk-GLHOUT5E.js");
2263
2496
  return changeConformCommand(root, arg, {
2264
2497
  ...str(values.repo) ? { repo: str(values.repo) } : {},
2265
2498
  ...str(values.ref) ? { ref: str(values.ref) } : {},
@@ -2273,7 +2506,7 @@ async function dispatchCommand(raw, io) {
2273
2506
  io.err("change estimate needs a change id, for example: atticus change estimate add-transfer-limit");
2274
2507
  return 2;
2275
2508
  }
2276
- const { changeEstimateCommand } = await import("./chunk-URZKIL37.js");
2509
+ const { changeEstimateCommand } = await import("./chunk-OGTELPDN.js");
2277
2510
  return changeEstimateCommand(root, arg, { json }, io);
2278
2511
  }
2279
2512
  if (command === "map") {
@@ -2281,7 +2514,7 @@ async function dispatchCommand(raw, io) {
2281
2514
  io.err("change map needs a change id, for example: atticus change map add-transfer-limit");
2282
2515
  return 2;
2283
2516
  }
2284
- const { changeMapCommand } = await import("./chunk-4N5W7LYW.js");
2517
+ const { changeMapCommand } = await import("./chunk-JBLM6IUA.js");
2285
2518
  return changeMapCommand(root, arg, { ...str(values.format) ? { format: str(values.format) } : {}, json }, io);
2286
2519
  }
2287
2520
  if (command === "learn")
@@ -2301,7 +2534,7 @@ async function dispatchCommand(raw, io) {
2301
2534
  if (command === "status")
2302
2535
  return changeStatus(root, arg, { json }, io);
2303
2536
  if (command === "knowledge") {
2304
- const { changeKnowledge } = await import("./chunk-YYV276DM.js");
2537
+ const { changeKnowledge } = await import("./chunk-LCIIFAID.js");
2305
2538
  return changeKnowledge(root, arg, {
2306
2539
  ...str(values.confirm) ? { confirm: str(values.confirm) } : {},
2307
2540
  ...str(values.exclude) ? { exclude: str(values.exclude) } : {},
@@ -2337,7 +2570,7 @@ async function dispatchCommand(raw, io) {
2337
2570
  if (group === "intake" && command === "list")
2338
2571
  return intakeList(root, io, { json });
2339
2572
  if (group === "intake" && command === "traffic") {
2340
- const { intakeTraffic } = await import("./chunk-PXDAGXQN.js");
2573
+ const { intakeTraffic } = await import("./chunk-A7ZJKLFC.js");
2341
2574
  return intakeTraffic(root, positionals[2] ?? "", {
2342
2575
  ...str(values.source) ? { source: str(values.source) } : {},
2343
2576
  ...str(values.from) ? { from: str(values.from) } : {},
@@ -2346,7 +2579,7 @@ async function dispatchCommand(raw, io) {
2346
2579
  }, io);
2347
2580
  }
2348
2581
  if (group === "intake" && command === "impact") {
2349
- const { intakeImpact } = await import("./chunk-3GEAUW62.js");
2582
+ const { intakeImpact } = await import("./chunk-LTHY7E2P.js");
2350
2583
  return intakeImpact(root, positionals[2] ?? "", { json }, io);
2351
2584
  }
2352
2585
  if (group === "triage" && !command)
@@ -2601,7 +2834,7 @@ async function dispatchCommand(raw, io) {
2601
2834
  return sourcesRefreshCommand(root, { json }, io);
2602
2835
  if (group === "sources" && command === "estimate") {
2603
2836
  const bt = str(values["batch-tokens"]);
2604
- return (await import("./chunk-6P67IUET.js")).sourcesEstimate(root, {
2837
+ return (await import("./chunk-TMETWJFO.js")).sourcesEstimate(root, {
2605
2838
  ...str(values.source) ? { source: str(values.source) } : {},
2606
2839
  ...bt && Number(bt) > 0 ? { batchTokens: Number(bt) } : {},
2607
2840
  ...values.full === true ? { full: true } : {},
@@ -2609,7 +2842,7 @@ async function dispatchCommand(raw, io) {
2609
2842
  }, io);
2610
2843
  }
2611
2844
  if (group === "standards")
2612
- return (await import("./chunk-6P67IUET.js")).standardsCli(root, command, values, io);
2845
+ return (await import("./chunk-TMETWJFO.js")).standardsCli(root, command, values, io);
2613
2846
  if (group === "sources" && command === "sync")
2614
2847
  return sourcesSync(root, io, {
2615
2848
  json: values.json === true,
@@ -2622,10 +2855,9 @@ async function dispatchCommand(raw, io) {
2622
2855
  if (group === "domain" && command === "profile")
2623
2856
  return domainProfileCommand(root, arg, str(values.out) ? { out: str(values.out) } : {}, io);
2624
2857
  if (group === "questions" && command === "propose") {
2625
- const { questionsProposeCommand } = await import("./chunk-A6LGX56J.js");
2858
+ const { questionsProposeCommand } = await import("./chunk-IAVVJ34R.js");
2626
2859
  const ac = new AbortController();
2627
- const onInt = () => ac.abort();
2628
- process.on("SIGINT", onInt);
2860
+ const offInt = onAtticusSignal("SIGINT", () => ac.abort());
2629
2861
  try {
2630
2862
  return await questionsProposeCommand(root, {
2631
2863
  ...arg ? { id: arg } : {},
@@ -2633,15 +2865,15 @@ async function dispatchCommand(raw, io) {
2633
2865
  signal: ac.signal
2634
2866
  }, io, () => questionsFiles(root, ["questions", "proposed", "--root", root], io));
2635
2867
  } finally {
2636
- process.off("SIGINT", onInt);
2868
+ offInt();
2637
2869
  }
2638
2870
  }
2639
2871
  if (group === "questions" && command === "route")
2640
- return (await import("./chunk-43OWNS5N.js")).questionRouteCommand(root, argv, io);
2872
+ return (await import("./chunk-EHXEJFHD.js")).questionRouteCommand(root, argv, io);
2641
2873
  if (group === "questions" && command === "owner")
2642
- return (await import("./chunk-CUTMM4NY.js")).ownerQuestionCommand(root, argv, io);
2874
+ return (await import("./chunk-IJHJIL6T.js")).ownerQuestionCommand(root, argv, io);
2643
2875
  if (group === "questions" && ["decisions", "correct", "undo"].includes(command ?? ""))
2644
- return (await import("./chunk-IH6BYFMH.js")).decisionsCli(root, argv, io);
2876
+ return (await import("./chunk-4POSAXNC.js")).decisionsCli(root, argv, io);
2645
2877
  if (group === "questions" && command)
2646
2878
  return questionsFiles(root, argv, io);
2647
2879
  if (group === "questions")
@@ -2649,13 +2881,13 @@ async function dispatchCommand(raw, io) {
2649
2881
  if (group === "reconcile")
2650
2882
  return reconcileCommand(root, positionals.slice(1), { json: values.json === true }, io);
2651
2883
  if (group === "orgpack" && (command === "draft" || command === "accept"))
2652
- return (await import("./chunk-MZXDSAKW.js")).orgPackDraftCli(root, command, arg, values, io);
2884
+ return (await import("./chunk-YRHKEXTP.js")).orgPackDraftCli(root, command, arg, values, io);
2653
2885
  if (group === "orgpack" && command === "owner")
2654
- return (await import("./chunk-VTR4AC2U.js")).orgPackOwnerCli(root, arg, io);
2886
+ return (await import("./chunk-RZYRUXSU.js")).orgPackOwnerCli(root, arg, io);
2655
2887
  if (group === "orgpack" && command === "validate")
2656
- return orgPackValidate(arg ? resolve(arg) : join((await import("./chunk-UXVKFOMC.js")).orgPackDirOf(root)), io);
2888
+ return orgPackValidate(arg ? resolve(arg) : join((await import("./chunk-PPKH6ULR.js")).orgPackDirOf(root)), io);
2657
2889
  if (group === "stage" && command === "check")
2658
- return (await import("./chunk-LTOBNBJ6.js")).stageCheck(root, arg, positionals[3], positionals[4], io);
2890
+ return (await import("./chunk-KLFFHBWG.js")).stageCheck(root, arg, positionals[3], positionals[4], io);
2659
2891
  if (group === "handoff" && command === "done") {
2660
2892
  if (!arg) {
2661
2893
  io.err("handoff done needs the run id from the prompt, for example: atticus handoff done run-20261018060000-0001");
@@ -2673,11 +2905,11 @@ async function dispatchCommand(raw, io) {
2673
2905
  if (group === "openspec" && command === "check")
2674
2906
  return openspecCheck(root, io);
2675
2907
  if (group === "openspec") {
2676
- const { openspecRun } = await import("./chunk-2GT47PWU.js");
2908
+ const { openspecRun } = await import("./chunk-GBJRFFDW.js");
2677
2909
  return openspecRun(root, openspecArgsOf(argv), io);
2678
2910
  }
2679
2911
  if (group === "workspace" && command === "bring-in") {
2680
- const { bringInMerged } = await import("./chunk-IJN5PSDU.js");
2912
+ const { bringInMerged } = await import("./chunk-KNYQUWFN.js");
2681
2913
  return bringInMerged(root, io);
2682
2914
  }
2683
2915
  if (group === "workspace" && command === "sync")
@@ -2691,19 +2923,37 @@ async function dispatchCommand(raw, io) {
2691
2923
  return workspaceOpen(root, arg, repoIds, io);
2692
2924
  return workspacePrune(root, arg, { all: values.all === true, force: values.force === true }, io);
2693
2925
  }
2694
- const { commandCatalog } = await import("./chunk-ZGULQAPZ.js");
2926
+ const { commandCatalog } = await import("./chunk-44SWXDD7.js");
2695
2927
  const { nearestCommand } = await import("./chunk-ZIUFM5HT.js");
2696
2928
  const near = nearestCommand(positionals, commandCatalog(HELP).map((c) => c.id));
2697
2929
  io.err(`Unknown command: ${positionals.join(" ")}.${near ? ` Did you mean atticus ${near}?` : ""}`);
2698
2930
  io.err("atticus help lists the main commands, atticus legacy the rest; atticus help <command> explains one.");
2699
2931
  return 2;
2700
2932
  }
2933
+ function countFlags(values, io) {
2934
+ const out = {};
2935
+ for (const [flag, key] of [
2936
+ ["allow-removals", "allowRemovals"],
2937
+ ["discard-edits", "discardEdits"]
2938
+ ]) {
2939
+ const v = values[flag];
2940
+ if (v === void 0)
2941
+ continue;
2942
+ const n = Number(v);
2943
+ if (typeof v !== "string" || !Number.isInteger(n) || n < 0) {
2944
+ io.err(`--${flag} takes the count the refused build listed, a whole number.`);
2945
+ return void 0;
2946
+ }
2947
+ out[key] = n;
2948
+ }
2949
+ return out;
2950
+ }
2701
2951
  async function checkFlags(argv, positionals, io) {
2702
2952
  const { unknownFlags, unknownFlagMessages } = await import("./chunk-ZIUFM5HT.js");
2703
2953
  const quick = new Set(Object.keys(OPTIONS));
2704
2954
  if (!unknownFlags(argv, quick).length)
2705
2955
  return void 0;
2706
- const { commandCatalog } = await import("./chunk-ZGULQAPZ.js");
2956
+ const { commandCatalog } = await import("./chunk-44SWXDD7.js");
2707
2957
  const catalog = commandCatalog(HELP);
2708
2958
  const known = /* @__PURE__ */ new Set([
2709
2959
  ...quick,
@@ -2714,7 +2964,7 @@ async function checkFlags(argv, positionals, io) {
2714
2964
  return void 0;
2715
2965
  for (const m of unknownFlagMessages(unknown, known))
2716
2966
  io.err(m);
2717
- const { commandOf } = await import("./chunk-PXMV2LLY.js");
2967
+ const { commandOf } = await import("./chunk-M65AZ4ZE.js");
2718
2968
  const id = commandOf(positionals, catalog.map((c) => c.id));
2719
2969
  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.");
2720
2970
  return 2;
@@ -2722,6 +2972,11 @@ async function checkFlags(argv, positionals, io) {
2722
2972
  export {
2723
2973
  HELP_TEXT,
2724
2974
  VERSION,
2975
+ commandTitleInputsOf,
2976
+ declaredFlags,
2725
2977
  main,
2726
- setUpAi
2978
+ optionValuesOf,
2979
+ setUpAi,
2980
+ titleInputsOf,
2981
+ titleWordsOf
2727
2982
  };