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

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 (221) hide show
  1. package/dist/bin.js +3 -3
  2. package/dist/{chunk-JQG4VO47.js → chunk-24ARIOB7.js} +1 -1
  3. package/dist/{chunk-MI3GGF7V.js → chunk-2DFYLFBL.js} +17 -17
  4. package/dist/{chunk-VC4JMXM5.js → chunk-2IFPJYBT.js} +19 -19
  5. package/dist/{chunk-Y6LFFSRV.js → chunk-2L5XV7QK.js} +10 -10
  6. package/dist/{chunk-BHHIHENP.js → chunk-2UPMPTNJ.js} +4 -4
  7. package/dist/{chunk-ML3HOWPI.js → chunk-2Y4EWUDF.js} +4 -4
  8. package/dist/{chunk-2A24BNRZ.js → chunk-34COONQ2.js} +7 -7
  9. package/dist/{chunk-JS3DJH3Q.js → chunk-35FTAQDX.js} +4 -4
  10. package/dist/{chunk-FF5Q7ONT.js → chunk-3BZR2M2H.js} +167 -146
  11. package/dist/{chunk-DONCF2XC.js → chunk-3DMXBIDW.js} +3 -3
  12. package/dist/{chunk-GUNBOZ75.js → chunk-3ENG33LV.js} +3 -3
  13. package/dist/{chunk-36CTZGPH.js → chunk-3LWQYHID.js} +7 -7
  14. package/dist/{chunk-6ROZRBWH.js → chunk-3RQK5AWY.js} +4 -4
  15. package/dist/{chunk-34BCKMBS.js → chunk-4CPOXPS4.js} +3 -3
  16. package/dist/{chunk-FP6GJJY7.js → chunk-4DRSRU4U.js} +22 -22
  17. package/dist/{chunk-QC24Z5JU.js → chunk-4M3OQM5V.js} +10 -10
  18. package/dist/{chunk-DW4BM73R.js → chunk-4Q6HX5GQ.js} +1 -1
  19. package/dist/{chunk-CUD4I2U6.js → chunk-5BDBPV6V.js} +28 -28
  20. package/dist/{chunk-XRDYEEDE.js → chunk-5BVNNYU7.js} +1 -1
  21. package/dist/{chunk-PUGPT4Y6.js → chunk-5CIFSHTS.js} +17 -17
  22. package/dist/{chunk-OJAJXU65.js → chunk-5P766RED.js} +1 -1
  23. package/dist/{chunk-DX5H5YKM.js → chunk-5VZJX75P.js} +11 -11
  24. package/dist/{chunk-XBNKOARP.js → chunk-5WIH5VUB.js} +4 -4
  25. package/dist/{chunk-RA64IK43.js → chunk-5WJCV6ED.js} +1 -1
  26. package/dist/{chunk-T4TMX54Q.js → chunk-64BU3UUE.js} +16 -16
  27. package/dist/{chunk-XSNIHYO6.js → chunk-66VD3EHO.js} +10 -10
  28. package/dist/{chunk-3M7QBKKG.js → chunk-6FYKGYAO.js} +6 -6
  29. package/dist/{chunk-FYWA2CPF.js → chunk-6IFOKO2R.js} +17 -17
  30. package/dist/{chunk-TJP2KLZI.js → chunk-6J2BWOLO.js} +11 -11
  31. package/dist/chunk-6VIQB6XT.js +37 -0
  32. package/dist/{chunk-4HTILEXW.js → chunk-6ZQOYNTT.js} +2 -2
  33. package/dist/{chunk-GX3Q5PRC.js → chunk-73QQ3KWY.js} +11 -11
  34. package/dist/{chunk-TEHH47TG.js → chunk-767WN7BP.js} +3 -3
  35. package/dist/{chunk-Q4AWUD6C.js → chunk-7CJ2TNZZ.js} +16 -16
  36. package/dist/{chunk-U3JGJ3BO.js → chunk-7JA7XGWC.js} +24 -24
  37. package/dist/{chunk-NAKVQU6F.js → chunk-7OHYHBEQ.js} +1 -1
  38. package/dist/{chunk-WSFPKNKT.js → chunk-7V3IIWMG.js} +23 -23
  39. package/dist/{chunk-ZRP6ZXOF.js → chunk-7XYCCKGI.js} +12 -12
  40. package/dist/{chunk-Z2BA4NNR.js → chunk-7YZ6JPFR.js} +2 -2
  41. package/dist/{chunk-DKGWE5ZL.js → chunk-AAIAS55Y.js} +21 -21
  42. package/dist/{chunk-VUBVBFJW.js → chunk-ACW2C7CY.js} +5 -5
  43. package/dist/{chunk-FSR7OUVJ.js → chunk-AODGV7YL.js} +23 -23
  44. package/dist/{chunk-TV6ECMN3.js → chunk-AOPL3VT7.js} +15 -15
  45. package/dist/{chunk-ARLH2ZMD.js → chunk-AQPK22BH.js} +1 -1
  46. package/dist/{chunk-PGFRXGHA.js → chunk-ASCZ47XX.js} +2 -2
  47. package/dist/{chunk-GU7PEYRC.js → chunk-AV2DVINC.js} +10 -10
  48. package/dist/{chunk-5I5JDJ3R.js → chunk-AVEKRWDF.js} +4 -4
  49. package/dist/{chunk-TBKJPKDN.js → chunk-BGASQ4UD.js} +11 -11
  50. package/dist/{chunk-4GNKICU5.js → chunk-BLEZRUU5.js} +18 -18
  51. package/dist/chunk-BUJJLQ7C.js +41 -0
  52. package/dist/{chunk-42L2WHP6.js → chunk-C43X7Y7O.js} +4 -4
  53. package/dist/{chunk-PVMGHQWB.js → chunk-CAH7L2QH.js} +7 -7
  54. package/dist/{chunk-O62VA6MH.js → chunk-CLDB6K2T.js} +13 -13
  55. package/dist/{chunk-CJ5FQHST.js → chunk-CV2Y7JQU.js} +5 -5
  56. package/dist/{chunk-GJ4B2FYS.js → chunk-CW4OVNJF.js} +10 -10
  57. package/dist/{chunk-QXGOEP44.js → chunk-CXDUMI7E.js} +3 -3
  58. package/dist/{chunk-S4USA5WC.js → chunk-D6CUQIU3.js} +20 -20
  59. package/dist/{chunk-OMH3I5BH.js → chunk-DDCK4CFE.js} +2 -2
  60. package/dist/{chunk-7VAMO66T.js → chunk-DLSPFAC5.js} +9 -6
  61. package/dist/{chunk-2QT6WVAK.js → chunk-DRA2V4R4.js} +15 -15
  62. package/dist/{chunk-CQD26SMZ.js → chunk-E52MNV5B.js} +1 -1
  63. package/dist/{chunk-DBZNQAMN.js → chunk-E53MN24E.js} +9 -9
  64. package/dist/{chunk-YVQWJDVN.js → chunk-EHLZJPGF.js} +23 -23
  65. package/dist/{chunk-FNVY656P.js → chunk-EL4VOLGT.js} +22 -22
  66. package/dist/{chunk-5IMZYLDW.js → chunk-EPTCDW3U.js} +11 -11
  67. package/dist/{chunk-NZY72PGJ.js → chunk-EUK4IONY.js} +9 -7
  68. package/dist/{chunk-XP3KLC4S.js → chunk-EWJ32DKS.js} +6 -6
  69. package/dist/{chunk-CYDJK34J.js → chunk-FAAOOT34.js} +4 -4
  70. package/dist/{chunk-5R2EWR47.js → chunk-FM56YGBC.js} +7 -7
  71. package/dist/chunk-FML6GOUB.js +45 -0
  72. package/dist/{chunk-4JLB5ISS.js → chunk-FR6J2NW5.js} +3 -3
  73. package/dist/{chunk-MRLCNXXR.js → chunk-FT2E2DHW.js} +1 -1
  74. package/dist/{chunk-CXY4YDXS.js → chunk-G3CY3PFO.js} +2 -2
  75. package/dist/{chunk-DDOLWHIM.js → chunk-GFMOU6YM.js} +17 -17
  76. package/dist/{chunk-CGF4LKXR.js → chunk-GGBEM27J.js} +3 -3
  77. package/dist/{chunk-VAL7HAIR.js → chunk-GP3NGMWY.js} +3 -3
  78. package/dist/chunk-HEQ2YUFK.js +43 -0
  79. package/dist/{chunk-DIAYQLEY.js → chunk-HFMLZFY4.js} +6 -6
  80. package/dist/{chunk-S5X7BVWP.js → chunk-HSLT4NZA.js} +19 -19
  81. package/dist/{chunk-ISXNWUG7.js → chunk-HZGTUG23.js} +1 -1
  82. package/dist/{chunk-PAQDPB6T.js → chunk-IPB6EKUH.js} +4 -4
  83. package/dist/{chunk-LAOZB5YC.js → chunk-IRA6XAXY.js} +11 -11
  84. package/dist/{chunk-BFZSO2TP.js → chunk-IUKKHYEK.js} +6 -6
  85. package/dist/{chunk-VTMIRRIZ.js → chunk-IUWOOFPR.js} +2 -2
  86. package/dist/{chunk-7MASAGFE.js → chunk-IVBSAKVG.js} +15 -15
  87. package/dist/{chunk-KJ6IH2D5.js → chunk-J347EH7F.js} +5 -5
  88. package/dist/{chunk-TIUBGJG3.js → chunk-J6FWM4VI.js} +9 -9
  89. package/dist/{chunk-YY2WGL6S.js → chunk-JARVXMUW.js} +2 -2
  90. package/dist/{chunk-72DY5NCN.js → chunk-JEZM3NRF.js} +2 -2
  91. package/dist/{chunk-GRZGEMO5.js → chunk-JFCTPPRA.js} +102 -102
  92. package/dist/chunk-JHISKJFN.js +48 -0
  93. package/dist/{chunk-W3ZWS3B3.js → chunk-JLF4JIZ6.js} +10 -10
  94. package/dist/{chunk-DREIS5Z5.js → chunk-JLZPUCEC.js} +6 -6
  95. package/dist/{chunk-5C24MOXU.js → chunk-JQHNT45I.js} +17 -17
  96. package/dist/{chunk-KPHPVOME.js → chunk-JTI3FKGI.js} +4 -4
  97. package/dist/{chunk-UQUDITWL.js → chunk-JW3ENKRI.js} +20 -20
  98. package/dist/{chunk-DLX2R3MI.js → chunk-K2WOVID6.js} +31 -31
  99. package/dist/{chunk-IZF2VJU5.js → chunk-K7ICVNZ6.js} +22 -22
  100. package/dist/{chunk-PJRMMWU4.js → chunk-KDKLT22F.js} +2 -2
  101. package/dist/chunk-KLFPFMXV.js +38 -0
  102. package/dist/{chunk-XDTD55UU.js → chunk-KLROTB6N.js} +33 -9
  103. package/dist/{chunk-ZTIMXVV5.js → chunk-KMU7XNK3.js} +2 -2
  104. package/dist/chunk-KSAKVVOA.js +34 -0
  105. package/dist/{chunk-M3BJTXLR.js → chunk-KTHFVH6T.js} +9 -9
  106. package/dist/{chunk-PKCYRG6G.js → chunk-KZSIKS64.js} +15 -12
  107. package/dist/{chunk-XMYGEZQ7.js → chunk-LIRPXFA4.js} +17 -17
  108. package/dist/{chunk-WFJMKUTR.js → chunk-LNPS5GQ3.js} +9 -9
  109. package/dist/{chunk-WM4N2L4T.js → chunk-LO3NRDCE.js} +1 -1
  110. package/dist/{chunk-CUX4GRTB.js → chunk-LQ5CEQFQ.js} +3 -3
  111. package/dist/{chunk-5ION6STH.js → chunk-LUBKMCTR.js} +2 -2
  112. package/dist/{chunk-MFRPLAOH.js → chunk-LURMCWUG.js} +2 -2
  113. package/dist/{chunk-U25OX22K.js → chunk-LZABEKI6.js} +3 -3
  114. package/dist/{chunk-ZDZCUZ4N.js → chunk-M2U3IZ54.js} +5 -5
  115. package/dist/chunk-M5NKIQKM.js +34 -0
  116. package/dist/{chunk-3JLTN3Y7.js → chunk-M63Z7PIB.js} +7 -7
  117. package/dist/{chunk-3256EDLL.js → chunk-MA43MHVR.js} +3 -3
  118. package/dist/{chunk-Y2FMWQQB.js → chunk-MPC5BQ6O.js} +16 -16
  119. package/dist/{chunk-HIQWJ6JZ.js → chunk-MT6GHEH5.js} +4 -4
  120. package/dist/{chunk-JLIEAQP4.js → chunk-N3Z5NFM4.js} +4 -4
  121. package/dist/{chunk-QOPX5M7Y.js → chunk-NAFPFQMJ.js} +4 -4
  122. package/dist/{chunk-MOY52LHS.js → chunk-NTUHEHC6.js} +13 -13
  123. package/dist/chunk-O23JP5EA.js +54 -0
  124. package/dist/{chunk-J3DTLYER.js → chunk-O775JVDM.js} +15 -15
  125. package/dist/{chunk-P3VBYYAS.js → chunk-OAXCNACK.js} +3 -3
  126. package/dist/{chunk-XB64FJLU.js → chunk-OG42OLZK.js} +24 -24
  127. package/dist/{chunk-EREL3TQG.js → chunk-OHBNRL75.js} +1 -1
  128. package/dist/{chunk-HMQXIFOL.js → chunk-OKLXZ35H.js} +4 -4
  129. package/dist/{chunk-TIAPEYWI.js → chunk-OOQPEISI.js} +3 -3
  130. package/dist/{chunk-U43G5EUN.js → chunk-OQPFFBPQ.js} +17 -17
  131. package/dist/{chunk-N2FA53DA.js → chunk-OQTSTW2G.js} +6 -6
  132. package/dist/{chunk-M4D3VKAS.js → chunk-OV3WHHRI.js} +1 -1
  133. package/dist/{chunk-QKSWQBWD.js → chunk-OYGY4DI2.js} +8 -8
  134. package/dist/{chunk-AY7Y3WPD.js → chunk-P44WNZXO.js} +15 -15
  135. package/dist/{chunk-G2K2D6XS.js → chunk-P4L435FY.js} +12 -12
  136. package/dist/{chunk-OKUYBXXI.js → chunk-PG5FIVP3.js} +16 -16
  137. package/dist/{chunk-G5SKNMPC.js → chunk-PI6KNUBW.js} +5 -5
  138. package/dist/{chunk-7VNEDDCC.js → chunk-PPCCFZG7.js} +2 -2
  139. package/dist/{chunk-IJ7TPOXQ.js → chunk-PPP75X5G.js} +11 -11
  140. package/dist/{chunk-6HSRGY4B.js → chunk-PQVZO25F.js} +3 -3
  141. package/dist/{chunk-NTNJNRHW.js → chunk-PR5X4SIJ.js} +4 -4
  142. package/dist/{chunk-MIOY6EXD.js → chunk-PURVXI7L.js} +4 -4
  143. package/dist/{chunk-U2SGLXFR.js → chunk-PWUVIOMW.js} +17 -17
  144. package/dist/{chunk-7UXSS23C.js → chunk-QBUHJ77Q.js} +18 -18
  145. package/dist/{chunk-7XWCTVJS.js → chunk-QJWE44D4.js} +3 -3
  146. package/dist/{chunk-IDLO7UCZ.js → chunk-QLJ7KLO3.js} +5 -5
  147. package/dist/{chunk-FT3RXIN4.js → chunk-QQLWNMLX.js} +10 -10
  148. package/dist/{chunk-TJHDFS33.js → chunk-QUHSKUDF.js} +27 -27
  149. package/dist/{chunk-DQKNOHUZ.js → chunk-QXI64SJ4.js} +1 -1
  150. package/dist/{chunk-P7SONIEO.js → chunk-QZIAPAUG.js} +162 -58
  151. package/dist/{chunk-J22RSFKY.js → chunk-R2A6DAPC.js} +2 -2
  152. package/dist/{chunk-EOCZDNWU.js → chunk-R5DGXWOX.js} +5 -5
  153. package/dist/{chunk-CH6LUQLD.js → chunk-RA3TVBWK.js} +1 -1
  154. package/dist/{chunk-WBOVB3XR.js → chunk-REFOPAZF.js} +24 -24
  155. package/dist/{chunk-65XZSK6S.js → chunk-RICWZRBR.js} +4 -4
  156. package/dist/{chunk-77UOXZVM.js → chunk-RNUHS433.js} +5 -5
  157. package/dist/{chunk-6R2OM6Y3.js → chunk-RSAJ33C6.js} +15 -15
  158. package/dist/{chunk-7C7PTJM2.js → chunk-S4EGGQZB.js} +27 -18
  159. package/dist/{chunk-PAOIMLTK.js → chunk-S6IJNQFM.js} +19 -19
  160. package/dist/{chunk-XZLSKGJX.js → chunk-S6JXYEG4.js} +5 -5
  161. package/dist/{chunk-CIIRPLI6.js → chunk-SOLKTI2T.js} +4 -4
  162. package/dist/{chunk-TEZSZ24W.js → chunk-T34ITVSM.js} +4 -4
  163. package/dist/{chunk-6IKYFARG.js → chunk-TDKSKJU3.js} +19 -10
  164. package/dist/{chunk-7FPTI62T.js → chunk-TDQNBA2N.js} +20 -20
  165. package/dist/{chunk-CKI4VG2I.js → chunk-THLOT563.js} +22 -22
  166. package/dist/{chunk-2OWSG6BK.js → chunk-THZXSH5O.js} +11 -11
  167. package/dist/{chunk-ESGIBN3S.js → chunk-TLTKLVZZ.js} +1 -1
  168. package/dist/{chunk-GIPQHVJF.js → chunk-U24UW3SV.js} +11 -11
  169. package/dist/{chunk-CCXEXCRO.js → chunk-U55GKPUB.js} +14 -14
  170. package/dist/{chunk-JWQMD54C.js → chunk-U7RMOCQQ.js} +7 -7
  171. package/dist/{chunk-34NWVIBC.js → chunk-UA4DLNV7.js} +2 -2
  172. package/dist/{chunk-5G5GD5HF.js → chunk-UELYGLNG.js} +14 -14
  173. package/dist/{chunk-N6YELFHL.js → chunk-UGMJ3Z35.js} +2 -2
  174. package/dist/{chunk-FLROTO6F.js → chunk-UOW37F7C.js} +3 -3
  175. package/dist/{chunk-3W5R5J65.js → chunk-V3P5ZJSO.js} +8 -8
  176. package/dist/{chunk-JC3BMRB5.js → chunk-V5UZVS74.js} +11 -11
  177. package/dist/{chunk-2DJUQ6CO.js → chunk-VK22DOCQ.js} +22 -22
  178. package/dist/{chunk-ZPPLFE4N.js → chunk-VOZI4AFV.js} +14 -14
  179. package/dist/{chunk-N7HG4UP7.js → chunk-VZM535M5.js} +6 -6
  180. package/dist/{chunk-DBVU45FY.js → chunk-WKVNT6DL.js} +14 -14
  181. package/dist/{chunk-6AYUBYK6.js → chunk-WMCKOZFT.js} +38 -12
  182. package/dist/{chunk-7UKETVPW.js → chunk-WMWYW4WB.js} +1 -1
  183. package/dist/{chunk-SR2M7DWL.js → chunk-WOWEF5DL.js} +13 -13
  184. package/dist/{chunk-AUSC47BK.js → chunk-WPBQT6VF.js} +4 -4
  185. package/dist/{chunk-YISWYR3Q.js → chunk-WQKMAOD7.js} +4 -4
  186. package/dist/chunk-WZEUA4PU.js +54 -0
  187. package/dist/{chunk-KY2ZHTBJ.js → chunk-X2SHYKUY.js} +6 -6
  188. package/dist/{chunk-TA2ZNDYD.js → chunk-X3HFDWKA.js} +1 -1
  189. package/dist/{chunk-T72K4PLH.js → chunk-X4VLWQR2.js} +11 -11
  190. package/dist/{chunk-EE3UNC44.js → chunk-X5IKLUFM.js} +3 -3
  191. package/dist/{chunk-UYKKTEWB.js → chunk-XKARSCXA.js} +14 -14
  192. package/dist/chunk-XMRFYVBB.js +41 -0
  193. package/dist/{chunk-YSFIQGDK.js → chunk-YDBWECPT.js} +8 -8
  194. package/dist/{chunk-HK2CF6KQ.js → chunk-YIO2LEBW.js} +23 -23
  195. package/dist/{chunk-VRH6ITQH.js → chunk-YU63ND72.js} +9 -9
  196. package/dist/{chunk-QL4VNY4U.js → chunk-YYV55774.js} +1 -1
  197. package/dist/{chunk-BUD6JILH.js → chunk-ZIVRZ3WV.js} +21 -21
  198. package/dist/{chunk-QOF7U6BI.js → chunk-ZJDOYEW4.js} +6 -6
  199. package/dist/{chunk-7H5HYERS.js → chunk-ZNXTVNPY.js} +19 -19
  200. package/dist/{chunk-WRLEYM3T.js → chunk-ZPNRTY73.js} +4 -4
  201. package/dist/{chunk-HY2VVVFZ.js → chunk-ZS2EZYOR.js} +4 -4
  202. package/dist/{chunk-ZWGU46YO.js → chunk-ZT6WXY3J.js} +23 -23
  203. package/dist/{chunk-RMNYY5IE.js → chunk-ZTF2NSQD.js} +5 -5
  204. package/dist/{chunk-QR65C3DV.js → chunk-ZUCJCBS5.js} +4 -4
  205. package/dist/files.json +443 -443
  206. package/dist/packages/sdk/npm/index.js +1 -1
  207. package/dist/packages/ui/dist/assets/{elk-api-D2NcYpUJ.js → elk-api-GNftut9z.js} +2 -2
  208. package/dist/packages/ui/dist/assets/{index-CT7skl01.js → index-C2evnHpj.js} +3 -3
  209. package/dist/packages/ui/dist/index.html +1 -1
  210. package/package.json +5 -5
  211. package/dist/chunk-2RMWW6G3.js +0 -41
  212. package/dist/chunk-3PLE3ZQ5.js +0 -34
  213. package/dist/chunk-CU35HXQ7.js +0 -48
  214. package/dist/chunk-EOWO4YPF.js +0 -43
  215. package/dist/chunk-EZ3FDHW3.js +0 -41
  216. package/dist/chunk-F5L23NGR.js +0 -45
  217. package/dist/chunk-JOG6LBOP.js +0 -38
  218. package/dist/chunk-LRCWWMHH.js +0 -54
  219. package/dist/chunk-LVQMS54L.js +0 -54
  220. package/dist/chunk-S3QCJWCF.js +0 -34
  221. package/dist/chunk-XVQGT4SL.js +0 -37
