agentic-qe 3.10.1 → 3.10.3
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/README.txt +17 -0
- package/.claude/hooks/aqe-hook.cjs +98 -0
- package/.claude/hooks/cross-phase-memory.yaml +296 -0
- package/.claude/hooks/post-task-sync.sh +113 -0
- package/.claude/hooks/v3-domain-workers.json +121 -0
- package/.claude/skills/release/SKILL.md +10 -10
- package/.claude/skills/skills-manifest.json +1 -1
- package/CHANGELOG.md +131 -0
- package/assets/grammars/tree-sitter-c_sharp.wasm +0 -0
- package/assets/grammars/tree-sitter-java.wasm +0 -0
- package/assets/grammars/tree-sitter-javascript.wasm +0 -0
- package/assets/grammars/tree-sitter-python.wasm +0 -0
- package/assets/grammars/tree-sitter-rust.wasm +0 -0
- package/assets/grammars/tree-sitter-swift.wasm +0 -0
- package/assets/grammars/tree-sitter-tsx.wasm +0 -0
- package/assets/grammars/tree-sitter-typescript.wasm +0 -0
- package/assets/skills/skills-manifest.json +1 -1
- package/dist/agents/claim-verifier/claim-verifier-service.js +4 -2
- package/dist/agents/claim-verifier/verifiers/test-verifier.js +31 -23
- package/dist/agents/devils-advocate/agent.js +1 -1
- package/dist/cli/bundle.js +5 -5
- package/dist/cli/chunks/adapter-BHPUKMJ5.js +2 -0
- package/dist/cli/chunks/{agent-booster-wasm-FZLWOPSX.js → agent-booster-wasm-NGC6LSQP.js} +2 -2
- package/dist/cli/chunks/{agent-handler-KAGRVCKS.js → agent-handler-P2IJE4GK.js} +2 -2
- package/dist/cli/chunks/{agent-memory-branch-JJKFEXQW.js → agent-memory-branch-JXRJ5GKQ.js} +2 -2
- package/dist/cli/chunks/aqe-learning-engine-JQ5WD2HM.js +2 -0
- package/dist/cli/chunks/{audit-DN5SY4JJ.js → audit-BMQ3VESB.js} +2 -2
- package/dist/cli/chunks/base-E32WLGY2.js +2 -0
- package/dist/cli/chunks/{hnswlib-node-YX6OOBN6.js → better-sqlite3-HP4JZS6K.js} +2 -2
- package/dist/cli/chunks/{brain-handler-O7MP5BGY.js → brain-handler-SACNDFSW.js} +3 -3
- package/dist/cli/chunks/{branch-enumerator-ZPTN5J6V.js → branch-enumerator-LFOTVUDA.js} +2 -2
- package/dist/cli/chunks/{browser-PAZE2JSD.js → browser-FK7PRF3W.js} +2 -2
- package/dist/cli/chunks/browser-workflow-LNNXXAJG.js +2 -0
- package/dist/cli/chunks/{chunk-BF7MUYWC.js → chunk-2EQVYYBF.js} +2 -2
- package/dist/cli/chunks/{chunk-BGBSYF3K.js → chunk-2L73WXA4.js} +2 -2
- package/dist/cli/chunks/{chunk-W2DT3CDE.js → chunk-2ULVCLOW.js} +2 -2
- package/dist/cli/chunks/{chunk-FJSR2U65.js → chunk-3HBWDG62.js} +2 -2
- package/dist/cli/chunks/{chunk-WPNZSL4S.js → chunk-3JAOFKEU.js} +2 -2
- package/dist/cli/chunks/{chunk-2TDWCXZ6.js → chunk-3LRK7PYN.js} +2 -2
- package/dist/cli/chunks/{chunk-MVGVD6LS.js → chunk-3RZL4QTT.js} +2 -2
- package/dist/cli/chunks/chunk-3VF3HCG4.js +2 -0
- package/dist/cli/chunks/{chunk-6E7GI2UB.js → chunk-3X2ZQ55B.js} +4 -4
- package/dist/cli/chunks/{chunk-6QFONVEE.js → chunk-4CYLSXA6.js} +2 -2
- package/dist/cli/chunks/{chunk-VOIWDPIU.js → chunk-4OUAHZX2.js} +2 -2
- package/dist/cli/chunks/{chunk-EIROAH6N.js → chunk-4QFAUSWQ.js} +2 -2
- package/dist/cli/chunks/{chunk-ZEMXMDD3.js → chunk-5ER3COX3.js} +2 -2
- package/dist/cli/chunks/{chunk-ECPB7IAH.js → chunk-5EWWA4QP.js} +4 -4
- package/dist/cli/chunks/{chunk-AUVC3DDB.js → chunk-5G5AAEFF.js} +2 -2
- package/dist/cli/chunks/{chunk-RRLQFFCO.js → chunk-5IBJURYB.js} +3 -3
- package/dist/cli/chunks/chunk-5LON3MLI.js +2 -0
- package/dist/cli/chunks/{chunk-WMG5F6R6.js → chunk-5SGEOO2F.js} +2 -2
- package/dist/cli/chunks/{chunk-SQBB2DC6.js → chunk-6B4S7PKP.js} +3 -3
- package/dist/cli/chunks/{chunk-H44WD7QX.js → chunk-6FL3GN4T.js} +2 -2
- package/dist/cli/chunks/{chunk-7MSYTHZM.js → chunk-6GCOIIHY.js} +2 -2
- package/dist/cli/chunks/{chunk-KKNBYXYA.js → chunk-6Q2PPOOF.js} +1 -1
- package/dist/cli/chunks/{chunk-K4T3RDCB.js → chunk-6ZK24V2Y.js} +2 -2
- package/dist/cli/chunks/{chunk-G3BQU3Q6.js → chunk-72LE6PHL.js} +3 -3
- package/dist/cli/chunks/{chunk-F3OVFA6W.js → chunk-7RMZAVGO.js} +2 -2
- package/dist/cli/chunks/{chunk-YYWIA5FX.js → chunk-7SEHQTYD.js} +1 -1
- package/dist/cli/chunks/{chunk-UU2Q6XWF.js → chunk-7YYTTWGY.js} +1 -1
- package/dist/cli/chunks/{chunk-XKOKMS5A.js → chunk-7ZSPCGTI.js} +2 -2
- package/dist/cli/chunks/{chunk-RWYW573C.js → chunk-ADV4DH3W.js} +5 -5
- package/dist/cli/chunks/{chunk-OC3OJWLB.js → chunk-AEJVOJPT.js} +2 -2
- package/dist/cli/chunks/{chunk-2UN4DOBJ.js → chunk-B5MMDMH6.js} +2 -2
- package/dist/cli/chunks/{chunk-WQEZKAUR.js → chunk-BO2OV2RH.js} +2 -2
- package/dist/cli/chunks/{chunk-NPSBMDVU.js → chunk-BT3QLWII.js} +2 -2
- package/dist/cli/chunks/{chunk-6VQ5MFJ6.js → chunk-BWP3UVPE.js} +7 -7
- package/dist/cli/chunks/{chunk-SLNGJW4G.js → chunk-C6BBRM2J.js} +1 -1
- package/dist/cli/chunks/{chunk-4AWJ5PE4.js → chunk-CAMEFWRK.js} +1 -1
- package/dist/cli/chunks/{chunk-BECU52UY.js → chunk-CNEWYJKT.js} +4 -4
- package/dist/cli/chunks/{chunk-EO4B5GS4.js → chunk-CTDO2UB2.js} +1 -1
- package/dist/cli/chunks/{chunk-GTGONWGX.js → chunk-D2FBUOAR.js} +1 -1
- package/dist/cli/chunks/{chunk-OQP5OFRR.js → chunk-DF3MJ2YL.js} +1 -1
- package/dist/cli/chunks/{chunk-KEC5FBAW.js → chunk-DY5KEOHX.js} +1 -1
- package/dist/cli/chunks/{chunk-EBQ6YKP2.js → chunk-E2BJT6A7.js} +3 -3
- package/dist/cli/chunks/{chunk-WDTCCPK4.js → chunk-EETVN2OJ.js} +1 -1
- package/dist/cli/chunks/{chunk-UDVX34ZG.js → chunk-ERYMAYJW.js} +20 -17
- package/dist/cli/chunks/{chunk-ELUERFGA.js → chunk-FJGSEPFL.js} +2 -2
- package/dist/cli/chunks/{chunk-BN7ERYXI.js → chunk-FLTPHVZ3.js} +1 -1
- package/dist/cli/chunks/{chunk-OVENSL64.js → chunk-FND6V2RV.js} +22 -22
- package/dist/cli/chunks/{chunk-5ZCVMR5E.js → chunk-FU77CDEM.js} +2 -2
- package/dist/cli/chunks/{chunk-VKRMVTWU.js → chunk-GELF4ILR.js} +37 -37
- package/dist/cli/chunks/{chunk-H22MMMYY.js → chunk-GHNNJHH3.js} +2 -2
- package/dist/cli/chunks/{chunk-32R7EA7B.js → chunk-GJUGSH7T.js} +3 -3
- package/dist/cli/chunks/{chunk-HPNEZ7YN.js → chunk-GL3HZN3O.js} +1 -1
- package/dist/cli/chunks/{chunk-WL2J6ECN.js → chunk-H56AROF2.js} +2 -2
- package/dist/cli/chunks/{chunk-GTRXZJNX.js → chunk-HAO3SPOE.js} +2 -2
- package/dist/cli/chunks/{chunk-PUXDXIUE.js → chunk-HM523MTQ.js} +1 -1
- package/dist/cli/chunks/{chunk-KRXKU54J.js → chunk-HMFEPKAR.js} +2 -2
- package/dist/cli/chunks/{chunk-3YOPJ7DY.js → chunk-HQJMCTWN.js} +2 -2
- package/dist/cli/chunks/{chunk-LF7URN2X.js → chunk-HRLXU4LH.js} +2 -2
- package/dist/cli/chunks/{chunk-TL5F2S3Z.js → chunk-HWM2XJ3P.js} +24 -24
- package/dist/cli/chunks/{chunk-6A2NIR2E.js → chunk-I42R57ON.js} +2 -2
- package/dist/cli/chunks/chunk-IL2KOW5W.js +2 -0
- package/dist/cli/chunks/{chunk-CR4ERDS2.js → chunk-IRR7YA3Q.js} +2 -2
- package/dist/cli/chunks/{chunk-Y2DPXMOR.js → chunk-JD2PG4KS.js} +1 -1
- package/dist/cli/chunks/{chunk-TFNLXAK5.js → chunk-JE3C7JYN.js} +1 -1
- package/dist/cli/chunks/{chunk-ZTMWJQTZ.js → chunk-JLL27IGU.js} +2 -2
- package/dist/cli/chunks/{chunk-YPOTBXPU.js → chunk-JOLDCS6X.js} +2 -2
- package/dist/cli/chunks/chunk-JP63XACW.js +62 -0
- package/dist/cli/chunks/{chunk-AABKTWXC.js → chunk-JSFYPLMQ.js} +2 -2
- package/dist/cli/chunks/{chunk-KCTH5MHE.js → chunk-JTF6D2RJ.js} +4 -4
- package/dist/cli/chunks/{chunk-GRG3OP34.js → chunk-JTZ3Q2QS.js} +2 -2
- package/dist/cli/chunks/chunk-JXIPRMAY.js +95 -0
- package/dist/cli/chunks/{chunk-TNGGVMPQ.js → chunk-KG5SM36Y.js} +1 -1
- package/dist/cli/chunks/{chunk-QNW335PD.js → chunk-KTRB3L53.js} +2 -2
- package/dist/cli/chunks/{chunk-XRK7FBTY.js → chunk-L74CHKFR.js} +2 -2
- package/dist/cli/chunks/{chunk-IHDUWPFY.js → chunk-LZ6TNTGO.js} +2 -2
- package/dist/cli/chunks/{chunk-Y357YFLF.js → chunk-M5CDW2ZH.js} +2 -2
- package/dist/cli/chunks/{chunk-GRYXNWPF.js → chunk-MBSJ5G4I.js} +12 -12
- package/dist/cli/chunks/{chunk-IPRDHKSI.js → chunk-MC7K44M4.js} +2 -2
- package/dist/cli/chunks/{chunk-TP77PNN6.js → chunk-MQOFFRTA.js} +2 -2
- package/dist/cli/chunks/{chunk-JLKHPIQF.js → chunk-N7IBYDW5.js} +1 -1
- package/dist/cli/chunks/{chunk-G5DTENO3.js → chunk-NEYYLAYS.js} +5 -5
- package/dist/cli/chunks/{chunk-TNVYKYTO.js → chunk-NNVXHC74.js} +3 -3
- package/dist/cli/chunks/{chunk-HRDGN3OK.js → chunk-NNZMEYLT.js} +1 -1
- package/dist/cli/chunks/{chunk-25QGPRWN.js → chunk-NRCL3WCP.js} +2 -2
- package/dist/cli/chunks/{chunk-NRLT44YB.js → chunk-NXPFGPHV.js} +1 -1
- package/dist/cli/chunks/{chunk-PXFQSVA2.js → chunk-NZHOKLII.js} +3 -3
- package/dist/cli/chunks/{chunk-7SQD2TTQ.js → chunk-OG7CWWFR.js} +1 -1
- package/dist/cli/chunks/{chunk-XGUQYVJR.js → chunk-OPDTDKN3.js} +2 -2
- package/dist/cli/chunks/{chunk-2KTRRSKD.js → chunk-OX4R55T3.js} +2 -2
- package/dist/cli/chunks/{chunk-COZDJLIL.js → chunk-PFCAMX6H.js} +1 -1
- package/dist/cli/chunks/{chunk-UDFLR7GR.js → chunk-PL5SLO2W.js} +1 -1
- package/dist/cli/chunks/{chunk-6ZRMQXVL.js → chunk-PZHZPX3O.js} +4 -4
- package/dist/cli/chunks/{chunk-57NJQV57.js → chunk-Q7EBD24B.js} +1 -1
- package/dist/cli/chunks/{chunk-6D57DWQ6.js → chunk-QEODION5.js} +2 -2
- package/dist/cli/chunks/{chunk-K22TPWOJ.js → chunk-QM65UGPV.js} +2 -2
- package/dist/cli/chunks/{chunk-2ETDES5W.js → chunk-QWG76RHA.js} +2 -2
- package/dist/cli/chunks/{chunk-GXJ4BCGC.js → chunk-R5ONQAQL.js} +2 -2
- package/dist/cli/chunks/{chunk-KZJXVIAW.js → chunk-RNF47IJ5.js} +4 -4
- package/dist/cli/chunks/{chunk-IK6AJX3C.js → chunk-RTDHWOAG.js} +1 -1
- package/dist/cli/chunks/{chunk-NQZYUH6S.js → chunk-RZCAA2PZ.js} +1 -1
- package/dist/cli/chunks/{chunk-DQIS6J77.js → chunk-SL6YZAT4.js} +2 -2
- package/dist/cli/chunks/{chunk-RPL6K623.js → chunk-SNTMAVPH.js} +5 -5
- package/dist/cli/chunks/{chunk-MQYTW2IN.js → chunk-SWOG3PBD.js} +2 -2
- package/dist/cli/chunks/{chunk-DMIYWPQQ.js → chunk-T63EK6GH.js} +2 -2
- package/dist/cli/chunks/chunk-U6UK3UMX.js +59 -0
- package/dist/cli/chunks/{chunk-2S4XHK26.js → chunk-U7NMPZE2.js} +2 -2
- package/dist/cli/chunks/{chunk-WS4XVJHI.js → chunk-UDV4YB42.js} +1 -1
- package/dist/cli/chunks/{chunk-P7T5Y735.js → chunk-UHDBM7QS.js} +2 -2
- package/dist/cli/chunks/{chunk-5EU2VQK3.js → chunk-UIJFU4KD.js} +2 -2
- package/dist/cli/chunks/{chunk-Q24OJX44.js → chunk-USFZ4IJD.js} +2 -2
- package/dist/cli/chunks/{chunk-Q5VHBI4U.js → chunk-UZL366ZI.js} +1 -1
- package/dist/cli/chunks/{chunk-GMKGLZJU.js → chunk-VDTFRMES.js} +2 -2
- package/dist/cli/chunks/{chunk-EUJHHXE6.js → chunk-VIWIO27R.js} +3 -3
- package/dist/cli/chunks/{chunk-PLRSKAFZ.js → chunk-VRXY4T22.js} +2 -2
- package/dist/cli/chunks/{chunk-NDCPEXDN.js → chunk-WPVCSFDA.js} +2 -2
- package/dist/cli/chunks/{chunk-TX7SNQKL.js → chunk-WWD5IWTV.js} +1 -1
- package/dist/cli/chunks/{chunk-T3UXMPXX.js → chunk-X2B7SANM.js} +1 -1
- package/dist/cli/chunks/{chunk-7CKVAYP3.js → chunk-X3RJ6SFC.js} +1 -1
- package/dist/cli/chunks/{chunk-6LRCMFLV.js → chunk-XTP2GHI7.js} +2 -2
- package/dist/cli/chunks/{chunk-W6ZF2CPN.js → chunk-YDDZJCKY.js} +1 -1
- package/dist/cli/chunks/{chunk-5KFCH7RH.js → chunk-YDKYLNKZ.js} +1 -1
- package/dist/cli/chunks/{chunk-ELZ67OHQ.js → chunk-YIYV2JB6.js} +2 -2
- package/dist/cli/chunks/{chunk-PW6MOFXG.js → chunk-YX2HY4MX.js} +2 -2
- package/dist/cli/chunks/{chunk-DVOH75S4.js → chunk-YXH2CVAF.js} +1 -1
- package/dist/cli/chunks/{chunk-IITKJCPK.js → chunk-YYAPO3CU.js} +3 -3
- package/dist/cli/chunks/{chunk-5OTYBWRL.js → chunk-Z2K5IZM6.js} +2 -2
- package/dist/cli/chunks/{chunk-NOCYYXK4.js → chunk-ZG4P3DTL.js} +2 -2
- package/dist/cli/chunks/{chunk-YGRTMAWB.js → chunk-ZXQNE4QV.js} +1 -1
- package/dist/cli/chunks/{ci-EHRUN7O6.js → ci-AWZ3S5OT.js} +6 -6
- package/dist/cli/chunks/{ci-output-EXDXVXKB.js → ci-output-JLCYTIMT.js} +2 -2
- package/dist/cli/chunks/{circuit-breaker-LM4QRAAL.js → circuit-breaker-BJDKBDIL.js} +2 -2
- package/dist/cli/chunks/{claude-flow-setup-ZHUCZVW7.js → claude-flow-setup-KKOP5ZMO.js} +2 -2
- package/dist/cli/chunks/client-2UKBYFX4.js +2 -0
- package/dist/cli/chunks/{cline-installer-WMFLQOW2.js → cline-installer-7M525SEA.js} +2 -2
- package/dist/cli/chunks/{code-L7KRLU5E.js → code-27SUVJDO.js} +20 -19
- package/dist/cli/chunks/{code-index-extractor-FTMUYQC6.js → code-index-extractor-TTQQZLAK.js} +2 -2
- package/dist/cli/chunks/{codex-installer-B3F6WI3Z.js → codex-installer-GHNGNPKP.js} +2 -2
- package/dist/cli/chunks/{completions-3JZQRNB6.js → completions-JPJD24DG.js} +2 -2
- package/dist/cli/chunks/{complexity-analyzer-LB2FFEKX.js → complexity-analyzer-Q74EJV33.js} +2 -2
- package/dist/cli/chunks/{continuedev-installer-WH6IMV7R.js → continuedev-installer-ULTRDIML.js} +2 -2
- package/dist/cli/chunks/{copilot-installer-NOIEOFJM.js → copilot-installer-EK52X4CG.js} +2 -2
- package/dist/cli/chunks/{cost-tracker-IKX2VYSA.js → cost-tracker-2GKBRYXL.js} +2 -2
- package/dist/cli/chunks/{coverage-TD37CYSY.js → coverage-YCLC3W2A.js} +3 -3
- package/dist/cli/chunks/cross-domain-router-FPM3L27L.js +2 -0
- package/dist/cli/chunks/{cursor-installer-4NSVGRM5.js → cursor-installer-B3ALFW5E.js} +2 -2
- package/dist/cli/chunks/{daemon-UWEBUIDT.js → daemon-YWINEHG4.js} +4 -4
- package/dist/cli/chunks/{daemon-LYDV7NRW.js → daemon-ZKEBVLJA.js} +3 -3
- package/dist/cli/chunks/{dag-attention-scheduler-NECJGCHC.js → dag-attention-scheduler-OQPJ6ULA.js} +2 -2
- package/dist/cli/chunks/{detect-4XGC7ILO.js → detect-YMYIQH3Q.js} +2 -2
- package/dist/cli/chunks/{dist-node-GGJDXRKJ.js → dist-node-R4FAYQRY.js} +2 -2
- package/dist/cli/chunks/{domain-handler-UOFONAUT.js → domain-handler-IGWXLF2S.js} +2 -2
- package/dist/cli/chunks/{domain-transfer-6JLNOYPA.js → domain-transfer-A7YNO76C.js} +2 -2
- package/dist/cli/chunks/dream-XM33US3V.js +2 -0
- package/dist/cli/chunks/{embed-and-insert-pattern-ZM75DQ4J.js → embed-and-insert-pattern-KODZAS7Y.js} +2 -2
- package/dist/cli/chunks/{eval-CYZJTHEB.js → eval-ALQW7Q2S.js} +3 -3
- package/dist/cli/chunks/{experience-capture-middleware-RBOJLDUB.js → experience-capture-middleware-3WK4RXWK.js} +3 -3
- package/dist/cli/chunks/{fast-paths-S5BWZR3L.js → fast-paths-PQWDFIJZ.js} +2 -2
- package/dist/cli/chunks/{feature-flags-DUNQPDU3.js → feature-flags-6X33B3WX.js} +2 -2
- package/dist/cli/chunks/{feature-flags-6E7H3NYP.js → feature-flags-JRUAZCND.js} +2 -2
- package/dist/cli/chunks/{file-discovery-PFFKDGYG.js → file-discovery-SA3YU3IH.js} +2 -2
- package/dist/cli/chunks/{fleet-RCDZZFXN.js → fleet-7TXCAOKQ.js} +3 -3
- package/dist/cli/chunks/{gnn-wrapper-5AG3WDWF.js → gnn-wrapper-ZKNYACEC.js} +2 -2
- package/dist/cli/chunks/{heartbeat-handler-O2KAEX4Y.js → heartbeat-handler-KRZRZ23F.js} +4 -4
- package/dist/cli/chunks/heartbeat-scheduler-GM3M2MTG.js +2 -0
- package/dist/cli/chunks/hnsw-adapter-K62GEHIL.js +2 -0
- package/dist/cli/chunks/hnsw-index-VCAK3TWN.js +2 -0
- package/dist/cli/chunks/{hnsw-legacy-bridge-C7FG6YGW.js → hnsw-legacy-bridge-LVHQ5SG7.js} +2 -2
- package/dist/cli/chunks/{better-sqlite3-XGPW4HK5.js → hnswlib-node-64EGGWIC.js} +2 -2
- package/dist/cli/chunks/{hooks-FUHNE2P7.js → hooks-6Y3UHYI2.js} +14 -14
- package/dist/cli/chunks/hybrid-router-432QNCNG.js +2 -0
- package/dist/cli/chunks/{hypergraph-engine-LQRYBNPV.js → hypergraph-engine-2EZBZMFK.js} +2 -2
- package/dist/cli/chunks/{hypergraph-handler-AFFNLZVD.js → hypergraph-handler-GLPWYII2.js} +3 -3
- package/dist/cli/chunks/impact-analyzer-VTSISNN4.js +2 -0
- package/dist/cli/chunks/{init-handler-BQ6IDBX4.js → init-handler-ZSDO5VMA.js} +6 -6
- package/dist/cli/chunks/init-wizard-COB5AH7Q.js +2 -0
- package/dist/cli/chunks/kernel-ROK7X5FM.js +2 -0
- package/dist/cli/chunks/{kilocode-installer-KS72HUSG.js → kilocode-installer-ATYSDWIV.js} +2 -2
- package/dist/cli/chunks/{kiro-installer-2ZEFLGRX.js → kiro-installer-K66YT6PC.js} +2 -2
- package/dist/cli/chunks/knowledge-graph-YUWIDIWW.js +2 -0
- package/dist/cli/chunks/{learning-GGHGJ6B6.js → learning-BVYCC4RI.js} +3 -3
- package/dist/cli/chunks/{llm-router-LP6K5BJF.js → llm-router-VBCXE6DN.js} +12 -12
- package/dist/cli/chunks/llm-router-service-7VLXJ7VE.js +2 -0
- package/dist/cli/chunks/{load-2MLKXOT2.js → load-AREDQE2U.js} +2 -2
- package/dist/cli/chunks/load-test-32524DL3.js +2 -0
- package/dist/cli/chunks/{mcp-CDJBJG5H.js → mcp-NG6H6UC5.js} +2 -2
- package/dist/cli/chunks/{memory-4LAX7JZS.js → memory-Y65EHG6N.js} +5 -5
- package/dist/cli/chunks/memory-backend-BI2V5AAB.js +2 -0
- package/dist/cli/chunks/memory-handlers-NSOFWVFN.js +2 -0
- package/dist/cli/chunks/{multi-model-executor-SLJV73HE.js → multi-model-executor-VRPRFUZT.js} +2 -2
- package/dist/cli/chunks/{opencode-installer-M76SONWV.js → opencode-installer-CKQXPM5R.js} +3 -3
- package/dist/cli/chunks/{orchestrator-TJPUDJMP.js → orchestrator-I7JBKD6G.js} +19 -19
- package/dist/cli/chunks/{pipeline-2PVNFT6J.js → pipeline-MV2RWCBI.js} +2 -2
- package/dist/cli/chunks/{platform-KCSEDKEE.js → platform-VU5P3SOG.js} +2 -2
- package/dist/cli/chunks/{plugin-QX47QF5U.js → plugin-6TERLKCB.js} +2 -2
- package/dist/cli/chunks/{prime-radiant-advanced-wasm-L6VWL7VR.js → prime-radiant-advanced-wasm-WIUIN2DL.js} +2 -2
- package/dist/cli/chunks/protocol-executor-2UPB7SPI.js +2 -0
- package/dist/cli/chunks/{protocol-handler-WDNJDEUE.js → protocol-handler-HKWBGARO.js} +2 -2
- package/dist/cli/chunks/{prove-3B75DA3S.js → prove-7CQPHBRJ.js} +2 -2
- package/dist/cli/chunks/provider-manager-PDT37MIJ.js +2 -0
- package/dist/cli/chunks/qe-reasoning-bank-AQQ2BI4V.js +2 -0
- package/dist/cli/chunks/{quality-UGASS5WM.js → quality-VLUVXKVG.js} +2 -2
- package/dist/cli/chunks/queen-coordinator-6DVDVEU4.js +2 -0
- package/dist/cli/chunks/{real-embeddings-COBP2LHS.js → real-embeddings-JPZ64KK2.js} +2 -2
- package/dist/cli/chunks/{roocode-installer-TOZ4VLFT.js → roocode-installer-NONVB3UE.js} +2 -2
- package/dist/cli/chunks/router-O2G4KQ6L.js +2 -0
- package/dist/cli/chunks/routing-feedback-TAGTD3KQ.js +2 -0
- package/dist/cli/chunks/{routing-handler-5TDVSILX.js → routing-handler-YYXDT4J2.js} +2 -2
- package/dist/cli/chunks/{ruvector-commands-AM63KWQN.js → ruvector-commands-5PFMNDLR.js} +2 -2
- package/dist/cli/chunks/{rvf-dual-writer-UANIFE2M.js → rvf-dual-writer-TF6H7AXH.js} +2 -2
- package/dist/cli/chunks/{rvf-migration-adapter-LNPYWAPI.js → rvf-migration-adapter-VNGIUZCO.js} +2 -2
- package/dist/cli/chunks/{rvf-migration-coordinator-U47L63DQ.js → rvf-migration-coordinator-VA52YAIY.js} +2 -2
- package/dist/cli/chunks/rvf-native-adapter-46GRWQJR.js +2 -0
- package/dist/cli/chunks/safe-db-LNIPXXHH.js +2 -0
- package/dist/cli/chunks/schedule-AUH3ZALY.js +2 -0
- package/dist/cli/chunks/scheduler-KK3OYPWW.js +2 -0
- package/dist/cli/chunks/{security-KDQ2AH7G.js → security-62HEETBF.js} +3 -3
- package/dist/cli/chunks/{shared-rvf-adapter-5MAGLLYJ.js → shared-rvf-adapter-XWTQPGCT.js} +2 -2
- package/dist/cli/chunks/{shared-rvf-dual-writer-GF2OPPM5.js → shared-rvf-dual-writer-JTZK7LRD.js} +2 -2
- package/dist/cli/chunks/sqlite-persistence-CYESP7NG.js +2 -0
- package/dist/cli/chunks/{status-handler-XZKEL7LO.js → status-handler-LSUPUKRF.js} +2 -2
- package/dist/cli/chunks/{structural-health-27QKWW25.js → structural-health-Z75A666N.js} +2 -2
- package/dist/cli/chunks/{sync-INNKS6UK.js → sync-M3O4T3A3.js} +2 -2
- package/dist/cli/chunks/{sync-V3HGPEJT.js → sync-VI37UHHH.js} +2 -2
- package/dist/cli/chunks/{task-handler-LDUVOM6G.js → task-handler-AQBSZAQC.js} +2 -2
- package/dist/cli/chunks/{task-handlers-HTCPV7OO.js → task-handlers-BOZP247V.js} +3 -3
- package/dist/cli/chunks/{test-PCUVGVJL.js → test-FTEGPNN2.js} +4 -4
- package/dist/cli/chunks/{test-scheduling-GYVXWCAA.js → test-scheduling-IGR4U2VQ.js} +4 -4
- package/dist/cli/chunks/{token-bootstrap-MJ2ANC4P.js → token-bootstrap-2DFRVMBM.js} +2 -2
- package/dist/cli/chunks/{token-usage-ZREHROTF.js → token-usage-VCHV47EO.js} +3 -3
- package/dist/cli/chunks/{transformers-6B3FWFYL.js → transformers-M27QSNFH.js} +2 -2
- package/dist/cli/chunks/tree-sitter-wasm-parser-IIGEJYFU.js +2 -0
- package/dist/cli/chunks/{types-MVZTJI2F.js → types-RQFPUUKA.js} +2 -2
- package/dist/cli/chunks/unified-memory-RISHEANP.js +2 -0
- package/dist/cli/chunks/unified-memory-hnsw-2IKXGMNZ.js +2 -0
- package/dist/cli/chunks/unified-persistence-ZTTUJNTU.js +2 -0
- package/dist/cli/chunks/{upgrade-MKTFEILD.js → upgrade-VJMYX3AL.js} +2 -2
- package/dist/cli/chunks/{validate-IABGALSW.js → validate-ML7HUAU5.js} +4 -4
- package/dist/cli/chunks/{validate-swarm-RHF53RF6.js → validate-swarm-RCR6EYRC.js} +7 -7
- package/dist/cli/chunks/{vibium-RAKW6FMF.js → vibium-ZOOS3W5L.js} +2 -2
- package/dist/cli/chunks/visual-security-D66DTAO5.js +2 -0
- package/dist/cli/chunks/{web-tree-sitter-PYK7F4JZ.js → web-tree-sitter-2YPGYLWK.js} +2 -2
- package/dist/cli/chunks/{windsurf-installer-S3U2HWZ4.js → windsurf-installer-GOJWUWC5.js} +2 -2
- package/dist/cli/chunks/{witness-chain-435NKQLB.js → witness-chain-3MGSS3Q4.js} +2 -2
- package/dist/cli/chunks/witness-chain-RHWHHDLV.js +2 -0
- package/dist/cli/chunks/{workflow-5UHJCZ6J.js → workflow-B5Q77BI4.js} +4 -4
- package/dist/cli/chunks/workflow-orchestrator-OQMFW2TC.js +2 -0
- package/dist/cli/chunks/{wrappers-RD3NCMLK.js → wrappers-MM5VLEPG.js} +2 -2
- package/dist/cli/commands/code.js +6 -0
- package/dist/cli/commands/hooks-handlers/command-hooks.js +1 -1
- package/dist/cli/commands/hooks-handlers/routing-hooks.js +1 -1
- package/dist/cli/commands/hooks-handlers/task-hooks.js +1 -1
- package/dist/cli/commands/learning.js +5 -5
- package/dist/cli/commands/llm-router.js +1 -1
- package/dist/cli/commands/workflow.js +1 -0
- package/dist/coordination/consensus/providers/native-learning-provider.d.ts +1 -1
- package/dist/coordination/consensus/providers/ollama-provider.d.ts +1 -1
- package/dist/coordination/consensus/providers/openrouter-provider.d.ts +1 -1
- package/dist/coordination/handlers/code-intelligence-handlers.js +6 -0
- package/dist/coordination/mincut/neural-goap.js +24 -20
- package/dist/coordination/protocols/code-intelligence-index.js +31 -25
- package/dist/coordination/queen-coordinator.js +4 -0
- package/dist/coordination/queen-work-stealing.js +1 -2
- package/dist/domains/chaos-resilience/coordinator.js +19 -15
- package/dist/domains/chaos-resilience/services/chaos-engineer.js +5 -2
- package/dist/domains/chaos-resilience/services/load-tester.js +15 -11
- package/dist/domains/code-intelligence/interfaces.d.ts +5 -0
- package/dist/domains/code-intelligence/services/c4-model/index.js +12 -6
- package/dist/domains/code-intelligence/services/impact-analyzer.js +6 -2
- package/dist/domains/code-intelligence/services/knowledge-graph.d.ts +42 -0
- package/dist/domains/code-intelligence/services/knowledge-graph.js +278 -93
- package/dist/domains/code-intelligence/services/semantic-analyzer.js +8 -2
- package/dist/domains/contract-testing/coordinator.js +1 -1
- package/dist/domains/coverage-analysis/coordinator.js +4 -2
- package/dist/domains/learning-optimization/coordinator.js +1 -0
- package/dist/domains/quality-assessment/coherence/gate-controller.js +32 -26
- package/dist/domains/requirements-validation/coordinator.js +1 -0
- package/dist/domains/test-execution/services/e2e/wait-condition-handler.js +1 -1
- package/dist/domains/test-execution/services/retry-handler.js +18 -12
- package/dist/domains/test-generation/coordinator.js +1 -1
- package/dist/domains/test-generation/services/pattern-matcher.js +7 -5
- package/dist/domains/test-generation/services/test-generator.js +3 -2
- package/dist/domains/visual-accessibility/coordinator.js +24 -20
- package/dist/index.d.ts +2 -2
- package/dist/index.js +2 -2
- package/dist/init/init-wizard-hooks.js +271 -271
- package/dist/init/phases/07-hooks.d.ts +7 -0
- package/dist/init/phases/07-hooks.js +132 -96
- package/dist/init/phases/12-verification.js +3 -3
- package/dist/integrations/agentic-flow/model-router/router.js +1 -1
- package/dist/integrations/embeddings/base/EmbeddingGenerator.js +11 -7
- package/dist/integrations/ruvector/hypergraph-engine.js +2 -2
- package/dist/integrations/ruvector/spectral-math.js +2 -2
- package/dist/integrations/ruvector/spectral-sparsifier.js +1 -1
- package/dist/kernel/kernel.js +1 -1
- package/dist/kernel/unified-memory-hnsw.js +1 -0
- package/dist/learning/agent-routing.d.ts +19 -0
- package/dist/learning/agent-routing.js +27 -1
- package/dist/learning/dream/dream-scheduler.d.ts +11 -36
- package/dist/learning/dream/dream-scheduler.js +44 -0
- package/dist/learning/experience-capture.js +1 -1
- package/dist/learning/experience-consolidation.d.ts +16 -0
- package/dist/learning/experience-consolidation.js +55 -11
- package/dist/learning/pattern-lifecycle.d.ts +21 -0
- package/dist/learning/pattern-lifecycle.js +70 -6
- package/dist/learning/qe-reasoning-bank.js +9 -1
- package/dist/learning/qe-unified-memory.js +8 -6
- package/dist/mcp/bundle.js +371 -368
- package/dist/mcp/handlers/core-handlers.js +2 -2
- package/dist/mcp/handlers/cross-phase-handlers.js +5 -3
- package/dist/mcp/handlers/handler-factory.d.ts +5 -0
- package/dist/mcp/handlers/handler-factory.js +44 -4
- package/dist/mcp/http-server.js +1 -0
- package/dist/mcp/protocol-server.js +15 -16
- package/dist/mcp/tools/code-intelligence/analyze.js +1 -1
- package/dist/mcp/tools/learning-optimization/optimize.js +1 -1
- package/dist/mcp/tools/qx-analysis/heuristics-engine.js +195 -173
- package/dist/mcp/tools/visual-accessibility/index.js +1 -1
- package/dist/mcp/transport/stdio.d.ts +20 -0
- package/dist/mcp/transport/stdio.js +35 -2
- package/dist/mcp/transport/websocket/websocket-transport.js +1 -0
- package/dist/optimization/auto-tuner.js +1 -1
- package/dist/planning/goap-planner.js +1 -0
- package/dist/routing/agent-dependency-graph.js +4 -1
- package/dist/shared/llm/router/config-store.js +1 -1
- package/dist/shared/metrics/system-metrics.js +6 -4
- package/dist/shared/parsers/tree-sitter-wasm-parser.d.ts +12 -0
- package/dist/shared/parsers/tree-sitter-wasm-parser.js +35 -0
- package/dist/shared/parsers/treesitter-ts-extractor.d.ts +39 -0
- package/dist/shared/parsers/treesitter-ts-extractor.js +196 -0
- package/dist/shared/utils/rabitq.d.ts +133 -0
- package/dist/shared/utils/rabitq.js +201 -0
- package/dist/shared/utils/safe-expression-evaluator.js +8 -5
- package/dist/sync/cloud/postgres-writer.js +2 -0
- package/dist/sync/readers/json-reader.js +1 -1
- package/dist/test-scheduling/git-aware/test-selector.js +1 -1
- package/dist/workers/quality-daemon/index.js +26 -24
- package/package.json +12 -5
- package/dist/cli/chunks/adapter-3JS2CN7C.js +0 -2
- package/dist/cli/chunks/aqe-learning-engine-Q4GFNGU6.js +0 -2
- package/dist/cli/chunks/base-Q3MAL22Y.js +0 -2
- package/dist/cli/chunks/browser-workflow-JX3M2UWG.js +0 -2
- package/dist/cli/chunks/chunk-622MIAOR.js +0 -59
- package/dist/cli/chunks/chunk-CKECJH2A.js +0 -2
- package/dist/cli/chunks/chunk-IJ4BUSJN.js +0 -95
- package/dist/cli/chunks/chunk-VPCE5CIT.js +0 -2
- package/dist/cli/chunks/chunk-WO7KYT3X.js +0 -62
- package/dist/cli/chunks/client-PA3UJIHH.js +0 -2
- package/dist/cli/chunks/cross-domain-router-BVJRP2ZX.js +0 -2
- package/dist/cli/chunks/dream-BXZUEIW2.js +0 -2
- package/dist/cli/chunks/heartbeat-scheduler-LEKAWFJF.js +0 -2
- package/dist/cli/chunks/hnsw-adapter-2TCEG5M2.js +0 -2
- package/dist/cli/chunks/hnsw-index-VDPUTEES.js +0 -2
- package/dist/cli/chunks/hybrid-router-2EMDIYIG.js +0 -2
- package/dist/cli/chunks/impact-analyzer-HFD6CPWC.js +0 -2
- package/dist/cli/chunks/init-wizard-552QIVRC.js +0 -2
- package/dist/cli/chunks/kernel-5DN6O6EE.js +0 -2
- package/dist/cli/chunks/knowledge-graph-76Y77MB6.js +0 -2
- package/dist/cli/chunks/llm-router-service-4O6GCEFH.js +0 -2
- package/dist/cli/chunks/load-test-FCI2IWRJ.js +0 -2
- package/dist/cli/chunks/memory-backend-MKNCBNDE.js +0 -2
- package/dist/cli/chunks/memory-handlers-OBAFR4WV.js +0 -2
- package/dist/cli/chunks/protocol-executor-IA7WNT23.js +0 -2
- package/dist/cli/chunks/provider-manager-3K5KB5A6.js +0 -2
- package/dist/cli/chunks/qe-reasoning-bank-V5Z3BBYY.js +0 -2
- package/dist/cli/chunks/queen-coordinator-QOMPA27Z.js +0 -2
- package/dist/cli/chunks/router-P5RZUPC4.js +0 -2
- package/dist/cli/chunks/routing-feedback-3PS3OZQC.js +0 -2
- package/dist/cli/chunks/rvf-native-adapter-TT7OJPKM.js +0 -2
- package/dist/cli/chunks/safe-db-PEW7VBAE.js +0 -2
- package/dist/cli/chunks/schedule-QHOTHBQE.js +0 -2
- package/dist/cli/chunks/scheduler-KXJBYTRT.js +0 -2
- package/dist/cli/chunks/sqlite-persistence-TPXJK34J.js +0 -2
- package/dist/cli/chunks/tree-sitter-wasm-parser-JVV234MN.js +0 -2
- package/dist/cli/chunks/unified-memory-ROS2NKR5.js +0 -2
- package/dist/cli/chunks/unified-memory-hnsw-FLEUF3XO.js +0 -2
- package/dist/cli/chunks/unified-persistence-QC5L7UNQ.js +0 -2
- package/dist/cli/chunks/visual-security-NLIOUQCR.js +0 -2
- package/dist/cli/chunks/witness-chain-U7X6JX5J.js +0 -2
- package/dist/cli/chunks/workflow-orchestrator-APE6BAXH.js +0 -2
|
@@ -51,140 +51,150 @@ export class QXHeuristicsEngine {
|
|
|
51
51
|
}
|
|
52
52
|
break;
|
|
53
53
|
case QXHeuristic.INTUITIVE_DESIGN:
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
54
|
+
{
|
|
55
|
+
const hasNav = context.domMetrics?.semanticStructure?.hasNav;
|
|
56
|
+
const focusable = context.accessibility?.focusableElementsCount || 0;
|
|
57
|
+
if (hasNav && focusable > 10) {
|
|
58
|
+
score = 82;
|
|
59
|
+
findings.push('Intuitive navigation and interaction design');
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
score = 55;
|
|
63
|
+
issues.push({ description: 'Navigation or interaction patterns unclear', severity: 'medium' });
|
|
64
|
+
}
|
|
65
|
+
break;
|
|
59
66
|
}
|
|
60
|
-
else {
|
|
61
|
-
score = 55;
|
|
62
|
-
issues.push({ description: 'Navigation or interaction patterns unclear', severity: 'medium' });
|
|
63
|
-
}
|
|
64
|
-
break;
|
|
65
67
|
case QXHeuristic.EXACTNESS_AND_CLARITY:
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
68
|
+
{
|
|
69
|
+
score = 70;
|
|
70
|
+
const hasSemanticStructure = context.domMetrics?.semanticStructure;
|
|
71
|
+
const structureScore = [
|
|
72
|
+
hasSemanticStructure?.hasHeader,
|
|
73
|
+
hasSemanticStructure?.hasMain,
|
|
74
|
+
hasSemanticStructure?.hasNav,
|
|
75
|
+
hasSemanticStructure?.hasFooter,
|
|
76
|
+
].filter(Boolean).length;
|
|
77
|
+
score = 50 + structureScore * 10;
|
|
78
|
+
if (structureScore >= 3) {
|
|
79
|
+
findings.push('Strong visual hierarchy with semantic HTML elements');
|
|
80
|
+
}
|
|
81
|
+
else if (structureScore >= 2) {
|
|
82
|
+
findings.push('Moderate visual hierarchy - some semantic elements present');
|
|
83
|
+
recommendations.push('Add more semantic HTML5 elements for clarity');
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
issues.push({ description: 'Weak visual hierarchy - missing semantic structure', severity: 'high' });
|
|
87
|
+
recommendations.push('Implement semantic HTML5: header, nav, main, footer');
|
|
88
|
+
}
|
|
89
|
+
if (context.metadata?.description && context.metadata.description.length > 20) {
|
|
90
|
+
score += 10;
|
|
91
|
+
findings.push('Page has descriptive metadata');
|
|
92
|
+
}
|
|
93
|
+
break;
|
|
85
94
|
}
|
|
86
|
-
if (context.metadata?.description && context.metadata.description.length > 20) {
|
|
87
|
-
score += 10;
|
|
88
|
-
findings.push('Page has descriptive metadata');
|
|
89
|
-
}
|
|
90
|
-
break;
|
|
91
95
|
case QXHeuristic.COUNTER_INTUITIVE_DESIGN:
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
96
|
+
{
|
|
97
|
+
score = 85; // High score means few counter-intuitive elements (good)
|
|
98
|
+
const confusingNav = !context.domMetrics?.semanticStructure?.hasNav && (context.domMetrics?.interactiveElements || 0) > 10;
|
|
99
|
+
const poorStructure = !context.domMetrics?.semanticStructure?.hasHeader && !context.domMetrics?.semanticStructure?.hasFooter;
|
|
100
|
+
if (confusingNav) {
|
|
101
|
+
score = 45;
|
|
102
|
+
issues.push({ description: 'Navigation structure may be counter-intuitive', severity: 'high' });
|
|
103
|
+
recommendations.push('Add semantic navigation elements');
|
|
104
|
+
}
|
|
105
|
+
if (poorStructure) {
|
|
106
|
+
score -= 15;
|
|
107
|
+
issues.push({ description: 'Page structure lacks expected header/footer', severity: 'medium' });
|
|
108
|
+
}
|
|
109
|
+
if (score > 75) {
|
|
110
|
+
findings.push('No counter-intuitive design patterns detected');
|
|
111
|
+
}
|
|
112
|
+
break;
|
|
103
113
|
}
|
|
104
|
-
if (score > 75) {
|
|
105
|
-
findings.push('No counter-intuitive design patterns detected');
|
|
106
|
-
}
|
|
107
|
-
break;
|
|
108
114
|
// ========== Impact Analysis Heuristics (H5.x) ==========
|
|
109
115
|
case QXHeuristic.USER_FEELINGS_IMPACT:
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
116
|
+
{
|
|
117
|
+
const altCoverage = context.accessibility?.altTextsCoverage || 0;
|
|
118
|
+
const loadTime = context.performance?.loadTime || 0;
|
|
119
|
+
const ariaLabels = context.accessibility?.ariaLabelsCount || 0;
|
|
120
|
+
const focusableElements = context.accessibility?.focusableElementsCount || 0;
|
|
121
|
+
score = 60;
|
|
122
|
+
// Accessibility impact on feelings (35% weight)
|
|
123
|
+
if (altCoverage >= 90) {
|
|
124
|
+
score += 20;
|
|
125
|
+
findings.push('Excellent accessibility (90%+ alt coverage) creates inclusive, positive experience');
|
|
126
|
+
}
|
|
127
|
+
else if (altCoverage >= 70) {
|
|
128
|
+
score += 12;
|
|
129
|
+
findings.push('Good accessibility creates generally positive user feelings');
|
|
130
|
+
}
|
|
131
|
+
else if (altCoverage < 50) {
|
|
132
|
+
score -= 15;
|
|
133
|
+
issues.push({
|
|
134
|
+
description: 'Poor accessibility (<50% alt coverage) frustrates users with disabilities',
|
|
135
|
+
severity: 'high',
|
|
136
|
+
});
|
|
137
|
+
recommendations.push('Improve alt text coverage to at least 80% for better accessibility');
|
|
138
|
+
}
|
|
139
|
+
// ARIA support impact
|
|
140
|
+
if (ariaLabels > 5) {
|
|
141
|
+
score += 8;
|
|
142
|
+
findings.push('Strong ARIA labeling enhances screen reader experience');
|
|
143
|
+
}
|
|
144
|
+
// Performance impact on feelings (35% weight)
|
|
145
|
+
if (loadTime < 1500) {
|
|
146
|
+
score += 15;
|
|
147
|
+
findings.push('Very fast load time (<1.5s) delights users');
|
|
148
|
+
}
|
|
149
|
+
else if (loadTime < 2500) {
|
|
150
|
+
score += 8;
|
|
151
|
+
findings.push('Fast load time enhances user satisfaction');
|
|
152
|
+
}
|
|
153
|
+
else if (loadTime > 4000) {
|
|
154
|
+
score -= 20;
|
|
155
|
+
issues.push({ description: 'Very slow load time (>4s) causes significant frustration', severity: 'critical' });
|
|
156
|
+
recommendations.push('Optimize page load time - target under 2.5 seconds');
|
|
157
|
+
}
|
|
158
|
+
else if (loadTime > 3000) {
|
|
159
|
+
score -= 12;
|
|
160
|
+
issues.push({ description: 'Slow load time causes user frustration', severity: 'high' });
|
|
161
|
+
}
|
|
162
|
+
// Error visibility impact
|
|
163
|
+
if (context.errorIndicators?.hasErrorMessages) {
|
|
164
|
+
score -= 12;
|
|
165
|
+
issues.push({ description: 'Visible errors reduce user confidence and satisfaction', severity: 'high' });
|
|
166
|
+
recommendations.push('Review and fix visible error messages');
|
|
167
|
+
}
|
|
168
|
+
// Interaction capability
|
|
169
|
+
if (focusableElements > 20) {
|
|
170
|
+
score += 5;
|
|
171
|
+
findings.push('Rich interactive elements provide user control and engagement');
|
|
172
|
+
}
|
|
173
|
+
else if (focusableElements < 5) {
|
|
174
|
+
score -= 8;
|
|
175
|
+
issues.push({ description: 'Limited interactivity may feel restrictive', severity: 'medium' });
|
|
176
|
+
}
|
|
177
|
+
score = Math.max(20, Math.min(100, score));
|
|
178
|
+
break;
|
|
169
179
|
}
|
|
170
|
-
score = Math.max(20, Math.min(100, score));
|
|
171
|
-
break;
|
|
172
180
|
case QXHeuristic.GUI_FLOW_IMPACT:
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
181
|
+
{
|
|
182
|
+
const interactiveElements = context.domMetrics?.interactiveElements || 0;
|
|
183
|
+
const forms = context.domMetrics?.forms || 0;
|
|
184
|
+
if (interactiveElements > 20) {
|
|
185
|
+
score = 75;
|
|
186
|
+
findings.push(`${interactiveElements} interactive elements provide user control`);
|
|
187
|
+
}
|
|
188
|
+
if (forms > 0) {
|
|
189
|
+
findings.push(`${forms} forms impact user input flows`);
|
|
190
|
+
score = Math.min(100, score + 10);
|
|
191
|
+
}
|
|
192
|
+
if (interactiveElements === 0) {
|
|
193
|
+
score = 30;
|
|
194
|
+
issues.push({ description: 'Limited user interaction capability', severity: 'high' });
|
|
195
|
+
}
|
|
196
|
+
break;
|
|
186
197
|
}
|
|
187
|
-
break;
|
|
188
198
|
case QXHeuristic.CROSS_FUNCTIONAL_IMPACT:
|
|
189
199
|
score = 70;
|
|
190
200
|
if (context.accessibility && (context.accessibility.altTextsCoverage || 0) < 100) {
|
|
@@ -232,14 +242,16 @@ export class QXHeuristicsEngine {
|
|
|
232
242
|
break;
|
|
233
243
|
// ========== User Needs Heuristics (H2.x) ==========
|
|
234
244
|
case QXHeuristic.USER_NEEDS_IDENTIFICATION:
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
245
|
+
{
|
|
246
|
+
score = userNeeds.alignmentScore;
|
|
247
|
+
findings.push(`${userNeeds.needs.length} user needs identified`);
|
|
248
|
+
const mustHave = userNeeds.needs.filter((n) => n.priority === 'must-have').length;
|
|
249
|
+
findings.push(`${mustHave} must-have features`);
|
|
250
|
+
if (userNeeds.challenges.length > 0) {
|
|
251
|
+
issues.push({ description: `${userNeeds.challenges.length} user need challenges found`, severity: 'medium' });
|
|
252
|
+
}
|
|
253
|
+
break;
|
|
241
254
|
}
|
|
242
|
-
break;
|
|
243
255
|
case QXHeuristic.USER_NEEDS_SUITABILITY:
|
|
244
256
|
score =
|
|
245
257
|
userNeeds.suitability === 'excellent'
|
|
@@ -252,10 +264,12 @@ export class QXHeuristicsEngine {
|
|
|
252
264
|
findings.push(`User needs suitability: ${userNeeds.suitability}`);
|
|
253
265
|
break;
|
|
254
266
|
case QXHeuristic.USER_NEEDS_VALIDATION:
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
267
|
+
{
|
|
268
|
+
const addressedNeeds = userNeeds.needs.filter((n) => n.addressed).length;
|
|
269
|
+
score = userNeeds.needs.length > 0 ? (addressedNeeds / userNeeds.needs.length) * 100 : 50;
|
|
270
|
+
findings.push(`${addressedNeeds}/${userNeeds.needs.length} needs validated and addressed`);
|
|
271
|
+
break;
|
|
272
|
+
}
|
|
259
273
|
// ========== Business Needs Heuristics (H3.x) ==========
|
|
260
274
|
case QXHeuristic.BUSINESS_NEEDS_IDENTIFICATION:
|
|
261
275
|
score = businessNeeds.alignmentScore;
|
|
@@ -264,16 +278,18 @@ export class QXHeuristicsEngine {
|
|
|
264
278
|
findings.push(`${businessNeeds.crossTeamImpact.length} cross-team impacts`);
|
|
265
279
|
break;
|
|
266
280
|
case QXHeuristic.USER_VS_BUSINESS_BALANCE:
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
281
|
+
{
|
|
282
|
+
const balanceScore = 100 - Math.abs(userNeeds.alignmentScore - businessNeeds.alignmentScore);
|
|
283
|
+
score = balanceScore;
|
|
284
|
+
if (balanceScore > 80) {
|
|
285
|
+
findings.push('Good balance between user and business needs');
|
|
286
|
+
}
|
|
287
|
+
else {
|
|
288
|
+
issues.push({ description: 'Imbalance between user and business priorities', severity: 'medium' });
|
|
289
|
+
recommendations.push('Align user and business objectives more closely');
|
|
290
|
+
}
|
|
291
|
+
break;
|
|
275
292
|
}
|
|
276
|
-
break;
|
|
277
293
|
case QXHeuristic.KPI_IMPACT_ANALYSIS:
|
|
278
294
|
score = businessNeeds.impactsKPIs ? 85 : 50;
|
|
279
295
|
findings.push(`KPIs impacted: ${businessNeeds.kpisAffected.join(', ')}`);
|
|
@@ -297,18 +313,20 @@ export class QXHeuristicsEngine {
|
|
|
297
313
|
}
|
|
298
314
|
break;
|
|
299
315
|
case QXHeuristic.SUPPORTING_DATA_ANALYSIS:
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
316
|
+
{
|
|
317
|
+
score = 75;
|
|
318
|
+
const hasData = (context.domMetrics?.forms || 0) > 0 || (context.domMetrics?.interactiveElements || 0) > 20;
|
|
319
|
+
if (hasData) {
|
|
320
|
+
score = 82;
|
|
321
|
+
findings.push('Sufficient data points for informed decision-making');
|
|
322
|
+
}
|
|
323
|
+
else {
|
|
324
|
+
score = 60;
|
|
325
|
+
issues.push({ description: 'Limited data for comprehensive analysis', severity: 'medium' });
|
|
326
|
+
recommendations.push('Collect more user interaction data');
|
|
327
|
+
}
|
|
328
|
+
break;
|
|
310
329
|
}
|
|
311
|
-
break;
|
|
312
330
|
// ========== Creativity Heuristics (H6.x) ==========
|
|
313
331
|
case QXHeuristic.COMPETITIVE_ANALYSIS:
|
|
314
332
|
score = 70;
|
|
@@ -324,27 +342,31 @@ export class QXHeuristicsEngine {
|
|
|
324
342
|
}
|
|
325
343
|
break;
|
|
326
344
|
case QXHeuristic.DOMAIN_INSPIRATION:
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
345
|
+
{
|
|
346
|
+
score = 72;
|
|
347
|
+
const hasModernElements = context.accessibility && (context.accessibility.ariaLabelsCount || 0) > 0;
|
|
348
|
+
if (hasModernElements) {
|
|
349
|
+
score = 80;
|
|
350
|
+
findings.push('Modern accessibility patterns show domain inspiration');
|
|
351
|
+
}
|
|
352
|
+
else {
|
|
353
|
+
recommendations.push('Research domain-specific design patterns and best practices');
|
|
354
|
+
}
|
|
355
|
+
break;
|
|
335
356
|
}
|
|
336
|
-
break;
|
|
337
357
|
case QXHeuristic.INNOVATIVE_SOLUTIONS:
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
358
|
+
{
|
|
359
|
+
score = 65;
|
|
360
|
+
const hasAdvancedFeatures = (context.accessibility?.landmarkRoles || 0) > 3;
|
|
361
|
+
if (hasAdvancedFeatures) {
|
|
362
|
+
score = 75;
|
|
363
|
+
findings.push('Advanced accessibility features show innovative thinking');
|
|
364
|
+
}
|
|
365
|
+
else {
|
|
366
|
+
recommendations.push('Explore innovative UX patterns to differentiate experience');
|
|
367
|
+
}
|
|
368
|
+
break;
|
|
343
369
|
}
|
|
344
|
-
else {
|
|
345
|
-
recommendations.push('Explore innovative UX patterns to differentiate experience');
|
|
346
|
-
}
|
|
347
|
-
break;
|
|
348
370
|
default:
|
|
349
371
|
// Generic heuristic evaluation based on category
|
|
350
372
|
if (category === 'user-needs') {
|
|
@@ -258,7 +258,7 @@ export class A11yAuditTool extends MCPToolBase {
|
|
|
258
258
|
}
|
|
259
259
|
}
|
|
260
260
|
// Optionally check keyboard navigation
|
|
261
|
-
|
|
261
|
+
const keyboardViolations = [];
|
|
262
262
|
if (checkKeyboard) {
|
|
263
263
|
const keyboardResult = await service.checkKeyboardNavigation(url);
|
|
264
264
|
if (keyboardResult.success) {
|
|
@@ -43,6 +43,26 @@ export declare const JSON_RPC_ERRORS: {
|
|
|
43
43
|
readonly INTERNAL_ERROR: -32603;
|
|
44
44
|
readonly SERVER_ERROR: -32000;
|
|
45
45
|
};
|
|
46
|
+
/**
|
|
47
|
+
* Error subclass that carries a JSON-RPC error `code` so it can be surfaced as a
|
|
48
|
+
* proper JSON-RPC error response (instead of being flattened to "[object Object]").
|
|
49
|
+
* Mirrors the OAuthProviderError pattern used in the security layer.
|
|
50
|
+
*/
|
|
51
|
+
export declare class McpError extends Error {
|
|
52
|
+
readonly code: number;
|
|
53
|
+
readonly data?: unknown | undefined;
|
|
54
|
+
constructor(code: number, message: string, data?: unknown | undefined);
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Type guard for any thrown value that carries a JSON-RPC `code` + `message`.
|
|
58
|
+
* Accepts both the McpError subclass and legacy plain `{ code, message }` objects
|
|
59
|
+
* so existing throw sites continue to map to the right JSON-RPC error code.
|
|
60
|
+
*/
|
|
61
|
+
export declare function isJsonRpcCodedError(err: unknown): err is {
|
|
62
|
+
code: number;
|
|
63
|
+
message: string;
|
|
64
|
+
data?: unknown;
|
|
65
|
+
};
|
|
46
66
|
export declare class StdioTransport {
|
|
47
67
|
private readonly inputStream;
|
|
48
68
|
private readonly outputStream;
|
|
@@ -16,6 +16,32 @@ export const JSON_RPC_ERRORS = {
|
|
|
16
16
|
INTERNAL_ERROR: -32603,
|
|
17
17
|
SERVER_ERROR: -32000,
|
|
18
18
|
};
|
|
19
|
+
/**
|
|
20
|
+
* Error subclass that carries a JSON-RPC error `code` so it can be surfaced as a
|
|
21
|
+
* proper JSON-RPC error response (instead of being flattened to "[object Object]").
|
|
22
|
+
* Mirrors the OAuthProviderError pattern used in the security layer.
|
|
23
|
+
*/
|
|
24
|
+
export class McpError extends Error {
|
|
25
|
+
code;
|
|
26
|
+
data;
|
|
27
|
+
constructor(code, message, data) {
|
|
28
|
+
super(message);
|
|
29
|
+
this.code = code;
|
|
30
|
+
this.data = data;
|
|
31
|
+
this.name = 'McpError';
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Type guard for any thrown value that carries a JSON-RPC `code` + `message`.
|
|
36
|
+
* Accepts both the McpError subclass and legacy plain `{ code, message }` objects
|
|
37
|
+
* so existing throw sites continue to map to the right JSON-RPC error code.
|
|
38
|
+
*/
|
|
39
|
+
export function isJsonRpcCodedError(err) {
|
|
40
|
+
return (typeof err === 'object' &&
|
|
41
|
+
err !== null &&
|
|
42
|
+
typeof err.code === 'number' &&
|
|
43
|
+
typeof err.message === 'string');
|
|
44
|
+
}
|
|
19
45
|
// ============================================================================
|
|
20
46
|
// Stdio Transport Implementation
|
|
21
47
|
// ============================================================================
|
|
@@ -205,8 +231,15 @@ export class StdioTransport {
|
|
|
205
231
|
});
|
|
206
232
|
}
|
|
207
233
|
catch (err) {
|
|
208
|
-
|
|
209
|
-
|
|
234
|
+
// Honor a JSON-RPC `code` carried by the thrown value (McpError or a legacy
|
|
235
|
+
// plain `{ code, message }` object); otherwise fall back to INTERNAL_ERROR.
|
|
236
|
+
if (isJsonRpcCodedError(err)) {
|
|
237
|
+
await this.sendError(request.id, err.code, err.message, err.data);
|
|
238
|
+
}
|
|
239
|
+
else {
|
|
240
|
+
const error = err;
|
|
241
|
+
await this.sendError(request.id, JSON_RPC_ERRORS.INTERNAL_ERROR, error.message || 'Internal error');
|
|
242
|
+
}
|
|
210
243
|
}
|
|
211
244
|
}
|
|
212
245
|
async handleNotification(notification) {
|
|
@@ -122,6 +122,7 @@ export class WebSocketTransport extends EventEmitter {
|
|
|
122
122
|
* Handle a manual WebSocket upgrade (for testing or custom servers)
|
|
123
123
|
*/
|
|
124
124
|
handleUpgrade(request, socket, head) {
|
|
125
|
+
// eslint-disable-next-line no-async-promise-executor -- body is wrapped in try/catch that calls reject()
|
|
125
126
|
return new Promise(async (resolve, reject) => {
|
|
126
127
|
if (this.disposed) {
|
|
127
128
|
socket.write('HTTP/1.1 503 Service Unavailable\r\n\r\n');
|
|
@@ -303,7 +303,7 @@ export class AQEAutoTuner {
|
|
|
303
303
|
const parameterValues = this.algorithm.suggestNextConfiguration(this.parameters, this.evaluationHistory, this.config);
|
|
304
304
|
// Check if we have applicators registered for real system integration
|
|
305
305
|
const hasApplicators = this.applicatorRegistry.getAll().length > 0;
|
|
306
|
-
|
|
306
|
+
const metricValues = {};
|
|
307
307
|
if (hasApplicators) {
|
|
308
308
|
// REAL EVALUATION: Apply configuration to actual systems
|
|
309
309
|
try {
|
|
@@ -98,7 +98,10 @@ export function parseDependenciesFromFrontmatter(content) {
|
|
|
98
98
|
const listStart = trimmed.match(/^-\s+(\w+):\s*(.*)$/);
|
|
99
99
|
if (listStart) {
|
|
100
100
|
if (st.inList) {
|
|
101
|
-
st.section === 'agents'
|
|
101
|
+
if (st.section === 'agents')
|
|
102
|
+
flushAgent();
|
|
103
|
+
else
|
|
104
|
+
flushMcp();
|
|
102
105
|
}
|
|
103
106
|
st.inList = true;
|
|
104
107
|
st.item = { [listStart[1]]: parseYamlValue(listStart[2]) };
|
|
@@ -148,7 +148,7 @@ function stripApiKeys(config) {
|
|
|
148
148
|
return JSON.parse(JSON.stringify(config));
|
|
149
149
|
}
|
|
150
150
|
const cloned = JSON.parse(JSON.stringify(config));
|
|
151
|
-
|
|
151
|
+
const strippedProviders = [];
|
|
152
152
|
if (cloned.providers) {
|
|
153
153
|
for (const provider of Object.keys(cloned.providers)) {
|
|
154
154
|
const entry = cloned.providers[provider];
|
|
@@ -127,10 +127,12 @@ export class SystemMetricsCollector {
|
|
|
127
127
|
return metrics.cpu.loadAverage[2];
|
|
128
128
|
default:
|
|
129
129
|
// For unknown metrics, return from history or 0
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
130
|
+
{
|
|
131
|
+
const history = this.metricHistory.get(metricName);
|
|
132
|
+
return history && history.length > 0
|
|
133
|
+
? history[history.length - 1].value
|
|
134
|
+
: 0;
|
|
135
|
+
}
|
|
134
136
|
}
|
|
135
137
|
}
|
|
136
138
|
/**
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
*/
|
|
13
13
|
import type { SupportedLanguage } from '../types/test-frameworks.js';
|
|
14
14
|
import type { ILanguageParser, ParsedFile } from './interfaces.js';
|
|
15
|
+
type SyntaxNode = any;
|
|
15
16
|
export declare class TreeSitterWASMParser implements ILanguageParser {
|
|
16
17
|
readonly language: SupportedLanguage;
|
|
17
18
|
readonly supportedExtensions: string[];
|
|
@@ -25,8 +26,19 @@ export declare function createWasmParsers(): Map<SupportedLanguage, ILanguagePar
|
|
|
25
26
|
* Returns true if the dependency is installed; does NOT initialize WASM.
|
|
26
27
|
*/
|
|
27
28
|
export declare function isWasmAvailable(): boolean;
|
|
29
|
+
/**
|
|
30
|
+
* Generic grammar loader for callers outside the GRAMMAR_CONFIG set (e.g. the
|
|
31
|
+
* code-intelligence TS/JS extractor). Reuses the proven WASM init + grammar
|
|
32
|
+
* path resolution. Returns a `parse(code)` that yields a tree-sitter tree
|
|
33
|
+
* (caller must call `tree.delete()`), or null if WASM/grammar is unavailable so
|
|
34
|
+
* the caller can fall back.
|
|
35
|
+
*/
|
|
36
|
+
export declare function loadWasmGrammar(wasmFile: string): Promise<{
|
|
37
|
+
parse: (code: string) => SyntaxNode;
|
|
38
|
+
} | null>;
|
|
28
39
|
/**
|
|
29
40
|
* Reset internal state — for testing only.
|
|
30
41
|
*/
|
|
31
42
|
export declare function _resetWasmState(): void;
|
|
43
|
+
export {};
|
|
32
44
|
//# sourceMappingURL=tree-sitter-wasm-parser.d.ts.map
|