@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
|
@@ -5,33 +5,33 @@ var __atticusUrl = (p) => new URL("./" + p, import.meta.url).href;
|
|
|
5
5
|
var __atticusPath = (p) => __atticusFileURLToPath(__atticusUrl(p));
|
|
6
6
|
import {
|
|
7
7
|
aliasArgv
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-BXBCMGIQ.js";
|
|
9
9
|
import {
|
|
10
10
|
VERSION
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-VUVGX5L2.js";
|
|
12
12
|
import {
|
|
13
13
|
SCHEMA_VERSION,
|
|
14
14
|
createLog
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-ODMBPDDV.js";
|
|
16
16
|
import "./chunk-TV45EUGM.js";
|
|
17
17
|
|
|
18
18
|
// packages/cli/dist/main.js
|
|
19
19
|
import { parseArgs } from "node:util";
|
|
20
20
|
import { basename, join, resolve } from "node:path";
|
|
21
21
|
import { existsSync } from "node:fs";
|
|
22
|
-
var loadAi = () => import("./chunk-
|
|
22
|
+
var loadAi = () => import("./chunk-GCS3FZOB.js");
|
|
23
23
|
var runtimeForCli = async (...a) => {
|
|
24
24
|
await setUpAi();
|
|
25
25
|
return (await loadAi()).runtimeForCli(...a);
|
|
26
26
|
};
|
|
27
|
-
var gitUser = (...a) => import("./chunk-
|
|
27
|
+
var gitUser = (...a) => import("./chunk-FAJDKNSD.js").then((m) => m.gitUser(...a));
|
|
28
28
|
var loadAiSetUp = () => Promise.all([
|
|
29
29
|
loadAi(),
|
|
30
|
-
import("./chunk-
|
|
31
|
-
import("./chunk-
|
|
32
|
-
import("./chunk-
|
|
33
|
-
import("./chunk-
|
|
34
|
-
import("./chunk-
|
|
30
|
+
import("./chunk-BPPU3PW7.js"),
|
|
31
|
+
import("./chunk-GDZB57IU.js"),
|
|
32
|
+
import("./chunk-75ASLHBT.js"),
|
|
33
|
+
import("./chunk-5TDRBOAV.js"),
|
|
34
|
+
import("./chunk-3UTYPHN3.js")
|
|
35
35
|
]);
|
|
36
36
|
async function setUpAi() {
|
|
37
37
|
const [ai, providers, plugins, naysayer, codeTools, draftCheck] = await loadAiSetUp();
|
|
@@ -39,6 +39,12 @@ async function setUpAi() {
|
|
|
39
39
|
plugins.registerModelProviderPlugins();
|
|
40
40
|
ai.registerToolSource((at) => (req) => draftCheck.bothTools(codeTools.metarepoToolBox(at), draftCheck.draftCheckTool(at, req)));
|
|
41
41
|
naysayer.registerCodeSearch(codeTools.criticCodeSearch);
|
|
42
|
+
ai.registerCopilotAcp({
|
|
43
|
+
...process.argv[1] ? { exec: ai.atticusExec(process.argv[1]) } : {},
|
|
44
|
+
onProgress: (l) => process.stderr.write(`${l}
|
|
45
|
+
`),
|
|
46
|
+
clientVersion: VERSION
|
|
47
|
+
});
|
|
42
48
|
}
|
|
43
49
|
var NO_AI = /* @__PURE__ */ new Set([
|
|
44
50
|
"next",
|
|
@@ -53,79 +59,82 @@ var NO_AI = /* @__PURE__ */ new Set([
|
|
|
53
59
|
"upgrade",
|
|
54
60
|
"support",
|
|
55
61
|
"change list",
|
|
62
|
+
"estate measure",
|
|
63
|
+
"estate fresh",
|
|
64
|
+
"estate shared",
|
|
56
65
|
"change status",
|
|
57
66
|
// Reading the questions on file and printing one: files only, no model (question-commands.ts).
|
|
58
67
|
"questions list",
|
|
59
68
|
"questions show"
|
|
60
69
|
]);
|
|
61
70
|
var runsNoAi = (group, command) => NO_AI.has(group) || NO_AI.has(`${group} ${command ?? ""}`);
|
|
62
|
-
var loadCommands = () => import("./chunk-
|
|
71
|
+
var loadCommands = () => import("./chunk-YKTE2RU3.js");
|
|
63
72
|
var catalogValidate = (...a) => loadCommands().then((m) => m.catalogValidate(...a));
|
|
64
73
|
var orgPackValidate = (...a) => loadCommands().then((m) => m.orgPackValidate(...a));
|
|
65
74
|
var schemaExport = (...a) => loadCommands().then((m) => m.schemaExport(...a));
|
|
66
|
-
var loadWorkspaceCommands = () => import("./chunk-
|
|
67
|
-
var handoffDone = (...a) => loadWorkspaceCommands().then((m) => m.handoffDone(...a));
|
|
75
|
+
var loadWorkspaceCommands = () => import("./chunk-SB5GRUFM.js");
|
|
68
76
|
var openspecCheck = (...a) => loadWorkspaceCommands().then((m) => m.openspecCheck(...a));
|
|
69
77
|
var openspecSetup = (...a) => loadWorkspaceCommands().then((m) => m.openspecSetup(...a));
|
|
70
78
|
var workspaceOpen = (...a) => loadWorkspaceCommands().then((m) => m.workspaceOpen(...a));
|
|
71
79
|
var workspacePrune = (...a) => loadWorkspaceCommands().then((m) => m.workspacePrune(...a));
|
|
72
80
|
var workspaceSync = (...a) => loadWorkspaceCommands().then((m) => m.workspaceSync(...a));
|
|
73
|
-
var loadScanCommands = () => import("./chunk-
|
|
81
|
+
var loadScanCommands = () => import("./chunk-JITJP64K.js");
|
|
74
82
|
var catalogDiff = (...a) => loadScanCommands().then((m) => m.catalogDiff(...a));
|
|
75
83
|
var scanCommand = (...a) => loadScanCommands().then((m) => m.scanCommand(...a));
|
|
76
|
-
var loadIndexCommands = () => import("./chunk-
|
|
84
|
+
var loadIndexCommands = () => import("./chunk-4CLK2RJO.js");
|
|
77
85
|
var askCommand = (...a) => loadIndexCommands().then((m) => m.askCommand(...a));
|
|
78
86
|
var impactCommand = (...a) => loadIndexCommands().then((m) => m.impactCommand(...a));
|
|
79
87
|
var indexRebuild = (...a) => loadIndexCommands().then((m) => m.indexRebuild(...a));
|
|
80
88
|
var queryCommand = (...a) => loadIndexCommands().then((m) => m.queryCommand(...a));
|
|
81
89
|
var searchCommand = (...a) => loadIndexCommands().then((m) => m.searchCommand(...a));
|
|
82
|
-
var loadSiteCommands = () => import("./chunk-
|
|
90
|
+
var loadSiteCommands = () => import("./chunk-QKMRFNMA.js");
|
|
83
91
|
var guideCommand = (...a) => loadSiteCommands().then((m) => m.guideCommand(...a));
|
|
84
92
|
var siteBuildCommand = (...a) => loadSiteCommands().then((m) => m.siteBuildCommand(...a));
|
|
85
|
-
var loadBaselineCommands = () => import("./chunk-
|
|
93
|
+
var loadBaselineCommands = () => import("./chunk-CLD4RVTA.js");
|
|
86
94
|
var baselineCommand = (...a) => loadBaselineCommands().then((m) => m.baselineCommand(...a));
|
|
87
95
|
var setupCommand = (...a) => loadBaselineCommands().then((m) => m.setupCommand(...a));
|
|
88
|
-
var loadDigestCommands = () => import("./chunk-
|
|
96
|
+
var loadDigestCommands = () => import("./chunk-CFH3QH26.js");
|
|
89
97
|
var digestCommand = (...a) => loadDigestCommands().then((m) => m.digestCommand(...a));
|
|
90
|
-
var loadDoctor = () => import("./chunk-
|
|
98
|
+
var loadDoctor = () => import("./chunk-PRTBPXYA.js");
|
|
91
99
|
var doctorCommand = (...a) => loadDoctor().then((m) => m.doctorCommand(...a));
|
|
92
|
-
var loadSupport = () => import("./chunk-
|
|
100
|
+
var loadSupport = () => import("./chunk-GC2VK3JT.js");
|
|
93
101
|
var supportBundleCommand = (...a) => loadSupport().then((m) => m.supportBundleCommand(...a));
|
|
94
|
-
var loadUpgrade = () => import("./chunk-
|
|
102
|
+
var loadUpgrade = () => import("./chunk-AM6FP6JW.js");
|
|
95
103
|
var upgradeCommand = (...a) => loadUpgrade().then((m) => m.upgradeCommand(...a));
|
|
96
|
-
var loadReconcileCommands = () => import("./chunk-
|
|
104
|
+
var loadReconcileCommands = () => import("./chunk-42EPP7OB.js");
|
|
97
105
|
var aliasCommand = (...a) => loadReconcileCommands().then((m) => m.aliasCommand(...a));
|
|
98
106
|
var reconcileCommand = (...a) => loadReconcileCommands().then((m) => m.reconcileCommand(...a));
|
|
99
|
-
var loadKnowledgeCommands = () => import("./chunk-
|
|
107
|
+
var loadKnowledgeCommands = () => import("./chunk-EDZ45WIR.js");
|
|
100
108
|
var coverageCommand = (...a) => loadKnowledgeCommands().then((m) => m.coverageCommand(...a));
|
|
101
109
|
var patternsScan = (...a) => loadKnowledgeCommands().then((m) => m.patternsScan(...a));
|
|
102
110
|
var questionsCommand = (...a) => loadKnowledgeCommands().then((m) => m.questionsCommand(...a));
|
|
103
|
-
var questionsFiles = (...a) => import("./chunk-
|
|
111
|
+
var questionsFiles = (...a) => import("./chunk-CNU5Q2D5.js").then((m) => m.questionsFiles(...a));
|
|
104
112
|
var sourcesAdd = (...a) => loadKnowledgeCommands().then((m) => m.sourcesAdd(...a));
|
|
105
113
|
var sourcesSync = (...a) => loadKnowledgeCommands().then((m) => m.sourcesSync(...a));
|
|
106
|
-
var loadDiagramCommands = () => import("./chunk-
|
|
114
|
+
var loadDiagramCommands = () => import("./chunk-ECLXZWAG.js");
|
|
107
115
|
var diagramLibrary = (...a) => loadDiagramCommands().then((m) => m.diagramLibrary(...a));
|
|
108
116
|
var diagramRender = (...a) => loadDiagramCommands().then((m) => m.diagramRender(...a));
|
|
109
|
-
var loadStubCommands = () => import("./chunk-
|
|
117
|
+
var loadStubCommands = () => import("./chunk-CNPY4NTZ.js");
|
|
110
118
|
var stubCheck = (...a) => loadStubCommands().then((m) => m.stubCheck(...a));
|
|
111
119
|
var stubServe = (...a) => loadStubCommands().then((m) => m.stubServe(...a));
|
|
112
|
-
var loadIntakeCommands = () => import("./chunk-
|
|
120
|
+
var loadIntakeCommands = () => import("./chunk-ZKYRDV7A.js");
|
|
113
121
|
var intakeAdd = (...a) => loadIntakeCommands().then((m) => m.intakeAdd(...a));
|
|
114
122
|
var intakeList = (...a) => loadIntakeCommands().then((m) => m.intakeList(...a));
|
|
115
123
|
var triageDecide = (...a) => loadIntakeCommands().then((m) => m.triageDecide(...a));
|
|
116
124
|
var triageList = (...a) => loadIntakeCommands().then((m) => m.triageList(...a));
|
|
117
|
-
var loadRunCommands = () => import("./chunk-
|
|
125
|
+
var loadRunCommands = () => import("./chunk-5G7ILBUG.js");
|
|
118
126
|
var assistantFiles = (...a) => loadRunCommands().then((m) => m.assistantFiles(...a));
|
|
119
127
|
var driftCommand = (...a) => loadRunCommands().then((m) => m.driftCommand(...a));
|
|
120
128
|
var specHandDown = (...a) => loadRunCommands().then((m) => m.specHandDown(...a));
|
|
121
129
|
var specHandUp = (...a) => loadRunCommands().then((m) => m.specHandUp(...a));
|
|
122
|
-
var
|
|
130
|
+
var runDone = (...a) => loadRunCommands().then((m) => m.runDone(...a));
|
|
123
131
|
var taskRun = (...a) => loadRunCommands().then((m) => m.taskRun(...a));
|
|
124
|
-
var
|
|
132
|
+
var taskRunReady = (...a) => import("./chunk-JKIGL3XQ.js").then((m) => m.taskRunReady(...a));
|
|
133
|
+
var loadFeatureCommands = () => import("./chunk-YTTNTQOX.js");
|
|
125
134
|
var featureSuggestNames = (...a) => loadFeatureCommands().then((m) => m.featureSuggestNames(...a));
|
|
126
|
-
var loadDomainCommands = () => import("./chunk-
|
|
135
|
+
var loadDomainCommands = () => import("./chunk-TQTRWENN.js");
|
|
127
136
|
var domainProfileCommand = (...a) => loadDomainCommands().then((m) => m.domainProfileCommand(...a));
|
|
128
|
-
var loadPlanCommands = () => import("./chunk-
|
|
137
|
+
var loadPlanCommands = () => import("./chunk-MMZUN7ZO.js");
|
|
129
138
|
var adoSync = (...a) => loadPlanCommands().then((m) => m.adoSync(...a));
|
|
130
139
|
var changeDraft = (...a) => loadPlanCommands().then((m) => m.changeDraft(...a));
|
|
131
140
|
var planStories = (...a) => loadPlanCommands().then((m) => m.planStories(...a));
|
|
@@ -133,13 +142,13 @@ var snowDraft = (...a) => loadPlanCommands().then((m) => m.snowDraft(...a));
|
|
|
133
142
|
var snowSubmit = (...a) => loadPlanCommands().then((m) => m.snowSubmit(...a));
|
|
134
143
|
var storyBarCommand = (...a) => loadPlanCommands().then((m) => m.storyBarCommand(...a));
|
|
135
144
|
var templatesDraft = (...a) => loadPlanCommands().then((m) => m.templatesDraft(...a));
|
|
136
|
-
var loadTodoCommands = () => import("./chunk-
|
|
145
|
+
var loadTodoCommands = () => import("./chunk-YAH5IQAL.js");
|
|
137
146
|
var executorsCheck = (...a) => loadTodoCommands().then((m) => m.executorsCheck(...a));
|
|
138
147
|
var todoDone = (...a) => loadTodoCommands().then((m) => m.todoDone(...a));
|
|
139
148
|
var todoList = (...a) => loadTodoCommands().then((m) => m.todoList(...a));
|
|
140
149
|
var todoRun = (...a) => loadTodoCommands().then((m) => m.todoRun(...a));
|
|
141
150
|
var todoShow = (...a) => loadTodoCommands().then((m) => m.todoShow(...a));
|
|
142
|
-
var loadSetupCommands = () => import("./chunk-
|
|
151
|
+
var loadSetupCommands = () => import("./chunk-HS4BGB4G.js");
|
|
143
152
|
var absorbCommand = (...a) => loadSetupCommands().then((m) => m.absorbCommand(...a));
|
|
144
153
|
var absorbAcceptCommand = (...a) => loadSetupCommands().then((m) => m.absorbAcceptCommand(...a));
|
|
145
154
|
var absorbRefreshCommand = (...a) => loadSetupCommands().then((m) => m.absorbRefreshCommand(...a));
|
|
@@ -149,7 +158,7 @@ var initCommand = (...a) => loadSetupCommands().then((m) => m.initCommand(...a))
|
|
|
149
158
|
var reposDiscoverCommand = (...a) => loadSetupCommands().then((m) => m.reposDiscoverCommand(...a));
|
|
150
159
|
var unadoptCommand = (...a) => loadSetupCommands().then((m) => m.unadoptCommand(...a));
|
|
151
160
|
var zeroInstallCommand = (...a) => loadSetupCommands().then((m) => m.zeroInstallCommand(...a));
|
|
152
|
-
var loadQualityCommands = () => import("./chunk-
|
|
161
|
+
var loadQualityCommands = () => import("./chunk-7QPCGTPS.js");
|
|
153
162
|
var ciArchiveGate = (...a) => loadQualityCommands().then((m) => m.ciArchiveGate(...a));
|
|
154
163
|
var ciDrift = (...a) => loadQualityCommands().then((m) => m.ciDrift(...a));
|
|
155
164
|
var ciSnippet = (...a) => loadQualityCommands().then((m) => m.ciSnippet(...a));
|
|
@@ -160,33 +169,33 @@ var glossaryList = (...a) => loadQualityCommands().then((m) => m.glossaryList(..
|
|
|
160
169
|
var glossaryScan = (...a) => loadQualityCommands().then((m) => m.glossaryScan(...a));
|
|
161
170
|
var testsGenerate = (...a) => loadQualityCommands().then((m) => m.testsGenerate(...a));
|
|
162
171
|
var traceCommand = (...a) => loadQualityCommands().then((m) => m.traceCommand(...a));
|
|
163
|
-
var loadInitiativeCommands = () => import("./chunk-
|
|
172
|
+
var loadInitiativeCommands = () => import("./chunk-AE4P57KK.js");
|
|
164
173
|
var initiativeCommitment = (...a) => loadInitiativeCommands().then((m) => m.initiativeCommitment(...a));
|
|
165
174
|
var initiativeNew = (...a) => loadInitiativeCommands().then((m) => m.initiativeNew(...a));
|
|
166
175
|
var initiativePlan = (...a) => loadInitiativeCommands().then((m) => m.initiativePlan(...a));
|
|
167
176
|
var initiativeStatus = (...a) => loadInitiativeCommands().then((m) => m.initiativeStatus(...a));
|
|
168
177
|
var requestFromTeam = (...a) => loadInitiativeCommands().then((m) => m.requestFromTeam(...a));
|
|
169
|
-
var loadLearnCommands = () => import("./chunk-
|
|
178
|
+
var loadLearnCommands = () => import("./chunk-PKJAV25S.js");
|
|
170
179
|
var explainCommand = (...a) => loadLearnCommands().then((m) => m.explainCommand(...a));
|
|
171
180
|
var learnCheck = (...a) => loadLearnCommands().then((m) => m.learnCheck(...a));
|
|
172
181
|
var learnList = (...a) => loadLearnCommands().then((m) => m.learnList(...a));
|
|
173
182
|
var learnStart = (...a) => loadLearnCommands().then((m) => m.learnStart(...a));
|
|
174
183
|
var sandboxCreate = (...a) => loadLearnCommands().then((m) => m.sandboxCreate(...a));
|
|
175
|
-
var loadEvalCommands = () => import("./chunk-
|
|
176
|
-
var loadBenchCommands = () => import("./chunk-
|
|
184
|
+
var loadEvalCommands = () => import("./chunk-JRXHON4E.js");
|
|
185
|
+
var loadBenchCommands = () => import("./chunk-D5MASS4I.js");
|
|
177
186
|
var benchFetch = (...a) => loadBenchCommands().then((m) => m.benchFetch(...a));
|
|
178
187
|
var benchRun = (...a) => loadBenchCommands().then((m) => m.benchRun(...a));
|
|
179
188
|
var benchSurvey = (...a) => loadBenchCommands().then((m) => m.benchSurvey(...a));
|
|
180
189
|
var benchVerify = (...a) => loadBenchCommands().then((m) => m.benchVerify(...a));
|
|
181
|
-
var loadScanVerifyCommands = () => import("./chunk-
|
|
182
|
-
var stageCli = (...a) => import("./chunk-
|
|
183
|
-
var knowledgeCli = (...a) => import("./chunk-
|
|
190
|
+
var loadScanVerifyCommands = () => import("./chunk-GSGIZ2OO.js");
|
|
191
|
+
var stageCli = (...a) => import("./chunk-NYOABJNK.js").then((m) => m.stageCli(...a));
|
|
192
|
+
var knowledgeCli = (...a) => import("./chunk-OV57AHCG.js").then((m) => m.knowledgeCli(...a));
|
|
184
193
|
var defencesScan = (...a) => loadEvalCommands().then((m) => m.defencesScan(...a));
|
|
185
194
|
var evalReport = (...a) => loadEvalCommands().then((m) => m.evalReport(...a));
|
|
186
195
|
var evalRun = (...a) => loadEvalCommands().then((m) => m.evalRun(...a));
|
|
187
|
-
var loadU1Commands = () => import("./chunk-
|
|
196
|
+
var loadU1Commands = () => import("./chunk-AHW3RY3X.js");
|
|
188
197
|
var conformanceCommand = (...a) => loadU1Commands().then((m) => m.conformanceCommand(...a));
|
|
189
|
-
var loadReleaseCommands = () => import("./chunk-
|
|
198
|
+
var loadReleaseCommands = () => import("./chunk-FGAGWYZB.js");
|
|
190
199
|
var outcomeList = (...a) => loadReleaseCommands().then((m) => m.outcomeList(...a));
|
|
191
200
|
var outcomeRecord = (...a) => loadReleaseCommands().then((m) => m.outcomeRecord(...a));
|
|
192
201
|
var releaseEvidenceCommand = (...a) => loadReleaseCommands().then((m) => m.releaseEvidenceCommand(...a));
|
|
@@ -194,9 +203,9 @@ var releaseForecastCommand = (...a) => loadReleaseCommands().then((m) => m.relea
|
|
|
194
203
|
var releaseNotesCommand = (...a) => loadReleaseCommands().then((m) => m.releaseNotesCommand(...a));
|
|
195
204
|
var releasePlanCommand = (...a) => loadReleaseCommands().then((m) => m.releasePlanCommand(...a));
|
|
196
205
|
var releaseSecurityCommand = (...a) => loadReleaseCommands().then((m) => m.releaseSecurityCommand(...a));
|
|
197
|
-
var loadUiCommands = () => import("./chunk-
|
|
206
|
+
var loadUiCommands = () => import("./chunk-LNWEWYCM.js");
|
|
198
207
|
var uiCommand = (...a) => loadUiCommands().then((m) => m.uiCommand(...a));
|
|
199
|
-
var loadCriticCommands = () => import("./chunk-
|
|
208
|
+
var loadCriticCommands = () => import("./chunk-ZZFHLRQW.js");
|
|
200
209
|
var critic = (...a) => loadCriticCommands().then((m) => m.critic(...a));
|
|
201
210
|
var criticStats = (...a) => loadCriticCommands().then((m) => m.criticStats(...a));
|
|
202
211
|
var findingAction = (...a) => loadCriticCommands().then((m) => m.findingAction(...a));
|
|
@@ -211,7 +220,7 @@ var featureSpec = (...a) => loadFeatureCommands().then((m) => m.featureSpec(...a
|
|
|
211
220
|
var featureSplit = (...a) => loadFeatureCommands().then((m) => m.featureSplit(...a));
|
|
212
221
|
var featureSuggestLinks = (...a) => loadFeatureCommands().then((m) => m.featureSuggestLinks(...a));
|
|
213
222
|
var featureTag = (...a) => loadFeatureCommands().then((m) => m.featureTag(...a));
|
|
214
|
-
var loadChangeCommands = () => import("./chunk-
|
|
223
|
+
var loadChangeCommands = () => import("./chunk-O4IKAIZ2.js");
|
|
215
224
|
var changeArchive = (...a) => loadChangeCommands().then((m) => m.changeArchive(...a));
|
|
216
225
|
var changeConflicts = (...a) => loadChangeCommands().then((m) => m.changeConflicts(...a));
|
|
217
226
|
var changeHandoff = (...a) => loadChangeCommands().then((m) => m.changeHandoff(...a));
|
|
@@ -220,34 +229,35 @@ var changeNew = (...a) => loadChangeCommands().then((m) => m.changeNew(...a));
|
|
|
220
229
|
var changeReturn = (...a) => loadChangeCommands().then((m) => m.changeReturn(...a));
|
|
221
230
|
var changeStatus = (...a) => loadChangeCommands().then((m) => m.changeStatus(...a));
|
|
222
231
|
var changeSync = (...a) => loadChangeCommands().then((m) => m.changeSync(...a));
|
|
232
|
+
var changeReleasePrs = (...a) => loadChangeCommands().then((m) => m.changeReleasePrs(...a));
|
|
223
233
|
var changeLearn = (...a) => loadChangeCommands().then((m) => m.changeLearn(...a));
|
|
224
|
-
var loadDialectCommands = () => import("./chunk-
|
|
234
|
+
var loadDialectCommands = () => import("./chunk-VAMHOHUU.js");
|
|
225
235
|
var dialectGrade = (...a) => loadDialectCommands().then((m) => m.dialectGrade(...a));
|
|
226
236
|
var dialectKit = (...a) => loadDialectCommands().then((m) => m.dialectKit(...a));
|
|
227
237
|
var dialectTree = (...a) => loadDialectCommands().then((m) => m.dialectTree(...a));
|
|
228
238
|
var dialectNew = (...a) => loadDialectCommands().then((m) => m.dialectNew(...a));
|
|
229
239
|
var dialectRun = (...a) => loadDialectCommands().then((m) => m.dialectRun(...a));
|
|
230
240
|
var dialectTest = (...a) => loadDialectCommands().then((m) => m.dialectTest(...a));
|
|
231
|
-
var loadPluginCommands = () => import("./chunk-
|
|
241
|
+
var loadPluginCommands = () => import("./chunk-LEBR5NHW.js");
|
|
232
242
|
var pluginTest = (...a) => loadPluginCommands().then((m) => m.pluginTest(...a));
|
|
233
243
|
var pluginPin = (...a) => loadPluginCommands().then((m) => m.pluginPin(...a));
|
|
234
244
|
var pluginAdd = (...a) => loadPluginCommands().then((m) => m.pluginAdd(...a));
|
|
235
|
-
var loadFrameworkCommands = () => import("./chunk-
|
|
245
|
+
var loadFrameworkCommands = () => import("./chunk-WEOMJHPV.js");
|
|
236
246
|
var frameworksCheck = (...a) => loadFrameworkCommands().then((m) => m.frameworksCheck(...a));
|
|
237
247
|
var frameworksDiscover = (...a) => loadFrameworkCommands().then((m) => m.frameworksDiscover(...a));
|
|
238
248
|
var frameworksKit = (...a) => loadFrameworkCommands().then((m) => m.frameworksKit(...a));
|
|
239
249
|
var frameworksLearn = (...a) => loadFrameworkCommands().then((m) => m.frameworksLearn(...a));
|
|
240
250
|
var frameworksSurvey = (...a) => loadFrameworkCommands().then((m) => m.frameworksSurvey(...a));
|
|
241
|
-
var loadOnboardCommands = () => import("./chunk-
|
|
251
|
+
var loadOnboardCommands = () => import("./chunk-67BP7HXL.js");
|
|
242
252
|
var onboardAccept = (...a) => loadOnboardCommands().then((m) => m.onboardAccept(...a));
|
|
243
253
|
var onboardCheck = (...a) => loadOnboardCommands().then((m) => m.onboardCheck(...a));
|
|
244
254
|
var onboardDraft = (...a) => loadOnboardCommands().then((m) => m.onboardDraft(...a));
|
|
245
255
|
var scanReview = (...a) => loadOnboardCommands().then((m) => m.scanReview(...a));
|
|
246
256
|
var scanSurvey = (...a) => loadOnboardCommands().then((m) => m.scanSurvey(...a));
|
|
247
|
-
var loadRepoTypeCommands = () => import("./chunk-
|
|
248
|
-
var loadRepoCommands = () => import("./chunk-
|
|
249
|
-
var loadSpecCommands = () => import("./chunk-
|
|
250
|
-
var loadEstateCommands = () => import("./chunk-
|
|
257
|
+
var loadRepoTypeCommands = () => import("./chunk-N3RUGTGV.js");
|
|
258
|
+
var loadRepoCommands = () => import("./chunk-TW3KOSQK.js");
|
|
259
|
+
var loadSpecCommands = () => import("./chunk-TSM6T6GQ.js");
|
|
260
|
+
var loadEstateCommands = () => import("./chunk-WNTIOBOG.js");
|
|
251
261
|
var onboardEval = (...a) => loadOnboardCommands().then((m) => m.onboardEval(...a));
|
|
252
262
|
var onboardFramework = (...a) => loadOnboardCommands().then((m) => m.onboardFramework(...a));
|
|
253
263
|
var onboardFrameworkAccept = (...a) => loadOnboardCommands().then((m) => m.onboardFrameworkAccept(...a));
|
|
@@ -268,13 +278,22 @@ Usage:
|
|
|
268
278
|
[--json] Print the result as JSON
|
|
269
279
|
atticus scan survey <repo> Your assistant reads the repo and drafts its scan settings (folders to leave out, path prefixes, client base URLs); checked against the code [--attempts 3] [--force] [--max-tokens n]
|
|
270
280
|
atticus scan verify <repo> Your assistant compares the code with the last scan: what it missed, what it has wrong, a fix for each; checked, kept in proposals/scan/ [--attempts 3] [--json] [--accept] [--max-tokens n]
|
|
271
|
-
atticus map <repo> Read a repo into facts in batches that fit your model, one hand-off at a time, each answer verified at once; for an assistant without file tools (ADR 0124; /atticus-map reads it in one session) [--mode m] [--max-tokens n] [--next] [--resume run] [--force] [--dir path] [--commit sha] [--json]
|
|
272
|
-
[--estimate] Say what the first read costs: the checkout, commit, facts file, source files, tokens, your assistant's tier and the batches at the limit
|
|
281
|
+
atticus map <repo> Read a repo into facts in batches that fit your model, one hand-off at a time, each answer verified at once; for an assistant without file tools (ADR 0124; /atticus-map reads it in one session). Where runtime.yaml's reader is Copilot (or reads by a pasted line), it runs map --all's waiting loop for this one repo instead, --force reading it whole again (ADR 0170) [--mode m] [--max-tokens n] [--next] [--resume run] [--force] [--idle minutes] [--dir path] [--commit sha] [--json]
|
|
282
|
+
[--estimate] Say what the first read costs: the checkout, commit, facts file, source files, tokens, your assistant's tier and the batches at the limit; with housePrefixes in conventions.yaml, it warns of house packages the repo imports that no taught framework covers, with the frameworks learn command for each (ADR 0147); with --part n, names that part for the session to read whole (ADR 0170)
|
|
283
|
+
[--gaps] Plan a second pass on what the last verify left (files no fact cites, skipped lines, spec operations, entries no flow follows) for a new chat, sized to the session: writes facts/<repo>.gaps.md (ADR 0157)
|
|
273
284
|
[--copy] Print the next batch's prompt to paste into a chat
|
|
274
285
|
[--answer <file>] With --copy: read the pasted answer back from a file (- for stdin)
|
|
275
|
-
|
|
286
|
+
[--gaps --part n] With --gaps: only what is left of part n of the read plan, for a read that stopped in it (ADR 0161); /atticus-map <repo> --part n --gaps in a new chat reads it
|
|
287
|
+
[--rules] Top up a repo read before reading rules added since (estate fresh says rules-changed): only the rule parts its read lacked, over the files they apply to, the facts kept listed by id; writes facts/<repo>.rules.md for a new chat (/atticus-map <repo> --rules), or reads it in batches with --mode or --handoff; once verify passes the read records the rules (ADR 0167)
|
|
288
|
+
[--models entries|reachable|all] Which model classes (DTOs, requests, responses, schemas) the read, its parts, --gaps and --rules take: those the entry points and calls reach, read right after them (the default), those the repo's own entry points reach (entries: the ones only an outbound client reaches are left for later, ADR 0170), or all; those left out are recorded in the read plan as notReached and said by --estimate and verify (ADR 0169)
|
|
289
|
+
[--spent <tokens>] [--sessions n] [--part n] Record what the read took as your assistant reports it, in facts/<repo>.read-plan.yaml beside --estimate's estimate (Atticus can't meter an assistant's tokens; ADR 0141)
|
|
290
|
+
atticus map --all Map or re-map the whole estate in one command (ADR 0161): every repo's read planned at the model's limit, in the onboarding queue's order, fresh repos skipped, and repos read before the reading rules there are now topped up for the new rules only (ADR 0167). Under Copilot you paste one line per part into a new chat and Atticus waits for the facts, verifies them and moves on (s skip, r retry what's left, q stop; it resumes); where runtime.yaml allows model mode it runs unattended; with --mode copilot-acp (runtime.yaml version 3, ADR 0171) Atticus drives Copilot itself through its Agent Client Protocol, one new session per part, unattended. Then the estate is joined once. A part is done when verify's coverage leaves no file under it unaccounted; after --idle minutes (30) with nothing written it stops waiting, saying how to carry on; --force reads the repos (all, or --repos) whole again, the facts on file kept as already kept (ADR 0170) [--max-tokens n] [--stale | --gaps | --force] [--models entries|reachable|all] [--repos a,b] [--dry-run] [--mode model|hand-off|copilot-acp] [--max-parts n] [--budget-tokens n] [--idle minutes]
|
|
291
|
+
atticus verify <repo> Check the facts your assistant wrote for a repo (/atticus-map) against its code: the claim on each cited line, the quote, references, secrets, coverage; raises the questions it wrote for a person; rejected facts go back to the assistant (ADR 0124) [--dir path] [--commit sha] [--routed a,b] [--skipped] [--json]
|
|
276
292
|
[--write] When nothing is rejected: put the facts in the catalog, the flows in specs/<repo>/, ask about calls nothing joins, and render the map
|
|
277
293
|
[--verbose] With --write: list every record changed and flow written, not only the counts
|
|
294
|
+
atticus verify --all [--write] Every repo read so far (each with a facts file), one after another; no model is called
|
|
295
|
+
atticus verify audit <repo> Confirm a reproducible random sample of the repo's kept facts and its links, each with its cited lines (right, wrong or unsure); the answers go to facts/<repo>.audit.yaml, a person's record for a pull request (ADR 0148) [--size n] [--seed s] [--answers file] [--right ids] [--wrong ids] [--unsure ids] [--dir path] [--json]
|
|
296
|
+
atticus verify audit <repo> --report Precision from the answers, per kind of fact and for links (by how each was joined), with the sample size and a 95% interval; without a repo, every repo audited and the estate [--json]
|
|
278
297
|
atticus map render <repo> [--json] Render the repo's map from the catalog: map.md, a page per flow with its sequence diagram, an OpenAPI file per component, under map/<repo>/
|
|
279
298
|
atticus spec draft <repo> Your assistant writes the repo's flows, one per trigger, each step cited and checked [--attempts 3] [--resume run] [--force] [--mode m] [--max-tokens n]
|
|
280
299
|
atticus spec check <repo> [--json] Check the repo's flows against the catalog, the template and the code; confirms steps on their cited lines
|
|
@@ -282,8 +301,34 @@ Usage:
|
|
|
282
301
|
atticus estate flow <flow> [--depth 5] [--json] A flow followed across repos, with the data at each crossing
|
|
283
302
|
atticus estate lineage <flow> <field> [--depth 5] [--json] Follow a field along a flow to the column it is stored in, or where it breaks
|
|
284
303
|
atticus join [--json] Follow each repo's flows into the flows their calls reach, through the calls the repos' verified facts join (verify --write); the same as estate join
|
|
304
|
+
atticus join measure <reference> [--json] Measure your map against a reference you write by hand for two or three repos you know (their entries and calls, each call with the repo it should reach): reading recall, and join precision and recall; reads files only (docs/guide/measure.md)
|
|
305
|
+
atticus estate measure <reference> [--json] The same as join measure
|
|
306
|
+
atticus join shared import <their metarepo> --team <id> --system <id> Bring in another team's Atticus map, read-only: their verified entries (quotes redacted, the deny-list applied) go to shared/<team>/ at their commit, and verify --write joins your calls to that system to them, cited on their lines; files only (docs/guide/shared-maps.md) [--name <team name>] [--commit <sha>] [--json]
|
|
307
|
+
atticus join shared refresh [<team>] [<folder>] Import a team's map again from where it came from (a folder inside the metarepo), or the folder given (needed when it was outside); a newer commit replaces the old [--commit <sha>]
|
|
308
|
+
atticus join shared list [--json] The shared maps on file: whose, for which system, their commit and entries
|
|
309
|
+
atticus estate shared import|refresh|list The same as join shared
|
|
310
|
+
atticus join contracts [--json] Compare the payload on both sides of every link (REST calls, gateway hops, topics, calls to outside systems) from the field facts and the specs on file (a repo's own, a consumer's copy, a topic's .proto, Avro, JSON Schema or AsyncAPI, a vendor's or team's taken in through intake): missing and extra fields, required but not sent, types, error statuses, protobuf field numbers; a mapping nobody traced is unconfirmed, never a mismatch; reads files only (ADR 0164)
|
|
311
|
+
atticus estate contracts [--json] The same as join contracts
|
|
312
|
+
atticus estate fresh [--all] [--json] Which repos' clones have moved past their facts' commit, most stale first: per repo the facts' commit, the clone's, the files changed that the facts cite, the facts to read again and the command to run; local git only, nothing fetched or written (--all lists the fresh ones too); a repo whose facts are fresh but read before reading rules added since is rules-changed, with its top-up command (ADR 0167)
|
|
285
313
|
atticus repo-type detect <repo> [--json] Match a repo against the org pack's repo types by fingerprint, with the evidence for each signal
|
|
286
314
|
atticus repo-type new <id> --from <repo> [--force] Draft a repo type from a repo (its build files, dependencies, markers, folders) for you to edit
|
|
315
|
+
atticus repo-type note <type> | --org-wide [--add "..."] List a repo type's notes (or the org-wide ones), or add one: what the organisation's terms mean and what must hold, in its own words; each read of a repo is handed them
|
|
316
|
+
atticus repo-type rules [--save] [--json] Draft a checklist rule (status draft) from each note that reads as a rule (all, every, must); --save adds the new drafts to org-pack/checklists/org-notes.yaml for review
|
|
317
|
+
atticus skills list [--json] The skills, agents and team instructions the org pack keeps (yours and other teams' imported), and where each is written for Claude and Copilot (ADR 0177)
|
|
318
|
+
atticus skills import <their repo> --team <team> [--at <tag>] [--only <names>] [--replace] A pinned copy of another team's skills, agents and instructions in the org pack, then written for both assistants; a file edited here is kept
|
|
319
|
+
atticus skills write [--check] Write .claude/ and .github/ files (and CLAUDE.md's team instructions) from the org pack's sources; --check exits 1 when they are behind
|
|
320
|
+
atticus types list [--json] The organisation's component types (ADR 0180): Atticus's built-ins with the org pack's own, reworded and switched-off ones applied; each with its badge, description and whether it has notes
|
|
321
|
+
atticus types add <id> --name "..." --description "..." [--badge <1-3 chars>] [--shape <shape>] [--colour <css>] [--owner <team>] Write a component type to org-pack/component-types/<id>/type.yaml with a notes.md to fill in; the next reads are handed it, the canvas draws it, a new box on the canvas can be of it
|
|
322
|
+
atticus types notes <id> A component type's notes (the architect's write-up), or where to write them
|
|
323
|
+
atticus connect match <repo> --to <repo> | --system <id> [--mode copilot-acp|hand-off] [--read] [--json] Copilot reads the repo's loose call sites and proposes which of the other box's APIs each reaches, naming the lines; it writes only its answer under proposals/matching/, and nothing is a correction until a person ticks it in the app's Connect panel; --read reads the answer back after a hand-off (ADR 0178)
|
|
324
|
+
atticus rules list [<repo>] [--json] The organisation's reading rules (ADR 0176): every layer's file, or the rules a repo's reads are given, with their layer, drafts and what is switched off
|
|
325
|
+
atticus rules add --org-wide | --type <t> | --repo <r> --key <k> --rule "..." [--files <glob,glob>] [--example <path:line>] [--draft] Write a reading rule to a layer's file, for review
|
|
326
|
+
atticus rules activate <key> --org-wide | --type <t> | --repo <r> | --team <team> --type <t> Give a draft rule to reads (--team: one of another team's imported copy)
|
|
327
|
+
atticus rules off <key> --reason "..." --org-wide | --type <t> | --repo <r> Switch an earlier layer's rule (or builtin:<set>) off for this scope, saying why
|
|
328
|
+
atticus rules draft --type <t> [--repos a,b] | --repo <r> --about "..." [--mode copilot-acp|hand-off] Copilot drafts rules from what the reads keep missing (rejections, corrections, open questions); each is a draft a person sets active
|
|
329
|
+
atticus rules try <repo> --rule <key> [--files <n>] [--compare] One small Copilot session on a few files the rule names: the facts it would add or change; writes nothing
|
|
330
|
+
atticus rules import <their metarepo> --type <t> --team <team> --at <tag> A copy of another product team's type rules pinned at their tag, in reading-rules/imported/<team>/, each a draft until reviewed and set active
|
|
331
|
+
atticus rules notes --type <t> [--save] The repo type's notes that read as an instruction to a reader, offered (with --save written) as draft reading rules
|
|
287
332
|
atticus scan review <repo> What the last scan couldn't read: your assistant gives a verdict on each gap and a rule for code it can read; checked [--gaps] [--attempts 3]
|
|
288
333
|
atticus query "<query>" Find records, e.g. "kind:interface via:gateway -has:pattern"
|
|
289
334
|
atticus query "<words>" --search Search everything the index holds (records, knowledge items, flows, changes, answered questions, wiki sections, documents), names and ids first [--by words|meaning|both] [--kind k,k] [--limit n] [--json]
|
|
@@ -303,7 +348,8 @@ Usage:
|
|
|
303
348
|
atticus ask "<question>" Answer a plain question from the catalog, showing the query it ran
|
|
304
349
|
atticus setup [--json] The setup checklist until the catalog is accepted, with a fix for each step
|
|
305
350
|
atticus baseline Accept the as-is catalog as the baseline [--note text] [--site dir]
|
|
306
|
-
atticus doctor [--json] Check this machine: Node, Git, OpenSpec, proxy, TLS, disk, port, assistant,
|
|
351
|
+
atticus doctor [--json] Check this machine: Node, Git, OpenSpec, proxy, TLS, disk, port, assistant, the tier your assistant reads a repo at, and (where runtime.yaml allows copilot-acp) the Copilot language server, its version and its sign-in, without running a session (ADR 0171)
|
|
352
|
+
atticus doctor --counts [--json] How far the map has got, in counts and flags only (questions, target questions by the calls each covers, links by how joined, asked and unresolved calls by why the join left them, repos read and stale, facts, tokens reported): nothing named, safe to paste
|
|
307
353
|
atticus probe Measure what your assistant can do here (open a file, write one, run a command), so the tier it reads a repo at is measured, not read off runtime.yaml; then /atticus-probe in the assistant (ADR 0124) [--assistant id] [--max-tokens n] [--json]
|
|
308
354
|
atticus probe answer <code> Check the assistant's answer (none when it couldn't open the file) and keep what it measured in .atticus/probe/<assistant>.yaml, on this machine only [--pasted] [--max-tokens n] [--json]
|
|
309
355
|
atticus secret set|check|forget <name> Keep a model provider's key in this machine's credential store under the name runtime.yaml gives as keyEnv; read from stdin, never printed
|
|
@@ -339,13 +385,26 @@ Usage:
|
|
|
339
385
|
atticus patterns scan [--json] Find integration patterns in the wikis and compare them with the org pack
|
|
340
386
|
atticus coverage [--json] What the catalog knows per system and area: verified, document-only, unknown
|
|
341
387
|
atticus questions [--json] Knowledge gaps and the owner questions that close them
|
|
342
|
-
atticus questions
|
|
388
|
+
atticus questions owner <id> --text "..." [--by who] [--json] Record an owner's answer to a gap's owner question in catalog/curated/ownerquestion/<id>.yaml; the gap closes once the fact is in the catalog
|
|
389
|
+
atticus questions list [--state open] [--mine] [--json] The questions in questions/ a step raised for a person,
|
|
390
|
+
in the order to ask them, each with its owner team; --mine, your teams' only
|
|
343
391
|
atticus questions show <id> [--json] One question on file, with its options, evidence and answer
|
|
344
|
-
|
|
345
|
-
|
|
392
|
+
(--json on an open target or topics question adds its picks: every repo, system and team --target takes, for the editors' pickers; ADR 0166)
|
|
393
|
+
atticus questions answer <id> --option <n> | --text "..." | --accept-proposal Write the answer to the file; prints the rerun
|
|
394
|
+
[--scope repo|repo-type] [--type <repo type>] [--by who] (--accept-proposal: the assistant's proposed answer, checked again, as yours)
|
|
395
|
+
[--match <host pattern or /path/**>] (a target or hosts answer by rule: it covers every call that matches, the calls found later too)
|
|
396
|
+
[--target <id> [--add-system vendor|internal] [--name "..."]] (where a call goes: any repo of the manifest, read or not, any system of the profile or a team in roles.yaml; a vendor or a team with no system yet is added to the profile with --add-system, a file change for review; ADR 0162)
|
|
397
|
+
atticus questions propose [<id>] /atticus-propose as a command (ADR 0171): under --mode copilot-acp (or runtime.yaml's default) Copilot proposes in a new session, unattended, writing only proposals/questions/, then the proposals are checked; otherwise it prints the line to paste. A person still accepts each one [--mode copilot-acp|hand-off]
|
|
398
|
+
atticus questions proposed [--json] The answers /atticus-propose proposed for open questions, each citation checked (the file, the line, the quote on it); exits 1 while one doesn't check
|
|
399
|
+
atticus questions decisions [--json] What the AI decided that stands (ADR 0181): its pairings and answers, Detected by AI with the run; counts from code, by a person, by AI; the batches; whether deciding is paused by the sample audit
|
|
400
|
+
atticus questions correct <q-id | link:<repo>:<call>> --option <n> | --api <entry> --to <repo> | --none Correct an AI decision as yours; with Apply to similar (on; --no-similar off) a rule derived from it (or --match) re-checks every AI decision and open item it covers [--preview] [--json]
|
|
401
|
+
atticus questions undo <batch> [--json] Undo one batch of decisions (by AI, or a correction and its rule): exactly its lines and answers
|
|
402
|
+
atticus questions sheet [--out <file>] Every open question in one YAML answer sheet, each with an empty answer:, to answer in one sitting
|
|
403
|
+
atticus questions sheet --apply <file> [--by who] [--json] Answer each filled entry as you; skips blanks, refuses one whose question changed since
|
|
346
404
|
atticus intake add <files...> Drop documents, specs and diagrams into inputs/inbox for intake
|
|
347
405
|
atticus intake list [--json] What intake read from inputs/: kinds, systems, duplicates, versions
|
|
348
406
|
atticus intake impact <spec> [--json] A vendor spec against its other version: each change, breaking or not, and the gateway routes, service calls and callers it reaches
|
|
407
|
+
atticus intake traffic <file> --source apigee|catalog [--from YYYY-MM-DD --to YYYY-MM-DD] [--json] A traffic export (a file) kept as aggregate counts in evidence/traffic/, client ids, IPs and tokens dropped; the next verify write marks the links it shows used
|
|
349
408
|
atticus triage [--json] What needs a person: unknown names, conflicts with code, image edges
|
|
350
409
|
atticus triage decide <item> <n> Choose option n for a triage item; writes a curated decision
|
|
351
410
|
[--reason text]
|
|
@@ -380,6 +439,8 @@ Usage:
|
|
|
380
439
|
atticus change new "<title>" Start a change from a template: --type <type>
|
|
381
440
|
[--template id] [--id id] [--owner role=a,b]... [--system id]... [--like <archived change>]
|
|
382
441
|
[--impact <vendor spec>] (its footprint: what the spec's newer version reaches, see intake impact)
|
|
442
|
+
atticus change sketch <change> --from <file.drawio|.mmd> [--save] [--json] Read a draw.io export or a Mermaid flowchart as strokes into the change's target flows (a line marked new or not on today's map is a call or a topic; one marked retired takes today's step out); shows what it would draw, --save draws it (ADR 0179)
|
|
443
|
+
atticus change impact <change> [--json] What the change's target flows break across the estate: each entry or table, who calls or uses it (a link the map guessed: may break, not counted), the fields that stop crossing and the gateway routes to update, each with its owner team; then who calls the callers, up to five hops up
|
|
383
444
|
atticus change similar "<brief>" The archived changes nearest a new brief (or --change <id>: a change's own), to start from one with change new --like or change attach --like [--limit n] [--json]
|
|
384
445
|
atticus domain profile <system> A system as a domain profile, filled from the catalog [--out file]
|
|
385
446
|
atticus change feature <change> The feature stage: your assistant places the change on the estate's flows and features from the brief, stories or a design; checked and criticised every draft until done [--from-figma f.json] [--mode m] [--resume run] [--force] [--context-tokens n] [--whole-context] [--max-tokens n]
|
|
@@ -391,7 +452,9 @@ Usage:
|
|
|
391
452
|
atticus change knowledge <id> The patterns, standards, decisions, processes, requests and wiki and document sections that apply to the change, picked by each of its stages from the feature stage on and by each task, with near-misses and the pages that disagree (each undecided one asked of a person once); confirm one (later stages that take its kind pick it) or exclude it (they leave it out) [--confirm id] [--exclude id] [--json]
|
|
392
453
|
atticus change handoff <id> --approve Open the phase's hand-off PR; merging it approves the gate [--repo]
|
|
393
454
|
(without --approve: say what it would open, send nothing)
|
|
394
|
-
atticus change sync <id> [--approve] Read the hand-off PR; a merged PR moves the change on (--approve merges a ready one) and keeps what Atticus drafted beside what merged (stage/<stage>.drafted/, .merged/)
|
|
455
|
+
atticus change sync <id> [--approve] Read the hand-off PR and the release PRs; a merged hand-off PR moves the change on (--approve merges a ready one) and keeps what Atticus drafted beside what merged (stage/<stage>.drafted/, .merged/)
|
|
456
|
+
atticus change release-prs <id> --approve Open one release PR per code repo from change/<id> into its default branch, before go/no-go; a person merges each on the Git host (ADR 0184)
|
|
457
|
+
(without --approve: say which it would open, send nothing)
|
|
395
458
|
atticus change learn [--json] How much people changed Atticus's drafts: per merged change and stage, lines per file and each story's criteria and fields, and whether it falls over time (from the kept drafts; completes any whose merge you have since pulled)
|
|
396
459
|
atticus change return <id> --reason "<why>" --approve Close the hand-off PR and return the change to the product owner
|
|
397
460
|
atticus change archive <id> [--no-rescan] Archive a released change and rescan its repos
|
|
@@ -418,8 +481,9 @@ Usage:
|
|
|
418
481
|
atticus feature spec <id> Draft an OpenSpec capability spec from a confirmed feature
|
|
419
482
|
atticus catalog migrate [--dry-run] Rewrite catalog files to the current schema version
|
|
420
483
|
atticus task context <change> <task> [--json|--markdown] The task's context for an assistant: its story and criteria, the step it implements with today's code, what applies, the knowledge that applies to it (how-tos with their steps, standards, processes, decisions, each with its page, the pages that say the same and those that disagree), the files attached and the files likely to change
|
|
421
|
-
atticus task run <change> <task> Run a task with AI [--level plan|draft|pr] [--mode m] [--approve]
|
|
422
|
-
atticus task <change>
|
|
484
|
+
atticus task run <change> <task> Run a task with AI [--level plan|draft|pr] [--mode m] [--approve] [--dry-run]
|
|
485
|
+
atticus task run-ready <change> Run all ready tasks: every task whose dependencies are done, in cross-repo order, one task run each, stopping on the first that needs a person (ADR 0181) [--level draft|pr] [--mode m] [--approve] [--dry-run]
|
|
486
|
+
atticus task <change> <task> Run one task with your assistant, the same as task run [--level plan|draft|pr] [--mode m] [--approve] [--dry-run]
|
|
423
487
|
atticus spec hand-down <change> <task> Create the task's Spec Kit feature in its repo [--force]
|
|
424
488
|
atticus spec hand-up <change> <task> Read the Spec Kit feature back at the PR [--pr n --pr-url url]
|
|
425
489
|
atticus drift <change> [--json] Compare design, repo plans and code
|
|
@@ -456,6 +520,7 @@ Usage:
|
|
|
456
520
|
atticus unadopt <path> Remove Atticus from an adopted repo, leaving it as it was
|
|
457
521
|
atticus repos discover <folder> | --org <org> Propose repos.manifest.yaml entries [--platform p] [--dry-run]
|
|
458
522
|
atticus repo add <url|path> Add one repo to the manifest, with what it is in your own words; with a folder and no --type, its type is read from its files (or, where they say nothing, from what you wrote) [--id x] [--type t] [--owner team] [--system s] [--component c] [--platform p] [--description "what it is"] [--no-description] [--json]
|
|
523
|
+
atticus repo rename <old> <new> Move a repo's id with its facts, read plan, reviewed file, questions and catalog records, in one change you review (files moved and rewritten; nothing committed or pushed)
|
|
459
524
|
atticus repo describe [<repo>] Say what a repo is, in one line, for a repo that has none (or edit what it says); with no repo, the repos with no description and the drafts waiting for a person [--description "..."] [--accept] [--reject] [--json]
|
|
460
525
|
[--drafted "..." --cites f:n] Your assistant hands over the line it drafted, with the lines it read it from; kept unconfirmed until a person confirms it
|
|
461
526
|
atticus absorb <git-url|path> --id <id> Translate another team's prompts, agents, checklists, OpenSpec, Spec Kit, TypeSpec or Atticus repo
|
|
@@ -483,7 +548,7 @@ Usage:
|
|
|
483
548
|
atticus initiative plan <id> --target <system> Plan its changes and commitments [--release d] [--system s]... [--dry-run]
|
|
484
549
|
atticus initiative status <id> Critical path, at-risk and slipped commitments
|
|
485
550
|
atticus initiative request <id> <party> Send a team a system card and track the reply [--system s]...
|
|
486
|
-
atticus initiative commit <commitment> <open|at-risk|done|slipped> Record a commitment's status
|
|
551
|
+
atticus initiative commit <commitment> <open|at-risk|done|slipped> Record a commitment's status [--note "<words>"]
|
|
487
552
|
atticus learn [list] | learn start <role|lesson> | learn check [--answer a] [--lesson l] [--step s]
|
|
488
553
|
Lessons by role in a practice sandbox: list them, start one, check a step
|
|
489
554
|
atticus sandbox create <dir> A throwaway practice metarepo
|
|
@@ -512,14 +577,19 @@ Usage:
|
|
|
512
577
|
atticus standards accept Put the proposed checks a person picks into org-pack/checklists/standards.yaml [--only <id,id>] [--dry-run] [--json]
|
|
513
578
|
atticus openspec setup Set up OpenSpec with the org-flow schema in the metarepo
|
|
514
579
|
atticus openspec check Check the OpenSpec version and validate every change and spec
|
|
580
|
+
atticus spec seed <repo> [--json] Propose a repo's starting openspec/specs from its verified flows, as the change openspec/changes/seed-<repo>/: a requirement per flow, a scenario per path and error case, each citing its lines (ADR 0146)
|
|
581
|
+
atticus spec accept <repo> Accept the repo's seeded spec: OpenSpec validates it strictly, then archives it into openspec/specs/; the next change modifies it
|
|
515
582
|
atticus openspec <args...> Run the bundled OpenSpec CLI in the metarepo with these arguments (openspec isn't on PATH; it ships inside Atticus). status, instructions and show take --change from the only change open when you don't name one
|
|
516
|
-
atticus handoff done <run-id> Tell Atticus a hand-off artifact is written; it validates it (a stage's draft: with the stage's checks, its problems listed with their lines until it is clean) [--model m: the model that wrote it, kept in the run record]
|
|
583
|
+
atticus handoff done <run-id> Tell Atticus a hand-off artifact is written; it validates it (a stage's draft: with the stage's checks, its problems listed with their lines until it is clean) [--model m: the model that wrote it, kept in the run record] [--approve: a pr-level task run's push and PR]
|
|
517
584
|
atticus stage check <change> <stage> <file> Run a stage's checks on a draft's file and list its problems with their lines; writes nothing (a drafter checks its draft before it hands it in)
|
|
518
585
|
atticus next [--all] [--json] The next step to take, its command and slash command, and why; from the files only
|
|
586
|
+
[--queue] The repos to read next, gateways and the repos others call first so links land early, each with its estimated cost, and what each read so far took (ADR 0141)
|
|
519
587
|
atticus <step> --handoff [--json] On map, scan survey, scan verify, spec draft, knowledge scan, change feature, change architecture, change small, change draft, stories, change needs, knowledge find, knowledge ask and critic (its lenses one at a time, as a stage offers its critic lenses after each draft): print only the prompt, the result file and the commands that finish it
|
|
520
588
|
atticus <step> --max-tokens n On the same steps: the model's limit. The whole prompt fits n tokens (counted as characters / 4, a quarter kept back for the count's error), or the step says before handing off that it can't, with the numbers. The VS Code extension passes its model's limit to every step
|
|
521
589
|
atticus workspace sync Clone or update the base clone of every repo in the manifests
|
|
522
590
|
[--repos a,b] Only these repos
|
|
591
|
+
[--from <folder>] Copy a missing base clone from your own clone of it in that folder: no network, your clone only read
|
|
592
|
+
atticus workspace bring-in After a proposal or hand-off PR merges: put back the edits it already has and fast-forward the metarepo; your own edits stay (ADR 0183)
|
|
523
593
|
atticus workspace open <change> Create the change's worktrees, repos.yaml and editor workspaces
|
|
524
594
|
--repos a,b The repos the change touches
|
|
525
595
|
atticus workspace prune <change> Remove worktrees whose PRs merged or closed
|
|
@@ -577,7 +647,8 @@ async function main(given, io, o = {}) {
|
|
|
577
647
|
...new Set(argv.filter((a) => a.startsWith("--")).map((a) => a.slice(2).split("=")[0]))
|
|
578
648
|
];
|
|
579
649
|
const rootAt = argv.indexOf("--root");
|
|
580
|
-
const
|
|
650
|
+
const rootEq = argv.find((a) => a.startsWith("--root="));
|
|
651
|
+
const root = resolve(rootAt >= 0 && argv[rootAt + 1] ? argv[rootAt + 1] : rootEq ? rootEq.slice("--root=".length) : process.env.ATTICUS_ACP_SESSION && process.env.ATTICUS_ROOT ? process.env.ATTICUS_ROOT : process.cwd());
|
|
581
652
|
const log = () => isMetarepoRoot(root) ? createLog(root, o.quiet ? { level: "warn" } : {}) : void 0;
|
|
582
653
|
try {
|
|
583
654
|
const code = await dispatch(argv, io);
|
|
@@ -641,6 +712,13 @@ async function dispatch(argv, io) {
|
|
|
641
712
|
}
|
|
642
713
|
var OPTIONS = {
|
|
643
714
|
help: { type: "boolean", short: "h" },
|
|
715
|
+
// ADR 0141: what a read took, as the reader reports it (atticus map <repo> --spent).
|
|
716
|
+
spent: { type: "string" },
|
|
717
|
+
sessions: { type: "string" },
|
|
718
|
+
part: { type: "string" },
|
|
719
|
+
queue: { type: "boolean" },
|
|
720
|
+
// F10: atticus doctor --counts.
|
|
721
|
+
counts: { type: "boolean" },
|
|
644
722
|
version: { type: "boolean", short: "v" },
|
|
645
723
|
fix: { type: "boolean" },
|
|
646
724
|
root: { type: "string" },
|
|
@@ -653,6 +731,15 @@ var OPTIONS = {
|
|
|
653
731
|
draft: { type: "boolean" },
|
|
654
732
|
story: { type: "string" },
|
|
655
733
|
gaps: { type: "boolean" },
|
|
734
|
+
// ADR 0167: atticus map <repo> --rules, a top-up for reading rules added since a read.
|
|
735
|
+
rules: { type: "boolean" },
|
|
736
|
+
// ADR 0169: atticus map <repo> --models reachable|all (ADR 0170: or entries).
|
|
737
|
+
models: { type: "string" },
|
|
738
|
+
// ADR 0161: atticus map --all.
|
|
739
|
+
stale: { type: "boolean" },
|
|
740
|
+
"max-parts": { type: "string" },
|
|
741
|
+
"budget-tokens": { type: "string" },
|
|
742
|
+
idle: { type: "string" },
|
|
656
743
|
full: { type: "boolean" },
|
|
657
744
|
"dry-run": { type: "boolean" },
|
|
658
745
|
json: { type: "boolean" },
|
|
@@ -698,6 +785,7 @@ var OPTIONS = {
|
|
|
698
785
|
catalog: { type: "string" },
|
|
699
786
|
"from-catalog": { type: "boolean" },
|
|
700
787
|
from: { type: "string" },
|
|
788
|
+
to: { type: "string" },
|
|
701
789
|
package: { type: "string" },
|
|
702
790
|
jars: { type: "string", multiple: true },
|
|
703
791
|
learn: { type: "boolean" },
|
|
@@ -718,6 +806,9 @@ var OPTIONS = {
|
|
|
718
806
|
description: { type: "string" },
|
|
719
807
|
title: { type: "string" },
|
|
720
808
|
name: { type: "string" },
|
|
809
|
+
badge: { type: "string" },
|
|
810
|
+
shape: { type: "string" },
|
|
811
|
+
colour: { type: "string" },
|
|
721
812
|
attempts: { type: "string" },
|
|
722
813
|
users: { type: "string" },
|
|
723
814
|
language: { type: "string" },
|
|
@@ -764,6 +855,7 @@ var OPTIONS = {
|
|
|
764
855
|
file: { type: "string" },
|
|
765
856
|
submodule: { type: "boolean" },
|
|
766
857
|
save: { type: "boolean" },
|
|
858
|
+
read: { type: "boolean" },
|
|
767
859
|
only: { type: "string" },
|
|
768
860
|
"verified-only": { type: "boolean" },
|
|
769
861
|
unverified: { type: "boolean" },
|
|
@@ -812,7 +904,19 @@ var OPTIONS = {
|
|
|
812
904
|
estimate: { type: "boolean" },
|
|
813
905
|
next: { type: "boolean" },
|
|
814
906
|
copy: { type: "boolean" },
|
|
815
|
-
facts: { type: "string" }
|
|
907
|
+
facts: { type: "string" },
|
|
908
|
+
// ADR 0163: atticus repo-type note.
|
|
909
|
+
add: { type: "string" },
|
|
910
|
+
"org-wide": { type: "boolean" },
|
|
911
|
+
// G4 (ADR 0176): atticus rules.
|
|
912
|
+
key: { type: "string" },
|
|
913
|
+
rule: { type: "string" },
|
|
914
|
+
files: { type: "string" },
|
|
915
|
+
example: { type: "string" },
|
|
916
|
+
about: { type: "string" },
|
|
917
|
+
at: { type: "string" },
|
|
918
|
+
team: { type: "string" },
|
|
919
|
+
compare: { type: "boolean" }
|
|
816
920
|
};
|
|
817
921
|
async function dispatchCommand(argv, io) {
|
|
818
922
|
const { values, positionals } = parseArgs({
|
|
@@ -829,19 +933,27 @@ async function dispatchCommand(argv, io) {
|
|
|
829
933
|
const refused = await checkFlags(argv, positionals, io);
|
|
830
934
|
if (refused !== void 0)
|
|
831
935
|
return refused;
|
|
936
|
+
if (process.env.ATTICUS_ACP_SESSION) {
|
|
937
|
+
const { personOnlyWhy } = await import("./chunk-GCS3FZOB.js");
|
|
938
|
+
const why = personOnlyWhy([...positionals, ...argv.filter((x) => x.startsWith("-"))]);
|
|
939
|
+
if (why) {
|
|
940
|
+
io.err(`This runs inside a Copilot session that Atticus started, so it is refused: ${why}. The person runs it, in the app or their own terminal.`);
|
|
941
|
+
return 2;
|
|
942
|
+
}
|
|
943
|
+
}
|
|
832
944
|
if (group === "help" || values.help || !group) {
|
|
833
|
-
const { helpCommand } = await import("./chunk-
|
|
945
|
+
const { helpCommand } = await import("./chunk-DCWN3HFV.js");
|
|
834
946
|
return helpCommand(group === "help" ? positionals.slice(1) : positionals, HELP, io, {
|
|
835
947
|
all: values.all === true
|
|
836
948
|
});
|
|
837
949
|
}
|
|
838
950
|
if (group === "legacy") {
|
|
839
|
-
const { legacyHelp } = await import("./chunk-
|
|
951
|
+
const { legacyHelp } = await import("./chunk-DCWN3HFV.js");
|
|
840
952
|
io.out(legacyHelp(HELP, { all: values.all === true }));
|
|
841
953
|
return 0;
|
|
842
954
|
}
|
|
843
955
|
if (group === "commands") {
|
|
844
|
-
const { AREAS, commandCatalog: commandCatalog2 } = await import("./chunk-
|
|
956
|
+
const { AREAS, commandCatalog: commandCatalog2 } = await import("./chunk-4PYC2UGC.js");
|
|
845
957
|
const commands = commandCatalog2(HELP);
|
|
846
958
|
if (values.json === true)
|
|
847
959
|
io.out(JSON.stringify({ areas: AREAS, commands }, null, 2));
|
|
@@ -873,13 +985,13 @@ async function dispatchCommand(argv, io) {
|
|
|
873
985
|
}
|
|
874
986
|
return catalogDiff(resolve(arg), resolve(b), values.json === true, io);
|
|
875
987
|
}
|
|
876
|
-
const root = resolve(typeof values.root === "string" ? values.root : process.cwd());
|
|
988
|
+
const root = resolve(typeof values.root === "string" ? values.root : process.env.ATTICUS_ACP_SESSION && process.env.ATTICUS_ROOT ? process.env.ATTICUS_ROOT : process.cwd());
|
|
877
989
|
if (!runsNoAi(group, command))
|
|
878
990
|
await setUpAi();
|
|
879
991
|
if (group === "next")
|
|
880
|
-
return (await import("./chunk-
|
|
992
|
+
return (await import("./chunk-DN4A2Q2O.js")).nextCommand(root, { json: values.json === true, all: values.all === true, queue: values.queue === true }, io);
|
|
881
993
|
if (values.handoff === true && (await import("./chunk-KQDZXGNR.js")).isHandoffStep(group, command))
|
|
882
|
-
return (await import("./chunk-
|
|
994
|
+
return (await import("./chunk-Z6VLC5X4.js")).handoffStep(root, argv, io, dispatch);
|
|
883
995
|
const given = typeof values.by === "string" && values.by.trim() ? values.by : void 0;
|
|
884
996
|
const person = !given && RECORDS_A_PERSON.has(group) ? await gitUser(root) : void 0;
|
|
885
997
|
let warned = false;
|
|
@@ -894,7 +1006,7 @@ async function dispatchCommand(argv, io) {
|
|
|
894
1006
|
};
|
|
895
1007
|
const repoIds = typeof values.repos === "string" ? values.repos.split(",").map((s) => s.trim()).filter(Boolean) : void 0;
|
|
896
1008
|
if (group === "change" && command === "needs" || group === "needs") {
|
|
897
|
-
const handled = await (await import("./chunk-
|
|
1009
|
+
const handled = await (await import("./chunk-BVWWPBKD.js")).needsCli(root, positionals, values, io, who);
|
|
898
1010
|
if (handled !== void 0)
|
|
899
1011
|
return handled;
|
|
900
1012
|
}
|
|
@@ -918,7 +1030,7 @@ async function dispatchCommand(argv, io) {
|
|
|
918
1030
|
}, io, run);
|
|
919
1031
|
}
|
|
920
1032
|
if (group === "runs") {
|
|
921
|
-
const m = await import("./chunk-
|
|
1033
|
+
const m = await import("./chunk-E2VXBSIR.js");
|
|
922
1034
|
if (command === "show") {
|
|
923
1035
|
const id = positionals[2];
|
|
924
1036
|
if (!id) {
|
|
@@ -939,7 +1051,7 @@ async function dispatchCommand(argv, io) {
|
|
|
939
1051
|
}, io);
|
|
940
1052
|
}
|
|
941
1053
|
if (group === "history") {
|
|
942
|
-
const m = await import("./chunk-
|
|
1054
|
+
const m = await import("./chunk-37WE3LS2.js");
|
|
943
1055
|
const text = (v) => typeof v === "string" && v.trim() ? v : void 0;
|
|
944
1056
|
if (command === "add") {
|
|
945
1057
|
if (process.stdin.isTTY) {
|
|
@@ -982,6 +1094,10 @@ async function dispatchCommand(argv, io) {
|
|
|
982
1094
|
if (handled !== void 0)
|
|
983
1095
|
return handled;
|
|
984
1096
|
}
|
|
1097
|
+
if (group === "repo" && command === "rename") {
|
|
1098
|
+
const { repoRename } = await import("./chunk-GS76RXQE.js");
|
|
1099
|
+
return repoRename(root, positionals[2], positionals[3], io);
|
|
1100
|
+
}
|
|
985
1101
|
if (group === "repo" && (command === "add" || command === "describe")) {
|
|
986
1102
|
const m = await loadRepoCommands();
|
|
987
1103
|
const str2 = (v) => typeof v === "string" ? v : void 0;
|
|
@@ -1005,6 +1121,123 @@ async function dispatchCommand(argv, io) {
|
|
|
1005
1121
|
json: values.json === true
|
|
1006
1122
|
}, io);
|
|
1007
1123
|
}
|
|
1124
|
+
if (group === "repo-type" && command === "note") {
|
|
1125
|
+
const m = await loadRepoTypeCommands();
|
|
1126
|
+
return m.repoTypeNote(root, arg, {
|
|
1127
|
+
...typeof values.add === "string" ? { add: values.add } : {},
|
|
1128
|
+
org: values["org-wide"] === true
|
|
1129
|
+
}, io);
|
|
1130
|
+
}
|
|
1131
|
+
if (group === "types") {
|
|
1132
|
+
const t = await import("./chunk-OPQZISG3.js");
|
|
1133
|
+
const text = (v) => typeof v === "string" ? v : void 0;
|
|
1134
|
+
if (!command || command === "list")
|
|
1135
|
+
return t.typesListCommand(root, { json: values.json === true }, io);
|
|
1136
|
+
if (command === "add")
|
|
1137
|
+
return t.typesAddCommand(root, positionals[2], {
|
|
1138
|
+
...text(values.name) ? { name: text(values.name) } : {},
|
|
1139
|
+
...text(values.description) ? { description: text(values.description) } : {},
|
|
1140
|
+
...text(values.badge) ? { badge: text(values.badge) } : {},
|
|
1141
|
+
...text(values.shape) ? { shape: text(values.shape) } : {},
|
|
1142
|
+
...text(values.colour) ? { colour: text(values.colour) } : {},
|
|
1143
|
+
...Array.isArray(values.owner) && text(values.owner[0]) ? { owner: text(values.owner[0]) } : {}
|
|
1144
|
+
}, io);
|
|
1145
|
+
if (command === "notes")
|
|
1146
|
+
return t.typesNotesCommand(root, positionals[2], io);
|
|
1147
|
+
io.err("atticus types list | add <id> --name --description | notes <id>");
|
|
1148
|
+
return 2;
|
|
1149
|
+
}
|
|
1150
|
+
if (group === "connect") {
|
|
1151
|
+
const text = (v) => typeof v === "string" ? v : void 0;
|
|
1152
|
+
const sys = Array.isArray(values.system) ? text(values.system[0]) : text(values.system);
|
|
1153
|
+
if (command === "match") {
|
|
1154
|
+
const m = await import("./chunk-JU4QNJSR.js");
|
|
1155
|
+
const l = await import("./chunk-PRZ7KMWL.js");
|
|
1156
|
+
return m.connectMatchCommand(root, positionals[2], {
|
|
1157
|
+
...text(values.to) ? { to: text(values.to) } : {},
|
|
1158
|
+
...sys ? { system: sys } : {},
|
|
1159
|
+
...text(values.mode) ? { mode: text(values.mode) } : {},
|
|
1160
|
+
...values.read === true ? { read: true } : {},
|
|
1161
|
+
...values.json === true ? { json: true } : {},
|
|
1162
|
+
candidates: (from, to) => l.candidatesOf(root, from, to)
|
|
1163
|
+
}, io);
|
|
1164
|
+
}
|
|
1165
|
+
io.err("atticus connect match <repo> --to <repo> | --system <id> [--mode copilot-acp|hand-off]");
|
|
1166
|
+
return 2;
|
|
1167
|
+
}
|
|
1168
|
+
if (group === "skills") {
|
|
1169
|
+
const k = await import("./chunk-YIGBJNH4.js");
|
|
1170
|
+
const text = (v) => typeof v === "string" ? v : void 0;
|
|
1171
|
+
if (!command || command === "list")
|
|
1172
|
+
return k.skillsListCommand(root, { json: values.json === true }, io);
|
|
1173
|
+
if (command === "write")
|
|
1174
|
+
return k.skillsWriteCommand(root, { check: values.check === true }, io);
|
|
1175
|
+
if (command === "import")
|
|
1176
|
+
return k.skillsImportCommand(root, positionals[2], {
|
|
1177
|
+
...text(values.team) ? { team: text(values.team) } : {},
|
|
1178
|
+
...text(values.at) ? { at: text(values.at) } : {},
|
|
1179
|
+
...text(values.only) ? { only: text(values.only) } : {},
|
|
1180
|
+
...values.replace === true ? { replace: true } : {}
|
|
1181
|
+
}, io);
|
|
1182
|
+
io.err("atticus skills list | import | write [--check]");
|
|
1183
|
+
return 2;
|
|
1184
|
+
}
|
|
1185
|
+
if (group === "rules") {
|
|
1186
|
+
const r = await import("./chunk-GUYL7RMK.js");
|
|
1187
|
+
const text = (v) => typeof v === "string" ? v : void 0;
|
|
1188
|
+
const scope = {
|
|
1189
|
+
...values["org-wide"] === true ? { org: true } : {},
|
|
1190
|
+
...text(values.type) ? { type: text(values.type) } : {},
|
|
1191
|
+
...text(values.repo) ? { repo: text(values.repo) } : {},
|
|
1192
|
+
// An imported copy for activate: --team <team> --type <type> (import names its own).
|
|
1193
|
+
...text(values.team) && command !== "import" ? { imported: text(values.team) } : {}
|
|
1194
|
+
};
|
|
1195
|
+
if (!command || command === "list")
|
|
1196
|
+
return r.rulesListCommand(root, positionals[2], { json: values.json === true }, io);
|
|
1197
|
+
if (command === "add")
|
|
1198
|
+
return r.rulesAddCommand(root, scope, {
|
|
1199
|
+
...text(values.key) ? { key: text(values.key) } : {},
|
|
1200
|
+
...text(values.rule) ? { rule: text(values.rule) } : {},
|
|
1201
|
+
...text(values.files) ? { files: text(values.files) } : {},
|
|
1202
|
+
...text(values.example) ? { example: text(values.example) } : {},
|
|
1203
|
+
...values.draft === true ? { draft: true } : {},
|
|
1204
|
+
...text(values.by) ? { by: text(values.by) } : {}
|
|
1205
|
+
}, io);
|
|
1206
|
+
if (command === "activate" || command === "off")
|
|
1207
|
+
return r.rulesSetCommand(root, command, positionals[2], scope, { ...text(values.reason) ? { reason: text(values.reason) } : {} }, io);
|
|
1208
|
+
if (command === "draft")
|
|
1209
|
+
return r.rulesDraftCommand(root, {
|
|
1210
|
+
...text(values.type) ? { type: text(values.type) } : {},
|
|
1211
|
+
...text(values.repos) ? { repos: text(values.repos) } : {},
|
|
1212
|
+
...text(values.repo) ? { repo: text(values.repo) } : {},
|
|
1213
|
+
...text(values.about) ? { about: text(values.about) } : {},
|
|
1214
|
+
...text(values.mode) ? { mode: text(values.mode) } : {}
|
|
1215
|
+
}, io);
|
|
1216
|
+
if (command === "try")
|
|
1217
|
+
return r.rulesTryCommand(root, positionals[2], {
|
|
1218
|
+
...text(values.rule) ? { rule: text(values.rule) } : {},
|
|
1219
|
+
...text(values.files) && /^\d+$/.test(text(values.files)) ? { files: Number(text(values.files)) } : {},
|
|
1220
|
+
...values.compare === true ? { compare: true } : {},
|
|
1221
|
+
...text(values.mode) ? { mode: text(values.mode) } : {}
|
|
1222
|
+
}, io);
|
|
1223
|
+
if (command === "import")
|
|
1224
|
+
return r.rulesImportCommand(root, positionals[2], {
|
|
1225
|
+
...text(values.type) ? { type: text(values.type) } : {},
|
|
1226
|
+
...text(values.team) ? { team: text(values.team) } : {},
|
|
1227
|
+
...text(values.at) ? { at: text(values.at) } : {}
|
|
1228
|
+
}, io);
|
|
1229
|
+
if (command === "notes")
|
|
1230
|
+
return r.rulesNotesCommand(root, {
|
|
1231
|
+
...text(values.type) ? { type: text(values.type) } : {},
|
|
1232
|
+
...values.save === true ? { save: true } : {}
|
|
1233
|
+
}, io);
|
|
1234
|
+
io.err("atticus rules list | add | activate | off | draft | try | import | notes (atticus help rules)");
|
|
1235
|
+
return 2;
|
|
1236
|
+
}
|
|
1237
|
+
if (group === "repo-type" && command === "rules") {
|
|
1238
|
+
const m = await loadRepoTypeCommands();
|
|
1239
|
+
return m.repoTypeRules(root, { write: values.save === true, json: values.json === true }, io);
|
|
1240
|
+
}
|
|
1008
1241
|
if (group === "repo-type" && (command === "detect" || command === "new")) {
|
|
1009
1242
|
const m = await loadRepoTypeCommands();
|
|
1010
1243
|
const from = typeof values.from === "string" ? values.from : void 0;
|
|
@@ -1044,6 +1277,41 @@ async function dispatchCommand(argv, io) {
|
|
|
1044
1277
|
throw e;
|
|
1045
1278
|
}
|
|
1046
1279
|
}
|
|
1280
|
+
if (group === "estate" && command === "fresh") {
|
|
1281
|
+
const m = await import("./chunk-D5KV5PSK.js");
|
|
1282
|
+
return m.estateFresh(root, { json: values.json === true, all: values.all === true }, io);
|
|
1283
|
+
}
|
|
1284
|
+
if (group === "estate" && command === "shared") {
|
|
1285
|
+
const m = await import("./chunk-E57AOFYN.js");
|
|
1286
|
+
const json2 = values.json === true;
|
|
1287
|
+
const text = (v) => typeof v === "string" && v.trim() ? v : void 0;
|
|
1288
|
+
if (arg === "import")
|
|
1289
|
+
return m.sharedImport(root, positionals[3], {
|
|
1290
|
+
...text(values.team) ? { team: text(values.team) } : {},
|
|
1291
|
+
...text(values.system) ? { system: text(values.system) } : {},
|
|
1292
|
+
...text(values.name) ? { name: text(values.name) } : {},
|
|
1293
|
+
...text(values.commit) ? { commit: text(values.commit) } : {},
|
|
1294
|
+
json: json2
|
|
1295
|
+
}, io);
|
|
1296
|
+
if (arg === "refresh")
|
|
1297
|
+
return m.sharedRefresh(root, positionals[3], {
|
|
1298
|
+
...positionals[4] ? { dir: positionals[4] } : {},
|
|
1299
|
+
...text(values.commit) ? { commit: text(values.commit) } : {},
|
|
1300
|
+
json: json2
|
|
1301
|
+
}, io);
|
|
1302
|
+
if (arg === "list" || arg === void 0)
|
|
1303
|
+
return m.sharedList(root, { json: json2 }, io);
|
|
1304
|
+
io.err("Usage: atticus join shared import|refresh|list (atticus help join)");
|
|
1305
|
+
return 2;
|
|
1306
|
+
}
|
|
1307
|
+
if (group === "estate" && command === "contracts") {
|
|
1308
|
+
const m = await import("./chunk-265LWMOA.js");
|
|
1309
|
+
return m.joinContracts(root, { json: values.json === true }, io);
|
|
1310
|
+
}
|
|
1311
|
+
if (group === "estate" && command === "measure") {
|
|
1312
|
+
const m = await import("./chunk-2UCRFXFZ.js");
|
|
1313
|
+
return m.joinMeasure(root, arg, { json: values.json === true }, io);
|
|
1314
|
+
}
|
|
1047
1315
|
if (group === "estate" && (command === "join" || command === "flow" || command === "lineage")) {
|
|
1048
1316
|
const m = await loadEstateCommands();
|
|
1049
1317
|
const field = positionals[3];
|
|
@@ -1057,6 +1325,14 @@ async function dispatchCommand(argv, io) {
|
|
|
1057
1325
|
}
|
|
1058
1326
|
return command === "flow" ? m.estateFlowCommand(root, arg, o, io) : m.estateLineage(root, arg, field, o, io);
|
|
1059
1327
|
}
|
|
1328
|
+
if (group === "spec" && (command === "seed" || command === "accept")) {
|
|
1329
|
+
const m = await import("./chunk-SH27FYPF.js");
|
|
1330
|
+
if (!arg) {
|
|
1331
|
+
io.err(command === "seed" ? "Usage: atticus spec seed <repo> [--json]" : "Usage: atticus spec accept <repo> [--by you]");
|
|
1332
|
+
return 2;
|
|
1333
|
+
}
|
|
1334
|
+
return command === "seed" ? m.specSeed(root, arg, { json: values.json === true }, io) : m.specAccept(root, arg, { by: who() }, io);
|
|
1335
|
+
}
|
|
1060
1336
|
if (group === "spec" && (command === "draft" || command === "check")) {
|
|
1061
1337
|
const text = (v) => typeof v === "string" ? v : void 0;
|
|
1062
1338
|
const m = await loadSpecCommands();
|
|
@@ -1094,35 +1370,171 @@ async function dispatchCommand(argv, io) {
|
|
|
1094
1370
|
io.err("Usage: atticus map render <repo> [--json]");
|
|
1095
1371
|
return 2;
|
|
1096
1372
|
}
|
|
1097
|
-
const { mapRenderCommand } = await import("./chunk-
|
|
1373
|
+
const { mapRenderCommand } = await import("./chunk-MZGRDONP.js");
|
|
1098
1374
|
return mapRenderCommand(root, repo, { json: values.json === true }, io);
|
|
1099
1375
|
}
|
|
1376
|
+
const models = values.models === "entries" || values.models === "reachable" || values.models === "all" ? values.models : void 0;
|
|
1377
|
+
if (group === "map" && values.models !== void 0 && !models) {
|
|
1378
|
+
io.err(`--models is entries, reachable or all (got ${String(values.models)}).`);
|
|
1379
|
+
return 2;
|
|
1380
|
+
}
|
|
1381
|
+
const runMapAll = async (o) => {
|
|
1382
|
+
if (process.env.ATTICUS_ACP_SESSION && !o.dryRun) {
|
|
1383
|
+
io.err("This runs inside a Copilot session that Atticus started, so atticus map starts no read of its own: Atticus outside this session gives each part and verifies it. Do the step you were given: read the files it names, write the facts, then run atticus verify <repo> on its own.");
|
|
1384
|
+
return 2;
|
|
1385
|
+
}
|
|
1386
|
+
const { mapAllCommand } = await import("./chunk-YF5DZCPN.js");
|
|
1387
|
+
const { copyToClipboard } = await import("./chunk-S5LSDXV4.js");
|
|
1388
|
+
const typed = [];
|
|
1389
|
+
const { createInterface } = await import("node:readline");
|
|
1390
|
+
const rl = process.stdin.readable && !o.dryRun ? createInterface({ input: process.stdin, terminal: false }) : void 0;
|
|
1391
|
+
rl?.on("line", (l) => typed.push(l));
|
|
1392
|
+
const ac = new AbortController();
|
|
1393
|
+
const onInt = () => {
|
|
1394
|
+
if (ac.signal.aborted)
|
|
1395
|
+
process.exit(130);
|
|
1396
|
+
ac.abort();
|
|
1397
|
+
io.err("Stopping after this step (Ctrl+C again stops at once)...");
|
|
1398
|
+
};
|
|
1399
|
+
process.on("SIGINT", onInt);
|
|
1400
|
+
try {
|
|
1401
|
+
return await mapAllCommand(root, o, io, {
|
|
1402
|
+
clipboard: copyToClipboard,
|
|
1403
|
+
input: { take: () => typed.shift() },
|
|
1404
|
+
signal: ac.signal,
|
|
1405
|
+
makeRuntime: async () => (await runtimeForCli(root, { mode: "model", handoffValidate: async () => [] })).runtime,
|
|
1406
|
+
// ADR 0171: Copilot driven through its Agent Client Protocol, one new session a part.
|
|
1407
|
+
makeAcp: async () => (await import("./chunk-ZPDDEVQX.js")).acpStepRunner(root)
|
|
1408
|
+
});
|
|
1409
|
+
} catch (e) {
|
|
1410
|
+
if (e instanceof (await loadAi()).RuntimeConfigError) {
|
|
1411
|
+
io.err(e.message);
|
|
1412
|
+
return 2;
|
|
1413
|
+
}
|
|
1414
|
+
throw e;
|
|
1415
|
+
} finally {
|
|
1416
|
+
process.off("SIGINT", onInt);
|
|
1417
|
+
rl?.close();
|
|
1418
|
+
}
|
|
1419
|
+
};
|
|
1420
|
+
if (group === "map" && !command && values.all === true) {
|
|
1421
|
+
const text = (v) => typeof v === "string" ? v : void 0;
|
|
1422
|
+
const count = (flag) => {
|
|
1423
|
+
const raw = text(values[flag]);
|
|
1424
|
+
if (raw === void 0)
|
|
1425
|
+
return void 0;
|
|
1426
|
+
const n = Number(raw);
|
|
1427
|
+
return Number.isInteger(n) && n > 0 ? n : NaN;
|
|
1428
|
+
};
|
|
1429
|
+
const numbers = {
|
|
1430
|
+
maxParts: count("max-parts"),
|
|
1431
|
+
budgetTokens: count("budget-tokens"),
|
|
1432
|
+
idle: count("idle")
|
|
1433
|
+
};
|
|
1434
|
+
for (const [k, v] of Object.entries(numbers))
|
|
1435
|
+
if (Number.isNaN(v)) {
|
|
1436
|
+
io.err(`--${k === "maxParts" ? "max-parts" : k === "budgetTokens" ? "budget-tokens" : "idle"} is a whole number above 0.`);
|
|
1437
|
+
return 2;
|
|
1438
|
+
}
|
|
1439
|
+
const asked = text(values.mode);
|
|
1440
|
+
if (asked && !["model", "hand-off", "copilot", "copilot-acp"].includes(asked)) {
|
|
1441
|
+
io.err("atticus map --all takes --mode model, --mode hand-off (Copilot Chat, a line pasted per part) or --mode copilot-acp (Copilot driven unattended, ADR 0171).");
|
|
1442
|
+
return 2;
|
|
1443
|
+
}
|
|
1444
|
+
return runMapAll({
|
|
1445
|
+
...text(values.repos) ? {
|
|
1446
|
+
repos: text(values.repos).split(",").map((x) => x.trim()).filter(Boolean)
|
|
1447
|
+
} : {},
|
|
1448
|
+
stale: values.stale === true,
|
|
1449
|
+
gaps: values.gaps === true,
|
|
1450
|
+
force: values.force === true,
|
|
1451
|
+
dryRun: values["dry-run"] === true,
|
|
1452
|
+
json: values.json === true,
|
|
1453
|
+
...asked ? {
|
|
1454
|
+
mode: asked === "model" ? "model" : asked === "copilot-acp" ? "copilot-acp" : "copilot"
|
|
1455
|
+
} : {},
|
|
1456
|
+
...numbers.maxParts ? { maxParts: numbers.maxParts } : {},
|
|
1457
|
+
...numbers.budgetTokens ? { budgetTokens: numbers.budgetTokens } : {},
|
|
1458
|
+
...numbers.idle ? { idleMinutes: numbers.idle } : {},
|
|
1459
|
+
...models ? { models } : {}
|
|
1460
|
+
});
|
|
1461
|
+
}
|
|
1100
1462
|
if (group === "map") {
|
|
1101
1463
|
const repo = command;
|
|
1102
1464
|
if (!repo) {
|
|
1103
|
-
io.err("Usage: atticus map <repo> [--estimate] [--handoff | --copy [--answer <file>] | --mode m] [--next] [--max-tokens n] [--force]");
|
|
1465
|
+
io.err("Usage: atticus map <repo> [--estimate [--part n] | --gaps [--part n] | --rules] [--models entries|reachable|all] [--handoff | --copy [--answer <file>] | --mode m] [--next] [--max-tokens n] [--force], or atticus map --all [--stale | --gaps | --force] [--models entries|reachable|all] [--repos a,b] [--dry-run] [--max-tokens n] [--idle minutes]");
|
|
1104
1466
|
return 2;
|
|
1105
1467
|
}
|
|
1106
1468
|
const text = (v) => typeof v === "string" ? v : void 0;
|
|
1107
|
-
|
|
1469
|
+
if (values.spent !== void 0 || values.sessions !== void 0) {
|
|
1470
|
+
const { mapSpent } = await import("./chunk-OZJ3JLYI.js");
|
|
1471
|
+
return mapSpent(root, repo, {
|
|
1472
|
+
...text(values.spent) !== void 0 ? { spent: text(values.spent) } : {},
|
|
1473
|
+
...text(values.sessions) !== void 0 ? { sessions: text(values.sessions) } : {},
|
|
1474
|
+
...text(values.part) !== void 0 ? { part: text(values.part) } : {},
|
|
1475
|
+
...text(values.by) ? { by: text(values.by) } : {}
|
|
1476
|
+
}, io);
|
|
1477
|
+
}
|
|
1478
|
+
const { mapCommand } = await import("./chunk-QSIDVFB7.js");
|
|
1108
1479
|
const o = {
|
|
1109
1480
|
...text(values.dir) ? { dir: resolve(text(values.dir)) } : {},
|
|
1110
1481
|
...text(values.commit) ? { commit: text(values.commit) } : {},
|
|
1111
1482
|
...text(values.resume) ? { resume: text(values.resume) } : {},
|
|
1112
1483
|
...text(values.answer) !== void 0 ? { answer: text(values.answer) } : {},
|
|
1113
1484
|
estimate: values.estimate === true,
|
|
1485
|
+
gaps: values.gaps === true,
|
|
1486
|
+
rules: values.rules === true,
|
|
1487
|
+
// ADR 0161: with --gaps, the rest of one part of the read plan; ADR 0170: with --estimate
|
|
1488
|
+
// (as /atticus-map <repo> --part n runs it), that part whole.
|
|
1489
|
+
...(values.gaps === true || values.estimate === true) && Number.isInteger(Number(text(values.part))) && Number(text(values.part)) > 0 ? { part: Number(text(values.part)) } : {},
|
|
1114
1490
|
next: values.next === true,
|
|
1115
1491
|
force: values.force === true,
|
|
1116
1492
|
copy: values.copy === true,
|
|
1117
|
-
json: values.json === true
|
|
1493
|
+
json: values.json === true,
|
|
1494
|
+
...models ? { models } : {}
|
|
1118
1495
|
};
|
|
1119
|
-
|
|
1496
|
+
const acpAsked = text(values.mode) === "copilot-acp";
|
|
1497
|
+
if (!o.estimate && !o.copy && o.answer === void 0 && !o.next && o.resume === void 0) {
|
|
1498
|
+
const { copilotAcpByDefault } = await import("./chunk-ZPDDEVQX.js");
|
|
1499
|
+
const core = await import("./chunk-WAZEXEJH.js");
|
|
1500
|
+
const op = await core.loadOrgPack(core.orgPackDirOf(root)).catch(() => void 0);
|
|
1501
|
+
if (acpAsked || !text(values.mode) && op && copilotAcpByDefault(op) && !o.json) {
|
|
1502
|
+
const idle = Number(text(values.idle));
|
|
1503
|
+
return runMapAll({
|
|
1504
|
+
repos: [repo],
|
|
1505
|
+
mode: "copilot-acp",
|
|
1506
|
+
force: o.force,
|
|
1507
|
+
gaps: o.gaps,
|
|
1508
|
+
dryRun: values["dry-run"] === true,
|
|
1509
|
+
...Number.isInteger(idle) && idle > 0 ? { idleMinutes: idle } : {},
|
|
1510
|
+
...models ? { models } : {},
|
|
1511
|
+
resumeAs: `atticus map ${repo}${o.gaps ? " --gaps" : ""}${o.force ? " --force" : ""} --mode copilot-acp`
|
|
1512
|
+
});
|
|
1513
|
+
}
|
|
1514
|
+
}
|
|
1515
|
+
if (o.estimate || o.gaps || o.rules && !o.copy && !text(values.mode))
|
|
1120
1516
|
return mapCommand(root, repo, o, io);
|
|
1517
|
+
const starting = !o.next && o.resume === void 0 && !o.copy && o.answer === void 0 && !text(values.mode);
|
|
1518
|
+
const { mapReader } = await import("./chunk-YF5DZCPN.js");
|
|
1519
|
+
const reader = await mapReader(root);
|
|
1520
|
+
if (starting && !o.json && !o.dir && !o.commit && reader.loop) {
|
|
1521
|
+
const idle = Number(text(values.idle));
|
|
1522
|
+
return runMapAll({
|
|
1523
|
+
repos: [repo],
|
|
1524
|
+
force: o.force,
|
|
1525
|
+
dryRun: values["dry-run"] === true,
|
|
1526
|
+
...Number.isInteger(idle) && idle > 0 ? { idleMinutes: idle } : {},
|
|
1527
|
+
...models ? { models } : {},
|
|
1528
|
+
resumeAs: `atticus map ${repo}${o.force ? " --force" : ""}`
|
|
1529
|
+
});
|
|
1530
|
+
}
|
|
1121
1531
|
try {
|
|
1122
1532
|
const { runtime } = await runtimeForCli(root, {
|
|
1123
1533
|
...o.copy ? { mode: "hand-off" } : text(values.mode) ? { mode: text(values.mode) } : {},
|
|
1124
1534
|
handoffValidate: async () => []
|
|
1125
1535
|
});
|
|
1536
|
+
if ((starting || o.copy && o.answer === void 0 && !o.next) && runtime.kind === "hand-off")
|
|
1537
|
+
io.out(`runtime.yaml says ${reader.name}; if you use Copilot, run atticus map --all --repos ${repo} (it waits and copies each line).`);
|
|
1126
1538
|
return await mapCommand(root, repo, o, io, { runtime });
|
|
1127
1539
|
} catch (e) {
|
|
1128
1540
|
if (e instanceof (await loadAi()).RuntimeConfigError) {
|
|
@@ -1136,16 +1548,64 @@ async function dispatchCommand(argv, io) {
|
|
|
1136
1548
|
const v = parseArgs({
|
|
1137
1549
|
args: argv,
|
|
1138
1550
|
allowPositionals: true,
|
|
1139
|
-
options: {
|
|
1551
|
+
options: {
|
|
1552
|
+
...OPTIONS,
|
|
1553
|
+
write: { type: "boolean" },
|
|
1554
|
+
verbose: { type: "boolean" },
|
|
1555
|
+
skipped: { type: "boolean" },
|
|
1556
|
+
size: { type: "string" },
|
|
1557
|
+
seed: { type: "string" },
|
|
1558
|
+
answers: { type: "string" },
|
|
1559
|
+
right: { type: "string" },
|
|
1560
|
+
wrong: { type: "string" },
|
|
1561
|
+
unsure: { type: "string" },
|
|
1562
|
+
report: { type: "boolean" }
|
|
1563
|
+
},
|
|
1140
1564
|
strict: false
|
|
1141
1565
|
});
|
|
1142
1566
|
const repo = v.positionals[1];
|
|
1567
|
+
const text = (x) => typeof x === "string" ? x : void 0;
|
|
1568
|
+
if (repo === "audit" && (v.positionals[2] || v.values.report === true)) {
|
|
1569
|
+
const { auditCommand } = await import("./chunk-3TD6S4TC.js");
|
|
1570
|
+
const ids = (x) => text(x)?.split(",").map((y) => y.trim()).filter(Boolean);
|
|
1571
|
+
const size = Number(text(v.values.size));
|
|
1572
|
+
const interactive = process.stdin.isTTY && v.values.json !== true;
|
|
1573
|
+
let rl;
|
|
1574
|
+
const ask = interactive ? async (q) => {
|
|
1575
|
+
const { createInterface } = await import("node:readline/promises");
|
|
1576
|
+
rl ??= createInterface({ input: process.stdin, output: process.stdout });
|
|
1577
|
+
return rl.question(`${q} `);
|
|
1578
|
+
} : void 0;
|
|
1579
|
+
try {
|
|
1580
|
+
return await auditCommand(text(v.values.root) ? resolve(text(v.values.root)) : root, v.positionals[2], {
|
|
1581
|
+
by: who(),
|
|
1582
|
+
...Number.isFinite(size) && size > 0 ? { size } : {},
|
|
1583
|
+
...text(v.values.seed) ? { seed: text(v.values.seed) } : {},
|
|
1584
|
+
...text(v.values.dir) ? { dir: resolve(text(v.values.dir)) } : {},
|
|
1585
|
+
...text(v.values.answers) ? { answers: text(v.values.answers) } : {},
|
|
1586
|
+
...ids(v.values.right) ? { right: ids(v.values.right) } : {},
|
|
1587
|
+
...ids(v.values.wrong) ? { wrong: ids(v.values.wrong) } : {},
|
|
1588
|
+
...ids(v.values.unsure) ? { unsure: ids(v.values.unsure) } : {},
|
|
1589
|
+
report: v.values.report === true,
|
|
1590
|
+
json: v.values.json === true,
|
|
1591
|
+
...ask ? { ask } : {}
|
|
1592
|
+
}, io);
|
|
1593
|
+
} finally {
|
|
1594
|
+
rl?.close();
|
|
1595
|
+
}
|
|
1596
|
+
}
|
|
1597
|
+
if (!repo && v.values.all === true) {
|
|
1598
|
+
const { verifyAllCommand } = await import("./chunk-T74WQQGS.js");
|
|
1599
|
+
return verifyAllCommand(text(v.values.root) ? resolve(text(v.values.root)) : root, {
|
|
1600
|
+
...v.values.write === true ? { write: true } : {},
|
|
1601
|
+
...v.values.verbose === true ? { verbose: true } : {}
|
|
1602
|
+
}, io);
|
|
1603
|
+
}
|
|
1143
1604
|
if (!repo) {
|
|
1144
|
-
io.err("Usage: atticus verify <repo> [--write [--verbose]] [--dir path] [--commit sha] [--routed a,b] [--json]");
|
|
1605
|
+
io.err("Usage: atticus verify <repo> [--write [--verbose]] [--dir path] [--commit sha] [--routed a,b] [--skipped] [--json], or atticus verify --all [--write]");
|
|
1145
1606
|
return 2;
|
|
1146
1607
|
}
|
|
1147
|
-
const
|
|
1148
|
-
const { verifyCommand } = await import("./chunk-JMSCMUCA.js");
|
|
1608
|
+
const { verifyCommand } = await import("./chunk-T74WQQGS.js");
|
|
1149
1609
|
return verifyCommand(
|
|
1150
1610
|
// The first reading took --write's next word as its value, so a --root right after it
|
|
1151
1611
|
// was lost; this reading has --write as a switch.
|
|
@@ -1159,7 +1619,8 @@ async function dispatchCommand(argv, io) {
|
|
|
1159
1619
|
} : {},
|
|
1160
1620
|
write: v.values.write === true,
|
|
1161
1621
|
verbose: v.values.verbose === true,
|
|
1162
|
-
json: v.values.json === true
|
|
1622
|
+
json: v.values.json === true,
|
|
1623
|
+
...v.values.skipped === true ? { skipped: true } : {}
|
|
1163
1624
|
},
|
|
1164
1625
|
io
|
|
1165
1626
|
);
|
|
@@ -1239,7 +1700,7 @@ async function dispatchCommand(argv, io) {
|
|
|
1239
1700
|
if (group === "cites") {
|
|
1240
1701
|
const given2 = (v) => typeof v === "string" && v.trim() ? v.trim() : void 0;
|
|
1241
1702
|
const [repo, path, file] = [given2(values.repo), given2(values.path), given2(values.file)];
|
|
1242
|
-
return (await import("./chunk-
|
|
1703
|
+
return (await import("./chunk-X7EMBM5X.js")).citesCli(root, {
|
|
1243
1704
|
...repo ? { repo } : {},
|
|
1244
1705
|
...path ? { path } : {},
|
|
1245
1706
|
...file ? { file: resolve(file) } : {},
|
|
@@ -1247,13 +1708,15 @@ async function dispatchCommand(argv, io) {
|
|
|
1247
1708
|
}, io);
|
|
1248
1709
|
}
|
|
1249
1710
|
if (group === "watch")
|
|
1250
|
-
return (await import("./chunk-
|
|
1711
|
+
return (await import("./chunk-LIRVU3HW.js")).watchCommand(root, command, { off: values.off === true, json: values.json === true }, io);
|
|
1251
1712
|
if (group === "setup" && !command)
|
|
1252
1713
|
return setupCommand(root, { json: values.json === true }, io);
|
|
1714
|
+
if (group === "doctor" && values.counts === true)
|
|
1715
|
+
return (await import("./chunk-QE527XRY.js")).doctorCountsCommand(root, { json: values.json === true }, io);
|
|
1253
1716
|
if (group === "doctor")
|
|
1254
1717
|
return doctorCommand(root, { json: values.json === true }, io);
|
|
1255
1718
|
if (group === "probe") {
|
|
1256
|
-
const { probeCommand, probeAnswerCommand } = await import("./chunk-
|
|
1719
|
+
const { probeCommand, probeAnswerCommand } = await import("./chunk-2HH3UCZM.js");
|
|
1257
1720
|
const max = typeof values["max-tokens"] === "string" ? Number(values["max-tokens"]) : void 0;
|
|
1258
1721
|
const json2 = values.json === true;
|
|
1259
1722
|
if (command === "answer")
|
|
@@ -1306,7 +1769,7 @@ async function dispatchCommand(argv, io) {
|
|
|
1306
1769
|
return askCommand(root, command, { json: values.json === true }, io);
|
|
1307
1770
|
}
|
|
1308
1771
|
if (group === "context") {
|
|
1309
|
-
const m = await import("./chunk-
|
|
1772
|
+
const m = await import("./chunk-4D62IZII.js");
|
|
1310
1773
|
const target = positionals[2];
|
|
1311
1774
|
const csv = (v) => typeof v === "string" ? v.split(",").map((k) => k.trim()).filter(Boolean) : void 0;
|
|
1312
1775
|
if (command === "tools")
|
|
@@ -1421,7 +1884,7 @@ async function dispatchCommand(argv, io) {
|
|
|
1421
1884
|
if (group === "index" && command === "rebuild")
|
|
1422
1885
|
return indexRebuild(root, io);
|
|
1423
1886
|
if (group === "index" && command === "embed")
|
|
1424
|
-
return (await import("./chunk-
|
|
1887
|
+
return (await import("./chunk-4CLK2RJO.js")).indexEmbed(root, io);
|
|
1425
1888
|
if (group === "alias") {
|
|
1426
1889
|
const target = positionals[2];
|
|
1427
1890
|
if (!command || !target) {
|
|
@@ -1462,7 +1925,7 @@ async function dispatchCommand(argv, io) {
|
|
|
1462
1925
|
if (command === "request")
|
|
1463
1926
|
return requestFromTeam(root, arg, positionals[3], { ...by ? { by } : {}, ...systems.length ? { systems } : {}, json }, io);
|
|
1464
1927
|
if (command === "commit")
|
|
1465
|
-
return initiativeCommitment(root, arg, positionals[3], { ...by ? { by } : {} }, io);
|
|
1928
|
+
return initiativeCommitment(root, arg, positionals[3], { ...by ? { by } : {}, ...str(values.note) ? { note: str(values.note) } : {} }, io);
|
|
1466
1929
|
}
|
|
1467
1930
|
if (group === "learn") {
|
|
1468
1931
|
if (!command || command === "list")
|
|
@@ -1491,7 +1954,7 @@ async function dispatchCommand(argv, io) {
|
|
|
1491
1954
|
if (group === "eval" && command === "report")
|
|
1492
1955
|
return evalReport(root, { json }, io);
|
|
1493
1956
|
if (group === "bench" && (command === "facts" || command === "stories")) {
|
|
1494
|
-
const m = await import("./chunk-
|
|
1957
|
+
const m = await import("./chunk-YJ3TBOTK.js");
|
|
1495
1958
|
return m.benchScoreCli(command, arg, values, io, root);
|
|
1496
1959
|
}
|
|
1497
1960
|
if (group === "bench" && (command === "fetch" || command === "run" || command === "survey" || command === "verify")) {
|
|
@@ -1543,7 +2006,7 @@ async function dispatchCommand(argv, io) {
|
|
|
1543
2006
|
}, io);
|
|
1544
2007
|
}
|
|
1545
2008
|
if (group === "secret") {
|
|
1546
|
-
const { secretCommand } = await import("./chunk-
|
|
2009
|
+
const { secretCommand } = await import("./chunk-RALY3E5U.js");
|
|
1547
2010
|
return secretCommand(positionals.slice(1), io);
|
|
1548
2011
|
}
|
|
1549
2012
|
if (group === "conformance") {
|
|
@@ -1738,9 +2201,9 @@ async function dispatchCommand(argv, io) {
|
|
|
1738
2201
|
}, io);
|
|
1739
2202
|
}
|
|
1740
2203
|
if (group === "task" && command === "context")
|
|
1741
|
-
return (await import("./chunk-
|
|
2204
|
+
return (await import("./chunk-XQ3YZ4QW.js")).taskContextCli(root, arg, positionals[3], { json, markdown: values.markdown === true }, io);
|
|
1742
2205
|
if (group === "change" && command === "attach")
|
|
1743
|
-
return (await import("./chunk-
|
|
2206
|
+
return (await import("./chunk-XQ3YZ4QW.js")).changeAttachCli(root, arg, positionals.slice(3), {
|
|
1744
2207
|
by: who(),
|
|
1745
2208
|
json,
|
|
1746
2209
|
...typeof values.replaces === "string" && values.replaces.trim() ? { replaces: values.replaces.trim() } : {},
|
|
@@ -1748,12 +2211,22 @@ async function dispatchCommand(argv, io) {
|
|
|
1748
2211
|
...typeof values.like === "string" && values.like.trim() ? { like: values.like.trim() } : {},
|
|
1749
2212
|
...typeof values.prototype === "string" && values.prototype.trim() ? { prototype: values.prototype.trim() } : {}
|
|
1750
2213
|
}, io);
|
|
2214
|
+
if (group === "task" && command === "run-ready")
|
|
2215
|
+
return taskRunReady(root, arg, {
|
|
2216
|
+
...str(values.level) ? { level: str(values.level) } : {},
|
|
2217
|
+
...str(values.mode) ? { mode: str(values.mode) } : {},
|
|
2218
|
+
by: who(),
|
|
2219
|
+
approve: values.approve === true,
|
|
2220
|
+
dryRun: values["dry-run"] === true,
|
|
2221
|
+
json
|
|
2222
|
+
}, io);
|
|
1751
2223
|
if (group === "task" && command === "run")
|
|
1752
2224
|
return taskRun(root, arg, positionals[3], {
|
|
1753
2225
|
...str(values.level) ? { level: str(values.level) } : {},
|
|
1754
2226
|
...str(values.mode) ? { mode: str(values.mode) } : {},
|
|
1755
2227
|
by: who(),
|
|
1756
2228
|
approve: values.approve === true,
|
|
2229
|
+
dryRun: values["dry-run"] === true,
|
|
1757
2230
|
json
|
|
1758
2231
|
}, io);
|
|
1759
2232
|
if (group === "spec" && command === "hand-down")
|
|
@@ -1867,7 +2340,7 @@ async function dispatchCommand(argv, io) {
|
|
|
1867
2340
|
io.err('finding needs a change, a finding id and an action, for example: atticus finding add-transfer-limit f-1 not-relevant --reason "..."');
|
|
1868
2341
|
return 2;
|
|
1869
2342
|
}
|
|
1870
|
-
const session = given ? void 0 : (await import("./chunk-
|
|
2343
|
+
const session = given ? void 0 : (await import("./chunk-PUEWDYGP.js")).assistantSession(process.env);
|
|
1871
2344
|
if (session)
|
|
1872
2345
|
io.err(`Recorded as ${session.by}: ${session.because}.`);
|
|
1873
2346
|
return findingAction(root, command, findingId, action, {
|
|
@@ -1893,8 +2366,21 @@ async function dispatchCommand(argv, io) {
|
|
|
1893
2366
|
...str(values.like) ? { like: str(values.like) } : {},
|
|
1894
2367
|
...str(values.impact) ? { impact: str(values.impact) } : {}
|
|
1895
2368
|
}, io);
|
|
2369
|
+
if (command === "sketch") {
|
|
2370
|
+
const { changeSketchCommand } = await import("./chunk-WIWTJMMR.js");
|
|
2371
|
+
return changeSketchCommand(root, arg, {
|
|
2372
|
+
...str(values.from) ? { from: str(values.from) } : {},
|
|
2373
|
+
...values.save === true ? { save: true } : {},
|
|
2374
|
+
json,
|
|
2375
|
+
by: who()
|
|
2376
|
+
}, io);
|
|
2377
|
+
}
|
|
2378
|
+
if (command === "impact") {
|
|
2379
|
+
const { changeImpactCli } = await import("./chunk-2D7PWSOK.js");
|
|
2380
|
+
return changeImpactCli(root, arg, { json }, io);
|
|
2381
|
+
}
|
|
1896
2382
|
if (command === "similar") {
|
|
1897
|
-
const { changeSimilarCli } = await import("./chunk-
|
|
2383
|
+
const { changeSimilarCli } = await import("./chunk-BC6KKZ67.js");
|
|
1898
2384
|
const limit = Number(str(values.limit) ?? 5);
|
|
1899
2385
|
return changeSimilarCli(root, arg, {
|
|
1900
2386
|
json,
|
|
@@ -1905,7 +2391,7 @@ async function dispatchCommand(argv, io) {
|
|
|
1905
2391
|
if (command === "list")
|
|
1906
2392
|
return changeList(root, { json }, io);
|
|
1907
2393
|
if (command === "export") {
|
|
1908
|
-
const { changeExportCommand } = await import("./chunk-
|
|
2394
|
+
const { changeExportCommand } = await import("./chunk-FLVZFTLQ.js");
|
|
1909
2395
|
const named = positionals[3];
|
|
1910
2396
|
const fmt = str(values.format) ?? (named === "ado" || named === "jira" ? named : void 0);
|
|
1911
2397
|
return changeExportCommand(root, arg, {
|
|
@@ -1922,7 +2408,7 @@ async function dispatchCommand(argv, io) {
|
|
|
1922
2408
|
io.err("change conform needs a change id, for example: atticus change conform add-transfer-limit");
|
|
1923
2409
|
return 2;
|
|
1924
2410
|
}
|
|
1925
|
-
const { changeConformCommand } = await import("./chunk-
|
|
2411
|
+
const { changeConformCommand } = await import("./chunk-5CMPVC3N.js");
|
|
1926
2412
|
return changeConformCommand(root, arg, {
|
|
1927
2413
|
...str(values.repo) ? { repo: str(values.repo) } : {},
|
|
1928
2414
|
...str(values.ref) ? { ref: str(values.ref) } : {},
|
|
@@ -1936,7 +2422,7 @@ async function dispatchCommand(argv, io) {
|
|
|
1936
2422
|
io.err("change estimate needs a change id, for example: atticus change estimate add-transfer-limit");
|
|
1937
2423
|
return 2;
|
|
1938
2424
|
}
|
|
1939
|
-
const { changeEstimateCommand } = await import("./chunk-
|
|
2425
|
+
const { changeEstimateCommand } = await import("./chunk-6FNAKCET.js");
|
|
1940
2426
|
return changeEstimateCommand(root, arg, { json }, io);
|
|
1941
2427
|
}
|
|
1942
2428
|
if (command === "map") {
|
|
@@ -1944,7 +2430,7 @@ async function dispatchCommand(argv, io) {
|
|
|
1944
2430
|
io.err("change map needs a change id, for example: atticus change map add-transfer-limit");
|
|
1945
2431
|
return 2;
|
|
1946
2432
|
}
|
|
1947
|
-
const { changeMapCommand } = await import("./chunk-
|
|
2433
|
+
const { changeMapCommand } = await import("./chunk-26WBY34Y.js");
|
|
1948
2434
|
return changeMapCommand(root, arg, { ...str(values.format) ? { format: str(values.format) } : {}, json }, io);
|
|
1949
2435
|
}
|
|
1950
2436
|
if (command === "learn")
|
|
@@ -1964,7 +2450,7 @@ async function dispatchCommand(argv, io) {
|
|
|
1964
2450
|
if (command === "status")
|
|
1965
2451
|
return changeStatus(root, arg, { json }, io);
|
|
1966
2452
|
if (command === "knowledge") {
|
|
1967
|
-
const { changeKnowledge } = await import("./chunk-
|
|
2453
|
+
const { changeKnowledge } = await import("./chunk-75ZOZFGH.js");
|
|
1968
2454
|
return changeKnowledge(root, arg, {
|
|
1969
2455
|
...str(values.confirm) ? { confirm: str(values.confirm) } : {},
|
|
1970
2456
|
...str(values.exclude) ? { exclude: str(values.exclude) } : {},
|
|
@@ -1981,6 +2467,8 @@ async function dispatchCommand(argv, io) {
|
|
|
1981
2467
|
}, io);
|
|
1982
2468
|
if (command === "sync")
|
|
1983
2469
|
return changeSync(root, arg, { ...approve ? { by: who() } : {}, approve, ...repo ? { repo } : {} }, io);
|
|
2470
|
+
if (command === "release-prs")
|
|
2471
|
+
return changeReleasePrs(root, arg, { by: who(), approve }, io);
|
|
1984
2472
|
if (command === "return")
|
|
1985
2473
|
return changeReturn(root, arg, {
|
|
1986
2474
|
by: who(),
|
|
@@ -1997,8 +2485,17 @@ async function dispatchCommand(argv, io) {
|
|
|
1997
2485
|
return intakeAdd(root, positionals.slice(2).map((f) => resolve(f)), io);
|
|
1998
2486
|
if (group === "intake" && command === "list")
|
|
1999
2487
|
return intakeList(root, io, { json });
|
|
2488
|
+
if (group === "intake" && command === "traffic") {
|
|
2489
|
+
const { intakeTraffic } = await import("./chunk-XEQCQO66.js");
|
|
2490
|
+
return intakeTraffic(root, positionals[2] ?? "", {
|
|
2491
|
+
...str(values.source) ? { source: str(values.source) } : {},
|
|
2492
|
+
...str(values.from) ? { from: str(values.from) } : {},
|
|
2493
|
+
...str(values.to) ? { to: str(values.to) } : {},
|
|
2494
|
+
json
|
|
2495
|
+
}, io);
|
|
2496
|
+
}
|
|
2000
2497
|
if (group === "intake" && command === "impact") {
|
|
2001
|
-
const { intakeImpact } = await import("./chunk-
|
|
2498
|
+
const { intakeImpact } = await import("./chunk-77O633L5.js");
|
|
2002
2499
|
return intakeImpact(root, positionals[2] ?? "", { json }, io);
|
|
2003
2500
|
}
|
|
2004
2501
|
if (group === "triage" && !command)
|
|
@@ -2253,7 +2750,7 @@ async function dispatchCommand(argv, io) {
|
|
|
2253
2750
|
return sourcesRefreshCommand(root, { json }, io);
|
|
2254
2751
|
if (group === "sources" && command === "estimate") {
|
|
2255
2752
|
const bt = str(values["batch-tokens"]);
|
|
2256
|
-
return (await import("./chunk-
|
|
2753
|
+
return (await import("./chunk-JS6WMC3J.js")).sourcesEstimate(root, {
|
|
2257
2754
|
...str(values.source) ? { source: str(values.source) } : {},
|
|
2258
2755
|
...bt && Number(bt) > 0 ? { batchTokens: Number(bt) } : {},
|
|
2259
2756
|
...values.full === true ? { full: true } : {},
|
|
@@ -2261,7 +2758,7 @@ async function dispatchCommand(argv, io) {
|
|
|
2261
2758
|
}, io);
|
|
2262
2759
|
}
|
|
2263
2760
|
if (group === "standards")
|
|
2264
|
-
return (await import("./chunk-
|
|
2761
|
+
return (await import("./chunk-JS6WMC3J.js")).standardsCli(root, command, values, io);
|
|
2265
2762
|
if (group === "sources" && command === "sync")
|
|
2266
2763
|
return sourcesSync(root, io, {
|
|
2267
2764
|
json: values.json === true,
|
|
@@ -2273,6 +2770,25 @@ async function dispatchCommand(argv, io) {
|
|
|
2273
2770
|
return coverageCommand(root, io, { json: values.json === true });
|
|
2274
2771
|
if (group === "domain" && command === "profile")
|
|
2275
2772
|
return domainProfileCommand(root, arg, str(values.out) ? { out: str(values.out) } : {}, io);
|
|
2773
|
+
if (group === "questions" && command === "propose") {
|
|
2774
|
+
const { questionsProposeCommand } = await import("./chunk-ZPDDEVQX.js");
|
|
2775
|
+
const ac = new AbortController();
|
|
2776
|
+
const onInt = () => ac.abort();
|
|
2777
|
+
process.on("SIGINT", onInt);
|
|
2778
|
+
try {
|
|
2779
|
+
return await questionsProposeCommand(root, {
|
|
2780
|
+
...arg ? { id: arg } : {},
|
|
2781
|
+
...typeof values.mode === "string" ? { mode: values.mode } : {},
|
|
2782
|
+
signal: ac.signal
|
|
2783
|
+
}, io, () => questionsFiles(root, ["questions", "proposed", "--root", root], io));
|
|
2784
|
+
} finally {
|
|
2785
|
+
process.off("SIGINT", onInt);
|
|
2786
|
+
}
|
|
2787
|
+
}
|
|
2788
|
+
if (group === "questions" && command === "owner")
|
|
2789
|
+
return (await import("./chunk-M4H2UG4R.js")).ownerQuestionCommand(root, argv, io);
|
|
2790
|
+
if (group === "questions" && ["decisions", "correct", "undo"].includes(command ?? ""))
|
|
2791
|
+
return (await import("./chunk-J5AAZ6OJ.js")).decisionsCli(root, argv, io);
|
|
2276
2792
|
if (group === "questions" && command)
|
|
2277
2793
|
return questionsFiles(root, argv, io);
|
|
2278
2794
|
if (group === "questions")
|
|
@@ -2280,36 +2796,39 @@ async function dispatchCommand(argv, io) {
|
|
|
2280
2796
|
if (group === "reconcile")
|
|
2281
2797
|
return reconcileCommand(root, positionals.slice(1), { json: values.json === true }, io);
|
|
2282
2798
|
if (group === "orgpack" && (command === "draft" || command === "accept"))
|
|
2283
|
-
return (await import("./chunk-
|
|
2799
|
+
return (await import("./chunk-62DLJSLV.js")).orgPackDraftCli(root, command, arg, values, io);
|
|
2284
2800
|
if (group === "orgpack" && command === "owner")
|
|
2285
|
-
return (await import("./chunk-
|
|
2801
|
+
return (await import("./chunk-PQH56YF6.js")).orgPackOwnerCli(root, arg, io);
|
|
2286
2802
|
if (group === "orgpack" && command === "validate")
|
|
2287
|
-
return orgPackValidate(arg ? resolve(arg) : join((await import("./chunk-
|
|
2803
|
+
return orgPackValidate(arg ? resolve(arg) : join((await import("./chunk-WAZEXEJH.js")).orgPackDirOf(root)), io);
|
|
2288
2804
|
if (group === "stage" && command === "check")
|
|
2289
|
-
return (await import("./chunk-
|
|
2805
|
+
return (await import("./chunk-NYOABJNK.js")).stageCheck(root, arg, positionals[3], positionals[4], io);
|
|
2290
2806
|
if (group === "handoff" && command === "done") {
|
|
2291
2807
|
if (!arg) {
|
|
2292
2808
|
io.err("handoff done needs the run id from the prompt, for example: atticus handoff done run-20261018060000-0001");
|
|
2293
2809
|
return 2;
|
|
2294
2810
|
}
|
|
2295
|
-
|
|
2296
|
-
|
|
2297
|
-
|
|
2298
|
-
|
|
2299
|
-
|
|
2300
|
-
|
|
2301
|
-
return handoffDone(root, arg, io, str(values.model) ? { model: str(values.model) } : {});
|
|
2811
|
+
return runDone(root, arg, {
|
|
2812
|
+
by: who(),
|
|
2813
|
+
approve: values.approve === true,
|
|
2814
|
+
json,
|
|
2815
|
+
...str(values.model) ? { model: str(values.model) } : {}
|
|
2816
|
+
}, io);
|
|
2302
2817
|
}
|
|
2303
2818
|
if (group === "openspec" && command === "setup")
|
|
2304
2819
|
return openspecSetup(root, io);
|
|
2305
2820
|
if (group === "openspec" && command === "check")
|
|
2306
2821
|
return openspecCheck(root, io);
|
|
2307
2822
|
if (group === "openspec") {
|
|
2308
|
-
const { openspecRun } = await import("./chunk-
|
|
2823
|
+
const { openspecRun } = await import("./chunk-M6D2U3YM.js");
|
|
2309
2824
|
return openspecRun(root, openspecArgsOf(argv), io);
|
|
2310
2825
|
}
|
|
2826
|
+
if (group === "workspace" && command === "bring-in") {
|
|
2827
|
+
const { bringInMerged } = await import("./chunk-UZACEG2C.js");
|
|
2828
|
+
return bringInMerged(root, io);
|
|
2829
|
+
}
|
|
2311
2830
|
if (group === "workspace" && command === "sync")
|
|
2312
|
-
return workspaceSync(root, repoIds, io);
|
|
2831
|
+
return workspaceSync(root, repoIds, io, str(values.from) ? { from: resolve(str(values.from)) } : {});
|
|
2313
2832
|
if (group === "workspace" && (command === "open" || command === "prune")) {
|
|
2314
2833
|
if (!arg) {
|
|
2315
2834
|
io.err(`workspace ${command} needs a change id, for example: atticus workspace ${command} add-transfer-limit`);
|
|
@@ -2319,7 +2838,7 @@ async function dispatchCommand(argv, io) {
|
|
|
2319
2838
|
return workspaceOpen(root, arg, repoIds, io);
|
|
2320
2839
|
return workspacePrune(root, arg, { all: values.all === true, force: values.force === true }, io);
|
|
2321
2840
|
}
|
|
2322
|
-
const { commandCatalog } = await import("./chunk-
|
|
2841
|
+
const { commandCatalog } = await import("./chunk-4PYC2UGC.js");
|
|
2323
2842
|
const { nearestCommand } = await import("./chunk-4SKZDI62.js");
|
|
2324
2843
|
const near = nearestCommand(positionals, commandCatalog(HELP).map((c) => c.id));
|
|
2325
2844
|
io.err(`Unknown command: ${positionals.join(" ")}.${near ? ` Did you mean atticus ${near}?` : ""}`);
|
|
@@ -2332,7 +2851,7 @@ async function checkFlags(argv, positionals, io) {
|
|
|
2332
2851
|
const quick = /* @__PURE__ */ new Set([...Object.keys(OPTIONS), ...QUESTION_FLAGS, "handoff"]);
|
|
2333
2852
|
if (!unknownFlags(argv, quick).length)
|
|
2334
2853
|
return void 0;
|
|
2335
|
-
const { commandCatalog } = await import("./chunk-
|
|
2854
|
+
const { commandCatalog } = await import("./chunk-4PYC2UGC.js");
|
|
2336
2855
|
const catalog = commandCatalog(HELP);
|
|
2337
2856
|
const known = /* @__PURE__ */ new Set([
|
|
2338
2857
|
...quick,
|
|
@@ -2343,7 +2862,7 @@ async function checkFlags(argv, positionals, io) {
|
|
|
2343
2862
|
return void 0;
|
|
2344
2863
|
for (const m of unknownFlagMessages(unknown, known))
|
|
2345
2864
|
io.err(m);
|
|
2346
|
-
const { commandOf } = await import("./chunk-
|
|
2865
|
+
const { commandOf } = await import("./chunk-DCWN3HFV.js");
|
|
2347
2866
|
const id = commandOf(positionals, catalog.map((c) => c.id));
|
|
2348
2867
|
io.err(id ? `atticus help ${id} lists what it takes. Nothing was run.` : "atticus help --all lists every command and what it takes. Nothing was run.");
|
|
2349
2868
|
return 2;
|