@maycombhq/atticus 2.0.0-beta.12.1 → 2.0.0-beta.13

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 (223) hide show
  1. package/dist/bin.js +3 -3
  2. package/dist/{chunk-TJP2KLZI.js → chunk-22VA7YYG.js} +11 -11
  3. package/dist/{chunk-5ION6STH.js → chunk-27HOC77H.js} +2 -2
  4. package/dist/chunk-2HFVFEBT.js +37 -0
  5. package/dist/{chunk-PVMGHQWB.js → chunk-2JQ2SCX7.js} +7 -7
  6. package/dist/{chunk-ZTIMXVV5.js → chunk-2M76O6AN.js} +2 -2
  7. package/dist/{chunk-PKCYRG6G.js → chunk-2V7A3J7B.js} +15 -12
  8. package/dist/{chunk-DX5H5YKM.js → chunk-2W6ZLQX6.js} +11 -11
  9. package/dist/{chunk-TIAPEYWI.js → chunk-2Z4U33UI.js} +3 -3
  10. package/dist/{chunk-ZDZCUZ4N.js → chunk-3JOHZDKD.js} +5 -5
  11. package/dist/{chunk-42L2WHP6.js → chunk-3ODHCYOG.js} +4 -4
  12. package/dist/{chunk-JLIEAQP4.js → chunk-3RI2HYPB.js} +4 -4
  13. package/dist/{chunk-CJ5FQHST.js → chunk-3VYKAAQ4.js} +5 -5
  14. package/dist/{chunk-U2SGLXFR.js → chunk-3ZYGPIOB.js} +17 -17
  15. package/dist/{chunk-7UKETVPW.js → chunk-46VGJBRS.js} +1 -1
  16. package/dist/{chunk-5I5JDJ3R.js → chunk-4CBEOTJG.js} +4 -4
  17. package/dist/{chunk-34NWVIBC.js → chunk-4HAYYEFB.js} +2 -2
  18. package/dist/{chunk-UYKKTEWB.js → chunk-4IAZSN4N.js} +14 -14
  19. package/dist/{chunk-5R2EWR47.js → chunk-4NMF7XDM.js} +7 -7
  20. package/dist/{chunk-CCXEXCRO.js → chunk-4WUHO5SI.js} +14 -14
  21. package/dist/{chunk-CYDJK34J.js → chunk-55H65YKF.js} +4 -4
  22. package/dist/{chunk-UQUDITWL.js → chunk-5EOJSQM3.js} +20 -20
  23. package/dist/{chunk-BHHIHENP.js → chunk-5GQHLNZB.js} +4 -4
  24. package/dist/{chunk-QL4VNY4U.js → chunk-5LDFVOKT.js} +1 -1
  25. package/dist/{chunk-EREL3TQG.js → chunk-5MT5MY3V.js} +1 -1
  26. package/dist/{chunk-W3ZWS3B3.js → chunk-5SDBKA5U.js} +10 -10
  27. package/dist/chunk-5UQ5W2PF.js +54 -0
  28. package/dist/{chunk-6IKYFARG.js → chunk-5WBRQSLJ.js} +19 -10
  29. package/dist/{chunk-Y2FMWQQB.js → chunk-62CGLT7D.js} +16 -16
  30. package/dist/chunk-6EHE7PX4.js +54 -0
  31. package/dist/{chunk-IJ7TPOXQ.js → chunk-6L3OB44C.js} +11 -11
  32. package/dist/{chunk-6AYUBYK6.js → chunk-6TY7S6Y6.js} +38 -12
  33. package/dist/{chunk-6ROZRBWH.js → chunk-6VLNXNEM.js} +4 -4
  34. package/dist/{chunk-VRH6ITQH.js → chunk-6Z2SM6TU.js} +9 -9
  35. package/dist/{chunk-JQG4VO47.js → chunk-7HX7LQ66.js} +1 -1
  36. package/dist/{chunk-WM4N2L4T.js → chunk-7YXDLJCV.js} +1 -1
  37. package/dist/{chunk-3W5R5J65.js → chunk-A5YAXW5G.js} +31 -8
  38. package/dist/{chunk-3M7QBKKG.js → chunk-A64EHZTF.js} +6 -6
  39. package/dist/{chunk-VC4JMXM5.js → chunk-A7URZ77Y.js} +19 -19
  40. package/dist/{chunk-Y6LFFSRV.js → chunk-B2EIZVAW.js} +10 -10
  41. package/dist/{chunk-GRZGEMO5.js → chunk-BAGRINRH.js} +102 -102
  42. package/dist/{chunk-U25OX22K.js → chunk-BH5DMXG5.js} +137 -16
  43. package/dist/{chunk-P7SONIEO.js → chunk-CFIDOXSH.js} +269 -64
  44. package/dist/{chunk-J3DTLYER.js → chunk-CFYAQTDM.js} +15 -15
  45. package/dist/{chunk-TIUBGJG3.js → chunk-CK5Z3RIN.js} +9 -9
  46. package/dist/{chunk-YISWYR3Q.js → chunk-DAZHJOLA.js} +4 -4
  47. package/dist/{chunk-DQKNOHUZ.js → chunk-DFDEUYHX.js} +1 -1
  48. package/dist/{chunk-Z2BA4NNR.js → chunk-DHWMEG7N.js} +2 -2
  49. package/dist/{chunk-PGFRXGHA.js → chunk-DJEDFJTZ.js} +2 -2
  50. package/dist/{chunk-XBNKOARP.js → chunk-DJTZVXI5.js} +4 -4
  51. package/dist/{chunk-U43G5EUN.js → chunk-DN4FULFM.js} +17 -17
  52. package/dist/{chunk-Q4AWUD6C.js → chunk-DO6B66AS.js} +16 -16
  53. package/dist/{chunk-O62VA6MH.js → chunk-EBVKNIKO.js} +13 -13
  54. package/dist/chunk-ECGTN32T.js +43 -0
  55. package/dist/{chunk-ESGIBN3S.js → chunk-EFI6BBPE.js} +1 -1
  56. package/dist/{chunk-7C7PTJM2.js → chunk-EJJONXPS.js} +27 -18
  57. package/dist/{chunk-TV6ECMN3.js → chunk-ETOIM5LK.js} +15 -15
  58. package/dist/{chunk-IDLO7UCZ.js → chunk-EUSWNGGG.js} +5 -5
  59. package/dist/chunk-F4WLUEZY.js +43 -0
  60. package/dist/chunk-F7EHN4CC.js +151 -0
  61. package/dist/{chunk-ZRP6ZXOF.js → chunk-FGGCLKPG.js} +12 -12
  62. package/dist/{chunk-PAQDPB6T.js → chunk-FMGMRFEH.js} +4 -4
  63. package/dist/chunk-FODNRZC7.js +38 -0
  64. package/dist/{chunk-PUGPT4Y6.js → chunk-FZTXX5Z2.js} +17 -17
  65. package/dist/{chunk-CGF4LKXR.js → chunk-GAK5KDYV.js} +3 -3
  66. package/dist/{chunk-DONCF2XC.js → chunk-GELBERZB.js} +3 -3
  67. package/dist/{chunk-MOY52LHS.js → chunk-GFQ4ZUY3.js} +13 -13
  68. package/dist/{chunk-6R2OM6Y3.js → chunk-GMXE44X7.js} +15 -15
  69. package/dist/{chunk-65XZSK6S.js → chunk-GNEFMED4.js} +4 -4
  70. package/dist/{chunk-OJAJXU65.js → chunk-GT6BMFHZ.js} +13 -1
  71. package/dist/{chunk-GX3Q5PRC.js → chunk-GWB4XIMM.js} +11 -11
  72. package/dist/{chunk-ARLH2ZMD.js → chunk-HGNJNPMB.js} +1 -1
  73. package/dist/{chunk-XP3KLC4S.js → chunk-HGNMMBFJ.js} +6 -6
  74. package/dist/{chunk-CUX4GRTB.js → chunk-HK2BXCMW.js} +3 -3
  75. package/dist/{chunk-3256EDLL.js → chunk-HOQB4B3F.js} +3 -3
  76. package/dist/{chunk-S5X7BVWP.js → chunk-HRVG2MOI.js} +19 -19
  77. package/dist/{chunk-FLROTO6F.js → chunk-HS7OZ3ZE.js} +3 -3
  78. package/dist/{chunk-AY7Y3WPD.js → chunk-I6PYLKHK.js} +15 -15
  79. package/dist/{chunk-WBOVB3XR.js → chunk-IDJJ5MDV.js} +24 -24
  80. package/dist/{chunk-N6YELFHL.js → chunk-IF6UROTX.js} +2 -2
  81. package/dist/{chunk-6HSRGY4B.js → chunk-IJQ5BF5K.js} +3 -3
  82. package/dist/{chunk-GU7PEYRC.js → chunk-IQLHTDHS.js} +10 -10
  83. package/dist/{chunk-BUD6JILH.js → chunk-IUDD5WS3.js} +21 -21
  84. package/dist/{chunk-QR65C3DV.js → chunk-J422SCUS.js} +4 -4
  85. package/dist/chunk-J5QWT2LV.js +41 -0
  86. package/dist/{chunk-7FPTI62T.js → chunk-J6CM5ZST.js} +20 -20
  87. package/dist/{chunk-NTNJNRHW.js → chunk-J7G2BGW4.js} +4 -4
  88. package/dist/{chunk-JS3DJH3Q.js → chunk-JCGIAHCX.js} +4 -4
  89. package/dist/{chunk-DKGWE5ZL.js → chunk-JI3QP66O.js} +21 -21
  90. package/dist/{chunk-OKUYBXXI.js → chunk-JQKFZIQN.js} +16 -16
  91. package/dist/{chunk-OMH3I5BH.js → chunk-JSTI6YPH.js} +2 -2
  92. package/dist/{chunk-DLX2R3MI.js → chunk-JW3YAB24.js} +31 -31
  93. package/dist/{chunk-MFRPLAOH.js → chunk-K3VT62TE.js} +2 -2
  94. package/dist/{chunk-CQD26SMZ.js → chunk-K4J4Z37A.js} +1090 -40
  95. package/dist/{chunk-MIOY6EXD.js → chunk-KEOTTRK2.js} +4 -4
  96. package/dist/{chunk-M3BJTXLR.js → chunk-KEZXPK4U.js} +9 -9
  97. package/dist/{chunk-3JLTN3Y7.js → chunk-KK4I5NNI.js} +7 -7
  98. package/dist/{chunk-G2K2D6XS.js → chunk-KLXAX2YW.js} +12 -12
  99. package/dist/{chunk-AUSC47BK.js → chunk-KMDIJ6O4.js} +4 -4
  100. package/dist/{chunk-7XWCTVJS.js → chunk-KUFJDY4S.js} +3 -3
  101. package/dist/{chunk-TBKJPKDN.js → chunk-KV24YCMX.js} +11 -11
  102. package/dist/{chunk-CXY4YDXS.js → chunk-KYR4XMXR.js} +2 -2
  103. package/dist/{chunk-XDTD55UU.js → chunk-L2EHYZCH.js} +33 -9
  104. package/dist/{chunk-FSR7OUVJ.js → chunk-L32HJTTW.js} +23 -23
  105. package/dist/{chunk-QOPX5M7Y.js → chunk-LPVS4DPT.js} +4 -4
  106. package/dist/{chunk-RA64IK43.js → chunk-LRO3Y2XQ.js} +1 -1
  107. package/dist/{chunk-VUBVBFJW.js → chunk-LYWEB453.js} +5 -5
  108. package/dist/chunk-LZDK3V3W.js +34 -0
  109. package/dist/{chunk-FF5Q7ONT.js → chunk-M54PJXYX.js} +214 -148
  110. package/dist/{chunk-XB64FJLU.js → chunk-M6W3P3ZI.js} +24 -24
  111. package/dist/{chunk-QKSWQBWD.js → chunk-MBAKCS2U.js} +25 -8
  112. package/dist/{chunk-FT3RXIN4.js → chunk-MBQY6L3Z.js} +10 -10
  113. package/dist/{chunk-72DY5NCN.js → chunk-MCRCJLAE.js} +2 -2
  114. package/dist/{chunk-NZY72PGJ.js → chunk-MSAXKU4C.js} +9 -7
  115. package/dist/{chunk-ZPPLFE4N.js → chunk-MSF6XELY.js} +14 -14
  116. package/dist/{chunk-ZWGU46YO.js → chunk-MYZPN2BV.js} +23 -23
  117. package/dist/{chunk-7VAMO66T.js → chunk-N35OSYIU.js} +9 -6
  118. package/dist/{chunk-U3JGJ3BO.js → chunk-N3Z2D3OC.js} +24 -24
  119. package/dist/{chunk-LAOZB5YC.js → chunk-NEDAQDC7.js} +11 -11
  120. package/dist/{chunk-YY2WGL6S.js → chunk-NEEOJJWT.js} +2 -2
  121. package/dist/{chunk-VAL7HAIR.js → chunk-NEYVK52V.js} +3 -3
  122. package/dist/chunk-NKIGYJY6.js +41 -0
  123. package/dist/{chunk-36CTZGPH.js → chunk-NPL4XMOC.js} +7 -7
  124. package/dist/{chunk-G5SKNMPC.js → chunk-NRJC7XTD.js} +5 -5
  125. package/dist/{chunk-FYWA2CPF.js → chunk-NVDAZOVS.js} +17 -17
  126. package/dist/{chunk-TEZSZ24W.js → chunk-O2QUSGER.js} +4 -4
  127. package/dist/{chunk-KPHPVOME.js → chunk-OE3ECGHN.js} +4 -4
  128. package/dist/{chunk-QOF7U6BI.js → chunk-OKXRQPQF.js} +6 -6
  129. package/dist/{chunk-YSFIQGDK.js → chunk-OPMTVYWM.js} +8 -8
  130. package/dist/{chunk-4GNKICU5.js → chunk-OR4FYMZM.js} +18 -18
  131. package/dist/{chunk-KY2ZHTBJ.js → chunk-OXEOXPG5.js} +6 -6
  132. package/dist/{chunk-34BCKMBS.js → chunk-P2AKNGWM.js} +3 -3
  133. package/dist/{chunk-VTMIRRIZ.js → chunk-PAYFWXVA.js} +2 -2
  134. package/dist/{chunk-DREIS5Z5.js → chunk-PCYGJOR2.js} +6 -6
  135. package/dist/{chunk-7MASAGFE.js → chunk-PFUX5AVG.js} +15 -15
  136. package/dist/{chunk-FNVY656P.js → chunk-PJ7CW2B5.js} +22 -22
  137. package/dist/{chunk-BFZSO2TP.js → chunk-PLZ6S6QS.js} +6 -6
  138. package/dist/{chunk-T72K4PLH.js → chunk-PWDRDFYW.js} +11 -11
  139. package/dist/{chunk-2DJUQ6CO.js → chunk-QBA67JWK.js} +22 -22
  140. package/dist/{chunk-NAKVQU6F.js → chunk-QF6RSKKI.js} +1 -1
  141. package/dist/{chunk-ML3HOWPI.js → chunk-QOZICYAF.js} +4 -4
  142. package/dist/{chunk-CIIRPLI6.js → chunk-QPAOZXXQ.js} +4 -4
  143. package/dist/{chunk-7VNEDDCC.js → chunk-QQIZGLRA.js} +2 -2
  144. package/dist/{chunk-JWQMD54C.js → chunk-QTJCLGFC.js} +7 -7
  145. package/dist/{chunk-5IMZYLDW.js → chunk-QVPYGH7N.js} +11 -11
  146. package/dist/{chunk-M4D3VKAS.js → chunk-RAFD4MYO.js} +1 -1
  147. package/dist/{chunk-XSNIHYO6.js → chunk-RDPHVCTU.js} +10 -10
  148. package/dist/{chunk-J22RSFKY.js → chunk-S32NYQZZ.js} +369 -360
  149. package/dist/{chunk-PJRMMWU4.js → chunk-S56NJ5LE.js} +2 -2
  150. package/dist/{chunk-ISXNWUG7.js → chunk-SDAULIGH.js} +1 -1
  151. package/dist/{chunk-5C24MOXU.js → chunk-SQKDHGAD.js} +17 -17
  152. package/dist/{chunk-N2FA53DA.js → chunk-SYPSS5UX.js} +6 -6
  153. package/dist/{chunk-CUD4I2U6.js → chunk-T7LGRFVD.js} +28 -28
  154. package/dist/{chunk-CH6LUQLD.js → chunk-TCIFQSMO.js} +1 -1
  155. package/dist/{chunk-DBZNQAMN.js → chunk-THOVQFPT.js} +9 -9
  156. package/dist/{chunk-2OWSG6BK.js → chunk-TM5JJL6I.js} +11 -11
  157. package/dist/{chunk-EOCZDNWU.js → chunk-TW2XD4CT.js} +5 -5
  158. package/dist/{chunk-4JLB5ISS.js → chunk-U4N4DZS5.js} +3 -3
  159. package/dist/{chunk-YVQWJDVN.js → chunk-U4SGGO54.js} +24 -24
  160. package/dist/{chunk-HK2CF6KQ.js → chunk-U4WFATJZ.js} +23 -23
  161. package/dist/{chunk-4HTILEXW.js → chunk-U57NQAE5.js} +46 -2
  162. package/dist/{chunk-EE3UNC44.js → chunk-U7X3CZIL.js} +3 -3
  163. package/dist/chunk-UCLAXME7.js +34 -0
  164. package/dist/{chunk-XMYGEZQ7.js → chunk-UCS7HXFX.js} +17 -17
  165. package/dist/{chunk-7UXSS23C.js → chunk-UDENIR6E.js} +18 -18
  166. package/dist/{chunk-XZLSKGJX.js → chunk-UDI4QI6D.js} +5 -5
  167. package/dist/{chunk-77UOXZVM.js → chunk-ULRDKBHJ.js} +5 -5
  168. package/dist/{chunk-DW4BM73R.js → chunk-UQRUMRB2.js} +1 -1
  169. package/dist/{chunk-DDOLWHIM.js → chunk-USPTS2HZ.js} +17 -17
  170. package/dist/{chunk-2A24BNRZ.js → chunk-V4B44XRC.js} +7 -7
  171. package/dist/{chunk-IZF2VJU5.js → chunk-VBPHSKJI.js} +22 -22
  172. package/dist/{chunk-GJ4B2FYS.js → chunk-VCEUC3GC.js} +10 -10
  173. package/dist/{chunk-N7HG4UP7.js → chunk-VCN6THJZ.js} +6 -6
  174. package/dist/{chunk-QC24Z5JU.js → chunk-VFQARMOE.js} +10 -10
  175. package/dist/{chunk-RMNYY5IE.js → chunk-VG3NSHIA.js} +5 -5
  176. package/dist/{chunk-TEHH47TG.js → chunk-VKVGHROQ.js} +3 -3
  177. package/dist/{chunk-CKI4VG2I.js → chunk-VUUU7BOK.js} +22 -22
  178. package/dist/{chunk-PAOIMLTK.js → chunk-VXKPHJVK.js} +19 -19
  179. package/dist/{chunk-P3VBYYAS.js → chunk-W5PMBPKI.js} +3 -3
  180. package/dist/{chunk-TA2ZNDYD.js → chunk-W7CZCZPE.js} +1 -1
  181. package/dist/chunk-WAYZHK2C.js +48 -0
  182. package/dist/{chunk-WRLEYM3T.js → chunk-WC4Z3UHZ.js} +4 -4
  183. package/dist/{chunk-SR2M7DWL.js → chunk-WJ7BAWOR.js} +13 -13
  184. package/dist/{chunk-MRLCNXXR.js → chunk-WJK5WJLA.js} +1 -1
  185. package/dist/{chunk-7H5HYERS.js → chunk-WNEAZYEK.js} +19 -19
  186. package/dist/{chunk-DBVU45FY.js → chunk-WPBI7LBA.js} +14 -14
  187. package/dist/{chunk-HY2VVVFZ.js → chunk-WPHKKINR.js} +4 -4
  188. package/dist/{chunk-TJHDFS33.js → chunk-XDMYQ5RR.js} +27 -27
  189. package/dist/{chunk-HIQWJ6JZ.js → chunk-XFQKKNEF.js} +4 -4
  190. package/dist/{chunk-JC3BMRB5.js → chunk-XYEMI627.js} +11 -11
  191. package/dist/{chunk-S4USA5WC.js → chunk-YBWUVSAH.js} +20 -20
  192. package/dist/{chunk-FP6GJJY7.js → chunk-YCYAA4MB.js} +22 -22
  193. package/dist/{chunk-WFJMKUTR.js → chunk-YECVNCO4.js} +9 -9
  194. package/dist/{chunk-5G5GD5HF.js → chunk-YGEHNSJ4.js} +14 -14
  195. package/dist/{chunk-KJ6IH2D5.js → chunk-YJI3S2YA.js} +5 -5
  196. package/dist/{chunk-HMQXIFOL.js → chunk-YLTOP7OS.js} +4 -4
  197. package/dist/{chunk-QXGOEP44.js → chunk-YVHUKQ5U.js} +3 -3
  198. package/dist/{chunk-GIPQHVJF.js → chunk-YZGYUMWJ.js} +11 -11
  199. package/dist/{chunk-2QT6WVAK.js → chunk-Z43VYNEY.js} +15 -15
  200. package/dist/{chunk-XRDYEEDE.js → chunk-ZGJVAHQC.js} +1 -1
  201. package/dist/{chunk-GUNBOZ75.js → chunk-ZHMVB3YW.js} +3 -3
  202. package/dist/{chunk-T4TMX54Q.js → chunk-ZMHOCHTY.js} +16 -16
  203. package/dist/{chunk-DIAYQLEY.js → chunk-ZQHFZ6WO.js} +6 -6
  204. package/dist/{chunk-MI3GGF7V.js → chunk-ZS2WLK7A.js} +17 -17
  205. package/dist/{chunk-WSFPKNKT.js → chunk-ZWIYJCW5.js} +23 -23
  206. package/dist/chunk-ZWY72UOG.js +45 -0
  207. package/dist/files.json +449 -441
  208. package/dist/packages/sdk/npm/index.js +57 -9
  209. package/dist/packages/ui/dist/assets/{elk-api-D2NcYpUJ.js → elk-api-GNftut9z.js} +2 -2
  210. package/dist/packages/ui/dist/assets/{index-CT7skl01.js → index-C2evnHpj.js} +3 -3
  211. package/dist/packages/ui/dist/index.html +1 -1
  212. package/package.json +6 -6
  213. package/dist/chunk-2RMWW6G3.js +0 -41
  214. package/dist/chunk-3PLE3ZQ5.js +0 -34
  215. package/dist/chunk-CU35HXQ7.js +0 -48
  216. package/dist/chunk-EOWO4YPF.js +0 -43
  217. package/dist/chunk-EZ3FDHW3.js +0 -41
  218. package/dist/chunk-F5L23NGR.js +0 -45
  219. package/dist/chunk-JOG6LBOP.js +0 -38
  220. package/dist/chunk-LRCWWMHH.js +0 -54
  221. package/dist/chunk-LVQMS54L.js +0 -54
  222. package/dist/chunk-S3QCJWCF.js +0 -34
  223. package/dist/chunk-XVQGT4SL.js +0 -37
