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
|
@@ -0,0 +1,361 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agentic QE v3 - task_orchestrate MCP handler
|
|
3
|
+
* ADR-051: Integrated with Model Router for intelligent tier selection
|
|
4
|
+
* Issue #206: Workflow auto-execution for task types with associated workflows
|
|
5
|
+
*/
|
|
6
|
+
import { getFleetState, isFleetInitialized } from './core-handlers.js';
|
|
7
|
+
import { getTaskRouter } from '../services/task-router.js';
|
|
8
|
+
import { getReasoningBankService, startTaskTrajectory } from '../services/reasoning-bank-service.js';
|
|
9
|
+
import { scoreUnjudgedTrajectories } from './trajectory-judge.js';
|
|
10
|
+
import { toErrorMessage } from '../../shared/error-utils.js';
|
|
11
|
+
import { invalidPriorityMessage, isPriority } from '../../shared/types/index.js';
|
|
12
|
+
import { validateIndexPaths } from '../../domains/code-intelligence/index-path-guard.js';
|
|
13
|
+
import { routeInferredTask } from './orchestrate-routes.js';
|
|
14
|
+
import { getTaskExecutor } from './handler-factory.js';
|
|
15
|
+
import { TASK_WORKFLOW_MAP, inferDomainFromDescription, inferTaskType } from './task-inference.js';
|
|
16
|
+
/**
|
|
17
|
+
* #1022: gather experience guidance and pattern hints for task_orchestrate.
|
|
18
|
+
* Learned guidance is optional: a missing embedder, or a ReasoningBank that
|
|
19
|
+
* cannot start, must not fail the orchestration. The returned status says
|
|
20
|
+
* which kind of matching produced the hints.
|
|
21
|
+
*/
|
|
22
|
+
async function getOrchestrateLearningContext(task, guidanceDomain, patternDomain) {
|
|
23
|
+
let service;
|
|
24
|
+
try {
|
|
25
|
+
service = await getReasoningBankService();
|
|
26
|
+
}
|
|
27
|
+
catch (error) {
|
|
28
|
+
return {
|
|
29
|
+
experienceGuidance: null,
|
|
30
|
+
patternHintMatches: [],
|
|
31
|
+
learning: { patternSearch: 'unavailable', reason: toErrorMessage(error) },
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
// #1204: a background embedder retry can finish while this call runs.
|
|
35
|
+
// Report vector matching only if the embedder was usable for the whole
|
|
36
|
+
// call, so hints found by text alone are never labelled vector.
|
|
37
|
+
const patternStatusBefore = service.getPatternSearchStatus();
|
|
38
|
+
const experienceStatusBefore = service.getExperienceGuidanceStatus();
|
|
39
|
+
const experienceGuidance = await service.getExperienceGuidance(task, guidanceDomain);
|
|
40
|
+
// Bring HNSW A (qe_patterns) into the routing decision alongside HNSW C
|
|
41
|
+
// (experienceGuidance). Without this, only past trajectories influenced
|
|
42
|
+
// routing — the catalog of consolidated long-term patterns was never
|
|
43
|
+
// consulted for new tasks. Fail-soft: empty array on error.
|
|
44
|
+
const patternHintMatches = await service
|
|
45
|
+
.searchPatternMatches(task, { limit: 5, domain: patternDomain })
|
|
46
|
+
.catch(() => []);
|
|
47
|
+
const status = notVectorIfEither(patternStatusBefore, service.getPatternSearchStatus());
|
|
48
|
+
const experienceStatusAfter = service.getExperienceGuidanceStatus();
|
|
49
|
+
const experienceStatus = experienceStatusBefore && experienceStatusAfter
|
|
50
|
+
? notVectorIfEither(experienceStatusBefore, experienceStatusAfter)
|
|
51
|
+
: experienceStatusAfter;
|
|
52
|
+
return {
|
|
53
|
+
experienceGuidance,
|
|
54
|
+
patternHintMatches,
|
|
55
|
+
learning: {
|
|
56
|
+
patternSearch: status.mode,
|
|
57
|
+
...(status.reason ? { reason: status.reason } : {}),
|
|
58
|
+
...(experienceStatus ? { experienceGuidance: experienceStatus } : {}),
|
|
59
|
+
},
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
/** #1204: the status before the call unless it was vector; otherwise the one after. */
|
|
63
|
+
function notVectorIfEither(before, after) {
|
|
64
|
+
return before.mode === 'vector' ? after : before;
|
|
65
|
+
}
|
|
66
|
+
export async function handleTaskOrchestrate(params) {
|
|
67
|
+
if (!isFleetInitialized()) {
|
|
68
|
+
return {
|
|
69
|
+
success: false,
|
|
70
|
+
error: 'Fleet not initialized. Call fleet_init first.',
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
// #1096: filePaths feeds task payloads (sourceFiles, index paths), so a
|
|
74
|
+
// non-array value is rejected up front with a clear message.
|
|
75
|
+
if (params.filePaths !== undefined) {
|
|
76
|
+
const filePaths = validateIndexPaths(params.filePaths, 'filePaths', 'Invalid task_orchestrate params');
|
|
77
|
+
if (!filePaths.success) {
|
|
78
|
+
return { success: false, error: filePaths.error.message };
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
// #1117: an unrecognised priority used to fall through to p1 (and a
|
|
82
|
+
// requested p0 was downgraded). Reject it up front, as task_submit does.
|
|
83
|
+
if (params.priority !== undefined && mapPriority(params.priority) === undefined) {
|
|
84
|
+
return { success: false, error: invalidOrchestratePriorityMessage(params.priority) };
|
|
85
|
+
}
|
|
86
|
+
const { queen, workflowOrchestrator } = getFleetState();
|
|
87
|
+
try {
|
|
88
|
+
// ADR-051: Route task to optimal model tier BEFORE execution
|
|
89
|
+
// Fix #282: Enrich routing input with inferred domain (same as handleModelRoute)
|
|
90
|
+
const inferredDomain = params.context?.project || inferDomainFromDescription(params.task);
|
|
91
|
+
const inferredIsCritical = params.priority === 'critical' ||
|
|
92
|
+
/\b(security|vulnerability|cve|owasp|critical|production|exploit)\b/i.test(params.task);
|
|
93
|
+
const router = await getTaskRouter();
|
|
94
|
+
const routingResult = await router.routeTask({
|
|
95
|
+
task: params.task,
|
|
96
|
+
codeContext: params.codeContext,
|
|
97
|
+
filePaths: params.filePaths,
|
|
98
|
+
manualTier: params.manualTier,
|
|
99
|
+
isCritical: inferredIsCritical,
|
|
100
|
+
agentType: `qe-${inferredDomain}`,
|
|
101
|
+
domain: inferredDomain,
|
|
102
|
+
metadata: {
|
|
103
|
+
inferredDomain,
|
|
104
|
+
hasCodeContext: !!params.codeContext,
|
|
105
|
+
fileCount: params.filePaths?.length,
|
|
106
|
+
},
|
|
107
|
+
});
|
|
108
|
+
// INTEGRATION FIX: Get ReasoningBank guidance for the task
|
|
109
|
+
const { experienceGuidance, patternHintMatches, learning } = await getOrchestrateLearningContext(params.task, params.context?.project, params.context?.project ?? inferredDomain);
|
|
110
|
+
// Parse task description to determine task type
|
|
111
|
+
const taskType = inferTaskType(params.task);
|
|
112
|
+
const priority = mapPriority(params.priority ?? 'medium') ?? 'p2';
|
|
113
|
+
// Issue #206: Check if this task type has an associated workflow
|
|
114
|
+
const workflowId = TASK_WORKFLOW_MAP[taskType];
|
|
115
|
+
if (workflowId && workflowOrchestrator) {
|
|
116
|
+
// Execute the associated workflow directly
|
|
117
|
+
console.log(`[TaskOrchestrate] Task type '${taskType}' has workflow '${workflowId}' - executing workflow`);
|
|
118
|
+
// Detect URL in task description for live website analysis
|
|
119
|
+
const urlMatch = params.task.match(/https?:\/\/[^\s]+/i);
|
|
120
|
+
const detectedUrl = urlMatch ? urlMatch[0] : undefined;
|
|
121
|
+
if (detectedUrl) {
|
|
122
|
+
console.log(`[TaskOrchestrate] Detected URL for analysis: ${detectedUrl}`);
|
|
123
|
+
}
|
|
124
|
+
// Build workflow input from task params and context
|
|
125
|
+
const workflowInput = {
|
|
126
|
+
// Pass through context fields as workflow input
|
|
127
|
+
targetId: params.context?.project || detectedUrl || `task-${Date.now()}`,
|
|
128
|
+
targetType: detectedUrl ? 'website' : 'epic',
|
|
129
|
+
description: params.task,
|
|
130
|
+
acceptanceCriteria: params.context?.requirements || [],
|
|
131
|
+
// Pass URL if detected (enables website content extraction)
|
|
132
|
+
url: detectedUrl,
|
|
133
|
+
// Include routing info for downstream processing
|
|
134
|
+
routing: {
|
|
135
|
+
tier: routingResult.decision.tier,
|
|
136
|
+
modelId: routingResult.modelId,
|
|
137
|
+
executionStrategy: routingResult.executionStrategy,
|
|
138
|
+
complexity: routingResult.decision.complexityAnalysis.overall,
|
|
139
|
+
},
|
|
140
|
+
// HNSW A pattern hints (mirrors the submitTask payload below); the
|
|
141
|
+
// workflow branch routes through executeWorkflow, so the same catalog
|
|
142
|
+
// of consolidated long-term patterns should reach it.
|
|
143
|
+
patternHints: patternHintMatches.length > 0
|
|
144
|
+
? patternHintMatches.map(({ pattern: p, similarity, score, matchType, canReuse }) => ({
|
|
145
|
+
patternId: p.id,
|
|
146
|
+
name: p.name,
|
|
147
|
+
description: p.description,
|
|
148
|
+
confidence: p.confidence,
|
|
149
|
+
similarity,
|
|
150
|
+
score,
|
|
151
|
+
matchType,
|
|
152
|
+
canReuse,
|
|
153
|
+
}))
|
|
154
|
+
: undefined,
|
|
155
|
+
};
|
|
156
|
+
const workflowResult = await workflowOrchestrator.executeWorkflow(workflowId, workflowInput);
|
|
157
|
+
if (!workflowResult.success) {
|
|
158
|
+
return {
|
|
159
|
+
success: false,
|
|
160
|
+
error: `Workflow execution failed: ${workflowResult.error.message}`,
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
return {
|
|
164
|
+
success: true,
|
|
165
|
+
data: {
|
|
166
|
+
taskId: workflowResult.value, // This is the workflow execution ID
|
|
167
|
+
type: taskType,
|
|
168
|
+
priority,
|
|
169
|
+
strategy: params.strategy || 'adaptive',
|
|
170
|
+
status: 'workflow-started',
|
|
171
|
+
message: `Workflow '${workflowId}' started for task: ${params.task}`,
|
|
172
|
+
routing: {
|
|
173
|
+
tier: routingResult.decision.tier,
|
|
174
|
+
tierName: routingResult.tierInfo.name,
|
|
175
|
+
modelId: routingResult.modelId,
|
|
176
|
+
executionStrategy: routingResult.executionStrategy,
|
|
177
|
+
complexity: routingResult.decision.complexityAnalysis.overall,
|
|
178
|
+
confidence: routingResult.decision.confidence,
|
|
179
|
+
useAgentBooster: routingResult.useAgentBooster,
|
|
180
|
+
rationale: routingResult.decision.rationale,
|
|
181
|
+
decisionTimeMs: routingResult.decision.metadata.decisionTimeMs,
|
|
182
|
+
},
|
|
183
|
+
learning,
|
|
184
|
+
},
|
|
185
|
+
};
|
|
186
|
+
}
|
|
187
|
+
// No workflow - submit as a regular task.
|
|
188
|
+
// #1125: an inferred type without a handler of its own runs the domain's
|
|
189
|
+
// concrete handler, with a payload built only from the request, or is
|
|
190
|
+
// refused with the input it needs.
|
|
191
|
+
const route = await routeInferredTask(taskType, params);
|
|
192
|
+
if (route.kind === 'needs-input') {
|
|
193
|
+
return { success: false, error: route.error };
|
|
194
|
+
}
|
|
195
|
+
const submitType = route.kind === 'route' ? route.type : taskType;
|
|
196
|
+
const targetDomains = route.kind === 'route' ? [route.domain] : [];
|
|
197
|
+
// #1200: a caller-owned task runs through the MCP task executor, as the
|
|
198
|
+
// domain's own tool does; the Queen does not dispatch it.
|
|
199
|
+
const callerExecutor = route.kind === 'route' && route.executionOwner === 'caller' ? getTaskExecutor() : null;
|
|
200
|
+
// #1081: the type must have a domain handler. Otherwise the Queen can
|
|
201
|
+
// only fail the task at dispatch, so reject it here with the reason.
|
|
202
|
+
const executable = queen.validateTaskExecutable(submitType, targetDomains);
|
|
203
|
+
if (!executable.success) {
|
|
204
|
+
return {
|
|
205
|
+
success: false,
|
|
206
|
+
error: `${executable.error.message}. task_orchestrate inferred '${taskType}' from the description; ` +
|
|
207
|
+
'use task_submit with a supported type and its payload, or the domain\'s MCP tool.',
|
|
208
|
+
};
|
|
209
|
+
}
|
|
210
|
+
// Issue N2: Build domain-appropriate payload.
|
|
211
|
+
// Forward caller-provided filePaths/codeContext into the payload fields
|
|
212
|
+
// that domain plugins expect, so generate-tests doesn't reject with
|
|
213
|
+
// "missing sourceFiles" when called via task_orchestrate.
|
|
214
|
+
const taskPayload = {
|
|
215
|
+
description: params.task,
|
|
216
|
+
strategy: params.strategy || 'adaptive',
|
|
217
|
+
maxAgents: params.maxAgents,
|
|
218
|
+
context: params.context,
|
|
219
|
+
};
|
|
220
|
+
if (taskType === 'generate-tests') {
|
|
221
|
+
taskPayload.sourceFiles = params.filePaths || [];
|
|
222
|
+
taskPayload.sourceCode = params.codeContext || '';
|
|
223
|
+
taskPayload.language = taskPayload.language || 'typescript';
|
|
224
|
+
taskPayload.testType = taskPayload.testType || 'unit';
|
|
225
|
+
}
|
|
226
|
+
if (taskType === 'index-code') {
|
|
227
|
+
taskPayload.paths = params.filePaths || [];
|
|
228
|
+
}
|
|
229
|
+
if (route.kind === 'route')
|
|
230
|
+
Object.assign(taskPayload, route.payload);
|
|
231
|
+
const result = await queen.submitTask({
|
|
232
|
+
type: submitType,
|
|
233
|
+
...(callerExecutor ? { executionOwner: 'caller' } : {}),
|
|
234
|
+
priority,
|
|
235
|
+
targetDomains,
|
|
236
|
+
payload: {
|
|
237
|
+
...taskPayload,
|
|
238
|
+
// ADR-051: Include routing decision in payload for downstream processing
|
|
239
|
+
routing: {
|
|
240
|
+
tier: routingResult.decision.tier,
|
|
241
|
+
modelId: routingResult.modelId,
|
|
242
|
+
executionStrategy: routingResult.executionStrategy,
|
|
243
|
+
useAgentBooster: routingResult.useAgentBooster,
|
|
244
|
+
agentBoosterTransform: routingResult.decision.agentBoosterTransform,
|
|
245
|
+
complexity: routingResult.decision.complexityAnalysis.overall,
|
|
246
|
+
confidence: routingResult.decision.confidence,
|
|
247
|
+
},
|
|
248
|
+
// INTEGRATION FIX: Include experience guidance if available
|
|
249
|
+
experienceGuidance: experienceGuidance ? {
|
|
250
|
+
strategy: experienceGuidance.recommendedStrategy,
|
|
251
|
+
actions: experienceGuidance.suggestedActions,
|
|
252
|
+
confidence: experienceGuidance.confidence,
|
|
253
|
+
tokenSavings: experienceGuidance.estimatedTokenSavings,
|
|
254
|
+
} : undefined,
|
|
255
|
+
// HNSW A pattern hints for the executing agent
|
|
256
|
+
patternHints: patternHintMatches.length > 0
|
|
257
|
+
? patternHintMatches.map(({ pattern: p, similarity, score, matchType, canReuse }) => ({
|
|
258
|
+
patternId: p.id,
|
|
259
|
+
name: p.name,
|
|
260
|
+
description: p.description,
|
|
261
|
+
confidence: p.confidence,
|
|
262
|
+
similarity,
|
|
263
|
+
score,
|
|
264
|
+
matchType,
|
|
265
|
+
canReuse,
|
|
266
|
+
}))
|
|
267
|
+
: undefined,
|
|
268
|
+
},
|
|
269
|
+
timeout: 600000, // 10 minutes for orchestrated tasks
|
|
270
|
+
});
|
|
271
|
+
if (!result.success) {
|
|
272
|
+
return {
|
|
273
|
+
success: false,
|
|
274
|
+
error: result.error.message,
|
|
275
|
+
};
|
|
276
|
+
}
|
|
277
|
+
// INTEGRATION FIX: Start trajectory tracking for learning
|
|
278
|
+
const taskId = result.value;
|
|
279
|
+
if (learning.patternSearch !== 'unavailable') {
|
|
280
|
+
await startTaskTrajectory(taskId, params.task, {
|
|
281
|
+
agent: 'queen-coordinator',
|
|
282
|
+
domain: params.context?.project,
|
|
283
|
+
});
|
|
284
|
+
}
|
|
285
|
+
// Issue N1: Trajectory auto-close is handled by subscribeTrajectoryEvents(),
|
|
286
|
+
// which listens for TaskCompleted/TaskFailed on the event router.
|
|
287
|
+
// No per-task polling needed.
|
|
288
|
+
// #1200: run a caller-owned task after its trajectory started, without
|
|
289
|
+
// waiting: the executor's TaskCompleted / TaskFailed settle it for task_status.
|
|
290
|
+
const execution = callerExecutor ? queen.getTaskStatus(taskId) : undefined;
|
|
291
|
+
if (callerExecutor && execution) {
|
|
292
|
+
void callerExecutor.execute(execution.task).catch(error => {
|
|
293
|
+
console.error(`[TaskOrchestrate] Task ${taskId} failed to execute: ${toErrorMessage(error)}`);
|
|
294
|
+
});
|
|
295
|
+
}
|
|
296
|
+
// Trajectory judge: opt-in LLM scoring of recent unscored trajectories.
|
|
297
|
+
// Hook-created rows in qe_trajectories never receive feedback unless
|
|
298
|
+
// something goes back and judges them. This catches up by scoring ≤5
|
|
299
|
+
// rows per task_orchestrate call. Opt-in (AQE_TRAJECTORY_JUDGE=1)
|
|
300
|
+
// because it makes paid LLM calls.
|
|
301
|
+
if (process.env.AQE_TRAJECTORY_JUDGE === '1' && process.env.ANTHROPIC_API_KEY) {
|
|
302
|
+
void scoreUnjudgedTrajectories().catch(err => {
|
|
303
|
+
console.warn('[TrajectoryJudge] failed:', err instanceof Error ? err.message : err);
|
|
304
|
+
});
|
|
305
|
+
}
|
|
306
|
+
return {
|
|
307
|
+
success: true,
|
|
308
|
+
data: {
|
|
309
|
+
taskId,
|
|
310
|
+
type: submitType,
|
|
311
|
+
...(submitType !== taskType ? { inferredType: taskType } : {}),
|
|
312
|
+
priority,
|
|
313
|
+
strategy: params.strategy || 'adaptive',
|
|
314
|
+
status: 'submitted',
|
|
315
|
+
message: `Task orchestrated: ${params.task}${experienceGuidance ? ' (with experience guidance)' : ''}`,
|
|
316
|
+
// ADR-051: Include routing info in response
|
|
317
|
+
routing: {
|
|
318
|
+
tier: routingResult.decision.tier,
|
|
319
|
+
tierName: routingResult.tierInfo.name,
|
|
320
|
+
modelId: routingResult.modelId,
|
|
321
|
+
executionStrategy: routingResult.executionStrategy,
|
|
322
|
+
complexity: routingResult.decision.complexityAnalysis.overall,
|
|
323
|
+
confidence: routingResult.decision.confidence,
|
|
324
|
+
useAgentBooster: routingResult.useAgentBooster,
|
|
325
|
+
rationale: routingResult.decision.rationale,
|
|
326
|
+
decisionTimeMs: routingResult.decision.metadata.decisionTimeMs,
|
|
327
|
+
},
|
|
328
|
+
learning,
|
|
329
|
+
},
|
|
330
|
+
};
|
|
331
|
+
}
|
|
332
|
+
catch (error) {
|
|
333
|
+
return {
|
|
334
|
+
success: false,
|
|
335
|
+
error: `Failed to orchestrate task: ${toErrorMessage(error)}`,
|
|
336
|
+
};
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
/**
|
|
340
|
+
* Map a task_orchestrate priority to the canonical Priority type.
|
|
341
|
+
* Accepts the named levels and the canonical p0-p3 values; returns
|
|
342
|
+
* undefined for anything else so the caller can reject it (#1117).
|
|
343
|
+
*/
|
|
344
|
+
function mapPriority(priority) {
|
|
345
|
+
switch (priority) {
|
|
346
|
+
case 'critical':
|
|
347
|
+
return 'p0';
|
|
348
|
+
case 'high':
|
|
349
|
+
return 'p1';
|
|
350
|
+
case 'medium':
|
|
351
|
+
return 'p2';
|
|
352
|
+
case 'low':
|
|
353
|
+
return 'p3';
|
|
354
|
+
default:
|
|
355
|
+
return isPriority(priority) ? priority : undefined;
|
|
356
|
+
}
|
|
357
|
+
}
|
|
358
|
+
function invalidOrchestratePriorityMessage(value) {
|
|
359
|
+
return `${invalidPriorityMessage(value)} (or critical, high, medium, low)`;
|
|
360
|
+
}
|
|
361
|
+
//# sourceMappingURL=task-orchestrate-handler.js.map
|
|
@@ -45,6 +45,14 @@ import { formatErrorForLog } from '../logging/redaction.js';
|
|
|
45
45
|
import { BEHAVIOR_EXAMPLE_ITEM_SCHEMA } from '../domains/test-generation/services/behavior-example-validation.js';
|
|
46
46
|
import { SAVE_RESULTS_HINT, saveResultsParameter } from './handlers/save-results-option.js';
|
|
47
47
|
import { requestOwnedShutdown } from '../kernel/process-lifecycle.js';
|
|
48
|
+
/**
|
|
49
|
+
* Read-only status tools a client polls while work runs. Repeating one is
|
|
50
|
+
* the status protocol, not a loop, so loop detection skips them (#1227).
|
|
51
|
+
*/
|
|
52
|
+
const LOOP_EXEMPT_STATUS_TOOLS = new Set([
|
|
53
|
+
'pipeline_status', 'task_status', 'task_list', 'fleet_status', 'fleet_health',
|
|
54
|
+
'agent_status', 'team_health', 'infra_healing_status', 'migration_status', 'aqe_health',
|
|
55
|
+
]);
|
|
48
56
|
import { createRequire } from 'module';
|
|
49
57
|
const _require = createRequire(import.meta.url);
|
|
50
58
|
const _pkg = _require('../../package.json');
|
|
@@ -440,8 +448,10 @@ export class MCPProtocolServer {
|
|
|
440
448
|
let loopSteeringPrefix = '';
|
|
441
449
|
// Polling a known execution is a normal status protocol, not a repeated
|
|
442
450
|
// action loop. The default three-strike detector would block the third
|
|
443
|
-
//
|
|
444
|
-
|
|
451
|
+
// identical status call within 30 seconds while the work is running
|
|
452
|
+
// (pipeline_status; #1227: task_status after task_submit, and the other
|
|
453
|
+
// read-only status tools a client polls).
|
|
454
|
+
if (process.env.AQE_LOOP_DETECTION_ENABLED !== 'false' && !LOOP_EXEMPT_STATUS_TOOLS.has(name)) {
|
|
445
455
|
try {
|
|
446
456
|
const loopResult = this.loopTracker.trackCall('mcp-client', name, args);
|
|
447
457
|
if (loopResult.action === 'steer') {
|
|
@@ -684,6 +694,8 @@ export class MCPProtocolServer {
|
|
|
684
694
|
isCacheable: false,
|
|
685
695
|
parameters: [
|
|
686
696
|
{ name: 'status', type: 'string', description: 'Filter by status' },
|
|
697
|
+
{ name: 'priority', type: 'string', description: 'Filter by priority', enum: ['p0', 'p1', 'p2', 'p3'] },
|
|
698
|
+
{ name: 'domain', type: 'string', description: 'Filter by assigned domain' },
|
|
687
699
|
{ name: 'limit', type: 'number', description: 'Maximum results', default: 50 },
|
|
688
700
|
],
|
|
689
701
|
},
|
|
@@ -722,6 +734,7 @@ export class MCPProtocolServer {
|
|
|
722
734
|
{ name: 'task', type: 'string', description: 'Task description', required: true },
|
|
723
735
|
{ name: 'strategy', type: 'string', description: 'Execution strategy', enum: ['parallel', 'sequential', 'adaptive'] },
|
|
724
736
|
{ name: 'filePaths', type: 'array', description: 'Project files the task works on. A security scan or quality assessment runs on these files and is refused without them.', items: { type: 'string' } },
|
|
737
|
+
{ name: 'priority', type: 'string', description: 'Task priority (default: medium/p2)', enum: ['p0', 'p1', 'p2', 'p3', 'critical', 'high', 'medium', 'low'] },
|
|
725
738
|
],
|
|
726
739
|
},
|
|
727
740
|
handler: (params) => handleTaskOrchestrate(params),
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
* - Pattern evolution and consolidation
|
|
12
12
|
* - Synchronous learning (no fire-and-forget)
|
|
13
13
|
*/
|
|
14
|
-
import { type Trajectory, type TrajectoryStep as TrackerTrajectoryStep, type TrajectoryOptions, type ExperienceGuidance, type EnhancedReasoningBankAdapterStats } from '../../integrations/agentic-flow/reasoning-bank/index.js';
|
|
14
|
+
import { type Trajectory, type TrajectoryStep as TrackerTrajectoryStep, type TrajectoryOptions, type ExperienceGuidance, type ExperienceGuidanceStatus, type EnhancedReasoningBankAdapterStats } from '../../integrations/agentic-flow/reasoning-bank/index.js';
|
|
15
15
|
import { type RealQERoutingRequest, type RealQERoutingResult, type RealQEReasoningBankStats, type PatternSearchStatus, type RealQEPatternSearchResult } from '../../learning/real-qe-reasoning-bank.js';
|
|
16
16
|
import type { QEPattern, QEDomain } from '../../learning/qe-patterns.js';
|
|
17
17
|
/**
|
|
@@ -210,6 +210,11 @@ export declare class ReasoningBankService {
|
|
|
210
210
|
}): Promise<RealQEPatternSearchResult[]>;
|
|
211
211
|
/** #1022: whether pattern search uses vectors or text matching only. */
|
|
212
212
|
getPatternSearchStatus(): PatternSearchStatus;
|
|
213
|
+
/**
|
|
214
|
+
* #1204: whether similar-experience guidance can use vectors; null when
|
|
215
|
+
* experience replay is disabled or the service is disposed.
|
|
216
|
+
*/
|
|
217
|
+
getExperienceGuidanceStatus(): ExperienceGuidanceStatus | null;
|
|
213
218
|
/**
|
|
214
219
|
* Get service statistics
|
|
215
220
|
*/
|
|
@@ -519,6 +519,15 @@ export class ReasoningBankService {
|
|
|
519
519
|
getPatternSearchStatus() {
|
|
520
520
|
return this.enhancedAdapter.getPatternSearchStatus();
|
|
521
521
|
}
|
|
522
|
+
/**
|
|
523
|
+
* #1204: whether similar-experience guidance can use vectors; null when
|
|
524
|
+
* experience replay is disabled or the service is disposed.
|
|
525
|
+
*/
|
|
526
|
+
getExperienceGuidanceStatus() {
|
|
527
|
+
if (!this.config.enableExperienceReplay || this.disposed)
|
|
528
|
+
return null;
|
|
529
|
+
return this.enhancedAdapter.getExperienceGuidanceStatus();
|
|
530
|
+
}
|
|
522
531
|
/**
|
|
523
532
|
* Get service statistics
|
|
524
533
|
*/
|
|
@@ -164,13 +164,10 @@ export class CodeAnalyzeTool extends MCPToolBase {
|
|
|
164
164
|
scope: paths.length > 0 && paths[0] !== '.' ? paths : undefined,
|
|
165
165
|
});
|
|
166
166
|
const searchTime = Date.now() - startTime;
|
|
167
|
-
//
|
|
167
|
+
// #1224: a search that could not run (e.g. nothing indexed) is an error,
|
|
168
|
+
// not an empty result.
|
|
168
169
|
if (!result.success) {
|
|
169
|
-
|
|
170
|
-
results: [],
|
|
171
|
-
total: 0,
|
|
172
|
-
searchTime,
|
|
173
|
-
};
|
|
170
|
+
throw result.error;
|
|
174
171
|
}
|
|
175
172
|
// Empty results is a valid state - no matches found
|
|
176
173
|
if (result.value.results.length === 0) {
|
|
@@ -39,6 +39,8 @@ export interface CoverageAnalyzeResult {
|
|
|
39
39
|
language?: string;
|
|
40
40
|
/** Coverage format used for parsing */
|
|
41
41
|
format?: string;
|
|
42
|
+
/** Parts of the coverage report that could not be attributed to a file and are not reported (#1232). */
|
|
43
|
+
warnings?: string[];
|
|
42
44
|
}
|
|
43
45
|
export interface CoverageSummary {
|
|
44
46
|
lines: CoverageMetric;
|
|
@@ -90,6 +92,8 @@ export interface CoverageGapsResult {
|
|
|
90
92
|
description: string;
|
|
91
93
|
confidence: number;
|
|
92
94
|
}>;
|
|
95
|
+
/** Parts of the coverage report that could not be attributed to a file and are not reported (#1232). */
|
|
96
|
+
warnings?: string[];
|
|
93
97
|
}
|
|
94
98
|
export interface CoverageGap {
|
|
95
99
|
file: string;
|
|
@@ -33,6 +33,10 @@ async function confineCoverageInputs(tool, target, coverageFile) {
|
|
|
33
33
|
return { error: f.error.message };
|
|
34
34
|
return { target: confinedTarget, coverageFile: f.value };
|
|
35
35
|
}
|
|
36
|
+
/** The parser's warnings as an error-message suffix (#1232), or ''. */
|
|
37
|
+
function describeWarnings(report) {
|
|
38
|
+
return report?.warnings?.length ? ` ${report.warnings.join('. ')}.` : '';
|
|
39
|
+
}
|
|
36
40
|
// ============================================================================
|
|
37
41
|
// Helper: Calculate Coverage Summary from Files
|
|
38
42
|
// ============================================================================
|
|
@@ -155,7 +159,7 @@ export class CoverageAnalyzeTool extends MCPToolBase {
|
|
|
155
159
|
if (!parsedReport || parsedReport.files.size === 0) {
|
|
156
160
|
return {
|
|
157
161
|
success: false,
|
|
158
|
-
error: `No coverage data found in '${target}'. Run your test suite with coverage enabled (e.g., 'npm test -- --coverage') and ensure coverage reports are generated (lcov.info, coverage-final.json, etc.)`,
|
|
162
|
+
error: `No coverage data found in '${target}'. Run your test suite with coverage enabled (e.g., 'npm test -- --coverage') and ensure coverage reports are generated (lcov.info, coverage-final.json, etc.)${describeWarnings(parsedReport)}`,
|
|
159
163
|
};
|
|
160
164
|
}
|
|
161
165
|
// Mark as real data - we have actual coverage
|
|
@@ -250,6 +254,7 @@ export class CoverageAnalyzeTool extends MCPToolBase {
|
|
|
250
254
|
trends,
|
|
251
255
|
language: detectedLanguage,
|
|
252
256
|
format: detectedFormat,
|
|
257
|
+
...(parsedReport.warnings ? { warnings: parsedReport.warnings } : {}),
|
|
253
258
|
},
|
|
254
259
|
};
|
|
255
260
|
}
|
|
@@ -376,7 +381,7 @@ export class CoverageGapsTool extends MCPToolBase {
|
|
|
376
381
|
if (coverageFile) {
|
|
377
382
|
return {
|
|
378
383
|
success: false,
|
|
379
|
-
error: `Coverage file '${coverageFile}' contains no usable coverage data (parsed 0 files). Verify the file is a non-empty Istanbul/LCOV/JaCoCo/etc. report
|
|
384
|
+
error: `Coverage file '${coverageFile}' contains no usable coverage data (parsed 0 files). Verify the file is a non-empty Istanbul/LCOV/JaCoCo/etc. report.${describeWarnings(parsedReport)}`,
|
|
380
385
|
};
|
|
381
386
|
}
|
|
382
387
|
return {
|
|
@@ -462,6 +467,7 @@ export class CoverageGapsTool extends MCPToolBase {
|
|
|
462
467
|
criticalGaps: gaps.filter((g) => g.severity === 'critical').length,
|
|
463
468
|
suggestedTests,
|
|
464
469
|
...(ghostGaps ? { ghostGaps } : {}),
|
|
470
|
+
...(parsedReport.warnings ? { warnings: parsedReport.warnings } : {}),
|
|
465
471
|
},
|
|
466
472
|
};
|
|
467
473
|
}
|
|
@@ -75,11 +75,15 @@ export interface A11yAuditResult {
|
|
|
75
75
|
}
|
|
76
76
|
export interface UrlAudit {
|
|
77
77
|
url: string;
|
|
78
|
+
/** 0-100 when measured; -1 when the URL was not measured (#1145). */
|
|
78
79
|
score: number;
|
|
79
80
|
passed: boolean;
|
|
80
81
|
violations: A11yViolation[];
|
|
81
82
|
warnings: A11yWarning[];
|
|
82
83
|
passedRules: number;
|
|
84
|
+
/** False when no browser audited the URL; it is then neither passing nor failing (#1145). */
|
|
85
|
+
measured?: boolean;
|
|
86
|
+
notMeasuredReason?: string;
|
|
83
87
|
}
|
|
84
88
|
export interface A11yViolation {
|
|
85
89
|
id: string;
|
|
@@ -103,7 +107,10 @@ export interface A11yWarning {
|
|
|
103
107
|
}
|
|
104
108
|
export interface A11ySummary {
|
|
105
109
|
totalUrls: number;
|
|
110
|
+
/** URLs a browser actually audited; passing/score/violation counts cover only these (#1145). */
|
|
111
|
+
measuredUrls?: number;
|
|
106
112
|
passingUrls: number;
|
|
113
|
+
/** Mean over measured URLs; -1 when none was measured (#1145). */
|
|
107
114
|
avgScore: number;
|
|
108
115
|
criticalViolations: number;
|
|
109
116
|
seriousViolations: number;
|
|
@@ -218,19 +218,24 @@ export class A11yAuditTool extends MCPToolBase {
|
|
|
218
218
|
wcagLevel,
|
|
219
219
|
includeWarnings,
|
|
220
220
|
});
|
|
221
|
-
if (!auditResult.success) {
|
|
222
|
-
//
|
|
221
|
+
if (!auditResult.success || auditResult.value.measured !== true) {
|
|
222
|
+
// #1145: an unmeasured URL carries no findings and no verdict
|
|
223
223
|
audits.push({
|
|
224
224
|
url,
|
|
225
|
-
score:
|
|
225
|
+
score: -1,
|
|
226
226
|
passed: false,
|
|
227
227
|
violations: [],
|
|
228
228
|
warnings: [],
|
|
229
229
|
passedRules: 0,
|
|
230
|
+
measured: false,
|
|
231
|
+
notMeasuredReason: auditResult.success
|
|
232
|
+
? auditResult.value.notMeasuredReason ?? 'not measured'
|
|
233
|
+
: auditResult.error.message,
|
|
230
234
|
});
|
|
231
235
|
continue;
|
|
232
236
|
}
|
|
233
237
|
const report = auditResult.value;
|
|
238
|
+
const notMeasuredWarnings = [];
|
|
234
239
|
// Optionally check contrast
|
|
235
240
|
let contrastViolations = [];
|
|
236
241
|
if (checkContrast) {
|
|
@@ -256,6 +261,9 @@ export class A11yAuditTool extends MCPToolBase {
|
|
|
256
261
|
}));
|
|
257
262
|
}
|
|
258
263
|
}
|
|
264
|
+
else {
|
|
265
|
+
notMeasuredWarnings.push({ id: 'color-contrast-not-measured', description: contrastResult.error.message, nodes: 0 });
|
|
266
|
+
}
|
|
259
267
|
}
|
|
260
268
|
// Optionally check keyboard navigation
|
|
261
269
|
const keyboardViolations = [];
|
|
@@ -302,6 +310,9 @@ export class A11yAuditTool extends MCPToolBase {
|
|
|
302
310
|
});
|
|
303
311
|
}
|
|
304
312
|
}
|
|
313
|
+
else {
|
|
314
|
+
notMeasuredWarnings.push({ id: 'keyboard-not-measured', description: keyboardResult.error.message, nodes: 0 });
|
|
315
|
+
}
|
|
305
316
|
}
|
|
306
317
|
// Convert report violations to output format
|
|
307
318
|
const violations = [
|
|
@@ -323,11 +334,11 @@ export class A11yAuditTool extends MCPToolBase {
|
|
|
323
334
|
...keyboardViolations,
|
|
324
335
|
];
|
|
325
336
|
// Convert warnings (from incomplete checks)
|
|
326
|
-
const warnings = report.incomplete.map((i) => ({
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
337
|
+
const warnings = [...report.incomplete.map((i) => ({
|
|
338
|
+
id: i.id,
|
|
339
|
+
description: i.description,
|
|
340
|
+
nodes: i.nodes.length,
|
|
341
|
+
})), ...notMeasuredWarnings];
|
|
331
342
|
const hasCriticalOrSerious = violations.some((v) => v.impact === 'critical' || v.impact === 'serious');
|
|
332
343
|
audits.push({
|
|
333
344
|
url,
|
|
@@ -336,14 +347,17 @@ export class A11yAuditTool extends MCPToolBase {
|
|
|
336
347
|
violations,
|
|
337
348
|
warnings,
|
|
338
349
|
passedRules: report.passes.length,
|
|
350
|
+
measured: true,
|
|
339
351
|
});
|
|
340
352
|
}
|
|
353
|
+
const measuredAudits = audits.filter((a) => a.measured === true);
|
|
341
354
|
const summary = {
|
|
342
355
|
totalUrls: audits.length,
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
356
|
+
measuredUrls: measuredAudits.length,
|
|
357
|
+
passingUrls: measuredAudits.filter((a) => a.passed).length,
|
|
358
|
+
avgScore: measuredAudits.length > 0
|
|
359
|
+
? Math.round(measuredAudits.reduce((sum, a) => sum + a.score, 0) / measuredAudits.length)
|
|
360
|
+
: -1,
|
|
347
361
|
criticalViolations: audits.reduce((sum, a) => sum + a.violations.filter((v) => v.impact === 'critical').length, 0),
|
|
348
362
|
seriousViolations: audits.reduce((sum, a) => sum + a.violations.filter((v) => v.impact === 'serious').length, 0),
|
|
349
363
|
totalViolations: audits.reduce((sum, a) => sum + a.violations.length, 0),
|
|
@@ -352,7 +366,9 @@ export class A11yAuditTool extends MCPToolBase {
|
|
|
352
366
|
const remediationPlan = generateRemediationPlan(topIssues);
|
|
353
367
|
this.emitStream(context, {
|
|
354
368
|
status: 'complete',
|
|
355
|
-
message:
|
|
369
|
+
message: summary.avgScore < 0
|
|
370
|
+
? `Audit complete: no URL measured (0/${summary.totalUrls}); no score`
|
|
371
|
+
: `Audit complete: ${summary.measuredUrls}/${summary.totalUrls} URL(s) measured, avg score ${summary.avgScore}%`,
|
|
356
372
|
progress: 100,
|
|
357
373
|
});
|
|
358
374
|
return {
|