agentic-qe 3.15.3 → 3.15.4
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 +69 -0
- package/assets/skills/skills-manifest.json +1 -1
- package/dist/cli/bundle.js +5 -5
- package/dist/cli/chunks/adapter-T54G3TBK.js +2 -0
- package/dist/cli/chunks/{agent-booster-wasm-CYG3PKHH.js → agent-booster-wasm-MHJBRXMK.js} +2 -2
- package/dist/cli/chunks/{agent-handler-WTFYFZKL.js → agent-handler-G64SD7J2.js} +2 -2
- package/dist/cli/chunks/{agent-memory-branch-G6WE3ZXU.js → agent-memory-branch-G4UXFPKH.js} +2 -2
- package/dist/cli/chunks/aqe-learning-engine-HLCJJ3JM.js +2 -0
- package/dist/cli/chunks/{arena-ZFXQEVUQ.js → arena-63M3M6EW.js} +2 -2
- package/dist/cli/chunks/{arena-S72QW44C.js → arena-QJMKYPHS.js} +4 -4
- package/dist/cli/chunks/{audit-KPYIEQJ3.js → audit-UDFVTWSX.js} +3 -3
- package/dist/cli/chunks/base-VLD755UU.js +2 -0
- package/dist/cli/chunks/{better-sqlite3-L2M3TI5D.js → better-sqlite3-JLX2G56I.js} +2 -2
- package/dist/cli/chunks/{brain-handler-FHKLQTB4.js → brain-handler-PWF32LLW.js} +3 -3
- package/dist/cli/chunks/{branch-enumerator-3BSHOPOK.js → branch-enumerator-PB7QWXDP.js} +2 -2
- package/dist/cli/chunks/{browser-JUIJPL6Y.js → browser-CYNV2F3U.js} +2 -2
- package/dist/cli/chunks/browser-workflow-6M6VLWRF.js +2 -0
- package/dist/cli/chunks/{chunk-P36IODAM.js → chunk-2534PXIV.js} +2 -2
- package/dist/cli/chunks/{chunk-PUPEKA2J.js → chunk-2DRMTRBM.js} +2 -2
- package/dist/cli/chunks/{chunk-6EQDA4EC.js → chunk-2ICC4H6K.js} +2 -2
- package/dist/cli/chunks/{chunk-MUSYQF53.js → chunk-2LL35V3A.js} +2 -2
- package/dist/cli/chunks/{chunk-2MEWIXW4.js → chunk-2MU4WCMQ.js} +2 -2
- package/dist/cli/chunks/{chunk-CNQUU6CF.js → chunk-33IUCP34.js} +2 -2
- package/dist/cli/chunks/{chunk-U5AVZ3T2.js → chunk-35A22AUL.js} +1 -1
- package/dist/cli/chunks/{chunk-VUBLJBHQ.js → chunk-3BDDOFYW.js} +2 -2
- package/dist/cli/chunks/{chunk-FXTZXZCU.js → chunk-3C2BFLYC.js} +3 -3
- package/dist/cli/chunks/{chunk-4JVVVKAX.js → chunk-3MSBVOYW.js} +2 -2
- package/dist/cli/chunks/{chunk-P6EGRAQG.js → chunk-3ZIVBTX6.js} +2 -2
- package/dist/cli/chunks/{chunk-TBVPNN65.js → chunk-4GLR2S2M.js} +2 -2
- package/dist/cli/chunks/{chunk-6W6GZHQA.js → chunk-54ITMOFM.js} +4 -4
- package/dist/cli/chunks/{chunk-Z7UGEQ4G.js → chunk-54XTJBHV.js} +1 -1
- package/dist/cli/chunks/{chunk-L6OSEWOS.js → chunk-5B5D5KCV.js} +1 -1
- package/dist/cli/chunks/{chunk-HV3ZVUHO.js → chunk-5GWTJJEO.js} +1 -1
- package/dist/cli/chunks/{chunk-WSUYEVSY.js → chunk-5H7MR6HP.js} +1 -1
- package/dist/cli/chunks/{chunk-RQUSJEON.js → chunk-5SS2Z7JC.js} +2 -2
- package/dist/cli/chunks/chunk-5XXLWJU7.js +2 -0
- package/dist/cli/chunks/{chunk-ZATQLTYL.js → chunk-6EHVPFHW.js} +1 -1
- package/dist/cli/chunks/{chunk-2M75CW5Q.js → chunk-6HO3XRXE.js} +2 -2
- package/dist/cli/chunks/{chunk-ASUXS4N4.js → chunk-6HTO4BLV.js} +2 -2
- package/dist/cli/chunks/{chunk-POVP6O6K.js → chunk-6QPW4OVH.js} +1 -1
- package/dist/cli/chunks/{chunk-3ZTBV6M3.js → chunk-6TMUZGM2.js} +1 -1
- package/dist/cli/chunks/{chunk-RRSZ27A7.js → chunk-73MTUM6F.js} +2 -2
- package/dist/cli/chunks/{chunk-CFXROOIU.js → chunk-73PCVMGA.js} +2 -2
- package/dist/cli/chunks/{chunk-O66D4NEJ.js → chunk-76PRW2KY.js} +2 -2
- package/dist/cli/chunks/{chunk-XTGVGZ4J.js → chunk-7INP6HZH.js} +3 -3
- package/dist/cli/chunks/{chunk-ZL2GYU7H.js → chunk-7X2IVMXN.js} +2 -2
- package/dist/cli/chunks/{chunk-F5BREV2Q.js → chunk-A4OPQJ4A.js} +5 -5
- package/dist/cli/chunks/{chunk-2TBHPYOU.js → chunk-ADF6LGHZ.js} +2 -2
- package/dist/cli/chunks/{chunk-RWQDRPN5.js → chunk-AHVN3UQZ.js} +2 -2
- package/dist/cli/chunks/{chunk-QZBFMXO5.js → chunk-AOKSLWON.js} +54 -54
- package/dist/cli/chunks/{chunk-S7D4GD7H.js → chunk-ASKPTGUU.js} +2 -2
- package/dist/cli/chunks/{chunk-LEB6O2IN.js → chunk-B7GJXQD2.js} +2 -2
- package/dist/cli/chunks/{chunk-PBUWNMZ2.js → chunk-B7J3O2WM.js} +1 -1
- package/dist/cli/chunks/{chunk-WI7I6LMM.js → chunk-BBKLVHDQ.js} +1 -1
- package/dist/cli/chunks/{chunk-ED5HUPUR.js → chunk-BND6M2JX.js} +2 -2
- package/dist/cli/chunks/{chunk-5QUOM357.js → chunk-BPGFCUDO.js} +1 -1
- package/dist/cli/chunks/{chunk-QSVNVDA5.js → chunk-BY3IL56R.js} +1 -1
- package/dist/cli/chunks/{chunk-7SWHW5AC.js → chunk-BY5PLEPZ.js} +20 -20
- package/dist/cli/chunks/{chunk-OT6SOPAL.js → chunk-BZWZTGMF.js} +2 -2
- package/dist/cli/chunks/{chunk-7PDC4SKR.js → chunk-C5EN5WB6.js} +1 -1
- package/dist/cli/chunks/{chunk-APV5UWTU.js → chunk-CFXFGQEN.js} +2 -2
- package/dist/cli/chunks/{chunk-AEL4XJGJ.js → chunk-CQ3WSTJ2.js} +2 -2
- package/dist/cli/chunks/{chunk-A3IQU2ND.js → chunk-D7RVZ5C2.js} +2 -2
- package/dist/cli/chunks/{chunk-B23ROYST.js → chunk-DAYMT7TH.js} +21 -21
- package/dist/cli/chunks/{chunk-OTTTHNIT.js → chunk-DBIK4OFX.js} +1 -1
- package/dist/cli/chunks/{chunk-DLA3EHKJ.js → chunk-DEJM2P5K.js} +1 -1
- package/dist/cli/chunks/{chunk-OMHISPPF.js → chunk-DF4Y3HPO.js} +1 -1
- package/dist/cli/chunks/{chunk-DWG4TN6A.js → chunk-DFJGXXCL.js} +1 -1
- package/dist/cli/chunks/{chunk-7UUSV2SK.js → chunk-DPL4ZXTE.js} +1 -1
- package/dist/cli/chunks/{chunk-GPZH6OPP.js → chunk-DVE5SM5G.js} +3 -3
- package/dist/cli/chunks/{chunk-X335K4SU.js → chunk-EGHK6NMH.js} +2 -2
- package/dist/cli/chunks/{chunk-YJH7UFA2.js → chunk-EWUFVWRT.js} +2 -2
- package/dist/cli/chunks/{chunk-KCBCYF7M.js → chunk-EY5IUF7U.js} +2 -2
- package/dist/cli/chunks/{chunk-AOZJ6UUZ.js → chunk-FDK2GF4G.js} +2 -2
- package/dist/cli/chunks/{chunk-OGARNKLS.js → chunk-FRBCX46J.js} +2 -2
- package/dist/cli/chunks/{chunk-UZDTRCVU.js → chunk-G3ZUB3HD.js} +2 -2
- package/dist/cli/chunks/{chunk-OKNMZLGB.js → chunk-GAXTPQCZ.js} +2 -2
- package/dist/cli/chunks/{chunk-VX7CQUO7.js → chunk-GJVRQBLI.js} +2 -2
- package/dist/cli/chunks/{chunk-SKHP5WUP.js → chunk-GLKLEHK3.js} +2 -2
- package/dist/cli/chunks/{chunk-UTALYUMW.js → chunk-HCDTLV5J.js} +2 -2
- package/dist/cli/chunks/{chunk-7IJVCDDC.js → chunk-HEDLZWPM.js} +1 -1
- package/dist/cli/chunks/{chunk-V5NYGDSX.js → chunk-HEKCN5XQ.js} +2 -2
- package/dist/cli/chunks/{chunk-WW4RJ6BH.js → chunk-HFSBONCS.js} +2 -2
- package/dist/cli/chunks/{chunk-5LEUEWJY.js → chunk-HX5KQK7I.js} +2 -2
- package/dist/cli/chunks/{chunk-RDTR43YN.js → chunk-I43QRLLB.js} +2 -2
- package/dist/cli/chunks/{chunk-AQTQ24SK.js → chunk-I53365HG.js} +3 -3
- package/dist/cli/chunks/{chunk-RGD2CG23.js → chunk-I5A3HGO6.js} +2 -2
- package/dist/cli/chunks/{chunk-IARE5VGI.js → chunk-I6E4X3L3.js} +1 -1
- package/dist/cli/chunks/{chunk-YW4GM36K.js → chunk-IKWAPHJA.js} +2 -2
- package/dist/cli/chunks/{chunk-QUXX2DP7.js → chunk-ISASRHZP.js} +2 -2
- package/dist/cli/chunks/{chunk-BDKQSEEY.js → chunk-J3RNVHDH.js} +1 -1
- package/dist/cli/chunks/{chunk-QVNMTMDJ.js → chunk-JFQDWAU3.js} +2 -2
- package/dist/cli/chunks/{chunk-2GJJGO5D.js → chunk-JL3TI43V.js} +2 -2
- package/dist/cli/chunks/{chunk-6TYTBQPV.js → chunk-K2VUYRMG.js} +2 -2
- package/dist/cli/chunks/{chunk-A5H7TF7C.js → chunk-KOLHZSEC.js} +2 -2
- package/dist/cli/chunks/{chunk-WTMLRMKW.js → chunk-LGA6J4I4.js} +2 -2
- package/dist/cli/chunks/{chunk-CF3BPD2R.js → chunk-LJRZAALA.js} +154 -155
- package/dist/cli/chunks/{chunk-BO43BGHX.js → chunk-LOLAEDZD.js} +2 -2
- package/dist/cli/chunks/{chunk-XXW4KFBB.js → chunk-LPSE6DOQ.js} +1 -1
- package/dist/cli/chunks/{chunk-3UUMGWHW.js → chunk-LRTF5RMG.js} +4 -4
- package/dist/cli/chunks/{chunk-FPFGN2Z5.js → chunk-LXYTC62V.js} +2 -2
- package/dist/cli/chunks/{chunk-W7EHNX3Y.js → chunk-LY53L6NH.js} +2 -2
- package/dist/cli/chunks/{chunk-SP2JO53K.js → chunk-LZSLJJII.js} +2 -2
- package/dist/cli/chunks/{chunk-HSR53REE.js → chunk-M6SJALLA.js} +2 -2
- package/dist/cli/chunks/{chunk-AS54N3H7.js → chunk-MBV57LKC.js} +2 -2
- package/dist/cli/chunks/{chunk-6AKJ73X3.js → chunk-MGH4XIHH.js} +2 -2
- package/dist/cli/chunks/{chunk-HW4V7BVV.js → chunk-MVTUFPM2.js} +2 -2
- package/dist/cli/chunks/{chunk-4IYHYHTG.js → chunk-N6CRIUTO.js} +2 -2
- package/dist/cli/chunks/{chunk-X33LID2T.js → chunk-NBMQOP2R.js} +1 -1
- package/dist/cli/chunks/{chunk-D6PUDLJ4.js → chunk-NIJMLEAX.js} +2 -2
- package/dist/cli/chunks/{chunk-YTRGMILO.js → chunk-O7TMY4GS.js} +2 -2
- package/dist/cli/chunks/{chunk-PPA53NJB.js → chunk-OFQDM73J.js} +2 -2
- package/dist/cli/chunks/{chunk-M3ONCPSU.js → chunk-OG4KHX7S.js} +2 -2
- package/dist/cli/chunks/{chunk-3MNKYCLH.js → chunk-OHH6BUZK.js} +1 -1
- package/dist/cli/chunks/{chunk-HR7RL4PB.js → chunk-OOK6GPJR.js} +2 -2
- package/dist/cli/chunks/{chunk-XV2TIODR.js → chunk-P7GM3EE7.js} +1 -1
- package/dist/cli/chunks/{chunk-6V6XVGCL.js → chunk-PB2WSCBW.js} +3 -3
- package/dist/cli/chunks/{chunk-JJBTM4JO.js → chunk-PCWZCXBD.js} +2 -2
- package/dist/cli/chunks/{chunk-POTVF6BY.js → chunk-PEA4DVXW.js} +1 -1
- package/dist/cli/chunks/{chunk-WQZBKLAG.js → chunk-PJAXWCFC.js} +1 -1
- package/dist/cli/chunks/{chunk-KGS6H2HB.js → chunk-PMXWDTDK.js} +2 -2
- package/dist/cli/chunks/chunk-QIAX3JJB.js +3 -0
- package/dist/cli/chunks/{chunk-YGEC3PSD.js → chunk-R47LNH5W.js} +2 -2
- package/dist/cli/chunks/{chunk-M3ACHBC7.js → chunk-RA3MI5WK.js} +2 -2
- package/dist/cli/chunks/{chunk-HVIFA73X.js → chunk-RB2SL5GD.js} +2 -2
- package/dist/cli/chunks/{chunk-YHZGFWJE.js → chunk-RG67RZIX.js} +2 -2
- package/dist/cli/chunks/{chunk-5WOBFN2T.js → chunk-RI4JPBZD.js} +2 -2
- package/dist/cli/chunks/{chunk-NT6FYFJA.js → chunk-RJ5CZ7B6.js} +2 -2
- package/dist/cli/chunks/{chunk-A6PII4R4.js → chunk-RJMBHZYL.js} +1 -1
- package/dist/cli/chunks/{chunk-VHBZADYK.js → chunk-RWZ4F44Y.js} +2 -2
- package/dist/cli/chunks/{chunk-UGNTLSBL.js → chunk-S5D3HCGN.js} +2 -2
- package/dist/cli/chunks/{chunk-366IBPZB.js → chunk-SCL2OYN7.js} +2 -2
- package/dist/cli/chunks/{chunk-EQGT4VLC.js → chunk-SIUUAKCE.js} +1 -1
- package/dist/cli/chunks/{chunk-LPZAB3N2.js → chunk-SJB4KMZS.js} +3 -3
- package/dist/cli/chunks/{chunk-YCGU2LI7.js → chunk-SOSJFEFB.js} +2 -2
- package/dist/cli/chunks/{chunk-YQ3ZW47V.js → chunk-SZWXUG36.js} +2 -2
- package/dist/cli/chunks/{chunk-VGN46ZT4.js → chunk-T3BMCEQR.js} +2 -2
- package/dist/cli/chunks/{chunk-4N7YXTV3.js → chunk-TB22Y3WW.js} +1 -1
- package/dist/cli/chunks/{chunk-FTUNC4EI.js → chunk-TVQPYP2Z.js} +3 -3
- package/dist/cli/chunks/{chunk-JVQK6NGI.js → chunk-U2E5F3VZ.js} +2 -2
- package/dist/cli/chunks/{chunk-UCSGZVJX.js → chunk-UK5HY6LC.js} +1 -1
- package/dist/cli/chunks/{chunk-35VDOH4Y.js → chunk-UORI2CZ4.js} +1 -1
- package/dist/cli/chunks/{chunk-DH5NWHH2.js → chunk-V3NZ23X6.js} +2 -2
- package/dist/cli/chunks/{chunk-YGKU2QRC.js → chunk-VAXQUD5G.js} +1 -1
- package/dist/cli/chunks/{chunk-3Y4GX5FL.js → chunk-VMSO6DMF.js} +2 -2
- package/dist/cli/chunks/{chunk-GJB3LPCS.js → chunk-W3PPYNHF.js} +2 -2
- package/dist/cli/chunks/{chunk-7TW5UGDP.js → chunk-W6TJXK5Y.js} +2 -2
- package/dist/cli/chunks/{chunk-SRDECRTL.js → chunk-WEDVLKRB.js} +2 -2
- package/dist/cli/chunks/{chunk-4TM5K6EZ.js → chunk-WI5AEB7Q.js} +2 -2
- package/dist/cli/chunks/{chunk-Z7JPWXW2.js → chunk-WO4NSPLX.js} +2 -2
- package/dist/cli/chunks/{chunk-WSND64RL.js → chunk-WW6WUMS7.js} +2 -2
- package/dist/cli/chunks/{chunk-VOKIUF7I.js → chunk-WYO5VN2L.js} +1 -1
- package/dist/cli/chunks/{chunk-34Y4CIHD.js → chunk-X5S5UEM6.js} +2 -2
- package/dist/cli/chunks/{chunk-D5V6C3XG.js → chunk-XHCCH7UC.js} +3 -3
- package/dist/cli/chunks/{chunk-MZDUBFLP.js → chunk-XKIFNKHV.js} +1 -1
- package/dist/cli/chunks/{chunk-DE3QNPTG.js → chunk-XZ5Z56OP.js} +1 -1
- package/dist/cli/chunks/{chunk-RWLOERKK.js → chunk-YQ6BK7QC.js} +2 -2
- package/dist/cli/chunks/{chunk-HU474NXP.js → chunk-YUWUFYHK.js} +1 -1
- package/dist/cli/chunks/{chunk-ZJW4HRUA.js → chunk-YZ2AGC7O.js} +1 -1
- package/dist/cli/chunks/{chunk-WLOHTLHO.js → chunk-Z56QTRRB.js} +2 -2
- package/dist/cli/chunks/{chunk-EBIMVSPH.js → chunk-ZAOQIVHG.js} +2 -2
- package/dist/cli/chunks/{chunk-K65X6CQA.js → chunk-ZF5JTQEE.js} +1 -1
- package/dist/cli/chunks/{chunk-VRT736E3.js → chunk-ZKXZTIVF.js} +2 -2
- package/dist/cli/chunks/{chunk-ZI6NJEBY.js → chunk-ZP6ANUP7.js} +1 -1
- package/dist/cli/chunks/{chunk-I5VJ3FBC.js → chunk-ZURYZEHX.js} +2 -2
- package/dist/cli/chunks/{ci-JPISJ25U.js → ci-NGMGB43T.js} +3 -3
- package/dist/cli/chunks/{ci-output-DPHTFIGX.js → ci-output-BMJABAEX.js} +2 -2
- package/dist/cli/chunks/{circuit-breaker-PQ65VU2M.js → circuit-breaker-GYD5CMJQ.js} +2 -2
- package/dist/cli/chunks/{claude-flow-setup-GKHVO7AD.js → claude-flow-setup-MMOYVBVD.js} +2 -2
- package/dist/cli/chunks/client-FUHNNK5O.js +2 -0
- package/dist/cli/chunks/{cline-installer-HWMQZJ64.js → cline-installer-B2SOZ44R.js} +2 -2
- package/dist/cli/chunks/{code-OTY7BF3D.js → code-V3FIRAXD.js} +3 -3
- package/dist/cli/chunks/{code-index-extractor-FG3TMHHR.js → code-index-extractor-CV6A756Z.js} +2 -2
- package/dist/cli/chunks/{codex-installer-63JARKKS.js → codex-installer-EUC6J47Y.js} +2 -2
- package/dist/cli/chunks/{completions-4ZHONFML.js → completions-DQQIBAHR.js} +2 -2
- package/dist/cli/chunks/{complexity-analyzer-FYHTJW5Y.js → complexity-analyzer-HPXMXP5I.js} +2 -2
- package/dist/cli/chunks/{continuedev-installer-ZAWDSUR3.js → continuedev-installer-RCIYXH6V.js} +2 -2
- package/dist/cli/chunks/{copilot-installer-5QK565JX.js → copilot-installer-VUH32SHF.js} +2 -2
- package/dist/cli/chunks/core-handlers-F7TLX4LM.js +2 -0
- package/dist/cli/chunks/{cost-tracker-AWWMPPBJ.js → cost-tracker-YLCKLOAL.js} +2 -2
- package/dist/cli/chunks/{coverage-SMFQEGKE.js → coverage-IVKDV236.js} +3 -3
- package/dist/cli/chunks/cross-domain-router-EGWPY67O.js +2 -0
- package/dist/cli/chunks/{cursor-installer-3BL7JACV.js → cursor-installer-B42FN62K.js} +2 -2
- package/dist/cli/chunks/{daemon-R6ULBHHF.js → daemon-DECQRQII.js} +3 -3
- package/dist/cli/chunks/{daemon-OJ624POF.js → daemon-IPTOSCHM.js} +4 -4
- package/dist/cli/chunks/{dag-attention-scheduler-J6I3LTMY.js → dag-attention-scheduler-RY7CDYSC.js} +2 -2
- package/dist/cli/chunks/{detect-5Q5W33UR.js → detect-NW53BMJN.js} +2 -2
- package/dist/cli/chunks/{dist-node-GJNW56NA.js → dist-node-LE6KHXAB.js} +2 -2
- package/dist/cli/chunks/{domain-handler-IZQY2G44.js → domain-handler-JGXFT4LW.js} +2 -2
- package/dist/cli/chunks/{domain-plugins-PIGO3KI2.js → domain-plugins-GY3RYKKK.js} +2 -2
- package/dist/cli/chunks/{domain-transfer-NU3B4FQG.js → domain-transfer-CGBRXNTC.js} +2 -2
- package/dist/cli/chunks/dream-V4QN6OF5.js +2 -0
- package/dist/cli/chunks/{embed-and-insert-pattern-5QDDRPWV.js → embed-and-insert-pattern-65H4XHWR.js} +2 -2
- package/dist/cli/chunks/{eval-TB5HOAUY.js → eval-YPYIZQUR.js} +2 -2
- package/dist/cli/chunks/{experience-capture-middleware-SIYVLKDE.js → experience-capture-middleware-4JXVF5PL.js} +3 -3
- package/dist/cli/chunks/{fast-paths-T7QELS6D.js → fast-paths-HYQTAF2S.js} +2 -2
- package/dist/cli/chunks/{feature-flags-TNZ7ZAJV.js → feature-flags-HNSAFFX2.js} +2 -2
- package/dist/cli/chunks/{feature-flags-T3CNNYMJ.js → feature-flags-YACUH6OW.js} +2 -2
- package/dist/cli/chunks/{file-discovery-M45P2ZCY.js → file-discovery-R73BYEXB.js} +2 -2
- package/dist/cli/chunks/{fleet-DSBZPHBZ.js → fleet-6M3BP4OO.js} +3 -3
- package/dist/cli/chunks/{gnn-wrapper-EHODCF32.js → gnn-wrapper-QLD7KHXV.js} +2 -2
- package/dist/cli/chunks/{heartbeat-handler-V5DBVF7V.js → heartbeat-handler-EZP333X4.js} +4 -4
- package/dist/cli/chunks/heartbeat-scheduler-3N3L6CRM.js +2 -0
- package/dist/cli/chunks/hnsw-adapter-2BXJYDXI.js +2 -0
- package/dist/cli/chunks/hnsw-index-2DLI5OVO.js +2 -0
- package/dist/cli/chunks/{hnsw-legacy-bridge-IYKDYA2F.js → hnsw-legacy-bridge-47CUCSAU.js} +2 -2
- package/dist/cli/chunks/{hnswlib-node-DKG4LW3X.js → hnswlib-node-SVNYDJZH.js} +2 -2
- package/dist/cli/chunks/{hooks-VKNMAILY.js → hooks-6V5LMWP6.js} +10 -10
- package/dist/cli/chunks/hybrid-backend-OW4J65YH.js +2 -0
- package/dist/cli/chunks/{hypergraph-engine-AXZVP7A7.js → hypergraph-engine-L2FOBIFF.js} +2 -2
- package/dist/cli/chunks/{hypergraph-handler-6EO6JN4Z.js → hypergraph-handler-DU6Z57EE.js} +3 -3
- package/dist/cli/chunks/impact-analyzer-ZH5I2RG6.js +2 -0
- package/dist/cli/chunks/{init-handler-N3NG3RHN.js → init-handler-HETPWU67.js} +6 -6
- package/dist/cli/chunks/init-wizard-NIKM3ZOK.js +2 -0
- package/dist/cli/chunks/kernel-2EOSVM6X.js +2 -0
- package/dist/cli/chunks/{kilocode-installer-JICGAHLM.js → kilocode-installer-NHKYGJ7Q.js} +2 -2
- package/dist/cli/chunks/{kiro-installer-VYBFP6ZH.js → kiro-installer-24UK6GGR.js} +2 -2
- package/dist/cli/chunks/knowledge-graph-D3BPWNNO.js +2 -0
- package/dist/cli/chunks/{learning-3BHEZEPK.js → learning-QLVRZNHT.js} +3 -3
- package/dist/cli/chunks/{llm-router-GPTEZCUN.js → llm-router-XRMI2VMG.js} +4 -4
- package/dist/cli/chunks/llm-router-service-TJPPZFUN.js +2 -0
- package/dist/cli/chunks/{load-W5BIRPU4.js → load-W5UWL5C7.js} +2 -2
- package/dist/cli/chunks/load-test-RFT7IDOL.js +2 -0
- package/dist/cli/chunks/{mcp-EBV4DZPG.js → mcp-N7ALQ4BL.js} +2 -2
- package/dist/cli/chunks/{memory-7F6YYKNL.js → memory-WV52DLSA.js} +5 -5
- package/dist/cli/chunks/memory-backend-O2O4CFKZ.js +2 -0
- package/dist/cli/chunks/{memory-handlers-OGLJHAAJ.js → memory-handlers-DAEGUDBD.js} +2 -2
- package/dist/cli/chunks/{multi-model-executor-3ZIA2YOL.js → multi-model-executor-3FVTZCSO.js} +2 -2
- package/dist/cli/chunks/{opencode-installer-2XRZUTLR.js → opencode-installer-NTPWGHUW.js} +2 -2
- package/dist/cli/chunks/{orchestrator-VSZVJUJW.js → orchestrator-ORGJ6VAA.js} +5 -5
- package/dist/cli/chunks/pattern-null-store-TUBNXS34.js +2 -0
- package/dist/cli/chunks/{pattern-usage-recorder-I2IGVHRL.js → pattern-usage-recorder-WWXHUH5U.js} +2 -2
- package/dist/cli/chunks/{pipeline-5G3O6WBY.js → pipeline-ZOKZFXTH.js} +2 -2
- package/dist/cli/chunks/{platform-6GUFDIA3.js → platform-CDNL322F.js} +2 -2
- package/dist/cli/chunks/{plugin-GYXE4CIC.js → plugin-ZVLFNZZ4.js} +2 -2
- package/dist/cli/chunks/{prime-radiant-advanced-wasm-THX6JLGZ.js → prime-radiant-advanced-wasm-FVJDU2JY.js} +2 -2
- package/dist/cli/chunks/{project-root-QJRBKZQU.js → project-root-UCHQH3QL.js} +2 -2
- package/dist/cli/chunks/protocol-executor-6FQTTO3Y.js +2 -0
- package/dist/cli/chunks/{protocol-handler-B54LRU26.js → protocol-handler-4YBN5R23.js} +2 -2
- package/dist/cli/chunks/{prove-PCY2WQOD.js → prove-BHDHY664.js} +2 -2
- package/dist/cli/chunks/qe-reasoning-bank-TKPND56C.js +2 -0
- package/dist/cli/chunks/{quality-LPVDZC7U.js → quality-46AK277P.js} +2 -2
- package/dist/cli/chunks/{quality-gate-L3KXL6WE.js → quality-gate-WANE7TCN.js} +3 -3
- package/dist/cli/chunks/queen-coordinator-DWMXLPJG.js +2 -0
- package/dist/cli/chunks/{real-embeddings-N3H523PJ.js → real-embeddings-56MNGJGJ.js} +2 -2
- package/dist/cli/chunks/{ref-validation-6BKDPHZ7.js → ref-validation-S7UWXQIP.js} +2 -2
- package/dist/cli/chunks/{roocode-installer-NSGGTWXE.js → roocode-installer-TEYOQYL6.js} +2 -2
- package/dist/cli/chunks/router-QIMUYRCC.js +2 -0
- package/dist/cli/chunks/routing-feedback-4OH5ZNF4.js +2 -0
- package/dist/cli/chunks/{routing-handler-SRQNUBG3.js → routing-handler-KDTLMRWD.js} +2 -2
- package/dist/cli/chunks/{ruvector-commands-2IGULGDE.js → ruvector-commands-AOUDXCYE.js} +2 -2
- package/dist/cli/chunks/rvf-dual-writer-S6JBZL54.js +2 -0
- package/dist/cli/chunks/rvf-migration-adapter-TSGMLMYR.js +2 -0
- package/dist/cli/chunks/{rvf-migration-coordinator-ZD6WK5CK.js → rvf-migration-coordinator-V74MVBHS.js} +2 -2
- package/dist/cli/chunks/rvf-native-adapter-Z7QOW47S.js +2 -0
- package/dist/cli/chunks/{rvf-store-integrity-QULKUBBI.js → rvf-store-integrity-QI47Y354.js} +2 -2
- package/dist/cli/chunks/safe-db-JLOVBJNC.js +2 -0
- package/dist/cli/chunks/schedule-IM6XOBGR.js +2 -0
- package/dist/cli/chunks/scheduler-XL2SVVK5.js +2 -0
- package/dist/cli/chunks/{security-JW4EBARW.js → security-SN6MWOJT.js} +3 -3
- package/dist/cli/chunks/{shared-rvf-adapter-VQ7NJTGY.js → shared-rvf-adapter-2LB56LP4.js} +2 -2
- package/dist/cli/chunks/{shared-rvf-dual-writer-SKTS52HK.js → shared-rvf-dual-writer-WU7PFKQM.js} +2 -2
- package/dist/cli/chunks/sqlite-persistence-LWMIIC4U.js +2 -0
- package/dist/cli/chunks/{standalone-memory-3N4YJCSY.js → standalone-memory-F6FSRFWC.js} +2 -2
- package/dist/cli/chunks/{status-handler-5BQ2IIDG.js → status-handler-DHD5MS4G.js} +2 -2
- package/dist/cli/chunks/{structural-health-WGYR2RJB.js → structural-health-P6HPSQMR.js} +2 -2
- package/dist/cli/chunks/{sync-DLKSXTIR.js → sync-LISJGDSE.js} +2 -2
- package/dist/cli/chunks/{sync-R5OKUBTQ.js → sync-SNAXAVCN.js} +2 -2
- package/dist/cli/chunks/{task-handler-Z5KNTSUX.js → task-handler-ZT44NT5Z.js} +2 -2
- package/dist/cli/chunks/{task-handlers-RZFMYFSC.js → task-handlers-R6DQ5324.js} +3 -3
- package/dist/cli/chunks/{test-LHWKZJRN.js → test-MUFHR4JQ.js} +4 -4
- package/dist/cli/chunks/{test-scheduling-EN7WXUMS.js → test-scheduling-TAUSLZJP.js} +3 -3
- package/dist/cli/chunks/{token-bootstrap-4V3OO4EC.js → token-bootstrap-UGRH7OPU.js} +2 -2
- package/dist/cli/chunks/{token-usage-PFC2BYBS.js → token-usage-IX65ECBR.js} +2 -2
- package/dist/cli/chunks/{transformers-VZCC4SHC.js → transformers-QKPSVW2W.js} +2 -2
- package/dist/cli/chunks/{tree-sitter-wasm-parser-ZYDQXGKN.js → tree-sitter-wasm-parser-Z7PPA2JO.js} +2 -2
- package/dist/cli/chunks/{types-I6AWHZZQ.js → types-ULNNGGGH.js} +2 -2
- package/dist/cli/chunks/unified-memory-F5IJY7W7.js +2 -0
- package/dist/cli/chunks/unified-memory-hnsw-C3WAMAQL.js +2 -0
- package/dist/cli/chunks/unified-persistence-EWXXOTCB.js +2 -0
- package/dist/cli/chunks/{upgrade-T7SG75PA.js → upgrade-ECI3YUYA.js} +2 -2
- package/dist/cli/chunks/{validate-YLYEHTY3.js → validate-3JKRUW2S.js} +2 -2
- package/dist/cli/chunks/{validate-swarm-VTLTRUE3.js → validate-swarm-LZWANCIE.js} +2 -2
- package/dist/cli/chunks/visual-security-CKLTAIAB.js +2 -0
- package/dist/cli/chunks/{web-tree-sitter-JUM7ZY5M.js → web-tree-sitter-N5V4A6XG.js} +2 -2
- package/dist/cli/chunks/{windsurf-installer-4KS2466T.js → windsurf-installer-5TBM5B3C.js} +2 -2
- package/dist/cli/chunks/{witness-chain-E4X6TOCT.js → witness-chain-MFP3HBWQ.js} +2 -2
- package/dist/cli/chunks/witness-chain-Z6LWFEZS.js +2 -0
- package/dist/cli/chunks/{witness-chain-repair-MB53OZO6.js → witness-chain-repair-5QWRFVUK.js} +2 -2
- package/dist/cli/chunks/{witness-chain-verifier-LBWJHO7Y.js → witness-chain-verifier-SRAT7LVY.js} +2 -2
- package/dist/cli/chunks/{witness-key-manager-5IHVMXHJ.js → witness-key-manager-FYZXQTLJ.js} +2 -2
- package/dist/cli/chunks/{workflow-XUQXIRNE.js → workflow-M7TUYYXY.js} +5 -5
- package/dist/cli/chunks/workflow-orchestrator-OFTAR2NA.js +2 -0
- package/dist/cli/chunks/{wrappers-YVF5SQUN.js → wrappers-COU73OQ6.js} +2 -2
- package/dist/cli/commands/workflow.js +3 -0
- package/dist/cli/scheduler/persistent-scheduler.d.ts +2 -0
- package/dist/cli/scheduler/persistent-scheduler.js +12 -2
- package/dist/domains/code-intelligence/services/metric-collector/listing-process-owner.d.ts +3 -0
- package/dist/domains/code-intelligence/services/metric-collector/listing-process-owner.js +57 -0
- package/dist/domains/code-intelligence/services/metric-collector/test-counter.js +124 -36
- package/dist/mcp/bundle.js +414 -415
- package/dist/mcp/handlers/domain-handler-configs.d.ts +42 -0
- package/dist/mcp/services/session-store.js +11 -1
- package/dist/mcp/types.d.ts +18 -0
- package/dist/memory/crdt/convergence-tracker.js +14 -24
- package/dist/memory/crdt/crdt-store.js +15 -0
- package/dist/memory/crdt/lww-register.js +3 -3
- package/dist/memory/crdt/or-set.js +18 -0
- package/dist/planning/goap-planner.js +18 -10
- package/dist/shared/embeddings/embedding-cache.d.ts +3 -3
- package/dist/shared/embeddings/embedding-cache.js +8 -8
- package/dist/shared/embeddings/nomic-embedder.js +9 -6
- package/dist/shared/llm/cache.js +1 -1
- package/package.json +1 -1
- package/dist/cli/chunks/adapter-WQSFQES5.js +0 -2
- package/dist/cli/chunks/aqe-learning-engine-TDHBBADE.js +0 -2
- package/dist/cli/chunks/base-CZSB27VO.js +0 -2
- package/dist/cli/chunks/browser-workflow-AEMIS6PA.js +0 -2
- package/dist/cli/chunks/chunk-INVDDFJC.js +0 -2
- package/dist/cli/chunks/chunk-QDQLL2QB.js +0 -3
- package/dist/cli/chunks/client-BS7I637W.js +0 -2
- package/dist/cli/chunks/core-handlers-UG7RMTK5.js +0 -2
- package/dist/cli/chunks/cross-domain-router-NX7F6TOF.js +0 -2
- package/dist/cli/chunks/dream-GYEH57FW.js +0 -2
- package/dist/cli/chunks/heartbeat-scheduler-4TJ3T7LR.js +0 -2
- package/dist/cli/chunks/hnsw-adapter-PHFK4EAP.js +0 -2
- package/dist/cli/chunks/hnsw-index-434XDDBH.js +0 -2
- package/dist/cli/chunks/hybrid-backend-DYVJQENQ.js +0 -2
- package/dist/cli/chunks/impact-analyzer-CBAST6M2.js +0 -2
- package/dist/cli/chunks/init-wizard-DWIJW7HY.js +0 -2
- package/dist/cli/chunks/kernel-AQGCS4X2.js +0 -2
- package/dist/cli/chunks/knowledge-graph-2ICXFUUV.js +0 -2
- package/dist/cli/chunks/llm-router-service-C47RGTH6.js +0 -2
- package/dist/cli/chunks/load-test-LRDAW3N6.js +0 -2
- package/dist/cli/chunks/memory-backend-UFBAYPQ6.js +0 -2
- package/dist/cli/chunks/pattern-null-store-27FCITT3.js +0 -2
- package/dist/cli/chunks/protocol-executor-XWXXTMEW.js +0 -2
- package/dist/cli/chunks/qe-reasoning-bank-3RMYXENE.js +0 -2
- package/dist/cli/chunks/queen-coordinator-AS6DZ7UJ.js +0 -2
- package/dist/cli/chunks/router-OVNLNGHO.js +0 -2
- package/dist/cli/chunks/routing-feedback-TBOWEB6H.js +0 -2
- package/dist/cli/chunks/rvf-dual-writer-YJYRCYGT.js +0 -2
- package/dist/cli/chunks/rvf-migration-adapter-VMRQ2SFO.js +0 -2
- package/dist/cli/chunks/rvf-native-adapter-B75L3ALW.js +0 -2
- package/dist/cli/chunks/safe-db-CRQHMCV6.js +0 -2
- package/dist/cli/chunks/schedule-L3DKJRXU.js +0 -2
- package/dist/cli/chunks/scheduler-VRHYUGY5.js +0 -2
- package/dist/cli/chunks/sqlite-persistence-JVAZETTL.js +0 -2
- package/dist/cli/chunks/unified-memory-WOOCCIUM.js +0 -2
- package/dist/cli/chunks/unified-memory-hnsw-PDDHFLUB.js +0 -2
- package/dist/cli/chunks/unified-persistence-6ETD3JSC.js +0 -2
- package/dist/cli/chunks/visual-security-O4OT2YPY.js +0 -2
- package/dist/cli/chunks/witness-chain-67JHPDCN.js +0 -2
- package/dist/cli/chunks/workflow-orchestrator-ZVFSNRYZ.js +0 -2
|
@@ -26,6 +26,10 @@ export interface TestExecuteResult {
|
|
|
26
26
|
summary?: Record<string, unknown>;
|
|
27
27
|
learning?: Record<string, unknown>;
|
|
28
28
|
savedFiles?: string[];
|
|
29
|
+
/** #933: true when result files were written; see savedFiles for their paths. */
|
|
30
|
+
resultsSaved?: boolean;
|
|
31
|
+
/** #933: plain statement of what was (or was not) written to disk. */
|
|
32
|
+
resultsNote?: string;
|
|
29
33
|
}
|
|
30
34
|
export interface QualityAssessResult {
|
|
31
35
|
taskId: string;
|
|
@@ -39,6 +43,10 @@ export interface QualityAssessResult {
|
|
|
39
43
|
recommendations: string[];
|
|
40
44
|
duration: number;
|
|
41
45
|
savedFiles?: string[];
|
|
46
|
+
/** #933: true when result files were written; see savedFiles for their paths. */
|
|
47
|
+
resultsSaved?: boolean;
|
|
48
|
+
/** #933: plain statement of what was (or was not) written to disk. */
|
|
49
|
+
resultsNote?: string;
|
|
42
50
|
/** ADR-103: versioned, schema-validated gate verdict (additive) */
|
|
43
51
|
riskDecision?: RiskDecision;
|
|
44
52
|
}
|
|
@@ -55,6 +63,10 @@ export interface SecurityScanResult {
|
|
|
55
63
|
recommendations: string[];
|
|
56
64
|
duration: number;
|
|
57
65
|
savedFiles?: string[];
|
|
66
|
+
/** #933: true when result files were written; see savedFiles for their paths. */
|
|
67
|
+
resultsSaved?: boolean;
|
|
68
|
+
/** #933: plain statement of what was (or was not) written to disk. */
|
|
69
|
+
resultsNote?: string;
|
|
58
70
|
informational?: number;
|
|
59
71
|
evidence?: SecurityScanEvidence;
|
|
60
72
|
limitations?: readonly string[];
|
|
@@ -78,6 +90,10 @@ export interface ContractValidateResult {
|
|
|
78
90
|
warnings: string[];
|
|
79
91
|
duration: number;
|
|
80
92
|
savedFiles?: string[];
|
|
93
|
+
/** #933: true when result files were written; see savedFiles for their paths. */
|
|
94
|
+
resultsSaved?: boolean;
|
|
95
|
+
/** #933: plain statement of what was (or was not) written to disk. */
|
|
96
|
+
resultsNote?: string;
|
|
81
97
|
}
|
|
82
98
|
export interface AccessibilityTestResult {
|
|
83
99
|
taskId: string;
|
|
@@ -88,6 +104,10 @@ export interface AccessibilityTestResult {
|
|
|
88
104
|
warnings: unknown[];
|
|
89
105
|
duration: number;
|
|
90
106
|
savedFiles?: string[];
|
|
107
|
+
/** #933: true when result files were written; see savedFiles for their paths. */
|
|
108
|
+
resultsSaved?: boolean;
|
|
109
|
+
/** #933: plain statement of what was (or was not) written to disk. */
|
|
110
|
+
resultsNote?: string;
|
|
91
111
|
}
|
|
92
112
|
export interface ChaosTestResult {
|
|
93
113
|
taskId: string;
|
|
@@ -100,11 +120,17 @@ export interface ChaosTestResult {
|
|
|
100
120
|
};
|
|
101
121
|
duration: number;
|
|
102
122
|
savedFiles?: string[];
|
|
123
|
+
/** #933: true when result files were written; see savedFiles for their paths. */
|
|
124
|
+
resultsSaved?: boolean;
|
|
125
|
+
/** #933: plain statement of what was (or was not) written to disk. */
|
|
126
|
+
resultsNote?: string;
|
|
103
127
|
}
|
|
104
128
|
export interface DefectPredictParams {
|
|
105
129
|
target?: string;
|
|
106
130
|
lookback?: number;
|
|
107
131
|
minConfidence?: number;
|
|
132
|
+
/** #933: write result files under .agentic-qe/results/ (default true). false skips them. */
|
|
133
|
+
saveResults?: boolean;
|
|
108
134
|
}
|
|
109
135
|
export interface DefectPredictResult {
|
|
110
136
|
taskId: string;
|
|
@@ -118,11 +144,17 @@ export interface DefectPredictResult {
|
|
|
118
144
|
recommendations: string[];
|
|
119
145
|
duration: number;
|
|
120
146
|
savedFiles?: string[];
|
|
147
|
+
/** #933: true when result files were written; see savedFiles for their paths. */
|
|
148
|
+
resultsSaved?: boolean;
|
|
149
|
+
/** #933: plain statement of what was (or was not) written to disk. */
|
|
150
|
+
resultsNote?: string;
|
|
121
151
|
}
|
|
122
152
|
export interface RequirementsValidateParams {
|
|
123
153
|
requirementsPath?: string;
|
|
124
154
|
testPath?: string;
|
|
125
155
|
generateBDD?: boolean;
|
|
156
|
+
/** #933: write result files under .agentic-qe/results/ (default true). false skips them. */
|
|
157
|
+
saveResults?: boolean;
|
|
126
158
|
}
|
|
127
159
|
export interface RequirementsValidateResult {
|
|
128
160
|
taskId: string;
|
|
@@ -133,11 +165,17 @@ export interface RequirementsValidateResult {
|
|
|
133
165
|
bddScenarios: string[];
|
|
134
166
|
duration: number;
|
|
135
167
|
savedFiles?: string[];
|
|
168
|
+
/** #933: true when result files were written; see savedFiles for their paths. */
|
|
169
|
+
resultsSaved?: boolean;
|
|
170
|
+
/** #933: plain statement of what was (or was not) written to disk. */
|
|
171
|
+
resultsNote?: string;
|
|
136
172
|
}
|
|
137
173
|
export interface CodeIndexParams {
|
|
138
174
|
target?: string;
|
|
139
175
|
incremental?: boolean;
|
|
140
176
|
gitSince?: string;
|
|
177
|
+
/** #933: write result files under .agentic-qe/results/ (default true). false skips them. */
|
|
178
|
+
saveResults?: boolean;
|
|
141
179
|
}
|
|
142
180
|
export interface CodeIndexResult {
|
|
143
181
|
taskId: string;
|
|
@@ -147,6 +185,10 @@ export interface CodeIndexResult {
|
|
|
147
185
|
relationsFound: number;
|
|
148
186
|
duration: number;
|
|
149
187
|
savedFiles?: string[];
|
|
188
|
+
/** #933: true when result files were written; see savedFiles for their paths. */
|
|
189
|
+
resultsSaved?: boolean;
|
|
190
|
+
/** #933: plain statement of what was (or was not) written to disk. */
|
|
191
|
+
resultsNote?: string;
|
|
150
192
|
}
|
|
151
193
|
export declare const testGenerateConfig: DomainHandlerConfig<TestGenerateParams, TestGenerateResult>;
|
|
152
194
|
export declare const testExecuteConfig: DomainHandlerConfig<TestExecuteParams, TestExecuteResult>;
|
|
@@ -235,7 +235,17 @@ export class SessionStore {
|
|
|
235
235
|
if (this.flushTimer === null) {
|
|
236
236
|
this.flushTimer = setTimeout(() => {
|
|
237
237
|
this.flushTimer = null;
|
|
238
|
-
|
|
238
|
+
try {
|
|
239
|
+
this.flush();
|
|
240
|
+
}
|
|
241
|
+
catch {
|
|
242
|
+
// #983: a throw here has no caller and reaches 'uncaughtException',
|
|
243
|
+
// which the MCP entry logs as "[AQE] FATAL" on every tick while the
|
|
244
|
+
// disk stays full. The unwritten entries stay buffered for the next
|
|
245
|
+
// append or flush(), and the buffer's one-time WARN reports a
|
|
246
|
+
// persistent failure once it reaches its cap. An explicit flush() or
|
|
247
|
+
// close() still throws to its caller.
|
|
248
|
+
}
|
|
239
249
|
}, BATCH_FLUSH_MS);
|
|
240
250
|
}
|
|
241
251
|
}
|
package/dist/mcp/types.d.ts
CHANGED
|
@@ -199,6 +199,8 @@ export interface TestExecuteParams {
|
|
|
199
199
|
timeout?: number;
|
|
200
200
|
collectCoverage?: boolean;
|
|
201
201
|
reportFormat?: 'json' | 'junit' | 'html' | 'markdown';
|
|
202
|
+
/** #933: write result files under .agentic-qe/results/ (default true). false skips them. */
|
|
203
|
+
saveResults?: boolean;
|
|
202
204
|
}
|
|
203
205
|
/**
|
|
204
206
|
* Coverage analysis parameters
|
|
@@ -209,6 +211,8 @@ export interface CoverageAnalyzeParams {
|
|
|
209
211
|
detectGaps?: boolean;
|
|
210
212
|
mlPowered?: boolean;
|
|
211
213
|
prioritization?: 'complexity' | 'criticality' | 'change-frequency' | 'ml-confidence';
|
|
214
|
+
/** #933: write result files under .agentic-qe/results/ (default true). false skips them. */
|
|
215
|
+
saveResults?: boolean;
|
|
212
216
|
}
|
|
213
217
|
/**
|
|
214
218
|
* Quality assessment parameters
|
|
@@ -217,6 +221,8 @@ export interface QualityAssessParams {
|
|
|
217
221
|
runGate?: boolean;
|
|
218
222
|
threshold?: number;
|
|
219
223
|
metrics?: string[];
|
|
224
|
+
/** #933: write result files under .agentic-qe/results/ (default true). false skips them. */
|
|
225
|
+
saveResults?: boolean;
|
|
220
226
|
}
|
|
221
227
|
/**
|
|
222
228
|
* Security scan parameters
|
|
@@ -228,6 +234,8 @@ export interface SecurityScanParams {
|
|
|
228
234
|
target?: string;
|
|
229
235
|
/** URL for explicitly requested dynamic scanning. */
|
|
230
236
|
targetUrl?: string;
|
|
237
|
+
/** #933: write result files under .agentic-qe/results/ (default true). false skips them. */
|
|
238
|
+
saveResults?: boolean;
|
|
231
239
|
}
|
|
232
240
|
/**
|
|
233
241
|
* Contract validation parameters
|
|
@@ -237,6 +245,8 @@ export interface ContractValidateParams {
|
|
|
237
245
|
providerUrl?: string;
|
|
238
246
|
consumerName?: string;
|
|
239
247
|
checkBreakingChanges?: boolean;
|
|
248
|
+
/** #933: write result files under .agentic-qe/results/ (default true). false skips them. */
|
|
249
|
+
saveResults?: boolean;
|
|
240
250
|
}
|
|
241
251
|
/**
|
|
242
252
|
* Accessibility test parameters
|
|
@@ -245,6 +255,8 @@ export interface AccessibilityTestParams {
|
|
|
245
255
|
url?: string;
|
|
246
256
|
standard?: 'wcag21-aa' | 'wcag21-aaa' | 'wcag22-aa' | 'section508';
|
|
247
257
|
includeScreenReader?: boolean;
|
|
258
|
+
/** #933: write result files under .agentic-qe/results/ (default true). false skips them. */
|
|
259
|
+
saveResults?: boolean;
|
|
248
260
|
}
|
|
249
261
|
/**
|
|
250
262
|
* Chaos test parameters
|
|
@@ -255,6 +267,8 @@ export interface ChaosTestParams {
|
|
|
255
267
|
duration?: number;
|
|
256
268
|
intensity?: number;
|
|
257
269
|
dryRun?: boolean;
|
|
270
|
+
/** #933: write result files under .agentic-qe/results/ (default true). false skips them. */
|
|
271
|
+
saveResults?: boolean;
|
|
258
272
|
}
|
|
259
273
|
/**
|
|
260
274
|
* Protocol execute parameters
|
|
@@ -528,6 +542,10 @@ export interface CoverageAnalyzeResult {
|
|
|
528
542
|
gaps?: CoverageGap[];
|
|
529
543
|
riskScore?: number;
|
|
530
544
|
savedFiles?: string[];
|
|
545
|
+
/** #933: true when result files were written; see savedFiles for their paths. */
|
|
546
|
+
resultsSaved?: boolean;
|
|
547
|
+
/** #933: plain statement of what was (or was not) written to disk. */
|
|
548
|
+
resultsNote?: string;
|
|
531
549
|
/** #569: `null` when no figure was produced — see `lineCoverage`. */
|
|
532
550
|
statementCoverage?: number | null;
|
|
533
551
|
totalFiles?: number;
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
*
|
|
8
8
|
* @module memory/crdt/convergence-tracker
|
|
9
9
|
*/
|
|
10
|
+
import { createHash } from 'node:crypto';
|
|
10
11
|
// =============================================================================
|
|
11
12
|
// Default Configuration
|
|
12
13
|
// =============================================================================
|
|
@@ -23,7 +24,7 @@ const DEFAULT_CONFIG = {
|
|
|
23
24
|
* not the internal representations, so that stores with equivalent data produce
|
|
24
25
|
* the same hash regardless of how they arrived at that state.
|
|
25
26
|
*
|
|
26
|
-
*
|
|
27
|
+
* Fingerprints structured semantic entries; this is not authentication.
|
|
27
28
|
*/
|
|
28
29
|
function hashState(state) {
|
|
29
30
|
const parts = [];
|
|
@@ -31,7 +32,7 @@ function hashState(state) {
|
|
|
31
32
|
// compare the result - if both have same winner, they have same value)
|
|
32
33
|
for (const [key, reg] of Object.entries(state.registers)) {
|
|
33
34
|
// Include value, timestamp, and nodeId - these together determine the LWW winner
|
|
34
|
-
parts.push(
|
|
35
|
+
parts.push(JSON.stringify(['r', key, JSON.stringify(reg.value), reg.timestamp, reg.nodeId]));
|
|
35
36
|
}
|
|
36
37
|
// Hash G-Counters by their TOTAL value (not per-node breakdown)
|
|
37
38
|
// Two stores are converged if they produce the same sum, even if the internal
|
|
@@ -41,10 +42,9 @@ function hashState(state) {
|
|
|
41
42
|
// Also include non-zero counts to detect semantic differences
|
|
42
43
|
const nonZeroCounts = Object.entries(counter.counts)
|
|
43
44
|
.filter(([_, count]) => count > 0)
|
|
44
|
-
.sort(([a], [b]) => a
|
|
45
|
-
.map(([nodeId, count]) =>
|
|
46
|
-
|
|
47
|
-
parts.push(`g:${key}:${total}:{${nonZeroCounts}}`);
|
|
45
|
+
.sort(([a], [b]) => a === b ? 0 : a < b ? -1 : 1)
|
|
46
|
+
.map(([nodeId, count]) => [nodeId, count]);
|
|
47
|
+
parts.push(JSON.stringify(['g', key, total, nonZeroCounts]));
|
|
48
48
|
}
|
|
49
49
|
// Hash PN-Counters by their NET value (positive - negative)
|
|
50
50
|
// Two stores are converged if they evaluate to the same number
|
|
@@ -55,15 +55,13 @@ function hashState(state) {
|
|
|
55
55
|
// Include non-zero contributions for semantic comparison
|
|
56
56
|
const nonZeroPos = Object.entries(counter.positive.counts)
|
|
57
57
|
.filter(([_, count]) => count > 0)
|
|
58
|
-
.sort(([a], [b]) => a
|
|
59
|
-
.map(([nodeId, count]) =>
|
|
60
|
-
.join(',');
|
|
58
|
+
.sort(([a], [b]) => a === b ? 0 : a < b ? -1 : 1)
|
|
59
|
+
.map(([nodeId, count]) => [nodeId, count]);
|
|
61
60
|
const nonZeroNeg = Object.entries(counter.negative.counts)
|
|
62
61
|
.filter(([_, count]) => count > 0)
|
|
63
|
-
.sort(([a], [b]) => a
|
|
64
|
-
.map(([nodeId, count]) =>
|
|
65
|
-
|
|
66
|
-
parts.push(`p:${key}:${netValue}:{${nonZeroPos}|${nonZeroNeg}}`);
|
|
62
|
+
.sort(([a], [b]) => a === b ? 0 : a < b ? -1 : 1)
|
|
63
|
+
.map(([nodeId, count]) => [nodeId, count]);
|
|
64
|
+
parts.push(JSON.stringify(['p', key, netValue, nonZeroPos, nonZeroNeg]));
|
|
67
65
|
}
|
|
68
66
|
// Hash OR-Sets by their active elements (elements with at least one non-tombstoned tag)
|
|
69
67
|
for (const [key, set] of Object.entries(state.sets)) {
|
|
@@ -77,20 +75,12 @@ function hashState(state) {
|
|
|
77
75
|
}
|
|
78
76
|
}
|
|
79
77
|
activeElements.sort();
|
|
80
|
-
parts.push(
|
|
78
|
+
parts.push(JSON.stringify(['s', key, activeElements]));
|
|
81
79
|
}
|
|
82
80
|
// Sort for consistency
|
|
83
81
|
parts.sort();
|
|
84
|
-
//
|
|
85
|
-
|
|
86
|
-
let hash = 0;
|
|
87
|
-
for (let i = 0; i < joined.length; i++) {
|
|
88
|
-
const char = joined.charCodeAt(i);
|
|
89
|
-
hash = ((hash << 5) - hash) + char;
|
|
90
|
-
hash = hash & hash; // Convert to 32-bit integer
|
|
91
|
-
}
|
|
92
|
-
// Return hash without version - version is per-node and shouldn't affect convergence check
|
|
93
|
-
return hash.toString(16);
|
|
82
|
+
// Version is per-node and does not affect semantic convergence.
|
|
83
|
+
return createHash('sha256').update(JSON.stringify(parts)).digest('hex');
|
|
94
84
|
}
|
|
95
85
|
// =============================================================================
|
|
96
86
|
// Convergence Tracker Implementation
|
|
@@ -365,6 +365,21 @@ export function createCRDTStore(config) {
|
|
|
365
365
|
// For initial state, need full state - caller should use getState instead
|
|
366
366
|
return null;
|
|
367
367
|
}
|
|
368
|
+
// A retained suffix cannot cover an older checkpoint. Send complete CRDT
|
|
369
|
+
// state (including OR-set tombstones) through the existing delta merge API.
|
|
370
|
+
if (sinceVersion < deltaHistory[0].fromVersion) {
|
|
371
|
+
const snapshot = store.getState();
|
|
372
|
+
return {
|
|
373
|
+
fromVersion: sinceVersion,
|
|
374
|
+
toVersion: version,
|
|
375
|
+
timestamp: Date.now(),
|
|
376
|
+
nodeId,
|
|
377
|
+
registers: snapshot.registers,
|
|
378
|
+
gCounters: snapshot.gCounters,
|
|
379
|
+
pnCounters: snapshot.pnCounters,
|
|
380
|
+
sets: snapshot.sets,
|
|
381
|
+
};
|
|
382
|
+
}
|
|
368
383
|
// Find deltas that contain changes after the requested version
|
|
369
384
|
// A delta is relevant if its toVersion > sinceVersion
|
|
370
385
|
const relevantDeltas = deltaHistory.filter((d) => d.toVersion > sinceVersion);
|
|
@@ -43,7 +43,7 @@ export function createLWWRegister(nodeId, initialValue, initialTimestamp) {
|
|
|
43
43
|
return timestampA - timestampB;
|
|
44
44
|
}
|
|
45
45
|
// Tiebreaker: lexicographic comparison of node IDs
|
|
46
|
-
return nodeIdA
|
|
46
|
+
return nodeIdA === nodeIdB ? 0 : nodeIdA > nodeIdB ? 1 : -1;
|
|
47
47
|
}
|
|
48
48
|
return {
|
|
49
49
|
get() {
|
|
@@ -52,7 +52,7 @@ export function createLWWRegister(nodeId, initialValue, initialTimestamp) {
|
|
|
52
52
|
set(value, timestamp) {
|
|
53
53
|
const ts = timestamp ?? Date.now();
|
|
54
54
|
// Only update if new timestamp wins
|
|
55
|
-
if (state.
|
|
55
|
+
if (state.version === 0 ||
|
|
56
56
|
compareTimestamps(ts, nodeId, state.timestamp, state.nodeId) > 0) {
|
|
57
57
|
state = {
|
|
58
58
|
value,
|
|
@@ -79,7 +79,7 @@ export function createLWWRegister(nodeId, initialValue, initialTimestamp) {
|
|
|
79
79
|
},
|
|
80
80
|
applyState(incoming) {
|
|
81
81
|
// Only update if incoming timestamp wins
|
|
82
|
-
if (state.
|
|
82
|
+
if (state.version === 0 ||
|
|
83
83
|
compareTimestamps(incoming.timestamp, incoming.nodeId, state.timestamp, state.nodeId) > 0) {
|
|
84
84
|
state = {
|
|
85
85
|
value: incoming.value,
|
|
@@ -83,6 +83,22 @@ export function createORSet(nodeId) {
|
|
|
83
83
|
let version = 0;
|
|
84
84
|
let lastUpdated = Date.now();
|
|
85
85
|
let tagCounter = 0;
|
|
86
|
+
/** Continue this owner's allocation sequence after importing a checkpoint. */
|
|
87
|
+
function observeOwnedTag(tag) {
|
|
88
|
+
const prefix = `${nodeId}:`;
|
|
89
|
+
if (!tag.startsWith(prefix))
|
|
90
|
+
return;
|
|
91
|
+
const suffix = tag.slice(prefix.length);
|
|
92
|
+
const match = /^(-?\d+):(\d+)$/.exec(suffix);
|
|
93
|
+
if (!match)
|
|
94
|
+
return;
|
|
95
|
+
const timestamp = Number(match[1]);
|
|
96
|
+
const counter = Number(match[2]);
|
|
97
|
+
if (Number.isSafeInteger(timestamp) && Number.isSafeInteger(counter) &&
|
|
98
|
+
counter < Number.MAX_SAFE_INTEGER) {
|
|
99
|
+
tagCounter = Math.max(tagCounter, counter + 1);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
86
102
|
/**
|
|
87
103
|
* Check if an element has any active (non-tombstoned) tags
|
|
88
104
|
*/
|
|
@@ -202,6 +218,7 @@ export function createORSet(nodeId) {
|
|
|
202
218
|
}
|
|
203
219
|
const localTags = elements.get(serialized);
|
|
204
220
|
for (const tag of incomingTags) {
|
|
221
|
+
observeOwnedTag(tag);
|
|
205
222
|
if (!localTags.has(tag)) {
|
|
206
223
|
localTags.add(tag);
|
|
207
224
|
changed = true;
|
|
@@ -215,6 +232,7 @@ export function createORSet(nodeId) {
|
|
|
215
232
|
}
|
|
216
233
|
const localTombstones = tombstones.get(serialized);
|
|
217
234
|
for (const tag of incomingTombstones) {
|
|
235
|
+
observeOwnedTag(tag);
|
|
218
236
|
if (!localTombstones.has(tag)) {
|
|
219
237
|
localTombstones.add(tag);
|
|
220
238
|
changed = true;
|
|
@@ -16,6 +16,8 @@ import { safeJsonParse } from '../shared/safe-json.js';
|
|
|
16
16
|
import { getUnifiedPersistence } from '../kernel/unified-persistence.js';
|
|
17
17
|
import { DEFAULT_MAX_PLAN_STEPS, validateMaxSteps } from './types.js';
|
|
18
18
|
import { getAllQEActions, QE_GOALS } from './actions/qe-action-library.js';
|
|
19
|
+
/** Conservative budget fallback for actions without a declared estimate. */
|
|
20
|
+
const DEFAULT_ACTION_DURATION_MS = 1000;
|
|
19
21
|
// ============================================================================
|
|
20
22
|
// MinHeap for A* Open Set (O(log n) insert/extract vs O(n log n) sort+shift)
|
|
21
23
|
// ============================================================================
|
|
@@ -215,18 +217,24 @@ export class GOAPPlanner {
|
|
|
215
217
|
}
|
|
216
218
|
/** Restore missing estimates only for unchanged legacy library definitions. */
|
|
217
219
|
backfillActionDurationEstimates() {
|
|
218
|
-
const
|
|
220
|
+
const db = this.ensureDb();
|
|
221
|
+
const missing = db.prepare('SELECT 1 FROM goap_actions WHERE estimated_duration_ms IS NULL LIMIT 1').get();
|
|
222
|
+
if (!missing)
|
|
223
|
+
return;
|
|
224
|
+
const update = db.prepare(`
|
|
219
225
|
UPDATE goap_actions SET estimated_duration_ms = ?
|
|
220
226
|
WHERE estimated_duration_ms IS NULL AND name = ?
|
|
221
227
|
AND agent_type IS ? AND category = ? AND qe_domain IS ?
|
|
222
228
|
AND preconditions = ? AND effects = ?
|
|
223
229
|
AND method IS ? AND params IS ? AND implemented = ?
|
|
224
230
|
`);
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
231
|
+
db.transaction(() => {
|
|
232
|
+
for (const action of getAllQEActions()) {
|
|
233
|
+
if (action.estimatedDurationMs === undefined)
|
|
234
|
+
continue;
|
|
235
|
+
update.run(action.estimatedDurationMs, action.name, action.agentType ?? null, action.category, action.qeDomain ?? null, JSON.stringify(action.preconditions), JSON.stringify(action.effects), action.method ?? null, action.params ? JSON.stringify(action.params) : null, action.implemented ? 1 : 0);
|
|
236
|
+
}
|
|
237
|
+
})();
|
|
230
238
|
}
|
|
231
239
|
// ==========================================================================
|
|
232
240
|
// Core Planning - A* Search
|
|
@@ -258,7 +266,7 @@ export class GOAPPlanner {
|
|
|
258
266
|
this.recordPlanReuse(reusedPlan.id, true);
|
|
259
267
|
const clonedPlan = {
|
|
260
268
|
...reusedPlan,
|
|
261
|
-
estimatedDurationMs: reusedPlan.actions.reduce((sum, action) => sum + (action.estimatedDurationMs ??
|
|
269
|
+
estimatedDurationMs: reusedPlan.actions.reduce((sum, action) => sum + (action.estimatedDurationMs ?? DEFAULT_ACTION_DURATION_MS), 0),
|
|
262
270
|
id: `plan-${Date.now()}-${randomUUID().slice(0, 8)}`,
|
|
263
271
|
initialState: this.cloneState(currentState),
|
|
264
272
|
reusedFrom: reusedPlan.id,
|
|
@@ -285,7 +293,7 @@ export class GOAPPlanner {
|
|
|
285
293
|
goalState: goal,
|
|
286
294
|
actions: actionSequence,
|
|
287
295
|
totalCost: actionSequence.reduce((sum, a) => sum + a.cost, 0),
|
|
288
|
-
estimatedDurationMs: actionSequence.reduce((sum, a) => sum + (a.estimatedDurationMs ??
|
|
296
|
+
estimatedDurationMs: actionSequence.reduce((sum, a) => sum + (a.estimatedDurationMs ?? DEFAULT_ACTION_DURATION_MS), 0),
|
|
289
297
|
status: 'pending',
|
|
290
298
|
};
|
|
291
299
|
// A14: persist the plan itself (not just its reuse signature) so
|
|
@@ -404,7 +412,7 @@ export class GOAPPlanner {
|
|
|
404
412
|
continue;
|
|
405
413
|
}
|
|
406
414
|
// Check duration constraints
|
|
407
|
-
const estimatedDuration = current.estimatedDurationMs + (action.estimatedDurationMs ??
|
|
415
|
+
const estimatedDuration = current.estimatedDurationMs + (action.estimatedDurationMs ?? DEFAULT_ACTION_DURATION_MS);
|
|
408
416
|
if (estimatedDuration > maxDuration) {
|
|
409
417
|
continue;
|
|
410
418
|
}
|
|
@@ -1040,7 +1048,7 @@ export class GOAPPlanner {
|
|
|
1040
1048
|
if (plan.actions.length > maxSteps)
|
|
1041
1049
|
return false;
|
|
1042
1050
|
if (constraints?.maxDurationMs !== undefined &&
|
|
1043
|
-
plan.actions.reduce((sum, action) => sum + (action.estimatedDurationMs ??
|
|
1051
|
+
plan.actions.reduce((sum, action) => sum + (action.estimatedDurationMs ?? DEFAULT_ACTION_DURATION_MS), 0)
|
|
1044
1052
|
> constraints.maxDurationMs) {
|
|
1045
1053
|
return false;
|
|
1046
1054
|
}
|
|
@@ -19,15 +19,15 @@ export declare class EmbeddingCache {
|
|
|
19
19
|
/**
|
|
20
20
|
* Get cached embedding if available
|
|
21
21
|
*/
|
|
22
|
-
get(content: string, model: string): number[] | null;
|
|
22
|
+
get(content: string, model: string, namespace?: string): number[] | null;
|
|
23
23
|
/**
|
|
24
24
|
* Store embedding in cache
|
|
25
25
|
*/
|
|
26
|
-
set(content: string, model: string, embedding: number[]): void;
|
|
26
|
+
set(content: string, model: string, embedding: number[], namespace?: string): void;
|
|
27
27
|
/**
|
|
28
28
|
* Check if embedding exists in cache
|
|
29
29
|
*/
|
|
30
|
-
has(content: string, model: string): boolean;
|
|
30
|
+
has(content: string, model: string, namespace?: string): boolean;
|
|
31
31
|
/**
|
|
32
32
|
* Get cache statistics
|
|
33
33
|
*/
|
|
@@ -20,16 +20,16 @@ export class EmbeddingCache {
|
|
|
20
20
|
/**
|
|
21
21
|
* Generate SHA-256 hash of content for cache key
|
|
22
22
|
*/
|
|
23
|
-
hashContent(content, model) {
|
|
23
|
+
hashContent(content, model, namespace) {
|
|
24
24
|
return createHash('sha256')
|
|
25
|
-
.update(JSON.stringify([model, content]))
|
|
25
|
+
.update(JSON.stringify(namespace === undefined ? [model, content] : [model, namespace, content]))
|
|
26
26
|
.digest('hex');
|
|
27
27
|
}
|
|
28
28
|
/**
|
|
29
29
|
* Get cached embedding if available
|
|
30
30
|
*/
|
|
31
|
-
get(content, model) {
|
|
32
|
-
const key = this.hashContent(content, model);
|
|
31
|
+
get(content, model, namespace) {
|
|
32
|
+
const key = this.hashContent(content, model, namespace);
|
|
33
33
|
const entry = this.cache.get(key);
|
|
34
34
|
if (entry) {
|
|
35
35
|
this.hits++;
|
|
@@ -44,8 +44,8 @@ export class EmbeddingCache {
|
|
|
44
44
|
/**
|
|
45
45
|
* Store embedding in cache
|
|
46
46
|
*/
|
|
47
|
-
set(content, model, embedding) {
|
|
48
|
-
const key = this.hashContent(content, model);
|
|
47
|
+
set(content, model, embedding, namespace) {
|
|
48
|
+
const key = this.hashContent(content, model, namespace);
|
|
49
49
|
// Evict oldest entry if cache is full (LRU)
|
|
50
50
|
if (this.cache.size >= this.maxSize && !this.cache.has(key)) {
|
|
51
51
|
const firstKey = this.cache.keys().next().value;
|
|
@@ -63,8 +63,8 @@ export class EmbeddingCache {
|
|
|
63
63
|
/**
|
|
64
64
|
* Check if embedding exists in cache
|
|
65
65
|
*/
|
|
66
|
-
has(content, model) {
|
|
67
|
-
const key = this.hashContent(content, model);
|
|
66
|
+
has(content, model, namespace) {
|
|
67
|
+
const key = this.hashContent(content, model, namespace);
|
|
68
68
|
return this.cache.has(key);
|
|
69
69
|
}
|
|
70
70
|
/**
|
|
@@ -15,6 +15,9 @@ import { EmbeddingCache } from './embedding-cache.js';
|
|
|
15
15
|
import { toErrorMessage } from '../error-utils.js';
|
|
16
16
|
import { EMBEDDING_CONFIG, } from './types.js';
|
|
17
17
|
const PSEUDO_EMBEDDING_MODEL = 'pseudo-embedding';
|
|
18
|
+
// Unversioned real-model entries may predate fallback provenance separation.
|
|
19
|
+
const VERIFIED_MODEL_CACHE_NAMESPACE = 'verified-backend-v1';
|
|
20
|
+
const cacheNamespace = (model) => model === EMBEDDING_CONFIG.MODEL ? VERIFIED_MODEL_CACHE_NAMESPACE : undefined;
|
|
18
21
|
/**
|
|
19
22
|
* Nomic Embedder for generating code embeddings via Ollama
|
|
20
23
|
*/
|
|
@@ -53,10 +56,10 @@ export class NomicEmbedder {
|
|
|
53
56
|
async embed(text) {
|
|
54
57
|
// Prefer genuine cached vectors, then select the active backend before a
|
|
55
58
|
// single counted lookup so alternate namespaces do not inflate misses.
|
|
56
|
-
let model = this.cache.has(text, EMBEDDING_CONFIG.MODEL) ||
|
|
59
|
+
let model = this.cache.has(text, EMBEDDING_CONFIG.MODEL, VERIFIED_MODEL_CACHE_NAMESPACE) ||
|
|
57
60
|
await this.isOllamaAvailable() || !this.enableFallback
|
|
58
61
|
? EMBEDDING_CONFIG.MODEL : PSEUDO_EMBEDDING_MODEL;
|
|
59
|
-
const cached = this.cache.get(text, model);
|
|
62
|
+
const cached = this.cache.get(text, model, cacheNamespace(model));
|
|
60
63
|
if (cached) {
|
|
61
64
|
return cached;
|
|
62
65
|
}
|
|
@@ -75,7 +78,7 @@ export class NomicEmbedder {
|
|
|
75
78
|
`Please run: ollama pull ${EMBEDDING_CONFIG.MODEL}`);
|
|
76
79
|
}
|
|
77
80
|
// Cache result
|
|
78
|
-
this.cache.set(text, model, embedding);
|
|
81
|
+
this.cache.set(text, model, embedding, cacheNamespace(model));
|
|
79
82
|
return embedding;
|
|
80
83
|
}
|
|
81
84
|
/**
|
|
@@ -188,9 +191,9 @@ export class NomicEmbedder {
|
|
|
188
191
|
const formattedText = this.formatForEmbedding(chunk);
|
|
189
192
|
const chunkStartTime = Date.now();
|
|
190
193
|
// Check cache
|
|
191
|
-
const cachedModel = useOllama || this.cache.has(formattedText, EMBEDDING_CONFIG.MODEL)
|
|
194
|
+
const cachedModel = useOllama || this.cache.has(formattedText, EMBEDDING_CONFIG.MODEL, VERIFIED_MODEL_CACHE_NAMESPACE)
|
|
192
195
|
? EMBEDDING_CONFIG.MODEL : PSEUDO_EMBEDDING_MODEL;
|
|
193
|
-
const cachedEmbedding = this.cache.get(formattedText, cachedModel);
|
|
196
|
+
const cachedEmbedding = this.cache.get(formattedText, cachedModel, cacheNamespace(cachedModel));
|
|
194
197
|
if (cachedEmbedding) {
|
|
195
198
|
return {
|
|
196
199
|
chunkId: chunk.id,
|
|
@@ -211,7 +214,7 @@ export class NomicEmbedder {
|
|
|
211
214
|
}
|
|
212
215
|
// Cache the result
|
|
213
216
|
const model = useOllama ? EMBEDDING_CONFIG.MODEL : PSEUDO_EMBEDDING_MODEL;
|
|
214
|
-
this.cache.set(formattedText, model, embedding);
|
|
217
|
+
this.cache.set(formattedText, model, embedding, cacheNamespace(model));
|
|
215
218
|
return {
|
|
216
219
|
chunkId: chunk.id,
|
|
217
220
|
embedding,
|
package/dist/shared/llm/cache.js
CHANGED
|
@@ -276,7 +276,7 @@ export class LLMResponseCache {
|
|
|
276
276
|
* Cache a generation response
|
|
277
277
|
*/
|
|
278
278
|
setGeneration(input, response, options, ttlMs) {
|
|
279
|
-
if (!this.config.cacheGenerations) {
|
|
279
|
+
if (!this.config.cacheGenerations || response.finishReason === 'content_filter') {
|
|
280
280
|
return;
|
|
281
281
|
}
|
|
282
282
|
const key = LLMCache.generateKey('generation', input, options);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "agentic-qe",
|
|
3
|
-
"version": "3.15.
|
|
3
|
+
"version": "3.15.4",
|
|
4
4
|
"description": "Agentic Quality Engineering V3 - Domain-Driven Design Architecture with 13 Bounded Contexts, O(log n) coverage analysis, ReasoningBank learning, 60 specialized QE agents, mathematical Coherence verification, deep Claude Flow integration",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.15.3");process.exit(0)}
|
|
2
|
-
import{a,b,c}from"./chunk-XTGVGZ4J.js";import"./chunk-ED5HUPUR.js";import"./chunk-3MNKYCLH.js";import"./chunk-UGNTLSBL.js";import"./chunk-2GJJGO5D.js";import"./chunk-WSUYEVSY.js";export{a as AgentBoosterAdapter,b as createAgentBoosterAdapter,c as createAgentBoosterAdapterSync};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.15.3");process.exit(0)}
|
|
2
|
-
import{a,b,c,d,e,f}from"./chunk-FTUNC4EI.js";import"./chunk-2M75CW5Q.js";import"./chunk-D5V6C3XG.js";import"./chunk-EQGT4VLC.js";import"./chunk-6W6GZHQA.js";import"./chunk-JJBTM4JO.js";import"./chunk-ZJW4HRUA.js";import"./chunk-3ZTBV6M3.js";import"./chunk-OMHISPPF.js";import"./chunk-AOZJ6UUZ.js";import"./chunk-OT6SOPAL.js";import"./chunk-UCSGZVJX.js";import"./chunk-TBVPNN65.js";import"./chunk-QUXX2DP7.js";import"./chunk-WQZBKLAG.js";import"./chunk-6EQDA4EC.js";import"./chunk-7SWHW5AC.js";import"./chunk-OGARNKLS.js";import"./chunk-UGNTLSBL.js";import"./chunk-ASUXS4N4.js";import"./chunk-UTALYUMW.js";import"./chunk-NT6FYFJA.js";import"./chunk-7TW5UGDP.js";import"./chunk-D6PUDLJ4.js";import"./chunk-M3ONCPSU.js";import"./chunk-HVIFA73X.js";import"./chunk-GPZH6OPP.js";import"./chunk-CNQUU6CF.js";import"./chunk-POTVF6BY.js";import"./chunk-Z7UGEQ4G.js";import"./chunk-WSND64RL.js";import"./chunk-INVDDFJC.js";import"./chunk-FPFGN2Z5.js";import"./chunk-WLOHTLHO.js";import"./chunk-2GJJGO5D.js";import"./chunk-6TYTBQPV.js";import"./chunk-PUPEKA2J.js";import"./chunk-YTRGMILO.js";import"./chunk-L6OSEWOS.js";import"./chunk-4TM5K6EZ.js";import"./chunk-Z7JPWXW2.js";import"./chunk-34Y4CIHD.js";import"./chunk-WSUYEVSY.js";export{b as AQELearningEngine,a as DEFAULT_ENGINE_CONFIG,c as DEFAULT_META_LEARNING_CONFIG,d as MetaLearningEngine,e as createAQELearningEngine,f as createDefaultLearningEngine};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.15.3");process.exit(0)}
|
|
2
|
-
import{a,b,c,d,e,f,g,h,i,j,k,l}from"./chunk-AS54N3H7.js";import"./chunk-YHZGFWJE.js";import"./chunk-GJB3LPCS.js";import"./chunk-7SWHW5AC.js";import"./chunk-OGARNKLS.js";import"./chunk-UGNTLSBL.js";import"./chunk-ASUXS4N4.js";import"./chunk-UTALYUMW.js";import"./chunk-NT6FYFJA.js";import"./chunk-7TW5UGDP.js";import"./chunk-D6PUDLJ4.js";import"./chunk-M3ONCPSU.js";import"./chunk-HVIFA73X.js";import"./chunk-CNQUU6CF.js";import"./chunk-POTVF6BY.js";import"./chunk-WSND64RL.js";import"./chunk-INVDDFJC.js";import"./chunk-FPFGN2Z5.js";import"./chunk-WLOHTLHO.js";import"./chunk-2GJJGO5D.js";import"./chunk-6TYTBQPV.js";import"./chunk-YTRGMILO.js";import"./chunk-Z7JPWXW2.js";import"./chunk-34Y4CIHD.js";import"./chunk-WSUYEVSY.js";export{l as MCPToolBase,k as defaultToolLogger,j as getKernel,i as getLLMRouter,e as getMemoryBackend,g as getSharedLLMRouter,c as getSharedMemoryBackend,a as isMemoryOnlyMode,b as registerRvfResetFn,h as resetSharedLLMRouter,d as resetSharedMemoryBackend,f as setSharedLLMRouter};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.15.3");process.exit(0)}
|
|
2
|
-
import{a}from"./chunk-OKNMZLGB.js";import"./chunk-AS54N3H7.js";import"./chunk-YHZGFWJE.js";import"./chunk-GJB3LPCS.js";import"./chunk-7SWHW5AC.js";import"./chunk-OGARNKLS.js";import"./chunk-UGNTLSBL.js";import"./chunk-ASUXS4N4.js";import"./chunk-UTALYUMW.js";import"./chunk-NT6FYFJA.js";import"./chunk-7TW5UGDP.js";import"./chunk-D6PUDLJ4.js";import"./chunk-M3ONCPSU.js";import"./chunk-HVIFA73X.js";import"./chunk-CNQUU6CF.js";import"./chunk-POTVF6BY.js";import"./chunk-WSND64RL.js";import"./chunk-INVDDFJC.js";import"./chunk-FPFGN2Z5.js";import"./chunk-WLOHTLHO.js";import"./chunk-2GJJGO5D.js";import"./chunk-6TYTBQPV.js";import"./chunk-YTRGMILO.js";import"./chunk-Z7JPWXW2.js";import"./chunk-34Y4CIHD.js";import"./chunk-WSUYEVSY.js";export{a as BrowserWorkflowTool};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.15.3");process.exit(0)}
|
|
2
|
-
import{a as e,c as r,d as g,g as t}from"./chunk-FPFGN2Z5.js";import{b as o}from"./chunk-WSUYEVSY.js";var L=o(()=>{"use strict";e();g();t();r()});export{L as a};
|