@@ -6,41 +6,41 @@ var __atticusPath = (p) => __atticusFileURLToPath(__atticusUrl(p));
6
6
  import {
7
7
  claimOf,
8
8
  factLabel
9
- } from "./chunk-VUBVBFJW.js";
9
+ } from "./chunk-ACW2C7CY.js";
10
10
  import {
11
11
  verifyInputsOf
12
- } from "./chunk-6IKYFARG.js";
13
- import "./chunk-QOF7U6BI.js";
14
- import "./chunk-XDTD55UU.js";
15
- import "./chunk-CGF4LKXR.js";
16
- import "./chunk-XZLSKGJX.js";
12
+ } from "./chunk-TDKSKJU3.js";
13
+ import "./chunk-ZJDOYEW4.js";
14
+ import "./chunk-KLROTB6N.js";
15
+ import "./chunk-GGBEM27J.js";
16
+ import "./chunk-S6JXYEG4.js";
17
17
  import {
18
18
  checkoutOf
19
- } from "./chunk-6AYUBYK6.js";
20
- import "./chunk-7VNEDDCC.js";
19
+ } from "./chunk-WMCKOZFT.js";
20
+ import "./chunk-PPCCFZG7.js";
21
21
  import {
22
22
  repoContractsOf
23
- } from "./chunk-MIOY6EXD.js";
24
- import "./chunk-J22RSFKY.js";
25
- import "./chunk-KPHPVOME.js";
26
- import "./chunk-G5SKNMPC.js";
27
- import "./chunk-JQG4VO47.js";
28
- import "./chunk-DW4BM73R.js";
29
- import "./chunk-DBZNQAMN.js";
30
- import "./chunk-QR65C3DV.js";
23
+ } from "./chunk-PURVXI7L.js";
24
+ import "./chunk-R2A6DAPC.js";
25
+ import "./chunk-JTI3FKGI.js";
26
+ import "./chunk-PI6KNUBW.js";
27
+ import "./chunk-24ARIOB7.js";
28
+ import "./chunk-4Q6HX5GQ.js";
29
+ import "./chunk-E53MN24E.js";
30
+ import "./chunk-ZUCJCBS5.js";
31
31
  import {
32
32
  dirSource,
33
33
  repairFormSlips,
34
34
  verifyFacts
35
- } from "./chunk-7VAMO66T.js";
36
- import "./chunk-HY2VVVFZ.js";
37
- import "./chunk-PJRMMWU4.js";
38
- import "./chunk-34NWVIBC.js";
39
- import "./chunk-77UOXZVM.js";
40
- import "./chunk-ARLH2ZMD.js";
41
- import "./chunk-RA64IK43.js";
42
- import "./chunk-MRLCNXXR.js";
43
- import "./chunk-CQD26SMZ.js";
35
+ } from "./chunk-DLSPFAC5.js";
36
+ import "./chunk-ZS2EZYOR.js";
37
+ import "./chunk-KDKLT22F.js";
38
+ import "./chunk-UA4DLNV7.js";
39
+ import "./chunk-RNUHS433.js";
40
+ import "./chunk-AQPK22BH.js";
41
+ import "./chunk-5WJCV6ED.js";
42
+ import "./chunk-FT2E2DHW.js";
43
+ import "./chunk-E52MNV5B.js";
44
44
  import {
45
45
  factsDirOf,
46
46
  factsRelOf,
@@ -56,7 +56,7 @@ import {
56
56
  require_dist,
57
57
  specRelOf,
58
58
  stackHelpersOff
59
- } from "./chunk-U25OX22K.js";
59
+ } from "./chunk-LZABEKI6.js";
60
60
  import "./chunk-MMB2OHUY.js";
