agentic-qe 3.15.10 → 3.15.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/.claude/hooks/aqe-hook.cjs +38 -2
- package/.claude/skills/skills-manifest.json +1 -1
- package/CHANGELOG.md +263 -0
- package/README.md +8 -0
- package/assets/skills/skills-manifest.json +1 -1
- package/dist/adapters/a2a/agent-cards/generator.js +6 -3
- package/dist/adapters/a2a/tasks/task-router.js +3 -1
- package/dist/adapters/trajectory-adapter.js +1 -1
- package/dist/agents/claim-verifier/verifiers/output-verifier.d.ts +3 -1
- package/dist/agents/claim-verifier/verifiers/output-verifier.js +31 -2
- package/dist/agents/overlay-loader.js +26 -21
- package/dist/cli/bundle.js +6 -6
- package/dist/cli/chunks/adapter-HL7MOCQN.js +2 -0
- package/dist/cli/chunks/{agent-booster-wasm-H7ANGXW4.js → agent-booster-wasm-5VZCKTIJ.js} +2 -2
- package/dist/cli/chunks/{agent-handler-SVXSHEET.js → agent-handler-K3C6CQCD.js} +2 -2
- package/dist/cli/chunks/{agent-memory-branch-WKQH36XL.js → agent-memory-branch-NVFQ25WS.js} +2 -2
- package/dist/cli/chunks/aqe-learning-engine-OZ2DXB4G.js +2 -0
- package/dist/cli/chunks/{arena-EKOOFVST.js → arena-QGWIJADQ.js} +2 -2
- package/dist/cli/chunks/{arena-OPS36NFZ.js → arena-TSZVDSXS.js} +4 -4
- package/dist/cli/chunks/{audit-AO5NDZRI.js → audit-KIEE2SHJ.js} +3 -3
- package/dist/cli/chunks/base-WIM7G3HC.js +2 -0
- package/dist/cli/chunks/{better-sqlite3-TFLVEMMY.js → better-sqlite3-BNB32NW3.js} +2 -2
- package/dist/cli/chunks/{brain-handler-ADBBJPYW.js → brain-handler-MPC5SPYI.js} +3 -3
- package/dist/cli/chunks/{branch-enumerator-HGHUYYL5.js → branch-enumerator-LZ7UXKAY.js} +2 -2
- package/dist/cli/chunks/{browser-5LU6P4SZ.js → browser-VDHAW4RK.js} +2 -2
- package/dist/cli/chunks/browser-workflow-QRKCFVR3.js +2 -0
- package/dist/cli/chunks/{chunk-5LPYV3TK.js → chunk-23PQF7NN.js} +1 -1
- package/dist/cli/chunks/{chunk-2ZMF4NCF.js → chunk-26672ISV.js} +2 -2
- package/dist/cli/chunks/{chunk-U53ZB4IX.js → chunk-2ASQRBK2.js} +2 -2
- package/dist/cli/chunks/{chunk-7PJIR4ST.js → chunk-2E2QO44T.js} +2 -2
- package/dist/cli/chunks/{chunk-2T7RRL6G.js → chunk-2IVE5AR3.js} +1 -1
- package/dist/cli/chunks/{chunk-B6LTH6YV.js → chunk-2JYUA27M.js} +1 -1
- package/dist/cli/chunks/{chunk-PFG6VQ5Z.js → chunk-2PPSS4JD.js} +2 -2
- package/dist/cli/chunks/{chunk-NZYLNXT6.js → chunk-32UTHIY5.js} +5 -5
- package/dist/cli/chunks/{chunk-5E6GHSTY.js → chunk-33I2ZP6E.js} +2 -2
- package/dist/cli/chunks/{chunk-XLZYRTNO.js → chunk-35MIUSXQ.js} +2 -2
- package/dist/cli/chunks/{chunk-7LFZ4CHM.js → chunk-35NW676P.js} +2 -2
- package/dist/cli/chunks/{chunk-4G63WT4F.js → chunk-3EWQN37E.js} +2 -2
- package/dist/cli/chunks/{chunk-GZLZCZ42.js → chunk-3IU4LDZR.js} +2 -2
- package/dist/cli/chunks/{chunk-CESIR27V.js → chunk-47RMGDG4.js} +2 -2
- package/dist/cli/chunks/chunk-4A76VPU4.js +3 -0
- package/dist/cli/chunks/{chunk-DT7SIJOA.js → chunk-4CB3QPZM.js} +2 -2
- package/dist/cli/chunks/{chunk-ERQKYIP7.js → chunk-4HWUECVD.js} +5 -5
- package/dist/cli/chunks/{chunk-MA7JIQ6U.js → chunk-4KUOYDY2.js} +5 -5
- package/dist/cli/chunks/{chunk-VWNFAW2M.js → chunk-4LWMAAWK.js} +2 -2
- package/dist/cli/chunks/{chunk-IKISCIGH.js → chunk-4PU5GTZW.js} +2 -2
- package/dist/cli/chunks/{chunk-ZXPY654C.js → chunk-4SA7M34P.js} +1 -1
- package/dist/cli/chunks/{chunk-NGKNYIQZ.js → chunk-4Y6OEBJZ.js} +1 -1
- package/dist/cli/chunks/{chunk-KOBVYY6H.js → chunk-5A66EGEW.js} +2 -2
- package/dist/cli/chunks/{chunk-Z2O2YJAF.js → chunk-5ADXFUMO.js} +2 -2
- package/dist/cli/chunks/{chunk-YKMU4LBV.js → chunk-5S4UIDFK.js} +1 -1
- package/dist/cli/chunks/{chunk-Z7IYW5U7.js → chunk-5TAEW5OV.js} +1 -1
- package/dist/cli/chunks/chunk-5Z23ZMXZ.js +742 -0
- package/dist/cli/chunks/{chunk-6TB6YOCZ.js → chunk-65TH6RPD.js} +1 -1
- package/dist/cli/chunks/{chunk-3Y7SPD72.js → chunk-66PXR3NI.js} +2 -2
- package/dist/cli/chunks/{chunk-3P34JFQH.js → chunk-6E6HB4N4.js} +14 -14
- package/dist/cli/chunks/{chunk-6PX4OXQO.js → chunk-6QRI3JVE.js} +2 -2
- package/dist/cli/chunks/{chunk-WBM6N6IM.js → chunk-7DNR4KKR.js} +1 -1
- package/dist/cli/chunks/{chunk-6XCMKIZN.js → chunk-7JFDLL2F.js} +1 -1
- package/dist/cli/chunks/chunk-7OEFBWAG.js +5 -0
- package/dist/cli/chunks/{chunk-Y76IAYQD.js → chunk-7QEUHNKO.js} +1 -1
- package/dist/cli/chunks/{chunk-WQ4PYWSW.js → chunk-7TA5MUPW.js} +1 -1
- package/dist/cli/chunks/{chunk-2XGVTYVX.js → chunk-A2JCRXTK.js} +2 -2
- package/dist/cli/chunks/{chunk-ESUO3GTJ.js → chunk-A5Y7DAVQ.js} +2 -2
- package/dist/cli/chunks/{chunk-ATHWDAXB.js → chunk-ADUAJIAU.js} +2 -2
- package/dist/cli/chunks/{chunk-IU2IV4NE.js → chunk-AJEXPFAB.js} +1 -1
- package/dist/cli/chunks/{chunk-YK7JN5N7.js → chunk-BC4T6SCV.js} +4 -4
- package/dist/cli/chunks/{chunk-KSIWGGJI.js → chunk-BMG2JLSQ.js} +2 -2
- package/dist/cli/chunks/chunk-BOSMELJX.js +180 -0
- package/dist/cli/chunks/{chunk-7OZVZIBE.js → chunk-BYRCB5JT.js} +2 -2
- package/dist/cli/chunks/{chunk-FAUCT5KR.js → chunk-C3YOVASQ.js} +6 -5
- package/dist/cli/chunks/{chunk-DMFTELBS.js → chunk-C74M4WUI.js} +2 -2
- package/dist/cli/chunks/{chunk-2SXBBUM6.js → chunk-CA5UNWQF.js} +2 -2
- package/dist/cli/chunks/{chunk-UCJMVXO4.js → chunk-CDA5Z74H.js} +2 -2
- package/dist/cli/chunks/{chunk-NVYIZCSR.js → chunk-CPIBIR3X.js} +2 -2
- package/dist/cli/chunks/{chunk-YK3BVZY6.js → chunk-CU36D7TN.js} +2 -2
- package/dist/cli/chunks/{chunk-H32EPIR2.js → chunk-DAUEK66C.js} +1 -1
- package/dist/cli/chunks/{chunk-6KIL6CMD.js → chunk-DRCBRUGN.js} +2 -2
- package/dist/cli/chunks/{chunk-EWFECZ2U.js → chunk-DZGPUGUG.js} +2 -2
- package/dist/cli/chunks/{chunk-YDAQK5UF.js → chunk-EF6OERRR.js} +1 -1
- package/dist/cli/chunks/{chunk-KG336OV3.js → chunk-EN7GRVEQ.js} +2 -2
- package/dist/cli/chunks/{chunk-DBMNJSBV.js → chunk-ENGL7FIJ.js} +1 -1
- package/dist/cli/chunks/{chunk-FKL3R5JQ.js → chunk-FAGKBOX2.js} +2 -2
- package/dist/cli/chunks/{chunk-NAXGWDVM.js → chunk-FNUFTWEO.js} +3 -3
- package/dist/cli/chunks/{chunk-RWWOHCMG.js → chunk-FZJCBSN4.js} +2 -2
- package/dist/cli/chunks/{chunk-ABFFWZPC.js → chunk-G24SWTAX.js} +151 -149
- package/dist/cli/chunks/{chunk-ODJNUMV3.js → chunk-G3AABG4Q.js} +2 -2
- package/dist/cli/chunks/{chunk-FBXTQNRH.js → chunk-GJKZ7UQO.js} +2 -2
- package/dist/cli/chunks/{chunk-DEF34AFL.js → chunk-GKFV6CUD.js} +2 -2
- package/dist/cli/chunks/{chunk-SY2IB442.js → chunk-HLGFHHWV.js} +2 -2
- package/dist/cli/chunks/{chunk-CZGOSJQ4.js → chunk-HM3LSFTY.js} +2 -2
- package/dist/cli/chunks/chunk-HSA5IGGW.js +2 -0
- package/dist/cli/chunks/{chunk-GJHWY3ZX.js → chunk-HZBXJFGN.js} +2 -2
- package/dist/cli/chunks/chunk-IA55PFLG.js +7 -0
- package/dist/cli/chunks/{chunk-MNN5J4GU.js → chunk-ICKUINKD.js} +2 -2
- package/dist/cli/chunks/{chunk-XEB3NLJR.js → chunk-IETBWYHW.js} +2 -2
- package/dist/cli/chunks/{chunk-A55QKKT2.js → chunk-IL7GQNNE.js} +2 -2
- package/dist/cli/chunks/{chunk-LRZY4KS2.js → chunk-INZARYUD.js} +2 -2
- package/dist/cli/chunks/{chunk-OBAREPDC.js → chunk-IPA7K556.js} +2 -2
- package/dist/cli/chunks/{chunk-CFBEBXLO.js → chunk-IVTQF55W.js} +3 -3
- package/dist/cli/chunks/{chunk-FFTPAWM6.js → chunk-J7Y7ZBIT.js} +8 -8
- package/dist/cli/chunks/{chunk-I33O4BRQ.js → chunk-JGIJPDGD.js} +2 -2
- package/dist/cli/chunks/chunk-JNXK47OL.js +2 -0
- package/dist/cli/chunks/{chunk-PCEW6Q2C.js → chunk-JOWUS2X5.js} +1 -1
- package/dist/cli/chunks/{chunk-KI73QCR5.js → chunk-JR6CUKAI.js} +2 -2
- package/dist/cli/chunks/chunk-JRYWLOBD.js +21 -0
- package/dist/cli/chunks/{chunk-SO45NA4D.js → chunk-JW5PDJ5O.js} +11 -11
- package/dist/cli/chunks/{chunk-APSRPR4W.js → chunk-K3A3NWT3.js} +2 -2
- package/dist/cli/chunks/{chunk-FESZBPUB.js → chunk-KA5SHLMW.js} +2 -2
- package/dist/cli/chunks/{chunk-OPFGRS5S.js → chunk-KGA7VAI4.js} +2 -2
- package/dist/cli/chunks/chunk-KJDI5CHX.js +2 -0
- package/dist/cli/chunks/{chunk-V2RSNVMW.js → chunk-L3PV7VXK.js} +1 -1
- package/dist/cli/chunks/{chunk-C522H7XR.js → chunk-L7NGKANW.js} +32 -32
- package/dist/cli/chunks/{chunk-DNRWGATA.js → chunk-LFBA735S.js} +7 -7
- package/dist/cli/chunks/{chunk-V2M2XCR5.js → chunk-MAJXZYGK.js} +1 -1
- package/dist/cli/chunks/{chunk-FZOWULMH.js → chunk-MCPEC6OO.js} +1 -1
- package/dist/cli/chunks/{chunk-LMS3Y7JD.js → chunk-MCPXNUDK.js} +2 -2
- package/dist/cli/chunks/{chunk-GWZZ7DAO.js → chunk-MMEALJ4D.js} +2 -2
- package/dist/cli/chunks/{chunk-G3CZCUPM.js → chunk-MYF5CNGV.js} +2 -2
- package/dist/cli/chunks/{chunk-NNFZUTDH.js → chunk-MYUMJ2ZI.js} +1 -1
- package/dist/cli/chunks/{chunk-WDQ7IEZY.js → chunk-N7O3PF6Y.js} +2 -2
- package/dist/cli/chunks/{chunk-YAKGBHO4.js → chunk-NA3F6FEO.js} +2 -2
- package/dist/cli/chunks/chunk-NNBQZR73.js +6 -0
- package/dist/cli/chunks/{chunk-6C3II5OM.js → chunk-NV74SICL.js} +2 -2
- package/dist/cli/chunks/chunk-NVRYELCY.js +13 -0
- package/dist/cli/chunks/{chunk-UHTTW3IT.js → chunk-NX4BCSOZ.js} +2 -2
- package/dist/cli/chunks/{chunk-EN2QSKFF.js → chunk-O3IM4WRZ.js} +2 -2
- package/dist/cli/chunks/{chunk-S75EYIJG.js → chunk-O4QJMANM.js} +1 -1
- package/dist/cli/chunks/{chunk-NPPHWFA2.js → chunk-OHVYINGM.js} +18 -18
- package/dist/cli/chunks/{chunk-DE4YJQJF.js → chunk-P5E26N2X.js} +2 -2
- package/dist/cli/chunks/chunk-P7UFJ6DO.js +14 -0
- package/dist/cli/chunks/{chunk-XFVTGAAJ.js → chunk-PGSJBXTD.js} +2 -2
- package/dist/cli/chunks/{chunk-CZ2IF6MC.js → chunk-PT2NXS43.js} +1 -1
- package/dist/cli/chunks/{chunk-RK73HB2F.js → chunk-PTBOLBM4.js} +2 -2
- package/dist/cli/chunks/{chunk-EAU5KDFO.js → chunk-PX5OPXY6.js} +1 -1
- package/dist/cli/chunks/chunk-QCPVUNN3.js +2 -0
- package/dist/cli/chunks/{chunk-VKRTTFB6.js → chunk-QSGEBCDB.js} +2 -2
- package/dist/cli/chunks/{chunk-SKQUUE4F.js → chunk-QUJJYTJH.js} +2 -2
- package/dist/cli/chunks/chunk-QWG3SILX.js +59 -0
- package/dist/cli/chunks/{chunk-D6DA2KFD.js → chunk-RCOLPF3B.js} +2 -2
- package/dist/cli/chunks/{chunk-SU5H66SD.js → chunk-RYHG3I7J.js} +2 -2
- package/dist/cli/chunks/chunk-SBHM5X2S.js +4 -0
- package/dist/cli/chunks/{chunk-62OAY5KJ.js → chunk-SDRJJUPO.js} +1 -1
- package/dist/cli/chunks/{chunk-FB6TI3BH.js → chunk-SG2TX72G.js} +2 -2
- package/dist/cli/chunks/{chunk-H2PYU7MN.js → chunk-SITL5YZV.js} +4 -4
- package/dist/cli/chunks/{chunk-AI4VYSFS.js → chunk-SPC4RBLF.js} +2 -2
- package/dist/cli/chunks/{chunk-BQUAE3CP.js → chunk-SQVZ3TRU.js} +2 -2
- package/dist/cli/chunks/{chunk-TBLI254A.js → chunk-SUX5XB2Z.js} +2 -2
- package/dist/cli/chunks/{chunk-VFSYMOAL.js → chunk-T4EN5VVK.js} +2 -2
- package/dist/cli/chunks/{chunk-KNQ2ERFX.js → chunk-TGMXUZZC.js} +2 -2
- package/dist/cli/chunks/{chunk-7TB6FK4B.js → chunk-TLRHAMX5.js} +1 -1
- package/dist/cli/chunks/{chunk-V6JBOIMX.js → chunk-TOWOJGEI.js} +1 -1
- package/dist/cli/chunks/{chunk-JHIY4VCC.js → chunk-TSOQ2QLT.js} +3 -3
- package/dist/cli/chunks/{chunk-YYTGXD3R.js → chunk-TVA5GRIU.js} +2 -2
- package/dist/cli/chunks/{chunk-6MVVSSID.js → chunk-TXEUVUMO.js} +1 -1
- package/dist/cli/chunks/{chunk-7ZCDZHDB.js → chunk-U6IXYQO4.js} +2 -2
- package/dist/cli/chunks/{chunk-NW5JUCCG.js → chunk-U7ZHDGXG.js} +1 -1
- package/dist/cli/chunks/{chunk-UARKIZAS.js → chunk-UCSK2RMI.js} +2 -2
- package/dist/cli/chunks/{chunk-RPHY2DU6.js → chunk-UIKQPO4Y.js} +2 -2
- package/dist/cli/chunks/chunk-UJNGGFGX.js +2 -0
- package/dist/cli/chunks/{chunk-EDLFX4ZB.js → chunk-ULCW6IVQ.js} +2 -2
- package/dist/cli/chunks/{chunk-M2QV7PT7.js → chunk-UREDS662.js} +2 -2
- package/dist/cli/chunks/{chunk-MG27QY4D.js → chunk-URSTP3WI.js} +2 -2
- package/dist/cli/chunks/{chunk-2ZI5FKSF.js → chunk-UUZZXHUF.js} +2 -2
- package/dist/cli/chunks/{chunk-IPJ7Q3AJ.js → chunk-UZED4YZ5.js} +1 -1
- package/dist/cli/chunks/{chunk-VFKF2XO7.js → chunk-VF7FTD64.js} +1 -1
- package/dist/cli/chunks/{chunk-YCGP5VFP.js → chunk-VUR5THML.js} +2 -2
- package/dist/cli/chunks/{chunk-WDVRE6GN.js → chunk-VXVTFKRA.js} +2 -2
- package/dist/cli/chunks/chunk-VZBC6DP7.js +2 -0
- package/dist/cli/chunks/{chunk-GHBNRMSJ.js → chunk-W4II6SIH.js} +2 -2
- package/dist/cli/chunks/{chunk-TNMBRDCA.js → chunk-W5HQIYQU.js} +3 -3
- package/dist/cli/chunks/{chunk-H74Q7TJN.js → chunk-W7H55PY4.js} +1 -1
- package/dist/cli/chunks/{chunk-OY2AHLSF.js → chunk-WDEXOLK2.js} +1 -1
- package/dist/cli/chunks/{chunk-VJQYDYAJ.js → chunk-WGTEZT7G.js} +2 -2
- package/dist/cli/chunks/{chunk-GRCIBCJ2.js → chunk-WLRU6ESI.js} +2 -2
- package/dist/cli/chunks/{chunk-ACWFKES2.js → chunk-WTAUF6O4.js} +2 -2
- package/dist/cli/chunks/chunk-XCNSGSKV.js +3 -0
- package/dist/cli/chunks/{chunk-6S3WJGUV.js → chunk-XZOYKB22.js} +2 -2
- package/dist/cli/chunks/chunk-YIDAXOUX.js +8 -0
- package/dist/cli/chunks/{chunk-LQEURY7C.js → chunk-YLKIXEPP.js} +1 -1
- package/dist/cli/chunks/chunk-YNVEDFPQ.js +2 -0
- package/dist/cli/chunks/{chunk-PGYMKGOE.js → chunk-YUA6ZKKY.js} +2 -2
- package/dist/cli/chunks/{chunk-GJMLK5UT.js → chunk-YVJEUX3I.js} +2 -2
- package/dist/cli/chunks/{chunk-AH3ZD3NJ.js → chunk-YWWMNTBF.js} +2 -2
- package/dist/cli/chunks/{chunk-37OWRCUN.js → chunk-ZGROHCOW.js} +2 -2
- package/dist/cli/chunks/{chunk-OEKP73MC.js → chunk-ZPVGX4DI.js} +2 -2
- package/dist/cli/chunks/{chunk-6GP6W46M.js → chunk-ZROAMFX2.js} +2 -2
- package/dist/cli/chunks/{chunk-OY3NJNP2.js → chunk-ZYOYR3UR.js} +1 -1
- package/dist/cli/chunks/ci-BZNWW3I3.js +81 -0
- package/dist/cli/chunks/{ci-config-7ODMNAUM.js → ci-config-LOHNXOKV.js} +2 -2
- package/dist/cli/chunks/{ci-output-FXZ7ZZW3.js → ci-output-LCOQBSJL.js} +2 -2
- package/dist/cli/chunks/{circuit-breaker-4VOUEPOX.js → circuit-breaker-7LRXTLFE.js} +2 -2
- package/dist/cli/chunks/{claude-flow-setup-7D4SGLM4.js → claude-flow-setup-HBU4VWC3.js} +2 -2
- package/dist/cli/chunks/client-4PNYDFYS.js +2 -0
- package/dist/cli/chunks/{cline-installer-WRRT7BGQ.js → cline-installer-CO6MLH6X.js} +2 -2
- package/dist/cli/chunks/{code-ZDJRIL3S.js → code-SIXBS6JM.js} +3 -3
- package/dist/cli/chunks/{code-index-extractor-4S4SHM56.js → code-index-extractor-GWJKZ2IQ.js} +2 -2
- package/dist/cli/chunks/{codex-installer-YTRHNDWR.js → codex-installer-6NINVWXJ.js} +2 -2
- package/dist/cli/chunks/{completions-6N64JUXJ.js → completions-7VIX3GML.js} +2 -2
- package/dist/cli/chunks/{complexity-analyzer-I4A26VCJ.js → complexity-analyzer-FBQR6ZP2.js} +2 -2
- package/dist/cli/chunks/{continuedev-installer-IIDR66LB.js → continuedev-installer-VA7RIXW5.js} +2 -2
- package/dist/cli/chunks/{copilot-installer-SVVFY3S2.js → copilot-installer-4QEBC4MU.js} +2 -2
- package/dist/cli/chunks/core-handlers-ODO6LUWQ.js +2 -0
- package/dist/cli/chunks/{cost-tracker-VGFS6IBX.js → cost-tracker-GRYKHPWL.js} +2 -2
- package/dist/cli/chunks/coverage-USPMNKOU.js +50 -0
- package/dist/cli/chunks/cross-domain-router-DT4MHJKK.js +2 -0
- package/dist/cli/chunks/{cursor-installer-UPETT57E.js → cursor-installer-ZXIPSZVH.js} +2 -2
- package/dist/cli/chunks/{daemon-CQFNZLXU.js → daemon-D7F3RGI5.js} +3 -3
- package/dist/cli/chunks/{daemon-7BDJHEIJ.js → daemon-N2VRHPSJ.js} +4 -4
- package/dist/cli/chunks/{dag-attention-scheduler-PJVABHON.js → dag-attention-scheduler-NL6BA7BY.js} +2 -2
- package/dist/cli/chunks/{detect-56SKAGWX.js → detect-XC2HCIIT.js} +2 -2
- package/dist/cli/chunks/{dist-node-UYTYUMLN.js → dist-node-A3Y26MEI.js} +2 -2
- package/dist/cli/chunks/{domain-handler-YOYLBYJE.js → domain-handler-WV6SFXRB.js} +2 -2
- package/dist/cli/chunks/{domain-plugins-7TARX2XF.js → domain-plugins-KJIF6Z2B.js} +2 -2
- package/dist/cli/chunks/{domain-transfer-AKVSBD6E.js → domain-transfer-L3F6AES2.js} +2 -2
- package/dist/cli/chunks/dream-QOB3JCOM.js +2 -0
- package/dist/cli/chunks/{embed-and-insert-pattern-IS6HSR66.js → embed-and-insert-pattern-PA3Y4KGO.js} +2 -2
- package/dist/cli/chunks/{eval-GNB574IM.js → eval-YGEZNUVE.js} +2 -2
- package/dist/cli/chunks/{experience-capture-middleware-RCAOCKM7.js → experience-capture-middleware-D4T7NW6B.js} +3 -3
- package/dist/cli/chunks/{fast-paths-KTZ5SF54.js → fast-paths-6JYK7RYQ.js} +2 -2
- package/dist/cli/chunks/{feature-flags-KFHSR5YF.js → feature-flags-DKXMDVPE.js} +2 -2
- package/dist/cli/chunks/{feature-flags-ITX5LQ57.js → feature-flags-RBH2GDSR.js} +2 -2
- package/dist/cli/chunks/file-discovery-BN76S2PR.js +2 -0
- package/dist/cli/chunks/fleet-43YMXACN.js +46 -0
- package/dist/cli/chunks/{gnn-wrapper-RLFW3GSX.js → gnn-wrapper-MV54UC4C.js} +2 -2
- package/dist/cli/chunks/{heartbeat-handler-EM2URCYZ.js → heartbeat-handler-7DKMVQQH.js} +4 -4
- package/dist/cli/chunks/heartbeat-scheduler-3NNP4WCP.js +2 -0
- package/dist/cli/chunks/hnsw-adapter-MZR7Y4WF.js +2 -0
- package/dist/cli/chunks/hnsw-index-HE4AX22U.js +2 -0
- package/dist/cli/chunks/{hnsw-legacy-bridge-JMHEOIBH.js → hnsw-legacy-bridge-6IWREDQC.js} +2 -2
- package/dist/cli/chunks/{hnswlib-node-CBP73QHY.js → hnswlib-node-5BIESSCK.js} +2 -2
- package/dist/cli/chunks/{hooks-IP7XE34Z.js → hooks-3EETRM62.js} +30 -30
- package/dist/cli/chunks/hybrid-backend-IHUHB3Y2.js +2 -0
- package/dist/cli/chunks/{hypergraph-engine-ONAYHU25.js → hypergraph-engine-RSWCB2D3.js} +2 -2
- package/dist/cli/chunks/{hypergraph-handler-VINJRAID.js → hypergraph-handler-552LXKL3.js} +3 -3
- package/dist/cli/chunks/impact-analyzer-FI6GI6PD.js +2 -0
- package/dist/cli/chunks/{init-guard-RYVV5R3Z.js → init-guard-OTDBJ5HD.js} +2 -2
- package/dist/cli/chunks/{init-handler-MPRGWMOE.js → init-handler-3FK3TKEA.js} +26 -25
- package/dist/cli/chunks/init-wizard-WLQKH5Y5.js +2 -0
- package/dist/cli/chunks/kernel-2WZOQEZS.js +2 -0
- package/dist/cli/chunks/{kilocode-installer-OPD7JBRL.js → kilocode-installer-KZ2O4LF3.js} +2 -2
- package/dist/cli/chunks/{kiro-installer-M4OPUNK2.js → kiro-installer-MLCCXRF7.js} +2 -2
- package/dist/cli/chunks/knowledge-graph-G3LVKK6P.js +2 -0
- package/dist/cli/chunks/{learning-4UWTQLMF.js → learning-QUCMBD77.js} +3 -3
- package/dist/cli/chunks/{llm-router-SQ56FF6Z.js → llm-router-PDEV3UP2.js} +4 -4
- package/dist/cli/chunks/llm-router-service-MM75HKWJ.js +2 -0
- package/dist/cli/chunks/{load-HPHKDGGL.js → load-XFVVLO7E.js} +2 -2
- package/dist/cli/chunks/load-test-BEWEE44J.js +2 -0
- package/dist/cli/chunks/{mcp-TELMAC7Z.js → mcp-74G3CL2S.js} +2 -2
- package/dist/cli/chunks/{memory-PFQ3KPVJ.js → memory-XIFM6JNX.js} +5 -5
- package/dist/cli/chunks/memory-backend-NYKBBKZR.js +2 -0
- package/dist/cli/chunks/memory-handlers-ZCKURV6S.js +2 -0
- package/dist/cli/chunks/{multi-model-executor-3VDRX6TZ.js → multi-model-executor-7L4W3O2Q.js} +2 -2
- package/dist/cli/chunks/{opencode-installer-PJ576R63.js → opencode-installer-BPG422LF.js} +2 -2
- package/dist/cli/chunks/{orchestrator-72QP4UU7.js → orchestrator-OEAFLAEV.js} +61 -23
- package/dist/cli/chunks/pattern-null-store-QGPUIV6M.js +2 -0
- package/dist/cli/chunks/{pattern-usage-recorder-754YQW7C.js → pattern-usage-recorder-LOPNCULT.js} +2 -2
- package/dist/cli/chunks/{pipeline-AVXY4MVB.js → pipeline-VWTYUZB7.js} +2 -2
- package/dist/cli/chunks/{platform-3E3DXLYB.js → platform-WFJJ3X2E.js} +2 -2
- package/dist/cli/chunks/{plugin-7FUQAKRE.js → plugin-744TPUSG.js} +2 -2
- package/dist/cli/chunks/{prime-radiant-advanced-wasm-NIB4F5NV.js → prime-radiant-advanced-wasm-BD5BLNDR.js} +2 -2
- package/dist/cli/chunks/project-root-C7ELXZRK.js +2 -0
- package/dist/cli/chunks/protocol-executor-SUVE33BM.js +2 -0
- package/dist/cli/chunks/{protocol-handler-BQRYMUTG.js → protocol-handler-JIBILI74.js} +2 -2
- package/dist/cli/chunks/{prove-H52QGC6B.js → prove-MNOL5FYW.js} +2 -2
- package/dist/cli/chunks/qe-reasoning-bank-YWZMMGJB.js +2 -0
- package/dist/cli/chunks/{quality-QO4XPAUM.js → quality-JEGBDGGX.js} +2 -2
- package/dist/cli/chunks/{quality-gate-FBKE5E6F.js → quality-gate-SYJ6ROMI.js} +3 -3
- package/dist/cli/chunks/queen-coordinator-ZFAKXRN7.js +2 -0
- package/dist/cli/chunks/real-embeddings-ZWXS5ZFV.js +2 -0
- package/dist/cli/chunks/{ref-validation-LF76ZOBD.js → ref-validation-RRHUFW2N.js} +2 -2
- package/dist/cli/chunks/{roocode-installer-3BYEBTQ7.js → roocode-installer-XFO6JSVN.js} +2 -2
- package/dist/cli/chunks/router-4FTAVYLJ.js +2 -0
- package/dist/cli/chunks/routing-feedback-IO2KOWMJ.js +2 -0
- package/dist/cli/chunks/{routing-handler-DST7BVCU.js → routing-handler-L2K3JASE.js} +2 -2
- package/dist/cli/chunks/{ruvector-commands-XE32PGKC.js → ruvector-commands-A6CINHGM.js} +2 -2
- package/dist/cli/chunks/rvf-dual-writer-KCIRNE7C.js +2 -0
- package/dist/cli/chunks/rvf-migration-adapter-MFC5WTJU.js +2 -0
- package/dist/cli/chunks/{rvf-migration-coordinator-VP32XC75.js → rvf-migration-coordinator-T4RY7L53.js} +2 -2
- package/dist/cli/chunks/rvf-native-adapter-I3KWHE7X.js +2 -0
- package/dist/cli/chunks/{rvf-store-integrity-SH2AMVI7.js → rvf-store-integrity-IR33TGQS.js} +2 -2
- package/dist/cli/chunks/safe-db-QXDZ6QY3.js +2 -0
- package/dist/cli/chunks/schedule-CZKD6RIY.js +2 -0
- package/dist/cli/chunks/scheduler-BLA3Q4CH.js +2 -0
- package/dist/cli/chunks/{security-VSPNKCDS.js → security-Z5GDE2IH.js} +3 -3
- package/dist/cli/chunks/{shared-rvf-adapter-HX6AHL3P.js → shared-rvf-adapter-SIZMEHPM.js} +2 -2
- package/dist/cli/chunks/{shared-rvf-dual-writer-MX4FC2JE.js → shared-rvf-dual-writer-HLM65RDS.js} +2 -2
- package/dist/cli/chunks/sqlite-persistence-XIUYDJC4.js +2 -0
- package/dist/cli/chunks/{standalone-memory-O4QUTK6L.js → standalone-memory-SKSZG7P5.js} +2 -2
- package/dist/cli/chunks/{status-handler-Z2BP6EOG.js → status-handler-766YOOMJ.js} +2 -2
- package/dist/cli/chunks/{structural-health-R36WNLQG.js → structural-health-M45FNOLT.js} +2 -2
- package/dist/cli/chunks/{sync-QF5Y3EMZ.js → sync-6CJ24B5T.js} +2 -2
- package/dist/cli/chunks/{sync-2ELWUFQU.js → sync-B2U366I3.js} +2 -2
- package/dist/cli/chunks/{task-handler-43PYE75J.js → task-handler-P6IFLCKP.js} +17 -15
- package/dist/cli/chunks/task-handlers-DPWMUKFC.js +9 -0
- package/dist/cli/chunks/{test-UWA377D4.js → test-TODH7KRF.js} +11 -11
- package/dist/cli/chunks/test-runner-process-46IPK3GH.js +2 -0
- package/dist/cli/chunks/{test-scheduling-YQZPJRRN.js → test-scheduling-VMVMVRHT.js} +3 -3
- package/dist/cli/chunks/{token-bootstrap-F7C6UKTC.js → token-bootstrap-XQW7BMCK.js} +2 -2
- package/dist/cli/chunks/{token-usage-DO6WLMXP.js → token-usage-JCZEIRKO.js} +2 -2
- package/dist/cli/chunks/{transformers-H5RGFKVO.js → transformers-U2ML3OHE.js} +2 -2
- package/dist/cli/chunks/tree-sitter-wasm-parser-MOI2WWNJ.js +2 -0
- package/dist/cli/chunks/{types-PJS2FGPF.js → types-GGEPCHP6.js} +2 -2
- package/dist/cli/chunks/unified-memory-FL26RTV3.js +2 -0
- package/dist/cli/chunks/unified-memory-hnsw-E2BPTH3U.js +2 -0
- package/dist/cli/chunks/unified-persistence-5ZOUPKHF.js +2 -0
- package/dist/cli/chunks/{upgrade-4IC4F6AB.js → upgrade-T5GRM7HS.js} +2 -2
- package/dist/cli/chunks/{validate-DHUWW7PF.js → validate-XMUJPLP3.js} +2 -2
- package/dist/cli/chunks/{validate-swarm-OERQNOX5.js → validate-swarm-KJLF7JEH.js} +2 -2
- package/dist/cli/chunks/visual-security-IJVPO5FA.js +2 -0
- package/dist/cli/chunks/{web-tree-sitter-TV7DMKES.js → web-tree-sitter-LOHVZ7G5.js} +2 -2
- package/dist/cli/chunks/{windsurf-installer-QZPWSH37.js → windsurf-installer-33FBTXJU.js} +2 -2
- package/dist/cli/chunks/witness-chain-5FAFCQKP.js +2 -0
- package/dist/cli/chunks/witness-chain-V2M32W5D.js +2 -0
- package/dist/cli/chunks/{witness-chain-repair-RUXIOE7F.js → witness-chain-repair-VWBO4NXE.js} +2 -2
- package/dist/cli/chunks/{witness-chain-verifier-YXENHB42.js → witness-chain-verifier-BHJ3ZAEK.js} +2 -2
- package/dist/cli/chunks/{witness-key-manager-HL26AGFO.js → witness-key-manager-WNVPH2Z3.js} +2 -2
- package/dist/cli/chunks/{workflow-EOVVCN2E.js → workflow-6QR5MQTO.js} +4 -4
- package/dist/cli/chunks/workflow-orchestrator-3JLF3IX7.js +2 -0
- package/dist/cli/chunks/{wrappers-AGODHBOO.js → wrappers-EHOL62TS.js} +2 -2
- package/dist/cli/commands/ci.js +7 -0
- package/dist/cli/commands/coverage.js +7 -1
- package/dist/cli/commands/fleet.js +5 -2
- package/dist/cli/commands/hooks-handlers/stats-hooks.d.ts +4 -3
- package/dist/cli/commands/hooks-handlers/stats-hooks.js +22 -4
- package/dist/cli/commands/hooks-handlers/tool-loop-guardrail.js +11 -6
- package/dist/cli/commands/test.js +5 -2
- package/dist/cli/handlers/init-handler.d.ts +12 -0
- package/dist/cli/handlers/init-handler.js +27 -12
- package/dist/cli/handlers/task-handler.js +6 -0
- package/dist/cli/utils/ci-output.d.ts +2 -0
- package/dist/cli/utils/ci-output.js +2 -0
- package/dist/cli/utils/coverage-verdict.d.ts +11 -2
- package/dist/cli/utils/coverage-verdict.js +26 -6
- package/dist/cli/utils/fleet-operation.d.ts +5 -0
- package/dist/cli/utils/fleet-operation.js +7 -1
- package/dist/cli/utils/fleet-result.d.ts +5 -3
- package/dist/cli/utils/fleet-result.js +9 -3
- package/dist/cli/utils/progress.d.ts +16 -2
- package/dist/cli/utils/progress.js +31 -14
- package/dist/coordination/consensus/consensus-engine.js +3 -1
- package/dist/coordination/handlers/code-intelligence-handlers.js +3 -2
- package/dist/coordination/handlers/coverage-collection.d.ts +2 -0
- package/dist/coordination/handlers/coverage-collection.js +5 -2
- package/dist/coordination/handlers/coverage-evidence.d.ts +75 -0
- package/dist/coordination/handlers/coverage-evidence.js +159 -0
- package/dist/coordination/handlers/coverage-handlers.js +16 -3
- package/dist/coordination/handlers/coverage-runner.d.ts +3 -8
- package/dist/coordination/handlers/coverage-runner.js +6 -22
- package/dist/coordination/handlers/coverage-scope.d.ts +40 -0
- package/dist/coordination/handlers/coverage-scope.js +321 -0
- package/dist/coordination/handlers/coverage-stderr.d.ts +23 -0
- package/dist/coordination/handlers/coverage-stderr.js +39 -0
- package/dist/coordination/handlers/coverage-target.d.ts +9 -0
- package/dist/coordination/handlers/coverage-target.js +21 -8
- package/dist/coordination/handlers/handler-utils.d.ts +5 -0
- package/dist/coordination/handlers/handler-utils.js +11 -5
- package/dist/coordination/handlers/requirements-handlers.js +3 -2
- package/dist/coordination/handlers/security-handlers.js +34 -20
- package/dist/coordination/queen-coordinator.js +8 -3
- package/dist/coordination/task-executability.d.ts +12 -0
- package/dist/coordination/task-executability.js +27 -0
- package/dist/coordination/workflow-orchestrator.d.ts +6 -0
- package/dist/coordination/workflow-orchestrator.js +22 -8
- package/dist/domains/code-intelligence/services/metric-collector/listing-process-owner.js +4 -1
- package/dist/domains/code-intelligence/services/product-factors-bridge.js +7 -4
- package/dist/domains/code-intelligence/services/semantic-analyzer.d.ts +8 -0
- package/dist/domains/code-intelligence/services/semantic-analyzer.js +10 -7
- package/dist/domains/coverage-analysis/services/coverage-parser.js +19 -10
- package/dist/domains/learning-optimization/interfaces.d.ts +2 -0
- package/dist/domains/learning-optimization/services/learning-coordinator.js +2 -1
- package/dist/domains/learning-optimization/services/metrics-optimizer.js +14 -4
- package/dist/domains/learning-optimization/services/production-intel.js +3 -1
- package/dist/domains/security-compliance/generic-finding-dedup.d.ts +40 -0
- package/dist/domains/security-compliance/generic-finding-dedup.js +63 -0
- package/dist/domains/security-compliance/services/scanners/dependency-resolver.js +14 -6
- package/dist/domains/security-compliance/services/scanners/sast-scanner.js +4 -2
- package/dist/domains/security-compliance/services/security-auditor-sast.js +2 -2
- package/dist/domains/security-compliance/services/security-auditor-secrets.js +2 -2
- package/dist/domains/security-compliance/services/security-auditor.js +3 -2
- package/dist/domains/test-execution/coordinator.d.ts +2 -1
- package/dist/domains/test-execution/coordinator.js +5 -14
- package/dist/domains/test-execution/interfaces.d.ts +11 -1
- package/dist/domains/test-execution/services/retry-outcome.d.ts +18 -0
- package/dist/domains/test-execution/services/retry-outcome.js +53 -0
- package/dist/domains/test-generation/coordinator.js +2 -2
- package/dist/domains/test-generation/services/pattern-matcher.js +4 -4
- package/dist/domains/test-generation/services/test-generator.js +2 -2
- package/dist/governance/evolution-pipeline-integration.js +3 -1
- package/dist/hooks/cross-phase-hooks.js +3 -1
- package/dist/init/init-wizard-steps.js +5 -1
- package/dist/init/phases/04-database.js +7 -0
- package/dist/init/phases/10-workers.js +42 -4
- package/dist/init/phases/12-verification.js +14 -4
- package/dist/init/settings-merge.js +7 -4
- package/dist/integrations/agentic-flow/reasoning-bank/experience-replay.d.ts +29 -0
- package/dist/integrations/agentic-flow/reasoning-bank/experience-replay.js +70 -6
- package/dist/integrations/agentic-flow/reasoning-bank/index.d.ts +10 -3
- package/dist/integrations/agentic-flow/reasoning-bank/index.js +13 -0
- package/dist/integrations/ruvector/filter-adapter.js +2 -1
- package/dist/learning/dream/insight-generator.js +5 -4
- package/dist/learning/embedder-endpoint-client.d.ts +8 -0
- package/dist/learning/embedder-endpoint-client.js +20 -0
- package/dist/learning/embedder-recovery.d.ts +63 -0
- package/dist/learning/embedder-recovery.js +94 -0
- package/dist/learning/memory-auditor.js +3 -1
- package/dist/learning/qe-patterns.js +2 -1
- package/dist/learning/qe-reasoning-bank-types.d.ts +5 -0
- package/dist/learning/qe-reasoning-bank.d.ts +21 -0
- package/dist/learning/qe-reasoning-bank.js +54 -8
- package/dist/learning/real-embeddings.d.ts +23 -0
- package/dist/learning/real-embeddings.js +69 -2
- package/dist/learning/real-qe-reasoning-bank.d.ts +39 -0
- package/dist/learning/real-qe-reasoning-bank.js +108 -38
- package/dist/logging/redaction.js +142 -12
- package/dist/mcp/bundle.js +520 -503
- package/dist/mcp/daemon-mode.d.ts +126 -0
- package/dist/mcp/daemon-mode.js +257 -0
- package/dist/mcp/entry.d.ts +4 -0
- package/dist/mcp/entry.js +50 -2
- package/dist/mcp/handlers/domain-handler-configs.d.ts +2 -0
- package/dist/mcp/handlers/domain-handler-configs.js +13 -2
- package/dist/mcp/handlers/orchestrate-routes.d.ts +6 -1
- package/dist/mcp/handlers/orchestrate-routes.js +53 -0
- package/dist/mcp/handlers/task-handlers.d.ts +23 -1
- package/dist/mcp/handlers/task-handlers.js +90 -19
- package/dist/mcp/handlers/validation-pipeline-handler.js +9 -9
- package/dist/mcp/protocol-server.js +11 -8
- package/dist/mcp/qe-tool-bridge.js +3 -0
- package/dist/mcp/services/reasoning-bank-service.d.ts +9 -2
- package/dist/mcp/services/reasoning-bank-service.js +13 -0
- package/dist/mcp/tool-annotations.js +4 -1
- package/dist/mcp/tools/coherence/check.js +1 -0
- package/dist/mcp/tools/coherence/consensus.js +4 -2
- package/dist/mcp/tools/learning-optimization/optimize.js +1 -2
- package/dist/mcp/tools/mincut/index.js +3 -0
- package/dist/mcp/tools/quality-assessment/gate.js +7 -0
- package/dist/mcp/tools/qx-analysis/analyze.js +1 -0
- package/dist/mcp/tools/requirements-validation/quality-criteria.js +10 -3
- package/dist/mcp/tools/security-compliance/scan.js +4 -2
- package/dist/mcp/tools/test-execution/e2e-execute.js +2 -2
- package/dist/mcp/tools/test-execution/execute.js +3 -2
- package/dist/mcp/types.d.ts +14 -0
- package/dist/memory/crdt/crdt-store.js +5 -0
- package/dist/memory/crdt/lww-register.js +12 -2
- package/dist/optimization/early-exit-token-optimizer.js +3 -1
- package/dist/planning/goap-planner.js +5 -0
- package/dist/planning/plan-executor.js +5 -0
- package/dist/routing/advisor/redaction.js +22 -2
- package/dist/shared/io/confined-read.d.ts +74 -0
- package/dist/shared/io/confined-read.js +256 -0
- package/dist/shared/io/file-reader.d.ts +6 -6
- package/dist/shared/io/file-reader.js +16 -42
- package/dist/shared/llm/providers/claude-code.js +4 -1
- package/dist/shared/llm/providers/response-deadline.js +16 -2
- package/dist/shared/native-module-errors.d.ts +51 -0
- package/dist/shared/native-module-errors.js +129 -0
- package/dist/shared/safe-db.js +14 -4
- package/dist/shared/security/osv-client.js +4 -1
- package/dist/shared/types/index.js +3 -1
- package/dist/shared/types/test-frameworks.js +2 -2
- package/dist/strange-loop/infra-healing/infra-aware-agent-provider.js +8 -1
- package/dist/sync/readers/json-reader.js +2 -1
- package/dist/validation/anchor-set.d.ts +6 -0
- package/dist/validation/anchor-set.js +9 -1
- package/dist/validation/quality-gate-runner.d.ts +7 -1
- package/dist/validation/quality-gate-runner.js +3 -3
- package/package.json +3 -3
- package/dist/cli/chunks/adapter-TR5SLAZC.js +0 -2
- package/dist/cli/chunks/aqe-learning-engine-DXWKCHY2.js +0 -2
- package/dist/cli/chunks/base-GTB6POYE.js +0 -2
- package/dist/cli/chunks/browser-workflow-MSBOLYUY.js +0 -2
- package/dist/cli/chunks/chunk-4SJYIX54.js +0 -3
- package/dist/cli/chunks/chunk-6P7424AO.js +0 -21
- package/dist/cli/chunks/chunk-6X5DHU6Q.js +0 -14
- package/dist/cli/chunks/chunk-CMBLM26R.js +0 -2
- package/dist/cli/chunks/chunk-DKAC3E3B.js +0 -3
- package/dist/cli/chunks/chunk-DURHK377.js +0 -742
- package/dist/cli/chunks/chunk-FPUDRSFJ.js +0 -180
- package/dist/cli/chunks/chunk-G5I6KGMW.js +0 -59
- package/dist/cli/chunks/chunk-HOZUDE4C.js +0 -2
- package/dist/cli/chunks/chunk-N6PIIK6G.js +0 -3
- package/dist/cli/chunks/chunk-NSHU347M.js +0 -2
- package/dist/cli/chunks/chunk-PPSAMXYN.js +0 -13
- package/dist/cli/chunks/chunk-TYFZXDGZ.js +0 -4
- package/dist/cli/chunks/chunk-U4OICXV2.js +0 -6
- package/dist/cli/chunks/chunk-WSF24I3D.js +0 -2
- package/dist/cli/chunks/chunk-XBVUVFJK.js +0 -4
- package/dist/cli/chunks/chunk-XUZDBQ5X.js +0 -6
- package/dist/cli/chunks/chunk-YBSBABOS.js +0 -2
- package/dist/cli/chunks/chunk-ZG5666GJ.js +0 -2
- package/dist/cli/chunks/ci-MSKMVH5X.js +0 -81
- package/dist/cli/chunks/client-POSVREVS.js +0 -2
- package/dist/cli/chunks/core-handlers-V243GY7X.js +0 -2
- package/dist/cli/chunks/coverage-B7MCGNTE.js +0 -49
- package/dist/cli/chunks/cross-domain-router-N3AIEM3B.js +0 -2
- package/dist/cli/chunks/dream-UA7MKOPQ.js +0 -2
- package/dist/cli/chunks/file-discovery-YCMNKZAK.js +0 -2
- package/dist/cli/chunks/fleet-2Y3ZE6CE.js +0 -46
- package/dist/cli/chunks/heartbeat-scheduler-QH5V6G2P.js +0 -2
- package/dist/cli/chunks/hnsw-adapter-OJNFAGJS.js +0 -2
- package/dist/cli/chunks/hnsw-index-DFUNARVD.js +0 -2
- package/dist/cli/chunks/hybrid-backend-SSGQQEQ2.js +0 -2
- package/dist/cli/chunks/impact-analyzer-CRGCA7ZD.js +0 -2
- package/dist/cli/chunks/init-wizard-NIMZ4J55.js +0 -2
- package/dist/cli/chunks/kernel-JQK7PRAI.js +0 -2
- package/dist/cli/chunks/knowledge-graph-YPVVIKEU.js +0 -2
- package/dist/cli/chunks/llm-router-service-5OGAUOXF.js +0 -2
- package/dist/cli/chunks/load-test-UKNV5MWW.js +0 -2
- package/dist/cli/chunks/memory-backend-ZW4BTRNK.js +0 -2
- package/dist/cli/chunks/memory-handlers-FCXN437E.js +0 -2
- package/dist/cli/chunks/pattern-null-store-4DUV6MQC.js +0 -2
- package/dist/cli/chunks/project-root-JCAUNL6O.js +0 -2
- package/dist/cli/chunks/protocol-executor-RNZNZP3A.js +0 -2
- package/dist/cli/chunks/qe-reasoning-bank-WK6TQOG2.js +0 -2
- package/dist/cli/chunks/queen-coordinator-4452SXZQ.js +0 -2
- package/dist/cli/chunks/real-embeddings-RWGOVOXO.js +0 -2
- package/dist/cli/chunks/router-3DIS5X4R.js +0 -2
- package/dist/cli/chunks/routing-feedback-OPXRCXM7.js +0 -2
- package/dist/cli/chunks/rvf-dual-writer-JL6T727I.js +0 -2
- package/dist/cli/chunks/rvf-migration-adapter-V7IBDUCS.js +0 -2
- package/dist/cli/chunks/rvf-native-adapter-O3UQTEBK.js +0 -2
- package/dist/cli/chunks/safe-db-EVB4ZC7T.js +0 -2
- package/dist/cli/chunks/schedule-ORDDXXY4.js +0 -2
- package/dist/cli/chunks/scheduler-XFLJSFIU.js +0 -2
- package/dist/cli/chunks/sqlite-persistence-Y7B42CJ3.js +0 -2
- package/dist/cli/chunks/task-handlers-KPWAEMKH.js +0 -9
- package/dist/cli/chunks/test-runner-process-3XZUYST2.js +0 -2
- package/dist/cli/chunks/tree-sitter-wasm-parser-YTBCBHUO.js +0 -2
- package/dist/cli/chunks/unified-memory-EHD4VNFW.js +0 -2
- package/dist/cli/chunks/unified-memory-hnsw-ZODGM4UK.js +0 -2
- package/dist/cli/chunks/unified-persistence-MHSI7ABK.js +0 -2
- package/dist/cli/chunks/visual-security-54MLFKWY.js +0 -2
- package/dist/cli/chunks/witness-chain-LC6Q2W27.js +0 -2
- package/dist/cli/chunks/witness-chain-QUIBAF3W.js +0 -2
- package/dist/cli/chunks/workflow-orchestrator-UKHEJVSK.js +0 -2
|
@@ -8,7 +8,10 @@
|
|
|
8
8
|
*
|
|
9
9
|
* - measured — an instrumented report covers the target: judged on the
|
|
10
10
|
* metrics the report collected (an uncollected metric is null,
|
|
11
|
-
* never 0%, and is left out of the threshold)
|
|
11
|
+
* never 0%, and is left out of the threshold). When target
|
|
12
|
+
* files are missing from the report, or the report is older
|
|
13
|
+
* than the sources, the evidence is insufficient (#1154): the
|
|
14
|
+
* threshold is not met and the exit code is 3;
|
|
12
15
|
* - unmeasured — the report has no entry for the target, the runner ran 0
|
|
13
16
|
* tests, or only test files were reported: no figure, exit 3;
|
|
14
17
|
* - estimate — no report exists, so the CLI shows a labelled STATIC
|
|
@@ -20,6 +23,7 @@ import chalk from 'chalk';
|
|
|
20
23
|
import { walkSourceFiles } from './file-discovery.js';
|
|
21
24
|
import { buildCoverageData, summarizeCoverage } from './coverage-data.js';
|
|
22
25
|
import { describeNoData, reconcileRecommendations, resolveExistingCoverage, thresholdVerdict, } from '../../coordination/handlers/coverage-target.js';
|
|
26
|
+
import { describeEvidence } from '../../coordination/handlers/coverage-evidence.js';
|
|
23
27
|
/** `aqe coverage` exit code when no coverage measurement exists for the target (#995). */
|
|
24
28
|
export const EXIT_UNMEASURED = 3;
|
|
25
29
|
/** Provenance labels, the same vocabulary as MCP `coverage_analyze_sublinear`. */
|
|
@@ -46,8 +50,12 @@ export async function resolveCliCoverageData(targetPath, log = message => consol
|
|
|
46
50
|
if (existing.status === 'evaluated') {
|
|
47
51
|
const { evaluation, projectRoot } = existing;
|
|
48
52
|
if (evaluation.status === 'measured') {
|
|
49
|
-
const files = evaluation
|
|
50
|
-
|
|
53
|
+
const { files, evidence } = evaluation;
|
|
54
|
+
const data = {
|
|
55
|
+
files, summary: summarizeCoverage(files), instrumented: true,
|
|
56
|
+
...(evidence.unmeasuredFiles.length > 0 ? { unmeasuredFiles: evidence.unmeasuredFiles } : {}),
|
|
57
|
+
};
|
|
58
|
+
return { kind: 'data', data, projectRoot, evidence };
|
|
51
59
|
}
|
|
52
60
|
return { kind: 'no-data', reason: evaluation.reason, message: describeNoData(evaluation.reason, targetPath, projectRoot) };
|
|
53
61
|
}
|
|
@@ -104,12 +112,17 @@ export async function evaluateCliCoverage(api, targetPath, threshold, log) {
|
|
|
104
112
|
// #995 review NB5: a metric the report never collected is null — not 0 —
|
|
105
113
|
// and is left out of the threshold verdict (same rule as MCP).
|
|
106
114
|
const collected = metricsCollected(data);
|
|
107
|
-
const
|
|
115
|
+
const figures = thresholdVerdict(report.summary, threshold, collected);
|
|
116
|
+
// #1154: figures over part of the target, or from a stale report, never meet the threshold.
|
|
117
|
+
const insufficientEvidence = describeEvidence(resolved.evidence, resolved.projectRoot ?? targetPath);
|
|
118
|
+
const verdict = { ...figures, meetsThreshold: figures.meetsThreshold && insufficientEvidence.length === 0 };
|
|
108
119
|
return {
|
|
109
120
|
kind: 'measured',
|
|
110
121
|
data,
|
|
111
122
|
collected,
|
|
112
123
|
verdict,
|
|
124
|
+
insufficientEvidence,
|
|
125
|
+
...(resolved.evidence ? { evidence: resolved.evidence } : {}),
|
|
113
126
|
summary: {
|
|
114
127
|
...report.summary,
|
|
115
128
|
branch: collected.branch ? report.summary.branch : null,
|
|
@@ -117,16 +130,19 @@ export async function evaluateCliCoverage(api, targetPath, threshold, log) {
|
|
|
117
130
|
statement: collected.statement ? report.summary.statement : null,
|
|
118
131
|
},
|
|
119
132
|
// NB-A: the shortfall advice comes from the same verdict (shared with MCP).
|
|
120
|
-
recommendations: reconcileRecommendations(report.recommendations ?? [],
|
|
133
|
+
recommendations: reconcileRecommendations(report.recommendations ?? [], figures, threshold, collected),
|
|
121
134
|
};
|
|
122
135
|
}
|
|
123
136
|
/**
|
|
124
137
|
* Exit code: 0 meets (by more than 5%), 1 below / error, 2 within 5% above,
|
|
125
|
-
* 3 UNMEASURED (not in the report, 0 tests, test-only report, or estimate only)
|
|
138
|
+
* 3 UNMEASURED (not in the report, 0 tests, test-only report, or estimate only)
|
|
139
|
+
* or insufficient evidence (target files missing from the report, stale report).
|
|
126
140
|
*/
|
|
127
141
|
export function coverageExitCode(outcome, threshold) {
|
|
128
142
|
switch (outcome.kind) {
|
|
129
143
|
case 'measured': {
|
|
144
|
+
if (outcome.insufficientEvidence.length > 0)
|
|
145
|
+
return EXIT_UNMEASURED;
|
|
130
146
|
const { overall, meetsThreshold } = outcome.verdict;
|
|
131
147
|
if (!meetsThreshold)
|
|
132
148
|
return 1;
|
|
@@ -158,6 +174,10 @@ export function coverageJson(outcome, threshold, target) {
|
|
|
158
174
|
functionDataCollected: outcome.collected.function,
|
|
159
175
|
statementDataCollected: outcome.collected.statement,
|
|
160
176
|
...(outcome.data.unmeasuredFiles?.length ? { unmeasuredFiles: outcome.data.unmeasuredFiles } : {}),
|
|
177
|
+
...(outcome.evidence ? { evidenceStatus: outcome.evidence.status } : {}),
|
|
178
|
+
...(outcome.evidence?.stale ? { staleReport: outcome.evidence.stale } : {}),
|
|
179
|
+
...(outcome.insufficientEvidence.length > 0
|
|
180
|
+
? { warning: `INSUFFICIENT EVIDENCE: ${outcome.insufficientEvidence.join('; ')}` } : {}),
|
|
161
181
|
};
|
|
162
182
|
case 'estimate':
|
|
163
183
|
return {
|
|
@@ -17,6 +17,11 @@ export interface FleetOperationTask {
|
|
|
17
17
|
domain: DomainName;
|
|
18
18
|
type: string;
|
|
19
19
|
payload: Record<string, unknown>;
|
|
20
|
+
/**
|
|
21
|
+
* #1154: why the input cannot support a passing verdict (target files missing
|
|
22
|
+
* from the coverage report, a stale report). The verdict fails while non-empty.
|
|
23
|
+
*/
|
|
24
|
+
insufficientEvidence?: string[];
|
|
20
25
|
}
|
|
21
26
|
export type FleetOperationPlan = {
|
|
22
27
|
success: true;
|
|
@@ -15,6 +15,7 @@ import { extname, resolve } from 'node:path';
|
|
|
15
15
|
import { walkSourceFiles } from './file-discovery.js';
|
|
16
16
|
import { summarizeCoverage } from './coverage-data.js';
|
|
17
17
|
import { describeNoData, resolveExistingCoverage } from '../../coordination/handlers/coverage-target.js';
|
|
18
|
+
import { describeEvidence } from '../../coordination/handlers/coverage-evidence.js';
|
|
18
19
|
import { MAX_SAST_FILE_BYTES } from '../../domains/security-compliance/sast-path-guard.js';
|
|
19
20
|
export const FLEET_OPERATIONS = ['test', 'analyze', 'scan'];
|
|
20
21
|
/** Coverage threshold `analyze` judges against, as `aqe coverage` does by default. */
|
|
@@ -61,9 +62,14 @@ export async function planFleetOperation(operation, target) {
|
|
|
61
62
|
if (evaluation.status !== 'measured')
|
|
62
63
|
return refuse(describeNoData(evaluation.reason, target, projectRoot));
|
|
63
64
|
const coverageData = { files: evaluation.files, summary: summarizeCoverage(evaluation.files) };
|
|
65
|
+
const insufficientEvidence = describeEvidence(evaluation.evidence, projectRoot);
|
|
64
66
|
return {
|
|
65
67
|
success: true,
|
|
66
|
-
task: {
|
|
68
|
+
task: {
|
|
69
|
+
domain: 'coverage-analysis', type: 'analyze-coverage',
|
|
70
|
+
payload: { coverageData, threshold: FLEET_COVERAGE_THRESHOLD },
|
|
71
|
+
...(insufficientEvidence.length > 0 ? { insufficientEvidence } : {}),
|
|
72
|
+
},
|
|
67
73
|
};
|
|
68
74
|
}
|
|
69
75
|
}
|
|
@@ -8,7 +8,8 @@
|
|
|
8
8
|
* - test fails when no test was generated or a generated test failed
|
|
9
9
|
* the test quality gate;
|
|
10
10
|
* - analyze fails when coverage over the collected metrics is below the
|
|
11
|
-
* threshold (an uncollected metric is not counted as 0%)
|
|
11
|
+
* threshold (an uncollected metric is not counted as 0%), or when
|
|
12
|
+
* the report leaves target files unmeasured or is stale (#1154).
|
|
12
13
|
* A result without the expected shape fails rather than passing unread.
|
|
13
14
|
*/
|
|
14
15
|
import { type FleetOperation } from './fleet-operation.js';
|
|
@@ -22,10 +23,11 @@ export interface FleetResultSummary {
|
|
|
22
23
|
export declare function summarizeFleetResult(operation: FleetOperation, result: unknown): FleetResultSummary;
|
|
23
24
|
/**
|
|
24
25
|
* Print each distinct worker result once and the verdict over all workers.
|
|
25
|
-
*
|
|
26
|
+
* `insufficientEvidence` (from the operation's plan) fails the verdict whatever
|
|
27
|
+
* the workers returned. Returns whether the operation passed.
|
|
26
28
|
*/
|
|
27
29
|
export declare function reportFleetVerdict(operation: FleetOperation, workers: ReadonlyArray<{
|
|
28
30
|
success: boolean;
|
|
29
31
|
result: unknown;
|
|
30
|
-
}>, log?: (line: string) => void): boolean;
|
|
32
|
+
}>, log?: (line: string) => void, insufficientEvidence?: readonly string[]): boolean;
|
|
31
33
|
//# sourceMappingURL=fleet-result.d.ts.map
|
|
@@ -8,7 +8,8 @@
|
|
|
8
8
|
* - test fails when no test was generated or a generated test failed
|
|
9
9
|
* the test quality gate;
|
|
10
10
|
* - analyze fails when coverage over the collected metrics is below the
|
|
11
|
-
* threshold (an uncollected metric is not counted as 0%)
|
|
11
|
+
* threshold (an uncollected metric is not counted as 0%), or when
|
|
12
|
+
* the report leaves target files unmeasured or is stale (#1154).
|
|
12
13
|
* A result without the expected shape fails rather than passing unread.
|
|
13
14
|
*/
|
|
14
15
|
import chalk from 'chalk';
|
|
@@ -97,9 +98,10 @@ export function summarizeFleetResult(operation, result) {
|
|
|
97
98
|
}
|
|
98
99
|
/**
|
|
99
100
|
* Print each distinct worker result once and the verdict over all workers.
|
|
100
|
-
*
|
|
101
|
+
* `insufficientEvidence` (from the operation's plan) fails the verdict whatever
|
|
102
|
+
* the workers returned. Returns whether the operation passed.
|
|
101
103
|
*/
|
|
102
|
-
export function reportFleetVerdict(operation, workers, log = line => console.log(line)) {
|
|
104
|
+
export function reportFleetVerdict(operation, workers, log = line => console.log(line), insufficientEvidence = []) {
|
|
103
105
|
const summaries = workers.filter(w => w.success).map(w => summarizeFleetResult(operation, w.result));
|
|
104
106
|
const shown = new Set();
|
|
105
107
|
for (const summary of summaries) {
|
|
@@ -111,8 +113,12 @@ export function reportFleetVerdict(operation, workers, log = line => console.log
|
|
|
111
113
|
for (const line of summary.lines)
|
|
112
114
|
log(` ${line}`);
|
|
113
115
|
}
|
|
116
|
+
for (const reason of insufficientEvidence)
|
|
117
|
+
log(chalk.yellow(` Evidence: ${reason}`));
|
|
114
118
|
const incomplete = workers.filter(w => !w.success).length;
|
|
115
119
|
const reasons = [...new Set(summaries.flatMap(s => s.reasons))];
|
|
120
|
+
if (insufficientEvidence.length > 0)
|
|
121
|
+
reasons.push('insufficient evidence: the coverage report is incomplete or stale for the target');
|
|
116
122
|
if (incomplete > 0)
|
|
117
123
|
reasons.unshift(`${incomplete} of ${workers.length} workers did not complete`);
|
|
118
124
|
log('');
|
|
@@ -21,6 +21,14 @@ export interface FleetProgressOptions {
|
|
|
21
21
|
showPercentage?: boolean;
|
|
22
22
|
format?: string;
|
|
23
23
|
}
|
|
24
|
+
/** Options for {@link FleetProgressManager.stop}. */
|
|
25
|
+
export interface FleetProgressStopOptions {
|
|
26
|
+
/**
|
|
27
|
+
* The operation's verdict failed (#1168). The agents still completed, but
|
|
28
|
+
* the summary line must not call that a success.
|
|
29
|
+
*/
|
|
30
|
+
verdictFailed?: boolean;
|
|
31
|
+
}
|
|
24
32
|
export interface SpinnerOptions {
|
|
25
33
|
text: string;
|
|
26
34
|
color?: 'cyan' | 'green' | 'yellow' | 'red' | 'blue' | 'magenta' | 'white';
|
|
@@ -43,7 +51,7 @@ export declare class FleetProgressManager {
|
|
|
43
51
|
/**
|
|
44
52
|
* Start the fleet progress display
|
|
45
53
|
*/
|
|
46
|
-
start(
|
|
54
|
+
start(_totalAgents: number): void;
|
|
47
55
|
/**
|
|
48
56
|
* Add an agent to track
|
|
49
57
|
*/
|
|
@@ -63,11 +71,17 @@ export declare class FleetProgressManager {
|
|
|
63
71
|
/**
|
|
64
72
|
* Stop the progress display
|
|
65
73
|
*/
|
|
66
|
-
stop(): void;
|
|
74
|
+
stop(options?: FleetProgressStopOptions): void;
|
|
67
75
|
/**
|
|
68
76
|
* Update the fleet-level progress bar
|
|
69
77
|
*/
|
|
70
78
|
private updateFleetProgress;
|
|
79
|
+
/**
|
|
80
|
+
* Create a bar and apply its payload. Without a TTY, cli-progress's
|
|
81
|
+
* MultiBar.create() returns before starting the bar, dropping the payload,
|
|
82
|
+
* so the final render printed a literal `{name}` (#1168).
|
|
83
|
+
*/
|
|
84
|
+
private createBar;
|
|
71
85
|
private getAgentNameDisplay;
|
|
72
86
|
private getStatusIcon;
|
|
73
87
|
private truncateName;
|
|
@@ -13,6 +13,7 @@ import { getCLIConfig, shouldUseColors } from '../config/cli-config.js';
|
|
|
13
13
|
// ============================================================================
|
|
14
14
|
// Fleet Progress Manager - Multi-bar progress for parallel agents
|
|
15
15
|
// ============================================================================
|
|
16
|
+
const FLEET_BAR_NAME = chalk.white('Fleet Progress'.padEnd(30));
|
|
16
17
|
export class FleetProgressManager {
|
|
17
18
|
multiBar;
|
|
18
19
|
agentBars = new Map();
|
|
@@ -31,10 +32,12 @@ export class FleetProgressManager {
|
|
|
31
32
|
showPercentage: true,
|
|
32
33
|
...options,
|
|
33
34
|
};
|
|
34
|
-
// Custom format for multi-bar display (respects color config)
|
|
35
|
+
// Custom format for multi-bar display (respects color config).
|
|
36
|
+
// `{eta}` is a cli-progress built-in that overrides the payload, so the
|
|
37
|
+
// formatted ETA travels as `{etaText}` (#1168).
|
|
35
38
|
const barColor = useColors ? chalk.cyan('{bar}') : '{bar}';
|
|
36
39
|
const format = this.options.format ||
|
|
37
|
-
`{name} ${barColor} {percentage}% | {status} {
|
|
40
|
+
`{name} ${barColor} {percentage}% | {status} {etaText}`;
|
|
38
41
|
this.multiBar = new MultiBar({
|
|
39
42
|
clearOnComplete: false,
|
|
40
43
|
hideCursor: true,
|
|
@@ -48,15 +51,15 @@ export class FleetProgressManager {
|
|
|
48
51
|
/**
|
|
49
52
|
* Start the fleet progress display
|
|
50
53
|
*/
|
|
51
|
-
start(
|
|
54
|
+
start(_totalAgents) {
|
|
52
55
|
this.isActive = true;
|
|
53
56
|
this.startTime = Date.now();
|
|
54
57
|
// Create fleet-level progress bar
|
|
55
58
|
console.log(chalk.blue(`\n${this.options.title}\n`));
|
|
56
|
-
this.fleetBar = this.
|
|
57
|
-
name:
|
|
59
|
+
this.fleetBar = this.createBar(0, {
|
|
60
|
+
name: FLEET_BAR_NAME,
|
|
58
61
|
status: '',
|
|
59
|
-
|
|
62
|
+
etaText: '',
|
|
60
63
|
});
|
|
61
64
|
}
|
|
62
65
|
/**
|
|
@@ -66,10 +69,10 @@ export class FleetProgressManager {
|
|
|
66
69
|
if (!this.isActive)
|
|
67
70
|
return;
|
|
68
71
|
this.agentStates.set(agent.id, agent);
|
|
69
|
-
const bar = this.
|
|
72
|
+
const bar = this.createBar(agent.progress, {
|
|
70
73
|
name: chalk.gray(this.truncateName(agent.name, 30).padEnd(30)),
|
|
71
74
|
status: this.getStatusIcon(agent.status),
|
|
72
|
-
|
|
75
|
+
etaText: agent.eta ? this.formatEta(agent.eta) : '',
|
|
73
76
|
});
|
|
74
77
|
this.agentBars.set(agent.id, bar);
|
|
75
78
|
this.updateFleetProgress();
|
|
@@ -96,7 +99,7 @@ export class FleetProgressManager {
|
|
|
96
99
|
bar.update(state.progress, {
|
|
97
100
|
name: this.getAgentNameDisplay(state),
|
|
98
101
|
status: this.getStatusIcon(state.status),
|
|
99
|
-
|
|
102
|
+
etaText: state.eta ? this.formatEta(state.eta) : '',
|
|
100
103
|
});
|
|
101
104
|
this.updateFleetProgress();
|
|
102
105
|
}
|
|
@@ -115,14 +118,14 @@ export class FleetProgressManager {
|
|
|
115
118
|
bar.update(state.progress, {
|
|
116
119
|
name: this.getAgentNameDisplay(state),
|
|
117
120
|
status: this.getStatusIcon(state.status),
|
|
118
|
-
|
|
121
|
+
etaText: '',
|
|
119
122
|
});
|
|
120
123
|
this.updateFleetProgress();
|
|
121
124
|
}
|
|
122
125
|
/**
|
|
123
126
|
* Stop the progress display
|
|
124
127
|
*/
|
|
125
|
-
stop() {
|
|
128
|
+
stop(options = {}) {
|
|
126
129
|
if (!this.isActive)
|
|
127
130
|
return;
|
|
128
131
|
this.isActive = false;
|
|
@@ -135,7 +138,10 @@ export class FleetProgressManager {
|
|
|
135
138
|
const total = this.agentStates.size;
|
|
136
139
|
const duration = Date.now() - this.startTime;
|
|
137
140
|
console.log('');
|
|
138
|
-
if (failed === 0) {
|
|
141
|
+
if (failed === 0 && options.verdictFailed) {
|
|
142
|
+
console.log(chalk.yellow(`All ${completed}/${total} agents completed (${this.formatDuration(duration)})`));
|
|
143
|
+
}
|
|
144
|
+
else if (failed === 0) {
|
|
139
145
|
console.log(chalk.green(`All ${completed}/${total} agents completed successfully (${this.formatDuration(duration)})`));
|
|
140
146
|
}
|
|
141
147
|
else {
|
|
@@ -155,10 +161,21 @@ export class FleetProgressManager {
|
|
|
155
161
|
const completed = agents.filter(a => a.status === 'completed').length;
|
|
156
162
|
const running = agents.filter(a => a.status === 'running').length;
|
|
157
163
|
this.fleetBar.update(avgProgress, {
|
|
164
|
+
name: FLEET_BAR_NAME,
|
|
158
165
|
status: chalk.gray(`${completed}/${agents.length} complete, ${running} running`),
|
|
159
|
-
|
|
166
|
+
etaText: this.options.showEta ? this.estimateFleetEta(agents) : '',
|
|
160
167
|
});
|
|
161
168
|
}
|
|
169
|
+
/**
|
|
170
|
+
* Create a bar and apply its payload. Without a TTY, cli-progress's
|
|
171
|
+
* MultiBar.create() returns before starting the bar, dropping the payload,
|
|
172
|
+
* so the final render printed a literal `{name}` (#1168).
|
|
173
|
+
*/
|
|
174
|
+
createBar(value, payload) {
|
|
175
|
+
const bar = this.multiBar.create(100, value, payload);
|
|
176
|
+
bar.update(value, payload);
|
|
177
|
+
return bar;
|
|
178
|
+
}
|
|
162
179
|
getAgentNameDisplay(agent) {
|
|
163
180
|
const name = this.truncateName(agent.name, 26);
|
|
164
181
|
switch (agent.status) {
|
|
@@ -448,7 +465,7 @@ export class EtaEstimator {
|
|
|
448
465
|
* Create a simple spinner for async operations
|
|
449
466
|
*/
|
|
450
467
|
export function withSpinner(text, operation) {
|
|
451
|
-
const {
|
|
468
|
+
const { succeed, fail } = createTimedSpinner(text);
|
|
452
469
|
return operation()
|
|
453
470
|
.then((result) => {
|
|
454
471
|
succeed();
|
|
@@ -12,6 +12,7 @@ import { DEFAULT_CONSENSUS_CONFIG, } from './interfaces.js';
|
|
|
12
12
|
import { buildVerificationPrompt, parseVerificationResponse, buildModelVote, } from './model-provider.js';
|
|
13
13
|
import { ok, err } from '../../shared/types/index.js';
|
|
14
14
|
import { toErrorMessage, toError } from '../../shared/error-utils.js';
|
|
15
|
+
import { createSafeRecord } from '../../shared/utils/safe-record.js';
|
|
15
16
|
import { createStrategy, } from './strategies/index.js';
|
|
16
17
|
import { createSycophancyScorer } from './sycophancy-scorer.js';
|
|
17
18
|
// ============================================================================
|
|
@@ -268,7 +269,8 @@ export class ConsensusEngineImpl {
|
|
|
268
269
|
averageExecutionTime: 0,
|
|
269
270
|
totalCost: 0,
|
|
270
271
|
humanReviewCount: 0,
|
|
271
|
-
|
|
272
|
+
// #1157: keyed by provider model ids.
|
|
273
|
+
modelStats: createSafeRecord(),
|
|
272
274
|
};
|
|
273
275
|
}
|
|
274
276
|
/**
|
|
@@ -4,7 +4,6 @@
|
|
|
4
4
|
* Extracted from task-executor.ts registerHandlers().
|
|
5
5
|
* Covers: index-code, predict-defects
|
|
6
6
|
*/
|
|
7
|
-
import * as fs from 'fs/promises';
|
|
8
7
|
import { randomUUID } from 'node:crypto';
|
|
9
8
|
import { prunePredictionHistory } from '../../domains/defect-intelligence/prediction-history.js';
|
|
10
9
|
import * as path from 'path';
|
|
@@ -15,6 +14,7 @@ import { resolveProjectRootFromPaths } from '../../domains/code-intelligence/pro
|
|
|
15
14
|
import { nothingIndexedError } from '../../domains/code-intelligence/index-path-guard.js';
|
|
16
15
|
import { createLogger } from '../../logging/logger-factory.js';
|
|
17
16
|
import { requirePayloadPath } from '../../shared/io/payload-path-guard.js';
|
|
17
|
+
import { readConfinedText } from '../../shared/io/confined-read.js';
|
|
18
18
|
const logger = createLogger('CodeIntelligenceHandlers');
|
|
19
19
|
async function collectProjectMetricsForTarget(ctx, targetPath, indexedFiles) {
|
|
20
20
|
if (!ctx.getCodeIntelligenceCoordinator)
|
|
@@ -177,7 +177,8 @@ export function registerCodeIntelligenceHandlers(ctx) {
|
|
|
177
177
|
let filesSkipped = 0;
|
|
178
178
|
for (const filePath of sourceFiles) {
|
|
179
179
|
try {
|
|
180
|
-
|
|
180
|
+
// #1161: validate the opened descriptor, not the name listed earlier.
|
|
181
|
+
const content = await readConfinedText(filePath, { outsideRoot: 'allow' });
|
|
181
182
|
const lines = content.split('\n');
|
|
182
183
|
const lineCount = lines.length;
|
|
183
184
|
// Calculate complexity indicators from real code
|
|
@@ -141,6 +141,8 @@ export declare function isRustProject(targetPath: string): boolean;
|
|
|
141
141
|
export declare function collectRustCoverage(targetPath: string, options?: {
|
|
142
142
|
timeoutMs?: number;
|
|
143
143
|
}): Promise<CollectedCoverage | null>;
|
|
144
|
+
/** Production source files under a directory (test, build and vendored directories skipped). */
|
|
145
|
+
export declare function walkSourceFiles(targetPath: string): string[];
|
|
144
146
|
/**
|
|
145
147
|
* Static coverage estimate from source shape, for when no instrumentation could
|
|
146
148
|
* be run.
|
|
@@ -19,6 +19,7 @@
|
|
|
19
19
|
* caller.
|
|
20
20
|
*/
|
|
21
21
|
import * as fs from 'fs';
|
|
22
|
+
import { readConfinedTextSync } from '../../shared/io/confined-read.js';
|
|
22
23
|
import * as os from 'os';
|
|
23
24
|
import * as path from 'path';
|
|
24
25
|
import { parseLcovInfo } from './handler-utils.js';
|
|
@@ -501,7 +502,8 @@ function withRecomputedSummary(files) {
|
|
|
501
502
|
},
|
|
502
503
|
};
|
|
503
504
|
}
|
|
504
|
-
|
|
505
|
+
/** Production source files under a directory (test, build and vendored directories skipped). */
|
|
506
|
+
export function walkSourceFiles(targetPath) {
|
|
505
507
|
const found = [];
|
|
506
508
|
// Classification is relative to the analysis root (see isTestPath).
|
|
507
509
|
const rootDir = targetPath;
|
|
@@ -558,8 +560,9 @@ export function buildEstimatedCoverage(targetPath) {
|
|
|
558
560
|
return null;
|
|
559
561
|
const files = sourceFiles.map(filePath => {
|
|
560
562
|
let content = '';
|
|
563
|
+
// #1161: a source file linked out of the project is treated as unreadable.
|
|
561
564
|
try {
|
|
562
|
-
content =
|
|
565
|
+
content = readConfinedTextSync(filePath, { outsideRoot: 'allow' });
|
|
563
566
|
}
|
|
564
567
|
catch { /* unreadable — treat as empty */ }
|
|
565
568
|
const ext = path.extname(filePath);
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Coverage evidence: is a report complete and current for its target? (#1154)
|
|
3
|
+
*
|
|
4
|
+
* A report judged over only the files it happens to contain says nothing
|
|
5
|
+
* about the target's other files. `aqe fleet run analyze --target src` printed
|
|
6
|
+
* "100% over 1 files" and "Verdict: PASSED" from a report that listed
|
|
7
|
+
* `src/math.js` while `src/unsafe.js` had no measurement at all, and a report
|
|
8
|
+
* written before the sources last changed was judged as if it were current.
|
|
9
|
+
*
|
|
10
|
+
* This module answers two questions for every caller of the shared resolver
|
|
11
|
+
* (MCP `coverage_analyze_sublinear` / `task_orchestrate`, `aqe coverage`,
|
|
12
|
+
* `aqe ci`, `aqe fleet run analyze`):
|
|
13
|
+
* 1. Which production source files under the target are not in the report?
|
|
14
|
+
* They are UNMEASURED: not 0%, and not left out silently.
|
|
15
|
+
* 2. Is the report older than source files it is judged against? (stale)
|
|
16
|
+
* Either one makes the evidence insufficient: no verdict may pass on it.
|
|
17
|
+
*/
|
|
18
|
+
import type { FileCoverage } from '../../domains/coverage-analysis/interfaces';
|
|
19
|
+
/** The report is older than these source files. */
|
|
20
|
+
export interface StaleReport {
|
|
21
|
+
reportPath: string;
|
|
22
|
+
reportModified: string;
|
|
23
|
+
newerFiles: string[];
|
|
24
|
+
}
|
|
25
|
+
export interface CoverageEvidence {
|
|
26
|
+
/** `insufficient-evidence` when any target file is unmeasured or the report is stale. */
|
|
27
|
+
status: 'complete' | 'insufficient-evidence';
|
|
28
|
+
/** Production source files under the target with no entry in the report (absolute paths). */
|
|
29
|
+
unmeasuredFiles: string[];
|
|
30
|
+
/** Production source files under the target, measured or not. */
|
|
31
|
+
targetFiles: number;
|
|
32
|
+
stale?: StaleReport;
|
|
33
|
+
/** The coverage config whose include/exclude scoped `unmeasuredFiles`, if any. */
|
|
34
|
+
coverageScope?: {
|
|
35
|
+
source: string;
|
|
36
|
+
readable: boolean;
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Production source files under a directory `target` that the report has no
|
|
41
|
+
* entry for. Only files in a language the report covers count: a JS report
|
|
42
|
+
* does not make a Python helper script unmeasured. Files the project's coverage
|
|
43
|
+
* config leaves out (include/exclude) were never meant to be measured and do
|
|
44
|
+
* not count either.
|
|
45
|
+
*/
|
|
46
|
+
export declare function findUnmeasuredSourceFiles(reportFiles: FileCoverage[], projectRoot: string, target: string): {
|
|
47
|
+
targetFiles: string[];
|
|
48
|
+
unmeasured: string[];
|
|
49
|
+
coverageScope?: {
|
|
50
|
+
source: string;
|
|
51
|
+
readable: boolean;
|
|
52
|
+
};
|
|
53
|
+
};
|
|
54
|
+
/** Source files modified after the report was written; `undefined` when the report is current. */
|
|
55
|
+
export declare function findStaleness(reportPath: string, sourceFiles: string[]): StaleReport | undefined;
|
|
56
|
+
/**
|
|
57
|
+
* The evidence a report gives for `target`.
|
|
58
|
+
*
|
|
59
|
+
* `measuredFiles` are the report entries already scoped to the target.
|
|
60
|
+
* Completeness is checked only when `checkCompleteness` is set (a directory
|
|
61
|
+
* target, not a report file given as the target), staleness only when the
|
|
62
|
+
* report's path is known (not for a report the run just wrote).
|
|
63
|
+
*/
|
|
64
|
+
export declare function assessCoverageEvidence(report: {
|
|
65
|
+
files: FileCoverage[];
|
|
66
|
+
}, measuredFiles: FileCoverage[], projectRoot: string, target: string, options?: {
|
|
67
|
+
reportPath?: string;
|
|
68
|
+
checkCompleteness?: boolean;
|
|
69
|
+
}): CoverageEvidence;
|
|
70
|
+
/**
|
|
71
|
+
* Why the evidence is insufficient, one sentence per problem; empty when it is
|
|
72
|
+
* complete. Shared by MCP and CLI so the wording cannot drift.
|
|
73
|
+
*/
|
|
74
|
+
export declare function describeEvidence(evidence: CoverageEvidence | undefined, projectRoot: string): string[];
|
|
75
|
+
//# sourceMappingURL=coverage-evidence.d.ts.map
|