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.
Files changed (418) hide show
  1. package/.claude/skills/release/SKILL.md +10 -10
  2. package/.claude/skills/skills-manifest.json +1 -1
  3. package/CHANGELOG.md +88 -0
  4. package/assets/grammars/tree-sitter-c_sharp.wasm +0 -0
  5. package/assets/grammars/tree-sitter-java.wasm +0 -0
  6. package/assets/grammars/tree-sitter-javascript.wasm +0 -0
  7. package/assets/grammars/tree-sitter-python.wasm +0 -0
  8. package/assets/grammars/tree-sitter-rust.wasm +0 -0
  9. package/assets/grammars/tree-sitter-swift.wasm +0 -0
  10. package/assets/grammars/tree-sitter-tsx.wasm +0 -0
  11. package/assets/grammars/tree-sitter-typescript.wasm +0 -0
  12. package/assets/skills/skills-manifest.json +1 -1
  13. package/dist/agents/claim-verifier/claim-verifier-service.js +4 -2
  14. package/dist/agents/claim-verifier/verifiers/test-verifier.js +31 -23
  15. package/dist/agents/devils-advocate/agent.js +1 -1
  16. package/dist/cli/bundle.js +5 -5
  17. package/dist/cli/chunks/adapter-A62ETL5C.js +2 -0
  18. package/dist/cli/chunks/{agent-booster-wasm-DHSIPFTH.js → agent-booster-wasm-EJPDSWON.js} +2 -2
  19. package/dist/cli/chunks/{agent-handler-FPQVHGGT.js → agent-handler-2DZB7LGI.js} +2 -2
  20. package/dist/cli/chunks/{agent-memory-branch-OLOF5ZHV.js → agent-memory-branch-SSFYAVIK.js} +2 -2
  21. package/dist/cli/chunks/aqe-learning-engine-MTCRAV6N.js +2 -0
  22. package/dist/cli/chunks/audit-42XG5JFB.js +3 -0
  23. package/dist/cli/chunks/base-KKEBUHZC.js +2 -0
  24. package/dist/cli/chunks/{hnswlib-node-ZGSUMHDC.js → better-sqlite3-PX5JM3DG.js} +2 -2
  25. package/dist/cli/chunks/{brain-handler-ROZUHCOT.js → brain-handler-LFHX2TYP.js} +3 -3
  26. package/dist/cli/chunks/{branch-enumerator-VK7G4NKJ.js → branch-enumerator-AX7DKGV7.js} +2 -2
  27. package/dist/cli/chunks/{browser-Q2S75M2F.js → browser-4NYLZ7FA.js} +2 -2
  28. package/dist/cli/chunks/browser-workflow-XHYAJUB6.js +2 -0
  29. package/dist/cli/chunks/{chunk-XPCNUX2U.js → chunk-2B6ETC7C.js} +2 -2
  30. package/dist/cli/chunks/{chunk-YI6GNRQM.js → chunk-2G2PVVQG.js} +2 -2
  31. package/dist/cli/chunks/{chunk-2244IFZA.js → chunk-2L5VFVCG.js} +1 -1
  32. package/dist/cli/chunks/{chunk-EVCOCGVJ.js → chunk-2TYO4VZH.js} +4 -4
  33. package/dist/cli/chunks/{chunk-U3EUH6LX.js → chunk-3ISX5B77.js} +2 -2
  34. package/dist/cli/chunks/{chunk-WZJUMJ2S.js → chunk-3UGUX34A.js} +1 -1
  35. package/dist/cli/chunks/{chunk-6ZFHIKQG.js → chunk-4BX72XG4.js} +3 -3
  36. package/dist/cli/chunks/{chunk-UUFOHMUG.js → chunk-4FTLYIMW.js} +2 -2
  37. package/dist/cli/chunks/{chunk-XDU624HU.js → chunk-5FNNCVXR.js} +1 -1
  38. package/dist/cli/chunks/{chunk-7Z46RDDV.js → chunk-5Q3L4QEE.js} +3 -3
  39. package/dist/cli/chunks/{chunk-AH7FXNFE.js → chunk-5T2HDET6.js} +3 -3
  40. package/dist/cli/chunks/{chunk-24LUQICS.js → chunk-5T4J3IPG.js} +2 -2
  41. package/dist/cli/chunks/{chunk-HHCYSAH3.js → chunk-6OLHPWSN.js} +2 -2
  42. package/dist/cli/chunks/{chunk-5PRFFHFV.js → chunk-6SCIX2W2.js} +2 -2
  43. package/dist/cli/chunks/{chunk-2JDLQWSV.js → chunk-6WF2MOQB.js} +2 -2
  44. package/dist/cli/chunks/{chunk-YNNOY3XN.js → chunk-7BQXEYRV.js} +2 -2
  45. package/dist/cli/chunks/{chunk-MMIQ5DMA.js → chunk-7VO5IEJ2.js} +2 -2
  46. package/dist/cli/chunks/{chunk-XDSA7YUQ.js → chunk-AIBE3J4A.js} +1 -1
  47. package/dist/cli/chunks/{chunk-AV7KYE5P.js → chunk-AMW27FSS.js} +5 -5
  48. package/dist/cli/chunks/{chunk-22D6VBPD.js → chunk-AZJYDM2K.js} +2 -2
  49. package/dist/cli/chunks/{chunk-PYIHZXCI.js → chunk-B6CT4ILU.js} +4 -4
  50. package/dist/cli/chunks/{chunk-ZK2BH23O.js → chunk-BEFRQOLH.js} +2 -2
  51. package/dist/cli/chunks/{chunk-CIRPP7RQ.js → chunk-C2446H7G.js} +2 -2
  52. package/dist/cli/chunks/{chunk-ON4D4TJ4.js → chunk-D7IWGQTW.js} +2 -2
  53. package/dist/cli/chunks/{chunk-6KSCXPPL.js → chunk-D7PI4CYZ.js} +2 -2
  54. package/dist/cli/chunks/{chunk-BQCSCAUC.js → chunk-DAIM72HV.js} +2 -2
  55. package/dist/cli/chunks/{chunk-XMJTTF5N.js → chunk-DPKECIKN.js} +3 -3
  56. package/dist/cli/chunks/{chunk-DZZEHPSJ.js → chunk-E6CGBOZY.js} +3 -3
  57. package/dist/cli/chunks/{chunk-OIRZJCZY.js → chunk-EGTOSQZK.js} +2 -2
  58. package/dist/cli/chunks/{chunk-WDMPJ2M2.js → chunk-EMZ3DXMG.js} +2 -2
  59. package/dist/cli/chunks/{chunk-QBRHKTFT.js → chunk-EWI37TJA.js} +1 -1
  60. package/dist/cli/chunks/{chunk-A5RMQG4N.js → chunk-F34OO2Q7.js} +3 -3
  61. package/dist/cli/chunks/{chunk-7SWD3D6Y.js → chunk-F6QPAVWS.js} +2 -2
  62. package/dist/cli/chunks/chunk-F77X5DAF.js +2 -0
  63. package/dist/cli/chunks/{chunk-Y63MBMOV.js → chunk-FDFJJFQT.js} +2 -2
  64. package/dist/cli/chunks/{chunk-YWZHMXTO.js → chunk-FQ7I4JBQ.js} +2 -2
  65. package/dist/cli/chunks/{chunk-S3ZO7JXS.js → chunk-G5FPWH5O.js} +4 -4
  66. package/dist/cli/chunks/{chunk-QSE67XJO.js → chunk-GDMH7NPV.js} +2 -2
  67. package/dist/cli/chunks/{chunk-MEY43PIQ.js → chunk-GILL32E2.js} +2 -2
  68. package/dist/cli/chunks/{chunk-LQTWPSYL.js → chunk-GLMDRGJD.js} +1 -1
  69. package/dist/cli/chunks/{chunk-MNV3E5KY.js → chunk-GS33ZRJH.js} +4 -4
  70. package/dist/cli/chunks/chunk-HPYGMKZF.js +2 -0
  71. package/dist/cli/chunks/{chunk-EQBEGDTG.js → chunk-HTLAPMTK.js} +1 -1
  72. package/dist/cli/chunks/{chunk-C2M74HCN.js → chunk-IAK76TIZ.js} +1 -1
  73. package/dist/cli/chunks/{chunk-2EDWGHDA.js → chunk-ICF5RPQU.js} +2 -2
  74. package/dist/cli/chunks/{chunk-ZXTO4C7R.js → chunk-IPAQ4HVX.js} +2 -2
  75. package/dist/cli/chunks/{chunk-RLXTBL3H.js → chunk-ISRTT4I7.js} +22 -22
  76. package/dist/cli/chunks/{chunk-SW4OKUTC.js → chunk-IYFMDIYZ.js} +2 -2
  77. package/dist/cli/chunks/{chunk-7IZ2OPC2.js → chunk-JRBGHWAM.js} +2 -2
  78. package/dist/cli/chunks/{chunk-QJ2EHLJ2.js → chunk-JYR3X4OC.js} +1 -1
  79. package/dist/cli/chunks/{chunk-5QHSLWLP.js → chunk-K72J52JO.js} +2 -2
  80. package/dist/cli/chunks/{chunk-PIZYRPMT.js → chunk-K7CW2X6U.js} +2 -2
  81. package/dist/cli/chunks/{chunk-3Z4FHA2E.js → chunk-K7K4TFJM.js} +4 -4
  82. package/dist/cli/chunks/{chunk-5HB54RUS.js → chunk-KCXE2LZU.js} +2 -2
  83. package/dist/cli/chunks/{chunk-THRTUW4Z.js → chunk-KGPAWNNR.js} +1 -1
  84. package/dist/cli/chunks/{chunk-MYWQTCS4.js → chunk-KJ56OXH4.js} +1 -1
  85. package/dist/cli/chunks/{chunk-ZDHMZPSL.js → chunk-KUFC4DBX.js} +1 -1
  86. package/dist/cli/chunks/{chunk-CV2SBMBW.js → chunk-KWZEBHAP.js} +2 -2
  87. package/dist/cli/chunks/{chunk-X2VAOIUY.js → chunk-L6VNEEN6.js} +1 -1
  88. package/dist/cli/chunks/{chunk-S3OZ7XSY.js → chunk-LHPR7ROV.js} +1 -1
  89. package/dist/cli/chunks/{chunk-HO37VP4O.js → chunk-LKK3NIHC.js} +1 -1
  90. package/dist/cli/chunks/{chunk-XRJECWZE.js → chunk-LOFA3U4X.js} +1 -1
  91. package/dist/cli/chunks/{chunk-AWFIEGR3.js → chunk-LYKSIOOT.js} +2 -2
  92. package/dist/cli/chunks/chunk-M2PSXKTG.js +2 -0
  93. package/dist/cli/chunks/{chunk-CMACGG4Z.js → chunk-M3MKP5VN.js} +1 -1
  94. package/dist/cli/chunks/{chunk-UYYBPWU3.js → chunk-M4ARHDY4.js} +1 -1
  95. package/dist/cli/chunks/chunk-M5DBKHM4.js +2 -0
  96. package/dist/cli/chunks/{chunk-7IVQ6OVR.js → chunk-MDWJXSBA.js} +2 -2
  97. package/dist/cli/chunks/{chunk-IICTTDAA.js → chunk-MFWWPRBV.js} +2 -2
  98. package/dist/cli/chunks/{chunk-4BXGVM2C.js → chunk-MHWYQHGN.js} +1 -1
  99. package/dist/cli/chunks/{chunk-HJME6G5M.js → chunk-MIQBRVK2.js} +1 -1
  100. package/dist/cli/chunks/{chunk-FY3CUPNN.js → chunk-MKZQBBCU.js} +2 -2
  101. package/dist/cli/chunks/{chunk-MCOFJHSJ.js → chunk-MQ5WMWUK.js} +5 -5
  102. package/dist/cli/chunks/chunk-MQIAN57O.js +2 -0
  103. package/dist/cli/chunks/{chunk-6NZHEM4V.js → chunk-MU4P4P4E.js} +3 -3
  104. package/dist/cli/chunks/{chunk-ETN5563K.js → chunk-MWV4KPOB.js} +2 -2
  105. package/dist/cli/chunks/{chunk-XTCUN36Z.js → chunk-N244P4MM.js} +2 -2
  106. package/dist/cli/chunks/{chunk-DRWGK3YO.js → chunk-N3MM4Z33.js} +2 -2
  107. package/dist/cli/chunks/{chunk-QQNCSEZG.js → chunk-N4CXUGXE.js} +2 -2
  108. package/dist/cli/chunks/{chunk-PEK6NGVJ.js → chunk-ND6YSW5N.js} +1 -1
  109. package/dist/cli/chunks/{chunk-7V5UHLNY.js → chunk-NJYI7HX7.js} +3 -3
  110. package/dist/cli/chunks/{chunk-YACT5WFC.js → chunk-NSRDP7RD.js} +2 -2
  111. package/dist/cli/chunks/{chunk-L7VIX22Y.js → chunk-NZGLDOU4.js} +15 -15
  112. package/dist/cli/chunks/{chunk-MNUTRAUV.js → chunk-O3SG32PS.js} +1 -1
  113. package/dist/cli/chunks/{chunk-ZGNZJJFF.js → chunk-OIFJH7TF.js} +1 -1
  114. package/dist/cli/chunks/{chunk-LZCBSFAU.js → chunk-OKKTDHHF.js} +6 -6
  115. package/dist/cli/chunks/{chunk-3RHHKYUR.js → chunk-OO7KJ34Y.js} +2 -2
  116. package/dist/cli/chunks/{chunk-STEGWLH5.js → chunk-OV4BLIKJ.js} +2 -2
  117. package/dist/cli/chunks/{chunk-AOI67HA3.js → chunk-PISW5HUX.js} +1 -1
  118. package/dist/cli/chunks/{chunk-SJH3HYNC.js → chunk-PLD4IGDL.js} +2 -2
  119. package/dist/cli/chunks/{chunk-2OH3ALYB.js → chunk-PMWWWYUM.js} +1 -1
  120. package/dist/cli/chunks/{chunk-EA7ZSN3V.js → chunk-PWJZZCHJ.js} +1 -1
  121. package/dist/cli/chunks/{chunk-HA63NBFK.js → chunk-PZ4PRZXN.js} +37 -37
  122. package/dist/cli/chunks/chunk-PZCSJZVJ.js +2 -0
  123. package/dist/cli/chunks/{chunk-CTDLI2ON.js → chunk-Q53M4LI7.js} +1 -1
  124. package/dist/cli/chunks/{chunk-WSVUSIAZ.js → chunk-QPMAXDJ2.js} +2 -2
  125. package/dist/cli/chunks/{chunk-MCZHKXB4.js → chunk-RJKYPWFD.js} +2 -2
  126. package/dist/cli/chunks/{chunk-7QRMARM7.js → chunk-RUC3FCRK.js} +2 -2
  127. package/dist/cli/chunks/{chunk-5PL7WTCU.js → chunk-SC6UFGJ6.js} +2 -2
  128. package/dist/cli/chunks/{chunk-FO43SQXP.js → chunk-SJC7OKF3.js} +2 -2
  129. package/dist/cli/chunks/{chunk-R2O6OKT2.js → chunk-STMMZXS6.js} +1 -1
  130. package/dist/cli/chunks/{chunk-ORF2UKQH.js → chunk-SVILIQQQ.js} +1 -1
  131. package/dist/cli/chunks/{chunk-UVU7XLJY.js → chunk-SXMGNMFL.js} +5 -5
  132. package/dist/cli/chunks/{chunk-OIEQF7PG.js → chunk-SZKFT6CD.js} +2 -2
  133. package/dist/cli/chunks/{chunk-G5U6Q42D.js → chunk-TBJ566KV.js} +2 -2
  134. package/dist/cli/chunks/{chunk-SVYTN2GT.js → chunk-TCV5DASI.js} +2 -2
  135. package/dist/cli/chunks/chunk-TWAWEP4X.js +59 -0
  136. package/dist/cli/chunks/chunk-U27GVYXA.js +2 -0
  137. package/dist/cli/chunks/{chunk-FPAW77XV.js → chunk-UFKVKNAA.js} +1 -1
  138. package/dist/cli/chunks/{chunk-HJORBNXW.js → chunk-USB7GCIC.js} +1 -1
  139. package/dist/cli/chunks/{chunk-4GTDW2XL.js → chunk-UW3ZSFFB.js} +2 -2
  140. package/dist/cli/chunks/{chunk-OXCEUR5F.js → chunk-UWAUYDW4.js} +2 -2
  141. package/dist/cli/chunks/{chunk-4F3ZTXHP.js → chunk-UXJVR323.js} +2 -2
  142. package/dist/cli/chunks/{chunk-AIUSZC6K.js → chunk-V5G3SMAJ.js} +2 -2
  143. package/dist/cli/chunks/{chunk-DMQPO43S.js → chunk-VDKMBOUK.js} +1 -1
  144. package/dist/cli/chunks/{chunk-5WJ3FWL4.js → chunk-VJ2D6FST.js} +24 -24
  145. package/dist/cli/chunks/chunk-VJOPNK2L.js +2 -0
  146. package/dist/cli/chunks/{chunk-JF53LRBL.js → chunk-VRE2EBFI.js} +2 -2
  147. package/dist/cli/chunks/{chunk-WNR2KAUH.js → chunk-WI5WXYIS.js} +2 -2
  148. package/dist/cli/chunks/{chunk-OWQ6HEYI.js → chunk-WIYWDON4.js} +2 -2
  149. package/dist/cli/chunks/{chunk-KB5L5TTF.js → chunk-WYMQ6FZR.js} +5 -5
  150. package/dist/cli/chunks/{chunk-TJKDATEU.js → chunk-XBFEHVBO.js} +2 -2
  151. package/dist/cli/chunks/{chunk-7SJX4CFK.js → chunk-XDZXLEJK.js} +1 -1
  152. package/dist/cli/chunks/{chunk-QEPFXY6G.js → chunk-XJXCSCCP.js} +1 -1
  153. package/dist/cli/chunks/{chunk-OPFN5LFT.js → chunk-XVA56PXZ.js} +4 -4
  154. package/dist/cli/chunks/{chunk-PXTDEO65.js → chunk-Y2EDDV5U.js} +2 -2
  155. package/dist/cli/chunks/{chunk-VSUTI4G6.js → chunk-YSLE6NNG.js} +2 -2
  156. package/dist/cli/chunks/{chunk-XGBAHAGC.js → chunk-Z4BTPQLG.js} +4 -4
  157. package/dist/cli/chunks/{chunk-NZO4WUSO.js → chunk-ZM4QGYGK.js} +3 -3
  158. package/dist/cli/chunks/{ci-PYCRCL7G.js → ci-2BLMQNX3.js} +6 -6
  159. package/dist/cli/chunks/{ci-output-EKQQFE2D.js → ci-output-XK4PPSN7.js} +2 -2
  160. package/dist/cli/chunks/{circuit-breaker-RH3Q2MJO.js → circuit-breaker-W7X4NPFE.js} +2 -2
  161. package/dist/cli/chunks/{claude-flow-setup-DUDXB4VV.js → claude-flow-setup-GLBLSYNJ.js} +2 -2
  162. package/dist/cli/chunks/client-C6CJOCRN.js +2 -0
  163. package/dist/cli/chunks/{cline-installer-3Q4WIWUG.js → cline-installer-7WX7DBGI.js} +2 -2
  164. package/dist/cli/chunks/{code-E4Q6DGOO.js → code-SP3HAQWG.js} +20 -19
  165. package/dist/cli/chunks/{code-index-extractor-2PCISUOW.js → code-index-extractor-44HH36UG.js} +2 -2
  166. package/dist/cli/chunks/{codex-installer-YNNNOLJ6.js → codex-installer-LMXRWLPU.js} +2 -2
  167. package/dist/cli/chunks/{completions-2F7TUFBD.js → completions-GL5FTZAN.js} +2 -2
  168. package/dist/cli/chunks/{complexity-analyzer-2B6MHO7W.js → complexity-analyzer-CQMYGETL.js} +2 -2
  169. package/dist/cli/chunks/{continuedev-installer-ENOKRU5M.js → continuedev-installer-CYVYS5B7.js} +2 -2
  170. package/dist/cli/chunks/{copilot-installer-6YD2KM5F.js → copilot-installer-M7XVII2A.js} +2 -2
  171. package/dist/cli/chunks/{cost-tracker-FCH4QOEA.js → cost-tracker-S4ET4FH3.js} +2 -2
  172. package/dist/cli/chunks/{coverage-JTOXZE3T.js → coverage-DFVSSQ4A.js} +3 -3
  173. package/dist/cli/chunks/cross-domain-router-I3GEA5G6.js +2 -0
  174. package/dist/cli/chunks/{cursor-installer-QZFBUGLQ.js → cursor-installer-KWDSQPQC.js} +2 -2
  175. package/dist/cli/chunks/{daemon-K4QFB5FQ.js → daemon-2HD54QVO.js} +3 -3
  176. package/dist/cli/chunks/daemon-CRX46BBO.js +10 -0
  177. package/dist/cli/chunks/{dag-attention-scheduler-BXAAW33V.js → dag-attention-scheduler-SCP6WPZB.js} +2 -2
  178. package/dist/cli/chunks/{detect-UGSWIOAD.js → detect-XS2GDCEX.js} +2 -2
  179. package/dist/cli/chunks/{dist-node-FN3HX3OK.js → dist-node-U43MVQ3F.js} +2 -2
  180. package/dist/cli/chunks/{domain-handler-7PP7VYA7.js → domain-handler-HITMDULH.js} +2 -2
  181. package/dist/cli/chunks/{domain-transfer-XZM44W7I.js → domain-transfer-TJF7DNI4.js} +2 -2
  182. package/dist/cli/chunks/dream-JCQMG2RL.js +2 -0
  183. package/dist/cli/chunks/{embed-and-insert-pattern-JZVERJ5L.js → embed-and-insert-pattern-JKG33YZK.js} +2 -2
  184. package/dist/cli/chunks/{eval-466NFF2D.js → eval-NF5Y4W37.js} +3 -3
  185. package/dist/cli/chunks/{experience-capture-middleware-I7IQCC7V.js → experience-capture-middleware-VMMFYJ4D.js} +3 -3
  186. package/dist/cli/chunks/{fast-paths-34OICNZA.js → fast-paths-W2Q53IR2.js} +2 -2
  187. package/dist/cli/chunks/{feature-flags-6UBIVTAD.js → feature-flags-B4PBMQJO.js} +2 -2
  188. package/dist/cli/chunks/{feature-flags-X5WBBWSO.js → feature-flags-PVI7A4RE.js} +2 -2
  189. package/dist/cli/chunks/{file-discovery-NLMDBWXX.js → file-discovery-E4L3I33I.js} +2 -2
  190. package/dist/cli/chunks/{fleet-W7CYCHDI.js → fleet-LE5SHVLK.js} +3 -3
  191. package/dist/cli/chunks/{gnn-wrapper-K4VTAG5X.js → gnn-wrapper-MWWJBLOH.js} +2 -2
  192. package/dist/cli/chunks/{heartbeat-handler-ZGKF2Z6T.js → heartbeat-handler-XOUVNPQK.js} +4 -4
  193. package/dist/cli/chunks/heartbeat-scheduler-FBHE4ZWH.js +2 -0
  194. package/dist/cli/chunks/hnsw-adapter-EOOA4WXD.js +2 -0
  195. package/dist/cli/chunks/hnsw-index-TD3KRPND.js +2 -0
  196. package/dist/cli/chunks/{hnsw-legacy-bridge-ELDRLKK5.js → hnsw-legacy-bridge-W3T5ZDDP.js} +2 -2
  197. package/dist/cli/chunks/{better-sqlite3-5BT5FO64.js → hnswlib-node-3TZFES5I.js} +2 -2
  198. package/dist/cli/chunks/hooks-RUPQVIUM.js +250 -0
  199. package/dist/cli/chunks/hybrid-router-64O6PXZ2.js +2 -0
  200. package/dist/cli/chunks/{hypergraph-engine-UWFW3XP5.js → hypergraph-engine-VDFK3JYH.js} +2 -2
  201. package/dist/cli/chunks/{hypergraph-handler-PK2BI46K.js → hypergraph-handler-EUDGEF25.js} +3 -3
  202. package/dist/cli/chunks/impact-analyzer-ITQHXGTM.js +2 -0
  203. package/dist/cli/chunks/{init-handler-HNG6KJOU.js → init-handler-MZEAJOZK.js} +6 -6
  204. package/dist/cli/chunks/init-wizard-DZ4IKGQI.js +2 -0
  205. package/dist/cli/chunks/kernel-HSVY4ZYK.js +2 -0
  206. package/dist/cli/chunks/{kilocode-installer-25V7FEJ4.js → kilocode-installer-ECBYWT6M.js} +2 -2
  207. package/dist/cli/chunks/{kiro-installer-7RMTTCQB.js → kiro-installer-KYFCSYTG.js} +2 -2
  208. package/dist/cli/chunks/knowledge-graph-H32TXXX4.js +2 -0
  209. package/dist/cli/chunks/{learning-XQC2MG2R.js → learning-4RAFMDSB.js} +3 -3
  210. package/dist/cli/chunks/{llm-router-6KTTONH4.js → llm-router-JHBNLYP3.js} +12 -12
  211. package/dist/cli/chunks/llm-router-service-3FKESBUX.js +2 -0
  212. package/dist/cli/chunks/{load-BV64P3AL.js → load-4DVQML7P.js} +2 -2
  213. package/dist/cli/chunks/load-test-LKHURZGZ.js +2 -0
  214. package/dist/cli/chunks/{mcp-U5ZN77TA.js → mcp-LCWMU4GZ.js} +2 -2
  215. package/dist/cli/chunks/{memory-WB5BNBK7.js → memory-3DTJAURT.js} +5 -5
  216. package/dist/cli/chunks/memory-backend-XRJRZ6CK.js +2 -0
  217. package/dist/cli/chunks/memory-handlers-BL6E3XAK.js +2 -0
  218. package/dist/cli/chunks/{multi-model-executor-3X3W3UTY.js → multi-model-executor-AVR5SZOO.js} +2 -2
  219. package/dist/cli/chunks/{opencode-installer-TTTMG7ZZ.js → opencode-installer-DW2426QM.js} +3 -3
  220. package/dist/cli/chunks/{orchestrator-BLCGSHMZ.js → orchestrator-AHF4W5GS.js} +8 -8
  221. package/dist/cli/chunks/{pipeline-DZPGMRG7.js → pipeline-N6THEWYE.js} +2 -2
  222. package/dist/cli/chunks/{platform-EVMZAUNV.js → platform-MRCFQF7X.js} +2 -2
  223. package/dist/cli/chunks/{plugin-OR55K4HT.js → plugin-6YKUN5QM.js} +2 -2
  224. package/dist/cli/chunks/{prime-radiant-advanced-wasm-4ODV27HD.js → prime-radiant-advanced-wasm-2YPAHSVS.js} +2 -2
  225. package/dist/cli/chunks/protocol-executor-KABPB6PQ.js +2 -0
  226. package/dist/cli/chunks/{protocol-handler-ZOTI5PID.js → protocol-handler-Y2NMUKWQ.js} +2 -2
  227. package/dist/cli/chunks/{prove-DIMBYJ7V.js → prove-DZUNWBFD.js} +2 -2
  228. package/dist/cli/chunks/provider-manager-U7EBM3FA.js +2 -0
  229. package/dist/cli/chunks/qe-reasoning-bank-64O2OQIW.js +2 -0
  230. package/dist/cli/chunks/{quality-7MX4VL6M.js → quality-AIFQMGUV.js} +2 -2
  231. package/dist/cli/chunks/queen-coordinator-SV3COGIL.js +2 -0
  232. package/dist/cli/chunks/{real-embeddings-YPUHWRN2.js → real-embeddings-5XL4LOG2.js} +2 -2
  233. package/dist/cli/chunks/{roocode-installer-WG5AU4QM.js → roocode-installer-LV3WONT5.js} +2 -2
  234. package/dist/cli/chunks/router-QARRPMED.js +2 -0
  235. package/dist/cli/chunks/routing-feedback-KD2JFTPK.js +2 -0
  236. package/dist/cli/chunks/{routing-handler-LZB4MN2K.js → routing-handler-WSMUILGD.js} +2 -2
  237. package/dist/cli/chunks/{ruvector-commands-YE4ADBMC.js → ruvector-commands-BCEIDTW3.js} +2 -2
  238. package/dist/cli/chunks/{rvf-dual-writer-QS5ATW4C.js → rvf-dual-writer-LRSPC6H3.js} +2 -2
  239. package/dist/cli/chunks/{rvf-migration-adapter-YIGKSBD3.js → rvf-migration-adapter-QHNX6353.js} +2 -2
  240. package/dist/cli/chunks/{rvf-migration-coordinator-2NDCWP7F.js → rvf-migration-coordinator-SLNB3XPW.js} +2 -2
  241. package/dist/cli/chunks/rvf-native-adapter-4LLGF5AY.js +2 -0
  242. package/dist/cli/chunks/safe-db-RAX3H2P7.js +2 -0
  243. package/dist/cli/chunks/schedule-RQZGLLUY.js +2 -0
  244. package/dist/cli/chunks/scheduler-ACWTN4LN.js +2 -0
  245. package/dist/cli/chunks/{security-HT4SUT24.js → security-CYY6TECQ.js} +3 -3
  246. package/dist/cli/chunks/shared-rvf-adapter-U6JE4O6A.js +2 -0
  247. package/dist/cli/chunks/{shared-rvf-dual-writer-ZKFO7CBY.js → shared-rvf-dual-writer-PJBSNBRV.js} +2 -2
  248. package/dist/cli/chunks/sqlite-persistence-SWNBO257.js +2 -0
  249. package/dist/cli/chunks/{status-handler-AMEMKBI4.js → status-handler-W723LXX5.js} +2 -2
  250. package/dist/cli/chunks/{structural-health-RBADRLC3.js → structural-health-WZUPZBB5.js} +2 -2
  251. package/dist/cli/chunks/{sync-PCB23M4K.js → sync-UA22CKUS.js} +2 -2
  252. package/dist/cli/chunks/sync-ZLMF53TB.js +2 -0
  253. package/dist/cli/chunks/{task-handler-J26FSCH5.js → task-handler-SENTEEXZ.js} +2 -2
  254. package/dist/cli/chunks/{task-handlers-AQRLR6BL.js → task-handlers-FGVUZOCC.js} +3 -3
  255. package/dist/cli/chunks/{test-YXWSIOSB.js → test-Q37C3WI2.js} +4 -4
  256. package/dist/cli/chunks/{test-scheduling-XY532GI4.js → test-scheduling-E6SPIBTH.js} +4 -4
  257. package/dist/cli/chunks/token-bootstrap-HQFFMZUF.js +2 -0
  258. package/dist/cli/chunks/{token-usage-2MJVE4DT.js → token-usage-JHNWTZ7L.js} +3 -3
  259. package/dist/cli/chunks/{transformers-QSNTOD2Z.js → transformers-TEXDUVNI.js} +2 -2
  260. package/dist/cli/chunks/tree-sitter-wasm-parser-MWSS52H6.js +2 -0
  261. package/dist/cli/chunks/{types-RNKRSYMO.js → types-YQRKHYH3.js} +2 -2
  262. package/dist/cli/chunks/unified-memory-QG3FDRKR.js +2 -0
  263. package/dist/cli/chunks/unified-memory-hnsw-KOR4EOIG.js +2 -0
  264. package/dist/cli/chunks/unified-persistence-J6NIRYKM.js +2 -0
  265. package/dist/cli/chunks/{upgrade-EKJHIFWP.js → upgrade-JKMEDURI.js} +2 -2
  266. package/dist/cli/chunks/{validate-KS4T7LWC.js → validate-URO7G6OE.js} +4 -4
  267. package/dist/cli/chunks/validate-swarm-VZVJ56Z5.js +14 -0
  268. package/dist/cli/chunks/{vibium-FLUQO4IF.js → vibium-G5WZILL6.js} +2 -2
  269. package/dist/cli/chunks/visual-security-RAWV6YLN.js +2 -0
  270. package/dist/cli/chunks/{web-tree-sitter-UMC63DWD.js → web-tree-sitter-LECH5T6H.js} +2 -2
  271. package/dist/cli/chunks/{windsurf-installer-V3FQGJIQ.js → windsurf-installer-2NPLC2YW.js} +2 -2
  272. package/dist/cli/chunks/{witness-chain-GE74TLSO.js → witness-chain-X347C36A.js} +2 -2
  273. package/dist/cli/chunks/witness-chain-ZO7FIM35.js +2 -0
  274. package/dist/cli/chunks/{workflow-4YZ2RPWA.js → workflow-V4ALYZ73.js} +4 -4
  275. package/dist/cli/chunks/workflow-orchestrator-7SKITNIJ.js +2 -0
  276. package/dist/cli/chunks/wrappers-QXOPRPR4.js +2 -0
  277. package/dist/cli/commands/code.js +6 -0
  278. package/dist/cli/commands/hooks-handlers/task-hooks.js +50 -0
  279. package/dist/cli/commands/learning.js +5 -5
  280. package/dist/cli/commands/llm-router.js +1 -1
  281. package/dist/cli/commands/workflow.js +1 -0
  282. package/dist/coordination/consensus/providers/native-learning-provider.d.ts +1 -1
  283. package/dist/coordination/consensus/providers/ollama-provider.d.ts +1 -1
  284. package/dist/coordination/consensus/providers/openrouter-provider.d.ts +1 -1
  285. package/dist/coordination/handlers/code-intelligence-handlers.js +6 -0
  286. package/dist/coordination/mincut/neural-goap.js +24 -20
  287. package/dist/coordination/protocols/code-intelligence-index.js +31 -25
  288. package/dist/coordination/queen-coordinator.js +4 -0
  289. package/dist/coordination/queen-work-stealing.js +1 -2
  290. package/dist/domains/chaos-resilience/coordinator.js +19 -15
  291. package/dist/domains/chaos-resilience/services/chaos-engineer.js +5 -2
  292. package/dist/domains/chaos-resilience/services/load-tester.js +15 -11
  293. package/dist/domains/code-intelligence/interfaces.d.ts +5 -0
  294. package/dist/domains/code-intelligence/services/c4-model/index.js +12 -6
  295. package/dist/domains/code-intelligence/services/impact-analyzer.js +6 -2
  296. package/dist/domains/code-intelligence/services/knowledge-graph.d.ts +42 -0
  297. package/dist/domains/code-intelligence/services/knowledge-graph.js +278 -93
  298. package/dist/domains/code-intelligence/services/semantic-analyzer.js +8 -2
  299. package/dist/domains/contract-testing/coordinator.js +1 -1
  300. package/dist/domains/coverage-analysis/coordinator.js +4 -2
  301. package/dist/domains/learning-optimization/coordinator.js +1 -0
  302. package/dist/domains/quality-assessment/coherence/gate-controller.js +32 -26
  303. package/dist/domains/requirements-validation/coordinator.js +1 -0
  304. package/dist/domains/test-execution/services/e2e/wait-condition-handler.js +1 -1
  305. package/dist/domains/test-execution/services/retry-handler.js +18 -12
  306. package/dist/domains/test-generation/coordinator.js +1 -1
  307. package/dist/domains/test-generation/services/pattern-matcher.js +7 -5
  308. package/dist/domains/test-generation/services/test-generator.js +3 -2
  309. package/dist/domains/visual-accessibility/coordinator.js +24 -20
  310. package/dist/index.d.ts +2 -2
  311. package/dist/index.js +2 -2
  312. package/dist/init/phases/12-verification.js +3 -3
  313. package/dist/integrations/agentic-flow/model-router/router.js +1 -1
  314. package/dist/integrations/embeddings/base/EmbeddingGenerator.js +11 -7
  315. package/dist/integrations/ruvector/hypergraph-engine.js +2 -2
  316. package/dist/integrations/ruvector/shared-rvf-adapter.js +12 -1
  317. package/dist/integrations/ruvector/shared-rvf-dual-writer.js +6 -2
  318. package/dist/integrations/ruvector/spectral-math.js +2 -2
  319. package/dist/integrations/ruvector/spectral-sparsifier.js +1 -1
  320. package/dist/kernel/kernel.js +1 -1
  321. package/dist/kernel/project-root.d.ts +33 -0
  322. package/dist/kernel/project-root.js +86 -0
  323. package/dist/kernel/unified-memory-hnsw.js +1 -0
  324. package/dist/kernel/unified-memory.d.ts +2 -19
  325. package/dist/kernel/unified-memory.js +8 -64
  326. package/dist/learning/experience-capture.js +1 -1
  327. package/dist/learning/local-judge-client.d.ts +55 -0
  328. package/dist/learning/local-judge-client.js +127 -0
  329. package/dist/learning/nagual-client.d.ts +73 -0
  330. package/dist/learning/nagual-client.js +150 -0
  331. package/dist/learning/pattern-store.js +10 -3
  332. package/dist/learning/qe-reasoning-bank.js +9 -1
  333. package/dist/learning/qe-unified-memory.js +8 -6
  334. package/dist/mcp/bundle.js +405 -403
  335. package/dist/mcp/entry.js +44 -33
  336. package/dist/mcp/handlers/core-handlers.js +2 -2
  337. package/dist/mcp/handlers/cross-phase-handlers.js +5 -3
  338. package/dist/mcp/handlers/handler-factory.d.ts +5 -0
  339. package/dist/mcp/handlers/handler-factory.js +44 -4
  340. package/dist/mcp/http-server.js +1 -0
  341. package/dist/mcp/protocol-server.js +2 -2
  342. package/dist/mcp/tools/code-intelligence/analyze.js +1 -1
  343. package/dist/mcp/tools/learning-optimization/optimize.js +1 -1
  344. package/dist/mcp/tools/qx-analysis/heuristics-engine.js +195 -173
  345. package/dist/mcp/tools/visual-accessibility/index.js +1 -1
  346. package/dist/mcp/transport/stdio.d.ts +7 -0
  347. package/dist/mcp/transport/stdio.js +39 -2
  348. package/dist/mcp/transport/websocket/websocket-transport.js +1 -0
  349. package/dist/optimization/auto-tuner.js +1 -1
  350. package/dist/planning/goap-planner.js +1 -0
  351. package/dist/routing/agent-dependency-graph.js +4 -1
  352. package/dist/shared/llm/router/config-store.js +1 -1
  353. package/dist/shared/metrics/system-metrics.js +6 -4
  354. package/dist/shared/parsers/tree-sitter-wasm-parser.d.ts +12 -0
  355. package/dist/shared/parsers/tree-sitter-wasm-parser.js +35 -0
  356. package/dist/shared/parsers/treesitter-ts-extractor.d.ts +39 -0
  357. package/dist/shared/parsers/treesitter-ts-extractor.js +196 -0
  358. package/dist/shared/utils/safe-expression-evaluator.js +8 -5
  359. package/dist/sync/cloud/postgres-writer.js +2 -0
  360. package/dist/sync/readers/json-reader.js +1 -1
  361. package/dist/test-scheduling/git-aware/test-selector.js +1 -1
  362. package/dist/workers/daemon.js +2 -0
  363. package/dist/workers/quality-daemon/git-watcher.js +2 -0
  364. package/dist/workers/quality-daemon/index.js +28 -24
  365. package/dist/workers/worker-manager.js +4 -0
  366. package/package.json +5 -4
  367. package/dist/cli/chunks/adapter-CR6J5C76.js +0 -2
  368. package/dist/cli/chunks/aqe-learning-engine-2MNTHMB6.js +0 -2
  369. package/dist/cli/chunks/audit-ALRYPHGP.js +0 -3
  370. package/dist/cli/chunks/base-AOQNGMTL.js +0 -2
  371. package/dist/cli/chunks/browser-workflow-UJ4A2ZXO.js +0 -2
  372. package/dist/cli/chunks/chunk-7DKYCVJI.js +0 -2
  373. package/dist/cli/chunks/chunk-FO73PZVU.js +0 -2
  374. package/dist/cli/chunks/chunk-I677W5BT.js +0 -59
  375. package/dist/cli/chunks/chunk-IAZEDWRX.js +0 -2
  376. package/dist/cli/chunks/chunk-RNREAOY4.js +0 -2
  377. package/dist/cli/chunks/chunk-UWXH2UQK.js +0 -2
  378. package/dist/cli/chunks/chunk-ZQUXNG5X.js +0 -2
  379. package/dist/cli/chunks/client-RDPWGOSA.js +0 -2
  380. package/dist/cli/chunks/cross-domain-router-4K5ZVZEZ.js +0 -2
  381. package/dist/cli/chunks/daemon-M422U3ZA.js +0 -10
  382. package/dist/cli/chunks/dream-RPNWM7VS.js +0 -2
  383. package/dist/cli/chunks/heartbeat-scheduler-JBCXMMZO.js +0 -2
  384. package/dist/cli/chunks/hnsw-adapter-3SC2HZIG.js +0 -2
  385. package/dist/cli/chunks/hnsw-index-FQORAR6K.js +0 -2
  386. package/dist/cli/chunks/hooks-T4CBINAV.js +0 -248
  387. package/dist/cli/chunks/hybrid-router-6CBFDXPR.js +0 -2
  388. package/dist/cli/chunks/impact-analyzer-SOEFVZWG.js +0 -2
  389. package/dist/cli/chunks/init-wizard-3E4IU5M4.js +0 -2
  390. package/dist/cli/chunks/kernel-GFZP4G5J.js +0 -2
  391. package/dist/cli/chunks/knowledge-graph-BKRKBU26.js +0 -2
  392. package/dist/cli/chunks/llm-router-service-KE4IGZPP.js +0 -2
  393. package/dist/cli/chunks/load-test-VSYJV2AO.js +0 -2
  394. package/dist/cli/chunks/memory-backend-B72RGHRF.js +0 -2
  395. package/dist/cli/chunks/memory-handlers-NWCH7AUO.js +0 -2
  396. package/dist/cli/chunks/protocol-executor-V3F37FPO.js +0 -2
  397. package/dist/cli/chunks/provider-manager-2PN72TT6.js +0 -2
  398. package/dist/cli/chunks/qe-reasoning-bank-P665QNIR.js +0 -2
  399. package/dist/cli/chunks/queen-coordinator-XD4F7BGB.js +0 -2
  400. package/dist/cli/chunks/router-4SSNWDJC.js +0 -2
  401. package/dist/cli/chunks/routing-feedback-O2JSIBW6.js +0 -2
  402. package/dist/cli/chunks/rvf-native-adapter-WIUHYXRB.js +0 -2
  403. package/dist/cli/chunks/safe-db-WL5Y7ZNS.js +0 -2
  404. package/dist/cli/chunks/schedule-U7QDGU5A.js +0 -2
  405. package/dist/cli/chunks/scheduler-LXKGQYXA.js +0 -2
  406. package/dist/cli/chunks/shared-rvf-adapter-4IZOJL33.js +0 -2
  407. package/dist/cli/chunks/sqlite-persistence-4KFO3SEB.js +0 -2
  408. package/dist/cli/chunks/sync-ARDDLQBS.js +0 -2
  409. package/dist/cli/chunks/token-bootstrap-KL2QIQ36.js +0 -2
  410. package/dist/cli/chunks/tree-sitter-wasm-parser-QJOKHOIW.js +0 -2
  411. package/dist/cli/chunks/unified-memory-7AS4LIEF.js +0 -2
  412. package/dist/cli/chunks/unified-memory-hnsw-GREESNJX.js +0 -2
  413. package/dist/cli/chunks/unified-persistence-BPJOMZOA.js +0 -2
  414. package/dist/cli/chunks/validate-swarm-SKKWRP2H.js +0 -14
  415. package/dist/cli/chunks/visual-security-BW662FHQ.js +0 -2
  416. package/dist/cli/chunks/witness-chain-OXVDLNVT.js +0 -2
  417. package/dist/cli/chunks/workflow-orchestrator-KKNR46XV.js +0 -2
  418. 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
