@maycombhq/atticus 2.0.0-beta.11 → 2.0.0-beta.12.1
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.
- package/dist/bin.js +3 -3
- package/dist/{chunk-4UZJOQYK.js → chunk-2A24BNRZ.js} +7 -7
- package/dist/{chunk-C2YGYTU6.js → chunk-2DJUQ6CO.js} +22 -22
- package/dist/{chunk-BQNEHB5U.js → chunk-2OWSG6BK.js} +11 -11
- package/dist/{chunk-23VFQHFQ.js → chunk-2QT6WVAK.js} +31 -21
- package/dist/chunk-2RMWW6G3.js +41 -0
- package/dist/{chunk-SILY6ZEZ.js → chunk-3256EDLL.js} +3 -3
- package/dist/{chunk-YLAM4HZH.js → chunk-34BCKMBS.js} +3 -3
- package/dist/{chunk-GVFUEGGM.js → chunk-34NWVIBC.js} +2 -2
- package/dist/{chunk-UABFFMWH.js → chunk-36CTZGPH.js} +7 -7
- package/dist/{chunk-77RSRG3A.js → chunk-3JLTN3Y7.js} +7 -7
- package/dist/{chunk-QWHTTA2X.js → chunk-3M7QBKKG.js} +8 -6
- package/dist/chunk-3PLE3ZQ5.js +34 -0
- package/dist/{chunk-LUPW4WLK.js → chunk-3W5R5J65.js} +8 -8
- package/dist/{chunk-EBWIOODZ.js → chunk-42L2WHP6.js} +4 -4
- package/dist/{chunk-KU4T2CXJ.js → chunk-4GNKICU5.js} +18 -18
- package/dist/{chunk-2K2ZEJVR.js → chunk-4HTILEXW.js} +2 -2
- package/dist/{chunk-HR4DVO6X.js → chunk-4JLB5ISS.js} +3 -3
- package/dist/{chunk-XOVLGBKI.js → chunk-5C24MOXU.js} +17 -17
- package/dist/{chunk-EHUYLNLC.js → chunk-5G5GD5HF.js} +14 -14
- package/dist/{chunk-HGQZTUAC.js → chunk-5I5JDJ3R.js} +4 -4
- package/dist/{chunk-KIWEBM6G.js → chunk-5IMZYLDW.js} +11 -11
- package/dist/{chunk-XJAJQGXJ.js → chunk-5ION6STH.js} +2 -2
- package/dist/{chunk-5ICB2BXH.js → chunk-5R2EWR47.js} +7 -7
- package/dist/{chunk-HOUUBE74.js → chunk-65XZSK6S.js} +4 -4
- package/dist/{chunk-LVBPY2M6.js → chunk-6AYUBYK6.js} +348 -15
- package/dist/{chunk-IY4PHPHT.js → chunk-6HSRGY4B.js} +7 -5
- package/dist/{chunk-Y5AYBGLB.js → chunk-6IKYFARG.js} +22 -13
- package/dist/{chunk-7KXYMC2P.js → chunk-6R2OM6Y3.js} +15 -15
- package/dist/{chunk-GWSWS264.js → chunk-6ROZRBWH.js} +4 -4
- package/dist/{chunk-TZXHUDI6.js → chunk-72DY5NCN.js} +2 -2
- package/dist/{chunk-XNRPCI23.js → chunk-77UOXZVM.js} +5 -5
- package/dist/{chunk-LS3WR2RF.js → chunk-7C7PTJM2.js} +256 -73
- package/dist/{chunk-VYNZED7B.js → chunk-7FPTI62T.js} +20 -20
- package/dist/{chunk-Z2EYRUOH.js → chunk-7H5HYERS.js} +19 -19
- package/dist/{chunk-4YWRU7JK.js → chunk-7MASAGFE.js} +15 -15
- package/dist/{chunk-7SZPENUP.js → chunk-7UKETVPW.js} +1 -1
- package/dist/{chunk-55TBYJF2.js → chunk-7UXSS23C.js} +18 -16
- package/dist/{chunk-XPWSNKF3.js → chunk-7VAMO66T.js} +398 -111
- package/dist/{chunk-LDIARP6F.js → chunk-7VNEDDCC.js} +2 -2
- package/dist/{chunk-TGEOLIAK.js → chunk-7XWCTVJS.js} +3 -3
- package/dist/{chunk-RJDP642F.js → chunk-ARLH2ZMD.js} +1 -1
- package/dist/{chunk-IRW64JFF.js → chunk-AUSC47BK.js} +4 -4
- package/dist/{chunk-JUZ75OG4.js → chunk-AY7Y3WPD.js} +15 -15
- package/dist/{chunk-4URR24DD.js → chunk-BFZSO2TP.js} +6 -6
- package/dist/{chunk-MYKQVS5W.js → chunk-BHHIHENP.js} +10 -6
- package/dist/{chunk-6V3DTQWK.js → chunk-BUD6JILH.js} +21 -21
- package/dist/{chunk-MKC7P5LD.js → chunk-CCXEXCRO.js} +14 -14
- package/dist/{chunk-52WCHTVZ.js → chunk-CGF4LKXR.js} +3 -3
- package/dist/{chunk-5ACUW753.js → chunk-CH6LUQLD.js} +1 -1
- package/dist/{chunk-7VFVQX5K.js → chunk-CIIRPLI6.js} +4 -4
- package/dist/{chunk-JEUXCIRD.js → chunk-CJ5FQHST.js} +5 -5
- package/dist/{chunk-U6YKL7SI.js → chunk-CKI4VG2I.js} +22 -22
- package/dist/{chunk-BKFGGJKA.js → chunk-CQD26SMZ.js} +3 -1
- package/dist/chunk-CU35HXQ7.js +48 -0
- package/dist/{chunk-KLKENMWQ.js → chunk-CUD4I2U6.js} +58 -43
- package/dist/{chunk-5TY4DTHQ.js → chunk-CUX4GRTB.js} +3 -3
- package/dist/{chunk-5NZSJ5ZG.js → chunk-CXY4YDXS.js} +2 -2
- package/dist/{chunk-XR5DD5DQ.js → chunk-CYDJK34J.js} +12 -7
- package/dist/{chunk-WKXOEIOY.js → chunk-DBVU45FY.js} +14 -14
- package/dist/{chunk-IILZ7J3L.js → chunk-DBZNQAMN.js} +171 -62
- package/dist/{chunk-D7MWYJZF.js → chunk-DDOLWHIM.js} +17 -17
- package/dist/{chunk-EW7MRMD5.js → chunk-DIAYQLEY.js} +16 -7
- package/dist/{chunk-OFWYZH6B.js → chunk-DKGWE5ZL.js} +21 -21
- package/dist/{chunk-27EDZN52.js → chunk-DLX2R3MI.js} +31 -31
- package/dist/{chunk-TCADP67G.js → chunk-DONCF2XC.js} +3 -3
- package/dist/{chunk-ORZSD2KD.js → chunk-DQKNOHUZ.js} +1 -1
- package/dist/{chunk-EAQFRD2B.js → chunk-DREIS5Z5.js} +6 -6
- package/dist/{chunk-CAN3EBE5.js → chunk-DW4BM73R.js} +1 -1
- package/dist/{chunk-C5JFMAXX.js → chunk-DX5H5YKM.js} +11 -11
- package/dist/{chunk-LZWVK4YY.js → chunk-EE3UNC44.js} +3 -3
- package/dist/{chunk-Z46OXTBE.js → chunk-EOCZDNWU.js} +5 -5
- package/dist/chunk-EOWO4YPF.js +43 -0
- package/dist/{chunk-NBGBMRIS.js → chunk-EREL3TQG.js} +1 -1
- package/dist/{chunk-NH5QH3WS.js → chunk-ESGIBN3S.js} +1 -1
- package/dist/chunk-EZ3FDHW3.js +41 -0
- package/dist/chunk-F5L23NGR.js +45 -0
- package/dist/{chunk-MQNBEO3N.js → chunk-FF5Q7ONT.js} +118 -104
- package/dist/{chunk-TC3KTG33.js → chunk-FLROTO6F.js} +3 -3
- package/dist/{chunk-YWOMGMZB.js → chunk-FNVY656P.js} +22 -22
- package/dist/{chunk-MCWWMMLN.js → chunk-FP6GJJY7.js} +22 -22
- package/dist/{chunk-SIUDWWKS.js → chunk-FSR7OUVJ.js} +23 -23
- package/dist/{chunk-GPLFYLGH.js → chunk-FT3RXIN4.js} +10 -10
- package/dist/{chunk-SH7AZZDA.js → chunk-FYWA2CPF.js} +17 -17
- package/dist/{chunk-5BJFMAQU.js → chunk-G2K2D6XS.js} +12 -12
- package/dist/{chunk-3LU6YCSQ.js → chunk-G5SKNMPC.js} +5 -5
- package/dist/{chunk-RB2VSED2.js → chunk-GIPQHVJF.js} +11 -11
- package/dist/{chunk-NELU7LSL.js → chunk-GJ4B2FYS.js} +10 -10
- package/dist/{chunk-KQRYW7OS.js → chunk-GRZGEMO5.js} +109 -108
- package/dist/{chunk-OR5VRULZ.js → chunk-GU7PEYRC.js} +10 -10
- package/dist/{chunk-MKIULIUQ.js → chunk-GUNBOZ75.js} +3 -3
- package/dist/{chunk-Q32Y5T2U.js → chunk-GX3Q5PRC.js} +11 -11
- package/dist/{chunk-ANCI3LFS.js → chunk-HIQWJ6JZ.js} +4 -4
- package/dist/{chunk-JBSD57N7.js → chunk-HK2CF6KQ.js} +23 -23
- package/dist/{chunk-ZKUDS7JG.js → chunk-HMQXIFOL.js} +4 -4
- package/dist/{chunk-WIMOJMAK.js → chunk-HY2VVVFZ.js} +168 -14
- package/dist/{chunk-BX52REMA.js → chunk-IDLO7UCZ.js} +5 -5
- package/dist/{chunk-CE4S5ZY3.js → chunk-IJ7TPOXQ.js} +11 -11
- package/dist/{chunk-6N2GUZMZ.js → chunk-ISXNWUG7.js} +1 -1
- package/dist/{chunk-DYWTQXP4.js → chunk-IZF2VJU5.js} +22 -22
- package/dist/{chunk-6RGIM2ZH.js → chunk-J22RSFKY.js} +79 -9
- package/dist/{chunk-WFYHOXTB.js → chunk-J3DTLYER.js} +15 -15
- package/dist/{chunk-LEHZTKB3.js → chunk-JC3BMRB5.js} +11 -11
- package/dist/{chunk-7RGCQ4VZ.js → chunk-JLIEAQP4.js} +4 -4
- package/dist/chunk-JOG6LBOP.js +38 -0
- package/dist/{chunk-L7I5PKGD.js → chunk-JQG4VO47.js} +1 -1
- package/dist/{chunk-RIEFYHXI.js → chunk-JS3DJH3Q.js} +4 -4
- package/dist/{chunk-DGKNOPSE.js → chunk-JWQMD54C.js} +7 -7
- package/dist/{chunk-XKJRPVJO.js → chunk-KJ6IH2D5.js} +5 -5
- package/dist/{chunk-T6ESD5KM.js → chunk-KPHPVOME.js} +4 -4
- package/dist/{chunk-YWZDAZMA.js → chunk-KY2ZHTBJ.js} +6 -6
- package/dist/{chunk-7HWXYP4H.js → chunk-LAOZB5YC.js} +11 -11
- package/dist/chunk-LRCWWMHH.js +54 -0
- package/dist/chunk-LVQMS54L.js +54 -0
- package/dist/{chunk-NG5R2WIY.js → chunk-M3BJTXLR.js} +9 -9
- package/dist/{chunk-7RUMD56V.js → chunk-M4D3VKAS.js} +1 -1
- package/dist/{chunk-UTR67XU2.js → chunk-MFRPLAOH.js} +2 -2
- package/dist/{chunk-HZYFLEWO.js → chunk-MI3GGF7V.js} +17 -17
- package/dist/{chunk-BA5DTXHQ.js → chunk-MIOY6EXD.js} +4 -4
- package/dist/{chunk-BUWSOQLU.js → chunk-ML3HOWPI.js} +4 -4
- package/dist/{chunk-SINJKQSI.js → chunk-MOY52LHS.js} +13 -13
- package/dist/{chunk-FMRMTI7W.js → chunk-MRLCNXXR.js} +1 -1
- package/dist/{chunk-5P5BGG5L.js → chunk-N2FA53DA.js} +6 -6
- package/dist/{chunk-ATNG5VOZ.js → chunk-N6YELFHL.js} +2 -2
- package/dist/{chunk-MYOW3RPC.js → chunk-N7HG4UP7.js} +6 -6
- package/dist/{chunk-7LCQ7JAM.js → chunk-NAKVQU6F.js} +1 -1
- package/dist/{chunk-3DDJLI7N.js → chunk-NTNJNRHW.js} +4 -4
- package/dist/{chunk-OHXTB6CO.js → chunk-NZY72PGJ.js} +13 -8
- package/dist/{chunk-4ONORLK5.js → chunk-O62VA6MH.js} +13 -13
- package/dist/{chunk-IVHN2VYG.js → chunk-OJAJXU65.js} +3 -1
- package/dist/{chunk-CZI2ACNT.js → chunk-OKUYBXXI.js} +16 -16
- package/dist/{chunk-EZSZFI54.js → chunk-OMH3I5BH.js} +2 -2
- package/dist/{chunk-5RUMHLIS.js → chunk-P3VBYYAS.js} +24 -3
- package/dist/{chunk-WUE6HKIU.js → chunk-P7SONIEO.js} +165 -46
- package/dist/{chunk-6E2GJANQ.js → chunk-PAOIMLTK.js} +19 -19
- package/dist/{chunk-B3QOYE74.js → chunk-PAQDPB6T.js} +4 -4
- package/dist/{chunk-DS3ZEJVN.js → chunk-PGFRXGHA.js} +2 -2
- package/dist/{chunk-5V5BJACL.js → chunk-PJRMMWU4.js} +2 -2
- package/dist/{chunk-S7ZWCMDO.js → chunk-PKCYRG6G.js} +57 -18
- package/dist/{chunk-26DBAGOP.js → chunk-PUGPT4Y6.js} +17 -17
- package/dist/{chunk-PQW7PYUR.js → chunk-PVMGHQWB.js} +7 -7
- package/dist/{chunk-MSL3CLHX.js → chunk-Q4AWUD6C.js} +16 -16
- package/dist/{chunk-JQX6BSE4.js → chunk-QC24Z5JU.js} +10 -10
- package/dist/{chunk-WCLAOKCH.js → chunk-QKSWQBWD.js} +8 -8
- package/dist/{chunk-GMJXC5AL.js → chunk-QL4VNY4U.js} +1 -1
- package/dist/chunk-QOF7U6BI.js +363 -0
- package/dist/{chunk-JRPQX2EK.js → chunk-QOPX5M7Y.js} +4 -4
- package/dist/{chunk-TEBBD4XH.js → chunk-QR65C3DV.js} +4 -4
- package/dist/{chunk-SG5KY4VB.js → chunk-QXGOEP44.js} +3 -3
- package/dist/{chunk-XZJE6WIT.js → chunk-RA64IK43.js} +1 -1
- package/dist/{chunk-3WU7LVTL.js → chunk-RMNYY5IE.js} +5 -5
- package/dist/chunk-S3QCJWCF.js +34 -0
- package/dist/{chunk-C75W7VXX.js → chunk-S4USA5WC.js} +20 -18
- package/dist/{chunk-FOQXYMOR.js → chunk-S5X7BVWP.js} +19 -19
- package/dist/{chunk-EV4TEFOD.js → chunk-SR2M7DWL.js} +13 -13
- package/dist/{chunk-R6UTCLH5.js → chunk-T4TMX54Q.js} +16 -16
- package/dist/{chunk-OXVVRJDQ.js → chunk-T72K4PLH.js} +11 -11
- package/dist/{chunk-SKMHS4CL.js → chunk-TA2ZNDYD.js} +1 -1
- package/dist/{chunk-CRQ73DIF.js → chunk-TBKJPKDN.js} +11 -11
- package/dist/{chunk-YVCOQ5TZ.js → chunk-TEHH47TG.js} +3 -3
- package/dist/{chunk-EATSD7YD.js → chunk-TEZSZ24W.js} +4 -4
- package/dist/{chunk-WUP77GG2.js → chunk-TIAPEYWI.js} +3 -3
- package/dist/{chunk-J27QGXO4.js → chunk-TIUBGJG3.js} +9 -9
- package/dist/{chunk-RWMSJP7H.js → chunk-TJHDFS33.js} +29 -26
- package/dist/chunk-TJP2KLZI.js +41 -0
- package/dist/{chunk-ZJQUIG3A.js → chunk-TV6ECMN3.js} +15 -14
- package/dist/{chunk-JMOLB347.js → chunk-U25OX22K.js} +64 -8
- package/dist/{chunk-UNFCFJMF.js → chunk-U2SGLXFR.js} +17 -17
- package/dist/{chunk-MV4637YA.js → chunk-U3JGJ3BO.js} +24 -24
- package/dist/{chunk-XF3DATVU.js → chunk-U43G5EUN.js} +17 -17
- package/dist/{chunk-SNHOLLGN.js → chunk-UQUDITWL.js} +84 -25
- package/dist/{chunk-EQOSXLK3.js → chunk-UYKKTEWB.js} +14 -14
- package/dist/{chunk-NX6QEEOA.js → chunk-VAL7HAIR.js} +3 -3
- package/dist/{chunk-JUQHYTXN.js → chunk-VC4JMXM5.js} +19 -17
- package/dist/{chunk-NIYB5K5B.js → chunk-VRH6ITQH.js} +9 -9
- package/dist/{chunk-U5PDQTLA.js → chunk-VTMIRRIZ.js} +2 -2
- package/dist/{chunk-H4VJO3M2.js → chunk-VUBVBFJW.js} +5 -5
- package/dist/{chunk-G7WZH54P.js → chunk-W3ZWS3B3.js} +20 -10
- package/dist/{chunk-GG6HIU74.js → chunk-WBOVB3XR.js} +24 -24
- package/dist/{chunk-IA2RKC6I.js → chunk-WFJMKUTR.js} +52 -11
- package/dist/{chunk-KXZR2BLL.js → chunk-WM4N2L4T.js} +1 -1
- package/dist/{chunk-7S3XFWOU.js → chunk-WRLEYM3T.js} +4 -4
- package/dist/{chunk-REWZE2XI.js → chunk-WSFPKNKT.js} +23 -23
- package/dist/{chunk-SUQZGPVG.js → chunk-XB64FJLU.js} +24 -24
- package/dist/{chunk-4AYZQ3SY.js → chunk-XBNKOARP.js} +4 -4
- package/dist/chunk-XDTD55UU.js +89 -0
- package/dist/{chunk-DQNKG4HY.js → chunk-XMYGEZQ7.js} +17 -17
- package/dist/{chunk-R3VFLYZZ.js → chunk-XP3KLC4S.js} +6 -6
- package/dist/{chunk-S2FDPN32.js → chunk-XRDYEEDE.js} +1 -1
- package/dist/{chunk-7HQOZALR.js → chunk-XSNIHYO6.js} +10 -10
- package/dist/chunk-XVQGT4SL.js +37 -0
- package/dist/{chunk-ZTNS3L5Z.js → chunk-XZLSKGJX.js} +5 -5
- package/dist/{chunk-NR5T46ZY.js → chunk-Y2FMWQQB.js} +16 -16
- package/dist/{chunk-7A7IG7OA.js → chunk-Y6LFFSRV.js} +10 -10
- package/dist/{chunk-V4XKYGLK.js → chunk-YISWYR3Q.js} +4 -4
- package/dist/{chunk-EI4KQYJ3.js → chunk-YSFIQGDK.js} +8 -8
- package/dist/{chunk-XPJR74MA.js → chunk-YVQWJDVN.js} +37 -25
- package/dist/{chunk-R3RVFCJ2.js → chunk-YY2WGL6S.js} +2 -2
- package/dist/{chunk-HQMCHHY5.js → chunk-Z2BA4NNR.js} +2 -2
- package/dist/{chunk-G3PBLW4K.js → chunk-ZDZCUZ4N.js} +34 -9
- package/dist/{chunk-UFBKJOWB.js → chunk-ZPPLFE4N.js} +14 -14
- package/dist/{chunk-WGU6NIUV.js → chunk-ZRP6ZXOF.js} +12 -12
- package/dist/{chunk-7J7UY46S.js → chunk-ZTIMXVV5.js} +2 -2
- package/dist/{chunk-IWZPGIGT.js → chunk-ZWGU46YO.js} +23 -23
- package/dist/files.json +441 -433
- package/dist/packages/sdk/npm/index.js +9 -0
- package/dist/packages/ui/dist/assets/{elk-api-DDup23Us.js → elk-api-D2NcYpUJ.js} +2 -2
- package/dist/packages/ui/dist/assets/index-CT7skl01.js +29 -0
- package/dist/packages/ui/dist/index.html +1 -1
- package/package.json +5 -5
- package/dist/chunk-4Y4FY34K.js +0 -34
- package/dist/chunk-ACWQDL6T.js +0 -37
- package/dist/chunk-ASKDCMW5.js +0 -275
- package/dist/chunk-B3UHYXHU.js +0 -41
- package/dist/chunk-DDAEAZEV.js +0 -54
- package/dist/chunk-E25G46RW.js +0 -54
- package/dist/chunk-KQK6SQPE.js +0 -48
- package/dist/chunk-NCR24CPV.js +0 -41
- package/dist/chunk-NDW4ROST.js +0 -38
- package/dist/chunk-OJN7WME4.js +0 -34
- package/dist/chunk-UFTQIK2J.js +0 -43
- package/dist/chunk-ZHWSL6SR.js +0 -45
- package/dist/packages/ui/dist/assets/index-mTOWhQZm.js +0 -29
|
@@ -4,19 +4,40 @@ var require = __atticusCreateRequire(import.meta.url);
|
|
|
4
4
|
var __atticusUrl = (p) => new URL("./" + p, import.meta.url).href;
|
|
5
5
|
var __atticusPath = (p) => __atticusFileURLToPath(__atticusUrl(p));
|
|
6
6
|
import {
|
|
7
|
-
|
|
8
|
-
} from "./chunk-
|
|
7
|
+
repoFor
|
|
8
|
+
} from "./chunk-7VNEDDCC.js";
|
|
9
9
|
import {
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
frameworkFacts,
|
|
11
|
+
insideRepo,
|
|
12
|
+
lineRangeOf,
|
|
13
|
+
parseReviewed
|
|
14
|
+
} from "./chunk-7VAMO66T.js";
|
|
12
15
|
import {
|
|
16
|
+
changesSince,
|
|
17
|
+
createGit
|
|
18
|
+
} from "./chunk-RA64IK43.js";
|
|
19
|
+
import {
|
|
20
|
+
globToRegExp
|
|
21
|
+
} from "./chunk-MRLCNXXR.js";
|
|
22
|
+
import {
|
|
23
|
+
Conventions,
|
|
24
|
+
DEFAULT_CONVENTIONS,
|
|
25
|
+
QuestionDraft,
|
|
13
26
|
citedFiles,
|
|
14
27
|
external_exports,
|
|
15
28
|
factsDirOf,
|
|
16
29
|
factsRelOf,
|
|
30
|
+
isAdopted,
|
|
31
|
+
isSecretPath,
|
|
32
|
+
loadOrgPack,
|
|
33
|
+
orgPackDirOf,
|
|
34
|
+
parseCorrections,
|
|
17
35
|
parseFacts,
|
|
18
|
-
|
|
19
|
-
|
|
36
|
+
parseFactsLines,
|
|
37
|
+
raiseQuestions,
|
|
38
|
+
require_dist,
|
|
39
|
+
serializeFacts
|
|
40
|
+
} from "./chunk-U25OX22K.js";
|
|
20
41
|
import {
|
|
21
42
|
writeFileAtomic
|
|
22
43
|
} from "./chunk-MMB2OHUY.js";
|
|
@@ -25,9 +46,237 @@ import {
|
|
|
25
46
|
} from "./chunk-TV45EUGM.js";
|
|
26
47
|
|
|
27
48
|
// packages/cli/dist/map-parts.js
|
|
49
|
+
var import_yaml2 = __toESM(require_dist(), 1);
|
|
50
|
+
import { readFile as readFile2 } from "node:fs/promises";
|
|
51
|
+
import { join as join2 } from "node:path";
|
|
52
|
+
|
|
53
|
+
// packages/cli/dist/facts-files.js
|
|
28
54
|
var import_yaml = __toESM(require_dist(), 1);
|
|
29
|
-
import {
|
|
55
|
+
import { existsSync } from "node:fs";
|
|
56
|
+
import { mkdir, readFile, rm, writeFile } from "node:fs/promises";
|
|
30
57
|
import { join } from "node:path";
|
|
58
|
+
async function checkoutOf(root, repo, dir) {
|
|
59
|
+
return dir ?? (isAdopted(root) ? root : (await repoFor(root, repo))?.dir ?? void 0);
|
|
60
|
+
}
|
|
61
|
+
async function headOf(dir) {
|
|
62
|
+
try {
|
|
63
|
+
const r = await createGit({ timeoutMs: 3e4 })(["rev-parse", "HEAD"], dir);
|
|
64
|
+
return r.stdout.trim() || void 0;
|
|
65
|
+
} catch {
|
|
66
|
+
return void 0;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
async function carryOf(dir, facts, commit, git) {
|
|
70
|
+
if (!commit)
|
|
71
|
+
return { carry: {}, missing: [] };
|
|
72
|
+
const r = await changesSince(dir, facts.map((f) => f.commit), commit, git);
|
|
73
|
+
return { carry: r.changes, missing: r.missing };
|
|
74
|
+
}
|
|
75
|
+
async function conventionsAt(root) {
|
|
76
|
+
const file = join(orgPackDirOf(root), "conventions.yaml");
|
|
77
|
+
if (!existsSync(file))
|
|
78
|
+
return DEFAULT_CONVENTIONS;
|
|
79
|
+
try {
|
|
80
|
+
const r = Conventions.safeParse((0, import_yaml.parse)(await readFile(file, "utf8")));
|
|
81
|
+
return r.success ? r.data : DEFAULT_CONVENTIONS;
|
|
82
|
+
} catch {
|
|
83
|
+
return DEFAULT_CONVENTIONS;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
async function excludesOf(root, repo) {
|
|
87
|
+
const file = join(orgPackDirOf(root), "scan", `${repo}.yaml`);
|
|
88
|
+
if (!existsSync(file))
|
|
89
|
+
return [];
|
|
90
|
+
try {
|
|
91
|
+
const doc = (0, import_yaml.parse)(await readFile(file, "utf8"));
|
|
92
|
+
return (doc?.exclude ?? []).map((e) => e.path).filter((p) => !!p);
|
|
93
|
+
} catch {
|
|
94
|
+
return [];
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
async function raiseReadQuestions(root, repo, lines, source, by) {
|
|
98
|
+
const drafts = [];
|
|
99
|
+
const problems = [];
|
|
100
|
+
for (const raw of lines) {
|
|
101
|
+
const line = JSON.stringify(raw);
|
|
102
|
+
const r2 = QuestionDraft.safeParse(raw);
|
|
103
|
+
if (!r2.success) {
|
|
104
|
+
problems.push({
|
|
105
|
+
line,
|
|
106
|
+
message: `not a question: ${r2.error.issues.map((i) => `${i.path.join(".") || "(root)"}: ${i.message}`).join("; ")}`
|
|
107
|
+
});
|
|
108
|
+
continue;
|
|
109
|
+
}
|
|
110
|
+
const bad = r2.data.evidence.find((e) => {
|
|
111
|
+
const file = e.slice(0, e.lastIndexOf(":"));
|
|
112
|
+
const n = Number(e.slice(e.lastIndexOf(":") + 1));
|
|
113
|
+
if (!insideRepo(file) || isSecretPath(file))
|
|
114
|
+
return true;
|
|
115
|
+
const text = source.read(file);
|
|
116
|
+
return text === void 0 || n < 1 || n > text.split(/\r?\n/).length;
|
|
117
|
+
});
|
|
118
|
+
if (bad) {
|
|
119
|
+
problems.push({ line, message: `its evidence ${bad} is no line of the repo` });
|
|
120
|
+
continue;
|
|
121
|
+
}
|
|
122
|
+
drafts.push(r2.data);
|
|
123
|
+
}
|
|
124
|
+
if (!drafts.length)
|
|
125
|
+
return { raised: [], known: [], problems };
|
|
126
|
+
const r = await raiseQuestions(root, drafts, {
|
|
127
|
+
step: "map",
|
|
128
|
+
repo,
|
|
129
|
+
command: by.command,
|
|
130
|
+
rerun: `atticus map ${repo}`,
|
|
131
|
+
...by.run ? { run: by.run } : {},
|
|
132
|
+
at: by.at
|
|
133
|
+
});
|
|
134
|
+
return { raised: r.raised, known: [...r.known, ...r.reused], problems };
|
|
135
|
+
}
|
|
136
|
+
async function estateComponentsOf(root) {
|
|
137
|
+
const op = await loadOrgPack(orgPackDirOf(root)).catch(() => void 0);
|
|
138
|
+
const repos = (op?.profiles ?? []).flatMap((p) => p.repos?.repos ?? []);
|
|
139
|
+
if (!repos.length)
|
|
140
|
+
return void 0;
|
|
141
|
+
const components = repos.flatMap((r) => [
|
|
142
|
+
r.id,
|
|
143
|
+
...r.component ? [r.component] : [],
|
|
144
|
+
...(r.modules ?? []).map((m) => m.component)
|
|
145
|
+
]);
|
|
146
|
+
const repoComponents = {};
|
|
147
|
+
for (const r of repos) {
|
|
148
|
+
const text = await readFile(join(factsDirOf(root), `${r.id}.jsonl`), "utf8").catch(() => void 0);
|
|
149
|
+
if (text === void 0)
|
|
150
|
+
continue;
|
|
151
|
+
const named = parseFactsLines(text).facts.flatMap((f) => f.component ? [f.component] : []);
|
|
152
|
+
repoComponents[r.id] = [
|
|
153
|
+
.../* @__PURE__ */ new Set([r.component ?? r.id, ...(r.modules ?? []).map((m) => m.component), ...named])
|
|
154
|
+
].sort();
|
|
155
|
+
}
|
|
156
|
+
return { components: [...new Set(components)].sort(), repoComponents };
|
|
157
|
+
}
|
|
158
|
+
var SKIPPED_LISTED = 100;
|
|
159
|
+
function slipNoteLines(slips, verifyYaml, shown = 5) {
|
|
160
|
+
if (!slips.length)
|
|
161
|
+
return [];
|
|
162
|
+
return [
|
|
163
|
+
`${slips.length} ${slips.length === 1 ? "slip" : "slips"} of form fixed in the facts (a note, not a rejection; under slips in ${verifyYaml}):`,
|
|
164
|
+
...slips.slice(0, shown).map((x) => ` ${x.message}`),
|
|
165
|
+
...slips.length > shown ? [` ... and ${slips.length - shown} more (slips in ${verifyYaml})`] : []
|
|
166
|
+
];
|
|
167
|
+
}
|
|
168
|
+
async function writeVerifyFiles(root, repo, report, commit, questionProblems = [], badLines = [], reviewedProblems = [], slips = []) {
|
|
169
|
+
const dir = factsDirOf(root);
|
|
170
|
+
await mkdir(dir, { recursive: true });
|
|
171
|
+
await writeFile(join(dir, `${repo}.jsonl`), serializeFacts(report.accepted), "utf8");
|
|
172
|
+
const rejectedFile = join(dir, `${repo}.rejected.jsonl`);
|
|
173
|
+
const lines = [
|
|
174
|
+
...report.rejected.map((r) => JSON.stringify({ code: r.code, message: r.message, fact: r.fact })),
|
|
175
|
+
...questionProblems.map((q) => JSON.stringify({ code: "bad-question", message: q.message, question: JSON.parse(q.line) })),
|
|
176
|
+
...badLines.map((b) => JSON.stringify({ code: "schema", message: b.message, raw: b.raw })),
|
|
177
|
+
...reviewedProblems.map((r) => JSON.stringify({ code: "bad-reviewed", message: r.message, reviewed: r.raw }))
|
|
178
|
+
];
|
|
179
|
+
if (lines.length)
|
|
180
|
+
await writeFile(rejectedFile, lines.join("\n") + "\n", "utf8");
|
|
181
|
+
else
|
|
182
|
+
await rm(rejectedFile, { force: true });
|
|
183
|
+
const summary = {
|
|
184
|
+
repo,
|
|
185
|
+
...commit ? { commit } : {},
|
|
186
|
+
accepted: report.accepted.length,
|
|
187
|
+
rejected: report.rejected.length,
|
|
188
|
+
redacted: report.redacted,
|
|
189
|
+
...report.quotesDropped ? { quotesDropped: report.quotesDropped } : {},
|
|
190
|
+
coverage: {
|
|
191
|
+
ratio: report.coverage.ratio,
|
|
192
|
+
read: report.coverage.read.length,
|
|
193
|
+
...report.coverage.reviewed.length ? { reviewed: report.coverage.reviewed.length } : {},
|
|
194
|
+
unknown: report.coverage.unknown,
|
|
195
|
+
excluded: report.coverage.excluded,
|
|
196
|
+
...report.coverage.notReached.length ? { notReached: report.coverage.notReached } : {}
|
|
197
|
+
},
|
|
198
|
+
rejections: report.rejected.map((r) => ({ id: r.fact.id, code: r.code, message: r.message })),
|
|
199
|
+
// ADR 0124 addendum D-app: a person's corrections, said only when there are some.
|
|
200
|
+
...report.corrections.applied.length || report.corrections.stale.length ? {
|
|
201
|
+
corrections: {
|
|
202
|
+
applied: report.corrections.applied,
|
|
203
|
+
stale: report.corrections.stale.map((s) => ({
|
|
204
|
+
fact: s.correction.fact,
|
|
205
|
+
why: s.why,
|
|
206
|
+
message: s.message
|
|
207
|
+
}))
|
|
208
|
+
}
|
|
209
|
+
} : {}
|
|
210
|
+
};
|
|
211
|
+
if (report.carried.length) {
|
|
212
|
+
const by = /* @__PURE__ */ new Map();
|
|
213
|
+
for (const c of report.carried)
|
|
214
|
+
by.set(c.from, [...by.get(c.from) ?? [], c.id]);
|
|
215
|
+
summary.carried = [...by.entries()].sort((a, b) => a[0] < b[0] ? -1 : 1).map(([from, facts]) => ({ from, facts: facts.sort() }));
|
|
216
|
+
}
|
|
217
|
+
if (report.entriesNoFlowFollows.length)
|
|
218
|
+
summary.entriesNoFlowFollows = report.entriesNoFlowFollows;
|
|
219
|
+
if (report.reviewed.length)
|
|
220
|
+
summary.reviewed = report.reviewed;
|
|
221
|
+
if (report.reviewedDropped.length)
|
|
222
|
+
summary.reviewedDropped = report.reviewedDropped;
|
|
223
|
+
if (report.methodUnseen.length) {
|
|
224
|
+
summary.methodUnseenCount = report.methodUnseen.length;
|
|
225
|
+
summary.methodUnseen = report.methodUnseen;
|
|
226
|
+
}
|
|
227
|
+
if (report.skipped.length) {
|
|
228
|
+
summary.skippedCount = report.skipped.length;
|
|
229
|
+
summary.skipped = report.skipped.slice(0, SKIPPED_LISTED);
|
|
230
|
+
}
|
|
231
|
+
if (report.reviewedHolds.length)
|
|
232
|
+
summary.reviewedHolds = report.reviewedHolds;
|
|
233
|
+
if (report.specOpsUncovered.length) {
|
|
234
|
+
summary.specOpsUncoveredCount = report.specOpsUncovered.length;
|
|
235
|
+
summary.specOpsUncovered = report.specOpsUncovered.slice(0, SKIPPED_LISTED);
|
|
236
|
+
}
|
|
237
|
+
if (slips.length)
|
|
238
|
+
summary.slips = [...slips];
|
|
239
|
+
if (report.authUncited.length)
|
|
240
|
+
summary.authUncited = report.authUncited;
|
|
241
|
+
const fws = frameworkFacts(report.accepted);
|
|
242
|
+
if (fws.length)
|
|
243
|
+
summary.frameworks = fws.map((f) => ({
|
|
244
|
+
name: f.name,
|
|
245
|
+
...f.version ? { version: f.version } : {},
|
|
246
|
+
cite: `${f.cite.file}:${f.cite.line}`,
|
|
247
|
+
...f.component ? { component: f.component } : {}
|
|
248
|
+
}));
|
|
249
|
+
if (report.frameworkGaps.length)
|
|
250
|
+
summary.frameworkGaps = report.frameworkGaps;
|
|
251
|
+
await writeFile(join(dir, `${repo}.verify.yaml`), (0, import_yaml.stringify)(summary), "utf8");
|
|
252
|
+
return summary;
|
|
253
|
+
}
|
|
254
|
+
async function readCorrections(root, repo) {
|
|
255
|
+
const text = await readFile(join(factsDirOf(root), `${repo}.corrections.jsonl`), "utf8").catch(() => void 0);
|
|
256
|
+
return text === void 0 ? { corrections: [], bad: [] } : parseCorrections(text);
|
|
257
|
+
}
|
|
258
|
+
async function readReviewed(root, repo) {
|
|
259
|
+
const text = await readFile(join(factsDirOf(root), `${repo}.reviewed.jsonl`), "utf8").catch(() => void 0);
|
|
260
|
+
if (text === void 0)
|
|
261
|
+
return { entries: [], bad: [] };
|
|
262
|
+
const r = parseReviewed(text);
|
|
263
|
+
return {
|
|
264
|
+
entries: r.entries,
|
|
265
|
+
bad: r.bad.map((b) => ({ line: b.line, raw: b.raw, message: b.message }))
|
|
266
|
+
};
|
|
267
|
+
}
|
|
268
|
+
function reviewedProblemsOf(bad, report) {
|
|
269
|
+
return [
|
|
270
|
+
...bad,
|
|
271
|
+
...report.reviewedProblems.map((p) => ({
|
|
272
|
+
...p.line !== void 0 ? { line: p.line } : {},
|
|
273
|
+
raw: { path: p.path, why: p.why },
|
|
274
|
+
message: p.message
|
|
275
|
+
}))
|
|
276
|
+
].sort((a, b) => (a.line ?? 0) - (b.line ?? 0));
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
// packages/cli/dist/map-parts.js
|
|
31
280
|
var ReadStamp = external_exports.strictObject({ at: external_exports.string().min(1), commit: external_exports.string().min(1) });
|
|
32
281
|
var Part = external_exports.strictObject({
|
|
33
282
|
part: external_exports.number().int().positive(),
|
|
@@ -57,6 +306,34 @@ var Reported = external_exports.strictObject({
|
|
|
57
306
|
/** Who reported it (--by), when given. */
|
|
58
307
|
by: external_exports.string().min(1).optional()
|
|
59
308
|
});
|
|
309
|
+
var RulesRecord = external_exports.strictObject({
|
|
310
|
+
hash: external_exports.string().min(1),
|
|
311
|
+
sets: external_exports.array(external_exports.string().min(1))
|
|
312
|
+
});
|
|
313
|
+
var TopUpSession = external_exports.strictObject({
|
|
314
|
+
paths: external_exports.array(external_exports.string().min(1)).min(1),
|
|
315
|
+
sets: external_exports.array(external_exports.string().min(1)).min(1),
|
|
316
|
+
files: external_exports.number().int().nonnegative(),
|
|
317
|
+
tokens: external_exports.number().int().nonnegative(),
|
|
318
|
+
/** When `atticus map <repo> --rules` last gave it to a reader. */
|
|
319
|
+
given: external_exports.string().min(1).optional(),
|
|
320
|
+
/** When a verify that passed after it was given found it done. */
|
|
321
|
+
done: ReadStamp.optional()
|
|
322
|
+
});
|
|
323
|
+
var TopUp = external_exports.strictObject({
|
|
324
|
+
commit: external_exports.string().min(1),
|
|
325
|
+
hash: external_exports.string().min(1),
|
|
326
|
+
sets: external_exports.array(external_exports.string().min(1)),
|
|
327
|
+
session: external_exports.number().int().positive(),
|
|
328
|
+
plannedAt: external_exports.string().min(1),
|
|
329
|
+
sessions: external_exports.array(TopUpSession)
|
|
330
|
+
});
|
|
331
|
+
var MODELS_MODES = ["reachable", "all"];
|
|
332
|
+
var NotReached = external_exports.strictObject({
|
|
333
|
+
why: external_exports.string().min(1),
|
|
334
|
+
files: external_exports.array(external_exports.string().min(1)),
|
|
335
|
+
tokens: external_exports.number().int().nonnegative()
|
|
336
|
+
});
|
|
60
337
|
var ReadPlanFile = external_exports.strictObject({
|
|
61
338
|
/** 2 since ADR 0141 (a v1 file reads as v2: `migrateReadPlan`). */
|
|
62
339
|
schemaVersion: external_exports.literal(2),
|
|
@@ -82,7 +359,18 @@ var ReadPlanFile = external_exports.strictObject({
|
|
|
82
359
|
/** ADR 0141: when `atticus verify` first found the whole plan in the facts. */
|
|
83
360
|
read: ReadStamp.extend({ sessions: external_exports.number().int().positive() }).optional(),
|
|
84
361
|
/** ADR 0141: what the reader reported the read took (`atticus map <repo> --spent`). */
|
|
85
|
-
reported: external_exports.array(Reported).optional()
|
|
362
|
+
reported: external_exports.array(Reported).optional(),
|
|
363
|
+
/** ADR 0167: the reading rules the read was given; none when read before they were recorded. */
|
|
364
|
+
rules: RulesRecord.optional(),
|
|
365
|
+
/** ADR 0167: a top-up for the rule sets the read lacked, under way. */
|
|
366
|
+
topUp: TopUp.optional(),
|
|
367
|
+
/**
|
|
368
|
+
* ADR 0169: `all` when a person asked for every model class (`--models all`); left out, the
|
|
369
|
+
* read takes those its entry points and calls reach.
|
|
370
|
+
*/
|
|
371
|
+
models: external_exports.enum(MODELS_MODES).optional(),
|
|
372
|
+
/** ADR 0169: the model files the read leaves out, nothing reaching them. */
|
|
373
|
+
notReached: NotReached.optional()
|
|
86
374
|
});
|
|
87
375
|
function migrateReadPlan(raw) {
|
|
88
376
|
const v2 = ReadPlanFile.safeParse(raw);
|
|
@@ -94,7 +382,7 @@ function migrateReadPlan(raw) {
|
|
|
94
382
|
return { ...v1.data, schemaVersion: 2 };
|
|
95
383
|
}
|
|
96
384
|
var readPlanRelOf = (root, repo) => `${factsRelOf(root)}/${repo}.read-plan.yaml`;
|
|
97
|
-
var readPlanPath = (root, repo) =>
|
|
385
|
+
var readPlanPath = (root, repo) => join2(factsDirOf(root), `${repo}.read-plan.yaml`);
|
|
98
386
|
function unitOf(glob) {
|
|
99
387
|
const range = lineRangeOf(glob);
|
|
100
388
|
if (range)
|
|
@@ -107,7 +395,7 @@ function unitOf(glob) {
|
|
|
107
395
|
return { glob, dir: "", deep: false };
|
|
108
396
|
if (glob.endsWith("/*"))
|
|
109
397
|
return { glob, dir: glob.slice(0, -2), deep: false };
|
|
110
|
-
return { glob, dir: glob.replace(/\/?[^/]*$/, ""), deep: false };
|
|
398
|
+
return { glob, dir: glob.replace(/\/?[^/]*$/, ""), deep: false, file: glob };
|
|
111
399
|
}
|
|
112
400
|
function folderOf(path) {
|
|
113
401
|
const star = path.search(/[*?]/);
|
|
@@ -115,6 +403,7 @@ function folderOf(path) {
|
|
|
115
403
|
return { dir: path.replace(/\/?[^/]*$/, ""), deep: false };
|
|
116
404
|
return { dir: path.slice(0, star).replace(/\/$/, ""), deep: true };
|
|
117
405
|
}
|
|
406
|
+
var isGlobPath = (p) => /[*?]/.test(p);
|
|
118
407
|
var under = (dir, of) => of === "" || dir === of || dir.startsWith(`${of}/`);
|
|
119
408
|
function globHolds(glob, file) {
|
|
120
409
|
const u = unitOf(glob);
|
|
@@ -127,7 +416,7 @@ function globHolds(glob, file) {
|
|
|
127
416
|
}
|
|
128
417
|
var HEADER = "# The parts this repo is read in (ADR 0124 addendum A-ledger), as atticus map --estimate planned them,\n# and what the read cost (ADR 0141): tokens are estimates, reported numbers are the reader's word.\n# Which part is next is read back from the facts; atticus next says it. Atticus writes this file.\n";
|
|
129
418
|
async function saveReadPlan(root, plan) {
|
|
130
|
-
await writeFileAtomic(readPlanPath(root, plan.repo), `${HEADER}${(0,
|
|
419
|
+
await writeFileAtomic(readPlanPath(root, plan.repo), `${HEADER}${(0, import_yaml2.stringify)(ReadPlanFile.parse(plan), { lineWidth: 0 })}`);
|
|
131
420
|
}
|
|
132
421
|
async function writeReadPlan(root, repo, o) {
|
|
133
422
|
const plan = {
|
|
@@ -143,18 +432,45 @@ async function writeReadPlan(root, repo, o) {
|
|
|
143
432
|
files: p.files,
|
|
144
433
|
tokens: p.tokens
|
|
145
434
|
})),
|
|
146
|
-
...o.reported?.length ? { reported: [...o.reported] } : {}
|
|
435
|
+
...o.reported?.length ? { reported: [...o.reported] } : {},
|
|
436
|
+
...o.rules ? { rules: { hash: o.rules.hash, sets: [...o.rules.sets] } } : {},
|
|
437
|
+
...o.models === "all" ? { models: "all" } : {},
|
|
438
|
+
...o.notReached?.files.length ? { notReached: o.notReached } : {}
|
|
147
439
|
};
|
|
148
440
|
await saveReadPlan(root, plan);
|
|
149
441
|
return plan;
|
|
150
442
|
}
|
|
151
443
|
var stamp = () => (/* @__PURE__ */ new Date()).toISOString().replace(/\.\d{3}Z$/, "Z");
|
|
444
|
+
async function recordNotReached(root, repo, o) {
|
|
445
|
+
const plan = await loadReadPlan(root, repo);
|
|
446
|
+
const { notReached: _n, models: _m, ...rest } = plan ?? {
|
|
447
|
+
schemaVersion: 2,
|
|
448
|
+
repo,
|
|
449
|
+
commit: o.commit,
|
|
450
|
+
session: o.session,
|
|
451
|
+
plannedAt: stamp(),
|
|
452
|
+
parts: []
|
|
453
|
+
};
|
|
454
|
+
const next = {
|
|
455
|
+
...rest,
|
|
456
|
+
...o.models === "all" ? { models: "all" } : {},
|
|
457
|
+
...o.notReached?.files.length ? { notReached: o.notReached } : {}
|
|
458
|
+
};
|
|
459
|
+
if (plan && JSON.stringify(plan) === JSON.stringify(next))
|
|
460
|
+
return;
|
|
461
|
+
if (!plan && !next.notReached && !next.models)
|
|
462
|
+
return;
|
|
463
|
+
await saveReadPlan(root, next);
|
|
464
|
+
}
|
|
465
|
+
async function modelsModeOf(root, repo, asked) {
|
|
466
|
+
return asked ?? (await loadReadPlan(root, repo))?.models ?? "reachable";
|
|
467
|
+
}
|
|
152
468
|
async function loadReadPlan(root, repo) {
|
|
153
|
-
const text = await
|
|
469
|
+
const text = await readFile2(readPlanPath(root, repo), "utf8").catch(() => void 0);
|
|
154
470
|
if (text === void 0)
|
|
155
471
|
return void 0;
|
|
156
472
|
try {
|
|
157
|
-
return migrateReadPlan((0,
|
|
473
|
+
return migrateReadPlan((0, import_yaml2.parse)(text));
|
|
158
474
|
} catch {
|
|
159
475
|
return void 0;
|
|
160
476
|
}
|
|
@@ -178,7 +494,7 @@ async function coveredOf(root, repo) {
|
|
|
178
494
|
const reviewed = /* @__PURE__ */ new Set();
|
|
179
495
|
const lines = [];
|
|
180
496
|
const ranges = /* @__PURE__ */ new Set();
|
|
181
|
-
const text = await
|
|
497
|
+
const text = await readFile2(join2(factsDirOf(root), `${repo}.jsonl`), "utf8").catch(() => void 0);
|
|
182
498
|
if (text !== void 0) {
|
|
183
499
|
const parsed = parseFacts(text);
|
|
184
500
|
const facts = parsed.ok ? parsed.facts : [];
|
|
@@ -235,6 +551,8 @@ function progressOf(plan, of, o) {
|
|
|
235
551
|
return of.ranges.has(u.glob) || of.lines.some((l) => l.file === r.file && l.line >= start && l.line <= r.to) || // The whole file reviewed, or a folder glob reviewed over it.
|
|
236
552
|
of.reviewed.has(r.file) || [...of.reviewed].some((c) => folderOf(c).deep && under(u.dir, folderOf(c).dir));
|
|
237
553
|
}
|
|
554
|
+
if (u.file)
|
|
555
|
+
return of.paths.includes(u.file) || [...of.reviewed].some((c) => isGlobPath(c) && globToRegExp(c).test(u.file));
|
|
238
556
|
return covered.some((c) => u.deep ? under(c.dir, u.dir) : c.dir === u.dir || c.deep && under(u.dir, c.dir));
|
|
239
557
|
};
|
|
240
558
|
const yes = units.filter(hit).map((u) => u.glob);
|
|
@@ -387,12 +705,27 @@ async function mapSpent(root, repo, o, io) {
|
|
|
387
705
|
}
|
|
388
706
|
|
|
389
707
|
export {
|
|
708
|
+
checkoutOf,
|
|
709
|
+
headOf,
|
|
710
|
+
carryOf,
|
|
711
|
+
conventionsAt,
|
|
712
|
+
excludesOf,
|
|
713
|
+
raiseReadQuestions,
|
|
714
|
+
estateComponentsOf,
|
|
715
|
+
slipNoteLines,
|
|
716
|
+
writeVerifyFiles,
|
|
717
|
+
readCorrections,
|
|
718
|
+
readReviewed,
|
|
719
|
+
reviewedProblemsOf,
|
|
720
|
+
MODELS_MODES,
|
|
390
721
|
ReadPlanFile,
|
|
391
722
|
migrateReadPlan,
|
|
392
723
|
readPlanRelOf,
|
|
393
724
|
globHolds,
|
|
394
725
|
saveReadPlan,
|
|
395
726
|
writeReadPlan,
|
|
727
|
+
recordNotReached,
|
|
728
|
+
modelsModeOf,
|
|
396
729
|
loadReadPlan,
|
|
397
730
|
readPlanProgress,
|
|
398
731
|
ownStarts,
|
|
@@ -4,12 +4,14 @@ var require = __atticusCreateRequire(import.meta.url);
|
|
|
4
4
|
var __atticusUrl = (p) => new URL("./" + p, import.meta.url).href;
|
|
5
5
|
var __atticusPath = (p) => __atticusFileURLToPath(__atticusUrl(p));
|
|
6
6
|
import {
|
|
7
|
-
routeQuestions
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
import "./chunk-
|
|
7
|
+
routeQuestions,
|
|
8
|
+
ruleOffers
|
|
9
|
+
} from "./chunk-P3VBYYAS.js";
|
|
10
|
+
import "./chunk-RA64IK43.js";
|
|
11
|
+
import "./chunk-U25OX22K.js";
|
|
11
12
|
import "./chunk-MMB2OHUY.js";
|
|
12
13
|
import "./chunk-TV45EUGM.js";
|
|
13
14
|
export {
|
|
14
|
-
routeQuestions
|
|
15
|
+
routeQuestions,
|
|
16
|
+
ruleOffers
|
|
15
17
|
};
|
|
@@ -4,11 +4,11 @@ var require = __atticusCreateRequire(import.meta.url);
|
|
|
4
4
|
var __atticusUrl = (p) => new URL("./" + p, import.meta.url).href;
|
|
5
5
|
var __atticusPath = (p) => __atticusFileURLToPath(__atticusUrl(p));
|
|
6
6
|
import {
|
|
7
|
-
|
|
8
|
-
} from "./chunk-
|
|
7
|
+
recordTopUpVerified
|
|
8
|
+
} from "./chunk-QOF7U6BI.js";
|
|
9
9
|
import {
|
|
10
|
-
|
|
11
|
-
} from "./chunk-
|
|
10
|
+
notesAt
|
|
11
|
+
} from "./chunk-CGF4LKXR.js";
|
|
12
12
|
import {
|
|
13
13
|
carryOf,
|
|
14
14
|
checkoutOf,
|
|
@@ -16,25 +16,27 @@ import {
|
|
|
16
16
|
estateComponentsOf,
|
|
17
17
|
excludesOf,
|
|
18
18
|
headOf,
|
|
19
|
+
loadReadPlan,
|
|
19
20
|
raiseReadQuestions,
|
|
20
21
|
readCorrections,
|
|
21
22
|
readReviewed,
|
|
23
|
+
recordReadProgress,
|
|
22
24
|
reviewedProblemsOf,
|
|
23
25
|
slipNoteLines,
|
|
24
26
|
writeVerifyFiles
|
|
25
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-6AYUBYK6.js";
|
|
26
28
|
import {
|
|
27
29
|
dirSource,
|
|
28
30
|
frameworkFacts,
|
|
29
31
|
frameworksToLearn,
|
|
30
32
|
repairFormSlips,
|
|
31
33
|
verifyFacts
|
|
32
|
-
} from "./chunk-
|
|
34
|
+
} from "./chunk-7VAMO66T.js";
|
|
33
35
|
import {
|
|
34
36
|
NoRoomError,
|
|
35
37
|
roomGuard,
|
|
36
38
|
streamFacts
|
|
37
|
-
} from "./chunk-
|
|
39
|
+
} from "./chunk-ARLH2ZMD.js";
|
|
38
40
|
import {
|
|
39
41
|
factsDirOf,
|
|
40
42
|
factsRelOf,
|
|
@@ -42,7 +44,7 @@ import {
|
|
|
42
44
|
loadOrgPack,
|
|
43
45
|
orgPackDirOf,
|
|
44
46
|
stackHelpersOff
|
|
45
|
-
} from "./chunk-
|
|
47
|
+
} from "./chunk-U25OX22K.js";
|
|
46
48
|
|
|
47
49
|
// packages/cli/dist/verify-commands.js
|
|
48
50
|
import { existsSync } from "node:fs";
|
|
@@ -99,7 +101,9 @@ async function verifyInputsOf(root, repo, dir) {
|
|
|
99
101
|
reviewed: await readReviewed(root, repo),
|
|
100
102
|
estate: await estateComponentsOf(root),
|
|
101
103
|
conventions: await conventionsAt(root),
|
|
102
|
-
exclude: await excludesOf(root, repo)
|
|
104
|
+
exclude: await excludesOf(root, repo),
|
|
105
|
+
// ADR 0169: the model files the read plan leaves out, counted apart in coverage.
|
|
106
|
+
notReached: (await loadReadPlan(root, repo))?.notReached?.files ?? []
|
|
103
107
|
};
|
|
104
108
|
}
|
|
105
109
|
async function verifyCommand(root, repo, o, io) {
|
|
@@ -165,7 +169,8 @@ async function verifyCommand(root, repo, o, io) {
|
|
|
165
169
|
// J1 (ADR 0143): an exposure read here names a component the manifest lists.
|
|
166
170
|
...estate ? { estate } : {},
|
|
167
171
|
conventions,
|
|
168
|
-
notes: inputs.notes
|
|
172
|
+
notes: inputs.notes,
|
|
173
|
+
notReached: inputs.notReached
|
|
169
174
|
});
|
|
170
175
|
} catch (e) {
|
|
171
176
|
if (!(e instanceof NoRoomError))
|
|
@@ -210,11 +215,13 @@ async function verifyCommand(root, repo, o, io) {
|
|
|
210
215
|
now: o.now().toISOString().replace(/\.\d{3}Z$/, "Z")
|
|
211
216
|
} : {}
|
|
212
217
|
});
|
|
218
|
+
if (!failed)
|
|
219
|
+
await recordTopUpVerified(root, repo, { commit });
|
|
213
220
|
const rejectedNote = `Nothing written to the catalog: ${report.rejected.length} facts were rejected. Fix them and run atticus verify ${repo} --write again.`;
|
|
214
221
|
if (o.json) {
|
|
215
222
|
let written2;
|
|
216
223
|
if (o.write && !failed) {
|
|
217
|
-
const { writeFactsIntoCatalog: writeFactsIntoCatalog2 } = await import("./chunk-
|
|
224
|
+
const { writeFactsIntoCatalog: writeFactsIntoCatalog2 } = await import("./chunk-CUD4I2U6.js");
|
|
218
225
|
written2 = await writeFactsIntoCatalog2(root, repo, report.accepted, { dir, command: `atticus verify ${repo} --write` }, { ...io, out: () => void 0 });
|
|
219
226
|
if (!written2)
|
|
220
227
|
return 1;
|
|
@@ -237,7 +244,9 @@ async function verifyCommand(root, repo, o, io) {
|
|
|
237
244
|
}
|
|
238
245
|
const pct = Math.round(report.coverage.ratio * 100);
|
|
239
246
|
const cov = report.coverage;
|
|
240
|
-
io.out(`${repo}: ${report.accepted.length} facts kept, ${report.rejected.length} rejected; coverage ${pct}% (${cov.read.length} read, ${cov.reviewed.length ? `${cov.reviewed.length} reviewed with nothing to record, ` : ""}${cov.unknown.length} unknown${cov.excluded.length ? `, ${cov.excluded.length} excluded` : ""}).`);
|
|
247
|
+
io.out(`${repo}: ${report.accepted.length} facts kept, ${report.rejected.length} rejected; coverage ${pct}% (${cov.read.length} read, ${cov.reviewed.length ? `${cov.reviewed.length} reviewed with nothing to record, ` : ""}${cov.unknown.length} unknown${cov.excluded.length ? `, ${cov.excluded.length} excluded` : ""}${cov.notReached.length ? `, ${cov.notReached.length} model files no entry or call reaches` : ""}).`);
|
|
248
|
+
if (cov.notReached.length)
|
|
249
|
+
io.out(`${cov.notReached.length} model files no entry or call reaches; atticus map ${repo} --models all reads them.`);
|
|
241
250
|
const verifyYaml = `${rel}/${repo}.verify.yaml`;
|
|
242
251
|
const rejectedFile = `${rel}/${repo}.rejected.jsonl`;
|
|
243
252
|
const show = (lines, more) => {
|
|
@@ -354,7 +363,7 @@ async function verifyCommand(root, repo, o, io) {
|
|
|
354
363
|
io.out(`When the read is complete: atticus verify ${repo} --write puts the facts in the catalog, the flows in specs/${repo}/, and renders the map.`);
|
|
355
364
|
return 0;
|
|
356
365
|
}
|
|
357
|
-
const { writeFactsIntoCatalog } = await import("./chunk-
|
|
366
|
+
const { writeFactsIntoCatalog } = await import("./chunk-CUD4I2U6.js");
|
|
358
367
|
const written = await writeFactsIntoCatalog(root, repo, report.accepted, { dir, command: `atticus verify ${repo} --write`, verbose: o.verbose === true }, io);
|
|
359
368
|
return written ? 0 : 1;
|
|
360
369
|
}
|
|
@@ -10,22 +10,22 @@ import {
|
|
|
10
10
|
findingAction,
|
|
11
11
|
findings,
|
|
12
12
|
statusLine
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-5I5JDJ3R.js";
|
|
14
14
|
import "./chunk-VOGCSYOI.js";
|
|
15
|
-
import "./chunk-
|
|
16
|
-
import "./chunk-
|
|
17
|
-
import "./chunk-
|
|
18
|
-
import "./chunk-
|
|
19
|
-
import "./chunk-
|
|
20
|
-
import "./chunk-
|
|
21
|
-
import "./chunk-
|
|
22
|
-
import "./chunk-
|
|
23
|
-
import "./chunk-
|
|
24
|
-
import "./chunk-
|
|
25
|
-
import "./chunk-
|
|
26
|
-
import "./chunk-
|
|
27
|
-
import "./chunk-
|
|
28
|
-
import "./chunk-
|
|
15
|
+
import "./chunk-KPHPVOME.js";
|
|
16
|
+
import "./chunk-G5SKNMPC.js";
|
|
17
|
+
import "./chunk-JQG4VO47.js";
|
|
18
|
+
import "./chunk-DW4BM73R.js";
|
|
19
|
+
import "./chunk-DBZNQAMN.js";
|
|
20
|
+
import "./chunk-QR65C3DV.js";
|
|
21
|
+
import "./chunk-7VAMO66T.js";
|
|
22
|
+
import "./chunk-HY2VVVFZ.js";
|
|
23
|
+
import "./chunk-PJRMMWU4.js";
|
|
24
|
+
import "./chunk-34NWVIBC.js";
|
|
25
|
+
import "./chunk-RA64IK43.js";
|
|
26
|
+
import "./chunk-MRLCNXXR.js";
|
|
27
|
+
import "./chunk-CQD26SMZ.js";
|
|
28
|
+
import "./chunk-U25OX22K.js";
|
|
29
29
|
import "./chunk-MMB2OHUY.js";
|
|
30
30
|
import "./chunk-TV45EUGM.js";
|
|
31
31
|
export {
|
|
@@ -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
|
metarepoToolBox
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-TEHH47TG.js";
|
|
9
9
|
import {
|
|
10
10
|
CONTEXT_TOOLS
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-77UOXZVM.js";
|
|
12
12
|
import {
|
|
13
13
|
TOOL_LIMITS,
|
|
14
14
|
ToolSession,
|
|
15
15
|
readToolCalls,
|
|
16
16
|
recordToolCalls
|
|
17
|
-
} from "./chunk-
|
|
18
|
-
import "./chunk-
|
|
17
|
+
} from "./chunk-CQD26SMZ.js";
|
|
18
|
+
import "./chunk-U25OX22K.js";
|
|
19
19
|
import "./chunk-MMB2OHUY.js";
|
|
20
20
|
import "./chunk-TV45EUGM.js";
|
|
21
21
|
|
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
executorsCheck,
|
|
9
9
|
inputsSha256,
|
|
10
10
|
runStep
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-ZTIMXVV5.js";
|
|
12
12
|
import {
|
|
13
13
|
table
|
|
14
14
|
} from "./chunk-VOGCSYOI.js";
|
|
@@ -17,7 +17,7 @@ import {
|
|
|
17
17
|
exportStep,
|
|
18
18
|
fileStepStore,
|
|
19
19
|
recordStep
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-DW4BM73R.js";
|
|
21
21
|
|
|
22
22
|
// packages/cli/dist/todo-commands.js
|
|
23
23
|
var iso = (d) => d.toISOString().replace(/\.\d{3}Z$/, "Z");
|