@maycombhq/atticus 2.0.0-beta.2 → 2.0.0-beta.22
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-23XVSEV5.js +49 -0
- package/dist/{chunk-ZDPAS56H.js → chunk-24OXGB3P.js} +8 -2
- package/dist/{chunk-7EOBHUMC.js → chunk-24XLDU72.js} +4 -3
- package/dist/{chunk-CR3MTH32.js → chunk-2F4CYZKJ.js} +86 -11
- package/dist/{chunk-6IU67AEK.js → chunk-2GF7OLF3.js} +23 -15
- package/dist/chunk-2IIMFOPM.js +41 -0
- package/dist/chunk-2LGRMVCA.js +617 -0
- package/dist/{chunk-XPCM366L.js → chunk-2MMCFP5C.js} +10 -8
- package/dist/{chunk-JBTK5OP2.js → chunk-2Q56PQPS.js} +6 -4
- package/dist/{chunk-Z6LF7HQN.js → chunk-2Q5EDGEO.js} +7 -5
- package/dist/{chunk-3USYZGRF.js → chunk-2RLKFUUL.js} +38 -27
- package/dist/chunk-2SKB4O2E.js +59 -0
- package/dist/{chunk-SP2I63OO.js → chunk-34S2WGOB.js} +87 -4
- package/dist/{chunk-GQ4N4WKF.js → chunk-3NFFJL5D.js} +33 -27
- package/dist/{chunk-SJRGMG6A.js → chunk-3NWDLGG6.js} +28 -25
- package/dist/{chunk-4WBVUHXN.js → chunk-3RM4UK6W.js} +20 -18
- package/dist/chunk-42SIDKEU.js +583 -0
- package/dist/{chunk-GLUX4EEP.js → chunk-4EURQWQD.js} +20 -15
- package/dist/chunk-4U276ICE.js +39 -0
- package/dist/{chunk-ZMFPW66A.js → chunk-53T4O55J.js} +4 -3
- package/dist/{chunk-6J5OKA4Y.js → chunk-57TDNMI3.js} +17 -15
- package/dist/chunk-5BD2KYLE.js +57 -0
- package/dist/{chunk-7EFILTCI.js → chunk-5F7GFN2F.js} +28 -0
- package/dist/chunk-5NMKONLP.js +95 -0
- package/dist/{chunk-7ZUIMTOU.js → chunk-5SJZW52K.js} +26 -24
- package/dist/{chunk-4RS5KZQD.js → chunk-63YRMR6J.js} +6 -5
- package/dist/chunk-66PPNOON.js +62 -0
- package/dist/chunk-6H3Z5JHH.js +64 -0
- package/dist/{chunk-CEXSU4S6.js → chunk-6MUGR4LS.js} +775 -89
- package/dist/{chunk-QSXK2RGH.js → chunk-6OJQOPUN.js} +5 -3
- package/dist/{chunk-MVZVGYXH.js → chunk-6PPOWY5E.js} +84 -14
- package/dist/{chunk-7EKXJZ2Y.js → chunk-6ZGLAACW.js} +299 -38
- package/dist/chunk-6ZJ5A7AF.js +222 -0
- package/dist/{chunk-L24C55VN.js → chunk-745DAZ4L.js} +142 -30
- package/dist/{chunk-Q4D5X7QB.js → chunk-7ASNL4Q4.js} +46 -24
- package/dist/chunk-7BR7IPOH.js +35 -0
- package/dist/{chunk-7WD63HU2.js → chunk-7DOR27HL.js} +6 -6
- package/dist/chunk-7FTTA3HD.js +341 -0
- package/dist/{chunk-OLQJTJJU.js → chunk-7GJS6DNX.js} +12 -3
- package/dist/{chunk-7JUKDRSZ.js → chunk-7IGKHZ4Z.js} +347 -226
- package/dist/{chunk-G2B4ZQGH.js → chunk-7IOWA5D5.js} +11 -6
- package/dist/{chunk-EBEW3XXQ.js → chunk-7JITZFJC.js} +7 -5
- package/dist/chunk-7MJSQTL5.js +174 -0
- package/dist/{chunk-I4JRCD6M.js → chunk-7UOMVMFG.js} +25 -17
- package/dist/{chunk-YY6ZQQBP.js → chunk-AFWUDXEM.js} +19 -7
- package/dist/chunk-AFZ3QA6W.js +47 -0
- package/dist/chunk-AJQ72EBM.js +420 -0
- package/dist/chunk-AJYXNTNZ.js +317 -0
- package/dist/chunk-AVTBS4OW.js +49 -0
- package/dist/{chunk-FHH4I4ZV.js → chunk-BDKC6H5P.js} +12 -6
- package/dist/{chunk-IPKHE5D6.js → chunk-BEVTIBRH.js} +1526 -875
- package/dist/chunk-BHT7QK4G.js +162 -0
- package/dist/{chunk-6JUBZBMW.js → chunk-BIGDQDHD.js} +6 -4
- package/dist/{chunk-2BFCZ3RK.js → chunk-BO4KX37X.js} +20 -18
- package/dist/chunk-BPK5P77O.js +115 -0
- package/dist/chunk-BQ4SQQC6.js +59 -0
- package/dist/chunk-BQGDB6ZL.js +7342 -0
- package/dist/{chunk-2ANOROX3.js → chunk-BTGPE6CR.js} +11 -9
- package/dist/chunk-BTY3HZBO.js +93 -0
- package/dist/{chunk-DPZHZQKE.js → chunk-BXYMYEJ4.js} +44 -10
- package/dist/{chunk-2RMYG36Q.js → chunk-C3RY6KU6.js} +309 -346
- package/dist/chunk-C4R4JLHE.js +40 -0
- package/dist/chunk-CADWLE2T.js +18 -0
- package/dist/chunk-CBGGOQWU.js +82 -0
- package/dist/chunk-CMDXGQTS.js +47 -0
- package/dist/{chunk-MC3H7736.js → chunk-CQDGOPGH.js} +58 -18
- package/dist/{chunk-HFQCFSJR.js → chunk-CX4RZ2KS.js} +4 -3
- package/dist/{chunk-PAMPPUR6.js → chunk-CXJ6FUKN.js} +1852 -207
- package/dist/{chunk-ABWHYWNI.js → chunk-D73UEXYW.js} +3 -3
- package/dist/chunk-DCZWQLYT.js +1205 -0
- package/dist/chunk-DLOBCJL6.js +48 -0
- package/dist/{chunk-4BN53TG3.js → chunk-DOBQKHIF.js} +31 -23
- package/dist/chunk-E3ISYXO3.js +423 -0
- package/dist/{chunk-7SW2QWLU.js → chunk-E6ZIEVOI.js} +16 -13
- package/dist/chunk-EBL2R3YG.js +43 -0
- package/dist/{chunk-AIOQPLA5.js → chunk-EGQRREQH.js} +41 -15
- package/dist/chunk-EHA7RMZ3.js +58 -0
- package/dist/{chunk-M766ZJ6W.js → chunk-EIPTLPFC.js} +38 -27
- package/dist/chunk-EMRIQUND.js +517 -0
- package/dist/{chunk-DFBCSHVT.js → chunk-EPCJQQWD.js} +6 -4
- package/dist/{chunk-RZPYKDWS.js → chunk-F3P7N7SF.js} +1 -1
- package/dist/{chunk-R77KLRB3.js → chunk-FFLNS6VP.js} +21 -18
- package/dist/chunk-FFTRTL6R.js +26 -0
- package/dist/{chunk-IHMLFRVV.js → chunk-FPJPLKDW.js} +62 -16
- package/dist/{chunk-JCZIKA4C.js → chunk-FSMSFDLD.js} +5 -4
- package/dist/{chunk-AVJDSJ2F.js → chunk-FUJM6RTF.js} +8 -7
- package/dist/chunk-FZOJFH7Q.js +132 -0
- package/dist/{chunk-QRAOANID.js → chunk-G6X77UJZ.js} +23 -21
- package/dist/{chunk-3ALD2W2A.js → chunk-GCWRWSU7.js} +10 -4
- package/dist/chunk-GIW4ZVDB.js +39 -0
- package/dist/{chunk-B2WLAWNJ.js → chunk-GUX3PTYM.js} +3 -3
- package/dist/{chunk-DPUYDDQG.js → chunk-GZY6RUZ6.js} +25 -3
- package/dist/chunk-H4VO6WG3.js +10 -0
- package/dist/{chunk-MMOSZPWJ.js → chunk-H5HBGNXU.js} +5 -4
- package/dist/chunk-H7KM7LZE.js +229 -0
- package/dist/{chunk-AA6YULYB.js → chunk-HNM2YQT2.js} +7 -7
- package/dist/{chunk-3C7EYRFZ.js → chunk-HYU5VLGA.js} +1 -1
- package/dist/{chunk-XY3P7JW7.js → chunk-IDKCWSM5.js} +1032 -172
- package/dist/chunk-IFKEI4SA.js +237 -0
- package/dist/{chunk-F7HYOUFF.js → chunk-IGOE6KPG.js} +67 -22
- package/dist/{chunk-TDD55CJH.js → chunk-IH2XURVQ.js} +6 -5
- package/dist/chunk-INQHESFB.js +38 -0
- package/dist/chunk-IP74LCOQ.js +57 -0
- package/dist/chunk-IPHHDDC6.js +45 -0
- package/dist/{chunk-T6AIP7H5.js → chunk-ISUAAMGS.js} +110 -153
- package/dist/{chunk-A7UPUQFY.js → chunk-IUPG3UKI.js} +624 -319
- package/dist/{chunk-L6SGQIR3.js → chunk-IVBOQAGB.js} +7 -3
- package/dist/{chunk-27NKUS3X.js → chunk-J2JAKCIW.js} +2205 -796
- package/dist/{chunk-V2YTAIQO.js → chunk-J3IOLXWM.js} +24 -7
- package/dist/chunk-JA5FI3QV.js +142 -0
- package/dist/chunk-JAVI7JSP.js +49 -0
- package/dist/{chunk-HLJAXMM4.js → chunk-JB5LINEM.js} +6 -2
- package/dist/{chunk-2VHF7OXM.js → chunk-JENSEMXF.js} +1 -1
- package/dist/{chunk-6BVONWJ7.js → chunk-JJF6HALY.js} +4 -3
- package/dist/chunk-JLUCKAEL.js +38 -0
- package/dist/chunk-JRBFANFE.js +221 -0
- package/dist/{chunk-R6XF6UR3.js → chunk-KDNTAPLX.js} +4 -4
- package/dist/chunk-KFAVQZSX.js +33 -0
- package/dist/chunk-KJXD4PNL.js +50 -0
- package/dist/chunk-KN5BXMWN.js +44 -0
- package/dist/{chunk-PCVDV3UZ.js → chunk-KQGURXFU.js} +9 -7
- package/dist/{chunk-WY6PP6AA.js → chunk-KXITGYLF.js} +40 -6
- package/dist/{chunk-66YVAGGM.js → chunk-L27SV425.js} +22 -20
- package/dist/{chunk-NE2W3OO7.js → chunk-LDLL7LB3.js} +24 -22
- package/dist/chunk-LFGTYX5U.js +379 -0
- package/dist/{chunk-EYWIDJFU.js → chunk-LGBMTVNT.js} +7 -5
- package/dist/{chunk-Q5AMFEWD.js → chunk-LGFL54FP.js} +3 -2
- package/dist/{chunk-6TACQN3N.js → chunk-LJXMYKZJ.js} +7 -5
- package/dist/{chunk-BKVWTZ6A.js → chunk-LKOR5UET.js} +29 -26
- package/dist/chunk-LNBQOP7D.js +294 -0
- package/dist/{chunk-O3WI5KWW.js → chunk-LO6P2VYG.js} +2 -2
- package/dist/chunk-LQJPN536.js +122 -0
- package/dist/{chunk-YEDDOYSC.js → chunk-LYBNHMVZ.js} +29 -5
- package/dist/{chunk-A3GY6SOA.js → chunk-LZ7NUC62.js} +20 -18
- package/dist/chunk-M32BLWDH.js +37 -0
- package/dist/{chunk-VYDBJ73M.js → chunk-M3NANSDZ.js} +17 -15
- package/dist/chunk-MFHL5URL.js +31 -0
- package/dist/chunk-MFR5OPBD.js +109 -0
- package/dist/{chunk-DE76JROX.js → chunk-MG4ZL5RW.js} +32 -20
- package/dist/{chunk-N7IXEHK3.js → chunk-MO6P2JZH.js} +10 -8
- package/dist/{chunk-65NYPGRC.js → chunk-MUWDB4R4.js} +1 -1
- package/dist/chunk-MZCGSXVR.js +34 -0
- package/dist/{chunk-MGYZM27B.js → chunk-N3XIYPU3.js} +51 -23
- package/dist/chunk-NDCF4R6S.js +172 -0
- package/dist/{chunk-DHPACDG7.js → chunk-NR2UJWOC.js} +10 -8
- package/dist/chunk-NXJ5URP6.js +51 -0
- package/dist/{chunk-UNM6ZOKP.js → chunk-NY2XSR5K.js} +147 -18
- package/dist/{chunk-5GDRCDQB.js → chunk-O45HFTFS.js} +3 -2
- package/dist/{chunk-ONLS5QA5.js → chunk-O4GXGGBX.js} +14 -12
- package/dist/chunk-O5PXQR67.js +249 -0
- package/dist/{chunk-PRPPGYZG.js → chunk-O66DM6DJ.js} +6 -4
- package/dist/{chunk-KEM4SDDP.js → chunk-O7FDLW7L.js} +11 -8
- package/dist/{chunk-T2UYZSCQ.js → chunk-O7XLYEFA.js} +169 -29
- package/dist/{chunk-FITWGOJ2.js → chunk-OHNCWBKF.js} +4 -4
- package/dist/{chunk-652QWTLZ.js → chunk-OHVTTOPS.js} +3 -3
- package/dist/chunk-OMI6FPPN.js +43 -0
- package/dist/chunk-ONUPY3H6.js +53 -0
- package/dist/chunk-OTLDSZDV.js +69 -0
- package/dist/chunk-OUBGGKDU.js +22 -0
- package/dist/chunk-OWNCM4ZN.js +330 -0
- package/dist/{chunk-YISXLPHN.js → chunk-P2V7QW4D.js} +235 -35
- package/dist/{chunk-CNUKCS2T.js → chunk-P32RUW3B.js} +1632 -93
- package/dist/{chunk-BWZ77RQT.js → chunk-PAQ2AS5E.js} +1 -1
- package/dist/{chunk-ZMAINWBW.js → chunk-PBPBMP2B.js} +4 -3
- package/dist/{chunk-ZVM6AKKM.js → chunk-PJSJPMJI.js} +3 -3
- package/dist/{chunk-EFHQ3TWP.js → chunk-PKBHS4AA.js} +233 -56
- package/dist/{chunk-GT4I4ZWM.js → chunk-PMUAJGLI.js} +20 -16
- package/dist/chunk-PPD7HTDP.js +152 -0
- package/dist/chunk-PSOFBQWB.js +42 -0
- package/dist/{chunk-S2A7YC3Q.js → chunk-Q2TECDIT.js} +10694 -8896
- package/dist/chunk-Q4K5WB2W.js +42 -0
- package/dist/{chunk-UGLN7QHV.js → chunk-Q6DFNVRJ.js} +14 -12
- package/dist/chunk-QA4O2GGC.js +265 -0
- package/dist/chunk-QAXW2N3B.js +1216 -0
- package/dist/chunk-QBNWF5ZU.js +19 -0
- package/dist/chunk-QFWA2DPH.js +224 -0
- package/dist/{chunk-23W7VWKR.js → chunk-QKUJMING.js} +1363 -114
- package/dist/{chunk-NXFPS2LR.js → chunk-R44CYFPV.js} +16 -13
- package/dist/{chunk-CKSITVS4.js → chunk-R7NYHMUU.js} +2687 -786
- package/dist/chunk-REWWDVQB.js +162 -0
- package/dist/{chunk-JMSCMUCA.js → chunk-RGERPOIV.js} +145 -21
- package/dist/{chunk-6JCPI55B.js → chunk-RLDGWLQ7.js} +49 -7
- package/dist/chunk-RUGXBPWI.js +384 -0
- package/dist/{chunk-CPA6HPVR.js → chunk-RXPJMEOW.js} +18 -12
- package/dist/{chunk-3HI6Z55Y.js → chunk-S4PMJU6H.js} +339 -43
- package/dist/chunk-S5LSDXV4.js +40 -0
- package/dist/chunk-S7FCV7S5.js +51 -0
- package/dist/{chunk-5GGOLAKC.js → chunk-SDKLKB6I.js} +28 -26
- package/dist/chunk-SFSPGFCV.js +62 -0
- package/dist/{chunk-ZNCEKR4J.js → chunk-SFUP7TTO.js} +12 -8
- package/dist/{chunk-64EQYWCA.js → chunk-SLXZOMA6.js} +69 -19
- package/dist/chunk-SQV37XO2.js +273 -0
- package/dist/{chunk-K65BJIMT.js → chunk-SU74NDMQ.js} +19 -17
- package/dist/chunk-SYV5LHML.js +165 -0
- package/dist/chunk-T4YPZIQN.js +36 -0
- package/dist/chunk-T6DQR5TV.js +323 -0
- package/dist/{chunk-JIITQXFB.js → chunk-THDMSZ3R.js} +3075 -802
- package/dist/{chunk-JGZCG5VM.js → chunk-TNR75OXT.js} +7 -7
- package/dist/{chunk-D3PO4DOZ.js → chunk-TUULXQRW.js} +174 -15
- package/dist/chunk-TYQBFTBR.js +516 -0
- package/dist/chunk-U76OWS3Q.js +49 -0
- package/dist/{chunk-YYQN46FY.js → chunk-UCROWG2D.js} +27 -24
- package/dist/{chunk-6M5NK3K3.js → chunk-UF4AZOZB.js} +50 -10
- package/dist/chunk-UF4GLFBX.js +345 -0
- package/dist/{chunk-OT2O76OS.js → chunk-UGUP3ZM6.js} +240 -39
- package/dist/chunk-UNAGJYET.js +45 -0
- package/dist/{chunk-5WG5YP4T.js → chunk-UOR2DTHH.js} +16 -14
- package/dist/{chunk-S3QNRWYR.js → chunk-UPOY4YSQ.js} +14 -12
- package/dist/{chunk-EPTBZ3GP.js → chunk-UPS2DGFC.js} +1 -1
- package/dist/{chunk-4AK7IBVP.js → chunk-UUU4CLJG.js} +4 -2
- package/dist/{chunk-W3BQAZ3Q.js → chunk-UWMJKX5U.js} +14 -12
- package/dist/{chunk-QZSX3F7C.js → chunk-UWOJLHFT.js} +27 -23
- package/dist/chunk-VBTP56CE.js +535 -0
- package/dist/chunk-VCTWPLAO.js +211 -0
- package/dist/chunk-VNU26RCO.js +1215 -0
- package/dist/{chunk-CSZ4C5N6.js → chunk-VTZMAJ3W.js} +93 -10
- package/dist/{chunk-TXLH6WHQ.js → chunk-VW62D6QE.js} +14 -12
- package/dist/{chunk-CAQZUNOH.js → chunk-VY72R2XZ.js} +610 -3
- package/dist/{chunk-2DIQQJCB.js → chunk-VZALIKIF.js} +18 -15
- package/dist/{chunk-TYAID7B7.js → chunk-W62H2XSO.js} +25 -23
- package/dist/{chunk-HVUPKCGJ.js → chunk-W7VWI2YH.js} +9 -6
- package/dist/{chunk-TANFV3MZ.js → chunk-WERM6KPJ.js} +7 -4
- package/dist/{chunk-BOHJZTEQ.js → chunk-WF7B67YE.js} +208 -87
- package/dist/{chunk-7FBGJFEE.js → chunk-WG5U3F5V.js} +14 -12
- package/dist/{chunk-4NDAAFQT.js → chunk-WJF2CS6M.js} +8 -5
- package/dist/{chunk-XAKWMCXI.js → chunk-WKUJ3KPV.js} +4 -4
- package/dist/chunk-WMTRHUI5.js +103 -0
- package/dist/chunk-WNKPRSGI.js +36 -0
- package/dist/chunk-WXFLMQSR.js +223 -0
- package/dist/{chunk-RRTKKSLQ.js → chunk-X3WY6MN3.js} +8 -6
- package/dist/{chunk-ZCJDOK2S.js → chunk-X4CXA2IL.js} +47 -23
- package/dist/{chunk-UBBC2XSG.js → chunk-X5F3Q5LV.js} +560 -105
- package/dist/{chunk-C6EKFH7J.js → chunk-XD75VZIH.js} +9 -7
- package/dist/chunk-XERYFDB5.js +297 -0
- package/dist/chunk-XI2LCCYQ.js +420 -0
- package/dist/chunk-Y2EQNWKV.js +933 -0
- package/dist/{chunk-LR3R6Z2A.js → chunk-YHCMZC2J.js} +7 -7
- package/dist/chunk-YYY3AZFE.js +122 -0
- package/dist/{chunk-GDLULHTC.js → chunk-Z5IA3WDR.js} +19 -31
- package/dist/{chunk-T6XQL73F.js → chunk-ZFFYNRIO.js} +63 -23
- package/dist/{chunk-EDS2L2LD.js → chunk-ZFL7NY4F.js} +56 -27
- package/dist/{chunk-YMZ3TNYB.js → chunk-ZGULQAPZ.js} +7 -4
- package/dist/{chunk-4SKZDI62.js → chunk-ZIUFM5HT.js} +3 -1
- package/dist/{chunk-DKJA76CJ.js → chunk-ZJFRMSJT.js} +15 -13
- package/dist/chunk-ZJXLNDH4.js +239 -0
- package/dist/chunk-ZQ3ON2VQ.js +252 -0
- package/dist/{chunk-HITVBIJS.js → chunk-ZQ7SKESZ.js} +150 -415
- package/dist/{chunk-6QSERWXH.js → chunk-ZQXZ2SES.js} +24 -21
- package/dist/chunk-ZX57KSEQ.js +39 -0
- package/dist/{chunk-I3E7CX4H.js → chunk-ZZK56BLP.js} +5 -3
- package/dist/files.json +664 -368
- package/dist/packages/naysayer/constitution/constitution.yaml +19 -0
- package/dist/packages/sdk/npm/index.js +6194 -2542
- package/dist/packages/ui/dist/assets/{elk-api-tma0MCuh.js → elk-api-CIf-0gz5.js} +2 -2
- package/dist/packages/ui/dist/assets/index-CoK_Dl0D.js +47 -0
- package/dist/packages/ui/dist/assets/index-Dw20IRhQ.css +1 -0
- package/dist/packages/ui/dist/index.html +3 -2
- package/package.json +5 -5
- 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-RUVFXE2L.js +0 -666
- package/dist/chunk-RVH5SUW5.js +0 -69
- package/dist/chunk-VN3DP4LQ.js +0 -43
- package/dist/chunk-W5BVQF44.js +0 -36
- package/dist/chunk-WVPJSRRJ.js +0 -52
- 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,420 @@
|
|
|
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
|
+
modelsData,
|
|
8
|
+
reachPlanOf
|
|
9
|
+
} from "./chunk-BPK5P77O.js";
|
|
10
|
+
import {
|
|
11
|
+
effectiveRules,
|
|
12
|
+
orgRulesLacking,
|
|
13
|
+
readingRulesText,
|
|
14
|
+
ruleIds,
|
|
15
|
+
ruleMatches
|
|
16
|
+
} from "./chunk-WXFLMQSR.js";
|
|
17
|
+
import {
|
|
18
|
+
loadReadPlan,
|
|
19
|
+
modelsModeOf,
|
|
20
|
+
recordNotReached,
|
|
21
|
+
saveReadPlan
|
|
22
|
+
} from "./chunk-TYQBFTBR.js";
|
|
23
|
+
import {
|
|
24
|
+
FACT_RULES_HASH,
|
|
25
|
+
MODELS_RULE,
|
|
26
|
+
RULE_SETS,
|
|
27
|
+
factRulesFor,
|
|
28
|
+
factsReference,
|
|
29
|
+
ruleSetKinds,
|
|
30
|
+
rulesLacking,
|
|
31
|
+
rulesNow,
|
|
32
|
+
topUpWords
|
|
33
|
+
} from "./chunk-BEVTIBRH.js";
|
|
34
|
+
import {
|
|
35
|
+
fileKinds,
|
|
36
|
+
kindsOf,
|
|
37
|
+
lineRangeOf,
|
|
38
|
+
planBatches,
|
|
39
|
+
readingRank,
|
|
40
|
+
sameCommit
|
|
41
|
+
} from "./chunk-CXJ6FUKN.js";
|
|
42
|
+
import {
|
|
43
|
+
DATA_RULE,
|
|
44
|
+
neutralise,
|
|
45
|
+
wrapData
|
|
46
|
+
} from "./chunk-P32RUW3B.js";
|
|
47
|
+
import {
|
|
48
|
+
citedFiles,
|
|
49
|
+
factsDirOf,
|
|
50
|
+
factsRelOf,
|
|
51
|
+
parseFacts
|
|
52
|
+
} from "./chunk-Q2TECDIT.js";
|
|
53
|
+
import {
|
|
54
|
+
writeFileAtomic
|
|
55
|
+
} from "./chunk-TUULXQRW.js";
|
|
56
|
+
|
|
57
|
+
// packages/cli/dist/map-rules.js
|
|
58
|
+
import { createHash } from "node:crypto";
|
|
59
|
+
import { readFile } from "node:fs/promises";
|
|
60
|
+
import { join } from "node:path";
|
|
61
|
+
var has = (a, b) => a.some((x) => b.includes(x));
|
|
62
|
+
function applies(set, f) {
|
|
63
|
+
switch (set) {
|
|
64
|
+
case "field-types":
|
|
65
|
+
case "message-types":
|
|
66
|
+
return f.code ? f.rank === 2 || f.rank === 3 || f.cited.has("entry") || f.cited.has("call") || f.cited.has("field") : f.rank === 3 && f.kinds.includes("protocols");
|
|
67
|
+
case "mappings":
|
|
68
|
+
return f.kinds.includes("gateway");
|
|
69
|
+
case "terms":
|
|
70
|
+
return !f.code && has(f.kinds, ["config", "deploy", "gateway"]);
|
|
71
|
+
case "call-auth":
|
|
72
|
+
return f.code ? f.rank === 1 || f.rank === 3 || f.cited.has("call") : has(f.kinds, ["config", "gateway"]);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
function topUpFiles(o) {
|
|
76
|
+
const whole = planBatches(o.source, {
|
|
77
|
+
room: Number.MAX_SAFE_INTEGER,
|
|
78
|
+
exclude: o.exclude,
|
|
79
|
+
...o.conventions ? { conventions: o.conventions } : {},
|
|
80
|
+
...o.reach?.reach.rooted && o.reach.reach.models ? { reach: { first: o.reach.first, leaveOut: o.reach.leaveOut } } : {}
|
|
81
|
+
});
|
|
82
|
+
const cites = /* @__PURE__ */ new Map();
|
|
83
|
+
for (const f of o.facts)
|
|
84
|
+
for (const p of citedFiles(f)) {
|
|
85
|
+
const k = cites.get(p) ?? /* @__PURE__ */ new Set();
|
|
86
|
+
k.add(f.kind);
|
|
87
|
+
cites.set(p, k);
|
|
88
|
+
}
|
|
89
|
+
const out = [];
|
|
90
|
+
for (const slice of whole.batches.flat()) {
|
|
91
|
+
const path = slice.path;
|
|
92
|
+
const rank = readingRank(path);
|
|
93
|
+
if (rank === 5)
|
|
94
|
+
continue;
|
|
95
|
+
const kinds = fileKinds(path);
|
|
96
|
+
const of = {
|
|
97
|
+
kinds,
|
|
98
|
+
rank,
|
|
99
|
+
code: kinds.includes("backend") || kinds.includes("frontend"),
|
|
100
|
+
cited: cites.get(path) ?? /* @__PURE__ */ new Set()
|
|
101
|
+
};
|
|
102
|
+
const sets = o.sets.filter((s) => has(kinds, ruleSetKinds(s)) && applies(s, of));
|
|
103
|
+
if (sets.length)
|
|
104
|
+
out.push({ path, tokens: slice.tokens, lines: slice.of, sets });
|
|
105
|
+
}
|
|
106
|
+
return out;
|
|
107
|
+
}
|
|
108
|
+
function ruleSetsOfFiles(files) {
|
|
109
|
+
const all = new Set(files.flatMap((f) => f.sets));
|
|
110
|
+
return [
|
|
111
|
+
...RULE_SETS.filter((x) => all.has(x)),
|
|
112
|
+
...[...all].filter((x) => x.startsWith("org:")).sort()
|
|
113
|
+
];
|
|
114
|
+
}
|
|
115
|
+
function topUpSessions(files, room) {
|
|
116
|
+
const reads = [];
|
|
117
|
+
for (const f of files) {
|
|
118
|
+
if (f.tokens <= room || f.lines <= 1) {
|
|
119
|
+
reads.push({ path: f.path, file: f.path, tokens: f.tokens, sets: f.sets });
|
|
120
|
+
continue;
|
|
121
|
+
}
|
|
122
|
+
const per = Math.max(1, Math.floor(f.lines * room / f.tokens));
|
|
123
|
+
for (let from = 1; from <= f.lines; from += per) {
|
|
124
|
+
const to = Math.min(f.lines, from + per - 1);
|
|
125
|
+
reads.push({
|
|
126
|
+
path: `${f.path}#L${from}-L${to}`,
|
|
127
|
+
file: f.path,
|
|
128
|
+
tokens: Math.ceil(f.tokens * (to - from + 1) / f.lines),
|
|
129
|
+
sets: f.sets
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
const sessions = [];
|
|
134
|
+
for (const r of reads) {
|
|
135
|
+
const last = sessions.at(-1);
|
|
136
|
+
if (last && last.tokens + r.tokens <= room) {
|
|
137
|
+
last.reads.push(r);
|
|
138
|
+
last.tokens += r.tokens;
|
|
139
|
+
} else
|
|
140
|
+
sessions.push({ reads: [r], tokens: r.tokens });
|
|
141
|
+
}
|
|
142
|
+
return sessions.map((s) => ({
|
|
143
|
+
paths: s.reads.map((r) => r.path),
|
|
144
|
+
sets: ruleSetsOfFiles(s.reads),
|
|
145
|
+
files: new Set(s.reads.map((r) => r.file)).size,
|
|
146
|
+
tokens: s.tokens
|
|
147
|
+
}));
|
|
148
|
+
}
|
|
149
|
+
var stamp = () => (/* @__PURE__ */ new Date()).toISOString().replace(/\.\d{3}Z$/, "Z");
|
|
150
|
+
async function factsOf(root, repo) {
|
|
151
|
+
const text = await readFile(join(factsDirOf(root), `${repo}.jsonl`), "utf8").catch(() => "");
|
|
152
|
+
if (!text.trim())
|
|
153
|
+
return `${repo} isn't read yet: atticus map ${repo} reads it, under every rule.`;
|
|
154
|
+
const p = parseFacts(text);
|
|
155
|
+
return p.ok ? p.facts : `${factsRelOf(root)}/${repo}.jsonl does not read as facts (${p.issues[0]?.message ?? "?"}).`;
|
|
156
|
+
}
|
|
157
|
+
async function topUpOf(root, repo, o) {
|
|
158
|
+
const plan = await loadReadPlan(root, repo);
|
|
159
|
+
const builtin = rulesLacking(plan?.rules);
|
|
160
|
+
const org = orgRulesLacking(plan?.rules, await effectiveRules(root, repo)).filter((r) => r.files?.length);
|
|
161
|
+
const lacking = [...builtin, ...org.map((r) => r.id)];
|
|
162
|
+
if (!lacking.length)
|
|
163
|
+
return { lacking, files: [], ...plan ? { plan } : {} };
|
|
164
|
+
const facts = o.facts?.length ? [...o.facts] : await factsOf(root, repo);
|
|
165
|
+
if (typeof facts === "string")
|
|
166
|
+
return { error: facts };
|
|
167
|
+
if (!facts.length)
|
|
168
|
+
return { error: `${repo} isn't read yet: atticus map ${repo} reads it.` };
|
|
169
|
+
if (!facts.every((f) => sameCommit(f.commit, o.commit)))
|
|
170
|
+
return {
|
|
171
|
+
error: `${repo}'s clone moved past its facts' commit: read what changed first (atticus map ${repo}), then top it up.`
|
|
172
|
+
};
|
|
173
|
+
const all = planBatches(o.source, {
|
|
174
|
+
room: Number.MAX_SAFE_INTEGER,
|
|
175
|
+
exclude: o.exclude,
|
|
176
|
+
...o.conventions ? { conventions: o.conventions } : {}
|
|
177
|
+
});
|
|
178
|
+
const reach = reachPlanOf({
|
|
179
|
+
paths: all.batches.flat().map((x) => x.path),
|
|
180
|
+
source: o.source,
|
|
181
|
+
facts,
|
|
182
|
+
mode: await modelsModeOf(root, repo, o.models)
|
|
183
|
+
});
|
|
184
|
+
const files = topUpFiles({
|
|
185
|
+
facts,
|
|
186
|
+
source: o.source,
|
|
187
|
+
exclude: o.exclude,
|
|
188
|
+
sets: builtin,
|
|
189
|
+
...o.conventions ? { conventions: o.conventions } : {},
|
|
190
|
+
reach
|
|
191
|
+
});
|
|
192
|
+
if (org.length) {
|
|
193
|
+
const byPath = new Map(files.map((f) => [f.path, f]));
|
|
194
|
+
for (const slice of all.batches.flat()) {
|
|
195
|
+
if (readingRank(slice.path) === 5)
|
|
196
|
+
continue;
|
|
197
|
+
const ids = org.filter((r) => r.files?.length && ruleMatches(r, slice.path)).map((r) => r.id);
|
|
198
|
+
if (!ids.length)
|
|
199
|
+
continue;
|
|
200
|
+
const f = byPath.get(slice.path);
|
|
201
|
+
if (f)
|
|
202
|
+
f.sets.push(...ids);
|
|
203
|
+
else {
|
|
204
|
+
const add = { path: slice.path, tokens: slice.tokens, lines: slice.of, sets: ids };
|
|
205
|
+
byPath.set(slice.path, add);
|
|
206
|
+
files.push(add);
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
return { lacking, files, reach, ...plan ? { plan } : {} };
|
|
211
|
+
}
|
|
212
|
+
var planOr = (plan, repo, commit, session) => plan ?? { schemaVersion: 2, repo, commit, session, plannedAt: stamp(), parts: [] };
|
|
213
|
+
async function recordRulesNow(root, repo, commit, given) {
|
|
214
|
+
const plan = await loadReadPlan(root, repo);
|
|
215
|
+
const { topUp: _t, ...rest } = planOr(plan, repo, commit, 15e4);
|
|
216
|
+
const org = given ? [...plan?.rules?.sets ?? [], ...given] : ruleIds(await effectiveRules(root, repo));
|
|
217
|
+
const rules = withOrgIds(rulesNow(), org);
|
|
218
|
+
if (plan?.rules?.hash === FACT_RULES_HASH && !plan.topUp && rules.sets.every((x) => plan.rules.sets.includes(x)))
|
|
219
|
+
return;
|
|
220
|
+
await saveReadPlan(root, { ...rest, rules });
|
|
221
|
+
}
|
|
222
|
+
async function writtenHash(root, repo) {
|
|
223
|
+
const h = createHash("sha256");
|
|
224
|
+
for (const f of [`${repo}.jsonl`, `${repo}.reviewed.jsonl`])
|
|
225
|
+
h.update(await readFile(join(factsDirOf(root), f), "utf8").catch(() => "")).update("\0");
|
|
226
|
+
return h.digest("hex").slice(0, 16);
|
|
227
|
+
}
|
|
228
|
+
async function recordTopUpVerified(root, repo, o) {
|
|
229
|
+
const plan = await loadReadPlan(root, repo);
|
|
230
|
+
const t = plan?.topUp;
|
|
231
|
+
if (!plan || !t || !o.commit || !sameCommit(t.commit, o.commit))
|
|
232
|
+
return;
|
|
233
|
+
const now = await writtenHash(root, repo);
|
|
234
|
+
const doneNow = (s) => !!s.given && !s.done && (s.before === void 0 || s.before !== now);
|
|
235
|
+
if (!t.sessions.some(doneNow))
|
|
236
|
+
return;
|
|
237
|
+
const at = o.now ?? stamp();
|
|
238
|
+
const sessions = t.sessions.map((s) => doneNow(s) ? { ...s, done: { at, commit: o.commit } } : s);
|
|
239
|
+
if (sessions.every((s) => s.done)) {
|
|
240
|
+
const { topUp: _t, ...rest } = plan;
|
|
241
|
+
const sets = [.../* @__PURE__ */ new Set([...plan.rules?.sets ?? [], ...t.sets])];
|
|
242
|
+
await saveReadPlan(root, {
|
|
243
|
+
...rest,
|
|
244
|
+
rules: t.hash === FACT_RULES_HASH ? withOrgIds(rulesNow(), sets) : { hash: t.hash, sets }
|
|
245
|
+
});
|
|
246
|
+
return;
|
|
247
|
+
}
|
|
248
|
+
await saveReadPlan(root, { ...plan, topUp: { ...t, sessions } });
|
|
249
|
+
}
|
|
250
|
+
var withOrgIds = (r, had) => ({
|
|
251
|
+
hash: r.hash,
|
|
252
|
+
sets: [...r.sets, ...[...new Set(had.filter((x) => x.startsWith("org:")))].sort()]
|
|
253
|
+
});
|
|
254
|
+
var rulesRelOf = (root, repo) => `${factsRelOf(root)}/${repo}.rules.md`;
|
|
255
|
+
var sameSets = (a, b) => a.length === b.length && a.every((x) => b.includes(x));
|
|
256
|
+
async function plannedTopUp(root, repo, o) {
|
|
257
|
+
const t = await topUpOf(root, repo, o);
|
|
258
|
+
if ("error" in t)
|
|
259
|
+
return t;
|
|
260
|
+
if (!t.lacking.length)
|
|
261
|
+
return { lacking: [], facts: [] };
|
|
262
|
+
const facts = await factsOf(root, repo);
|
|
263
|
+
if (typeof facts === "string")
|
|
264
|
+
return { error: facts };
|
|
265
|
+
if (!o.dryRun && t.reach)
|
|
266
|
+
await recordNotReached(root, repo, {
|
|
267
|
+
commit: o.commit,
|
|
268
|
+
session: o.session,
|
|
269
|
+
models: t.reach.mode,
|
|
270
|
+
...t.reach.notReached ? { notReached: t.reach.notReached } : {}
|
|
271
|
+
});
|
|
272
|
+
const reach = t.reach ? { reach: t.reach } : {};
|
|
273
|
+
const on = (await loadReadPlan(root, repo))?.topUp;
|
|
274
|
+
const same = on && sameCommit(on.commit, o.commit) && on.hash === FACT_RULES_HASH && sameSets(on.sets, t.lacking);
|
|
275
|
+
if (same && (!o.models || on.models === o.models))
|
|
276
|
+
return { lacking: t.lacking, topUp: on, facts, ...reach };
|
|
277
|
+
const doneSessions = same ? on.sessions.filter((s) => s.done) : [];
|
|
278
|
+
const read = new Set(doneSessions.flatMap((s) => s.paths));
|
|
279
|
+
const topUp = {
|
|
280
|
+
commit: o.commit,
|
|
281
|
+
hash: FACT_RULES_HASH,
|
|
282
|
+
sets: t.lacking,
|
|
283
|
+
session: o.session,
|
|
284
|
+
plannedAt: stamp(),
|
|
285
|
+
...o.models ? { models: o.models } : {},
|
|
286
|
+
sessions: [
|
|
287
|
+
...doneSessions,
|
|
288
|
+
...topUpSessions(t.files.filter((f) => !read.has(f.path)), o.session)
|
|
289
|
+
]
|
|
290
|
+
};
|
|
291
|
+
if (!o.dryRun && topUp.sessions.length)
|
|
292
|
+
await saveReadPlan(root, {
|
|
293
|
+
...planOr(await loadReadPlan(root, repo), repo, o.commit, o.session),
|
|
294
|
+
topUp
|
|
295
|
+
});
|
|
296
|
+
return { lacking: t.lacking, topUp, facts, ...reach };
|
|
297
|
+
}
|
|
298
|
+
async function mapRules(root, repo, o, io) {
|
|
299
|
+
const p = await plannedTopUp(root, repo, o);
|
|
300
|
+
if ("error" in p) {
|
|
301
|
+
io.err(p.error);
|
|
302
|
+
return 2;
|
|
303
|
+
}
|
|
304
|
+
if (!p.lacking.length || !p.topUp) {
|
|
305
|
+
if (o.json)
|
|
306
|
+
io.out(JSON.stringify({ repo, commit: o.commit, sets: [], sessions: 0 }, null, 2));
|
|
307
|
+
else
|
|
308
|
+
io.out(`${repo} was read under the reading rules there are now: nothing to top up.`);
|
|
309
|
+
return 0;
|
|
310
|
+
}
|
|
311
|
+
const t = p.topUp;
|
|
312
|
+
if (!t.sessions.length) {
|
|
313
|
+
await recordRulesNow(root, repo, o.commit, t.sets);
|
|
314
|
+
if (o.json)
|
|
315
|
+
io.out(JSON.stringify({ repo, commit: o.commit, sets: t.sets, sessions: 0 }, null, 2));
|
|
316
|
+
else
|
|
317
|
+
io.out(`No file of ${repo} is one the reading rules added since it was read apply to (${t.sets.join(", ")}): its read is recorded as under the rules there are now.`);
|
|
318
|
+
return 0;
|
|
319
|
+
}
|
|
320
|
+
const n = t.sessions.findIndex((s) => !s.done);
|
|
321
|
+
const next = t.sessions[n];
|
|
322
|
+
const before = await writtenHash(root, repo);
|
|
323
|
+
const sessions = t.sessions.map((s, i) => i === n ? { ...s, given: stamp(), ...s.given && s.before ? {} : { before } } : s);
|
|
324
|
+
const plan = await loadReadPlan(root, repo);
|
|
325
|
+
await saveReadPlan(root, { ...plan, topUp: { ...t, sessions } });
|
|
326
|
+
const rel = rulesRelOf(root, repo);
|
|
327
|
+
await writeFileAtomic(join(factsDirOf(root), `${repo}.rules.md`), rulesPrompt(repo, o.commit, {
|
|
328
|
+
orgRules: await effectiveRules(root, repo),
|
|
329
|
+
rel: factsRelOf(root),
|
|
330
|
+
session: next,
|
|
331
|
+
n: n + 1,
|
|
332
|
+
of: t.sessions.length,
|
|
333
|
+
facts: p.facts,
|
|
334
|
+
notes: o.notes,
|
|
335
|
+
...o.checkout ? { checkout: o.checkout } : {},
|
|
336
|
+
...p.reach ? { reach: p.reach } : {}
|
|
337
|
+
}));
|
|
338
|
+
if (o.json) {
|
|
339
|
+
io.out(JSON.stringify({
|
|
340
|
+
repo,
|
|
341
|
+
commit: o.commit,
|
|
342
|
+
sets: t.sets,
|
|
343
|
+
session: n + 1,
|
|
344
|
+
sessions: t.sessions.length,
|
|
345
|
+
paths: next.paths,
|
|
346
|
+
tokens: next.tokens,
|
|
347
|
+
prompt: rel
|
|
348
|
+
}, null, 2));
|
|
349
|
+
return 0;
|
|
350
|
+
}
|
|
351
|
+
const files = new Set(t.sessions.flatMap((s) => s.paths.map((x) => lineRangeOf(x)?.file ?? x)));
|
|
352
|
+
const tokens = t.sessions.reduce((x, s) => x + s.tokens, 0);
|
|
353
|
+
io.out(`Top-up of ${repo} for the reading rules added since it was read (${t.sets.join(", ")}): ${files.size} ${files.size === 1 ? "file" : "files"}, about ${tokens.toLocaleString("en-US")} tokens, in ${t.sessions.length} ${t.sessions.length === 1 ? "session" : "sessions"} of ${o.session.toLocaleString("en-US")} at most.`);
|
|
354
|
+
io.out(`Wrote ${rel}: session ${n + 1} of ${t.sessions.length}, ${next.paths.length} ${next.paths.length === 1 ? "read" : "reads"} (${next.sets.join(", ")}), about ${next.tokens.toLocaleString("en-US")} tokens.`);
|
|
355
|
+
io.out(`Start a new chat, so the session holds only these files, and run /atticus-map ${repo} --rules there (or paste ${rel}). When atticus verify ${repo} passes after it, the session is done${t.sessions.length > n + 1 ? `; the next is for another new chat` : ` and the read records the rules there are now`}.`);
|
|
356
|
+
return 0;
|
|
357
|
+
}
|
|
358
|
+
var factLine = (f) => `- ${f.id} (${f.kind}, ${f.cite.file}:${f.cite.line})`;
|
|
359
|
+
function rulesPrompt(repo, commit, c) {
|
|
360
|
+
const s = c.session;
|
|
361
|
+
const sets = s.sets.filter((x) => RULE_SETS.includes(x));
|
|
362
|
+
const orgIds = new Set(s.sets.filter((x) => x.startsWith("org:")));
|
|
363
|
+
const files = s.paths.map((x) => lineRangeOf(x)?.file ?? x);
|
|
364
|
+
const list = s.paths.map((x) => `- \`${x}\``).join("\n");
|
|
365
|
+
const kept = c.facts.filter((f) => citedFiles(f).some((p) => files.includes(p)));
|
|
366
|
+
const block = (id, kind, origin, text) => wrapData({ id, kind, origin }, neutralise(text, void 0, { mark: true }).text);
|
|
367
|
+
return [
|
|
368
|
+
`# Top-up of ${repo} at ${commit}`,
|
|
369
|
+
"",
|
|
370
|
+
`Session ${c.n} of ${c.of}, about ${s.tokens.toLocaleString("en-US")} tokens of source. ${topUpWords(s.sets.map((x) => x.startsWith("org:") ? x.slice(4).split("@")[0] : x))} Open each path below and nothing else: a path ending \`#L<from>-L<to>\` by those lines only, never the whole file.${c.checkout ? ` The paths are in the repo's checkout, \`${c.checkout}\` in this metarepo: open \`${c.checkout}/<path>\` with your file tools; there is no need to look for it or to run a command.` : ""}`,
|
|
371
|
+
"",
|
|
372
|
+
`- Write each fact to \`${c.rel}/${repo}.jsonl\`, appended, with \`commit\` ${commit}. A kept fact you add to is written again whole, under its id.`,
|
|
373
|
+
`- A path that has nothing to add under these rules: a line in \`${c.rel}/${repo}.reviewed.jsonl\`, \`{"path": "<the path>", "why": "..."}\`. Every path below ends with a fact written or a line there.`,
|
|
374
|
+
`- Then run \`atticus verify ${repo}\` and fix what it rejects until it exits 0: that records this session done${c.of > c.n ? `. The next session is for a new chat: \`/atticus-map ${repo} --rules\` there` : ", and the read as under the rules there are now"}.`,
|
|
375
|
+
"",
|
|
376
|
+
"## The rules",
|
|
377
|
+
"",
|
|
378
|
+
"Each fact has this shape:",
|
|
379
|
+
"",
|
|
380
|
+
factsReference(),
|
|
381
|
+
"",
|
|
382
|
+
factRulesFor(kindsOf(files), void 0, sets),
|
|
383
|
+
"",
|
|
384
|
+
...orgIds.size && c.orgRules ? [readingRulesText({ rules: c.orgRules.rules, builtinOff: [] }, orgIds), ""] : [],
|
|
385
|
+
"## Read",
|
|
386
|
+
"",
|
|
387
|
+
`The paths to open are in the data block below. ${DATA_RULE}`,
|
|
388
|
+
"",
|
|
389
|
+
block(`${repo}.rules`, "rules", `${c.rel}/${repo}.read-plan.yaml`, list),
|
|
390
|
+
"",
|
|
391
|
+
"## Facts already kept (by id; don't write them again)",
|
|
392
|
+
"",
|
|
393
|
+
kept.length ? block(`${repo}.kept`, "facts", `${c.rel}/${repo}.jsonl`, kept.map(factLine).join("\n")) : "None cite these files.",
|
|
394
|
+
...c.notes ? [
|
|
395
|
+
"",
|
|
396
|
+
"## The organisation's notes for this repo",
|
|
397
|
+
"",
|
|
398
|
+
block(`${repo}.notes`, "notes", "org-pack", c.notes)
|
|
399
|
+
] : [],
|
|
400
|
+
"",
|
|
401
|
+
...modelsPart(repo, c.reach, new Set(files))
|
|
402
|
+
].join("\n");
|
|
403
|
+
}
|
|
404
|
+
function modelsPart(repo, r, files) {
|
|
405
|
+
const data = r ? modelsData(repo, r, { only: files }) : void 0;
|
|
406
|
+
return data ? ["## Model classes", "", MODELS_RULE, "", data, ""] : [];
|
|
407
|
+
}
|
|
408
|
+
|
|
409
|
+
export {
|
|
410
|
+
topUpFiles,
|
|
411
|
+
ruleSetsOfFiles,
|
|
412
|
+
topUpSessions,
|
|
413
|
+
topUpOf,
|
|
414
|
+
recordRulesNow,
|
|
415
|
+
recordTopUpVerified,
|
|
416
|
+
rulesRelOf,
|
|
417
|
+
plannedTopUp,
|
|
418
|
+
mapRules,
|
|
419
|
+
rulesPrompt
|
|
420
|
+
};
|