61
61
  import {
62
62
  __toESM
@@ -193,7 +193,7 @@ async function verifyWritePreview(root, repo, o = {}) {
193
193
  }
194
194
  };
195
195
  }
196
- const { projectFactsIntoCatalog } = await import("./chunk-CUD4I2U6.js");
196
+ const { projectFactsIntoCatalog } = await import("./chunk-5BDBPV6V.js");
197
197
  const contracts = await repoContractsOf(root, repo, dir, report.accepted);
198
198
  const companion = join(factsDirOf(root), `${repo}.contracts.yaml`);
199
199
  const onDisk = await readFile(companion, "utf8").catch(() => void 0);
@@ -6,7 +6,7 @@ var __atticusPath = (p) => __atticusFileURLToPath(__atticusUrl(p));
6
6
  import {
7
7
  external_exports,
8
8
  require_dist
9
- } from "./chunk-U25OX22K.js";
9
+ } from "./chunk-LZABEKI6.js";
10
10
  import {
11
11
  ensureLocalIgnore
12
12
  } from "./chunk-MMB2OHUY.js";
@@ -6,69 +6,71 @@ var __atticusPath = (p) => __atticusFileURLToPath(__atticusUrl(p));
6
6
  import {
7
7
  mapCommand,
8
8
  mapStateOf
9
- } from "./chunk-7C7PTJM2.js";
9
+ } from "./chunk-S4EGGQZB.js";
10
10
  import {
11
11
  factsRepos,
12
12
  verifyCommand
13
- } from "./chunk-6IKYFARG.js";
13
+ } from "./chunk-TDKSKJU3.js";
14
14
  import {
15
15
  plannedTopUp,
16
16
  recordRulesNow,
17
17
  ruleSetsOfFiles
18
- } from "./chunk-QOF7U6BI.js";
19
- import "./chunk-XDTD55UU.js";
20
- import "./chunk-CGF4LKXR.js";
18
+ } from "./chunk-ZJDOYEW4.js";
19
+ import "./chunk-KLROTB6N.js";
20
+ import "./chunk-GGBEM27J.js";
21
21
  import {
22
22
  estateFreshness
23
- } from "./chunk-ZDZCUZ4N.js";
23
+ } from "./chunk-M2U3IZ54.js";
24
24
  import {
25
25
  onboardingQueue
26
- } from "./chunk-N6YELFHL.js";
27
- import "./chunk-PAQDPB6T.js";
28
- import "./chunk-DIAYQLEY.js";
29
- import "./chunk-WFJMKUTR.js";
26
+ } from "./chunk-UGMJ3Z35.js";
27
+ import "./chunk-IPB6EKUH.js";
28
+ import "./chunk-HFMLZFY4.js";
29
+ import "./chunk-LNPS5GQ3.js";
30
30
  import {
31
31
  checkoutOf,
32
32
  conventionsAt,
33
33
  excludesOf,
34
34
  headOf,
35
35
  loadReadPlan,
36
+ partUnaccounted,
36
37
  readPlanProgress
37
- } from "./chunk-6AYUBYK6.js";
38
- import "./chunk-7VNEDDCC.js";
39
- import "./chunk-BHHIHENP.js";
40
- import "./chunk-42L2WHP6.js";
41
- import "./chunk-MIOY6EXD.js";
38
+ } from "./chunk-WMCKOZFT.js";
39
+ import "./chunk-PPCCFZG7.js";
40
+ import "./chunk-2UPMPTNJ.js";
41
+ import "./chunk-C43X7Y7O.js";
42
+ import "./chunk-PURVXI7L.js";
42
43
  import {
43
44
  isMetarepo,
44
45
  notMetarepo
45
46
  } from "./chunk-3G4YI4ZU.js";
