agentic-qe 3.15.12 → 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/skills/skills-manifest.json +1 -1
- package/CHANGELOG.md +118 -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-5VZCKTIJ.js → agent-booster-wasm-6RRQWMNE.js} +2 -2
- package/dist/cli/chunks/{agent-handler-K3C6CQCD.js → agent-handler-AOH6TV7W.js} +2 -2
- package/dist/cli/chunks/{agent-memory-branch-NVFQ25WS.js → agent-memory-branch-2P54SF5N.js} +2 -2
- package/dist/cli/chunks/aqe-learning-engine-SAQOHSGN.js +2 -0
- package/dist/cli/chunks/{arena-QGWIJADQ.js → arena-NSVFCAF5.js} +2 -2
- package/dist/cli/chunks/{arena-TSZVDSXS.js → arena-X6MOGQHA.js} +4 -4
- package/dist/cli/chunks/{audit-KIEE2SHJ.js → audit-27DJLQNM.js} +3 -3
- package/dist/cli/chunks/base-WCACU3FN.js +2 -0
- package/dist/cli/chunks/{better-sqlite3-BNB32NW3.js → better-sqlite3-BU5GXILS.js} +2 -2
- package/dist/cli/chunks/{brain-handler-MPC5SPYI.js → brain-handler-GTQNHHZS.js} +3 -3
- package/dist/cli/chunks/{branch-enumerator-LZ7UXKAY.js → branch-enumerator-5CLULOCU.js} +2 -2
- package/dist/cli/chunks/{browser-VDHAW4RK.js → browser-R4DMU3LN.js} +2 -2
- package/dist/cli/chunks/browser-workflow-G6IASEAP.js +2 -0
- package/dist/cli/chunks/{chunk-QUJJYTJH.js → chunk-2G7TVT6W.js} +2 -2
- package/dist/cli/chunks/{chunk-FAGKBOX2.js → chunk-32ZMWEP3.js} +2 -2
- package/dist/cli/chunks/{chunk-FNUFTWEO.js → chunk-3AN5TNGD.js} +3 -3
- package/dist/cli/chunks/{chunk-JOWUS2X5.js → chunk-3LJ7LQMV.js} +1 -1
- package/dist/cli/chunks/{chunk-O4QJMANM.js → chunk-3QZEGE67.js} +1 -1
- package/dist/cli/chunks/{chunk-ICKUINKD.js → chunk-3RZV5DGO.js} +2 -2
- package/dist/cli/chunks/{chunk-W4II6SIH.js → chunk-3Y2ROSCL.js} +2 -2
- package/dist/cli/chunks/{chunk-L7NGKANW.js → chunk-3Y7TJFHU.js} +2 -2
- package/dist/cli/chunks/{chunk-UUZZXHUF.js → chunk-3YNLWPBF.js} +2 -2
- package/dist/cli/chunks/{chunk-JR6CUKAI.js → chunk-42J34YG4.js} +2 -2
- package/dist/cli/chunks/{chunk-65TH6RPD.js → chunk-4OVC4RIL.js} +1 -1
- package/dist/cli/chunks/{chunk-DRCBRUGN.js → chunk-526QYFJU.js} +2 -2
- package/dist/cli/chunks/{chunk-MCPXNUDK.js → chunk-5FKWCZNF.js} +2 -2
- package/dist/cli/chunks/{chunk-NX4BCSOZ.js → chunk-5K26BEYB.js} +2 -2
- package/dist/cli/chunks/{chunk-MCPEC6OO.js → chunk-5MDERQH3.js} +1 -1
- package/dist/cli/chunks/{chunk-7JFDLL2F.js → chunk-5VMAV6T6.js} +1 -1
- package/dist/cli/chunks/{chunk-5TAEW5OV.js → chunk-5ZGM3RMH.js} +1 -1
- package/dist/cli/chunks/{chunk-SG2TX72G.js → chunk-6KATY3KS.js} +2 -2
- package/dist/cli/chunks/{chunk-KA5SHLMW.js → chunk-6Z7PRBSG.js} +2 -2
- package/dist/cli/chunks/{chunk-LFBA735S.js → chunk-72ASBE35.js} +3 -3
- package/dist/cli/chunks/{chunk-TOWOJGEI.js → chunk-756CGMEH.js} +1 -1
- package/dist/cli/chunks/{chunk-IVTQF55W.js → chunk-75RDHBAX.js} +3 -3
- package/dist/cli/chunks/{chunk-66PXR3NI.js → chunk-7CMTY45A.js} +2 -2
- package/dist/cli/chunks/{chunk-WLRU6ESI.js → chunk-7JUC2MVZ.js} +2 -2
- package/dist/cli/chunks/{chunk-SBHM5X2S.js → chunk-7NA7JXNB.js} +2 -2
- package/dist/cli/chunks/{chunk-HZBXJFGN.js → chunk-7PLIEBY7.js} +2 -2
- package/dist/cli/chunks/{chunk-2ASQRBK2.js → chunk-7YTGHGK4.js} +2 -2
- package/dist/cli/chunks/{chunk-SQVZ3TRU.js → chunk-A64JFBWI.js} +2 -2
- package/dist/cli/chunks/{chunk-2PPSS4JD.js → chunk-AL6FBH3E.js} +2 -2
- package/dist/cli/chunks/{chunk-3IU4LDZR.js → chunk-AQSVJNEH.js} +2 -2
- package/dist/cli/chunks/{chunk-C74M4WUI.js → chunk-ARJW4I2O.js} +2 -2
- package/dist/cli/chunks/{chunk-VF7FTD64.js → chunk-ASQYASNV.js} +1 -1
- package/dist/cli/chunks/{chunk-HLGFHHWV.js → chunk-BEGR4D6N.js} +2 -2
- package/dist/cli/chunks/{chunk-EN7GRVEQ.js → chunk-BK577VL7.js} +2 -2
- package/dist/cli/chunks/{chunk-KGA7VAI4.js → chunk-BLSLEVDI.js} +2 -2
- package/dist/cli/chunks/{chunk-HM3LSFTY.js → chunk-BTVEYBW2.js} +2 -2
- package/dist/cli/chunks/{chunk-J7Y7ZBIT.js → chunk-C6JTLKG7.js} +5 -5
- package/dist/cli/chunks/{chunk-PTBOLBM4.js → chunk-C7JM7CD3.js} +2 -2
- package/dist/cli/chunks/{chunk-IL7GQNNE.js → chunk-CCMKSHAT.js} +2 -2
- package/dist/cli/chunks/{chunk-23PQF7NN.js → chunk-CE7B5LU7.js} +1 -1
- package/dist/cli/chunks/{chunk-BMG2JLSQ.js → chunk-CM4LSLKR.js} +2 -2
- package/dist/cli/chunks/chunk-CRWPZT74.js +62 -0
- package/dist/cli/chunks/{chunk-4HWUECVD.js → chunk-CT6SAVXQ.js} +2 -2
- package/dist/cli/chunks/chunk-CV77DMDQ.js +2 -0
- package/dist/cli/chunks/{chunk-CU36D7TN.js → chunk-DFUASIKA.js} +2 -2
- package/dist/cli/chunks/{chunk-T4EN5VVK.js → chunk-DLD7RUZ4.js} +2 -2
- package/dist/cli/chunks/{chunk-IA55PFLG.js → chunk-DNDL7SOS.js} +2 -2
- package/dist/cli/chunks/{chunk-6QRI3JVE.js → chunk-DVGRPK7A.js} +2 -2
- package/dist/cli/chunks/{chunk-UREDS662.js → chunk-E56B6IDX.js} +2 -2
- package/dist/cli/chunks/{chunk-ZGROHCOW.js → chunk-E7CLYGS7.js} +1 -1
- package/dist/cli/chunks/{chunk-YNVEDFPQ.js → chunk-EXGMJFAT.js} +1 -1
- package/dist/cli/chunks/{chunk-JRYWLOBD.js → chunk-F3YS57NF.js} +2 -2
- package/dist/cli/chunks/{chunk-ZYOYR3UR.js → chunk-FZ76G4QJ.js} +1 -1
- package/dist/cli/chunks/{chunk-UIKQPO4Y.js → chunk-G2Q66Z23.js} +2 -2
- package/dist/cli/chunks/{chunk-5S4UIDFK.js → chunk-G6WDYBLQ.js} +1 -1
- package/dist/cli/chunks/{chunk-4SA7M34P.js → chunk-G77ERMUD.js} +1 -1
- package/dist/cli/chunks/{chunk-ADUAJIAU.js → chunk-GB6HBNH2.js} +2 -2
- package/dist/cli/chunks/{chunk-IETBWYHW.js → chunk-GHM6MQNK.js} +2 -2
- package/dist/cli/chunks/{chunk-QWG3SILX.js → chunk-GHY6Z6KO.js} +5 -5
- package/dist/cli/chunks/{chunk-AJEXPFAB.js → chunk-GII6UM3F.js} +1 -1
- package/dist/cli/chunks/{chunk-SDRJJUPO.js → chunk-GU5HNCWI.js} +1 -1
- package/dist/cli/chunks/{chunk-ULCW6IVQ.js → chunk-H4GG2NLO.js} +2 -2
- package/dist/cli/chunks/{chunk-7TA5MUPW.js → chunk-H4H2YSFH.js} +1 -1
- package/dist/cli/chunks/{chunk-5A66EGEW.js → chunk-HD7YIFOI.js} +2 -2
- package/dist/cli/chunks/{chunk-CDA5Z74H.js → chunk-HOAJUIBQ.js} +2 -2
- package/dist/cli/chunks/{chunk-4KUOYDY2.js → chunk-HQZGPJYG.js} +2 -2
- package/dist/cli/chunks/{chunk-G3AABG4Q.js → chunk-HZ5NXFXH.js} +2 -2
- package/dist/cli/chunks/{chunk-U6IXYQO4.js → chunk-I3C7JOXC.js} +2 -2
- package/dist/cli/chunks/{chunk-MAJXZYGK.js → chunk-IC3TQEOA.js} +1 -1
- package/dist/cli/chunks/{chunk-RYHG3I7J.js → chunk-IJUHSJ2U.js} +2 -2
- package/dist/cli/chunks/{chunk-DZGPUGUG.js → chunk-J2ZIFFM6.js} +2 -2
- package/dist/cli/chunks/{chunk-NA3F6FEO.js → chunk-JGZ722G3.js} +2 -2
- package/dist/cli/chunks/{chunk-PX5OPXY6.js → chunk-JQGMW45H.js} +1 -1
- package/dist/cli/chunks/{chunk-WGTEZT7G.js → chunk-JRRXCODW.js} +2 -2
- package/dist/cli/chunks/{chunk-4Y6OEBJZ.js → chunk-K3TLLJMX.js} +1 -1
- package/dist/cli/chunks/{chunk-RCOLPF3B.js → chunk-K4CZA77U.js} +2 -2
- package/dist/cli/chunks/{chunk-YIDAXOUX.js → chunk-K65CGKLD.js} +2 -2
- package/dist/cli/chunks/{chunk-5ADXFUMO.js → chunk-KADFXPPN.js} +2 -2
- package/dist/cli/chunks/{chunk-P5E26N2X.js → chunk-KB56CPU4.js} +2 -2
- package/dist/cli/chunks/{chunk-YLKIXEPP.js → chunk-KCW47QR5.js} +1 -1
- package/dist/cli/chunks/{chunk-SPC4RBLF.js → chunk-KDNJ4F3P.js} +2 -2
- package/dist/cli/chunks/{chunk-P7UFJ6DO.js → chunk-KDVZND5Q.js} +1 -1
- package/dist/cli/chunks/{chunk-TLRHAMX5.js → chunk-KUAKV3IW.js} +1 -1
- package/dist/cli/chunks/{chunk-ZROAMFX2.js → chunk-KV4T4MXK.js} +2 -2
- package/dist/cli/chunks/{chunk-UZED4YZ5.js → chunk-KWYH3FI4.js} +1 -1
- package/dist/cli/chunks/{chunk-33I2ZP6E.js → chunk-LFJALJOA.js} +2 -2
- package/dist/cli/chunks/{chunk-TXEUVUMO.js → chunk-LL7LDPXS.js} +1 -1
- package/dist/cli/chunks/{chunk-W5HQIYQU.js → chunk-LUZNKJE6.js} +3 -3
- package/dist/cli/chunks/{chunk-GKFV6CUD.js → chunk-LWR3FV3Y.js} +2 -2
- package/dist/cli/chunks/{chunk-TVA5GRIU.js → chunk-LZYQHVD4.js} +2 -2
- package/dist/cli/chunks/{chunk-2JYUA27M.js → chunk-M6AAGIG7.js} +1 -1
- package/dist/cli/chunks/{chunk-PT2NXS43.js → chunk-MAMQA43L.js} +1 -1
- package/dist/cli/chunks/chunk-MB46UBGY.js +3 -0
- package/dist/cli/chunks/{chunk-ZPVGX4DI.js → chunk-MFW5HSG4.js} +2 -2
- package/dist/cli/chunks/{chunk-47RMGDG4.js → chunk-MGZ5FJUW.js} +2 -2
- package/dist/cli/chunks/{chunk-G24SWTAX.js → chunk-MVVB7C2E.js} +410 -410
- package/dist/cli/chunks/{chunk-XZOYKB22.js → chunk-N4CYAKOX.js} +2 -2
- package/dist/cli/chunks/{chunk-QCPVUNN3.js → chunk-NT4DBXSX.js} +2 -2
- package/dist/cli/chunks/{chunk-3EWQN37E.js → chunk-NU3W5WFT.js} +2 -2
- package/dist/cli/chunks/{chunk-VZBC6DP7.js → chunk-NURIILUB.js} +1 -1
- package/dist/cli/chunks/{chunk-6E6HB4N4.js → chunk-NW7IBHJA.js} +4 -4
- package/dist/cli/chunks/{chunk-K3A3NWT3.js → chunk-NZ3GUMB2.js} +2 -2
- package/dist/cli/chunks/{chunk-GJKZ7UQO.js → chunk-NZD4DPSU.js} +2 -2
- package/dist/cli/chunks/{chunk-7QEUHNKO.js → chunk-O6FGXMHD.js} +1 -1
- package/dist/cli/chunks/{chunk-YVJEUX3I.js → chunk-OCAEXYFA.js} +2 -2
- package/dist/cli/chunks/{chunk-BOSMELJX.js → chunk-OFACHK5O.js} +2 -2
- package/dist/cli/chunks/{chunk-PGSJBXTD.js → chunk-P7A4NKTZ.js} +2 -2
- package/dist/cli/chunks/{chunk-HSA5IGGW.js → chunk-PB6J6HAA.js} +2 -2
- package/dist/cli/chunks/{chunk-TGMXUZZC.js → chunk-PHP5UBT4.js} +2 -2
- package/dist/cli/chunks/{chunk-NV74SICL.js → chunk-PIDQVU3L.js} +2 -2
- package/dist/cli/chunks/{chunk-TSOQ2QLT.js → chunk-PSFSPGUD.js} +2 -2
- package/dist/cli/chunks/{chunk-4A76VPU4.js → chunk-PT4FMJPQ.js} +2 -2
- package/dist/cli/chunks/{chunk-U7ZHDGXG.js → chunk-Q3UDLV5Z.js} +1 -1
- package/dist/cli/chunks/{chunk-BYRCB5JT.js → chunk-QDEJ4CI2.js} +2 -2
- package/dist/cli/chunks/{chunk-CA5UNWQF.js → chunk-QPNG5ZN2.js} +2 -2
- package/dist/cli/chunks/{chunk-W7H55PY4.js → chunk-R7SYRCRP.js} +1 -1
- package/dist/cli/chunks/{chunk-4LWMAAWK.js → chunk-RF7HWBHN.js} +2 -2
- package/dist/cli/chunks/{chunk-MMEALJ4D.js → chunk-RFNW2LGD.js} +2 -2
- package/dist/cli/chunks/{chunk-UCSK2RMI.js → chunk-S5AZCIZS.js} +2 -2
- package/dist/cli/chunks/{chunk-JW5PDJ5O.js → chunk-SE4VNN4I.js} +3 -3
- package/dist/cli/chunks/{chunk-URSTP3WI.js → chunk-SG3NX7QE.js} +2 -2
- package/dist/cli/chunks/{chunk-N7O3PF6Y.js → chunk-SSU73QAX.js} +2 -2
- package/dist/cli/chunks/{chunk-7DNR4KKR.js → chunk-SVLQRAMF.js} +1 -1
- package/dist/cli/chunks/{chunk-BC4T6SCV.js → chunk-SYV2V3PL.js} +4 -4
- package/dist/cli/chunks/{chunk-4CB3QPZM.js → chunk-T3PGQFDI.js} +2 -2
- package/dist/cli/chunks/{chunk-OHVYINGM.js → chunk-TCBBNUBP.js} +3 -3
- package/dist/cli/chunks/{chunk-YWWMNTBF.js → chunk-TOQWL2ZF.js} +2 -2
- package/dist/cli/chunks/{chunk-SITL5YZV.js → chunk-TSQC2KKZ.js} +2 -2
- package/dist/cli/chunks/{chunk-YUA6ZKKY.js → chunk-TWDW32W2.js} +2 -2
- package/dist/cli/chunks/{chunk-SUX5XB2Z.js → chunk-TWJTK4CC.js} +2 -2
- package/dist/cli/chunks/{chunk-32UTHIY5.js → chunk-U2FUXDDJ.js} +3 -3
- package/dist/cli/chunks/{chunk-ENGL7FIJ.js → chunk-UDQSYWVF.js} +1 -1
- package/dist/cli/chunks/{chunk-7OEFBWAG.js → chunk-UOC3O6RP.js} +2 -2
- package/dist/cli/chunks/chunk-UT2VZ33P.js +2 -0
- package/dist/cli/chunks/{chunk-MYF5CNGV.js → chunk-UTRV7T2N.js} +2 -2
- package/dist/cli/chunks/{chunk-KJDI5CHX.js → chunk-UXZSUMEA.js} +2 -2
- package/dist/cli/chunks/{chunk-DAUEK66C.js → chunk-VRHRBAEM.js} +1 -1
- package/dist/cli/chunks/{chunk-FZJCBSN4.js → chunk-VRVMIPTM.js} +2 -2
- package/dist/cli/chunks/{chunk-26672ISV.js → chunk-VTDFVFST.js} +2 -2
- package/dist/cli/chunks/{chunk-WTAUF6O4.js → chunk-VTOBUZL6.js} +2 -2
- package/dist/cli/chunks/{chunk-4PU5GTZW.js → chunk-VU5TBX2V.js} +2 -2
- package/dist/cli/chunks/{chunk-C3YOVASQ.js → chunk-W26B7ERY.js} +1 -1
- package/dist/cli/chunks/{chunk-CPIBIR3X.js → chunk-W2QWSQVE.js} +2 -2
- package/dist/cli/chunks/{chunk-L3PV7VXK.js → chunk-W3INMZZ6.js} +1 -1
- package/dist/cli/chunks/{chunk-5Z23ZMXZ.js → chunk-W3PPFHI5.js} +54 -54
- package/dist/cli/chunks/{chunk-NVRYELCY.js → chunk-WKGTGOYS.js} +3 -3
- package/dist/cli/chunks/{chunk-35NW676P.js → chunk-WNQS4WTS.js} +2 -2
- package/dist/cli/chunks/{chunk-O3IM4WRZ.js → chunk-WO274FRI.js} +2 -2
- package/dist/cli/chunks/{chunk-35MIUSXQ.js → chunk-WOCGL4QP.js} +2 -2
- package/dist/cli/chunks/{chunk-EF6OERRR.js → chunk-WQL7WCIZ.js} +1 -1
- package/dist/cli/chunks/{chunk-INZARYUD.js → chunk-X2Z7F4EU.js} +2 -2
- package/dist/cli/chunks/{chunk-2E2QO44T.js → chunk-X7N2JF2X.js} +2 -2
- package/dist/cli/chunks/{chunk-2IVE5AR3.js → chunk-XEAEYC6Y.js} +1 -1
- package/dist/cli/chunks/{chunk-IPA7K556.js → chunk-XNBOGCF3.js} +2 -2
- package/dist/cli/chunks/{chunk-A2JCRXTK.js → chunk-XPRVF4YE.js} +2 -2
- package/dist/cli/chunks/{chunk-VUR5THML.js → chunk-YBQH2VOP.js} +2 -2
- package/dist/cli/chunks/{chunk-A5Y7DAVQ.js → chunk-YQFLQE53.js} +2 -2
- package/dist/cli/chunks/{chunk-JGIJPDGD.js → chunk-YSZ5OE3Z.js} +2 -2
- package/dist/cli/chunks/{chunk-JNXK47OL.js → chunk-YXRASAPI.js} +2 -2
- package/dist/cli/chunks/{chunk-MYUMJ2ZI.js → chunk-YZEXYO4W.js} +1 -1
- package/dist/cli/chunks/{chunk-NNBQZR73.js → chunk-YZWBNBTW.js} +2 -2
- package/dist/cli/chunks/{chunk-WDEXOLK2.js → chunk-ZAKQLAHT.js} +1 -1
- package/dist/cli/chunks/{ci-BZNWW3I3.js → ci-ENOASTYB.js} +2 -2
- package/dist/cli/chunks/{ci-config-LOHNXOKV.js → ci-config-B26OXHQM.js} +2 -2
- package/dist/cli/chunks/{ci-output-LCOQBSJL.js → ci-output-JTCLLNOQ.js} +2 -2
- package/dist/cli/chunks/{circuit-breaker-7LRXTLFE.js → circuit-breaker-23JMFNM5.js} +2 -2
- package/dist/cli/chunks/{claude-flow-setup-HBU4VWC3.js → claude-flow-setup-ON6L462G.js} +2 -2
- package/dist/cli/chunks/client-TV3V2YZ5.js +2 -0
- package/dist/cli/chunks/{cline-installer-CO6MLH6X.js → cline-installer-OWQ4D2FQ.js} +2 -2
- package/dist/cli/chunks/{code-SIXBS6JM.js → code-2ZRL7SEU.js} +19 -18
- package/dist/cli/chunks/{code-index-extractor-GWJKZ2IQ.js → code-index-extractor-JXSQVM67.js} +2 -2
- package/dist/cli/chunks/{codex-installer-6NINVWXJ.js → codex-installer-7LXZYBSQ.js} +2 -2
- package/dist/cli/chunks/{completions-7VIX3GML.js → completions-C2LR623C.js} +2 -2
- package/dist/cli/chunks/{complexity-analyzer-FBQR6ZP2.js → complexity-analyzer-TGQLHCYJ.js} +2 -2
- package/dist/cli/chunks/{continuedev-installer-VA7RIXW5.js → continuedev-installer-RUGD24D2.js} +2 -2
- package/dist/cli/chunks/{copilot-installer-4QEBC4MU.js → copilot-installer-ZLFVLEJP.js} +2 -2
- package/dist/cli/chunks/core-handlers-PZT4OLWR.js +2 -0
- package/dist/cli/chunks/{cost-tracker-GRYKHPWL.js → cost-tracker-RT4QL745.js} +2 -2
- package/dist/cli/chunks/{coverage-USPMNKOU.js → coverage-NV3C4IMM.js} +3 -3
- package/dist/cli/chunks/cross-domain-router-QOFCZ7G4.js +2 -0
- package/dist/cli/chunks/{cursor-installer-ZXIPSZVH.js → cursor-installer-LJKLNFF6.js} +2 -2
- package/dist/cli/chunks/{daemon-D7F3RGI5.js → daemon-BMDXCQT5.js} +3 -3
- package/dist/cli/chunks/{daemon-N2VRHPSJ.js → daemon-FBH3IRYN.js} +4 -4
- package/dist/cli/chunks/{dag-attention-scheduler-NL6BA7BY.js → dag-attention-scheduler-JGDED55I.js} +2 -2
- package/dist/cli/chunks/{detect-XC2HCIIT.js → detect-SZIHIVCJ.js} +2 -2
- package/dist/cli/chunks/{dist-node-A3Y26MEI.js → dist-node-FV3KWXQ6.js} +2 -2
- package/dist/cli/chunks/{domain-handler-WV6SFXRB.js → domain-handler-GI5JWQOV.js} +2 -2
- package/dist/cli/chunks/{domain-plugins-KJIF6Z2B.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-PA3Y4KGO.js → embed-and-insert-pattern-GPRR3ZGD.js} +2 -2
- package/dist/cli/chunks/{eval-YGEZNUVE.js → eval-XPB3IGAP.js} +2 -2
- package/dist/cli/chunks/{experience-capture-middleware-D4T7NW6B.js → experience-capture-middleware-2E554UB3.js} +3 -3
- package/dist/cli/chunks/{fast-paths-6JYK7RYQ.js → fast-paths-ZSMWZPUC.js} +2 -2
- package/dist/cli/chunks/{feature-flags-RBH2GDSR.js → feature-flags-GIWVDVVC.js} +2 -2
- package/dist/cli/chunks/{feature-flags-DKXMDVPE.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-MV54UC4C.js → gnn-wrapper-CZNCNXXZ.js} +2 -2
- package/dist/cli/chunks/{heartbeat-handler-7DKMVQQH.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-6IWREDQC.js → hnsw-legacy-bridge-J3M3IK24.js} +2 -2
- package/dist/cli/chunks/{hnswlib-node-5BIESSCK.js → hnswlib-node-ULGTGDZW.js} +2 -2
- package/dist/cli/chunks/{hooks-3EETRM62.js → hooks-C4BUGYUQ.js} +10 -10
- package/dist/cli/chunks/hybrid-backend-B7M74PZG.js +2 -0
- package/dist/cli/chunks/{hypergraph-engine-RSWCB2D3.js → hypergraph-engine-WINGVMPG.js} +2 -2
- package/dist/cli/chunks/{hypergraph-handler-552LXKL3.js → hypergraph-handler-GADMWKAU.js} +3 -3
- package/dist/cli/chunks/impact-analyzer-PZYOVKQO.js +2 -0
- package/dist/cli/chunks/{init-guard-OTDBJ5HD.js → init-guard-K2T4QWAO.js} +2 -2
- package/dist/cli/chunks/{init-handler-3FK3TKEA.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-KZ2O4LF3.js → kilocode-installer-XENXNEIU.js} +2 -2
- package/dist/cli/chunks/{kiro-installer-MLCCXRF7.js → kiro-installer-3PG2TJ67.js} +2 -2
- package/dist/cli/chunks/knowledge-graph-BVD5Z66M.js +2 -0
- package/dist/cli/chunks/{learning-QUCMBD77.js → learning-6KDH7FK4.js} +3 -3
- package/dist/cli/chunks/{llm-router-PDEV3UP2.js → llm-router-RKVDEWU2.js} +4 -4
- package/dist/cli/chunks/llm-router-service-KHCAMSUU.js +2 -0
- package/dist/cli/chunks/{load-XFVVLO7E.js → load-ITHC564X.js} +2 -2
- package/dist/cli/chunks/load-test-RUF7DZA5.js +2 -0
- package/dist/cli/chunks/{mcp-74G3CL2S.js → mcp-TCL5UW3N.js} +2 -2
- package/dist/cli/chunks/{memory-XIFM6JNX.js → memory-BKDAY2N2.js} +5 -5
- package/dist/cli/chunks/memory-backend-7ZLFOVGG.js +2 -0
- package/dist/cli/chunks/{memory-handlers-ZCKURV6S.js → memory-handlers-WN4FXFOA.js} +2 -2
- package/dist/cli/chunks/{multi-model-executor-7L4W3O2Q.js → multi-model-executor-VHAT7ZPF.js} +2 -2
- package/dist/cli/chunks/{opencode-installer-BPG422LF.js → opencode-installer-E3VM3EEY.js} +2 -2
- package/dist/cli/chunks/{orchestrator-OEAFLAEV.js → orchestrator-BMQ6X762.js} +5 -5
- package/dist/cli/chunks/pattern-null-store-RY6CVYHP.js +2 -0
- package/dist/cli/chunks/{pattern-usage-recorder-LOPNCULT.js → pattern-usage-recorder-GOOR2BV5.js} +2 -2
- package/dist/cli/chunks/{pipeline-VWTYUZB7.js → pipeline-5NSFQQIX.js} +2 -2
- package/dist/cli/chunks/{platform-WFJJ3X2E.js → platform-SQM34J5G.js} +2 -2
- package/dist/cli/chunks/{plugin-744TPUSG.js → plugin-UQJZRMZG.js} +2 -2
- package/dist/cli/chunks/{prime-radiant-advanced-wasm-BD5BLNDR.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-JIBILI74.js → protocol-handler-OBDCVY6X.js} +2 -2
- package/dist/cli/chunks/{prove-MNOL5FYW.js → prove-XDC7I4XT.js} +2 -2
- package/dist/cli/chunks/qe-reasoning-bank-DQSSX2IP.js +2 -0
- package/dist/cli/chunks/{quality-JEGBDGGX.js → quality-L4GQ6WX4.js} +2 -2
- package/dist/cli/chunks/{quality-gate-SYJ6ROMI.js → quality-gate-MJG66LKN.js} +3 -3
- package/dist/cli/chunks/queen-coordinator-6FN4BZIX.js +2 -0
- package/dist/cli/chunks/{real-embeddings-ZWXS5ZFV.js → real-embeddings-HW4G2LWL.js} +2 -2
- package/dist/cli/chunks/{ref-validation-RRHUFW2N.js → ref-validation-FC7JOJ2C.js} +2 -2
- package/dist/cli/chunks/{roocode-installer-XFO6JSVN.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-L2K3JASE.js → routing-handler-QF4WVB2S.js} +2 -2
- package/dist/cli/chunks/{ruvector-commands-A6CINHGM.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-T4RY7L53.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-IR33TGQS.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-Z5GDE2IH.js → security-OSAE7VAP.js} +3 -3
- package/dist/cli/chunks/{shared-rvf-adapter-SIZMEHPM.js → shared-rvf-adapter-COUOS665.js} +2 -2
- package/dist/cli/chunks/{shared-rvf-dual-writer-HLM65RDS.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-SKSZG7P5.js → standalone-memory-E6JBMOIL.js} +2 -2
- package/dist/cli/chunks/{status-handler-766YOOMJ.js → status-handler-AFTCIYIX.js} +2 -2
- package/dist/cli/chunks/{structural-health-M45FNOLT.js → structural-health-2FROCEI4.js} +2 -2
- package/dist/cli/chunks/{sync-B2U366I3.js → sync-VAYTOWDC.js} +2 -2
- package/dist/cli/chunks/{sync-6CJ24B5T.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-TODH7KRF.js → test-5JSVTOMY.js} +4 -4
- package/dist/cli/chunks/test-runner-process-LEPF2OSS.js +2 -0
- package/dist/cli/chunks/{test-scheduling-VMVMVRHT.js → test-scheduling-HBOHVLI3.js} +3 -3
- package/dist/cli/chunks/{token-bootstrap-XQW7BMCK.js → token-bootstrap-5VEPTPFA.js} +2 -2
- package/dist/cli/chunks/{token-usage-JCZEIRKO.js → token-usage-TBJHDLY6.js} +2 -2
- package/dist/cli/chunks/{transformers-U2ML3OHE.js → transformers-VAWYMHMZ.js} +2 -2
- package/dist/cli/chunks/tree-sitter-wasm-parser-TSZTCMFV.js +2 -0
- package/dist/cli/chunks/{types-GGEPCHP6.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-T5GRM7HS.js → upgrade-K5PIHXRB.js} +2 -2
- package/dist/cli/chunks/{validate-XMUJPLP3.js → validate-RPTS7RYJ.js} +2 -2
- package/dist/cli/chunks/{validate-swarm-KJLF7JEH.js → validate-swarm-B2ZL556X.js} +2 -2
- package/dist/cli/chunks/visual-security-6Q44XNLB.js +2 -0
- package/dist/cli/chunks/{web-tree-sitter-LOHVZ7G5.js → web-tree-sitter-K4DUJC32.js} +2 -2
- package/dist/cli/chunks/{windsurf-installer-33FBTXJU.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-VWBO4NXE.js → witness-chain-repair-L6Y5RFXR.js} +2 -2
- package/dist/cli/chunks/{witness-chain-verifier-BHJ3ZAEK.js → witness-chain-verifier-N4CW7FZX.js} +2 -2
- package/dist/cli/chunks/{witness-key-manager-WNVPH2Z3.js → witness-key-manager-TDNPS3WD.js} +2 -2
- package/dist/cli/chunks/{workflow-6QR5MQTO.js → workflow-XRZA3YCY.js} +4 -4
- package/dist/cli/chunks/workflow-orchestrator-CVNNT2RJ.js +2 -0
- package/dist/cli/chunks/{wrappers-EHOL62TS.js → wrappers-5JIFWKN6.js} +2 -2
- package/dist/cli/commands/code.js +6 -0
- 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/handlers/task-handler.d.ts +5 -0
- package/dist/cli/handlers/task-handler.js +20 -0
- package/dist/cli/utils/fleet-operation.d.ts +5 -2
- package/dist/cli/utils/fleet-operation.js +13 -2
- package/dist/cli/utils/fleet-result.d.ts +16 -2
- package/dist/cli/utils/fleet-result.js +26 -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/handler-types.d.ts +2 -2
- package/dist/coordination/handlers/handler-utils.d.ts +6 -0
- package/dist/coordination/handlers/handler-utils.js +14 -4
- 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/semantic-analyzer.d.ts +43 -5
- package/dist/domains/code-intelligence/services/semantic-analyzer.js +134 -71
- 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/integrations/embeddings/index/HNSWIndex.js +8 -4
- package/dist/integrations/ruvector/transfer-coherence-stub.js +5 -10
- package/dist/mcp/bundle.js +480 -480
- package/dist/mcp/handlers/domain-handler-configs.d.ts +8 -0
- package/dist/mcp/handlers/domain-handler-configs.js +9 -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.js +41 -3
- package/dist/mcp/handlers/task-handlers.d.ts +3 -251
- package/dist/mcp/handlers/task-handlers.js +6 -828
- 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 +12 -2
- 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/shared/events/domain-events.d.ts +2 -0
- 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/package.json +1 -1
- package/dist/cli/chunks/adapter-HL7MOCQN.js +0 -2
- package/dist/cli/chunks/aqe-learning-engine-OZ2DXB4G.js +0 -2
- package/dist/cli/chunks/base-WIM7G3HC.js +0 -2
- package/dist/cli/chunks/browser-workflow-QRKCFVR3.js +0 -2
- package/dist/cli/chunks/chunk-QSGEBCDB.js +0 -62
- package/dist/cli/chunks/chunk-UJNGGFGX.js +0 -2
- package/dist/cli/chunks/chunk-VXVTFKRA.js +0 -2
- package/dist/cli/chunks/chunk-XCNSGSKV.js +0 -3
- package/dist/cli/chunks/client-4PNYDFYS.js +0 -2
- package/dist/cli/chunks/core-handlers-ODO6LUWQ.js +0 -2
- package/dist/cli/chunks/cross-domain-router-DT4MHJKK.js +0 -2
- package/dist/cli/chunks/domain-transfer-L3F6AES2.js +0 -2
- package/dist/cli/chunks/dream-QOB3JCOM.js +0 -2
- package/dist/cli/chunks/file-discovery-BN76S2PR.js +0 -2
- package/dist/cli/chunks/fleet-43YMXACN.js +0 -46
- package/dist/cli/chunks/heartbeat-scheduler-3NNP4WCP.js +0 -2
- package/dist/cli/chunks/hnsw-adapter-MZR7Y4WF.js +0 -2
- package/dist/cli/chunks/hnsw-index-HE4AX22U.js +0 -2
- package/dist/cli/chunks/hybrid-backend-IHUHB3Y2.js +0 -2
- package/dist/cli/chunks/impact-analyzer-FI6GI6PD.js +0 -2
- package/dist/cli/chunks/init-wizard-WLQKH5Y5.js +0 -2
- package/dist/cli/chunks/kernel-2WZOQEZS.js +0 -2
- package/dist/cli/chunks/knowledge-graph-G3LVKK6P.js +0 -2
- package/dist/cli/chunks/llm-router-service-MM75HKWJ.js +0 -2
- package/dist/cli/chunks/load-test-BEWEE44J.js +0 -2
- package/dist/cli/chunks/memory-backend-NYKBBKZR.js +0 -2
- package/dist/cli/chunks/pattern-null-store-QGPUIV6M.js +0 -2
- package/dist/cli/chunks/project-root-C7ELXZRK.js +0 -2
- package/dist/cli/chunks/protocol-executor-SUVE33BM.js +0 -2
- package/dist/cli/chunks/qe-reasoning-bank-YWZMMGJB.js +0 -2
- package/dist/cli/chunks/queen-coordinator-ZFAKXRN7.js +0 -2
- package/dist/cli/chunks/router-4FTAVYLJ.js +0 -2
- package/dist/cli/chunks/routing-feedback-IO2KOWMJ.js +0 -2
- package/dist/cli/chunks/rvf-dual-writer-KCIRNE7C.js +0 -2
- package/dist/cli/chunks/rvf-migration-adapter-MFC5WTJU.js +0 -2
- package/dist/cli/chunks/rvf-native-adapter-I3KWHE7X.js +0 -2
- package/dist/cli/chunks/safe-db-QXDZ6QY3.js +0 -2
- package/dist/cli/chunks/schedule-CZKD6RIY.js +0 -2
- package/dist/cli/chunks/scheduler-BLA3Q4CH.js +0 -2
- package/dist/cli/chunks/sqlite-persistence-XIUYDJC4.js +0 -2
- package/dist/cli/chunks/task-handler-P6IFLCKP.js +0 -62
- package/dist/cli/chunks/task-handlers-DPWMUKFC.js +0 -9
- package/dist/cli/chunks/test-runner-process-46IPK3GH.js +0 -2
- package/dist/cli/chunks/tree-sitter-wasm-parser-MOI2WWNJ.js +0 -2
- package/dist/cli/chunks/unified-memory-FL26RTV3.js +0 -2
- package/dist/cli/chunks/unified-memory-hnsw-E2BPTH3U.js +0 -2
- package/dist/cli/chunks/unified-persistence-5ZOUPKHF.js +0 -2
- package/dist/cli/chunks/visual-security-IJVPO5FA.js +0 -2
- package/dist/cli/chunks/witness-chain-5FAFCQKP.js +0 -2
- package/dist/cli/chunks/witness-chain-V2M32W5D.js +0 -2
- package/dist/cli/chunks/workflow-orchestrator-3JLF3IX7.js +0 -2
|
@@ -263,8 +263,12 @@ export function registerSecurityHandlers(ctx) {
|
|
|
263
263
|
});
|
|
264
264
|
if (result.success) {
|
|
265
265
|
dastResult = result.value;
|
|
266
|
-
//
|
|
267
|
-
|
|
266
|
+
// #1135: probes the target did not answer make DAST partial; the
|
|
267
|
+
// findings it did collect are kept. A complete run still has no
|
|
268
|
+
// execution coverage receipt, so it stays unverified.
|
|
269
|
+
engines.push(dastResult.status === 'incomplete'
|
|
270
|
+
? { ...partialDastEngine(dastResult.failedRequests), target: payload.targetUrl }
|
|
271
|
+
: { ...unverifiedEngine('dast', 'url'), target: payload.targetUrl });
|
|
268
272
|
}
|
|
269
273
|
else {
|
|
270
274
|
engines.push({ ...failedEngine('dast', 'url', result.error), target: payload.targetUrl });
|
|
@@ -399,6 +403,12 @@ function safeErrorCode(error) {
|
|
|
399
403
|
const code = error?.code;
|
|
400
404
|
return typeof code === 'string' && /^[A-Z0-9_]{1,32}$/.test(code) ? code : 'UNKNOWN';
|
|
401
405
|
}
|
|
406
|
+
function partialDastEngine(failedRequests) {
|
|
407
|
+
const codes = [...new Set(failedRequests.map(failure => failure.code))].join(', ');
|
|
408
|
+
return { id: 'dast', requested: true, required: true, status: 'partial', scope: 'url',
|
|
409
|
+
ruleCoverage: 'unknown', errors: [`dast incomplete: ${failedRequests.length} request(s) not answered (${codes}).`],
|
|
410
|
+
limitations: failedRequests.slice(0, 20).map(failure => `dast not answered: ${failure.url} (${failure.code}: ${failure.reason})`) };
|
|
411
|
+
}
|
|
402
412
|
function unverifiedEngine(id, scope) {
|
|
403
413
|
return { id, requested: true, required: true, status: 'unverified', scope,
|
|
404
414
|
ruleCoverage: 'unknown', errors: [], limitations: [`${id} returned no execution receipt; coverage is unverified.`] };
|
|
@@ -164,11 +164,16 @@ export class SecurityAuditProtocol {
|
|
|
164
164
|
const dastResult = await this.runDASTScan(this.config.targetUrl);
|
|
165
165
|
if (dastResult.success) {
|
|
166
166
|
this.currentAudit = { ...this.currentAudit, dastResult: dastResult.value };
|
|
167
|
+
if (dastResult.value.status !== 'complete') {
|
|
168
|
+
this.recordIncompleteCheck(`DAST scan is incomplete: ${dastResult.value.error ?? 'some requests were not answered'}`);
|
|
169
|
+
}
|
|
167
170
|
this.recordIncompleteCheck('DAST coverage is unverified: the scanner returned no execution receipt');
|
|
168
171
|
await this.publishVulnerabilities(dastResult.value.vulnerabilities);
|
|
169
172
|
}
|
|
170
173
|
else {
|
|
171
|
-
|
|
174
|
+
// #1135: keep the scanner's reason (DAST_AUTHENTICATION_FAILED, DAST_TARGET_UNAVAILABLE, ...).
|
|
175
|
+
const code = dastResult.error.code;
|
|
176
|
+
this.recordIncompleteCheck(`DAST scan did not complete${typeof code === 'string' ? ` (${code})` : ''}: ${dastResult.error.message}`);
|
|
172
177
|
}
|
|
173
178
|
}
|
|
174
179
|
else if (auditOptions.includeDAST) {
|
|
@@ -284,7 +289,10 @@ export class SecurityAuditProtocol {
|
|
|
284
289
|
// Convert scanner result to protocol result format
|
|
285
290
|
return ok({
|
|
286
291
|
vulnerabilities: scanResult.value.vulnerabilities,
|
|
292
|
+
// #1221: this scanner does not look up latest versions; empty is not "up to date".
|
|
287
293
|
outdatedPackages: [],
|
|
294
|
+
outdatedStatus: 'not-run',
|
|
295
|
+
outdatedUnchecked: [],
|
|
288
296
|
summary: scanResult.value.summary,
|
|
289
297
|
status: scanResult.value.status,
|
|
290
298
|
measured: scanResult.value.measured,
|
|
@@ -360,6 +368,8 @@ export class SecurityAuditProtocol {
|
|
|
360
368
|
if (scanResult.success) {
|
|
361
369
|
return ok(scanResult.value);
|
|
362
370
|
}
|
|
371
|
+
// #1135: the scanner's own failure, with its code, not a generic "unavailable".
|
|
372
|
+
return err(scanResult.error);
|
|
363
373
|
}
|
|
364
374
|
catch (scannerError) {
|
|
365
375
|
// Scanner unavailable - log error
|
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
import { v4 as uuidv4 } from 'uuid';
|
|
16
16
|
import { isCallerInputError, toErrorMessage } from '../shared/error-utils.js';
|
|
17
17
|
import { InsufficientQualityEvidenceError } from '../domains/quality-assessment/quality-evidence.js';
|
|
18
|
+
import { isLearnableResult } from '../learning/learnable-result.js';
|
|
18
19
|
import { createResultSaver } from './result-saver.js';
|
|
19
20
|
import { getProjectStorePath } from '../kernel/project-root.js';
|
|
20
21
|
import { createLogger } from '../logging/logger-factory.js';
|
|
@@ -487,8 +488,12 @@ export class DomainTaskExecutor {
|
|
|
487
488
|
};
|
|
488
489
|
}
|
|
489
490
|
await this.publishTaskCompleted(task.id, result.value, domain);
|
|
490
|
-
// ADR-051: Record successful outcome
|
|
491
|
-
|
|
491
|
+
// ADR-051: Record successful outcome. #1020: a run without evidence (a
|
|
492
|
+
// coverage estimate, an insufficient-evidence quality run) completed as a
|
|
493
|
+
// task but is not a success to learn routing from.
|
|
494
|
+
if (isLearnableResult(domain, result.value)) {
|
|
495
|
+
this.recordOutcome(task, routingTier, true, Date.now() - startTime).catch((e) => { logger.warn('recordOutcome failed', { error: e instanceof Error ? e.message : String(e), taskId: task.id }); });
|
|
496
|
+
}
|
|
492
497
|
// Save results to files if enabled. A task can opt out per call with
|
|
493
498
|
// payload.saveResults === false (#925); the executor-wide config still
|
|
494
499
|
// acts as the global switch.
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
* Code Intelligence - GNN Integration
|
|
3
3
|
* Extracted from coordinator.ts for CQ-004 (file size reduction)
|
|
4
4
|
*
|
|
5
|
-
* Contains: GNN embedding indexing, code embedding generation
|
|
5
|
+
* Contains: GNN embedding indexing, code embedding generation
|
|
6
6
|
*/
|
|
7
7
|
import { QEGNNEmbeddingIndex } from '../../integrations/ruvector/wrappers';
|
|
8
|
-
import type { ImpactRequest
|
|
8
|
+
import type { ImpactRequest } from './interfaces';
|
|
9
9
|
import { FileReader } from '../../shared/io';
|
|
10
10
|
export declare function initializeGNNIndex(domainKey: string): QEGNNEmbeddingIndex;
|
|
11
11
|
/**
|
|
@@ -23,24 +23,10 @@ export declare function generateGraphMAEEmbeddings(fileReader: FileReader, paths
|
|
|
23
23
|
* Generate code embedding using semantic features
|
|
24
24
|
*/
|
|
25
25
|
export declare function generateCodeEmbedding(path: string, content: string): Promise<number[]>;
|
|
26
|
-
/**
|
|
27
|
-
* Search code with GNN for enhanced similarity
|
|
28
|
-
*/
|
|
29
|
-
export declare function searchCodeWithGNN(gnnIndex: QEGNNEmbeddingIndex, query: string): Promise<Array<{
|
|
30
|
-
file: string;
|
|
31
|
-
similarity: number;
|
|
32
|
-
}>>;
|
|
33
26
|
/**
|
|
34
27
|
* Enhance impact analysis with GNN semantic similarity
|
|
35
28
|
*/
|
|
36
29
|
export declare function enhanceImpactAnalysisWithGNN(gnnIndex: QEGNNEmbeddingIndex, fileReader: FileReader, request: ImpactRequest): Promise<void>;
|
|
37
|
-
/**
|
|
38
|
-
* Merge search results from semantic search and GNN
|
|
39
|
-
*/
|
|
40
|
-
export declare function mergeSearchResults(semanticResults: SearchResult[], gnnResults: Array<{
|
|
41
|
-
file: string;
|
|
42
|
-
similarity: number;
|
|
43
|
-
}>): SearchResult[];
|
|
44
30
|
/**
|
|
45
31
|
* R6: Train GNN embeddings with memory-bounded cold-tier training.
|
|
46
32
|
* Uses LRU hotset caching when the graph exceeds hotsetSize, falling
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Code Intelligence - GNN Integration
|
|
3
3
|
* Extracted from coordinator.ts for CQ-004 (file size reduction)
|
|
4
4
|
*
|
|
5
|
-
* Contains: GNN embedding indexing, code embedding generation
|
|
5
|
+
* Contains: GNN embedding indexing, code embedding generation
|
|
6
6
|
*/
|
|
7
7
|
import { LoggerFactory } from '../../logging/index.js';
|
|
8
8
|
import { QEGNNIndexFactory, initGNN, } from '../../integrations/ruvector/wrappers.js';
|
|
@@ -148,34 +148,6 @@ export async function generateCodeEmbedding(path, content) {
|
|
|
148
148
|
}
|
|
149
149
|
return features.slice(0, 384);
|
|
150
150
|
}
|
|
151
|
-
/**
|
|
152
|
-
* Search code with GNN for enhanced similarity
|
|
153
|
-
*/
|
|
154
|
-
export async function searchCodeWithGNN(gnnIndex, query) {
|
|
155
|
-
try {
|
|
156
|
-
const queryEmbedding = await generateCodeEmbedding('query', query);
|
|
157
|
-
const queryIEmbedding = {
|
|
158
|
-
vector: queryEmbedding,
|
|
159
|
-
dimension: 384,
|
|
160
|
-
namespace: 'code',
|
|
161
|
-
text: query,
|
|
162
|
-
timestamp: Date.now(),
|
|
163
|
-
quantization: 'none',
|
|
164
|
-
};
|
|
165
|
-
const results = gnnIndex.search(queryIEmbedding, {
|
|
166
|
-
limit: 10,
|
|
167
|
-
namespace: 'code',
|
|
168
|
-
});
|
|
169
|
-
return results.map((r) => ({
|
|
170
|
-
file: r.metadata?.path ?? `file-${r.id}`,
|
|
171
|
-
similarity: 1 - r.distance,
|
|
172
|
-
}));
|
|
173
|
-
}
|
|
174
|
-
catch (error) {
|
|
175
|
-
logger.error('Failed to search with GNN:', error instanceof Error ? error : undefined);
|
|
176
|
-
return [];
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
151
|
/**
|
|
180
152
|
* Enhance impact analysis with GNN semantic similarity
|
|
181
153
|
*/
|
|
@@ -206,39 +178,6 @@ export async function enhanceImpactAnalysisWithGNN(gnnIndex, fileReader, request
|
|
|
206
178
|
logger.error('Failed to enhance impact analysis:', error instanceof Error ? error : undefined);
|
|
207
179
|
}
|
|
208
180
|
}
|
|
209
|
-
/**
|
|
210
|
-
* Merge search results from semantic search and GNN
|
|
211
|
-
*/
|
|
212
|
-
export function mergeSearchResults(semanticResults, gnnResults) {
|
|
213
|
-
const scoreMap = new Map();
|
|
214
|
-
const resultMap = new Map();
|
|
215
|
-
for (const result of semanticResults) {
|
|
216
|
-
scoreMap.set(result.file, result.score);
|
|
217
|
-
resultMap.set(result.file, result);
|
|
218
|
-
}
|
|
219
|
-
for (const gnnResult of gnnResults) {
|
|
220
|
-
const existingScore = scoreMap.get(gnnResult.file);
|
|
221
|
-
if (existingScore !== undefined) {
|
|
222
|
-
scoreMap.set(gnnResult.file, (existingScore + gnnResult.similarity) / 2);
|
|
223
|
-
}
|
|
224
|
-
else {
|
|
225
|
-
scoreMap.set(gnnResult.file, gnnResult.similarity * 0.8);
|
|
226
|
-
resultMap.set(gnnResult.file, {
|
|
227
|
-
file: gnnResult.file,
|
|
228
|
-
snippet: '',
|
|
229
|
-
score: gnnResult.similarity * 0.8,
|
|
230
|
-
highlights: [],
|
|
231
|
-
});
|
|
232
|
-
}
|
|
233
|
-
}
|
|
234
|
-
return Array.from(resultMap.values())
|
|
235
|
-
.map(result => ({
|
|
236
|
-
...result,
|
|
237
|
-
score: scoreMap.get(result.file) ?? result.score,
|
|
238
|
-
}))
|
|
239
|
-
.sort((a, b) => b.score - a.score)
|
|
240
|
-
.slice(0, 20);
|
|
241
|
-
}
|
|
242
181
|
// R6: ColdTier trainer singleton (lazy-initialized)
|
|
243
182
|
let coldTierTrainer = null;
|
|
244
183
|
/**
|
|
@@ -43,6 +43,12 @@ export interface ICodeIntelligenceCoordinator extends CodeIntelligenceAPI {
|
|
|
43
43
|
* @param projectPath - Path to the project root
|
|
44
44
|
*/
|
|
45
45
|
collectProjectMetrics(projectPath: string): Promise<Result<ProjectMetrics, Error>>;
|
|
46
|
+
/**
|
|
47
|
+
* #1224: make indexed files searchable by `search()`. Indexing paths that
|
|
48
|
+
* only fill the knowledge graph (MCP code_index) call this so a later search
|
|
49
|
+
* reads the same project.
|
|
50
|
+
*/
|
|
51
|
+
indexForSearch(paths: string[]): Promise<SearchIndexSummary>;
|
|
46
52
|
/**
|
|
47
53
|
* V3: Find untested functions using hypergraph analysis (GOAP Action 7)
|
|
48
54
|
* Returns functions that have no test coverage based on the code knowledge graph.
|
|
@@ -126,6 +132,11 @@ export interface CoordinatorConfig extends BaseDomainCoordinatorConfig {
|
|
|
126
132
|
* Orchestrates code intelligence workflows and coordinates with agents
|
|
127
133
|
*/
|
|
128
134
|
type CodeIntelligenceWorkflowType = 'index' | 'search' | 'impact' | 'dependency' | 'query';
|
|
135
|
+
/** #1224: what an index run made searchable. */
|
|
136
|
+
export interface SearchIndexSummary {
|
|
137
|
+
searchable: number;
|
|
138
|
+
warnings: string[];
|
|
139
|
+
}
|
|
129
140
|
export declare class CodeIntelligenceCoordinator extends BaseDomainCoordinator<CoordinatorConfig, CodeIntelligenceWorkflowType> implements ICodeIntelligenceCoordinator {
|
|
130
141
|
private readonly memory;
|
|
131
142
|
private readonly agentCoordinator;
|
|
@@ -187,7 +198,6 @@ export declare class CodeIntelligenceCoordinator extends BaseDomainCoordinator<C
|
|
|
187
198
|
* Index code embeddings in GNN for fast similarity search
|
|
188
199
|
*/
|
|
189
200
|
private indexCodeEmbeddings;
|
|
190
|
-
private searchCodeWithGNN;
|
|
191
201
|
private enhanceImpactAnalysisWithGNN;
|
|
192
202
|
/**
|
|
193
203
|
* Adapt search pattern using SONA
|
|
@@ -197,10 +207,6 @@ export declare class CodeIntelligenceCoordinator extends BaseDomainCoordinator<C
|
|
|
197
207
|
* Store impact analysis pattern in SONA
|
|
198
208
|
*/
|
|
199
209
|
private storeImpactPattern;
|
|
200
|
-
/**
|
|
201
|
-
* Merge search results from semantic search and GNN
|
|
202
|
-
*/
|
|
203
|
-
private mergeSearchResults;
|
|
204
210
|
private hashCode;
|
|
205
211
|
private spawnIndexerAgent;
|
|
206
212
|
private spawnSearchAgent;
|
|
@@ -211,7 +217,7 @@ export declare class CodeIntelligenceCoordinator extends BaseDomainCoordinator<C
|
|
|
211
217
|
protected subscribeToEvents(): void;
|
|
212
218
|
private handleTestRunCompleted;
|
|
213
219
|
private handleFilesChanged;
|
|
214
|
-
|
|
220
|
+
indexForSearch(paths: string[]): Promise<SearchIndexSummary>;
|
|
215
221
|
private loadWorkflowState;
|
|
216
222
|
private saveWorkflowState;
|
|
217
223
|
/**
|
|
@@ -59,6 +59,8 @@ const DEFAULT_CONFIG = {
|
|
|
59
59
|
* CQ-002: Extends BaseDomainCoordinator
|
|
60
60
|
*/
|
|
61
61
|
const logger = LoggerFactory.create('code-intelligence');
|
|
62
|
+
/** Files made searchable per index run (content, plus vectors with an embedding model). */
|
|
63
|
+
const SEARCH_INDEX_FILE_LIMIT = 100;
|
|
62
64
|
export class CodeIntelligenceCoordinator extends BaseDomainCoordinator {
|
|
63
65
|
memory;
|
|
64
66
|
agentCoordinator;
|
|
@@ -336,9 +338,12 @@ export class CodeIntelligenceCoordinator extends BaseDomainCoordinator {
|
|
|
336
338
|
}
|
|
337
339
|
}
|
|
338
340
|
this.updateWorkflowProgress(workflowId, 70);
|
|
339
|
-
// Index content for
|
|
341
|
+
// Index content for search
|
|
340
342
|
if (indexedPaths.length > 0) {
|
|
341
|
-
await this.
|
|
343
|
+
const searchIndex = await this.indexForSearch(indexedPaths);
|
|
344
|
+
if (searchIndex.warnings.length > 0) {
|
|
345
|
+
result.value.warnings = [...(result.value.warnings ?? []), ...searchIndex.warnings];
|
|
346
|
+
}
|
|
342
347
|
}
|
|
343
348
|
this.updateWorkflowProgress(workflowId, 85);
|
|
344
349
|
// V3: Rebuild hypergraph from indexed files (keeps hypergraph in sync with KG)
|
|
@@ -414,18 +419,10 @@ export class CodeIntelligenceCoordinator extends BaseDomainCoordinator {
|
|
|
414
419
|
logger.info(`Adapted search pattern with ${pattern.similarity.toFixed(3)} similarity`);
|
|
415
420
|
}
|
|
416
421
|
}
|
|
417
|
-
//
|
|
418
|
-
|
|
419
|
-
if (this.config.enableGNN && this.gnnIndex) {
|
|
420
|
-
gnnResults = await this.searchCodeWithGNN(request);
|
|
421
|
-
}
|
|
422
|
-
// Perform search
|
|
422
|
+
// Perform search. #1224: GNN feature-hash neighbours are not merged in;
|
|
423
|
+
// they do not depend on the query and carried no file name or snippet.
|
|
423
424
|
const result = await this.semanticAnalyzer.search(request);
|
|
424
425
|
if (result.success) {
|
|
425
|
-
// Merge GNN results with semantic search results
|
|
426
|
-
if (gnnResults.length > 0) {
|
|
427
|
-
result.value.results = this.mergeSearchResults(result.value.results, gnnResults);
|
|
428
|
-
}
|
|
429
426
|
this.completeWorkflow(workflowId);
|
|
430
427
|
// Publish events
|
|
431
428
|
if (this.config.publishEvents) {
|
|
@@ -566,11 +563,6 @@ export class CodeIntelligenceCoordinator extends BaseDomainCoordinator {
|
|
|
566
563
|
return;
|
|
567
564
|
await GNNHelpers.indexCodeEmbeddings(this.gnnIndex, this.fileReader, paths);
|
|
568
565
|
}
|
|
569
|
-
async searchCodeWithGNN(request) {
|
|
570
|
-
if (!this.gnnIndex || !this.rlInitialized)
|
|
571
|
-
return [];
|
|
572
|
-
return GNNHelpers.searchCodeWithGNN(this.gnnIndex, request.query);
|
|
573
|
-
}
|
|
574
566
|
async enhanceImpactAnalysisWithGNN(request) {
|
|
575
567
|
if (!this.gnnIndex || !this.rlInitialized)
|
|
576
568
|
return;
|
|
@@ -655,12 +647,6 @@ export class CodeIntelligenceCoordinator extends BaseDomainCoordinator {
|
|
|
655
647
|
// ============================================================================
|
|
656
648
|
// Helper Methods
|
|
657
649
|
// ============================================================================
|
|
658
|
-
/**
|
|
659
|
-
* Merge search results from semantic search and GNN
|
|
660
|
-
*/
|
|
661
|
-
mergeSearchResults(semanticResults, gnnResults) {
|
|
662
|
-
return GNNHelpers.mergeSearchResults(semanticResults, gnnResults);
|
|
663
|
-
}
|
|
664
650
|
hashCode(str) {
|
|
665
651
|
return GNNHelpers.hashCode(str);
|
|
666
652
|
}
|
|
@@ -775,22 +761,33 @@ export class CodeIntelligenceCoordinator extends BaseDomainCoordinator {
|
|
|
775
761
|
// ============================================================================
|
|
776
762
|
// Helper Methods
|
|
777
763
|
// ============================================================================
|
|
778
|
-
async
|
|
779
|
-
// Index a subset of files for
|
|
764
|
+
async indexForSearch(paths) {
|
|
765
|
+
// Index a subset of files for search
|
|
780
766
|
// Limit to 100 files for performance in a single batch
|
|
781
|
-
const filesToIndex = paths.slice(0,
|
|
767
|
+
const filesToIndex = paths.slice(0, SEARCH_INDEX_FILE_LIMIT);
|
|
768
|
+
let searchable = 0;
|
|
782
769
|
for (const path of filesToIndex) {
|
|
783
770
|
try {
|
|
784
771
|
// Read actual file content
|
|
785
772
|
const result = await this.fileReader.readFile(path);
|
|
786
773
|
if (result.success && result.value) {
|
|
787
|
-
await this.semanticAnalyzer.indexCode(path, result.value);
|
|
774
|
+
const indexed = await this.semanticAnalyzer.indexCode(path, result.value);
|
|
775
|
+
if (indexed.success)
|
|
776
|
+
searchable++;
|
|
788
777
|
}
|
|
789
778
|
}
|
|
790
779
|
catch {
|
|
791
780
|
// Continue on error - file may not exist or be unreadable
|
|
792
781
|
}
|
|
793
782
|
}
|
|
783
|
+
// #1224: say when search will not see every indexed file.
|
|
784
|
+
const warnings = [];
|
|
785
|
+
if (searchable < paths.length) {
|
|
786
|
+
warnings.push(`Search covers ${searchable} of ${paths.length} indexed files` +
|
|
787
|
+
(paths.length > SEARCH_INDEX_FILE_LIMIT ? ` (at most ${SEARCH_INDEX_FILE_LIMIT} per index run)` : '') +
|
|
788
|
+
'; code in the other files is not found by search.');
|
|
789
|
+
}
|
|
790
|
+
return { searchable, warnings };
|
|
794
791
|
}
|
|
795
792
|
// ============================================================================
|
|
796
793
|
// State Persistence
|
|
@@ -71,6 +71,13 @@ export interface SearchResults {
|
|
|
71
71
|
results: SearchResult[];
|
|
72
72
|
total: number;
|
|
73
73
|
searchTime: number;
|
|
74
|
+
/**
|
|
75
|
+
* #1224, semantic searches only: 'vector' when an embedding model ranked the
|
|
76
|
+
* results, 'lexical-only' when none was available and query words were
|
|
77
|
+
* matched against the indexed text instead (`reason` says why).
|
|
78
|
+
*/
|
|
79
|
+
mode?: 'vector' | 'lexical-only';
|
|
80
|
+
reason?: string;
|
|
74
81
|
}
|
|
75
82
|
export interface SearchResult {
|
|
76
83
|
file: string;
|
|
@@ -79,6 +86,8 @@ export interface SearchResult {
|
|
|
79
86
|
score: number;
|
|
80
87
|
highlights: string[];
|
|
81
88
|
metadata?: Record<string, unknown>;
|
|
89
|
+
/** #1224: how a semantic hit was found; its score is a text-match score when 'lexical'. */
|
|
90
|
+
matchType?: 'vector' | 'lexical';
|
|
82
91
|
}
|
|
83
92
|
export interface ImpactRequest {
|
|
84
93
|
changedFiles: string[];
|
|
@@ -6,6 +6,11 @@ import { Result } from '../../../shared/types';
|
|
|
6
6
|
import { MemoryBackend } from '../../../kernel/interfaces';
|
|
7
7
|
import { NomicEmbedderConfig, IEmbeddingProvider } from '../../../shared/embeddings';
|
|
8
8
|
import { SearchRequest, SearchResults, SearchResult } from '../interfaces';
|
|
9
|
+
/**
|
|
10
|
+
* #1224: the message for a search over an empty index. "No results" is only
|
|
11
|
+
* reported after searching an index that holds code.
|
|
12
|
+
*/
|
|
13
|
+
export declare const NOTHING_INDEXED_FOR_SEARCH: string;
|
|
9
14
|
/**
|
|
10
15
|
* Interface for the semantic analyzer service
|
|
11
16
|
*/
|
|
@@ -18,7 +23,10 @@ export interface ISemanticAnalyzerService {
|
|
|
18
23
|
findSimilar(code: string, limit?: number): Promise<Result<SearchResult[], Error>>;
|
|
19
24
|
/** Analyze code semantics */
|
|
20
25
|
analyze(code: string): Promise<Result<SemanticAnalysis, Error>>;
|
|
21
|
-
/**
|
|
26
|
+
/**
|
|
27
|
+
* Get code embeddings. Throws when no embedding model is available: no
|
|
28
|
+
* pseudo-embedding is substituted (ADR-097).
|
|
29
|
+
*/
|
|
22
30
|
getEmbedding(code: string): Promise<number[]>;
|
|
23
31
|
}
|
|
24
32
|
/**
|
|
@@ -56,8 +64,15 @@ export interface HalsteadMetrics {
|
|
|
56
64
|
export interface SemanticAnalyzerConfig {
|
|
57
65
|
/** Embedding vector dimension (384 for all-MiniLM-L6-v2) */
|
|
58
66
|
embeddingDimension: number;
|
|
59
|
-
/** Minimum
|
|
67
|
+
/** Minimum word-overlap score for fuzzy and text-only matches */
|
|
60
68
|
minScore: number;
|
|
69
|
+
/**
|
|
70
|
+
* #1224: minimum cosine similarity for vector hits. Sentence-embedding
|
|
71
|
+
* models score a relevant file well below 0.5 (all-MiniLM-L6-v2 gave 0.37
|
|
72
|
+
* for "login" against a login function), so the text threshold would hide
|
|
73
|
+
* every vector hit.
|
|
74
|
+
*/
|
|
75
|
+
minVectorScore: number;
|
|
61
76
|
/** Maximum search results */
|
|
62
77
|
maxResults: number;
|
|
63
78
|
/** Storage namespace */
|
|
@@ -84,6 +99,8 @@ export declare class SemanticAnalyzerService implements ISemanticAnalyzerService
|
|
|
84
99
|
private readonly analysisCache;
|
|
85
100
|
private embedder;
|
|
86
101
|
private embedderInitialized;
|
|
102
|
+
/** #1224: why no embedder is in use, once initialization has run. */
|
|
103
|
+
private embedderUnavailableReason;
|
|
87
104
|
constructor(memory: MemoryBackend, config?: Partial<SemanticAnalyzerConfig>);
|
|
88
105
|
/**
|
|
89
106
|
* Initialize the Nomic embedder lazily
|
|
@@ -106,15 +123,31 @@ export declare class SemanticAnalyzerService implements ISemanticAnalyzerService
|
|
|
106
123
|
*/
|
|
107
124
|
analyze(code: string): Promise<Result<SemanticAnalysis, Error>>;
|
|
108
125
|
/**
|
|
109
|
-
* Get embedding vector for code
|
|
110
|
-
* Uses Nomic embeddings via Ollama
|
|
126
|
+
* Get embedding vector for code.
|
|
127
|
+
* Uses Nomic embeddings via Ollama (or the injected provider). Throws when
|
|
128
|
+
* neither is available: no pseudo-embedding is substituted (#1224, ADR-097).
|
|
111
129
|
*/
|
|
112
130
|
getEmbedding(code: string): Promise<number[]>;
|
|
113
131
|
/**
|
|
114
132
|
* Check if using real Nomic embeddings
|
|
115
133
|
*/
|
|
116
134
|
isUsingNomicEmbeddings(): boolean;
|
|
135
|
+
/** #1224: embed `text`, or say why no real embedding is available. */
|
|
136
|
+
private tryEmbed;
|
|
137
|
+
/** Identifies the model behind stored vectors, so vectors from another model are not compared. */
|
|
138
|
+
private embeddingModelId;
|
|
139
|
+
private isCurrentModelVector;
|
|
140
|
+
private vectorKeyPrefix;
|
|
141
|
+
private contentKeyPattern;
|
|
142
|
+
/**
|
|
143
|
+
* #1224: vector search when an embedding model is available. Otherwise (or
|
|
144
|
+
* when no indexed file has a vector from that model) it matches query words
|
|
145
|
+
* against the indexed text and says so through `lexicalOnlyReason`; no
|
|
146
|
+
* similarity is invented for those hits.
|
|
147
|
+
*/
|
|
117
148
|
private semanticSearch;
|
|
149
|
+
/** Word-overlap matching for a semantic query when no vectors can be used. */
|
|
150
|
+
private lexicalSearch;
|
|
118
151
|
private exactSearch;
|
|
119
152
|
private fuzzySearch;
|
|
120
153
|
private extractConcepts;
|
|
@@ -122,11 +155,16 @@ export declare class SemanticAnalyzerService implements ISemanticAnalyzerService
|
|
|
122
155
|
private calculateComplexity;
|
|
123
156
|
private extractDependencies;
|
|
124
157
|
private generateSuggestions;
|
|
125
|
-
private generateCodeEmbedding;
|
|
126
158
|
private extractCodeMetadata;
|
|
127
159
|
private detectLanguage;
|
|
128
160
|
private tokenize;
|
|
129
161
|
private calculateFuzzyScore;
|
|
162
|
+
/**
|
|
163
|
+
* A content token matches a query token it contains, or that contains it.
|
|
164
|
+
* #1224: the second direction needs a content token of 3+ characters, so a
|
|
165
|
+
* one-letter variable such as `i` does not match the query "login".
|
|
166
|
+
*/
|
|
167
|
+
private tokensMatch;
|
|
130
168
|
private matchesFilters;
|
|
131
169
|
private extractSnippet;
|
|
132
170
|
private extractSnippetAround;
|