@@ -8,7 +8,7 @@ import {
8
8
  } from "./chunk-BXBCMGIQ.js";
9
9
  import {
10
10
  VERSION
11
- } from "./chunk-M4D3VKAS.js";
11
+ } from "./chunk-RAFD4MYO.js";
12
12
  import {
13
13
  SCHEMA_VERSION,
14
14
  createLog
@@ -19,19 +19,19 @@ import "./chunk-TV45EUGM.js";
19
19
  import { parseArgs } from "node:util";
20
20
  import { basename, join, resolve } from "node:path";
21
21
  import { existsSync } from "node:fs";
22
- var loadAi = () => import("./chunk-4HTILEXW.js");
22
+ var loadAi = () => import("./chunk-U57NQAE5.js");
23
23
  var runtimeForCli = async (...a) => {
24
24
  await setUpAi();
25
25
  return (await loadAi()).runtimeForCli(...a);
26
26
  };
27
- var gitUser = (...a) => import("./chunk-YY2WGL6S.js").then((m) => m.gitUser(...a));
27
+ var gitUser = (...a) => import("./chunk-NEEOJJWT.js").then((m) => m.gitUser(...a));
28
28
  var loadAiSetUp = () => Promise.all([
29
29
  loadAi(),
30
- import("./chunk-34BCKMBS.js"),
31
- import("./chunk-TEZSZ24W.js"),
32
- import("./chunk-ZPPLFE4N.js"),
33
- import("./chunk-JLIEAQP4.js"),
34
- import("./chunk-XRDYEEDE.js")
30
+ import("./chunk-P2AKNGWM.js"),
31
+ import("./chunk-O2QUSGER.js"),
32
+ import("./chunk-MSF6XELY.js"),
33
+ import("./chunk-3RI2HYPB.js"),
34
+ import("./chunk-ZGJVAHQC.js")
35
35
  ]);
36
36
  async function setUpAi() {
37
37
  const [ai, providers, plugins, naysayer, codeTools, draftCheck] = await loadAiSetUp();
@@ -39,6 +39,12 @@ async function setUpAi() {
39
39
  plugins.registerModelProviderPlugins();
40
40
  ai.registerToolSource((at) => (req) => draftCheck.bothTools(codeTools.metarepoToolBox(at), draftCheck.draftCheckTool(at, req)));
41
41
  naysayer.registerCodeSearch(codeTools.criticCodeSearch);
42
+ ai.registerCopilotAcp({
43
+ ...process.argv[1] ? { exec: ai.atticusExec(process.argv[1]) } : {},
44
+ onProgress: (l) => process.stderr.write(`${l}
45
+ `),
46
+ clientVersion: VERSION
47
+ });
42
48
  }
43
49
  var NO_AI = /* @__PURE__ */ new Set([
44
50
  "next",
@@ -62,73 +68,73 @@ var NO_AI = /* @__PURE__ */ new Set([
62
68
  "questions show"
63
69
  ]);
64
70
  var runsNoAi = (group, command) => NO_AI.has(group) || NO_AI.has(`${group} ${command ?? ""}`);
65
- var loadCommands = () => import("./chunk-ESGIBN3S.js");
71
+ var loadCommands = () => import("./chunk-EFI6BBPE.js");
66
72
  var catalogValidate = (...a) => loadCommands().then((m) => m.catalogValidate(...a));
67
73
  var orgPackValidate = (...a) => loadCommands().then((m) => m.orgPackValidate(...a));
68
74
  var schemaExport = (...a) => loadCommands().then((m) => m.schemaExport(...a));
69
- var loadWorkspaceCommands = () => import("./chunk-LRCWWMHH.js");
75
+ var loadWorkspaceCommands = () => import("./chunk-5UQ5W2PF.js");
70
76
  var handoffDone = (...a) => loadWorkspaceCommands().then((m) => m.handoffDone(...a));
71
77
  var openspecCheck = (...a) => loadWorkspaceCommands().then((m) => m.openspecCheck(...a));
72
78
  var openspecSetup = (...a) => loadWorkspaceCommands().then((m) => m.openspecSetup(...a));
73
79
  var workspaceOpen = (...a) => loadWorkspaceCommands().then((m) => m.workspaceOpen(...a));
74
80
  var workspacePrune = (...a) => loadWorkspaceCommands().then((m) => m.workspacePrune(...a));
75
81
  var workspaceSync = (...a) => loadWorkspaceCommands().then((m) => m.workspaceSync(...a));
76
- var loadScanCommands = () => import("./chunk-S3QCJWCF.js");
82
+ var loadScanCommands = () => import("./chunk-UCLAXME7.js");
77
83
  var catalogDiff = (...a) => loadScanCommands().then((m) => m.catalogDiff(...a));
78
84
  var scanCommand = (...a) => loadScanCommands().then((m) => m.scanCommand(...a));
79
- var loadIndexCommands = () => import("./chunk-EE3UNC44.js");
85
+ var loadIndexCommands = () => import("./chunk-U7X3CZIL.js");
80
86
  var askCommand = (...a) => loadIndexCommands().then((m) => m.askCommand(...a));
81
87
  var impactCommand = (...a) => loadIndexCommands().then((m) => m.impactCommand(...a));
82
88
  var indexRebuild = (...a) => loadIndexCommands().then((m) => m.indexRebuild(...a));
83
89
  var queryCommand = (...a) => loadIndexCommands().then((m) => m.queryCommand(...a));
84
90
  var searchCommand = (...a) => loadIndexCommands().then((m) => m.searchCommand(...a));
85
- var loadSiteCommands = () => import("./chunk-CCXEXCRO.js");
91
+ var loadSiteCommands = () => import("./chunk-4WUHO5SI.js");
86
92
  var guideCommand = (...a) => loadSiteCommands().then((m) => m.guideCommand(...a));
87
93
  var siteBuildCommand = (...a) => loadSiteCommands().then((m) => m.siteBuildCommand(...a));
88
- var loadBaselineCommands = () => import("./chunk-F5L23NGR.js");
94
+ var loadBaselineCommands = () => import("./chunk-ZWY72UOG.js");
89
95
  var baselineCommand = (...a) => loadBaselineCommands().then((m) => m.baselineCommand(...a));
90
96
  var setupCommand = (...a) => loadBaselineCommands().then((m) => m.setupCommand(...a));
91
- var loadDigestCommands = () => import("./chunk-J3DTLYER.js");
97
+ var loadDigestCommands = () => import("./chunk-CFYAQTDM.js");
92
98
  var digestCommand = (...a) => loadDigestCommands().then((m) => m.digestCommand(...a));
93
- var loadDoctor = () => import("./chunk-FP6GJJY7.js");
99
+ var loadDoctor = () => import("./chunk-YCYAA4MB.js");
94
100
  var doctorCommand = (...a) => loadDoctor().then((m) => m.doctorCommand(...a));
95
- var loadSupport = () => import("./chunk-U3JGJ3BO.js");
101
+ var loadSupport = () => import("./chunk-N3Z2D3OC.js");
96
102
  var supportBundleCommand = (...a) => loadSupport().then((m) => m.supportBundleCommand(...a));
97
- var loadUpgrade = () => import("./chunk-2RMWW6G3.js");
103
+ var loadUpgrade = () => import("./chunk-NKIGYJY6.js");
98
104
  var upgradeCommand = (...a) => loadUpgrade().then((m) => m.upgradeCommand(...a));
99
- var loadReconcileCommands = () => import("./chunk-TBKJPKDN.js");
105
+ var loadReconcileCommands = () => import("./chunk-KV24YCMX.js");
100
106
  var aliasCommand = (...a) => loadReconcileCommands().then((m) => m.aliasCommand(...a));
101
107
  var reconcileCommand = (...a) => loadReconcileCommands().then((m) => m.reconcileCommand(...a));
102
- var loadKnowledgeCommands = () => import("./chunk-MOY52LHS.js");
108
+ var loadKnowledgeCommands = () => import("./chunk-GFQ4ZUY3.js");
103
109
  var coverageCommand = (...a) => loadKnowledgeCommands().then((m) => m.coverageCommand(...a));
104
110
  var patternsScan = (...a) => loadKnowledgeCommands().then((m) => m.patternsScan(...a));
105
111
  var questionsCommand = (...a) => loadKnowledgeCommands().then((m) => m.questionsCommand(...a));
106
- var questionsFiles = (...a) => import("./chunk-YVQWJDVN.js").then((m) => m.questionsFiles(...a));
112
+ var questionsFiles = (...a) => import("./chunk-U4SGGO54.js").then((m) => m.questionsFiles(...a));
107
113
  var sourcesAdd = (...a) => loadKnowledgeCommands().then((m) => m.sourcesAdd(...a));
108
114
  var sourcesSync = (...a) => loadKnowledgeCommands().then((m) => m.sourcesSync(...a));
109
- var loadDiagramCommands = () => import("./chunk-GX3Q5PRC.js");
115
+ var loadDiagramCommands = () => import("./chunk-GWB4XIMM.js");
110
116
  var diagramLibrary = (...a) => loadDiagramCommands().then((m) => m.diagramLibrary(...a));
111
117
  var diagramRender = (...a) => loadDiagramCommands().then((m) => m.diagramRender(...a));
112
- var loadStubCommands = () => import("./chunk-ZRP6ZXOF.js");
118
+ var loadStubCommands = () => import("./chunk-FGGCLKPG.js");
113
119
  var stubCheck = (...a) => loadStubCommands().then((m) => m.stubCheck(...a));
114
120
  var stubServe = (...a) => loadStubCommands().then((m) => m.stubServe(...a));
115
- var loadIntakeCommands = () => import("./chunk-JC3BMRB5.js");
121
+ var loadIntakeCommands = () => import("./chunk-XYEMI627.js");
116
122
  var intakeAdd = (...a) => loadIntakeCommands().then((m) => m.intakeAdd(...a));
117
123
  var intakeList = (...a) => loadIntakeCommands().then((m) => m.intakeList(...a));
118
124
  var triageDecide = (...a) => loadIntakeCommands().then((m) => m.triageDecide(...a));
119
125
  var triageList = (...a) => loadIntakeCommands().then((m) => m.triageList(...a));
120
- var loadRunCommands = () => import("./chunk-WSFPKNKT.js");
126
+ var loadRunCommands = () => import("./chunk-ZWIYJCW5.js");
121
127
  var assistantFiles = (...a) => loadRunCommands().then((m) => m.assistantFiles(...a));
122
128
  var driftCommand = (...a) => loadRunCommands().then((m) => m.driftCommand(...a));
123
129
  var specHandDown = (...a) => loadRunCommands().then((m) => m.specHandDown(...a));
124
130
  var specHandUp = (...a) => loadRunCommands().then((m) => m.specHandUp(...a));
125
131
  var taskHandoff = (...a) => loadRunCommands().then((m) => m.taskHandoff(...a));
126
132
  var taskRun = (...a) => loadRunCommands().then((m) => m.taskRun(...a));
127
- var loadFeatureCommands = () => import("./chunk-UYKKTEWB.js");
133
+ var loadFeatureCommands = () => import("./chunk-4IAZSN4N.js");
128
134
  var featureSuggestNames = (...a) => loadFeatureCommands().then((m) => m.featureSuggestNames(...a));
129
- var loadDomainCommands = () => import("./chunk-T72K4PLH.js");
135
+ var loadDomainCommands = () => import("./chunk-PWDRDFYW.js");
130
136
  var domainProfileCommand = (...a) => loadDomainCommands().then((m) => m.domainProfileCommand(...a));
131
- var loadPlanCommands = () => import("./chunk-S5X7BVWP.js");
137
+ var loadPlanCommands = () => import("./chunk-HRVG2MOI.js");
132
138
  var adoSync = (...a) => loadPlanCommands().then((m) => m.adoSync(...a));
133
139
  var changeDraft = (...a) => loadPlanCommands().then((m) => m.changeDraft(...a));
134
140
  var planStories = (...a) => loadPlanCommands().then((m) => m.planStories(...a));
@@ -136,13 +142,13 @@ var snowDraft = (...a) => loadPlanCommands().then((m) => m.snowDraft(...a));
136
142
  var snowSubmit = (...a) => loadPlanCommands().then((m) => m.snowSubmit(...a));
137
143
  var storyBarCommand = (...a) => loadPlanCommands().then((m) => m.storyBarCommand(...a));
138
144
  var templatesDraft = (...a) => loadPlanCommands().then((m) => m.templatesDraft(...a));
139
- var loadTodoCommands = () => import("./chunk-HIQWJ6JZ.js");
145
+ var loadTodoCommands = () => import("./chunk-XFQKKNEF.js");
140
146
  var executorsCheck = (...a) => loadTodoCommands().then((m) => m.executorsCheck(...a));
141
147
  var todoDone = (...a) => loadTodoCommands().then((m) => m.todoDone(...a));
142
148
  var todoList = (...a) => loadTodoCommands().then((m) => m.todoList(...a));
143
149
  var todoRun = (...a) => loadTodoCommands().then((m) => m.todoRun(...a));
144
150
  var todoShow = (...a) => loadTodoCommands().then((m) => m.todoShow(...a));
145
- var loadSetupCommands = () => import("./chunk-BUD6JILH.js");
151
+ var loadSetupCommands = () => import("./chunk-IUDD5WS3.js");
146
152
  var absorbCommand = (...a) => loadSetupCommands().then((m) => m.absorbCommand(...a));
147
153
  var absorbAcceptCommand = (...a) => loadSetupCommands().then((m) => m.absorbAcceptCommand(...a));
148
154
  var absorbRefreshCommand = (...a) => loadSetupCommands().then((m) => m.absorbRefreshCommand(...a));
@@ -152,7 +158,7 @@ var initCommand = (...a) => loadSetupCommands().then((m) => m.initCommand(...a))
152
158
  var reposDiscoverCommand = (...a) => loadSetupCommands().then((m) => m.reposDiscoverCommand(...a));
153
159
  var unadoptCommand = (...a) => loadSetupCommands().then((m) => m.unadoptCommand(...a));
154
160
  var zeroInstallCommand = (...a) => loadSetupCommands().then((m) => m.zeroInstallCommand(...a));
155
- var loadQualityCommands = () => import("./chunk-7FPTI62T.js");
161
+ var loadQualityCommands = () => import("./chunk-J6CM5ZST.js");
156
162
  var ciArchiveGate = (...a) => loadQualityCommands().then((m) => m.ciArchiveGate(...a));
157
163
  var ciDrift = (...a) => loadQualityCommands().then((m) => m.ciDrift(...a));
158
164
  var ciSnippet = (...a) => loadQualityCommands().then((m) => m.ciSnippet(...a));
@@ -163,33 +169,33 @@ var glossaryList = (...a) => loadQualityCommands().then((m) => m.glossaryList(..
163
169
  var glossaryScan = (...a) => loadQualityCommands().then((m) => m.glossaryScan(...a));
164
170
  var testsGenerate = (...a) => loadQualityCommands().then((m) => m.testsGenerate(...a));
165
171
  var traceCommand = (...a) => loadQualityCommands().then((m) => m.traceCommand(...a));
166
- var loadInitiativeCommands = () => import("./chunk-DBVU45FY.js");
172
+ var loadInitiativeCommands = () => import("./chunk-WPBI7LBA.js");
167
173
  var initiativeCommitment = (...a) => loadInitiativeCommands().then((m) => m.initiativeCommitment(...a));
168
174
  var initiativeNew = (...a) => loadInitiativeCommands().then((m) => m.initiativeNew(...a));
169
175
  var initiativePlan = (...a) => loadInitiativeCommands().then((m) => m.initiativePlan(...a));
170
176
  var initiativeStatus = (...a) => loadInitiativeCommands().then((m) => m.initiativeStatus(...a));
171
177
  var requestFromTeam = (...a) => loadInitiativeCommands().then((m) => m.requestFromTeam(...a));
172
- var loadLearnCommands = () => import("./chunk-EOWO4YPF.js");
178
+ var loadLearnCommands = () => import("./chunk-F4WLUEZY.js");
173
179
  var explainCommand = (...a) => loadLearnCommands().then((m) => m.explainCommand(...a));
174
180
  var learnCheck = (...a) => loadLearnCommands().then((m) => m.learnCheck(...a));
175
181
  var learnList = (...a) => loadLearnCommands().then((m) => m.learnList(...a));
176
182
  var learnStart = (...a) => loadLearnCommands().then((m) => m.learnStart(...a));
177
183
  var sandboxCreate = (...a) => loadLearnCommands().then((m) => m.sandboxCreate(...a));
178
- var loadEvalCommands = () => import("./chunk-EZ3FDHW3.js");
179
- var loadBenchCommands = () => import("./chunk-CU35HXQ7.js");
184
+ var loadEvalCommands = () => import("./chunk-J5QWT2LV.js");
185
+ var loadBenchCommands = () => import("./chunk-WAYZHK2C.js");
180
186
  var benchFetch = (...a) => loadBenchCommands().then((m) => m.benchFetch(...a));
181
187
  var benchRun = (...a) => loadBenchCommands().then((m) => m.benchRun(...a));
182
188
  var benchSurvey = (...a) => loadBenchCommands().then((m) => m.benchSurvey(...a));
183
189
  var benchVerify = (...a) => loadBenchCommands().then((m) => m.benchVerify(...a));
184
- var loadScanVerifyCommands = () => import("./chunk-CKI4VG2I.js");
185
- var stageCli = (...a) => import("./chunk-HK2CF6KQ.js").then((m) => m.stageCli(...a));
186
- var knowledgeCli = (...a) => import("./chunk-ZWGU46YO.js").then((m) => m.knowledgeCli(...a));
190
+ var loadScanVerifyCommands = () => import("./chunk-VUUU7BOK.js");
191
+ var stageCli = (...a) => import("./chunk-U4WFATJZ.js").then((m) => m.stageCli(...a));
192
+ var knowledgeCli = (...a) => import("./chunk-MYZPN2BV.js").then((m) => m.knowledgeCli(...a));
187
193
  var defencesScan = (...a) => loadEvalCommands().then((m) => m.defencesScan(...a));
188
194
  var evalReport = (...a) => loadEvalCommands().then((m) => m.evalReport(...a));
189
195
  var evalRun = (...a) => loadEvalCommands().then((m) => m.evalRun(...a));
190
- var loadU1Commands = () => import("./chunk-KY2ZHTBJ.js");
196
+ var loadU1Commands = () => import("./chunk-OXEOXPG5.js");
191
197
  var conformanceCommand = (...a) => loadU1Commands().then((m) => m.conformanceCommand(...a));
192
- var loadReleaseCommands = () => import("./chunk-FSR7OUVJ.js");
198
+ var loadReleaseCommands = () => import("./chunk-L32HJTTW.js");
193
199
  var outcomeList = (...a) => loadReleaseCommands().then((m) => m.outcomeList(...a));
194
200
  var outcomeRecord = (...a) => loadReleaseCommands().then((m) => m.outcomeRecord(...a));
195
201
  var releaseEvidenceCommand = (...a) => loadReleaseCommands().then((m) => m.releaseEvidenceCommand(...a));
@@ -197,9 +203,9 @@ var releaseForecastCommand = (...a) => loadReleaseCommands().then((m) => m.relea
197
203
  var releaseNotesCommand = (...a) => loadReleaseCommands().then((m) => m.releaseNotesCommand(...a));
198
204
  var releasePlanCommand = (...a) => loadReleaseCommands().then((m) => m.releasePlanCommand(...a));
199
205
  var releaseSecurityCommand = (...a) => loadReleaseCommands().then((m) => m.releaseSecurityCommand(...a));
200
- var loadUiCommands = () => import("./chunk-GRZGEMO5.js");
206
+ var loadUiCommands = () => import("./chunk-BAGRINRH.js");
201
207
  var uiCommand = (...a) => loadUiCommands().then((m) => m.uiCommand(...a));
202
- var loadCriticCommands = () => import("./chunk-6R2OM6Y3.js");
208
+ var loadCriticCommands = () => import("./chunk-GMXE44X7.js");
203
209
  var critic = (...a) => loadCriticCommands().then((m) => m.critic(...a));
204
210
  var criticStats = (...a) => loadCriticCommands().then((m) => m.criticStats(...a));
205
211
  var findingAction = (...a) => loadCriticCommands().then((m) => m.findingAction(...a));
@@ -214,7 +220,7 @@ var featureSpec = (...a) => loadFeatureCommands().then((m) => m.featureSpec(...a
214
220
  var featureSplit = (...a) => loadFeatureCommands().then((m) => m.featureSplit(...a));
215
221
  var featureSuggestLinks = (...a) => loadFeatureCommands().then((m) => m.featureSuggestLinks(...a));
216
222
  var featureTag = (...a) => loadFeatureCommands().then((m) => m.featureTag(...a));
217
- var loadChangeCommands = () => import("./chunk-PAOIMLTK.js");
223
+ var loadChangeCommands = () => import("./chunk-VXKPHJVK.js");
218
224
  var changeArchive = (...a) => loadChangeCommands().then((m) => m.changeArchive(...a));
219
225
  var changeConflicts = (...a) => loadChangeCommands().then((m) => m.changeConflicts(...a));
220
226
  var changeHandoff = (...a) => loadChangeCommands().then((m) => m.changeHandoff(...a));
@@ -224,33 +230,33 @@ var changeReturn = (...a) => loadChangeCommands().then((m) => m.changeReturn(...
224
230
  var changeStatus = (...a) => loadChangeCommands().then((m) => m.changeStatus(...a));
225
231
  var changeSync = (...a) => loadChangeCommands().then((m) => m.changeSync(...a));
226
232
  var changeLearn = (...a) => loadChangeCommands().then((m) => m.changeLearn(...a));
227
- var loadDialectCommands = () => import("./chunk-2OWSG6BK.js");
233
+ var loadDialectCommands = () => import("./chunk-TM5JJL6I.js");
228
234
  var dialectGrade = (...a) => loadDialectCommands().then((m) => m.dialectGrade(...a));
229
235
  var dialectKit = (...a) => loadDialectCommands().then((m) => m.dialectKit(...a));
230
236
  var dialectTree = (...a) => loadDialectCommands().then((m) => m.dialectTree(...a));
231
237
  var dialectNew = (...a) => loadDialectCommands().then((m) => m.dialectNew(...a));
232
238
  var dialectRun = (...a) => loadDialectCommands().then((m) => m.dialectRun(...a));
233
239
  var dialectTest = (...a) => loadDialectCommands().then((m) => m.dialectTest(...a));
234
- var loadPluginCommands = () => import("./chunk-IJ7TPOXQ.js");
240
+ var loadPluginCommands = () => import("./chunk-6L3OB44C.js");
235
241
  var pluginTest = (...a) => loadPluginCommands().then((m) => m.pluginTest(...a));
236
242
  var pluginPin = (...a) => loadPluginCommands().then((m) => m.pluginPin(...a));
237
243
  var pluginAdd = (...a) => loadPluginCommands().then((m) => m.pluginAdd(...a));
238
- var loadFrameworkCommands = () => import("./chunk-5IMZYLDW.js");
244
+ var loadFrameworkCommands = () => import("./chunk-QVPYGH7N.js");
239
245
  var frameworksCheck = (...a) => loadFrameworkCommands().then((m) => m.frameworksCheck(...a));
240
246
  var frameworksDiscover = (...a) => loadFrameworkCommands().then((m) => m.frameworksDiscover(...a));
241
247
  var frameworksKit = (...a) => loadFrameworkCommands().then((m) => m.frameworksKit(...a));
242
248
  var frameworksLearn = (...a) => loadFrameworkCommands().then((m) => m.frameworksLearn(...a));
243
249
  var frameworksSurvey = (...a) => loadFrameworkCommands().then((m) => m.frameworksSurvey(...a));
244
- var loadOnboardCommands = () => import("./chunk-Y2FMWQQB.js");
250
+ var loadOnboardCommands = () => import("./chunk-62CGLT7D.js");
245
251
  var onboardAccept = (...a) => loadOnboardCommands().then((m) => m.onboardAccept(...a));
246
252
  var onboardCheck = (...a) => loadOnboardCommands().then((m) => m.onboardCheck(...a));
247
253
  var onboardDraft = (...a) => loadOnboardCommands().then((m) => m.onboardDraft(...a));
248
254
  var scanReview = (...a) => loadOnboardCommands().then((m) => m.scanReview(...a));
249
255
  var scanSurvey = (...a) => loadOnboardCommands().then((m) => m.scanSurvey(...a));
250
- var loadRepoTypeCommands = () => import("./chunk-MI3GGF7V.js");
251
- var loadRepoCommands = () => import("./chunk-HMQXIFOL.js");
252
- var loadSpecCommands = () => import("./chunk-2DJUQ6CO.js");
253
- var loadEstateCommands = () => import("./chunk-PUGPT4Y6.js");
256
+ var loadRepoTypeCommands = () => import("./chunk-ZS2WLK7A.js");
257
+ var loadRepoCommands = () => import("./chunk-YLTOP7OS.js");
258
+ var loadSpecCommands = () => import("./chunk-QBA67JWK.js");
259
+ var loadEstateCommands = () => import("./chunk-FZTXX5Z2.js");
254
260
  var onboardEval = (...a) => loadOnboardCommands().then((m) => m.onboardEval(...a));
255
261
  var onboardFramework = (...a) => loadOnboardCommands().then((m) => m.onboardFramework(...a));
256
262
  var onboardFrameworkAccept = (...a) => loadOnboardCommands().then((m) => m.onboardFrameworkAccept(...a));
@@ -271,16 +277,16 @@ Usage:
271
277
  [--json] Print the result as JSON
272
278
  atticus scan survey <repo> Your assistant reads the repo and drafts its scan settings (folders to leave out, path prefixes, client base URLs); checked against the code [--attempts 3] [--force] [--max-tokens n]
273
279
  atticus scan verify <repo> Your assistant compares the code with the last scan: what it missed, what it has wrong, a fix for each; checked, kept in proposals/scan/ [--attempts 3] [--json] [--accept] [--max-tokens n]
274
- atticus map <repo> Read a repo into facts in batches that fit your model, one hand-off at a time, each answer verified at once; for an assistant without file tools (ADR 0124; /atticus-map reads it in one session) [--mode m] [--max-tokens n] [--next] [--resume run] [--force] [--dir path] [--commit sha] [--json]
275
- [--estimate] Say what the first read costs: the checkout, commit, facts file, source files, tokens, your assistant's tier and the batches at the limit; with housePrefixes in conventions.yaml, it warns of house packages the repo imports that no taught framework covers, with the frameworks learn command for each (ADR 0147)
280
+ atticus map <repo> Read a repo into facts in batches that fit your model, one hand-off at a time, each answer verified at once; for an assistant without file tools (ADR 0124; /atticus-map reads it in one session). Where runtime.yaml's reader is Copilot (or reads by a pasted line), it runs map --all's waiting loop for this one repo instead, --force reading it whole again (ADR 0170) [--mode m] [--max-tokens n] [--next] [--resume run] [--force] [--idle minutes] [--dir path] [--commit sha] [--json]
281
+ [--estimate] Say what the first read costs: the checkout, commit, facts file, source files, tokens, your assistant's tier and the batches at the limit; with housePrefixes in conventions.yaml, it warns of house packages the repo imports that no taught framework covers, with the frameworks learn command for each (ADR 0147); with --part n, names that part for the session to read whole (ADR 0170)
276
282
  [--gaps] Plan a second pass on what the last verify left (files no fact cites, skipped lines, spec operations, entries no flow follows) for a new chat, sized to the session: writes facts/<repo>.gaps.md (ADR 0157)
277
283
  [--copy] Print the next batch's prompt to paste into a chat
278
284
  [--answer <file>] With --copy: read the pasted answer back from a file (- for stdin)
279
285
  [--gaps --part n] With --gaps: only what is left of part n of the read plan, for a read that stopped in it (ADR 0161); /atticus-map <repo> --part n --gaps in a new chat reads it
280
286
  [--rules] Top up a repo read before reading rules added since (estate fresh says rules-changed): only the rule parts its read lacked, over the files they apply to, the facts kept listed by id; writes facts/<repo>.rules.md for a new chat (/atticus-map <repo> --rules), or reads it in batches with --mode or --handoff; once verify passes the read records the rules (ADR 0167)
281
- [--models reachable|all] Which model classes (DTOs, requests, responses, schemas) the read, its parts, --gaps and --rules take: those the entry points and calls reach, read right after them (the default), or all; those nothing reaches are left out, recorded in the read plan as notReached and said by --estimate and verify (ADR 0169)
287
+ [--models entries|reachable|all] Which model classes (DTOs, requests, responses, schemas) the read, its parts, --gaps and --rules take: those the entry points and calls reach, read right after them (the default), those the repo's own entry points reach (entries: the ones only an outbound client reaches are left for later, ADR 0170), or all; those left out are recorded in the read plan as notReached and said by --estimate and verify (ADR 0169)
282
288
  [--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)
283
- 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. Then the estate is joined once [--max-tokens n] [--stale | --gaps] [--models reachable|all] [--repos a,b] [--dry-run] [--mode model|hand-off] [--max-parts n] [--budget-tokens n] [--idle minutes]
289
+ 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]
284
290
  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]
285
291
  [--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
286
292
  [--verbose] With --write: list every record changed and flow written, not only the counts
@@ -326,7 +332,7 @@ Usage:
326
332
  atticus ask "<question>" Answer a plain question from the catalog, showing the query it ran
327
333
  atticus setup [--json] The setup checklist until the catalog is accepted, with a fix for each step
328
334
  atticus baseline Accept the as-is catalog as the baseline [--note text] [--site dir]
329
- atticus doctor [--json] Check this machine: Node, Git, OpenSpec, proxy, TLS, disk, port, assistant, and the tier your assistant reads a repo at
335
+ atticus doctor [--json] Check this machine: Node, Git, OpenSpec, proxy, TLS, disk, port, assistant, the tier your assistant reads a repo at, and (where runtime.yaml allows copilot-acp) the Copilot language server, its version and its sign-in, without running a session (ADR 0171)
330
336
  atticus doctor --counts [--json] How far the map has got, in counts and flags only (questions, target questions by the calls each covers, links by how joined, asked and unresolved calls by why the join left them, repos read and stale, facts, tokens reported): nothing named, safe to paste
331
337
  atticus probe Measure what your assistant can do here (open a file, write one, run a command), so the tier it reads a repo at is measured, not read off runtime.yaml; then /atticus-probe in the assistant (ADR 0124) [--assistant id] [--max-tokens n] [--json]
332
338
  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]
@@ -371,6 +377,7 @@ Usage:
371
377
  [--scope repo|repo-type] [--type <repo type>] [--by who] (--accept-proposal: the assistant's proposed answer, checked again, as yours)
372
378
  [--match <host pattern or /path/**>] (a target or hosts answer by rule: it covers every call that matches, the calls found later too)
373
379
  [--target <id> [--add-system vendor|internal] [--name "..."]] (where a call goes: any repo of the manifest, read or not, any system of the profile or a team in roles.yaml; a vendor or a team with no system yet is added to the profile with --add-system, a file change for review; ADR 0162)
380
+ atticus questions propose [<id>] /atticus-propose as a command (ADR 0171): under --mode copilot-acp (or runtime.yaml's default) Copilot proposes in a new session, unattended, writing only proposals/questions/, then the proposals are checked; otherwise it prints the line to paste. A person still accepts each one [--mode copilot-acp|hand-off]
374
381
  atticus questions proposed [--json] The answers /atticus-propose proposed for open questions, each citation checked (the file, the line, the quote on it); exits 1 while one doesn't check
375
382
  atticus questions sheet [--out <file>] Every open question in one YAML answer sheet, each with an empty answer:, to answer in one sitting
376
383
  atticus questions sheet --apply <file> [--by who] [--json] Answer each filled entry as you; skips blanks, refuses one whose question changed since
@@ -700,7 +707,7 @@ var OPTIONS = {
700
707
  gaps: { type: "boolean" },
701
708
  // ADR 0167: atticus map <repo> --rules, a top-up for reading rules added since a read.
702
709
  rules: { type: "boolean" },
703
- // ADR 0169: atticus map <repo> --models reachable|all.
710
+ // ADR 0169: atticus map <repo> --models reachable|all (ADR 0170: or entries).
704
711
  models: { type: "string" },
705
712
  // ADR 0161: atticus map --all.
706
713
  stale: { type: "boolean" },
@@ -935,9 +942,9 @@ async function dispatchCommand(argv, io) {
935
942
  if (!runsNoAi(group, command))
936
943
  await setUpAi();
937
944
  if (group === "next")
938
- return (await import("./chunk-LVQMS54L.js")).nextCommand(root, { json: values.json === true, all: values.all === true, queue: values.queue === true }, io);
945
+ return (await import("./chunk-6EHE7PX4.js")).nextCommand(root, { json: values.json === true, all: values.all === true, queue: values.queue === true }, io);
939
946
  if (values.handoff === true && (await import("./chunk-KQDZXGNR.js")).isHandoffStep(group, command))
940
- return (await import("./chunk-OKUYBXXI.js")).handoffStep(root, argv, io, dispatch);
947
+ return (await import("./chunk-JQKFZIQN.js")).handoffStep(root, argv, io, dispatch);
941
948
  const given = typeof values.by === "string" && values.by.trim() ? values.by : void 0;
942
949
  const person = !given && RECORDS_A_PERSON.has(group) ? await gitUser(root) : void 0;
943
950
  let warned = false;
@@ -952,7 +959,7 @@ async function dispatchCommand(argv, io) {
952
959
  };
953
960
  const repoIds = typeof values.repos === "string" ? values.repos.split(",").map((s) => s.trim()).filter(Boolean) : void 0;
954
961
  if (group === "change" && command === "needs" || group === "needs") {
955
- const handled = await (await import("./chunk-5C24MOXU.js")).needsCli(root, positionals, values, io, who);
962
+ const handled = await (await import("./chunk-SQKDHGAD.js")).needsCli(root, positionals, values, io, who);
956
963
  if (handled !== void 0)
957
964
  return handled;
958
965
  }
@@ -976,7 +983,7 @@ async function dispatchCommand(argv, io) {
976
983
  }, io, run);
977
984
  }
978
985
  if (group === "runs") {
979
- const m = await import("./chunk-3256EDLL.js");
986
+ const m = await import("./chunk-HOQB4B3F.js");
980
987
  if (command === "show") {
981
988
  const id = positionals[2];
982
989
  if (!id) {
@@ -997,7 +1004,7 @@ async function dispatchCommand(argv, io) {
997
1004
  }, io);
998
1005
  }
999
1006
  if (group === "history") {
1000
- const m = await import("./chunk-Z2BA4NNR.js");
1007
+ const m = await import("./chunk-DHWMEG7N.js");
1001
1008
  const text = (v) => typeof v === "string" && v.trim() ? v : void 0;
1002
1009
  if (command === "add") {
1003
1010
  if (process.stdin.isTTY) {
@@ -1041,7 +1048,7 @@ async function dispatchCommand(argv, io) {
1041
1048
  return handled;
1042
1049
  }
1043
1050
  if (group === "repo" && command === "rename") {
1044
- const { repoRename } = await import("./chunk-GU7PEYRC.js");
1051
+ const { repoRename } = await import("./chunk-IQLHTDHS.js");
1045
1052
  return repoRename(root, positionals[2], positionals[3], io);
1046
1053
  }
1047
1054
  if (group === "repo" && (command === "add" || command === "describe")) {
@@ -1118,11 +1125,11 @@ async function dispatchCommand(argv, io) {
1118
1125
  }
1119
1126
  }
1120
1127
  if (group === "estate" && command === "fresh") {
1121
- const m = await import("./chunk-S4USA5WC.js");
1128
+ const m = await import("./chunk-YBWUVSAH.js");
1122
1129
  return m.estateFresh(root, { json: values.json === true, all: values.all === true }, io);
1123
1130
  }
1124
1131
  if (group === "estate" && command === "shared") {
1125
- const m = await import("./chunk-G2K2D6XS.js");
1132
+ const m = await import("./chunk-KLXAX2YW.js");
1126
1133
  const json2 = values.json === true;
1127
1134
  const text = (v) => typeof v === "string" && v.trim() ? v : void 0;
1128
1135
  if (arg === "import")
@@ -1145,11 +1152,11 @@ async function dispatchCommand(argv, io) {
1145
1152
  return 2;
1146
1153
  }
1147
1154
  if (group === "estate" && command === "contracts") {
1148
- const m = await import("./chunk-TV6ECMN3.js");
1155
+ const m = await import("./chunk-ETOIM5LK.js");
1149
1156
  return m.joinContracts(root, { json: values.json === true }, io);
1150
1157
  }
1151
1158
  if (group === "estate" && command === "measure") {
1152
- const m = await import("./chunk-QC24Z5JU.js");
1159
+ const m = await import("./chunk-VFQARMOE.js");
1153
1160
  return m.joinMeasure(root, arg, { json: values.json === true }, io);
1154
1161
  }
1155
1162
  if (group === "estate" && (command === "join" || command === "flow" || command === "lineage")) {
@@ -1166,7 +1173,7 @@ async function dispatchCommand(argv, io) {
1166
1173
  return command === "flow" ? m.estateFlowCommand(root, arg, o, io) : m.estateLineage(root, arg, field, o, io);
1167
1174
  }
1168
1175
  if (group === "spec" && (command === "seed" || command === "accept")) {
1169
- const m = await import("./chunk-U43G5EUN.js");
1176
+ const m = await import("./chunk-DN4FULFM.js");
1170
1177
  if (!arg) {
1171
1178
  io.err(command === "seed" ? "Usage: atticus spec seed <repo> [--json]" : "Usage: atticus spec accept <repo> [--by you]");
1172
1179
  return 2;
@@ -1210,43 +1217,20 @@ async function dispatchCommand(argv, io) {
1210
1217
  io.err("Usage: atticus map render <repo> [--json]");
1211
1218
  return 2;
1212
1219
  }
1213
- const { mapRenderCommand } = await import("./chunk-CUD4I2U6.js");
1220
+ const { mapRenderCommand } = await import("./chunk-T7LGRFVD.js");
1214
1221
  return mapRenderCommand(root, repo, { json: values.json === true }, io);
1215
1222
  }
1216
- const models = values.models === "reachable" || values.models === "all" ? values.models : void 0;
1223
+ const models = values.models === "entries" || values.models === "reachable" || values.models === "all" ? values.models : void 0;
1217
1224
  if (group === "map" && values.models !== void 0 && !models) {
1218
- io.err(`--models is reachable or all (got ${String(values.models)}).`);
1225
+ io.err(`--models is entries, reachable or all (got ${String(values.models)}).`);
1219
1226
  return 2;
1220
1227
  }
1221
- if (group === "map" && !command && values.all === true) {
1222
- const text = (v) => typeof v === "string" ? v : void 0;
1223
- const count = (flag) => {
1224
- const raw = text(values[flag]);
1225
- if (raw === void 0)
1226
- return void 0;
1227
- const n = Number(raw);
1228
- return Number.isInteger(n) && n > 0 ? n : NaN;
1229
- };
1230
- const numbers = {
1231
- maxParts: count("max-parts"),
1232
- budgetTokens: count("budget-tokens"),
1233
- idle: count("idle")
1234
- };
1235
- for (const [k, v] of Object.entries(numbers))
1236
- if (Number.isNaN(v)) {
1237
- io.err(`--${k === "maxParts" ? "max-parts" : k === "budgetTokens" ? "budget-tokens" : "idle"} is a whole number above 0.`);
1238
- return 2;
1239
- }
1240
- const asked = text(values.mode);
1241
- if (asked && !["model", "hand-off", "copilot"].includes(asked)) {
1242
- io.err("atticus map --all takes --mode model or --mode hand-off (Copilot Chat, a line pasted per part).");
1243
- return 2;
1244
- }
1245
- const { mapAllCommand } = await import("./chunk-P7SONIEO.js");
1228
+ const runMapAll = async (o) => {
1229
+ const { mapAllCommand } = await import("./chunk-CFIDOXSH.js");
1246
1230
  const { copyToClipboard } = await import("./chunk-S5LSDXV4.js");
1247
1231
  const typed = [];
1248
1232
  const { createInterface } = await import("node:readline");
1249
- const rl = process.stdin.readable ? createInterface({ input: process.stdin, terminal: false }) : void 0;
1233
+ const rl = process.stdin.readable && !o.dryRun ? createInterface({ input: process.stdin, terminal: false }) : void 0;
1250
1234
  rl?.on("line", (l) => typed.push(l));
1251
1235
  const ac = new AbortController();
1252
1236
  const onInt = () => {
@@ -1257,24 +1241,13 @@ async function dispatchCommand(argv, io) {
1257
1241
  };
1258
1242
  process.on("SIGINT", onInt);
1259
1243
  try {
1260
- return await mapAllCommand(root, {
1261
- ...text(values.repos) ? {
1262
- repos: text(values.repos).split(",").map((x) => x.trim()).filter(Boolean)
1263
- } : {},
1264
- stale: values.stale === true,
1265
- gaps: values.gaps === true,
1266
- dryRun: values["dry-run"] === true,
1267
- json: values.json === true,
1268
- ...asked ? { mode: asked === "model" ? "model" : "copilot" } : {},
1269
- ...numbers.maxParts ? { maxParts: numbers.maxParts } : {},
1270
- ...numbers.budgetTokens ? { budgetTokens: numbers.budgetTokens } : {},
1271
- ...numbers.idle ? { idleMinutes: numbers.idle } : {},
1272
- ...models ? { models } : {}
1273
- }, io, {
1244
+ return await mapAllCommand(root, o, io, {
1274
1245
  clipboard: copyToClipboard,
1275
1246
  input: { take: () => typed.shift() },
1276
1247
  signal: ac.signal,
1277
- makeRuntime: async () => (await runtimeForCli(root, { mode: "model", handoffValidate: async () => [] })).runtime
1248
+ makeRuntime: async () => (await runtimeForCli(root, { mode: "model", handoffValidate: async () => [] })).runtime,
1249
+ // ADR 0171: Copilot driven through its Agent Client Protocol, one new session a part.
1250
+ makeAcp: async () => (await import("./chunk-ECGTN32T.js")).acpStepRunner(root)
1278
1251
  });
1279
1252
  } catch (e) {
1280
1253
  if (e instanceof (await loadAi()).RuntimeConfigError) {
@@ -1286,16 +1259,58 @@ async function dispatchCommand(argv, io) {
1286
1259
  process.off("SIGINT", onInt);
1287
1260
  rl?.close();
1288
1261
  }
1262
+ };
1263
+ if (group === "map" && !command && values.all === true) {
1264
+ const text = (v) => typeof v === "string" ? v : void 0;
1265
+ const count = (flag) => {
1266
+ const raw = text(values[flag]);
1267
+ if (raw === void 0)
1268
+ return void 0;
1269
+ const n = Number(raw);
1270
+ return Number.isInteger(n) && n > 0 ? n : NaN;
1271
+ };
1272
+ const numbers = {
1273
+ maxParts: count("max-parts"),
1274
+ budgetTokens: count("budget-tokens"),
1275
+ idle: count("idle")
1276
+ };
1277
+ for (const [k, v] of Object.entries(numbers))
1278
+ if (Number.isNaN(v)) {
1279
+ io.err(`--${k === "maxParts" ? "max-parts" : k === "budgetTokens" ? "budget-tokens" : "idle"} is a whole number above 0.`);
1280
+ return 2;
1281
+ }
1282
+ const asked = text(values.mode);
1283
+ if (asked && !["model", "hand-off", "copilot", "copilot-acp"].includes(asked)) {
1284
+ io.err("atticus map --all takes --mode model, --mode hand-off (Copilot Chat, a line pasted per part) or --mode copilot-acp (Copilot driven unattended, ADR 0171).");
1285
+ return 2;
1286
+ }
1287
+ return runMapAll({
1288
+ ...text(values.repos) ? {
1289
+ repos: text(values.repos).split(",").map((x) => x.trim()).filter(Boolean)
1290
+ } : {},
1291
+ stale: values.stale === true,
1292
+ gaps: values.gaps === true,
1293
+ force: values.force === true,
1294
+ dryRun: values["dry-run"] === true,
1295
+ json: values.json === true,
1296
+ ...asked ? {
1297
+ mode: asked === "model" ? "model" : asked === "copilot-acp" ? "copilot-acp" : "copilot"
1298
+ } : {},
1299
+ ...numbers.maxParts ? { maxParts: numbers.maxParts } : {},
1300
+ ...numbers.budgetTokens ? { budgetTokens: numbers.budgetTokens } : {},
1301
+ ...numbers.idle ? { idleMinutes: numbers.idle } : {},
1302
+ ...models ? { models } : {}
1303
+ });
1289
1304
  }
1290
1305
  if (group === "map") {
1291
1306
  const repo = command;
1292
1307
  if (!repo) {
1293
- io.err("Usage: atticus map <repo> [--estimate | --gaps [--part n] | --rules] [--models reachable|all] [--handoff | --copy [--answer <file>] | --mode m] [--next] [--max-tokens n] [--force], or atticus map --all [--stale | --gaps] [--models reachable|all] [--repos a,b] [--dry-run] [--max-tokens n]");
1308
+ io.err("Usage: atticus map <repo> [--estimate [--part n] | --gaps [--part n] | --rules] [--models entries|reachable|all] [--handoff | --copy [--answer <file>] | --mode m] [--next] [--max-tokens n] [--force], or atticus map --all [--stale | --gaps | --force] [--models entries|reachable|all] [--repos a,b] [--dry-run] [--max-tokens n] [--idle minutes]");
1294
1309
  return 2;
1295
1310
  }
1296
1311
  const text = (v) => typeof v === "string" ? v : void 0;
1297
1312
  if (values.spent !== void 0 || values.sessions !== void 0) {
1298
- const { mapSpent } = await import("./chunk-NZY72PGJ.js");
1313
+ const { mapSpent } = await import("./chunk-MSAXKU4C.js");
1299
1314
  return mapSpent(root, repo, {
1300
1315
  ...text(values.spent) !== void 0 ? { spent: text(values.spent) } : {},
1301
1316
  ...text(values.sessions) !== void 0 ? { sessions: text(values.sessions) } : {},
@@ -1303,7 +1318,7 @@ async function dispatchCommand(argv, io) {
1303
1318
  ...text(values.by) ? { by: text(values.by) } : {}
1304
1319
  }, io);
1305
1320
  }
1306
- const { mapCommand } = await import("./chunk-DDOLWHIM.js");
1321
+ const { mapCommand } = await import("./chunk-USPTS2HZ.js");
1307
1322
  const o = {
1308
1323
  ...text(values.dir) ? { dir: resolve(text(values.dir)) } : {},
1309
1324
  ...text(values.commit) ? { commit: text(values.commit) } : {},
@@ -1312,21 +1327,57 @@ async function dispatchCommand(argv, io) {
1312
1327
  estimate: values.estimate === true,
1313
1328
  gaps: values.gaps === true,
1314
1329
  rules: values.rules === true,
1315
- // ADR 0161: with --gaps, the rest of one part of the read plan.
1316
- ...values.gaps === true && Number.isInteger(Number(text(values.part))) && Number(text(values.part)) > 0 ? { part: Number(text(values.part)) } : {},
1330
+ // ADR 0161: with --gaps, the rest of one part of the read plan; ADR 0170: with --estimate
1331
+ // (as /atticus-map <repo> --part n runs it), that part whole.
1332
+ ...(values.gaps === true || values.estimate === true) && Number.isInteger(Number(text(values.part))) && Number(text(values.part)) > 0 ? { part: Number(text(values.part)) } : {},
1317
1333
  next: values.next === true,
1318
1334
  force: values.force === true,
1319
1335
  copy: values.copy === true,
1320
1336
  json: values.json === true,
1321
1337
  ...models ? { models } : {}
1322
1338
  };
1339
+ const acpAsked = text(values.mode) === "copilot-acp";
1340
+ if (!o.estimate && !o.copy && o.answer === void 0 && !o.next && o.resume === void 0) {
1341
+ const { copilotAcpByDefault } = await import("./chunk-ECGTN32T.js");
1342
+ const core = await import("./chunk-GT6BMFHZ.js");
1343
+ const op = await core.loadOrgPack(core.orgPackDirOf(root)).catch(() => void 0);
1344
+ if (acpAsked || !text(values.mode) && op && copilotAcpByDefault(op) && !o.json) {
1345
+ const idle = Number(text(values.idle));
1346
+ return runMapAll({
1347
+ repos: [repo],
1348
+ mode: "copilot-acp",
1349
+ force: o.force,
1350
+ gaps: o.gaps,
1351
+ dryRun: values["dry-run"] === true,
1352
+ ...Number.isInteger(idle) && idle > 0 ? { idleMinutes: idle } : {},
1353
+ ...models ? { models } : {},
1354
+ resumeAs: `atticus map ${repo}${o.gaps ? " --gaps" : ""}${o.force ? " --force" : ""} --mode copilot-acp`
1355
+ });
1356
+ }
1357
+ }
1323
1358
  if (o.estimate || o.gaps || o.rules && !o.copy && !text(values.mode))
1324
1359
  return mapCommand(root, repo, o, io);
1360
+ const starting = !o.next && o.resume === void 0 && !o.copy && o.answer === void 0 && !text(values.mode);
1361
+ const { mapReader } = await import("./chunk-CFIDOXSH.js");
1362
+ const reader = await mapReader(root);
1363
+ if (starting && !o.json && !o.dir && !o.commit && reader.loop) {
1364
+ const idle = Number(text(values.idle));
1365
+ return runMapAll({
1366
+ repos: [repo],
1367
+ force: o.force,
1368
+ dryRun: values["dry-run"] === true,
1369
+ ...Number.isInteger(idle) && idle > 0 ? { idleMinutes: idle } : {},
1370
+ ...models ? { models } : {},
1371
+ resumeAs: `atticus map ${repo}${o.force ? " --force" : ""}`
1372
+ });
1373
+ }
1325
1374
  try {
1326
1375
  const { runtime } = await runtimeForCli(root, {
1327
1376
  ...o.copy ? { mode: "hand-off" } : text(values.mode) ? { mode: text(values.mode) } : {},
1328
1377
  handoffValidate: async () => []
1329
1378
  });
1379
+ if ((starting || o.copy && o.answer === void 0 && !o.next) && runtime.kind === "hand-off")
1380
+ io.out(`runtime.yaml says ${reader.name}; if you use Copilot, run atticus map --all --repos ${repo} (it waits and copies each line).`);
1330
1381
  return await mapCommand(root, repo, o, io, { runtime });
1331
1382
  } catch (e) {
1332
1383
  if (e instanceof (await loadAi()).RuntimeConfigError) {
@@ -1358,7 +1409,7 @@ async function dispatchCommand(argv, io) {
1358
1409
  const repo = v.positionals[1];
1359
1410
  const text = (x) => typeof x === "string" ? x : void 0;
1360
1411
  if (repo === "audit" && (v.positionals[2] || v.values.report === true)) {
1361
- const { auditCommand } = await import("./chunk-VC4JMXM5.js");
1412
+ const { auditCommand } = await import("./chunk-A7URZ77Y.js");
1362
1413
  const ids = (x) => text(x)?.split(",").map((y) => y.trim()).filter(Boolean);
1363
1414
  const size = Number(text(v.values.size));
1364
1415
  const interactive = process.stdin.isTTY && v.values.json !== true;
@@ -1387,7 +1438,7 @@ async function dispatchCommand(argv, io) {
1387
1438
  }
1388
1439
  }
1389
1440
  if (!repo && v.values.all === true) {
1390
- const { verifyAllCommand } = await import("./chunk-7UXSS23C.js");
1441
+ const { verifyAllCommand } = await import("./chunk-UDENIR6E.js");
1391
1442
  return verifyAllCommand(text(v.values.root) ? resolve(text(v.values.root)) : root, {
1392
1443
  ...v.values.write === true ? { write: true } : {},
1393
1444
  ...v.values.verbose === true ? { verbose: true } : {}
@@ -1397,7 +1448,7 @@ async function dispatchCommand(argv, io) {
1397
1448
  io.err("Usage: atticus verify <repo> [--write [--verbose]] [--dir path] [--commit sha] [--routed a,b] [--skipped] [--json], or atticus verify --all [--write]");
1398
1449
  return 2;
1399
1450
  }
1400
- const { verifyCommand } = await import("./chunk-7UXSS23C.js");
1451
+ const { verifyCommand } = await import("./chunk-UDENIR6E.js");
1401
1452
  return verifyCommand(
1402
1453
  // The first reading took --write's next word as its value, so a --root right after it
1403
1454
  // was lost; this reading has --write as a switch.
@@ -1492,7 +1543,7 @@ async function dispatchCommand(argv, io) {
1492
1543
  if (group === "cites") {
1493
1544
  const given2 = (v) => typeof v === "string" && v.trim() ? v.trim() : void 0;
1494
1545
  const [repo, path, file] = [given2(values.repo), given2(values.path), given2(values.file)];
1495
- return (await import("./chunk-3PLE3ZQ5.js")).citesCli(root, {
1546
+ return (await import("./chunk-LZDK3V3W.js")).citesCli(root, {
1496
1547
  ...repo ? { repo } : {},
1497
1548
  ...path ? { path } : {},
1498
1549
  ...file ? { file: resolve(file) } : {},
@@ -1500,15 +1551,15 @@ async function dispatchCommand(argv, io) {
1500
1551
  }, io);
1501
1552
  }
1502
1553
  if (group === "watch")
1503
- return (await import("./chunk-7MASAGFE.js")).watchCommand(root, command, { off: values.off === true, json: values.json === true }, io);
1554
+ return (await import("./chunk-PFUX5AVG.js")).watchCommand(root, command, { off: values.off === true, json: values.json === true }, io);
1504
1555
  if (group === "setup" && !command)
1505
1556
  return setupCommand(root, { json: values.json === true }, io);
1506
1557
  if (group === "doctor" && values.counts === true)
1507
- return (await import("./chunk-UQUDITWL.js")).doctorCountsCommand(root, { json: values.json === true }, io);
1558
+ return (await import("./chunk-5EOJSQM3.js")).doctorCountsCommand(root, { json: values.json === true }, io);
1508
1559
  if (group === "doctor")
1509
1560
  return doctorCommand(root, { json: values.json === true }, io);
1510
1561
  if (group === "probe") {
1511
- const { probeCommand, probeAnswerCommand } = await import("./chunk-VAL7HAIR.js");
1562
+ const { probeCommand, probeAnswerCommand } = await import("./chunk-NEYVK52V.js");
1512
1563
  const max = typeof values["max-tokens"] === "string" ? Number(values["max-tokens"]) : void 0;
1513
1564
  const json2 = values.json === true;
1514
1565
  if (command === "answer")
@@ -1561,7 +1612,7 @@ async function dispatchCommand(argv, io) {
1561
1612
  return askCommand(root, command, { json: values.json === true }, io);
1562
1613
  }
1563
1614
  if (group === "context") {
1564
- const m = await import("./chunk-6ROZRBWH.js");
1615
+ const m = await import("./chunk-6VLNXNEM.js");
1565
1616
  const target = positionals[2];
1566
1617
  const csv = (v) => typeof v === "string" ? v.split(",").map((k) => k.trim()).filter(Boolean) : void 0;
1567
1618
  if (command === "tools")
@@ -1676,7 +1727,7 @@ async function dispatchCommand(argv, io) {
1676
1727
  if (group === "index" && command === "rebuild")
1677
1728
  return indexRebuild(root, io);
1678
1729
  if (group === "index" && command === "embed")
1679
- return (await import("./chunk-EE3UNC44.js")).indexEmbed(root, io);
1730
+ return (await import("./chunk-U7X3CZIL.js")).indexEmbed(root, io);
1680
1731
  if (group === "alias") {
1681
1732
  const target = positionals[2];
1682
1733
  if (!command || !target) {
@@ -1746,7 +1797,7 @@ async function dispatchCommand(argv, io) {
1746
1797
  if (group === "eval" && command === "report")
1747
1798
  return evalReport(root, { json }, io);
1748
1799
  if (group === "bench" && (command === "facts" || command === "stories")) {
1749
- const m = await import("./chunk-WBOVB3XR.js");
1800
+ const m = await import("./chunk-IDJJ5MDV.js");
1750
1801
  return m.benchScoreCli(command, arg, values, io, root);
1751
1802
  }
1752
1803
  if (group === "bench" && (command === "fetch" || command === "run" || command === "survey" || command === "verify")) {
@@ -1798,7 +1849,7 @@ async function dispatchCommand(argv, io) {
1798
1849
  }, io);
1799
1850
  }
1800
1851
  if (group === "secret") {
1801
- const { secretCommand } = await import("./chunk-QXGOEP44.js");
1852
+ const { secretCommand } = await import("./chunk-YVHUKQ5U.js");
1802
1853
  return secretCommand(positionals.slice(1), io);
1803
1854
  }
1804
1855
  if (group === "conformance") {
@@ -1993,9 +2044,9 @@ async function dispatchCommand(argv, io) {
1993
2044
  }, io);
1994
2045
  }
1995
2046
  if (group === "task" && command === "context")
1996
- return (await import("./chunk-DKGWE5ZL.js")).taskContextCli(root, arg, positionals[3], { json, markdown: values.markdown === true }, io);
2047
+ return (await import("./chunk-JI3QP66O.js")).taskContextCli(root, arg, positionals[3], { json, markdown: values.markdown === true }, io);
1997
2048
  if (group === "change" && command === "attach")
1998
- return (await import("./chunk-DKGWE5ZL.js")).changeAttachCli(root, arg, positionals.slice(3), {
2049
+ return (await import("./chunk-JI3QP66O.js")).changeAttachCli(root, arg, positionals.slice(3), {
1999
2050
  by: who(),
2000
2051
  json,
2001
2052
  ...typeof values.replaces === "string" && values.replaces.trim() ? { replaces: values.replaces.trim() } : {},
@@ -2122,7 +2173,7 @@ async function dispatchCommand(argv, io) {
2122
2173
  io.err('finding needs a change, a finding id and an action, for example: atticus finding add-transfer-limit f-1 not-relevant --reason "..."');
2123
2174
  return 2;
2124
2175
  }
2125
- const session = given ? void 0 : (await import("./chunk-7UKETVPW.js")).assistantSession(process.env);
2176
+ const session = given ? void 0 : (await import("./chunk-46VGJBRS.js")).assistantSession(process.env);
2126
2177
  if (session)
2127
2178
  io.err(`Recorded as ${session.by}: ${session.because}.`);
2128
2179
  return findingAction(root, command, findingId, action, {
@@ -2149,11 +2200,11 @@ async function dispatchCommand(argv, io) {
2149
2200
  ...str(values.impact) ? { impact: str(values.impact) } : {}
2150
2201
  }, io);
2151
2202
  if (command === "impact") {
2152
- const { changeImpactCli } = await import("./chunk-7H5HYERS.js");
2203
+ const { changeImpactCli } = await import("./chunk-WNEAZYEK.js");
2153
2204
  return changeImpactCli(root, arg, { json }, io);
2154
2205
  }
2155
2206
  if (command === "similar") {
2156
- const { changeSimilarCli } = await import("./chunk-JS3DJH3Q.js");
2207
+ const { changeSimilarCli } = await import("./chunk-JCGIAHCX.js");
2157
2208
  const limit = Number(str(values.limit) ?? 5);
2158
2209
  return changeSimilarCli(root, arg, {
2159
2210
  json,
@@ -2164,7 +2215,7 @@ async function dispatchCommand(argv, io) {
2164
2215
  if (command === "list")
2165
2216
  return changeList(root, { json }, io);
2166
2217
  if (command === "export") {
2167
- const { changeExportCommand } = await import("./chunk-FYWA2CPF.js");
2218
+ const { changeExportCommand } = await import("./chunk-NVDAZOVS.js");
2168
2219
  const named = positionals[3];
2169
2220
  const fmt = str(values.format) ?? (named === "ado" || named === "jira" ? named : void 0);
2170
2221
  return changeExportCommand(root, arg, {
@@ -2181,7 +2232,7 @@ async function dispatchCommand(argv, io) {
2181
2232
  io.err("change conform needs a change id, for example: atticus change conform add-transfer-limit");
2182
2233
  return 2;
2183
2234
  }
2184
- const { changeConformCommand } = await import("./chunk-IZF2VJU5.js");
2235
+ const { changeConformCommand } = await import("./chunk-VBPHSKJI.js");
2185
2236
  return changeConformCommand(root, arg, {
2186
2237
  ...str(values.repo) ? { repo: str(values.repo) } : {},
2187
2238
  ...str(values.ref) ? { ref: str(values.ref) } : {},
@@ -2195,7 +2246,7 @@ async function dispatchCommand(argv, io) {
2195
2246
  io.err("change estimate needs a change id, for example: atticus change estimate add-transfer-limit");
2196
2247
  return 2;
2197
2248
  }
2198
- const { changeEstimateCommand } = await import("./chunk-JOG6LBOP.js");
2249
+ const { changeEstimateCommand } = await import("./chunk-FODNRZC7.js");
2199
2250
  return changeEstimateCommand(root, arg, { json }, io);
2200
2251
  }
2201
2252
  if (command === "map") {
@@ -2203,7 +2254,7 @@ async function dispatchCommand(argv, io) {
2203
2254
  io.err("change map needs a change id, for example: atticus change map add-transfer-limit");
2204
2255
  return 2;
2205
2256
  }
2206
- const { changeMapCommand } = await import("./chunk-XVQGT4SL.js");
2257
+ const { changeMapCommand } = await import("./chunk-2HFVFEBT.js");
2207
2258
  return changeMapCommand(root, arg, { ...str(values.format) ? { format: str(values.format) } : {}, json }, io);
2208
2259
  }
2209
2260
  if (command === "learn")
@@ -2223,7 +2274,7 @@ async function dispatchCommand(argv, io) {
2223
2274
  if (command === "status")
2224
2275
  return changeStatus(root, arg, { json }, io);
2225
2276
  if (command === "knowledge") {
2226
- const { changeKnowledge } = await import("./chunk-U2SGLXFR.js");
2277
+ const { changeKnowledge } = await import("./chunk-3ZYGPIOB.js");
2227
2278
  return changeKnowledge(root, arg, {
2228
2279
  ...str(values.confirm) ? { confirm: str(values.confirm) } : {},
2229
2280
  ...str(values.exclude) ? { exclude: str(values.exclude) } : {},
@@ -2257,7 +2308,7 @@ async function dispatchCommand(argv, io) {
2257
2308
  if (group === "intake" && command === "list")
2258
2309
  return intakeList(root, io, { json });
2259
2310
  if (group === "intake" && command === "traffic") {
2260
- const { intakeTraffic } = await import("./chunk-5R2EWR47.js");
2311
+ const { intakeTraffic } = await import("./chunk-4NMF7XDM.js");
2261
2312
  return intakeTraffic(root, positionals[2] ?? "", {
2262
2313
  ...str(values.source) ? { source: str(values.source) } : {},
2263
2314
  ...str(values.from) ? { from: str(values.from) } : {},
@@ -2266,7 +2317,7 @@ async function dispatchCommand(argv, io) {
2266
2317
  }, io);
2267
2318
  }
2268
2319
  if (group === "intake" && command === "impact") {
2269
- const { intakeImpact } = await import("./chunk-GIPQHVJF.js");
2320
+ const { intakeImpact } = await import("./chunk-YZGYUMWJ.js");
2270
2321
  return intakeImpact(root, positionals[2] ?? "", { json }, io);
2271
2322
  }
2272
2323
  if (group === "triage" && !command)
@@ -2521,7 +2572,7 @@ async function dispatchCommand(argv, io) {
2521
2572
  return sourcesRefreshCommand(root, { json }, io);
2522
2573
  if (group === "sources" && command === "estimate") {
2523
2574
  const bt = str(values["batch-tokens"]);
2524
- return (await import("./chunk-3JLTN3Y7.js")).sourcesEstimate(root, {
2575
+ return (await import("./chunk-KK4I5NNI.js")).sourcesEstimate(root, {
2525
2576
  ...str(values.source) ? { source: str(values.source) } : {},
2526
2577
  ...bt && Number(bt) > 0 ? { batchTokens: Number(bt) } : {},
2527
2578
  ...values.full === true ? { full: true } : {},
@@ -2529,7 +2580,7 @@ async function dispatchCommand(argv, io) {
2529
2580
  }, io);
2530
2581
  }
2531
2582
  if (group === "standards")
2532
- return (await import("./chunk-3JLTN3Y7.js")).standardsCli(root, command, values, io);
2583
+ return (await import("./chunk-KK4I5NNI.js")).standardsCli(root, command, values, io);
2533
2584
  if (group === "sources" && command === "sync")
2534
2585
  return sourcesSync(root, io, {
2535
2586
  json: values.json === true,
@@ -2541,6 +2592,21 @@ async function dispatchCommand(argv, io) {
2541
2592
  return coverageCommand(root, io, { json: values.json === true });
2542
2593
  if (group === "domain" && command === "profile")
2543
2594
  return domainProfileCommand(root, arg, str(values.out) ? { out: str(values.out) } : {}, io);
2595
+ if (group === "questions" && command === "propose") {
2596
+ const { questionsProposeCommand } = await import("./chunk-ECGTN32T.js");
2597
+ const ac = new AbortController();
2598
+ const onInt = () => ac.abort();
2599
+ process.on("SIGINT", onInt);
2600
+ try {
2601
+ return await questionsProposeCommand(root, {
2602
+ ...arg ? { id: arg } : {},
2603
+ ...typeof values.mode === "string" ? { mode: values.mode } : {},
2604
+ signal: ac.signal
2605
+ }, io, () => questionsFiles(root, ["questions", "proposed", "--root", root], io));
2606
+ } finally {
2607
+ process.off("SIGINT", onInt);
2608
+ }
2609
+ }
2544
2610
  if (group === "questions" && command)
2545
2611
  return questionsFiles(root, argv, io);
2546
2612
  if (group === "questions")
@@ -2548,19 +2614,19 @@ async function dispatchCommand(argv, io) {
2548
2614
  if (group === "reconcile")
2549
2615
  return reconcileCommand(root, positionals.slice(1), { json: values.json === true }, io);
2550
2616
  if (group === "orgpack" && (command === "draft" || command === "accept"))
2551
- return (await import("./chunk-2A24BNRZ.js")).orgPackDraftCli(root, command, arg, values, io);
2617
+ return (await import("./chunk-V4B44XRC.js")).orgPackDraftCli(root, command, arg, values, io);
2552
2618
  if (group === "orgpack" && command === "owner")
2553
- return (await import("./chunk-WM4N2L4T.js")).orgPackOwnerCli(root, arg, io);
2619
+ return (await import("./chunk-7YXDLJCV.js")).orgPackOwnerCli(root, arg, io);
2554
2620
  if (group === "orgpack" && command === "validate")
2555
- return orgPackValidate(arg ? resolve(arg) : join((await import("./chunk-OJAJXU65.js")).orgPackDirOf(root)), io);
2621
+ return orgPackValidate(arg ? resolve(arg) : join((await import("./chunk-GT6BMFHZ.js")).orgPackDirOf(root)), io);
2556
2622
  if (group === "stage" && command === "check")
2557
- return (await import("./chunk-HK2CF6KQ.js")).stageCheck(root, arg, positionals[3], positionals[4], io);
2623
+ return (await import("./chunk-U4WFATJZ.js")).stageCheck(root, arg, positionals[3], positionals[4], io);
2558
2624
  if (group === "handoff" && command === "done") {
2559
2625
  if (!arg) {
2560
2626
  io.err("handoff done needs the run id from the prompt, for example: atticus handoff done run-20261018060000-0001");
2561
2627
  return 2;
2562
2628
  }
2563
- if (await (await import("./chunk-FNVY656P.js")).isTaskRun(root, arg))
2629
+ if (await (await import("./chunk-PJ7CW2B5.js")).isTaskRun(root, arg))
2564
2630
  return taskHandoff(root, arg, {
2565
2631
  by: who(),
2566
2632
  approve: values.approve === true,
@@ -2573,7 +2639,7 @@ async function dispatchCommand(argv, io) {
2573
2639
  if (group === "openspec" && command === "check")
2574
2640
  return openspecCheck(root, io);
2575
2641
  if (group === "openspec") {
2576
- const { openspecRun } = await import("./chunk-VTMIRRIZ.js");
2642
+ const { openspecRun } = await import("./chunk-PAYFWXVA.js");
2577
2643
  return openspecRun(root, openspecArgsOf(argv), io);
2578
2644
  }
2579
2645
  if (group === "workspace" && command === "sync")