@maycombhq/atticus 2.0.0-beta.2 → 2.0.0-beta.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bin.js +8 -4
- package/dist/chunk-23XVSEV5.js +49 -0
- package/dist/{chunk-ZDPAS56H.js → chunk-24OXGB3P.js} +8 -2
- package/dist/{chunk-7EOBHUMC.js → chunk-24XLDU72.js} +4 -3
- package/dist/{chunk-CR3MTH32.js → chunk-2F4CYZKJ.js} +86 -11
- package/dist/{chunk-6IU67AEK.js → chunk-2GF7OLF3.js} +23 -15
- package/dist/chunk-2IIMFOPM.js +41 -0
- package/dist/chunk-2LGRMVCA.js +617 -0
- package/dist/{chunk-XPCM366L.js → chunk-2MMCFP5C.js} +10 -8
- package/dist/{chunk-JBTK5OP2.js → chunk-2Q56PQPS.js} +6 -4
- package/dist/{chunk-Z6LF7HQN.js → chunk-2Q5EDGEO.js} +7 -5
- package/dist/{chunk-3USYZGRF.js → chunk-2RLKFUUL.js} +38 -27
- package/dist/chunk-2SKB4O2E.js +59 -0
- package/dist/{chunk-SP2I63OO.js → chunk-34S2WGOB.js} +87 -4
- package/dist/{chunk-GQ4N4WKF.js → chunk-3NFFJL5D.js} +33 -27
- package/dist/{chunk-SJRGMG6A.js → chunk-3NWDLGG6.js} +28 -25
- package/dist/{chunk-4WBVUHXN.js → chunk-3RM4UK6W.js} +20 -18
- package/dist/chunk-42SIDKEU.js +583 -0
- package/dist/{chunk-GLUX4EEP.js → chunk-4EURQWQD.js} +20 -15
- package/dist/chunk-4U276ICE.js +39 -0
- package/dist/{chunk-ZMFPW66A.js → chunk-53T4O55J.js} +4 -3
- package/dist/{chunk-6J5OKA4Y.js → chunk-57TDNMI3.js} +17 -15
- package/dist/chunk-5BD2KYLE.js +57 -0
- package/dist/{chunk-7EFILTCI.js → chunk-5F7GFN2F.js} +28 -0
- package/dist/chunk-5NMKONLP.js +95 -0
- package/dist/{chunk-7ZUIMTOU.js → chunk-5SJZW52K.js} +26 -24
- package/dist/{chunk-4RS5KZQD.js → chunk-63YRMR6J.js} +6 -5
- package/dist/chunk-66PPNOON.js +62 -0
- package/dist/chunk-6H3Z5JHH.js +64 -0
- package/dist/{chunk-CEXSU4S6.js → chunk-6MUGR4LS.js} +775 -89
- package/dist/{chunk-QSXK2RGH.js → chunk-6OJQOPUN.js} +5 -3
- package/dist/{chunk-MVZVGYXH.js → chunk-6PPOWY5E.js} +84 -14
- package/dist/{chunk-7EKXJZ2Y.js → chunk-6ZGLAACW.js} +299 -38
- package/dist/chunk-6ZJ5A7AF.js +222 -0
- package/dist/{chunk-L24C55VN.js → chunk-745DAZ4L.js} +142 -30
- package/dist/{chunk-Q4D5X7QB.js → chunk-7ASNL4Q4.js} +46 -24
- package/dist/chunk-7BR7IPOH.js +35 -0
- package/dist/{chunk-7WD63HU2.js → chunk-7DOR27HL.js} +6 -6
- package/dist/chunk-7FTTA3HD.js +341 -0
- package/dist/{chunk-OLQJTJJU.js → chunk-7GJS6DNX.js} +12 -3
- package/dist/{chunk-7JUKDRSZ.js → chunk-7IGKHZ4Z.js} +347 -226
- package/dist/{chunk-G2B4ZQGH.js → chunk-7IOWA5D5.js} +11 -6
- package/dist/{chunk-EBEW3XXQ.js → chunk-7JITZFJC.js} +7 -5
- package/dist/chunk-7MJSQTL5.js +174 -0
- package/dist/{chunk-I4JRCD6M.js → chunk-7UOMVMFG.js} +25 -17
- package/dist/{chunk-YY6ZQQBP.js → chunk-AFWUDXEM.js} +19 -7
- package/dist/chunk-AFZ3QA6W.js +47 -0
- package/dist/chunk-AJQ72EBM.js +420 -0
- package/dist/chunk-AJYXNTNZ.js +317 -0
- package/dist/chunk-AVTBS4OW.js +49 -0
- package/dist/{chunk-FHH4I4ZV.js → chunk-BDKC6H5P.js} +12 -6
- package/dist/{chunk-IPKHE5D6.js → chunk-BEVTIBRH.js} +1526 -875
- package/dist/chunk-BHT7QK4G.js +162 -0
- package/dist/{chunk-6JUBZBMW.js → chunk-BIGDQDHD.js} +6 -4
- package/dist/{chunk-2BFCZ3RK.js → chunk-BO4KX37X.js} +20 -18
- package/dist/chunk-BPK5P77O.js +115 -0
- package/dist/chunk-BQ4SQQC6.js +59 -0
- package/dist/chunk-BQGDB6ZL.js +7342 -0
- package/dist/{chunk-2ANOROX3.js → chunk-BTGPE6CR.js} +11 -9
- package/dist/chunk-BTY3HZBO.js +93 -0
- package/dist/{chunk-DPZHZQKE.js → chunk-BXYMYEJ4.js} +44 -10
- package/dist/{chunk-2RMYG36Q.js → chunk-C3RY6KU6.js} +309 -346
- package/dist/chunk-C4R4JLHE.js +40 -0
- package/dist/chunk-CADWLE2T.js +18 -0
- package/dist/chunk-CBGGOQWU.js +82 -0
- package/dist/chunk-CMDXGQTS.js +47 -0
- package/dist/{chunk-MC3H7736.js → chunk-CQDGOPGH.js} +58 -18
- package/dist/{chunk-HFQCFSJR.js → chunk-CX4RZ2KS.js} +4 -3
- package/dist/{chunk-PAMPPUR6.js → chunk-CXJ6FUKN.js} +1852 -207
- package/dist/{chunk-ABWHYWNI.js → chunk-D73UEXYW.js} +3 -3
- package/dist/chunk-DCZWQLYT.js +1205 -0
- package/dist/chunk-DLOBCJL6.js +48 -0
- package/dist/{chunk-4BN53TG3.js → chunk-DOBQKHIF.js} +31 -23
- package/dist/chunk-E3ISYXO3.js +423 -0
- package/dist/{chunk-7SW2QWLU.js → chunk-E6ZIEVOI.js} +16 -13
- package/dist/chunk-EBL2R3YG.js +43 -0
- package/dist/{chunk-AIOQPLA5.js → chunk-EGQRREQH.js} +41 -15
- package/dist/chunk-EHA7RMZ3.js +58 -0
- package/dist/{chunk-M766ZJ6W.js → chunk-EIPTLPFC.js} +38 -27
- package/dist/chunk-EMRIQUND.js +517 -0
- package/dist/{chunk-DFBCSHVT.js → chunk-EPCJQQWD.js} +6 -4
- package/dist/{chunk-RZPYKDWS.js → chunk-F3P7N7SF.js} +1 -1
- package/dist/{chunk-R77KLRB3.js → chunk-FFLNS6VP.js} +21 -18
- package/dist/chunk-FFTRTL6R.js +26 -0
- package/dist/{chunk-IHMLFRVV.js → chunk-FPJPLKDW.js} +62 -16
- package/dist/{chunk-JCZIKA4C.js → chunk-FSMSFDLD.js} +5 -4
- package/dist/{chunk-AVJDSJ2F.js → chunk-FUJM6RTF.js} +8 -7
- package/dist/chunk-FZOJFH7Q.js +132 -0
- package/dist/{chunk-QRAOANID.js → chunk-G6X77UJZ.js} +23 -21
- package/dist/{chunk-3ALD2W2A.js → chunk-GCWRWSU7.js} +10 -4
- package/dist/chunk-GIW4ZVDB.js +39 -0
- package/dist/{chunk-B2WLAWNJ.js → chunk-GUX3PTYM.js} +3 -3
- package/dist/{chunk-DPUYDDQG.js → chunk-GZY6RUZ6.js} +25 -3
- package/dist/chunk-H4VO6WG3.js +10 -0
- package/dist/{chunk-MMOSZPWJ.js → chunk-H5HBGNXU.js} +5 -4
- package/dist/chunk-H7KM7LZE.js +229 -0
- package/dist/{chunk-AA6YULYB.js → chunk-HNM2YQT2.js} +7 -7
- package/dist/{chunk-3C7EYRFZ.js → chunk-HYU5VLGA.js} +1 -1
- package/dist/{chunk-XY3P7JW7.js → chunk-IDKCWSM5.js} +1032 -172
- package/dist/chunk-IFKEI4SA.js +237 -0
- package/dist/{chunk-F7HYOUFF.js → chunk-IGOE6KPG.js} +67 -22
- package/dist/{chunk-TDD55CJH.js → chunk-IH2XURVQ.js} +6 -5
- package/dist/chunk-INQHESFB.js +38 -0
- package/dist/chunk-IP74LCOQ.js +57 -0
- package/dist/chunk-IPHHDDC6.js +45 -0
- package/dist/{chunk-T6AIP7H5.js → chunk-ISUAAMGS.js} +110 -153
- package/dist/{chunk-A7UPUQFY.js → chunk-IUPG3UKI.js} +624 -319
- package/dist/{chunk-L6SGQIR3.js → chunk-IVBOQAGB.js} +7 -3
- package/dist/{chunk-27NKUS3X.js → chunk-J2JAKCIW.js} +2205 -796
- package/dist/{chunk-V2YTAIQO.js → chunk-J3IOLXWM.js} +24 -7
- package/dist/chunk-JA5FI3QV.js +142 -0
- package/dist/chunk-JAVI7JSP.js +49 -0
- package/dist/{chunk-HLJAXMM4.js → chunk-JB5LINEM.js} +6 -2
- package/dist/{chunk-2VHF7OXM.js → chunk-JENSEMXF.js} +1 -1
- package/dist/{chunk-6BVONWJ7.js → chunk-JJF6HALY.js} +4 -3
- package/dist/chunk-JLUCKAEL.js +38 -0
- package/dist/chunk-JRBFANFE.js +221 -0
- package/dist/{chunk-R6XF6UR3.js → chunk-KDNTAPLX.js} +4 -4
- package/dist/chunk-KFAVQZSX.js +33 -0
- package/dist/chunk-KJXD4PNL.js +50 -0
- package/dist/chunk-KN5BXMWN.js +44 -0
- package/dist/{chunk-PCVDV3UZ.js → chunk-KQGURXFU.js} +9 -7
- package/dist/{chunk-WY6PP6AA.js → chunk-KXITGYLF.js} +40 -6
- package/dist/{chunk-66YVAGGM.js → chunk-L27SV425.js} +22 -20
- package/dist/{chunk-NE2W3OO7.js → chunk-LDLL7LB3.js} +24 -22
- package/dist/chunk-LFGTYX5U.js +379 -0
- package/dist/{chunk-EYWIDJFU.js → chunk-LGBMTVNT.js} +7 -5
- package/dist/{chunk-Q5AMFEWD.js → chunk-LGFL54FP.js} +3 -2
- package/dist/{chunk-6TACQN3N.js → chunk-LJXMYKZJ.js} +7 -5
- package/dist/{chunk-BKVWTZ6A.js → chunk-LKOR5UET.js} +29 -26
- package/dist/chunk-LNBQOP7D.js +294 -0
- package/dist/{chunk-O3WI5KWW.js → chunk-LO6P2VYG.js} +2 -2
- package/dist/chunk-LQJPN536.js +122 -0
- package/dist/{chunk-YEDDOYSC.js → chunk-LYBNHMVZ.js} +29 -5
- package/dist/{chunk-A3GY6SOA.js → chunk-LZ7NUC62.js} +20 -18
- package/dist/chunk-M32BLWDH.js +37 -0
- package/dist/{chunk-VYDBJ73M.js → chunk-M3NANSDZ.js} +17 -15
- package/dist/chunk-MFHL5URL.js +31 -0
- package/dist/chunk-MFR5OPBD.js +109 -0
- package/dist/{chunk-DE76JROX.js → chunk-MG4ZL5RW.js} +32 -20
- package/dist/{chunk-N7IXEHK3.js → chunk-MO6P2JZH.js} +10 -8
- package/dist/{chunk-65NYPGRC.js → chunk-MUWDB4R4.js} +1 -1
- package/dist/chunk-MZCGSXVR.js +34 -0
- package/dist/{chunk-MGYZM27B.js → chunk-N3XIYPU3.js} +51 -23
- package/dist/chunk-NDCF4R6S.js +172 -0
- package/dist/{chunk-DHPACDG7.js → chunk-NR2UJWOC.js} +10 -8
- package/dist/chunk-NXJ5URP6.js +51 -0
- package/dist/{chunk-UNM6ZOKP.js → chunk-NY2XSR5K.js} +147 -18
- package/dist/{chunk-5GDRCDQB.js → chunk-O45HFTFS.js} +3 -2
- package/dist/{chunk-ONLS5QA5.js → chunk-O4GXGGBX.js} +14 -12
- package/dist/chunk-O5PXQR67.js +249 -0
- package/dist/{chunk-PRPPGYZG.js → chunk-O66DM6DJ.js} +6 -4
- package/dist/{chunk-KEM4SDDP.js → chunk-O7FDLW7L.js} +11 -8
- package/dist/{chunk-T2UYZSCQ.js → chunk-O7XLYEFA.js} +169 -29
- package/dist/{chunk-FITWGOJ2.js → chunk-OHNCWBKF.js} +4 -4
- package/dist/{chunk-652QWTLZ.js → chunk-OHVTTOPS.js} +3 -3
- package/dist/chunk-OMI6FPPN.js +43 -0
- package/dist/chunk-ONUPY3H6.js +53 -0
- package/dist/chunk-OTLDSZDV.js +69 -0
- package/dist/chunk-OUBGGKDU.js +22 -0
- package/dist/chunk-OWNCM4ZN.js +330 -0
- package/dist/{chunk-YISXLPHN.js → chunk-P2V7QW4D.js} +235 -35
- package/dist/{chunk-CNUKCS2T.js → chunk-P32RUW3B.js} +1632 -93
- package/dist/{chunk-BWZ77RQT.js → chunk-PAQ2AS5E.js} +1 -1
- package/dist/{chunk-ZMAINWBW.js → chunk-PBPBMP2B.js} +4 -3
- package/dist/{chunk-ZVM6AKKM.js → chunk-PJSJPMJI.js} +3 -3
- package/dist/{chunk-EFHQ3TWP.js → chunk-PKBHS4AA.js} +233 -56
- package/dist/{chunk-GT4I4ZWM.js → chunk-PMUAJGLI.js} +20 -16
- package/dist/chunk-PPD7HTDP.js +152 -0
- package/dist/chunk-PSOFBQWB.js +42 -0
- package/dist/{chunk-S2A7YC3Q.js → chunk-Q2TECDIT.js} +10694 -8896
- package/dist/chunk-Q4K5WB2W.js +42 -0
- package/dist/{chunk-UGLN7QHV.js → chunk-Q6DFNVRJ.js} +14 -12
- package/dist/chunk-QA4O2GGC.js +265 -0
- package/dist/chunk-QAXW2N3B.js +1216 -0
- package/dist/chunk-QBNWF5ZU.js +19 -0
- package/dist/chunk-QFWA2DPH.js +224 -0
- package/dist/{chunk-23W7VWKR.js → chunk-QKUJMING.js} +1363 -114
- package/dist/{chunk-NXFPS2LR.js → chunk-R44CYFPV.js} +16 -13
- package/dist/{chunk-CKSITVS4.js → chunk-R7NYHMUU.js} +2687 -786
- package/dist/chunk-REWWDVQB.js +162 -0
- package/dist/{chunk-JMSCMUCA.js → chunk-RGERPOIV.js} +145 -21
- package/dist/{chunk-6JCPI55B.js → chunk-RLDGWLQ7.js} +49 -7
- package/dist/chunk-RUGXBPWI.js +384 -0
- package/dist/{chunk-CPA6HPVR.js → chunk-RXPJMEOW.js} +18 -12
- package/dist/{chunk-3HI6Z55Y.js → chunk-S4PMJU6H.js} +339 -43
- package/dist/chunk-S5LSDXV4.js +40 -0
- package/dist/chunk-S7FCV7S5.js +51 -0
- package/dist/{chunk-5GGOLAKC.js → chunk-SDKLKB6I.js} +28 -26
- package/dist/chunk-SFSPGFCV.js +62 -0
- package/dist/{chunk-ZNCEKR4J.js → chunk-SFUP7TTO.js} +12 -8
- package/dist/{chunk-64EQYWCA.js → chunk-SLXZOMA6.js} +69 -19
- package/dist/chunk-SQV37XO2.js +273 -0
- package/dist/{chunk-K65BJIMT.js → chunk-SU74NDMQ.js} +19 -17
- package/dist/chunk-SYV5LHML.js +165 -0
- package/dist/chunk-T4YPZIQN.js +36 -0
- package/dist/chunk-T6DQR5TV.js +323 -0
- package/dist/{chunk-JIITQXFB.js → chunk-THDMSZ3R.js} +3075 -802
- package/dist/{chunk-JGZCG5VM.js → chunk-TNR75OXT.js} +7 -7
- package/dist/{chunk-D3PO4DOZ.js → chunk-TUULXQRW.js} +174 -15
- package/dist/chunk-TYQBFTBR.js +516 -0
- package/dist/chunk-U76OWS3Q.js +49 -0
- package/dist/{chunk-YYQN46FY.js → chunk-UCROWG2D.js} +27 -24
- package/dist/{chunk-6M5NK3K3.js → chunk-UF4AZOZB.js} +50 -10
- package/dist/chunk-UF4GLFBX.js +345 -0
- package/dist/{chunk-OT2O76OS.js → chunk-UGUP3ZM6.js} +240 -39
- package/dist/chunk-UNAGJYET.js +45 -0
- package/dist/{chunk-5WG5YP4T.js → chunk-UOR2DTHH.js} +16 -14
- package/dist/{chunk-S3QNRWYR.js → chunk-UPOY4YSQ.js} +14 -12
- package/dist/{chunk-EPTBZ3GP.js → chunk-UPS2DGFC.js} +1 -1
- package/dist/{chunk-4AK7IBVP.js → chunk-UUU4CLJG.js} +4 -2
- package/dist/{chunk-W3BQAZ3Q.js → chunk-UWMJKX5U.js} +14 -12
- package/dist/{chunk-QZSX3F7C.js → chunk-UWOJLHFT.js} +27 -23
- package/dist/chunk-VBTP56CE.js +535 -0
- package/dist/chunk-VCTWPLAO.js +211 -0
- package/dist/chunk-VNU26RCO.js +1215 -0
- package/dist/{chunk-CSZ4C5N6.js → chunk-VTZMAJ3W.js} +93 -10
- package/dist/{chunk-TXLH6WHQ.js → chunk-VW62D6QE.js} +14 -12
- package/dist/{chunk-CAQZUNOH.js → chunk-VY72R2XZ.js} +610 -3
- package/dist/{chunk-2DIQQJCB.js → chunk-VZALIKIF.js} +18 -15
- package/dist/{chunk-TYAID7B7.js → chunk-W62H2XSO.js} +25 -23
- package/dist/{chunk-HVUPKCGJ.js → chunk-W7VWI2YH.js} +9 -6
- package/dist/{chunk-TANFV3MZ.js → chunk-WERM6KPJ.js} +7 -4
- package/dist/{chunk-BOHJZTEQ.js → chunk-WF7B67YE.js} +208 -87
- package/dist/{chunk-7FBGJFEE.js → chunk-WG5U3F5V.js} +14 -12
- package/dist/{chunk-4NDAAFQT.js → chunk-WJF2CS6M.js} +8 -5
- package/dist/{chunk-XAKWMCXI.js → chunk-WKUJ3KPV.js} +4 -4
- package/dist/chunk-WMTRHUI5.js +103 -0
- package/dist/chunk-WNKPRSGI.js +36 -0
- package/dist/chunk-WXFLMQSR.js +223 -0
- package/dist/{chunk-RRTKKSLQ.js → chunk-X3WY6MN3.js} +8 -6
- package/dist/{chunk-ZCJDOK2S.js → chunk-X4CXA2IL.js} +47 -23
- package/dist/{chunk-UBBC2XSG.js → chunk-X5F3Q5LV.js} +560 -105
- package/dist/{chunk-C6EKFH7J.js → chunk-XD75VZIH.js} +9 -7
- package/dist/chunk-XERYFDB5.js +297 -0
- package/dist/chunk-XI2LCCYQ.js +420 -0
- package/dist/chunk-Y2EQNWKV.js +933 -0
- package/dist/{chunk-LR3R6Z2A.js → chunk-YHCMZC2J.js} +7 -7
- package/dist/chunk-YYY3AZFE.js +122 -0
- package/dist/{chunk-GDLULHTC.js → chunk-Z5IA3WDR.js} +19 -31
- package/dist/{chunk-T6XQL73F.js → chunk-ZFFYNRIO.js} +63 -23
- package/dist/{chunk-EDS2L2LD.js → chunk-ZFL7NY4F.js} +56 -27
- package/dist/{chunk-YMZ3TNYB.js → chunk-ZGULQAPZ.js} +7 -4
- package/dist/{chunk-4SKZDI62.js → chunk-ZIUFM5HT.js} +3 -1
- package/dist/{chunk-DKJA76CJ.js → chunk-ZJFRMSJT.js} +15 -13
- package/dist/chunk-ZJXLNDH4.js +239 -0
- package/dist/chunk-ZQ3ON2VQ.js +252 -0
- package/dist/{chunk-HITVBIJS.js → chunk-ZQ7SKESZ.js} +150 -415
- package/dist/{chunk-6QSERWXH.js → chunk-ZQXZ2SES.js} +24 -21
- package/dist/chunk-ZX57KSEQ.js +39 -0
- package/dist/{chunk-I3E7CX4H.js → chunk-ZZK56BLP.js} +5 -3
- package/dist/files.json +664 -368
- package/dist/packages/naysayer/constitution/constitution.yaml +19 -0
- package/dist/packages/sdk/npm/index.js +6194 -2542
- package/dist/packages/ui/dist/assets/{elk-api-tma0MCuh.js → elk-api-CIf-0gz5.js} +2 -2
- package/dist/packages/ui/dist/assets/index-CoK_Dl0D.js +47 -0
- package/dist/packages/ui/dist/assets/index-Dw20IRhQ.css +1 -0
- package/dist/packages/ui/dist/index.html +3 -2
- package/package.json +5 -5
- package/dist/chunk-2BF2EYJV.js +0 -174
- package/dist/chunk-42EVSKME.js +0 -37
- package/dist/chunk-4BKGMUIK.js +0 -53
- package/dist/chunk-5KLGBXG5.js +0 -48
- package/dist/chunk-6BNC6EQ4.js +0 -41
- package/dist/chunk-6D2CQ5II.js +0 -41
- package/dist/chunk-7AVHLZGD.js +0 -45
- package/dist/chunk-D46WUV3T.js +0 -33
- package/dist/chunk-E36QOJMD.js +0 -47
- package/dist/chunk-FQXYPF7E.js +0 -147
- package/dist/chunk-GBRFVT63.js +0 -45
- package/dist/chunk-ICY36XCH.js +0 -34
- package/dist/chunk-J4K3KVLD.js +0 -131
- package/dist/chunk-JZU3H6UQ.js +0 -54
- package/dist/chunk-NN2ZQEB4.js +0 -38
- package/dist/chunk-PCOCACY3.js +0 -385
- package/dist/chunk-RTEYOSJY.js +0 -29
- package/dist/chunk-RUVFXE2L.js +0 -666
- package/dist/chunk-RVH5SUW5.js +0 -69
- package/dist/chunk-VN3DP4LQ.js +0 -43
- package/dist/chunk-W5BVQF44.js +0 -36
- package/dist/chunk-WVPJSRRJ.js +0 -52
- package/dist/chunk-XPTOBS2D.js +0 -48
- package/dist/packages/ui/dist/assets/index-B54fm9FQ.js +0 -29
- package/dist/packages/ui/dist/assets/index-DD_hufQz.css +0 -1
|
@@ -5,33 +5,37 @@ 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-24OXGB3P.js";
|
|
9
9
|
import {
|
|
10
10
|
VERSION
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-F3P7N7SF.js";
|
|
12
|
+
import {
|
|
13
|
+
OPTIONS,
|
|
14
|
+
optionsFor
|
|
15
|
+
} from "./chunk-QA4O2GGC.js";
|
|
12
16
|
import {
|
|
13
17
|
SCHEMA_VERSION,
|
|
14
18
|
createLog
|
|
15
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-TUULXQRW.js";
|
|
16
20
|
import "./chunk-TV45EUGM.js";
|
|
17
21
|
|
|
18
22
|
// packages/cli/dist/main.js
|
|
19
23
|
import { parseArgs } from "node:util";
|
|
20
24
|
import { basename, join, resolve } from "node:path";
|
|
21
25
|
import { existsSync } from "node:fs";
|
|
22
|
-
var loadAi = () => import("./chunk-
|
|
26
|
+
var loadAi = () => import("./chunk-34S2WGOB.js");
|
|
23
27
|
var runtimeForCli = async (...a) => {
|
|
24
28
|
await setUpAi();
|
|
25
29
|
return (await loadAi()).runtimeForCli(...a);
|
|
26
30
|
};
|
|
27
|
-
var gitUser = (...a) => import("./chunk-
|
|
31
|
+
var gitUser = (...a) => import("./chunk-7GJS6DNX.js").then((m) => m.gitUser(...a));
|
|
28
32
|
var loadAiSetUp = () => Promise.all([
|
|
29
33
|
loadAi(),
|
|
30
|
-
import("./chunk-
|
|
31
|
-
import("./chunk-
|
|
32
|
-
import("./chunk-
|
|
33
|
-
import("./chunk-
|
|
34
|
-
import("./chunk-
|
|
34
|
+
import("./chunk-GCWRWSU7.js"),
|
|
35
|
+
import("./chunk-LJXMYKZJ.js"),
|
|
36
|
+
import("./chunk-2GF7OLF3.js"),
|
|
37
|
+
import("./chunk-2Q5EDGEO.js"),
|
|
38
|
+
import("./chunk-HYU5VLGA.js")
|
|
35
39
|
]);
|
|
36
40
|
async function setUpAi() {
|
|
37
41
|
const [ai, providers, plugins, naysayer, codeTools, draftCheck] = await loadAiSetUp();
|
|
@@ -39,6 +43,12 @@ async function setUpAi() {
|
|
|
39
43
|
plugins.registerModelProviderPlugins();
|
|
40
44
|
ai.registerToolSource((at) => (req) => draftCheck.bothTools(codeTools.metarepoToolBox(at), draftCheck.draftCheckTool(at, req)));
|
|
41
45
|
naysayer.registerCodeSearch(codeTools.criticCodeSearch);
|
|
46
|
+
ai.registerCopilotAcp({
|
|
47
|
+
...process.argv[1] ? { exec: ai.atticusExec(process.argv[1]) } : {},
|
|
48
|
+
onProgress: (l) => process.stderr.write(`${l}
|
|
49
|
+
`),
|
|
50
|
+
clientVersion: VERSION
|
|
51
|
+
});
|
|
42
52
|
}
|
|
43
53
|
var NO_AI = /* @__PURE__ */ new Set([
|
|
44
54
|
"next",
|
|
@@ -53,79 +63,82 @@ var NO_AI = /* @__PURE__ */ new Set([
|
|
|
53
63
|
"upgrade",
|
|
54
64
|
"support",
|
|
55
65
|
"change list",
|
|
66
|
+
"estate measure",
|
|
67
|
+
"estate fresh",
|
|
68
|
+
"estate shared",
|
|
56
69
|
"change status",
|
|
57
70
|
// Reading the questions on file and printing one: files only, no model (question-commands.ts).
|
|
58
71
|
"questions list",
|
|
59
72
|
"questions show"
|
|
60
73
|
]);
|
|
61
74
|
var runsNoAi = (group, command) => NO_AI.has(group) || NO_AI.has(`${group} ${command ?? ""}`);
|
|
62
|
-
var loadCommands = () => import("./chunk-
|
|
75
|
+
var loadCommands = () => import("./chunk-LGFL54FP.js");
|
|
63
76
|
var catalogValidate = (...a) => loadCommands().then((m) => m.catalogValidate(...a));
|
|
64
77
|
var orgPackValidate = (...a) => loadCommands().then((m) => m.orgPackValidate(...a));
|
|
65
78
|
var schemaExport = (...a) => loadCommands().then((m) => m.schemaExport(...a));
|
|
66
|
-
var loadWorkspaceCommands = () => import("./chunk-
|
|
67
|
-
var handoffDone = (...a) => loadWorkspaceCommands().then((m) => m.handoffDone(...a));
|
|
79
|
+
var loadWorkspaceCommands = () => import("./chunk-IP74LCOQ.js");
|
|
68
80
|
var openspecCheck = (...a) => loadWorkspaceCommands().then((m) => m.openspecCheck(...a));
|
|
69
81
|
var openspecSetup = (...a) => loadWorkspaceCommands().then((m) => m.openspecSetup(...a));
|
|
70
82
|
var workspaceOpen = (...a) => loadWorkspaceCommands().then((m) => m.workspaceOpen(...a));
|
|
71
83
|
var workspacePrune = (...a) => loadWorkspaceCommands().then((m) => m.workspacePrune(...a));
|
|
72
84
|
var workspaceSync = (...a) => loadWorkspaceCommands().then((m) => m.workspaceSync(...a));
|
|
73
|
-
var loadScanCommands = () => import("./chunk-
|
|
85
|
+
var loadScanCommands = () => import("./chunk-WNKPRSGI.js");
|
|
74
86
|
var catalogDiff = (...a) => loadScanCommands().then((m) => m.catalogDiff(...a));
|
|
75
87
|
var scanCommand = (...a) => loadScanCommands().then((m) => m.scanCommand(...a));
|
|
76
|
-
var loadIndexCommands = () => import("./chunk-
|
|
88
|
+
var loadIndexCommands = () => import("./chunk-XD75VZIH.js");
|
|
77
89
|
var askCommand = (...a) => loadIndexCommands().then((m) => m.askCommand(...a));
|
|
78
90
|
var impactCommand = (...a) => loadIndexCommands().then((m) => m.impactCommand(...a));
|
|
79
91
|
var indexRebuild = (...a) => loadIndexCommands().then((m) => m.indexRebuild(...a));
|
|
80
92
|
var queryCommand = (...a) => loadIndexCommands().then((m) => m.queryCommand(...a));
|
|
81
93
|
var searchCommand = (...a) => loadIndexCommands().then((m) => m.searchCommand(...a));
|
|
82
|
-
var loadSiteCommands = () => import("./chunk-
|
|
94
|
+
var loadSiteCommands = () => import("./chunk-M3NANSDZ.js");
|
|
83
95
|
var guideCommand = (...a) => loadSiteCommands().then((m) => m.guideCommand(...a));
|
|
84
96
|
var siteBuildCommand = (...a) => loadSiteCommands().then((m) => m.siteBuildCommand(...a));
|
|
85
|
-
var loadBaselineCommands = () => import("./chunk-
|
|
97
|
+
var loadBaselineCommands = () => import("./chunk-DLOBCJL6.js");
|
|
86
98
|
var baselineCommand = (...a) => loadBaselineCommands().then((m) => m.baselineCommand(...a));
|
|
87
99
|
var setupCommand = (...a) => loadBaselineCommands().then((m) => m.setupCommand(...a));
|
|
88
|
-
var loadDigestCommands = () => import("./chunk-
|
|
100
|
+
var loadDigestCommands = () => import("./chunk-MFHL5URL.js");
|
|
89
101
|
var digestCommand = (...a) => loadDigestCommands().then((m) => m.digestCommand(...a));
|
|
90
|
-
var loadDoctor = () => import("./chunk-
|
|
102
|
+
var loadDoctor = () => import("./chunk-ONUPY3H6.js");
|
|
91
103
|
var doctorCommand = (...a) => loadDoctor().then((m) => m.doctorCommand(...a));
|
|
92
|
-
var loadSupport = () => import("./chunk-
|
|
104
|
+
var loadSupport = () => import("./chunk-3NWDLGG6.js");
|
|
93
105
|
var supportBundleCommand = (...a) => loadSupport().then((m) => m.supportBundleCommand(...a));
|
|
94
|
-
var loadUpgrade = () => import("./chunk-
|
|
106
|
+
var loadUpgrade = () => import("./chunk-AVTBS4OW.js");
|
|
95
107
|
var upgradeCommand = (...a) => loadUpgrade().then((m) => m.upgradeCommand(...a));
|
|
96
|
-
var loadReconcileCommands = () => import("./chunk-
|
|
108
|
+
var loadReconcileCommands = () => import("./chunk-UPOY4YSQ.js");
|
|
97
109
|
var aliasCommand = (...a) => loadReconcileCommands().then((m) => m.aliasCommand(...a));
|
|
98
110
|
var reconcileCommand = (...a) => loadReconcileCommands().then((m) => m.reconcileCommand(...a));
|
|
99
|
-
var loadKnowledgeCommands = () => import("./chunk-
|
|
111
|
+
var loadKnowledgeCommands = () => import("./chunk-UOR2DTHH.js");
|
|
100
112
|
var coverageCommand = (...a) => loadKnowledgeCommands().then((m) => m.coverageCommand(...a));
|
|
101
113
|
var patternsScan = (...a) => loadKnowledgeCommands().then((m) => m.patternsScan(...a));
|
|
102
114
|
var questionsCommand = (...a) => loadKnowledgeCommands().then((m) => m.questionsCommand(...a));
|
|
103
|
-
var questionsFiles = (...a) => import("./chunk-
|
|
115
|
+
var questionsFiles = (...a) => import("./chunk-42SIDKEU.js").then((m) => m.questionsFiles(...a));
|
|
104
116
|
var sourcesAdd = (...a) => loadKnowledgeCommands().then((m) => m.sourcesAdd(...a));
|
|
105
117
|
var sourcesSync = (...a) => loadKnowledgeCommands().then((m) => m.sourcesSync(...a));
|
|
106
|
-
var loadDiagramCommands = () => import("./chunk-
|
|
118
|
+
var loadDiagramCommands = () => import("./chunk-Q6DFNVRJ.js");
|
|
107
119
|
var diagramLibrary = (...a) => loadDiagramCommands().then((m) => m.diagramLibrary(...a));
|
|
108
120
|
var diagramRender = (...a) => loadDiagramCommands().then((m) => m.diagramRender(...a));
|
|
109
|
-
var loadStubCommands = () => import("./chunk-
|
|
121
|
+
var loadStubCommands = () => import("./chunk-ZJFRMSJT.js");
|
|
110
122
|
var stubCheck = (...a) => loadStubCommands().then((m) => m.stubCheck(...a));
|
|
111
123
|
var stubServe = (...a) => loadStubCommands().then((m) => m.stubServe(...a));
|
|
112
|
-
var loadIntakeCommands = () => import("./chunk-
|
|
124
|
+
var loadIntakeCommands = () => import("./chunk-UWMJKX5U.js");
|
|
113
125
|
var intakeAdd = (...a) => loadIntakeCommands().then((m) => m.intakeAdd(...a));
|
|
114
126
|
var intakeList = (...a) => loadIntakeCommands().then((m) => m.intakeList(...a));
|
|
115
127
|
var triageDecide = (...a) => loadIntakeCommands().then((m) => m.triageDecide(...a));
|
|
116
128
|
var triageList = (...a) => loadIntakeCommands().then((m) => m.triageList(...a));
|
|
117
|
-
var loadRunCommands = () => import("./chunk-
|
|
129
|
+
var loadRunCommands = () => import("./chunk-OTLDSZDV.js");
|
|
118
130
|
var assistantFiles = (...a) => loadRunCommands().then((m) => m.assistantFiles(...a));
|
|
119
131
|
var driftCommand = (...a) => loadRunCommands().then((m) => m.driftCommand(...a));
|
|
120
132
|
var specHandDown = (...a) => loadRunCommands().then((m) => m.specHandDown(...a));
|
|
121
133
|
var specHandUp = (...a) => loadRunCommands().then((m) => m.specHandUp(...a));
|
|
122
|
-
var
|
|
134
|
+
var runDone = (...a) => loadRunCommands().then((m) => m.runDone(...a));
|
|
123
135
|
var taskRun = (...a) => loadRunCommands().then((m) => m.taskRun(...a));
|
|
124
|
-
var
|
|
136
|
+
var taskRunReady = (...a) => import("./chunk-SYV5LHML.js").then((m) => m.taskRunReady(...a));
|
|
137
|
+
var loadFeatureCommands = () => import("./chunk-57TDNMI3.js");
|
|
125
138
|
var featureSuggestNames = (...a) => loadFeatureCommands().then((m) => m.featureSuggestNames(...a));
|
|
126
|
-
var loadDomainCommands = () => import("./chunk-
|
|
139
|
+
var loadDomainCommands = () => import("./chunk-WG5U3F5V.js");
|
|
127
140
|
var domainProfileCommand = (...a) => loadDomainCommands().then((m) => m.domainProfileCommand(...a));
|
|
128
|
-
var loadPlanCommands = () => import("./chunk-
|
|
141
|
+
var loadPlanCommands = () => import("./chunk-L27SV425.js");
|
|
129
142
|
var adoSync = (...a) => loadPlanCommands().then((m) => m.adoSync(...a));
|
|
130
143
|
var changeDraft = (...a) => loadPlanCommands().then((m) => m.changeDraft(...a));
|
|
131
144
|
var planStories = (...a) => loadPlanCommands().then((m) => m.planStories(...a));
|
|
@@ -133,13 +146,13 @@ var snowDraft = (...a) => loadPlanCommands().then((m) => m.snowDraft(...a));
|
|
|
133
146
|
var snowSubmit = (...a) => loadPlanCommands().then((m) => m.snowSubmit(...a));
|
|
134
147
|
var storyBarCommand = (...a) => loadPlanCommands().then((m) => m.storyBarCommand(...a));
|
|
135
148
|
var templatesDraft = (...a) => loadPlanCommands().then((m) => m.templatesDraft(...a));
|
|
136
|
-
var loadTodoCommands = () => import("./chunk-
|
|
149
|
+
var loadTodoCommands = () => import("./chunk-63YRMR6J.js");
|
|
137
150
|
var executorsCheck = (...a) => loadTodoCommands().then((m) => m.executorsCheck(...a));
|
|
138
151
|
var todoDone = (...a) => loadTodoCommands().then((m) => m.todoDone(...a));
|
|
139
152
|
var todoList = (...a) => loadTodoCommands().then((m) => m.todoList(...a));
|
|
140
153
|
var todoRun = (...a) => loadTodoCommands().then((m) => m.todoRun(...a));
|
|
141
154
|
var todoShow = (...a) => loadTodoCommands().then((m) => m.todoShow(...a));
|
|
142
|
-
var loadSetupCommands = () => import("./chunk-
|
|
155
|
+
var loadSetupCommands = () => import("./chunk-UWOJLHFT.js");
|
|
143
156
|
var absorbCommand = (...a) => loadSetupCommands().then((m) => m.absorbCommand(...a));
|
|
144
157
|
var absorbAcceptCommand = (...a) => loadSetupCommands().then((m) => m.absorbAcceptCommand(...a));
|
|
145
158
|
var absorbRefreshCommand = (...a) => loadSetupCommands().then((m) => m.absorbRefreshCommand(...a));
|
|
@@ -149,7 +162,7 @@ var initCommand = (...a) => loadSetupCommands().then((m) => m.initCommand(...a))
|
|
|
149
162
|
var reposDiscoverCommand = (...a) => loadSetupCommands().then((m) => m.reposDiscoverCommand(...a));
|
|
150
163
|
var unadoptCommand = (...a) => loadSetupCommands().then((m) => m.unadoptCommand(...a));
|
|
151
164
|
var zeroInstallCommand = (...a) => loadSetupCommands().then((m) => m.zeroInstallCommand(...a));
|
|
152
|
-
var loadQualityCommands = () => import("./chunk-
|
|
165
|
+
var loadQualityCommands = () => import("./chunk-ZQXZ2SES.js");
|
|
153
166
|
var ciArchiveGate = (...a) => loadQualityCommands().then((m) => m.ciArchiveGate(...a));
|
|
154
167
|
var ciDrift = (...a) => loadQualityCommands().then((m) => m.ciDrift(...a));
|
|
155
168
|
var ciSnippet = (...a) => loadQualityCommands().then((m) => m.ciSnippet(...a));
|
|
@@ -160,33 +173,33 @@ var glossaryList = (...a) => loadQualityCommands().then((m) => m.glossaryList(..
|
|
|
160
173
|
var glossaryScan = (...a) => loadQualityCommands().then((m) => m.glossaryScan(...a));
|
|
161
174
|
var testsGenerate = (...a) => loadQualityCommands().then((m) => m.testsGenerate(...a));
|
|
162
175
|
var traceCommand = (...a) => loadQualityCommands().then((m) => m.traceCommand(...a));
|
|
163
|
-
var loadInitiativeCommands = () => import("./chunk-
|
|
176
|
+
var loadInitiativeCommands = () => import("./chunk-7UOMVMFG.js");
|
|
164
177
|
var initiativeCommitment = (...a) => loadInitiativeCommands().then((m) => m.initiativeCommitment(...a));
|
|
165
178
|
var initiativeNew = (...a) => loadInitiativeCommands().then((m) => m.initiativeNew(...a));
|
|
166
179
|
var initiativePlan = (...a) => loadInitiativeCommands().then((m) => m.initiativePlan(...a));
|
|
167
180
|
var initiativeStatus = (...a) => loadInitiativeCommands().then((m) => m.initiativeStatus(...a));
|
|
168
181
|
var requestFromTeam = (...a) => loadInitiativeCommands().then((m) => m.requestFromTeam(...a));
|
|
169
|
-
var loadLearnCommands = () => import("./chunk-
|
|
182
|
+
var loadLearnCommands = () => import("./chunk-IPHHDDC6.js");
|
|
170
183
|
var explainCommand = (...a) => loadLearnCommands().then((m) => m.explainCommand(...a));
|
|
171
184
|
var learnCheck = (...a) => loadLearnCommands().then((m) => m.learnCheck(...a));
|
|
172
185
|
var learnList = (...a) => loadLearnCommands().then((m) => m.learnList(...a));
|
|
173
186
|
var learnStart = (...a) => loadLearnCommands().then((m) => m.learnStart(...a));
|
|
174
187
|
var sandboxCreate = (...a) => loadLearnCommands().then((m) => m.sandboxCreate(...a));
|
|
175
|
-
var loadEvalCommands = () => import("./chunk-
|
|
176
|
-
var loadBenchCommands = () => import("./chunk-
|
|
188
|
+
var loadEvalCommands = () => import("./chunk-OMI6FPPN.js");
|
|
189
|
+
var loadBenchCommands = () => import("./chunk-KJXD4PNL.js");
|
|
177
190
|
var benchFetch = (...a) => loadBenchCommands().then((m) => m.benchFetch(...a));
|
|
178
191
|
var benchRun = (...a) => loadBenchCommands().then((m) => m.benchRun(...a));
|
|
179
192
|
var benchSurvey = (...a) => loadBenchCommands().then((m) => m.benchSurvey(...a));
|
|
180
193
|
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-
|
|
194
|
+
var loadScanVerifyCommands = () => import("./chunk-UCROWG2D.js");
|
|
195
|
+
var stageCli = (...a) => import("./chunk-2RLKFUUL.js").then((m) => m.stageCli(...a));
|
|
196
|
+
var knowledgeCli = (...a) => import("./chunk-SDKLKB6I.js").then((m) => m.knowledgeCli(...a));
|
|
184
197
|
var defencesScan = (...a) => loadEvalCommands().then((m) => m.defencesScan(...a));
|
|
185
198
|
var evalReport = (...a) => loadEvalCommands().then((m) => m.evalReport(...a));
|
|
186
199
|
var evalRun = (...a) => loadEvalCommands().then((m) => m.evalRun(...a));
|
|
187
|
-
var loadU1Commands = () => import("./chunk-
|
|
200
|
+
var loadU1Commands = () => import("./chunk-FUJM6RTF.js");
|
|
188
201
|
var conformanceCommand = (...a) => loadU1Commands().then((m) => m.conformanceCommand(...a));
|
|
189
|
-
var loadReleaseCommands = () => import("./chunk-
|
|
202
|
+
var loadReleaseCommands = () => import("./chunk-U76OWS3Q.js");
|
|
190
203
|
var outcomeList = (...a) => loadReleaseCommands().then((m) => m.outcomeList(...a));
|
|
191
204
|
var outcomeRecord = (...a) => loadReleaseCommands().then((m) => m.outcomeRecord(...a));
|
|
192
205
|
var releaseEvidenceCommand = (...a) => loadReleaseCommands().then((m) => m.releaseEvidenceCommand(...a));
|
|
@@ -194,9 +207,9 @@ var releaseForecastCommand = (...a) => loadReleaseCommands().then((m) => m.relea
|
|
|
194
207
|
var releaseNotesCommand = (...a) => loadReleaseCommands().then((m) => m.releaseNotesCommand(...a));
|
|
195
208
|
var releasePlanCommand = (...a) => loadReleaseCommands().then((m) => m.releasePlanCommand(...a));
|
|
196
209
|
var releaseSecurityCommand = (...a) => loadReleaseCommands().then((m) => m.releaseSecurityCommand(...a));
|
|
197
|
-
var loadUiCommands = () => import("./chunk-
|
|
210
|
+
var loadUiCommands = () => import("./chunk-THDMSZ3R.js");
|
|
198
211
|
var uiCommand = (...a) => loadUiCommands().then((m) => m.uiCommand(...a));
|
|
199
|
-
var loadCriticCommands = () => import("./chunk-
|
|
212
|
+
var loadCriticCommands = () => import("./chunk-PMUAJGLI.js");
|
|
200
213
|
var critic = (...a) => loadCriticCommands().then((m) => m.critic(...a));
|
|
201
214
|
var criticStats = (...a) => loadCriticCommands().then((m) => m.criticStats(...a));
|
|
202
215
|
var findingAction = (...a) => loadCriticCommands().then((m) => m.findingAction(...a));
|
|
@@ -211,7 +224,7 @@ var featureSpec = (...a) => loadFeatureCommands().then((m) => m.featureSpec(...a
|
|
|
211
224
|
var featureSplit = (...a) => loadFeatureCommands().then((m) => m.featureSplit(...a));
|
|
212
225
|
var featureSuggestLinks = (...a) => loadFeatureCommands().then((m) => m.featureSuggestLinks(...a));
|
|
213
226
|
var featureTag = (...a) => loadFeatureCommands().then((m) => m.featureTag(...a));
|
|
214
|
-
var loadChangeCommands = () => import("./chunk-
|
|
227
|
+
var loadChangeCommands = () => import("./chunk-SFSPGFCV.js");
|
|
215
228
|
var changeArchive = (...a) => loadChangeCommands().then((m) => m.changeArchive(...a));
|
|
216
229
|
var changeConflicts = (...a) => loadChangeCommands().then((m) => m.changeConflicts(...a));
|
|
217
230
|
var changeHandoff = (...a) => loadChangeCommands().then((m) => m.changeHandoff(...a));
|
|
@@ -220,34 +233,35 @@ var changeNew = (...a) => loadChangeCommands().then((m) => m.changeNew(...a));
|
|
|
220
233
|
var changeReturn = (...a) => loadChangeCommands().then((m) => m.changeReturn(...a));
|
|
221
234
|
var changeStatus = (...a) => loadChangeCommands().then((m) => m.changeStatus(...a));
|
|
222
235
|
var changeSync = (...a) => loadChangeCommands().then((m) => m.changeSync(...a));
|
|
236
|
+
var changeReleasePrs = (...a) => loadChangeCommands().then((m) => m.changeReleasePrs(...a));
|
|
223
237
|
var changeLearn = (...a) => loadChangeCommands().then((m) => m.changeLearn(...a));
|
|
224
|
-
var loadDialectCommands = () => import("./chunk-
|
|
238
|
+
var loadDialectCommands = () => import("./chunk-E6ZIEVOI.js");
|
|
225
239
|
var dialectGrade = (...a) => loadDialectCommands().then((m) => m.dialectGrade(...a));
|
|
226
240
|
var dialectKit = (...a) => loadDialectCommands().then((m) => m.dialectKit(...a));
|
|
227
241
|
var dialectTree = (...a) => loadDialectCommands().then((m) => m.dialectTree(...a));
|
|
228
242
|
var dialectNew = (...a) => loadDialectCommands().then((m) => m.dialectNew(...a));
|
|
229
243
|
var dialectRun = (...a) => loadDialectCommands().then((m) => m.dialectRun(...a));
|
|
230
244
|
var dialectTest = (...a) => loadDialectCommands().then((m) => m.dialectTest(...a));
|
|
231
|
-
var loadPluginCommands = () => import("./chunk-
|
|
245
|
+
var loadPluginCommands = () => import("./chunk-R44CYFPV.js");
|
|
232
246
|
var pluginTest = (...a) => loadPluginCommands().then((m) => m.pluginTest(...a));
|
|
233
247
|
var pluginPin = (...a) => loadPluginCommands().then((m) => m.pluginPin(...a));
|
|
234
248
|
var pluginAdd = (...a) => loadPluginCommands().then((m) => m.pluginAdd(...a));
|
|
235
|
-
var loadFrameworkCommands = () => import("./chunk-
|
|
249
|
+
var loadFrameworkCommands = () => import("./chunk-VZALIKIF.js");
|
|
236
250
|
var frameworksCheck = (...a) => loadFrameworkCommands().then((m) => m.frameworksCheck(...a));
|
|
237
251
|
var frameworksDiscover = (...a) => loadFrameworkCommands().then((m) => m.frameworksDiscover(...a));
|
|
238
252
|
var frameworksKit = (...a) => loadFrameworkCommands().then((m) => m.frameworksKit(...a));
|
|
239
253
|
var frameworksLearn = (...a) => loadFrameworkCommands().then((m) => m.frameworksLearn(...a));
|
|
240
254
|
var frameworksSurvey = (...a) => loadFrameworkCommands().then((m) => m.frameworksSurvey(...a));
|
|
241
|
-
var loadOnboardCommands = () => import("./chunk-
|
|
255
|
+
var loadOnboardCommands = () => import("./chunk-SU74NDMQ.js");
|
|
242
256
|
var onboardAccept = (...a) => loadOnboardCommands().then((m) => m.onboardAccept(...a));
|
|
243
257
|
var onboardCheck = (...a) => loadOnboardCommands().then((m) => m.onboardCheck(...a));
|
|
244
258
|
var onboardDraft = (...a) => loadOnboardCommands().then((m) => m.onboardDraft(...a));
|
|
245
259
|
var scanReview = (...a) => loadOnboardCommands().then((m) => m.scanReview(...a));
|
|
246
260
|
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-
|
|
261
|
+
var loadRepoTypeCommands = () => import("./chunk-2IIMFOPM.js");
|
|
262
|
+
var loadRepoCommands = () => import("./chunk-BXYMYEJ4.js");
|
|
263
|
+
var loadSpecCommands = () => import("./chunk-W62H2XSO.js");
|
|
264
|
+
var loadEstateCommands = () => import("./chunk-BO4KX37X.js");
|
|
251
265
|
var onboardEval = (...a) => loadOnboardCommands().then((m) => m.onboardEval(...a));
|
|
252
266
|
var onboardFramework = (...a) => loadOnboardCommands().then((m) => m.onboardFramework(...a));
|
|
253
267
|
var onboardFrameworkAccept = (...a) => loadOnboardCommands().then((m) => m.onboardFrameworkAccept(...a));
|
|
@@ -268,13 +282,22 @@ Usage:
|
|
|
268
282
|
[--json] Print the result as JSON
|
|
269
283
|
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
284
|
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
|
|
285
|
+
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]
|
|
286
|
+
[--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)
|
|
287
|
+
[--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
288
|
[--copy] Print the next batch's prompt to paste into a chat
|
|
274
289
|
[--answer <file>] With --copy: read the pasted answer back from a file (- for stdin)
|
|
275
|
-
|
|
290
|
+
[--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
|
|
291
|
+
[--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)
|
|
292
|
+
[--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)
|
|
293
|
+
[--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)
|
|
294
|
+
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]
|
|
295
|
+
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
296
|
[--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
297
|
[--verbose] With --write: list every record changed and flow written, not only the counts
|
|
298
|
+
atticus verify --all [--write] Every repo read so far (each with a facts file), one after another; no model is called
|
|
299
|
+
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]
|
|
300
|
+
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
301
|
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
302
|
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
303
|
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,15 +305,41 @@ Usage:
|
|
|
282
305
|
atticus estate flow <flow> [--depth 5] [--json] A flow followed across repos, with the data at each crossing
|
|
283
306
|
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
307
|
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
|
|
308
|
+
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)
|
|
309
|
+
atticus estate measure <reference> [--json] The same as join measure
|
|
310
|
+
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]
|
|
311
|
+
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>]
|
|
312
|
+
atticus join shared list [--json] The shared maps on file: whose, for which system, their commit and entries
|
|
313
|
+
atticus estate shared import|refresh|list The same as join shared
|
|
314
|
+
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)
|
|
315
|
+
atticus estate contracts [--json] The same as join contracts
|
|
316
|
+
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
317
|
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
318
|
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
|
|
319
|
+
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
|
|
320
|
+
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
|
|
321
|
+
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)
|
|
322
|
+
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
|
|
323
|
+
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
|
|
324
|
+
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
|
|
325
|
+
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
|
|
326
|
+
atticus types notes <id> A component type's notes (the architect's write-up), or where to write them
|
|
327
|
+
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)
|
|
328
|
+
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
|
|
329
|
+
atticus rules add --key <k> --rule "..." --org-wide | --type <t> | --repo <r> [--files <glob,glob>] [--example <path:line>] [--draft] Write a reading rule to a layer's file, for review
|
|
330
|
+
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)
|
|
331
|
+
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
|
|
332
|
+
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
|
|
333
|
+
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
|
|
334
|
+
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
|
|
335
|
+
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
336
|
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
337
|
atticus query "<query>" Find records, e.g. "kind:interface via:gateway -has:pattern"
|
|
289
338
|
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]
|
|
290
339
|
[--limit n] [--json] (see docs/query-language.md)
|
|
291
340
|
atticus context show <id> One record, flow, step, knowledge item, change, answered question or wiki section in full, with its file
|
|
292
341
|
atticus context walk <id> [--hops 1] [--kind k,k] [--limit n] The links from one id, how each was made, at most two hops
|
|
293
|
-
atticus cites --repo <repo> --path <path> What cites each line of one file: the flow steps, with the changes in flight on them, and the records (or --file <path on disk>) [--json]
|
|
342
|
+
atticus cites --repo <repo> --path <path> What cites each line of one file: the flow steps, with the changes in flight on them, and the records (or --file <path on disk>) [--file <path on disk>] [--json]
|
|
294
343
|
atticus context code <id> [--around 6] The code a fact cites, a few lines around each cited line, from the workspace checkout
|
|
295
344
|
[--repo r --path p --line n] (or one line a fact cites)
|
|
296
345
|
atticus context similar <id> [--kind k,k] [--limit n] What reads like one id, by the local embedding model: a hint where to look, never a link
|
|
@@ -303,7 +352,8 @@ Usage:
|
|
|
303
352
|
atticus ask "<question>" Answer a plain question from the catalog, showing the query it ran
|
|
304
353
|
atticus setup [--json] The setup checklist until the catalog is accepted, with a fix for each step
|
|
305
354
|
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,
|
|
355
|
+
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)
|
|
356
|
+
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
357
|
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
358
|
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
359
|
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,20 +389,33 @@ Usage:
|
|
|
339
389
|
atticus patterns scan [--json] Find integration patterns in the wikis and compare them with the org pack
|
|
340
390
|
atticus coverage [--json] What the catalog knows per system and area: verified, document-only, unknown
|
|
341
391
|
atticus questions [--json] Knowledge gaps and the owner questions that close them
|
|
342
|
-
atticus questions
|
|
392
|
+
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
|
|
393
|
+
atticus questions list [--state open] [--mine] [--json] The questions in questions/ a step raised for a person,
|
|
394
|
+
in the order to ask them, each with its owner team; --mine, your teams' only
|
|
343
395
|
atticus questions show <id> [--json] One question on file, with its options, evidence and answer
|
|
344
|
-
|
|
345
|
-
|
|
396
|
+
(--json on an open target or topics question adds its picks: every repo, system and team --target takes, for the editors' pickers; ADR 0166)
|
|
397
|
+
atticus questions answer <id> --option <n> | --text "..." | --accept-proposal Write the answer to the file; prints the rerun
|
|
398
|
+
[--scope repo|repo-type] [--type <repo type>] [--by who] (--accept-proposal: the assistant's proposed answer, checked again, as yours)
|
|
399
|
+
[--match <host pattern or /path/**>] (a target or hosts answer by rule: it covers every call that matches, the calls found later too)
|
|
400
|
+
[--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)
|
|
401
|
+
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]
|
|
402
|
+
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
|
|
403
|
+
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
|
|
404
|
+
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 [--no-similar] [--match <rule>] [--preview] [--json]
|
|
405
|
+
atticus questions undo <batch> [--json] Undo one batch of decisions (by AI, or a correction and its rule): exactly its lines and answers
|
|
406
|
+
atticus questions sheet [--out <file>] Every open question in one YAML answer sheet, each with an empty answer:, to answer in one sitting
|
|
407
|
+
atticus questions sheet --apply <file> [--by who] [--json] Answer each filled entry as you; skips blanks, refuses one whose question changed since
|
|
346
408
|
atticus intake add <files...> Drop documents, specs and diagrams into inputs/inbox for intake
|
|
347
409
|
atticus intake list [--json] What intake read from inputs/: kinds, systems, duplicates, versions
|
|
348
410
|
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
|
|
411
|
+
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
412
|
atticus triage [--json] What needs a person: unknown names, conflicts with code, image edges
|
|
350
413
|
atticus triage decide <item> <n> Choose option n for a triage item; writes a curated decision
|
|
351
414
|
[--reason text]
|
|
352
415
|
atticus diagram render <view|file> Draw a view (context, container, data, event, sequence) or a .drawio file
|
|
353
416
|
[--focus id] [--format mermaid|drawio] [--out file]
|
|
354
417
|
atticus diagram library <file> Write the draw.io shape library
|
|
355
|
-
atticus stub serve <spec|id> Serve a stub of an API from its spec, or from the catalog
|
|
418
|
+
atticus stub serve <spec|id> Serve a stub of an API from its spec, or from the catalog [--from-catalog]
|
|
356
419
|
[--port 4010] [--host 127.0.0.1]
|
|
357
420
|
atticus stub check <spec> Which operations have examples to answer with
|
|
358
421
|
atticus dialect new <name> --from <repo>[,<repo>...] Scaffold a dialect from sample repos
|
|
@@ -377,10 +440,12 @@ Usage:
|
|
|
377
440
|
atticus frameworks check [name] Run each framework model's own tests; a failing model isn't used
|
|
378
441
|
atticus frameworks survey [--package <prefix>[,...]] How the repos use house frameworks, any language [--json]
|
|
379
442
|
atticus frameworks kit [dir] Export the framework-model kit for an assistant
|
|
380
|
-
atticus change new "<title>"
|
|
443
|
+
atticus change new "<title>" --type <type> Start a change from a template
|
|
381
444
|
[--template id] [--id id] [--owner role=a,b]... [--system id]... [--like <archived change>]
|
|
382
445
|
[--impact <vendor spec>] (its footprint: what the spec's newer version reaches, see intake impact)
|
|
383
|
-
atticus change
|
|
446
|
+
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)
|
|
447
|
+
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
|
|
448
|
+
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 [--change <id>] [--limit n] [--json]
|
|
384
449
|
atticus domain profile <system> A system as a domain profile, filled from the catalog [--out file]
|
|
385
450
|
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]
|
|
386
451
|
atticus change architecture <change> The architecture stage: the target flows (steps added, changed or removed, with fields) as flow deltas; looped the same way [--mode m] [--resume run] [--context-tokens n] [--whole-context] [--max-tokens n]
|
|
@@ -391,7 +456,9 @@ Usage:
|
|
|
391
456
|
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
457
|
atticus change handoff <id> --approve Open the phase's hand-off PR; merging it approves the gate [--repo]
|
|
393
458
|
(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/)
|
|
459
|
+
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/)
|
|
460
|
+
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)
|
|
461
|
+
(without --approve: say which it would open, send nothing)
|
|
395
462
|
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
463
|
atticus change return <id> --reason "<why>" --approve Close the hand-off PR and return the change to the product owner
|
|
397
464
|
atticus change archive <id> [--no-rescan] Archive a released change and rescan its repos
|
|
@@ -418,8 +485,9 @@ Usage:
|
|
|
418
485
|
atticus feature spec <id> Draft an OpenSpec capability spec from a confirmed feature
|
|
419
486
|
atticus catalog migrate [--dry-run] Rewrite catalog files to the current schema version
|
|
420
487
|
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>
|
|
488
|
+
atticus task run <change> <task> Run a task with AI [--level plan|draft|pr] [--mode m] [--approve] [--dry-run]
|
|
489
|
+
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]
|
|
490
|
+
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
491
|
atticus spec hand-down <change> <task> Create the task's Spec Kit feature in its repo [--force]
|
|
424
492
|
atticus spec hand-up <change> <task> Read the Spec Kit feature back at the PR [--pr n --pr-url url]
|
|
425
493
|
atticus drift <change> [--json] Compare design, repo plans and code
|
|
@@ -451,11 +519,12 @@ Usage:
|
|
|
451
519
|
atticus todo done <step> Record a manual step's result [--result k=v]... [--skip --note why]
|
|
452
520
|
atticus todo run <step> --with <executor> Run a step with a team's own tool [--approve --inputs sha] [--fill-only]
|
|
453
521
|
atticus executors check Ping configured executors and show what each covers
|
|
454
|
-
atticus init <folder> --platform <p> Create a new metarepo named after the folder [--from pack] [--owner who] [--openspec-store: also an OpenSpec store, beta]
|
|
522
|
+
atticus init <folder> --platform <p> Create a new metarepo named after the folder [--from pack] [--owner who] [--by you] [--openspec-store: also an OpenSpec store, beta]
|
|
455
523
|
atticus adopt <path> Use Atticus in an existing repo; writes only .atticus/ [--platform p] [--name n]
|
|
456
524
|
atticus unadopt <path> Remove Atticus from an adopted repo, leaving it as it was
|
|
457
525
|
atticus repos discover <folder> | --org <org> Propose repos.manifest.yaml entries [--platform p] [--dry-run]
|
|
458
526
|
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]
|
|
527
|
+
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
528
|
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
529
|
[--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
530
|
atticus absorb <git-url|path> --id <id> Translate another team's prompts, agents, checklists, OpenSpec, Spec Kit, TypeSpec or Atticus repo
|
|
@@ -483,7 +552,7 @@ Usage:
|
|
|
483
552
|
atticus initiative plan <id> --target <system> Plan its changes and commitments [--release d] [--system s]... [--dry-run]
|
|
484
553
|
atticus initiative status <id> Critical path, at-risk and slipped commitments
|
|
485
554
|
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
|
|
555
|
+
atticus initiative commit <commitment> <open|at-risk|done|slipped> Record a commitment's status [--note "<words>"]
|
|
487
556
|
atticus learn [list] | learn start <role|lesson> | learn check [--answer a] [--lesson l] [--step s]
|
|
488
557
|
Lessons by role in a practice sandbox: list them, start one, check a step
|
|
489
558
|
atticus sandbox create <dir> A throwaway practice metarepo
|
|
@@ -512,14 +581,19 @@ Usage:
|
|
|
512
581
|
atticus standards accept Put the proposed checks a person picks into org-pack/checklists/standards.yaml [--only <id,id>] [--dry-run] [--json]
|
|
513
582
|
atticus openspec setup Set up OpenSpec with the org-flow schema in the metarepo
|
|
514
583
|
atticus openspec check Check the OpenSpec version and validate every change and spec
|
|
584
|
+
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)
|
|
585
|
+
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
586
|
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]
|
|
587
|
+
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
588
|
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
589
|
atticus next [--all] [--json] The next step to take, its command and slash command, and why; from the files only
|
|
590
|
+
[--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
591
|
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
|
-
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
|
|
592
|
+
atticus <step> --max-tokens n On the same steps: the model's limit. The whole prompt fits n tokens (counted as characters / 4 and characters outside ASCII one each, 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
593
|
atticus workspace sync Clone or update the base clone of every repo in the manifests
|
|
522
594
|
[--repos a,b] Only these repos
|
|
595
|
+
[--from <folder>] Copy a missing base clone from your own clone of it in that folder: no network, your clone only read
|
|
596
|
+
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
597
|
atticus workspace open <change> Create the change's worktrees, repos.yaml and editor workspaces
|
|
524
598
|
--repos a,b The repos the change touches
|
|
525
599
|
atticus workspace prune <change> Remove worktrees whose PRs merged or closed
|
|
@@ -531,7 +605,7 @@ Usage:
|
|
|
531
605
|
atticus ui [--port n] [--open] Start the app on this machine (127.0.0.1); Ctrl+C stops it
|
|
532
606
|
[--embed vscode] Let a VS Code panel show the app (the Atticus extension starts it so)
|
|
533
607
|
[--parent pid] Stop when that process ends (an editor that started it)
|
|
534
|
-
[--show-token] Print the session token, for an assistant or a script (an editor that starts it gets it)
|
|
608
|
+
[--show-token] Print the session token, for an assistant or a script (an editor that starts it gets it); it never approves a PR, push, merge or message (ADR 0186)
|
|
535
609
|
[--full] Every page a tab of its section, and the menu's More pages open
|
|
536
610
|
atticus --version Print the version
|
|
537
611
|
atticus --help Show this help
|
|
@@ -577,7 +651,8 @@ async function main(given, io, o = {}) {
|
|
|
577
651
|
...new Set(argv.filter((a) => a.startsWith("--")).map((a) => a.slice(2).split("=")[0]))
|
|
578
652
|
];
|
|
579
653
|
const rootAt = argv.indexOf("--root");
|
|
580
|
-
const
|
|
654
|
+
const rootEq = argv.find((a) => a.startsWith("--root="));
|
|
655
|
+
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
656
|
const log = () => isMetarepoRoot(root) ? createLog(root, o.quiet ? { level: "warn" } : {}) : void 0;
|
|
582
657
|
try {
|
|
583
658
|
const code = await dispatch(argv, io);
|
|
@@ -610,7 +685,7 @@ function positionalsAt(argv) {
|
|
|
610
685
|
const { tokens } = parseArgs({
|
|
611
686
|
args: argv,
|
|
612
687
|
allowPositionals: true,
|
|
613
|
-
options:
|
|
688
|
+
options: optionsFor(argv),
|
|
614
689
|
strict: false,
|
|
615
690
|
tokens: true
|
|
616
691
|
});
|
|
@@ -639,186 +714,18 @@ async function dispatch(argv, io) {
|
|
|
639
714
|
return 2;
|
|
640
715
|
}
|
|
641
716
|
}
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
executor: { type: "string" },
|
|
651
|
-
fixture: { type: "string" },
|
|
652
|
-
force: { type: "boolean" },
|
|
653
|
-
draft: { type: "boolean" },
|
|
654
|
-
story: { type: "string" },
|
|
655
|
-
gaps: { type: "boolean" },
|
|
656
|
-
full: { type: "boolean" },
|
|
657
|
-
"dry-run": { type: "boolean" },
|
|
658
|
-
json: { type: "boolean" },
|
|
659
|
-
limit: { type: "string" },
|
|
660
|
-
filter: { type: "string" },
|
|
661
|
-
"batch-tokens": { type: "string" },
|
|
662
|
-
"max-tokens": { type: "string" },
|
|
663
|
-
// atticus probe (ADR 0124 addendum A-probe).
|
|
664
|
-
assistant: { type: "string" },
|
|
665
|
-
pasted: { type: "boolean" },
|
|
666
|
-
"context-tokens": { type: "string" },
|
|
667
|
-
"whole-context": { type: "boolean" },
|
|
668
|
-
search: { type: "boolean" },
|
|
669
|
-
regex: { type: "boolean" },
|
|
670
|
-
"ignore-case": { type: "boolean" },
|
|
671
|
-
paths: { type: "string" },
|
|
672
|
-
// atticus context (ADR 0107 addendum): the context tools.
|
|
673
|
-
input: { type: "string" },
|
|
674
|
-
run: { type: "string" },
|
|
675
|
-
round: { type: "string" },
|
|
676
|
-
hops: { type: "string" },
|
|
677
|
-
line: { type: "string" },
|
|
678
|
-
around: { type: "string" },
|
|
679
|
-
depth: { type: "string" },
|
|
680
|
-
by: { type: "string" },
|
|
681
|
-
as: { type: "string" },
|
|
682
|
-
group: { type: "string", multiple: true },
|
|
683
|
-
channel: { type: "string" },
|
|
684
|
-
send: { type: "boolean" },
|
|
685
|
-
site: { type: "string" },
|
|
686
|
-
reason: { type: "string" },
|
|
687
|
-
focus: { type: "string" },
|
|
688
|
-
format: { type: "string" },
|
|
689
|
-
out: { type: "string" },
|
|
690
|
-
area: { type: "string" },
|
|
691
|
-
iteration: { type: "string" },
|
|
692
|
-
port: { type: "string" },
|
|
693
|
-
open: { type: "boolean" },
|
|
694
|
-
"show-token": { type: "boolean" },
|
|
695
|
-
embed: { type: "string" },
|
|
696
|
-
parent: { type: "string" },
|
|
697
|
-
host: { type: "string" },
|
|
698
|
-
catalog: { type: "string" },
|
|
699
|
-
"from-catalog": { type: "boolean" },
|
|
700
|
-
from: { type: "string" },
|
|
701
|
-
package: { type: "string" },
|
|
702
|
-
jars: { type: "string", multiple: true },
|
|
703
|
-
learn: { type: "boolean" },
|
|
704
|
-
type: { type: "string" },
|
|
705
|
-
template: { type: "string" },
|
|
706
|
-
like: { type: "string" },
|
|
707
|
-
impact: { type: "string" },
|
|
708
|
-
id: { type: "string" },
|
|
709
|
-
owner: { type: "string", multiple: true },
|
|
710
|
-
system: { type: "string", multiple: true },
|
|
711
|
-
base: { type: "string" },
|
|
712
|
-
repo: { type: "string" },
|
|
713
|
-
gate: { type: "string" },
|
|
714
|
-
lens: { type: "string" },
|
|
715
|
-
model: { type: "string" },
|
|
716
|
-
"asked-of": { type: "string" },
|
|
717
|
-
edit: { type: "string" },
|
|
718
|
-
description: { type: "string" },
|
|
719
|
-
title: { type: "string" },
|
|
720
|
-
name: { type: "string" },
|
|
721
|
-
attempts: { type: "string" },
|
|
722
|
-
users: { type: "string" },
|
|
723
|
-
language: { type: "string" },
|
|
724
|
-
replace: { type: "boolean" },
|
|
725
|
-
into: { type: "string" },
|
|
726
|
-
level: { type: "string" },
|
|
727
|
-
mode: { type: "string" },
|
|
728
|
-
approve: { type: "boolean" },
|
|
729
|
-
pr: { type: "string" },
|
|
730
|
-
"pr-url": { type: "string" },
|
|
731
|
-
change: { type: "string" },
|
|
732
|
-
check: { type: "boolean" },
|
|
733
|
-
resume: { type: "string" },
|
|
734
|
-
eval: { type: "string" },
|
|
735
|
-
epic: { type: "string" },
|
|
736
|
-
"no-ai": { type: "boolean" },
|
|
737
|
-
"openspec-store": { type: "boolean" },
|
|
738
|
-
"no-drift": { type: "boolean" },
|
|
739
|
-
warnings: { type: "boolean" },
|
|
740
|
-
"no-rescan": { type: "boolean" },
|
|
741
|
-
refresh: { type: "string" },
|
|
742
|
-
export: { type: "string" },
|
|
743
|
-
result: { type: "string", multiple: true },
|
|
744
|
-
skip: { type: "boolean" },
|
|
745
|
-
note: { type: "string" },
|
|
746
|
-
for: { type: "string" },
|
|
747
|
-
with: { type: "string" },
|
|
748
|
-
inputs: { type: "string" },
|
|
749
|
-
"fill-only": { type: "boolean" },
|
|
750
|
-
platform: { type: "string" },
|
|
751
|
-
ref: { type: "string" },
|
|
752
|
-
task: { type: "string" },
|
|
753
|
-
latest: { type: "boolean" },
|
|
754
|
-
org: { type: "string" },
|
|
755
|
-
framework: { type: "string" },
|
|
756
|
-
csv: { type: "boolean" },
|
|
757
|
-
"no-write": { type: "boolean" },
|
|
758
|
-
junit: { type: "string" },
|
|
759
|
-
summary: { type: "string" },
|
|
760
|
-
"json-out": { type: "string" },
|
|
761
|
-
"warn-only": { type: "boolean" },
|
|
762
|
-
write: { type: "string" },
|
|
763
|
-
path: { type: "string" },
|
|
764
|
-
file: { type: "string" },
|
|
765
|
-
submodule: { type: "boolean" },
|
|
766
|
-
save: { type: "boolean" },
|
|
767
|
-
only: { type: "string" },
|
|
768
|
-
"verified-only": { type: "boolean" },
|
|
769
|
-
unverified: { type: "boolean" },
|
|
770
|
-
set: { type: "string", multiple: true },
|
|
771
|
-
find: { type: "string" },
|
|
772
|
-
drift: { type: "string", multiple: true },
|
|
773
|
-
journey: { type: "string" },
|
|
774
|
-
release: { type: "string" },
|
|
775
|
-
target: { type: "string" },
|
|
776
|
-
answer: { type: "string" },
|
|
777
|
-
lesson: { type: "string" },
|
|
778
|
-
step: { type: "string" },
|
|
779
|
-
agent: { type: "string", multiple: true },
|
|
780
|
-
runs: { type: "string" },
|
|
781
|
-
audience: { type: "string" },
|
|
782
|
-
value: { type: "string" },
|
|
783
|
-
bench: { type: "string" },
|
|
784
|
-
cache: { type: "string" },
|
|
785
|
-
batch: { type: "string" },
|
|
786
|
-
specs: { type: "boolean" },
|
|
787
|
-
estate: { type: "string" },
|
|
788
|
-
accept: { type: "boolean" },
|
|
789
|
-
// atticus repo add / repo describe (ADR 0128)
|
|
790
|
-
reject: { type: "boolean" },
|
|
791
|
-
cites: { type: "string" },
|
|
792
|
-
drafted: { type: "string" },
|
|
793
|
-
"no-description": { type: "boolean" },
|
|
794
|
-
component: { type: "string" },
|
|
795
|
-
tag: { type: "string" },
|
|
796
|
-
source: { type: "string" },
|
|
797
|
-
"from-figma": { type: "string" },
|
|
798
|
-
replaces: { type: "string" },
|
|
799
|
-
promote: { type: "string" },
|
|
800
|
-
prototype: { type: "string" },
|
|
801
|
-
off: { type: "boolean" },
|
|
802
|
-
surface: { type: "string" },
|
|
803
|
-
session: { type: "string" },
|
|
804
|
-
command: { type: "string" },
|
|
805
|
-
markdown: { type: "boolean" },
|
|
806
|
-
dir: { type: "string" },
|
|
807
|
-
commit: { type: "string" },
|
|
808
|
-
confirm: { type: "string" },
|
|
809
|
-
exclude: { type: "string" },
|
|
810
|
-
routed: { type: "string" },
|
|
811
|
-
// atticus map (ADR 0124 §4)
|
|
812
|
-
estimate: { type: "boolean" },
|
|
813
|
-
next: { type: "boolean" },
|
|
814
|
-
copy: { type: "boolean" },
|
|
815
|
-
facts: { type: "string" }
|
|
816
|
-
};
|
|
817
|
-
async function dispatchCommand(argv, io) {
|
|
717
|
+
async function dispatchCommand(raw, io) {
|
|
718
|
+
const options = optionsFor(raw);
|
|
719
|
+
const switched = (await import("./chunk-ZIUFM5HT.js")).switchValues(raw, options);
|
|
720
|
+
if (switched.error !== void 0) {
|
|
721
|
+
io.err(switched.error);
|
|
722
|
+
return 2;
|
|
723
|
+
}
|
|
724
|
+
const argv = switched.argv;
|
|
818
725
|
const { values, positionals } = parseArgs({
|
|
819
726
|
args: argv,
|
|
820
727
|
allowPositionals: true,
|
|
821
|
-
options
|
|
728
|
+
options,
|
|
822
729
|
strict: false
|
|
823
730
|
});
|
|
824
731
|
if (values.version) {
|
|
@@ -829,19 +736,27 @@ async function dispatchCommand(argv, io) {
|
|
|
829
736
|
const refused = await checkFlags(argv, positionals, io);
|
|
830
737
|
if (refused !== void 0)
|
|
831
738
|
return refused;
|
|
739
|
+
if (process.env.ATTICUS_ACP_SESSION) {
|
|
740
|
+
const { personOnlyWhy } = await import("./chunk-34S2WGOB.js");
|
|
741
|
+
const why = personOnlyWhy(argv);
|
|
742
|
+
if (why) {
|
|
743
|
+
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.`);
|
|
744
|
+
return 2;
|
|
745
|
+
}
|
|
746
|
+
}
|
|
832
747
|
if (group === "help" || values.help || !group) {
|
|
833
|
-
const { helpCommand } = await import("./chunk-
|
|
748
|
+
const { helpCommand } = await import("./chunk-24XLDU72.js");
|
|
834
749
|
return helpCommand(group === "help" ? positionals.slice(1) : positionals, HELP, io, {
|
|
835
750
|
all: values.all === true
|
|
836
751
|
});
|
|
837
752
|
}
|
|
838
753
|
if (group === "legacy") {
|
|
839
|
-
const { legacyHelp } = await import("./chunk-
|
|
754
|
+
const { legacyHelp } = await import("./chunk-24XLDU72.js");
|
|
840
755
|
io.out(legacyHelp(HELP, { all: values.all === true }));
|
|
841
756
|
return 0;
|
|
842
757
|
}
|
|
843
758
|
if (group === "commands") {
|
|
844
|
-
const { AREAS, commandCatalog: commandCatalog2 } = await import("./chunk-
|
|
759
|
+
const { AREAS, commandCatalog: commandCatalog2 } = await import("./chunk-ZGULQAPZ.js");
|
|
845
760
|
const commands = commandCatalog2(HELP);
|
|
846
761
|
if (values.json === true)
|
|
847
762
|
io.out(JSON.stringify({ areas: AREAS, commands }, null, 2));
|
|
@@ -873,13 +788,13 @@ async function dispatchCommand(argv, io) {
|
|
|
873
788
|
}
|
|
874
789
|
return catalogDiff(resolve(arg), resolve(b), values.json === true, io);
|
|
875
790
|
}
|
|
876
|
-
const root = resolve(typeof values.root === "string" ? values.root : process.cwd());
|
|
791
|
+
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
792
|
if (!runsNoAi(group, command))
|
|
878
793
|
await setUpAi();
|
|
879
794
|
if (group === "next")
|
|
880
|
-
return (await import("./chunk-
|
|
795
|
+
return (await import("./chunk-2SKB4O2E.js")).nextCommand(root, { json: values.json === true, all: values.all === true, queue: values.queue === true }, io);
|
|
881
796
|
if (values.handoff === true && (await import("./chunk-KQDZXGNR.js")).isHandoffStep(group, command))
|
|
882
|
-
return (await import("./chunk-
|
|
797
|
+
return (await import("./chunk-JLUCKAEL.js")).handoffStep(root, argv, io, dispatch);
|
|
883
798
|
const given = typeof values.by === "string" && values.by.trim() ? values.by : void 0;
|
|
884
799
|
const person = !given && RECORDS_A_PERSON.has(group) ? await gitUser(root) : void 0;
|
|
885
800
|
let warned = false;
|
|
@@ -894,7 +809,7 @@ async function dispatchCommand(argv, io) {
|
|
|
894
809
|
};
|
|
895
810
|
const repoIds = typeof values.repos === "string" ? values.repos.split(",").map((s) => s.trim()).filter(Boolean) : void 0;
|
|
896
811
|
if (group === "change" && command === "needs" || group === "needs") {
|
|
897
|
-
const handled = await (await import("./chunk-
|
|
812
|
+
const handled = await (await import("./chunk-G6X77UJZ.js")).needsCli(root, positionals, values, io, who);
|
|
898
813
|
if (handled !== void 0)
|
|
899
814
|
return handled;
|
|
900
815
|
}
|
|
@@ -918,7 +833,7 @@ async function dispatchCommand(argv, io) {
|
|
|
918
833
|
}, io, run);
|
|
919
834
|
}
|
|
920
835
|
if (group === "runs") {
|
|
921
|
-
const m = await import("./chunk-
|
|
836
|
+
const m = await import("./chunk-O66DM6DJ.js");
|
|
922
837
|
if (command === "show") {
|
|
923
838
|
const id = positionals[2];
|
|
924
839
|
if (!id) {
|
|
@@ -939,7 +854,7 @@ async function dispatchCommand(argv, io) {
|
|
|
939
854
|
}, io);
|
|
940
855
|
}
|
|
941
856
|
if (group === "history") {
|
|
942
|
-
const m = await import("./chunk-
|
|
857
|
+
const m = await import("./chunk-ZZK56BLP.js");
|
|
943
858
|
const text = (v) => typeof v === "string" && v.trim() ? v : void 0;
|
|
944
859
|
if (command === "add") {
|
|
945
860
|
if (process.stdin.isTTY) {
|
|
@@ -982,6 +897,10 @@ async function dispatchCommand(argv, io) {
|
|
|
982
897
|
if (handled !== void 0)
|
|
983
898
|
return handled;
|
|
984
899
|
}
|
|
900
|
+
if (group === "repo" && command === "rename") {
|
|
901
|
+
const { repoRename } = await import("./chunk-H7KM7LZE.js");
|
|
902
|
+
return repoRename(root, positionals[2], positionals[3], io);
|
|
903
|
+
}
|
|
985
904
|
if (group === "repo" && (command === "add" || command === "describe")) {
|
|
986
905
|
const m = await loadRepoCommands();
|
|
987
906
|
const str2 = (v) => typeof v === "string" ? v : void 0;
|
|
@@ -1005,6 +924,123 @@ async function dispatchCommand(argv, io) {
|
|
|
1005
924
|
json: values.json === true
|
|
1006
925
|
}, io);
|
|
1007
926
|
}
|
|
927
|
+
if (group === "repo-type" && command === "note") {
|
|
928
|
+
const m = await loadRepoTypeCommands();
|
|
929
|
+
return m.repoTypeNote(root, arg, {
|
|
930
|
+
...typeof values.add === "string" ? { add: values.add } : {},
|
|
931
|
+
org: values["org-wide"] === true
|
|
932
|
+
}, io);
|
|
933
|
+
}
|
|
934
|
+
if (group === "types") {
|
|
935
|
+
const t = await import("./chunk-FFTRTL6R.js");
|
|
936
|
+
const text = (v) => typeof v === "string" ? v : void 0;
|
|
937
|
+
if (!command || command === "list")
|
|
938
|
+
return t.typesListCommand(root, { json: values.json === true }, io);
|
|
939
|
+
if (command === "add")
|
|
940
|
+
return t.typesAddCommand(root, positionals[2], {
|
|
941
|
+
...text(values.name) ? { name: text(values.name) } : {},
|
|
942
|
+
...text(values.description) ? { description: text(values.description) } : {},
|
|
943
|
+
...text(values.badge) ? { badge: text(values.badge) } : {},
|
|
944
|
+
...text(values.shape) ? { shape: text(values.shape) } : {},
|
|
945
|
+
...text(values.colour) ? { colour: text(values.colour) } : {},
|
|
946
|
+
...Array.isArray(values.owner) && text(values.owner[0]) ? { owner: text(values.owner[0]) } : {}
|
|
947
|
+
}, io);
|
|
948
|
+
if (command === "notes")
|
|
949
|
+
return t.typesNotesCommand(root, positionals[2], io);
|
|
950
|
+
io.err("atticus types list | add <id> --name --description | notes <id>");
|
|
951
|
+
return 2;
|
|
952
|
+
}
|
|
953
|
+
if (group === "connect") {
|
|
954
|
+
const text = (v) => typeof v === "string" ? v : void 0;
|
|
955
|
+
const sys = Array.isArray(values.system) ? text(values.system[0]) : text(values.system);
|
|
956
|
+
if (command === "match") {
|
|
957
|
+
const m = await import("./chunk-6H3Z5JHH.js");
|
|
958
|
+
const l = await import("./chunk-KN5BXMWN.js");
|
|
959
|
+
return m.connectMatchCommand(root, positionals[2], {
|
|
960
|
+
...text(values.to) ? { to: text(values.to) } : {},
|
|
961
|
+
...sys ? { system: sys } : {},
|
|
962
|
+
...text(values.mode) ? { mode: text(values.mode) } : {},
|
|
963
|
+
...values.read === true ? { read: true } : {},
|
|
964
|
+
...values.json === true ? { json: true } : {},
|
|
965
|
+
candidates: (from, to) => l.candidatesOf(root, from, to)
|
|
966
|
+
}, io);
|
|
967
|
+
}
|
|
968
|
+
io.err("atticus connect match <repo> --to <repo> | --system <id> [--mode copilot-acp|hand-off]");
|
|
969
|
+
return 2;
|
|
970
|
+
}
|
|
971
|
+
if (group === "skills") {
|
|
972
|
+
const k = await import("./chunk-INQHESFB.js");
|
|
973
|
+
const text = (v) => typeof v === "string" ? v : void 0;
|
|
974
|
+
if (!command || command === "list")
|
|
975
|
+
return k.skillsListCommand(root, { json: values.json === true }, io);
|
|
976
|
+
if (command === "write")
|
|
977
|
+
return k.skillsWriteCommand(root, { check: values.check === true }, io);
|
|
978
|
+
if (command === "import")
|
|
979
|
+
return k.skillsImportCommand(root, positionals[2], {
|
|
980
|
+
...text(values.team) ? { team: text(values.team) } : {},
|
|
981
|
+
...text(values.at) ? { at: text(values.at) } : {},
|
|
982
|
+
...text(values.only) ? { only: text(values.only) } : {},
|
|
983
|
+
...values.replace === true ? { replace: true } : {}
|
|
984
|
+
}, io);
|
|
985
|
+
io.err("atticus skills list | import | write [--check]");
|
|
986
|
+
return 2;
|
|
987
|
+
}
|
|
988
|
+
if (group === "rules") {
|
|
989
|
+
const r = await import("./chunk-66PPNOON.js");
|
|
990
|
+
const text = (v) => typeof v === "string" ? v : void 0;
|
|
991
|
+
const scope = {
|
|
992
|
+
...values["org-wide"] === true ? { org: true } : {},
|
|
993
|
+
...text(values.type) ? { type: text(values.type) } : {},
|
|
994
|
+
...text(values.repo) ? { repo: text(values.repo) } : {},
|
|
995
|
+
// An imported copy for activate: --team <team> --type <type> (import names its own).
|
|
996
|
+
...text(values.team) && command !== "import" ? { imported: text(values.team) } : {}
|
|
997
|
+
};
|
|
998
|
+
if (!command || command === "list")
|
|
999
|
+
return r.rulesListCommand(root, positionals[2], { json: values.json === true }, io);
|
|
1000
|
+
if (command === "add")
|
|
1001
|
+
return r.rulesAddCommand(root, scope, {
|
|
1002
|
+
...text(values.key) ? { key: text(values.key) } : {},
|
|
1003
|
+
...text(values.rule) ? { rule: text(values.rule) } : {},
|
|
1004
|
+
...text(values.files) ? { files: text(values.files) } : {},
|
|
1005
|
+
...text(values.example) ? { example: text(values.example) } : {},
|
|
1006
|
+
...values.draft === true ? { draft: true } : {},
|
|
1007
|
+
...text(values.by) ? { by: text(values.by) } : {}
|
|
1008
|
+
}, io);
|
|
1009
|
+
if (command === "activate" || command === "off")
|
|
1010
|
+
return r.rulesSetCommand(root, command, positionals[2], scope, { ...text(values.reason) ? { reason: text(values.reason) } : {} }, io);
|
|
1011
|
+
if (command === "draft")
|
|
1012
|
+
return r.rulesDraftCommand(root, {
|
|
1013
|
+
...text(values.type) ? { type: text(values.type) } : {},
|
|
1014
|
+
...text(values.repos) ? { repos: text(values.repos) } : {},
|
|
1015
|
+
...text(values.repo) ? { repo: text(values.repo) } : {},
|
|
1016
|
+
...text(values.about) ? { about: text(values.about) } : {},
|
|
1017
|
+
...text(values.mode) ? { mode: text(values.mode) } : {}
|
|
1018
|
+
}, io);
|
|
1019
|
+
if (command === "try")
|
|
1020
|
+
return r.rulesTryCommand(root, positionals[2], {
|
|
1021
|
+
...text(values.rule) ? { rule: text(values.rule) } : {},
|
|
1022
|
+
...text(values.files) && /^\d+$/.test(text(values.files)) ? { files: Number(text(values.files)) } : {},
|
|
1023
|
+
...values.compare === true ? { compare: true } : {},
|
|
1024
|
+
...text(values.mode) ? { mode: text(values.mode) } : {}
|
|
1025
|
+
}, io);
|
|
1026
|
+
if (command === "import")
|
|
1027
|
+
return r.rulesImportCommand(root, positionals[2], {
|
|
1028
|
+
...text(values.type) ? { type: text(values.type) } : {},
|
|
1029
|
+
...text(values.team) ? { team: text(values.team) } : {},
|
|
1030
|
+
...text(values.at) ? { at: text(values.at) } : {}
|
|
1031
|
+
}, io);
|
|
1032
|
+
if (command === "notes")
|
|
1033
|
+
return r.rulesNotesCommand(root, {
|
|
1034
|
+
...text(values.type) ? { type: text(values.type) } : {},
|
|
1035
|
+
...values.save === true ? { save: true } : {}
|
|
1036
|
+
}, io);
|
|
1037
|
+
io.err("atticus rules list | add | activate | off | draft | try | import | notes (atticus help rules)");
|
|
1038
|
+
return 2;
|
|
1039
|
+
}
|
|
1040
|
+
if (group === "repo-type" && command === "rules") {
|
|
1041
|
+
const m = await loadRepoTypeCommands();
|
|
1042
|
+
return m.repoTypeRules(root, { write: values.save === true, json: values.json === true }, io);
|
|
1043
|
+
}
|
|
1008
1044
|
if (group === "repo-type" && (command === "detect" || command === "new")) {
|
|
1009
1045
|
const m = await loadRepoTypeCommands();
|
|
1010
1046
|
const from = typeof values.from === "string" ? values.from : void 0;
|
|
@@ -1044,6 +1080,41 @@ async function dispatchCommand(argv, io) {
|
|
|
1044
1080
|
throw e;
|
|
1045
1081
|
}
|
|
1046
1082
|
}
|
|
1083
|
+
if (group === "estate" && command === "fresh") {
|
|
1084
|
+
const m = await import("./chunk-AFZ3QA6W.js");
|
|
1085
|
+
return m.estateFresh(root, { json: values.json === true, all: values.all === true }, io);
|
|
1086
|
+
}
|
|
1087
|
+
if (group === "estate" && command === "shared") {
|
|
1088
|
+
const m = await import("./chunk-MZCGSXVR.js");
|
|
1089
|
+
const json2 = values.json === true;
|
|
1090
|
+
const text = (v) => typeof v === "string" && v.trim() ? v : void 0;
|
|
1091
|
+
if (arg === "import")
|
|
1092
|
+
return m.sharedImport(root, positionals[3], {
|
|
1093
|
+
...text(values.team) ? { team: text(values.team) } : {},
|
|
1094
|
+
...text(values.system) ? { system: text(values.system) } : {},
|
|
1095
|
+
...text(values.name) ? { name: text(values.name) } : {},
|
|
1096
|
+
...text(values.commit) ? { commit: text(values.commit) } : {},
|
|
1097
|
+
json: json2
|
|
1098
|
+
}, io);
|
|
1099
|
+
if (arg === "refresh")
|
|
1100
|
+
return m.sharedRefresh(root, positionals[3], {
|
|
1101
|
+
...positionals[4] ? { dir: positionals[4] } : {},
|
|
1102
|
+
...text(values.commit) ? { commit: text(values.commit) } : {},
|
|
1103
|
+
json: json2
|
|
1104
|
+
}, io);
|
|
1105
|
+
if (arg === "list" || arg === void 0)
|
|
1106
|
+
return m.sharedList(root, { json: json2 }, io);
|
|
1107
|
+
io.err("Usage: atticus join shared import|refresh|list (atticus help join)");
|
|
1108
|
+
return 2;
|
|
1109
|
+
}
|
|
1110
|
+
if (group === "estate" && command === "contracts") {
|
|
1111
|
+
const m = await import("./chunk-BTY3HZBO.js");
|
|
1112
|
+
return m.joinContracts(root, { json: values.json === true }, io);
|
|
1113
|
+
}
|
|
1114
|
+
if (group === "estate" && command === "measure") {
|
|
1115
|
+
const m = await import("./chunk-FZOJFH7Q.js");
|
|
1116
|
+
return m.joinMeasure(root, arg, { json: values.json === true }, io);
|
|
1117
|
+
}
|
|
1047
1118
|
if (group === "estate" && (command === "join" || command === "flow" || command === "lineage")) {
|
|
1048
1119
|
const m = await loadEstateCommands();
|
|
1049
1120
|
const field = positionals[3];
|
|
@@ -1057,6 +1128,14 @@ async function dispatchCommand(argv, io) {
|
|
|
1057
1128
|
}
|
|
1058
1129
|
return command === "flow" ? m.estateFlowCommand(root, arg, o, io) : m.estateLineage(root, arg, field, o, io);
|
|
1059
1130
|
}
|
|
1131
|
+
if (group === "spec" && (command === "seed" || command === "accept")) {
|
|
1132
|
+
const m = await import("./chunk-PPD7HTDP.js");
|
|
1133
|
+
if (!arg) {
|
|
1134
|
+
io.err(command === "seed" ? "Usage: atticus spec seed <repo> [--json]" : "Usage: atticus spec accept <repo> [--by you]");
|
|
1135
|
+
return 2;
|
|
1136
|
+
}
|
|
1137
|
+
return command === "seed" ? m.specSeed(root, arg, { json: values.json === true }, io) : m.specAccept(root, arg, { by: who() }, io);
|
|
1138
|
+
}
|
|
1060
1139
|
if (group === "spec" && (command === "draft" || command === "check")) {
|
|
1061
1140
|
const text = (v) => typeof v === "string" ? v : void 0;
|
|
1062
1141
|
const m = await loadSpecCommands();
|
|
@@ -1094,35 +1173,171 @@ async function dispatchCommand(argv, io) {
|
|
|
1094
1173
|
io.err("Usage: atticus map render <repo> [--json]");
|
|
1095
1174
|
return 2;
|
|
1096
1175
|
}
|
|
1097
|
-
const { mapRenderCommand } = await import("./chunk-
|
|
1176
|
+
const { mapRenderCommand } = await import("./chunk-Y2EQNWKV.js");
|
|
1098
1177
|
return mapRenderCommand(root, repo, { json: values.json === true }, io);
|
|
1099
1178
|
}
|
|
1179
|
+
const models = values.models === "entries" || values.models === "reachable" || values.models === "all" ? values.models : void 0;
|
|
1180
|
+
if (group === "map" && values.models !== void 0 && !models) {
|
|
1181
|
+
io.err(`--models is entries, reachable or all (got ${String(values.models)}).`);
|
|
1182
|
+
return 2;
|
|
1183
|
+
}
|
|
1184
|
+
const runMapAll = async (o) => {
|
|
1185
|
+
if (process.env.ATTICUS_ACP_SESSION && !o.dryRun) {
|
|
1186
|
+
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.");
|
|
1187
|
+
return 2;
|
|
1188
|
+
}
|
|
1189
|
+
const { mapAllCommand } = await import("./chunk-VNU26RCO.js");
|
|
1190
|
+
const { copyToClipboard } = await import("./chunk-S5LSDXV4.js");
|
|
1191
|
+
const typed = [];
|
|
1192
|
+
const { createInterface } = await import("node:readline");
|
|
1193
|
+
const rl = process.stdin.readable && !o.dryRun ? createInterface({ input: process.stdin, terminal: false }) : void 0;
|
|
1194
|
+
rl?.on("line", (l) => typed.push(l));
|
|
1195
|
+
const ac = new AbortController();
|
|
1196
|
+
const onInt = () => {
|
|
1197
|
+
if (ac.signal.aborted)
|
|
1198
|
+
process.exit(130);
|
|
1199
|
+
ac.abort();
|
|
1200
|
+
io.err("Stopping after this step (Ctrl+C again stops at once)...");
|
|
1201
|
+
};
|
|
1202
|
+
process.on("SIGINT", onInt);
|
|
1203
|
+
try {
|
|
1204
|
+
return await mapAllCommand(root, o, io, {
|
|
1205
|
+
clipboard: copyToClipboard,
|
|
1206
|
+
input: { take: () => typed.shift() },
|
|
1207
|
+
signal: ac.signal,
|
|
1208
|
+
makeRuntime: async () => (await runtimeForCli(root, { mode: "model", handoffValidate: async () => [] })).runtime,
|
|
1209
|
+
// ADR 0171: Copilot driven through its Agent Client Protocol, one new session a part.
|
|
1210
|
+
makeAcp: async () => (await import("./chunk-JAVI7JSP.js")).acpStepRunner(root)
|
|
1211
|
+
});
|
|
1212
|
+
} catch (e) {
|
|
1213
|
+
if (e instanceof (await loadAi()).RuntimeConfigError) {
|
|
1214
|
+
io.err(e.message);
|
|
1215
|
+
return 2;
|
|
1216
|
+
}
|
|
1217
|
+
throw e;
|
|
1218
|
+
} finally {
|
|
1219
|
+
process.off("SIGINT", onInt);
|
|
1220
|
+
rl?.close();
|
|
1221
|
+
}
|
|
1222
|
+
};
|
|
1223
|
+
if (group === "map" && !command && values.all === true) {
|
|
1224
|
+
const text = (v) => typeof v === "string" ? v : void 0;
|
|
1225
|
+
const count = (flag) => {
|
|
1226
|
+
const raw2 = text(values[flag]);
|
|
1227
|
+
if (raw2 === void 0)
|
|
1228
|
+
return void 0;
|
|
1229
|
+
const n = Number(raw2);
|
|
1230
|
+
return Number.isInteger(n) && n > 0 ? n : NaN;
|
|
1231
|
+
};
|
|
1232
|
+
const numbers = {
|
|
1233
|
+
maxParts: count("max-parts"),
|
|
1234
|
+
budgetTokens: count("budget-tokens"),
|
|
1235
|
+
idle: count("idle")
|
|
1236
|
+
};
|
|
1237
|
+
for (const [k, v] of Object.entries(numbers))
|
|
1238
|
+
if (Number.isNaN(v)) {
|
|
1239
|
+
io.err(`--${k === "maxParts" ? "max-parts" : k === "budgetTokens" ? "budget-tokens" : "idle"} is a whole number above 0.`);
|
|
1240
|
+
return 2;
|
|
1241
|
+
}
|
|
1242
|
+
const asked = text(values.mode);
|
|
1243
|
+
if (asked && !["model", "hand-off", "copilot", "copilot-acp"].includes(asked)) {
|
|
1244
|
+
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).");
|
|
1245
|
+
return 2;
|
|
1246
|
+
}
|
|
1247
|
+
return runMapAll({
|
|
1248
|
+
...text(values.repos) ? {
|
|
1249
|
+
repos: text(values.repos).split(",").map((x) => x.trim()).filter(Boolean)
|
|
1250
|
+
} : {},
|
|
1251
|
+
stale: values.stale === true,
|
|
1252
|
+
gaps: values.gaps === true,
|
|
1253
|
+
force: values.force === true,
|
|
1254
|
+
dryRun: values["dry-run"] === true,
|
|
1255
|
+
json: values.json === true,
|
|
1256
|
+
...asked ? {
|
|
1257
|
+
mode: asked === "model" ? "model" : asked === "copilot-acp" ? "copilot-acp" : "copilot"
|
|
1258
|
+
} : {},
|
|
1259
|
+
...numbers.maxParts ? { maxParts: numbers.maxParts } : {},
|
|
1260
|
+
...numbers.budgetTokens ? { budgetTokens: numbers.budgetTokens } : {},
|
|
1261
|
+
...numbers.idle ? { idleMinutes: numbers.idle } : {},
|
|
1262
|
+
...models ? { models } : {}
|
|
1263
|
+
});
|
|
1264
|
+
}
|
|
1100
1265
|
if (group === "map") {
|
|
1101
1266
|
const repo = command;
|
|
1102
1267
|
if (!repo) {
|
|
1103
|
-
io.err("Usage: atticus map <repo> [--estimate] [--handoff | --copy [--answer <file>] | --mode m] [--next] [--max-tokens n] [--force]");
|
|
1268
|
+
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
1269
|
return 2;
|
|
1105
1270
|
}
|
|
1106
1271
|
const text = (v) => typeof v === "string" ? v : void 0;
|
|
1107
|
-
|
|
1272
|
+
if (values.spent !== void 0 || values.sessions !== void 0) {
|
|
1273
|
+
const { mapSpent } = await import("./chunk-BQ4SQQC6.js");
|
|
1274
|
+
return mapSpent(root, repo, {
|
|
1275
|
+
...text(values.spent) !== void 0 ? { spent: text(values.spent) } : {},
|
|
1276
|
+
...text(values.sessions) !== void 0 ? { sessions: text(values.sessions) } : {},
|
|
1277
|
+
...text(values.part) !== void 0 ? { part: text(values.part) } : {},
|
|
1278
|
+
...text(values.by) ? { by: text(values.by) } : {}
|
|
1279
|
+
}, io);
|
|
1280
|
+
}
|
|
1281
|
+
const { mapCommand } = await import("./chunk-CMDXGQTS.js");
|
|
1108
1282
|
const o = {
|
|
1109
1283
|
...text(values.dir) ? { dir: resolve(text(values.dir)) } : {},
|
|
1110
1284
|
...text(values.commit) ? { commit: text(values.commit) } : {},
|
|
1111
1285
|
...text(values.resume) ? { resume: text(values.resume) } : {},
|
|
1112
1286
|
...text(values.answer) !== void 0 ? { answer: text(values.answer) } : {},
|
|
1113
1287
|
estimate: values.estimate === true,
|
|
1288
|
+
gaps: values.gaps === true,
|
|
1289
|
+
rules: values.rules === true,
|
|
1290
|
+
// ADR 0161: with --gaps, the rest of one part of the read plan; ADR 0170: with --estimate
|
|
1291
|
+
// (as /atticus-map <repo> --part n runs it), that part whole.
|
|
1292
|
+
...(values.gaps === true || values.estimate === true) && Number.isInteger(Number(text(values.part))) && Number(text(values.part)) > 0 ? { part: Number(text(values.part)) } : {},
|
|
1114
1293
|
next: values.next === true,
|
|
1115
1294
|
force: values.force === true,
|
|
1116
1295
|
copy: values.copy === true,
|
|
1117
|
-
json: values.json === true
|
|
1296
|
+
json: values.json === true,
|
|
1297
|
+
...models ? { models } : {}
|
|
1118
1298
|
};
|
|
1119
|
-
|
|
1299
|
+
const acpAsked = text(values.mode) === "copilot-acp";
|
|
1300
|
+
if (!o.estimate && !o.copy && o.answer === void 0 && !o.next && o.resume === void 0) {
|
|
1301
|
+
const { copilotAcpByDefault } = await import("./chunk-JAVI7JSP.js");
|
|
1302
|
+
const core = await import("./chunk-VY72R2XZ.js");
|
|
1303
|
+
const op = await core.loadOrgPack(core.orgPackDirOf(root)).catch(() => void 0);
|
|
1304
|
+
if (acpAsked || !text(values.mode) && op && copilotAcpByDefault(op) && !o.json) {
|
|
1305
|
+
const idle = Number(text(values.idle));
|
|
1306
|
+
return runMapAll({
|
|
1307
|
+
repos: [repo],
|
|
1308
|
+
mode: "copilot-acp",
|
|
1309
|
+
force: o.force,
|
|
1310
|
+
gaps: o.gaps,
|
|
1311
|
+
dryRun: values["dry-run"] === true,
|
|
1312
|
+
...Number.isInteger(idle) && idle > 0 ? { idleMinutes: idle } : {},
|
|
1313
|
+
...models ? { models } : {},
|
|
1314
|
+
resumeAs: `atticus map ${repo}${o.gaps ? " --gaps" : ""}${o.force ? " --force" : ""} --mode copilot-acp`
|
|
1315
|
+
});
|
|
1316
|
+
}
|
|
1317
|
+
}
|
|
1318
|
+
if (o.estimate || o.gaps || o.rules && !o.copy && !text(values.mode))
|
|
1120
1319
|
return mapCommand(root, repo, o, io);
|
|
1320
|
+
const starting = !o.next && o.resume === void 0 && !o.copy && o.answer === void 0 && !text(values.mode);
|
|
1321
|
+
const { mapReader } = await import("./chunk-VNU26RCO.js");
|
|
1322
|
+
const reader = await mapReader(root);
|
|
1323
|
+
if (starting && !o.json && !o.dir && !o.commit && reader.loop) {
|
|
1324
|
+
const idle = Number(text(values.idle));
|
|
1325
|
+
return runMapAll({
|
|
1326
|
+
repos: [repo],
|
|
1327
|
+
force: o.force,
|
|
1328
|
+
dryRun: values["dry-run"] === true,
|
|
1329
|
+
...Number.isInteger(idle) && idle > 0 ? { idleMinutes: idle } : {},
|
|
1330
|
+
...models ? { models } : {},
|
|
1331
|
+
resumeAs: `atticus map ${repo}${o.force ? " --force" : ""}`
|
|
1332
|
+
});
|
|
1333
|
+
}
|
|
1121
1334
|
try {
|
|
1122
1335
|
const { runtime } = await runtimeForCli(root, {
|
|
1123
1336
|
...o.copy ? { mode: "hand-off" } : text(values.mode) ? { mode: text(values.mode) } : {},
|
|
1124
1337
|
handoffValidate: async () => []
|
|
1125
1338
|
});
|
|
1339
|
+
if ((starting || o.copy && o.answer === void 0 && !o.next) && runtime.kind === "hand-off")
|
|
1340
|
+
io.out(`runtime.yaml says ${reader.name}; if you use Copilot, run atticus map --all --repos ${repo} (it waits and copies each line).`);
|
|
1126
1341
|
return await mapCommand(root, repo, o, io, { runtime });
|
|
1127
1342
|
} catch (e) {
|
|
1128
1343
|
if (e instanceof (await loadAi()).RuntimeConfigError) {
|
|
@@ -1133,22 +1348,52 @@ async function dispatchCommand(argv, io) {
|
|
|
1133
1348
|
}
|
|
1134
1349
|
}
|
|
1135
1350
|
if (group === "verify") {
|
|
1136
|
-
const v =
|
|
1137
|
-
args: argv,
|
|
1138
|
-
allowPositionals: true,
|
|
1139
|
-
options: { ...OPTIONS, write: { type: "boolean" }, verbose: { type: "boolean" } },
|
|
1140
|
-
strict: false
|
|
1141
|
-
});
|
|
1351
|
+
const v = { values, positionals };
|
|
1142
1352
|
const repo = v.positionals[1];
|
|
1353
|
+
const text = (x) => typeof x === "string" ? x : void 0;
|
|
1354
|
+
if (repo === "audit" && (v.positionals[2] || v.values.report === true)) {
|
|
1355
|
+
const { auditCommand } = await import("./chunk-NXJ5URP6.js");
|
|
1356
|
+
const ids = (x) => text(x)?.split(",").map((y) => y.trim()).filter(Boolean);
|
|
1357
|
+
const size = Number(text(v.values.size));
|
|
1358
|
+
const interactive = process.stdin.isTTY && v.values.json !== true;
|
|
1359
|
+
let rl;
|
|
1360
|
+
const ask = interactive ? async (q) => {
|
|
1361
|
+
const { createInterface } = await import("node:readline/promises");
|
|
1362
|
+
rl ??= createInterface({ input: process.stdin, output: process.stdout });
|
|
1363
|
+
return rl.question(`${q} `);
|
|
1364
|
+
} : void 0;
|
|
1365
|
+
try {
|
|
1366
|
+
return await auditCommand(text(v.values.root) ? resolve(text(v.values.root)) : root, v.positionals[2], {
|
|
1367
|
+
by: who(),
|
|
1368
|
+
...Number.isFinite(size) && size > 0 ? { size } : {},
|
|
1369
|
+
...text(v.values.seed) ? { seed: text(v.values.seed) } : {},
|
|
1370
|
+
...text(v.values.dir) ? { dir: resolve(text(v.values.dir)) } : {},
|
|
1371
|
+
...text(v.values.answers) ? { answers: text(v.values.answers) } : {},
|
|
1372
|
+
...ids(v.values.right) ? { right: ids(v.values.right) } : {},
|
|
1373
|
+
...ids(v.values.wrong) ? { wrong: ids(v.values.wrong) } : {},
|
|
1374
|
+
...ids(v.values.unsure) ? { unsure: ids(v.values.unsure) } : {},
|
|
1375
|
+
report: v.values.report === true,
|
|
1376
|
+
json: v.values.json === true,
|
|
1377
|
+
...ask ? { ask } : {}
|
|
1378
|
+
}, io);
|
|
1379
|
+
} finally {
|
|
1380
|
+
rl?.close();
|
|
1381
|
+
}
|
|
1382
|
+
}
|
|
1383
|
+
if (!repo && v.values.all === true) {
|
|
1384
|
+
const { verifyAllCommand } = await import("./chunk-PSOFBQWB.js");
|
|
1385
|
+
return verifyAllCommand(text(v.values.root) ? resolve(text(v.values.root)) : root, {
|
|
1386
|
+
...v.values.write === true ? { write: true } : {},
|
|
1387
|
+
...v.values.verbose === true ? { verbose: true } : {}
|
|
1388
|
+
}, io);
|
|
1389
|
+
}
|
|
1143
1390
|
if (!repo) {
|
|
1144
|
-
io.err("Usage: atticus verify <repo> [--write [--verbose]] [--dir path] [--commit sha] [--routed a,b] [--json]");
|
|
1391
|
+
io.err("Usage: atticus verify <repo> [--write [--verbose]] [--dir path] [--commit sha] [--routed a,b] [--skipped] [--json], or atticus verify --all [--write]");
|
|
1145
1392
|
return 2;
|
|
1146
1393
|
}
|
|
1147
|
-
const
|
|
1148
|
-
const { verifyCommand } = await import("./chunk-JMSCMUCA.js");
|
|
1394
|
+
const { verifyCommand } = await import("./chunk-PSOFBQWB.js");
|
|
1149
1395
|
return verifyCommand(
|
|
1150
|
-
//
|
|
1151
|
-
// was lost; this reading has --write as a switch.
|
|
1396
|
+
// --write is a switch, so a --root right after it is read (it once took --root as its value).
|
|
1152
1397
|
text(v.values.root) ? resolve(text(v.values.root)) : root,
|
|
1153
1398
|
repo,
|
|
1154
1399
|
{
|
|
@@ -1159,7 +1404,8 @@ async function dispatchCommand(argv, io) {
|
|
|
1159
1404
|
} : {},
|
|
1160
1405
|
write: v.values.write === true,
|
|
1161
1406
|
verbose: v.values.verbose === true,
|
|
1162
|
-
json: v.values.json === true
|
|
1407
|
+
json: v.values.json === true,
|
|
1408
|
+
...v.values.skipped === true ? { skipped: true } : {}
|
|
1163
1409
|
},
|
|
1164
1410
|
io
|
|
1165
1411
|
);
|
|
@@ -1239,7 +1485,7 @@ async function dispatchCommand(argv, io) {
|
|
|
1239
1485
|
if (group === "cites") {
|
|
1240
1486
|
const given2 = (v) => typeof v === "string" && v.trim() ? v.trim() : void 0;
|
|
1241
1487
|
const [repo, path, file] = [given2(values.repo), given2(values.path), given2(values.file)];
|
|
1242
|
-
return (await import("./chunk-
|
|
1488
|
+
return (await import("./chunk-T4YPZIQN.js")).citesCli(root, {
|
|
1243
1489
|
...repo ? { repo } : {},
|
|
1244
1490
|
...path ? { path } : {},
|
|
1245
1491
|
...file ? { file: resolve(file) } : {},
|
|
@@ -1247,13 +1493,15 @@ async function dispatchCommand(argv, io) {
|
|
|
1247
1493
|
}, io);
|
|
1248
1494
|
}
|
|
1249
1495
|
if (group === "watch")
|
|
1250
|
-
return (await import("./chunk-
|
|
1496
|
+
return (await import("./chunk-MG4ZL5RW.js")).watchCommand(root, command, { off: values.off === true, json: values.json === true }, io);
|
|
1251
1497
|
if (group === "setup" && !command)
|
|
1252
1498
|
return setupCommand(root, { json: values.json === true }, io);
|
|
1499
|
+
if (group === "doctor" && values.counts === true)
|
|
1500
|
+
return (await import("./chunk-UF4GLFBX.js")).doctorCountsCommand(root, { json: values.json === true }, io);
|
|
1253
1501
|
if (group === "doctor")
|
|
1254
1502
|
return doctorCommand(root, { json: values.json === true }, io);
|
|
1255
1503
|
if (group === "probe") {
|
|
1256
|
-
const { probeCommand, probeAnswerCommand } = await import("./chunk-
|
|
1504
|
+
const { probeCommand, probeAnswerCommand } = await import("./chunk-FSMSFDLD.js");
|
|
1257
1505
|
const max = typeof values["max-tokens"] === "string" ? Number(values["max-tokens"]) : void 0;
|
|
1258
1506
|
const json2 = values.json === true;
|
|
1259
1507
|
if (command === "answer")
|
|
@@ -1306,7 +1554,7 @@ async function dispatchCommand(argv, io) {
|
|
|
1306
1554
|
return askCommand(root, command, { json: values.json === true }, io);
|
|
1307
1555
|
}
|
|
1308
1556
|
if (group === "context") {
|
|
1309
|
-
const m = await import("./chunk-
|
|
1557
|
+
const m = await import("./chunk-LGBMTVNT.js");
|
|
1310
1558
|
const target = positionals[2];
|
|
1311
1559
|
const csv = (v) => typeof v === "string" ? v.split(",").map((k) => k.trim()).filter(Boolean) : void 0;
|
|
1312
1560
|
if (command === "tools")
|
|
@@ -1421,7 +1669,7 @@ async function dispatchCommand(argv, io) {
|
|
|
1421
1669
|
if (group === "index" && command === "rebuild")
|
|
1422
1670
|
return indexRebuild(root, io);
|
|
1423
1671
|
if (group === "index" && command === "embed")
|
|
1424
|
-
return (await import("./chunk-
|
|
1672
|
+
return (await import("./chunk-XD75VZIH.js")).indexEmbed(root, io);
|
|
1425
1673
|
if (group === "alias") {
|
|
1426
1674
|
const target = positionals[2];
|
|
1427
1675
|
if (!command || !target) {
|
|
@@ -1462,7 +1710,7 @@ async function dispatchCommand(argv, io) {
|
|
|
1462
1710
|
if (command === "request")
|
|
1463
1711
|
return requestFromTeam(root, arg, positionals[3], { ...by ? { by } : {}, ...systems.length ? { systems } : {}, json }, io);
|
|
1464
1712
|
if (command === "commit")
|
|
1465
|
-
return initiativeCommitment(root, arg, positionals[3], { ...by ? { by } : {} }, io);
|
|
1713
|
+
return initiativeCommitment(root, arg, positionals[3], { ...by ? { by } : {}, ...str(values.note) ? { note: str(values.note) } : {} }, io);
|
|
1466
1714
|
}
|
|
1467
1715
|
if (group === "learn") {
|
|
1468
1716
|
if (!command || command === "list")
|
|
@@ -1491,7 +1739,7 @@ async function dispatchCommand(argv, io) {
|
|
|
1491
1739
|
if (group === "eval" && command === "report")
|
|
1492
1740
|
return evalReport(root, { json }, io);
|
|
1493
1741
|
if (group === "bench" && (command === "facts" || command === "stories")) {
|
|
1494
|
-
const m = await import("./chunk-
|
|
1742
|
+
const m = await import("./chunk-LKOR5UET.js");
|
|
1495
1743
|
return m.benchScoreCli(command, arg, values, io, root);
|
|
1496
1744
|
}
|
|
1497
1745
|
if (group === "bench" && (command === "fetch" || command === "run" || command === "survey" || command === "verify")) {
|
|
@@ -1543,7 +1791,7 @@ async function dispatchCommand(argv, io) {
|
|
|
1543
1791
|
}, io);
|
|
1544
1792
|
}
|
|
1545
1793
|
if (group === "secret") {
|
|
1546
|
-
const { secretCommand } = await import("./chunk-
|
|
1794
|
+
const { secretCommand } = await import("./chunk-EPCJQQWD.js");
|
|
1547
1795
|
return secretCommand(positionals.slice(1), io);
|
|
1548
1796
|
}
|
|
1549
1797
|
if (group === "conformance") {
|
|
@@ -1627,6 +1875,8 @@ async function dispatchCommand(argv, io) {
|
|
|
1627
1875
|
...str(values.platform) ? { platform: str(values.platform) } : {},
|
|
1628
1876
|
...str(values.from) ? { packFrom: resolve(str(values.from)) } : {},
|
|
1629
1877
|
...owner ? { owner } : {},
|
|
1878
|
+
// Round 49: the person the stamp records as having upgraded it (default the owner, then the Git user).
|
|
1879
|
+
...str(values.by) ? { by: str(values.by) } : {},
|
|
1630
1880
|
...values["openspec-store"] === true ? { openspecStore: true } : {},
|
|
1631
1881
|
json
|
|
1632
1882
|
}, io);
|
|
@@ -1738,9 +1988,9 @@ async function dispatchCommand(argv, io) {
|
|
|
1738
1988
|
}, io);
|
|
1739
1989
|
}
|
|
1740
1990
|
if (group === "task" && command === "context")
|
|
1741
|
-
return (await import("./chunk-
|
|
1991
|
+
return (await import("./chunk-LDLL7LB3.js")).taskContextCli(root, arg, positionals[3], { json, markdown: values.markdown === true }, io);
|
|
1742
1992
|
if (group === "change" && command === "attach")
|
|
1743
|
-
return (await import("./chunk-
|
|
1993
|
+
return (await import("./chunk-LDLL7LB3.js")).changeAttachCli(root, arg, positionals.slice(3), {
|
|
1744
1994
|
by: who(),
|
|
1745
1995
|
json,
|
|
1746
1996
|
...typeof values.replaces === "string" && values.replaces.trim() ? { replaces: values.replaces.trim() } : {},
|
|
@@ -1748,12 +1998,22 @@ async function dispatchCommand(argv, io) {
|
|
|
1748
1998
|
...typeof values.like === "string" && values.like.trim() ? { like: values.like.trim() } : {},
|
|
1749
1999
|
...typeof values.prototype === "string" && values.prototype.trim() ? { prototype: values.prototype.trim() } : {}
|
|
1750
2000
|
}, io);
|
|
2001
|
+
if (group === "task" && command === "run-ready")
|
|
2002
|
+
return taskRunReady(root, arg, {
|
|
2003
|
+
...str(values.level) ? { level: str(values.level) } : {},
|
|
2004
|
+
...str(values.mode) ? { mode: str(values.mode) } : {},
|
|
2005
|
+
by: who(),
|
|
2006
|
+
approve: values.approve === true,
|
|
2007
|
+
dryRun: values["dry-run"] === true,
|
|
2008
|
+
json
|
|
2009
|
+
}, io);
|
|
1751
2010
|
if (group === "task" && command === "run")
|
|
1752
2011
|
return taskRun(root, arg, positionals[3], {
|
|
1753
2012
|
...str(values.level) ? { level: str(values.level) } : {},
|
|
1754
2013
|
...str(values.mode) ? { mode: str(values.mode) } : {},
|
|
1755
2014
|
by: who(),
|
|
1756
2015
|
approve: values.approve === true,
|
|
2016
|
+
dryRun: values["dry-run"] === true,
|
|
1757
2017
|
json
|
|
1758
2018
|
}, io);
|
|
1759
2019
|
if (group === "spec" && command === "hand-down")
|
|
@@ -1867,7 +2127,7 @@ async function dispatchCommand(argv, io) {
|
|
|
1867
2127
|
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
2128
|
return 2;
|
|
1869
2129
|
}
|
|
1870
|
-
const session = given ? void 0 : (await import("./chunk-
|
|
2130
|
+
const session = given ? void 0 : (await import("./chunk-O45HFTFS.js")).assistantSession(process.env);
|
|
1871
2131
|
if (session)
|
|
1872
2132
|
io.err(`Recorded as ${session.by}: ${session.because}.`);
|
|
1873
2133
|
return findingAction(root, command, findingId, action, {
|
|
@@ -1893,8 +2153,21 @@ async function dispatchCommand(argv, io) {
|
|
|
1893
2153
|
...str(values.like) ? { like: str(values.like) } : {},
|
|
1894
2154
|
...str(values.impact) ? { impact: str(values.impact) } : {}
|
|
1895
2155
|
}, io);
|
|
2156
|
+
if (command === "sketch") {
|
|
2157
|
+
const { changeSketchCommand } = await import("./chunk-LNBQOP7D.js");
|
|
2158
|
+
return changeSketchCommand(root, arg, {
|
|
2159
|
+
...str(values.from) ? { from: str(values.from) } : {},
|
|
2160
|
+
...values.save === true ? { save: true } : {},
|
|
2161
|
+
json,
|
|
2162
|
+
by: who()
|
|
2163
|
+
}, io);
|
|
2164
|
+
}
|
|
2165
|
+
if (command === "impact") {
|
|
2166
|
+
const { changeImpactCli } = await import("./chunk-7MJSQTL5.js");
|
|
2167
|
+
return changeImpactCli(root, arg, { json }, io);
|
|
2168
|
+
}
|
|
1896
2169
|
if (command === "similar") {
|
|
1897
|
-
const { changeSimilarCli } = await import("./chunk-
|
|
2170
|
+
const { changeSimilarCli } = await import("./chunk-W7VWI2YH.js");
|
|
1898
2171
|
const limit = Number(str(values.limit) ?? 5);
|
|
1899
2172
|
return changeSimilarCli(root, arg, {
|
|
1900
2173
|
json,
|
|
@@ -1905,7 +2178,7 @@ async function dispatchCommand(argv, io) {
|
|
|
1905
2178
|
if (command === "list")
|
|
1906
2179
|
return changeList(root, { json }, io);
|
|
1907
2180
|
if (command === "export") {
|
|
1908
|
-
const { changeExportCommand } = await import("./chunk-
|
|
2181
|
+
const { changeExportCommand } = await import("./chunk-3RM4UK6W.js");
|
|
1909
2182
|
const named = positionals[3];
|
|
1910
2183
|
const fmt = str(values.format) ?? (named === "ado" || named === "jira" ? named : void 0);
|
|
1911
2184
|
return changeExportCommand(root, arg, {
|
|
@@ -1922,7 +2195,7 @@ async function dispatchCommand(argv, io) {
|
|
|
1922
2195
|
io.err("change conform needs a change id, for example: atticus change conform add-transfer-limit");
|
|
1923
2196
|
return 2;
|
|
1924
2197
|
}
|
|
1925
|
-
const { changeConformCommand } = await import("./chunk-
|
|
2198
|
+
const { changeConformCommand } = await import("./chunk-5SJZW52K.js");
|
|
1926
2199
|
return changeConformCommand(root, arg, {
|
|
1927
2200
|
...str(values.repo) ? { repo: str(values.repo) } : {},
|
|
1928
2201
|
...str(values.ref) ? { ref: str(values.ref) } : {},
|
|
@@ -1936,7 +2209,7 @@ async function dispatchCommand(argv, io) {
|
|
|
1936
2209
|
io.err("change estimate needs a change id, for example: atticus change estimate add-transfer-limit");
|
|
1937
2210
|
return 2;
|
|
1938
2211
|
}
|
|
1939
|
-
const { changeEstimateCommand } = await import("./chunk-
|
|
2212
|
+
const { changeEstimateCommand } = await import("./chunk-C4R4JLHE.js");
|
|
1940
2213
|
return changeEstimateCommand(root, arg, { json }, io);
|
|
1941
2214
|
}
|
|
1942
2215
|
if (command === "map") {
|
|
@@ -1944,7 +2217,7 @@ async function dispatchCommand(argv, io) {
|
|
|
1944
2217
|
io.err("change map needs a change id, for example: atticus change map add-transfer-limit");
|
|
1945
2218
|
return 2;
|
|
1946
2219
|
}
|
|
1947
|
-
const { changeMapCommand } = await import("./chunk-
|
|
2220
|
+
const { changeMapCommand } = await import("./chunk-GIW4ZVDB.js");
|
|
1948
2221
|
return changeMapCommand(root, arg, { ...str(values.format) ? { format: str(values.format) } : {}, json }, io);
|
|
1949
2222
|
}
|
|
1950
2223
|
if (command === "learn")
|
|
@@ -1964,7 +2237,7 @@ async function dispatchCommand(argv, io) {
|
|
|
1964
2237
|
if (command === "status")
|
|
1965
2238
|
return changeStatus(root, arg, { json }, io);
|
|
1966
2239
|
if (command === "knowledge") {
|
|
1967
|
-
const { changeKnowledge } = await import("./chunk-
|
|
2240
|
+
const { changeKnowledge } = await import("./chunk-LZ7NUC62.js");
|
|
1968
2241
|
return changeKnowledge(root, arg, {
|
|
1969
2242
|
...str(values.confirm) ? { confirm: str(values.confirm) } : {},
|
|
1970
2243
|
...str(values.exclude) ? { exclude: str(values.exclude) } : {},
|
|
@@ -1981,6 +2254,8 @@ async function dispatchCommand(argv, io) {
|
|
|
1981
2254
|
}, io);
|
|
1982
2255
|
if (command === "sync")
|
|
1983
2256
|
return changeSync(root, arg, { ...approve ? { by: who() } : {}, approve, ...repo ? { repo } : {} }, io);
|
|
2257
|
+
if (command === "release-prs")
|
|
2258
|
+
return changeReleasePrs(root, arg, { by: who(), approve }, io);
|
|
1984
2259
|
if (command === "return")
|
|
1985
2260
|
return changeReturn(root, arg, {
|
|
1986
2261
|
by: who(),
|
|
@@ -1997,8 +2272,17 @@ async function dispatchCommand(argv, io) {
|
|
|
1997
2272
|
return intakeAdd(root, positionals.slice(2).map((f) => resolve(f)), io);
|
|
1998
2273
|
if (group === "intake" && command === "list")
|
|
1999
2274
|
return intakeList(root, io, { json });
|
|
2275
|
+
if (group === "intake" && command === "traffic") {
|
|
2276
|
+
const { intakeTraffic } = await import("./chunk-7BR7IPOH.js");
|
|
2277
|
+
return intakeTraffic(root, positionals[2] ?? "", {
|
|
2278
|
+
...str(values.source) ? { source: str(values.source) } : {},
|
|
2279
|
+
...str(values.from) ? { from: str(values.from) } : {},
|
|
2280
|
+
...str(values.to) ? { to: str(values.to) } : {},
|
|
2281
|
+
json
|
|
2282
|
+
}, io);
|
|
2283
|
+
}
|
|
2000
2284
|
if (group === "intake" && command === "impact") {
|
|
2001
|
-
const { intakeImpact } = await import("./chunk-
|
|
2285
|
+
const { intakeImpact } = await import("./chunk-N3XIYPU3.js");
|
|
2002
2286
|
return intakeImpact(root, positionals[2] ?? "", { json }, io);
|
|
2003
2287
|
}
|
|
2004
2288
|
if (group === "triage" && !command)
|
|
@@ -2253,7 +2537,7 @@ async function dispatchCommand(argv, io) {
|
|
|
2253
2537
|
return sourcesRefreshCommand(root, { json }, io);
|
|
2254
2538
|
if (group === "sources" && command === "estimate") {
|
|
2255
2539
|
const bt = str(values["batch-tokens"]);
|
|
2256
|
-
return (await import("./chunk-
|
|
2540
|
+
return (await import("./chunk-NR2UJWOC.js")).sourcesEstimate(root, {
|
|
2257
2541
|
...str(values.source) ? { source: str(values.source) } : {},
|
|
2258
2542
|
...bt && Number(bt) > 0 ? { batchTokens: Number(bt) } : {},
|
|
2259
2543
|
...values.full === true ? { full: true } : {},
|
|
@@ -2261,7 +2545,7 @@ async function dispatchCommand(argv, io) {
|
|
|
2261
2545
|
}, io);
|
|
2262
2546
|
}
|
|
2263
2547
|
if (group === "standards")
|
|
2264
|
-
return (await import("./chunk-
|
|
2548
|
+
return (await import("./chunk-NR2UJWOC.js")).standardsCli(root, command, values, io);
|
|
2265
2549
|
if (group === "sources" && command === "sync")
|
|
2266
2550
|
return sourcesSync(root, io, {
|
|
2267
2551
|
json: values.json === true,
|
|
@@ -2273,6 +2557,25 @@ async function dispatchCommand(argv, io) {
|
|
|
2273
2557
|
return coverageCommand(root, io, { json: values.json === true });
|
|
2274
2558
|
if (group === "domain" && command === "profile")
|
|
2275
2559
|
return domainProfileCommand(root, arg, str(values.out) ? { out: str(values.out) } : {}, io);
|
|
2560
|
+
if (group === "questions" && command === "propose") {
|
|
2561
|
+
const { questionsProposeCommand } = await import("./chunk-JAVI7JSP.js");
|
|
2562
|
+
const ac = new AbortController();
|
|
2563
|
+
const onInt = () => ac.abort();
|
|
2564
|
+
process.on("SIGINT", onInt);
|
|
2565
|
+
try {
|
|
2566
|
+
return await questionsProposeCommand(root, {
|
|
2567
|
+
...arg ? { id: arg } : {},
|
|
2568
|
+
...typeof values.mode === "string" ? { mode: values.mode } : {},
|
|
2569
|
+
signal: ac.signal
|
|
2570
|
+
}, io, () => questionsFiles(root, ["questions", "proposed", "--root", root], io));
|
|
2571
|
+
} finally {
|
|
2572
|
+
process.off("SIGINT", onInt);
|
|
2573
|
+
}
|
|
2574
|
+
}
|
|
2575
|
+
if (group === "questions" && command === "owner")
|
|
2576
|
+
return (await import("./chunk-JRBFANFE.js")).ownerQuestionCommand(root, argv, io);
|
|
2577
|
+
if (group === "questions" && ["decisions", "correct", "undo"].includes(command ?? ""))
|
|
2578
|
+
return (await import("./chunk-BHT7QK4G.js")).decisionsCli(root, argv, io);
|
|
2276
2579
|
if (group === "questions" && command)
|
|
2277
2580
|
return questionsFiles(root, argv, io);
|
|
2278
2581
|
if (group === "questions")
|
|
@@ -2280,36 +2583,39 @@ async function dispatchCommand(argv, io) {
|
|
|
2280
2583
|
if (group === "reconcile")
|
|
2281
2584
|
return reconcileCommand(root, positionals.slice(1), { json: values.json === true }, io);
|
|
2282
2585
|
if (group === "orgpack" && (command === "draft" || command === "accept"))
|
|
2283
|
-
return (await import("./chunk-
|
|
2586
|
+
return (await import("./chunk-2MMCFP5C.js")).orgPackDraftCli(root, command, arg, values, io);
|
|
2284
2587
|
if (group === "orgpack" && command === "owner")
|
|
2285
|
-
return (await import("./chunk-
|
|
2588
|
+
return (await import("./chunk-KXITGYLF.js")).orgPackOwnerCli(root, arg, io);
|
|
2286
2589
|
if (group === "orgpack" && command === "validate")
|
|
2287
|
-
return orgPackValidate(arg ? resolve(arg) : join((await import("./chunk-
|
|
2590
|
+
return orgPackValidate(arg ? resolve(arg) : join((await import("./chunk-VY72R2XZ.js")).orgPackDirOf(root)), io);
|
|
2288
2591
|
if (group === "stage" && command === "check")
|
|
2289
|
-
return (await import("./chunk-
|
|
2592
|
+
return (await import("./chunk-2RLKFUUL.js")).stageCheck(root, arg, positionals[3], positionals[4], io);
|
|
2290
2593
|
if (group === "handoff" && command === "done") {
|
|
2291
2594
|
if (!arg) {
|
|
2292
2595
|
io.err("handoff done needs the run id from the prompt, for example: atticus handoff done run-20261018060000-0001");
|
|
2293
2596
|
return 2;
|
|
2294
2597
|
}
|
|
2295
|
-
|
|
2296
|
-
|
|
2297
|
-
|
|
2298
|
-
|
|
2299
|
-
|
|
2300
|
-
|
|
2301
|
-
return handoffDone(root, arg, io, str(values.model) ? { model: str(values.model) } : {});
|
|
2598
|
+
return runDone(root, arg, {
|
|
2599
|
+
by: who(),
|
|
2600
|
+
approve: values.approve === true,
|
|
2601
|
+
json,
|
|
2602
|
+
...str(values.model) ? { model: str(values.model) } : {}
|
|
2603
|
+
}, io);
|
|
2302
2604
|
}
|
|
2303
2605
|
if (group === "openspec" && command === "setup")
|
|
2304
2606
|
return openspecSetup(root, io);
|
|
2305
2607
|
if (group === "openspec" && command === "check")
|
|
2306
2608
|
return openspecCheck(root, io);
|
|
2307
2609
|
if (group === "openspec") {
|
|
2308
|
-
const { openspecRun } = await import("./chunk-
|
|
2610
|
+
const { openspecRun } = await import("./chunk-JJF6HALY.js");
|
|
2309
2611
|
return openspecRun(root, openspecArgsOf(argv), io);
|
|
2310
2612
|
}
|
|
2613
|
+
if (group === "workspace" && command === "bring-in") {
|
|
2614
|
+
const { bringInMerged } = await import("./chunk-EMRIQUND.js");
|
|
2615
|
+
return bringInMerged(root, io);
|
|
2616
|
+
}
|
|
2311
2617
|
if (group === "workspace" && command === "sync")
|
|
2312
|
-
return workspaceSync(root, repoIds, io);
|
|
2618
|
+
return workspaceSync(root, repoIds, io, str(values.from) ? { from: resolve(str(values.from)) } : {});
|
|
2313
2619
|
if (group === "workspace" && (command === "open" || command === "prune")) {
|
|
2314
2620
|
if (!arg) {
|
|
2315
2621
|
io.err(`workspace ${command} needs a change id, for example: atticus workspace ${command} add-transfer-limit`);
|
|
@@ -2319,20 +2625,19 @@ async function dispatchCommand(argv, io) {
|
|
|
2319
2625
|
return workspaceOpen(root, arg, repoIds, io);
|
|
2320
2626
|
return workspacePrune(root, arg, { all: values.all === true, force: values.force === true }, io);
|
|
2321
2627
|
}
|
|
2322
|
-
const { commandCatalog } = await import("./chunk-
|
|
2323
|
-
const { nearestCommand } = await import("./chunk-
|
|
2628
|
+
const { commandCatalog } = await import("./chunk-ZGULQAPZ.js");
|
|
2629
|
+
const { nearestCommand } = await import("./chunk-ZIUFM5HT.js");
|
|
2324
2630
|
const near = nearestCommand(positionals, commandCatalog(HELP).map((c) => c.id));
|
|
2325
2631
|
io.err(`Unknown command: ${positionals.join(" ")}.${near ? ` Did you mean atticus ${near}?` : ""}`);
|
|
2326
2632
|
io.err("atticus help lists the main commands, atticus legacy the rest; atticus help <command> explains one.");
|
|
2327
2633
|
return 2;
|
|
2328
2634
|
}
|
|
2329
|
-
var QUESTION_FLAGS = ["state", "option", "text", "scope", "type"];
|
|
2330
2635
|
async function checkFlags(argv, positionals, io) {
|
|
2331
|
-
const { unknownFlags, unknownFlagMessages } = await import("./chunk-
|
|
2332
|
-
const quick =
|
|
2636
|
+
const { unknownFlags, unknownFlagMessages } = await import("./chunk-ZIUFM5HT.js");
|
|
2637
|
+
const quick = new Set(Object.keys(OPTIONS));
|
|
2333
2638
|
if (!unknownFlags(argv, quick).length)
|
|
2334
2639
|
return void 0;
|
|
2335
|
-
const { commandCatalog } = await import("./chunk-
|
|
2640
|
+
const { commandCatalog } = await import("./chunk-ZGULQAPZ.js");
|
|
2336
2641
|
const catalog = commandCatalog(HELP);
|
|
2337
2642
|
const known = /* @__PURE__ */ new Set([
|
|
2338
2643
|
...quick,
|
|
@@ -2343,7 +2648,7 @@ async function checkFlags(argv, positionals, io) {
|
|
|
2343
2648
|
return void 0;
|
|
2344
2649
|
for (const m of unknownFlagMessages(unknown, known))
|
|
2345
2650
|
io.err(m);
|
|
2346
|
-
const { commandOf } = await import("./chunk-
|
|
2651
|
+
const { commandOf } = await import("./chunk-24XLDU72.js");
|
|
2347
2652
|
const id = commandOf(positionals, catalog.map((c) => c.id));
|
|
2348
2653
|
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
2654
|
return 2;
|