@maycombhq/atticus 2.0.0-beta.11 → 2.0.0-beta.12

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 (222) hide show
  1. package/dist/bin.js +3 -3
  2. package/dist/{chunk-IILZ7J3L.js → chunk-22GLUHGE.js} +171 -62
  3. package/dist/{chunk-4UZJOQYK.js → chunk-2A24BNRZ.js} +7 -7
  4. package/dist/{chunk-HOUUBE74.js → chunk-2ELFEKOO.js} +4 -4
  5. package/dist/{chunk-R6UTCLH5.js → chunk-2P6IHSRO.js} +16 -16
  6. package/dist/chunk-2Q2YBAR5.js +40 -0
  7. package/dist/{chunk-6E2GJANQ.js → chunk-2VQLFNBO.js} +19 -19
  8. package/dist/{chunk-SILY6ZEZ.js → chunk-3256EDLL.js} +3 -3
  9. package/dist/{chunk-YLAM4HZH.js → chunk-34BCKMBS.js} +3 -3
  10. package/dist/{chunk-GVFUEGGM.js → chunk-34NWVIBC.js} +2 -2
  11. package/dist/{chunk-4ONORLK5.js → chunk-36KD4OGC.js} +13 -13
  12. package/dist/{chunk-B3QOYE74.js → chunk-3CFBU2O6.js} +4 -4
  13. package/dist/{chunk-77RSRG3A.js → chunk-3JLTN3Y7.js} +7 -7
  14. package/dist/{chunk-QWHTTA2X.js → chunk-3M7QBKKG.js} +8 -6
  15. package/dist/{chunk-DQNKG4HY.js → chunk-3RP34PYV.js} +17 -17
  16. package/dist/{chunk-7HQOZALR.js → chunk-3ZKLWM5Y.js} +10 -10
  17. package/dist/{chunk-SUQZGPVG.js → chunk-47HPZ34V.js} +24 -24
  18. package/dist/chunk-4BPROPGG.js +45 -0
  19. package/dist/{chunk-LUPW4WLK.js → chunk-4G56W6H7.js} +8 -8
  20. package/dist/{chunk-JRPQX2EK.js → chunk-4HIQ2FTI.js} +4 -4
  21. package/dist/{chunk-2K2ZEJVR.js → chunk-4HTILEXW.js} +2 -2
  22. package/dist/{chunk-S7ZWCMDO.js → chunk-4Q2PGM5T.js} +8 -9
  23. package/dist/{chunk-XPJR74MA.js → chunk-4RDW2X43.js} +37 -25
  24. package/dist/{chunk-7LCQ7JAM.js → chunk-4VOG5H2K.js} +1 -1
  25. package/dist/chunk-5CSZTVXH.js +34 -0
  26. package/dist/{chunk-KU4T2CXJ.js → chunk-5FFMJMVH.js} +18 -18
  27. package/dist/{chunk-XOVLGBKI.js → chunk-5GGGAI5C.js} +17 -17
  28. package/dist/{chunk-7S3XFWOU.js → chunk-5H46QFSL.js} +4 -4
  29. package/dist/{chunk-XJAJQGXJ.js → chunk-5ION6STH.js} +2 -2
  30. package/dist/{chunk-HZYFLEWO.js → chunk-5M3CLAOV.js} +17 -17
  31. package/dist/{chunk-WUE6HKIU.js → chunk-5OACMWWI.js} +135 -39
  32. package/dist/{chunk-OR5VRULZ.js → chunk-6ENDKY52.js} +10 -10
  33. package/dist/{chunk-6V3DTQWK.js → chunk-6FG7QKJC.js} +21 -21
  34. package/dist/{chunk-SH7AZZDA.js → chunk-6JV3YHRR.js} +17 -17
  35. package/dist/{chunk-GWSWS264.js → chunk-6ROZRBWH.js} +4 -4
  36. package/dist/{chunk-MYKQVS5W.js → chunk-6S27MUQQ.js} +10 -6
  37. package/dist/{chunk-TZXHUDI6.js → chunk-72DY5NCN.js} +2 -2
  38. package/dist/chunk-76QVBNEM.js +37 -0
  39. package/dist/{chunk-XNRPCI23.js → chunk-77UOXZVM.js} +5 -5
  40. package/dist/{chunk-EHUYLNLC.js → chunk-7AXMUE2U.js} +14 -14
  41. package/dist/{chunk-LS3WR2RF.js → chunk-7TEQF64E.js} +122 -59
  42. package/dist/{chunk-EI4KQYJ3.js → chunk-7TH6I6TL.js} +8 -8
  43. package/dist/{chunk-7SZPENUP.js → chunk-7UKETVPW.js} +1 -1
  44. package/dist/{chunk-LDIARP6F.js → chunk-7VNEDDCC.js} +2 -2
  45. package/dist/{chunk-CRQ73DIF.js → chunk-A5GY2EWH.js} +11 -11
  46. package/dist/{chunk-FOQXYMOR.js → chunk-AEZ3EICK.js} +19 -19
  47. package/dist/{chunk-RJDP642F.js → chunk-ARLH2ZMD.js} +1 -1
  48. package/dist/{chunk-26DBAGOP.js → chunk-AYVLEB55.js} +17 -17
  49. package/dist/{chunk-IA2RKC6I.js → chunk-B6X5PJSA.js} +52 -11
  50. package/dist/{chunk-S2FDPN32.js → chunk-BRCDEGNE.js} +1 -1
  51. package/dist/{chunk-JEUXCIRD.js → chunk-BSVTNNUK.js} +5 -5
  52. package/dist/{chunk-Y5AYBGLB.js → chunk-BTOGAUWX.js} +13 -10
  53. package/dist/{chunk-MCWWMMLN.js → chunk-BXP2Q4TD.js} +22 -22
  54. package/dist/{chunk-UFBKJOWB.js → chunk-BZRWJUB4.js} +14 -14
  55. package/dist/{chunk-5ACUW753.js → chunk-CH6LUQLD.js} +1 -1
  56. package/dist/{chunk-7VFVQX5K.js → chunk-CIIRPLI6.js} +4 -4
  57. package/dist/{chunk-SNHOLLGN.js → chunk-CJXM6SG4.js} +84 -25
  58. package/dist/{chunk-BKFGGJKA.js → chunk-CQD26SMZ.js} +3 -1
  59. package/dist/{chunk-4URR24DD.js → chunk-CW5SEPUT.js} +6 -6
  60. package/dist/{chunk-MV4637YA.js → chunk-CWSZP2LU.js} +24 -24
  61. package/dist/{chunk-5BJFMAQU.js → chunk-CXK27ZUY.js} +12 -12
  62. package/dist/{chunk-5NZSJ5ZG.js → chunk-CXY4YDXS.js} +2 -2
  63. package/dist/{chunk-NG5R2WIY.js → chunk-DDZZXVQ5.js} +9 -9
  64. package/dist/{chunk-PQW7PYUR.js → chunk-DGZXJO5I.js} +7 -7
  65. package/dist/{chunk-TCADP67G.js → chunk-DONCF2XC.js} +3 -3
  66. package/dist/{chunk-XF3DATVU.js → chunk-DPNCAFMB.js} +17 -17
  67. package/dist/{chunk-ORZSD2KD.js → chunk-DQKNOHUZ.js} +1 -1
  68. package/dist/{chunk-CAN3EBE5.js → chunk-DW4BM73R.js} +1 -1
  69. package/dist/{chunk-NX6QEEOA.js → chunk-DWN7RSNQ.js} +3 -3
  70. package/dist/{chunk-EV4TEFOD.js → chunk-DWYPYVPJ.js} +13 -13
  71. package/dist/{chunk-5RUMHLIS.js → chunk-E73QLYK7.js} +24 -3
  72. package/dist/{chunk-LZWVK4YY.js → chunk-EE3UNC44.js} +3 -3
  73. package/dist/{chunk-REWZE2XI.js → chunk-EJDZEK22.js} +23 -23
  74. package/dist/{chunk-VYNZED7B.js → chunk-ENZWVTTN.js} +20 -20
  75. package/dist/{chunk-NBGBMRIS.js → chunk-EREL3TQG.js} +1 -1
  76. package/dist/{chunk-NH5QH3WS.js → chunk-ESGIBN3S.js} +1 -1
  77. package/dist/{chunk-EBWIOODZ.js → chunk-EU7VTBAI.js} +4 -4
  78. package/dist/chunk-F5GA6G3U.js +48 -0
  79. package/dist/{chunk-Z2EYRUOH.js → chunk-F6FGIYPT.js} +19 -19
  80. package/dist/{chunk-H4VJO3M2.js → chunk-FAET4BB6.js} +5 -5
  81. package/dist/{chunk-5ICB2BXH.js → chunk-FBFSTYAB.js} +7 -7
  82. package/dist/{chunk-IWZPGIGT.js → chunk-FEBYMFZA.js} +23 -23
  83. package/dist/chunk-FMV6IZ3P.js +54 -0
  84. package/dist/{chunk-TGEOLIAK.js → chunk-FQ6IBYFC.js} +3 -3
  85. package/dist/{chunk-R3VFLYZZ.js → chunk-FSJMFPA3.js} +6 -6
  86. package/dist/{chunk-SIUDWWKS.js → chunk-GFZ5MIQG.js} +23 -23
  87. package/dist/{chunk-6RGIM2ZH.js → chunk-GHSVJNVL.js} +75 -8
  88. package/dist/{chunk-XR5DD5DQ.js → chunk-GKPOCUQR.js} +12 -7
  89. package/dist/{chunk-NR5T46ZY.js → chunk-GLSNVC67.js} +16 -16
  90. package/dist/{chunk-T6ESD5KM.js → chunk-GMDOXWIS.js} +4 -4
  91. package/dist/{chunk-5TY4DTHQ.js → chunk-GN5ZLSLD.js} +3 -3
  92. package/dist/{chunk-MKIULIUQ.js → chunk-GUNBOZ75.js} +3 -3
  93. package/dist/{chunk-ZTNS3L5Z.js → chunk-GYS64N6F.js} +5 -5
  94. package/dist/{chunk-ANCI3LFS.js → chunk-HIQWJ6JZ.js} +4 -4
  95. package/dist/{chunk-4AYZQ3SY.js → chunk-HJ52XDST.js} +4 -4
  96. package/dist/{chunk-EW7MRMD5.js → chunk-HJUEQERG.js} +16 -7
  97. package/dist/{chunk-ZJQUIG3A.js → chunk-HKGQUOQ3.js} +15 -14
  98. package/dist/chunk-HP32HUWR.js +41 -0
  99. package/dist/{chunk-WIMOJMAK.js → chunk-HY2VVVFZ.js} +168 -14
  100. package/dist/{chunk-G3PBLW4K.js → chunk-I2PNEG3M.js} +34 -9
  101. package/dist/{chunk-XKJRPVJO.js → chunk-INCECZ2E.js} +5 -5
  102. package/dist/{chunk-6N2GUZMZ.js → chunk-ISXNWUG7.js} +1 -1
  103. package/dist/{chunk-HGQZTUAC.js → chunk-ITJ7ST5E.js} +4 -4
  104. package/dist/{chunk-SINJKQSI.js → chunk-J3VAFDEX.js} +13 -13
  105. package/dist/{chunk-WFYHOXTB.js → chunk-JGLZUQVN.js} +15 -15
  106. package/dist/{chunk-7RGCQ4VZ.js → chunk-JLIEAQP4.js} +4 -4
  107. package/dist/{chunk-L7I5PKGD.js → chunk-JQG4VO47.js} +1 -1
  108. package/dist/{chunk-GPLFYLGH.js → chunk-JXXQHETS.js} +10 -10
  109. package/dist/{chunk-JUZ75OG4.js → chunk-KNGESBFW.js} +15 -15
  110. package/dist/{chunk-UABFFMWH.js → chunk-KUYA2E7M.js} +7 -7
  111. package/dist/{chunk-YWZDAZMA.js → chunk-KY2ZHTBJ.js} +6 -6
  112. package/dist/{chunk-5P5BGG5L.js → chunk-L4UIKAWD.js} +6 -6
  113. package/dist/{chunk-IRW64JFF.js → chunk-LDUJ6NIT.js} +4 -4
  114. package/dist/{chunk-7A7IG7OA.js → chunk-LTLR4JZJ.js} +10 -10
  115. package/dist/{chunk-UTR67XU2.js → chunk-MFRPLAOH.js} +2 -2
  116. package/dist/{chunk-V4XKYGLK.js → chunk-MH7UBG47.js} +4 -4
  117. package/dist/{chunk-XPWSNKF3.js → chunk-MLAACAES.js} +55 -12
  118. package/dist/{chunk-BQNEHB5U.js → chunk-MNCQ2GL7.js} +11 -11
  119. package/dist/{chunk-Z46OXTBE.js → chunk-MNUZX67F.js} +5 -5
  120. package/dist/{chunk-RWMSJP7H.js → chunk-MQHYCS6A.js} +26 -25
  121. package/dist/{chunk-FMRMTI7W.js → chunk-MRLCNXXR.js} +1 -1
  122. package/dist/{chunk-BA5DTXHQ.js → chunk-NCONDPHH.js} +4 -4
  123. package/dist/{chunk-UNFCFJMF.js → chunk-NHS55U7T.js} +17 -17
  124. package/dist/{chunk-C2YGYTU6.js → chunk-NL6XQZSV.js} +22 -22
  125. package/dist/{chunk-TC3KTG33.js → chunk-NSJ6ZR2A.js} +3 -3
  126. package/dist/{chunk-3DDJLI7N.js → chunk-NTNJNRHW.js} +4 -4
  127. package/dist/{chunk-GG6HIU74.js → chunk-NTTXTLCQ.js} +24 -24
  128. package/dist/{chunk-55TBYJF2.js → chunk-NWL7XEQ4.js} +17 -16
  129. package/dist/{chunk-U6YKL7SI.js → chunk-NWXY3B4R.js} +22 -22
  130. package/dist/{chunk-4YWRU7JK.js → chunk-O5W4ECUY.js} +15 -15
  131. package/dist/{chunk-IVHN2VYG.js → chunk-OJAJXU65.js} +3 -1
  132. package/dist/{chunk-EZSZFI54.js → chunk-OMH3I5BH.js} +2 -2
  133. package/dist/{chunk-RIEFYHXI.js → chunk-P6UJ22XR.js} +4 -4
  134. package/dist/{chunk-LVBPY2M6.js → chunk-P76AW3PA.js} +298 -14
  135. package/dist/{chunk-23VFQHFQ.js → chunk-PCCPXWJC.js} +31 -21
  136. package/dist/{chunk-DS3ZEJVN.js → chunk-PGFRXGHA.js} +2 -2
  137. package/dist/{chunk-5V5BJACL.js → chunk-PJRMMWU4.js} +2 -2
  138. package/dist/{chunk-BX52REMA.js → chunk-PKJ3K3GM.js} +5 -5
  139. package/dist/{chunk-KLKENMWQ.js → chunk-PVW2N63M.js} +58 -43
  140. package/dist/{chunk-OFWYZH6B.js → chunk-Q55UP5EZ.js} +21 -21
  141. package/dist/{chunk-C5JFMAXX.js → chunk-QAFMLBPF.js} +11 -11
  142. package/dist/{chunk-CZI2ACNT.js → chunk-QEZSA2O7.js} +16 -16
  143. package/dist/{chunk-27EDZN52.js → chunk-QJ3OX7OC.js} +31 -31
  144. package/dist/{chunk-GMJXC5AL.js → chunk-QL4VNY4U.js} +1 -1
  145. package/dist/{chunk-TEBBD4XH.js → chunk-QR65C3DV.js} +4 -4
  146. package/dist/{chunk-SG5KY4VB.js → chunk-QXGOEP44.js} +3 -3
  147. package/dist/chunk-QY7RGTUP.js +326 -0
  148. package/dist/{chunk-XZJE6WIT.js → chunk-RA64IK43.js} +1 -1
  149. package/dist/{chunk-7HWXYP4H.js → chunk-RLJDYLID.js} +11 -11
  150. package/dist/{chunk-NELU7LSL.js → chunk-RMLUZYEA.js} +10 -10
  151. package/dist/chunk-RSVBX6A3.js +54 -0
  152. package/dist/{chunk-D7MWYJZF.js → chunk-RZWZO2JQ.js} +16 -17
  153. package/dist/{chunk-KQRYW7OS.js → chunk-SAC6FNKR.js} +108 -108
  154. package/dist/{chunk-HR4DVO6X.js → chunk-SCBU46AJ.js} +3 -3
  155. package/dist/{chunk-Q32Y5T2U.js → chunk-SGNHNN3G.js} +11 -11
  156. package/dist/{chunk-WKXOEIOY.js → chunk-SHAAGH3T.js} +14 -14
  157. package/dist/{chunk-ATNG5VOZ.js → chunk-SK5OYWIY.js} +2 -2
  158. package/dist/{chunk-CE4S5ZY3.js → chunk-SNSFQ47W.js} +11 -11
  159. package/dist/{chunk-WCLAOKCH.js → chunk-SSL6JMPA.js} +8 -8
  160. package/dist/{chunk-SKMHS4CL.js → chunk-TA2ZNDYD.js} +1 -1
  161. package/dist/{chunk-YVCOQ5TZ.js → chunk-TEHH47TG.js} +3 -3
  162. package/dist/{chunk-EATSD7YD.js → chunk-TEZSZ24W.js} +4 -4
  163. package/dist/{chunk-RB2VSED2.js → chunk-TH526O6E.js} +11 -11
  164. package/dist/{chunk-WUP77GG2.js → chunk-TIAPEYWI.js} +3 -3
  165. package/dist/{chunk-C75W7VXX.js → chunk-TLCRIAU3.js} +20 -18
  166. package/dist/chunk-TV4CGNEY.js +43 -0
  167. package/dist/{chunk-IY4PHPHT.js → chunk-TVSNWIAM.js} +7 -5
  168. package/dist/{chunk-7RUMD56V.js → chunk-TWHZU36X.js} +1 -1
  169. package/dist/{chunk-JBSD57N7.js → chunk-TXV2AYZB.js} +23 -23
  170. package/dist/{chunk-JMOLB347.js → chunk-U25OX22K.js} +64 -8
  171. package/dist/{chunk-JQX6BSE4.js → chunk-U4NNG3ES.js} +10 -10
  172. package/dist/{chunk-3LU6YCSQ.js → chunk-U5T4A2QV.js} +5 -5
  173. package/dist/{chunk-G7WZH54P.js → chunk-UT5OA7KA.js} +20 -10
  174. package/dist/{chunk-MKC7P5LD.js → chunk-V3VCUSQ6.js} +14 -14
  175. package/dist/{chunk-MYOW3RPC.js → chunk-V5XV3JSP.js} +6 -6
  176. package/dist/{chunk-YWOMGMZB.js → chunk-VF4VOPMB.js} +22 -22
  177. package/dist/{chunk-DYWTQXP4.js → chunk-VLDM4QZM.js} +22 -22
  178. package/dist/chunk-VP5H6DII.js +34 -0
  179. package/dist/{chunk-OHXTB6CO.js → chunk-VRYQJZFL.js} +7 -8
  180. package/dist/{chunk-EQOSXLK3.js → chunk-VS6FS472.js} +14 -14
  181. package/dist/{chunk-U5PDQTLA.js → chunk-VTMIRRIZ.js} +2 -2
  182. package/dist/{chunk-MSL3CLHX.js → chunk-VXSJKWB7.js} +16 -16
  183. package/dist/{chunk-MQNBEO3N.js → chunk-WE5VMPUP.js} +106 -102
  184. package/dist/{chunk-J27QGXO4.js → chunk-WEG7DY5K.js} +9 -9
  185. package/dist/{chunk-OXVVRJDQ.js → chunk-WIF7A6JU.js} +11 -11
  186. package/dist/{chunk-KXZR2BLL.js → chunk-WM4N2L4T.js} +1 -1
  187. package/dist/{chunk-NIYB5K5B.js → chunk-X64BFQ3R.js} +9 -9
  188. package/dist/{chunk-WGU6NIUV.js → chunk-XJRC3ZDI.js} +12 -12
  189. package/dist/{chunk-EAQFRD2B.js → chunk-XVIVWG7B.js} +6 -6
  190. package/dist/{chunk-3WU7LVTL.js → chunk-Y3ZKT6IF.js} +5 -5
  191. package/dist/{chunk-7KXYMC2P.js → chunk-YURIUFKF.js} +15 -15
  192. package/dist/{chunk-R3RVFCJ2.js → chunk-YY2WGL6S.js} +2 -2
  193. package/dist/{chunk-HQMCHHY5.js → chunk-Z2BA4NNR.js} +2 -2
  194. package/dist/{chunk-JUQHYTXN.js → chunk-Z47YGBUY.js} +18 -17
  195. package/dist/chunk-Z4JSRKNR.js +41 -0
  196. package/dist/{chunk-DGKNOPSE.js → chunk-Z53ZB34U.js} +7 -7
  197. package/dist/{chunk-LEHZTKB3.js → chunk-ZBOPIYOY.js} +11 -11
  198. package/dist/{chunk-KIWEBM6G.js → chunk-ZBQCLKTH.js} +11 -11
  199. package/dist/chunk-ZGI7DNJ6.js +38 -0
  200. package/dist/{chunk-BUWSOQLU.js → chunk-ZPT4QX3J.js} +4 -4
  201. package/dist/{chunk-52WCHTVZ.js → chunk-ZS47PQ3O.js} +3 -3
  202. package/dist/{chunk-7J7UY46S.js → chunk-ZTIMXVV5.js} +2 -2
  203. package/dist/{chunk-ZKUDS7JG.js → chunk-ZYASEL7K.js} +4 -4
  204. package/dist/files.json +443 -439
  205. package/dist/packages/sdk/npm/index.js +9 -0
  206. package/dist/packages/ui/dist/assets/{elk-api-DDup23Us.js → elk-api-D2NcYpUJ.js} +2 -2
  207. package/dist/packages/ui/dist/assets/index-CT7skl01.js +29 -0
  208. package/dist/packages/ui/dist/index.html +1 -1
  209. package/package.json +3 -3
  210. package/dist/chunk-4Y4FY34K.js +0 -34
  211. package/dist/chunk-ACWQDL6T.js +0 -37
  212. package/dist/chunk-ASKDCMW5.js +0 -275
  213. package/dist/chunk-B3UHYXHU.js +0 -41
  214. package/dist/chunk-DDAEAZEV.js +0 -54
  215. package/dist/chunk-E25G46RW.js +0 -54
  216. package/dist/chunk-KQK6SQPE.js +0 -48
  217. package/dist/chunk-NCR24CPV.js +0 -41
  218. package/dist/chunk-NDW4ROST.js +0 -38
  219. package/dist/chunk-OJN7WME4.js +0 -34
  220. package/dist/chunk-UFTQIK2J.js +0 -43
  221. package/dist/chunk-ZHWSL6SR.js +0 -45
  222. package/dist/packages/ui/dist/assets/index-mTOWhQZm.js +0 -29
