agentic-qe 3.15.4 → 3.15.6
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/.claude/skills/qe-court/evals/fixtures/seeded-mutant-delivery/README.md +9 -2
- package/.claude/skills/qe-court/evals/qe-court.yaml +3 -2
- package/.claude/skills/qe-quality-assessment/schemas/output.json +12 -2
- package/.claude/skills/skills-manifest.json +1 -1
- package/CHANGELOG.md +191 -0
- package/assets/skills/qe-court/evals/fixtures/seeded-mutant-delivery/README.md +9 -2
- package/assets/skills/qe-court/evals/qe-court.yaml +3 -2
- package/assets/skills/qe-quality-assessment/schemas/output.json +12 -2
- package/assets/skills/skills-manifest.json +1 -1
- package/dist/bridge/captured-experience-bridge.js +7 -9
- package/dist/cli/bundle.js +5 -5
- package/dist/cli/chunks/adapter-PP3XIXDV.js +2 -0
- package/dist/cli/chunks/{agent-booster-wasm-MHJBRXMK.js → agent-booster-wasm-SY7UCLBL.js} +2 -2
- package/dist/cli/chunks/{agent-handler-G64SD7J2.js → agent-handler-KAMYBU3S.js} +2 -2
- package/dist/cli/chunks/{agent-memory-branch-G4UXFPKH.js → agent-memory-branch-2CAW3KUM.js} +2 -2
- package/dist/cli/chunks/aqe-learning-engine-VDUQJKKY.js +2 -0
- package/dist/cli/chunks/{arena-63M3M6EW.js → arena-4OFLJ3R2.js} +2 -2
- package/dist/cli/chunks/{arena-QJMKYPHS.js → arena-QCCVIOAH.js} +4 -4
- package/dist/cli/chunks/{audit-UDFVTWSX.js → audit-RBDQJQJB.js} +3 -3
- package/dist/cli/chunks/base-QSYWWPCE.js +2 -0
- package/dist/cli/chunks/{better-sqlite3-JLX2G56I.js → better-sqlite3-5JRACCDQ.js} +2 -2
- package/dist/cli/chunks/{brain-handler-PWF32LLW.js → brain-handler-W4QIIRT4.js} +3 -3
- package/dist/cli/chunks/{branch-enumerator-PB7QWXDP.js → branch-enumerator-IBNGI572.js} +2 -2
- package/dist/cli/chunks/{browser-CYNV2F3U.js → browser-GMSCVAOI.js} +2 -2
- package/dist/cli/chunks/browser-workflow-WXXPBSCM.js +2 -0
- package/dist/cli/chunks/{chunk-S5D3HCGN.js → chunk-22OZIJAD.js} +2 -2
- package/dist/cli/chunks/{chunk-NBMQOP2R.js → chunk-24ZSGYC6.js} +1 -1
- package/dist/cli/chunks/{chunk-HFSBONCS.js → chunk-2CIDFR2H.js} +3 -3
- package/dist/cli/chunks/{chunk-A4OPQJ4A.js → chunk-2IWPJUVV.js} +5 -5
- package/dist/cli/chunks/{chunk-RI4JPBZD.js → chunk-2ZTWPMTK.js} +2 -2
- package/dist/cli/chunks/{chunk-ZURYZEHX.js → chunk-34MDMFET.js} +2 -2
- package/dist/cli/chunks/chunk-3DJNKNBR.js +742 -0
- package/dist/cli/chunks/{chunk-GJVRQBLI.js → chunk-3NJ7O3OH.js} +2 -2
- package/dist/cli/chunks/chunk-45MVRQG4.js +2 -0
- package/dist/cli/chunks/chunk-46HBVDMU.js +2 -0
- package/dist/cli/chunks/{chunk-SCL2OYN7.js → chunk-47Q7JL3V.js} +2 -2
- package/dist/cli/chunks/chunk-4CLDYT36.js +2 -0
- package/dist/cli/chunks/{chunk-3ZIVBTX6.js → chunk-4KOVHQXK.js} +2 -2
- package/dist/cli/chunks/{chunk-BBKLVHDQ.js → chunk-4POOJYXA.js} +1 -1
- package/dist/cli/chunks/{chunk-DAYMT7TH.js → chunk-5DH5QI7G.js} +26 -26
- package/dist/cli/chunks/{chunk-2534PXIV.js → chunk-5GIJU2ZY.js} +2 -2
- package/dist/cli/chunks/{chunk-MBV57LKC.js → chunk-5HAPS6VD.js} +2 -2
- package/dist/cli/chunks/{chunk-NIJMLEAX.js → chunk-5LST62QR.js} +2 -2
- package/dist/cli/chunks/{chunk-33IUCP34.js → chunk-5MT7DMD7.js} +2 -2
- package/dist/cli/chunks/{chunk-LRTF5RMG.js → chunk-5NC7QEJ6.js} +4 -4
- package/dist/cli/chunks/{chunk-SJB4KMZS.js → chunk-5UPIL62W.js} +3 -3
- package/dist/cli/chunks/{chunk-76PRW2KY.js → chunk-5VUIXDY2.js} +2 -2
- package/dist/cli/chunks/chunk-5VZVMO7B.js +3 -0
- package/dist/cli/chunks/{chunk-J3RNVHDH.js → chunk-624QRKQX.js} +1 -1
- package/dist/cli/chunks/{chunk-N6CRIUTO.js → chunk-66NW3ZB4.js} +2 -2
- package/dist/cli/chunks/{chunk-PCWZCXBD.js → chunk-6HWARQWV.js} +2 -2
- package/dist/cli/chunks/{chunk-VAXQUD5G.js → chunk-6MXAJBEA.js} +1 -1
- package/dist/cli/chunks/{chunk-LOLAEDZD.js → chunk-6R3FBFCJ.js} +2 -2
- package/dist/cli/chunks/{chunk-ASKPTGUU.js → chunk-6RDVY26I.js} +2 -2
- package/dist/cli/chunks/{chunk-35A22AUL.js → chunk-6T6AHVLF.js} +1 -1
- package/dist/cli/chunks/{chunk-IKWAPHJA.js → chunk-6WOZUSSN.js} +2 -2
- package/dist/cli/chunks/chunk-72MQCZSM.js +2 -0
- package/dist/cli/chunks/chunk-7QVPMH25.js +3 -0
- package/dist/cli/chunks/{chunk-5H7MR6HP.js → chunk-7SAMMQVS.js} +1 -1
- package/dist/cli/chunks/{chunk-B7J3O2WM.js → chunk-7TJZDRDU.js} +1 -1
- package/dist/cli/chunks/{chunk-OFQDM73J.js → chunk-7TVIX4WL.js} +2 -2
- package/dist/cli/chunks/{chunk-SZWXUG36.js → chunk-7VTKR44N.js} +2 -2
- package/dist/cli/chunks/{chunk-5B5D5KCV.js → chunk-7XTANLTN.js} +1 -1
- package/dist/cli/chunks/chunk-7XUB7U6Z.js +4 -0
- package/dist/cli/chunks/{chunk-GAXTPQCZ.js → chunk-A74J23QB.js} +2 -2
- package/dist/cli/chunks/{chunk-K2VUYRMG.js → chunk-A7ANPS4E.js} +2 -2
- package/dist/cli/chunks/{chunk-WO4NSPLX.js → chunk-AJT3XDRD.js} +2 -2
- package/dist/cli/chunks/{chunk-LPSE6DOQ.js → chunk-ALCIUWFC.js} +1 -1
- package/dist/cli/chunks/{chunk-UK5HY6LC.js → chunk-AUN4FG7V.js} +1 -1
- package/dist/cli/chunks/{chunk-MGH4XIHH.js → chunk-AUOSHM63.js} +2 -2
- package/dist/cli/chunks/{chunk-HX5KQK7I.js → chunk-AX26QJ6T.js} +2 -2
- package/dist/cli/chunks/{chunk-BZWZTGMF.js → chunk-B7RHBKHL.js} +2 -2
- package/dist/cli/chunks/{chunk-I5A3HGO6.js → chunk-BAYGQRNP.js} +2 -2
- package/dist/cli/chunks/{chunk-3C2BFLYC.js → chunk-BIXRTOH3.js} +18 -18
- package/dist/cli/chunks/{chunk-EWUFVWRT.js → chunk-BO7UFNYV.js} +2 -2
- package/dist/cli/chunks/{chunk-6TMUZGM2.js → chunk-BUTGIVKW.js} +1 -1
- package/dist/cli/chunks/{chunk-2MU4WCMQ.js → chunk-BXATKI5S.js} +2 -2
- package/dist/cli/chunks/{chunk-HEDLZWPM.js → chunk-CCL436IU.js} +44 -33
- package/dist/cli/chunks/{chunk-6EHVPFHW.js → chunk-CEXNW5TR.js} +1 -1
- package/dist/cli/chunks/{chunk-2ICC4H6K.js → chunk-CLAMMGY3.js} +2 -2
- package/dist/cli/chunks/{chunk-BPGFCUDO.js → chunk-CR66HNAE.js} +1 -1
- package/dist/cli/chunks/{chunk-CFXFGQEN.js → chunk-CZBIREL5.js} +2 -2
- package/dist/cli/chunks/{chunk-Z56QTRRB.js → chunk-D5N2O5EH.js} +2 -2
- package/dist/cli/chunks/{chunk-M6SJALLA.js → chunk-DA7DGDTI.js} +2 -2
- package/dist/cli/chunks/{chunk-R47LNH5W.js → chunk-DLSFT6PO.js} +2 -2
- package/dist/cli/chunks/{chunk-6HTO4BLV.js → chunk-DQNUPEY5.js} +2 -2
- package/dist/cli/chunks/{chunk-XZ5Z56OP.js → chunk-EECF4CMA.js} +1 -1
- package/dist/cli/chunks/{chunk-DFJGXXCL.js → chunk-EF5UHDCG.js} +1 -1
- package/dist/cli/chunks/{chunk-PJAXWCFC.js → chunk-EJ4KZFZN.js} +1 -1
- package/dist/cli/chunks/{chunk-RA3MI5WK.js → chunk-ELI4GDQO.js} +2 -2
- package/dist/cli/chunks/{chunk-BND6M2JX.js → chunk-F3KS3TAB.js} +2 -2
- package/dist/cli/chunks/{chunk-RB2SL5GD.js → chunk-F7A2UBZO.js} +2 -2
- package/dist/cli/chunks/{chunk-X5S5UEM6.js → chunk-FOJRPEIP.js} +2 -2
- package/dist/cli/chunks/{chunk-ZP6ANUP7.js → chunk-FQ5N666N.js} +1 -1
- package/dist/cli/chunks/{chunk-LZSLJJII.js → chunk-FU7LNUD7.js} +2 -2
- package/dist/cli/chunks/{chunk-FDK2GF4G.js → chunk-GFB6BZWU.js} +2 -2
- package/dist/cli/chunks/{chunk-C5EN5WB6.js → chunk-GI5HWS4H.js} +1 -1
- package/dist/cli/chunks/{chunk-SIUUAKCE.js → chunk-GNYOHZVV.js} +1 -1
- package/dist/cli/chunks/{chunk-OOK6GPJR.js → chunk-GVRFSXY6.js} +2 -2
- package/dist/cli/chunks/{chunk-6QPW4OVH.js → chunk-GWM4M5NF.js} +1 -1
- package/dist/cli/chunks/{chunk-PMXWDTDK.js → chunk-HAN4MS5T.js} +2 -2
- package/dist/cli/chunks/{chunk-WW6WUMS7.js → chunk-HEGGV2PT.js} +2 -2
- package/dist/cli/chunks/{chunk-4GLR2S2M.js → chunk-HOEWMEF2.js} +2 -2
- package/dist/cli/chunks/{chunk-BY3IL56R.js → chunk-HZFK2Z2Z.js} +1 -1
- package/dist/cli/chunks/chunk-I7WAW7TM.js +2 -0
- package/dist/cli/chunks/{chunk-LXYTC62V.js → chunk-IEPWO4XP.js} +2 -2
- package/dist/cli/chunks/{chunk-3MSBVOYW.js → chunk-ITIJ23K2.js} +2 -2
- package/dist/cli/chunks/{chunk-PEA4DVXW.js → chunk-IVJIHZSM.js} +1 -1
- package/dist/cli/chunks/{chunk-P7GM3EE7.js → chunk-JAPBSSFY.js} +1 -1
- package/dist/cli/chunks/{chunk-SOSJFEFB.js → chunk-JCE76MPP.js} +2 -2
- package/dist/cli/chunks/{chunk-YZ2AGC7O.js → chunk-JPJEAK4G.js} +1 -1
- package/dist/cli/chunks/{chunk-RG67RZIX.js → chunk-JYKQVYX2.js} +2 -2
- package/dist/cli/chunks/{chunk-W6TJXK5Y.js → chunk-K55EAWZ5.js} +2 -2
- package/dist/cli/chunks/chunk-KCB6P463.js +3 -0
- package/dist/cli/chunks/{chunk-W3PPYNHF.js → chunk-KIDOBLUO.js} +2 -2
- package/dist/cli/chunks/{chunk-JL3TI43V.js → chunk-KYVIOC3C.js} +2 -2
- package/dist/cli/chunks/{chunk-WEDVLKRB.js → chunk-L2TDHJR3.js} +2 -2
- package/dist/cli/chunks/{chunk-5GWTJJEO.js → chunk-L4D3TPFP.js} +1 -1
- package/dist/cli/chunks/{chunk-PB2WSCBW.js → chunk-LAY7NCQK.js} +3 -3
- package/dist/cli/chunks/{chunk-T3BMCEQR.js → chunk-LCCTJ2PC.js} +2 -2
- package/dist/cli/chunks/{chunk-7INP6HZH.js → chunk-LJCEDTUM.js} +3 -3
- package/dist/cli/chunks/{chunk-DEJM2P5K.js → chunk-LMAEMVPA.js} +1 -1
- package/dist/cli/chunks/{chunk-HCDTLV5J.js → chunk-LZWJ5BMP.js} +2 -2
- package/dist/cli/chunks/{chunk-D7RVZ5C2.js → chunk-MP3FSUNB.js} +2 -2
- package/dist/cli/chunks/{chunk-ADF6LGHZ.js → chunk-MQCTLTGE.js} +2 -2
- package/dist/cli/chunks/{chunk-OHH6BUZK.js → chunk-MQTA6KIO.js} +1 -1
- package/dist/cli/chunks/{chunk-ISASRHZP.js → chunk-NBUXM5X6.js} +10 -6
- package/dist/cli/chunks/{chunk-KOLHZSEC.js → chunk-NHRF3V4B.js} +2 -2
- package/dist/cli/chunks/chunk-NMY4KTWA.js +16 -0
- package/dist/cli/chunks/chunk-NYS2GUNO.js +2 -0
- package/dist/cli/chunks/{chunk-EGHK6NMH.js → chunk-ONPPBLRB.js} +2 -2
- package/dist/cli/chunks/{chunk-YQ6BK7QC.js → chunk-OPDZBRIL.js} +2 -2
- package/dist/cli/chunks/{chunk-DPL4ZXTE.js → chunk-OQ4S6B7P.js} +1 -1
- package/dist/cli/chunks/{chunk-6HO3XRXE.js → chunk-ORBODZSO.js} +2 -2
- package/dist/cli/chunks/{chunk-GLKLEHK3.js → chunk-ORFL3YXB.js} +2 -2
- package/dist/cli/chunks/{chunk-I43QRLLB.js → chunk-P7DXVL2S.js} +2 -2
- package/dist/cli/chunks/chunk-PEMSXSP2.js +4 -0
- package/dist/cli/chunks/chunk-PS6WFCA4.js +6 -0
- package/dist/cli/chunks/{chunk-HEKCN5XQ.js → chunk-Q2RBOC7V.js} +2 -2
- package/dist/cli/chunks/{chunk-54XTJBHV.js → chunk-QLKUCMZC.js} +1 -1
- package/dist/cli/chunks/{chunk-3BDDOFYW.js → chunk-QLYO3H7E.js} +9 -9
- package/dist/cli/chunks/{chunk-VMSO6DMF.js → chunk-QS5KZYUZ.js} +2 -2
- package/dist/cli/chunks/{chunk-JFQDWAU3.js → chunk-R363XXGH.js} +2 -2
- package/dist/cli/chunks/chunk-RD5BYLN7.js +2 -0
- package/dist/cli/chunks/{chunk-73PCVMGA.js → chunk-RFDFET3O.js} +2 -2
- package/dist/cli/chunks/{chunk-LJRZAALA.js → chunk-RHIQ6QO5.js} +357 -351
- package/dist/cli/chunks/chunk-RLB7K7QP.js +2 -0
- package/dist/cli/chunks/{chunk-RJ5CZ7B6.js → chunk-RUTO67PT.js} +2 -2
- package/dist/cli/chunks/{chunk-DF4Y3HPO.js → chunk-RV6HSMKJ.js} +1 -1
- package/dist/cli/chunks/{chunk-54ITMOFM.js → chunk-SOSJWM3E.js} +4 -4
- package/dist/cli/chunks/{chunk-5SS2Z7JC.js → chunk-SV5BUYHH.js} +2 -2
- package/dist/cli/chunks/{chunk-XHCCH7UC.js → chunk-TL5GV3PR.js} +8 -8
- package/dist/cli/chunks/{chunk-ZKXZTIVF.js → chunk-TLUIO37P.js} +2 -2
- package/dist/cli/chunks/{chunk-2LL35V3A.js → chunk-TUDENMAE.js} +2 -2
- package/dist/cli/chunks/chunk-TVLOED6O.js +2 -0
- package/dist/cli/chunks/{chunk-2DRMTRBM.js → chunk-UB6DQGWM.js} +2 -2
- package/dist/cli/chunks/chunk-UHHMAKPE.js +3 -0
- package/dist/cli/chunks/{chunk-DBIK4OFX.js → chunk-ULCHPPW2.js} +1 -1
- package/dist/cli/chunks/chunk-V3OLS2NG.js +2 -0
- package/dist/cli/chunks/{chunk-I6E4X3L3.js → chunk-VAYZ5QIE.js} +1 -1
- package/dist/cli/chunks/{chunk-G3ZUB3HD.js → chunk-VCONCVSY.js} +3 -3
- package/dist/cli/chunks/{chunk-7X2IVMXN.js → chunk-VVF337SV.js} +2 -2
- package/dist/cli/chunks/{chunk-EY5IUF7U.js → chunk-WKDWRRDT.js} +2 -2
- package/dist/cli/chunks/{chunk-FRBCX46J.js → chunk-X2DR27AY.js} +2 -2
- package/dist/cli/chunks/{chunk-I53365HG.js → chunk-X33F7NXH.js} +3 -3
- package/dist/cli/chunks/{chunk-MVTUFPM2.js → chunk-XBEI2JBA.js} +2 -2
- package/dist/cli/chunks/{chunk-OG4KHX7S.js → chunk-XBFQJZWX.js} +2 -2
- package/dist/cli/chunks/{chunk-DVE5SM5G.js → chunk-XFPQIWEH.js} +3 -3
- package/dist/cli/chunks/{chunk-RWZ4F44Y.js → chunk-XPB5BVU6.js} +2 -2
- package/dist/cli/chunks/{chunk-TVQPYP2Z.js → chunk-XQ53PZEF.js} +3 -3
- package/dist/cli/chunks/{chunk-73MTUM6F.js → chunk-XZ46CI35.js} +2 -2
- package/dist/cli/chunks/chunk-YLNYPQDR.js +2 -0
- package/dist/cli/chunks/{chunk-BY5PLEPZ.js → chunk-YNG7E26C.js} +2 -2
- package/dist/cli/chunks/{chunk-YUWUFYHK.js → chunk-YXU35GGD.js} +1 -1
- package/dist/cli/chunks/{chunk-B7GJXQD2.js → chunk-ZCP4P6O2.js} +2 -2
- package/dist/cli/chunks/{chunk-LGA6J4I4.js → chunk-ZL5LJT7D.js} +2 -2
- package/dist/cli/chunks/{chunk-TB22Y3WW.js → chunk-ZOUEQ6DL.js} +1 -1
- package/dist/cli/chunks/{chunk-U2E5F3VZ.js → chunk-ZSBD4FUX.js} +2 -2
- package/dist/cli/chunks/chunk-ZTB32K5N.js +5 -0
- package/dist/cli/chunks/{chunk-WYO5VN2L.js → chunk-ZUTFHGEO.js} +1 -1
- package/dist/cli/chunks/ci-GEJCXMBK.js +81 -0
- package/dist/cli/chunks/ci-config-2ZVV4OXL.js +2 -0
- package/dist/cli/chunks/{ci-output-BMJABAEX.js → ci-output-E45OGVPR.js} +2 -2
- package/dist/cli/chunks/{circuit-breaker-GYD5CMJQ.js → circuit-breaker-X73ITYZC.js} +2 -2
- package/dist/cli/chunks/{claude-flow-setup-MMOYVBVD.js → claude-flow-setup-W4PPH46C.js} +2 -2
- package/dist/cli/chunks/client-6XKSQ4JT.js +2 -0
- package/dist/cli/chunks/{cline-installer-B2SOZ44R.js → cline-installer-NUEPMWDE.js} +2 -2
- package/dist/cli/chunks/{code-V3FIRAXD.js → code-6WQHBS7G.js} +4 -4
- package/dist/cli/chunks/{code-index-extractor-CV6A756Z.js → code-index-extractor-BXQIFIFT.js} +2 -2
- package/dist/cli/chunks/{codex-installer-EUC6J47Y.js → codex-installer-Z337R2KH.js} +2 -2
- package/dist/cli/chunks/{completions-DQQIBAHR.js → completions-F5DMYFHV.js} +2 -2
- package/dist/cli/chunks/{complexity-analyzer-HPXMXP5I.js → complexity-analyzer-W2SYPZDI.js} +2 -2
- package/dist/cli/chunks/{continuedev-installer-RCIYXH6V.js → continuedev-installer-ZCHUIFTN.js} +2 -2
- package/dist/cli/chunks/{copilot-installer-VUH32SHF.js → copilot-installer-M5JNODXF.js} +2 -2
- package/dist/cli/chunks/core-handlers-OJYW4Y6M.js +2 -0
- package/dist/cli/chunks/{cost-tracker-YLCKLOAL.js → cost-tracker-LSYTHBHV.js} +2 -2
- package/dist/cli/chunks/coverage-PGMRS5SS.js +49 -0
- package/dist/cli/chunks/cross-domain-router-QVUPQ2SC.js +2 -0
- package/dist/cli/chunks/{cursor-installer-B42FN62K.js → cursor-installer-XPUA73UW.js} +2 -2
- package/dist/cli/chunks/{daemon-DECQRQII.js → daemon-ITKDIYMW.js} +5 -5
- package/dist/cli/chunks/daemon-QBYTCIMH.js +10 -0
- package/dist/cli/chunks/{dag-attention-scheduler-RY7CDYSC.js → dag-attention-scheduler-T55AXLD6.js} +2 -2
- package/dist/cli/chunks/{detect-NW53BMJN.js → detect-DR7J6K4O.js} +2 -2
- package/dist/cli/chunks/{dist-node-LE6KHXAB.js → dist-node-LAJJBOUT.js} +2 -2
- package/dist/cli/chunks/{domain-handler-JGXFT4LW.js → domain-handler-OMSHCRMK.js} +2 -2
- package/dist/cli/chunks/{domain-plugins-GY3RYKKK.js → domain-plugins-EQXSKC5K.js} +2 -2
- package/dist/cli/chunks/{domain-transfer-CGBRXNTC.js → domain-transfer-FKRAGVSW.js} +2 -2
- package/dist/cli/chunks/dream-3UABDRZJ.js +2 -0
- package/dist/cli/chunks/embed-and-insert-pattern-JZFPCNL3.js +3 -0
- package/dist/cli/chunks/{eval-YPYIZQUR.js → eval-JSNNASBW.js} +2 -2
- package/dist/cli/chunks/experience-capture-middleware-UPD3IZBK.js +40 -0
- package/dist/cli/chunks/{fast-paths-HYQTAF2S.js → fast-paths-YNMIBS2E.js} +2 -2
- package/dist/cli/chunks/{feature-flags-HNSAFFX2.js → feature-flags-SRLXDKBI.js} +2 -2
- package/dist/cli/chunks/{feature-flags-YACUH6OW.js → feature-flags-VIR7O4L7.js} +2 -2
- package/dist/cli/chunks/file-discovery-ZFGZTKZ4.js +2 -0
- package/dist/cli/chunks/{fleet-6M3BP4OO.js → fleet-K2ED46EL.js} +3 -3
- package/dist/cli/chunks/{gnn-wrapper-QLD7KHXV.js → gnn-wrapper-QCU4ZRYW.js} +2 -2
- package/dist/cli/chunks/{heartbeat-handler-EZP333X4.js → heartbeat-handler-YYQI4WZM.js} +4 -4
- package/dist/cli/chunks/heartbeat-scheduler-MJ6MTPDF.js +2 -0
- package/dist/cli/chunks/hnsw-adapter-FQWJCFVW.js +2 -0
- package/dist/cli/chunks/hnsw-index-NJYKJUHC.js +2 -0
- package/dist/cli/chunks/{hnsw-legacy-bridge-47CUCSAU.js → hnsw-legacy-bridge-C5TJSWTZ.js} +2 -2
- package/dist/cli/chunks/{hnswlib-node-SVNYDJZH.js → hnswlib-node-SE3MJJYS.js} +2 -2
- package/dist/cli/chunks/{hooks-6V5LMWP6.js → hooks-C572SRDH.js} +43 -43
- package/dist/cli/chunks/hybrid-backend-SL7RFID7.js +2 -0
- package/dist/cli/chunks/{hypergraph-engine-L2FOBIFF.js → hypergraph-engine-35A6G3M5.js} +2 -2
- package/dist/cli/chunks/{hypergraph-handler-DU6Z57EE.js → hypergraph-handler-U2756CWI.js} +3 -3
- package/dist/cli/chunks/impact-analyzer-5ZJTXPVC.js +2 -0
- package/dist/cli/chunks/init-handler-PCLYQUSB.js +88 -0
- package/dist/cli/chunks/init-wizard-MQMDSIOF.js +2 -0
- package/dist/cli/chunks/kernel-MEJ5GMRH.js +2 -0
- package/dist/cli/chunks/{kilocode-installer-NHKYGJ7Q.js → kilocode-installer-32PX5YH7.js} +2 -2
- package/dist/cli/chunks/{kiro-installer-24UK6GGR.js → kiro-installer-C4ROMMUS.js} +2 -2
- package/dist/cli/chunks/knowledge-graph-XUBZSEZE.js +2 -0
- package/dist/cli/chunks/learning-GEPVZGJQ.js +122 -0
- package/dist/cli/chunks/{llm-router-XRMI2VMG.js → llm-router-XRKTTJTX.js} +4 -4
- package/dist/cli/chunks/llm-router-service-QZAPAEPX.js +2 -0
- package/dist/cli/chunks/{load-W5UWL5C7.js → load-XVH6HW7E.js} +2 -2
- package/dist/cli/chunks/load-test-OVXIQ3AF.js +2 -0
- package/dist/cli/chunks/{mcp-N7ALQ4BL.js → mcp-IULSTM4Z.js} +2 -2
- package/dist/cli/chunks/{memory-WV52DLSA.js → memory-6K7IAU4T.js} +5 -5
- package/dist/cli/chunks/memory-backend-TRPOMPK4.js +2 -0
- package/dist/cli/chunks/memory-handlers-CG6DRLAW.js +2 -0
- package/dist/cli/chunks/{multi-model-executor-3FVTZCSO.js → multi-model-executor-VZDUYPLX.js} +2 -2
- package/dist/cli/chunks/{opencode-installer-NTPWGHUW.js → opencode-installer-QUTXKNH4.js} +2 -2
- package/dist/cli/chunks/orchestrator-PCKKUWOP.js +452 -0
- package/dist/cli/chunks/pattern-null-store-JWYBRBZG.js +2 -0
- package/dist/cli/chunks/{pattern-usage-recorder-WWXHUH5U.js → pattern-usage-recorder-PX5HQVRL.js} +2 -2
- package/dist/cli/chunks/{pipeline-ZOKZFXTH.js → pipeline-O562GTOG.js} +2 -2
- package/dist/cli/chunks/{platform-CDNL322F.js → platform-PM7Q2AZS.js} +2 -2
- package/dist/cli/chunks/plugin-OTYTFGPY.js +27 -0
- package/dist/cli/chunks/{prime-radiant-advanced-wasm-FVJDU2JY.js → prime-radiant-advanced-wasm-6CFXTHC2.js} +2 -2
- package/dist/cli/chunks/project-root-VVSTHIP4.js +2 -0
- package/dist/cli/chunks/protocol-executor-PXZCLZD3.js +2 -0
- package/dist/cli/chunks/{protocol-handler-4YBN5R23.js → protocol-handler-PPGNSAOS.js} +2 -2
- package/dist/cli/chunks/{prove-BHDHY664.js → prove-WQ3BKRZG.js} +2 -2
- package/dist/cli/chunks/qe-reasoning-bank-42FRS5V3.js +2 -0
- package/dist/cli/chunks/quality-C5WUU3AA.js +8 -0
- package/dist/cli/chunks/{quality-gate-WANE7TCN.js → quality-gate-WSSRKD5U.js} +3 -3
- package/dist/cli/chunks/queen-coordinator-UI3B7DI6.js +2 -0
- package/dist/cli/chunks/real-embeddings-CFQE7IRQ.js +2 -0
- package/dist/cli/chunks/{ref-validation-S7UWXQIP.js → ref-validation-DHKHXVZT.js} +2 -2
- package/dist/cli/chunks/{roocode-installer-TEYOQYL6.js → roocode-installer-3PPODABV.js} +2 -2
- package/dist/cli/chunks/router-HYRPWLAY.js +2 -0
- package/dist/cli/chunks/routing-feedback-BPZ5R6F3.js +2 -0
- package/dist/cli/chunks/{routing-handler-KDTLMRWD.js → routing-handler-JNXTGT6T.js} +2 -2
- package/dist/cli/chunks/{ruvector-commands-AOUDXCYE.js → ruvector-commands-6YLROPVP.js} +2 -2
- package/dist/cli/chunks/rvf-dual-writer-DEKDQ6KO.js +2 -0
- package/dist/cli/chunks/rvf-migration-adapter-L53VBS7I.js +2 -0
- package/dist/cli/chunks/rvf-migration-coordinator-4DWB4WRK.js +2 -0
- package/dist/cli/chunks/rvf-native-adapter-I6RUGD2D.js +2 -0
- package/dist/cli/chunks/{rvf-store-integrity-QI47Y354.js → rvf-store-integrity-YKR2ZNBF.js} +2 -2
- package/dist/cli/chunks/safe-db-KS65XDCP.js +2 -0
- package/dist/cli/chunks/schedule-KD2VN6GB.js +2 -0
- package/dist/cli/chunks/scheduler-ZH3RMUHY.js +2 -0
- package/dist/cli/chunks/{security-SN6MWOJT.js → security-PWQTGDRU.js} +3 -3
- package/dist/cli/chunks/shared-rvf-adapter-LNRLFP5I.js +2 -0
- package/dist/cli/chunks/{shared-rvf-dual-writer-WU7PFKQM.js → shared-rvf-dual-writer-GWU6YQNS.js} +2 -2
- package/dist/cli/chunks/sqlite-persistence-6DTVME5D.js +2 -0
- package/dist/cli/chunks/{standalone-memory-F6FSRFWC.js → standalone-memory-46KKBSSV.js} +2 -2
- package/dist/cli/chunks/{status-handler-DHD5MS4G.js → status-handler-35T5FTDQ.js} +2 -2
- package/dist/cli/chunks/{structural-health-P6HPSQMR.js → structural-health-P7QPQWLO.js} +2 -2
- package/dist/cli/chunks/{sync-LISJGDSE.js → sync-W6Z4R4PL.js} +2 -2
- package/dist/cli/chunks/sync-Y43EWBSY.js +2 -0
- package/dist/cli/chunks/{task-handler-ZT44NT5Z.js → task-handler-5CX3ZYT7.js} +2 -2
- package/dist/cli/chunks/{task-handlers-R6DQ5324.js → task-handlers-DQZGOJNE.js} +3 -3
- package/dist/cli/chunks/{test-MUFHR4JQ.js → test-TPP53VVV.js} +12 -12
- package/dist/cli/chunks/{test-scheduling-TAUSLZJP.js → test-scheduling-WBV4UMQH.js} +3 -3
- package/dist/cli/chunks/token-bootstrap-GIIDXHLC.js +2 -0
- package/dist/cli/chunks/{token-usage-IX65ECBR.js → token-usage-AKK37RB7.js} +2 -2
- package/dist/cli/chunks/{transformers-QKPSVW2W.js → transformers-7MASPELS.js} +2 -2
- package/dist/cli/chunks/{tree-sitter-wasm-parser-Z7PPA2JO.js → tree-sitter-wasm-parser-YZKD6UGB.js} +2 -2
- package/dist/cli/chunks/{types-ULNNGGGH.js → types-AZ3BTXDP.js} +2 -2
- package/dist/cli/chunks/unified-memory-FCX7NLFZ.js +2 -0
- package/dist/cli/chunks/unified-memory-hnsw-VU5QJK37.js +2 -0
- package/dist/cli/chunks/unified-persistence-FM376LGE.js +2 -0
- package/dist/cli/chunks/{upgrade-ECI3YUYA.js → upgrade-L7OTDKEK.js} +2 -2
- package/dist/cli/chunks/{validate-3JKRUW2S.js → validate-O3QVFIGP.js} +2 -2
- package/dist/cli/chunks/{validate-swarm-LZWANCIE.js → validate-swarm-2UGBGLTX.js} +2 -2
- package/dist/cli/chunks/visual-security-EU7Y3X46.js +2 -0
- package/dist/cli/chunks/{web-tree-sitter-N5V4A6XG.js → web-tree-sitter-J75IYPRO.js} +2 -2
- package/dist/cli/chunks/{windsurf-installer-5TBM5B3C.js → windsurf-installer-FQ5DBFCG.js} +2 -2
- package/dist/cli/chunks/witness-chain-CSEBT52D.js +2 -0
- package/dist/cli/chunks/{witness-chain-MFP3HBWQ.js → witness-chain-I7TN4MXZ.js} +2 -2
- package/dist/cli/chunks/witness-chain-repair-D3NE3NQK.js +2 -0
- package/dist/cli/chunks/{witness-chain-verifier-SRAT7LVY.js → witness-chain-verifier-RU2WOP5M.js} +2 -2
- package/dist/cli/chunks/witness-key-manager-IHQB2FR5.js +2 -0
- package/dist/cli/chunks/{workflow-M7TUYYXY.js → workflow-6BWTNVV6.js} +28 -28
- package/dist/cli/chunks/workflow-orchestrator-ALNKOM3N.js +2 -0
- package/dist/cli/chunks/wrappers-URVP25VU.js +2 -0
- package/dist/cli/commands/ci.js +53 -23
- package/dist/cli/commands/code.js +1 -0
- package/dist/cli/commands/coverage.d.ts +1 -0
- package/dist/cli/commands/coverage.js +182 -138
- package/dist/cli/commands/daemon.js +7 -1
- package/dist/cli/commands/hooks-handlers/stats-hooks.d.ts +15 -0
- package/dist/cli/commands/hooks-handlers/stats-hooks.js +54 -2
- package/dist/cli/commands/learning.js +47 -7
- package/dist/cli/commands/quality.d.ts +12 -1
- package/dist/cli/commands/quality.js +51 -3
- package/dist/cli/commands/test.js +6 -7
- package/dist/cli/commands/workflow.js +9 -5
- package/dist/cli/handlers/init-guard.d.ts +13 -0
- package/dist/cli/handlers/init-guard.js +23 -0
- package/dist/cli/handlers/init-handler.d.ts +3 -0
- package/dist/cli/handlers/init-handler.js +9 -0
- package/dist/cli/handlers/interfaces.js +5 -1
- package/dist/cli/scheduler/persistent-scheduler.d.ts +6 -2
- package/dist/cli/scheduler/persistent-scheduler.js +107 -41
- package/dist/cli/utils/ci-output.d.ts +22 -5
- package/dist/cli/utils/ci-output.js +33 -5
- package/dist/cli/utils/coverage-data.d.ts +10 -0
- package/dist/cli/utils/coverage-data.js +34 -65
- package/dist/cli/utils/coverage-verdict.d.ts +130 -0
- package/dist/cli/utils/coverage-verdict.js +193 -0
- package/dist/cli/utils/file-discovery.js +5 -0
- package/dist/contracts/verdicts.d.ts +14 -0
- package/dist/contracts/verdicts.js +44 -3
- package/dist/coordination/deterministic-actions.js +24 -13
- package/dist/coordination/handlers/code-intelligence-handlers.d.ts +8 -0
- package/dist/coordination/handlers/code-intelligence-handlers.js +39 -0
- package/dist/coordination/handlers/coverage-handlers.js +150 -121
- package/dist/coordination/handlers/coverage-runner.d.ts +143 -0
- package/dist/coordination/handlers/coverage-runner.js +462 -0
- package/dist/coordination/handlers/coverage-target.d.ts +145 -0
- package/dist/coordination/handlers/coverage-target.js +314 -0
- package/dist/coordination/handlers/handler-types.d.ts +9 -0
- package/dist/coordination/handlers/handler-utils.d.ts +23 -1
- package/dist/coordination/handlers/handler-utils.js +90 -23
- package/dist/coordination/handlers/quality-handlers.js +209 -33
- package/dist/coordination/handlers/test-execution-handlers.js +4 -1
- package/dist/coordination/protocols/defect-investigation.d.ts +2 -1
- package/dist/coordination/protocols/defect-investigation.js +6 -3
- package/dist/coordination/protocols/quality-gate.js +10 -6
- package/dist/coordination/result-saver.d.ts +22 -0
- package/dist/coordination/result-saver.js +130 -46
- package/dist/coordination/task-executor.d.ts +12 -0
- package/dist/coordination/task-executor.js +37 -1
- package/dist/domains/code-intelligence/coordinator.d.ts +2 -1
- package/dist/domains/code-intelligence/coordinator.js +10 -32
- package/dist/domains/code-intelligence/interfaces.d.ts +5 -0
- package/dist/domains/code-intelligence/plugin.js +5 -0
- package/dist/domains/code-intelligence/project-root-resolver.d.ts +50 -0
- package/dist/domains/code-intelligence/project-root-resolver.js +121 -0
- package/dist/domains/code-intelligence/services/metric-collector/index.js +9 -2
- package/dist/domains/code-intelligence/services/metric-collector/interfaces.d.ts +21 -0
- package/dist/domains/code-intelligence/services/metric-collector/interfaces.js +25 -0
- package/dist/domains/code-intelligence/services/metric-collector/loc-counter.d.ts +12 -0
- package/dist/domains/code-intelligence/services/metric-collector/loc-counter.js +69 -3
- package/dist/domains/code-intelligence/services/metric-collector/test-counter.js +4 -1
- package/dist/domains/coverage-analysis/collected-metrics.d.ts +33 -0
- package/dist/domains/coverage-analysis/collected-metrics.js +36 -0
- package/dist/domains/coverage-analysis/coordinator.js +22 -7
- package/dist/domains/coverage-analysis/interfaces.d.ts +59 -0
- package/dist/domains/coverage-analysis/interfaces.js +6 -1
- package/dist/domains/coverage-analysis/plugin.js +7 -1
- package/dist/domains/coverage-analysis/services/coverage-analyzer.d.ts +7 -0
- package/dist/domains/coverage-analysis/services/coverage-analyzer.js +85 -38
- package/dist/domains/coverage-analysis/services/gap-detector.js +7 -2
- package/dist/domains/defect-intelligence/plugin.js +4 -0
- package/dist/domains/defect-intelligence/services/defect-predictor.js +6 -4
- package/dist/domains/learning-optimization/coordinator.js +4 -0
- package/dist/domains/learning-optimization/plugin.js +4 -0
- package/dist/domains/quality-assessment/coordinator-claim-verifier.js +2 -1
- package/dist/domains/quality-assessment/coordinator-rl-integration.d.ts +14 -0
- package/dist/domains/quality-assessment/coordinator-rl-integration.js +54 -16
- package/dist/domains/quality-assessment/coordinator.js +18 -14
- package/dist/domains/quality-assessment/coverage-report-event.d.ts +49 -0
- package/dist/domains/quality-assessment/coverage-report-event.js +58 -0
- package/dist/domains/quality-assessment/evidence-sufficiency.d.ts +57 -0
- package/dist/domains/quality-assessment/evidence-sufficiency.js +97 -0
- package/dist/domains/quality-assessment/index.d.ts +2 -2
- package/dist/domains/quality-assessment/index.js +1 -1
- package/dist/domains/quality-assessment/interfaces.d.ts +46 -0
- package/dist/domains/quality-assessment/plugin.js +8 -8
- package/dist/domains/quality-assessment/quality-evidence.d.ts +98 -4
- package/dist/domains/quality-assessment/quality-evidence.js +152 -8
- package/dist/domains/quality-assessment/services/quality-analyzer.d.ts +23 -2
- package/dist/domains/quality-assessment/services/quality-analyzer.js +203 -116
- package/dist/domains/security-compliance/services/scanners/dast-scanner.js +22 -16
- package/dist/domains/test-execution/interfaces.d.ts +10 -6
- package/dist/domains/test-execution/plugin.js +4 -0
- package/dist/domains/test-execution/services/test-executor.js +152 -102
- package/dist/domains/test-generation/coordinator.js +4 -0
- package/dist/domains/test-generation/plugin.js +4 -0
- package/dist/feedback/coverage-learner.js +4 -1
- package/dist/feedback/coverage-session-provenance.d.ts +29 -0
- package/dist/feedback/coverage-session-provenance.js +39 -0
- package/dist/init/orchestrator.js +2 -0
- package/dist/init/phases/09-assets.d.ts +4 -0
- package/dist/init/phases/09-assets.js +35 -0
- package/dist/init/retired-assets.d.ts +86 -0
- package/dist/init/retired-assets.js +230 -0
- package/dist/init/skills-installer.d.ts +2 -0
- package/dist/init/skills-installer.js +4 -0
- package/dist/init/types.d.ts +3 -0
- package/dist/integrations/ruvector/rvf-native-adapter.d.ts +2 -0
- package/dist/integrations/ruvector/rvf-native-adapter.js +5 -0
- package/dist/integrations/ruvector/server-client.js +4 -12
- package/dist/kernel/project-root.d.ts +17 -0
- package/dist/kernel/project-root.js +54 -2
- package/dist/kernel/shared-dirs.d.ts +66 -0
- package/dist/kernel/shared-dirs.js +168 -0
- package/dist/learning/daily-log.js +2 -1
- package/dist/learning/experience-capture-middleware.d.ts +22 -0
- package/dist/learning/experience-capture-middleware.js +35 -0
- package/dist/learning/learnable-result.d.ts +16 -0
- package/dist/learning/learnable-result.js +24 -0
- package/dist/learning/pattern-mutation-error.d.ts +8 -0
- package/dist/learning/pattern-mutation-error.js +12 -0
- package/dist/learning/qe-reasoning-bank.d.ts +10 -0
- package/dist/learning/qe-reasoning-bank.js +50 -1
- package/dist/learning/rvf-reconcile.d.ts +39 -0
- package/dist/learning/rvf-reconcile.js +40 -0
- package/dist/learning/sqlite-persistence.d.ts +14 -0
- package/dist/learning/sqlite-persistence.js +36 -0
- package/dist/mcp/bundle.js +524 -507
- package/dist/mcp/handlers/domain-handler-configs.d.ts +49 -2
- package/dist/mcp/handlers/domain-handler-configs.js +79 -7
- package/dist/mcp/handlers/handler-factory.js +43 -14
- package/dist/mcp/handlers/wrapped-domain-handlers.js +7 -1
- package/dist/mcp/protocol-server.js +30 -4
- package/dist/mcp/tool-cache-scope.d.ts +31 -0
- package/dist/mcp/tool-cache-scope.js +71 -0
- package/dist/mcp/tools/code-intelligence/analyze.js +5 -3
- package/dist/mcp/tools/coverage-analysis/index.js +1 -0
- package/dist/mcp/types.d.ts +10 -0
- package/dist/optimization/session-cache.d.ts +19 -1
- package/dist/optimization/session-cache.js +36 -2
- package/dist/plugins/cache.js +2 -1
- package/dist/plugins/sources/github.js +2 -1
- package/dist/plugins/sources/npm.js +2 -1
- package/dist/shared/aqe-managed-dirs.d.ts +24 -0
- package/dist/shared/aqe-managed-dirs.js +56 -0
- package/dist/shared/events/domain-events.d.ts +20 -3
- package/dist/shared/events/domain-events.js +4 -0
- package/dist/shared/http/http-client.d.ts +6 -0
- package/dist/shared/http/http-client.js +13 -15
- package/dist/shared/io/file-reader.d.ts +26 -0
- package/dist/shared/io/file-reader.js +111 -17
- package/dist/shared/llm/providers/response-deadline.d.ts +7 -2
- package/dist/shared/llm/providers/response-deadline.js +17 -5
- package/dist/shared/metrics/code-metrics.d.ts +24 -0
- package/dist/shared/metrics/code-metrics.js +93 -6
- package/dist/shared/metrics/index.d.ts +1 -1
- package/dist/workers/interfaces.d.ts +9 -1
- package/dist/workers/quality-daemon/coverage-delta.d.ts +4 -3
- package/dist/workers/quality-daemon/coverage-delta.js +13 -6
- package/dist/workers/quality-daemon/index.js +6 -5
- package/dist/workers/quality-daemon/notification-service.js +3 -3
- package/dist/workers/quality-daemon/persistent-memory.d.ts +2 -2
- package/dist/workers/quality-daemon/persistent-memory.js +2 -2
- package/dist/workers/worker-manager.js +5 -1
- package/dist/workers/workers/coverage-tracker.js +69 -33
- package/dist/workers/workers/regression-monitor.d.ts +18 -1
- package/dist/workers/workers/regression-monitor.js +276 -117
- package/package.json +1 -1
- package/dist/cli/chunks/adapter-T54G3TBK.js +0 -2
- package/dist/cli/chunks/aqe-learning-engine-HLCJJ3JM.js +0 -2
- package/dist/cli/chunks/base-VLD755UU.js +0 -2
- package/dist/cli/chunks/browser-workflow-6M6VLWRF.js +0 -2
- package/dist/cli/chunks/chunk-5XXLWJU7.js +0 -2
- package/dist/cli/chunks/chunk-AHVN3UQZ.js +0 -4
- package/dist/cli/chunks/chunk-AOKSLWON.js +0 -742
- package/dist/cli/chunks/chunk-CQ3WSTJ2.js +0 -16
- package/dist/cli/chunks/chunk-LY53L6NH.js +0 -2
- package/dist/cli/chunks/chunk-O7TMY4GS.js +0 -2
- package/dist/cli/chunks/chunk-QIAX3JJB.js +0 -3
- package/dist/cli/chunks/chunk-RJMBHZYL.js +0 -2
- package/dist/cli/chunks/chunk-UORI2CZ4.js +0 -2
- package/dist/cli/chunks/chunk-V3NZ23X6.js +0 -2
- package/dist/cli/chunks/chunk-WI5AEB7Q.js +0 -2
- package/dist/cli/chunks/chunk-XKIFNKHV.js +0 -2
- package/dist/cli/chunks/chunk-ZAOQIVHG.js +0 -5
- package/dist/cli/chunks/chunk-ZF5JTQEE.js +0 -4
- package/dist/cli/chunks/ci-NGMGB43T.js +0 -82
- package/dist/cli/chunks/client-FUHNNK5O.js +0 -2
- package/dist/cli/chunks/core-handlers-F7TLX4LM.js +0 -2
- package/dist/cli/chunks/coverage-IVKDV236.js +0 -27
- package/dist/cli/chunks/cross-domain-router-EGWPY67O.js +0 -2
- package/dist/cli/chunks/daemon-IPTOSCHM.js +0 -10
- package/dist/cli/chunks/dream-V4QN6OF5.js +0 -2
- package/dist/cli/chunks/embed-and-insert-pattern-65H4XHWR.js +0 -3
- package/dist/cli/chunks/experience-capture-middleware-4JXVF5PL.js +0 -40
- package/dist/cli/chunks/file-discovery-R73BYEXB.js +0 -2
- package/dist/cli/chunks/heartbeat-scheduler-3N3L6CRM.js +0 -2
- package/dist/cli/chunks/hnsw-adapter-2BXJYDXI.js +0 -2
- package/dist/cli/chunks/hnsw-index-2DLI5OVO.js +0 -2
- package/dist/cli/chunks/hybrid-backend-OW4J65YH.js +0 -2
- package/dist/cli/chunks/impact-analyzer-ZH5I2RG6.js +0 -2
- package/dist/cli/chunks/init-handler-HETPWU67.js +0 -86
- package/dist/cli/chunks/init-wizard-NIKM3ZOK.js +0 -2
- package/dist/cli/chunks/kernel-2EOSVM6X.js +0 -2
- package/dist/cli/chunks/knowledge-graph-D3BPWNNO.js +0 -2
- package/dist/cli/chunks/learning-QLVRZNHT.js +0 -122
- package/dist/cli/chunks/llm-router-service-TJPPZFUN.js +0 -2
- package/dist/cli/chunks/load-test-RFT7IDOL.js +0 -2
- package/dist/cli/chunks/memory-backend-O2O4CFKZ.js +0 -2
- package/dist/cli/chunks/memory-handlers-DAEGUDBD.js +0 -2
- package/dist/cli/chunks/orchestrator-ORGJ6VAA.js +0 -452
- package/dist/cli/chunks/pattern-null-store-TUBNXS34.js +0 -2
- package/dist/cli/chunks/plugin-ZVLFNZZ4.js +0 -27
- package/dist/cli/chunks/project-root-UCHQH3QL.js +0 -2
- package/dist/cli/chunks/protocol-executor-6FQTTO3Y.js +0 -2
- package/dist/cli/chunks/qe-reasoning-bank-TKPND56C.js +0 -2
- package/dist/cli/chunks/quality-46AK277P.js +0 -7
- package/dist/cli/chunks/queen-coordinator-DWMXLPJG.js +0 -2
- package/dist/cli/chunks/real-embeddings-56MNGJGJ.js +0 -2
- package/dist/cli/chunks/router-QIMUYRCC.js +0 -2
- package/dist/cli/chunks/routing-feedback-4OH5ZNF4.js +0 -2
- package/dist/cli/chunks/rvf-dual-writer-S6JBZL54.js +0 -2
- package/dist/cli/chunks/rvf-migration-adapter-TSGMLMYR.js +0 -2
- package/dist/cli/chunks/rvf-migration-coordinator-V74MVBHS.js +0 -2
- package/dist/cli/chunks/rvf-native-adapter-Z7QOW47S.js +0 -2
- package/dist/cli/chunks/safe-db-JLOVBJNC.js +0 -2
- package/dist/cli/chunks/schedule-IM6XOBGR.js +0 -2
- package/dist/cli/chunks/scheduler-XL2SVVK5.js +0 -2
- package/dist/cli/chunks/shared-rvf-adapter-2LB56LP4.js +0 -2
- package/dist/cli/chunks/sqlite-persistence-LWMIIC4U.js +0 -2
- package/dist/cli/chunks/sync-SNAXAVCN.js +0 -2
- package/dist/cli/chunks/token-bootstrap-UGRH7OPU.js +0 -2
- package/dist/cli/chunks/unified-memory-F5IJY7W7.js +0 -2
- package/dist/cli/chunks/unified-memory-hnsw-C3WAMAQL.js +0 -2
- package/dist/cli/chunks/unified-persistence-EWXXOTCB.js +0 -2
- package/dist/cli/chunks/visual-security-CKLTAIAB.js +0 -2
- package/dist/cli/chunks/witness-chain-Z6LWFEZS.js +0 -2
- package/dist/cli/chunks/witness-chain-repair-5QWRFVUK.js +0 -2
- package/dist/cli/chunks/witness-key-manager-FYZXQTLJ.js +0 -2
- package/dist/cli/chunks/workflow-orchestrator-OFTAR2NA.js +0 -2
- package/dist/cli/chunks/wrappers-COU73OQ6.js +0 -2
- /package/.claude/skills/qe-court/evals/fixtures/seeded-mutant-delivery/{budget.test.ts → budget-tests.ts.fixture} +0 -0
- /package/.claude/skills/qe-court/evals/fixtures/seeded-mutant-delivery/{budget.ts → budget.ts.fixture} +0 -0
- /package/.claude/skills/testability-scoring/resources/templates/{testability-scoring.spec.template.js → testability-scoring-spec.template.js} +0 -0
- /package/assets/skills/qe-court/evals/fixtures/seeded-mutant-delivery/{budget.test.ts → budget-tests.ts.fixture} +0 -0
- /package/assets/skills/qe-court/evals/fixtures/seeded-mutant-delivery/{budget.ts → budget.ts.fixture} +0 -0
- /package/assets/skills/testability-scoring/resources/templates/{testability-scoring.spec.template.js → testability-scoring-spec.template.js} +0 -0
|
@@ -24,6 +24,7 @@ import { backupLearningDatabase, restoreLearningDatabase } from './learning-snap
|
|
|
24
24
|
import { createSQLitePatternStore } from '../../learning/sqlite-persistence.js';
|
|
25
25
|
import { getActiveEmbeddingSpaceIdentity } from '../../learning/real-embeddings.js';
|
|
26
26
|
import { inspectEmbeddingSpaceRows } from '../../learning/embedding-space.js';
|
|
27
|
+
import { committedPendingIndexPatternId } from '../../learning/pattern-mutation-error.js';
|
|
27
28
|
// Extracted helpers
|
|
28
29
|
import { initializeLearningSystem, printJson, printSuccess, printError, printInfo, displayDashboard, getDbPath, compressFile, decompressFile, verifyDatabaseIntegrity, getSchemaVersion, padRight, EXPORT_FORMAT_VERSION, DOMAIN_MAPPING, PATTERN_TYPE_MAPPING, } from './learning-helpers.js';
|
|
29
30
|
// ============================================================================
|
|
@@ -151,11 +152,29 @@ function registerBackfillEmbeddingsCommand(learning) {
|
|
|
151
152
|
}
|
|
152
153
|
const result = await store.backfillEmbeddings(batchSize);
|
|
153
154
|
const after = store.getGhostPatternCount();
|
|
155
|
+
// #981 review B2: backfill writes SQLite vectors only. Opening the
|
|
156
|
+
// reasoning bank reconciles the RVF index with them (ingesting just
|
|
157
|
+
// the ids it is missing), so backfilled patterns reach vector search
|
|
158
|
+
// even when patterns.rvf already held other vectors.
|
|
159
|
+
let rvfIndex = { skipped: 'vector index unavailable' };
|
|
160
|
+
if (result.processed > 0) {
|
|
161
|
+
try {
|
|
162
|
+
const reasoningBank = await initializeLearningSystem();
|
|
163
|
+
const reconciled = reasoningBank.getLastVectorReconcile() ?? reasoningBank.reconcileVectorIndex();
|
|
164
|
+
if (reconciled) {
|
|
165
|
+
rvfIndex = { ingested: reconciled.ingested, missing: reconciled.missing, capped: reconciled.capped };
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
catch (error) {
|
|
169
|
+
rvfIndex = { skipped: error instanceof Error ? error.message : String(error) };
|
|
170
|
+
}
|
|
171
|
+
}
|
|
154
172
|
const output = {
|
|
155
173
|
...result,
|
|
156
174
|
batchSize,
|
|
157
175
|
missingBefore: before.withoutEmbeddings,
|
|
158
176
|
missingAfter: after.withoutEmbeddings,
|
|
177
|
+
rvfIndex,
|
|
159
178
|
};
|
|
160
179
|
if (options.json) {
|
|
161
180
|
printJson(output);
|
|
@@ -167,6 +186,9 @@ function registerBackfillEmbeddingsCommand(learning) {
|
|
|
167
186
|
console.log(` Errors: ${result.errors}`);
|
|
168
187
|
console.log(` Remaining missing: ${after.withoutEmbeddings}`);
|
|
169
188
|
console.log(` Method: ${result.method}`);
|
|
189
|
+
console.log('ingested' in rvfIndex
|
|
190
|
+
? ` Vector index (RVF): ingested ${rvfIndex.ingested} of ${rvfIndex.missing} missing${rvfIndex.capped ? ' (capped; rerun to continue)' : ''}`
|
|
191
|
+
: ` Vector index (RVF): not updated (${rvfIndex.skipped})`);
|
|
170
192
|
console.log('');
|
|
171
193
|
}
|
|
172
194
|
}
|
|
@@ -416,6 +438,7 @@ function registerImportCommand(learning) {
|
|
|
416
438
|
const reasoningBank = await initializeLearningSystem();
|
|
417
439
|
let imported = 0;
|
|
418
440
|
let skipped = 0;
|
|
441
|
+
let pendingIndex = 0;
|
|
419
442
|
const errors = [];
|
|
420
443
|
if (!options.dryRun) {
|
|
421
444
|
for (const pattern of importData.patterns) {
|
|
@@ -424,8 +447,17 @@ function registerImportCommand(learning) {
|
|
|
424
447
|
patternType: pattern.patternType, name: pattern.name,
|
|
425
448
|
description: pattern.description, template: pattern.template, context: pattern.context,
|
|
426
449
|
});
|
|
427
|
-
if (result.success)
|
|
450
|
+
if (result.success) {
|
|
451
|
+
imported++;
|
|
452
|
+
// #981 review N2: stored text-only (no embedding runtime) → vector pending.
|
|
453
|
+
if (!(result.value.embedding && result.value.embedding.length > 0))
|
|
454
|
+
pendingIndex++;
|
|
455
|
+
}
|
|
456
|
+
// #981: the row committed; only its vector index is pending.
|
|
457
|
+
else if (committedPendingIndexPatternId(result.error)) {
|
|
428
458
|
imported++;
|
|
459
|
+
pendingIndex++;
|
|
460
|
+
}
|
|
429
461
|
else {
|
|
430
462
|
skipped++;
|
|
431
463
|
errors.push(`${pattern.name}: ${result.error.message}`);
|
|
@@ -438,7 +470,7 @@ function registerImportCommand(learning) {
|
|
|
438
470
|
}
|
|
439
471
|
}
|
|
440
472
|
if (options.json) {
|
|
441
|
-
printJson({ dryRun: options.dryRun || false, totalPatterns: importData.patterns.length, imported, skipped, errors });
|
|
473
|
+
printJson({ dryRun: options.dryRun || false, totalPatterns: importData.patterns.length, imported, skipped, pendingIndex, errors });
|
|
442
474
|
}
|
|
443
475
|
else {
|
|
444
476
|
console.log(chalk.bold('\n📥 Pattern Import\n'));
|
|
@@ -450,6 +482,8 @@ function registerImportCommand(learning) {
|
|
|
450
482
|
}
|
|
451
483
|
else {
|
|
452
484
|
console.log(chalk.green(`\n Imported: ${imported}`));
|
|
485
|
+
if (pendingIndex > 0)
|
|
486
|
+
console.log(chalk.yellow(` Vector index pending: ${pendingIndex} (run "aqe learning backfill-embeddings" once an embedder is available)`));
|
|
453
487
|
if (skipped > 0)
|
|
454
488
|
console.log(chalk.yellow(` Skipped: ${skipped}`));
|
|
455
489
|
}
|
|
@@ -593,7 +627,8 @@ function registerExtractCommand(learning) {
|
|
|
593
627
|
template: { type: 'code', content: templateContent, variables: [{ name: 'implementation', type: 'code', required: true, description: 'Implementation code for this pattern' }] },
|
|
594
628
|
context: { tags: [p.domain, p.patternType, `sources:${p.sourceCount}`, `reward:${p.avgReward.toFixed(2)}`] },
|
|
595
629
|
});
|
|
596
|
-
|
|
630
|
+
// #981: a committed row with a pending vector index is stored.
|
|
631
|
+
if (result.success || committedPendingIndexPatternId(result.error))
|
|
597
632
|
stored++;
|
|
598
633
|
else
|
|
599
634
|
errors.push(`${p.name}: ${result.error.message}`);
|
|
@@ -962,7 +997,8 @@ function registerImportMergeCommand(learning) {
|
|
|
962
997
|
}
|
|
963
998
|
try {
|
|
964
999
|
const result = await reasoningBank.storePattern({ patternType: pattern.patternType, name: pattern.name, description: pattern.description, template: pattern.template, context: pattern.context });
|
|
965
|
-
|
|
1000
|
+
// #981: a committed row with a pending vector index is imported.
|
|
1001
|
+
if (result.success || committedPendingIndexPatternId(result.error)) {
|
|
966
1002
|
if (isDuplicate)
|
|
967
1003
|
updated++;
|
|
968
1004
|
else
|
|
@@ -1148,14 +1184,18 @@ function registerDreamCommand(learning) {
|
|
|
1148
1184
|
template: { type: 'workflow', content: insight.suggestedAction || insight.description, variables: [] },
|
|
1149
1185
|
context: { tags: ['dream-generated', insight.type, ...insight.sourceConcepts.slice(0, 3)], complexity: 'medium' },
|
|
1150
1186
|
});
|
|
1187
|
+
// #981: a committed row with a pending vector index is a created pattern.
|
|
1188
|
+
const createdPatternId = patternResult.success
|
|
1189
|
+
? patternResult.value.id
|
|
1190
|
+
: committedPendingIndexPatternId(patternResult.error);
|
|
1151
1191
|
if (options.json) {
|
|
1152
|
-
printJson({ insightId: insight.id, applied: result.success, patternId:
|
|
1192
|
+
printJson({ insightId: insight.id, applied: result.success, patternId: createdPatternId, error: result.error || (createdPatternId ? null : patternResult.success ? null : patternResult.error?.message) });
|
|
1153
1193
|
}
|
|
1154
1194
|
else {
|
|
1155
1195
|
if (result.success) {
|
|
1156
1196
|
printSuccess(`Applied insight ${insight.id.slice(0, 8)}`);
|
|
1157
|
-
if (
|
|
1158
|
-
printSuccess(`Created pattern ${
|
|
1197
|
+
if (createdPatternId)
|
|
1198
|
+
printSuccess(`Created pattern ${createdPatternId} in ReasoningBank`);
|
|
1159
1199
|
}
|
|
1160
1200
|
else
|
|
1161
1201
|
printError(`Failed to apply insight: ${result.error}`);
|
|
@@ -11,12 +11,23 @@ import { type QualityGateResult } from '../utils/ci-output.js';
|
|
|
11
11
|
import { type QualityEvidenceValues } from '../../domains/quality-assessment/quality-evidence.js';
|
|
12
12
|
export declare function loadQualityEvidence(memory: MemoryBackend): Promise<QualityEvidenceValues>;
|
|
13
13
|
export declare function evaluateMeasuredQualityEvidence(measured: QualityEvidenceValues): QualityGateResult;
|
|
14
|
+
/**
|
|
15
|
+
* #996: when measured evidence is missing, stale or malformed the gate cannot
|
|
16
|
+
* be evaluated. Report it as a structured, non-passing result with the same
|
|
17
|
+
* `status: 'insufficient-evidence'` and `unmeasured` list that MCP
|
|
18
|
+
* `quality_assess({ runGate: true })` returns alongside its error. Errors that
|
|
19
|
+
* are not about evidence (e.g. the store itself failing) are rethrown.
|
|
20
|
+
*/
|
|
21
|
+
export declare function describeUnavailableQualityEvidence(memory: MemoryBackend, error: unknown): Promise<QualityGateResult>;
|
|
14
22
|
/**
|
|
15
23
|
* Published quality command exit contract:
|
|
16
24
|
* 0 = passed with more than five percentage points of headroom
|
|
17
25
|
* 1 = one or more measured checks failed
|
|
18
26
|
* 2 = passed, but at least one measured check has less than five points of headroom
|
|
27
|
+
* 3 = insufficient evidence (#996): a metric is absent, stale or malformed, so
|
|
28
|
+
* the gate was not evaluated (UNMEASURED — neither a pass nor a measured failure)
|
|
19
29
|
*/
|
|
20
|
-
export declare
|
|
30
|
+
export declare const INSUFFICIENT_EVIDENCE_EXIT_CODE = 3;
|
|
31
|
+
export declare function getMeasuredQualityExitCode(result: QualityGateResult): 0 | 1 | 2 | 3;
|
|
21
32
|
export declare function createQualityCommand(context: CLIContext, cleanupAndExit: (code: number) => Promise<never>, ensureInitialized: () => Promise<boolean>): Command;
|
|
22
33
|
//# sourceMappingURL=quality.d.ts.map
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
import { Command } from 'commander';
|
|
8
8
|
import chalk from 'chalk';
|
|
9
9
|
import { writeOutput, toJSON, qualityGateToMarkdown } from '../utils/ci-output.js';
|
|
10
|
-
import { evaluateQualityEvidence, loadQualityEvidence as loadCanonicalQualityEvidence, } from '../../domains/quality-assessment/quality-evidence.js';
|
|
10
|
+
import { InsufficientQualityEvidenceError, evaluateQualityEvidence, inspectQualityEvidence, loadQualityEvidence as loadCanonicalQualityEvidence, } from '../../domains/quality-assessment/quality-evidence.js';
|
|
11
11
|
export async function loadQualityEvidence(memory) {
|
|
12
12
|
return loadCanonicalQualityEvidence(memory);
|
|
13
13
|
}
|
|
@@ -20,13 +20,48 @@ export function evaluateMeasuredQualityEvidence(measured) {
|
|
|
20
20
|
recommendations: evaluation.recommendations,
|
|
21
21
|
};
|
|
22
22
|
}
|
|
23
|
+
/**
|
|
24
|
+
* #996: when measured evidence is missing, stale or malformed the gate cannot
|
|
25
|
+
* be evaluated. Report it as a structured, non-passing result with the same
|
|
26
|
+
* `status: 'insufficient-evidence'` and `unmeasured` list that MCP
|
|
27
|
+
* `quality_assess({ runGate: true })` returns alongside its error. Errors that
|
|
28
|
+
* are not about evidence (e.g. the store itself failing) are rethrown.
|
|
29
|
+
*/
|
|
30
|
+
export async function describeUnavailableQualityEvidence(memory, error) {
|
|
31
|
+
const insufficient = error instanceof InsufficientQualityEvidenceError
|
|
32
|
+
? error
|
|
33
|
+
: await inspectQualityEvidence(memory).then(({ problems }) => problems.length > 0 ? new InsufficientQualityEvidenceError(problems) : undefined);
|
|
34
|
+
if (!insufficient)
|
|
35
|
+
throw error;
|
|
36
|
+
const reason = error instanceof Error ? error.message : String(error);
|
|
37
|
+
const details = insufficient.toDetails();
|
|
38
|
+
return {
|
|
39
|
+
passed: false,
|
|
40
|
+
score: 'N/A',
|
|
41
|
+
checks: [],
|
|
42
|
+
status: details.status,
|
|
43
|
+
evidenceStatus: details.evidenceStatus,
|
|
44
|
+
unmeasured: details.unmeasured,
|
|
45
|
+
gateEvaluated: false,
|
|
46
|
+
error: reason,
|
|
47
|
+
recommendations: [
|
|
48
|
+
`Quality gate not evaluated: ${reason}`,
|
|
49
|
+
...details.recommendations,
|
|
50
|
+
],
|
|
51
|
+
};
|
|
52
|
+
}
|
|
23
53
|
/**
|
|
24
54
|
* Published quality command exit contract:
|
|
25
55
|
* 0 = passed with more than five percentage points of headroom
|
|
26
56
|
* 1 = one or more measured checks failed
|
|
27
57
|
* 2 = passed, but at least one measured check has less than five points of headroom
|
|
58
|
+
* 3 = insufficient evidence (#996): a metric is absent, stale or malformed, so
|
|
59
|
+
* the gate was not evaluated (UNMEASURED — neither a pass nor a measured failure)
|
|
28
60
|
*/
|
|
61
|
+
export const INSUFFICIENT_EVIDENCE_EXIT_CODE = 3;
|
|
29
62
|
export function getMeasuredQualityExitCode(result) {
|
|
63
|
+
if (result.evidenceStatus === 'insufficient-evidence')
|
|
64
|
+
return INSUFFICIENT_EVIDENCE_EXIT_CODE;
|
|
30
65
|
if (!result.passed)
|
|
31
66
|
return 1;
|
|
32
67
|
return result.checks.some(check => (check.direction !== 'max'
|
|
@@ -53,14 +88,27 @@ export function createQualityCommand(context, cleanupAndExit, ensureInitialized)
|
|
|
53
88
|
if (format === 'text') {
|
|
54
89
|
console.log(chalk.blue(`\n Running quality gate evaluation...\n`));
|
|
55
90
|
}
|
|
56
|
-
const
|
|
57
|
-
|
|
91
|
+
const memory = context.kernel.memory;
|
|
92
|
+
let gateResult;
|
|
93
|
+
try {
|
|
94
|
+
gateResult = evaluateMeasuredQualityEvidence(await loadQualityEvidence(memory));
|
|
95
|
+
}
|
|
96
|
+
catch (error) {
|
|
97
|
+
gateResult = await describeUnavailableQualityEvidence(memory, error);
|
|
98
|
+
}
|
|
58
99
|
if (format === 'json') {
|
|
59
100
|
writeOutput(toJSON(gateResult), options.output);
|
|
60
101
|
}
|
|
61
102
|
else if (format === 'markdown') {
|
|
62
103
|
writeOutput(qualityGateToMarkdown(gateResult), options.output);
|
|
63
104
|
}
|
|
105
|
+
else if (gateResult.evidenceStatus === 'insufficient-evidence') {
|
|
106
|
+
console.log(` Quality Gate: ${chalk.yellow('⚠ INSUFFICIENT EVIDENCE (not evaluated)')}`);
|
|
107
|
+
if (gateResult.unmeasured?.length) {
|
|
108
|
+
console.log(` Unmeasured: ${gateResult.unmeasured.join(', ')}`);
|
|
109
|
+
}
|
|
110
|
+
console.log(chalk.gray(` ${gateResult.error ?? ''}\n`));
|
|
111
|
+
}
|
|
64
112
|
else {
|
|
65
113
|
const statusIcon = gateResult.passed ? chalk.green('✓ PASSED') : chalk.red('✗ FAILED');
|
|
66
114
|
console.log(` Quality Gate: ${statusIcon}`);
|
|
@@ -7,7 +7,7 @@ import { Command } from 'commander';
|
|
|
7
7
|
import chalk from 'chalk';
|
|
8
8
|
import { filterTestFilesForFramework, walkSourceFiles } from '../utils/file-discovery.js';
|
|
9
9
|
import { writeOutput, toJSON, toJUnit, testRunToMarkdown } from '../utils/ci-output.js';
|
|
10
|
-
import {
|
|
10
|
+
import { writeTestRunEvidence } from '../../domains/quality-assessment/quality-evidence.js';
|
|
11
11
|
import { validateBehaviorExamples } from '../../domains/test-generation/services/behavior-example-validation.js';
|
|
12
12
|
import { findProjectRoot } from '../../kernel/project-root.js';
|
|
13
13
|
import { writeGeneratedTestFile } from '../utils/generated-test-writer.js';
|
|
@@ -192,12 +192,11 @@ export function createTestCommand(context, cleanupAndExit, ensureInitialized) {
|
|
|
192
192
|
duration: run.duration,
|
|
193
193
|
measuredAt: new Date().toISOString(),
|
|
194
194
|
}, { namespace: 'test-execution', persist: true });
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
});
|
|
195
|
+
// #1027 NB1: the shared run-scoped writer (same as test_execute_parallel),
|
|
196
|
+
// stamped with this run's id so it pairs with the run's own coverage.
|
|
197
|
+
await writeTestRunEvidence(context.kernel.memory, {
|
|
198
|
+
runId: run.runId, passed: run.passed, failed: run.failed, skipped: run.skipped,
|
|
199
|
+
}, { source: 'aqe test execute' });
|
|
201
200
|
if (format === 'json') {
|
|
202
201
|
writeOutput(toJSON(run), options.output);
|
|
203
202
|
}
|
|
@@ -227,13 +227,17 @@ export function createWorkflowCommand(context, cleanupAndExit, ensureInitialized
|
|
|
227
227
|
console.log(chalk.gray(' No scheduled workflows\n'));
|
|
228
228
|
}
|
|
229
229
|
else {
|
|
230
|
+
// #991: entries loaded from a hand-edited or legacy file may lack
|
|
231
|
+
// fields; show "(missing)" rather than "undefined".
|
|
232
|
+
const show = (value) => value === undefined || value === null || value === '' ? '(missing)' : String(value);
|
|
230
233
|
for (const sched of scheduled) {
|
|
231
234
|
const statusIcon = sched.enabled ? chalk.green('*') : chalk.gray('o');
|
|
232
|
-
console.log(` ${statusIcon} ${chalk.white(sched.workflowId)}`);
|
|
233
|
-
console.log(chalk.gray(` ID: ${sched.id}`));
|
|
234
|
-
|
|
235
|
-
console.log(chalk.gray(`
|
|
236
|
-
console.log(chalk.gray(`
|
|
235
|
+
console.log(` ${statusIcon} ${chalk.white(show(sched.workflowId))}`);
|
|
236
|
+
console.log(chalk.gray(` ID: ${show(sched.id)}`));
|
|
237
|
+
const description = sched.scheduleDescription ? ` (${sched.scheduleDescription})` : '';
|
|
238
|
+
console.log(chalk.gray(` Schedule: ${show(sched.schedule)}${description}`));
|
|
239
|
+
console.log(chalk.gray(` File: ${show(sched.pipelinePath)}`));
|
|
240
|
+
console.log(chalk.gray(` Next run: ${show(sched.nextRun)}`));
|
|
237
241
|
if (sched.lastRun) {
|
|
238
242
|
console.log(chalk.gray(` Last run: ${sched.lastRun}`));
|
|
239
243
|
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `aqe init` guard for shared directories (#1006, review of #1026 N3).
|
|
3
|
+
*
|
|
4
|
+
* Initializing in the OS temp dir or a system dir wrote `<tmp>/.agentic-qe`
|
|
5
|
+
* and `.mcp.json` there, but every later command resolves such a dir to a
|
|
6
|
+
* private scratch root, so the initialized store was never used. Refusing
|
|
7
|
+
* with a clear next step is less surprising than initializing a hidden root.
|
|
8
|
+
*
|
|
9
|
+
* @module cli/handlers/init-guard
|
|
10
|
+
*/
|
|
11
|
+
/** Error message when `cwd` must not be initialized, otherwise null. */
|
|
12
|
+
export declare function sharedDirInitError(cwd: string, env?: NodeJS.ProcessEnv): string | null;
|
|
13
|
+
//# sourceMappingURL=init-guard.d.ts.map
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `aqe init` guard for shared directories (#1006, review of #1026 N3).
|
|
3
|
+
*
|
|
4
|
+
* Initializing in the OS temp dir or a system dir wrote `<tmp>/.agentic-qe`
|
|
5
|
+
* and `.mcp.json` there, but every later command resolves such a dir to a
|
|
6
|
+
* private scratch root, so the initialized store was never used. Refusing
|
|
7
|
+
* with a clear next step is less surprising than initializing a hidden root.
|
|
8
|
+
*
|
|
9
|
+
* @module cli/handlers/init-guard
|
|
10
|
+
*/
|
|
11
|
+
import { isSharedSystemDir } from '../../kernel/shared-dirs.js';
|
|
12
|
+
/** Error message when `cwd` must not be initialized, otherwise null. */
|
|
13
|
+
export function sharedDirInitError(cwd, env = process.env) {
|
|
14
|
+
if (env.AQE_PROJECT_ROOT)
|
|
15
|
+
return null;
|
|
16
|
+
if (!isSharedSystemDir(cwd))
|
|
17
|
+
return null;
|
|
18
|
+
return (`Refusing to initialize in "${cwd}": it is a shared temp/system directory, ` +
|
|
19
|
+
'so a store here would be shared by every unrelated project below it and ' +
|
|
20
|
+
'later commands would not use it. Create a project directory first ' +
|
|
21
|
+
'(mkdir my-project && cd my-project) or set AQE_PROJECT_ROOT to choose a root.');
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=init-guard.js.map
|
|
@@ -80,6 +80,9 @@ export interface InitJsonOutput {
|
|
|
80
80
|
error?: string;
|
|
81
81
|
};
|
|
82
82
|
};
|
|
83
|
+
/** #1017: pre-3.15.6 test-named skill files removed / kept by init. */
|
|
84
|
+
retiredAssetsRemoved?: string[];
|
|
85
|
+
retiredAssetsKept?: string[];
|
|
83
86
|
};
|
|
84
87
|
totalDurationMs: number;
|
|
85
88
|
timestamp: string;
|
|
@@ -9,6 +9,7 @@ import { createRequire } from 'node:module';
|
|
|
9
9
|
import { ALL_DOMAINS } from '../../shared/types/index.js';
|
|
10
10
|
import { toErrorMessage } from '../../shared/error-utils.js';
|
|
11
11
|
import { resolveInitFlags } from './init-flags.js';
|
|
12
|
+
import { sharedDirInitError } from './init-guard.js';
|
|
12
13
|
// ============================================================================
|
|
13
14
|
// Init Handler
|
|
14
15
|
// ============================================================================
|
|
@@ -88,6 +89,14 @@ export class InitHandler {
|
|
|
88
89
|
});
|
|
89
90
|
}
|
|
90
91
|
try {
|
|
92
|
+
// #1006 (review of #1026 N3): never initialize a store in a shared
|
|
93
|
+
// temp/system dir; later commands would resolve elsewhere and ignore it.
|
|
94
|
+
const sharedDirError = sharedDirInitError(process.cwd());
|
|
95
|
+
if (sharedDirError) {
|
|
96
|
+
console.error(chalk.red(`\n ${sharedDirError}\n`));
|
|
97
|
+
await this.cleanupAndExit(1);
|
|
98
|
+
return;
|
|
99
|
+
}
|
|
91
100
|
// Expand --with-all-platforms into individual flags
|
|
92
101
|
if (options.withAllPlatforms) {
|
|
93
102
|
options.withCopilot = true;
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
* Part of the CLI modularization refactoring.
|
|
6
6
|
*/
|
|
7
7
|
import chalk from 'chalk';
|
|
8
|
+
import { isAqeManagedDir } from '../../shared/aqe-managed-dirs.js';
|
|
8
9
|
// ============================================================================
|
|
9
10
|
// Helper Functions for Handlers
|
|
10
11
|
// ============================================================================
|
|
@@ -66,7 +67,7 @@ export function getColorForPercent(percent) {
|
|
|
66
67
|
export async function walkDirectory(dir, options = {}) {
|
|
67
68
|
const fs = await import('fs');
|
|
68
69
|
const path = await import('path');
|
|
69
|
-
const { extensions = ['.ts'], exclude = ['node_modules', 'dist'], maxDepth = 4, includeTests = false, } = options;
|
|
70
|
+
const { extensions = ['.ts'], exclude = ['node_modules', 'dist', '.git'], maxDepth = 4, includeTests = false, } = options;
|
|
70
71
|
const walkDir = (currentDir, depth) => {
|
|
71
72
|
if (depth > maxDepth)
|
|
72
73
|
return [];
|
|
@@ -81,6 +82,9 @@ export async function walkDirectory(dir, options = {}) {
|
|
|
81
82
|
for (const item of items) {
|
|
82
83
|
if (exclude.includes(item))
|
|
83
84
|
continue;
|
|
85
|
+
// #999: AQE state/assets (.agentic-qe anywhere; .claude at the root or next to .agentic-qe)
|
|
86
|
+
if (isAqeManagedDir(currentDir, item, depth === 0))
|
|
87
|
+
continue;
|
|
84
88
|
if (!includeTests && (item === 'tests' || item.includes('.test.') || item.includes('.spec.')))
|
|
85
89
|
continue;
|
|
86
90
|
const fullPath = path.join(currentDir, item);
|
|
@@ -123,9 +123,11 @@ export declare class PersistentScheduler {
|
|
|
123
123
|
due: number;
|
|
124
124
|
}>;
|
|
125
125
|
/**
|
|
126
|
-
* Load schedules
|
|
126
|
+
* Load schedules for a locked read-modify-write. A genuinely unparseable
|
|
127
|
+
* file is backed up (not removed) first, so the write that follows cannot
|
|
128
|
+
* silently replace it with fewer schedules.
|
|
127
129
|
*/
|
|
128
|
-
private
|
|
130
|
+
private loadForWrite;
|
|
129
131
|
/**
|
|
130
132
|
* Parse schedules file content with validation
|
|
131
133
|
* Security: Checks file size before parsing to prevent DoS
|
|
@@ -139,6 +141,8 @@ export declare class PersistentScheduler {
|
|
|
139
141
|
* Handle corrupt schedules file by backing up and creating new
|
|
140
142
|
*/
|
|
141
143
|
private handleCorruptFile;
|
|
144
|
+
/** Copy an unparseable schedules file to `.corrupt.<ts>` (left in place). */
|
|
145
|
+
private backupCorruptFile;
|
|
142
146
|
/**
|
|
143
147
|
* Execute a function with file locking for safe concurrent access
|
|
144
148
|
*/
|