agentic-qe 3.15.11 → 3.15.13
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 +267 -0
- package/assets/skills/skills-manifest.json +1 -1
- package/dist/cli/bundle.js +6 -6
- package/dist/cli/chunks/adapter-KCQDVYY2.js +2 -0
- package/dist/cli/chunks/{agent-booster-wasm-TIDSQ3ZK.js → agent-booster-wasm-6RRQWMNE.js} +2 -2
- package/dist/cli/chunks/{agent-handler-G3EPBVA7.js → agent-handler-AOH6TV7W.js} +2 -2
- package/dist/cli/chunks/{agent-memory-branch-ARC5C7GW.js → agent-memory-branch-2P54SF5N.js} +2 -2
- package/dist/cli/chunks/aqe-learning-engine-SAQOHSGN.js +2 -0
- package/dist/cli/chunks/{arena-K4I4QDXB.js → arena-NSVFCAF5.js} +2 -2
- package/dist/cli/chunks/{arena-36DTATJV.js → arena-X6MOGQHA.js} +4 -4
- package/dist/cli/chunks/{audit-WQSJSJZF.js → audit-27DJLQNM.js} +3 -3
- package/dist/cli/chunks/base-WCACU3FN.js +2 -0
- package/dist/cli/chunks/{better-sqlite3-BB4K67MT.js → better-sqlite3-BU5GXILS.js} +2 -2
- package/dist/cli/chunks/{brain-handler-CU3GOIU3.js → brain-handler-GTQNHHZS.js} +3 -3
- package/dist/cli/chunks/{branch-enumerator-NJQX7ZNB.js → branch-enumerator-5CLULOCU.js} +2 -2
- package/dist/cli/chunks/{browser-6YJF4FQW.js → browser-R4DMU3LN.js} +2 -2
- package/dist/cli/chunks/browser-workflow-G6IASEAP.js +2 -0
- package/dist/cli/chunks/{chunk-G4FAPO57.js → chunk-2G7TVT6W.js} +2 -2
- package/dist/cli/chunks/{chunk-HDNWSKHA.js → chunk-32ZMWEP3.js} +2 -2
- package/dist/cli/chunks/{chunk-FWSGPE3V.js → chunk-3AN5TNGD.js} +3 -3
- package/dist/cli/chunks/{chunk-X4J73KP3.js → chunk-3LJ7LQMV.js} +1 -1
- package/dist/cli/chunks/{chunk-3RHOPP7A.js → chunk-3QZEGE67.js} +1 -1
- package/dist/cli/chunks/{chunk-RBZCA7SD.js → chunk-3RZV5DGO.js} +2 -2
- package/dist/cli/chunks/{chunk-DDEOZPWJ.js → chunk-3Y2ROSCL.js} +2 -2
- package/dist/cli/chunks/{chunk-LD5CFK53.js → chunk-3Y7TJFHU.js} +2 -2
- package/dist/cli/chunks/{chunk-I36CRDHF.js → chunk-3YNLWPBF.js} +2 -2
- package/dist/cli/chunks/{chunk-ZMC543GI.js → chunk-42J34YG4.js} +2 -2
- package/dist/cli/chunks/{chunk-YNOCQ2SL.js → chunk-4OVC4RIL.js} +1 -1
- package/dist/cli/chunks/{chunk-2KFFEKSI.js → chunk-526QYFJU.js} +2 -2
- package/dist/cli/chunks/{chunk-LBX7M4LW.js → chunk-5FKWCZNF.js} +2 -2
- package/dist/cli/chunks/{chunk-OH5V5EJW.js → chunk-5K26BEYB.js} +2 -2
- package/dist/cli/chunks/{chunk-TCYSBC7Y.js → chunk-5MDERQH3.js} +1 -1
- package/dist/cli/chunks/{chunk-V5AADCBC.js → chunk-5VMAV6T6.js} +1 -1
- package/dist/cli/chunks/{chunk-YBBT3YYG.js → chunk-5ZGM3RMH.js} +1 -1
- package/dist/cli/chunks/{chunk-RTY7VSZB.js → chunk-6KATY3KS.js} +2 -2
- package/dist/cli/chunks/{chunk-LPU6PAJE.js → chunk-6Z7PRBSG.js} +2 -2
- package/dist/cli/chunks/{chunk-6NA3KZZT.js → chunk-72ASBE35.js} +7 -7
- package/dist/cli/chunks/{chunk-GBFUANTC.js → chunk-756CGMEH.js} +1 -1
- package/dist/cli/chunks/{chunk-UTTSH4NH.js → chunk-75RDHBAX.js} +3 -3
- package/dist/cli/chunks/{chunk-XGPTZUKQ.js → chunk-7CMTY45A.js} +2 -2
- package/dist/cli/chunks/{chunk-NC6K7SCQ.js → chunk-7JUC2MVZ.js} +2 -2
- package/dist/cli/chunks/{chunk-RTFKTKSO.js → chunk-7NA7JXNB.js} +2 -2
- package/dist/cli/chunks/{chunk-GWJWSLDA.js → chunk-7PLIEBY7.js} +2 -2
- package/dist/cli/chunks/{chunk-OURITHFV.js → chunk-7YTGHGK4.js} +2 -2
- package/dist/cli/chunks/{chunk-ITL3IN2E.js → chunk-A64JFBWI.js} +2 -2
- package/dist/cli/chunks/{chunk-OHR7C777.js → chunk-AL6FBH3E.js} +2 -2
- package/dist/cli/chunks/{chunk-5N25I53C.js → chunk-AQSVJNEH.js} +2 -2
- package/dist/cli/chunks/{chunk-FL32MTKT.js → chunk-ARJW4I2O.js} +2 -2
- package/dist/cli/chunks/{chunk-ZQHDA4O7.js → chunk-ASQYASNV.js} +1 -1
- package/dist/cli/chunks/{chunk-4HJKQIX5.js → chunk-BEGR4D6N.js} +2 -2
- package/dist/cli/chunks/{chunk-G77MLBDF.js → chunk-BK577VL7.js} +2 -2
- package/dist/cli/chunks/{chunk-NPZOBSAN.js → chunk-BLSLEVDI.js} +2 -2
- package/dist/cli/chunks/{chunk-R5LGV6GZ.js → chunk-BTVEYBW2.js} +2 -2
- package/dist/cli/chunks/{chunk-2CW7VRPH.js → chunk-C6JTLKG7.js} +5 -5
- package/dist/cli/chunks/{chunk-EWPUQCN4.js → chunk-C7JM7CD3.js} +2 -2
- package/dist/cli/chunks/{chunk-325QCVDI.js → chunk-CCMKSHAT.js} +2 -2
- package/dist/cli/chunks/{chunk-V7DA4HAK.js → chunk-CE7B5LU7.js} +1 -1
- package/dist/cli/chunks/{chunk-4RAQ7PJA.js → chunk-CM4LSLKR.js} +2 -2
- package/dist/cli/chunks/chunk-CRWPZT74.js +62 -0
- package/dist/cli/chunks/{chunk-U3LJNNVJ.js → chunk-CT6SAVXQ.js} +2 -2
- package/dist/cli/chunks/chunk-CV77DMDQ.js +2 -0
- package/dist/cli/chunks/{chunk-UMVSWQNB.js → chunk-DFUASIKA.js} +2 -2
- package/dist/cli/chunks/{chunk-KSE5TDM5.js → chunk-DLD7RUZ4.js} +2 -2
- package/dist/cli/chunks/{chunk-4MUBW4RT.js → chunk-DNDL7SOS.js} +2 -2
- package/dist/cli/chunks/{chunk-EJPK7OTR.js → chunk-DVGRPK7A.js} +2 -2
- package/dist/cli/chunks/{chunk-WCVCOT4E.js → chunk-E56B6IDX.js} +2 -2
- package/dist/cli/chunks/{chunk-7HEMJHPP.js → chunk-E7CLYGS7.js} +1 -1
- package/dist/cli/chunks/{chunk-R5GRABPQ.js → chunk-EXGMJFAT.js} +1 -1
- package/dist/cli/chunks/chunk-F3YS57NF.js +21 -0
- package/dist/cli/chunks/{chunk-I4K2HTQU.js → chunk-FZ76G4QJ.js} +1 -1
- package/dist/cli/chunks/{chunk-4UX35V7P.js → chunk-G2Q66Z23.js} +2 -2
- package/dist/cli/chunks/{chunk-KJCIMNHS.js → chunk-G6WDYBLQ.js} +1 -1
- package/dist/cli/chunks/{chunk-VWUZSNVC.js → chunk-G77ERMUD.js} +1 -1
- package/dist/cli/chunks/{chunk-FZHSG75I.js → chunk-GB6HBNH2.js} +2 -2
- package/dist/cli/chunks/{chunk-KDI5JOYZ.js → chunk-GHM6MQNK.js} +2 -2
- package/dist/cli/chunks/{chunk-H7BLYMNU.js → chunk-GHY6Z6KO.js} +5 -5
- package/dist/cli/chunks/{chunk-TFW7CCKS.js → chunk-GII6UM3F.js} +1 -1
- package/dist/cli/chunks/{chunk-DOBZPSKE.js → chunk-GU5HNCWI.js} +1 -1
- package/dist/cli/chunks/{chunk-AFFN6E6Q.js → chunk-H4GG2NLO.js} +2 -2
- package/dist/cli/chunks/{chunk-7R5HC56U.js → chunk-H4H2YSFH.js} +1 -1
- package/dist/cli/chunks/{chunk-J4JMCZVA.js → chunk-HD7YIFOI.js} +2 -2
- package/dist/cli/chunks/{chunk-5MTWCCZJ.js → chunk-HOAJUIBQ.js} +2 -2
- package/dist/cli/chunks/{chunk-T5KHJ3J7.js → chunk-HQZGPJYG.js} +2 -2
- package/dist/cli/chunks/{chunk-VEEYL2CZ.js → chunk-HZ5NXFXH.js} +2 -2
- package/dist/cli/chunks/{chunk-LQ4NUC6Q.js → chunk-I3C7JOXC.js} +2 -2
- package/dist/cli/chunks/{chunk-Z2EA7A4Z.js → chunk-IC3TQEOA.js} +1 -1
- package/dist/cli/chunks/{chunk-E44NNCEU.js → chunk-IJUHSJ2U.js} +2 -2
- package/dist/cli/chunks/{chunk-EH2S6AOR.js → chunk-J2ZIFFM6.js} +2 -2
- package/dist/cli/chunks/{chunk-GVKVJJQX.js → chunk-JGZ722G3.js} +2 -2
- package/dist/cli/chunks/{chunk-EK5GMOSO.js → chunk-JQGMW45H.js} +1 -1
- package/dist/cli/chunks/{chunk-XGBU3KEM.js → chunk-JRRXCODW.js} +2 -2
- package/dist/cli/chunks/{chunk-5WYZHDIZ.js → chunk-K3TLLJMX.js} +1 -1
- package/dist/cli/chunks/{chunk-LXQ3B4RY.js → chunk-K4CZA77U.js} +2 -2
- package/dist/cli/chunks/chunk-K65CGKLD.js +8 -0
- package/dist/cli/chunks/{chunk-HFFPYC4G.js → chunk-KADFXPPN.js} +2 -2
- package/dist/cli/chunks/{chunk-APPZATXA.js → chunk-KB56CPU4.js} +2 -2
- package/dist/cli/chunks/{chunk-25P77WA5.js → chunk-KCW47QR5.js} +1 -1
- package/dist/cli/chunks/{chunk-WM3SRRA6.js → chunk-KDNJ4F3P.js} +2 -2
- package/dist/cli/chunks/{chunk-5ERFHEEE.js → chunk-KDVZND5Q.js} +1 -1
- package/dist/cli/chunks/{chunk-YOCULVHR.js → chunk-KUAKV3IW.js} +1 -1
- package/dist/cli/chunks/{chunk-M5XYIQYZ.js → chunk-KV4T4MXK.js} +2 -2
- package/dist/cli/chunks/{chunk-MIK4RBEH.js → chunk-KWYH3FI4.js} +1 -1
- package/dist/cli/chunks/{chunk-UKKYMW3S.js → chunk-LFJALJOA.js} +2 -2
- package/dist/cli/chunks/{chunk-K7V2WZNF.js → chunk-LL7LDPXS.js} +1 -1
- package/dist/cli/chunks/{chunk-55CH76ZO.js → chunk-LUZNKJE6.js} +3 -3
- package/dist/cli/chunks/{chunk-OV5RPLKV.js → chunk-LWR3FV3Y.js} +2 -2
- package/dist/cli/chunks/{chunk-SMVVAVN2.js → chunk-LZYQHVD4.js} +2 -2
- package/dist/cli/chunks/{chunk-672XOJDG.js → chunk-M6AAGIG7.js} +1 -1
- package/dist/cli/chunks/{chunk-WCAVIJ64.js → chunk-MAMQA43L.js} +1 -1
- package/dist/cli/chunks/chunk-MB46UBGY.js +3 -0
- package/dist/cli/chunks/{chunk-AP3ADWDK.js → chunk-MFW5HSG4.js} +2 -2
- package/dist/cli/chunks/{chunk-NKTWKYHB.js → chunk-MGZ5FJUW.js} +2 -2
- package/dist/cli/chunks/{chunk-ERN43HOX.js → chunk-MVVB7C2E.js} +410 -410
- package/dist/cli/chunks/{chunk-57LNKSW7.js → chunk-N4CYAKOX.js} +2 -2
- package/dist/cli/chunks/chunk-NT4DBXSX.js +2 -0
- package/dist/cli/chunks/{chunk-BZPE3LDO.js → chunk-NU3W5WFT.js} +2 -2
- package/dist/cli/chunks/chunk-NURIILUB.js +2 -0
- package/dist/cli/chunks/{chunk-ITPGWGQS.js → chunk-NW7IBHJA.js} +4 -4
- package/dist/cli/chunks/{chunk-OD5D4LSZ.js → chunk-NZ3GUMB2.js} +2 -2
- package/dist/cli/chunks/{chunk-35M2X3C5.js → chunk-NZD4DPSU.js} +2 -2
- package/dist/cli/chunks/{chunk-EIDJNT5C.js → chunk-O6FGXMHD.js} +1 -1
- package/dist/cli/chunks/{chunk-OYJC3YON.js → chunk-OCAEXYFA.js} +2 -2
- package/dist/cli/chunks/{chunk-Y7B5EUIJ.js → chunk-OFACHK5O.js} +2 -2
- package/dist/cli/chunks/{chunk-5MNASJOH.js → chunk-P7A4NKTZ.js} +2 -2
- package/dist/cli/chunks/{chunk-M7XFBSIK.js → chunk-PB6J6HAA.js} +2 -2
- package/dist/cli/chunks/{chunk-5HQP4SLM.js → chunk-PHP5UBT4.js} +2 -2
- package/dist/cli/chunks/{chunk-KXS3Y2AX.js → chunk-PIDQVU3L.js} +2 -2
- package/dist/cli/chunks/{chunk-4UBVAJFO.js → chunk-PSFSPGUD.js} +2 -2
- package/dist/cli/chunks/chunk-PT4FMJPQ.js +3 -0
- package/dist/cli/chunks/{chunk-HDJUYAZG.js → chunk-Q3UDLV5Z.js} +1 -1
- package/dist/cli/chunks/{chunk-CIAL4YRY.js → chunk-QDEJ4CI2.js} +2 -2
- package/dist/cli/chunks/{chunk-S6IYEBAI.js → chunk-QPNG5ZN2.js} +2 -2
- package/dist/cli/chunks/{chunk-YPX2TV3M.js → chunk-R7SYRCRP.js} +1 -1
- package/dist/cli/chunks/{chunk-XNLIWQYE.js → chunk-RF7HWBHN.js} +2 -2
- package/dist/cli/chunks/{chunk-5YLOLACR.js → chunk-RFNW2LGD.js} +2 -2
- package/dist/cli/chunks/{chunk-2VLYUF7U.js → chunk-S5AZCIZS.js} +2 -2
- package/dist/cli/chunks/{chunk-ETVAYGCB.js → chunk-SE4VNN4I.js} +3 -3
- package/dist/cli/chunks/{chunk-E6PF35JZ.js → chunk-SG3NX7QE.js} +2 -2
- package/dist/cli/chunks/{chunk-VYTILW4R.js → chunk-SSU73QAX.js} +2 -2
- package/dist/cli/chunks/{chunk-ZP75ASUU.js → chunk-SVLQRAMF.js} +1 -1
- package/dist/cli/chunks/{chunk-JGJXXAS6.js → chunk-SYV2V3PL.js} +4 -4
- package/dist/cli/chunks/{chunk-4RH5I24Q.js → chunk-T3PGQFDI.js} +2 -2
- package/dist/cli/chunks/{chunk-O4JAKWWM.js → chunk-TCBBNUBP.js} +17 -17
- package/dist/cli/chunks/{chunk-QDESWOZP.js → chunk-TOQWL2ZF.js} +2 -2
- package/dist/cli/chunks/{chunk-NTB342NJ.js → chunk-TSQC2KKZ.js} +4 -4
- package/dist/cli/chunks/{chunk-NQZNMCZU.js → chunk-TWDW32W2.js} +2 -2
- package/dist/cli/chunks/{chunk-CO3DX2AX.js → chunk-TWJTK4CC.js} +2 -2
- package/dist/cli/chunks/{chunk-FUYOOKTH.js → chunk-U2FUXDDJ.js} +3 -3
- package/dist/cli/chunks/{chunk-XDI5X3FR.js → chunk-UDQSYWVF.js} +1 -1
- package/dist/cli/chunks/chunk-UOC3O6RP.js +5 -0
- package/dist/cli/chunks/chunk-UT2VZ33P.js +2 -0
- package/dist/cli/chunks/{chunk-IOZRKXR5.js → chunk-UTRV7T2N.js} +2 -2
- package/dist/cli/chunks/{chunk-ZMHCMJ4J.js → chunk-UXZSUMEA.js} +2 -2
- package/dist/cli/chunks/{chunk-G4CKPWF6.js → chunk-VRHRBAEM.js} +1 -1
- package/dist/cli/chunks/{chunk-AUUJBXWX.js → chunk-VRVMIPTM.js} +2 -2
- package/dist/cli/chunks/{chunk-IENZSO3K.js → chunk-VTDFVFST.js} +2 -2
- package/dist/cli/chunks/{chunk-JFLU7L3W.js → chunk-VTOBUZL6.js} +2 -2
- package/dist/cli/chunks/{chunk-KKYO2NKV.js → chunk-VU5TBX2V.js} +2 -2
- package/dist/cli/chunks/{chunk-XS2XF3YG.js → chunk-W26B7ERY.js} +1 -1
- package/dist/cli/chunks/{chunk-DOFREOPQ.js → chunk-W2QWSQVE.js} +2 -2
- package/dist/cli/chunks/{chunk-KSLLHFVY.js → chunk-W3INMZZ6.js} +1 -1
- package/dist/cli/chunks/{chunk-FLU5FDSC.js → chunk-W3PPFHI5.js} +59 -59
- package/dist/cli/chunks/chunk-WKGTGOYS.js +13 -0
- package/dist/cli/chunks/{chunk-4X4MWMHB.js → chunk-WNQS4WTS.js} +2 -2
- package/dist/cli/chunks/{chunk-XJKZ7FTR.js → chunk-WO274FRI.js} +2 -2
- package/dist/cli/chunks/{chunk-76SNL7GU.js → chunk-WOCGL4QP.js} +2 -2
- package/dist/cli/chunks/{chunk-HYXUN7BW.js → chunk-WQL7WCIZ.js} +1 -1
- package/dist/cli/chunks/{chunk-BTVWA35P.js → chunk-X2Z7F4EU.js} +2 -2
- package/dist/cli/chunks/{chunk-VBK2YAYY.js → chunk-X7N2JF2X.js} +2 -2
- package/dist/cli/chunks/{chunk-NT7JRHMH.js → chunk-XEAEYC6Y.js} +1 -1
- package/dist/cli/chunks/{chunk-G2IJFNZS.js → chunk-XNBOGCF3.js} +2 -2
- package/dist/cli/chunks/{chunk-LCVEEII4.js → chunk-XPRVF4YE.js} +2 -2
- package/dist/cli/chunks/{chunk-AMZKAJLJ.js → chunk-YBQH2VOP.js} +2 -2
- package/dist/cli/chunks/{chunk-JUMICXM6.js → chunk-YQFLQE53.js} +2 -2
- package/dist/cli/chunks/{chunk-M5RQ6U3G.js → chunk-YSZ5OE3Z.js} +2 -2
- package/dist/cli/chunks/{chunk-RQMCZQN2.js → chunk-YXRASAPI.js} +2 -2
- package/dist/cli/chunks/{chunk-X3PZCXWG.js → chunk-YZEXYO4W.js} +1 -1
- package/dist/cli/chunks/{chunk-TL6OFMXF.js → chunk-YZWBNBTW.js} +2 -2
- package/dist/cli/chunks/{chunk-CFWGGRE7.js → chunk-ZAKQLAHT.js} +1 -1
- package/dist/cli/chunks/ci-ENOASTYB.js +81 -0
- package/dist/cli/chunks/{ci-config-J665XNOX.js → ci-config-B26OXHQM.js} +2 -2
- package/dist/cli/chunks/{ci-output-PEQQQWVD.js → ci-output-JTCLLNOQ.js} +2 -2
- package/dist/cli/chunks/{circuit-breaker-HHB2JSKH.js → circuit-breaker-23JMFNM5.js} +2 -2
- package/dist/cli/chunks/{claude-flow-setup-JKUJRWPN.js → claude-flow-setup-ON6L462G.js} +2 -2
- package/dist/cli/chunks/client-TV3V2YZ5.js +2 -0
- package/dist/cli/chunks/{cline-installer-Y77BWTAN.js → cline-installer-OWQ4D2FQ.js} +2 -2
- package/dist/cli/chunks/{code-LV2HAGJY.js → code-2ZRL7SEU.js} +19 -18
- package/dist/cli/chunks/{code-index-extractor-4GKKSETB.js → code-index-extractor-JXSQVM67.js} +2 -2
- package/dist/cli/chunks/{codex-installer-WMKBYE5Y.js → codex-installer-7LXZYBSQ.js} +2 -2
- package/dist/cli/chunks/{completions-SBGFAOIJ.js → completions-C2LR623C.js} +2 -2
- package/dist/cli/chunks/{complexity-analyzer-AQHFIJXC.js → complexity-analyzer-TGQLHCYJ.js} +2 -2
- package/dist/cli/chunks/{continuedev-installer-26AYFS2E.js → continuedev-installer-RUGD24D2.js} +2 -2
- package/dist/cli/chunks/{copilot-installer-4UD3DK55.js → copilot-installer-ZLFVLEJP.js} +2 -2
- package/dist/cli/chunks/core-handlers-PZT4OLWR.js +2 -0
- package/dist/cli/chunks/{cost-tracker-TP4NZCG4.js → cost-tracker-RT4QL745.js} +2 -2
- package/dist/cli/chunks/{coverage-B2KIXHAI.js → coverage-NV3C4IMM.js} +11 -10
- package/dist/cli/chunks/cross-domain-router-QOFCZ7G4.js +2 -0
- package/dist/cli/chunks/{cursor-installer-AVZEQZ4W.js → cursor-installer-LJKLNFF6.js} +2 -2
- package/dist/cli/chunks/{daemon-XM2A7LQU.js → daemon-BMDXCQT5.js} +3 -3
- package/dist/cli/chunks/{daemon-P574WWBW.js → daemon-FBH3IRYN.js} +4 -4
- package/dist/cli/chunks/{dag-attention-scheduler-MIWOZ6ET.js → dag-attention-scheduler-JGDED55I.js} +2 -2
- package/dist/cli/chunks/{detect-TYR7HT23.js → detect-SZIHIVCJ.js} +2 -2
- package/dist/cli/chunks/{dist-node-2DGVQGLS.js → dist-node-FV3KWXQ6.js} +2 -2
- package/dist/cli/chunks/{domain-handler-RRA4ZOMF.js → domain-handler-GI5JWQOV.js} +2 -2
- package/dist/cli/chunks/{domain-plugins-IVZEZ5RB.js → domain-plugins-BUWY36TL.js} +2 -2
- package/dist/cli/chunks/domain-transfer-GCY7W5DA.js +2 -0
- package/dist/cli/chunks/dream-TRFBGDSQ.js +2 -0
- package/dist/cli/chunks/{embed-and-insert-pattern-VNIEOVPO.js → embed-and-insert-pattern-GPRR3ZGD.js} +2 -2
- package/dist/cli/chunks/{eval-QV4LVPUF.js → eval-XPB3IGAP.js} +2 -2
- package/dist/cli/chunks/{experience-capture-middleware-DAPKT763.js → experience-capture-middleware-2E554UB3.js} +3 -3
- package/dist/cli/chunks/{fast-paths-WVRFPHX7.js → fast-paths-ZSMWZPUC.js} +2 -2
- package/dist/cli/chunks/{feature-flags-DEFTUIYT.js → feature-flags-GIWVDVVC.js} +2 -2
- package/dist/cli/chunks/{feature-flags-O7ZXDDCD.js → feature-flags-N7EOGE5P.js} +2 -2
- package/dist/cli/chunks/file-discovery-WCKGMSPZ.js +2 -0
- package/dist/cli/chunks/fleet-HCHDOUCX.js +44 -0
- package/dist/cli/chunks/{gnn-wrapper-LS4LZJDR.js → gnn-wrapper-CZNCNXXZ.js} +2 -2
- package/dist/cli/chunks/{heartbeat-handler-RFTERD4K.js → heartbeat-handler-6YUIF2YQ.js} +4 -4
- package/dist/cli/chunks/heartbeat-scheduler-P44A2OX3.js +2 -0
- package/dist/cli/chunks/hnsw-adapter-ZJQIQJKC.js +2 -0
- package/dist/cli/chunks/hnsw-index-HMG2GH3Z.js +2 -0
- package/dist/cli/chunks/{hnsw-legacy-bridge-GPKGFFHY.js → hnsw-legacy-bridge-J3M3IK24.js} +2 -2
- package/dist/cli/chunks/{hnswlib-node-PHL3F2PR.js → hnswlib-node-ULGTGDZW.js} +2 -2
- package/dist/cli/chunks/{hooks-GYJ6D4QM.js → hooks-C4BUGYUQ.js} +28 -28
- package/dist/cli/chunks/hybrid-backend-B7M74PZG.js +2 -0
- package/dist/cli/chunks/{hypergraph-engine-YGEQPCKJ.js → hypergraph-engine-WINGVMPG.js} +2 -2
- package/dist/cli/chunks/{hypergraph-handler-ZIMM647V.js → hypergraph-handler-GADMWKAU.js} +3 -3
- package/dist/cli/chunks/impact-analyzer-PZYOVKQO.js +2 -0
- package/dist/cli/chunks/{init-guard-VOMBXJXG.js → init-guard-K2T4QWAO.js} +2 -2
- package/dist/cli/chunks/{init-handler-PSMUBWK5.js → init-handler-PCZTDZYI.js} +6 -6
- package/dist/cli/chunks/init-wizard-TZDJQK3U.js +2 -0
- package/dist/cli/chunks/kernel-Y6RRIOKW.js +2 -0
- package/dist/cli/chunks/{kilocode-installer-2YNTFBWJ.js → kilocode-installer-XENXNEIU.js} +2 -2
- package/dist/cli/chunks/{kiro-installer-XHJDPVAZ.js → kiro-installer-3PG2TJ67.js} +2 -2
- package/dist/cli/chunks/knowledge-graph-BVD5Z66M.js +2 -0
- package/dist/cli/chunks/{learning-GNSIDRNG.js → learning-6KDH7FK4.js} +3 -3
- package/dist/cli/chunks/{llm-router-LQDM7IU2.js → llm-router-RKVDEWU2.js} +4 -4
- package/dist/cli/chunks/llm-router-service-KHCAMSUU.js +2 -0
- package/dist/cli/chunks/{load-YATHI72E.js → load-ITHC564X.js} +2 -2
- package/dist/cli/chunks/load-test-RUF7DZA5.js +2 -0
- package/dist/cli/chunks/{mcp-4Y6GDLYK.js → mcp-TCL5UW3N.js} +2 -2
- package/dist/cli/chunks/{memory-OUW3L7H2.js → memory-BKDAY2N2.js} +5 -5
- package/dist/cli/chunks/memory-backend-7ZLFOVGG.js +2 -0
- package/dist/cli/chunks/{memory-handlers-G3LFF53U.js → memory-handlers-WN4FXFOA.js} +2 -2
- package/dist/cli/chunks/{multi-model-executor-UBZJXAD2.js → multi-model-executor-VHAT7ZPF.js} +2 -2
- package/dist/cli/chunks/{opencode-installer-AMMNWVH5.js → opencode-installer-E3VM3EEY.js} +2 -2
- package/dist/cli/chunks/{orchestrator-Y44WDOER.js → orchestrator-BMQ6X762.js} +58 -20
- package/dist/cli/chunks/pattern-null-store-RY6CVYHP.js +2 -0
- package/dist/cli/chunks/{pattern-usage-recorder-ESR42RME.js → pattern-usage-recorder-GOOR2BV5.js} +2 -2
- package/dist/cli/chunks/{pipeline-EDTS6OSC.js → pipeline-5NSFQQIX.js} +2 -2
- package/dist/cli/chunks/{platform-5WONJSUX.js → platform-SQM34J5G.js} +2 -2
- package/dist/cli/chunks/{plugin-IJXPCLD4.js → plugin-UQJZRMZG.js} +2 -2
- package/dist/cli/chunks/{prime-radiant-advanced-wasm-5ECKGZK6.js → prime-radiant-advanced-wasm-WMDJOL4S.js} +2 -2
- package/dist/cli/chunks/project-root-IO5KRNGL.js +2 -0
- package/dist/cli/chunks/protocol-executor-U2CUDWDE.js +2 -0
- package/dist/cli/chunks/{protocol-handler-DRD3GVNW.js → protocol-handler-OBDCVY6X.js} +2 -2
- package/dist/cli/chunks/{prove-KTGW2HMJ.js → prove-XDC7I4XT.js} +2 -2
- package/dist/cli/chunks/qe-reasoning-bank-DQSSX2IP.js +2 -0
- package/dist/cli/chunks/{quality-DV2WPRRS.js → quality-L4GQ6WX4.js} +2 -2
- package/dist/cli/chunks/{quality-gate-HFUAFVZC.js → quality-gate-MJG66LKN.js} +3 -3
- package/dist/cli/chunks/queen-coordinator-6FN4BZIX.js +2 -0
- package/dist/cli/chunks/real-embeddings-HW4G2LWL.js +2 -0
- package/dist/cli/chunks/{ref-validation-QWSKS5OY.js → ref-validation-FC7JOJ2C.js} +2 -2
- package/dist/cli/chunks/{roocode-installer-RBAYRCHX.js → roocode-installer-KWS4CEIC.js} +2 -2
- package/dist/cli/chunks/router-YUO3I7RU.js +2 -0
- package/dist/cli/chunks/routing-feedback-36SLQGJE.js +2 -0
- package/dist/cli/chunks/{routing-handler-FMPP3XKO.js → routing-handler-QF4WVB2S.js} +2 -2
- package/dist/cli/chunks/{ruvector-commands-KZZT4HWF.js → ruvector-commands-2MTCOUK6.js} +2 -2
- package/dist/cli/chunks/rvf-dual-writer-FRYZH3WZ.js +2 -0
- package/dist/cli/chunks/rvf-migration-adapter-XXNITL5I.js +2 -0
- package/dist/cli/chunks/{rvf-migration-coordinator-7CHEV35N.js → rvf-migration-coordinator-BREJCXWN.js} +2 -2
- package/dist/cli/chunks/rvf-native-adapter-D2WWKJIV.js +2 -0
- package/dist/cli/chunks/{rvf-store-integrity-Q2TH52SN.js → rvf-store-integrity-KKC6HOJD.js} +2 -2
- package/dist/cli/chunks/safe-db-4RRIGRXD.js +2 -0
- package/dist/cli/chunks/schedule-25RTO4DQ.js +2 -0
- package/dist/cli/chunks/scheduler-BPIOJZ5P.js +2 -0
- package/dist/cli/chunks/{security-CUEA3UIM.js → security-OSAE7VAP.js} +3 -3
- package/dist/cli/chunks/{shared-rvf-adapter-DROMBRV2.js → shared-rvf-adapter-COUOS665.js} +2 -2
- package/dist/cli/chunks/{shared-rvf-dual-writer-DBNABOP7.js → shared-rvf-dual-writer-YXMPZKQE.js} +2 -2
- package/dist/cli/chunks/sqlite-persistence-EDF47DDX.js +2 -0
- package/dist/cli/chunks/{standalone-memory-IAHA3M6B.js → standalone-memory-E6JBMOIL.js} +2 -2
- package/dist/cli/chunks/{status-handler-AFUCASTX.js → status-handler-AFTCIYIX.js} +2 -2
- package/dist/cli/chunks/{structural-health-AQRV6JJ6.js → structural-health-2FROCEI4.js} +2 -2
- package/dist/cli/chunks/{sync-XW5TLZ7M.js → sync-VAYTOWDC.js} +2 -2
- package/dist/cli/chunks/{sync-GX7FMJHL.js → sync-YIQYOFGW.js} +2 -2
- package/dist/cli/chunks/task-handler-KVQHDEX3.js +62 -0
- package/dist/cli/chunks/task-handlers-MVVECQA6.js +9 -0
- package/dist/cli/chunks/{test-D2XDJNDX.js → test-5JSVTOMY.js} +4 -4
- package/dist/cli/chunks/test-runner-process-LEPF2OSS.js +2 -0
- package/dist/cli/chunks/{test-scheduling-TS6I2PR7.js → test-scheduling-HBOHVLI3.js} +3 -3
- package/dist/cli/chunks/{token-bootstrap-HBBLPCZ3.js → token-bootstrap-5VEPTPFA.js} +2 -2
- package/dist/cli/chunks/{token-usage-3MBUX4PR.js → token-usage-TBJHDLY6.js} +2 -2
- package/dist/cli/chunks/{transformers-ZWMQO3L2.js → transformers-VAWYMHMZ.js} +2 -2
- package/dist/cli/chunks/tree-sitter-wasm-parser-TSZTCMFV.js +2 -0
- package/dist/cli/chunks/{types-5YEMGPSQ.js → types-R5SDZU2E.js} +2 -2
- package/dist/cli/chunks/unified-memory-TLGSSLMI.js +2 -0
- package/dist/cli/chunks/unified-memory-hnsw-MSUR7ZOO.js +2 -0
- package/dist/cli/chunks/unified-persistence-VFFOTWK7.js +2 -0
- package/dist/cli/chunks/{upgrade-2TPBKIHI.js → upgrade-K5PIHXRB.js} +2 -2
- package/dist/cli/chunks/{validate-XRAXXFW6.js → validate-RPTS7RYJ.js} +2 -2
- package/dist/cli/chunks/{validate-swarm-IYSCS3BZ.js → validate-swarm-B2ZL556X.js} +2 -2
- package/dist/cli/chunks/visual-security-6Q44XNLB.js +2 -0
- package/dist/cli/chunks/{web-tree-sitter-PZQ3ZG2P.js → web-tree-sitter-K4DUJC32.js} +2 -2
- package/dist/cli/chunks/{windsurf-installer-U6XWFRVT.js → windsurf-installer-OK2AJN35.js} +2 -2
- package/dist/cli/chunks/witness-chain-KDOMXDQX.js +2 -0
- package/dist/cli/chunks/witness-chain-N3OY2RMH.js +2 -0
- package/dist/cli/chunks/{witness-chain-repair-K7YX2AO6.js → witness-chain-repair-L6Y5RFXR.js} +2 -2
- package/dist/cli/chunks/{witness-chain-verifier-GUTC3W7N.js → witness-chain-verifier-N4CW7FZX.js} +2 -2
- package/dist/cli/chunks/{witness-key-manager-YBNKMOP6.js → witness-key-manager-TDNPS3WD.js} +2 -2
- package/dist/cli/chunks/{workflow-UAJUILFQ.js → workflow-XRZA3YCY.js} +4 -4
- package/dist/cli/chunks/workflow-orchestrator-CVNNT2RJ.js +2 -0
- package/dist/cli/chunks/{wrappers-AVZ3GPAL.js → wrappers-5JIFWKN6.js} +2 -2
- package/dist/cli/commands/ci.js +7 -0
- package/dist/cli/commands/code.js +6 -0
- package/dist/cli/commands/coverage.js +7 -1
- package/dist/cli/commands/fleet-run.d.ts +12 -0
- package/dist/cli/commands/fleet-run.js +175 -0
- package/dist/cli/commands/fleet.js +2 -117
- 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.d.ts +5 -0
- package/dist/cli/handlers/task-handler.js +26 -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 +10 -2
- package/dist/cli/utils/fleet-operation.js +20 -3
- package/dist/cli/utils/fleet-result.d.ts +20 -4
- package/dist/cli/utils/fleet-result.js +32 -21
- package/dist/cli/utils/fleet-shard.d.ts +36 -0
- package/dist/cli/utils/fleet-shard.js +110 -0
- package/dist/coordination/handlers/code-intelligence-handlers.js +21 -1
- 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-types.d.ts +2 -2
- package/dist/coordination/handlers/handler-utils.d.ts +11 -0
- package/dist/coordination/handlers/handler-utils.js +22 -8
- package/dist/coordination/handlers/misc-handlers.js +5 -2
- package/dist/coordination/handlers/quality-handlers.js +2 -2
- package/dist/coordination/handlers/security-handlers.js +12 -2
- package/dist/coordination/protocols/security-audit.js +11 -1
- package/dist/coordination/task-executor.js +7 -2
- package/dist/domains/code-intelligence/coordinator-gnn.d.ts +2 -16
- package/dist/domains/code-intelligence/coordinator-gnn.js +1 -62
- package/dist/domains/code-intelligence/coordinator.d.ts +12 -6
- package/dist/domains/code-intelligence/coordinator.js +24 -27
- package/dist/domains/code-intelligence/interfaces.d.ts +9 -0
- package/dist/domains/code-intelligence/services/metric-collector/listing-process-owner.js +4 -1
- package/dist/domains/code-intelligence/services/semantic-analyzer.d.ts +51 -5
- package/dist/domains/code-intelligence/services/semantic-analyzer.js +144 -78
- package/dist/domains/coverage-analysis/collected-metrics.d.ts +10 -0
- package/dist/domains/coverage-analysis/collected-metrics.js +29 -0
- package/dist/domains/coverage-analysis/services/coverage-analyzer.js +11 -3
- package/dist/domains/coverage-analysis/services/coverage-parser.d.ts +2 -0
- package/dist/domains/coverage-analysis/services/coverage-parser.js +18 -2
- package/dist/domains/quality-assessment/coherence/gate-controller.js +16 -4
- package/dist/domains/quality-assessment/coherence/lambda-calculator.d.ts +8 -0
- package/dist/domains/quality-assessment/coherence/lambda-calculator.js +57 -14
- package/dist/domains/quality-assessment/coherence/types.d.ts +12 -7
- package/dist/domains/quality-assessment/coordinator-gate-evaluation.js +3 -1
- package/dist/domains/quality-assessment/coordinator-reports.d.ts +30 -10
- package/dist/domains/quality-assessment/coordinator-reports.js +93 -57
- package/dist/domains/quality-assessment/coordinator.d.ts +14 -40
- package/dist/domains/quality-assessment/coordinator.js +10 -4
- package/dist/domains/quality-assessment/interfaces.d.ts +2 -0
- package/dist/domains/quality-assessment/services/coherence-gate.js +15 -2
- package/dist/domains/quality-assessment/services/quality-gate.js +6 -4
- package/dist/domains/security-compliance/index.d.ts +1 -1
- package/dist/domains/security-compliance/interfaces.d.ts +46 -5
- package/dist/domains/security-compliance/services/scanners/dast-auth-testing.d.ts +3 -3
- package/dist/domains/security-compliance/services/scanners/dast-auth-testing.js +15 -14
- package/dist/domains/security-compliance/services/scanners/dast-helpers.d.ts +8 -9
- package/dist/domains/security-compliance/services/scanners/dast-helpers.js +19 -44
- package/dist/domains/security-compliance/services/scanners/dast-injection-testing.d.ts +3 -3
- package/dist/domains/security-compliance/services/scanners/dast-injection-testing.js +13 -9
- package/dist/domains/security-compliance/services/scanners/dast-requests.d.ts +54 -0
- package/dist/domains/security-compliance/services/scanners/dast-requests.js +125 -0
- package/dist/domains/security-compliance/services/scanners/dast-scanner.d.ts +5 -1
- package/dist/domains/security-compliance/services/scanners/dast-scanner.js +125 -155
- package/dist/domains/security-compliance/services/scanners/index.d.ts +1 -1
- package/dist/domains/security-compliance/services/scanners/index.js +1 -1
- package/dist/domains/security-compliance/services/scanners/scanner-types.d.ts +2 -2
- package/dist/domains/security-compliance/services/security-auditor-dast.js +183 -212
- package/dist/domains/security-compliance/services/security-auditor-reports.js +5 -1
- package/dist/domains/security-compliance/services/security-auditor.d.ts +11 -3
- package/dist/domains/security-compliance/services/security-auditor.js +106 -65
- package/dist/domains/test-execution/coordinator.d.ts +2 -1
- package/dist/domains/test-execution/coordinator.js +33 -27
- package/dist/domains/test-execution/interfaces.d.ts +5 -0
- package/dist/domains/test-execution/services/test-executor.d.ts +6 -0
- package/dist/domains/test-execution/services/test-executor.js +16 -4
- package/dist/domains/visual-accessibility/coordinator.js +34 -9
- package/dist/domains/visual-accessibility/interfaces.d.ts +27 -0
- package/dist/domains/visual-accessibility/plugin.js +5 -0
- package/dist/domains/visual-accessibility/services/accessibility-tester-heuristics.d.ts +13 -21
- package/dist/domains/visual-accessibility/services/accessibility-tester-heuristics.js +13 -297
- package/dist/domains/visual-accessibility/services/accessibility-tester.d.ts +13 -5
- package/dist/domains/visual-accessibility/services/accessibility-tester.js +96 -73
- 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/integrations/embeddings/index/HNSWIndex.js +8 -4
- package/dist/integrations/ruvector/transfer-coherence-stub.js +5 -10
- 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 +509 -497
- 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 +8 -0
- package/dist/mcp/handlers/domain-handler-configs.js +14 -2
- package/dist/mcp/handlers/handler-factory.js +3 -0
- package/dist/mcp/handlers/model-route-handlers.d.ts +107 -0
- package/dist/mcp/handlers/model-route-handlers.js +139 -0
- package/dist/mcp/handlers/orchestrate-routes.d.ts +6 -1
- package/dist/mcp/handlers/orchestrate-routes.js +94 -3
- package/dist/mcp/handlers/task-handlers.d.ts +3 -242
- package/dist/mcp/handlers/task-handlers.js +11 -788
- package/dist/mcp/handlers/task-inference.d.ts +26 -0
- package/dist/mcp/handlers/task-inference.js +156 -0
- package/dist/mcp/handlers/task-learning-handlers.d.ts +92 -0
- package/dist/mcp/handlers/task-learning-handlers.js +230 -0
- package/dist/mcp/handlers/task-orchestrate-handler.d.ts +73 -0
- package/dist/mcp/handlers/task-orchestrate-handler.js +361 -0
- package/dist/mcp/protocol-server.js +15 -2
- package/dist/mcp/services/reasoning-bank-service.d.ts +6 -1
- package/dist/mcp/services/reasoning-bank-service.js +9 -0
- package/dist/mcp/tools/code-intelligence/analyze.js +3 -6
- package/dist/mcp/tools/coverage-analysis/index.d.ts +4 -0
- package/dist/mcp/tools/coverage-analysis/index.js +8 -2
- package/dist/mcp/tools/visual-accessibility/index.d.ts +7 -0
- package/dist/mcp/tools/visual-accessibility/index.js +29 -13
- package/dist/mcp/types.d.ts +14 -0
- package/dist/routing/advisor/redaction.js +22 -2
- package/dist/shared/events/domain-events.d.ts +2 -0
- package/dist/shared/llm/providers/response-deadline.js +16 -2
- package/dist/shared/metrics/code-metrics.js +21 -3
- package/dist/shared/parsers/typescript-parser.d.ts +6 -0
- package/dist/shared/parsers/typescript-parser.js +13 -1
- 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-H43AFUKL.js +0 -2
- 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-K2HBNYAZ.js +0 -62
- 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/domain-transfer-DOBI67K6.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-handler-TFKVUTNF.js +0 -60
- 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
|
@@ -19,6 +19,7 @@ import { EventBus, MemoryBackend, AgentCoordinator } from '../../kernel/interfac
|
|
|
19
19
|
import type { HybridRouter } from '../../shared/llm/router/hybrid-router.js';
|
|
20
20
|
import { QualityAssessmentAPI, GateEvaluationRequest, GateResult, QualityAnalysisRequest, QualityReport, DeploymentRequest, DeploymentAdvice, ComplexityRequest, ComplexityReport, QualityMetrics } from './interfaces';
|
|
21
21
|
import { ClaimVerifierService } from '../../agents/claim-verifier/index.js';
|
|
22
|
+
import * as ReportHelpers from './coordinator-reports.js';
|
|
22
23
|
import type { QueenMinCutBridge } from '../../coordination/mincut/queen-integration';
|
|
23
24
|
import type { ConsensusStats } from '../../coordination/consensus';
|
|
24
25
|
import { BaseDomainCoordinator, type BaseDomainCoordinatorConfig } from '../base-domain-coordinator.js';
|
|
@@ -154,19 +155,13 @@ export declare class QualityAssessmentCoordinator extends BaseDomainCoordinator<
|
|
|
154
155
|
generateReport(options: {
|
|
155
156
|
format: 'json' | 'html' | 'markdown';
|
|
156
157
|
includeRecommendations?: boolean;
|
|
157
|
-
}):
|
|
158
|
-
content: string;
|
|
159
|
-
format: string;
|
|
160
|
-
}, Error>>;
|
|
158
|
+
}): ReturnType<typeof ReportHelpers.generateReport>;
|
|
161
159
|
/**
|
|
162
|
-
* Get quality dashboard overview
|
|
160
|
+
* Get quality dashboard overview. #1020: built from measured evidence only;
|
|
161
|
+
* unmeasured metrics are -1 and listed in `unmeasured`.
|
|
163
162
|
* @returns Result containing dashboard data
|
|
164
163
|
*/
|
|
165
|
-
getQualityDashboard():
|
|
166
|
-
overallScore: number;
|
|
167
|
-
metrics: QualityMetrics;
|
|
168
|
-
trends: Record<string, number>;
|
|
169
|
-
}, Error>>;
|
|
164
|
+
getQualityDashboard(): ReturnType<typeof ReportHelpers.getQualityDashboard>;
|
|
170
165
|
/**
|
|
171
166
|
* Analyze project risks
|
|
172
167
|
* @param options - Risk analysis options
|
|
@@ -175,17 +170,10 @@ export declare class QualityAssessmentCoordinator extends BaseDomainCoordinator<
|
|
|
175
170
|
analyzeRisks(options: {
|
|
176
171
|
scope: 'project' | 'module' | 'file';
|
|
177
172
|
includeSecurityRisks?: boolean;
|
|
178
|
-
}):
|
|
179
|
-
risks: Array<{
|
|
180
|
-
id: string;
|
|
181
|
-
severity: string;
|
|
182
|
-
description: string;
|
|
183
|
-
category: string;
|
|
184
|
-
}>;
|
|
185
|
-
overallRiskLevel: 'low' | 'medium' | 'high' | 'critical';
|
|
186
|
-
}, Error>>;
|
|
173
|
+
}): ReturnType<typeof ReportHelpers.analyzeRisks>;
|
|
187
174
|
/**
|
|
188
|
-
* Evaluate a quality gate (simplified API)
|
|
175
|
+
* Evaluate a quality gate (simplified API). #1020: a metric the caller does
|
|
176
|
+
* not supply is unmeasured, so the gate cannot pass on it.
|
|
189
177
|
* @param options - Quality gate evaluation options
|
|
190
178
|
* @returns Result containing gate evaluation
|
|
191
179
|
*/
|
|
@@ -194,26 +182,21 @@ export declare class QualityAssessmentCoordinator extends BaseDomainCoordinator<
|
|
|
194
182
|
metrics: Partial<QualityMetrics>;
|
|
195
183
|
}): Promise<Result<{
|
|
196
184
|
passed: boolean;
|
|
185
|
+
/** 0-100; -1 when a configured check is unmeasured. */
|
|
197
186
|
score: number;
|
|
198
187
|
violations: string[];
|
|
188
|
+
evidenceStatus?: GateResult['evidenceStatus'];
|
|
189
|
+
unmeasured?: string[];
|
|
199
190
|
}, Error>>;
|
|
200
191
|
/**
|
|
201
|
-
* Assess deployment readiness
|
|
192
|
+
* Assess deployment readiness. #1020: never ready while an input is unmeasured.
|
|
202
193
|
* @param options - Deployment readiness options
|
|
203
194
|
* @returns Result containing readiness assessment
|
|
204
195
|
*/
|
|
205
196
|
assessDeploymentReadiness(options: {
|
|
206
197
|
environment: 'development' | 'staging' | 'production';
|
|
207
198
|
changeSet: string[];
|
|
208
|
-
}):
|
|
209
|
-
ready: boolean;
|
|
210
|
-
risks: Array<{
|
|
211
|
-
id: string;
|
|
212
|
-
severity: string;
|
|
213
|
-
description: string;
|
|
214
|
-
}>;
|
|
215
|
-
score: number;
|
|
216
|
-
}, Error>>;
|
|
199
|
+
}): ReturnType<typeof ReportHelpers.assessDeploymentReadiness>;
|
|
217
200
|
/**
|
|
218
201
|
* Analyze technical debt
|
|
219
202
|
* @param options - Technical debt analysis options
|
|
@@ -222,16 +205,7 @@ export declare class QualityAssessmentCoordinator extends BaseDomainCoordinator<
|
|
|
222
205
|
analyzeTechnicalDebt(options: {
|
|
223
206
|
projectPath: string;
|
|
224
207
|
includeCodeSmells?: boolean;
|
|
225
|
-
}):
|
|
226
|
-
totalDebt: number;
|
|
227
|
-
items: Array<{
|
|
228
|
-
file: string;
|
|
229
|
-
type: string;
|
|
230
|
-
effort: number;
|
|
231
|
-
description: string;
|
|
232
|
-
}>;
|
|
233
|
-
debtRatio: number;
|
|
234
|
-
}, Error>>;
|
|
208
|
+
}): ReturnType<typeof ReportHelpers.analyzeTechnicalDebt>;
|
|
235
209
|
private spawnQualityGateAgent;
|
|
236
210
|
private spawnQualityAnalyzerAgent;
|
|
237
211
|
private spawnDeploymentAdvisorAgent;
|
|
@@ -236,7 +236,9 @@ export class QualityAssessmentCoordinator extends BaseDomainCoordinator {
|
|
|
236
236
|
// V3 Integration: Use consensus for borderline cases (CONSENSUS-MIXIN-001)
|
|
237
237
|
// Borderline cases are pass/fail decisions where metrics are close to thresholds
|
|
238
238
|
let finalResult = result.value;
|
|
239
|
-
|
|
239
|
+
// #1020: a verdict on missing evidence is not borderline; it is not a verdict.
|
|
240
|
+
if (this.config.enableConsensus && result.value.evidenceStatus !== 'insufficient-evidence'
|
|
241
|
+
&& this.isBorderlineGateResult(request.metrics, request.thresholds, result.value)) {
|
|
240
242
|
const consensusResult = await this.verifyGateVerdictWithConsensus(effectiveRequest, result.value);
|
|
241
243
|
if (consensusResult) {
|
|
242
244
|
finalResult = consensusResult;
|
|
@@ -544,7 +546,8 @@ export class QualityAssessmentCoordinator extends BaseDomainCoordinator {
|
|
|
544
546
|
return ReportHelpers.generateReport(this.memory, options);
|
|
545
547
|
}
|
|
546
548
|
/**
|
|
547
|
-
* Get quality dashboard overview
|
|
549
|
+
* Get quality dashboard overview. #1020: built from measured evidence only;
|
|
550
|
+
* unmeasured metrics are -1 and listed in `unmeasured`.
|
|
548
551
|
* @returns Result containing dashboard data
|
|
549
552
|
*/
|
|
550
553
|
async getQualityDashboard() {
|
|
@@ -559,7 +562,8 @@ export class QualityAssessmentCoordinator extends BaseDomainCoordinator {
|
|
|
559
562
|
return ReportHelpers.analyzeRisks(this.memory, options);
|
|
560
563
|
}
|
|
561
564
|
/**
|
|
562
|
-
* Evaluate a quality gate (simplified API)
|
|
565
|
+
* Evaluate a quality gate (simplified API). #1020: a metric the caller does
|
|
566
|
+
* not supply is unmeasured, so the gate cannot pass on it.
|
|
563
567
|
* @param options - Quality gate evaluation options
|
|
564
568
|
* @returns Result containing gate evaluation
|
|
565
569
|
*/
|
|
@@ -573,10 +577,12 @@ export class QualityAssessmentCoordinator extends BaseDomainCoordinator {
|
|
|
573
577
|
passed: result.value.passed,
|
|
574
578
|
score: result.value.overallScore,
|
|
575
579
|
violations: result.value.failedChecks,
|
|
580
|
+
...(result.value.evidenceStatus ? { evidenceStatus: result.value.evidenceStatus } : {}),
|
|
581
|
+
...(result.value.unmeasured ? { unmeasured: result.value.unmeasured } : {}),
|
|
576
582
|
});
|
|
577
583
|
}
|
|
578
584
|
/**
|
|
579
|
-
* Assess deployment readiness
|
|
585
|
+
* Assess deployment readiness. #1020: never ready while an input is unmeasured.
|
|
580
586
|
* @param options - Deployment readiness options
|
|
581
587
|
* @returns Result containing readiness assessment
|
|
582
588
|
*/
|
|
@@ -54,7 +54,9 @@ export interface GateResult {
|
|
|
54
54
|
gateName: string;
|
|
55
55
|
passed: boolean;
|
|
56
56
|
checks: GateCheck[];
|
|
57
|
+
/** 0-100; -1 when any configured check is unmeasured (#1020). */
|
|
57
58
|
overallScore: number;
|
|
59
|
+
/** Measured checks that failed their threshold; unmeasured checks are not listed (#1020). */
|
|
58
60
|
failedChecks: string[];
|
|
59
61
|
/** Gate service evidence state; absent for other gate implementations. */
|
|
60
62
|
evidenceStatus?: 'measured' | 'insufficient-evidence';
|
|
@@ -11,7 +11,10 @@ import { QualityTier, DEFAULT_COHERENCE_GATE_POLICY, } from '../coherence/index.
|
|
|
11
11
|
import { createLambdaCalculator, } from '../coherence/lambda-calculator.js';
|
|
12
12
|
import { createCoherenceGateController, } from '../coherence/gate-controller.js';
|
|
13
13
|
import { toError } from '../../../shared/error-utils.js';
|
|
14
|
+
import { isMeasuredMetricValue } from '../evidence-sufficiency.js';
|
|
14
15
|
import { createPartitionDetector, } from '../coherence/partition-detector.js';
|
|
16
|
+
/** #996: the sentinel for an input with no measured value. */
|
|
17
|
+
const UNMEASURED = -1;
|
|
15
18
|
/**
|
|
16
19
|
* Default service configuration
|
|
17
20
|
*/
|
|
@@ -175,13 +178,23 @@ export class CoherenceGateService extends QualityGateService {
|
|
|
175
178
|
* Convert QualityMetrics to coherence input format
|
|
176
179
|
*/
|
|
177
180
|
convertToCoherenceMetrics(metrics, previousLambda) {
|
|
181
|
+
// #1020: QualityMetrics carries no latency or flaky-test data, so those
|
|
182
|
+
// inputs are unmeasured (-1) instead of an invented "fast, not flaky"
|
|
183
|
+
// value. The total vulnerability count is weighted as critical, so the
|
|
184
|
+
// high/medium breakdown adds nothing when the total was measured.
|
|
185
|
+
const vulns = isMeasuredMetricValue(metrics.securityVulnerabilities) ? 0 : UNMEASURED;
|
|
178
186
|
return {
|
|
179
187
|
lineCoverage: metrics.coverage,
|
|
180
188
|
testPassRate: metrics.testsPassing,
|
|
181
189
|
criticalVulns: metrics.securityVulnerabilities,
|
|
182
|
-
|
|
190
|
+
highVulns: vulns,
|
|
191
|
+
mediumVulns: vulns,
|
|
192
|
+
p95Latency: UNMEASURED,
|
|
183
193
|
targetLatency: 200, // Default target
|
|
184
|
-
maintainabilityIndex:
|
|
194
|
+
maintainabilityIndex: isMeasuredMetricValue(metrics.technicalDebt)
|
|
195
|
+
? 100 - metrics.technicalDebt * 10 // Convert debt hours to index
|
|
196
|
+
: UNMEASURED,
|
|
197
|
+
flakyTestRatio: UNMEASURED,
|
|
185
198
|
duplicationPercent: metrics.duplications,
|
|
186
199
|
previousLambda,
|
|
187
200
|
};
|
|
@@ -87,14 +87,16 @@ export class QualityGateService {
|
|
|
87
87
|
const unmeasured = checks
|
|
88
88
|
.filter((check) => !isMeasuredMetricValue(check.value))
|
|
89
89
|
.map((check) => check.name);
|
|
90
|
-
// Collect failed checks
|
|
90
|
+
// Collect failed checks. #1020: an unmeasured check did not fail a
|
|
91
|
+
// threshold; it is listed in `unmeasured` only.
|
|
91
92
|
for (const check of checks) {
|
|
92
|
-
if (!check.passed) {
|
|
93
|
+
if (!check.passed && isMeasuredMetricValue(check.value)) {
|
|
93
94
|
failedChecks.push(check.name);
|
|
94
95
|
}
|
|
95
96
|
}
|
|
96
|
-
// Calculate overall score (0-100)
|
|
97
|
-
|
|
97
|
+
// Calculate overall score (0-100). #1020: -1 = no measured score, the
|
|
98
|
+
// same sentinel quality_assess uses; never a score over partial data.
|
|
99
|
+
const overallScore = unmeasured.length === 0 ? this.calculateOverallScore(checks) : -1;
|
|
98
100
|
// Determine pass/fail based on critical checks
|
|
99
101
|
const passed = unmeasured.length === 0 && this.determineGateStatus(checks);
|
|
100
102
|
const result = {
|
|
@@ -9,5 +9,5 @@ export { SecurityComplianceCoordinator, type IExtendedSecurityComplianceCoordina
|
|
|
9
9
|
export { SecurityScannerService, type ISecurityScannerService, type SecurityScannerConfig, type FullScanResult, } from './services/security-scanner.js';
|
|
10
10
|
export { SecurityAuditorService, type ISecurityAuditorService, type SecurityAuditorConfig, type SecurityPostureSummary, type TriagedVulnerabilities, } from './services/security-auditor.js';
|
|
11
11
|
export { ComplianceValidatorService, type IExtendedComplianceValidationService, type ComplianceValidatorConfig, type MultiStandardReport, type DataType, type DataHandlingReport, type DataLocation, type ComplianceEvidence, type ControlEvidence, } from './services/compliance-validator.js';
|
|
12
|
-
export type { Vulnerability, VulnerabilitySeverity, VulnerabilityCategory, VulnerabilityLocation, DependencyInfo, RemediationAdvice, ComplianceStandard, ComplianceRule, ComplianceViolation, ComplianceContext, ComplianceReport, GapAnalysis, ComplianceGap, RemediationAction, SASTResult, DASTResult, DASTOptions, DependencyScanResult, SecretScanResult, DetectedSecret, ScanSummary, ScanStatus, RuleSet, FalsePositiveCheck, SecurityCoverage, AuthCredentials, PackageSecurityInfo, OutdatedPackage, UpgradeRecommendation, SecurityAuditOptions, SecurityAuditReport, SecurityPosture, ISASTService, IDASTService, IDependencySecurityService, IComplianceValidationService, ISecurityComplianceCoordinator, IVulnerabilityRepository, IComplianceReportRepository, SecurityScanCompletedEvent, VulnerabilityDetectedEvent, ComplianceCheckCompletedEvent, } from './interfaces.js';
|
|
12
|
+
export type { Vulnerability, VulnerabilitySeverity, VulnerabilityCategory, VulnerabilityLocation, DependencyInfo, RemediationAdvice, ComplianceStandard, ComplianceRule, ComplianceViolation, ComplianceContext, ComplianceReport, GapAnalysis, ComplianceGap, RemediationAction, SASTResult, DASTResult, DASTScanStatus, DASTRequestFailure, DASTOptions, DependencyScanResult, SecretScanResult, DetectedSecret, ScanSummary, ScanStatus, RuleSet, FalsePositiveCheck, SecurityCoverage, AuthCredentials, PackageSecurityInfo, OutdatedPackage, UpgradeRecommendation, SecurityAuditOptions, SecurityAuditReport, SecurityPosture, ISASTService, IDASTService, IDependencySecurityService, IComplianceValidationService, ISecurityComplianceCoordinator, IVulnerabilityRepository, IComplianceReportRepository, SecurityScanCompletedEvent, VulnerabilityDetectedEvent, ComplianceCheckCompletedEvent, } from './interfaces.js';
|
|
13
13
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -179,12 +179,32 @@ export interface DASTOptions {
|
|
|
179
179
|
readonly activeScanning?: boolean;
|
|
180
180
|
readonly timeout?: number;
|
|
181
181
|
}
|
|
182
|
+
/**
|
|
183
|
+
* Completeness of a DAST scan (#1135), on the model of DependencyScanStatus (#1049).
|
|
184
|
+
* - complete: every planned request was answered; the findings (or none) are a measurement.
|
|
185
|
+
* - incomplete: the target answered, some probes did not; the findings are real, the rest is unmeasured.
|
|
186
|
+
* - failed: the target could not be scanned. Never read as "no findings".
|
|
187
|
+
*/
|
|
188
|
+
export type DASTScanStatus = 'complete' | 'incomplete' | 'failed';
|
|
189
|
+
/** A DAST request the target did not answer (#1135). */
|
|
190
|
+
export interface DASTRequestFailure {
|
|
191
|
+
/** Origin and path of the request; query strings and credentials are not kept. */
|
|
192
|
+
readonly url: string;
|
|
193
|
+
/** DAST_REQUEST_FAILED, DAST_REQUEST_TIMEOUT, DAST_TLS_FAILED, DAST_RATE_LIMITED, ... */
|
|
194
|
+
readonly code: string;
|
|
195
|
+
readonly reason: string;
|
|
196
|
+
}
|
|
182
197
|
export interface DASTResult {
|
|
183
198
|
readonly scanId: string;
|
|
184
199
|
readonly targetUrl: string;
|
|
185
200
|
readonly vulnerabilities: Vulnerability[];
|
|
186
201
|
readonly summary: ScanSummary;
|
|
187
202
|
readonly crawledUrls: number;
|
|
203
|
+
readonly status: DASTScanStatus;
|
|
204
|
+
/** Requests the target did not answer; non-empty means the scan is not complete. */
|
|
205
|
+
readonly failedRequests: DASTRequestFailure[];
|
|
206
|
+
/** Why the scan is incomplete/failed; absent when complete. */
|
|
207
|
+
readonly error?: string;
|
|
188
208
|
}
|
|
189
209
|
export interface AuthCredentials {
|
|
190
210
|
readonly type: 'basic' | 'bearer' | 'cookie' | 'oauth';
|
|
@@ -213,6 +233,16 @@ export interface IDependencySecurityService {
|
|
|
213
233
|
export interface DependencyScanResult {
|
|
214
234
|
readonly vulnerabilities: Vulnerability[];
|
|
215
235
|
readonly outdatedPackages: OutdatedPackage[];
|
|
236
|
+
/**
|
|
237
|
+
* #1221: whether the latest version of every dependency was looked up. Only
|
|
238
|
+
* 'complete' means `outdatedPackages` is the full list; 'incomplete' and
|
|
239
|
+
* 'failed' list the packages not checked in `outdatedUnchecked`, and
|
|
240
|
+
* 'not-run' means this scan does not look up latest versions. An empty
|
|
241
|
+
* `outdatedPackages` is "up to date" only when this is 'complete'.
|
|
242
|
+
*/
|
|
243
|
+
readonly outdatedStatus: 'complete' | 'incomplete' | 'failed' | 'not-run';
|
|
244
|
+
/** #1221: dependencies whose latest version could not be looked up, and why. */
|
|
245
|
+
readonly outdatedUnchecked: UncheckedDependency[];
|
|
216
246
|
readonly summary: ScanSummary;
|
|
217
247
|
/**
|
|
218
248
|
* #1049: whether the advisory lookup covered every dependency. Only
|
|
@@ -227,7 +257,7 @@ export interface DependencyScanResult {
|
|
|
227
257
|
/** Why the scan is incomplete/failed; absent when complete. */
|
|
228
258
|
readonly error?: string;
|
|
229
259
|
}
|
|
230
|
-
/** A dependency whose advisories could not be checked, and why
|
|
260
|
+
/** A dependency whose advisories (#1049) or latest version (#1221) could not be checked, and why. */
|
|
231
261
|
export interface UncheckedDependency {
|
|
232
262
|
readonly name: string;
|
|
233
263
|
/** The spec as declared in the manifest. */
|
|
@@ -249,8 +279,13 @@ export interface PackageSecurityInfo {
|
|
|
249
279
|
readonly name: string;
|
|
250
280
|
readonly version: string;
|
|
251
281
|
readonly vulnerabilities: Vulnerability[];
|
|
252
|
-
|
|
253
|
-
readonly
|
|
282
|
+
/** null when the registry lookup failed (#1052). */
|
|
283
|
+
readonly latestVersion: string | null;
|
|
284
|
+
/** null when deprecation could not be checked, never `false` (#1052). */
|
|
285
|
+
readonly isDeprecated: boolean | null;
|
|
286
|
+
/** incomplete when a registry lookup failed; `unchecked` says which and why. */
|
|
287
|
+
readonly status: 'complete' | 'incomplete';
|
|
288
|
+
readonly unchecked?: string[];
|
|
254
289
|
}
|
|
255
290
|
export interface OutdatedPackage {
|
|
256
291
|
readonly name: string;
|
|
@@ -261,9 +296,13 @@ export interface OutdatedPackage {
|
|
|
261
296
|
export interface UpgradeRecommendation {
|
|
262
297
|
readonly package: string;
|
|
263
298
|
readonly fromVersion: string;
|
|
264
|
-
|
|
299
|
+
/** null when the registry lookup failed; see `unchecked` (#1052). */
|
|
300
|
+
readonly toVersion: string | null;
|
|
265
301
|
readonly fixesVulnerabilities: string[];
|
|
266
|
-
|
|
302
|
+
/** null when the target version is unknown. */
|
|
303
|
+
readonly breakingChanges: boolean | null;
|
|
304
|
+
/** Why no target version could be looked up; absent when it was. */
|
|
305
|
+
readonly unchecked?: string;
|
|
267
306
|
}
|
|
268
307
|
/**
|
|
269
308
|
* Compliance Validation Service
|
|
@@ -358,6 +397,8 @@ export interface SecurityAuditReport {
|
|
|
358
397
|
readonly secretScanResults?: SecretScanResult;
|
|
359
398
|
readonly overallRiskScore: RiskScore;
|
|
360
399
|
readonly recommendations: string[];
|
|
400
|
+
/** Checks that ran but could not complete (#1052); absent when every included check completed. */
|
|
401
|
+
readonly incompleteChecks?: string[];
|
|
361
402
|
}
|
|
362
403
|
export interface SecretScanResult {
|
|
363
404
|
readonly secretsFound: DetectedSecret[];
|
|
@@ -2,15 +2,15 @@
|
|
|
2
2
|
* Agentic QE v3 - DAST Authorization Testing
|
|
3
3
|
* Authorization bypass and IDOR testing utilities
|
|
4
4
|
*/
|
|
5
|
-
import type { Vulnerability, AuthCredentials } from './scanner-types.js';
|
|
5
|
+
import type { Vulnerability, AuthCredentials, DASTRequestFailure } from './scanner-types.js';
|
|
6
6
|
/**
|
|
7
7
|
* Test for authorization bypass on protected endpoints
|
|
8
8
|
*/
|
|
9
|
-
export declare function testAuthorizationBypass(parsedUrl: URL, authHeaders: Record<string, string>, crawledUrls: number, maxDepth: number, vulnerabilities: Vulnerability[]): Promise<number>;
|
|
9
|
+
export declare function testAuthorizationBypass(parsedUrl: URL, authHeaders: Record<string, string>, crawledUrls: number, maxDepth: number, vulnerabilities: Vulnerability[], failures?: DASTRequestFailure[]): Promise<number>;
|
|
10
10
|
/**
|
|
11
11
|
* Test for Insecure Direct Object References (IDOR)
|
|
12
12
|
*/
|
|
13
|
-
export declare function testIDOR(parsedUrl: URL, authHeaders: Record<string, string>, crawledUrls: number, maxDepth: number, vulnerabilities: Vulnerability[]): Promise<number>;
|
|
13
|
+
export declare function testIDOR(parsedUrl: URL, authHeaders: Record<string, string>, crawledUrls: number, maxDepth: number, vulnerabilities: Vulnerability[], failures?: DASTRequestFailure[]): Promise<number>;
|
|
14
14
|
/**
|
|
15
15
|
* Validate authentication credentials
|
|
16
16
|
*/
|
|
@@ -3,13 +3,14 @@
|
|
|
3
3
|
* Authorization bypass and IDOR testing utilities
|
|
4
4
|
*/
|
|
5
5
|
import { v4 as uuidv4 } from 'uuid';
|
|
6
|
+
import { probe } from './dast-requests.js';
|
|
6
7
|
// ============================================================================
|
|
7
8
|
// Authorization Testing
|
|
8
9
|
// ============================================================================
|
|
9
10
|
/**
|
|
10
11
|
* Test for authorization bypass on protected endpoints
|
|
11
12
|
*/
|
|
12
|
-
export async function testAuthorizationBypass(parsedUrl, authHeaders, crawledUrls, maxDepth, vulnerabilities) {
|
|
13
|
+
export async function testAuthorizationBypass(parsedUrl, authHeaders, crawledUrls, maxDepth, vulnerabilities, failures) {
|
|
13
14
|
const protectedEndpoints = [
|
|
14
15
|
'/admin',
|
|
15
16
|
'/dashboard',
|
|
@@ -23,21 +24,21 @@ export async function testAuthorizationBypass(parsedUrl, authHeaders, crawledUrl
|
|
|
23
24
|
break;
|
|
24
25
|
const testUrl = new URL(endpoint, parsedUrl.origin).toString();
|
|
25
26
|
// Try with authentication
|
|
26
|
-
const authResponse = await
|
|
27
|
+
const authResponse = await probe(testUrl, {
|
|
27
28
|
method: 'GET',
|
|
28
29
|
headers: { ...authHeaders },
|
|
29
30
|
signal: AbortSignal.timeout(5000),
|
|
30
|
-
});
|
|
31
|
-
if (authResponse
|
|
31
|
+
}, failures);
|
|
32
|
+
if (authResponse?.ok) {
|
|
32
33
|
crawledUrls++;
|
|
33
34
|
// Try without authentication
|
|
34
|
-
const unauthResponse = await
|
|
35
|
+
const unauthResponse = await probe(testUrl, {
|
|
35
36
|
method: 'GET',
|
|
36
37
|
signal: AbortSignal.timeout(5000),
|
|
37
|
-
});
|
|
38
|
-
if (unauthResponse
|
|
39
|
-
const authText =
|
|
40
|
-
const unauthText =
|
|
38
|
+
}, failures);
|
|
39
|
+
if (unauthResponse?.ok && unauthResponse.status === 200) {
|
|
40
|
+
const authText = authResponse.text;
|
|
41
|
+
const unauthText = unauthResponse.text;
|
|
41
42
|
if (authText.length > 100 && unauthText.length > 100 &&
|
|
42
43
|
Math.abs(authText.length - unauthText.length) < authText.length * 0.1) {
|
|
43
44
|
vulnerabilities.push({
|
|
@@ -59,7 +60,7 @@ export async function testAuthorizationBypass(parsedUrl, authHeaders, crawledUrl
|
|
|
59
60
|
/**
|
|
60
61
|
* Test for Insecure Direct Object References (IDOR)
|
|
61
62
|
*/
|
|
62
|
-
export async function testIDOR(parsedUrl, authHeaders, crawledUrls, maxDepth, vulnerabilities) {
|
|
63
|
+
export async function testIDOR(parsedUrl, authHeaders, crawledUrls, maxDepth, vulnerabilities, failures) {
|
|
63
64
|
const idorEndpoints = [
|
|
64
65
|
'/api/users/1',
|
|
65
66
|
'/api/users/2',
|
|
@@ -70,14 +71,14 @@ export async function testIDOR(parsedUrl, authHeaders, crawledUrls, maxDepth, vu
|
|
|
70
71
|
if (crawledUrls >= maxDepth * 15)
|
|
71
72
|
break;
|
|
72
73
|
const testUrl = new URL(endpoint, parsedUrl.origin).toString();
|
|
73
|
-
const response = await
|
|
74
|
+
const response = await probe(testUrl, {
|
|
74
75
|
method: 'GET',
|
|
75
76
|
headers: { ...authHeaders },
|
|
76
77
|
signal: AbortSignal.timeout(5000),
|
|
77
|
-
});
|
|
78
|
-
if (response
|
|
78
|
+
}, failures);
|
|
79
|
+
if (response?.ok) {
|
|
79
80
|
crawledUrls++;
|
|
80
|
-
const text =
|
|
81
|
+
const text = response.text;
|
|
81
82
|
if (text.includes('email') || text.includes('password') || text.includes('phone')) {
|
|
82
83
|
vulnerabilities.push({
|
|
83
84
|
id: uuidv4(),
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Agentic QE v3 - DAST Scanner Helper Functions
|
|
3
3
|
* Utility functions for dynamic security analysis
|
|
4
4
|
*/
|
|
5
|
-
import type { Vulnerability, ScanSummary, MemoryBackend } from './scanner-types.js';
|
|
5
|
+
import type { Vulnerability, ScanSummary, MemoryBackend, DASTRequestFailure } from './scanner-types.js';
|
|
6
6
|
export { testXSS, testSQLi } from './dast-injection-testing.js';
|
|
7
7
|
export { testAuthorizationBypass, testIDOR, validateCredentials, buildAuthHeaders, } from './dast-auth-testing.js';
|
|
8
8
|
/**
|
|
@@ -20,23 +20,19 @@ export declare function analyzeServerHeaders(headers: Headers, targetUrl: string
|
|
|
20
20
|
/**
|
|
21
21
|
* Scan for sensitive file exposure
|
|
22
22
|
*/
|
|
23
|
-
export declare function scanSensitiveFiles(parsedUrl: URL, crawledUrls: number, maxDepth: number, vulnerabilities: Vulnerability[]): Promise<number>;
|
|
23
|
+
export declare function scanSensitiveFiles(parsedUrl: URL, crawledUrls: number, maxDepth: number, vulnerabilities: Vulnerability[], failures?: DASTRequestFailure[]): Promise<number>;
|
|
24
24
|
/**
|
|
25
25
|
* Analyze CORS configuration
|
|
26
26
|
*/
|
|
27
|
-
export declare function analyzeCORS(targetUrl: string, vulnerabilities: Vulnerability[]): Promise<void>;
|
|
27
|
+
export declare function analyzeCORS(targetUrl: string, vulnerabilities: Vulnerability[], failures?: DASTRequestFailure[]): Promise<void>;
|
|
28
28
|
/**
|
|
29
29
|
* Extract links from HTML and crawl discovered pages
|
|
30
30
|
*/
|
|
31
|
-
export declare function extractAndCrawlLinks(html: string, baseUrl: URL, currentCrawled: number, maxDepth: number, vulnerabilities: Vulnerability[]): Promise<number>;
|
|
31
|
+
export declare function extractAndCrawlLinks(html: string, baseUrl: URL, currentCrawled: number, maxDepth: number, vulnerabilities: Vulnerability[], failures?: DASTRequestFailure[]): Promise<number>;
|
|
32
32
|
/**
|
|
33
33
|
* Analyze HTML forms for security issues
|
|
34
34
|
*/
|
|
35
35
|
export declare function analyzeFormsForSecurityIssues(html: string, baseUrl: string, vulnerabilities: Vulnerability[]): void;
|
|
36
|
-
/**
|
|
37
|
-
* Handle fetch errors and add appropriate vulnerabilities
|
|
38
|
-
*/
|
|
39
|
-
export declare function handleFetchError(fetchError: unknown, targetUrl: string, vulnerabilities: Vulnerability[]): void;
|
|
40
36
|
/**
|
|
41
37
|
* Calculate scan summary from vulnerabilities
|
|
42
38
|
*/
|
|
@@ -44,5 +40,8 @@ export declare function calculateSummary(vulnerabilities: Vulnerability[], total
|
|
|
44
40
|
/**
|
|
45
41
|
* Store scan results in memory
|
|
46
42
|
*/
|
|
47
|
-
export declare function storeScanResults(memory: MemoryBackend, scanId: string, scanType: string, vulnerabilities: Vulnerability[], summary: ScanSummary
|
|
43
|
+
export declare function storeScanResults(memory: MemoryBackend, scanId: string, scanType: string, vulnerabilities: Vulnerability[], summary: ScanSummary, completeness?: {
|
|
44
|
+
status: string;
|
|
45
|
+
failedRequests: DASTRequestFailure[];
|
|
46
|
+
}): Promise<void>;
|
|
48
47
|
//# sourceMappingURL=dast-helpers.d.ts.map
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Utility functions for dynamic security analysis
|
|
4
4
|
*/
|
|
5
5
|
import { v4 as uuidv4 } from 'uuid';
|
|
6
|
-
import {
|
|
6
|
+
import { probe } from './dast-requests.js';
|
|
7
7
|
// Re-export from specialized modules for convenience
|
|
8
8
|
export { testXSS, testSQLi } from './dast-injection-testing.js';
|
|
9
9
|
export { testAuthorizationBypass, testIDOR, validateCredentials, buildAuthHeaders, } from './dast-auth-testing.js';
|
|
@@ -100,7 +100,7 @@ export function analyzeServerHeaders(headers, targetUrl, vulnerabilities) {
|
|
|
100
100
|
/**
|
|
101
101
|
* Scan for sensitive file exposure
|
|
102
102
|
*/
|
|
103
|
-
export async function scanSensitiveFiles(parsedUrl, crawledUrls, maxDepth, vulnerabilities) {
|
|
103
|
+
export async function scanSensitiveFiles(parsedUrl, crawledUrls, maxDepth, vulnerabilities, failures) {
|
|
104
104
|
const sensitiveEndpoints = [
|
|
105
105
|
{ path: '/.git/config', name: 'Git Configuration' },
|
|
106
106
|
{ path: '/.env', name: 'Environment File' },
|
|
@@ -113,13 +113,13 @@ export async function scanSensitiveFiles(parsedUrl, crawledUrls, maxDepth, vulne
|
|
|
113
113
|
if (crawledUrls >= maxDepth * 10)
|
|
114
114
|
break;
|
|
115
115
|
const testUrl = new URL(endpoint.path, parsedUrl.origin).toString();
|
|
116
|
-
const testResponse = await
|
|
116
|
+
const testResponse = await probe(testUrl, {
|
|
117
117
|
method: 'GET',
|
|
118
118
|
signal: AbortSignal.timeout(5000),
|
|
119
|
-
});
|
|
120
|
-
if (testResponse
|
|
119
|
+
}, failures);
|
|
120
|
+
if (testResponse?.ok) {
|
|
121
121
|
crawledUrls++;
|
|
122
|
-
const text =
|
|
122
|
+
const text = testResponse.text;
|
|
123
123
|
if (text.length > 20 && !text.toLowerCase().includes('not found') && !text.toLowerCase().includes('404')) {
|
|
124
124
|
const isSensitive = endpoint.path.includes('.git') ||
|
|
125
125
|
endpoint.path.includes('.env') ||
|
|
@@ -148,15 +148,17 @@ export async function scanSensitiveFiles(parsedUrl, crawledUrls, maxDepth, vulne
|
|
|
148
148
|
/**
|
|
149
149
|
* Analyze CORS configuration
|
|
150
150
|
*/
|
|
151
|
-
export async function analyzeCORS(targetUrl, vulnerabilities) {
|
|
152
|
-
const corsResponse = await
|
|
151
|
+
export async function analyzeCORS(targetUrl, vulnerabilities, failures) {
|
|
152
|
+
const corsResponse = await probe(targetUrl, {
|
|
153
153
|
method: 'OPTIONS',
|
|
154
154
|
headers: {
|
|
155
155
|
'Origin': 'https://evil-attacker.com',
|
|
156
156
|
'Access-Control-Request-Method': 'GET',
|
|
157
157
|
},
|
|
158
158
|
signal: AbortSignal.timeout(5000),
|
|
159
|
-
});
|
|
159
|
+
}, failures);
|
|
160
|
+
if (!corsResponse)
|
|
161
|
+
return;
|
|
160
162
|
const allowOrigin = corsResponse.headers.get('access-control-allow-origin');
|
|
161
163
|
if (allowOrigin === '*' || allowOrigin === 'https://evil-attacker.com') {
|
|
162
164
|
vulnerabilities.push({
|
|
@@ -177,7 +179,7 @@ export async function analyzeCORS(targetUrl, vulnerabilities) {
|
|
|
177
179
|
/**
|
|
178
180
|
* Extract links from HTML and crawl discovered pages
|
|
179
181
|
*/
|
|
180
|
-
export async function extractAndCrawlLinks(html, baseUrl, currentCrawled, maxDepth, vulnerabilities) {
|
|
182
|
+
export async function extractAndCrawlLinks(html, baseUrl, currentCrawled, maxDepth, vulnerabilities, failures) {
|
|
181
183
|
let crawledUrls = currentCrawled;
|
|
182
184
|
const maxCrawl = maxDepth * 5;
|
|
183
185
|
const linkPattern = /href=["']([^"']+)["']/gi;
|
|
@@ -200,12 +202,14 @@ export async function extractAndCrawlLinks(html, baseUrl, currentCrawled, maxDep
|
|
|
200
202
|
if (crawledUrls >= maxCrawl)
|
|
201
203
|
break;
|
|
202
204
|
const crawlUrl = new URL(path, baseUrl.origin).toString();
|
|
203
|
-
const crawlResponse = await
|
|
205
|
+
const crawlResponse = await probe(crawlUrl, {
|
|
204
206
|
method: 'GET',
|
|
205
207
|
headers: { 'User-Agent': 'AgenticQE-DAST-Scanner/3.0' },
|
|
206
208
|
signal: AbortSignal.timeout(5000),
|
|
207
209
|
redirect: 'follow',
|
|
208
|
-
});
|
|
210
|
+
}, failures);
|
|
211
|
+
if (!crawlResponse)
|
|
212
|
+
continue;
|
|
209
213
|
crawledUrls++;
|
|
210
214
|
if (crawlResponse.ok) {
|
|
211
215
|
if (path.includes('password') || path.includes('token') || path.includes('api_key')) {
|
|
@@ -220,7 +224,7 @@ export async function extractAndCrawlLinks(html, baseUrl, currentCrawled, maxDep
|
|
|
220
224
|
references: ['https://owasp.org/www-community/vulnerabilities/Information_exposure_through_query_strings_in_url'],
|
|
221
225
|
});
|
|
222
226
|
}
|
|
223
|
-
const responseText =
|
|
227
|
+
const responseText = crawlResponse.text;
|
|
224
228
|
if (responseText.includes('Index of /') || responseText.includes('Directory listing for')) {
|
|
225
229
|
vulnerabilities.push({
|
|
226
230
|
id: uuidv4(),
|
|
@@ -308,36 +312,6 @@ export function analyzeFormsForSecurityIssues(html, baseUrl, vulnerabilities) {
|
|
|
308
312
|
// ============================================================================
|
|
309
313
|
// Utility Functions
|
|
310
314
|
// ============================================================================
|
|
311
|
-
/**
|
|
312
|
-
* Handle fetch errors and add appropriate vulnerabilities
|
|
313
|
-
*/
|
|
314
|
-
export function handleFetchError(fetchError, targetUrl, vulnerabilities) {
|
|
315
|
-
const errorMsg = toErrorMessage(fetchError);
|
|
316
|
-
if (errorMsg.includes('CERT') || errorMsg.includes('SSL') || errorMsg.includes('TLS') || errorMsg.includes('certificate')) {
|
|
317
|
-
vulnerabilities.push({
|
|
318
|
-
id: uuidv4(),
|
|
319
|
-
title: 'TLS Certificate Error',
|
|
320
|
-
description: `SSL/TLS error: ${errorMsg}`,
|
|
321
|
-
severity: 'high',
|
|
322
|
-
category: 'security-misconfiguration',
|
|
323
|
-
location: { file: targetUrl },
|
|
324
|
-
remediation: { description: 'Fix TLS certificate configuration', estimatedEffort: 'moderate', automatable: false },
|
|
325
|
-
references: ['https://owasp.org/www-project-web-security-testing-guide/'],
|
|
326
|
-
});
|
|
327
|
-
}
|
|
328
|
-
else if (errorMsg.includes('timeout') || errorMsg.includes('abort')) {
|
|
329
|
-
vulnerabilities.push({
|
|
330
|
-
id: uuidv4(),
|
|
331
|
-
title: 'Connection Timeout',
|
|
332
|
-
description: `Target did not respond within timeout: ${errorMsg}`,
|
|
333
|
-
severity: 'informational',
|
|
334
|
-
category: 'security-misconfiguration',
|
|
335
|
-
location: { file: targetUrl },
|
|
336
|
-
remediation: { description: 'Verify target is accessible', estimatedEffort: 'trivial', automatable: false },
|
|
337
|
-
references: [],
|
|
338
|
-
});
|
|
339
|
-
}
|
|
340
|
-
}
|
|
341
315
|
/**
|
|
342
316
|
* Calculate scan summary from vulnerabilities
|
|
343
317
|
*/
|
|
@@ -359,12 +333,13 @@ export function calculateSummary(vulnerabilities, totalFiles, scanDurationMs) {
|
|
|
359
333
|
/**
|
|
360
334
|
* Store scan results in memory
|
|
361
335
|
*/
|
|
362
|
-
export async function storeScanResults(memory, scanId, scanType, vulnerabilities, summary) {
|
|
336
|
+
export async function storeScanResults(memory, scanId, scanType, vulnerabilities, summary, completeness) {
|
|
363
337
|
await memory.set(`security:scan:${scanId}`, {
|
|
364
338
|
scanId,
|
|
365
339
|
scanType,
|
|
366
340
|
vulnerabilities,
|
|
367
341
|
summary,
|
|
342
|
+
...completeness,
|
|
368
343
|
timestamp: new Date().toISOString(),
|
|
369
344
|
}, { namespace: 'security-compliance', ttl: 86400 * 7 });
|
|
370
345
|
}
|
|
@@ -2,19 +2,19 @@
|
|
|
2
2
|
* Agentic QE v3 - DAST Injection Testing
|
|
3
3
|
* XSS and SQL injection testing utilities
|
|
4
4
|
*/
|
|
5
|
-
import type { Vulnerability } from './scanner-types.js';
|
|
5
|
+
import type { Vulnerability, DASTRequestFailure } from './scanner-types.js';
|
|
6
6
|
/**
|
|
7
7
|
* Test for XSS vulnerabilities
|
|
8
8
|
*/
|
|
9
9
|
export declare function testXSS(targetUrl: string, parsedUrl: URL, paramName: string, payloads: Array<{
|
|
10
10
|
payload: string;
|
|
11
11
|
name: string;
|
|
12
|
-
}>, vulnerabilities: Vulnerability[]): Promise<void>;
|
|
12
|
+
}>, vulnerabilities: Vulnerability[], failures?: DASTRequestFailure[]): Promise<void>;
|
|
13
13
|
/**
|
|
14
14
|
* Test for SQL injection vulnerabilities
|
|
15
15
|
*/
|
|
16
16
|
export declare function testSQLi(targetUrl: string, parsedUrl: URL, paramName: string, payloads: Array<{
|
|
17
17
|
payload: string;
|
|
18
18
|
name: string;
|
|
19
|
-
}>, vulnerabilities: Vulnerability[]): Promise<void>;
|
|
19
|
+
}>, vulnerabilities: Vulnerability[], failures?: DASTRequestFailure[]): Promise<void>;
|
|
20
20
|
//# sourceMappingURL=dast-injection-testing.d.ts.map
|