@@ -0,0 +1,326 @@
1
+ import { createRequire as __atticusCreateRequire } from "node:module";
2
+ import { fileURLToPath as __atticusFileURLToPath } from "node:url";
3
+ var require = __atticusCreateRequire(import.meta.url);
4
+ var __atticusUrl = (p) => new URL("./" + p, import.meta.url).href;
5
+ var __atticusPath = (p) => __atticusFileURLToPath(__atticusUrl(p));
6
+ import {
7
+ loadReadPlan,
8
+ saveReadPlan
9
+ } from "./chunk-P76AW3PA.js";
10
+ import {
11
+ FACT_RULES_HASH,
12
+ RULE_SETS,
13
+ factRulesFor,
14
+ factsReference,
15
+ ruleSetKinds,
16
+ rulesLacking,
17
+ rulesNow,
18
+ topUpWords
19
+ } from "./chunk-GHSVJNVL.js";
20
+ import {
21
+ fileKinds,
22
+ kindsOf,
23
+ lineRangeOf,
24
+ planBatches,
25
+ readingRank,
26
+ sameCommit
27
+ } from "./chunk-MLAACAES.js";
28
+ import {
29
+ DATA_RULE,
30
+ neutralise,
31
+ wrapData
32
+ } from "./chunk-CQD26SMZ.js";
33
+ import {
34
+ citedFiles,
35
+ factsDirOf,
36
+ factsRelOf,
37
+ parseFacts
38
+ } from "./chunk-U25OX22K.js";
39
+ import {
40
+ writeFileAtomic
41
+ } from "./chunk-MMB2OHUY.js";
42
+
43
+ // packages/cli/dist/map-rules.js
44
+ import { readFile } from "node:fs/promises";
45
+ import { join } from "node:path";
46
+ var has = (a, b) => a.some((x) => b.includes(x));
47
+ function applies(set, f) {
48
+ switch (set) {
49
+ case "field-types":
50
+ case "message-types":
51
+ return f.code ? f.rank === 2 || f.rank === 3 || f.cited.has("entry") || f.cited.has("call") || f.cited.has("field") : f.rank === 3 && f.kinds.includes("protocols");
52
+ case "mappings":
53
+ return f.kinds.includes("gateway");
54
+ case "terms":
55
+ return !f.code && has(f.kinds, ["config", "deploy", "gateway"]);
56
+ case "call-auth":
57
+ return f.code ? f.rank === 1 || f.rank === 3 || f.cited.has("call") : has(f.kinds, ["config", "gateway"]);
58
+ }
59
+ }
60
+ function topUpFiles(o) {
61
+ const whole = planBatches(o.source, {
62
+ room: Number.MAX_SAFE_INTEGER,
63
+ exclude: o.exclude,
64
+ ...o.conventions ? { conventions: o.conventions } : {}
65
+ });
66
+ const cites = /* @__PURE__ */ new Map();
67
+ for (const f of o.facts)
68
+ for (const p of citedFiles(f)) {
69
+ const k = cites.get(p) ?? /* @__PURE__ */ new Set();
70
+ k.add(f.kind);
71
+ cites.set(p, k);
72
+ }
73
+ const out = [];
74
+ for (const slice of whole.batches.flat()) {
75
+ const path = slice.path;
76
+ const rank = readingRank(path);
77
+ if (rank === 5)
78
+ continue;
79
+ const kinds = fileKinds(path);
80
+ const of = {
81
+ kinds,
82
+ rank,
83
+ code: kinds.includes("backend") || kinds.includes("frontend"),
84
+ cited: cites.get(path) ?? /* @__PURE__ */ new Set()
85
+ };
86
+ const sets = o.sets.filter((s) => has(kinds, ruleSetKinds(s)) && applies(s, of));
87
+ if (sets.length)
88
+ out.push({ path, tokens: slice.tokens, lines: slice.of, sets });
89
+ }
90
+ return out;
91
+ }
92
+ function ruleSetsOfFiles(files) {
93
+ const all = new Set(files.flatMap((f) => f.sets));
94
+ return RULE_SETS.filter((x) => all.has(x));
95
+ }
96
+ function topUpSessions(files, room) {
97
+ const reads = [];
98
+ for (const f of files) {
99
+ if (f.tokens <= room || f.lines <= 1) {
100
+ reads.push({ path: f.path, file: f.path, tokens: f.tokens, sets: f.sets });
101
+ continue;
102
+ }
103
+ const per = Math.max(1, Math.floor(f.lines * room / f.tokens));
104
+ for (let from = 1; from <= f.lines; from += per) {
105
+ const to = Math.min(f.lines, from + per - 1);
106
+ reads.push({
107
+ path: `${f.path}#L${from}-L${to}`,
108
+ file: f.path,
109
+ tokens: Math.ceil(f.tokens * (to - from + 1) / f.lines),
110
+ sets: f.sets
111
+ });
112
+ }
113
+ }
114
+ const sessions = [];
115
+ for (const r of reads) {
116
+ const last = sessions.at(-1);
117
+ if (last && last.tokens + r.tokens <= room) {
118
+ last.reads.push(r);
119
+ last.tokens += r.tokens;
120
+ } else
121
+ sessions.push({ reads: [r], tokens: r.tokens });
122
+ }
123
+ return sessions.map((s) => ({
124
+ paths: s.reads.map((r) => r.path),
125
+ sets: ruleSetsOfFiles(s.reads),
126
+ files: new Set(s.reads.map((r) => r.file)).size,
127
+ tokens: s.tokens
128
+ }));
129
+ }
130
+ var stamp = () => (/* @__PURE__ */ new Date()).toISOString().replace(/\.\d{3}Z$/, "Z");
131
+ async function factsOf(root, repo) {
132
+ const text = await readFile(join(factsDirOf(root), `${repo}.jsonl`), "utf8").catch(() => "");
133
+ if (!text.trim())
134
+ return `${repo} isn't read yet: atticus map ${repo} reads it, under every rule.`;
135
+ const p = parseFacts(text);
136
+ return p.ok ? p.facts : `${factsRelOf(root)}/${repo}.jsonl does not read as facts (${p.issues[0]?.message ?? "?"}).`;
137
+ }
138
+ async function topUpOf(root, repo, o) {
139
+ const plan = await loadReadPlan(root, repo);
140
+ const lacking = rulesLacking(plan?.rules);
141
+ if (!lacking.length)
142
+ return { lacking, files: [], ...plan ? { plan } : {} };
143
+ const facts = o.facts?.length ? [...o.facts] : await factsOf(root, repo);
144
+ if (typeof facts === "string")
145
+ return { error: facts };
146
+ if (!facts.length)
147
+ return { error: `${repo} isn't read yet: atticus map ${repo} reads it.` };
148
+ if (!facts.every((f) => sameCommit(f.commit, o.commit)))
149
+ return {
150
+ error: `${repo}'s clone moved past its facts' commit: read what changed first (atticus map ${repo}), then top it up.`
151
+ };
152
+ const files = topUpFiles({
153
+ facts,
154
+ source: o.source,
155
+ exclude: o.exclude,
156
+ sets: lacking,
157
+ ...o.conventions ? { conventions: o.conventions } : {}
158
+ });
159
+ return { lacking, files, ...plan ? { plan } : {} };
160
+ }
161
+ var planOr = (plan, repo, commit, session) => plan ?? { schemaVersion: 2, repo, commit, session, plannedAt: stamp(), parts: [] };
162
+ async function recordRulesNow(root, repo, commit) {
163
+ const plan = await loadReadPlan(root, repo);
164
+ const { topUp: _t, ...rest } = planOr(plan, repo, commit, 15e4);
165
+ if (plan?.rules?.hash === FACT_RULES_HASH && !plan.topUp)
166
+ return;
167
+ await saveReadPlan(root, { ...rest, rules: rulesNow() });
168
+ }
169
+ async function recordTopUpVerified(root, repo, o) {
170
+ const plan = await loadReadPlan(root, repo);
171
+ const t = plan?.topUp;
172
+ if (!plan || !t || !o.commit || !sameCommit(t.commit, o.commit))
173
+ return;
174
+ const given = t.sessions.filter((s) => s.given && !s.done);
175
+ if (!given.length)
176
+ return;
177
+ const at = o.now ?? stamp();
178
+ const sessions = t.sessions.map((s) => s.given && !s.done ? { ...s, done: { at, commit: o.commit } } : s);
179
+ if (sessions.every((s) => s.done)) {
180
+ const { topUp: _t, ...rest } = plan;
181
+ const sets = [.../* @__PURE__ */ new Set([...plan.rules?.sets ?? [], ...t.sets])];
182
+ await saveReadPlan(root, {
183
+ ...rest,
184
+ rules: t.hash === FACT_RULES_HASH ? rulesNow() : { hash: t.hash, sets }
185
+ });
186
+ return;
187
+ }
188
+ await saveReadPlan(root, { ...plan, topUp: { ...t, sessions } });
189
+ }
190
+ var rulesRelOf = (root, repo) => `${factsRelOf(root)}/${repo}.rules.md`;
191
+ var sameSets = (a, b) => a.length === b.length && a.every((x) => b.includes(x));
192
+ async function plannedTopUp(root, repo, o) {
193
+ const t = await topUpOf(root, repo, o);
194
+ if ("error" in t)
195
+ return t;
196
+ if (!t.lacking.length)
197
+ return { lacking: [], facts: [] };
198
+ const facts = await factsOf(root, repo);
199
+ if (typeof facts === "string")
200
+ return { error: facts };
201
+ const on = t.plan?.topUp;
202
+ if (on && sameCommit(on.commit, o.commit) && on.hash === FACT_RULES_HASH && sameSets(on.sets, t.lacking))
203
+ return { lacking: t.lacking, topUp: on, facts };
204
+ const topUp = {
205
+ commit: o.commit,
206
+ hash: FACT_RULES_HASH,
207
+ sets: t.lacking,
208
+ session: o.session,
209
+ plannedAt: stamp(),
210
+ sessions: topUpSessions(t.files, o.session)
211
+ };
212
+ if (!o.dryRun && topUp.sessions.length)
213
+ await saveReadPlan(root, { ...planOr(t.plan, repo, o.commit, o.session), topUp });
214
+ return { lacking: t.lacking, topUp, facts };
215
+ }
216
+ async function mapRules(root, repo, o, io) {
217
+ const p = await plannedTopUp(root, repo, o);
218
+ if ("error" in p) {
219
+ io.err(p.error);
220
+ return 2;
221
+ }
222
+ if (!p.lacking.length || !p.topUp) {
223
+ if (o.json)
224
+ io.out(JSON.stringify({ repo, commit: o.commit, sets: [], sessions: 0 }, null, 2));
225
+ else
226
+ io.out(`${repo} was read under the reading rules there are now: nothing to top up.`);
227
+ return 0;
228
+ }
229
+ const t = p.topUp;
230
+ if (!t.sessions.length) {
231
+ await recordRulesNow(root, repo, o.commit);
232
+ if (o.json)
233
+ io.out(JSON.stringify({ repo, commit: o.commit, sets: t.sets, sessions: 0 }, null, 2));
234
+ else
235
+ io.out(`No file of ${repo} is one the reading rules added since it was read apply to (${t.sets.join(", ")}): its read is recorded as under the rules there are now.`);
236
+ return 0;
237
+ }
238
+ const n = t.sessions.findIndex((s) => !s.done);
239
+ const next = t.sessions[n];
240
+ const sessions = t.sessions.map((s, i) => i === n ? { ...s, given: stamp() } : s);
241
+ const plan = await loadReadPlan(root, repo);
242
+ await saveReadPlan(root, { ...plan, topUp: { ...t, sessions } });
243
+ const rel = rulesRelOf(root, repo);
244
+ await writeFileAtomic(join(factsDirOf(root), `${repo}.rules.md`), rulesPrompt(repo, o.commit, {
245
+ rel: factsRelOf(root),
246
+ session: next,
247
+ n: n + 1,
248
+ of: t.sessions.length,
249
+ facts: p.facts,
250
+ notes: o.notes
251
+ }));
252
+ if (o.json) {
253
+ io.out(JSON.stringify({
254
+ repo,
255
+ commit: o.commit,
256
+ sets: t.sets,
257
+ session: n + 1,
258
+ sessions: t.sessions.length,
259
+ paths: next.paths,
260
+ tokens: next.tokens,
261
+ prompt: rel
262
+ }, null, 2));
263
+ return 0;
264
+ }
265
+ const files = new Set(t.sessions.flatMap((s) => s.paths.map((x) => lineRangeOf(x)?.file ?? x)));
266
+ const tokens = t.sessions.reduce((x, s) => x + s.tokens, 0);
267
+ io.out(`Top-up of ${repo} for the reading rules added since it was read (${t.sets.join(", ")}): ${files.size} ${files.size === 1 ? "file" : "files"}, about ${tokens.toLocaleString("en-US")} tokens, in ${t.sessions.length} ${t.sessions.length === 1 ? "session" : "sessions"} of ${o.session.toLocaleString("en-US")} at most.`);
268
+ io.out(`Wrote ${rel}: session ${n + 1} of ${t.sessions.length}, ${next.paths.length} ${next.paths.length === 1 ? "read" : "reads"} (${next.sets.join(", ")}), about ${next.tokens.toLocaleString("en-US")} tokens.`);
269
+ io.out(`Start a new chat, so the session holds only these files, and run /atticus-map ${repo} --rules there (or paste ${rel}). When atticus verify ${repo} passes after it, the session is done${t.sessions.length > n + 1 ? `; the next is for another new chat` : ` and the read records the rules there are now`}.`);
270
+ return 0;
271
+ }
272
+ var factLine = (f) => `- ${f.id} (${f.kind}, ${f.cite.file}:${f.cite.line})`;
273
+ function rulesPrompt(repo, commit, c) {
274
+ const s = c.session;
275
+ const sets = s.sets;
276
+ const files = s.paths.map((x) => lineRangeOf(x)?.file ?? x);
277
+ const list = s.paths.map((x) => `- \`${x}\``).join("\n");
278
+ const kept = c.facts.filter((f) => citedFiles(f).some((p) => files.includes(p)));
279
+ const block = (id, kind, origin, text) => wrapData({ id, kind, origin }, neutralise(text, void 0, { mark: true }).text);
280
+ return [
281
+ `# Top-up of ${repo} at ${commit}`,
282
+ "",
283
+ `Session ${c.n} of ${c.of}, about ${s.tokens.toLocaleString("en-US")} tokens of source. ${topUpWords(sets)} Open each path below and nothing else: a path ending \`#L<from>-L<to>\` by those lines only, never the whole file.`,
284
+ "",
285
+ `- Write each fact to \`${c.rel}/${repo}.jsonl\`, appended, with \`commit\` ${commit}. A kept fact you add to is written again whole, under its id.`,
286
+ `- Then run \`atticus verify ${repo}\` and fix what it rejects until it exits 0: that records this session done${c.of > c.n ? `. The next session is for a new chat: \`/atticus-map ${repo} --rules\` there` : ", and the read as under the rules there are now"}.`,
287
+ "",
288
+ "## The rules",
289
+ "",
290
+ "Each fact has this shape:",
291
+ "",
292
+ factsReference(),
293
+ "",
294
+ factRulesFor(kindsOf(files), void 0, sets),
295
+ "",
296
+ "## Read",
297
+ "",
298
+ `The paths to open are in the data block below. ${DATA_RULE}`,
299
+ "",
300
+ block(`${repo}.rules`, "rules", `${c.rel}/${repo}.read-plan.yaml`, list),
301
+ "",
302
+ "## Facts already kept (by id; don't write them again)",
303
+ "",
304
+ kept.length ? block(`${repo}.kept`, "facts", `${c.rel}/${repo}.jsonl`, kept.map(factLine).join("\n")) : "None cite these files.",
305
+ ...c.notes ? [
306
+ "",
307
+ "## The organisation's notes for this repo",
308
+ "",
309
+ block(`${repo}.notes`, "notes", "org-pack", c.notes)
310
+ ] : [],
311
+ ""
312
+ ].join("\n");
313
+ }
314
+
315
+ export {
316
+ topUpFiles,
317
+ ruleSetsOfFiles,
318
+ topUpSessions,
319
+ topUpOf,
320
+ recordRulesNow,
321
+ recordTopUpVerified,
322
+ rulesRelOf,
323
+ plannedTopUp,
324
+ mapRules,
325
+ rulesPrompt
326
+ };
@@ -14,7 +14,7 @@ import {
14
14
  require_dist,
15
15
  runsDirOf,
16
16
  toCanonicalYaml
17
- } from "./chunk-JMOLB347.js";
17
+ } from "./chunk-U25OX22K.js";
18
18
  import {
19
19
  __toESM
20
20
  } from "./chunk-TV45EUGM.js";
@@ -9,52 +9,52 @@ import {
9
9
  loadTask,
10
10
  openTaskWorktree,
11
11
  readChangeTasks
12
- } from "./chunk-EI4KQYJ3.js";
12
+ } from "./chunk-7TH6I6TL.js";
13
13
  import {
14
14
  buildEngineFor
15
- } from "./chunk-6RGIM2ZH.js";
15
+ } from "./chunk-GHSVJNVL.js";
16
16
  import {
17
17
  slug,
18
18
  writeGateRound
19
- } from "./chunk-PQW7PYUR.js";
19
+ } from "./chunk-DGZXJO5I.js";
20
20
  import {
21
21
  conform,
22
22
  readConformDeltas,
23
23
  readTaskSteps,
24
24
  renderTaskContext,
25
25
  taskContext
26
- } from "./chunk-EV4TEFOD.js";
26
+ } from "./chunk-DWYPYVPJ.js";
27
27
  import {
28
28
  readChangeFiles,
29
29
  readRound,
30
30
  roundsOf,
31
31
  writeQuarantineItems
32
- } from "./chunk-T6ESD5KM.js";
32
+ } from "./chunk-GMDOXWIS.js";
33
33
  import {
34
34
  changeFolder,
35
35
  changeStore
36
- } from "./chunk-3LU6YCSQ.js";
36
+ } from "./chunk-U5T4A2QV.js";
37
37
  import {
38
38
  AdapterError,
39
39
  createAdapters,
40
40
  fileStepStore,
41
41
  requireApproval
42
- } from "./chunk-CAN3EBE5.js";
42
+ } from "./chunk-DW4BM73R.js";
43
43
  import {
44
44
  scanEstate
45
- } from "./chunk-IILZ7J3L.js";
45
+ } from "./chunk-22GLUHGE.js";
46
46
  import {
47
47
  baseClonePath,
48
48
  createGit,
49
49
  toRepoRelative
50
- } from "./chunk-XZJE6WIT.js";
50
+ } from "./chunk-RA64IK43.js";
51
51
  import {
52
52
  HandoffRuntime,
53
53
  buildContextPack,
54
54
  createRuntime,
55
55
  quarantineItems,
56
56
  toRunSummary
57
- } from "./chunk-BKFGGJKA.js";
57
+ } from "./chunk-CQD26SMZ.js";
58
58
  import {
59
59
  AgentDefinition,
60
60
  ChecklistPack,
@@ -74,7 +74,7 @@ import {
74
74
  stateDirOf,
75
75
  taskBranch,
76
76
  toCanonicalYaml
77
- } from "./chunk-JMOLB347.js";
77
+ } from "./chunk-U25OX22K.js";
78
78
  import {
79
79
  writeFileAtomic
80
80
  } from "./chunk-MMB2OHUY.js";
@@ -7,10 +7,10 @@ import {
7
7
  cliMarkdown,
8
8
  gradeDialect,
9
9
  kindsMarkdown
10
- } from "./chunk-XKJRPVJO.js";
10
+ } from "./chunk-INCECZ2E.js";
11
11
  import {
12
12
  generateTests
13
- } from "./chunk-PQW7PYUR.js";
13
+ } from "./chunk-DGZXJO5I.js";
14
14
  import {
15
15
  DEFAULT_DONE,
16
16
  DESIGN_FORMAT,
@@ -33,19 +33,19 @@ import {
33
33
  storySteps,
34
34
  unfence,
35
35
  writesField
36
- } from "./chunk-EV4TEFOD.js";
36
+ } from "./chunk-DWYPYVPJ.js";
37
37
  import {
38
38
  DesignScreen
39
- } from "./chunk-6N2GUZMZ.js";
39
+ } from "./chunk-ISXNWUG7.js";
40
40
  import {
41
41
  BUILT_IN_CHECKS,
42
42
  runCritic
43
- } from "./chunk-T6ESD5KM.js";
43
+ } from "./chunk-GMDOXWIS.js";
44
44
  import {
45
45
  buildGlossary,
46
46
  proposeDefinitions,
47
47
  undefinedCodeTerms
48
- } from "./chunk-IILZ7J3L.js";
48
+ } from "./chunk-22GLUHGE.js";
49
49
  import {
50
50
  askKnowledge,
51
51
  checkQuote,
@@ -60,16 +60,16 @@ import {
60
60
  termsOf,
61
61
  writeKnowledge,
62
62
  writeSnapshots
63
- } from "./chunk-TEBBD4XH.js";
63
+ } from "./chunk-QR65C3DV.js";
64
64
  import {
65
65
  writeChangeRepos
66
- } from "./chunk-XZJE6WIT.js";
66
+ } from "./chunk-RA64IK43.js";
67
67
  import {
68
68
  MockRuntime,
69
69
  ReplayRuntime,
70
70
  RuntimeError,
71
71
  buildContextPack
72
- } from "./chunk-BKFGGJKA.js";
72
+ } from "./chunk-CQD26SMZ.js";
73
73
  import {
74
74
  AgentDefinition,
75
75
  KNOWLEDGE_KINDS,
@@ -84,7 +84,7 @@ import {
84
84
  require_dist,
85
85
  serializeRecord,
86
86
  stateDirOf
87
- } from "./chunk-JMOLB347.js";
87
+ } from "./chunk-U25OX22K.js";
88
88
  import {
89
89
  __toESM
90
90
  } from "./chunk-TV45EUGM.js";
@@ -0,0 +1,54 @@
1
+ import { createRequire as __atticusCreateRequire } from "node:module";
2
+ import { fileURLToPath as __atticusFileURLToPath } from "node:url";
3
+ var require = __atticusCreateRequire(import.meta.url);
4
+ var __atticusUrl = (p) => new URL("./" + p, import.meta.url).href;
5
+ var __atticusPath = (p) => __atticusFileURLToPath(__atticusUrl(p));
6
+ import {
7
+ completionOf,
8
+ handoffDone,
9
+ openspecCheck,
10
+ openspecSetup,
11
+ workspaceOpen,
12
+ workspacePrune,
13
+ workspaceSync
14
+ } from "./chunk-KNGESBFW.js";
15
+ import "./chunk-4VOG5H2K.js";
16
+ import "./chunk-INCECZ2E.js";
17
+ import "./chunk-7TH6I6TL.js";
18
+ import "./chunk-GHSVJNVL.js";
19
+ import "./chunk-ITJ7ST5E.js";
20
+ import "./chunk-FSJMFPA3.js";
21
+ import "./chunk-4HIQ2FTI.js";
22
+ import "./chunk-EREL3TQG.js";
23
+ import "./chunk-WEG7DY5K.js";
24
+ import "./chunk-DGZXJO5I.js";
25
+ import "./chunk-TA2ZNDYD.js";
26
+ import "./chunk-DWYPYVPJ.js";
27
+ import "./chunk-ISXNWUG7.js";
28
+ import "./chunk-VOGCSYOI.js";
29
+ import "./chunk-GMDOXWIS.js";
30
+ import "./chunk-U5T4A2QV.js";
31
+ import "./chunk-JQG4VO47.js";
32
+ import "./chunk-DW4BM73R.js";
33
+ import "./chunk-22GLUHGE.js";
34
+ import "./chunk-QR65C3DV.js";
35
+ import "./chunk-MLAACAES.js";
36
+ import "./chunk-HY2VVVFZ.js";
37
+ import "./chunk-PJRMMWU4.js";
38
+ import "./chunk-34NWVIBC.js";
39
+ import "./chunk-77UOXZVM.js";
40
+ import "./chunk-RA64IK43.js";
41
+ import "./chunk-MRLCNXXR.js";
42
+ import "./chunk-CQD26SMZ.js";
43
+ import "./chunk-U25OX22K.js";
44
+ import "./chunk-MMB2OHUY.js";
45
+ import "./chunk-TV45EUGM.js";
46
+ export {
47
+ completionOf,
48
+ handoffDone,
49
+ openspecCheck,
50
+ openspecSetup,
51
+ workspaceOpen,
52
+ workspacePrune,
53
+ workspaceSync
54
+ };
@@ -12,23 +12,22 @@ import {
12
12
  ruleLineOf,
13
13
  rulesCovering,
14
14
  taughtIn
15
- } from "./chunk-LS3WR2RF.js";
16
- import "./chunk-52WCHTVZ.js";
17
- import "./chunk-B3QOYE74.js";
18
- import "./chunk-LVBPY2M6.js";
19
- import "./chunk-ASKDCMW5.js";
20
- import "./chunk-LDIARP6F.js";
21
- import "./chunk-6RGIM2ZH.js";
22
- import "./chunk-IILZ7J3L.js";
23
- import "./chunk-TEBBD4XH.js";
24
- import "./chunk-XPWSNKF3.js";
25
- import "./chunk-WIMOJMAK.js";
26
- import "./chunk-5V5BJACL.js";
27
- import "./chunk-GVFUEGGM.js";
28
- import "./chunk-XZJE6WIT.js";
29
- import "./chunk-FMRMTI7W.js";
30
- import "./chunk-BKFGGJKA.js";
31
- import "./chunk-JMOLB347.js";
15
+ } from "./chunk-7TEQF64E.js";
16
+ import "./chunk-ZS47PQ3O.js";
17
+ import "./chunk-3CFBU2O6.js";
18
+ import "./chunk-P76AW3PA.js";
19
+ import "./chunk-7VNEDDCC.js";
20
+ import "./chunk-GHSVJNVL.js";
21
+ import "./chunk-22GLUHGE.js";
22
+ import "./chunk-QR65C3DV.js";
23
+ import "./chunk-MLAACAES.js";
24
+ import "./chunk-HY2VVVFZ.js";
25
+ import "./chunk-PJRMMWU4.js";
26
+ import "./chunk-34NWVIBC.js";
27
+ import "./chunk-RA64IK43.js";
28
+ import "./chunk-MRLCNXXR.js";
29
+ import "./chunk-CQD26SMZ.js";
30
+ import "./chunk-U25OX22K.js";
32
31
  import "./chunk-MMB2OHUY.js";
33
32
  import "./chunk-TV45EUGM.js";
34
33
  export {