agentic-qe 3.10.2 → 3.10.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/release/SKILL.md +10 -10
- package/.claude/skills/skills-manifest.json +1 -1
- package/CHANGELOG.md +88 -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-A62ETL5C.js +2 -0
- package/dist/cli/chunks/{agent-booster-wasm-DHSIPFTH.js → agent-booster-wasm-EJPDSWON.js} +2 -2
- package/dist/cli/chunks/{agent-handler-FPQVHGGT.js → agent-handler-2DZB7LGI.js} +2 -2
- package/dist/cli/chunks/{agent-memory-branch-OLOF5ZHV.js → agent-memory-branch-SSFYAVIK.js} +2 -2
- package/dist/cli/chunks/aqe-learning-engine-MTCRAV6N.js +2 -0
- package/dist/cli/chunks/audit-42XG5JFB.js +3 -0
- package/dist/cli/chunks/base-KKEBUHZC.js +2 -0
- package/dist/cli/chunks/{hnswlib-node-ZGSUMHDC.js → better-sqlite3-PX5JM3DG.js} +2 -2
- package/dist/cli/chunks/{brain-handler-ROZUHCOT.js → brain-handler-LFHX2TYP.js} +3 -3
- package/dist/cli/chunks/{branch-enumerator-VK7G4NKJ.js → branch-enumerator-AX7DKGV7.js} +2 -2
- package/dist/cli/chunks/{browser-Q2S75M2F.js → browser-4NYLZ7FA.js} +2 -2
- package/dist/cli/chunks/browser-workflow-XHYAJUB6.js +2 -0
- package/dist/cli/chunks/{chunk-XPCNUX2U.js → chunk-2B6ETC7C.js} +2 -2
- package/dist/cli/chunks/{chunk-YI6GNRQM.js → chunk-2G2PVVQG.js} +2 -2
- package/dist/cli/chunks/{chunk-2244IFZA.js → chunk-2L5VFVCG.js} +1 -1
- package/dist/cli/chunks/{chunk-EVCOCGVJ.js → chunk-2TYO4VZH.js} +4 -4
- package/dist/cli/chunks/{chunk-U3EUH6LX.js → chunk-3ISX5B77.js} +2 -2
- package/dist/cli/chunks/{chunk-WZJUMJ2S.js → chunk-3UGUX34A.js} +1 -1
- package/dist/cli/chunks/{chunk-6ZFHIKQG.js → chunk-4BX72XG4.js} +3 -3
- package/dist/cli/chunks/{chunk-UUFOHMUG.js → chunk-4FTLYIMW.js} +2 -2
- package/dist/cli/chunks/{chunk-XDU624HU.js → chunk-5FNNCVXR.js} +1 -1
- package/dist/cli/chunks/{chunk-7Z46RDDV.js → chunk-5Q3L4QEE.js} +3 -3
- package/dist/cli/chunks/{chunk-AH7FXNFE.js → chunk-5T2HDET6.js} +3 -3
- package/dist/cli/chunks/{chunk-24LUQICS.js → chunk-5T4J3IPG.js} +2 -2
- package/dist/cli/chunks/{chunk-HHCYSAH3.js → chunk-6OLHPWSN.js} +2 -2
- package/dist/cli/chunks/{chunk-5PRFFHFV.js → chunk-6SCIX2W2.js} +2 -2
- package/dist/cli/chunks/{chunk-2JDLQWSV.js → chunk-6WF2MOQB.js} +2 -2
- package/dist/cli/chunks/{chunk-YNNOY3XN.js → chunk-7BQXEYRV.js} +2 -2
- package/dist/cli/chunks/{chunk-MMIQ5DMA.js → chunk-7VO5IEJ2.js} +2 -2
- package/dist/cli/chunks/{chunk-XDSA7YUQ.js → chunk-AIBE3J4A.js} +1 -1
- package/dist/cli/chunks/{chunk-AV7KYE5P.js → chunk-AMW27FSS.js} +5 -5
- package/dist/cli/chunks/{chunk-22D6VBPD.js → chunk-AZJYDM2K.js} +2 -2
- package/dist/cli/chunks/{chunk-PYIHZXCI.js → chunk-B6CT4ILU.js} +4 -4
- package/dist/cli/chunks/{chunk-ZK2BH23O.js → chunk-BEFRQOLH.js} +2 -2
- package/dist/cli/chunks/{chunk-CIRPP7RQ.js → chunk-C2446H7G.js} +2 -2
- package/dist/cli/chunks/{chunk-ON4D4TJ4.js → chunk-D7IWGQTW.js} +2 -2
- package/dist/cli/chunks/{chunk-6KSCXPPL.js → chunk-D7PI4CYZ.js} +2 -2
- package/dist/cli/chunks/{chunk-BQCSCAUC.js → chunk-DAIM72HV.js} +2 -2
- package/dist/cli/chunks/{chunk-XMJTTF5N.js → chunk-DPKECIKN.js} +3 -3
- package/dist/cli/chunks/{chunk-DZZEHPSJ.js → chunk-E6CGBOZY.js} +3 -3
- package/dist/cli/chunks/{chunk-OIRZJCZY.js → chunk-EGTOSQZK.js} +2 -2
- package/dist/cli/chunks/{chunk-WDMPJ2M2.js → chunk-EMZ3DXMG.js} +2 -2
- package/dist/cli/chunks/{chunk-QBRHKTFT.js → chunk-EWI37TJA.js} +1 -1
- package/dist/cli/chunks/{chunk-A5RMQG4N.js → chunk-F34OO2Q7.js} +3 -3
- package/dist/cli/chunks/{chunk-7SWD3D6Y.js → chunk-F6QPAVWS.js} +2 -2
- package/dist/cli/chunks/chunk-F77X5DAF.js +2 -0
- package/dist/cli/chunks/{chunk-Y63MBMOV.js → chunk-FDFJJFQT.js} +2 -2
- package/dist/cli/chunks/{chunk-YWZHMXTO.js → chunk-FQ7I4JBQ.js} +2 -2
- package/dist/cli/chunks/{chunk-S3ZO7JXS.js → chunk-G5FPWH5O.js} +4 -4
- package/dist/cli/chunks/{chunk-QSE67XJO.js → chunk-GDMH7NPV.js} +2 -2
- package/dist/cli/chunks/{chunk-MEY43PIQ.js → chunk-GILL32E2.js} +2 -2
- package/dist/cli/chunks/{chunk-LQTWPSYL.js → chunk-GLMDRGJD.js} +1 -1
- package/dist/cli/chunks/{chunk-MNV3E5KY.js → chunk-GS33ZRJH.js} +4 -4
- package/dist/cli/chunks/chunk-HPYGMKZF.js +2 -0
- package/dist/cli/chunks/{chunk-EQBEGDTG.js → chunk-HTLAPMTK.js} +1 -1
- package/dist/cli/chunks/{chunk-C2M74HCN.js → chunk-IAK76TIZ.js} +1 -1
- package/dist/cli/chunks/{chunk-2EDWGHDA.js → chunk-ICF5RPQU.js} +2 -2
- package/dist/cli/chunks/{chunk-ZXTO4C7R.js → chunk-IPAQ4HVX.js} +2 -2
- package/dist/cli/chunks/{chunk-RLXTBL3H.js → chunk-ISRTT4I7.js} +22 -22
- package/dist/cli/chunks/{chunk-SW4OKUTC.js → chunk-IYFMDIYZ.js} +2 -2
- package/dist/cli/chunks/{chunk-7IZ2OPC2.js → chunk-JRBGHWAM.js} +2 -2
- package/dist/cli/chunks/{chunk-QJ2EHLJ2.js → chunk-JYR3X4OC.js} +1 -1
- package/dist/cli/chunks/{chunk-5QHSLWLP.js → chunk-K72J52JO.js} +2 -2
- package/dist/cli/chunks/{chunk-PIZYRPMT.js → chunk-K7CW2X6U.js} +2 -2
- package/dist/cli/chunks/{chunk-3Z4FHA2E.js → chunk-K7K4TFJM.js} +4 -4
- package/dist/cli/chunks/{chunk-5HB54RUS.js → chunk-KCXE2LZU.js} +2 -2
- package/dist/cli/chunks/{chunk-THRTUW4Z.js → chunk-KGPAWNNR.js} +1 -1
- package/dist/cli/chunks/{chunk-MYWQTCS4.js → chunk-KJ56OXH4.js} +1 -1
- package/dist/cli/chunks/{chunk-ZDHMZPSL.js → chunk-KUFC4DBX.js} +1 -1
- package/dist/cli/chunks/{chunk-CV2SBMBW.js → chunk-KWZEBHAP.js} +2 -2
- package/dist/cli/chunks/{chunk-X2VAOIUY.js → chunk-L6VNEEN6.js} +1 -1
- package/dist/cli/chunks/{chunk-S3OZ7XSY.js → chunk-LHPR7ROV.js} +1 -1
- package/dist/cli/chunks/{chunk-HO37VP4O.js → chunk-LKK3NIHC.js} +1 -1
- package/dist/cli/chunks/{chunk-XRJECWZE.js → chunk-LOFA3U4X.js} +1 -1
- package/dist/cli/chunks/{chunk-AWFIEGR3.js → chunk-LYKSIOOT.js} +2 -2
- package/dist/cli/chunks/chunk-M2PSXKTG.js +2 -0
- package/dist/cli/chunks/{chunk-CMACGG4Z.js → chunk-M3MKP5VN.js} +1 -1
- package/dist/cli/chunks/{chunk-UYYBPWU3.js → chunk-M4ARHDY4.js} +1 -1
- package/dist/cli/chunks/chunk-M5DBKHM4.js +2 -0
- package/dist/cli/chunks/{chunk-7IVQ6OVR.js → chunk-MDWJXSBA.js} +2 -2
- package/dist/cli/chunks/{chunk-IICTTDAA.js → chunk-MFWWPRBV.js} +2 -2
- package/dist/cli/chunks/{chunk-4BXGVM2C.js → chunk-MHWYQHGN.js} +1 -1
- package/dist/cli/chunks/{chunk-HJME6G5M.js → chunk-MIQBRVK2.js} +1 -1
- package/dist/cli/chunks/{chunk-FY3CUPNN.js → chunk-MKZQBBCU.js} +2 -2
- package/dist/cli/chunks/{chunk-MCOFJHSJ.js → chunk-MQ5WMWUK.js} +5 -5
- package/dist/cli/chunks/chunk-MQIAN57O.js +2 -0
- package/dist/cli/chunks/{chunk-6NZHEM4V.js → chunk-MU4P4P4E.js} +3 -3
- package/dist/cli/chunks/{chunk-ETN5563K.js → chunk-MWV4KPOB.js} +2 -2
- package/dist/cli/chunks/{chunk-XTCUN36Z.js → chunk-N244P4MM.js} +2 -2
- package/dist/cli/chunks/{chunk-DRWGK3YO.js → chunk-N3MM4Z33.js} +2 -2
- package/dist/cli/chunks/{chunk-QQNCSEZG.js → chunk-N4CXUGXE.js} +2 -2
- package/dist/cli/chunks/{chunk-PEK6NGVJ.js → chunk-ND6YSW5N.js} +1 -1
- package/dist/cli/chunks/{chunk-7V5UHLNY.js → chunk-NJYI7HX7.js} +3 -3
- package/dist/cli/chunks/{chunk-YACT5WFC.js → chunk-NSRDP7RD.js} +2 -2
- package/dist/cli/chunks/{chunk-L7VIX22Y.js → chunk-NZGLDOU4.js} +15 -15
- package/dist/cli/chunks/{chunk-MNUTRAUV.js → chunk-O3SG32PS.js} +1 -1
- package/dist/cli/chunks/{chunk-ZGNZJJFF.js → chunk-OIFJH7TF.js} +1 -1
- package/dist/cli/chunks/{chunk-LZCBSFAU.js → chunk-OKKTDHHF.js} +6 -6
- package/dist/cli/chunks/{chunk-3RHHKYUR.js → chunk-OO7KJ34Y.js} +2 -2
- package/dist/cli/chunks/{chunk-STEGWLH5.js → chunk-OV4BLIKJ.js} +2 -2
- package/dist/cli/chunks/{chunk-AOI67HA3.js → chunk-PISW5HUX.js} +1 -1
- package/dist/cli/chunks/{chunk-SJH3HYNC.js → chunk-PLD4IGDL.js} +2 -2
- package/dist/cli/chunks/{chunk-2OH3ALYB.js → chunk-PMWWWYUM.js} +1 -1
- package/dist/cli/chunks/{chunk-EA7ZSN3V.js → chunk-PWJZZCHJ.js} +1 -1
- package/dist/cli/chunks/{chunk-HA63NBFK.js → chunk-PZ4PRZXN.js} +37 -37
- package/dist/cli/chunks/chunk-PZCSJZVJ.js +2 -0
- package/dist/cli/chunks/{chunk-CTDLI2ON.js → chunk-Q53M4LI7.js} +1 -1
- package/dist/cli/chunks/{chunk-WSVUSIAZ.js → chunk-QPMAXDJ2.js} +2 -2
- package/dist/cli/chunks/{chunk-MCZHKXB4.js → chunk-RJKYPWFD.js} +2 -2
- package/dist/cli/chunks/{chunk-7QRMARM7.js → chunk-RUC3FCRK.js} +2 -2
- package/dist/cli/chunks/{chunk-5PL7WTCU.js → chunk-SC6UFGJ6.js} +2 -2
- package/dist/cli/chunks/{chunk-FO43SQXP.js → chunk-SJC7OKF3.js} +2 -2
- package/dist/cli/chunks/{chunk-R2O6OKT2.js → chunk-STMMZXS6.js} +1 -1
- package/dist/cli/chunks/{chunk-ORF2UKQH.js → chunk-SVILIQQQ.js} +1 -1
- package/dist/cli/chunks/{chunk-UVU7XLJY.js → chunk-SXMGNMFL.js} +5 -5
- package/dist/cli/chunks/{chunk-OIEQF7PG.js → chunk-SZKFT6CD.js} +2 -2
- package/dist/cli/chunks/{chunk-G5U6Q42D.js → chunk-TBJ566KV.js} +2 -2
- package/dist/cli/chunks/{chunk-SVYTN2GT.js → chunk-TCV5DASI.js} +2 -2
- package/dist/cli/chunks/chunk-TWAWEP4X.js +59 -0
- package/dist/cli/chunks/chunk-U27GVYXA.js +2 -0
- package/dist/cli/chunks/{chunk-FPAW77XV.js → chunk-UFKVKNAA.js} +1 -1
- package/dist/cli/chunks/{chunk-HJORBNXW.js → chunk-USB7GCIC.js} +1 -1
- package/dist/cli/chunks/{chunk-4GTDW2XL.js → chunk-UW3ZSFFB.js} +2 -2
- package/dist/cli/chunks/{chunk-OXCEUR5F.js → chunk-UWAUYDW4.js} +2 -2
- package/dist/cli/chunks/{chunk-4F3ZTXHP.js → chunk-UXJVR323.js} +2 -2
- package/dist/cli/chunks/{chunk-AIUSZC6K.js → chunk-V5G3SMAJ.js} +2 -2
- package/dist/cli/chunks/{chunk-DMQPO43S.js → chunk-VDKMBOUK.js} +1 -1
- package/dist/cli/chunks/{chunk-5WJ3FWL4.js → chunk-VJ2D6FST.js} +24 -24
- package/dist/cli/chunks/chunk-VJOPNK2L.js +2 -0
- package/dist/cli/chunks/{chunk-JF53LRBL.js → chunk-VRE2EBFI.js} +2 -2
- package/dist/cli/chunks/{chunk-WNR2KAUH.js → chunk-WI5WXYIS.js} +2 -2
- package/dist/cli/chunks/{chunk-OWQ6HEYI.js → chunk-WIYWDON4.js} +2 -2
- package/dist/cli/chunks/{chunk-KB5L5TTF.js → chunk-WYMQ6FZR.js} +5 -5
- package/dist/cli/chunks/{chunk-TJKDATEU.js → chunk-XBFEHVBO.js} +2 -2
- package/dist/cli/chunks/{chunk-7SJX4CFK.js → chunk-XDZXLEJK.js} +1 -1
- package/dist/cli/chunks/{chunk-QEPFXY6G.js → chunk-XJXCSCCP.js} +1 -1
- package/dist/cli/chunks/{chunk-OPFN5LFT.js → chunk-XVA56PXZ.js} +4 -4
- package/dist/cli/chunks/{chunk-PXTDEO65.js → chunk-Y2EDDV5U.js} +2 -2
- package/dist/cli/chunks/{chunk-VSUTI4G6.js → chunk-YSLE6NNG.js} +2 -2
- package/dist/cli/chunks/{chunk-XGBAHAGC.js → chunk-Z4BTPQLG.js} +4 -4
- package/dist/cli/chunks/{chunk-NZO4WUSO.js → chunk-ZM4QGYGK.js} +3 -3
- package/dist/cli/chunks/{ci-PYCRCL7G.js → ci-2BLMQNX3.js} +6 -6
- package/dist/cli/chunks/{ci-output-EKQQFE2D.js → ci-output-XK4PPSN7.js} +2 -2
- package/dist/cli/chunks/{circuit-breaker-RH3Q2MJO.js → circuit-breaker-W7X4NPFE.js} +2 -2
- package/dist/cli/chunks/{claude-flow-setup-DUDXB4VV.js → claude-flow-setup-GLBLSYNJ.js} +2 -2
- package/dist/cli/chunks/client-C6CJOCRN.js +2 -0
- package/dist/cli/chunks/{cline-installer-3Q4WIWUG.js → cline-installer-7WX7DBGI.js} +2 -2
- package/dist/cli/chunks/{code-E4Q6DGOO.js → code-SP3HAQWG.js} +20 -19
- package/dist/cli/chunks/{code-index-extractor-2PCISUOW.js → code-index-extractor-44HH36UG.js} +2 -2
- package/dist/cli/chunks/{codex-installer-YNNNOLJ6.js → codex-installer-LMXRWLPU.js} +2 -2
- package/dist/cli/chunks/{completions-2F7TUFBD.js → completions-GL5FTZAN.js} +2 -2
- package/dist/cli/chunks/{complexity-analyzer-2B6MHO7W.js → complexity-analyzer-CQMYGETL.js} +2 -2
- package/dist/cli/chunks/{continuedev-installer-ENOKRU5M.js → continuedev-installer-CYVYS5B7.js} +2 -2
- package/dist/cli/chunks/{copilot-installer-6YD2KM5F.js → copilot-installer-M7XVII2A.js} +2 -2
- package/dist/cli/chunks/{cost-tracker-FCH4QOEA.js → cost-tracker-S4ET4FH3.js} +2 -2
- package/dist/cli/chunks/{coverage-JTOXZE3T.js → coverage-DFVSSQ4A.js} +3 -3
- package/dist/cli/chunks/cross-domain-router-I3GEA5G6.js +2 -0
- package/dist/cli/chunks/{cursor-installer-QZFBUGLQ.js → cursor-installer-KWDSQPQC.js} +2 -2
- package/dist/cli/chunks/{daemon-K4QFB5FQ.js → daemon-2HD54QVO.js} +3 -3
- package/dist/cli/chunks/daemon-CRX46BBO.js +10 -0
- package/dist/cli/chunks/{dag-attention-scheduler-BXAAW33V.js → dag-attention-scheduler-SCP6WPZB.js} +2 -2
- package/dist/cli/chunks/{detect-UGSWIOAD.js → detect-XS2GDCEX.js} +2 -2
- package/dist/cli/chunks/{dist-node-FN3HX3OK.js → dist-node-U43MVQ3F.js} +2 -2
- package/dist/cli/chunks/{domain-handler-7PP7VYA7.js → domain-handler-HITMDULH.js} +2 -2
- package/dist/cli/chunks/{domain-transfer-XZM44W7I.js → domain-transfer-TJF7DNI4.js} +2 -2
- package/dist/cli/chunks/dream-JCQMG2RL.js +2 -0
- package/dist/cli/chunks/{embed-and-insert-pattern-JZVERJ5L.js → embed-and-insert-pattern-JKG33YZK.js} +2 -2
- package/dist/cli/chunks/{eval-466NFF2D.js → eval-NF5Y4W37.js} +3 -3
- package/dist/cli/chunks/{experience-capture-middleware-I7IQCC7V.js → experience-capture-middleware-VMMFYJ4D.js} +3 -3
- package/dist/cli/chunks/{fast-paths-34OICNZA.js → fast-paths-W2Q53IR2.js} +2 -2
- package/dist/cli/chunks/{feature-flags-6UBIVTAD.js → feature-flags-B4PBMQJO.js} +2 -2
- package/dist/cli/chunks/{feature-flags-X5WBBWSO.js → feature-flags-PVI7A4RE.js} +2 -2
- package/dist/cli/chunks/{file-discovery-NLMDBWXX.js → file-discovery-E4L3I33I.js} +2 -2
- package/dist/cli/chunks/{fleet-W7CYCHDI.js → fleet-LE5SHVLK.js} +3 -3
- package/dist/cli/chunks/{gnn-wrapper-K4VTAG5X.js → gnn-wrapper-MWWJBLOH.js} +2 -2
- package/dist/cli/chunks/{heartbeat-handler-ZGKF2Z6T.js → heartbeat-handler-XOUVNPQK.js} +4 -4
- package/dist/cli/chunks/heartbeat-scheduler-FBHE4ZWH.js +2 -0
- package/dist/cli/chunks/hnsw-adapter-EOOA4WXD.js +2 -0
- package/dist/cli/chunks/hnsw-index-TD3KRPND.js +2 -0
- package/dist/cli/chunks/{hnsw-legacy-bridge-ELDRLKK5.js → hnsw-legacy-bridge-W3T5ZDDP.js} +2 -2
- package/dist/cli/chunks/{better-sqlite3-5BT5FO64.js → hnswlib-node-3TZFES5I.js} +2 -2
- package/dist/cli/chunks/hooks-RUPQVIUM.js +250 -0
- package/dist/cli/chunks/hybrid-router-64O6PXZ2.js +2 -0
- package/dist/cli/chunks/{hypergraph-engine-UWFW3XP5.js → hypergraph-engine-VDFK3JYH.js} +2 -2
- package/dist/cli/chunks/{hypergraph-handler-PK2BI46K.js → hypergraph-handler-EUDGEF25.js} +3 -3
- package/dist/cli/chunks/impact-analyzer-ITQHXGTM.js +2 -0
- package/dist/cli/chunks/{init-handler-HNG6KJOU.js → init-handler-MZEAJOZK.js} +6 -6
- package/dist/cli/chunks/init-wizard-DZ4IKGQI.js +2 -0
- package/dist/cli/chunks/kernel-HSVY4ZYK.js +2 -0
- package/dist/cli/chunks/{kilocode-installer-25V7FEJ4.js → kilocode-installer-ECBYWT6M.js} +2 -2
- package/dist/cli/chunks/{kiro-installer-7RMTTCQB.js → kiro-installer-KYFCSYTG.js} +2 -2
- package/dist/cli/chunks/knowledge-graph-H32TXXX4.js +2 -0
- package/dist/cli/chunks/{learning-XQC2MG2R.js → learning-4RAFMDSB.js} +3 -3
- package/dist/cli/chunks/{llm-router-6KTTONH4.js → llm-router-JHBNLYP3.js} +12 -12
- package/dist/cli/chunks/llm-router-service-3FKESBUX.js +2 -0
- package/dist/cli/chunks/{load-BV64P3AL.js → load-4DVQML7P.js} +2 -2
- package/dist/cli/chunks/load-test-LKHURZGZ.js +2 -0
- package/dist/cli/chunks/{mcp-U5ZN77TA.js → mcp-LCWMU4GZ.js} +2 -2
- package/dist/cli/chunks/{memory-WB5BNBK7.js → memory-3DTJAURT.js} +5 -5
- package/dist/cli/chunks/memory-backend-XRJRZ6CK.js +2 -0
- package/dist/cli/chunks/memory-handlers-BL6E3XAK.js +2 -0
- package/dist/cli/chunks/{multi-model-executor-3X3W3UTY.js → multi-model-executor-AVR5SZOO.js} +2 -2
- package/dist/cli/chunks/{opencode-installer-TTTMG7ZZ.js → opencode-installer-DW2426QM.js} +3 -3
- package/dist/cli/chunks/{orchestrator-BLCGSHMZ.js → orchestrator-AHF4W5GS.js} +8 -8
- package/dist/cli/chunks/{pipeline-DZPGMRG7.js → pipeline-N6THEWYE.js} +2 -2
- package/dist/cli/chunks/{platform-EVMZAUNV.js → platform-MRCFQF7X.js} +2 -2
- package/dist/cli/chunks/{plugin-OR55K4HT.js → plugin-6YKUN5QM.js} +2 -2
- package/dist/cli/chunks/{prime-radiant-advanced-wasm-4ODV27HD.js → prime-radiant-advanced-wasm-2YPAHSVS.js} +2 -2
- package/dist/cli/chunks/protocol-executor-KABPB6PQ.js +2 -0
- package/dist/cli/chunks/{protocol-handler-ZOTI5PID.js → protocol-handler-Y2NMUKWQ.js} +2 -2
- package/dist/cli/chunks/{prove-DIMBYJ7V.js → prove-DZUNWBFD.js} +2 -2
- package/dist/cli/chunks/provider-manager-U7EBM3FA.js +2 -0
- package/dist/cli/chunks/qe-reasoning-bank-64O2OQIW.js +2 -0
- package/dist/cli/chunks/{quality-7MX4VL6M.js → quality-AIFQMGUV.js} +2 -2
- package/dist/cli/chunks/queen-coordinator-SV3COGIL.js +2 -0
- package/dist/cli/chunks/{real-embeddings-YPUHWRN2.js → real-embeddings-5XL4LOG2.js} +2 -2
- package/dist/cli/chunks/{roocode-installer-WG5AU4QM.js → roocode-installer-LV3WONT5.js} +2 -2
- package/dist/cli/chunks/router-QARRPMED.js +2 -0
- package/dist/cli/chunks/routing-feedback-KD2JFTPK.js +2 -0
- package/dist/cli/chunks/{routing-handler-LZB4MN2K.js → routing-handler-WSMUILGD.js} +2 -2
- package/dist/cli/chunks/{ruvector-commands-YE4ADBMC.js → ruvector-commands-BCEIDTW3.js} +2 -2
- package/dist/cli/chunks/{rvf-dual-writer-QS5ATW4C.js → rvf-dual-writer-LRSPC6H3.js} +2 -2
- package/dist/cli/chunks/{rvf-migration-adapter-YIGKSBD3.js → rvf-migration-adapter-QHNX6353.js} +2 -2
- package/dist/cli/chunks/{rvf-migration-coordinator-2NDCWP7F.js → rvf-migration-coordinator-SLNB3XPW.js} +2 -2
- package/dist/cli/chunks/rvf-native-adapter-4LLGF5AY.js +2 -0
- package/dist/cli/chunks/safe-db-RAX3H2P7.js +2 -0
- package/dist/cli/chunks/schedule-RQZGLLUY.js +2 -0
- package/dist/cli/chunks/scheduler-ACWTN4LN.js +2 -0
- package/dist/cli/chunks/{security-HT4SUT24.js → security-CYY6TECQ.js} +3 -3
- package/dist/cli/chunks/shared-rvf-adapter-U6JE4O6A.js +2 -0
- package/dist/cli/chunks/{shared-rvf-dual-writer-ZKFO7CBY.js → shared-rvf-dual-writer-PJBSNBRV.js} +2 -2
- package/dist/cli/chunks/sqlite-persistence-SWNBO257.js +2 -0
- package/dist/cli/chunks/{status-handler-AMEMKBI4.js → status-handler-W723LXX5.js} +2 -2
- package/dist/cli/chunks/{structural-health-RBADRLC3.js → structural-health-WZUPZBB5.js} +2 -2
- package/dist/cli/chunks/{sync-PCB23M4K.js → sync-UA22CKUS.js} +2 -2
- package/dist/cli/chunks/sync-ZLMF53TB.js +2 -0
- package/dist/cli/chunks/{task-handler-J26FSCH5.js → task-handler-SENTEEXZ.js} +2 -2
- package/dist/cli/chunks/{task-handlers-AQRLR6BL.js → task-handlers-FGVUZOCC.js} +3 -3
- package/dist/cli/chunks/{test-YXWSIOSB.js → test-Q37C3WI2.js} +4 -4
- package/dist/cli/chunks/{test-scheduling-XY532GI4.js → test-scheduling-E6SPIBTH.js} +4 -4
- package/dist/cli/chunks/token-bootstrap-HQFFMZUF.js +2 -0
- package/dist/cli/chunks/{token-usage-2MJVE4DT.js → token-usage-JHNWTZ7L.js} +3 -3
- package/dist/cli/chunks/{transformers-QSNTOD2Z.js → transformers-TEXDUVNI.js} +2 -2
- package/dist/cli/chunks/tree-sitter-wasm-parser-MWSS52H6.js +2 -0
- package/dist/cli/chunks/{types-RNKRSYMO.js → types-YQRKHYH3.js} +2 -2
- package/dist/cli/chunks/unified-memory-QG3FDRKR.js +2 -0
- package/dist/cli/chunks/unified-memory-hnsw-KOR4EOIG.js +2 -0
- package/dist/cli/chunks/unified-persistence-J6NIRYKM.js +2 -0
- package/dist/cli/chunks/{upgrade-EKJHIFWP.js → upgrade-JKMEDURI.js} +2 -2
- package/dist/cli/chunks/{validate-KS4T7LWC.js → validate-URO7G6OE.js} +4 -4
- package/dist/cli/chunks/validate-swarm-VZVJ56Z5.js +14 -0
- package/dist/cli/chunks/{vibium-FLUQO4IF.js → vibium-G5WZILL6.js} +2 -2
- package/dist/cli/chunks/visual-security-RAWV6YLN.js +2 -0
- package/dist/cli/chunks/{web-tree-sitter-UMC63DWD.js → web-tree-sitter-LECH5T6H.js} +2 -2
- package/dist/cli/chunks/{windsurf-installer-V3FQGJIQ.js → windsurf-installer-2NPLC2YW.js} +2 -2
- package/dist/cli/chunks/{witness-chain-GE74TLSO.js → witness-chain-X347C36A.js} +2 -2
- package/dist/cli/chunks/witness-chain-ZO7FIM35.js +2 -0
- package/dist/cli/chunks/{workflow-4YZ2RPWA.js → workflow-V4ALYZ73.js} +4 -4
- package/dist/cli/chunks/workflow-orchestrator-7SKITNIJ.js +2 -0
- package/dist/cli/chunks/wrappers-QXOPRPR4.js +2 -0
- package/dist/cli/commands/code.js +6 -0
- package/dist/cli/commands/hooks-handlers/task-hooks.js +50 -0
- 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/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/shared-rvf-adapter.js +12 -1
- package/dist/integrations/ruvector/shared-rvf-dual-writer.js +6 -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/project-root.d.ts +33 -0
- package/dist/kernel/project-root.js +86 -0
- package/dist/kernel/unified-memory-hnsw.js +1 -0
- package/dist/kernel/unified-memory.d.ts +2 -19
- package/dist/kernel/unified-memory.js +8 -64
- package/dist/learning/experience-capture.js +1 -1
- package/dist/learning/local-judge-client.d.ts +55 -0
- package/dist/learning/local-judge-client.js +127 -0
- package/dist/learning/nagual-client.d.ts +73 -0
- package/dist/learning/nagual-client.js +150 -0
- package/dist/learning/pattern-store.js +10 -3
- package/dist/learning/qe-reasoning-bank.js +9 -1
- package/dist/learning/qe-unified-memory.js +8 -6
- package/dist/mcp/bundle.js +405 -403
- package/dist/mcp/entry.js +44 -33
- 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 +2 -2
- 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 +7 -0
- package/dist/mcp/transport/stdio.js +39 -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/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/daemon.js +2 -0
- package/dist/workers/quality-daemon/git-watcher.js +2 -0
- package/dist/workers/quality-daemon/index.js +28 -24
- package/dist/workers/worker-manager.js +4 -0
- package/package.json +5 -4
- package/dist/cli/chunks/adapter-CR6J5C76.js +0 -2
- package/dist/cli/chunks/aqe-learning-engine-2MNTHMB6.js +0 -2
- package/dist/cli/chunks/audit-ALRYPHGP.js +0 -3
- package/dist/cli/chunks/base-AOQNGMTL.js +0 -2
- package/dist/cli/chunks/browser-workflow-UJ4A2ZXO.js +0 -2
- package/dist/cli/chunks/chunk-7DKYCVJI.js +0 -2
- package/dist/cli/chunks/chunk-FO73PZVU.js +0 -2
- package/dist/cli/chunks/chunk-I677W5BT.js +0 -59
- package/dist/cli/chunks/chunk-IAZEDWRX.js +0 -2
- package/dist/cli/chunks/chunk-RNREAOY4.js +0 -2
- package/dist/cli/chunks/chunk-UWXH2UQK.js +0 -2
- package/dist/cli/chunks/chunk-ZQUXNG5X.js +0 -2
- package/dist/cli/chunks/client-RDPWGOSA.js +0 -2
- package/dist/cli/chunks/cross-domain-router-4K5ZVZEZ.js +0 -2
- package/dist/cli/chunks/daemon-M422U3ZA.js +0 -10
- package/dist/cli/chunks/dream-RPNWM7VS.js +0 -2
- package/dist/cli/chunks/heartbeat-scheduler-JBCXMMZO.js +0 -2
- package/dist/cli/chunks/hnsw-adapter-3SC2HZIG.js +0 -2
- package/dist/cli/chunks/hnsw-index-FQORAR6K.js +0 -2
- package/dist/cli/chunks/hooks-T4CBINAV.js +0 -248
- package/dist/cli/chunks/hybrid-router-6CBFDXPR.js +0 -2
- package/dist/cli/chunks/impact-analyzer-SOEFVZWG.js +0 -2
- package/dist/cli/chunks/init-wizard-3E4IU5M4.js +0 -2
- package/dist/cli/chunks/kernel-GFZP4G5J.js +0 -2
- package/dist/cli/chunks/knowledge-graph-BKRKBU26.js +0 -2
- package/dist/cli/chunks/llm-router-service-KE4IGZPP.js +0 -2
- package/dist/cli/chunks/load-test-VSYJV2AO.js +0 -2
- package/dist/cli/chunks/memory-backend-B72RGHRF.js +0 -2
- package/dist/cli/chunks/memory-handlers-NWCH7AUO.js +0 -2
- package/dist/cli/chunks/protocol-executor-V3F37FPO.js +0 -2
- package/dist/cli/chunks/provider-manager-2PN72TT6.js +0 -2
- package/dist/cli/chunks/qe-reasoning-bank-P665QNIR.js +0 -2
- package/dist/cli/chunks/queen-coordinator-XD4F7BGB.js +0 -2
- package/dist/cli/chunks/router-4SSNWDJC.js +0 -2
- package/dist/cli/chunks/routing-feedback-O2JSIBW6.js +0 -2
- package/dist/cli/chunks/rvf-native-adapter-WIUHYXRB.js +0 -2
- package/dist/cli/chunks/safe-db-WL5Y7ZNS.js +0 -2
- package/dist/cli/chunks/schedule-U7QDGU5A.js +0 -2
- package/dist/cli/chunks/scheduler-LXKGQYXA.js +0 -2
- package/dist/cli/chunks/shared-rvf-adapter-4IZOJL33.js +0 -2
- package/dist/cli/chunks/sqlite-persistence-4KFO3SEB.js +0 -2
- package/dist/cli/chunks/sync-ARDDLQBS.js +0 -2
- package/dist/cli/chunks/token-bootstrap-KL2QIQ36.js +0 -2
- package/dist/cli/chunks/tree-sitter-wasm-parser-QJOKHOIW.js +0 -2
- package/dist/cli/chunks/unified-memory-7AS4LIEF.js +0 -2
- package/dist/cli/chunks/unified-memory-hnsw-GREESNJX.js +0 -2
- package/dist/cli/chunks/unified-persistence-BPJOMZOA.js +0 -2
- package/dist/cli/chunks/validate-swarm-SKKWRP2H.js +0 -14
- package/dist/cli/chunks/visual-security-BW662FHQ.js +0 -2
- package/dist/cli/chunks/witness-chain-OXVDLNVT.js +0 -2
- package/dist/cli/chunks/workflow-orchestrator-KKNR46XV.js +0 -2
- package/dist/cli/chunks/wrappers-37NLMKPE.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) {
|
|
@@ -71,6 +71,7 @@ export declare class StdioTransport {
|
|
|
71
71
|
private requestHandler;
|
|
72
72
|
private notificationHandler;
|
|
73
73
|
private errorHandler;
|
|
74
|
+
private closeHandler;
|
|
74
75
|
private running;
|
|
75
76
|
private metrics;
|
|
76
77
|
constructor(config?: TransportConfig);
|
|
@@ -102,6 +103,12 @@ export declare class StdioTransport {
|
|
|
102
103
|
* Set error handler for transport-level errors
|
|
103
104
|
*/
|
|
104
105
|
onError(handler: (error: Error) => void): void;
|
|
106
|
+
/**
|
|
107
|
+
* Set handler for a terminal close (stdin EOF / parent process exited).
|
|
108
|
+
* Issue #513: lets the server shut down gracefully instead of attempting
|
|
109
|
+
* to reconnect to a stream that can never come back.
|
|
110
|
+
*/
|
|
111
|
+
onClose(handler: () => void): void;
|
|
105
112
|
/**
|
|
106
113
|
* Reconnect the transport by re-attaching to stdin/stdout.
|
|
107
114
|
* Closes the existing readline interface and creates a new one.
|
|
@@ -53,6 +53,7 @@ export class StdioTransport {
|
|
|
53
53
|
requestHandler = null;
|
|
54
54
|
notificationHandler = null;
|
|
55
55
|
errorHandler = null;
|
|
56
|
+
closeHandler = null;
|
|
56
57
|
running = false;
|
|
57
58
|
metrics = {
|
|
58
59
|
messagesReceived: 0,
|
|
@@ -99,8 +100,25 @@ export class StdioTransport {
|
|
|
99
100
|
this.rl.on('close', () => {
|
|
100
101
|
const wasRunning = this.running;
|
|
101
102
|
this.running = false;
|
|
102
|
-
|
|
103
|
-
|
|
103
|
+
if (!wasRunning) {
|
|
104
|
+
return; // explicit stop() — nothing to signal
|
|
105
|
+
}
|
|
106
|
+
// Issue #513: a readline 'close' caused by stdin reaching EOF means the
|
|
107
|
+
// parent process is gone. stdio cannot reconnect to a new parent, so
|
|
108
|
+
// this is TERMINAL — route it to the close handler and never to the
|
|
109
|
+
// error handler. Firing the error handler here triggers the reconnect
|
|
110
|
+
// path, which re-attaches readline to the already-ended stdin and
|
|
111
|
+
// busy-loops (close → error → reconnect → close ...) at high CPU.
|
|
112
|
+
const ended = this.inputStream.readableEnded === true;
|
|
113
|
+
if (ended) {
|
|
114
|
+
if (this.closeHandler) {
|
|
115
|
+
this.closeHandler();
|
|
116
|
+
}
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
119
|
+
// Stream not ended (e.g. an internal readline close without EOF):
|
|
120
|
+
// keep the legacy transient-error behavior so socket-like callers can retry.
|
|
121
|
+
if (this.errorHandler) {
|
|
104
122
|
this.errorHandler(new Error('Transport connection closed unexpectedly'));
|
|
105
123
|
}
|
|
106
124
|
});
|
|
@@ -147,11 +165,30 @@ export class StdioTransport {
|
|
|
147
165
|
onError(handler) {
|
|
148
166
|
this.errorHandler = handler;
|
|
149
167
|
}
|
|
168
|
+
/**
|
|
169
|
+
* Set handler for a terminal close (stdin EOF / parent process exited).
|
|
170
|
+
* Issue #513: lets the server shut down gracefully instead of attempting
|
|
171
|
+
* to reconnect to a stream that can never come back.
|
|
172
|
+
*/
|
|
173
|
+
onClose(handler) {
|
|
174
|
+
this.closeHandler = handler;
|
|
175
|
+
}
|
|
150
176
|
/**
|
|
151
177
|
* Reconnect the transport by re-attaching to stdin/stdout.
|
|
152
178
|
* Closes the existing readline interface and creates a new one.
|
|
153
179
|
*/
|
|
154
180
|
reconnect() {
|
|
181
|
+
// Issue #513: never re-attach readline to an already-ended stdin. Doing so
|
|
182
|
+
// re-emits 'close' immediately and busy-loops. An ended input stream is
|
|
183
|
+
// terminal for stdio — signal the close handler and bail.
|
|
184
|
+
const ended = this.inputStream.readableEnded === true;
|
|
185
|
+
if (ended) {
|
|
186
|
+
this.running = false;
|
|
187
|
+
if (this.closeHandler) {
|
|
188
|
+
this.closeHandler();
|
|
189
|
+
}
|
|
190
|
+
return;
|
|
191
|
+
}
|
|
155
192
|
if (this.rl) {
|
|
156
193
|
this.rl.close();
|
|
157
194
|
this.rl = null;
|
|
@@ -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
|