@maycombhq/atticus 2.0.0-beta.10 → 2.0.0-beta.12
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 +3 -3
- package/dist/{chunk-AY2IUF4K.js → chunk-22GLUHGE.js} +659 -73
- package/dist/{chunk-CIUHAHM6.js → chunk-2A24BNRZ.js} +8 -8
- package/dist/{chunk-2RX7PI2Y.js → chunk-2ELFEKOO.js} +4 -4
- package/dist/{chunk-QKEFZRHS.js → chunk-2P6IHSRO.js} +17 -17
- package/dist/chunk-2Q2YBAR5.js +40 -0
- package/dist/{chunk-7DUDLVFJ.js → chunk-2VQLFNBO.js} +20 -20
- package/dist/{chunk-E3Z67HRK.js → chunk-3256EDLL.js} +4 -4
- package/dist/{chunk-OIU657QQ.js → chunk-34BCKMBS.js} +4 -4
- package/dist/{chunk-UR7RMZ3R.js → chunk-34NWVIBC.js} +2 -2
- package/dist/{chunk-6VBXAGJX.js → chunk-36KD4OGC.js} +14 -14
- package/dist/{chunk-I7IWQIEB.js → chunk-3CFBU2O6.js} +4 -4
- package/dist/{chunk-OSGQW2Z6.js → chunk-3JLTN3Y7.js} +8 -8
- package/dist/{chunk-FOGG4AUR.js → chunk-3M7QBKKG.js} +25 -7
- package/dist/{chunk-UF7TAFJM.js → chunk-3RP34PYV.js} +18 -18
- package/dist/{chunk-YLAJAI2W.js → chunk-3ZKLWM5Y.js} +11 -11
- package/dist/{chunk-LTQANUDH.js → chunk-47HPZ34V.js} +25 -25
- package/dist/chunk-4BPROPGG.js +45 -0
- package/dist/{chunk-Y4BRGOJR.js → chunk-4G56W6H7.js} +13 -10
- package/dist/{chunk-YXJ4XOHF.js → chunk-4HIQ2FTI.js} +4 -4
- package/dist/{chunk-AJJK7GLO.js → chunk-4HTILEXW.js} +3 -3
- package/dist/{chunk-OJLRFGBP.js → chunk-4Q2PGM5T.js} +78 -15
- package/dist/{chunk-GR6YKM55.js → chunk-4RDW2X43.js} +108 -14
- package/dist/{chunk-23M2LUYM.js → chunk-4VOG5H2K.js} +1 -1
- package/dist/chunk-5CSZTVXH.js +34 -0
- package/dist/{chunk-65C57N7P.js → chunk-5FFMJMVH.js} +19 -19
- package/dist/{chunk-XNYNEEBR.js → chunk-5GGGAI5C.js} +18 -18
- package/dist/{chunk-IUD3ME4E.js → chunk-5H46QFSL.js} +4 -4
- package/dist/{chunk-KIHOIVST.js → chunk-5ION6STH.js} +3 -3
- package/dist/chunk-5M3CLAOV.js +39 -0
- package/dist/chunk-5OACMWWI.js +886 -0
- package/dist/{chunk-2HMWX4T6.js → chunk-6ENDKY52.js} +11 -11
- package/dist/{chunk-OS7PQ35Z.js → chunk-6FG7QKJC.js} +22 -22
- package/dist/{chunk-FEZE6NIA.js → chunk-6JV3YHRR.js} +18 -18
- package/dist/{chunk-WGZWR4RF.js → chunk-6ROZRBWH.js} +5 -5
- package/dist/{chunk-WARBF2KY.js → chunk-6S27MUQQ.js} +10 -6
- package/dist/{chunk-TZDSDDSV.js → chunk-72DY5NCN.js} +2 -2
- package/dist/chunk-76QVBNEM.js +37 -0
- package/dist/{chunk-N4QZJJVB.js → chunk-77UOXZVM.js} +5 -5
- package/dist/{chunk-LVGBKKSM.js → chunk-7AXMUE2U.js} +15 -15
- package/dist/{chunk-FJCFYKVO.js → chunk-7TEQF64E.js} +196 -76
- package/dist/{chunk-IDGSU7JF.js → chunk-7TH6I6TL.js} +9 -9
- package/dist/{chunk-ZONE6E3Z.js → chunk-7UKETVPW.js} +2 -2
- package/dist/{chunk-XKS6THI5.js → chunk-7VNEDDCC.js} +2 -2
- package/dist/{chunk-BMHGA7WD.js → chunk-A5GY2EWH.js} +12 -12
- package/dist/{chunk-E3JYO547.js → chunk-AEZ3EICK.js} +20 -20
- package/dist/{chunk-7F2RUWPU.js → chunk-ARLH2ZMD.js} +1 -1
- package/dist/{chunk-VKMTFIWS.js → chunk-AYVLEB55.js} +18 -18
- package/dist/chunk-B6X5PJSA.js +320 -0
- package/dist/{chunk-JMSEEBN4.js → chunk-BRCDEGNE.js} +1 -1
- package/dist/{chunk-67J3VZBA.js → chunk-BSVTNNUK.js} +5 -5
- package/dist/{chunk-3GTZ2OON.js → chunk-BTOGAUWX.js} +20 -11
- package/dist/{chunk-4SVJNVEE.js → chunk-BXBCMGIQ.js} +2 -0
- package/dist/chunk-BXP2Q4TD.js +48 -0
- package/dist/{chunk-XPEEICAO.js → chunk-BZRWJUB4.js} +15 -15
- package/dist/{chunk-MH5OCRUM.js → chunk-CH6LUQLD.js} +2 -2
- package/dist/{chunk-T6USVBEJ.js → chunk-CIIRPLI6.js} +5 -5
- package/dist/chunk-CJXM6SG4.js +339 -0
- package/dist/{chunk-5XDNUJ4P.js → chunk-CQD26SMZ.js} +4 -2
- package/dist/{chunk-7TGYNOXD.js → chunk-CW5SEPUT.js} +7 -7
- package/dist/{chunk-5KTOPOEP.js → chunk-CWSZP2LU.js} +25 -25
- package/dist/chunk-CXK27ZUY.js +32 -0
- package/dist/{chunk-YGKYFMSL.js → chunk-CXY4YDXS.js} +3 -3
- package/dist/{chunk-R64GLVBO.js → chunk-DDZZXVQ5.js} +10 -10
- package/dist/{chunk-7YYEKTYF.js → chunk-DGZXJO5I.js} +8 -8
- package/dist/{chunk-IV7BCWWN.js → chunk-DONCF2XC.js} +3 -3
- package/dist/{chunk-RRVT4MPS.js → chunk-DPNCAFMB.js} +18 -18
- package/dist/{chunk-UBWCUP3G.js → chunk-DQKNOHUZ.js} +2 -2
- package/dist/{chunk-NGPU2ARF.js → chunk-DW4BM73R.js} +1 -1
- package/dist/{chunk-PEF5OEMB.js → chunk-DWN7RSNQ.js} +4 -4
- package/dist/{chunk-KC5DROFC.js → chunk-DWYPYVPJ.js} +14 -14
- package/dist/{chunk-B7434AE2.js → chunk-E73QLYK7.js} +24 -3
- package/dist/{chunk-EX6ZXS5K.js → chunk-EE3UNC44.js} +4 -4
- package/dist/chunk-EJDZEK22.js +53 -0
- package/dist/{chunk-ISNZYKAS.js → chunk-ENZWVTTN.js} +21 -21
- package/dist/{chunk-ROTY5J2L.js → chunk-EREL3TQG.js} +1 -1
- package/dist/{chunk-ZZXF6OOJ.js → chunk-ESGIBN3S.js} +2 -2
- package/dist/{chunk-YGR6OCHQ.js → chunk-EU7VTBAI.js} +8 -14
- package/dist/chunk-F5GA6G3U.js +48 -0
- package/dist/{chunk-JAA53T23.js → chunk-F6FGIYPT.js} +20 -20
- package/dist/{chunk-NPCD54I7.js → chunk-FAET4BB6.js} +8 -5
- package/dist/{chunk-YPBQNJHA.js → chunk-FBFSTYAB.js} +8 -8
- package/dist/{chunk-OEI7LVRP.js → chunk-FEBYMFZA.js} +24 -24
- package/dist/chunk-FMV6IZ3P.js +54 -0
- package/dist/{chunk-F7UQR4ZX.js → chunk-FQ6IBYFC.js} +3 -3
- package/dist/{chunk-J5LHDJU4.js → chunk-FSJMFPA3.js} +7 -7
- package/dist/chunk-GFZ5MIQG.js +47 -0
- package/dist/{chunk-LK44ULGI.js → chunk-GHSVJNVL.js} +104 -11
- package/dist/{chunk-LRS573EX.js → chunk-GKPOCUQR.js} +12 -7
- package/dist/{chunk-LDKUC2QJ.js → chunk-GLSNVC67.js} +17 -17
- package/dist/{chunk-47QE246J.js → chunk-GMDOXWIS.js} +5 -5
- package/dist/{chunk-5MI2SEV5.js → chunk-GN5ZLSLD.js} +3 -3
- package/dist/{chunk-JQ7XQPQS.js → chunk-GUNBOZ75.js} +4 -4
- package/dist/{chunk-HHUFVJF7.js → chunk-GYS64N6F.js} +6 -6
- package/dist/{chunk-AKJTKMXU.js → chunk-HIQWJ6JZ.js} +5 -5
- package/dist/{chunk-6GNS32SI.js → chunk-HJ52XDST.js} +4 -4
- package/dist/{chunk-2KDSXJFJ.js → chunk-HJUEQERG.js} +34 -7
- package/dist/chunk-HKGQUOQ3.js +88 -0
- package/dist/chunk-HP32HUWR.js +41 -0
- package/dist/{chunk-R4TBNKKC.js → chunk-HY2VVVFZ.js} +1249 -610
- package/dist/{chunk-G5SFOH7P.js → chunk-I2PNEG3M.js} +38 -23
- package/dist/{chunk-Y5PZHS4K.js → chunk-INCECZ2E.js} +5 -5
- package/dist/{chunk-RK6MKKKP.js → chunk-ISXNWUG7.js} +1 -1
- package/dist/{chunk-73VPWF5R.js → chunk-ITJ7ST5E.js} +4 -4
- package/dist/{chunk-5IALSMZ2.js → chunk-J3VAFDEX.js} +14 -14
- package/dist/chunk-JGLZUQVN.js +29 -0
- package/dist/{chunk-5XN76FTF.js → chunk-JLIEAQP4.js} +5 -5
- package/dist/{chunk-MGVYVW7Q.js → chunk-JQG4VO47.js} +1 -1
- package/dist/chunk-JXXQHETS.js +130 -0
- package/dist/{chunk-APSVL2AI.js → chunk-KNGESBFW.js} +15 -15
- package/dist/{chunk-7UKVYFQ2.js → chunk-KUYA2E7M.js} +8 -8
- package/dist/{chunk-WLIIQ2A4.js → chunk-KY2ZHTBJ.js} +7 -7
- package/dist/{chunk-YPIEYQF4.js → chunk-L4UIKAWD.js} +6 -6
- package/dist/chunk-LDUJ6NIT.js +247 -0
- package/dist/{chunk-5YIBJXGB.js → chunk-LTLR4JZJ.js} +10 -10
- package/dist/{chunk-IZNSAEBX.js → chunk-MFRPLAOH.js} +2 -2
- package/dist/{chunk-6GWHKMQR.js → chunk-MH7UBG47.js} +4 -4
- package/dist/{chunk-4GZXS6S2.js → chunk-MLAACAES.js} +278 -17
- package/dist/{chunk-D3PO4DOZ.js → chunk-MMB2OHUY.js} +4 -2
- package/dist/{chunk-DDAHCPGA.js → chunk-MNCQ2GL7.js} +12 -12
- package/dist/{chunk-UYYN2IUZ.js → chunk-MNUZX67F.js} +6 -6
- package/dist/{chunk-YFSSNGLR.js → chunk-MQHYCS6A.js} +32 -29
- package/dist/{chunk-MKRBG5EF.js → chunk-MRLCNXXR.js} +1 -1
- package/dist/{chunk-BUYJL3GJ.js → chunk-NBQO75XT.js} +1 -1
- package/dist/{chunk-GXJVY6WT.js → chunk-NCONDPHH.js} +5 -5
- package/dist/{chunk-ZP4FJHR4.js → chunk-NHS55U7T.js} +18 -18
- package/dist/{chunk-CRE4BJHM.js → chunk-NL6XQZSV.js} +23 -23
- package/dist/{chunk-YVLMBAYE.js → chunk-NSJ6ZR2A.js} +3 -3
- package/dist/{chunk-XRO65C7V.js → chunk-NTNJNRHW.js} +8 -6
- package/dist/{chunk-FTV6I76U.js → chunk-NTTXTLCQ.js} +25 -25
- package/dist/chunk-NWL7XEQ4.js +37 -0
- package/dist/{chunk-CNKGYDMG.js → chunk-NWXY3B4R.js} +23 -23
- package/dist/{chunk-52R2YXP5.js → chunk-O5W4ECUY.js} +16 -16
- package/dist/{chunk-OGRWQ562.js → chunk-O6ILVBYB.js} +2 -2
- package/dist/{chunk-BJPMKJTL.js → chunk-OJAJXU65.js} +102 -2
- package/dist/{chunk-FZL2HNWP.js → chunk-OMH3I5BH.js} +3 -3
- package/dist/{chunk-MF7QH4AX.js → chunk-P6UJ22XR.js} +5 -5
- package/dist/{chunk-HE4ZQXZM.js → chunk-P76AW3PA.js} +309 -15
- package/dist/{chunk-GZ4TKR3Q.js → chunk-PCCPXWJC.js} +48 -139
- package/dist/{chunk-6TJCUYC5.js → chunk-PGFRXGHA.js} +3 -3
- package/dist/{chunk-NIXVDQVO.js → chunk-PJRMMWU4.js} +2 -2
- package/dist/{chunk-X4W4XXWP.js → chunk-PKJ3K3GM.js} +5 -5
- package/dist/{chunk-KM2FBM3T.js → chunk-PVW2N63M.js} +302 -55
- package/dist/{chunk-Y7KBQ4BD.js → chunk-Q55UP5EZ.js} +22 -22
- package/dist/{chunk-7URGP4DD.js → chunk-QAFMLBPF.js} +12 -12
- package/dist/{chunk-KIAI6PWL.js → chunk-QEZSA2O7.js} +17 -17
- package/dist/{chunk-PKCMRPPB.js → chunk-QJ3OX7OC.js} +33 -27
- package/dist/{chunk-6EDQE7GO.js → chunk-QL4VNY4U.js} +2 -2
- package/dist/{chunk-6JLPXDWN.js → chunk-QR65C3DV.js} +5 -5
- package/dist/{chunk-ILFKECGI.js → chunk-QXGOEP44.js} +4 -4
- package/dist/chunk-QY7RGTUP.js +326 -0
- package/dist/{chunk-PGKHJYOB.js → chunk-RA64IK43.js} +1 -1
- package/dist/{chunk-XB5RFZHH.js → chunk-RLJDYLID.js} +12 -12
- package/dist/{chunk-AWECWW5Y.js → chunk-RMLUZYEA.js} +13 -11
- package/dist/chunk-RSVBX6A3.js +54 -0
- package/dist/chunk-RZWZO2JQ.js +42 -0
- package/dist/chunk-S5LSDXV4.js +40 -0
- package/dist/{chunk-TM7LC37P.js → chunk-SAC6FNKR.js} +181 -117
- package/dist/{chunk-DPHCFZ7W.js → chunk-SCBU46AJ.js} +3 -3
- package/dist/{chunk-EZIUFEN6.js → chunk-SGNHNN3G.js} +12 -12
- package/dist/{chunk-XKZHAD6Y.js → chunk-SHAAGH3T.js} +15 -15
- package/dist/chunk-SK5OYWIY.js +122 -0
- package/dist/{chunk-FR7JPYBD.js → chunk-SNSFQ47W.js} +12 -12
- package/dist/{chunk-FV5YFR6I.js → chunk-SSL6JMPA.js} +9 -9
- package/dist/{chunk-XEG3FE2R.js → chunk-TA2ZNDYD.js} +1 -1
- package/dist/{chunk-JF2NSTFO.js → chunk-TEHH47TG.js} +3 -3
- package/dist/{chunk-W5OYJMBT.js → chunk-TEZSZ24W.js} +5 -5
- package/dist/{chunk-SS66Q4VE.js → chunk-TH526O6E.js} +12 -12
- package/dist/{chunk-R6B6XAKK.js → chunk-TIAPEYWI.js} +4 -4
- package/dist/chunk-TLCRIAU3.js +44 -0
- package/dist/{chunk-FMKKVWZD.js → chunk-TQYBXDVH.js} +2 -2
- package/dist/chunk-TV4CGNEY.js +43 -0
- package/dist/{chunk-QICFHVRW.js → chunk-TVSNWIAM.js} +8 -6
- package/dist/{chunk-CHC5FKTU.js → chunk-TWHZU36X.js} +1 -1
- package/dist/{chunk-BMCKL3VQ.js → chunk-TXV2AYZB.js} +24 -24
- package/dist/{chunk-577AJVRS.js → chunk-U25OX22K.js} +2039 -289
- package/dist/{chunk-7EKESFWV.js → chunk-U4NNG3ES.js} +11 -11
- package/dist/{chunk-XQ3YIV5R.js → chunk-U5T4A2QV.js} +6 -6
- package/dist/{chunk-2XM6PYQQ.js → chunk-UT5OA7KA.js} +43 -11
- package/dist/{chunk-BXIX7S7O.js → chunk-V3VCUSQ6.js} +15 -15
- package/dist/{chunk-4QUQEBFT.js → chunk-V5XV3JSP.js} +6 -6
- package/dist/{chunk-F7YL2RZ4.js → chunk-VF4VOPMB.js} +23 -23
- package/dist/{chunk-3QAKDIEU.js → chunk-VLDM4QZM.js} +23 -23
- package/dist/chunk-VP5H6DII.js +34 -0
- package/dist/{chunk-N3NBWIYQ.js → chunk-VRYQJZFL.js} +10 -9
- package/dist/{chunk-FQSRHTTC.js → chunk-VS6FS472.js} +15 -15
- package/dist/{chunk-YMOJD5BO.js → chunk-VTMIRRIZ.js} +3 -3
- package/dist/{chunk-4PJADZRR.js → chunk-VXSJKWB7.js} +16 -16
- package/dist/{chunk-MTAUZW2Z.js → chunk-WE5VMPUP.js} +216 -106
- package/dist/{chunk-ZE3P35DA.js → chunk-WEG7DY5K.js} +9 -9
- package/dist/{chunk-V2TH46ZY.js → chunk-WIF7A6JU.js} +12 -12
- package/dist/{chunk-GFXLPJWY.js → chunk-WM4N2L4T.js} +2 -2
- package/dist/{chunk-XIWYUQZQ.js → chunk-X64BFQ3R.js} +9 -9
- package/dist/{chunk-QWVBEK4P.js → chunk-XJRC3ZDI.js} +13 -13
- package/dist/{chunk-F2FOQLJ7.js → chunk-XVIVWG7B.js} +6 -6
- package/dist/{chunk-XTVDAHH2.js → chunk-Y3ZKT6IF.js} +5 -5
- package/dist/{chunk-62YMDXY6.js → chunk-YURIUFKF.js} +16 -16
- package/dist/{chunk-HKTUIMH4.js → chunk-YY2WGL6S.js} +3 -3
- package/dist/{chunk-BDEKREZH.js → chunk-Z2BA4NNR.js} +3 -3
- package/dist/{chunk-MTEBM4Y4.js → chunk-Z47YGBUY.js} +19 -12
- package/dist/chunk-Z4JSRKNR.js +41 -0
- package/dist/{chunk-G2E5MNYP.js → chunk-Z53ZB34U.js} +7 -7
- package/dist/{chunk-NNUASOAA.js → chunk-ZBOPIYOY.js} +12 -12
- package/dist/{chunk-7GB4ZRE2.js → chunk-ZBQCLKTH.js} +12 -12
- package/dist/chunk-ZGI7DNJ6.js +38 -0
- package/dist/{chunk-P3TKKBAH.js → chunk-ZPT4QX3J.js} +4 -4
- package/dist/chunk-ZS47PQ3O.js +41 -0
- package/dist/{chunk-PIVKU64W.js → chunk-ZTIMXVV5.js} +2 -2
- package/dist/{chunk-T4RTWMJD.js → chunk-ZYASEL7K.js} +5 -5
- package/dist/files.json +469 -417
- package/dist/packages/sdk/npm/index.js +2309 -1983
- package/dist/packages/ui/dist/assets/{elk-api-Mo5w5xCa.js → elk-api-D2NcYpUJ.js} +2 -2
- package/dist/packages/ui/dist/assets/{index-Bp3XhPHX.css → index-C0JEkXyN.css} +1 -1
- package/dist/packages/ui/dist/assets/index-CT7skl01.js +29 -0
- package/dist/packages/ui/dist/index.html +2 -2
- package/package.json +4 -4
- package/dist/chunk-26PLPSQW.js +0 -48
- package/dist/chunk-2G4DFUWJ.js +0 -43
- package/dist/chunk-2M6WXO73.js +0 -38
- package/dist/chunk-5F3RJCHB.js +0 -45
- package/dist/chunk-B2VSVN4P.js +0 -34
- package/dist/chunk-B3O52AUQ.js +0 -275
- package/dist/chunk-CITDNDIZ.js +0 -53
- package/dist/chunk-DAQBIK5G.js +0 -47
- package/dist/chunk-DZRQDNPT.js +0 -34
- package/dist/chunk-FLOEZA6K.js +0 -29
- package/dist/chunk-FNHSVBRA.js +0 -48
- package/dist/chunk-FPGVOSOG.js +0 -41
- package/dist/chunk-FZ2E5LGK.js +0 -54
- package/dist/chunk-HB6XSGI6.js +0 -131
- package/dist/chunk-HUZQDKQK.js +0 -48
- package/dist/chunk-L4VJ4ETL.js +0 -41
- package/dist/chunk-XPCWQXTY.js +0 -37
- package/dist/chunk-YIEOFHOL.js +0 -30
- package/dist/packages/ui/dist/assets/index-DM212ZbV.js +0 -29
|
@@ -3,18 +3,13 @@ import { fileURLToPath as __atticusFileURLToPath } from "node:url";
|
|
|
3
3
|
var require = __atticusCreateRequire(import.meta.url);
|
|
4
4
|
var __atticusUrl = (p) => new URL("./" + p, import.meta.url).href;
|
|
5
5
|
var __atticusPath = (p) => __atticusFileURLToPath(__atticusUrl(p));
|
|
6
|
+
import {
|
|
7
|
+
notesAt
|
|
8
|
+
} from "./chunk-ZS47PQ3O.js";
|
|
6
9
|
import {
|
|
7
10
|
houseUntaughtLines,
|
|
8
11
|
houseUntaughtOf
|
|
9
|
-
} from "./chunk-
|
|
10
|
-
import {
|
|
11
|
-
loadReadPlan,
|
|
12
|
-
partOfWords,
|
|
13
|
-
readPlanProgress,
|
|
14
|
-
readPlanRelOf,
|
|
15
|
-
saveReadPlan,
|
|
16
|
-
writeReadPlan
|
|
17
|
-
} from "./chunk-HE4ZQXZM.js";
|
|
12
|
+
} from "./chunk-3CFBU2O6.js";
|
|
18
13
|
import {
|
|
19
14
|
carryOf,
|
|
20
15
|
checkoutOf,
|
|
@@ -22,23 +17,29 @@ import {
|
|
|
22
17
|
estateComponentsOf,
|
|
23
18
|
excludesOf,
|
|
24
19
|
headOf,
|
|
20
|
+
loadReadPlan,
|
|
21
|
+
partOfWords,
|
|
25
22
|
raiseReadQuestions,
|
|
26
23
|
readCorrections,
|
|
24
|
+
readPlanProgress,
|
|
25
|
+
readPlanRelOf,
|
|
27
26
|
readReviewed,
|
|
28
27
|
reviewedProblemsOf,
|
|
28
|
+
saveReadPlan,
|
|
29
29
|
slipNoteLines,
|
|
30
|
+
writeReadPlan,
|
|
30
31
|
writeVerifyFiles
|
|
31
|
-
} from "./chunk-
|
|
32
|
-
import "./chunk-XKS6THI5.js";
|
|
32
|
+
} from "./chunk-P76AW3PA.js";
|
|
33
33
|
import {
|
|
34
34
|
ABOUT_RULE,
|
|
35
35
|
assistantTier,
|
|
36
36
|
mapBatchInstructions,
|
|
37
37
|
readProbes,
|
|
38
|
+
rulesNow,
|
|
38
39
|
taughtFrameworksText,
|
|
39
40
|
tierSource,
|
|
40
41
|
tierWords
|
|
41
|
-
} from "./chunk-
|
|
42
|
+
} from "./chunk-GHSVJNVL.js";
|
|
42
43
|
import {
|
|
43
44
|
FILE_KINDS,
|
|
44
45
|
SHOWN_PROPOSALS,
|
|
@@ -47,6 +48,7 @@ import {
|
|
|
47
48
|
frameworkTopics,
|
|
48
49
|
frameworkTopicsOfType,
|
|
49
50
|
kindsOf,
|
|
51
|
+
lineRangeOf,
|
|
50
52
|
numberedSlice,
|
|
51
53
|
onlyFiles,
|
|
52
54
|
planBatches,
|
|
@@ -59,12 +61,10 @@ import {
|
|
|
59
61
|
sliceText,
|
|
60
62
|
staleMessage,
|
|
61
63
|
verifyFacts
|
|
62
|
-
} from "./chunk-
|
|
63
|
-
import "./chunk-UR7RMZ3R.js";
|
|
64
|
+
} from "./chunk-MLAACAES.js";
|
|
64
65
|
import {
|
|
65
66
|
loadRepos
|
|
66
|
-
} from "./chunk-
|
|
67
|
-
import "./chunk-MKRBG5EF.js";
|
|
67
|
+
} from "./chunk-RA64IK43.js";
|
|
68
68
|
import {
|
|
69
69
|
DATA_RULE,
|
|
70
70
|
HandoffRuntime,
|
|
@@ -74,7 +74,7 @@ import {
|
|
|
74
74
|
estimateTokens,
|
|
75
75
|
promptBudget,
|
|
76
76
|
wrapData
|
|
77
|
-
} from "./chunk-
|
|
77
|
+
} from "./chunk-CQD26SMZ.js";
|
|
78
78
|
import {
|
|
79
79
|
AgentDefinition,
|
|
80
80
|
Fact,
|
|
@@ -88,16 +88,16 @@ import {
|
|
|
88
88
|
listQuestions,
|
|
89
89
|
loadOrgPack,
|
|
90
90
|
normalizeFactPaths,
|
|
91
|
+
notesText,
|
|
91
92
|
orgPackDirOf,
|
|
92
93
|
parseFacts,
|
|
93
94
|
runsDirOf,
|
|
94
95
|
saysNotProduct,
|
|
95
96
|
stackHelpersOff
|
|
96
|
-
} from "./chunk-
|
|
97
|
+
} from "./chunk-U25OX22K.js";
|
|
97
98
|
import {
|
|
98
99
|
writeFileAtomic
|
|
99
|
-
} from "./chunk-
|
|
100
|
-
import "./chunk-TV45EUGM.js";
|
|
100
|
+
} from "./chunk-MMB2OHUY.js";
|
|
101
101
|
|
|
102
102
|
// packages/cli/dist/map-commands.js
|
|
103
103
|
import { existsSync } from "node:fs";
|
|
@@ -129,6 +129,9 @@ var plural = (n, w) => `${n} ${w}${n === 1 ? "" : "s"}`;
|
|
|
129
129
|
var batches = (n) => `${n} ${n === 1 ? "batch" : "batches"}`;
|
|
130
130
|
var changeOf = (repo) => `map-${repo}`;
|
|
131
131
|
var stateFile = (root, repo) => join(runsDirOf(root), changeOf(repo), "state.json");
|
|
132
|
+
async function mapStateOf(root, repo) {
|
|
133
|
+
return readState(root, repo).catch(() => void 0);
|
|
134
|
+
}
|
|
132
135
|
async function readState(root, repo) {
|
|
133
136
|
const text = await readFile(stateFile(root, repo), "utf8").catch(() => void 0);
|
|
134
137
|
return text ? JSON.parse(text) : void 0;
|
|
@@ -189,6 +192,8 @@ function claimOf(f) {
|
|
|
189
192
|
return `${f.name}${f.version ? ` ${f.version}` : ""}`;
|
|
190
193
|
case "flow":
|
|
191
194
|
return f.name;
|
|
195
|
+
case "term":
|
|
196
|
+
return `${f.term} ${f.value} (${f.role})`;
|
|
192
197
|
}
|
|
193
198
|
}
|
|
194
199
|
function readAnswer(text, repo, commit, onFile = []) {
|
|
@@ -286,10 +291,26 @@ function rejectedText(r, source) {
|
|
|
286
291
|
] : []
|
|
287
292
|
].join("\n");
|
|
288
293
|
}
|
|
289
|
-
function
|
|
294
|
+
async function rulesCovering(root, repo, op) {
|
|
295
|
+
const type = op.profiles.flatMap((p) => p.repos?.repos ?? []).find((r) => r.id === repo)?.type;
|
|
296
|
+
const all = (await listQuestions(root, { state: "answered" }).catch(() => ({ questions: [] }))).questions;
|
|
297
|
+
return all.filter((q) => q.repo !== repo && !!q.answer?.match && (q.answer.scope.level === "repo" ? q.answer.scope.id === repo : !!type && q.answer.scope.id === type)).map((q) => ({
|
|
298
|
+
id: q.id,
|
|
299
|
+
from: q.repo,
|
|
300
|
+
match: q.answer.match,
|
|
301
|
+
answer: q.answer.text ?? q.options[(q.answer.option ?? 1) - 1]?.label ?? "",
|
|
302
|
+
scope: q.answer.scope.level === "repo" ? repo : `every ${q.answer.scope.id} repo`
|
|
303
|
+
})).sort((a, b) => a.id.localeCompare(b.id));
|
|
304
|
+
}
|
|
305
|
+
var ruleLineOf = (r) => `Rule ${r.id} (answered for ${r.from}, covers ${r.scope}): the calls matching ${r.match} go to ${r.answer}.`;
|
|
306
|
+
function questionsText(qs, rules = []) {
|
|
290
307
|
return [
|
|
291
308
|
"Questions already on file for this repo. Don't ask them again; follow each answer a person gave.",
|
|
292
|
-
...qs.map((q) => `- ${q.question} (${q.evidence.join(", ")}): ${q.state === "answered" ? `answered: ${q.answer?.text ?? q.options[(q.answer?.option ?? 1) - 1]?.label ?? ""}` : "waiting for a person"}`)
|
|
309
|
+
...qs.map((q) => `- ${q.question} (${q.evidence.join(", ")}): ${q.state === "answered" ? `answered: ${q.answer?.text ?? q.options[(q.answer?.option ?? 1) - 1]?.label ?? ""}` : "waiting for a person"}`),
|
|
310
|
+
...rules.length ? [
|
|
311
|
+
"Answers by rule that cover this repo, from other repos' questions. A call one matches goes where it says: don't ask about it.",
|
|
312
|
+
...rules.map((r) => `- ${ruleLineOf(r)}`)
|
|
313
|
+
] : []
|
|
293
314
|
].join("\n");
|
|
294
315
|
}
|
|
295
316
|
function keptText(facts, budgetTokens) {
|
|
@@ -364,7 +385,7 @@ function taughtIn(source, op) {
|
|
|
364
385
|
return texts.some((t) => declared.test(t));
|
|
365
386
|
}));
|
|
366
387
|
}
|
|
367
|
-
async function packFor(root, s, batch, source, op, now) {
|
|
388
|
+
async function packFor(root, s, batch, source, op, now, notes) {
|
|
368
389
|
const agent = repoReaderAgent(op);
|
|
369
390
|
const budget = op.runtime.budgets.perAgent[agent.id] ?? agent.tokenBudget;
|
|
370
391
|
const fix = batch >= s.batches.length;
|
|
@@ -373,6 +394,7 @@ async function packFor(root, s, batch, source, op, now) {
|
|
|
373
394
|
const kept = await readFactsFile(root, s.repo);
|
|
374
395
|
const facts = typeof kept === "string" ? [] : kept;
|
|
375
396
|
const onFile = (await listQuestions(root, { repo: s.repo })).questions.filter((q) => q.state !== "retired");
|
|
397
|
+
const rules = await rulesCovering(root, s.repo, op);
|
|
376
398
|
const slices = fix ? [] : s.batches[batch];
|
|
377
399
|
const rejected = s.rejected.map((r) => rejectedText(r, source));
|
|
378
400
|
const own = kindsOf(slices.map((x) => x.path));
|
|
@@ -396,9 +418,13 @@ async function packFor(root, s, batch, source, op, now) {
|
|
|
396
418
|
// build files are read first, so from the second batch on this is what the code says.
|
|
397
419
|
frameworks: await frameworksFor(root, s.repo, facts),
|
|
398
420
|
// Nothing says what this repo is: ask for one line, cited, for a person to confirm.
|
|
399
|
-
...about ? {} : { askAbout: true },
|
|
421
|
+
...about || s.sets ? {} : { askAbout: true },
|
|
422
|
+
// ADR 0167: a top-up carries only the rule sets the read lacked.
|
|
423
|
+
...s.sets ? { sets: s.sets } : {},
|
|
400
424
|
// A-taught: how to read the wrapper calls and annotations of the frameworks it is built on.
|
|
401
|
-
...taughtOption(taughtIn(source, op))
|
|
425
|
+
...taughtOption(taughtIn(source, op)),
|
|
426
|
+
// ADR 0163: what the organisation's terms mean here and what must hold, as data.
|
|
427
|
+
...notes ? { notes } : {}
|
|
402
428
|
}),
|
|
403
429
|
classification: "public",
|
|
404
430
|
trusted: true
|
|
@@ -442,12 +468,12 @@ ${s.problems.map((p) => `- ${p}`).join("\n")}`,
|
|
|
442
468
|
priority: 5
|
|
443
469
|
}
|
|
444
470
|
] : [],
|
|
445
|
-
...onFile.length ? [
|
|
471
|
+
...onFile.length || rules.length ? [
|
|
446
472
|
{
|
|
447
473
|
id: "4-questions",
|
|
448
474
|
kind: "document",
|
|
449
475
|
origin: "questions/",
|
|
450
|
-
text: questionsText(onFile),
|
|
476
|
+
text: questionsText(onFile, rules),
|
|
451
477
|
classification: "internal",
|
|
452
478
|
priority: 4
|
|
453
479
|
}
|
|
@@ -523,13 +549,41 @@ async function mapCommand(root, repo, o, io, deps = {}) {
|
|
|
523
549
|
const source = dirSource(dir);
|
|
524
550
|
const exclude = await excludesOf(root, repo);
|
|
525
551
|
const factsFile = `${factsRelOf(root)}/${repo}.jsonl`;
|
|
552
|
+
const repoNotes = await notesAt(root, repo, dir, op);
|
|
553
|
+
const notesPrompt = notesText(repoNotes.notes, repoNotes.type);
|
|
526
554
|
if (o.gaps) {
|
|
527
|
-
const { mapGaps } = await import("./chunk-
|
|
555
|
+
const { mapGaps } = await import("./chunk-4Q2PGM5T.js");
|
|
528
556
|
const tier = await tierHere(root, op);
|
|
557
|
+
let part;
|
|
558
|
+
if (o.part !== void 0) {
|
|
559
|
+
const p = (await readPlanProgress(root, repo))?.parts.find((x) => x.part === o.part);
|
|
560
|
+
if (!p) {
|
|
561
|
+
io.err(`${repo}'s read plan has no part ${o.part} (${readPlanRelOf(root, repo)}): atticus map ${repo} --estimate plans it.`);
|
|
562
|
+
return 2;
|
|
563
|
+
}
|
|
564
|
+
part = {
|
|
565
|
+
n: p.part,
|
|
566
|
+
left: [...p.paths.filter((g) => !lineRangeOf(g)), ...p.left.filter((g) => lineRangeOf(g))]
|
|
567
|
+
};
|
|
568
|
+
}
|
|
529
569
|
return mapGaps(root, repo, {
|
|
530
570
|
commit,
|
|
531
571
|
source,
|
|
532
572
|
session: sessionTokensFor(limitOf(o, op, tier).limit),
|
|
573
|
+
...o.json ? { json: true } : {},
|
|
574
|
+
...part ? { part } : {}
|
|
575
|
+
}, io);
|
|
576
|
+
}
|
|
577
|
+
if (o.rules && !deps.runtime) {
|
|
578
|
+
const { mapRules } = await import("./chunk-2Q2YBAR5.js");
|
|
579
|
+
const tier = await tierHere(root, op);
|
|
580
|
+
return mapRules(root, repo, {
|
|
581
|
+
commit,
|
|
582
|
+
source,
|
|
583
|
+
exclude,
|
|
584
|
+
conventions,
|
|
585
|
+
session: sessionTokensFor(limitOf(o, op, tier).limit),
|
|
586
|
+
notes: notesPrompt,
|
|
533
587
|
...o.json ? { json: true } : {}
|
|
534
588
|
}, io);
|
|
535
589
|
}
|
|
@@ -605,44 +659,86 @@ async function mapCommand(root, repo, o, io, deps = {}) {
|
|
|
605
659
|
if (room < MIN_ROOM)
|
|
606
660
|
return tooSmall(0);
|
|
607
661
|
const frameworks = await frameworksFor(root, repo, existing);
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
662
|
+
if (o.rules) {
|
|
663
|
+
const { topUpOf, recordRulesNow, ruleSetsOfFiles } = await import("./chunk-2Q2YBAR5.js");
|
|
664
|
+
const t = await topUpOf(root, repo, {
|
|
665
|
+
commit,
|
|
666
|
+
facts: existing,
|
|
667
|
+
source,
|
|
668
|
+
exclude,
|
|
669
|
+
conventions
|
|
670
|
+
});
|
|
671
|
+
if ("error" in t) {
|
|
672
|
+
io.err(t.error);
|
|
673
|
+
return 2;
|
|
674
|
+
}
|
|
675
|
+
if (!t.lacking.length) {
|
|
676
|
+
io.out(`${repo} was read under the reading rules there are now: nothing to top up.`);
|
|
677
|
+
return 0;
|
|
678
|
+
}
|
|
679
|
+
if (!t.files.length) {
|
|
680
|
+
await recordRulesNow(root, repo, commit);
|
|
681
|
+
io.out(`No file of ${repo} is one the reading rules added since it was read apply to (${t.lacking.join(", ")}): its read is recorded as under the rules there are now.`);
|
|
682
|
+
return 0;
|
|
683
|
+
}
|
|
684
|
+
const sets = ruleSetsOfFiles(t.files);
|
|
685
|
+
const plan = planBatches(onlyFiles(source, t.files.map((f) => f.path)), { room, exclude, overhead: overheadOf(repo, commit, frameworks), conventions });
|
|
686
|
+
if (plan.leastRoom < MIN_ROOM)
|
|
687
|
+
return tooSmall(room - plan.leastRoom);
|
|
688
|
+
s = {
|
|
689
|
+
schemaVersion: 1,
|
|
690
|
+
repo,
|
|
691
|
+
commit,
|
|
692
|
+
...limit ? { maxTokens: limit } : {},
|
|
693
|
+
room,
|
|
694
|
+
batches: plan.batches,
|
|
695
|
+
next: 0,
|
|
696
|
+
rejected: [],
|
|
697
|
+
problems: [],
|
|
698
|
+
sets
|
|
699
|
+
};
|
|
700
|
+
await saveState(root, s);
|
|
701
|
+
io.out(`Topping up ${repo} at ${commit.slice(0, 12)} for the reading rules added since it was read (${sets.join(", ")}): ${plural(plan.files, "source file")} in ${batches(plan.batches.length)}; facts go to ${factsFile}.`);
|
|
702
|
+
} else {
|
|
703
|
+
const re = await rereadOf(dir, existing, commit, source, exclude, deps.git, conventions);
|
|
704
|
+
const reread = re.plan && !re.plan.unknown.length ? re.plan : void 0;
|
|
705
|
+
const since = reread?.from.map((x) => x.commit.slice(0, 12)).join(", ");
|
|
706
|
+
if (reread && !reread.files.length && !reread.reread.length) {
|
|
707
|
+
io.out(`Nothing ${repo}'s facts cite changed since ${since}, and no source file did: atticus verify ${repo} carries its ${plural(reread.carried, "fact")} to ${commit.slice(0, 12)}.`);
|
|
708
|
+
return 0;
|
|
709
|
+
}
|
|
710
|
+
const plan = planBatches(reread ? onlyFiles(source, reread.files.map((f) => f.path)) : source, { room, exclude, overhead: overheadOf(repo, commit, frameworks), conventions });
|
|
711
|
+
if (plan.leastRoom < MIN_ROOM)
|
|
712
|
+
return tooSmall(room - plan.leastRoom);
|
|
713
|
+
if (!plan.batches.length && !reread) {
|
|
714
|
+
io.out(`${repo} has no source files to read${plan.excluded.length ? ` (${plural(plan.excluded.length, "file")} excluded)` : ""}.`);
|
|
715
|
+
return 0;
|
|
716
|
+
}
|
|
717
|
+
const byId = new Map(existing.map((f) => [f.id, f]));
|
|
718
|
+
s = {
|
|
719
|
+
schemaVersion: 1,
|
|
720
|
+
repo,
|
|
721
|
+
commit,
|
|
722
|
+
...limit ? { maxTokens: limit } : {},
|
|
723
|
+
room,
|
|
724
|
+
batches: plan.batches,
|
|
725
|
+
next: 0,
|
|
726
|
+
rejected: (reread?.reread ?? []).map((r) => {
|
|
727
|
+
const fact = byId.get(r.id);
|
|
728
|
+
return { id: r.id, code: "cite-changed", message: staleMessage(fact, r, commit), fact };
|
|
729
|
+
}),
|
|
730
|
+
problems: [],
|
|
731
|
+
...reread ? {
|
|
732
|
+
reread: {
|
|
733
|
+
from: reread.from.map((x) => x.commit),
|
|
734
|
+
carried: reread.carried,
|
|
735
|
+
facts: reread.reread.length
|
|
736
|
+
}
|
|
737
|
+
} : {}
|
|
738
|
+
};
|
|
739
|
+
await saveState(root, s);
|
|
740
|
+
io.out(reread ? `Re-reading ${repo} at ${commit.slice(0, 12)}: ${plural(plan.files, "source file")} changed since ${since}, in ${batches(plan.batches.length)}${plan.batches.length ? ` (about ${plan.tokens} tokens${limit ? `, each prompt within ${limit} tokens` : ""})` : ""}; ${plural(reread.reread.length, "fact")} to rewrite, ${reread.carried} carried as they are; facts go to ${factsFile}.` : `Reading ${repo} at ${commit.slice(0, 12)} in ${batches(plan.batches.length)} (${plural(plan.files, "source file")}, about ${plan.tokens} tokens${limit ? `, each prompt within ${limit} tokens` : ""}); facts go to ${factsFile}.`);
|
|
621
741
|
}
|
|
622
|
-
const byId = new Map(existing.map((f) => [f.id, f]));
|
|
623
|
-
s = {
|
|
624
|
-
schemaVersion: 1,
|
|
625
|
-
repo,
|
|
626
|
-
commit,
|
|
627
|
-
...limit ? { maxTokens: limit } : {},
|
|
628
|
-
room,
|
|
629
|
-
batches: plan.batches,
|
|
630
|
-
next: 0,
|
|
631
|
-
rejected: (reread?.reread ?? []).map((r) => {
|
|
632
|
-
const fact = byId.get(r.id);
|
|
633
|
-
return { id: r.id, code: "cite-changed", message: staleMessage(fact, r, commit), fact };
|
|
634
|
-
}),
|
|
635
|
-
problems: [],
|
|
636
|
-
...reread ? {
|
|
637
|
-
reread: {
|
|
638
|
-
from: reread.from.map((x) => x.commit),
|
|
639
|
-
carried: reread.carried,
|
|
640
|
-
facts: reread.reread.length
|
|
641
|
-
}
|
|
642
|
-
} : {}
|
|
643
|
-
};
|
|
644
|
-
await saveState(root, s);
|
|
645
|
-
io.out(reread ? `Re-reading ${repo} at ${commit.slice(0, 12)}: ${plural(plan.files, "source file")} changed since ${since}, in ${batches(plan.batches.length)}${plan.batches.length ? ` (about ${plan.tokens} tokens${limit ? `, each prompt within ${limit} tokens` : ""})` : ""}; ${plural(reread.reread.length, "fact")} to rewrite, ${reread.carried} carried as they are; facts go to ${factsFile}.` : `Reading ${repo} at ${commit.slice(0, 12)} in ${batches(plan.batches.length)} (${plural(plan.files, "source file")}, about ${plan.tokens} tokens${limit ? `, each prompt within ${limit} tokens` : ""}); facts go to ${factsFile}.`);
|
|
646
742
|
}
|
|
647
743
|
if (!s)
|
|
648
744
|
return 2;
|
|
@@ -652,7 +748,7 @@ async function mapCommand(root, repo, o, io, deps = {}) {
|
|
|
652
748
|
break;
|
|
653
749
|
if (fixRound)
|
|
654
750
|
s.fixRound = true;
|
|
655
|
-
const { agent, pack } = await packFor(root, s, s.next, source, op, now());
|
|
751
|
+
const { agent, pack } = await packFor(root, s, s.next, source, op, now(), notesPrompt);
|
|
656
752
|
const prepared = await runtime.prepare({
|
|
657
753
|
change: changeOf(repo),
|
|
658
754
|
agent,
|
|
@@ -732,7 +828,9 @@ async function takeAnswer(root, s, run, batch, source, exclude, now, io, at) {
|
|
|
732
828
|
reviewed: reviewed.entries,
|
|
733
829
|
// J1 (ADR 0143): an exposure names a component the manifest lists.
|
|
734
830
|
...estate ? { estate } : {},
|
|
735
|
-
conventions: await conventionsAt(root)
|
|
831
|
+
conventions: await conventionsAt(root),
|
|
832
|
+
// ADR 0163: a term's note is one of those the batch was handed.
|
|
833
|
+
notes: (await notesAt(root, s.repo, at.dir)).notes
|
|
736
834
|
});
|
|
737
835
|
const q = await raiseReadQuestions(root, s.repo, answer.questions, source, {
|
|
738
836
|
command: `atticus map ${s.repo}`,
|
|
@@ -741,7 +839,7 @@ async function takeAnswer(root, s, run, batch, source, exclude, now, io, at) {
|
|
|
741
839
|
});
|
|
742
840
|
const summary = await writeVerifyFiles(root, s.repo, report, s.commit, q.problems, [], reviewedProblemsOf(reviewed.bad, report), answer.slips);
|
|
743
841
|
if (answer.about) {
|
|
744
|
-
const { keepDraftedDescription } = await import("./chunk-
|
|
842
|
+
const { keepDraftedDescription } = await import("./chunk-ZYASEL7K.js");
|
|
745
843
|
const d = await keepDraftedDescription(root, s.repo, answer.about, now());
|
|
746
844
|
if (d.kept)
|
|
747
845
|
io.out(`Your assistant says ${s.repo} is: "${answer.about.text}" \u2014 written to the manifest as a draft, unconfirmed. Confirm it (atticus repo describe ${s.repo} --accept), change it (--description "...") or drop it (--reject).`);
|
|
@@ -774,6 +872,10 @@ async function finish(root, s, io, o) {
|
|
|
774
872
|
s.done = true;
|
|
775
873
|
await saveState(root, s);
|
|
776
874
|
const last = s.last;
|
|
875
|
+
if (last && !last.rejected && !s.reread) {
|
|
876
|
+
const { recordRulesNow } = await import("./chunk-2Q2YBAR5.js");
|
|
877
|
+
await recordRulesNow(root, s.repo, s.commit);
|
|
878
|
+
}
|
|
777
879
|
const rel = factsRelOf(root);
|
|
778
880
|
if (o.json) {
|
|
779
881
|
io.out(JSON.stringify({ state: "done", repo: s.repo, batches: s.batches.length, ...last }, null, 2));
|
|
@@ -860,6 +962,8 @@ async function estimate(root, repo, c, io) {
|
|
|
860
962
|
...reread ? { reread: true } : {}
|
|
861
963
|
};
|
|
862
964
|
const sameEstimate = plan0?.estimate !== void 0 && plan0.estimate.files === estimate2.files && plan0.estimate.tokens === estimate2.tokens && plan0.estimate.sessions === estimate2.sessions && plan0.estimate.reread === estimate2.reread;
|
|
965
|
+
const firstRead = typeof existing !== "string" && existing.length === 0 && !reread;
|
|
966
|
+
const readRules = firstRead ? rulesNow() : plan0?.rules;
|
|
863
967
|
if (!same)
|
|
864
968
|
await writeReadPlan(root, repo, {
|
|
865
969
|
commit: c.commit,
|
|
@@ -867,12 +971,15 @@ async function estimate(root, repo, c, io) {
|
|
|
867
971
|
parts,
|
|
868
972
|
estimate: estimate2,
|
|
869
973
|
// What the reader reported of an earlier plan stays, under the commit it was of.
|
|
870
|
-
...plan0?.reported ? { reported: plan0.reported } : {}
|
|
974
|
+
...plan0?.reported ? { reported: plan0.reported } : {},
|
|
975
|
+
...readRules ? { rules: readRules } : {}
|
|
871
976
|
});
|
|
872
|
-
else if (!sameEstimate)
|
|
873
|
-
await saveReadPlan(root, { ...plan0, estimate: estimate2 });
|
|
977
|
+
else if (!sameEstimate || firstRead && plan0.rules?.hash !== readRules?.hash)
|
|
978
|
+
await saveReadPlan(root, { ...plan0, estimate: estimate2, ...readRules ? { rules: readRules } : {} });
|
|
874
979
|
const progress = parts.length ? await readPlanProgress(root, repo, { commit: c.commit }) : void 0;
|
|
875
980
|
const questions = (await listQuestions(root, { repo })).questions.filter((q) => q.state !== "retired");
|
|
981
|
+
const notes = await notesAt(root, repo, c.dir, c.op);
|
|
982
|
+
const rules = await rulesCovering(root, repo, c.op);
|
|
876
983
|
const house = await houseUntaughtOf(root, repo, {
|
|
877
984
|
dir: c.dir,
|
|
878
985
|
source: c.source,
|
|
@@ -921,12 +1028,15 @@ async function estimate(root, repo, c, io) {
|
|
|
921
1028
|
taughtFrameworks: taughtIn(c.source, c.op).map((m) => m.name),
|
|
922
1029
|
// R3: the house packages to teach before the first read.
|
|
923
1030
|
houseUntaught: house,
|
|
1031
|
+
// ADR 0163: the org notes the reader is handed, numbered, and the repo type they are of.
|
|
1032
|
+
notes: { ...notes.type ? { repoType: notes.type } : {}, notes: notes.notes },
|
|
924
1033
|
questions: questions.map((q) => ({
|
|
925
1034
|
id: q.id,
|
|
926
1035
|
question: q.question,
|
|
927
1036
|
state: q.state,
|
|
928
1037
|
...q.answer ? { answer: q.answer } : {}
|
|
929
1038
|
})),
|
|
1039
|
+
rules,
|
|
930
1040
|
// A re-read: what the files and batches above are, and the facts to revisit.
|
|
931
1041
|
reread: reread ? {
|
|
932
1042
|
...reread,
|
|
@@ -947,6 +1057,10 @@ async function estimate(root, repo, c, io) {
|
|
|
947
1057
|
if (taught)
|
|
948
1058
|
for (const l of taught.split("\n"))
|
|
949
1059
|
io.out(l);
|
|
1060
|
+
const notesLines = notesText(notes.notes, notes.type);
|
|
1061
|
+
if (notesLines)
|
|
1062
|
+
for (const l of notesLines.split("\n"))
|
|
1063
|
+
io.out(l);
|
|
950
1064
|
for (const l of houseUntaughtLines(repo, house))
|
|
951
1065
|
io.out(l);
|
|
952
1066
|
if (reread)
|
|
@@ -1001,14 +1115,20 @@ repo: ${repo}`);
|
|
|
1001
1115
|
io.out(plan ? `In batches at ${limit} tokens a prompt${given === void 0 ? " (GPT-4o mini through Copilot; --max-tokens n for your model's limit)" : from === "probe" ? ` (the limit stated when your assistant was measured on ${tier.measured?.at})` : ""}: ${plural(plan.batches.length, "prompt")}, one more if facts are rejected in the last.` : `A model of ${limit} tokens leaves too little room for the files beside the instructions: use a model with a bigger limit.`);
|
|
1002
1116
|
for (const q of questions)
|
|
1003
1117
|
io.out(`Question ${q.id}: ${q.question} (${q.state === "answered" ? `answered: ${q.answer?.text ?? q.options[(q.answer?.option ?? 1) - 1]?.label ?? ""}` : "open"})`);
|
|
1004
|
-
|
|
1005
|
-
io.out(
|
|
1118
|
+
for (const r of rules)
|
|
1119
|
+
io.out(ruleLineOf(r));
|
|
1120
|
+
if (questions.length || rules.length)
|
|
1121
|
+
io.out("Follow each answer and each rule; don't ask what they settle again.");
|
|
1006
1122
|
return 0;
|
|
1007
1123
|
}
|
|
1124
|
+
|
|
1008
1125
|
export {
|
|
1009
1126
|
REPO_READER,
|
|
1010
|
-
mapCommand,
|
|
1011
|
-
readAnswer,
|
|
1012
1127
|
repoReaderAgent,
|
|
1013
|
-
|
|
1128
|
+
mapStateOf,
|
|
1129
|
+
readAnswer,
|
|
1130
|
+
rulesCovering,
|
|
1131
|
+
ruleLineOf,
|
|
1132
|
+
taughtIn,
|
|
1133
|
+
mapCommand
|
|
1014
1134
|
};
|
|
@@ -11,7 +11,7 @@ import {
|
|
|
11
11
|
generateAssistantFiles,
|
|
12
12
|
parseHeader,
|
|
13
13
|
writeAssistantFiles
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-GHSVJNVL.js";
|
|
15
15
|
import {
|
|
16
16
|
CONSTITUTION_FILE_LABEL,
|
|
17
17
|
buildContext,
|
|
@@ -33,7 +33,7 @@ import {
|
|
|
33
33
|
sectionMatching,
|
|
34
34
|
toFinding,
|
|
35
35
|
writeFinding
|
|
36
|
-
} from "./chunk-
|
|
36
|
+
} from "./chunk-GMDOXWIS.js";
|
|
37
37
|
import {
|
|
38
38
|
changeFolder,
|
|
39
39
|
changeFootprint,
|
|
@@ -41,10 +41,10 @@ import {
|
|
|
41
41
|
changeTypeOf,
|
|
42
42
|
loadChangeContext,
|
|
43
43
|
referenceMetarepoIn
|
|
44
|
-
} from "./chunk-
|
|
44
|
+
} from "./chunk-U5T4A2QV.js";
|
|
45
45
|
import {
|
|
46
46
|
readSpecKitFeatures
|
|
47
|
-
} from "./chunk-
|
|
47
|
+
} from "./chunk-34NWVIBC.js";
|
|
48
48
|
import {
|
|
49
49
|
baseClonePath,
|
|
50
50
|
changeWorktreesDir,
|
|
@@ -52,14 +52,14 @@ import {
|
|
|
52
52
|
loadRepos,
|
|
53
53
|
readChangeRepos,
|
|
54
54
|
toRepoRelative
|
|
55
|
-
} from "./chunk-
|
|
55
|
+
} from "./chunk-RA64IK43.js";
|
|
56
56
|
import {
|
|
57
57
|
fsRepo
|
|
58
|
-
} from "./chunk-
|
|
58
|
+
} from "./chunk-MRLCNXXR.js";
|
|
59
59
|
import {
|
|
60
60
|
buildContextPack,
|
|
61
61
|
toRunSummary
|
|
62
|
-
} from "./chunk-
|
|
62
|
+
} from "./chunk-CQD26SMZ.js";
|
|
63
63
|
import {
|
|
64
64
|
ChecklistPack,
|
|
65
65
|
Finding,
|
|
@@ -71,10 +71,10 @@ import {
|
|
|
71
71
|
require_dist,
|
|
72
72
|
taskBranch,
|
|
73
73
|
toCanonicalYaml
|
|
74
|
-
} from "./chunk-
|
|
74
|
+
} from "./chunk-U25OX22K.js";
|
|
75
75
|
import {
|
|
76
76
|
writeFileAtomic
|
|
77
|
-
} from "./chunk-
|
|
77
|
+
} from "./chunk-MMB2OHUY.js";
|
|
78
78
|
import {
|
|
79
79
|
__toESM
|
|
80
80
|
} from "./chunk-TV45EUGM.js";
|
|
@@ -5,8 +5,8 @@ var __atticusUrl = (p) => new URL("./" + p, import.meta.url).href;
|
|
|
5
5
|
var __atticusPath = (p) => __atticusFileURLToPath(__atticusUrl(p));
|
|
6
6
|
import {
|
|
7
7
|
assistantActor
|
|
8
|
-
} from "./chunk-
|
|
9
|
-
import "./chunk-
|
|
8
|
+
} from "./chunk-U25OX22K.js";
|
|
9
|
+
import "./chunk-MMB2OHUY.js";
|
|
10
10
|
import "./chunk-TV45EUGM.js";
|
|
11
11
|
|
|
12
12
|
// packages/cli/dist/assistant-session.js
|
|
@@ -5,11 +5,11 @@ var __atticusUrl = (p) => new URL("./" + p, import.meta.url).href;
|
|
|
5
5
|
var __atticusPath = (p) => __atticusFileURLToPath(__atticusUrl(p));
|
|
6
6
|
import {
|
|
7
7
|
baseClonePath
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-RA64IK43.js";
|
|
9
9
|
import {
|
|
10
10
|
loadOrgPack,
|
|
11
11
|
orgPackDirOf
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-U25OX22K.js";
|
|
13
13
|
|
|
14
14
|
// packages/cli/dist/repo-for.js
|
|
15
15
|
import { stat } from "node:fs/promises";
|
|
@@ -6,18 +6,18 @@ var __atticusPath = (p) => __atticusFileURLToPath(__atticusUrl(p));
|
|
|
6
6
|
import {
|
|
7
7
|
aliasCommand,
|
|
8
8
|
reconcileCommand
|
|
9
|
-
} from "./chunk-
|
|
10
|
-
import "./chunk-
|
|
11
|
-
import "./chunk-
|
|
12
|
-
import "./chunk-
|
|
13
|
-
import "./chunk-
|
|
14
|
-
import "./chunk-
|
|
15
|
-
import "./chunk-
|
|
16
|
-
import "./chunk-
|
|
17
|
-
import "./chunk-
|
|
18
|
-
import "./chunk-
|
|
19
|
-
import "./chunk-
|
|
20
|
-
import "./chunk-
|
|
9
|
+
} from "./chunk-FQ6IBYFC.js";
|
|
10
|
+
import "./chunk-22GLUHGE.js";
|
|
11
|
+
import "./chunk-QR65C3DV.js";
|
|
12
|
+
import "./chunk-MLAACAES.js";
|
|
13
|
+
import "./chunk-HY2VVVFZ.js";
|
|
14
|
+
import "./chunk-PJRMMWU4.js";
|
|
15
|
+
import "./chunk-34NWVIBC.js";
|
|
16
|
+
import "./chunk-RA64IK43.js";
|
|
17
|
+
import "./chunk-MRLCNXXR.js";
|
|
18
|
+
import "./chunk-CQD26SMZ.js";
|
|
19
|
+
import "./chunk-U25OX22K.js";
|
|
20
|
+
import "./chunk-MMB2OHUY.js";
|
|
21
21
|
import "./chunk-TV45EUGM.js";
|
|
22
22
|
export {
|
|
23
23
|
aliasCommand,
|
|
@@ -12,27 +12,27 @@ import {
|
|
|
12
12
|
snowSubmit,
|
|
13
13
|
storyBarCommand,
|
|
14
14
|
templatesDraft
|
|
15
|
-
} from "./chunk-
|
|
16
|
-
import "./chunk-
|
|
17
|
-
import "./chunk-
|
|
18
|
-
import "./chunk-
|
|
15
|
+
} from "./chunk-4HIQ2FTI.js";
|
|
16
|
+
import "./chunk-EREL3TQG.js";
|
|
17
|
+
import "./chunk-DWYPYVPJ.js";
|
|
18
|
+
import "./chunk-ISXNWUG7.js";
|
|
19
19
|
import "./chunk-VOGCSYOI.js";
|
|
20
|
-
import "./chunk-
|
|
21
|
-
import "./chunk-
|
|
22
|
-
import "./chunk-
|
|
23
|
-
import "./chunk-
|
|
24
|
-
import "./chunk-
|
|
25
|
-
import "./chunk-
|
|
26
|
-
import "./chunk-
|
|
27
|
-
import "./chunk-
|
|
28
|
-
import "./chunk-
|
|
29
|
-
import "./chunk-
|
|
30
|
-
import "./chunk-
|
|
31
|
-
import "./chunk-
|
|
32
|
-
import "./chunk-
|
|
33
|
-
import "./chunk-
|
|
34
|
-
import "./chunk-
|
|
35
|
-
import "./chunk-
|
|
20
|
+
import "./chunk-GMDOXWIS.js";
|
|
21
|
+
import "./chunk-U5T4A2QV.js";
|
|
22
|
+
import "./chunk-JQG4VO47.js";
|
|
23
|
+
import "./chunk-DW4BM73R.js";
|
|
24
|
+
import "./chunk-22GLUHGE.js";
|
|
25
|
+
import "./chunk-QR65C3DV.js";
|
|
26
|
+
import "./chunk-MLAACAES.js";
|
|
27
|
+
import "./chunk-HY2VVVFZ.js";
|
|
28
|
+
import "./chunk-PJRMMWU4.js";
|
|
29
|
+
import "./chunk-34NWVIBC.js";
|
|
30
|
+
import "./chunk-77UOXZVM.js";
|
|
31
|
+
import "./chunk-RA64IK43.js";
|
|
32
|
+
import "./chunk-MRLCNXXR.js";
|
|
33
|
+
import "./chunk-CQD26SMZ.js";
|
|
34
|
+
import "./chunk-U25OX22K.js";
|
|
35
|
+
import "./chunk-MMB2OHUY.js";
|
|
36
36
|
import "./chunk-TV45EUGM.js";
|
|
37
37
|
export {
|
|
38
38
|
adoSync,
|
|
@@ -5,7 +5,7 @@ var __atticusUrl = (p) => new URL("./" + p, import.meta.url).href;
|
|
|
5
5
|
var __atticusPath = (p) => __atticusFileURLToPath(__atticusUrl(p));
|
|
6
6
|
import {
|
|
7
7
|
parseFactLine
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-U25OX22K.js";
|
|
9
9
|
|
|
10
10
|
// packages/cli/dist/memory-room.js
|
|
11
11
|
import { createReadStream } from "node:fs";
|