@maycombhq/atticus 2.0.0-beta.2 → 2.0.0-beta.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bin.js +8 -4
- package/dist/chunk-265LWMOA.js +91 -0
- package/dist/chunk-26WBY34Y.js +37 -0
- package/dist/{chunk-UBBC2XSG.js → chunk-26Z7OGQW.js} +518 -93
- package/dist/chunk-2D7PWSOK.js +172 -0
- package/dist/{chunk-JCZIKA4C.js → chunk-2HH3UCZM.js} +4 -4
- package/dist/{chunk-GDLULHTC.js → chunk-2HTEMYTB.js} +12 -26
- package/dist/chunk-2UCRFXFZ.js +130 -0
- package/dist/{chunk-MVZVGYXH.js → chunk-2V2ZPQQU.js} +81 -13
- package/dist/{chunk-BOHJZTEQ.js → chunk-36RY7ZXM.js} +130 -71
- package/dist/{chunk-I3E7CX4H.js → chunk-37WE3LS2.js} +3 -3
- package/dist/{chunk-IPKHE5D6.js → chunk-3AQ2R5NL.js} +1520 -871
- package/dist/chunk-3G6S7LAA.js +43 -0
- package/dist/chunk-3J5I7ZOU.js +58 -0
- package/dist/{chunk-65NYPGRC.js → chunk-3LZ6P5EP.js} +1 -1
- package/dist/chunk-3SSTNB4E.js +191 -0
- package/dist/chunk-3TD6S4TC.js +49 -0
- package/dist/{chunk-3C7EYRFZ.js → chunk-3UTYPHN3.js} +1 -1
- package/dist/{chunk-G2B4ZQGH.js → chunk-3WON4G3M.js} +2 -2
- package/dist/{chunk-S3QNRWYR.js → chunk-42EPP7OB.js} +12 -12
- package/dist/chunk-455SYIIE.js +113 -0
- package/dist/{chunk-YISXLPHN.js → chunk-4B6BT75O.js} +166 -23
- package/dist/{chunk-C6EKFH7J.js → chunk-4CLK2RJO.js} +7 -7
- package/dist/chunk-4CYTJ5TZ.js +38 -0
- package/dist/{chunk-EYWIDJFU.js → chunk-4D62IZII.js} +5 -5
- package/dist/chunk-4FOAYLI4.js +328 -0
- package/dist/{chunk-7JUKDRSZ.js → chunk-4KNOJC6J.js} +294 -215
- package/dist/{chunk-YMZ3TNYB.js → chunk-4PYC2UGC.js} +2 -2
- package/dist/{chunk-27NKUS3X.js → chunk-4SLBCEPD.js} +2104 -726
- package/dist/chunk-4TKVU2I2.js +122 -0
- package/dist/{chunk-RUVFXE2L.js → chunk-4WXRPQDE.js} +448 -47
- package/dist/{chunk-7ZUIMTOU.js → chunk-5CMPVC3N.js} +24 -24
- package/dist/chunk-5G7ILBUG.js +66 -0
- package/dist/{chunk-HFQCFSJR.js → chunk-5PV7S2ZP.js} +3 -3
- package/dist/{chunk-FITWGOJ2.js → chunk-5QUOPNLN.js} +4 -4
- package/dist/{chunk-Z6LF7HQN.js → chunk-5TDRBOAV.js} +5 -5
- package/dist/{chunk-T6AIP7H5.js → chunk-5WERBKLE.js} +199 -63
- package/dist/{chunk-XPCM366L.js → chunk-62DLJSLV.js} +8 -8
- package/dist/{chunk-L24C55VN.js → chunk-64AADMTW.js} +99 -25
- package/dist/{chunk-K65BJIMT.js → chunk-67BP7HXL.js} +17 -17
- package/dist/chunk-6DQYZU2W.js +379 -0
- package/dist/{chunk-EDS2L2LD.js → chunk-6EXDI5GI.js} +52 -26
- package/dist/chunk-6FNAKCET.js +38 -0
- package/dist/{chunk-6IU67AEK.js → chunk-75ASLHBT.js} +21 -15
- package/dist/{chunk-A3GY6SOA.js → chunk-75ZOZFGH.js} +18 -18
- package/dist/{chunk-MGYZM27B.js → chunk-77O633L5.js} +49 -23
- package/dist/{chunk-GQ4N4WKF.js → chunk-7AB6OWTV.js} +3 -3
- package/dist/{chunk-M766ZJ6W.js → chunk-7CZHUZBL.js} +25 -25
- package/dist/{chunk-A7UPUQFY.js → chunk-7FHNFCHK.js} +643 -124
- package/dist/chunk-7FUIVIBG.js +415 -0
- package/dist/{chunk-6QSERWXH.js → chunk-7QPCGTPS.js} +21 -21
- package/dist/{chunk-LR3R6Z2A.js → chunk-A2G72UI4.js} +7 -7
- package/dist/{chunk-I4JRCD6M.js → chunk-AE4P57KK.js} +23 -17
- package/dist/{chunk-AVJDSJ2F.js → chunk-AHW3RY3X.js} +7 -7
- package/dist/chunk-AM6FP6JW.js +43 -0
- package/dist/{chunk-CSZ4C5N6.js → chunk-AOCWFA7T.js} +93 -10
- package/dist/{chunk-EPTBZ3GP.js → chunk-API5TOUB.js} +1 -1
- package/dist/{chunk-652QWTLZ.js → chunk-AZDITBCT.js} +3 -3
- package/dist/{chunk-DPUYDDQG.js → chunk-BA2HUMDN.js} +25 -3
- package/dist/chunk-BA3U7ALS.js +99 -0
- package/dist/{chunk-HVUPKCGJ.js → chunk-BC6KKZ67.js} +5 -5
- package/dist/{chunk-CKSITVS4.js → chunk-BEPCKDCP.js} +2554 -722
- package/dist/{chunk-3ALD2W2A.js → chunk-BPPU3PW7.js} +4 -4
- package/dist/{chunk-QRAOANID.js → chunk-BVWWPBKD.js} +21 -21
- package/dist/{chunk-ZDPAS56H.js → chunk-BXBCMGIQ.js} +7 -1
- package/dist/chunk-BXZ4PKIT.js +233 -0
- package/dist/chunk-C7CEK3KW.js +247 -0
- package/dist/chunk-CFH3QH26.js +29 -0
- package/dist/chunk-CG6CULP6.js +170 -0
- package/dist/chunk-CLD4RVTA.js +45 -0
- package/dist/{chunk-DKJA76CJ.js → chunk-CNPY4NTZ.js} +13 -13
- package/dist/chunk-CNU5Q2D5.js +575 -0
- package/dist/{chunk-T2UYZSCQ.js → chunk-COYN3UAN.js} +126 -23
- package/dist/{chunk-23W7VWKR.js → chunk-CPK7QSBG.js} +1360 -113
- package/dist/{chunk-4AK7IBVP.js → chunk-D2WSW4GU.js} +1 -1
- package/dist/{chunk-ABWHYWNI.js → chunk-D57MFJPP.js} +3 -3
- package/dist/chunk-D5KV5PSK.js +45 -0
- package/dist/chunk-D5MASS4I.js +48 -0
- package/dist/{chunk-7EOBHUMC.js → chunk-DCWN3HFV.js} +2 -2
- package/dist/{chunk-QSXK2RGH.js → chunk-DDJPM5YX.js} +2 -2
- package/dist/chunk-DN4A2Q2O.js +57 -0
- package/dist/{chunk-IHMLFRVV.js → chunk-DUPZPDCJ.js} +58 -16
- package/dist/{chunk-PRPPGYZG.js → chunk-E2VXBSIR.js} +4 -4
- package/dist/chunk-E57AOFYN.js +32 -0
- package/dist/{chunk-UGLN7QHV.js → chunk-ECLXZWAG.js} +12 -12
- package/dist/{chunk-5WG5YP4T.js → chunk-EDZ45WIR.js} +14 -14
- package/dist/chunk-EFCQSMXB.js +37 -0
- package/dist/{chunk-2ANOROX3.js → chunk-EZIN5E5B.js} +8 -8
- package/dist/{chunk-BWZ77RQT.js → chunk-F6H2RJ3N.js} +1 -1
- package/dist/{chunk-OLQJTJJU.js → chunk-FAJDKNSD.js} +7 -3
- package/dist/chunk-FGAGWYZB.js +47 -0
- package/dist/{chunk-4WBVUHXN.js → chunk-FLVZFTLQ.js} +18 -18
- package/dist/chunk-FQ6WH6PB.js +140 -0
- package/dist/{chunk-T6XQL73F.js → chunk-FRHD22WM.js} +61 -23
- package/dist/{chunk-XAKWMCXI.js → chunk-FVMPFCDS.js} +4 -4
- package/dist/{chunk-B2WLAWNJ.js → chunk-FY3QIRTL.js} +3 -3
- package/dist/{chunk-CPA6HPVR.js → chunk-FYBF5MB2.js} +15 -11
- package/dist/{chunk-V2YTAIQO.js → chunk-G5YJBNDZ.js} +21 -6
- package/dist/chunk-G6IQYM25.js +339 -0
- package/dist/chunk-G6X4YL4D.js +161 -0
- package/dist/{chunk-SJRGMG6A.js → chunk-GC2VK3JT.js} +25 -25
- package/dist/{chunk-SP2I63OO.js → chunk-GCS3FZOB.js} +77 -3
- package/dist/{chunk-6TACQN3N.js → chunk-GDZB57IU.js} +5 -5
- package/dist/chunk-GIFMBCTW.js +221 -0
- package/dist/{chunk-YY6ZQQBP.js → chunk-GK4PYVEC.js} +18 -8
- package/dist/{chunk-TDD55CJH.js → chunk-GNWAOVFQ.js} +6 -5
- package/dist/chunk-GS76RXQE.js +226 -0
- package/dist/{chunk-YYQN46FY.js → chunk-GSGIZ2OO.js} +23 -23
- package/dist/chunk-GUYL7RMK.js +60 -0
- package/dist/chunk-GX74YWR7.js +321 -0
- package/dist/chunk-HE3HRDNZ.js +122 -0
- package/dist/{chunk-AIOQPLA5.js → chunk-HGHRSF3E.js} +30 -12
- package/dist/{chunk-2RMYG36Q.js → chunk-HK3VOHIE.js} +198 -336
- package/dist/{chunk-QZSX3F7C.js → chunk-HS4BGB4G.js} +24 -22
- package/dist/{chunk-XY3P7JW7.js → chunk-HSZMPH5T.js} +834 -149
- package/dist/{chunk-L6SGQIR3.js → chunk-HWD4JPU7.js} +4 -2
- package/dist/{chunk-PCVDV3UZ.js → chunk-HXXP2NTE.js} +6 -6
- package/dist/{chunk-AA6YULYB.js → chunk-I2A3Z5AK.js} +7 -7
- package/dist/{chunk-N7IXEHK3.js → chunk-ICHDSWEY.js} +7 -7
- package/dist/chunk-IFFRGC3N.js +31 -0
- package/dist/{chunk-4BN53TG3.js → chunk-IFHDV6KQ.js} +31 -23
- package/dist/chunk-J2O4LFVI.js +80 -0
- package/dist/chunk-J5AAZ6OJ.js +161 -0
- package/dist/{chunk-ZMFPW66A.js → chunk-JAABT3DA.js} +3 -3
- package/dist/chunk-JITJP64K.js +34 -0
- package/dist/chunk-JKIGL3XQ.js +162 -0
- package/dist/chunk-JRVNXLZP.js +615 -0
- package/dist/chunk-JRXHON4E.js +41 -0
- package/dist/{chunk-DHPACDG7.js → chunk-JS6WMC3J.js} +8 -8
- package/dist/chunk-JU4QNJSR.js +62 -0
- package/dist/{chunk-PAMPPUR6.js → chunk-JYMIB5XY.js} +1697 -172
- package/dist/{chunk-RRTKKSLQ.js → chunk-JYTIHTIK.js} +8 -6
- package/dist/{chunk-3HI6Z55Y.js → chunk-K332XW7K.js} +324 -39
- package/dist/{chunk-GLUX4EEP.js → chunk-K6JB6XTX.js} +9 -9
- package/dist/chunk-KDAHXQIE.js +294 -0
- package/dist/chunk-KYZMRSPS.js +93 -0
- package/dist/chunk-L4CESDPB.js +22 -0
- package/dist/{chunk-NXFPS2LR.js → chunk-LEBR5NHW.js} +14 -14
- package/dist/chunk-LIJJCBQI.js +223 -0
- package/dist/{chunk-DE76JROX.js → chunk-LIRVU3HW.js} +16 -16
- package/dist/{chunk-JMSCMUCA.js → chunk-LN77DXBM.js} +145 -21
- package/dist/{chunk-JIITQXFB.js → chunk-LNWEWYCM.js} +2969 -788
- package/dist/{chunk-TANFV3MZ.js → chunk-LO3BLMVG.js} +3 -3
- package/dist/chunk-LPV6T362.js +250 -0
- package/dist/{chunk-2VHF7OXM.js → chunk-LQH4P45K.js} +1 -1
- package/dist/chunk-LU4MQVAL.js +41 -0
- package/dist/chunk-LWDNKE4X.js +273 -0
- package/dist/chunk-M4H2UG4R.js +218 -0
- package/dist/{chunk-6BVONWJ7.js → chunk-M6D2U3YM.js} +3 -3
- package/dist/chunk-MD7KUEJ3.js +514 -0
- package/dist/{chunk-66YVAGGM.js → chunk-MMZUN7ZO.js} +20 -20
- package/dist/chunk-MZGRDONP.js +916 -0
- package/dist/chunk-N3RUGTGV.js +39 -0
- package/dist/{chunk-JGZCG5VM.js → chunk-NCB6656Z.js} +7 -7
- package/dist/{chunk-4NDAAFQT.js → chunk-NRQ65LTQ.js} +7 -5
- package/dist/{chunk-UNM6ZOKP.js → chunk-NTAVOWYD.js} +145 -18
- package/dist/{chunk-3USYZGRF.js → chunk-NYOABJNK.js} +36 -27
- package/dist/{chunk-WVPJSRRJ.js → chunk-O4IKAIZ2.js} +24 -20
- package/dist/{chunk-D3PO4DOZ.js → chunk-ODMBPDDV.js} +51 -14
- package/dist/chunk-OKUB6RJA.js +533 -0
- package/dist/chunk-OMPENNWY.js +39 -0
- package/dist/chunk-OPQZISG3.js +25 -0
- package/dist/{chunk-5GGOLAKC.js → chunk-OV57AHCG.js} +26 -26
- package/dist/chunk-OZJ3JLYI.js +58 -0
- package/dist/{chunk-KEM4SDDP.js → chunk-P2VBXX7N.js} +11 -10
- package/dist/{chunk-S2A7YC3Q.js → chunk-PAINMSID.js} +10150 -1720
- package/dist/chunk-PKJAV25S.js +43 -0
- package/dist/{chunk-EBEW3XXQ.js → chunk-PNQLCRSS.js} +4 -4
- package/dist/{chunk-WY6PP6AA.js → chunk-PQH56YF6.js} +37 -5
- package/dist/chunk-PRTBPXYA.js +50 -0
- package/dist/{chunk-YEDDOYSC.js → chunk-PRW3HXM3.js} +2 -2
- package/dist/chunk-PRZ7KMWL.js +42 -0
- package/dist/{chunk-6M5NK3K3.js → chunk-PTQ3ZALZ.js} +42 -4
- package/dist/{chunk-5GDRCDQB.js → chunk-PUEWDYGP.js} +2 -2
- package/dist/chunk-Q26LDIUV.js +236 -0
- package/dist/{chunk-CR3MTH32.js → chunk-Q46QDDMF.js} +77 -7
- package/dist/chunk-QBNWF5ZU.js +19 -0
- package/dist/chunk-QE527XRY.js +342 -0
- package/dist/{chunk-CNUKCS2T.js → chunk-QHJJMZLX.js} +1518 -54
- package/dist/chunk-QJCJOMW3.js +425 -0
- package/dist/{chunk-VYDBJ73M.js → chunk-QKMRFNMA.js} +15 -15
- package/dist/chunk-QOOEYDNJ.js +317 -0
- package/dist/chunk-QSIDVFB7.js +45 -0
- package/dist/{chunk-R77KLRB3.js → chunk-RA33EYS4.js} +19 -18
- package/dist/{chunk-DFBCSHVT.js → chunk-RALY3E5U.js} +4 -4
- package/dist/{chunk-ZCJDOK2S.js → chunk-S2RY3BOD.js} +35 -21
- package/dist/chunk-S5LSDXV4.js +40 -0
- package/dist/chunk-SB5GRUFM.js +54 -0
- package/dist/chunk-SH27FYPF.js +150 -0
- package/dist/chunk-T74WQQGS.js +40 -0
- package/dist/{chunk-O3WI5KWW.js → chunk-TGVVUKTG.js} +2 -2
- package/dist/chunk-THN26IEF.js +48 -0
- package/dist/chunk-TJH2EUAZ.js +47 -0
- package/dist/{chunk-ZNCEKR4J.js → chunk-TQ4TG57V.js} +12 -8
- package/dist/{chunk-7FBGJFEE.js → chunk-TQTRWENN.js} +12 -12
- package/dist/{chunk-TYAID7B7.js → chunk-TSM6T6GQ.js} +23 -23
- package/dist/{chunk-DPZHZQKE.js → chunk-TW3KOSQK.js} +43 -10
- package/dist/{chunk-MC3H7736.js → chunk-TWQRPM76.js} +37 -4
- package/dist/chunk-TYD6I4CZ.js +109 -0
- package/dist/chunk-U3NBK4EU.js +420 -0
- package/dist/{chunk-6JCPI55B.js → chunk-UDXWIPCB.js} +47 -7
- package/dist/{chunk-MMOSZPWJ.js → chunk-UEVZZZU2.js} +4 -4
- package/dist/{chunk-JBTK5OP2.js → chunk-UF4UHCIG.js} +2 -2
- package/dist/{chunk-6JUBZBMW.js → chunk-UFE36WJH.js} +4 -4
- package/dist/{chunk-ONLS5QA5.js → chunk-URIKUID7.js} +12 -12
- package/dist/chunk-UYLBRRFK.js +1106 -0
- package/dist/chunk-UZACEG2C.js +515 -0
- package/dist/{chunk-7SW2QWLU.js → chunk-VAMHOHUU.js} +12 -12
- package/dist/{chunk-RZPYKDWS.js → chunk-VUVGX5L2.js} +1 -1
- package/dist/{chunk-Q4D5X7QB.js → chunk-VYOCPTUB.js} +44 -24
- package/dist/{chunk-CAQZUNOH.js → chunk-WAZEXEJH.js} +567 -3
- package/dist/chunk-WCEF7H6L.js +221 -0
- package/dist/{chunk-2DIQQJCB.js → chunk-WEOMJHPV.js} +12 -12
- package/dist/{chunk-FHH4I4ZV.js → chunk-WFU77T3A.js} +12 -6
- package/dist/chunk-WIWTJMMR.js +292 -0
- package/dist/{chunk-2BFCZ3RK.js → chunk-WNTIOBOG.js} +18 -18
- package/dist/{chunk-7WD63HU2.js → chunk-X2CUXTWU.js} +6 -6
- package/dist/chunk-X7EMBM5X.js +34 -0
- package/dist/chunk-XEQCQO66.js +33 -0
- package/dist/{chunk-F7HYOUFF.js → chunk-XG4WJHLQ.js} +20 -4
- package/dist/{chunk-EFHQ3TWP.js → chunk-XOL3GFW2.js} +171 -31
- package/dist/{chunk-NE2W3OO7.js → chunk-XQ3YZ4QW.js} +22 -22
- package/dist/{chunk-CEXSU4S6.js → chunk-Y6K3CJBU.js} +723 -85
- package/dist/{chunk-4RS5KZQD.js → chunk-YAH5IQAL.js} +5 -5
- package/dist/{chunk-64EQYWCA.js → chunk-YBOVNMHC.js} +51 -14
- package/dist/chunk-YF5DZCPN.js +1212 -0
- package/dist/chunk-YIGBJNH4.js +37 -0
- package/dist/{chunk-BKVWTZ6A.js → chunk-YJ3TBOTK.js} +25 -25
- package/dist/{chunk-Q5AMFEWD.js → chunk-YKTE2RU3.js} +2 -2
- package/dist/{chunk-7EKXJZ2Y.js → chunk-YO2PKTXT.js} +296 -37
- package/dist/{chunk-6J5OKA4Y.js → chunk-YTTNTQOX.js} +15 -15
- package/dist/{chunk-OT2O76OS.js → chunk-YWAKDNMH.js} +183 -33
- package/dist/{chunk-R6XF6UR3.js → chunk-YZDZOEV4.js} +4 -4
- package/dist/chunk-Z3QFH7YG.js +17 -0
- package/dist/{chunk-W5BVQF44.js → chunk-Z6VLC5X4.js} +17 -17
- package/dist/{chunk-HLJAXMM4.js → chunk-ZFQMMU5Y.js} +2 -2
- package/dist/{chunk-W3BQAZ3Q.js → chunk-ZKYRDV7A.js} +12 -12
- package/dist/{chunk-ZMAINWBW.js → chunk-ZLS6PU2O.js} +3 -3
- package/dist/{chunk-ZVM6AKKM.js → chunk-ZOSD4FXV.js} +3 -3
- package/dist/chunk-ZPDDEVQX.js +47 -0
- package/dist/{chunk-TXLH6WHQ.js → chunk-ZQLRCA2V.js} +11 -11
- package/dist/{chunk-HITVBIJS.js → chunk-ZX7235KR.js} +128 -54
- package/dist/{chunk-GT4I4ZWM.js → chunk-ZZFHLRQW.js} +18 -16
- package/dist/files.json +636 -364
- package/dist/packages/naysayer/constitution/constitution.yaml +19 -0
- package/dist/packages/sdk/npm/index.js +5614 -2343
- package/dist/packages/ui/dist/assets/{elk-api-tma0MCuh.js → elk-api-CowTnhEJ.js} +2 -2
- package/dist/packages/ui/dist/assets/index-Dw20IRhQ.css +1 -0
- package/dist/packages/ui/dist/assets/index-z2wv0d5d.js +47 -0
- package/dist/packages/ui/dist/index.html +2 -2
- package/package.json +4 -4
- package/dist/chunk-2BF2EYJV.js +0 -174
- package/dist/chunk-42EVSKME.js +0 -37
- package/dist/chunk-4BKGMUIK.js +0 -53
- package/dist/chunk-5KLGBXG5.js +0 -48
- package/dist/chunk-6BNC6EQ4.js +0 -41
- package/dist/chunk-6D2CQ5II.js +0 -41
- package/dist/chunk-7AVHLZGD.js +0 -45
- package/dist/chunk-D46WUV3T.js +0 -33
- package/dist/chunk-E36QOJMD.js +0 -47
- package/dist/chunk-FQXYPF7E.js +0 -147
- package/dist/chunk-GBRFVT63.js +0 -45
- package/dist/chunk-ICY36XCH.js +0 -34
- package/dist/chunk-J4K3KVLD.js +0 -131
- package/dist/chunk-JZU3H6UQ.js +0 -54
- package/dist/chunk-NN2ZQEB4.js +0 -38
- package/dist/chunk-PCOCACY3.js +0 -385
- package/dist/chunk-RTEYOSJY.js +0 -29
- package/dist/chunk-RVH5SUW5.js +0 -69
- package/dist/chunk-VN3DP4LQ.js +0 -43
- package/dist/chunk-XPTOBS2D.js +0 -48
- package/dist/packages/ui/dist/assets/index-B54fm9FQ.js +0 -29
- package/dist/packages/ui/dist/assets/index-DD_hufQz.css +0 -1
|
@@ -0,0 +1,150 @@
|
|
|
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
|
+
SEED_MARK,
|
|
8
|
+
loadEstate,
|
|
9
|
+
openspecRootOf,
|
|
10
|
+
readExistingSpecs,
|
|
11
|
+
seedChangeId,
|
|
12
|
+
seedCollisionWords,
|
|
13
|
+
seedCollisions,
|
|
14
|
+
seedSpec,
|
|
15
|
+
writeSpecFiles
|
|
16
|
+
} from "./chunk-BEPCKDCP.js";
|
|
17
|
+
import "./chunk-HWD4JPU7.js";
|
|
18
|
+
import "./chunk-5WERBKLE.js";
|
|
19
|
+
import "./chunk-K332XW7K.js";
|
|
20
|
+
import {
|
|
21
|
+
changeFolder
|
|
22
|
+
} from "./chunk-HSZMPH5T.js";
|
|
23
|
+
import {
|
|
24
|
+
createOpenSpec
|
|
25
|
+
} from "./chunk-D2WSW4GU.js";
|
|
26
|
+
import "./chunk-4KNOJC6J.js";
|
|
27
|
+
import "./chunk-4SLBCEPD.js";
|
|
28
|
+
import "./chunk-64AADMTW.js";
|
|
29
|
+
import "./chunk-JYMIB5XY.js";
|
|
30
|
+
import "./chunk-CPK7QSBG.js";
|
|
31
|
+
import "./chunk-YO2PKTXT.js";
|
|
32
|
+
import "./chunk-TWQRPM76.js";
|
|
33
|
+
import "./chunk-XOL3GFW2.js";
|
|
34
|
+
import "./chunk-QHJJMZLX.js";
|
|
35
|
+
import "./chunk-7AB6OWTV.js";
|
|
36
|
+
import "./chunk-PAINMSID.js";
|
|
37
|
+
import {
|
|
38
|
+
writeFileAtomic
|
|
39
|
+
} from "./chunk-ODMBPDDV.js";
|
|
40
|
+
import "./chunk-TV45EUGM.js";
|
|
41
|
+
|
|
42
|
+
// packages/cli/dist/spec-seed-commands.js
|
|
43
|
+
import { existsSync } from "node:fs";
|
|
44
|
+
import { readFile } from "node:fs/promises";
|
|
45
|
+
import { join } from "node:path";
|
|
46
|
+
var NO_OPENSPEC = "This metarepo isn't set up with OpenSpec (no openspec/config.yaml). Set it up first: atticus openspec setup";
|
|
47
|
+
async function specSeed(root, repo, o, io) {
|
|
48
|
+
const osRoot = openspecRootOf(root);
|
|
49
|
+
if (!osRoot) {
|
|
50
|
+
io.err(NO_OPENSPEC);
|
|
51
|
+
return 2;
|
|
52
|
+
}
|
|
53
|
+
const estate = await loadEstate(root, []);
|
|
54
|
+
const flows = estate.flows.filter((f) => f.repo === repo).map((f) => f.flow);
|
|
55
|
+
if (!flows.length) {
|
|
56
|
+
io.err(`${repo} has no verified flows in specs/${repo}/. Read it first: atticus map ${repo}, then atticus verify ${repo} --write`);
|
|
57
|
+
return 2;
|
|
58
|
+
}
|
|
59
|
+
const os = createOpenSpec({ root: osRoot });
|
|
60
|
+
const existing = await readExistingSpecs(os);
|
|
61
|
+
const multiRepo = new Set(estate.flows.map((f) => f.repo)).size > 1;
|
|
62
|
+
const seed = seedSpec(repo, flows, { existing, multiRepo });
|
|
63
|
+
if (!seed.deltas.length) {
|
|
64
|
+
if (o.json)
|
|
65
|
+
io.out(JSON.stringify({ change: null, repo, skipped: seed.skipped }, null, 2));
|
|
66
|
+
else
|
|
67
|
+
io.out(`Nothing to seed: openspec/specs already has every flow of ${repo} that the code runs today. Each change keeps it current when it is archived.`);
|
|
68
|
+
return 0;
|
|
69
|
+
}
|
|
70
|
+
const dir = changeFolder(root, seed.change);
|
|
71
|
+
if (!existsSync(join(dir, ".openspec.yaml")))
|
|
72
|
+
await os.newChange(seed.change, { description: `Starting spec for ${repo}` });
|
|
73
|
+
const written = await writeSpecFiles(dir, seed.files, SEED_MARK);
|
|
74
|
+
const had = await readFile(join(dir, "proposal.md"), "utf8").catch(() => void 0);
|
|
75
|
+
const proposal = had === void 0 || had.startsWith(SEED_MARK);
|
|
76
|
+
if (proposal)
|
|
77
|
+
await writeFileAtomic(join(dir, "proposal.md"), seed.proposal);
|
|
78
|
+
const kept = Object.keys(seed.files).filter((f) => !written.includes(f));
|
|
79
|
+
const collisions = (await seedCollisions(root)).filter((c) => c.seed === seed.change);
|
|
80
|
+
if (o.json) {
|
|
81
|
+
io.out(JSON.stringify({
|
|
82
|
+
change: seed.change,
|
|
83
|
+
repo,
|
|
84
|
+
capabilities: seed.deltas.map((d) => ({ capability: d.capability, flow: d.flow })),
|
|
85
|
+
written,
|
|
86
|
+
kept,
|
|
87
|
+
skipped: seed.skipped,
|
|
88
|
+
collisions
|
|
89
|
+
}, null, 2));
|
|
90
|
+
return 0;
|
|
91
|
+
}
|
|
92
|
+
for (const c of collisions)
|
|
93
|
+
io.err(`Warning: ${seedCollisionWords(c)}`);
|
|
94
|
+
const rel = `openspec/changes/${seed.change}`;
|
|
95
|
+
io.out(`Wrote ${rel}/: a starting spec for ${repo}, ${seed.deltas.length} ${seed.deltas.length === 1 ? "capability" : "capabilities"}, one per verified flow, each scenario citing its lines.`);
|
|
96
|
+
for (const f of kept)
|
|
97
|
+
io.out(`Kept ${rel}/${f} as a person left it (no mark on its first line).`);
|
|
98
|
+
if (!proposal)
|
|
99
|
+
io.out(`Kept ${rel}/proposal.md as a person left it.`);
|
|
100
|
+
for (const s of seed.skipped)
|
|
101
|
+
io.out(`Not seeded: ${s.flow} (${s.why}).`);
|
|
102
|
+
io.out(`Read each spec under ${rel}/specs/ against the code it cites, then accept it: atticus spec accept ${repo}`);
|
|
103
|
+
return 0;
|
|
104
|
+
}
|
|
105
|
+
async function specAccept(root, repo, o, io) {
|
|
106
|
+
if (!o.by) {
|
|
107
|
+
io.err("Say who is accepting: set your Git user (git config user.name), or pass --by <you>.");
|
|
108
|
+
return 2;
|
|
109
|
+
}
|
|
110
|
+
const osRoot = openspecRootOf(root);
|
|
111
|
+
if (!osRoot) {
|
|
112
|
+
io.err(NO_OPENSPEC);
|
|
113
|
+
return 2;
|
|
114
|
+
}
|
|
115
|
+
const change = seedChangeId(repo);
|
|
116
|
+
const dir = changeFolder(root, change);
|
|
117
|
+
if (!existsSync(join(dir, ".openspec.yaml"))) {
|
|
118
|
+
io.err(`${repo} has no starting spec waiting. Write one first: atticus spec seed ${repo}`);
|
|
119
|
+
return 2;
|
|
120
|
+
}
|
|
121
|
+
const os = createOpenSpec({ root: osRoot });
|
|
122
|
+
const v = await os.validate({ item: change, type: "change", strict: true });
|
|
123
|
+
const issues = (v.items[0]?.issues ?? []).filter((i) => i.level !== "INFO");
|
|
124
|
+
if (issues.length || v.items[0]?.valid === false) {
|
|
125
|
+
io.err(`${change} doesn't pass openspec validate --strict; fix its specs and accept again:`);
|
|
126
|
+
for (const i of issues)
|
|
127
|
+
io.err(` ${i.path}: ${i.message}`);
|
|
128
|
+
return 1;
|
|
129
|
+
}
|
|
130
|
+
const date = (o.now ?? /* @__PURE__ */ new Date()).toISOString().slice(0, 10);
|
|
131
|
+
const p = join(dir, "proposal.md");
|
|
132
|
+
const text = await readFile(p, "utf8").catch(() => void 0);
|
|
133
|
+
if (text !== void 0 && !/\nAccepted by .+ on \d{4}-\d{2}-\d{2}\.\n?$/.test(text))
|
|
134
|
+
await writeFileAtomic(p, `${text.trimEnd()}
|
|
135
|
+
|
|
136
|
+
Accepted by ${o.by} on ${date}.
|
|
137
|
+
`);
|
|
138
|
+
try {
|
|
139
|
+
await os.archive(change);
|
|
140
|
+
} catch (e) {
|
|
141
|
+
io.err(`openspec archive ${change} failed: ${e.message}`);
|
|
142
|
+
return 1;
|
|
143
|
+
}
|
|
144
|
+
io.out(`Accepted ${repo}'s starting spec: openspec/specs/ has its capabilities, and ${change} is archived. Commit the metarepo and open its pull request; the next change to ${repo} modifies these requirements.`);
|
|
145
|
+
return 0;
|
|
146
|
+
}
|
|
147
|
+
export {
|
|
148
|
+
specAccept,
|
|
149
|
+
specSeed
|
|
150
|
+
};
|
|
@@ -0,0 +1,40 @@
|
|
|
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
|
+
SHOWN,
|
|
8
|
+
factsRepos,
|
|
9
|
+
verifyAllCommand,
|
|
10
|
+
verifyCommand,
|
|
11
|
+
verifyInputsOf
|
|
12
|
+
} from "./chunk-LN77DXBM.js";
|
|
13
|
+
import "./chunk-L4CESDPB.js";
|
|
14
|
+
import "./chunk-U3NBK4EU.js";
|
|
15
|
+
import "./chunk-455SYIIE.js";
|
|
16
|
+
import "./chunk-GIFMBCTW.js";
|
|
17
|
+
import "./chunk-MD7KUEJ3.js";
|
|
18
|
+
import "./chunk-Q46QDDMF.js";
|
|
19
|
+
import "./chunk-TGVVUKTG.js";
|
|
20
|
+
import "./chunk-3AQ2R5NL.js";
|
|
21
|
+
import "./chunk-4SLBCEPD.js";
|
|
22
|
+
import "./chunk-64AADMTW.js";
|
|
23
|
+
import "./chunk-JYMIB5XY.js";
|
|
24
|
+
import "./chunk-CPK7QSBG.js";
|
|
25
|
+
import "./chunk-YO2PKTXT.js";
|
|
26
|
+
import "./chunk-TWQRPM76.js";
|
|
27
|
+
import "./chunk-API5TOUB.js";
|
|
28
|
+
import "./chunk-XOL3GFW2.js";
|
|
29
|
+
import "./chunk-QHJJMZLX.js";
|
|
30
|
+
import "./chunk-7AB6OWTV.js";
|
|
31
|
+
import "./chunk-PAINMSID.js";
|
|
32
|
+
import "./chunk-ODMBPDDV.js";
|
|
33
|
+
import "./chunk-TV45EUGM.js";
|
|
34
|
+
export {
|
|
35
|
+
SHOWN,
|
|
36
|
+
factsRepos,
|
|
37
|
+
verifyAllCommand,
|
|
38
|
+
verifyCommand,
|
|
39
|
+
verifyInputsOf
|
|
40
|
+
};
|
|
@@ -5,11 +5,11 @@ var __atticusUrl = (p) => new URL("./" + p, import.meta.url).href;
|
|
|
5
5
|
var __atticusPath = (p) => __atticusFileURLToPath(__atticusUrl(p));
|
|
6
6
|
import {
|
|
7
7
|
baseClonePath
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-XOL3GFW2.js";
|
|
9
9
|
import {
|
|
10
10
|
loadOrgPack,
|
|
11
11
|
orgPackDirOf
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-PAINMSID.js";
|
|
13
13
|
|
|
14
14
|
// packages/cli/dist/repo-for.js
|
|
15
15
|
import { stat } from "node:fs/promises";
|
|
@@ -0,0 +1,48 @@
|
|
|
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
|
+
|
|
7
|
+
// packages/cli/dist/file-lock.js
|
|
8
|
+
import { appendFile, readFile } from "node:fs/promises";
|
|
9
|
+
import { resolve } from "node:path";
|
|
10
|
+
var chains = /* @__PURE__ */ new Map();
|
|
11
|
+
function withFileLock(path, work) {
|
|
12
|
+
const key = resolve(path);
|
|
13
|
+
const before = chains.get(key) ?? Promise.resolve();
|
|
14
|
+
const next = before.then(work, work);
|
|
15
|
+
const tail = next.catch(() => void 0);
|
|
16
|
+
chains.set(key, tail);
|
|
17
|
+
void tail.then(() => {
|
|
18
|
+
if (chains.get(key) === tail)
|
|
19
|
+
chains.delete(key);
|
|
20
|
+
});
|
|
21
|
+
return next;
|
|
22
|
+
}
|
|
23
|
+
function appendLines(file, lines) {
|
|
24
|
+
return withFileLock(file, async () => {
|
|
25
|
+
const now = await readFile(file, "utf8").catch(() => "");
|
|
26
|
+
const eol = /\r\n/.test(now) ? "\r\n" : "\n";
|
|
27
|
+
const lead = now && !now.endsWith("\n") ? eol : "";
|
|
28
|
+
await appendFile(file, lead + lines.map((l) => `${l}${eol}`).join(""), "utf8");
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
var safeMessage = (m) => m.replace(/[^A-Za-z0-9 _.,:/@{}()#+-]/g, "").replace(/\s+/g, " ").trim().slice(0, 200);
|
|
32
|
+
async function originOf(dir, git) {
|
|
33
|
+
const url = await git(["-C", dir, "remote", "get-url", "origin"]).then((r) => r.stdout.trim()).catch(() => "");
|
|
34
|
+
const clean = url.replace(/^([a-z][a-z0-9+.-]*:\/\/)[^/]*@/i, "$1").replace(/[?#].*$/, "");
|
|
35
|
+
if (/^(https?|ssh|git):\/\/[^/]/i.test(clean))
|
|
36
|
+
return clean;
|
|
37
|
+
if (/^[\w.-]+@[\w.-]+:[^\\]/.test(clean) && !/^[a-z]:[\\/]/i.test(clean))
|
|
38
|
+
return clean;
|
|
39
|
+
return nameOf(url ? url.replace(/^file:\/*/i, "/").replace(/[?#].*$/, "") : dir);
|
|
40
|
+
}
|
|
41
|
+
var nameOf = (p) => p.replace(/[\\/]+$/, "").split(/[\\/]/).pop() || p;
|
|
42
|
+
|
|
43
|
+
export {
|
|
44
|
+
withFileLock,
|
|
45
|
+
appendLines,
|
|
46
|
+
safeMessage,
|
|
47
|
+
originOf
|
|
48
|
+
};
|
|
@@ -0,0 +1,47 @@
|
|
|
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
|
+
mapRules,
|
|
8
|
+
plannedTopUp,
|
|
9
|
+
recordRulesNow,
|
|
10
|
+
recordTopUpVerified,
|
|
11
|
+
ruleSetsOfFiles,
|
|
12
|
+
rulesPrompt,
|
|
13
|
+
rulesRelOf,
|
|
14
|
+
topUpFiles,
|
|
15
|
+
topUpOf,
|
|
16
|
+
topUpSessions
|
|
17
|
+
} from "./chunk-U3NBK4EU.js";
|
|
18
|
+
import "./chunk-455SYIIE.js";
|
|
19
|
+
import "./chunk-GIFMBCTW.js";
|
|
20
|
+
import "./chunk-MD7KUEJ3.js";
|
|
21
|
+
import "./chunk-Q46QDDMF.js";
|
|
22
|
+
import "./chunk-TGVVUKTG.js";
|
|
23
|
+
import "./chunk-3AQ2R5NL.js";
|
|
24
|
+
import "./chunk-4SLBCEPD.js";
|
|
25
|
+
import "./chunk-64AADMTW.js";
|
|
26
|
+
import "./chunk-JYMIB5XY.js";
|
|
27
|
+
import "./chunk-CPK7QSBG.js";
|
|
28
|
+
import "./chunk-YO2PKTXT.js";
|
|
29
|
+
import "./chunk-TWQRPM76.js";
|
|
30
|
+
import "./chunk-XOL3GFW2.js";
|
|
31
|
+
import "./chunk-QHJJMZLX.js";
|
|
32
|
+
import "./chunk-7AB6OWTV.js";
|
|
33
|
+
import "./chunk-PAINMSID.js";
|
|
34
|
+
import "./chunk-ODMBPDDV.js";
|
|
35
|
+
import "./chunk-TV45EUGM.js";
|
|
36
|
+
export {
|
|
37
|
+
mapRules,
|
|
38
|
+
plannedTopUp,
|
|
39
|
+
recordRulesNow,
|
|
40
|
+
recordTopUpVerified,
|
|
41
|
+
ruleSetsOfFiles,
|
|
42
|
+
rulesPrompt,
|
|
43
|
+
rulesRelOf,
|
|
44
|
+
topUpFiles,
|
|
45
|
+
topUpOf,
|
|
46
|
+
topUpSessions
|
|
47
|
+
};
|
|
@@ -8,24 +8,24 @@ import {
|
|
|
8
8
|
} from "./chunk-VOGCSYOI.js";
|
|
9
9
|
import {
|
|
10
10
|
readCatalog
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-4SLBCEPD.js";
|
|
12
12
|
import {
|
|
13
13
|
TriageError,
|
|
14
14
|
buildTriage,
|
|
15
15
|
classify,
|
|
16
16
|
scanInputs
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-CPK7QSBG.js";
|
|
18
18
|
import {
|
|
19
19
|
readDrawio,
|
|
20
20
|
reconcile
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-YO2PKTXT.js";
|
|
22
22
|
import {
|
|
23
23
|
inputsDirOf,
|
|
24
24
|
loadOrgPack,
|
|
25
25
|
orgPackDirOf,
|
|
26
26
|
recordPath,
|
|
27
27
|
serializeRecord
|
|
28
|
-
} from "./chunk-
|
|
28
|
+
} from "./chunk-PAINMSID.js";
|
|
29
29
|
|
|
30
30
|
// packages/cli/dist/intake-commands.js
|
|
31
31
|
import { createHash } from "node:crypto";
|
|
@@ -81,9 +81,9 @@ async function addToInbox(root, files) {
|
|
|
81
81
|
const dot = name.lastIndexOf(".");
|
|
82
82
|
const [stem, ext] = dot > 0 ? [name.slice(0, dot), name.slice(dot)] : [name, ""];
|
|
83
83
|
await mkdir(inbox, { recursive: true });
|
|
84
|
-
const taken = new Set(await readdir(inbox));
|
|
84
|
+
const taken = new Set((await readdir(inbox)).map((n) => n.toLowerCase()));
|
|
85
85
|
let target = name;
|
|
86
|
-
for (let n = 2; taken.has(target); n++)
|
|
86
|
+
for (let n = 2; taken.has(target.toLowerCase()); n++)
|
|
87
87
|
target = `${stem}-${n}${ext}`;
|
|
88
88
|
await writeFile(join(inbox, target), bytes);
|
|
89
89
|
const path = `${INBOX}/${target}`;
|
|
@@ -152,7 +152,8 @@ var STATUS_WORDS = [
|
|
|
152
152
|
["unresolved", (n) => `${n} waiting for a system name`],
|
|
153
153
|
["duplicate", (n) => `${n} duplicate${n === 1 ? "" : "s"}`],
|
|
154
154
|
["superseded", (n) => `${n} older version${n === 1 ? "" : "s"}`],
|
|
155
|
-
["failed", (n) => `${n} failed`]
|
|
155
|
+
["failed", (n) => `${n} failed`],
|
|
156
|
+
["unreadable", (n) => `${n} unreadable`]
|
|
156
157
|
];
|
|
157
158
|
function chains(docs) {
|
|
158
159
|
const byId = new Map(docs.filter((d) => d.id).map((d) => [d.id, d]));
|
|
@@ -186,7 +187,7 @@ async function intakeList(root, io, o) {
|
|
|
186
187
|
for (const l of table(["PATH", "TYPE", "STATUS", "SYSTEMS"], documents.map((d) => [
|
|
187
188
|
d.path,
|
|
188
189
|
d.classification,
|
|
189
|
-
d.duplicateOf ? `duplicate of ${d.duplicateOf}` : d.status,
|
|
190
|
+
d.duplicateOf ? `duplicate of ${d.duplicateOf}` : d.status === "unreadable" && d.reason ? `unreadable: ${d.reason}` : d.status,
|
|
190
191
|
d.systems.join(", ")
|
|
191
192
|
])))
|
|
192
193
|
io.out(l);
|
|
@@ -201,6 +202,9 @@ async function intakeList(root, io, o) {
|
|
|
201
202
|
return n > 0 ? words(n) : "";
|
|
202
203
|
}).filter(Boolean);
|
|
203
204
|
io.out(`${documents.length} file${documents.length === 1 ? "" : "s"}: ${counts.join(", ")}.`);
|
|
205
|
+
for (const d of documents)
|
|
206
|
+
for (const n of d.notes ?? [])
|
|
207
|
+
io.out(` ~ ${d.path}: ${n}`);
|
|
204
208
|
for (const p of problems)
|
|
205
209
|
io.out(` ! ${p.path}: ${p.message}`);
|
|
206
210
|
return problems.length > 0 ? 1 : 0;
|
|
@@ -5,22 +5,22 @@ var __atticusUrl = (p) => new URL("./" + p, import.meta.url).href;
|
|
|
5
5
|
var __atticusPath = (p) => __atticusFileURLToPath(__atticusUrl(p));
|
|
6
6
|
import {
|
|
7
7
|
loadCatalog
|
|
8
|
-
} from "./chunk-
|
|
9
|
-
import "./chunk-
|
|
8
|
+
} from "./chunk-5QUOPNLN.js";
|
|
9
|
+
import "./chunk-4SLBCEPD.js";
|
|
10
10
|
import {
|
|
11
11
|
domainProfile
|
|
12
|
-
} from "./chunk-
|
|
13
|
-
import "./chunk-
|
|
14
|
-
import "./chunk-
|
|
15
|
-
import "./chunk-
|
|
16
|
-
import "./chunk-
|
|
17
|
-
import "./chunk-
|
|
18
|
-
import "./chunk-
|
|
19
|
-
import "./chunk-
|
|
12
|
+
} from "./chunk-64AADMTW.js";
|
|
13
|
+
import "./chunk-JYMIB5XY.js";
|
|
14
|
+
import "./chunk-CPK7QSBG.js";
|
|
15
|
+
import "./chunk-YO2PKTXT.js";
|
|
16
|
+
import "./chunk-TWQRPM76.js";
|
|
17
|
+
import "./chunk-XOL3GFW2.js";
|
|
18
|
+
import "./chunk-QHJJMZLX.js";
|
|
19
|
+
import "./chunk-7AB6OWTV.js";
|
|
20
20
|
import {
|
|
21
21
|
orgPackDirOf
|
|
22
|
-
} from "./chunk-
|
|
23
|
-
import "./chunk-
|
|
22
|
+
} from "./chunk-PAINMSID.js";
|
|
23
|
+
import "./chunk-ODMBPDDV.js";
|
|
24
24
|
import "./chunk-TV45EUGM.js";
|
|
25
25
|
|
|
26
26
|
// packages/cli/dist/domain-commands.js
|
|
@@ -5,41 +5,41 @@ var __atticusUrl = (p) => new URL("./" + p, import.meta.url).href;
|
|
|
5
5
|
var __atticusPath = (p) => __atticusFileURLToPath(__atticusUrl(p));
|
|
6
6
|
import {
|
|
7
7
|
matchedRepoType
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-K6JB6XTX.js";
|
|
9
9
|
import {
|
|
10
10
|
loadCatalog
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-5QUOPNLN.js";
|
|
12
12
|
import {
|
|
13
13
|
repoFor
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-TGVVUKTG.js";
|
|
15
15
|
import {
|
|
16
16
|
draftSpec
|
|
17
|
-
} from "./chunk-
|
|
18
|
-
import "./chunk-
|
|
17
|
+
} from "./chunk-P2VBXX7N.js";
|
|
18
|
+
import "./chunk-ZOSD4FXV.js";
|
|
19
19
|
import {
|
|
20
20
|
stepJudges
|
|
21
|
-
} from "./chunk-
|
|
22
|
-
import "./chunk-
|
|
23
|
-
import "./chunk-
|
|
24
|
-
import "./chunk-
|
|
25
|
-
import "./chunk-
|
|
26
|
-
import "./chunk-
|
|
21
|
+
} from "./chunk-BEPCKDCP.js";
|
|
22
|
+
import "./chunk-HWD4JPU7.js";
|
|
23
|
+
import "./chunk-5WERBKLE.js";
|
|
24
|
+
import "./chunk-K332XW7K.js";
|
|
25
|
+
import "./chunk-HSZMPH5T.js";
|
|
26
|
+
import "./chunk-D2WSW4GU.js";
|
|
27
|
+
import "./chunk-4KNOJC6J.js";
|
|
27
28
|
import {
|
|
28
29
|
checkSpec,
|
|
29
30
|
citedFileHashes,
|
|
30
31
|
staleFlows
|
|
31
|
-
} from "./chunk-
|
|
32
|
-
import "./chunk-
|
|
33
|
-
import "./chunk-
|
|
34
|
-
import "./chunk-
|
|
35
|
-
import "./chunk-
|
|
36
|
-
import "./chunk-
|
|
37
|
-
import "./chunk-
|
|
38
|
-
import "./chunk-
|
|
32
|
+
} from "./chunk-4SLBCEPD.js";
|
|
33
|
+
import "./chunk-64AADMTW.js";
|
|
34
|
+
import "./chunk-JYMIB5XY.js";
|
|
35
|
+
import "./chunk-CPK7QSBG.js";
|
|
36
|
+
import "./chunk-YO2PKTXT.js";
|
|
37
|
+
import "./chunk-TWQRPM76.js";
|
|
38
|
+
import "./chunk-XOL3GFW2.js";
|
|
39
|
+
import "./chunk-QHJJMZLX.js";
|
|
39
40
|
import {
|
|
40
41
|
fsRepo
|
|
41
|
-
} from "./chunk-
|
|
42
|
-
import "./chunk-CNUKCS2T.js";
|
|
42
|
+
} from "./chunk-7AB6OWTV.js";
|
|
43
43
|
import {
|
|
44
44
|
askedByStep,
|
|
45
45
|
listQuestions,
|
|
@@ -58,8 +58,8 @@ import {
|
|
|
58
58
|
writeFlow,
|
|
59
59
|
writeSpecFindings,
|
|
60
60
|
writeSpecHeader
|
|
61
|
-
} from "./chunk-
|
|
62
|
-
import "./chunk-
|
|
61
|
+
} from "./chunk-PAINMSID.js";
|
|
62
|
+
import "./chunk-ODMBPDDV.js";
|
|
63
63
|
import "./chunk-TV45EUGM.js";
|
|
64
64
|
|
|
65
65
|
// packages/cli/dist/spec-commands.js
|
|
@@ -3,10 +3,13 @@ import { fileURLToPath as __atticusFileURLToPath } from "node:url";
|
|
|
3
3
|
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
|
+
import {
|
|
7
|
+
nearRepos
|
|
8
|
+
} from "./chunk-OMPENNWY.js";
|
|
6
9
|
import {
|
|
7
10
|
gitUser,
|
|
8
11
|
loadRepos
|
|
9
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-XOL3GFW2.js";
|
|
10
13
|
import {
|
|
11
14
|
ManifestEditError,
|
|
12
15
|
REPO_DESCRIPTION_MAX,
|
|
@@ -18,13 +21,15 @@ import {
|
|
|
18
21
|
manifestFiles,
|
|
19
22
|
parseFacts,
|
|
20
23
|
setManifestDescription
|
|
21
|
-
} from "./chunk-
|
|
22
|
-
import
|
|
24
|
+
} from "./chunk-PAINMSID.js";
|
|
25
|
+
import {
|
|
26
|
+
FileChangedError
|
|
27
|
+
} from "./chunk-ODMBPDDV.js";
|
|
23
28
|
import "./chunk-TV45EUGM.js";
|
|
24
29
|
|
|
25
30
|
// packages/cli/dist/repo-commands.js
|
|
26
31
|
import { readFile, stat } from "node:fs/promises";
|
|
27
|
-
import { basename, join, resolve } from "node:path";
|
|
32
|
+
import { basename, dirname, join, resolve } from "node:path";
|
|
28
33
|
import { createInterface } from "node:readline/promises";
|
|
29
34
|
import { stdin, stdout } from "node:process";
|
|
30
35
|
var askOnTerminal = async (prompt) => {
|
|
@@ -70,8 +75,8 @@ async function typeOf(url, description, frameworks = []) {
|
|
|
70
75
|
if (!await stat(dir).then((s) => s.isDirectory(), () => false))
|
|
71
76
|
return void 0;
|
|
72
77
|
const [{ detectRepoType }, { fsRepo }] = await Promise.all([
|
|
73
|
-
import("./chunk-
|
|
74
|
-
import("./chunk-
|
|
78
|
+
import("./chunk-RA33EYS4.js"),
|
|
79
|
+
import("./chunk-5PV7S2ZP.js")
|
|
75
80
|
]);
|
|
76
81
|
const d = await detectRepoType(fsRepo(basename(dir), dir, "0".repeat(40)), {
|
|
77
82
|
...description ? { description } : {},
|
|
@@ -79,6 +84,22 @@ async function typeOf(url, description, frameworks = []) {
|
|
|
79
84
|
});
|
|
80
85
|
return d.type === "unknown" ? void 0 : { type: d.type, signals: d.signals, confidence: d.confidence };
|
|
81
86
|
}
|
|
87
|
+
async function cloneAt(url) {
|
|
88
|
+
if (/^[a-z][a-z0-9+.-]*:\/\//i.test(url) || /^[^/\\]+@/.test(url))
|
|
89
|
+
return void 0;
|
|
90
|
+
const dir = resolve(url);
|
|
91
|
+
if (!await stat(join(dir, ".git")).catch(() => void 0))
|
|
92
|
+
return void 0;
|
|
93
|
+
const { execFile } = await import("node:child_process");
|
|
94
|
+
const git = (...args) => new Promise((done) => execFile("git", args, { cwd: dir }, (e, out) => done(e ? "" : String(out).trim())));
|
|
95
|
+
const origin = await git("config", "--get", "remote.origin.url");
|
|
96
|
+
const branch = await git("rev-parse", "--abbrev-ref", "HEAD");
|
|
97
|
+
return {
|
|
98
|
+
dir,
|
|
99
|
+
...origin ? { origin } : {},
|
|
100
|
+
...branch && branch !== "HEAD" ? { branch } : {}
|
|
101
|
+
};
|
|
102
|
+
}
|
|
82
103
|
async function whoFor(root, d) {
|
|
83
104
|
if (d.by)
|
|
84
105
|
return d.by;
|
|
@@ -93,6 +114,7 @@ async function repoAdd(root, url, o, io, deps = {}) {
|
|
|
93
114
|
io.err('Usage: atticus repo add <clone URL or path> [--id id] [--type repo type] [--owner team] [--description "what it is"].');
|
|
94
115
|
return 2;
|
|
95
116
|
}
|
|
117
|
+
const clone = await cloneAt(url.trim());
|
|
96
118
|
const id = o.id?.trim() || idFromUrl(url.trim());
|
|
97
119
|
if (!RecordId.safeParse(id).success) {
|
|
98
120
|
io.err(`${id} isn't a repo id: ids are lowercase slugs (a-z, 0-9, '.', '_' and '-'). Give one with --id.`);
|
|
@@ -113,18 +135,23 @@ async function repoAdd(root, url, o, io, deps = {}) {
|
|
|
113
135
|
const by = await whoFor(root, deps);
|
|
114
136
|
const description = text ? written(text, by, deps.now ?? /* @__PURE__ */ new Date()) : void 0;
|
|
115
137
|
const detected = o.type?.trim() ? void 0 : await typeOf(url.trim(), text, await declaredFrameworks(root, id));
|
|
138
|
+
const listed = await loadRepos(root).catch(() => []);
|
|
139
|
+
const near = nearRepos({ id, url: clone?.origin ?? url.trim() }, listed);
|
|
116
140
|
try {
|
|
117
141
|
const file = await addManifestRepo(root, platform, {
|
|
118
142
|
id,
|
|
119
|
-
url: url.trim(),
|
|
143
|
+
url: clone?.origin ?? url.trim(),
|
|
144
|
+
...clone?.branch ? { defaultBranch: clone.branch } : {},
|
|
120
145
|
type: o.type?.trim() || detected?.type || "unknown",
|
|
121
146
|
owner: o.owner?.trim() || "unassigned",
|
|
122
147
|
...o.system?.trim() ? { system: o.system.trim() } : {},
|
|
123
148
|
...o.component?.trim() ? { component: o.component.trim() } : {},
|
|
124
149
|
...description ? { description } : {}
|
|
125
150
|
});
|
|
151
|
+
for (const n of near)
|
|
152
|
+
io.err(`Warning: ${id} looks like ${n.id}, already listed (${n.why}). If they are one repo, remove this entry from ${file.rel}, or keep one id: atticus repo rename <old> <new>.`);
|
|
126
153
|
if (o.json) {
|
|
127
|
-
io.out(JSON.stringify({ repo: id, platform, file: file.rel, description }, null, 2));
|
|
154
|
+
io.out(JSON.stringify({ repo: id, platform, file: file.rel, description, ...near.length ? { near } : {} }, null, 2));
|
|
128
155
|
return 0;
|
|
129
156
|
}
|
|
130
157
|
io.out(`Added ${id} to ${file.rel}: commit it in a pull request.`);
|
|
@@ -134,7 +161,7 @@ async function repoAdd(root, url, o, io, deps = {}) {
|
|
|
134
161
|
io.out(`What it is: ${description.text}`);
|
|
135
162
|
else
|
|
136
163
|
io.out(`${id} has no description yet${asked ? "" : " (--description, or atticus repo describe)"}: atticus repo describe ${id} --description "what it is". Until then its reading prompts, the join's questions and the views have only its id to go on.`);
|
|
137
|
-
io.out(`Next: atticus workspace sync, then read it: /atticus-map ${id}.`);
|
|
164
|
+
io.out(clone?.origin ? `From your clone: ${clone.origin}, branch ${clone.branch ?? "main"}. Next: atticus workspace sync --from "${dirname(clone.dir)}" --repos ${id} (copied from it, no network), then read it: /atticus-map ${id}.` : `Next: atticus workspace sync, then read it: /atticus-map ${id}.`);
|
|
138
165
|
return 0;
|
|
139
166
|
} catch (e) {
|
|
140
167
|
if (e instanceof ManifestEditError) {
|
|
@@ -272,7 +299,13 @@ async function keepDraftedDescription(root, repo, draft, now) {
|
|
|
272
299
|
});
|
|
273
300
|
if (!d.success)
|
|
274
301
|
return { kept: false, why: d.error.issues[0]?.message ?? "the draft wasn't one line" };
|
|
275
|
-
|
|
302
|
+
try {
|
|
303
|
+
await setManifestDescription(root, repo, d.data);
|
|
304
|
+
} catch (e) {
|
|
305
|
+
if (e instanceof FileChangedError)
|
|
306
|
+
return { kept: false, why: e.message };
|
|
307
|
+
throw e;
|
|
308
|
+
}
|
|
276
309
|
return { kept: true };
|
|
277
310
|
}
|
|
278
311
|
export {
|