agentic-qe 3.15.11 → 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 +149 -0
- package/assets/skills/skills-manifest.json +1 -1
- package/dist/cli/bundle.js +6 -6
- package/dist/cli/chunks/adapter-HL7MOCQN.js +2 -0
- package/dist/cli/chunks/{agent-booster-wasm-TIDSQ3ZK.js → agent-booster-wasm-5VZCKTIJ.js} +2 -2
- package/dist/cli/chunks/{agent-handler-G3EPBVA7.js → agent-handler-K3C6CQCD.js} +2 -2
- package/dist/cli/chunks/{agent-memory-branch-ARC5C7GW.js → agent-memory-branch-NVFQ25WS.js} +2 -2
- package/dist/cli/chunks/aqe-learning-engine-OZ2DXB4G.js +2 -0
- package/dist/cli/chunks/{arena-K4I4QDXB.js → arena-QGWIJADQ.js} +2 -2
- package/dist/cli/chunks/{arena-36DTATJV.js → arena-TSZVDSXS.js} +4 -4
- package/dist/cli/chunks/{audit-WQSJSJZF.js → audit-KIEE2SHJ.js} +3 -3
- package/dist/cli/chunks/base-WIM7G3HC.js +2 -0
- package/dist/cli/chunks/{better-sqlite3-BB4K67MT.js → better-sqlite3-BNB32NW3.js} +2 -2
- package/dist/cli/chunks/{brain-handler-CU3GOIU3.js → brain-handler-MPC5SPYI.js} +3 -3
- package/dist/cli/chunks/{branch-enumerator-NJQX7ZNB.js → branch-enumerator-LZ7UXKAY.js} +2 -2
- package/dist/cli/chunks/{browser-6YJF4FQW.js → browser-VDHAW4RK.js} +2 -2
- package/dist/cli/chunks/browser-workflow-QRKCFVR3.js +2 -0
- package/dist/cli/chunks/{chunk-V7DA4HAK.js → chunk-23PQF7NN.js} +1 -1
- package/dist/cli/chunks/{chunk-IENZSO3K.js → chunk-26672ISV.js} +2 -2
- package/dist/cli/chunks/{chunk-OURITHFV.js → chunk-2ASQRBK2.js} +2 -2
- package/dist/cli/chunks/{chunk-VBK2YAYY.js → chunk-2E2QO44T.js} +2 -2
- package/dist/cli/chunks/{chunk-NT7JRHMH.js → chunk-2IVE5AR3.js} +1 -1
- package/dist/cli/chunks/{chunk-672XOJDG.js → chunk-2JYUA27M.js} +1 -1
- package/dist/cli/chunks/{chunk-OHR7C777.js → chunk-2PPSS4JD.js} +2 -2
- package/dist/cli/chunks/{chunk-FUYOOKTH.js → chunk-32UTHIY5.js} +3 -3
- package/dist/cli/chunks/{chunk-UKKYMW3S.js → chunk-33I2ZP6E.js} +2 -2
- package/dist/cli/chunks/{chunk-76SNL7GU.js → chunk-35MIUSXQ.js} +2 -2
- package/dist/cli/chunks/{chunk-4X4MWMHB.js → chunk-35NW676P.js} +2 -2
- package/dist/cli/chunks/{chunk-BZPE3LDO.js → chunk-3EWQN37E.js} +2 -2
- package/dist/cli/chunks/{chunk-5N25I53C.js → chunk-3IU4LDZR.js} +2 -2
- package/dist/cli/chunks/{chunk-NKTWKYHB.js → chunk-47RMGDG4.js} +2 -2
- package/dist/cli/chunks/chunk-4A76VPU4.js +3 -0
- package/dist/cli/chunks/{chunk-4RH5I24Q.js → chunk-4CB3QPZM.js} +2 -2
- package/dist/cli/chunks/{chunk-U3LJNNVJ.js → chunk-4HWUECVD.js} +2 -2
- package/dist/cli/chunks/{chunk-T5KHJ3J7.js → chunk-4KUOYDY2.js} +2 -2
- package/dist/cli/chunks/{chunk-XNLIWQYE.js → chunk-4LWMAAWK.js} +2 -2
- package/dist/cli/chunks/{chunk-KKYO2NKV.js → chunk-4PU5GTZW.js} +2 -2
- package/dist/cli/chunks/{chunk-VWUZSNVC.js → chunk-4SA7M34P.js} +1 -1
- package/dist/cli/chunks/{chunk-5WYZHDIZ.js → chunk-4Y6OEBJZ.js} +1 -1
- package/dist/cli/chunks/{chunk-J4JMCZVA.js → chunk-5A66EGEW.js} +2 -2
- package/dist/cli/chunks/{chunk-HFFPYC4G.js → chunk-5ADXFUMO.js} +2 -2
- package/dist/cli/chunks/{chunk-KJCIMNHS.js → chunk-5S4UIDFK.js} +1 -1
- package/dist/cli/chunks/{chunk-YBBT3YYG.js → chunk-5TAEW5OV.js} +1 -1
- package/dist/cli/chunks/{chunk-FLU5FDSC.js → chunk-5Z23ZMXZ.js} +59 -59
- package/dist/cli/chunks/{chunk-YNOCQ2SL.js → chunk-65TH6RPD.js} +1 -1
- package/dist/cli/chunks/{chunk-XGPTZUKQ.js → chunk-66PXR3NI.js} +2 -2
- package/dist/cli/chunks/{chunk-ITPGWGQS.js → chunk-6E6HB4N4.js} +4 -4
- package/dist/cli/chunks/{chunk-EJPK7OTR.js → chunk-6QRI3JVE.js} +2 -2
- package/dist/cli/chunks/{chunk-ZP75ASUU.js → chunk-7DNR4KKR.js} +1 -1
- package/dist/cli/chunks/{chunk-V5AADCBC.js → chunk-7JFDLL2F.js} +1 -1
- package/dist/cli/chunks/chunk-7OEFBWAG.js +5 -0
- package/dist/cli/chunks/{chunk-EIDJNT5C.js → chunk-7QEUHNKO.js} +1 -1
- package/dist/cli/chunks/{chunk-7R5HC56U.js → chunk-7TA5MUPW.js} +1 -1
- package/dist/cli/chunks/{chunk-LCVEEII4.js → chunk-A2JCRXTK.js} +2 -2
- package/dist/cli/chunks/{chunk-JUMICXM6.js → chunk-A5Y7DAVQ.js} +2 -2
- package/dist/cli/chunks/{chunk-FZHSG75I.js → chunk-ADUAJIAU.js} +2 -2
- package/dist/cli/chunks/{chunk-TFW7CCKS.js → chunk-AJEXPFAB.js} +1 -1
- package/dist/cli/chunks/{chunk-JGJXXAS6.js → chunk-BC4T6SCV.js} +4 -4
- package/dist/cli/chunks/{chunk-4RAQ7PJA.js → chunk-BMG2JLSQ.js} +2 -2
- package/dist/cli/chunks/{chunk-Y7B5EUIJ.js → chunk-BOSMELJX.js} +2 -2
- package/dist/cli/chunks/{chunk-CIAL4YRY.js → chunk-BYRCB5JT.js} +2 -2
- package/dist/cli/chunks/{chunk-XS2XF3YG.js → chunk-C3YOVASQ.js} +1 -1
- package/dist/cli/chunks/{chunk-FL32MTKT.js → chunk-C74M4WUI.js} +2 -2
- package/dist/cli/chunks/{chunk-S6IYEBAI.js → chunk-CA5UNWQF.js} +2 -2
- package/dist/cli/chunks/{chunk-5MTWCCZJ.js → chunk-CDA5Z74H.js} +2 -2
- package/dist/cli/chunks/{chunk-DOFREOPQ.js → chunk-CPIBIR3X.js} +2 -2
- package/dist/cli/chunks/{chunk-UMVSWQNB.js → chunk-CU36D7TN.js} +2 -2
- package/dist/cli/chunks/{chunk-G4CKPWF6.js → chunk-DAUEK66C.js} +1 -1
- package/dist/cli/chunks/{chunk-2KFFEKSI.js → chunk-DRCBRUGN.js} +2 -2
- package/dist/cli/chunks/{chunk-EH2S6AOR.js → chunk-DZGPUGUG.js} +2 -2
- package/dist/cli/chunks/{chunk-HYXUN7BW.js → chunk-EF6OERRR.js} +1 -1
- package/dist/cli/chunks/{chunk-G77MLBDF.js → chunk-EN7GRVEQ.js} +2 -2
- package/dist/cli/chunks/{chunk-XDI5X3FR.js → chunk-ENGL7FIJ.js} +1 -1
- package/dist/cli/chunks/{chunk-HDNWSKHA.js → chunk-FAGKBOX2.js} +2 -2
- package/dist/cli/chunks/{chunk-FWSGPE3V.js → chunk-FNUFTWEO.js} +3 -3
- package/dist/cli/chunks/{chunk-AUUJBXWX.js → chunk-FZJCBSN4.js} +2 -2
- package/dist/cli/chunks/{chunk-ERN43HOX.js → chunk-G24SWTAX.js} +35 -35
- package/dist/cli/chunks/{chunk-VEEYL2CZ.js → chunk-G3AABG4Q.js} +2 -2
- package/dist/cli/chunks/{chunk-35M2X3C5.js → chunk-GJKZ7UQO.js} +2 -2
- package/dist/cli/chunks/{chunk-OV5RPLKV.js → chunk-GKFV6CUD.js} +2 -2
- package/dist/cli/chunks/{chunk-4HJKQIX5.js → chunk-HLGFHHWV.js} +2 -2
- package/dist/cli/chunks/{chunk-R5LGV6GZ.js → chunk-HM3LSFTY.js} +2 -2
- package/dist/cli/chunks/{chunk-M7XFBSIK.js → chunk-HSA5IGGW.js} +2 -2
- package/dist/cli/chunks/{chunk-GWJWSLDA.js → chunk-HZBXJFGN.js} +2 -2
- package/dist/cli/chunks/{chunk-4MUBW4RT.js → chunk-IA55PFLG.js} +2 -2
- package/dist/cli/chunks/{chunk-RBZCA7SD.js → chunk-ICKUINKD.js} +2 -2
- package/dist/cli/chunks/{chunk-KDI5JOYZ.js → chunk-IETBWYHW.js} +2 -2
- package/dist/cli/chunks/{chunk-325QCVDI.js → chunk-IL7GQNNE.js} +2 -2
- package/dist/cli/chunks/{chunk-BTVWA35P.js → chunk-INZARYUD.js} +2 -2
- package/dist/cli/chunks/{chunk-G2IJFNZS.js → chunk-IPA7K556.js} +2 -2
- package/dist/cli/chunks/{chunk-UTTSH4NH.js → chunk-IVTQF55W.js} +3 -3
- package/dist/cli/chunks/{chunk-2CW7VRPH.js → chunk-J7Y7ZBIT.js} +5 -5
- package/dist/cli/chunks/{chunk-M5RQ6U3G.js → chunk-JGIJPDGD.js} +2 -2
- package/dist/cli/chunks/{chunk-RQMCZQN2.js → chunk-JNXK47OL.js} +2 -2
- package/dist/cli/chunks/{chunk-X4J73KP3.js → chunk-JOWUS2X5.js} +1 -1
- package/dist/cli/chunks/{chunk-ZMC543GI.js → chunk-JR6CUKAI.js} +2 -2
- package/dist/cli/chunks/chunk-JRYWLOBD.js +21 -0
- package/dist/cli/chunks/{chunk-ETVAYGCB.js → chunk-JW5PDJ5O.js} +3 -3
- package/dist/cli/chunks/{chunk-OD5D4LSZ.js → chunk-K3A3NWT3.js} +2 -2
- package/dist/cli/chunks/{chunk-LPU6PAJE.js → chunk-KA5SHLMW.js} +2 -2
- package/dist/cli/chunks/{chunk-NPZOBSAN.js → chunk-KGA7VAI4.js} +2 -2
- package/dist/cli/chunks/{chunk-ZMHCMJ4J.js → chunk-KJDI5CHX.js} +2 -2
- package/dist/cli/chunks/{chunk-KSLLHFVY.js → chunk-L3PV7VXK.js} +1 -1
- package/dist/cli/chunks/{chunk-LD5CFK53.js → chunk-L7NGKANW.js} +2 -2
- package/dist/cli/chunks/{chunk-6NA3KZZT.js → chunk-LFBA735S.js} +7 -7
- package/dist/cli/chunks/{chunk-Z2EA7A4Z.js → chunk-MAJXZYGK.js} +1 -1
- package/dist/cli/chunks/{chunk-TCYSBC7Y.js → chunk-MCPEC6OO.js} +1 -1
- package/dist/cli/chunks/{chunk-LBX7M4LW.js → chunk-MCPXNUDK.js} +2 -2
- package/dist/cli/chunks/{chunk-5YLOLACR.js → chunk-MMEALJ4D.js} +2 -2
- package/dist/cli/chunks/{chunk-IOZRKXR5.js → chunk-MYF5CNGV.js} +2 -2
- package/dist/cli/chunks/{chunk-X3PZCXWG.js → chunk-MYUMJ2ZI.js} +1 -1
- package/dist/cli/chunks/{chunk-VYTILW4R.js → chunk-N7O3PF6Y.js} +2 -2
- package/dist/cli/chunks/{chunk-GVKVJJQX.js → chunk-NA3F6FEO.js} +2 -2
- package/dist/cli/chunks/{chunk-TL6OFMXF.js → chunk-NNBQZR73.js} +2 -2
- package/dist/cli/chunks/{chunk-KXS3Y2AX.js → chunk-NV74SICL.js} +2 -2
- package/dist/cli/chunks/chunk-NVRYELCY.js +13 -0
- package/dist/cli/chunks/{chunk-OH5V5EJW.js → chunk-NX4BCSOZ.js} +2 -2
- package/dist/cli/chunks/{chunk-XJKZ7FTR.js → chunk-O3IM4WRZ.js} +2 -2
- package/dist/cli/chunks/{chunk-3RHOPP7A.js → chunk-O4QJMANM.js} +1 -1
- package/dist/cli/chunks/{chunk-O4JAKWWM.js → chunk-OHVYINGM.js} +17 -17
- package/dist/cli/chunks/{chunk-APPZATXA.js → chunk-P5E26N2X.js} +2 -2
- package/dist/cli/chunks/{chunk-5ERFHEEE.js → chunk-P7UFJ6DO.js} +1 -1
- package/dist/cli/chunks/{chunk-5MNASJOH.js → chunk-PGSJBXTD.js} +2 -2
- package/dist/cli/chunks/{chunk-WCAVIJ64.js → chunk-PT2NXS43.js} +1 -1
- package/dist/cli/chunks/{chunk-EWPUQCN4.js → chunk-PTBOLBM4.js} +2 -2
- package/dist/cli/chunks/{chunk-EK5GMOSO.js → chunk-PX5OPXY6.js} +1 -1
- package/dist/cli/chunks/chunk-QCPVUNN3.js +2 -0
- package/dist/cli/chunks/{chunk-K2HBNYAZ.js → chunk-QSGEBCDB.js} +2 -2
- package/dist/cli/chunks/{chunk-G4FAPO57.js → chunk-QUJJYTJH.js} +2 -2
- package/dist/cli/chunks/{chunk-H7BLYMNU.js → chunk-QWG3SILX.js} +3 -3
- package/dist/cli/chunks/{chunk-LXQ3B4RY.js → chunk-RCOLPF3B.js} +2 -2
- package/dist/cli/chunks/{chunk-E44NNCEU.js → chunk-RYHG3I7J.js} +2 -2
- package/dist/cli/chunks/{chunk-RTFKTKSO.js → chunk-SBHM5X2S.js} +2 -2
- package/dist/cli/chunks/{chunk-DOBZPSKE.js → chunk-SDRJJUPO.js} +1 -1
- package/dist/cli/chunks/{chunk-RTY7VSZB.js → chunk-SG2TX72G.js} +2 -2
- package/dist/cli/chunks/{chunk-NTB342NJ.js → chunk-SITL5YZV.js} +4 -4
- package/dist/cli/chunks/{chunk-WM3SRRA6.js → chunk-SPC4RBLF.js} +2 -2
- package/dist/cli/chunks/{chunk-ITL3IN2E.js → chunk-SQVZ3TRU.js} +2 -2
- package/dist/cli/chunks/{chunk-CO3DX2AX.js → chunk-SUX5XB2Z.js} +2 -2
- package/dist/cli/chunks/{chunk-KSE5TDM5.js → chunk-T4EN5VVK.js} +2 -2
- package/dist/cli/chunks/{chunk-5HQP4SLM.js → chunk-TGMXUZZC.js} +2 -2
- package/dist/cli/chunks/{chunk-YOCULVHR.js → chunk-TLRHAMX5.js} +1 -1
- package/dist/cli/chunks/{chunk-GBFUANTC.js → chunk-TOWOJGEI.js} +1 -1
- package/dist/cli/chunks/{chunk-4UBVAJFO.js → chunk-TSOQ2QLT.js} +2 -2
- package/dist/cli/chunks/{chunk-SMVVAVN2.js → chunk-TVA5GRIU.js} +2 -2
- package/dist/cli/chunks/{chunk-K7V2WZNF.js → chunk-TXEUVUMO.js} +1 -1
- package/dist/cli/chunks/{chunk-LQ4NUC6Q.js → chunk-U6IXYQO4.js} +2 -2
- package/dist/cli/chunks/{chunk-HDJUYAZG.js → chunk-U7ZHDGXG.js} +1 -1
- package/dist/cli/chunks/{chunk-2VLYUF7U.js → chunk-UCSK2RMI.js} +2 -2
- package/dist/cli/chunks/{chunk-4UX35V7P.js → chunk-UIKQPO4Y.js} +2 -2
- package/dist/cli/chunks/chunk-UJNGGFGX.js +2 -0
- package/dist/cli/chunks/{chunk-AFFN6E6Q.js → chunk-ULCW6IVQ.js} +2 -2
- package/dist/cli/chunks/{chunk-WCVCOT4E.js → chunk-UREDS662.js} +2 -2
- package/dist/cli/chunks/{chunk-E6PF35JZ.js → chunk-URSTP3WI.js} +2 -2
- package/dist/cli/chunks/{chunk-I36CRDHF.js → chunk-UUZZXHUF.js} +2 -2
- package/dist/cli/chunks/{chunk-MIK4RBEH.js → chunk-UZED4YZ5.js} +1 -1
- package/dist/cli/chunks/{chunk-ZQHDA4O7.js → chunk-VF7FTD64.js} +1 -1
- package/dist/cli/chunks/{chunk-AMZKAJLJ.js → chunk-VUR5THML.js} +2 -2
- package/dist/cli/chunks/{chunk-H43AFUKL.js → chunk-VXVTFKRA.js} +2 -2
- package/dist/cli/chunks/chunk-VZBC6DP7.js +2 -0
- package/dist/cli/chunks/{chunk-DDEOZPWJ.js → chunk-W4II6SIH.js} +2 -2
- package/dist/cli/chunks/{chunk-55CH76ZO.js → chunk-W5HQIYQU.js} +3 -3
- package/dist/cli/chunks/{chunk-YPX2TV3M.js → chunk-W7H55PY4.js} +1 -1
- package/dist/cli/chunks/{chunk-CFWGGRE7.js → chunk-WDEXOLK2.js} +1 -1
- package/dist/cli/chunks/{chunk-XGBU3KEM.js → chunk-WGTEZT7G.js} +2 -2
- package/dist/cli/chunks/{chunk-NC6K7SCQ.js → chunk-WLRU6ESI.js} +2 -2
- package/dist/cli/chunks/{chunk-JFLU7L3W.js → chunk-WTAUF6O4.js} +2 -2
- package/dist/cli/chunks/chunk-XCNSGSKV.js +3 -0
- package/dist/cli/chunks/{chunk-57LNKSW7.js → chunk-XZOYKB22.js} +2 -2
- package/dist/cli/chunks/chunk-YIDAXOUX.js +8 -0
- package/dist/cli/chunks/{chunk-25P77WA5.js → chunk-YLKIXEPP.js} +1 -1
- package/dist/cli/chunks/{chunk-R5GRABPQ.js → chunk-YNVEDFPQ.js} +1 -1
- package/dist/cli/chunks/{chunk-NQZNMCZU.js → chunk-YUA6ZKKY.js} +2 -2
- package/dist/cli/chunks/{chunk-OYJC3YON.js → chunk-YVJEUX3I.js} +2 -2
- package/dist/cli/chunks/{chunk-QDESWOZP.js → chunk-YWWMNTBF.js} +2 -2
- package/dist/cli/chunks/{chunk-7HEMJHPP.js → chunk-ZGROHCOW.js} +1 -1
- package/dist/cli/chunks/{chunk-AP3ADWDK.js → chunk-ZPVGX4DI.js} +2 -2
- package/dist/cli/chunks/{chunk-M5XYIQYZ.js → chunk-ZROAMFX2.js} +2 -2
- package/dist/cli/chunks/{chunk-I4K2HTQU.js → chunk-ZYOYR3UR.js} +1 -1
- package/dist/cli/chunks/ci-BZNWW3I3.js +81 -0
- package/dist/cli/chunks/{ci-config-J665XNOX.js → ci-config-LOHNXOKV.js} +2 -2
- package/dist/cli/chunks/{ci-output-PEQQQWVD.js → ci-output-LCOQBSJL.js} +2 -2
- package/dist/cli/chunks/{circuit-breaker-HHB2JSKH.js → circuit-breaker-7LRXTLFE.js} +2 -2
- package/dist/cli/chunks/{claude-flow-setup-JKUJRWPN.js → claude-flow-setup-HBU4VWC3.js} +2 -2
- package/dist/cli/chunks/client-4PNYDFYS.js +2 -0
- package/dist/cli/chunks/{cline-installer-Y77BWTAN.js → cline-installer-CO6MLH6X.js} +2 -2
- package/dist/cli/chunks/{code-LV2HAGJY.js → code-SIXBS6JM.js} +3 -3
- package/dist/cli/chunks/{code-index-extractor-4GKKSETB.js → code-index-extractor-GWJKZ2IQ.js} +2 -2
- package/dist/cli/chunks/{codex-installer-WMKBYE5Y.js → codex-installer-6NINVWXJ.js} +2 -2
- package/dist/cli/chunks/{completions-SBGFAOIJ.js → completions-7VIX3GML.js} +2 -2
- package/dist/cli/chunks/{complexity-analyzer-AQHFIJXC.js → complexity-analyzer-FBQR6ZP2.js} +2 -2
- package/dist/cli/chunks/{continuedev-installer-26AYFS2E.js → continuedev-installer-VA7RIXW5.js} +2 -2
- package/dist/cli/chunks/{copilot-installer-4UD3DK55.js → copilot-installer-4QEBC4MU.js} +2 -2
- package/dist/cli/chunks/core-handlers-ODO6LUWQ.js +2 -0
- package/dist/cli/chunks/{cost-tracker-TP4NZCG4.js → cost-tracker-GRYKHPWL.js} +2 -2
- package/dist/cli/chunks/{coverage-B2KIXHAI.js → coverage-USPMNKOU.js} +11 -10
- package/dist/cli/chunks/cross-domain-router-DT4MHJKK.js +2 -0
- package/dist/cli/chunks/{cursor-installer-AVZEQZ4W.js → cursor-installer-ZXIPSZVH.js} +2 -2
- package/dist/cli/chunks/{daemon-XM2A7LQU.js → daemon-D7F3RGI5.js} +3 -3
- package/dist/cli/chunks/{daemon-P574WWBW.js → daemon-N2VRHPSJ.js} +4 -4
- package/dist/cli/chunks/{dag-attention-scheduler-MIWOZ6ET.js → dag-attention-scheduler-NL6BA7BY.js} +2 -2
- package/dist/cli/chunks/{detect-TYR7HT23.js → detect-XC2HCIIT.js} +2 -2
- package/dist/cli/chunks/{dist-node-2DGVQGLS.js → dist-node-A3Y26MEI.js} +2 -2
- package/dist/cli/chunks/{domain-handler-RRA4ZOMF.js → domain-handler-WV6SFXRB.js} +2 -2
- package/dist/cli/chunks/{domain-plugins-IVZEZ5RB.js → domain-plugins-KJIF6Z2B.js} +2 -2
- package/dist/cli/chunks/{domain-transfer-DOBI67K6.js → domain-transfer-L3F6AES2.js} +2 -2
- package/dist/cli/chunks/dream-QOB3JCOM.js +2 -0
- package/dist/cli/chunks/{embed-and-insert-pattern-VNIEOVPO.js → embed-and-insert-pattern-PA3Y4KGO.js} +2 -2
- package/dist/cli/chunks/{eval-QV4LVPUF.js → eval-YGEZNUVE.js} +2 -2
- package/dist/cli/chunks/{experience-capture-middleware-DAPKT763.js → experience-capture-middleware-D4T7NW6B.js} +3 -3
- package/dist/cli/chunks/{fast-paths-WVRFPHX7.js → fast-paths-6JYK7RYQ.js} +2 -2
- package/dist/cli/chunks/{feature-flags-O7ZXDDCD.js → feature-flags-DKXMDVPE.js} +2 -2
- package/dist/cli/chunks/{feature-flags-DEFTUIYT.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-LS4LZJDR.js → gnn-wrapper-MV54UC4C.js} +2 -2
- package/dist/cli/chunks/{heartbeat-handler-RFTERD4K.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-GPKGFFHY.js → hnsw-legacy-bridge-6IWREDQC.js} +2 -2
- package/dist/cli/chunks/{hnswlib-node-PHL3F2PR.js → hnswlib-node-5BIESSCK.js} +2 -2
- package/dist/cli/chunks/{hooks-GYJ6D4QM.js → hooks-3EETRM62.js} +28 -28
- package/dist/cli/chunks/hybrid-backend-IHUHB3Y2.js +2 -0
- package/dist/cli/chunks/{hypergraph-engine-YGEQPCKJ.js → hypergraph-engine-RSWCB2D3.js} +2 -2
- package/dist/cli/chunks/{hypergraph-handler-ZIMM647V.js → hypergraph-handler-552LXKL3.js} +3 -3
- package/dist/cli/chunks/impact-analyzer-FI6GI6PD.js +2 -0
- package/dist/cli/chunks/{init-guard-VOMBXJXG.js → init-guard-OTDBJ5HD.js} +2 -2
- package/dist/cli/chunks/{init-handler-PSMUBWK5.js → init-handler-3FK3TKEA.js} +6 -6
- 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-2YNTFBWJ.js → kilocode-installer-KZ2O4LF3.js} +2 -2
- package/dist/cli/chunks/{kiro-installer-XHJDPVAZ.js → kiro-installer-MLCCXRF7.js} +2 -2
- package/dist/cli/chunks/knowledge-graph-G3LVKK6P.js +2 -0
- package/dist/cli/chunks/{learning-GNSIDRNG.js → learning-QUCMBD77.js} +3 -3
- package/dist/cli/chunks/{llm-router-LQDM7IU2.js → llm-router-PDEV3UP2.js} +4 -4
- package/dist/cli/chunks/llm-router-service-MM75HKWJ.js +2 -0
- package/dist/cli/chunks/{load-YATHI72E.js → load-XFVVLO7E.js} +2 -2
- package/dist/cli/chunks/load-test-BEWEE44J.js +2 -0
- package/dist/cli/chunks/{mcp-4Y6GDLYK.js → mcp-74G3CL2S.js} +2 -2
- package/dist/cli/chunks/{memory-OUW3L7H2.js → memory-XIFM6JNX.js} +5 -5
- package/dist/cli/chunks/memory-backend-NYKBBKZR.js +2 -0
- package/dist/cli/chunks/{memory-handlers-G3LFF53U.js → memory-handlers-ZCKURV6S.js} +2 -2
- package/dist/cli/chunks/{multi-model-executor-UBZJXAD2.js → multi-model-executor-7L4W3O2Q.js} +2 -2
- package/dist/cli/chunks/{opencode-installer-AMMNWVH5.js → opencode-installer-BPG422LF.js} +2 -2
- package/dist/cli/chunks/{orchestrator-Y44WDOER.js → orchestrator-OEAFLAEV.js} +58 -20
- package/dist/cli/chunks/pattern-null-store-QGPUIV6M.js +2 -0
- package/dist/cli/chunks/{pattern-usage-recorder-ESR42RME.js → pattern-usage-recorder-LOPNCULT.js} +2 -2
- package/dist/cli/chunks/{pipeline-EDTS6OSC.js → pipeline-VWTYUZB7.js} +2 -2
- package/dist/cli/chunks/{platform-5WONJSUX.js → platform-WFJJ3X2E.js} +2 -2
- package/dist/cli/chunks/{plugin-IJXPCLD4.js → plugin-744TPUSG.js} +2 -2
- package/dist/cli/chunks/{prime-radiant-advanced-wasm-5ECKGZK6.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-DRD3GVNW.js → protocol-handler-JIBILI74.js} +2 -2
- package/dist/cli/chunks/{prove-KTGW2HMJ.js → prove-MNOL5FYW.js} +2 -2
- package/dist/cli/chunks/qe-reasoning-bank-YWZMMGJB.js +2 -0
- package/dist/cli/chunks/{quality-DV2WPRRS.js → quality-JEGBDGGX.js} +2 -2
- package/dist/cli/chunks/{quality-gate-HFUAFVZC.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-QWSKS5OY.js → ref-validation-RRHUFW2N.js} +2 -2
- package/dist/cli/chunks/{roocode-installer-RBAYRCHX.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-FMPP3XKO.js → routing-handler-L2K3JASE.js} +2 -2
- package/dist/cli/chunks/{ruvector-commands-KZZT4HWF.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-7CHEV35N.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-Q2TH52SN.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-CUEA3UIM.js → security-Z5GDE2IH.js} +3 -3
- package/dist/cli/chunks/{shared-rvf-adapter-DROMBRV2.js → shared-rvf-adapter-SIZMEHPM.js} +2 -2
- package/dist/cli/chunks/{shared-rvf-dual-writer-DBNABOP7.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-IAHA3M6B.js → standalone-memory-SKSZG7P5.js} +2 -2
- package/dist/cli/chunks/{status-handler-AFUCASTX.js → status-handler-766YOOMJ.js} +2 -2
- package/dist/cli/chunks/{structural-health-AQRV6JJ6.js → structural-health-M45FNOLT.js} +2 -2
- package/dist/cli/chunks/{sync-GX7FMJHL.js → sync-6CJ24B5T.js} +2 -2
- package/dist/cli/chunks/{sync-XW5TLZ7M.js → sync-B2U366I3.js} +2 -2
- package/dist/cli/chunks/{task-handler-TFKVUTNF.js → task-handler-P6IFLCKP.js} +17 -15
- package/dist/cli/chunks/task-handlers-DPWMUKFC.js +9 -0
- package/dist/cli/chunks/{test-D2XDJNDX.js → test-TODH7KRF.js} +4 -4
- package/dist/cli/chunks/test-runner-process-46IPK3GH.js +2 -0
- package/dist/cli/chunks/{test-scheduling-TS6I2PR7.js → test-scheduling-VMVMVRHT.js} +3 -3
- package/dist/cli/chunks/{token-bootstrap-HBBLPCZ3.js → token-bootstrap-XQW7BMCK.js} +2 -2
- package/dist/cli/chunks/{token-usage-3MBUX4PR.js → token-usage-JCZEIRKO.js} +2 -2
- package/dist/cli/chunks/{transformers-ZWMQO3L2.js → transformers-U2ML3OHE.js} +2 -2
- package/dist/cli/chunks/tree-sitter-wasm-parser-MOI2WWNJ.js +2 -0
- package/dist/cli/chunks/{types-5YEMGPSQ.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-2TPBKIHI.js → upgrade-T5GRM7HS.js} +2 -2
- package/dist/cli/chunks/{validate-XRAXXFW6.js → validate-XMUJPLP3.js} +2 -2
- package/dist/cli/chunks/{validate-swarm-IYSCS3BZ.js → validate-swarm-KJLF7JEH.js} +2 -2
- package/dist/cli/chunks/visual-security-IJVPO5FA.js +2 -0
- package/dist/cli/chunks/{web-tree-sitter-PZQ3ZG2P.js → web-tree-sitter-LOHVZ7G5.js} +2 -2
- package/dist/cli/chunks/{windsurf-installer-U6XWFRVT.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-K7YX2AO6.js → witness-chain-repair-VWBO4NXE.js} +2 -2
- package/dist/cli/chunks/{witness-chain-verifier-GUTC3W7N.js → witness-chain-verifier-BHJ3ZAEK.js} +2 -2
- package/dist/cli/chunks/{witness-key-manager-YBNKMOP6.js → witness-key-manager-WNVPH2Z3.js} +2 -2
- package/dist/cli/chunks/{workflow-UAJUILFQ.js → workflow-6QR5MQTO.js} +4 -4
- package/dist/cli/chunks/workflow-orchestrator-3JLF3IX7.js +2 -0
- package/dist/cli/chunks/{wrappers-AVZ3GPAL.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 +2 -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/handlers/task-handler.js +6 -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/coordination/handlers/coverage-collection.d.ts +2 -0
- package/dist/coordination/handlers/coverage-collection.js +2 -1
- 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-scope.d.ts +40 -0
- package/dist/coordination/handlers/coverage-scope.js +321 -0
- package/dist/coordination/handlers/coverage-target.d.ts +9 -0
- package/dist/coordination/handlers/coverage-target.js +15 -5
- package/dist/coordination/handlers/handler-utils.d.ts +5 -0
- package/dist/coordination/handlers/handler-utils.js +8 -4
- package/dist/domains/code-intelligence/services/metric-collector/listing-process-owner.js +4 -1
- 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/init/phases/10-workers.js +42 -4
- package/dist/integrations/agentic-flow/reasoning-bank/experience-replay.d.ts +23 -1
- package/dist/integrations/agentic-flow/reasoning-bank/experience-replay.js +50 -15
- package/dist/integrations/agentic-flow/reasoning-bank/index.d.ts +7 -2
- package/dist/integrations/agentic-flow/reasoning-bank/index.js +8 -0
- 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/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 +24 -4
- package/dist/learning/real-qe-reasoning-bank.js +58 -20
- package/dist/logging/redaction.js +142 -12
- package/dist/mcp/bundle.js +504 -492
- 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.js +5 -0
- 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 +11 -2
- package/dist/mcp/handlers/task-handlers.js +50 -5
- package/dist/mcp/protocol-server.js +3 -0
- package/dist/mcp/services/reasoning-bank-service.d.ts +6 -1
- package/dist/mcp/services/reasoning-bank-service.js +9 -0
- package/dist/mcp/types.d.ts +14 -0
- package/dist/routing/advisor/redaction.js +22 -2
- package/dist/shared/llm/providers/response-deadline.js +16 -2
- package/dist/shared/types/index.js +3 -1
- package/dist/strange-loop/infra-healing/infra-aware-agent-provider.js +8 -1
- package/package.json +3 -3
- package/dist/cli/chunks/adapter-V4GSGOOK.js +0 -2
- package/dist/cli/chunks/aqe-learning-engine-6WQTM5YR.js +0 -2
- package/dist/cli/chunks/base-AK7BXBX2.js +0 -2
- package/dist/cli/chunks/browser-workflow-VTDFBW7T.js +0 -2
- package/dist/cli/chunks/chunk-2DTX7YAZ.js +0 -6
- package/dist/cli/chunks/chunk-72ZBJD2E.js +0 -3
- package/dist/cli/chunks/chunk-EBPJY4DI.js +0 -3
- package/dist/cli/chunks/chunk-HJ3XNTTJ.js +0 -2
- package/dist/cli/chunks/chunk-IO5537OM.js +0 -2
- package/dist/cli/chunks/chunk-IW6WDGHM.js +0 -2
- package/dist/cli/chunks/chunk-LRL56ZYL.js +0 -21
- package/dist/cli/chunks/chunk-VLD7Z2ED.js +0 -13
- package/dist/cli/chunks/chunk-VO3DRK4P.js +0 -3
- package/dist/cli/chunks/ci-6GUFAZMJ.js +0 -81
- package/dist/cli/chunks/client-HL2COSFM.js +0 -2
- package/dist/cli/chunks/core-handlers-IX7ATLM6.js +0 -2
- package/dist/cli/chunks/cross-domain-router-YYKLAPJO.js +0 -2
- package/dist/cli/chunks/dream-T6EP7B3F.js +0 -2
- package/dist/cli/chunks/file-discovery-JYMVTDMU.js +0 -2
- package/dist/cli/chunks/fleet-FVAUMKUT.js +0 -46
- package/dist/cli/chunks/heartbeat-scheduler-4N5MUJ7S.js +0 -2
- package/dist/cli/chunks/hnsw-adapter-ZPAJDSLR.js +0 -2
- package/dist/cli/chunks/hnsw-index-4CTH6RHB.js +0 -2
- package/dist/cli/chunks/hybrid-backend-AW6UTXQS.js +0 -2
- package/dist/cli/chunks/impact-analyzer-MZK3JMSV.js +0 -2
- package/dist/cli/chunks/init-wizard-FUC7KDVX.js +0 -2
- package/dist/cli/chunks/kernel-ZCPMCVMW.js +0 -2
- package/dist/cli/chunks/knowledge-graph-NUJKEDNF.js +0 -2
- package/dist/cli/chunks/llm-router-service-B2BFBQ76.js +0 -2
- package/dist/cli/chunks/load-test-ZHQ2MUGO.js +0 -2
- package/dist/cli/chunks/memory-backend-AAMQG6WH.js +0 -2
- package/dist/cli/chunks/pattern-null-store-RFNVA46O.js +0 -2
- package/dist/cli/chunks/project-root-7QL4KP5C.js +0 -2
- package/dist/cli/chunks/protocol-executor-2NW5BD4R.js +0 -2
- package/dist/cli/chunks/qe-reasoning-bank-G2JZOGKD.js +0 -2
- package/dist/cli/chunks/queen-coordinator-GRG5FT2A.js +0 -2
- package/dist/cli/chunks/real-embeddings-RQRVOKVM.js +0 -2
- package/dist/cli/chunks/router-LQB5SWAF.js +0 -2
- package/dist/cli/chunks/routing-feedback-OEEXA55N.js +0 -2
- package/dist/cli/chunks/rvf-dual-writer-BZK4M7BO.js +0 -2
- package/dist/cli/chunks/rvf-migration-adapter-EZZUJL2E.js +0 -2
- package/dist/cli/chunks/rvf-native-adapter-6COXTQZ3.js +0 -2
- package/dist/cli/chunks/safe-db-PE6G3L55.js +0 -2
- package/dist/cli/chunks/schedule-OLKQ6QYW.js +0 -2
- package/dist/cli/chunks/scheduler-LSGBDFAT.js +0 -2
- package/dist/cli/chunks/sqlite-persistence-HH4DNTYH.js +0 -2
- package/dist/cli/chunks/task-handlers-SS4ZDXNF.js +0 -9
- package/dist/cli/chunks/test-runner-process-PSSBNNGR.js +0 -2
- package/dist/cli/chunks/tree-sitter-wasm-parser-TYRQRJ2W.js +0 -2
- package/dist/cli/chunks/unified-memory-AGDZQ5XD.js +0 -2
- package/dist/cli/chunks/unified-memory-hnsw-X5TJ3JDE.js +0 -2
- package/dist/cli/chunks/unified-persistence-UCV7YETW.js +0 -2
- package/dist/cli/chunks/visual-security-ZLXRIQZV.js +0 -2
- package/dist/cli/chunks/witness-chain-CVIWYTD2.js +0 -2
- package/dist/cli/chunks/witness-chain-VBKORKOX.js +0 -2
- package/dist/cli/chunks/workflow-orchestrator-3ZN7MVCE.js +0 -2
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.15.12");process.exit(0)}
|
|
2
|
+
import{a as h,b as i,c as j,d as k}from"./chunk-SUX5XB2Z.js";import"./chunk-IETBWYHW.js";import{a,b,c,d,e,f,g}from"./chunk-2IVE5AR3.js";import"./chunk-L7NGKANW.js";import"./chunk-66PXR3NI.js";import"./chunk-WTAUF6O4.js";import"./chunk-SPC4RBLF.js";import"./chunk-WGTEZT7G.js";import"./chunk-IPA7K556.js";import"./chunk-ZROAMFX2.js";import"./chunk-YUA6ZKKY.js";import"./chunk-3IU4LDZR.js";import"./chunk-YVJEUX3I.js";import"./chunk-6QRI3JVE.js";import"./chunk-YWWMNTBF.js";import"./chunk-UJNGGFGX.js";import"./chunk-ADUAJIAU.js";import"./chunk-7OEFBWAG.js";import"./chunk-QCPVUNN3.js";import"./chunk-35MIUSXQ.js";import"./chunk-DZGPUGUG.js";import"./chunk-4LWMAAWK.js";import"./chunk-IA55PFLG.js";import"./chunk-W4II6SIH.js";import"./chunk-O3IM4WRZ.js";import"./chunk-WDEXOLK2.js";export{g as CHAIN_REANCHOR_ACTION,a as GENESIS_PREV_HASH,h as WitnessChain,k as _resetWitnessChainForTests,j as createWitnessChain,i as getWitnessChain,d as hashWith,e as serializeEntry,b as sha256,c as shake256,f as signaturePayload};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.15.12");process.exit(0)}
|
|
2
|
+
import{a,b,c,d,e,f,g}from"./chunk-VUR5THML.js";import"./chunk-UJNGGFGX.js";import"./chunk-ADUAJIAU.js";import"./chunk-7OEFBWAG.js";import"./chunk-QCPVUNN3.js";import"./chunk-35MIUSXQ.js";import"./chunk-WDEXOLK2.js";export{c as PersistentWitnessChain,a as SPRTAccumulator,b as WitnessChain,f as createPersistentWitnessChain,e as createWitnessChain,d as createWitnessChainSQLitePersistence,g as isWitnessChainFeatureEnabled};
|
package/dist/cli/chunks/{witness-chain-repair-K7YX2AO6.js → witness-chain-repair-VWBO4NXE.js}
RENAMED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.15.
|
|
2
|
-
import{a as E}from"./chunk-
|
|
1
|
+
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.15.12");process.exit(0)}
|
|
2
|
+
import{a as E}from"./chunk-SUX5XB2Z.js";import"./chunk-IETBWYHW.js";import{b as R,c as b,e as A,h as y,k as C}from"./chunk-2IVE5AR3.js";import"./chunk-L7NGKANW.js";import"./chunk-66PXR3NI.js";import"./chunk-WTAUF6O4.js";import"./chunk-SPC4RBLF.js";import"./chunk-WGTEZT7G.js";import"./chunk-IPA7K556.js";import"./chunk-ZROAMFX2.js";import"./chunk-YUA6ZKKY.js";import"./chunk-3IU4LDZR.js";import"./chunk-YVJEUX3I.js";import"./chunk-6QRI3JVE.js";import"./chunk-YWWMNTBF.js";import"./chunk-UJNGGFGX.js";import"./chunk-ADUAJIAU.js";import"./chunk-7OEFBWAG.js";import"./chunk-QCPVUNN3.js";import"./chunk-35MIUSXQ.js";import"./chunk-DZGPUGUG.js";import"./chunk-4LWMAAWK.js";import{d as g,e as _}from"./chunk-IA55PFLG.js";import"./chunk-W4II6SIH.js";import"./chunk-O3IM4WRZ.js";import"./chunk-WDEXOLK2.js";_();import{existsSync as v}from"node:fs";import{basename as I}from"node:path";var w={includeArchive:!0};function l(e){let r=n=>C(e,n)?e.prepare(`SELECT COUNT(*) AS n FROM ${n}`).get().n:0;return{live:r("witness_chain"),archive:r("witness_chain_archive")}}function O(e){return{status:e.status,entriesChecked:e.entriesChecked,forks:e.forks.length,unacknowledgedForks:e.forks.length-e.acknowledgedForks.length,...e.tamperedAt!==void 0?{tamperedAt:e.tamperedAt}:{},...e.tamperReason?{tamperReason:e.tamperReason}:{}}}function $(e){return e.forkDetails.filter(r=>!r.acknowledged).map(({id:r,parentId:n,prevHash:s,actionHash:c})=>({id:r,parentId:n,prevHash:s,actionHash:c}))}function x(e,r){let n=new Set,s=e.prepare("SELECT prev_hash FROM witness_chain UNION ALL SELECT prev_hash FROM witness_chain_archive").pluck().iterate();for(let t of s)n.add(t);let c=[],a=new Set;for(let t of["witness_chain","witness_chain_archive"]){let f=e.prepare(`SELECT * FROM ${t} ORDER BY id ASC`).iterate();for(let o of f){if(o.id===r||a.has(o.id))continue;a.add(o.id);let i=A(o);!n.has(b(i))&&!n.has(R(i))&&c.push({id:o.id,hash:y(o)})}}return c.sort((t,f)=>t.id-f.id)}function S(e){return`Refusing to repair: tampering detected at id=${e.tamperedAt} (${e.tamperReason}). Only accidental forks can be re-anchored; restore from a backup and investigate.`}function M(e){let r=`${e}.bak-${Math.floor(Date.now()/1e3)}`;if(!v(r))return r;let n=1;for(;v(`${r}-${n}`);)n++;return`${r}-${n}`}function W(e,r){let n=M(e),s=g(e,{readonly:!0,fileMustExist:!0});try{s.prepare("VACUUM INTO ?").run(n)}finally{s.close()}let c=g(n,{readonly:!0,fileMustExist:!0});try{let a=c.pragma("integrity_check",{simple:!0});if(a!=="ok")throw new Error(`backup integrity_check failed: ${String(a)}`);let t=l(c);if(t.live!==r.live||t.archive!==r.archive)throw new Error(`backup holds ${JSON.stringify(t)} witness rows, expected ${JSON.stringify(r)}`)}finally{c.close()}return n}async function L(e,r){let n=r.dryRun===!0,s=new E(e,r.keyManager??void 0);await s.initialize();let c=l(e),a=s.verify(w),t={dryRun:n,before:O(a),rowsBefore:c,rowsAfter:c};if(a.tampered)return{...t,action:"refused",message:S(a),forksAcknowledged:[]};let f=$(a);if(f.length===0){let d=a.forks.length>0?`Nothing to repair: all ${a.forks.length} fork(s) are already re-anchored.`:"Nothing to repair: the audit chain has no forks.";return{...t,action:"none",message:d,forksAcknowledged:[]}}if(n)return{...t,action:"would-reanchor",forksAcknowledged:f.map(d=>d.id),message:`Dry run: would back up the database and append a CHAIN_REANCHOR entry acknowledging ${f.length} fork(s). Nothing was written.`};let o,i=e.transaction(()=>{let d=l(e),p=s.verify(w);if(p.tampered)return{kind:"refused",check:p};let h=$(p);if(h.length===0)return{kind:"noop"};o=W(r.dbPath,d);let m=e.prepare("SELECT * FROM witness_chain ORDER BY id DESC LIMIT 1").get(),T=s.append("CHAIN_REANCHOR",{reason:"fork-repair",issue:"https://github.com/proffesor-for-testing/agentic-qe/issues/753",note:"Acknowledges accidental forks from pre-3.14.5 concurrent appends; no rows were changed.",forkCount:h.length,forks:h,pins:x(e,m.id),verifiedTipId:m.id,verifiedTipHash:y(m),entriesChecked:p.entriesChecked,rows:d,backup:I(o)},r.actor??"aqe-audit-repair"),k=l(e);if(k.live!==d.live+1||k.archive!==d.archive)throw new Error(`row-count check failed: before ${JSON.stringify(d)}, after ${JSON.stringify(k)}`);return{kind:"reanchored",entry:T,forks:h,txAfter:k}}).immediate();if(i.kind==="refused")return{...t,action:"refused",message:S(i.check),forksAcknowledged:[]};if(i.kind==="noop")return{...t,action:"none",message:"Nothing to repair (another process re-anchored first).",forksAcknowledged:[]};let u=s.verify(w),N=u.valid&&!u.tampered;return{...t,action:"reanchored",after:O(u),rowsAfter:i.txAfter,forksAcknowledged:i.forks.map(d=>d.id),reanchorId:i.entry.id,backupPath:o,message:N?`Re-anchored ${i.forks.length} fork(s) with CHAIN_REANCHOR id=${i.entry.id}; chain now ${u.status}. Backup: ${o}`:`Appended CHAIN_REANCHOR id=${i.entry.id}, but the chain still verifies as ${u.status}. Backup: ${o}`}}export{L as repairWitnessChainForks};
|
package/dist/cli/chunks/{witness-chain-verifier-GUTC3W7N.js → witness-chain-verifier-BHJ3ZAEK.js}
RENAMED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.15.
|
|
2
|
-
import{g as a,h as b,i as c,j as d,k as e}from"./chunk-
|
|
1
|
+
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.15.12");process.exit(0)}
|
|
2
|
+
import{g as a,h as b,i as c,j as d,k as e}from"./chunk-2IVE5AR3.js";import"./chunk-WDEXOLK2.js";export{a as CHAIN_REANCHOR_ACTION,c as WitnessChainVerifier,b as ownHash,e as tableExists,d as verifyWitnessChain};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.15.
|
|
2
|
-
import{a,b,c}from"./chunk-
|
|
1
|
+
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.15.12");process.exit(0)}
|
|
2
|
+
import{a,b,c}from"./chunk-IETBWYHW.js";import"./chunk-DZGPUGUG.js";import"./chunk-4LWMAAWK.js";import"./chunk-WDEXOLK2.js";export{a as WitnessKeyManager,c as _resetDefaultWitnessKeyManagerForTests,b as getDefaultWitnessKeyManager};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.15.
|
|
2
|
-
import{b as $}from"./chunk-
|
|
1
|
+
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.15.12");process.exit(0)}
|
|
2
|
+
import{b as $}from"./chunk-4SA7M34P.js";import"./chunk-UREDS662.js";import{a as k,b as W,c as b,g as C}from"./chunk-3EWQN37E.js";import"./chunk-MCPEC6OO.js";import{c as v}from"./chunk-WTAUF6O4.js";import"./chunk-VZBC6DP7.js";import"./chunk-W4II6SIH.js";import"./chunk-WDEXOLK2.js";import{Command as D}from"commander";import o from"chalk";function O(f,i){let h=f.indexOf("=");return h>0&&(i[f.substring(0,h)]=f.substring(h+1)),i}function V(f,i,h){let m=new D("workflow").description("Manage QE workflows and pipelines (ADR-041)");return m.command("run <file>").description("Execute a QE pipeline from YAML file").option("-w, --watch","Watch execution progress").option("-v, --verbose","Show detailed output").option("--params <json>","Additional parameters as JSON","{}").action(async(n,t)=>{if(!await h())return;let c=(await import("path")).resolve(n);try{console.log(o.blue(`
|
|
3
3
|
Running workflow from: ${n}
|
|
4
4
|
`));let l=k(c);if(!l.success||!l.workflow){console.log(o.red("Failed to parse pipeline:"));for(let d of l.errors)console.log(o.red(` ${d}`));await i(1)}let u={...v(t.params,"params")};if(l.pipeline){for(let d of l.pipeline.stages)if(d.params)for(let[y,p]of Object.entries(d.params))u[y]=p}if(!f.workflowOrchestrator.getWorkflow(l.workflow.id)){let d=f.workflowOrchestrator.registerWorkflow(l.workflow);d.success||(console.log(o.red(`Failed to register workflow: ${d.error.message}`)),await i(1))}let g=await f.workflowOrchestrator.executeWorkflow(l.workflow.id,u);if(!g.success){console.log(o.red(`Failed to start workflow: ${g.error.message}`)),await i(1);return}let a=g.value;if(console.log(o.cyan(` Execution ID: ${a}`)),console.log(o.gray(` Workflow: ${l.workflow.name}`)),console.log(o.gray(` Stages: ${l.workflow.steps.length}`)),console.log(""),t.watch){console.log(o.blue(`Workflow Progress:
|
|
5
5
|
`));let d,y=Date.now();for(;;){let w=f.workflowOrchestrator.getWorkflowStatus(a);if(!w)break;if(!d||d.progress!==w.progress||d.status!==w.status||JSON.stringify(d.currentSteps)!==JSON.stringify(w.currentSteps)){process.stdout.write("\r\x1B[K");let S="\u2588".repeat(Math.floor(w.progress/5))+"\u2591".repeat(20-Math.floor(w.progress/5)),R=w.status==="completed"?o.green:w.status==="failed"?o.red:w.status==="running"?o.yellow:o.gray;console.log(` [${S}] ${w.progress}% - ${R(w.status)}`),w.currentSteps.length>0&&t.verbose&&console.log(o.gray(` Running: ${w.currentSteps.join(", ")}`)),d=w}if(w.status==="completed"||w.status==="failed"||w.status==="cancelled")break;await new Promise(S=>setTimeout(S,500))}let p=f.workflowOrchestrator.getWorkflowStatus(a);if(p){console.log("");let w=p.duration||Date.now()-y;p.status==="completed"?(console.log(o.green("Workflow completed successfully")),console.log(o.gray(` Duration: ${$(w)}`)),console.log(o.gray(` Completed: ${p.completedSteps.length} stages`)),p.skippedSteps.length>0&&console.log(o.yellow(` Skipped: ${p.skippedSteps.length} stages`))):p.status==="failed"?(console.log(o.red("Workflow failed")),console.log(o.red(` Error: ${p.error}`)),console.log(o.gray(` Failed stages: ${p.failedSteps.join(", ")}`))):console.log(o.yellow(`Workflow ${p.status}`))}console.log(""),await i(p?.status==="completed"?0:1);return}else console.log(o.green("Workflow execution started")),console.log(o.gray(` Use 'aqe workflow status ${a}' to check progress`));console.log(""),await i(0)}catch(l){console.error(o.red(`
|
|
@@ -35,10 +35,10 @@ Workflow cancelled: ${n}
|
|
|
35
35
|
`)):console.log(o.red(`
|
|
36
36
|
Failed to cancel workflow: ${t.error.message}
|
|
37
37
|
`)),await i(t.success?0:1)}catch(t){console.error(o.red(`
|
|
38
|
-
Failed to cancel workflow:`),t),await i(1)}}),m.command("browser-list").description("List available browser workflow templates").action(async()=>{try{let{BrowserWorkflowTool:n}=await import("./browser-workflow-
|
|
38
|
+
Failed to cancel workflow:`),t),await i(1)}}),m.command("browser-list").description("List available browser workflow templates").action(async()=>{try{let{BrowserWorkflowTool:n}=await import("./browser-workflow-QRKCFVR3.js"),e=await new n().invoke({});if(e.success&&e.data){console.log(o.blue(`
|
|
39
39
|
Browser Workflow Templates:
|
|
40
40
|
`));for(let c of e.data.availableTemplates)console.log(` ${o.cyan(c)}`);console.log("")}else console.log(o.red(`Failed: ${e.error||"Unknown error"}`));await i(0)}catch(n){console.error(o.red(`
|
|
41
|
-
Failed:`),n),await i(1)}}),m.command("browser-load [template]").description("Load and validate a browser workflow template or inline YAML").option("--yaml <yaml>","Inline YAML workflow definition").option("-v, --var <key=value>","Variable override (repeatable)",O,{}).option("-F, --format <format>","Output format (text|json)","text").option("-o, --output <path>","Write output to file").action(async(n,t)=>{try{let{BrowserWorkflowTool:e}=await import("./browser-workflow-
|
|
41
|
+
Failed:`),n),await i(1)}}),m.command("browser-load [template]").description("Load and validate a browser workflow template or inline YAML").option("--yaml <yaml>","Inline YAML workflow definition").option("-v, --var <key=value>","Variable override (repeatable)",O,{}).option("-F, --format <format>","Output format (text|json)","text").option("-o, --output <path>","Write output to file").action(async(n,t)=>{try{let{BrowserWorkflowTool:e}=await import("./browser-workflow-QRKCFVR3.js"),{writeOutput:c,toJSON:l}=await import("./ci-output-LCOQBSJL.js"),s=new e,u={variables:t.var||{}};if(t.yaml)u.workflowYaml=t.yaml;else if(n)if(n.endsWith(".yaml")||n.endsWith(".yml")){let g=await import("fs"),d=(await import("path")).resolve(n);g.existsSync(d)||(console.log(o.red(`
|
|
42
42
|
File not found: ${d}
|
|
43
43
|
`)),await i(1)),u.workflowYaml=g.readFileSync(d,"utf-8")}else u.templateName=n;else console.log(o.red(`
|
|
44
44
|
Provide a template name or --yaml. Use "workflow browser-list" to see templates.
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.15.12");process.exit(0)}
|
|
2
|
+
import{a,b,d as c,e as d}from"./chunk-4KUOYDY2.js";import"./chunk-INZARYUD.js";import"./chunk-L7NGKANW.js";import"./chunk-66PXR3NI.js";import"./chunk-WTAUF6O4.js";import"./chunk-SPC4RBLF.js";import"./chunk-WGTEZT7G.js";import"./chunk-IPA7K556.js";import"./chunk-ZROAMFX2.js";import"./chunk-YUA6ZKKY.js";import"./chunk-3IU4LDZR.js";import"./chunk-YVJEUX3I.js";import"./chunk-6QRI3JVE.js";import"./chunk-7TA5MUPW.js";import"./chunk-VZBC6DP7.js";import"./chunk-YWWMNTBF.js";import"./chunk-UJNGGFGX.js";import"./chunk-ADUAJIAU.js";import"./chunk-7OEFBWAG.js";import"./chunk-QCPVUNN3.js";import"./chunk-35MIUSXQ.js";import"./chunk-DZGPUGUG.js";import"./chunk-4LWMAAWK.js";import"./chunk-IA55PFLG.js";import"./chunk-W4II6SIH.js";import"./chunk-O3IM4WRZ.js";import"./chunk-WDEXOLK2.js";export{b as DEFAULT_WORKFLOW_CONFIG,a as WorkflowEvents,c as WorkflowOrchestrator,d as createWorkflowOrchestrator};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.15.
|
|
2
|
-
import{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v as L,w as M,x as N}from"./chunk-
|
|
1
|
+
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.15.12");process.exit(0)}
|
|
2
|
+
import{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v as L,w as M,x as N}from"./chunk-G3AABG4Q.js";import{a as v,b as w,c as x,d as y,e as z,f as A,g as B,h as C,i as D,j as E,k as F,l as G,m as H,n as I,o as J,p as K}from"./chunk-A5Y7DAVQ.js";import"./chunk-L7NGKANW.js";import"./chunk-66PXR3NI.js";import"./chunk-WTAUF6O4.js";import"./chunk-SPC4RBLF.js";import"./chunk-WGTEZT7G.js";import"./chunk-IPA7K556.js";import"./chunk-ZROAMFX2.js";import"./chunk-YUA6ZKKY.js";import"./chunk-3IU4LDZR.js";import"./chunk-YVJEUX3I.js";import"./chunk-6QRI3JVE.js";import"./chunk-YWWMNTBF.js";import"./chunk-UJNGGFGX.js";import"./chunk-ADUAJIAU.js";import"./chunk-7OEFBWAG.js";import"./chunk-QCPVUNN3.js";import"./chunk-35MIUSXQ.js";import"./chunk-DZGPUGUG.js";import"./chunk-4LWMAAWK.js";import"./chunk-IA55PFLG.js";import"./chunk-W4II6SIH.js";import"./chunk-O3IM4WRZ.js";import"./chunk-WDEXOLK2.js";export{z as GNNLayerFactory,i as QEFlashAttention,x as QEGNNEmbeddingIndex,y as QEGNNIndexFactory,a as QESONA,e as QE_FLASH_ATTENTION_CONFIG,g as QE_PERFORMANCE_TARGETS,f as QE_SONA_CONFIG,A as TensorCompressionFactory,u as batchComputeAttention,K as batchDifferentiableSearch,M as checkRuvectorPackagesAvailable,c as createDomainQESONA,j as createQEFlashAttention,b as createQESONA,D as getDifferentiableSearch,F as getGetCompressionLevel,E as getHierarchicalForward,G as getInit,h as getOptimalBlockConfig,k as getQEFlashAttentionConfig,n as getRuvectorDotProductAttention,m as getRuvectorFlashAttention,p as getRuvectorHyperbolicAttention,B as getRuvectorLayer,q as getRuvectorLinearAttention,r as getRuvectorMoEAttention,o as getRuvectorMultiHeadAttention,L as getRuvectorPackageVersions,C as getTensorCompress,l as getWorkloadTypes,N as initAllRuvectorPackages,w as initGNN,d as isAttentionAvailable,v as isGNNAvailable,s as toFloat32Array,H as toFloat32ArrayGNN,J as toIEmbedding,t as toNumberArrayAttn,I as toNumberArrayGNN};
|
package/dist/cli/commands/ci.js
CHANGED
|
@@ -86,6 +86,13 @@ async function executePhase(phase, context, outputDir, phaseIndex, coverageThres
|
|
|
86
86
|
const pct = (v) => (v === null || v === undefined ? 'n/a' : `${Math.round(v * 10) / 10}%`);
|
|
87
87
|
switch (outcome.kind) {
|
|
88
88
|
case 'measured': {
|
|
89
|
+
if (outcome.insufficientEvidence.length > 0) {
|
|
90
|
+
// #1154: target files missing from the report, or a stale report.
|
|
91
|
+
status = 'warning';
|
|
92
|
+
phaseExitCode = coverageExitCode(outcome, threshold);
|
|
93
|
+
summary = `INSUFFICIENT EVIDENCE — ${outcome.insufficientEvidence.join('; ')}`;
|
|
94
|
+
break;
|
|
95
|
+
}
|
|
89
96
|
status = outcome.verdict.meetsThreshold ? 'passed' : 'warning';
|
|
90
97
|
summary = `Line: ${pct(outcome.summary.line)}, Branch: ${pct(outcome.summary.branch)} — ` +
|
|
91
98
|
`${outcome.verdict.meetsThreshold ? 'meets' : 'below'} ${threshold}% threshold (measured)`;
|
|
@@ -149,7 +149,13 @@ missing coverage evidence.`)
|
|
|
149
149
|
console.log(` Branches: ${color(summary.branch)(fmt(summary.branch))}`);
|
|
150
150
|
console.log(` Functions: ${color(summary.function)(fmt(summary.function))}`);
|
|
151
151
|
console.log(` Statements: ${color(summary.statement)(fmt(summary.statement))}`);
|
|
152
|
-
if (outcome.kind === 'measured') {
|
|
152
|
+
if (outcome.kind === 'measured' && outcome.insufficientEvidence.length > 0) {
|
|
153
|
+
// #1154: figures over part of the target, or from a stale report, are not a pass.
|
|
154
|
+
console.log(`\n Threshold: ${chalk.red(`Not met (${threshold}%) — INSUFFICIENT EVIDENCE`)}`);
|
|
155
|
+
for (const reason of outcome.insufficientEvidence)
|
|
156
|
+
console.log(chalk.yellow(` - ${reason}`));
|
|
157
|
+
}
|
|
158
|
+
else if (outcome.kind === 'measured') {
|
|
153
159
|
console.log(`\n Threshold: ${outcome.verdict.meetsThreshold ? chalk.green(`Met (${threshold}%)`) : chalk.red(`Not met (${threshold}%)`)}`);
|
|
154
160
|
}
|
|
155
161
|
else {
|
|
@@ -309,7 +309,7 @@ export function createFleetCommand(context, cleanupAndExit, ensureInitialized, r
|
|
|
309
309
|
}));
|
|
310
310
|
// #1168: a completed agent is not a passed check, so the completion
|
|
311
311
|
// line only says "successfully" when the verdict passes.
|
|
312
|
-
const verdictPassed = reportFleetVerdict(operation, results, () => { });
|
|
312
|
+
const verdictPassed = reportFleetVerdict(operation, results, () => { }, plan.task.insufficientEvidence);
|
|
313
313
|
progress.stop({ verdictFailed: !verdictPassed });
|
|
314
314
|
const successful = results.filter(r => r.success).length;
|
|
315
315
|
const failed = results.filter(r => !r.success).length;
|
|
@@ -321,7 +321,7 @@ export function createFleetCommand(context, cleanupAndExit, ensureInitialized, r
|
|
|
321
321
|
console.log(chalk.red(` Failed: ${failed}`));
|
|
322
322
|
}
|
|
323
323
|
// #1125 review: a completed task is not a passed check.
|
|
324
|
-
const passed = reportFleetVerdict(operation, results);
|
|
324
|
+
const passed = reportFleetVerdict(operation, results, undefined, plan.task.insufficientEvidence);
|
|
325
325
|
console.log('');
|
|
326
326
|
await cleanupAndExit(passed ? 0 : 1);
|
|
327
327
|
}
|
|
@@ -11,12 +11,13 @@ import { Command } from 'commander';
|
|
|
11
11
|
* - `sqlite`: an embedder produced the vector and SQLite holds it (vector
|
|
12
12
|
* search uses it now); only the ANN index (patterns.rvf) was not open in
|
|
13
13
|
* this process. It is ingested automatically the next time the index opens.
|
|
14
|
-
* - `pending`: no vector (no embedding runtime
|
|
15
|
-
* embedder
|
|
14
|
+
* - `pending`: no vector (no embedding runtime, or #1204: the configured
|
|
15
|
+
* embedder failed); text search only until an embedder works and
|
|
16
|
+
* `aqe learning backfill-embeddings` runs.
|
|
16
17
|
*/
|
|
17
18
|
export declare function describeVectorIndexState(pattern: {
|
|
18
19
|
embedding?: ArrayLike<number>;
|
|
19
|
-
}, indexUnavailableCause?: string): {
|
|
20
|
+
}, indexUnavailableCause?: string, embedderFailure?: string | null): {
|
|
20
21
|
vectorIndex: 'indexed' | 'sqlite' | 'pending';
|
|
21
22
|
notice?: string;
|
|
22
23
|
};
|
|
@@ -9,6 +9,7 @@ import { QE_HOOK_EVENTS } from '../../../learning/qe-hooks.js';
|
|
|
9
9
|
import { safeJsonParse } from '../../../shared/safe-json.js';
|
|
10
10
|
import { committedPendingIndexPatternId } from '../../../learning/pattern-mutation-error.js';
|
|
11
11
|
import { formatLearningOutcomes, formatPatternSuccessRate } from '../../../learning/usage-outcome.js';
|
|
12
|
+
import { redactEndpoint } from '../../../learning/embedder-endpoint-client.js';
|
|
12
13
|
import { getHooksSystem, printJson, printSuccess, printError, } from './hooks-shared.js';
|
|
13
14
|
/**
|
|
14
15
|
* How a learned pattern reached vector search, by cause (#981, review N1).
|
|
@@ -16,11 +17,28 @@ import { getHooksSystem, printJson, printSuccess, printError, } from './hooks-sh
|
|
|
16
17
|
* - `sqlite`: an embedder produced the vector and SQLite holds it (vector
|
|
17
18
|
* search uses it now); only the ANN index (patterns.rvf) was not open in
|
|
18
19
|
* this process. It is ingested automatically the next time the index opens.
|
|
19
|
-
* - `pending`: no vector (no embedding runtime
|
|
20
|
-
* embedder
|
|
20
|
+
* - `pending`: no vector (no embedding runtime, or #1204: the configured
|
|
21
|
+
* embedder failed); text search only until an embedder works and
|
|
22
|
+
* `aqe learning backfill-embeddings` runs.
|
|
21
23
|
*/
|
|
22
|
-
export function describeVectorIndexState(pattern, indexUnavailableCause) {
|
|
24
|
+
export function describeVectorIndexState(pattern, indexUnavailableCause, embedderFailure) {
|
|
23
25
|
const hasVector = Boolean(pattern.embedding && pattern.embedding.length > 0);
|
|
26
|
+
if (!hasVector && embedderFailure) {
|
|
27
|
+
const endpoint = process.env.AQE_EMBEDDER_ENDPOINT;
|
|
28
|
+
const embedder = endpoint
|
|
29
|
+
? `the configured embedding endpoint (AQE_EMBEDDER_ENDPOINT=${redactEndpoint(endpoint)})`
|
|
30
|
+
: 'the embedder';
|
|
31
|
+
// The embedder's own wording says "transformer" for the endpoint path too.
|
|
32
|
+
const reason = endpoint
|
|
33
|
+
? embedderFailure.replace(/^(Transformer initialization previously failed|Failed to initialize transformer model): /, '')
|
|
34
|
+
: embedderFailure;
|
|
35
|
+
return {
|
|
36
|
+
vectorIndex: 'pending',
|
|
37
|
+
notice: `Pattern stored in SQLite without a vector: ${embedder} failed: ${reason}. ` +
|
|
38
|
+
'Text search finds it now. Once the embedder works again, run ' +
|
|
39
|
+
'`aqe learning backfill-embeddings` to enable semantic search for it.',
|
|
40
|
+
};
|
|
41
|
+
}
|
|
24
42
|
if (!hasVector) {
|
|
25
43
|
return {
|
|
26
44
|
vectorIndex: 'pending',
|
|
@@ -212,7 +230,7 @@ export function registerStatsHooks(hooks) {
|
|
|
212
230
|
if (!pattern) {
|
|
213
231
|
throw new Error('learn failed: no pattern returned');
|
|
214
232
|
}
|
|
215
|
-
const { vectorIndex, notice: pendingWarning } = describeVectorIndexState(pattern, indexCause);
|
|
233
|
+
const { vectorIndex, notice: pendingWarning } = describeVectorIndexState(pattern, indexCause, reasoningBank.getEmbedderFailure());
|
|
216
234
|
if (options.json) {
|
|
217
235
|
printJson({
|
|
218
236
|
success: true,
|
|
@@ -185,6 +185,12 @@ export class TaskHandler {
|
|
|
185
185
|
async executeList(options, context) {
|
|
186
186
|
if (!await this.ensureInitialized())
|
|
187
187
|
return this.cleanupAndExit(1);
|
|
188
|
+
// #1117: an unvalidated filter silently matches nothing, which reads as
|
|
189
|
+
// "no tasks" rather than "bad flag". Parity with `task submit`.
|
|
190
|
+
if (options.priority !== undefined && !isPriority(options.priority)) {
|
|
191
|
+
console.error(chalk.red(`\n ${invalidPriorityMessage(options.priority)}\n`));
|
|
192
|
+
return this.cleanupAndExit(1);
|
|
193
|
+
}
|
|
188
194
|
try {
|
|
189
195
|
const tasks = context.queen.listTasks({
|
|
190
196
|
status: options.status,
|
|
@@ -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
|
|
@@ -18,6 +21,7 @@
|
|
|
18
21
|
*/
|
|
19
22
|
import { type CoverageData } from './coverage-data.js';
|
|
20
23
|
import { type NoDataReason } from '../../coordination/handlers/coverage-target.js';
|
|
24
|
+
import { type CoverageEvidence } from '../../coordination/handlers/coverage-evidence.js';
|
|
21
25
|
/** `aqe coverage` exit code when no coverage measurement exists for the target (#995). */
|
|
22
26
|
export declare const EXIT_UNMEASURED = 3;
|
|
23
27
|
/** Provenance labels, the same vocabulary as MCP `coverage_analyze_sublinear`. */
|
|
@@ -27,6 +31,7 @@ export type CliCoverage = {
|
|
|
27
31
|
kind: 'data';
|
|
28
32
|
data: CoverageData;
|
|
29
33
|
projectRoot?: string;
|
|
34
|
+
evidence?: CoverageEvidence;
|
|
30
35
|
} | {
|
|
31
36
|
kind: 'no-data';
|
|
32
37
|
reason: NoDataReason;
|
|
@@ -112,6 +117,9 @@ export type CliCoverageOutcome = {
|
|
|
112
117
|
meetsThreshold: boolean;
|
|
113
118
|
};
|
|
114
119
|
recommendations: string[];
|
|
120
|
+
/** #1154: why the report cannot support a verdict for the target; empty when it can. */
|
|
121
|
+
insufficientEvidence: string[];
|
|
122
|
+
evidence?: CoverageEvidence;
|
|
115
123
|
};
|
|
116
124
|
/** Caller-facing explanation of a static estimate. */
|
|
117
125
|
export declare function estimateMessage(): string;
|
|
@@ -122,7 +130,8 @@ export declare function estimateMessage(): string;
|
|
|
122
130
|
export declare function evaluateCliCoverage(api: CoverageAnalyzeAPI, targetPath: string, threshold: number, log?: (message: string) => void): Promise<CliCoverageOutcome>;
|
|
123
131
|
/**
|
|
124
132
|
* 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)
|
|
133
|
+
* 3 UNMEASURED (not in the report, 0 tests, test-only report, or estimate only)
|
|
134
|
+
* or insufficient evidence (target files missing from the report, stale report).
|
|
126
135
|
*/
|
|
127
136
|
export declare function coverageExitCode(outcome: CliCoverageOutcome, threshold: number): number;
|
|
128
137
|
/** The `-F json` document for an outcome (same shape in every case). */
|
|
@@ -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('');
|
|
@@ -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.
|
|
@@ -502,7 +502,8 @@ function withRecomputedSummary(files) {
|
|
|
502
502
|
},
|
|
503
503
|
};
|
|
504
504
|
}
|
|
505
|
-
|
|
505
|
+
/** Production source files under a directory (test, build and vendored directories skipped). */
|
|
506
|
+
export function walkSourceFiles(targetPath) {
|
|
506
507
|
const found = [];
|
|
507
508
|
// Classification is relative to the analysis root (see isTestPath).
|
|
508
509
|
const rootDir = targetPath;
|
|
@@ -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
|