46
47
  import {
48
+ ASSISTANT_FORMATS,
47
49
  assistantTier,
48
50
  readProbes,
49
51
  rulesLacking
50
- } from "./chunk-J22RSFKY.js";
52
+ } from "./chunk-R2A6DAPC.js";
51
53
  import "./chunk-VOGCSYOI.js";
52
54
  import {
53
55
  estateRepos,
54
56
  productionRepos
55
- } from "./chunk-DBZNQAMN.js";
56
- import "./chunk-QR65C3DV.js";
57
+ } from "./chunk-E53MN24E.js";
58
+ import "./chunk-ZUCJCBS5.js";
57
59
  import {
58
60
  dirSource,
59
61
  sameCommit,
60
62
  sessionTokensFor
61
- } from "./chunk-7VAMO66T.js";
62
- import "./chunk-HY2VVVFZ.js";
63
- import "./chunk-PJRMMWU4.js";
64
- import "./chunk-34NWVIBC.js";
65
- import "./chunk-M4D3VKAS.js";
66
- import "./chunk-ARLH2ZMD.js";
67
- import "./chunk-RA64IK43.js";
68
- import "./chunk-MRLCNXXR.js";
63
+ } from "./chunk-DLSPFAC5.js";
64
+ import "./chunk-ZS2EZYOR.js";
65
+ import "./chunk-KDKLT22F.js";
66
+ import "./chunk-UA4DLNV7.js";
67
+ import "./chunk-OV3WHHRI.js";
68
+ import "./chunk-AQPK22BH.js";
69
+ import "./chunk-5WJCV6ED.js";
70
+ import "./chunk-FT2E2DHW.js";
69
71
  import {
70
72
  currentPromptLimit
71
- } from "./chunk-CQD26SMZ.js";
73
+ } from "./chunk-E52MNV5B.js";
72
74
  import {
73
75
  factsDirOf,
74
76
  factsRelOf,
@@ -78,7 +80,7 @@ import {
78
80
  orgPackDirOf,
79
81
  parseFacts,
80
82
  require_dist
81
- } from "./chunk-U25OX22K.js";
83
+ } from "./chunk-LZABEKI6.js";
82
84
  import {
83
85
  ensureLocalIgnore,
84
86
  writeFileAtomic
@@ -95,7 +97,7 @@ import { join } from "node:path";
95
97
  var MAP_ALL_STATE_REL = ".atticus/map-all/state.json";
96
98
  var statePath = (root) => join(root, ".atticus", "map-all", "state.json");
97
99
  var REMIND_MS = 10 * 6e4;
98
- var IDLE_MINUTES = 15;
100
+ var IDLE_MINUTES = 30;
99
101
  var POLL_MS = 3e3;
100
102
  var RETRIES = 3;
101
103
  var plural = (n, one, many = `${one}s`) => `${n} ${n === 1 ? one : many}`;
@@ -122,6 +124,13 @@ function modelModeAllowed(op) {
122
124
  const rt = op.runtime;
123
125
  return rt.ai !== "off" && rt.modes.allowed.includes("model") && !!rt.adapters.model && rt.adapters.model.type !== "mock";
124
126
  }
127
+ async function mapReader(root) {
128
+ const op = await loadOrgPack(orgPackDirOf(root));
129
+ const tier = assistantTier(op.runtime, { probes: (await readProbes(root)).results });
130
+ const name = tier.assistant ? ASSISTANT_FORMATS[tier.assistant].name : "no assistant";
131
+ const paste = tier.tier !== "off" && (tier.assistant === "copilot" || tier.tier !== 1);
132
+ return { name, loop: paste && isMetarepo(root) };
133
+ }
125
134
  async function limitFor(root, op, given) {
126
135
  const flag = given ?? currentPromptLimit();
127
136
  if (flag !== void 0)
@@ -164,7 +173,7 @@ async function commitOf(root, repo, f) {
164
173
  return void 0;
165
174
  return await headFromFiles(dir) ?? await headOf(dir);
166
175
  }
167
- async function partsOf(root, repo, commit, limit, git, models) {
176
+ async function partsOf(root, repo, commit, limit, git, models, force) {
168
177
  const io = captured();
169
178
  const code = await mapCommand(root, repo, { estimate: true, json: true, commit, maxTokens: limit, ...models ? { models } : {} }, io, git ? { git } : {});
170
179
  const r = code === 0 ? jsonOf(io.lines) : void 0;
@@ -188,7 +197,7 @@ async function partsOf(root, repo, commit, limit, git, models) {
188
197
  ...batches !== void 0 ? { batches } : {}
189
198
  };
190
199
  const states = r.parts.plan?.parts ?? [];
191
- const parts = planned.map((p, i) => ({ part: i + 1, total: planned.length, ...p })).filter((p) => states.find((s) => s.part === p.part)?.state !== "done");
200
+ const parts = planned.map((p, i) => ({ part: i + 1, total: planned.length, ...p })).filter((p) => force ? !force.done.has(p.part) : states.find((s) => s.part === p.part)?.state !== "done");
192
201
  return {
193
202
  parts,
194
203
  total: planned.length,
@@ -243,6 +252,17 @@ async function planEstate(root, op, o, c, state) {
243
252
  continue;
244
253
  }
245
254
  const state2 = f?.state ?? "not-read";
255
+ if (o.force) {
256
+ todo.push({
257
+ repo,
258
+ kind: "read",
259
+ commit,
260
+ why: state2 === "not-read" ? "--force: read whole" : "--force: read whole again, the facts on file kept as already kept",
261
+ ...state2 === "not-read" ? {} : { started: true },
262
+ force: true
263
+ });
264
+ continue;
265
+ }
246
266
  if (o.gaps) {
247
267
  if (state2 === "not-read")
248
268
  skipped.push({ repo, why: "not read yet: the gaps pass follows a read" });
@@ -324,7 +344,8 @@ async function planEstate(root, op, o, c, state) {
324
344
  kind: t.kind,
325
345
  commit: t.commit,
326
346
  why: t.why,
327
- ...production.has(t.repo) ? {} : { prototype: true }
347
+ ...production.has(t.repo) ? {} : { prototype: true },
348
+ ...t.force ? { force: true } : {}
328
349
  };
329
350
  if (t.kind === "carry") {
330
351
  items.push({ ...base, parts: [], total: 0, tokens: 0 });
@@ -357,7 +378,7 @@ async function planEstate(root, op, o, c, state) {
357
378
  });
358
379
  continue;
359
380
  }
360
- const p = await partsOf(root, t.repo, t.commit, c.limit, c.git, o.models);
381
+ const p = await partsOf(root, t.repo, t.commit, c.limit, c.git, o.models, t.force ? { done: forcedDone(t.repo, t.commit) } : void 0);
361
382
  if (typeof p === "string") {
362
383
  skipped.push({ repo: t.repo, why: p });
363
384
  continue;
@@ -376,6 +397,12 @@ async function planEstate(root, op, o, c, state) {
376
397
  items.push({ ...base, ...p });
377
398
  }
378
399
  return { limit: c.limit, limitFrom: c.limitFrom, mode: c.mode, items, skipped };
400
+ function forcedDone(repo, commit) {
401
+ const r = state?.repos[repo];
402
+ if (!r?.force || !sameCommit(r.commit, commit))
403
+ return /* @__PURE__ */ new Set();
404
+ return new Set(Object.entries(r.parts).filter(([, p]) => p.state === "done").map(([n]) => Number(n)));
405
+ }
379
406
  function isDone(repo, commit) {
380
407
  const r = state?.repos[repo];
381
408
  return !!r?.done && r.kind === "gaps" && sameCommit(r.commit, commit);
@@ -427,6 +454,17 @@ async function snapOf(root, repo) {
427
454
  };
428
455
  }
429
456
  var sameSnap = (a, b) => a.facts === b.facts && a.reviewed === b.reviewed && a.verify === b.verify;
457
+ async function writtenOf(root, repo) {
458
+ const dir = factsDirOf(root);
459
+ const facts = await readFile(join(dir, `${repo}.jsonl`), "utf8").catch(() => "");
460
+ const p = facts.trim() ? parseFacts(facts) : void 0;
461
+ const ids = (p?.ok ? p.facts : []).map((f) => {
462
+ const c = f.cite;
463
+ return `${f.id}|${c?.file ?? ""}:${c?.line ?? ""}`;
464
+ });
465
+ const reviewed = (await readFile(join(dir, `${repo}.reviewed.jsonl`), "utf8").catch(() => "")).split(/\r?\n/).map((l) => l.trim()).filter(Boolean);
466
+ return JSON.stringify([[...new Set(ids)].sort(), reviewed]);
467
+ }
430
468
  async function factsAt(root, repo, commit) {
431
469
  const text = await readFile(join(factsDirOf(root), `${repo}.jsonl`), "utf8").catch(() => "");
432
470
  if (!text.trim())
@@ -447,7 +485,13 @@ async function settled(root, repo, commit, s, since) {
447
485
  return false;
448
486
  }
449
487
  }
450
- async function covered(root, item, part, first, now) {
488
+ async function covered(root, item, part, first, now, unknown, wrote) {
489
+ const moved = now.facts !== first.facts || now.reviewed !== first.reviewed;
490
+ if (item.force) {
491
+ if (!(wrote ?? moved))
492
+ return false;
493
+ return item.total <= 1 || !!unknown && !leftOf(part, unknown).length;
494
+ }
451
495
  if (item.kind === "rules") {
452
496
  const plan = await loadReadPlan(root, item.repo);
453
497
  if (!plan?.topUp)
@@ -456,13 +500,26 @@ async function covered(root, item, part, first, now) {
456
500
  }
457
501
  if (item.total > 1) {
458
502
  const p = await readPlanProgress(root, item.repo);
459
- return p?.parts.find((x) => x.part === part.part)?.state === "done";
503
+ const s = p?.parts.find((x) => x.part === part.part);
504
+ if (s?.state === "done")
505
+ return true;
506
+ return !!s && !!unknown && !partUnaccounted(s, unknown).length;
460
507
  }
461
- const moved = now.facts !== first.facts || now.reviewed !== first.reviewed;
462
508
  if (item.kind === "read")
463
509
  return moved || now.reviewed !== void 0 || await factsAt(root, item.repo, item.commit) > 0;
464
510
  return moved;
465
511
  }
512
+ var leftOf = (part, unknown) => partUnaccounted({ paths: part.paths, left: [] }, unknown);
513
+ function unaccountedWords(left, shown = 5) {
514
+ return left.map((u) => {
515
+ if (!u.files.length)
516
+ return `${u.glob} (no fact cites a line of it yet)`;
517
+ const dir = u.glob.replace(/\/?\*\*?$/, "");
518
+ const rel = u.files.map((f) => u.glob.includes("*") && dir && f.startsWith(`${dir}/`) ? f.slice(dir.length + 1) : f);
519
+ const more = rel.length > shown ? `, and ${rel.length - shown} more` : "";
520
+ return `${u.glob} (${plural(u.files.length, "file")}: ${rel.slice(0, shown).join(", ")}${more})`;
521
+ }).join("; ");
522
+ }
466
523
  var CapReached = class extends Error {
467
524
  };
468
525
  function capped(inner, o, spent) {
@@ -513,6 +570,10 @@ async function mapAllCommand(root, o, io, deps = {}) {
513
570
  io.err("runtime.yaml doesn't allow model mode with a provider here: map the estate through Copilot (atticus map --all without --mode model).");
514
571
  return 2;
515
572
  }
573
+ if (o.force && (o.gaps || o.stale)) {
574
+ io.err("--force reads the repos whole again; it doesn't go with --stale or --gaps.");
575
+ return 2;
576
+ }
516
577
  if (mode === "model" && o.gaps) {
517
578
  io.err("The gaps pass is a session for an assistant that opens files: run atticus map --all --gaps --mode hand-off and paste each line into Copilot Chat.");
518
579
  return 2;
@@ -556,10 +617,17 @@ async function mapAllCommand(root, o, io, deps = {}) {
556
617
  const stopped = () => deps.signal?.aborted === true;
557
618
  const repoState = (item) => {
558
619
  const r = st.repos[item.repo];
559
- if (r && sameCommit(r.commit, item.commit) && r.kind === item.kind)
620
+ if (r && sameCommit(r.commit, item.commit) && r.kind === item.kind && !!r.force === !!item.force)
560
621
  return r;
561
- return st.repos[item.repo] = { commit: item.commit, kind: item.kind, parts: {} };
622
+ return st.repos[item.repo] = {
623
+ commit: item.commit,
624
+ kind: item.kind,
625
+ parts: {},
626
+ ...item.force ? { force: true } : {}
627
+ };
562
628
  };
629
+ const resumeAs = o.resumeAs ?? `atticus map --all${o.repos ? ` --repos ${o.repos.join(",")}` : ""}${o.stale ? " --stale" : ""}${o.gaps ? " --gaps" : ""}${o.force ? " --force" : ""}${o.models ? ` --models ${o.models}` : ""}${lim.from === "flag" ? ` --max-tokens ${limit}` : ""}${o.idleMinutes ? ` --idle ${o.idleMinutes}` : ""}`;
630
+ let idleStop = false;
563
631
  const partState = (item, part) => repoState(item).parts[String(part)] ??= { retries: 0 };
564
632
  const verifyStep = async (item) => {
565
633
  const c = captured();
@@ -631,8 +699,10 @@ async function mapAllCommand(root, o, io, deps = {}) {
631
699
  }
632
700
  const interrupted = quit || stopped() || capHit;
633
701
  if (interrupted) {
634
- io.out("");
635
- io.out(capHit ? `Stopped at the cap (${o.maxParts !== void 0 ? `--max-parts ${o.maxParts}` : ""}${o.maxParts !== void 0 && o.budgetTokens !== void 0 ? ", " : ""}${o.budgetTokens !== void 0 ? `--budget-tokens ${o.budgetTokens}` : ""}): ${plural(totals.spent.prompts, "prompt")} run. atticus map --all carries on from here.` : "Stopped. Where the estate stands is saved: atticus map --all carries on from here.");
702
+ if (!idleStop) {
703
+ io.out("");
704
+ io.out(capHit ? `Stopped at the cap (${o.maxParts !== void 0 ? `--max-parts ${o.maxParts}` : ""}${o.maxParts !== void 0 && o.budgetTokens !== void 0 ? ", " : ""}${o.budgetTokens !== void 0 ? `--budget-tokens ${o.budgetTokens}` : ""}): ${plural(totals.spent.prompts, "prompt")} run. atticus map --all carries on from here.` : "Stopped. Where the estate stands is saved: atticus map --all carries on from here.");
705
+ }
636
706
  } else if (totals.parts || totals.repos.size) {
637
707
  io.out("");
638
708
  io.out("Joining the estate: atticus verify --all --write.");
@@ -660,8 +730,9 @@ async function mapAllCommand(root, o, io, deps = {}) {
660
730
  const ps = partState(item, part.part);
661
731
  const nth = item.parts.indexOf(part) + 1;
662
732
  const label = item.total > 1 ? `part ${part.part} of ${item.total}${item.parts.length < item.total && nth > 0 ? `, ${nth} of the ${item.parts.length} to read` : ""}` : "one session";
733
+ const named = item.total > 1 ? `part ${part.part} of ${item.total}` : "one session";
663
734
  const progress = item.total > 1 ? await readPlanProgress(root, item.repo) : void 0;
664
- const first0 = item.kind === "rules" ? await rulesLine(item) : item.kind === "gaps" ? await gapsLine(item) : ps.retries > 0 || progress?.next && progress.next.part !== part.part ? await restLine(item, part) ?? `/atticus-map ${item.repo}` : `/atticus-map ${item.repo}`;
735
+ const first0 = item.kind === "rules" ? await rulesLine(item) : item.kind === "gaps" ? await gapsLine(item) : item.force ? forceLine(item, part) : ps.retries > 0 || progress?.next && progress.next.part !== part.part ? await restLine(item, part) ?? `/atticus-map ${item.repo}` : `/atticus-map ${item.repo}`;
665
736
  if (first0 === void 0) {
666
737
  io.out(`${item.repo}: no gaps left; nothing to read.`);
667
738
  return finishPart(item, part, ps);
@@ -670,14 +741,14 @@ async function mapAllCommand(root, o, io, deps = {}) {
670
741
  return finishPart(item, part, ps);
671
742
  let line = first0;
672
743
  await block(item, part, label, where, line, ps.retries);
744
+ let base = item.force ? await writtenOf(root, item.repo) : "";
673
745
  let first = await snapOf(root, item.repo);
674
746
  let since = first;
675
747
  let prev = first;
676
748
  let lastChange = clock.now();
677
749
  let lastRemind = clock.now();
678
750
  const started = clock.now();
679
- let stuckSaid = false;
680
- const idleMs = (o.idleMinutes ?? IDLE_MINUTES) * 6e4;
751
+ const idleMinutes = o.idleMinutes ?? IDLE_MINUTES;
681
752
  for (; ; ) {
682
753
  if (stopped()) {
683
754
  ps.state = "incomplete";
@@ -701,30 +772,42 @@ async function mapAllCommand(root, o, io, deps = {}) {
701
772
  const again = await retry(item, part, label, where);
702
773
  if (again === "done")
703
774
  return finishPart(item, part, ps);
775
+ if (item.force)
776
+ base = await writtenOf(root, item.repo);
704
777
  first = await snapOf(root, item.repo);
705
778
  since = first;
706
779
  prev = first;
707
780
  lastChange = clock.now();
708
- stuckSaid = false;
709
781
  continue;
710
782
  }
711
783
  const now = await snapOf(root, item.repo);
712
784
  if (!sameSnap(now, prev)) {
713
785
  lastChange = clock.now();
714
- stuckSaid = false;
715
786
  prev = now;
716
787
  }
717
- if (await settled(root, item.repo, item.commit, now, since) && await covered(root, item, part, first, now)) {
788
+ if (await settled(root, item.repo, item.commit, now, since)) {
789
+ const wrote = item.force ? await writtenOf(root, item.repo) !== base : void 0;
718
790
  const v = await verifyStep(item);
719
- if (v && !v.rejected && await covered(root, item, part, first, await snapOf(root, item.repo)))
791
+ const after = await snapOf(root, item.repo);
792
+ if (v && !v.rejected && await covered(root, item, part, first, after, v.coverage.unknown, wrote))
720
793
  return finishPart(item, part, ps);
721
- io.out(`Not done yet: ${v?.rejected ? `${plural(v.rejected, "fact")} rejected for the reader to fix` : "the part isn't accounted for in the facts yet"}. Still waiting (s + Enter skips, r + Enter gives the prompt again for what's left).`);
722
- since = await snapOf(root, item.repo);
723
- prev = since;
794
+ if (v?.rejected)
795
+ io.out(`Not done yet: ${plural(v.rejected, "fact")} rejected for the reader to fix. Still waiting (s + Enter skips, r + Enter gives the prompt again for what's left).`);
796
+ else if (v && item.total > 1 && item.kind !== "rules") {
797
+ const left = await leftNow(item, part, v.coverage.unknown);
798
+ io.out(left.length ? `Still not covered in ${item.repo} ${named}: ${unaccountedWords(left)}. ${item.force ? `r + Enter gives the line again (${line}); ` : `r + Enter gives a NEW chat only what is left of the part: these files, and any line verify lists as skipped under it (/atticus-map ${item.repo} --part ${part.part} --gaps); `}s + Enter skips the part; q + Enter stops.` : `Not done yet: nothing was written for ${item.repo} ${named} since its line was given. r + Enter gives the line again; s + Enter skips the part; q + Enter stops.`);
799
+ } else
800
+ io.out("Not done yet: the part isn't accounted for in the facts yet. Still waiting (s + Enter skips, r + Enter gives the prompt again for what's left).");
801
+ since = after;
802
+ prev = after;
803
+ lastRemind = clock.now();
724
804
  }
725
- if (!stuckSaid && clock.now() - lastChange >= idleMs) {
726
- io.out(`Copilot seems to have stopped on ${item.repo} ${item.total > 1 ? `part ${part.part}` : "(its one session)"}. r + Enter: verify what it wrote and give the prompt again for what's left, in a NEW chat; s: skip; q: stop.`);
727
- stuckSaid = true;
805
+ if (clock.now() - lastChange >= idleMinutes * 6e4) {
806
+ io.out(`Stopped waiting on ${item.repo} ${label}: nothing was written for ${plural(idleMinutes, "minute")} (--idle ${idleMinutes}). Where the estate stands is saved: ${resumeAs} carries on from here (it verifies what was written and gives the line again for what's left).`);
807
+ ps.state = "incomplete";
808
+ idleStop = true;
809
+ await save();
810
+ return "quit";
728
811
  }
729
812
  if (clock.now() - lastRemind >= (deps.remindMs ?? REMIND_MS)) {
730
813
  io.out(`Still waiting on ${item.repo} ${label} (${Math.round((clock.now() - started) / 6e4)} minutes). The line to paste: ${line} (s + Enter skips, r + Enter retries what's left, q + Enter stops)`);
@@ -735,7 +818,13 @@ async function mapAllCommand(root, o, io, deps = {}) {
735
818
  async function retry(item2, part2, label2, where2) {
736
819
  ps.retries++;
737
820
  await save();
738
- const rest = item2.kind === "rules" ? await rulesLine(item2) : item2.kind === "gaps" ? await gapsLine(item2) : await restLine(item2, part2);
821
+ if (item2.force) {
822
+ const wrote = await writtenOf(root, item2.repo) !== base;
823
+ const v = existsSync(join(factsDirOf(root), `${item2.repo}.jsonl`)) ? await verifyStep(item2) : void 0;
824
+ if (v && !v.rejected && await covered(root, item2, part2, first, await snapOf(root, item2.repo), v.coverage.unknown, wrote))
825
+ return "done";
826
+ }
827
+ const rest = item2.kind === "rules" ? await rulesLine(item2) : item2.kind === "gaps" ? await gapsLine(item2) : item2.force ? forceLine(item2, part2) : await restLine(item2, part2);
739
828
  if (rest === "done" || rest === void 0 && item2.kind === "gaps")
740
829
  return "done";
741
830
  line = rest ?? `/atticus-map ${item2.repo}`;
@@ -747,10 +836,21 @@ async function mapAllCommand(root, o, io, deps = {}) {
747
836
  return "again";
748
837
  }
749
838
  }
839
+ async function leftNow(item, part, unknown) {
840
+ if (item.force)
841
+ return leftOf(part, unknown);
842
+ const s = (await readPlanProgress(root, item.repo))?.parts.find((x) => x.part === part.part);
843
+ return s ? partUnaccounted(s, unknown) : leftOf(part, unknown);
844
+ }
845
+ function forceLine(item, part) {
846
+ return `/atticus-map ${item.repo}${item.total > 1 ? ` --part ${part.part}` : ""}`;
847
+ }
750
848
  async function finishPart(item, part, ps) {
751
849
  ps.state = "done";
752
850
  if (item.kind === "gaps" || part.part === item.total)
753
851
  repoState(item).done = true;
852
+ if (item.force && Object.keys(repoState(item).parts).length >= item.total && Object.values(repoState(item).parts).every((p) => p.state === "done"))
853
+ await recordRulesNow(root, item.repo, item.commit);
754
854
  totals.parts++;
755
855
  totals.repos.add(item.repo);
756
856
  await save();
@@ -810,7 +910,9 @@ async function mapAllCommand(root, o, io, deps = {}) {
810
910
  io.out("");
811
911
  io.out(`===== ${item.repo}, ${item.kind === "gaps" ? "the gaps pass" : item.kind === "rules" ? `the rules top-up${item.total > 1 ? `, ${label}` : ""}` : label} (${where})${retries ? `, given again (${retries})` : ""} =====`);
812
912
  io.out(`In a NEW Copilot Chat (agent mode), run: ${line}`);
813
- if (item.kind === "rules")
913
+ if (item.force)
914
+ io.out(`${item.total > 1 ? `That chat reads part ${part.part} whole again: ${part.paths.join(", ")} (about ${tokensText(part.tokens)} tokens). ` : ""}The facts on file stay, as already kept: the chat names one by its id and doesn't write it again (one whose line changed it rewrites under the same id).`);
915
+ else if (item.kind === "rules")
814
916
  io.out(`That chat reads ${plural(part.files, "file")} again for the reading rules added since (${(item.sets ?? []).join(", ")}): ${part.paths.join(", ")} (about ${tokensText(part.tokens)} tokens).`);
815
917
  else if (item.total > 1 && !line.includes("--gaps"))
816
918
  io.out(`That chat reads part ${part.part}: ${part.paths.join(", ")} (about ${tokensText(part.tokens)} tokens); the estimate it runs names it.`);
@@ -835,7 +937,7 @@ async function mapAllCommand(root, o, io, deps = {}) {
835
937
  maxTokens: limit,
836
938
  ...o.models ? { models: o.models } : {},
837
939
  ...item.kind === "rules" ? { rules: true } : {},
838
- ...resume ? { next: true } : before && !before.done ? { force: true } : {}
940
+ ...resume && !(item.force && attempt === 1) ? { next: true } : item.force && attempt === 1 || before && !before.done ? { force: true } : {}
839
941
  }, io, { runtime: rt, ...deps.git ? { git: deps.git } : {} });
840
942
  } catch (e) {
841
943
  if (e instanceof CapReached) {
@@ -873,7 +975,7 @@ async function mapAllCommand(root, o, io, deps = {}) {
873
975
  repo: item.repo,
874
976
  ...item.total > 1 ? { part: part.part, total: item.total } : {},
875
977
  end,
876
- command: `atticus map --all --repos ${item.repo}${o.gaps ? " --gaps" : ""} (or /atticus-map ${item.repo}${o.gaps ? " --gaps" : ""} in a new chat)`
978
+ command: `atticus map --all --repos ${item.repo}${o.gaps ? " --gaps" : ""}${item.force ? " --force" : ""} (or /atticus-map ${item.repo}${o.gaps ? " --gaps" : item.force && item.total > 1 ? ` --part ${part.part}` : ""} in a new chat)`
877
979
  };
878
980
  }
879
981
  async function summary(interrupted2) {
@@ -903,7 +1005,9 @@ export {
903
1005
  MAP_ALL_STATE_REL,
904
1006
  limitFor,
905
1007
  mapAllCommand,
1008
+ mapReader,
906
1009
  modelModeAllowed,
907
1010
  planEstate,
908
- readMapAllState
1011
+ readMapAllState,
1012
+ unaccountedWords
909
1013
  };
@@ -6,7 +6,7 @@ var __atticusPath = (p) => __atticusFileURLToPath(__atticusUrl(p));
6
6
  import {
7
7
  loadRepos,
8
8
  readChangeRepos
9
- } from "./chunk-RA64IK43.js";
9
+ } from "./chunk-5WJCV6ED.js";
10
10
  import {
11
11
  AssistantId,
12
12
  RecordId,
@@ -16,7 +16,7 @@ import {
16
16
  loadOrgPack,
17
17
  orgPackDirOf,
18
18
  require_dist
19
- } from "./chunk-U25OX22K.js";
19
+ } from "./chunk-LZABEKI6.js";
20
20
  import {
21
21
  ensureLocalIgnore
22
22
  } from "./chunk-MMB2OHUY.js";
@@ -5,17 +5,17 @@ var __atticusUrl = (p) => new URL("./" + p, import.meta.url).href;
5
5
  var __atticusPath = (p) => __atticusFileURLToPath(__atticusUrl(p));
6
6
  import {
7
7
  changeStore
8
- } from "./chunk-G5SKNMPC.js";
8
+ } from "./chunk-PI6KNUBW.js";
9
9
  import {
10
10
  ManualNotifier,
11
11
  fileStepStore
12
- } from "./chunk-DW4BM73R.js";
12
+ } from "./chunk-4Q6HX5GQ.js";
13
13
  import {
14
14
  readCatalog
15
- } from "./chunk-DBZNQAMN.js";
15
+ } from "./chunk-E53MN24E.js";
16
16
  import {
17
17
  readServiceRequestExports
18
- } from "./chunk-HY2VVVFZ.js";
18
+ } from "./chunk-ZS2EZYOR.js";
19
19
  import {
20
20
  Initiative,
21
21
  IsoDate,
@@ -32,7 +32,7 @@ import {
32
32
  serializeRecord,
33
33
  stateDirOf,
34
34
  toCanonicalYaml
35
- } from "./chunk-U25OX22K.js";
35
+ } from "./chunk-LZABEKI6.js";
36
36
  import {
37
37
  SCHEMA_VERSION
38
38
  } from "./chunk-MMB2OHUY.js";
@@ -8,7 +8,7 @@ import {
8
8
  changesDirOf,
9
9
  orgPackDirOf,
10
10
  require_dist
11
- } from "./chunk-U25OX22K.js";
11
+ } from "./chunk-LZABEKI6.js";
12
12
  import {
13
13
  ensureLocalIgnore,
14
14
  redactText