@maycombhq/atticus 2.0.0-beta.2 → 2.0.0-beta.21
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 +8 -4
- package/dist/chunk-265LWMOA.js +91 -0
- package/dist/chunk-26WBY34Y.js +37 -0
- package/dist/{chunk-UBBC2XSG.js → chunk-26Z7OGQW.js} +518 -93
- package/dist/chunk-2D7PWSOK.js +172 -0
- package/dist/{chunk-JCZIKA4C.js → chunk-2HH3UCZM.js} +4 -4
- package/dist/{chunk-GDLULHTC.js → chunk-2HTEMYTB.js} +12 -26
- package/dist/chunk-2UCRFXFZ.js +130 -0
- package/dist/{chunk-MVZVGYXH.js → chunk-2V2ZPQQU.js} +81 -13
- package/dist/{chunk-BOHJZTEQ.js → chunk-36RY7ZXM.js} +130 -71
- package/dist/{chunk-I3E7CX4H.js → chunk-37WE3LS2.js} +3 -3
- package/dist/{chunk-IPKHE5D6.js → chunk-3AQ2R5NL.js} +1520 -871
- package/dist/chunk-3G6S7LAA.js +43 -0
- package/dist/chunk-3J5I7ZOU.js +58 -0
- package/dist/{chunk-65NYPGRC.js → chunk-3LZ6P5EP.js} +1 -1
- package/dist/chunk-3SSTNB4E.js +191 -0
- package/dist/chunk-3TD6S4TC.js +49 -0
- package/dist/{chunk-3C7EYRFZ.js → chunk-3UTYPHN3.js} +1 -1
- package/dist/{chunk-G2B4ZQGH.js → chunk-3WON4G3M.js} +2 -2
- package/dist/{chunk-S3QNRWYR.js → chunk-42EPP7OB.js} +12 -12
- package/dist/chunk-455SYIIE.js +113 -0
- package/dist/{chunk-YISXLPHN.js → chunk-4B6BT75O.js} +166 -23
- package/dist/{chunk-C6EKFH7J.js → chunk-4CLK2RJO.js} +7 -7
- package/dist/chunk-4CYTJ5TZ.js +38 -0
- package/dist/{chunk-EYWIDJFU.js → chunk-4D62IZII.js} +5 -5
- package/dist/chunk-4FOAYLI4.js +328 -0
- package/dist/{chunk-7JUKDRSZ.js → chunk-4KNOJC6J.js} +294 -215
- package/dist/{chunk-YMZ3TNYB.js → chunk-4PYC2UGC.js} +2 -2
- package/dist/{chunk-27NKUS3X.js → chunk-4SLBCEPD.js} +2104 -726
- package/dist/chunk-4TKVU2I2.js +122 -0
- package/dist/{chunk-RUVFXE2L.js → chunk-4WXRPQDE.js} +448 -47
- package/dist/{chunk-7ZUIMTOU.js → chunk-5CMPVC3N.js} +24 -24
- package/dist/chunk-5G7ILBUG.js +66 -0
- package/dist/{chunk-HFQCFSJR.js → chunk-5PV7S2ZP.js} +3 -3
- package/dist/{chunk-FITWGOJ2.js → chunk-5QUOPNLN.js} +4 -4
- package/dist/{chunk-Z6LF7HQN.js → chunk-5TDRBOAV.js} +5 -5
- package/dist/{chunk-T6AIP7H5.js → chunk-5WERBKLE.js} +199 -63
- package/dist/{chunk-XPCM366L.js → chunk-62DLJSLV.js} +8 -8
- package/dist/{chunk-L24C55VN.js → chunk-64AADMTW.js} +99 -25
- package/dist/{chunk-K65BJIMT.js → chunk-67BP7HXL.js} +17 -17
- package/dist/chunk-6DQYZU2W.js +379 -0
- package/dist/{chunk-EDS2L2LD.js → chunk-6EXDI5GI.js} +52 -26
- package/dist/chunk-6FNAKCET.js +38 -0
- package/dist/{chunk-6IU67AEK.js → chunk-75ASLHBT.js} +21 -15
- package/dist/{chunk-A3GY6SOA.js → chunk-75ZOZFGH.js} +18 -18
- package/dist/{chunk-MGYZM27B.js → chunk-77O633L5.js} +49 -23
- package/dist/{chunk-GQ4N4WKF.js → chunk-7AB6OWTV.js} +3 -3
- package/dist/{chunk-M766ZJ6W.js → chunk-7CZHUZBL.js} +25 -25
- package/dist/{chunk-A7UPUQFY.js → chunk-7FHNFCHK.js} +643 -124
- package/dist/chunk-7FUIVIBG.js +415 -0
- package/dist/{chunk-6QSERWXH.js → chunk-7QPCGTPS.js} +21 -21
- package/dist/{chunk-LR3R6Z2A.js → chunk-A2G72UI4.js} +7 -7
- package/dist/{chunk-I4JRCD6M.js → chunk-AE4P57KK.js} +23 -17
- package/dist/{chunk-AVJDSJ2F.js → chunk-AHW3RY3X.js} +7 -7
- package/dist/chunk-AM6FP6JW.js +43 -0
- package/dist/{chunk-CSZ4C5N6.js → chunk-AOCWFA7T.js} +93 -10
- package/dist/{chunk-EPTBZ3GP.js → chunk-API5TOUB.js} +1 -1
- package/dist/{chunk-652QWTLZ.js → chunk-AZDITBCT.js} +3 -3
- package/dist/{chunk-DPUYDDQG.js → chunk-BA2HUMDN.js} +25 -3
- package/dist/chunk-BA3U7ALS.js +99 -0
- package/dist/{chunk-HVUPKCGJ.js → chunk-BC6KKZ67.js} +5 -5
- package/dist/{chunk-CKSITVS4.js → chunk-BEPCKDCP.js} +2554 -722
- package/dist/{chunk-3ALD2W2A.js → chunk-BPPU3PW7.js} +4 -4
- package/dist/{chunk-QRAOANID.js → chunk-BVWWPBKD.js} +21 -21
- package/dist/{chunk-ZDPAS56H.js → chunk-BXBCMGIQ.js} +7 -1
- package/dist/chunk-BXZ4PKIT.js +233 -0
- package/dist/chunk-C7CEK3KW.js +247 -0
- package/dist/chunk-CFH3QH26.js +29 -0
- package/dist/chunk-CG6CULP6.js +170 -0
- package/dist/chunk-CLD4RVTA.js +45 -0
- package/dist/{chunk-DKJA76CJ.js → chunk-CNPY4NTZ.js} +13 -13
- package/dist/chunk-CNU5Q2D5.js +575 -0
- package/dist/{chunk-T2UYZSCQ.js → chunk-COYN3UAN.js} +126 -23
- package/dist/{chunk-23W7VWKR.js → chunk-CPK7QSBG.js} +1360 -113
- package/dist/{chunk-4AK7IBVP.js → chunk-D2WSW4GU.js} +1 -1
- package/dist/{chunk-ABWHYWNI.js → chunk-D57MFJPP.js} +3 -3
- package/dist/chunk-D5KV5PSK.js +45 -0
- package/dist/chunk-D5MASS4I.js +48 -0
- package/dist/{chunk-7EOBHUMC.js → chunk-DCWN3HFV.js} +2 -2
- package/dist/{chunk-QSXK2RGH.js → chunk-DDJPM5YX.js} +2 -2
- package/dist/chunk-DN4A2Q2O.js +57 -0
- package/dist/{chunk-IHMLFRVV.js → chunk-DUPZPDCJ.js} +58 -16
- package/dist/{chunk-PRPPGYZG.js → chunk-E2VXBSIR.js} +4 -4
- package/dist/chunk-E57AOFYN.js +32 -0
- package/dist/{chunk-UGLN7QHV.js → chunk-ECLXZWAG.js} +12 -12
- package/dist/{chunk-5WG5YP4T.js → chunk-EDZ45WIR.js} +14 -14
- package/dist/chunk-EFCQSMXB.js +37 -0
- package/dist/{chunk-2ANOROX3.js → chunk-EZIN5E5B.js} +8 -8
- package/dist/{chunk-BWZ77RQT.js → chunk-F6H2RJ3N.js} +1 -1
- package/dist/{chunk-OLQJTJJU.js → chunk-FAJDKNSD.js} +7 -3
- package/dist/chunk-FGAGWYZB.js +47 -0
- package/dist/{chunk-4WBVUHXN.js → chunk-FLVZFTLQ.js} +18 -18
- package/dist/chunk-FQ6WH6PB.js +140 -0
- package/dist/{chunk-T6XQL73F.js → chunk-FRHD22WM.js} +61 -23
- package/dist/{chunk-XAKWMCXI.js → chunk-FVMPFCDS.js} +4 -4
- package/dist/{chunk-B2WLAWNJ.js → chunk-FY3QIRTL.js} +3 -3
- package/dist/{chunk-CPA6HPVR.js → chunk-FYBF5MB2.js} +15 -11
- package/dist/{chunk-V2YTAIQO.js → chunk-G5YJBNDZ.js} +21 -6
- package/dist/chunk-G6IQYM25.js +339 -0
- package/dist/chunk-G6X4YL4D.js +161 -0
- package/dist/{chunk-SJRGMG6A.js → chunk-GC2VK3JT.js} +25 -25
- package/dist/{chunk-SP2I63OO.js → chunk-GCS3FZOB.js} +77 -3
- package/dist/{chunk-6TACQN3N.js → chunk-GDZB57IU.js} +5 -5
- package/dist/chunk-GIFMBCTW.js +221 -0
- package/dist/{chunk-YY6ZQQBP.js → chunk-GK4PYVEC.js} +18 -8
- package/dist/{chunk-TDD55CJH.js → chunk-GNWAOVFQ.js} +6 -5
- package/dist/chunk-GS76RXQE.js +226 -0
- package/dist/{chunk-YYQN46FY.js → chunk-GSGIZ2OO.js} +23 -23
- package/dist/chunk-GUYL7RMK.js +60 -0
- package/dist/chunk-GX74YWR7.js +321 -0
- package/dist/chunk-HE3HRDNZ.js +122 -0
- package/dist/{chunk-AIOQPLA5.js → chunk-HGHRSF3E.js} +30 -12
- package/dist/{chunk-2RMYG36Q.js → chunk-HK3VOHIE.js} +198 -336
- package/dist/{chunk-QZSX3F7C.js → chunk-HS4BGB4G.js} +24 -22
- package/dist/{chunk-XY3P7JW7.js → chunk-HSZMPH5T.js} +834 -149
- package/dist/{chunk-L6SGQIR3.js → chunk-HWD4JPU7.js} +4 -2
- package/dist/{chunk-PCVDV3UZ.js → chunk-HXXP2NTE.js} +6 -6
- package/dist/{chunk-AA6YULYB.js → chunk-I2A3Z5AK.js} +7 -7
- package/dist/{chunk-N7IXEHK3.js → chunk-ICHDSWEY.js} +7 -7
- package/dist/chunk-IFFRGC3N.js +31 -0
- package/dist/{chunk-4BN53TG3.js → chunk-IFHDV6KQ.js} +31 -23
- package/dist/chunk-J2O4LFVI.js +80 -0
- package/dist/chunk-J5AAZ6OJ.js +161 -0
- package/dist/{chunk-ZMFPW66A.js → chunk-JAABT3DA.js} +3 -3
- package/dist/chunk-JITJP64K.js +34 -0
- package/dist/chunk-JKIGL3XQ.js +162 -0
- package/dist/chunk-JRVNXLZP.js +615 -0
- package/dist/chunk-JRXHON4E.js +41 -0
- package/dist/{chunk-DHPACDG7.js → chunk-JS6WMC3J.js} +8 -8
- package/dist/chunk-JU4QNJSR.js +62 -0
- package/dist/{chunk-PAMPPUR6.js → chunk-JYMIB5XY.js} +1697 -172
- package/dist/{chunk-RRTKKSLQ.js → chunk-JYTIHTIK.js} +8 -6
- package/dist/{chunk-3HI6Z55Y.js → chunk-K332XW7K.js} +324 -39
- package/dist/{chunk-GLUX4EEP.js → chunk-K6JB6XTX.js} +9 -9
- package/dist/chunk-KDAHXQIE.js +294 -0
- package/dist/chunk-KYZMRSPS.js +93 -0
- package/dist/chunk-L4CESDPB.js +22 -0
- package/dist/{chunk-NXFPS2LR.js → chunk-LEBR5NHW.js} +14 -14
- package/dist/chunk-LIJJCBQI.js +223 -0
- package/dist/{chunk-DE76JROX.js → chunk-LIRVU3HW.js} +16 -16
- package/dist/{chunk-JMSCMUCA.js → chunk-LN77DXBM.js} +145 -21
- package/dist/{chunk-JIITQXFB.js → chunk-LNWEWYCM.js} +2969 -788
- package/dist/{chunk-TANFV3MZ.js → chunk-LO3BLMVG.js} +3 -3
- package/dist/chunk-LPV6T362.js +250 -0
- package/dist/{chunk-2VHF7OXM.js → chunk-LQH4P45K.js} +1 -1
- package/dist/chunk-LU4MQVAL.js +41 -0
- package/dist/chunk-LWDNKE4X.js +273 -0
- package/dist/chunk-M4H2UG4R.js +218 -0
- package/dist/{chunk-6BVONWJ7.js → chunk-M6D2U3YM.js} +3 -3
- package/dist/chunk-MD7KUEJ3.js +514 -0
- package/dist/{chunk-66YVAGGM.js → chunk-MMZUN7ZO.js} +20 -20
- package/dist/chunk-MZGRDONP.js +916 -0
- package/dist/chunk-N3RUGTGV.js +39 -0
- package/dist/{chunk-JGZCG5VM.js → chunk-NCB6656Z.js} +7 -7
- package/dist/{chunk-4NDAAFQT.js → chunk-NRQ65LTQ.js} +7 -5
- package/dist/{chunk-UNM6ZOKP.js → chunk-NTAVOWYD.js} +145 -18
- package/dist/{chunk-3USYZGRF.js → chunk-NYOABJNK.js} +36 -27
- package/dist/{chunk-WVPJSRRJ.js → chunk-O4IKAIZ2.js} +24 -20
- package/dist/{chunk-D3PO4DOZ.js → chunk-ODMBPDDV.js} +51 -14
- package/dist/chunk-OKUB6RJA.js +533 -0
- package/dist/chunk-OMPENNWY.js +39 -0
- package/dist/chunk-OPQZISG3.js +25 -0
- package/dist/{chunk-5GGOLAKC.js → chunk-OV57AHCG.js} +26 -26
- package/dist/chunk-OZJ3JLYI.js +58 -0
- package/dist/{chunk-KEM4SDDP.js → chunk-P2VBXX7N.js} +11 -10
- package/dist/{chunk-S2A7YC3Q.js → chunk-PAINMSID.js} +10150 -1720
- package/dist/chunk-PKJAV25S.js +43 -0
- package/dist/{chunk-EBEW3XXQ.js → chunk-PNQLCRSS.js} +4 -4
- package/dist/{chunk-WY6PP6AA.js → chunk-PQH56YF6.js} +37 -5
- package/dist/chunk-PRTBPXYA.js +50 -0
- package/dist/{chunk-YEDDOYSC.js → chunk-PRW3HXM3.js} +2 -2
- package/dist/chunk-PRZ7KMWL.js +42 -0
- package/dist/{chunk-6M5NK3K3.js → chunk-PTQ3ZALZ.js} +42 -4
- package/dist/{chunk-5GDRCDQB.js → chunk-PUEWDYGP.js} +2 -2
- package/dist/chunk-Q26LDIUV.js +236 -0
- package/dist/{chunk-CR3MTH32.js → chunk-Q46QDDMF.js} +77 -7
- package/dist/chunk-QBNWF5ZU.js +19 -0
- package/dist/chunk-QE527XRY.js +342 -0
- package/dist/{chunk-CNUKCS2T.js → chunk-QHJJMZLX.js} +1518 -54
- package/dist/chunk-QJCJOMW3.js +425 -0
- package/dist/{chunk-VYDBJ73M.js → chunk-QKMRFNMA.js} +15 -15
- package/dist/chunk-QOOEYDNJ.js +317 -0
- package/dist/chunk-QSIDVFB7.js +45 -0
- package/dist/{chunk-R77KLRB3.js → chunk-RA33EYS4.js} +19 -18
- package/dist/{chunk-DFBCSHVT.js → chunk-RALY3E5U.js} +4 -4
- package/dist/{chunk-ZCJDOK2S.js → chunk-S2RY3BOD.js} +35 -21
- package/dist/chunk-S5LSDXV4.js +40 -0
- package/dist/chunk-SB5GRUFM.js +54 -0
- package/dist/chunk-SH27FYPF.js +150 -0
- package/dist/chunk-T74WQQGS.js +40 -0
- package/dist/{chunk-O3WI5KWW.js → chunk-TGVVUKTG.js} +2 -2
- package/dist/chunk-THN26IEF.js +48 -0
- package/dist/chunk-TJH2EUAZ.js +47 -0
- package/dist/{chunk-ZNCEKR4J.js → chunk-TQ4TG57V.js} +12 -8
- package/dist/{chunk-7FBGJFEE.js → chunk-TQTRWENN.js} +12 -12
- package/dist/{chunk-TYAID7B7.js → chunk-TSM6T6GQ.js} +23 -23
- package/dist/{chunk-DPZHZQKE.js → chunk-TW3KOSQK.js} +43 -10
- package/dist/{chunk-MC3H7736.js → chunk-TWQRPM76.js} +37 -4
- package/dist/chunk-TYD6I4CZ.js +109 -0
- package/dist/chunk-U3NBK4EU.js +420 -0
- package/dist/{chunk-6JCPI55B.js → chunk-UDXWIPCB.js} +47 -7
- package/dist/{chunk-MMOSZPWJ.js → chunk-UEVZZZU2.js} +4 -4
- package/dist/{chunk-JBTK5OP2.js → chunk-UF4UHCIG.js} +2 -2
- package/dist/{chunk-6JUBZBMW.js → chunk-UFE36WJH.js} +4 -4
- package/dist/{chunk-ONLS5QA5.js → chunk-URIKUID7.js} +12 -12
- package/dist/chunk-UYLBRRFK.js +1106 -0
- package/dist/chunk-UZACEG2C.js +515 -0
- package/dist/{chunk-7SW2QWLU.js → chunk-VAMHOHUU.js} +12 -12
- package/dist/{chunk-RZPYKDWS.js → chunk-VUVGX5L2.js} +1 -1
- package/dist/{chunk-Q4D5X7QB.js → chunk-VYOCPTUB.js} +44 -24
- package/dist/{chunk-CAQZUNOH.js → chunk-WAZEXEJH.js} +567 -3
- package/dist/chunk-WCEF7H6L.js +221 -0
- package/dist/{chunk-2DIQQJCB.js → chunk-WEOMJHPV.js} +12 -12
- package/dist/{chunk-FHH4I4ZV.js → chunk-WFU77T3A.js} +12 -6
- package/dist/chunk-WIWTJMMR.js +292 -0
- package/dist/{chunk-2BFCZ3RK.js → chunk-WNTIOBOG.js} +18 -18
- package/dist/{chunk-7WD63HU2.js → chunk-X2CUXTWU.js} +6 -6
- package/dist/chunk-X7EMBM5X.js +34 -0
- package/dist/chunk-XEQCQO66.js +33 -0
- package/dist/{chunk-F7HYOUFF.js → chunk-XG4WJHLQ.js} +20 -4
- package/dist/{chunk-EFHQ3TWP.js → chunk-XOL3GFW2.js} +171 -31
- package/dist/{chunk-NE2W3OO7.js → chunk-XQ3YZ4QW.js} +22 -22
- package/dist/{chunk-CEXSU4S6.js → chunk-Y6K3CJBU.js} +723 -85
- package/dist/{chunk-4RS5KZQD.js → chunk-YAH5IQAL.js} +5 -5
- package/dist/{chunk-64EQYWCA.js → chunk-YBOVNMHC.js} +51 -14
- package/dist/chunk-YF5DZCPN.js +1212 -0
- package/dist/chunk-YIGBJNH4.js +37 -0
- package/dist/{chunk-BKVWTZ6A.js → chunk-YJ3TBOTK.js} +25 -25
- package/dist/{chunk-Q5AMFEWD.js → chunk-YKTE2RU3.js} +2 -2
- package/dist/{chunk-7EKXJZ2Y.js → chunk-YO2PKTXT.js} +296 -37
- package/dist/{chunk-6J5OKA4Y.js → chunk-YTTNTQOX.js} +15 -15
- package/dist/{chunk-OT2O76OS.js → chunk-YWAKDNMH.js} +183 -33
- package/dist/{chunk-R6XF6UR3.js → chunk-YZDZOEV4.js} +4 -4
- package/dist/chunk-Z3QFH7YG.js +17 -0
- package/dist/{chunk-W5BVQF44.js → chunk-Z6VLC5X4.js} +17 -17
- package/dist/{chunk-HLJAXMM4.js → chunk-ZFQMMU5Y.js} +2 -2
- package/dist/{chunk-W3BQAZ3Q.js → chunk-ZKYRDV7A.js} +12 -12
- package/dist/{chunk-ZMAINWBW.js → chunk-ZLS6PU2O.js} +3 -3
- package/dist/{chunk-ZVM6AKKM.js → chunk-ZOSD4FXV.js} +3 -3
- package/dist/chunk-ZPDDEVQX.js +47 -0
- package/dist/{chunk-TXLH6WHQ.js → chunk-ZQLRCA2V.js} +11 -11
- package/dist/{chunk-HITVBIJS.js → chunk-ZX7235KR.js} +128 -54
- package/dist/{chunk-GT4I4ZWM.js → chunk-ZZFHLRQW.js} +18 -16
- package/dist/files.json +636 -364
- package/dist/packages/naysayer/constitution/constitution.yaml +19 -0
- package/dist/packages/sdk/npm/index.js +5614 -2343
- package/dist/packages/ui/dist/assets/{elk-api-tma0MCuh.js → elk-api-CowTnhEJ.js} +2 -2
- package/dist/packages/ui/dist/assets/index-Dw20IRhQ.css +1 -0
- package/dist/packages/ui/dist/assets/index-z2wv0d5d.js +47 -0
- package/dist/packages/ui/dist/index.html +2 -2
- package/package.json +4 -4
- package/dist/chunk-2BF2EYJV.js +0 -174
- package/dist/chunk-42EVSKME.js +0 -37
- package/dist/chunk-4BKGMUIK.js +0 -53
- package/dist/chunk-5KLGBXG5.js +0 -48
- package/dist/chunk-6BNC6EQ4.js +0 -41
- package/dist/chunk-6D2CQ5II.js +0 -41
- package/dist/chunk-7AVHLZGD.js +0 -45
- package/dist/chunk-D46WUV3T.js +0 -33
- package/dist/chunk-E36QOJMD.js +0 -47
- package/dist/chunk-FQXYPF7E.js +0 -147
- package/dist/chunk-GBRFVT63.js +0 -45
- package/dist/chunk-ICY36XCH.js +0 -34
- package/dist/chunk-J4K3KVLD.js +0 -131
- package/dist/chunk-JZU3H6UQ.js +0 -54
- package/dist/chunk-NN2ZQEB4.js +0 -38
- package/dist/chunk-PCOCACY3.js +0 -385
- package/dist/chunk-RTEYOSJY.js +0 -29
- package/dist/chunk-RVH5SUW5.js +0 -69
- package/dist/chunk-VN3DP4LQ.js +0 -43
- package/dist/chunk-XPTOBS2D.js +0 -48
- package/dist/packages/ui/dist/assets/index-B54fm9FQ.js +0 -29
- package/dist/packages/ui/dist/assets/index-DD_hufQz.css +0 -1
|
@@ -0,0 +1,415 @@
|
|
|
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
|
+
factsRepos
|
|
8
|
+
} from "./chunk-LN77DXBM.js";
|
|
9
|
+
import {
|
|
10
|
+
checkoutOf
|
|
11
|
+
} from "./chunk-Q46QDDMF.js";
|
|
12
|
+
import {
|
|
13
|
+
AUDIT_ANSWERS,
|
|
14
|
+
AUDIT_DEFAULT_SIZE,
|
|
15
|
+
auditCandidates,
|
|
16
|
+
auditItemHolds,
|
|
17
|
+
auditPrecision,
|
|
18
|
+
drawAudit,
|
|
19
|
+
factsDirOf,
|
|
20
|
+
factsRelOf,
|
|
21
|
+
loadOrgPack,
|
|
22
|
+
mergeDraw,
|
|
23
|
+
orgPackDirOf,
|
|
24
|
+
parseAuditFile,
|
|
25
|
+
parseFacts,
|
|
26
|
+
require_dist,
|
|
27
|
+
serializeAuditFile,
|
|
28
|
+
sumAuditPrecision
|
|
29
|
+
} from "./chunk-PAINMSID.js";
|
|
30
|
+
import {
|
|
31
|
+
__toESM
|
|
32
|
+
} from "./chunk-TV45EUGM.js";
|
|
33
|
+
|
|
34
|
+
// packages/cli/dist/audit-commands.js
|
|
35
|
+
var import_yaml = __toESM(require_dist(), 1);
|
|
36
|
+
import { readFile, writeFile } from "node:fs/promises";
|
|
37
|
+
import { isAbsolute, join, resolve } from "node:path";
|
|
38
|
+
var AUDIT_WORDS = {
|
|
39
|
+
usage: "Usage: atticus verify audit <repo> [--size n] [--seed s] [--answers file | --right ids --wrong ids --unsure ids] [--json], atticus verify audit <repo> --report, or atticus verify audit --report for the estate",
|
|
40
|
+
noFacts: (repo, rel) => `${repo} has no facts to audit (${rel}/${repo}.jsonl). Read it first: /atticus-map ${repo}, then atticus verify ${repo}.`,
|
|
41
|
+
badFacts: (rel) => `${rel} doesn't read as facts; run atticus verify on it first.`,
|
|
42
|
+
unverified: (repo, n) => `${n} of ${repo}'s facts aren't verified yet, and an audit samples kept facts only. Run atticus verify ${repo} first.`,
|
|
43
|
+
badFile: (rel) => `${rel} isn't an audit file Atticus can read:`,
|
|
44
|
+
badAnswers: (file) => `${file} isn't a list of answers Atticus can read:`,
|
|
45
|
+
unknownIds: (ids) => `Not in this sample: ${ids.join(", ")}. Answer the ids the sample lists (atticus verify audit <repo> --json shows them).`,
|
|
46
|
+
drew: (repo, facts, links, seed, size) => `Sample audit of ${repo}: ${plural(facts, "fact")} and ${plural(links, "link")} drawn (seed ${seed}, size ${size}; the same seed draws the same sample).`,
|
|
47
|
+
nothing: (repo) => `${repo} has no kept facts a reader wrote and no links to sample, so there is nothing to audit.`,
|
|
48
|
+
question: "Right, wrong or unsure? [r/w/u; Enter skips, q stops]",
|
|
49
|
+
noteQuestion: "What is wrong with it? (one line; Enter for none)",
|
|
50
|
+
wrongFact: (repo, rel) => ` Correct it: the fact's Correct this on the Map (a line in ${rel}/${repo}.corrections.jsonl), then atticus verify ${repo} --write.`,
|
|
51
|
+
wrongLink: (repo, rel, call) => ` Say so: on the Map, the link's Why is this linked? \u203A This link is wrong corrects call ${call} in ${rel}/${repo}.corrections.jsonl (ADR 0135); then atticus verify ${repo} --write.`,
|
|
52
|
+
howToAnswer: (repo, file) => `Not on a terminal, so nothing was asked. Answer each id above as right, wrong or unsure: in ${file} (answer: right), with atticus verify audit ${repo} --answers <file>, or with --right, --wrong and --unsure lists of ids.`,
|
|
53
|
+
wrote: (file, answered, open) => `Wrote ${file}: ${answered} answered, ${open} open. It is a person's record: commit it in a pull request (git add ${file}); nothing was sent anywhere.`,
|
|
54
|
+
head: (repo, file, seeds) => `Sample audit of ${repo} (${file}; ${plural(seeds.length, "draw")}, ${seeds.length === 1 ? "seed" : "seeds"} ${seeds.join(", ")}):`,
|
|
55
|
+
estateHead: (n) => `Sample audits across the estate: ${plural(n, "repo")} audited.`,
|
|
56
|
+
noAudit: (repo) => `${repo} has no sample audit yet. Draw one: atticus verify audit ${repo}.`,
|
|
57
|
+
noAudits: "No repo has a sample audit yet. Draw one: atticus verify audit <repo>.",
|
|
58
|
+
small: (n) => `${plural(n, "answer")} in all: a sample this small says little, so read the interval, not the number. Draw more with another --seed.`,
|
|
59
|
+
gone: (n) => `${plural(n, "item")} left out: the fact or link changed since it was drawn (read again), so its answer no longer stands.`
|
|
60
|
+
};
|
|
61
|
+
var plural = (n, one, many = `${one}s`) => `${n} ${n === 1 ? one : many}`;
|
|
62
|
+
var num = (x) => x === null ? "-" : String(x);
|
|
63
|
+
function tallyWords(t) {
|
|
64
|
+
const n = t.right + t.wrong;
|
|
65
|
+
const rest = [
|
|
66
|
+
...t.unsure ? [`${t.unsure} unsure`] : [],
|
|
67
|
+
...t.open ? [`${t.open} open`] : [],
|
|
68
|
+
...t.gone ? [`${t.gone} gone`] : []
|
|
69
|
+
].join(", ");
|
|
70
|
+
if (!n)
|
|
71
|
+
return `no answers yet (${plural(t.drawn, "drawn", "drawn")}${rest ? `; ${rest}` : ""})`;
|
|
72
|
+
return `precision ${num(t.precision)}, ${t.right} of ${n} right (95% interval ${num(t.low)} to ${num(t.high)})${rest ? `; ${rest}` : ""}`;
|
|
73
|
+
}
|
|
74
|
+
function precisionLines(p) {
|
|
75
|
+
const out = [`Facts: ${tallyWords(p.facts)}.`];
|
|
76
|
+
for (const [k, t] of Object.entries(p.byKind))
|
|
77
|
+
out.push(` ${k}: ${tallyWords(t)}`);
|
|
78
|
+
out.push(`Links: ${tallyWords(p.links)}.`);
|
|
79
|
+
for (const [k, t] of Object.entries(p.byHow))
|
|
80
|
+
out.push(` ${k}: ${tallyWords(t)}`);
|
|
81
|
+
if (p.ai?.drawn) {
|
|
82
|
+
out.push(`AI decisions: ${tallyWords(p.ai)}.`);
|
|
83
|
+
for (const [k, t] of Object.entries(p.byAi ?? {}))
|
|
84
|
+
out.push(` ${k}: ${tallyWords(t)}`);
|
|
85
|
+
}
|
|
86
|
+
const answered = p.facts.right + p.facts.wrong + p.links.right + p.links.wrong;
|
|
87
|
+
if (answered < 30)
|
|
88
|
+
out.push(AUDIT_WORDS.small(answered));
|
|
89
|
+
const gone = p.facts.gone + p.links.gone;
|
|
90
|
+
if (gone)
|
|
91
|
+
out.push(AUDIT_WORDS.gone(gone));
|
|
92
|
+
return out;
|
|
93
|
+
}
|
|
94
|
+
var auditPath = (root, repo) => join(factsDirOf(root), `${repo}.audit.yaml`);
|
|
95
|
+
async function readAudit(root, repo) {
|
|
96
|
+
const text = await readFile(auditPath(root, repo), "utf8").catch(() => void 0);
|
|
97
|
+
if (text === void 0)
|
|
98
|
+
return {};
|
|
99
|
+
const r = parseAuditFile(text);
|
|
100
|
+
return r.ok ? { file: r.file } : { issues: r.issues };
|
|
101
|
+
}
|
|
102
|
+
async function readFactsOf(root, repo) {
|
|
103
|
+
const text = await readFile(join(factsDirOf(root), `${repo}.jsonl`), "utf8").catch(() => void 0);
|
|
104
|
+
if (text === void 0 || !text.trim())
|
|
105
|
+
return { missing: true };
|
|
106
|
+
const r = parseFacts(text);
|
|
107
|
+
return r.ok ? { facts: r.facts } : { bad: true };
|
|
108
|
+
}
|
|
109
|
+
async function linksOf(root, repo) {
|
|
110
|
+
const { estateFacts, estateJoinOf, auditLinkCandidates } = await import("./chunk-BXZ4PKIT.js");
|
|
111
|
+
const op = await loadOrgPack(orgPackDirOf(root));
|
|
112
|
+
const estate = await estateFacts(root, op, "");
|
|
113
|
+
const join2 = estateJoinOf(op, estate.repos, estate.targets, estate.pairs, estate.aiTargets);
|
|
114
|
+
return auditLinkCandidates(join2, estate.repos, repo);
|
|
115
|
+
}
|
|
116
|
+
async function givenAnswers(root, o) {
|
|
117
|
+
const answers = /* @__PURE__ */ new Map();
|
|
118
|
+
const issues = [];
|
|
119
|
+
const isAnswer = (x) => typeof x === "string" && AUDIT_ANSWERS.includes(x);
|
|
120
|
+
if (o.answers) {
|
|
121
|
+
const path = isAbsolute(o.answers) ? o.answers : resolve(root, o.answers);
|
|
122
|
+
const text = await readFile(path, "utf8").catch(() => void 0);
|
|
123
|
+
let doc;
|
|
124
|
+
try {
|
|
125
|
+
doc = text === void 0 ? void 0 : (0, import_yaml.parse)(text);
|
|
126
|
+
} catch (e) {
|
|
127
|
+
issues.push(`not YAML or JSON: ${e.message.split("\n")[0]}`);
|
|
128
|
+
}
|
|
129
|
+
if (text === void 0)
|
|
130
|
+
issues.push("there is no such file");
|
|
131
|
+
else if (doc && typeof doc === "object" && !Array.isArray(doc))
|
|
132
|
+
for (const [id, v] of Object.entries(doc)) {
|
|
133
|
+
const a = typeof v === "object" && v ? v.answer : v;
|
|
134
|
+
const note = typeof v === "object" && v ? v.note : void 0;
|
|
135
|
+
if (!isAnswer(a))
|
|
136
|
+
issues.push(`${id}: the answer is right, wrong or unsure`);
|
|
137
|
+
else
|
|
138
|
+
answers.set(id, { answer: a, ...typeof note === "string" ? { note } : {} });
|
|
139
|
+
}
|
|
140
|
+
else if (!issues.length)
|
|
141
|
+
issues.push("it should map each item id to right, wrong or unsure");
|
|
142
|
+
}
|
|
143
|
+
for (const a of AUDIT_ANSWERS)
|
|
144
|
+
for (const id of o[a] ?? [])
|
|
145
|
+
answers.set(id, { answer: a });
|
|
146
|
+
return { answers, issues };
|
|
147
|
+
}
|
|
148
|
+
function lineReader(root, o, repo) {
|
|
149
|
+
const dirs = /* @__PURE__ */ new Map();
|
|
150
|
+
const files = /* @__PURE__ */ new Map();
|
|
151
|
+
return async (cite) => {
|
|
152
|
+
const space = cite.indexOf(" ");
|
|
153
|
+
const r = space > 0 ? cite.slice(0, space) : repo;
|
|
154
|
+
const at = space > 0 ? cite.slice(space + 1) : cite;
|
|
155
|
+
const m = /^(.*):(\d+)$/.exec(at);
|
|
156
|
+
if (!m)
|
|
157
|
+
return void 0;
|
|
158
|
+
if (!dirs.has(r))
|
|
159
|
+
dirs.set(r, checkoutOf(root, r, r === repo ? o.dir : void 0));
|
|
160
|
+
const dir = await dirs.get(r);
|
|
161
|
+
if (!dir)
|
|
162
|
+
return void 0;
|
|
163
|
+
const k = `${dir}\0${m[1]}`;
|
|
164
|
+
if (!files.has(k))
|
|
165
|
+
files.set(k, readFile(join(dir, m[1]), "utf8").then((t) => t.split(/\r?\n/), () => void 0));
|
|
166
|
+
return (await files.get(k))?.[Number(m[2]) - 1]?.trim();
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
async function prepareAudit(root, repo, o = {}) {
|
|
170
|
+
const rel = factsRelOf(root);
|
|
171
|
+
const read = await readFactsOf(root, repo);
|
|
172
|
+
if (read.missing)
|
|
173
|
+
return { refused: "no-facts", lines: [AUDIT_WORDS.noFacts(repo, rel)] };
|
|
174
|
+
if (read.bad || !read.facts)
|
|
175
|
+
return { refused: "bad-facts", lines: [AUDIT_WORDS.badFacts(`${rel}/${repo}.jsonl`)] };
|
|
176
|
+
const facts = read.facts;
|
|
177
|
+
const unverified = facts.filter((f) => f.verified === "none").length;
|
|
178
|
+
if (unverified)
|
|
179
|
+
return {
|
|
180
|
+
refused: "unverified",
|
|
181
|
+
lines: [AUDIT_WORDS.unverified(repo, unverified)],
|
|
182
|
+
unverified
|
|
183
|
+
};
|
|
184
|
+
const fileRel = `${rel}/${repo}.audit.yaml`;
|
|
185
|
+
const onFile = await readAudit(root, repo);
|
|
186
|
+
if (onFile.issues)
|
|
187
|
+
return {
|
|
188
|
+
refused: "bad-file",
|
|
189
|
+
lines: [AUDIT_WORDS.badFile(fileRel), ...onFile.issues.map((i) => ` ${i}`)]
|
|
190
|
+
};
|
|
191
|
+
const commit = [...new Set(facts.map((f) => f.commit))].sort()[0];
|
|
192
|
+
const size = o.size && o.size > 0 ? Math.floor(o.size) : AUDIT_DEFAULT_SIZE;
|
|
193
|
+
const seed = o.seed ?? defaultAuditSeed(repo, commit);
|
|
194
|
+
const links = await linksOf(root, repo);
|
|
195
|
+
const { aiAuditCandidates } = await import("./chunk-LU4MQVAL.js");
|
|
196
|
+
const ai = await aiAuditCandidates(root, repo);
|
|
197
|
+
const drawn = drawAudit({ facts: auditCandidates(facts), links, ai, size, seed });
|
|
198
|
+
const now = (o.now ?? (() => /* @__PURE__ */ new Date()))().toISOString();
|
|
199
|
+
const audit = mergeDraw(onFile.file, repo, drawn, {
|
|
200
|
+
seed,
|
|
201
|
+
size,
|
|
202
|
+
...commit ? { commit } : {},
|
|
203
|
+
at: now
|
|
204
|
+
});
|
|
205
|
+
return { facts, drawn, seed, size, audit, onFile: onFile.file, fileRel, now };
|
|
206
|
+
}
|
|
207
|
+
var defaultAuditSeed = (repo, commit) => `${repo}@${(commit ?? "").slice(0, 7)}`;
|
|
208
|
+
function answerAudit(audit, answers, by, now) {
|
|
209
|
+
const byId = new Map(audit.items.map((i) => [i.id, i]));
|
|
210
|
+
const unknown = [];
|
|
211
|
+
for (const [id, a] of answers) {
|
|
212
|
+
const item = byId.get(id) ?? byId.get(`fact:${id}`) ?? byId.get(`link:${id}`) ?? byId.get(`ai:${id}`);
|
|
213
|
+
if (!item) {
|
|
214
|
+
unknown.push(id);
|
|
215
|
+
continue;
|
|
216
|
+
}
|
|
217
|
+
if (item.answer === a.answer && item.by !== void 0 && (!a.note || a.note === item.note))
|
|
218
|
+
continue;
|
|
219
|
+
const changedAnswer = item.answer !== a.answer;
|
|
220
|
+
item.answer = a.answer;
|
|
221
|
+
if (a.note)
|
|
222
|
+
item.note = a.note;
|
|
223
|
+
else if (changedAnswer)
|
|
224
|
+
delete item.note;
|
|
225
|
+
item.by = by;
|
|
226
|
+
item.at = now;
|
|
227
|
+
}
|
|
228
|
+
return unknown;
|
|
229
|
+
}
|
|
230
|
+
async function writeAudit(root, repo, audit) {
|
|
231
|
+
await writeFile(auditPath(root, repo), serializeAuditFile(audit), "utf8");
|
|
232
|
+
}
|
|
233
|
+
async function auditLines(root, repo, items, dir) {
|
|
234
|
+
const lineOf = lineReader(root, dir ? { dir } : {}, repo);
|
|
235
|
+
const out = /* @__PURE__ */ new Map();
|
|
236
|
+
for (const i of items)
|
|
237
|
+
for (const c of i.cites)
|
|
238
|
+
if (!out.has(c))
|
|
239
|
+
out.set(c, await lineOf(c));
|
|
240
|
+
return out;
|
|
241
|
+
}
|
|
242
|
+
async function auditCommand(root, repo, o, io) {
|
|
243
|
+
if (o.report)
|
|
244
|
+
return repo ? auditReport(root, repo, o, io) : estateAuditReport(root, o, io);
|
|
245
|
+
if (!repo) {
|
|
246
|
+
io.err(AUDIT_WORDS.usage);
|
|
247
|
+
return 2;
|
|
248
|
+
}
|
|
249
|
+
const given = await givenAnswers(root, o);
|
|
250
|
+
const prepared = await prepareAudit(root, repo, {
|
|
251
|
+
...o.size !== void 0 ? { size: o.size } : {},
|
|
252
|
+
...o.seed !== void 0 ? { seed: o.seed } : {},
|
|
253
|
+
...o.now ? { now: o.now } : {}
|
|
254
|
+
});
|
|
255
|
+
if ("refused" in prepared) {
|
|
256
|
+
for (const l of prepared.lines)
|
|
257
|
+
io.err(l);
|
|
258
|
+
return 2;
|
|
259
|
+
}
|
|
260
|
+
if (given.issues.length) {
|
|
261
|
+
io.err(AUDIT_WORDS.badAnswers(o.answers ?? "--right/--wrong/--unsure"));
|
|
262
|
+
for (const i of given.issues)
|
|
263
|
+
io.err(` ${i}`);
|
|
264
|
+
return 2;
|
|
265
|
+
}
|
|
266
|
+
const { facts, drawn, seed, size, audit, fileRel, now, onFile } = prepared;
|
|
267
|
+
const rel = factsRelOf(root);
|
|
268
|
+
if (!drawn.length && !onFile) {
|
|
269
|
+
io.out(AUDIT_WORDS.nothing(repo));
|
|
270
|
+
return 0;
|
|
271
|
+
}
|
|
272
|
+
const unknown = answerAudit(audit, given.answers, o.by, now);
|
|
273
|
+
if (unknown.length) {
|
|
274
|
+
io.err(AUDIT_WORDS.unknownIds(unknown));
|
|
275
|
+
return 2;
|
|
276
|
+
}
|
|
277
|
+
const thisDraw = new Set(drawn.map((d) => d.id));
|
|
278
|
+
const shown = audit.items.filter((i) => thisDraw.has(i.id));
|
|
279
|
+
if (!o.json)
|
|
280
|
+
io.out(AUDIT_WORDS.drew(repo, shown.filter((i) => i.kind === "fact").length, shown.filter((i) => i.kind === "link").length, seed, size));
|
|
281
|
+
const lineOf = lineReader(root, o, repo);
|
|
282
|
+
const show = async (i, k) => {
|
|
283
|
+
io.out("");
|
|
284
|
+
io.out(`[${k}/${shown.length}] ${i.kind === "link" ? `link (${i.of})` : "fact"} ${i.claim}`);
|
|
285
|
+
io.out(` id ${i.id}`);
|
|
286
|
+
for (const c of i.cites) {
|
|
287
|
+
const text = await lineOf(c);
|
|
288
|
+
io.out(` ${c}${text ? ` ${text.length > 160 ? `${text.slice(0, 157)}...` : text}` : ""}`);
|
|
289
|
+
}
|
|
290
|
+
};
|
|
291
|
+
const pointTo = (i) => io.out(i.kind === "fact" ? AUDIT_WORDS.wrongFact(repo, rel) : AUDIT_WORDS.wrongLink(repo, rel, i.fact ?? i.id));
|
|
292
|
+
if (!o.json) {
|
|
293
|
+
let k = 0;
|
|
294
|
+
let stopped = false;
|
|
295
|
+
for (const i of shown) {
|
|
296
|
+
k++;
|
|
297
|
+
if (i.answer || stopped || !o.ask) {
|
|
298
|
+
await show(i, k);
|
|
299
|
+
if (i.answer)
|
|
300
|
+
io.out(` ${i.answer}${i.note ? `: ${i.note}` : ""}`);
|
|
301
|
+
if (i.answer === "wrong")
|
|
302
|
+
pointTo(i);
|
|
303
|
+
continue;
|
|
304
|
+
}
|
|
305
|
+
await show(i, k);
|
|
306
|
+
const said = (await o.ask(AUDIT_WORDS.question) ?? "").trim().toLowerCase();
|
|
307
|
+
if (said === "q") {
|
|
308
|
+
stopped = true;
|
|
309
|
+
continue;
|
|
310
|
+
}
|
|
311
|
+
const answer = AUDIT_ANSWERS.find((a) => a === said || a[0] === said);
|
|
312
|
+
if (!answer)
|
|
313
|
+
continue;
|
|
314
|
+
i.answer = answer;
|
|
315
|
+
i.by = o.by;
|
|
316
|
+
i.at = now;
|
|
317
|
+
if (answer === "wrong") {
|
|
318
|
+
const note = (await o.ask(AUDIT_WORDS.noteQuestion) ?? "").trim();
|
|
319
|
+
if (note)
|
|
320
|
+
i.note = note;
|
|
321
|
+
pointTo(i);
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
await writeAudit(root, repo, audit);
|
|
326
|
+
const precision = await precisionOf(root, repo, audit, facts);
|
|
327
|
+
if (o.json) {
|
|
328
|
+
io.out(JSON.stringify({ repo, file: fileRel, seed, size, drawn: shown, precision, wrote: true }, null, 2));
|
|
329
|
+
return 0;
|
|
330
|
+
}
|
|
331
|
+
io.out("");
|
|
332
|
+
if (!o.ask && shown.some((i) => !i.answer))
|
|
333
|
+
io.out(AUDIT_WORDS.howToAnswer(repo, fileRel));
|
|
334
|
+
io.out(AUDIT_WORDS.wrote(fileRel, audit.items.filter((i) => i.answer).length, audit.items.filter((i) => !i.answer).length));
|
|
335
|
+
io.out("");
|
|
336
|
+
for (const l of precisionLines(precision))
|
|
337
|
+
io.out(l);
|
|
338
|
+
return 0;
|
|
339
|
+
}
|
|
340
|
+
async function precisionOf(root, repo, audit, facts) {
|
|
341
|
+
const byId = new Map(facts.map((f) => [f.id, f]));
|
|
342
|
+
const links = new Map((await linksOf(root, repo)).map((l) => [l.id, l]));
|
|
343
|
+
return auditPrecision(audit.items, (i) => i.kind === "fact" ? auditItemHolds(i, byId) : i.kind === "ai" ? true : links.get(i.id)?.to === i.to);
|
|
344
|
+
}
|
|
345
|
+
async function auditReport(root, repo, o, io) {
|
|
346
|
+
const fileRel = `${factsRelOf(root)}/${repo}.audit.yaml`;
|
|
347
|
+
const onFile = await readAudit(root, repo);
|
|
348
|
+
if (onFile.issues) {
|
|
349
|
+
io.err(AUDIT_WORDS.badFile(fileRel));
|
|
350
|
+
for (const i of onFile.issues)
|
|
351
|
+
io.err(` ${i}`);
|
|
352
|
+
return 2;
|
|
353
|
+
}
|
|
354
|
+
if (!onFile.file) {
|
|
355
|
+
io.err(AUDIT_WORDS.noAudit(repo));
|
|
356
|
+
return 2;
|
|
357
|
+
}
|
|
358
|
+
const precision = await precisionOf(root, repo, onFile.file, (await readFactsOf(root, repo)).facts ?? []);
|
|
359
|
+
const seeds = onFile.file.draws.map((d) => d.seed);
|
|
360
|
+
if (o.json) {
|
|
361
|
+
io.out(JSON.stringify({ repo, file: fileRel, seeds, precision }, null, 2));
|
|
362
|
+
return 0;
|
|
363
|
+
}
|
|
364
|
+
io.out(AUDIT_WORDS.head(repo, fileRel, seeds));
|
|
365
|
+
for (const l of precisionLines(precision))
|
|
366
|
+
io.out(l);
|
|
367
|
+
return 0;
|
|
368
|
+
}
|
|
369
|
+
async function estateAuditReport(root, o, io) {
|
|
370
|
+
const out = [];
|
|
371
|
+
for (const repo of await factsRepos(root)) {
|
|
372
|
+
const onFile = await readAudit(root, repo);
|
|
373
|
+
if (onFile.issues) {
|
|
374
|
+
io.err(AUDIT_WORDS.badFile(`${factsRelOf(root)}/${repo}.audit.yaml`));
|
|
375
|
+
for (const i of onFile.issues)
|
|
376
|
+
io.err(` ${i}`);
|
|
377
|
+
return 2;
|
|
378
|
+
}
|
|
379
|
+
if (!onFile.file)
|
|
380
|
+
continue;
|
|
381
|
+
const facts = (await readFactsOf(root, repo)).facts ?? [];
|
|
382
|
+
out.push({ repo, precision: await precisionOf(root, repo, onFile.file, facts) });
|
|
383
|
+
}
|
|
384
|
+
if (!out.length) {
|
|
385
|
+
io.err(AUDIT_WORDS.noAudits);
|
|
386
|
+
return 2;
|
|
387
|
+
}
|
|
388
|
+
const estate = sumAuditPrecision(out.map((x) => x.precision));
|
|
389
|
+
if (o.json) {
|
|
390
|
+
io.out(JSON.stringify({ repos: out, estate }, null, 2));
|
|
391
|
+
return 0;
|
|
392
|
+
}
|
|
393
|
+
io.out(AUDIT_WORDS.estateHead(out.length));
|
|
394
|
+
for (const x of out) {
|
|
395
|
+
io.out(` ${x.repo}: facts ${tallyWords(x.precision.facts)}`);
|
|
396
|
+
io.out(` ${" ".repeat(x.repo.length)} links ${tallyWords(x.precision.links)}`);
|
|
397
|
+
}
|
|
398
|
+
io.out("");
|
|
399
|
+
io.out("The estate:");
|
|
400
|
+
for (const l of precisionLines(estate))
|
|
401
|
+
io.out(l);
|
|
402
|
+
return 0;
|
|
403
|
+
}
|
|
404
|
+
|
|
405
|
+
export {
|
|
406
|
+
AUDIT_WORDS,
|
|
407
|
+
tallyWords,
|
|
408
|
+
prepareAudit,
|
|
409
|
+
defaultAuditSeed,
|
|
410
|
+
answerAudit,
|
|
411
|
+
writeAudit,
|
|
412
|
+
auditLines,
|
|
413
|
+
auditCommand,
|
|
414
|
+
precisionOf
|
|
415
|
+
};
|
|
@@ -15,28 +15,28 @@ import {
|
|
|
15
15
|
glossaryScan,
|
|
16
16
|
testsGenerate,
|
|
17
17
|
traceCommand
|
|
18
|
-
} from "./chunk-
|
|
19
|
-
import "./chunk-
|
|
20
|
-
import "./chunk-
|
|
18
|
+
} from "./chunk-ZX7235KR.js";
|
|
19
|
+
import "./chunk-EZIN5E5B.js";
|
|
20
|
+
import "./chunk-3LZ6P5EP.js";
|
|
21
|
+
import "./chunk-BEPCKDCP.js";
|
|
22
|
+
import "./chunk-HWD4JPU7.js";
|
|
23
|
+
import "./chunk-5WERBKLE.js";
|
|
21
24
|
import "./chunk-VOGCSYOI.js";
|
|
22
|
-
import "./chunk-
|
|
23
|
-
import "./chunk-
|
|
24
|
-
import "./chunk-
|
|
25
|
-
import "./chunk-
|
|
26
|
-
import "./chunk-
|
|
27
|
-
import "./chunk-
|
|
28
|
-
import "./chunk-
|
|
29
|
-
import "./chunk-
|
|
30
|
-
import "./chunk-
|
|
31
|
-
import "./chunk-
|
|
32
|
-
import "./chunk-
|
|
33
|
-
import "./chunk-
|
|
34
|
-
import "./chunk-
|
|
35
|
-
import "./chunk-
|
|
36
|
-
import "./chunk-
|
|
37
|
-
import "./chunk-CNUKCS2T.js";
|
|
38
|
-
import "./chunk-S2A7YC3Q.js";
|
|
39
|
-
import "./chunk-D3PO4DOZ.js";
|
|
25
|
+
import "./chunk-K332XW7K.js";
|
|
26
|
+
import "./chunk-HSZMPH5T.js";
|
|
27
|
+
import "./chunk-D2WSW4GU.js";
|
|
28
|
+
import "./chunk-4KNOJC6J.js";
|
|
29
|
+
import "./chunk-4SLBCEPD.js";
|
|
30
|
+
import "./chunk-64AADMTW.js";
|
|
31
|
+
import "./chunk-JYMIB5XY.js";
|
|
32
|
+
import "./chunk-CPK7QSBG.js";
|
|
33
|
+
import "./chunk-YO2PKTXT.js";
|
|
34
|
+
import "./chunk-TWQRPM76.js";
|
|
35
|
+
import "./chunk-XOL3GFW2.js";
|
|
36
|
+
import "./chunk-QHJJMZLX.js";
|
|
37
|
+
import "./chunk-7AB6OWTV.js";
|
|
38
|
+
import "./chunk-PAINMSID.js";
|
|
39
|
+
import "./chunk-ODMBPDDV.js";
|
|
40
40
|
import "./chunk-TV45EUGM.js";
|
|
41
41
|
export {
|
|
42
42
|
ciArchiveGate,
|
|
@@ -8,13 +8,13 @@ import {
|
|
|
8
8
|
} from "./chunk-VOGCSYOI.js";
|
|
9
9
|
import {
|
|
10
10
|
storeSpecLookup
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-HSZMPH5T.js";
|
|
12
12
|
import {
|
|
13
13
|
createAdapters
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-4KNOJC6J.js";
|
|
15
15
|
import {
|
|
16
16
|
readCatalog
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-4SLBCEPD.js";
|
|
18
18
|
import {
|
|
19
19
|
FeatureError,
|
|
20
20
|
FlowGraph,
|
|
@@ -33,10 +33,10 @@ import {
|
|
|
33
33
|
suggestFeatureLinks,
|
|
34
34
|
workItemsFromTracker,
|
|
35
35
|
writeNameProposals
|
|
36
|
-
} from "./chunk-
|
|
36
|
+
} from "./chunk-64AADMTW.js";
|
|
37
37
|
import {
|
|
38
38
|
readWorkItemExports
|
|
39
|
-
} from "./chunk-
|
|
39
|
+
} from "./chunk-CPK7QSBG.js";
|
|
40
40
|
import {
|
|
41
41
|
applyCurated,
|
|
42
42
|
loadOrgPack,
|
|
@@ -44,10 +44,10 @@ import {
|
|
|
44
44
|
orgPackDirOf,
|
|
45
45
|
recordPath,
|
|
46
46
|
serializeRecord
|
|
47
|
-
} from "./chunk-
|
|
47
|
+
} from "./chunk-PAINMSID.js";
|
|
48
48
|
import {
|
|
49
49
|
SCHEMA_VERSION
|
|
50
|
-
} from "./chunk-
|
|
50
|
+
} from "./chunk-ODMBPDDV.js";
|
|
51
51
|
|
|
52
52
|
// packages/cli/dist/feature-commands.js
|
|
53
53
|
import { mkdir, readFile, writeFile } from "node:fs/promises";
|
|
@@ -11,24 +11,24 @@ import {
|
|
|
11
11
|
planJourney,
|
|
12
12
|
recordCommitment,
|
|
13
13
|
requestFromTeam
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-2V2ZPQQU.js";
|
|
15
15
|
import {
|
|
16
16
|
table
|
|
17
17
|
} from "./chunk-VOGCSYOI.js";
|
|
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-
|
|
29
|
-
import "./chunk-
|
|
30
|
-
import "./chunk-
|
|
31
|
-
import "./chunk-
|
|
18
|
+
import "./chunk-HSZMPH5T.js";
|
|
19
|
+
import "./chunk-D2WSW4GU.js";
|
|
20
|
+
import "./chunk-4KNOJC6J.js";
|
|
21
|
+
import "./chunk-4SLBCEPD.js";
|
|
22
|
+
import "./chunk-64AADMTW.js";
|
|
23
|
+
import "./chunk-JYMIB5XY.js";
|
|
24
|
+
import "./chunk-CPK7QSBG.js";
|
|
25
|
+
import "./chunk-YO2PKTXT.js";
|
|
26
|
+
import "./chunk-TWQRPM76.js";
|
|
27
|
+
import "./chunk-XOL3GFW2.js";
|
|
28
|
+
import "./chunk-QHJJMZLX.js";
|
|
29
|
+
import "./chunk-7AB6OWTV.js";
|
|
30
|
+
import "./chunk-PAINMSID.js";
|
|
31
|
+
import "./chunk-ODMBPDDV.js";
|
|
32
32
|
import "./chunk-TV45EUGM.js";
|
|
33
33
|
|
|
34
34
|
// packages/cli/dist/initiative-commands.js
|
|
@@ -164,12 +164,18 @@ async function requestFromTeam2(root, initiativeId, partyId, o, io, deps = {}) {
|
|
|
164
164
|
async function initiativeCommitment(root, id, status, o, io) {
|
|
165
165
|
const states = ["open", "at-risk", "done", "slipped"];
|
|
166
166
|
if (!id || !status || !o.by || !states.includes(status)) {
|
|
167
|
-
io.err(`Usage: atticus initiative commit <commitment> <${states.join("|")}> [--by <you>]`);
|
|
167
|
+
io.err(`Usage: atticus initiative commit <commitment> <${states.join("|")}> [--by <you>] [--note "<words>"]`);
|
|
168
168
|
return 2;
|
|
169
169
|
}
|
|
170
170
|
try {
|
|
171
|
-
const r = await recordCommitment(root, id, {
|
|
171
|
+
const r = await recordCommitment(root, id, {
|
|
172
|
+
status,
|
|
173
|
+
by: o.by,
|
|
174
|
+
...o.note ? { note: o.note } : {}
|
|
175
|
+
});
|
|
172
176
|
io.out(`${r.commitment.id} is ${status}. Wrote ${r.written}.`);
|
|
177
|
+
if (r.notes)
|
|
178
|
+
io.out(`Noted in ${r.notes}.`);
|
|
173
179
|
return 0;
|
|
174
180
|
} catch (e) {
|
|
175
181
|
return fail(io, e);
|
|
@@ -5,13 +5,13 @@ var __atticusUrl = (p) => new URL("./" + p, import.meta.url).href;
|
|
|
5
5
|
var __atticusPath = (p) => __atticusFileURLToPath(__atticusUrl(p));
|
|
6
6
|
import {
|
|
7
7
|
conformanceCommand
|
|
8
|
-
} from "./chunk-
|
|
9
|
-
import "./chunk-
|
|
10
|
-
import "./chunk-
|
|
11
|
-
import "./chunk-
|
|
12
|
-
import "./chunk-
|
|
13
|
-
import "./chunk-
|
|
14
|
-
import "./chunk-
|
|
8
|
+
} from "./chunk-G5YJBNDZ.js";
|
|
9
|
+
import "./chunk-DDJPM5YX.js";
|
|
10
|
+
import "./chunk-4KNOJC6J.js";
|
|
11
|
+
import "./chunk-TWQRPM76.js";
|
|
12
|
+
import "./chunk-7AB6OWTV.js";
|
|
13
|
+
import "./chunk-PAINMSID.js";
|
|
14
|
+
import "./chunk-ODMBPDDV.js";
|
|
15
15
|
import "./chunk-TV45EUGM.js";
|
|
16
16
|
export {
|
|
17
17
|
conformanceCommand
|
|
@@ -0,0 +1,43 @@
|
|
|
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
|
+
MIGRATIONS,
|
|
8
|
+
STAMP_FILE,
|
|
9
|
+
newerThan,
|
|
10
|
+
readStamp,
|
|
11
|
+
upgradeCheck,
|
|
12
|
+
upgradeCommand
|
|
13
|
+
} from "./chunk-4B6BT75O.js";
|
|
14
|
+
import "./chunk-2HTEMYTB.js";
|
|
15
|
+
import "./chunk-3AQ2R5NL.js";
|
|
16
|
+
import "./chunk-BEPCKDCP.js";
|
|
17
|
+
import "./chunk-HWD4JPU7.js";
|
|
18
|
+
import "./chunk-5WERBKLE.js";
|
|
19
|
+
import "./chunk-K332XW7K.js";
|
|
20
|
+
import "./chunk-HSZMPH5T.js";
|
|
21
|
+
import "./chunk-D2WSW4GU.js";
|
|
22
|
+
import "./chunk-4KNOJC6J.js";
|
|
23
|
+
import "./chunk-4SLBCEPD.js";
|
|
24
|
+
import "./chunk-64AADMTW.js";
|
|
25
|
+
import "./chunk-JYMIB5XY.js";
|
|
26
|
+
import "./chunk-CPK7QSBG.js";
|
|
27
|
+
import "./chunk-YO2PKTXT.js";
|
|
28
|
+
import "./chunk-TWQRPM76.js";
|
|
29
|
+
import "./chunk-VUVGX5L2.js";
|
|
30
|
+
import "./chunk-XOL3GFW2.js";
|
|
31
|
+
import "./chunk-QHJJMZLX.js";
|
|
32
|
+
import "./chunk-7AB6OWTV.js";
|
|
33
|
+
import "./chunk-PAINMSID.js";
|
|
34
|
+
import "./chunk-ODMBPDDV.js";
|
|
35
|
+
import "./chunk-TV45EUGM.js";
|
|
36
|
+
export {
|
|
37
|
+
MIGRATIONS,
|
|
38
|
+
STAMP_FILE,
|
|
39
|
+
newerThan,
|
|
40
|
+
readStamp,
|
|
41
|
+
upgradeCheck,
|
|
42
|
+
upgradeCommand
|
|
43
|
+
};
|