@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
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
matrixMarkdown,
|
|
10
10
|
traceMatrix,
|
|
11
11
|
writeTraceFindings
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-EZIN5E5B.js";
|
|
13
13
|
import {
|
|
14
14
|
table
|
|
15
15
|
} from "./chunk-VOGCSYOI.js";
|
|
@@ -18,14 +18,15 @@ import {
|
|
|
18
18
|
readDataChanges,
|
|
19
19
|
readHops,
|
|
20
20
|
reviewedGates
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-K332XW7K.js";
|
|
22
22
|
import {
|
|
23
23
|
assess,
|
|
24
24
|
changeFolder,
|
|
25
25
|
changeStore,
|
|
26
26
|
checkFindings,
|
|
27
|
-
loadChangeContext
|
|
28
|
-
|
|
27
|
+
loadChangeContext,
|
|
28
|
+
nothingToRelease
|
|
29
|
+
} from "./chunk-HSZMPH5T.js";
|
|
29
30
|
import {
|
|
30
31
|
GlossaryError,
|
|
31
32
|
aliasDecision,
|
|
@@ -37,37 +38,40 @@ import {
|
|
|
37
38
|
resolveTermId,
|
|
38
39
|
scanGlossary,
|
|
39
40
|
writeDecisions
|
|
40
|
-
} from "./chunk-
|
|
41
|
+
} from "./chunk-4SLBCEPD.js";
|
|
41
42
|
import {
|
|
42
43
|
BUILT_IN_EXTRACTORS,
|
|
43
44
|
SHIPPED_DIALECTS_DIR,
|
|
44
45
|
dialectExtractor,
|
|
45
46
|
loadShippedDialects,
|
|
46
47
|
runDialectTests
|
|
47
|
-
} from "./chunk-
|
|
48
|
+
} from "./chunk-TWQRPM76.js";
|
|
48
49
|
import {
|
|
49
50
|
baseClonePath,
|
|
50
51
|
checkoutState,
|
|
51
52
|
createGit,
|
|
52
53
|
readChangeRepos
|
|
53
|
-
} from "./chunk-
|
|
54
|
+
} from "./chunk-XOL3GFW2.js";
|
|
55
|
+
import {
|
|
56
|
+
runtimeForCli
|
|
57
|
+
} from "./chunk-QHJJMZLX.js";
|
|
54
58
|
import {
|
|
55
59
|
DEFAULT_IGNORES,
|
|
56
60
|
fsRepo,
|
|
57
61
|
scanRepo
|
|
58
|
-
} from "./chunk-
|
|
59
|
-
import {
|
|
60
|
-
runtimeForCli
|
|
61
|
-
} from "./chunk-CNUKCS2T.js";
|
|
62
|
+
} from "./chunk-7AB6OWTV.js";
|
|
62
63
|
import {
|
|
63
64
|
catalogDirOf,
|
|
65
|
+
effectiveComponentTypes,
|
|
64
66
|
external_exports,
|
|
67
|
+
factsDirOf,
|
|
65
68
|
loadOrgPack,
|
|
66
69
|
mergeCatalog,
|
|
67
70
|
normalizePath,
|
|
68
71
|
orgPackDirOf,
|
|
72
|
+
parseFacts,
|
|
69
73
|
require_dist
|
|
70
|
-
} from "./chunk-
|
|
74
|
+
} from "./chunk-PAINMSID.js";
|
|
71
75
|
import {
|
|
72
76
|
__toESM
|
|
73
77
|
} from "./chunk-TV45EUGM.js";
|
|
@@ -501,6 +505,8 @@ async function repoDrift(o) {
|
|
|
501
505
|
const merged = mergeCatalog({
|
|
502
506
|
// A fetched copy of the catalog has no manifest, so no declared hosts: route by basepath.
|
|
503
507
|
...orgPackDir ? {} : { gatewayByBasepath: true },
|
|
508
|
+
// ADR 0180: the organisation's component types, as the scan merges with them (no false drift).
|
|
509
|
+
componentTypes: new Set(effectiveComponentTypes(op.componentTypes).map((t) => t.id)),
|
|
504
510
|
records: [...context, ...otherEnds(catalog.records, repoId, components), ...scan.records],
|
|
505
511
|
repos: manifest.map((r) => ({
|
|
506
512
|
id: r.id,
|
|
@@ -812,6 +818,34 @@ function pipelineSnippet(kind) {
|
|
|
812
818
|
import { existsSync as existsSync2 } from "node:fs";
|
|
813
819
|
import { readFile as readFile2 } from "node:fs/promises";
|
|
814
820
|
import { join as join3 } from "node:path";
|
|
821
|
+
var short = (c) => c.slice(0, 12);
|
|
822
|
+
var sameCommit = (a, b) => a.startsWith(b) || b.startsWith(a);
|
|
823
|
+
var plural = (n, one, many = `${one}s`) => `${n} ${n === 1 ? one : many}`;
|
|
824
|
+
async function factsAtMerge(root, r, merged, catalog) {
|
|
825
|
+
const where2 = `${short(merged)}, the commit its release merged into ${r.base}`;
|
|
826
|
+
const readAgain = `read it again (Map \u203A Trust \u203A Freshness: Read again, or atticus map ${r.id}), then atticus verify ${r.id} --write, so the catalog says what shipped.`;
|
|
827
|
+
const text = await readFile2(join3(factsDirOf(root), `${r.id}.jsonl`), "utf8").catch(() => "");
|
|
828
|
+
const parsed = text.trim() ? parseFacts(text) : void 0;
|
|
829
|
+
const facts = parsed?.ok ? parsed.facts : [];
|
|
830
|
+
if (!facts.length)
|
|
831
|
+
return {
|
|
832
|
+
code: "needs-reading",
|
|
833
|
+
message: `${r.id}: no facts were read at ${where2}: ${readAgain}`
|
|
834
|
+
};
|
|
835
|
+
const other = [...new Set(facts.map((f) => f.commit))].filter((c) => !sameCommit(c, merged));
|
|
836
|
+
if (other.length)
|
|
837
|
+
return {
|
|
838
|
+
code: "needs-reading",
|
|
839
|
+
message: `${r.id}: its facts were read at ${other.map(short).join(", ")}, not at ${where2}: ${readAgain}`
|
|
840
|
+
};
|
|
841
|
+
const stale = (await catalog()).filter((x) => x.evidence.some((e) => e.repo === r.id && e.commit && !sameCommit(e.commit, merged))).length;
|
|
842
|
+
if (stale)
|
|
843
|
+
return {
|
|
844
|
+
code: "catalog-stale",
|
|
845
|
+
message: `${r.id}: its facts are of the merged commit ${short(merged)}, but ${plural(stale, "catalog record")} still ${stale === 1 ? "cites" : "cite"} another commit: write them into the catalog (atticus verify ${r.id} --write, or Apply on the Map).`
|
|
846
|
+
};
|
|
847
|
+
return void 0;
|
|
848
|
+
}
|
|
815
849
|
async function archiveGate(root, changeId, o = {}) {
|
|
816
850
|
const change = await changeStore(root).read(changeId);
|
|
817
851
|
const blockers = [];
|
|
@@ -832,11 +866,20 @@ async function archiveGate(root, changeId, o = {}) {
|
|
|
832
866
|
for (const r of await checkFindings(root, change, gates))
|
|
833
867
|
blockers.push({ code: "finding", message: r.message });
|
|
834
868
|
const repos = (await readChangeRepos(root, change.id))?.repos ?? [];
|
|
869
|
+
const mustMerge = config.archive.requireMergedPrs;
|
|
870
|
+
const nothing = await nothingToRelease(root, change.id, o.git ? { git: o.git } : {});
|
|
835
871
|
for (const r of repos) {
|
|
836
|
-
if (r.pr &&
|
|
872
|
+
if (!r.pr && nothing.has(r.id))
|
|
873
|
+
continue;
|
|
874
|
+
if (mustMerge && (!r.pr || r.pr.state === "closed"))
|
|
875
|
+
blockers.push({
|
|
876
|
+
code: "pr-missing",
|
|
877
|
+
message: `${r.id}: ${r.pr ? `release PR #${r.pr.number} was closed without merging` : `no release PR from ${r.branch} into ${r.base} was raised`}, so the code never reached ${r.base}: raise the release PRs (Release \u203A Raise the release PRs, or atticus change release-prs ${change.id} --approve), and merge them on the Git host.`
|
|
878
|
+
});
|
|
879
|
+
else if (mustMerge && r.pr && r.pr.state !== "merged")
|
|
837
880
|
blockers.push({
|
|
838
881
|
code: "pr-open",
|
|
839
|
-
message: `${r.id}: PR #${r.pr.number} is ${r.pr.state};
|
|
882
|
+
message: `${r.id}: release PR #${r.pr.number} is ${r.pr.state}; a person merges it on the Git host before archiving.`
|
|
840
883
|
});
|
|
841
884
|
if (r.build.status === "failed")
|
|
842
885
|
blockers.push({
|
|
@@ -845,6 +888,8 @@ async function archiveGate(root, changeId, o = {}) {
|
|
|
845
888
|
});
|
|
846
889
|
else if (r.build.status === "running")
|
|
847
890
|
blockers.push({ code: "build-running", message: `${r.id}: the build is still running.` });
|
|
891
|
+
else if (r.build.status === "not-run" && r.pr?.state === "merged")
|
|
892
|
+
notes.push(`${r.id}: the Git host reported no checks on release PR #${r.pr.number}, so no build is recorded for what merged.`);
|
|
848
893
|
else if (r.build.status === "not-run" && r.pr)
|
|
849
894
|
blockers.push({
|
|
850
895
|
code: "build-not-run",
|
|
@@ -852,48 +897,77 @@ async function archiveGate(root, changeId, o = {}) {
|
|
|
852
897
|
});
|
|
853
898
|
}
|
|
854
899
|
const drift = [];
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
});
|
|
864
|
-
}
|
|
900
|
+
for (const f of o.driftReports ?? []) {
|
|
901
|
+
try {
|
|
902
|
+
drift.push(JSON.parse(await readFile2(f, "utf8")));
|
|
903
|
+
} catch (e) {
|
|
904
|
+
blockers.push({
|
|
905
|
+
code: "drift-error",
|
|
906
|
+
message: `Can't read the drift report ${f}: ${e.message.split("\n")[0]}.`
|
|
907
|
+
});
|
|
865
908
|
}
|
|
866
|
-
}
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
872
|
-
|
|
909
|
+
}
|
|
910
|
+
const git = o.git ?? createGit();
|
|
911
|
+
const readersDecide = /* @__PURE__ */ new Set();
|
|
912
|
+
let records;
|
|
913
|
+
const catalog = async () => records ??= (await readCatalog(join3(catalogDirOf(root), "generated"))).records;
|
|
914
|
+
for (const r of repos) {
|
|
915
|
+
if (!r.pr && nothing.has(r.id))
|
|
916
|
+
continue;
|
|
917
|
+
if (mustMerge && r.pr?.state !== "merged")
|
|
918
|
+
continue;
|
|
919
|
+
const report = drift.find((d) => d.repo === r.id);
|
|
920
|
+
const dir = o.repoDir?.(r.id) ?? baseClonePath(root, r.id);
|
|
921
|
+
const there = !!dir && existsSync2(dir);
|
|
922
|
+
const merged = o.commit ?? (report && !/^0+$/.test(report.scanned.commit) ? report.scanned.commit : void 0) ?? (there ? await git(["rev-parse", "HEAD"], dir).then((x) => x.stdout.trim() || void 0).catch(() => void 0) : void 0);
|
|
923
|
+
if (!merged) {
|
|
924
|
+
notes.push(`No clone of ${r.id} here to say which commit merged, so its facts weren't compared: sync the workspace (atticus workspace sync), or pass its pipeline's drift report.`);
|
|
925
|
+
continue;
|
|
926
|
+
}
|
|
927
|
+
if (r.pr?.state === "merged" && r.baseSha && sameCommit(merged, r.baseSha)) {
|
|
928
|
+
blockers.push({
|
|
929
|
+
code: "not-synced",
|
|
930
|
+
message: `${r.id}: the clone here is still at ${short(merged)}, where the change started, though release PR #${r.pr.number} merged: sync the workspace (atticus workspace sync), then read the repo again.`
|
|
931
|
+
});
|
|
932
|
+
continue;
|
|
933
|
+
}
|
|
934
|
+
const readByAssistant = existsSync2(join3(factsDirOf(root), `${r.id}.jsonl`)) || (await catalog()).some((x) => x.evidence.some((e) => e.repo === r.id && e.by === "assistant"));
|
|
935
|
+
if (readByAssistant) {
|
|
936
|
+
const b = await factsAtMerge(root, r, merged, catalog);
|
|
937
|
+
if (b)
|
|
938
|
+
blockers.push(b);
|
|
939
|
+
} else if (report)
|
|
940
|
+
readersDecide.add(r.id);
|
|
941
|
+
if (!report && there) {
|
|
873
942
|
try {
|
|
874
|
-
drift.push(await repoDrift({
|
|
875
|
-
|
|
876
|
-
|
|
877
|
-
repo: r.id,
|
|
878
|
-
...o.commit ? { commit: o.commit } : {}
|
|
879
|
-
}));
|
|
943
|
+
drift.push(await repoDrift({ repoDir: dir, catalog: root, repo: r.id, commit: merged }));
|
|
944
|
+
if (!readByAssistant)
|
|
945
|
+
readersDecide.add(r.id);
|
|
880
946
|
} catch (e) {
|
|
881
947
|
if (!(e instanceof DriftError))
|
|
882
948
|
throw e;
|
|
883
|
-
|
|
949
|
+
if (readByAssistant)
|
|
950
|
+
notes.push(`Cross-check only: the built-in readers couldn't read ${r.id}: ${e.message}`);
|
|
951
|
+
else
|
|
952
|
+
blockers.push({ code: "drift-error", message: `${r.id}: ${e.message}` });
|
|
884
953
|
}
|
|
885
|
-
}
|
|
886
|
-
|
|
887
|
-
notes.push("The change has no repos (repos.yaml), so there was no code to check for drift.");
|
|
954
|
+
} else if (!report && !readByAssistant)
|
|
955
|
+
notes.push(`No clone of ${r.id} here, so its drift wasn't checked; sync the workspace, or pass its pipeline's drift report.`);
|
|
888
956
|
}
|
|
957
|
+
if (!repos.length)
|
|
958
|
+
notes.push("The change has no repos (repos.yaml), so there was no code to check for drift.");
|
|
889
959
|
for (const d of drift) {
|
|
890
960
|
const items = d.items.filter((i) => i.kind !== "planned");
|
|
891
961
|
if (!items.length)
|
|
892
962
|
continue;
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
|
|
896
|
-
|
|
963
|
+
if (readersDecide.has(d.repo)) {
|
|
964
|
+
blockers.push({
|
|
965
|
+
code: "drift",
|
|
966
|
+
message: `${d.repo}: ${items.length} catalog drift ${items.length === 1 ? "finding" : "findings"} (${items.slice(0, 3).map((i) => i.summary.replace(/\.$/, "")).join("; ")}${items.length > 3 ? "; ..." : ""}).`
|
|
967
|
+
});
|
|
968
|
+
continue;
|
|
969
|
+
}
|
|
970
|
+
notes.push(`Cross-check only, not blocking: the built-in readers see ${plural(items.length, "difference")} in ${d.repo} (${items.slice(0, 3).map((i) => i.summary.replace(/\.$/, "")).join("; ")}${items.length > 3 ? "; ..." : ""}). The facts read and verified at the merged commit decide (ADR 0074).`);
|
|
897
971
|
}
|
|
898
972
|
const unique = [...new Map(blockers.map((b) => [b.message, b])).values()];
|
|
899
973
|
return {
|
|
@@ -927,7 +1001,7 @@ var lines = (io, text) => {
|
|
|
927
1001
|
for (const l of text.trimEnd().split("\n"))
|
|
928
1002
|
io.out(l);
|
|
929
1003
|
};
|
|
930
|
-
var
|
|
1004
|
+
var plural2 = (n, w) => `${n} ${w}${n === 1 ? "" : "s"}`;
|
|
931
1005
|
async function runtimeOf(root, mode, deps) {
|
|
932
1006
|
if (deps.runtime)
|
|
933
1007
|
return deps.runtime;
|
|
@@ -968,7 +1042,7 @@ async function testsGenerate(root, changeId, storyId, o, io, deps = {}) {
|
|
|
968
1042
|
}
|
|
969
1043
|
const count = (a) => r.files.filter((f) => f.action === a).length;
|
|
970
1044
|
const cases = r.model.repos.reduce((n, x) => n + x.cases.length, 0);
|
|
971
|
-
io.out(`${o.check ? "Would write" : "Generated"} ${
|
|
1045
|
+
io.out(`${o.check ? "Would write" : "Generated"} ${plural2(cases, "test case")} for ${r.story} in ${plural2(r.files.length, "file")}: ${count("created")} new, ${count("updated")} updated, ${count("unchanged")} unchanged${kept.length ? `, ${kept.length} kept` : ""}.`);
|
|
972
1046
|
for (const l of table(["ACTION", "REPO", "FRAMEWORK", "FILE"], r.files.map((f) => [f.action, f.repo || "-", f.generator, f.path])))
|
|
973
1047
|
io.out(l);
|
|
974
1048
|
for (const k of r.model.kinds.filter((x) => !x.generated))
|
|
@@ -1003,7 +1077,7 @@ async function traceCommand(root, changeId, o, io, deps = {}) {
|
|
|
1003
1077
|
else {
|
|
1004
1078
|
lines(io, matrixMarkdown(m));
|
|
1005
1079
|
if (w)
|
|
1006
|
-
io.out(w.unchanged ? `Findings on the trace gate are unchanged (round ${w.round ?? "none"}).` : `Wrote ${
|
|
1080
|
+
io.out(w.unchanged ? `Findings on the trace gate are unchanged (round ${w.round ?? "none"}).` : `Wrote ${plural2(w.findings.length, "finding")} to review/trace/${w.round}/.`);
|
|
1007
1081
|
}
|
|
1008
1082
|
return m.gaps.some((g) => g.kind !== "test-without-requirement") ? 1 : 0;
|
|
1009
1083
|
} catch (e) {
|
|
@@ -1086,7 +1160,7 @@ async function ciArchiveGate(root, changeId, o, io, deps = {}) {
|
|
|
1086
1160
|
if (o.json)
|
|
1087
1161
|
io.out(JSON.stringify(r, null, 2));
|
|
1088
1162
|
else {
|
|
1089
|
-
io.out(r.pass ? `${changeId} may be archived: no blockers,
|
|
1163
|
+
io.out(r.pass ? `${changeId} may be archived: no blockers, its release PRs merged and built, and the catalog says what shipped.` : `${changeId} can't be archived yet (${plural2(r.blockers.length, "blocker")}):`);
|
|
1090
1164
|
for (const b of r.blockers)
|
|
1091
1165
|
io.out(`- ${b.message}`);
|
|
1092
1166
|
for (const n of r.notes)
|
|
@@ -1094,7 +1168,7 @@ async function ciArchiveGate(root, changeId, o, io, deps = {}) {
|
|
|
1094
1168
|
}
|
|
1095
1169
|
return r.pass ? 0 : 1;
|
|
1096
1170
|
}
|
|
1097
|
-
var
|
|
1171
|
+
var short2 = (s, n = 70) => s.length <= n ? s : `${s.slice(0, n - 3)}...`;
|
|
1098
1172
|
var sourceOf = (flags, confidence) => confidence === "asserted" ? "person" : flags?.includes("ai-proposed") ? "ai" : flags?.includes("undefined") ? "code" : "wiki";
|
|
1099
1173
|
async function glossaryList(root, o, io) {
|
|
1100
1174
|
const g = await loadGlossary(root);
|
|
@@ -1118,10 +1192,10 @@ async function glossaryList(root, o, io) {
|
|
|
1118
1192
|
t.id,
|
|
1119
1193
|
sourceOf(t.flags, t.confidence),
|
|
1120
1194
|
(t.flags ?? []).join(","),
|
|
1121
|
-
|
|
1195
|
+
short2(t.definition)
|
|
1122
1196
|
])))
|
|
1123
1197
|
io.out(l);
|
|
1124
|
-
io.out(`${
|
|
1198
|
+
io.out(`${plural2(g.terms.length, "term")}, ${plural2(g.build.conflicts.filter((c) => !c.resolved).length, "conflict")}.`);
|
|
1125
1199
|
return 0;
|
|
1126
1200
|
}
|
|
1127
1201
|
async function glossaryScan(root, o, io, deps = {}) {
|
|
@@ -1154,9 +1228,9 @@ function printGlossaryScan(r, io) {
|
|
|
1154
1228
|
for (const p of r.problems)
|
|
1155
1229
|
io.err(p);
|
|
1156
1230
|
const open = r.build.conflicts.filter((c) => !c.resolved);
|
|
1157
|
-
io.out(`The glossary has ${
|
|
1231
|
+
io.out(`The glossary has ${plural2(r.terms.length, "term")}; ${plural2(r.written.length, "file")} written and ${plural2(r.removed.length, "file")} removed in catalog/generated.`);
|
|
1158
1232
|
if (r.propose)
|
|
1159
|
-
io.out(r.propose.waiting ? `The glossary definer is with your assistant (run ${r.propose.waiting}). When it is done, run: atticus handoff done ${r.propose.waiting}` : `The glossary definer proposed ${
|
|
1233
|
+
io.out(r.propose.waiting ? `The glossary definer is with your assistant (run ${r.propose.waiting}). When it is done, run: atticus handoff done ${r.propose.waiting}` : `The glossary definer proposed ${plural2(r.propose.proposals.length, "definition")} (kept inferred until a person defines the term).`);
|
|
1160
1234
|
for (const d of r.propose?.discarded ?? [])
|
|
1161
1235
|
if (d.term && !r.propose?.waiting)
|
|
1162
1236
|
io.err(`Discarded ${d.term}: ${d.reason}`);
|
|
@@ -4,31 +4,33 @@ 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
|
+
completeCriticBatch,
|
|
7
8
|
completeCriticLens,
|
|
8
9
|
critic,
|
|
9
10
|
criticStats,
|
|
10
11
|
findingAction,
|
|
11
12
|
findings,
|
|
12
13
|
statusLine
|
|
13
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-PTQ3ZALZ.js";
|
|
14
15
|
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-
|
|
29
|
-
import "./chunk-
|
|
16
|
+
import "./chunk-K332XW7K.js";
|
|
17
|
+
import "./chunk-HSZMPH5T.js";
|
|
18
|
+
import "./chunk-D2WSW4GU.js";
|
|
19
|
+
import "./chunk-4KNOJC6J.js";
|
|
20
|
+
import "./chunk-4SLBCEPD.js";
|
|
21
|
+
import "./chunk-64AADMTW.js";
|
|
22
|
+
import "./chunk-JYMIB5XY.js";
|
|
23
|
+
import "./chunk-CPK7QSBG.js";
|
|
24
|
+
import "./chunk-YO2PKTXT.js";
|
|
25
|
+
import "./chunk-TWQRPM76.js";
|
|
26
|
+
import "./chunk-XOL3GFW2.js";
|
|
27
|
+
import "./chunk-QHJJMZLX.js";
|
|
28
|
+
import "./chunk-7AB6OWTV.js";
|
|
29
|
+
import "./chunk-PAINMSID.js";
|
|
30
|
+
import "./chunk-ODMBPDDV.js";
|
|
30
31
|
import "./chunk-TV45EUGM.js";
|
|
31
32
|
export {
|
|
33
|
+
completeCriticBatch,
|
|
32
34
|
completeCriticLens,
|
|
33
35
|
critic,
|
|
34
36
|
criticStats,
|