- const hasNav = context.domMetrics?.semanticStructure?.hasNav;
55
- const focusable = context.accessibility?.focusableElementsCount || 0;
56
- if (hasNav && focusable > 10) {
57
- score = 82;
58
- findings.push('Intuitive navigation and interaction design');
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
- score = 70;
67
- const hasSemanticStructure = context.domMetrics?.semanticStructure;
68
- const structureScore = [
69
- hasSemanticStructure?.hasHeader,
70
- hasSemanticStructure?.hasMain,
71
- hasSemanticStructure?.hasNav,
72
- hasSemanticStructure?.hasFooter,
73
- ].filter(Boolean).length;
74
- score = 50 + structureScore * 10;
75
- if (structureScore >= 3) {
76
- findings.push('Strong visual hierarchy with semantic HTML elements');
77
- }
78
- else if (structureScore >= 2) {
79
- findings.push('Moderate visual hierarchy - some semantic elements present');
80
- recommendations.push('Add more semantic HTML5 elements for clarity');
81
- }
82
- else {
83
- issues.push({ description: 'Weak visual hierarchy - missing semantic structure', severity: 'high' });
84
- recommendations.push('Implement semantic HTML5: header, nav, main, footer');
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
- score = 85; // High score means few counter-intuitive elements (good)
93
- const confusingNav = !context.domMetrics?.semanticStructure?.hasNav && (context.domMetrics?.interactiveElements || 0) > 10;
94
- const poorStructure = !context.domMetrics?.semanticStructure?.hasHeader && !context.domMetrics?.semanticStructure?.hasFooter;
95
- if (confusingNav) {
96
- score = 45;
97
- issues.push({ description: 'Navigation structure may be counter-intuitive', severity: 'high' });
98
- recommendations.push('Add semantic navigation elements');
99
- }
100
- if (poorStructure) {
101
- score -= 15;
102
- issues.push({ description: 'Page structure lacks expected header/footer', severity: 'medium' });
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
- const altCoverage = context.accessibility?.altTextsCoverage || 0;
111
- const loadTime = context.performance?.loadTime || 0;
112
- const ariaLabels = context.accessibility?.ariaLabelsCount || 0;
113
- const focusableElements = context.accessibility?.focusableElementsCount || 0;
114
- score = 60;
115
- // Accessibility impact on feelings (35% weight)
116
- if (altCoverage >= 90) {
117
- score += 20;
118
- findings.push('Excellent accessibility (90%+ alt coverage) creates inclusive, positive experience');
119
- }
120
- else if (altCoverage >= 70) {
121
- score += 12;
122
- findings.push('Good accessibility creates generally positive user feelings');
123
- }
124
- else if (altCoverage < 50) {
125
- score -= 15;
126
- issues.push({
127
- description: 'Poor accessibility (<50% alt coverage) frustrates users with disabilities',
128
- severity: 'high',
129
- });
130
- recommendations.push('Improve alt text coverage to at least 80% for better accessibility');
131
- }
132
- // ARIA support impact
133
- if (ariaLabels > 5) {
134
- score += 8;
135
- findings.push('Strong ARIA labeling enhances screen reader experience');
136
- }
137
- // Performance impact on feelings (35% weight)
138
- if (loadTime < 1500) {
139
- score += 15;
140
- findings.push('Very fast load time (<1.5s) delights users');
141
- }
142
- else if (loadTime < 2500) {
143
- score += 8;
144
- findings.push('Fast load time enhances user satisfaction');
145
- }
146
- else if (loadTime > 4000) {
147
- score -= 20;
148
- issues.push({ description: 'Very slow load time (>4s) causes significant frustration', severity: 'critical' });
149
- recommendations.push('Optimize page load time - target under 2.5 seconds');
150
- }
151
- else if (loadTime > 3000) {
152
- score -= 12;
153
- issues.push({ description: 'Slow load time causes user frustration', severity: 'high' });
154
- }
155
- // Error visibility impact
156
- if (context.errorIndicators?.hasErrorMessages) {
157
- score -= 12;
158
- issues.push({ description: 'Visible errors reduce user confidence and satisfaction', severity: 'high' });
159
- recommendations.push('Review and fix visible error messages');
160
- }
161
- // Interaction capability
162
- if (focusableElements > 20) {
163
- score += 5;
164
- findings.push('Rich interactive elements provide user control and engagement');
165
- }
166
- else if (focusableElements < 5) {
167
- score -= 8;
168
- issues.push({ description: 'Limited interactivity may feel restrictive', severity: 'medium' });
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
- const interactiveElements = context.domMetrics?.interactiveElements || 0;
174
- const forms = context.domMetrics?.forms || 0;
175
- if (interactiveElements > 20) {
176
- score = 75;
177
- findings.push(`${interactiveElements} interactive elements provide user control`);
178
- }
179
- if (forms > 0) {
180
- findings.push(`${forms} forms impact user input flows`);
181
- score = Math.min(100, score + 10);
182
- }
183
- if (interactiveElements === 0) {
184
- score = 30;
185
- issues.push({ description: 'Limited user interaction capability', severity: 'high' });
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
- score = userNeeds.alignmentScore;
236
- findings.push(`${userNeeds.needs.length} user needs identified`);
237
- const mustHave = userNeeds.needs.filter((n) => n.priority === 'must-have').length;
238
- findings.push(`${mustHave} must-have features`);
239
- if (userNeeds.challenges.length > 0) {
240
- issues.push({ description: `${userNeeds.challenges.length} user need challenges found`, severity: 'medium' });
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
- const addressedNeeds = userNeeds.needs.filter((n) => n.addressed).length;
256
- score = userNeeds.needs.length > 0 ? (addressedNeeds / userNeeds.needs.length) * 100 : 50;
257
- findings.push(`${addressedNeeds}/${userNeeds.needs.length} needs validated and addressed`);
258
- break;
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
- const balanceScore = 100 - Math.abs(userNeeds.alignmentScore - businessNeeds.alignmentScore);
268
- score = balanceScore;
269
- if (balanceScore > 80) {
270
- findings.push('Good balance between user and business needs');
271
- }
272
- else {
273
- issues.push({ description: 'Imbalance between user and business priorities', severity: 'medium' });
274
- recommendations.push('Align user and business objectives more closely');
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
- score = 75;
301
- const hasData = (context.domMetrics?.forms || 0) > 0 || (context.domMetrics?.interactiveElements || 0) > 20;
302
- if (hasData) {
303
- score = 82;
304
- findings.push('Sufficient data points for informed decision-making');
305
- }
306
- else {
307
- score = 60;
308
- issues.push({ description: 'Limited data for comprehensive analysis', severity: 'medium' });
309
- recommendations.push('Collect more user interaction data');
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
- score = 72;
328
- const hasModernElements = context.accessibility && (context.accessibility.ariaLabelsCount || 0) > 0;
329
- if (hasModernElements) {
330
- score = 80;
331
- findings.push('Modern accessibility patterns show domain inspiration');
332
- }
333
- else {
334
- recommendations.push('Research domain-specific design patterns and best practices');
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
- score = 65;
339
- const hasAdvancedFeatures = (context.accessibility?.landmarkRoles || 0) > 3;
340
- if (hasAdvancedFeatures) {
341
- score = 75;
342
- findings.push('Advanced accessibility features show innovative thinking');
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
- let keyboardViolations = [];
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
- // If we were running and didn't explicitly stop, this is an unexpected close
103
- if (wasRunning && this.errorHandler) {
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
- let metricValues = {};
306
+ const metricValues = {};
307
307
  if (hasApplicators) {
308
308
  // REAL EVALUATION: Apply configuration to actual systems
309
309
  try {
@@ -60,6 +60,7 @@ class MinHeap {
60
60
  }
61
61
  sinkDown(i) {
62
62
  const n = this.data.length;
63
+ // eslint-disable-next-line no-constant-condition -- heap sift-down; loop breaks internally
63
64
  while (true) {
64
65
  let smallest = i;
65
66
  const left = 2 * i + 1;
@@ -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' ? flushAgent() : flushMcp();
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
- let strippedProviders = [];
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
- const history = this.metricHistory.get(metricName);
131
- return history && history.length > 0
132
- ? history[history.length - 1].value
133
- : 0;
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