@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
|
@@ -45,10 +45,10 @@ import {
|
|
|
45
45
|
systemKeyStore,
|
|
46
46
|
undiciTransport,
|
|
47
47
|
uriEncode
|
|
48
|
-
} from "./chunk-
|
|
49
|
-
import "./chunk-
|
|
50
|
-
import "./chunk-
|
|
51
|
-
import "./chunk-
|
|
48
|
+
} from "./chunk-PRW3HXM3.js";
|
|
49
|
+
import "./chunk-QHJJMZLX.js";
|
|
50
|
+
import "./chunk-PAINMSID.js";
|
|
51
|
+
import "./chunk-ODMBPDDV.js";
|
|
52
52
|
import "./chunk-TV45EUGM.js";
|
|
53
53
|
export {
|
|
54
54
|
ANTHROPIC_SETTINGS,
|
|
@@ -7,41 +7,41 @@ import {
|
|
|
7
7
|
contextFlags,
|
|
8
8
|
contextLines
|
|
9
9
|
} from "./chunk-R6RY4Q5T.js";
|
|
10
|
-
import {
|
|
11
|
-
table
|
|
12
|
-
} from "./chunk-VOGCSYOI.js";
|
|
13
10
|
import {
|
|
14
11
|
findNeeds,
|
|
15
12
|
markNeed,
|
|
16
13
|
readNeeds
|
|
17
|
-
} from "./chunk-
|
|
18
|
-
import "./chunk-
|
|
19
|
-
import "./chunk-
|
|
20
|
-
import
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
import "./chunk-
|
|
14
|
+
} from "./chunk-BEPCKDCP.js";
|
|
15
|
+
import "./chunk-HWD4JPU7.js";
|
|
16
|
+
import "./chunk-5WERBKLE.js";
|
|
17
|
+
import {
|
|
18
|
+
table
|
|
19
|
+
} from "./chunk-VOGCSYOI.js";
|
|
20
|
+
import "./chunk-K332XW7K.js";
|
|
21
|
+
import "./chunk-HSZMPH5T.js";
|
|
22
|
+
import "./chunk-D2WSW4GU.js";
|
|
23
|
+
import "./chunk-4KNOJC6J.js";
|
|
24
|
+
import "./chunk-4SLBCEPD.js";
|
|
24
25
|
import {
|
|
25
26
|
readKnowledge
|
|
26
|
-
} from "./chunk-
|
|
27
|
-
import "./chunk-
|
|
28
|
-
import "./chunk-
|
|
29
|
-
import "./chunk-
|
|
30
|
-
import "./chunk-
|
|
31
|
-
import "./chunk-
|
|
32
|
-
import "./chunk-EFHQ3TWP.js";
|
|
33
|
-
import "./chunk-GQ4N4WKF.js";
|
|
27
|
+
} from "./chunk-64AADMTW.js";
|
|
28
|
+
import "./chunk-JYMIB5XY.js";
|
|
29
|
+
import "./chunk-CPK7QSBG.js";
|
|
30
|
+
import "./chunk-YO2PKTXT.js";
|
|
31
|
+
import "./chunk-TWQRPM76.js";
|
|
32
|
+
import "./chunk-XOL3GFW2.js";
|
|
34
33
|
import {
|
|
35
34
|
RuntimeConfigError,
|
|
36
35
|
runtimeForCli
|
|
37
|
-
} from "./chunk-
|
|
36
|
+
} from "./chunk-QHJJMZLX.js";
|
|
37
|
+
import "./chunk-7AB6OWTV.js";
|
|
38
38
|
import {
|
|
39
39
|
changesDirOf,
|
|
40
40
|
changesRelOf,
|
|
41
41
|
loadOrgPack,
|
|
42
42
|
orgPackDirOf
|
|
43
|
-
} from "./chunk-
|
|
44
|
-
import "./chunk-
|
|
43
|
+
} from "./chunk-PAINMSID.js";
|
|
44
|
+
import "./chunk-ODMBPDDV.js";
|
|
45
45
|
import "./chunk-TV45EUGM.js";
|
|
46
46
|
|
|
47
47
|
// packages/cli/dist/needs-commands.js
|
|
@@ -60,7 +60,13 @@ function aliasArgv(argv, positions) {
|
|
|
60
60
|
return out;
|
|
61
61
|
const word = out[first];
|
|
62
62
|
const second = at[1] === void 0 ? void 0 : out[at[1]];
|
|
63
|
-
if (word === "join")
|
|
63
|
+
if (word === "join" && second === "measure")
|
|
64
|
+
out.splice(first, 2, "estate", "measure");
|
|
65
|
+
else if (word === "join" && second === "shared")
|
|
66
|
+
out.splice(first, 2, "estate", "shared");
|
|
67
|
+
else if (word === "join" && second === "contracts")
|
|
68
|
+
out.splice(first, 2, "estate", "contracts");
|
|
69
|
+
else if (word === "join")
|
|
64
70
|
out.splice(first, 1, "estate", "join");
|
|
65
71
|
else if (word === "stories")
|
|
66
72
|
out.splice(first, 1, "plan", "stories");
|
|
@@ -0,0 +1,233 @@
|
|
|
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
|
+
CLEAR_MATCH,
|
|
8
|
+
NO_SETTINGS,
|
|
9
|
+
PARTIAL_MATCH,
|
|
10
|
+
TARGETS_ANOTHER,
|
|
11
|
+
TARGETS_MAX_SUGGESTED,
|
|
12
|
+
TARGETS_NONE,
|
|
13
|
+
TARGETS_NO_EVIDENCE,
|
|
14
|
+
TARGETS_SPLIT,
|
|
15
|
+
TARGETS_STEP,
|
|
16
|
+
TIE_MARGIN,
|
|
17
|
+
answerReconfirmed,
|
|
18
|
+
answerRuleOffers,
|
|
19
|
+
answeredQuestionOfCall,
|
|
20
|
+
applyClients,
|
|
21
|
+
applyFactJoins,
|
|
22
|
+
applyPrefixes,
|
|
23
|
+
auditLinkCandidates,
|
|
24
|
+
catalogWithFacts,
|
|
25
|
+
checkScanSettings,
|
|
26
|
+
checkSpec,
|
|
27
|
+
citedFileHashes,
|
|
28
|
+
citedLine,
|
|
29
|
+
componentRenames,
|
|
30
|
+
curatedDirOf,
|
|
31
|
+
diffCatalogs,
|
|
32
|
+
diffIsEmpty,
|
|
33
|
+
draftRepoType,
|
|
34
|
+
estateFacts,
|
|
35
|
+
estateFlow,
|
|
36
|
+
estateFromFacts,
|
|
37
|
+
estateJoinOf,
|
|
38
|
+
estateMergeInput,
|
|
39
|
+
estateRepos,
|
|
40
|
+
estateStepKey,
|
|
41
|
+
factsForScan,
|
|
42
|
+
factsRecords,
|
|
43
|
+
familyMismatches,
|
|
44
|
+
fieldLineage,
|
|
45
|
+
flattenEstateFlow,
|
|
46
|
+
forgetCatalogs,
|
|
47
|
+
gatewayHostFix,
|
|
48
|
+
globName,
|
|
49
|
+
groupedTargetDrafts,
|
|
50
|
+
hostAliases,
|
|
51
|
+
hostQuestionDrafts,
|
|
52
|
+
isCodeFile,
|
|
53
|
+
isConfigFile,
|
|
54
|
+
isPrototypeRepo,
|
|
55
|
+
joinBase,
|
|
56
|
+
joinEstate,
|
|
57
|
+
joinReposOf,
|
|
58
|
+
keepCatalogsInMemory,
|
|
59
|
+
lineNamesUiWord,
|
|
60
|
+
lineSetsPort,
|
|
61
|
+
matchRepoType,
|
|
62
|
+
measureLinks,
|
|
63
|
+
mergeEstate,
|
|
64
|
+
nameWords,
|
|
65
|
+
offeredSuggestions,
|
|
66
|
+
orgPackDirFor,
|
|
67
|
+
outsideProfileSystems,
|
|
68
|
+
outsideSystems,
|
|
69
|
+
pairsOfRepo,
|
|
70
|
+
parseLinkReference,
|
|
71
|
+
pathScore,
|
|
72
|
+
pickerLines,
|
|
73
|
+
pluginApplies,
|
|
74
|
+
pluginExtractor,
|
|
75
|
+
prefixOf,
|
|
76
|
+
productionRepos,
|
|
77
|
+
prototypeLeftOut,
|
|
78
|
+
prototypeScanNotes,
|
|
79
|
+
readCatalog,
|
|
80
|
+
remapIds,
|
|
81
|
+
repoComponents,
|
|
82
|
+
resolveSettingsTemplate,
|
|
83
|
+
resourceKey,
|
|
84
|
+
ruleCoversCall,
|
|
85
|
+
ruledTargets,
|
|
86
|
+
runPluginTests,
|
|
87
|
+
scanEstate,
|
|
88
|
+
specTriggers,
|
|
89
|
+
splitTargetGroups,
|
|
90
|
+
staleFlows,
|
|
91
|
+
staleTargetQuestions,
|
|
92
|
+
suggestionWhy,
|
|
93
|
+
targetGroupQuestion,
|
|
94
|
+
targetGroupWordings,
|
|
95
|
+
targetPathPrefix,
|
|
96
|
+
targetPicker,
|
|
97
|
+
targetQuestionDrafts,
|
|
98
|
+
targetQuestionFor,
|
|
99
|
+
targetRuleOffers,
|
|
100
|
+
targetSuggestions,
|
|
101
|
+
targetsFromAnswers,
|
|
102
|
+
topicQuestionDrafts,
|
|
103
|
+
uiFindings,
|
|
104
|
+
unknownHosts,
|
|
105
|
+
usablePlugins,
|
|
106
|
+
withExcludes,
|
|
107
|
+
withPluginScan,
|
|
108
|
+
writeCatalog
|
|
109
|
+
} from "./chunk-4SLBCEPD.js";
|
|
110
|
+
import "./chunk-64AADMTW.js";
|
|
111
|
+
import "./chunk-JYMIB5XY.js";
|
|
112
|
+
import "./chunk-CPK7QSBG.js";
|
|
113
|
+
import "./chunk-YO2PKTXT.js";
|
|
114
|
+
import "./chunk-TWQRPM76.js";
|
|
115
|
+
import "./chunk-XOL3GFW2.js";
|
|
116
|
+
import "./chunk-QHJJMZLX.js";
|
|
117
|
+
import "./chunk-7AB6OWTV.js";
|
|
118
|
+
import {
|
|
119
|
+
fieldKey,
|
|
120
|
+
lineNamesField,
|
|
121
|
+
lineNamesRoute,
|
|
122
|
+
lineNamesWord
|
|
123
|
+
} from "./chunk-PAINMSID.js";
|
|
124
|
+
import "./chunk-ODMBPDDV.js";
|
|
125
|
+
import "./chunk-TV45EUGM.js";
|
|
126
|
+
export {
|
|
127
|
+
CLEAR_MATCH,
|
|
128
|
+
NO_SETTINGS,
|
|
129
|
+
PARTIAL_MATCH,
|
|
130
|
+
TARGETS_ANOTHER,
|
|
131
|
+
TARGETS_MAX_SUGGESTED,
|
|
132
|
+
TARGETS_NONE,
|
|
133
|
+
TARGETS_NO_EVIDENCE,
|
|
134
|
+
TARGETS_SPLIT,
|
|
135
|
+
TARGETS_STEP,
|
|
136
|
+
TIE_MARGIN,
|
|
137
|
+
answerReconfirmed,
|
|
138
|
+
answerRuleOffers,
|
|
139
|
+
answeredQuestionOfCall,
|
|
140
|
+
applyClients,
|
|
141
|
+
applyFactJoins,
|
|
142
|
+
applyPrefixes,
|
|
143
|
+
auditLinkCandidates,
|
|
144
|
+
catalogWithFacts,
|
|
145
|
+
checkScanSettings,
|
|
146
|
+
checkSpec,
|
|
147
|
+
citedFileHashes,
|
|
148
|
+
citedLine,
|
|
149
|
+
componentRenames,
|
|
150
|
+
curatedDirOf,
|
|
151
|
+
diffCatalogs,
|
|
152
|
+
diffIsEmpty,
|
|
153
|
+
draftRepoType,
|
|
154
|
+
estateFacts,
|
|
155
|
+
estateFlow,
|
|
156
|
+
estateFromFacts,
|
|
157
|
+
estateJoinOf,
|
|
158
|
+
estateMergeInput,
|
|
159
|
+
estateRepos,
|
|
160
|
+
estateStepKey,
|
|
161
|
+
factsForScan,
|
|
162
|
+
factsRecords,
|
|
163
|
+
familyMismatches,
|
|
164
|
+
fieldKey,
|
|
165
|
+
fieldLineage,
|
|
166
|
+
flattenEstateFlow,
|
|
167
|
+
forgetCatalogs,
|
|
168
|
+
gatewayHostFix,
|
|
169
|
+
globName,
|
|
170
|
+
groupedTargetDrafts,
|
|
171
|
+
hostAliases,
|
|
172
|
+
hostQuestionDrafts,
|
|
173
|
+
isCodeFile,
|
|
174
|
+
isConfigFile,
|
|
175
|
+
isPrototypeRepo,
|
|
176
|
+
joinBase,
|
|
177
|
+
joinEstate,
|
|
178
|
+
joinReposOf,
|
|
179
|
+
keepCatalogsInMemory,
|
|
180
|
+
lineNamesField,
|
|
181
|
+
lineNamesRoute,
|
|
182
|
+
lineNamesUiWord,
|
|
183
|
+
lineNamesWord,
|
|
184
|
+
lineSetsPort,
|
|
185
|
+
matchRepoType,
|
|
186
|
+
measureLinks,
|
|
187
|
+
mergeEstate,
|
|
188
|
+
nameWords,
|
|
189
|
+
offeredSuggestions,
|
|
190
|
+
orgPackDirFor,
|
|
191
|
+
outsideProfileSystems,
|
|
192
|
+
outsideSystems,
|
|
193
|
+
pairsOfRepo,
|
|
194
|
+
parseLinkReference,
|
|
195
|
+
pathScore,
|
|
196
|
+
pickerLines,
|
|
197
|
+
pluginApplies,
|
|
198
|
+
pluginExtractor,
|
|
199
|
+
prefixOf,
|
|
200
|
+
productionRepos,
|
|
201
|
+
prototypeLeftOut,
|
|
202
|
+
prototypeScanNotes,
|
|
203
|
+
readCatalog,
|
|
204
|
+
remapIds,
|
|
205
|
+
repoComponents,
|
|
206
|
+
resolveSettingsTemplate,
|
|
207
|
+
resourceKey,
|
|
208
|
+
ruleCoversCall,
|
|
209
|
+
ruledTargets,
|
|
210
|
+
runPluginTests,
|
|
211
|
+
scanEstate,
|
|
212
|
+
specTriggers,
|
|
213
|
+
splitTargetGroups,
|
|
214
|
+
staleFlows,
|
|
215
|
+
staleTargetQuestions,
|
|
216
|
+
suggestionWhy,
|
|
217
|
+
targetGroupQuestion,
|
|
218
|
+
targetGroupWordings,
|
|
219
|
+
targetPathPrefix,
|
|
220
|
+
targetPicker,
|
|
221
|
+
targetQuestionDrafts,
|
|
222
|
+
targetQuestionFor,
|
|
223
|
+
targetRuleOffers,
|
|
224
|
+
targetSuggestions,
|
|
225
|
+
targetsFromAnswers,
|
|
226
|
+
topicQuestionDrafts,
|
|
227
|
+
uiFindings,
|
|
228
|
+
unknownHosts,
|
|
229
|
+
usablePlugins,
|
|
230
|
+
withExcludes,
|
|
231
|
+
withPluginScan,
|
|
232
|
+
writeCatalog
|
|
233
|
+
};
|
|
@@ -0,0 +1,247 @@
|
|
|
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
|
+
repoFor
|
|
8
|
+
} from "./chunk-TGVVUKTG.js";
|
|
9
|
+
import {
|
|
10
|
+
draftRepoType,
|
|
11
|
+
matchRepoType
|
|
12
|
+
} from "./chunk-4SLBCEPD.js";
|
|
13
|
+
import {
|
|
14
|
+
fsRepo
|
|
15
|
+
} from "./chunk-7AB6OWTV.js";
|
|
16
|
+
import {
|
|
17
|
+
CONVENTIONS_SCHEMA_VERSION,
|
|
18
|
+
ChecklistPack,
|
|
19
|
+
Conventions,
|
|
20
|
+
OrgNote,
|
|
21
|
+
REPO_TYPE_SCHEMA_VERSION,
|
|
22
|
+
REVIEW_SCHEMA_VERSION,
|
|
23
|
+
RULE_WORDS,
|
|
24
|
+
RecordId,
|
|
25
|
+
RepoType,
|
|
26
|
+
TERM_STEP,
|
|
27
|
+
loadOrgPack,
|
|
28
|
+
noteKey,
|
|
29
|
+
noteRuleDrafts,
|
|
30
|
+
notesFor,
|
|
31
|
+
orgPackDirOf,
|
|
32
|
+
require_dist,
|
|
33
|
+
termAnswerNote,
|
|
34
|
+
termOfQuestion
|
|
35
|
+
} from "./chunk-PAINMSID.js";
|
|
36
|
+
import {
|
|
37
|
+
__toESM
|
|
38
|
+
} from "./chunk-TV45EUGM.js";
|
|
39
|
+
|
|
40
|
+
// packages/cli/dist/repo-type-commands.js
|
|
41
|
+
var import_yaml = __toESM(require_dist(), 1);
|
|
42
|
+
import { mkdir, readFile, stat, writeFile } from "node:fs/promises";
|
|
43
|
+
import { join } from "node:path";
|
|
44
|
+
var pct = (n) => `${Math.round(n * 100)}%`;
|
|
45
|
+
var notFound = (target) => `${target} isn't a cloned repo of the manifest or a folder; clone it with atticus workspace sync, or give its folder.`;
|
|
46
|
+
function verdictLine(id, r) {
|
|
47
|
+
const best = r.matches.find((m) => m.type === r.best);
|
|
48
|
+
switch (r.verdict) {
|
|
49
|
+
case "clear":
|
|
50
|
+
return `${id} is a clear match for ${best.name} (${best.type}), ${pct(best.score)}. Reuse it: atticus scan survey ${id} hands its settings and skills to your assistant.`;
|
|
51
|
+
case "partial":
|
|
52
|
+
return `${id} is a partial match for ${best.name} (${best.type}), ${pct(best.score)}. Reuse it, and extend the type with what this repo does differently.`;
|
|
53
|
+
case "tie":
|
|
54
|
+
return `${id} matches ${r.tied.join(" and ")} about as well.${r.fromDescription ? ` Its description says "${r.fromDescription.words}", so ${r.fromDescription.type} is the likelier of them; a person still decides.` : ""} A person decides which it is; then change the types so their fingerprints tell them apart.`;
|
|
55
|
+
case "none":
|
|
56
|
+
return `${id} matches no known repo type.${r.fromDescription ? ` Its description says "${r.fromDescription.words}", so ${r.fromDescription.type} may be it, though nothing in its files says so.` : ""} Draft one: atticus repo-type new <id> --from ${id}`;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
function typeYaml(t) {
|
|
60
|
+
const doc = new import_yaml.Document(t);
|
|
61
|
+
(0, import_yaml.visit)(doc, {
|
|
62
|
+
Seq(_, node) {
|
|
63
|
+
if (node.items.every((i) => (0, import_yaml.isScalar)(i)))
|
|
64
|
+
node.flow = true;
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
return doc.toString({ lineWidth: 0, flowCollectionPadding: false });
|
|
68
|
+
}
|
|
69
|
+
async function repoTypeDetect(root, target, o, io) {
|
|
70
|
+
const repo = await repoFor(root, target);
|
|
71
|
+
if (!repo) {
|
|
72
|
+
io.err(notFound(target));
|
|
73
|
+
return 2;
|
|
74
|
+
}
|
|
75
|
+
const op = await loadOrgPack(orgPackDirOf(root));
|
|
76
|
+
const said = op.profiles.flatMap((p) => p.repos?.repos ?? []).find((x) => x.id === repo.id)?.description?.text;
|
|
77
|
+
const r = await matchRepoType(fsRepo(repo.id, repo.dir, "0".repeat(40)), op.repoTypes, {
|
|
78
|
+
...said ? { description: said } : {}
|
|
79
|
+
});
|
|
80
|
+
if (o.json) {
|
|
81
|
+
io.out(JSON.stringify({ repo: repo.id, ...r }, null, 2));
|
|
82
|
+
return 0;
|
|
83
|
+
}
|
|
84
|
+
if (op.repoTypes.length === 0) {
|
|
85
|
+
io.out(`The org pack has no repo types yet (org-pack/repo-types/<id>/type.yaml). Draft one: atticus repo-type new <id> --from ${repo.id}`);
|
|
86
|
+
return 0;
|
|
87
|
+
}
|
|
88
|
+
io.out(verdictLine(repo.id, r));
|
|
89
|
+
for (const m of r.matches) {
|
|
90
|
+
io.out(` ${m.type} ${pct(m.score)} (${m.got} of ${m.total})${m.ruledOut ? ", ruled out: a required signal is missing" : ""}`);
|
|
91
|
+
for (const s of m.signals)
|
|
92
|
+
io.out(` ${s.found ? "found " : "missing"} ${s.label} (${s.weight}${s.required ? ", required" : ""})${s.found ? `: ${s.evidence.join(", ")}` : ""}`);
|
|
93
|
+
}
|
|
94
|
+
return 0;
|
|
95
|
+
}
|
|
96
|
+
async function repoTypeNew(root, id, o, io) {
|
|
97
|
+
if (!RecordId.safeParse(id).success || !o.from) {
|
|
98
|
+
io.err("Usage: atticus repo-type new <id> --from <repo> [--force]. The id is a lowercase slug, like forge-spring-service.");
|
|
99
|
+
return 2;
|
|
100
|
+
}
|
|
101
|
+
const repo = await repoFor(root, o.from);
|
|
102
|
+
if (!repo) {
|
|
103
|
+
io.err(notFound(o.from));
|
|
104
|
+
return 2;
|
|
105
|
+
}
|
|
106
|
+
const dir = join(orgPackDirOf(root), "repo-types", id);
|
|
107
|
+
const file = join(dir, "type.yaml");
|
|
108
|
+
if (!o.force && await stat(file).catch(() => void 0)) {
|
|
109
|
+
io.err(`The repo type ${id} already exists (org-pack/repo-types/${id}/type.yaml). Re-run with --force to draft it again.`);
|
|
110
|
+
return 1;
|
|
111
|
+
}
|
|
112
|
+
const t = await draftRepoType(fsRepo(repo.id, repo.dir, "0".repeat(40)), id);
|
|
113
|
+
if (!t) {
|
|
114
|
+
io.out(`${repo.id} has no build file, dependency, framework marker or known folder to fingerprint; nothing was written. Write the type by hand.`);
|
|
115
|
+
return 1;
|
|
116
|
+
}
|
|
117
|
+
await mkdir(dir, { recursive: true });
|
|
118
|
+
const date = (o.now ?? /* @__PURE__ */ new Date()).toISOString().slice(0, 10);
|
|
119
|
+
await writeFile(file, `# Drafted from ${repo.id} by atticus repo-type new on ${date} (ADR 0077). Edit it: name what kind
|
|
120
|
+
# of repo this is, keep the signals every repo of the kind has, set the weights, add skills.
|
|
121
|
+
${typeYaml(t)}`, "utf8");
|
|
122
|
+
const kinds = /* @__PURE__ */ new Map();
|
|
123
|
+
for (const s of t.fingerprint)
|
|
124
|
+
kinds.set(s.kind, (kinds.get(s.kind) ?? 0) + 1);
|
|
125
|
+
io.out(`Wrote org-pack/repo-types/${id}/type.yaml from ${repo.id}: ${[...kinds].map(([k, n]) => `${n} ${k}`).join(", ")} ${t.fingerprint.length === 1 ? "signal" : "signals"}, ${t.settings.prefixes.length} prefix ${t.settings.prefixes.length === 1 ? "rule" : "rules"}.`);
|
|
126
|
+
io.out(`Next: edit it, check it with atticus repo-type detect ${repo.id} and atticus orgpack validate, then review it in a pull request.`);
|
|
127
|
+
return 0;
|
|
128
|
+
}
|
|
129
|
+
var noteFileOf = (root, type) => type ? join(orgPackDirOf(root), "repo-types", type, "type.yaml") : join(orgPackDirOf(root), "conventions.yaml");
|
|
130
|
+
var noteRel = (type) => type ? `org-pack/repo-types/${type}/type.yaml` : "org-pack/conventions.yaml";
|
|
131
|
+
async function repoTypeNote(root, type, o, io) {
|
|
132
|
+
if (!type && !o.org || type && o.org) {
|
|
133
|
+
io.err('Usage: atticus repo-type note <type> [--add "..."], or atticus repo-type note --org-wide [--add "..."] for the notes every repo is read with.');
|
|
134
|
+
return 2;
|
|
135
|
+
}
|
|
136
|
+
const file = noteFileOf(root, type);
|
|
137
|
+
const exists = await stat(file).catch(() => void 0);
|
|
138
|
+
if (type && !exists) {
|
|
139
|
+
io.err(`No repo type ${type} (${noteRel(type)}). Draft one: atticus repo-type new ${type} --from <repo>`);
|
|
140
|
+
return 2;
|
|
141
|
+
}
|
|
142
|
+
const doc = exists ? (0, import_yaml.parseDocument)(await readFile(file, "utf8")) : new import_yaml.Document({ schemaVersion: CONVENTIONS_SCHEMA_VERSION });
|
|
143
|
+
const notes = doc.toJS()?.notes ?? [];
|
|
144
|
+
if (o.add === void 0) {
|
|
145
|
+
if (!notes.length)
|
|
146
|
+
io.out(`${noteRel(type)} has no notes yet. Add one: atticus repo-type note ${type ?? "--org-wide"} --add "..."`);
|
|
147
|
+
notes.forEach((n, i) => io.out(`${i + 1}. ${String(n)} (note ${noteKey(String(n))})`));
|
|
148
|
+
return 0;
|
|
149
|
+
}
|
|
150
|
+
const note = OrgNote.safeParse(o.add.replace(/\s*[\r\n]+\s*/g, " "));
|
|
151
|
+
if (!note.success) {
|
|
152
|
+
io.err("A note is plain text, from 1 to 1000 characters, on one line.");
|
|
153
|
+
return 2;
|
|
154
|
+
}
|
|
155
|
+
if (notes.some((n) => String(n).trim() === note.data)) {
|
|
156
|
+
io.out(`${noteRel(type)} already has that note.`);
|
|
157
|
+
return 0;
|
|
158
|
+
}
|
|
159
|
+
doc.set("schemaVersion", type ? REPO_TYPE_SCHEMA_VERSION : CONVENTIONS_SCHEMA_VERSION);
|
|
160
|
+
doc.set("notes", [...notes.map(String), note.data]);
|
|
161
|
+
const check = (type ? RepoType : Conventions).safeParse(doc.toJS());
|
|
162
|
+
if (!check.success) {
|
|
163
|
+
io.err(`${noteRel(type)} doesn't read as it should with the note added: ${check.error.issues.map((i) => `${i.path.join(".")}: ${i.message}`).join("; ")}`);
|
|
164
|
+
return 1;
|
|
165
|
+
}
|
|
166
|
+
await mkdir(join(file, ".."), { recursive: true });
|
|
167
|
+
await writeFile(file, doc.toString({ lineWidth: 0 }), "utf8");
|
|
168
|
+
io.out(`Added note ${notes.length + 1} (note ${noteKey(note.data)}) to ${noteRel(type)}. The next read of ${type ? `each ${type} repo` : "every repo"} is handed it; review it in a pull request.`);
|
|
169
|
+
if (RULE_WORDS.test(note.data))
|
|
170
|
+
io.out(`It reads as a rule: atticus repo-type rules drafts a checklist rule from it for a person to review.`);
|
|
171
|
+
return 0;
|
|
172
|
+
}
|
|
173
|
+
function termNoteOffer(q) {
|
|
174
|
+
if (q.askedBy.step !== TERM_STEP || !q.answer)
|
|
175
|
+
return void 0;
|
|
176
|
+
const about = termOfQuestion(q.question);
|
|
177
|
+
if (!about)
|
|
178
|
+
return void 0;
|
|
179
|
+
const label = q.answer.option ? q.options[q.answer.option - 1]?.label : void 0;
|
|
180
|
+
const text = termAnswerNote({
|
|
181
|
+
...about,
|
|
182
|
+
...q.answer.text ? { text: q.answer.text } : {},
|
|
183
|
+
...label === "owner" || label === "consumer" || label === "none" ? { option: label } : {}
|
|
184
|
+
});
|
|
185
|
+
const type = q.scope.level === "repo-type" ? q.scope.id : void 0;
|
|
186
|
+
return type ? `Save it as a note on ${type}, so every ${type} repo is read with it: atticus repo-type note ${type} --add ${JSON.stringify(text)}` : `Save it as a note every repo is read with: atticus repo-type note --org-wide --add ${JSON.stringify(text)}`;
|
|
187
|
+
}
|
|
188
|
+
var NOTE_RULES_FILE = "checklists/org-notes.yaml";
|
|
189
|
+
async function repoTypeRules(root, o, io) {
|
|
190
|
+
const op = await loadOrgPack(orgPackDirOf(root));
|
|
191
|
+
const notes = [
|
|
192
|
+
...op.repoTypes.flatMap((t) => notesFor(t, void 0)),
|
|
193
|
+
...notesFor(void 0, op.conventions)
|
|
194
|
+
];
|
|
195
|
+
const drafts = noteRuleDrafts(notes);
|
|
196
|
+
const file = join(orgPackDirOf(root), ...NOTE_RULES_FILE.split("/"));
|
|
197
|
+
const onFile = await stat(file).catch(() => void 0) ? ChecklistPack.safeParse((0, import_yaml.parse)(await readFile(file, "utf8"))) : void 0;
|
|
198
|
+
if (onFile && !onFile.success) {
|
|
199
|
+
io.err(`org-pack/${NOTE_RULES_FILE} doesn't read as a checklist; fix it first (atticus orgpack validate).`);
|
|
200
|
+
return 1;
|
|
201
|
+
}
|
|
202
|
+
const kept = onFile?.data.rules ?? [];
|
|
203
|
+
const fresh = drafts.filter((d) => !kept.some((k) => k.id === d.id));
|
|
204
|
+
if (o.json) {
|
|
205
|
+
io.out(JSON.stringify({ file: `org-pack/${NOTE_RULES_FILE}`, drafts, fresh: fresh.map((d) => d.id) }, null, 2));
|
|
206
|
+
} else if (!drafts.length) {
|
|
207
|
+
io.out('No note reads as a rule (all, every or must). Notes are added with atticus repo-type note <type> --add "...".');
|
|
208
|
+
return 0;
|
|
209
|
+
} else
|
|
210
|
+
for (const d of drafts)
|
|
211
|
+
io.out(`${d.id}${kept.some((k) => k.id === d.id) ? ` (in org-pack/${NOTE_RULES_FILE}, ${kept.find((k) => k.id === d.id).status})` : " (new draft)"}: ${d.title}
|
|
212
|
+
check: ${d.check.type === "deterministic" ? `${d.check.check} ${JSON.stringify(d.check.params)}` : "ai"}; from ${d.source}`);
|
|
213
|
+
if (!o.write) {
|
|
214
|
+
if (!o.json && fresh.length)
|
|
215
|
+
io.out(`Write the new drafts with atticus repo-type rules --save, then review them in a pull request.`);
|
|
216
|
+
return 0;
|
|
217
|
+
}
|
|
218
|
+
if (!fresh.length) {
|
|
219
|
+
if (!o.json)
|
|
220
|
+
io.out(`org-pack/${NOTE_RULES_FILE} already has every draft.`);
|
|
221
|
+
return 0;
|
|
222
|
+
}
|
|
223
|
+
const pack = ChecklistPack.parse({
|
|
224
|
+
schemaVersion: REVIEW_SCHEMA_VERSION,
|
|
225
|
+
name: onFile?.data.name ?? "org-notes",
|
|
226
|
+
version: onFile?.data.version ?? "0.1.0",
|
|
227
|
+
description: onFile?.data.description ?? "Rules drafted from the organisation's notes (ADR 0163). A person sets what each checks and makes it active; Atticus never reads the note to check it.",
|
|
228
|
+
rules: [...kept, ...fresh]
|
|
229
|
+
});
|
|
230
|
+
await mkdir(join(file, ".."), { recursive: true });
|
|
231
|
+
await writeFile(file, `# Drafted by atticus repo-type rules from the org pack's notes (ADR 0163). Review each rule:
|
|
232
|
+
# set its check, then change status from draft to active. Accepted call-security rules are
|
|
233
|
+
# checked at each atticus verify <repo> --write.
|
|
234
|
+
${typeYaml(pack)}`, "utf8");
|
|
235
|
+
if (!o.json)
|
|
236
|
+
io.out(`Wrote ${fresh.length} ${fresh.length === 1 ? "draft" : "drafts"} to org-pack/${NOTE_RULES_FILE}; review them in a pull request.`);
|
|
237
|
+
return 0;
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
export {
|
|
241
|
+
repoTypeDetect,
|
|
242
|
+
repoTypeNew,
|
|
243
|
+
repoTypeNote,
|
|
244
|
+
termNoteOffer,
|
|
245
|
+
NOTE_RULES_FILE,
|
|
246
|
+
repoTypeRules
|
|
247
|
+
};
|
|
@@ -0,0 +1,29 @@
|
|
|
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
|
+
buildDigest,
|
|
8
|
+
digestCommand
|
|
9
|
+
} from "./chunk-X2CUXTWU.js";
|
|
10
|
+
import "./chunk-K332XW7K.js";
|
|
11
|
+
import "./chunk-HSZMPH5T.js";
|
|
12
|
+
import "./chunk-D2WSW4GU.js";
|
|
13
|
+
import "./chunk-4KNOJC6J.js";
|
|
14
|
+
import "./chunk-4SLBCEPD.js";
|
|
15
|
+
import "./chunk-64AADMTW.js";
|
|
16
|
+
import "./chunk-JYMIB5XY.js";
|
|
17
|
+
import "./chunk-CPK7QSBG.js";
|
|
18
|
+
import "./chunk-YO2PKTXT.js";
|
|
19
|
+
import "./chunk-TWQRPM76.js";
|
|
20
|
+
import "./chunk-XOL3GFW2.js";
|
|
21
|
+
import "./chunk-QHJJMZLX.js";
|
|
22
|
+
import "./chunk-7AB6OWTV.js";
|
|
23
|
+
import "./chunk-PAINMSID.js";
|
|
24
|
+
import "./chunk-ODMBPDDV.js";
|
|
25
|
+
import "./chunk-TV45EUGM.js";
|
|
26
|
+
export {
|
|
27
|
+
buildDigest,
|
|
28
|
+
digestCommand
|
|
29
|
+
};
|