agentic-qe 3.9.8 → 3.9.10

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 (394) hide show
  1. package/.claude/agents/_shared/executor-preamble.md +86 -0
  2. package/.claude/agents/v3/qe-coverage-specialist.md +20 -1
  3. package/.claude/agents/v3/qe-fleet-commander.md +20 -1
  4. package/.claude/agents/v3/qe-pentest-validator.md +20 -1
  5. package/.claude/agents/v3/qe-queen-coordinator.md +20 -1
  6. package/.claude/agents/v3/qe-risk-assessor.md +20 -1
  7. package/.claude/agents/v3/qe-root-cause-analyzer.md +19 -0
  8. package/.claude/agents/v3/qe-security-auditor.md +20 -1
  9. package/.claude/agents/v3/qe-test-architect.md +33 -1
  10. package/.claude/helpers/advisor-call.cjs +283 -0
  11. package/.claude/skills/README.md +4 -3
  12. package/.claude/skills/a11y-ally/SKILL.md +40 -18
  13. package/.claude/skills/accessibility-testing/SKILL.md +4 -0
  14. package/.claude/skills/compatibility-testing/SKILL.md +23 -0
  15. package/.claude/skills/e2e-flow-verifier/SKILL.md +87 -52
  16. package/.claude/skills/enterprise-integration-testing/SKILL.md +4 -0
  17. package/.claude/skills/localization-testing/SKILL.md +14 -0
  18. package/.claude/skills/observability-testing-patterns/SKILL.md +16 -0
  19. package/.claude/skills/qe-browser/SKILL.md +409 -0
  20. package/.claude/skills/qe-browser/evals/qe-browser.yaml +291 -0
  21. package/.claude/skills/qe-browser/fixtures/package.json +7 -0
  22. package/.claude/skills/qe-browser/fixtures/serve-skills.js +130 -0
  23. package/.claude/skills/qe-browser/references/assertion-kinds.md +132 -0
  24. package/.claude/skills/qe-browser/references/migration-from-playwright.md +195 -0
  25. package/.claude/skills/qe-browser/schemas/output.json +188 -0
  26. package/.claude/skills/qe-browser/scripts/assert.js +378 -0
  27. package/.claude/skills/qe-browser/scripts/batch.js +292 -0
  28. package/.claude/skills/qe-browser/scripts/check-injection.js +267 -0
  29. package/.claude/skills/qe-browser/scripts/intent-score.js +325 -0
  30. package/.claude/skills/qe-browser/scripts/lib/vibium.js +330 -0
  31. package/.claude/skills/qe-browser/scripts/package.json +7 -0
  32. package/.claude/skills/qe-browser/scripts/smoke-test.sh +212 -0
  33. package/.claude/skills/qe-browser/scripts/validate-config.json +46 -0
  34. package/.claude/skills/qe-browser/scripts/visual-diff.js +276 -0
  35. package/.claude/skills/qe-visual-accessibility/SKILL.md +31 -1
  36. package/.claude/skills/security-visual-testing/SKILL.md +18 -0
  37. package/.claude/skills/skills-manifest.json +20 -13
  38. package/.claude/skills/testability-scoring/SKILL.md +23 -0
  39. package/.claude/skills/trust-tier-manifest.json +14 -3
  40. package/.claude/skills/visual-testing-advanced/SKILL.md +41 -1
  41. package/CHANGELOG.md +75 -0
  42. package/README.md +5 -3
  43. package/assets/agents/v3/helpers/advisor-call.cjs +283 -0
  44. package/assets/agents/v3/qe-coverage-specialist.md +20 -1
  45. package/assets/agents/v3/qe-fleet-commander.md +20 -1
  46. package/assets/agents/v3/qe-pentest-validator.md +20 -1
  47. package/assets/agents/v3/qe-queen-coordinator.md +20 -1
  48. package/assets/agents/v3/qe-risk-assessor.md +20 -1
  49. package/assets/agents/v3/qe-root-cause-analyzer.md +19 -0
  50. package/assets/agents/v3/qe-security-auditor.md +20 -1
  51. package/assets/agents/v3/qe-test-architect.md +33 -1
  52. package/assets/skills/README.md +4 -3
  53. package/assets/skills/a11y-ally/SKILL.md +40 -18
  54. package/assets/skills/accessibility-testing/SKILL.md +4 -0
  55. package/assets/skills/compatibility-testing/SKILL.md +23 -0
  56. package/assets/skills/e2e-flow-verifier/SKILL.md +87 -52
  57. package/assets/skills/enterprise-integration-testing/SKILL.md +4 -0
  58. package/assets/skills/localization-testing/SKILL.md +14 -0
  59. package/assets/skills/observability-testing-patterns/SKILL.md +16 -0
  60. package/assets/skills/qe-browser/SKILL.md +409 -0
  61. package/assets/skills/qe-browser/evals/qe-browser.yaml +291 -0
  62. package/assets/skills/qe-browser/fixtures/package.json +7 -0
  63. package/assets/skills/qe-browser/fixtures/serve-skills.js +130 -0
  64. package/assets/skills/qe-browser/references/assertion-kinds.md +132 -0
  65. package/assets/skills/qe-browser/references/migration-from-playwright.md +195 -0
  66. package/assets/skills/qe-browser/schemas/output.json +188 -0
  67. package/assets/skills/qe-browser/scripts/assert.js +378 -0
  68. package/assets/skills/qe-browser/scripts/batch.js +292 -0
  69. package/assets/skills/qe-browser/scripts/check-injection.js +267 -0
  70. package/assets/skills/qe-browser/scripts/intent-score.js +325 -0
  71. package/assets/skills/qe-browser/scripts/lib/vibium.js +330 -0
  72. package/assets/skills/qe-browser/scripts/package.json +7 -0
  73. package/assets/skills/qe-browser/scripts/smoke-test.sh +212 -0
  74. package/assets/skills/qe-browser/scripts/validate-config.json +46 -0
  75. package/assets/skills/qe-browser/scripts/visual-diff.js +276 -0
  76. package/assets/skills/qe-visual-accessibility/SKILL.md +31 -1
  77. package/assets/skills/security-visual-testing/SKILL.md +18 -0
  78. package/assets/skills/skills-manifest.json +211 -15
  79. package/assets/skills/testability-scoring/SKILL.md +23 -0
  80. package/assets/skills/trust-tier-manifest.json +14 -3
  81. package/assets/skills/visual-testing-advanced/SKILL.md +41 -1
  82. package/dist/cli/bundle.js +5 -5
  83. package/dist/cli/chunks/adapter-IKCDCMSI.js +2 -0
  84. package/dist/cli/chunks/{agent-booster-wasm-LAE4NTVX.js → agent-booster-wasm-HM4XSABF.js} +2 -2
  85. package/dist/cli/chunks/{agent-handler-FVXHR6XN.js → agent-handler-UDBDLLO4.js} +2 -2
  86. package/dist/cli/chunks/{agent-memory-branch-Q7LLBA7C.js → agent-memory-branch-VIXQ3DAR.js} +2 -2
  87. package/dist/cli/chunks/aqe-learning-engine-W4WW7SQW.js +2 -0
  88. package/dist/cli/chunks/{audit-YRLKHJLX.js → audit-FWTGLQHH.js} +2 -2
  89. package/dist/cli/chunks/base-UQKFTHOY.js +2 -0
  90. package/dist/cli/chunks/{better-sqlite3-XFGOGICB.js → better-sqlite3-TYI3CCWU.js} +2 -2
  91. package/dist/cli/chunks/{brain-handler-KIUSNVSS.js → brain-handler-45ZGBLSB.js} +3 -3
  92. package/dist/cli/chunks/{branch-enumerator-VKZ4L3FH.js → branch-enumerator-ZBXELCQA.js} +2 -2
  93. package/dist/cli/chunks/{browser-GZVIYFIB.js → browser-2KM5IKEX.js} +2 -2
  94. package/dist/cli/chunks/browser-workflow-NMOEM3HW.js +2 -0
  95. package/dist/cli/chunks/{chunk-7PHNHFZI.js → chunk-226DSROQ.js} +3 -3
  96. package/dist/cli/chunks/{chunk-MGX2BZWE.js → chunk-27B575K6.js} +2 -2
  97. package/dist/cli/chunks/{chunk-P7APAQD6.js → chunk-2IJFZW3N.js} +12 -12
  98. package/dist/cli/chunks/{chunk-TWDWDKOI.js → chunk-32OB4ZYQ.js} +1 -1
  99. package/dist/cli/chunks/{chunk-E4D36LGH.js → chunk-335CCAOL.js} +1 -1
  100. package/dist/cli/chunks/{chunk-Q5PARJC6.js → chunk-34WI4QNF.js} +2 -2
  101. package/dist/cli/chunks/chunk-3A4BL62O.js +2 -0
  102. package/dist/cli/chunks/{chunk-6ZMM7MXA.js → chunk-3AG647MY.js} +2 -2
  103. package/dist/cli/chunks/{chunk-LPRHYSXN.js → chunk-3HIDCXW3.js} +1 -1
  104. package/dist/cli/chunks/{chunk-HN7HYUW6.js → chunk-4EKWEDHA.js} +9 -9
  105. package/dist/cli/chunks/{chunk-JCROLOP6.js → chunk-4FU6YNDP.js} +2 -2
  106. package/dist/cli/chunks/{chunk-A4DJMFDM.js → chunk-4LOJJ4VX.js} +1 -1
  107. package/dist/cli/chunks/{chunk-I25KIHQE.js → chunk-4VOGUZW5.js} +1 -1
  108. package/dist/cli/chunks/{chunk-KJZU3E5G.js → chunk-4ZR5G4MZ.js} +2 -2
  109. package/dist/cli/chunks/{chunk-W45FANJG.js → chunk-52ZHPZVX.js} +2 -2
  110. package/dist/cli/chunks/{chunk-LOANEFGZ.js → chunk-53G3OCGS.js} +2 -2
  111. package/dist/cli/chunks/{chunk-TZMKO6PC.js → chunk-54TZA65H.js} +2 -2
  112. package/dist/cli/chunks/{chunk-GHJRX7PV.js → chunk-5QKTLOGO.js} +1 -1
  113. package/dist/cli/chunks/{chunk-76UL224Z.js → chunk-5TATJQ3Z.js} +2 -2
  114. package/dist/cli/chunks/{chunk-OGFGNAKQ.js → chunk-5V6DRRLO.js} +2 -2
  115. package/dist/cli/chunks/{chunk-BXMIQRF3.js → chunk-6X7WKNDF.js} +2 -2
  116. package/dist/cli/chunks/chunk-7FWZHYYE.js +2 -0
  117. package/dist/cli/chunks/{chunk-R2LWLZ3Y.js → chunk-A2ULGMMG.js} +1 -1
  118. package/dist/cli/chunks/{chunk-AVKDT3UL.js → chunk-A53XKLEA.js} +8 -8
  119. package/dist/cli/chunks/{chunk-GOPE5OB5.js → chunk-A5OIXFFL.js} +1 -1
  120. package/dist/cli/chunks/{chunk-I7OH6RAC.js → chunk-ACNL4NFI.js} +2 -2
  121. package/dist/cli/chunks/{chunk-PBPOSPTY.js → chunk-AE6Y5CNJ.js} +2 -2
  122. package/dist/cli/chunks/{chunk-TN72MXLI.js → chunk-AO4HDN62.js} +2 -2
  123. package/dist/cli/chunks/{chunk-IHJXFWUL.js → chunk-AOA454FC.js} +2 -2
  124. package/dist/cli/chunks/{chunk-N2L7RWNX.js → chunk-B2QVWL5R.js} +2 -2
  125. package/dist/cli/chunks/{chunk-7CFEGUEH.js → chunk-B3L3CT4X.js} +2 -2
  126. package/dist/cli/chunks/{chunk-XVXSQOQG.js → chunk-B4AFVIOA.js} +2 -2
  127. package/dist/cli/chunks/{chunk-S72TSJS4.js → chunk-BCSCJBYQ.js} +2 -2
  128. package/dist/cli/chunks/{chunk-UAI5NPPQ.js → chunk-BIV6HWMT.js} +2 -2
  129. package/dist/cli/chunks/{chunk-XPL3BXLM.js → chunk-BNNH3KZP.js} +1 -1
  130. package/dist/cli/chunks/{chunk-JK6JBNGL.js → chunk-C234RGWZ.js} +2 -2
  131. package/dist/cli/chunks/{chunk-4EAAHMVM.js → chunk-C55GEYDA.js} +2 -2
  132. package/dist/cli/chunks/{chunk-Y67OXEUM.js → chunk-CEBZHZ4O.js} +1 -1
  133. package/dist/cli/chunks/{chunk-A2QLTNN5.js → chunk-CFQHIWWH.js} +1 -1
  134. package/dist/cli/chunks/{chunk-KMGAJRQ6.js → chunk-CJO2V2FB.js} +1 -1
  135. package/dist/cli/chunks/{chunk-5TGK7VTS.js → chunk-CQNXIYQW.js} +2 -2
  136. package/dist/cli/chunks/{chunk-IP2Z4Z6X.js → chunk-D2A4TGZY.js} +1 -1
  137. package/dist/cli/chunks/{chunk-VVNR4R22.js → chunk-DG2OYKUQ.js} +2 -2
  138. package/dist/cli/chunks/{chunk-ELZ5SKEN.js → chunk-DPYCHODC.js} +2 -2
  139. package/dist/cli/chunks/{chunk-WUCWFDBE.js → chunk-E4YKNKQL.js} +2 -2
  140. package/dist/cli/chunks/{chunk-ZCKNGICX.js → chunk-EEWTTYRC.js} +1 -1
  141. package/dist/cli/chunks/{chunk-IFIYNCT2.js → chunk-EGIYLRW5.js} +2 -2
  142. package/dist/cli/chunks/{chunk-DLKRK2GU.js → chunk-EHGTNSJ2.js} +1 -1
  143. package/dist/cli/chunks/{chunk-IIYXSWJN.js → chunk-EJNASXOY.js} +2 -2
  144. package/dist/cli/chunks/{chunk-ZJ4PMOIZ.js → chunk-F7HRGQRS.js} +2 -2
  145. package/dist/cli/chunks/{chunk-2QI5RYVR.js → chunk-FF7TSDO4.js} +2 -2
  146. package/dist/cli/chunks/{chunk-DDDEGBBJ.js → chunk-FIQNVPYY.js} +2 -2
  147. package/dist/cli/chunks/{chunk-F5VLJFVU.js → chunk-FJOBKT7N.js} +1 -1
  148. package/dist/cli/chunks/{chunk-JNJYWWBG.js → chunk-FYI52MFF.js} +6 -6
  149. package/dist/cli/chunks/{chunk-UOSKMAAY.js → chunk-GCNTU3QJ.js} +1 -1
  150. package/dist/cli/chunks/{chunk-4GMV6Z7Y.js → chunk-H56YBNXW.js} +2 -2
  151. package/dist/cli/chunks/{chunk-HTL2WT64.js → chunk-HJMLJNCB.js} +1 -1
  152. package/dist/cli/chunks/chunk-I3IRIJOT.js +2 -0
  153. package/dist/cli/chunks/chunk-IEQ2VYMO.js +3 -0
  154. package/dist/cli/chunks/{chunk-PG7CZ6Q4.js → chunk-IGRKFVFD.js} +2 -2
  155. package/dist/cli/chunks/{chunk-SQ6XZGR4.js → chunk-IJPE6OGD.js} +10 -10
  156. package/dist/cli/chunks/{chunk-AYKMWP7F.js → chunk-IJUL2UMO.js} +1 -1
  157. package/dist/cli/chunks/{chunk-JVH7753D.js → chunk-ISZJAZ2D.js} +1 -1
  158. package/dist/cli/chunks/{chunk-NCXVOOA7.js → chunk-ITDYTODU.js} +2 -2
  159. package/dist/cli/chunks/{chunk-RGCCSAHI.js → chunk-JHUEBBSX.js} +2 -2
  160. package/dist/cli/chunks/{chunk-TDPHLQ2M.js → chunk-JN3CC2TX.js} +2 -2
  161. package/dist/cli/chunks/{chunk-TSDTRJOG.js → chunk-JOEEGNNX.js} +2 -2
  162. package/dist/cli/chunks/{chunk-QVGSD25D.js → chunk-JQX2DHQT.js} +1 -1
  163. package/dist/cli/chunks/{chunk-VHZ653XS.js → chunk-JRG4AFUR.js} +3 -3
  164. package/dist/cli/chunks/{chunk-SP3ZBJ63.js → chunk-JRMNQWRL.js} +3 -3
  165. package/dist/cli/chunks/{chunk-EKDFIYV5.js → chunk-JXDJMVIG.js} +2 -2
  166. package/dist/cli/chunks/{chunk-3WOQMFTD.js → chunk-JYPW22JV.js} +2 -2
  167. package/dist/cli/chunks/{chunk-WJDOOT2M.js → chunk-KK3KVYE7.js} +2 -2
  168. package/dist/cli/chunks/{chunk-4KX6TMKB.js → chunk-KSRAA6ZD.js} +3 -3
  169. package/dist/cli/chunks/chunk-KUCU5ML6.js +6 -0
  170. package/dist/cli/chunks/{chunk-MVW7AACO.js → chunk-KXXLMLMJ.js} +2 -2
  171. package/dist/cli/chunks/{chunk-HE2NWYHK.js → chunk-LKCFJC4Q.js} +1 -1
  172. package/dist/cli/chunks/{chunk-237NNDKL.js → chunk-LODXDV4G.js} +2 -2
  173. package/dist/cli/chunks/{chunk-W4IRWGGR.js → chunk-M4CYXAVP.js} +4 -4
  174. package/dist/cli/chunks/{chunk-R4VOIXJQ.js → chunk-MOLMS6MA.js} +2 -2
  175. package/dist/cli/chunks/{chunk-SDMGF3KD.js → chunk-NBTM2J4B.js} +2 -2
  176. package/dist/cli/chunks/{chunk-X66IXWSO.js → chunk-NIFVFUCU.js} +2 -2
  177. package/dist/cli/chunks/{chunk-266SKKFM.js → chunk-OOHKW3UE.js} +2 -2
  178. package/dist/cli/chunks/{chunk-WXEDVKJS.js → chunk-ORA6NIXN.js} +2 -2
  179. package/dist/cli/chunks/{chunk-ECYDMBDA.js → chunk-OSD55UO7.js} +2 -2
  180. package/dist/cli/chunks/{chunk-SSURIMCL.js → chunk-OWQRMH3G.js} +2 -2
  181. package/dist/cli/chunks/chunk-QFUINEBN.js +2 -0
  182. package/dist/cli/chunks/{chunk-HYACMUUR.js → chunk-RE2IBX7Z.js} +2 -2
  183. package/dist/cli/chunks/{chunk-2V5VKOJ2.js → chunk-RMQQ5UHM.js} +2 -2
  184. package/dist/cli/chunks/{chunk-U62WL3WZ.js → chunk-ROEMVTXC.js} +3 -3
  185. package/dist/cli/chunks/{chunk-YOKRSFGA.js → chunk-SMTAZQJ3.js} +2 -2
  186. package/dist/cli/chunks/{chunk-OZTSMI7P.js → chunk-TO4NGP3E.js} +1 -1
  187. package/dist/cli/chunks/{chunk-LFEBTWFS.js → chunk-TTXYZUTQ.js} +2 -2
  188. package/dist/cli/chunks/{chunk-IZTUAI5T.js → chunk-U4NODKRR.js} +2 -2
  189. package/dist/cli/chunks/{chunk-JD3GH47Z.js → chunk-U635PSAW.js} +2 -2
  190. package/dist/cli/chunks/{chunk-6DBYVKGA.js → chunk-UBT7VCKQ.js} +2 -2
  191. package/dist/cli/chunks/{chunk-YSUMQBMY.js → chunk-UETM5XDO.js} +1 -1
  192. package/dist/cli/chunks/{chunk-BZB5D4BO.js → chunk-URXG7FMO.js} +4 -3
  193. package/dist/cli/chunks/{chunk-M2JBQVBP.js → chunk-VIWDVS24.js} +2 -2
  194. package/dist/cli/chunks/{chunk-6A4FEIE2.js → chunk-VNKCUKUJ.js} +3 -3
  195. package/dist/cli/chunks/{chunk-6KWX7A3R.js → chunk-VXIXHZCN.js} +2 -2
  196. package/dist/cli/chunks/{chunk-YIJDCZVX.js → chunk-WFEXEDMC.js} +2 -2
  197. package/dist/cli/chunks/{chunk-CG3HIYF4.js → chunk-WLX57ULC.js} +2 -2
  198. package/dist/cli/chunks/{chunk-FKODRXOU.js → chunk-WVQZGLCT.js} +2 -2
  199. package/dist/cli/chunks/{chunk-677V67MR.js → chunk-WW5DZ6BU.js} +1 -1
  200. package/dist/cli/chunks/{chunk-7L64UC5U.js → chunk-X364AIY6.js} +1 -1
  201. package/dist/cli/chunks/{chunk-UGJNR52C.js → chunk-XH7D6EGE.js} +1 -1
  202. package/dist/cli/chunks/{chunk-66DCG6RO.js → chunk-XICRAXUR.js} +4 -4
  203. package/dist/cli/chunks/{chunk-ETXK25IY.js → chunk-XMAV7AIC.js} +1 -1
  204. package/dist/cli/chunks/{chunk-NHXFAXEV.js → chunk-XSUPK7FI.js} +1 -1
  205. package/dist/cli/chunks/{chunk-3ZAGYTEC.js → chunk-XSWOB74I.js} +2 -2
  206. package/dist/cli/chunks/chunk-YPIZMTTA.js +14 -0
  207. package/dist/cli/chunks/{chunk-YDW522M7.js → chunk-YT6KBEXE.js} +2 -2
  208. package/dist/cli/chunks/{chunk-P2H5ARHM.js → chunk-ZENLP5LF.js} +1 -1
  209. package/dist/cli/chunks/{ci-A5ZXOEC4.js → ci-WS32HBBS.js} +2 -2
  210. package/dist/cli/chunks/{ci-output-S47BMRYC.js → ci-output-67R5MSLL.js} +2 -2
  211. package/dist/cli/chunks/circuit-breaker-MA562FT7.js +2 -0
  212. package/dist/cli/chunks/{claude-flow-setup-F5WBEBVK.js → claude-flow-setup-4QKGSRS7.js} +2 -2
  213. package/dist/cli/chunks/client-XQGZKXOB.js +2 -0
  214. package/dist/cli/chunks/{cline-installer-HLKR4QDR.js → cline-installer-6VSROHRY.js} +2 -2
  215. package/dist/cli/chunks/{code-MTZWS6JT.js → code-FBPBHVV3.js} +2 -2
  216. package/dist/cli/chunks/{code-index-extractor-BALTZ2WQ.js → code-index-extractor-62F622V2.js} +2 -2
  217. package/dist/cli/chunks/{codex-installer-LI2VIGET.js → codex-installer-LSR6DVCU.js} +2 -2
  218. package/dist/cli/chunks/{completions-TOF4GTNF.js → completions-56QOICBN.js} +2 -2
  219. package/dist/cli/chunks/{complexity-analyzer-IPFXIT6T.js → complexity-analyzer-SDH4NWIS.js} +2 -2
  220. package/dist/cli/chunks/{continuedev-installer-KWI66RBI.js → continuedev-installer-S7ZPL3VC.js} +2 -2
  221. package/dist/cli/chunks/{copilot-installer-REFOE6UF.js → copilot-installer-25GNNKNL.js} +2 -2
  222. package/dist/cli/chunks/{cost-tracker-M2MZQXCN.js → cost-tracker-73J4Y2RS.js} +2 -2
  223. package/dist/cli/chunks/{coverage-UR2XSJCR.js → coverage-WEE2AZ5F.js} +3 -3
  224. package/dist/cli/chunks/cross-domain-router-C2ZFCSXJ.js +2 -0
  225. package/dist/cli/chunks/{cursor-installer-X4PXCVYH.js → cursor-installer-DHQ644T3.js} +2 -2
  226. package/dist/cli/chunks/{daemon-5R6ZEEBB.js → daemon-3WUJ5E3X.js} +3 -3
  227. package/dist/cli/chunks/{dag-attention-scheduler-RUY2RJZA.js → dag-attention-scheduler-IRLAM43H.js} +2 -2
  228. package/dist/cli/chunks/{detect-PX2AYBHM.js → detect-DTSB4T4R.js} +2 -2
  229. package/dist/cli/chunks/{domain-handler-5JXWEO3E.js → domain-handler-DDN2Z5XC.js} +2 -2
  230. package/dist/cli/chunks/{domain-transfer-6M2YLBJY.js → domain-transfer-3RRG4S6R.js} +2 -2
  231. package/dist/cli/chunks/dream-JSZZ67OO.js +2 -0
  232. package/dist/cli/chunks/esm-node-X4TES6NX.js +2 -0
  233. package/dist/cli/chunks/{eval-L6ZBG462.js → eval-UXEP425X.js} +2 -2
  234. package/dist/cli/chunks/{fast-paths-WIFDALFK.js → fast-paths-4XLHS2VN.js} +2 -2
  235. package/dist/cli/chunks/{feature-flags-YLBXFUCN.js → feature-flags-6C2HD76K.js} +2 -2
  236. package/dist/cli/chunks/{feature-flags-GRHF5MTK.js → feature-flags-KXXHAEYF.js} +2 -2
  237. package/dist/cli/chunks/{file-discovery-4HXUB4HN.js → file-discovery-YSDUIZO4.js} +2 -2
  238. package/dist/cli/chunks/{fleet-RPLJXOEP.js → fleet-TYDG5DWK.js} +3 -3
  239. package/dist/cli/chunks/{gnn-wrapper-2D5IOGAT.js → gnn-wrapper-GJVYRPHB.js} +2 -2
  240. package/dist/cli/chunks/{heartbeat-handler-D5SWZZGA.js → heartbeat-handler-X63CM35O.js} +4 -4
  241. package/dist/cli/chunks/{heartbeat-scheduler-WSG4Y3M2.js → heartbeat-scheduler-NYH4CMVM.js} +2 -2
  242. package/dist/cli/chunks/hnsw-adapter-SQCVEHB5.js +2 -0
  243. package/dist/cli/chunks/hnsw-index-UGVC5IDK.js +2 -0
  244. package/dist/cli/chunks/{hnsw-legacy-bridge-UH6RWE74.js → hnsw-legacy-bridge-YDVUZTJI.js} +2 -2
  245. package/dist/cli/chunks/{hnswlib-node-BJ4ZJPMP.js → hnswlib-node-TLBDFWA6.js} +2 -2
  246. package/dist/cli/chunks/{hooks-KGDQNB5T.js → hooks-B6PVGP7D.js} +6 -6
  247. package/dist/cli/chunks/hybrid-router-YZEBKUZJ.js +2 -0
  248. package/dist/cli/chunks/{hypergraph-engine-LARQCK7V.js → hypergraph-engine-OQ2ZEG53.js} +2 -2
  249. package/dist/cli/chunks/{hypergraph-handler-RACF4AOX.js → hypergraph-handler-VPD424MI.js} +3 -3
  250. package/dist/cli/chunks/impact-analyzer-ZIXSRWED.js +2 -0
  251. package/dist/cli/chunks/{init-handler-64AOFMJD.js → init-handler-5WYP6NJW.js} +6 -6
  252. package/dist/cli/chunks/init-wizard-MO6PCXPX.js +2 -0
  253. package/dist/cli/chunks/kernel-P54KQB2F.js +2 -0
  254. package/dist/cli/chunks/{kilocode-installer-4ICIP6QN.js → kilocode-installer-YVY4EVMY.js} +2 -2
  255. package/dist/cli/chunks/{kiro-installer-J2GOV2OB.js → kiro-installer-GNT4BN3A.js} +2 -2
  256. package/dist/cli/chunks/knowledge-graph-GU57FQAQ.js +2 -0
  257. package/dist/cli/chunks/{learning-QD4JVH3K.js → learning-LD2RSBRS.js} +3 -3
  258. package/dist/cli/chunks/llm-router-ALKXFKLQ.js +36 -0
  259. package/dist/cli/chunks/{load-EXKUJMBK.js → load-XAOTGZYB.js} +2 -2
  260. package/dist/cli/chunks/load-test-5RFBTSS7.js +2 -0
  261. package/dist/cli/chunks/{mcp-NSNDZSMH.js → mcp-WDAJHGH4.js} +2 -2
  262. package/dist/cli/chunks/{memory-63JTNVZN.js → memory-M7QD57JD.js} +5 -5
  263. package/dist/cli/chunks/memory-backend-GPOP3IR4.js +2 -0
  264. package/dist/cli/chunks/memory-handlers-2NHGZLQM.js +2 -0
  265. package/dist/cli/chunks/multi-model-executor-2XZQK2IN.js +14 -0
  266. package/dist/cli/chunks/{opencode-installer-244LFSPN.js → opencode-installer-ASCVY3GG.js} +2 -2
  267. package/dist/cli/chunks/{orchestrator-TZB457J6.js → orchestrator-GOZICWN3.js} +22 -19
  268. package/dist/cli/chunks/{pipeline-YLBD2Z5Q.js → pipeline-YHQRJWV3.js} +2 -2
  269. package/dist/cli/chunks/{platform-53PWFZSE.js → platform-4NESYFHN.js} +2 -2
  270. package/dist/cli/chunks/{plugin-6GUQEFJU.js → plugin-E24I2RVB.js} +2 -2
  271. package/dist/cli/chunks/{prime-radiant-advanced-wasm-VCOK7FV5.js → prime-radiant-advanced-wasm-CDVSLR7R.js} +2 -2
  272. package/dist/cli/chunks/protocol-executor-M5IONISJ.js +2 -0
  273. package/dist/cli/chunks/{protocol-handler-25UEGTE2.js → protocol-handler-TGTDKSZB.js} +2 -2
  274. package/dist/cli/chunks/{prove-CTOU5F6G.js → prove-WUKDAMSE.js} +2 -2
  275. package/dist/cli/chunks/provider-manager-BTKK6W7M.js +24 -0
  276. package/dist/cli/chunks/qe-reasoning-bank-WIEXCBVE.js +2 -0
  277. package/dist/cli/chunks/{quality-PB7H5UEF.js → quality-RTIOIS2K.js} +2 -2
  278. package/dist/cli/chunks/queen-coordinator-ZFK6DANW.js +2 -0
  279. package/dist/cli/chunks/{real-embeddings-RWWYCIE5.js → real-embeddings-4JJKAEMO.js} +2 -2
  280. package/dist/cli/chunks/{roocode-installer-U4AGYVKL.js → roocode-installer-XU2IXRBM.js} +2 -2
  281. package/dist/cli/chunks/router-TOFBEI2Q.js +2 -0
  282. package/dist/cli/chunks/routing-feedback-RC2VDP6W.js +2 -0
  283. package/dist/cli/chunks/{routing-handler-NTDKDEBE.js → routing-handler-3KBOCIEN.js} +2 -2
  284. package/dist/cli/chunks/{ruvector-commands-RQKOLQSW.js → ruvector-commands-HHE2ZPX7.js} +2 -2
  285. package/dist/cli/chunks/{rvf-dual-writer-6EZ7S7OG.js → rvf-dual-writer-GAWM2BUZ.js} +2 -2
  286. package/dist/cli/chunks/{rvf-migration-adapter-EBTV6FV2.js → rvf-migration-adapter-HQPEC4BN.js} +2 -2
  287. package/dist/cli/chunks/{rvf-migration-coordinator-MERU7VLY.js → rvf-migration-coordinator-A4K45EFU.js} +2 -2
  288. package/dist/cli/chunks/rvf-native-adapter-ZOQDH3JY.js +2 -0
  289. package/dist/cli/chunks/safe-db-RIP3X32S.js +2 -0
  290. package/dist/cli/chunks/schedule-Q6KZRLWS.js +2 -0
  291. package/dist/cli/chunks/scheduler-SJO5QPAU.js +2 -0
  292. package/dist/cli/chunks/{security-JPDLGHMC.js → security-UIKUNOXB.js} +3 -3
  293. package/dist/cli/chunks/shared-rvf-adapter-JJCR3AWU.js +2 -0
  294. package/dist/cli/chunks/{shared-rvf-dual-writer-7OGLQE5Y.js → shared-rvf-dual-writer-ZUWSLFPH.js} +2 -2
  295. package/dist/cli/chunks/sqlite-persistence-HK2S6XAI.js +2 -0
  296. package/dist/cli/chunks/{status-handler-3TI3DHEL.js → status-handler-E3VSWGA6.js} +2 -2
  297. package/dist/cli/chunks/{structural-health-WCZKXVWS.js → structural-health-Y22H4BOU.js} +2 -2
  298. package/dist/cli/chunks/{sync-AM5T4GYO.js → sync-CA4KWZFS.js} +2 -2
  299. package/dist/cli/chunks/{task-handler-VHDTXPVP.js → task-handler-3EZPIAMD.js} +2 -2
  300. package/dist/cli/chunks/task-handlers-6UVAQAGP.js +2 -0
  301. package/dist/cli/chunks/{test-G6P5XGHM.js → test-Q5DOFSJI.js} +4 -4
  302. package/dist/cli/chunks/{test-scheduling-37RBUN4E.js → test-scheduling-BSXWCIMQ.js} +3 -3
  303. package/dist/cli/chunks/token-bootstrap-XGEZU2CS.js +2 -0
  304. package/dist/cli/chunks/{token-usage-5XGVBLFR.js → token-usage-BZX5TCG6.js} +2 -2
  305. package/dist/cli/chunks/{transformers-JTKWAZJU.js → transformers-7ITQPXAU.js} +2 -2
  306. package/dist/cli/chunks/{tree-sitter-wasm-parser-KW2GWIIQ.js → tree-sitter-wasm-parser-ZYBBNYR3.js} +2 -2
  307. package/dist/cli/chunks/{types-7R72BACI.js → types-ACZ5VVRC.js} +2 -2
  308. package/dist/cli/chunks/unified-memory-EXO6WK33.js +2 -0
  309. package/dist/cli/chunks/unified-memory-hnsw-7HPSTFVV.js +2 -0
  310. package/dist/cli/chunks/unified-persistence-WC3O4WOJ.js +2 -0
  311. package/dist/cli/chunks/{validate-TYB4ZTUL.js → validate-IQL6OVXD.js} +2 -2
  312. package/dist/cli/chunks/{validate-swarm-3TFI6PLT.js → validate-swarm-J52J2K5X.js} +2 -2
  313. package/dist/cli/chunks/{vibium-3YELURJT.js → vibium-XSE76PXE.js} +2 -2
  314. package/dist/cli/chunks/visual-security-COW3OCEE.js +2 -0
  315. package/dist/cli/chunks/{web-tree-sitter-7Q77A27Y.js → web-tree-sitter-YM6QXUIY.js} +2 -2
  316. package/dist/cli/chunks/{windsurf-installer-ASARRM2X.js → windsurf-installer-M27DVL4H.js} +2 -2
  317. package/dist/cli/chunks/{witness-chain-WZ6PNXEY.js → witness-chain-NB5LP73S.js} +2 -2
  318. package/dist/cli/chunks/witness-chain-XQXF3RSP.js +2 -0
  319. package/dist/cli/chunks/{workflow-JDTEE6TY.js → workflow-5DODQ6XS.js} +4 -4
  320. package/dist/cli/chunks/workflow-orchestrator-HSIZEKZM.js +2 -0
  321. package/dist/cli/chunks/{wrappers-X7WZLBZD.js → wrappers-K7HHCIYD.js} +2 -2
  322. package/dist/cli/commands/llm-router.js +252 -0
  323. package/dist/coordination/queen-task-management.js +8 -1
  324. package/dist/init/browser-engine-installer.d.ts +60 -0
  325. package/dist/init/browser-engine-installer.js +92 -0
  326. package/dist/init/init-wizard-steps.js +9 -0
  327. package/dist/init/phases/09-assets.d.ts +2 -0
  328. package/dist/init/phases/09-assets.js +65 -0
  329. package/dist/init/phases/12-verification.js +8 -0
  330. package/dist/init/skills-installer.js +1 -0
  331. package/dist/kernel/unified-memory-schemas.d.ts +1 -1
  332. package/dist/kernel/unified-memory-schemas.js +2 -1
  333. package/dist/mcp/bundle.js +47 -44
  334. package/dist/mcp/protocol-server.js +87 -0
  335. package/dist/routing/advisor/circuit-breaker.d.ts +56 -0
  336. package/dist/routing/advisor/circuit-breaker.js +128 -0
  337. package/dist/routing/advisor/domain-prompts.d.ts +14 -0
  338. package/dist/routing/advisor/domain-prompts.js +53 -0
  339. package/dist/routing/advisor/index.d.ts +10 -0
  340. package/dist/routing/advisor/index.js +9 -0
  341. package/dist/routing/advisor/multi-model-executor.d.ts +60 -0
  342. package/dist/routing/advisor/multi-model-executor.js +176 -0
  343. package/dist/routing/advisor/redaction.d.ts +40 -0
  344. package/dist/routing/advisor/redaction.js +187 -0
  345. package/dist/routing/advisor/types.d.ts +101 -0
  346. package/dist/routing/advisor/types.js +9 -0
  347. package/dist/routing/queen-integration.d.ts +3 -0
  348. package/dist/routing/queen-integration.js +7 -1
  349. package/dist/routing/routing-feedback.d.ts +7 -1
  350. package/dist/routing/routing-feedback.js +57 -11
  351. package/dist/routing/tiny-dancer-router.d.ts +35 -1
  352. package/dist/routing/tiny-dancer-router.js +33 -0
  353. package/dist/routing/types.d.ts +12 -0
  354. package/package.json +1 -1
  355. package/dist/cli/chunks/adapter-D4XQUIJD.js +0 -2
  356. package/dist/cli/chunks/aqe-learning-engine-CGIWYLIP.js +0 -2
  357. package/dist/cli/chunks/base-BYVP2STR.js +0 -2
  358. package/dist/cli/chunks/browser-workflow-PC4N5TKL.js +0 -2
  359. package/dist/cli/chunks/chunk-2K3DJ3EK.js +0 -7
  360. package/dist/cli/chunks/chunk-JBQ4WGB4.js +0 -14
  361. package/dist/cli/chunks/chunk-OT4JADWW.js +0 -2
  362. package/dist/cli/chunks/client-56BU3GAX.js +0 -2
  363. package/dist/cli/chunks/cross-domain-router-XQT52BTB.js +0 -2
  364. package/dist/cli/chunks/dream-LFZCN5WK.js +0 -2
  365. package/dist/cli/chunks/esm-node-EBDIEPKS.js +0 -2
  366. package/dist/cli/chunks/hnsw-adapter-BMXTVGZB.js +0 -2
  367. package/dist/cli/chunks/hnsw-index-YX6XLICT.js +0 -2
  368. package/dist/cli/chunks/impact-analyzer-MGSI2WBK.js +0 -2
  369. package/dist/cli/chunks/init-wizard-TBDWRRMC.js +0 -2
  370. package/dist/cli/chunks/kernel-NV7TO2FK.js +0 -2
  371. package/dist/cli/chunks/knowledge-graph-7REGYH6A.js +0 -2
  372. package/dist/cli/chunks/llm-router-4K4IT2PQ.js +0 -30
  373. package/dist/cli/chunks/load-test-RYQK44TT.js +0 -2
  374. package/dist/cli/chunks/memory-backend-3EBE2DEX.js +0 -2
  375. package/dist/cli/chunks/memory-handlers-2335MVQJ.js +0 -2
  376. package/dist/cli/chunks/protocol-executor-MR37S7GX.js +0 -2
  377. package/dist/cli/chunks/qe-reasoning-bank-DANGLPTH.js +0 -2
  378. package/dist/cli/chunks/queen-coordinator-4YJPYF5F.js +0 -2
  379. package/dist/cli/chunks/router-F4IPY4RQ.js +0 -2
  380. package/dist/cli/chunks/routing-feedback-VGHFIJ5S.js +0 -2
  381. package/dist/cli/chunks/rvf-native-adapter-2P75WF5A.js +0 -2
  382. package/dist/cli/chunks/safe-db-47NEO2RS.js +0 -2
  383. package/dist/cli/chunks/schedule-L5GJW25Z.js +0 -2
  384. package/dist/cli/chunks/scheduler-NGGGSZMO.js +0 -2
  385. package/dist/cli/chunks/shared-rvf-adapter-NKNTYGHO.js +0 -2
  386. package/dist/cli/chunks/sqlite-persistence-TE2ZRHKA.js +0 -2
  387. package/dist/cli/chunks/task-handlers-GEJ36WNB.js +0 -2
  388. package/dist/cli/chunks/token-bootstrap-JPE3LWXQ.js +0 -2
  389. package/dist/cli/chunks/unified-memory-KSBLUZT4.js +0 -2
  390. package/dist/cli/chunks/unified-memory-hnsw-V3EOMQIZ.js +0 -2
  391. package/dist/cli/chunks/unified-persistence-URIRJ4BM.js +0 -2
  392. package/dist/cli/chunks/visual-security-DJOOVCBZ.js +0 -2
  393. package/dist/cli/chunks/witness-chain-ZWJUCXCJ.js +0 -2
  394. package/dist/cli/chunks/workflow-orchestrator-5CKA6Q74.js +0 -2
@@ -0,0 +1,283 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * advisor-call.cjs — Helper script for agent advisor protocol (ADR-092)
4
+ *
5
+ * Agents call this instead of invoking `aqe llm advise` directly.
6
+ * This script:
7
+ * 1. Reads .agentic-qe/config.yaml for advisor settings
8
+ * 2. Detects available API keys in environment
9
+ * 3. Applies security-agent provider restrictions automatically
10
+ * 4. Picks the best available provider/model
11
+ * 5. Calls `aqe llm advise` with the resolved settings
12
+ *
13
+ * Usage from agent definitions:
14
+ * node "$(dirname "$(which aqe)")/../lib/helpers/advisor-call.cjs" \
15
+ * --agent <agent-name> \
16
+ * --task "<task description>" \
17
+ * --context "<what the executor has found so far>"
18
+ *
19
+ * Or simpler (when aqe is installed):
20
+ * aqe advisor call --agent <name> --task "<desc>" --context "<ctx>"
21
+ *
22
+ * Exits 0 with JSON on success, 1-6 with error JSON on failure.
23
+ */
24
+
25
+ 'use strict';
26
+
27
+ const { execFileSync } = require('child_process');
28
+ const { readFileSync, writeFileSync, mkdirSync, existsSync } = require('fs');
29
+ const { join, dirname } = require('path');
30
+ const { tmpdir } = require('os');
31
+
32
+ // ============================================================================
33
+ // Parse arguments
34
+ // ============================================================================
35
+
36
+ const args = process.argv.slice(2);
37
+ function getArg(name) {
38
+ const idx = args.indexOf(`--${name}`);
39
+ return idx >= 0 && idx + 1 < args.length ? args[idx + 1] : null;
40
+ }
41
+
42
+ const agentName = getArg('agent') || 'unknown';
43
+ const taskDescription = getArg('task') || '';
44
+ const context = getArg('context') || '';
45
+ const userMessage = getArg('message') || taskDescription;
46
+
47
+ if (!taskDescription && !userMessage) {
48
+ console.error(JSON.stringify({
49
+ error: 'Usage: advisor-call.cjs --agent <name> --task "<description>" [--context "<findings>"] [--message "<user request>"]',
50
+ exit_code: 1,
51
+ }));
52
+ process.exit(1);
53
+ }
54
+
55
+ // ============================================================================
56
+ // Detect available providers from environment
57
+ // ============================================================================
58
+
59
+ const availableProviders = [];
60
+
61
+ if (process.env.OPENROUTER_API_KEY) {
62
+ availableProviders.push({
63
+ name: 'openrouter',
64
+ model: 'anthropic/claude-opus-4',
65
+ securityAllowed: false, // third-party proxy
66
+ });
67
+ }
68
+
69
+ if (process.env.ANTHROPIC_API_KEY) {
70
+ availableProviders.push({
71
+ name: 'claude',
72
+ model: 'claude-opus-4-6',
73
+ securityAllowed: true,
74
+ });
75
+ }
76
+
77
+ if (process.env.OLLAMA_HOST || process.env.OLLAMA_BASE_URL) {
78
+ availableProviders.push({
79
+ name: 'ollama',
80
+ model: process.env.OLLAMA_ADVISOR_MODEL || 'llama3.1:70b',
81
+ securityAllowed: true, // self-hosted
82
+ });
83
+ }
84
+
85
+ if (availableProviders.length === 0) {
86
+ console.error(JSON.stringify({
87
+ error: 'No advisor provider available. Set one of: OPENROUTER_API_KEY, ANTHROPIC_API_KEY, OLLAMA_HOST',
88
+ exit_code: 4,
89
+ }));
90
+ process.exit(4);
91
+ }
92
+
93
+ // ============================================================================
94
+ // Read project config for advisor overrides
95
+ // ============================================================================
96
+
97
+ let advisorConfig = {};
98
+ const configPaths = [
99
+ join(process.cwd(), '.agentic-qe', 'config.yaml'),
100
+ join(process.cwd(), '.agentic-qe', 'config.json'),
101
+ ];
102
+
103
+ for (const cfgPath of configPaths) {
104
+ try {
105
+ if (!existsSync(cfgPath)) continue;
106
+ const raw = readFileSync(cfgPath, 'utf-8');
107
+
108
+ if (cfgPath.endsWith('.yaml') || cfgPath.endsWith('.yml')) {
109
+ // Simple YAML parse for advisor section (no dependency required)
110
+ const advisorMatch = raw.match(/^advisor:\s*\n((?: .+\n)*)/m);
111
+ if (advisorMatch) {
112
+ const lines = advisorMatch[1].split('\n').filter(Boolean);
113
+ for (const line of lines) {
114
+ const kv = line.match(/^\s+(\w+):\s*"?([^"#\n]+)"?/);
115
+ if (kv) advisorConfig[kv[1].trim()] = kv[2].trim();
116
+ }
117
+ }
118
+ } else {
119
+ const json = JSON.parse(raw);
120
+ if (json.advisor) advisorConfig = json.advisor;
121
+ }
122
+ break;
123
+ } catch {
124
+ // config not available — use defaults
125
+ }
126
+ }
127
+
128
+ // ============================================================================
129
+ // Select provider based on agent domain + security constraints
130
+ // ============================================================================
131
+
132
+ const isSecurityAgent = /^qe-security|^qe-pentest/.test(agentName);
133
+
134
+ let selectedProvider;
135
+
136
+ // Config override takes priority
137
+ if (advisorConfig.provider) {
138
+ selectedProvider = availableProviders.find(p => p.name === advisorConfig.provider);
139
+ }
140
+
141
+ // Security agents: filter to allowed providers only
142
+ if (!selectedProvider && isSecurityAgent) {
143
+ selectedProvider = availableProviders.find(p => p.securityAllowed);
144
+ if (!selectedProvider) {
145
+ console.error(JSON.stringify({
146
+ error: `Security agent "${agentName}" requires direct Anthropic (ANTHROPIC_API_KEY) or self-hosted Ollama. OpenRouter is not allowed for security agents.`,
147
+ exit_code: 6,
148
+ }));
149
+ process.exit(6);
150
+ }
151
+ }
152
+
153
+ // Default: first available provider (preference: openrouter > claude > ollama)
154
+ if (!selectedProvider) {
155
+ selectedProvider = availableProviders[0];
156
+ }
157
+
158
+ // Config model override
159
+ const model = advisorConfig.model || selectedProvider.model;
160
+ const maxUses = advisorConfig.maxUses || '3';
161
+ const redactMode = advisorConfig.redact || 'strict';
162
+
163
+ // M2 fix: resolve domain-specific advisor prompt from agent name
164
+ const DOMAIN_PROMPTS = {
165
+ 'test-generation': 'You are the advisor for a test-generation executor. Respond in under 100 words, enumerated steps. Name concrete classes, methods, dependencies. Focus on: what to mock, priority coverage methods, edge cases the executor will miss, test structure.',
166
+ 'security-compliance': 'You are the advisor for a security executor. Respond in under 100 words, enumerated steps. Name concrete attack vectors, CWE IDs, code locations. Focus on: input validation gaps, auth/authz issues, data exposure, dependency CVEs. Prioritize by exploitability.',
167
+ 'coverage-analysis': 'You are the advisor for a coverage analysis executor. Respond in under 100 words, enumerated steps. Name concrete uncovered files, functions, branches. Focus on: highest business risk gaps, missed branch types, quick wins.',
168
+ 'cross-domain': 'You are the advisor for a fleet commander. Respond in under 100 words, enumerated steps. Focus on: which domains need attention, agent delegation, coordination risks, missing subtasks.',
169
+ };
170
+
171
+ const AGENT_DOMAIN_MAP = {
172
+ 'qe-test-architect': 'test-generation',
173
+ 'qe-test-generator': 'test-generation',
174
+ 'qe-coverage-specialist': 'coverage-analysis',
175
+ 'qe-coverage-analyzer': 'coverage-analysis',
176
+ 'qe-security-auditor': 'security-compliance',
177
+ 'qe-security-scanner': 'security-compliance',
178
+ 'qe-pentest-validator': 'security-compliance',
179
+ 'qe-fleet-commander': 'cross-domain',
180
+ 'qe-queen-coordinator': 'cross-domain',
181
+ 'qe-risk-assessor': 'cross-domain',
182
+ 'qe-root-cause-analyzer': 'cross-domain',
183
+ };
184
+
185
+ const agentDomain = AGENT_DOMAIN_MAP[agentName];
186
+ const domainPrompt = agentDomain ? DOMAIN_PROMPTS[agentDomain] : null;
187
+
188
+ // ============================================================================
189
+ // Write transcript and call aqe llm advise
190
+ // ============================================================================
191
+
192
+ const transcriptDir = join(tmpdir(), 'aqe-advisor');
193
+ mkdirSync(transcriptDir, { recursive: true });
194
+ const transcriptPath = join(transcriptDir, `transcript-${Date.now()}.json`);
195
+
196
+ const transcript = {
197
+ taskDescription,
198
+ messages: [
199
+ { role: 'user', content: userMessage },
200
+ ...(context ? [{ role: 'assistant', content: context }] : []),
201
+ ],
202
+ };
203
+
204
+ writeFileSync(transcriptPath, JSON.stringify(transcript));
205
+
206
+ // Find aqe binary
207
+ let aqeBin = 'aqe';
208
+ try {
209
+ execFileSync('which', ['aqe'], { encoding: 'utf-8' });
210
+ } catch {
211
+ // aqe not on PATH — try npx
212
+ aqeBin = 'npx';
213
+ }
214
+
215
+ const cliArgs = aqeBin === 'npx'
216
+ ? ['aqe', 'llm', 'advise']
217
+ : ['llm', 'advise'];
218
+
219
+ cliArgs.push(
220
+ '--transcript', transcriptPath,
221
+ '--agent', agentName,
222
+ '--provider', selectedProvider.name,
223
+ '--model', model,
224
+ '--redact', redactMode,
225
+ '--json',
226
+ );
227
+
228
+ // M2 fix: pass domain-specific prompt if resolved
229
+ if (domainPrompt) {
230
+ cliArgs.push('--advisor-prompt', domainPrompt);
231
+ }
232
+
233
+ try {
234
+ const result = execFileSync(aqeBin, cliArgs, {
235
+ encoding: 'utf-8',
236
+ timeout: 60000,
237
+ env: process.env,
238
+ });
239
+
240
+ // Forward the JSON result, filtering out non-JSON lines (e.g., UnifiedMemory init)
241
+ const lines = result.split('\n');
242
+ let inJson = false;
243
+ let jsonDepth = 0;
244
+ const jsonLines = [];
245
+
246
+ for (const line of lines) {
247
+ const trimmed = line.trim();
248
+ if (!inJson && trimmed.startsWith('{')) {
249
+ inJson = true;
250
+ }
251
+ if (inJson) {
252
+ jsonLines.push(line);
253
+ jsonDepth += (trimmed.match(/{/g) || []).length;
254
+ jsonDepth -= (trimmed.match(/}/g) || []).length;
255
+ if (jsonDepth <= 0) break;
256
+ }
257
+ }
258
+
259
+ if (jsonLines.length > 0) {
260
+ console.log(jsonLines.join('\n'));
261
+ }
262
+
263
+ // Clean up transcript
264
+ try { require('fs').unlinkSync(transcriptPath); } catch {}
265
+
266
+ process.exit(0);
267
+ } catch (err) {
268
+ const exitCode = err.status || 1;
269
+ const stderr = err.stderr || err.message || 'Unknown error';
270
+
271
+ console.error(JSON.stringify({
272
+ error: stderr.slice(0, 500),
273
+ exit_code: exitCode,
274
+ provider: selectedProvider.name,
275
+ model,
276
+ agent: agentName,
277
+ }));
278
+
279
+ // Clean up
280
+ try { require('fs').unlinkSync(transcriptPath); } catch {}
281
+
282
+ process.exit(exitCode);
283
+ }
@@ -1,16 +1,35 @@
1
1
  ---
2
2
  name: qe-coverage-specialist
3
3
  version: "3.0.0"
4
- updated: "2026-01-10"
4
+ updated: "2026-04-12"
5
5
  description: O(log n) sublinear coverage analysis with risk-weighted gap detection and HNSW vector indexing
6
6
  v2_compat:
7
7
  name: qe-coverage-analyzer
8
8
  deprecated_in: "3.0.0"
9
9
  removed_in: "4.0.0"
10
10
  domain: coverage-analysis
11
+ advisor:
12
+ enabled: true
13
+ provider: openrouter
14
+ model: anthropic/claude-opus-4
15
+ max_uses: 3
16
+ redact: strict
11
17
  ---
12
18
 
13
19
  <qe_agent_definition>
20
+ <advisor_protocol>
21
+ You have access to an advisor for strategic guidance on coverage analysis. The helper auto-detects the best provider from the user's environment.
22
+
23
+ ```bash
24
+ node .claude/helpers/v3/advisor-call.cjs \
25
+ --agent qe-coverage-specialist \
26
+ --task "Analyze coverage gaps for <target>" \
27
+ --context "Coverage data shows: <summary of uncovered areas>"
28
+ ```
29
+
30
+ Call BEFORE deciding which gaps to prioritize. Skip for simple single-file checks.
31
+ </advisor_protocol>
32
+
14
33
  <identity>
15
34
  You are the V3 QE Coverage Specialist, the primary agent for intelligent coverage analysis in Agentic QE v3.
16
35
  Mission: Achieve O(log n) coverage gap detection using HNSW vector indexing with risk-weighted prioritization.
@@ -1,13 +1,32 @@
1
1
  ---
2
2
  name: qe-fleet-commander
3
3
  version: "3.0.0"
4
- updated: "2026-01-10"
4
+ updated: "2026-04-12"
5
5
  description: Fleet management with agent lifecycle, workload distribution, and cross-domain coordination at scale
6
6
  v2_compat: qe-fleet-commander
7
7
  domain: cross-domain
8
+ advisor:
9
+ enabled: true
10
+ provider: openrouter
11
+ model: anthropic/claude-opus-4
12
+ max_uses: 3
13
+ redact: strict
8
14
  ---
9
15
 
10
16
  <qe_agent_definition>
17
+ <advisor_protocol>
18
+ You have access to an advisor for strategic guidance on fleet coordination. The helper auto-detects the best provider from the user's environment.
19
+
20
+ ```bash
21
+ node .claude/helpers/v3/advisor-call.cjs \
22
+ --agent qe-fleet-commander \
23
+ --task "Coordinate <task description>" \
24
+ --context "Fleet state: <N agents active>, domains: <list>, plan: <decomposition>"
25
+ ```
26
+
27
+ Call BEFORE task decomposition and BEFORE declaring a multi-agent coordination complete.
28
+ </advisor_protocol>
29
+
11
30
  <identity>
12
31
  You are the V3 QE Fleet Commander, the fleet management and orchestration expert in Agentic QE v3.
13
32
  Mission: Oversee and coordinate all QE agents across the fleet, managing resource allocation, workload distribution, agent health, and cross-domain orchestration at scale.
@@ -1,13 +1,32 @@
1
1
  ---
2
2
  name: qe-pentest-validator
3
3
  version: "3.6.0"
4
- updated: "2026-02-08"
4
+ updated: "2026-04-12"
5
5
  description: Graduated exploit validation with parallel vulnerability pipelines, browser-based attack execution, and "No Exploit, No Report" quality gate
6
6
  v2_compat: null
7
7
  domain: security-compliance
8
+ advisor:
9
+ enabled: true
10
+ provider: claude
11
+ model: claude-opus-4-6
12
+ max_uses: 3
13
+ redact: strict
8
14
  ---
9
15
 
10
16
  <qe_agent_definition>
17
+ <advisor_protocol>
18
+ You have access to an advisor for strategic guidance on exploit validation. The helper auto-detects the provider. Security agents are automatically restricted to direct Anthropic or self-hosted Ollama (OpenRouter is blocked).
19
+
20
+ ```bash
21
+ node .claude/helpers/v3/advisor-call.cjs \
22
+ --agent qe-pentest-validator \
23
+ --task "Validate <vulnerability type> in <target>" \
24
+ --context "SAST found <finding>. Attempting exploitation via <approach>."
25
+ ```
26
+
27
+ Call BEFORE each exploitation attempt and BEFORE declaring a finding validated or false-positive. Skip for obvious true-positives with clear reproduction steps.
28
+ </advisor_protocol>
29
+
11
30
  <identity>
12
31
  You are the V3 QE Pentest Validator, the exploit validation agent in Agentic QE v3.
13
32
  Mission: Validate security findings through graduated exploitation - proving vulnerabilities are real before reporting them. Adopts the "No Exploit, No Report" philosophy to eliminate false positives.
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: qe-queen-coordinator
3
3
  version: "3.1.0"
4
- updated: "2026-01-30"
4
+ updated: "2026-04-12"
5
5
  description: V3 QE Queen Coordinator - MCP-powered swarm orchestration with real fleet coordination
6
6
  v2_compat: null # New in v3
7
7
  domain: coordination
@@ -11,9 +11,28 @@ dependencies:
11
11
  required: true
12
12
  - name: claude-flow
13
13
  required: false
14
+ advisor:
15
+ enabled: true
16
+ provider: openrouter
17
+ model: anthropic/claude-opus-4
18
+ max_uses: 3
19
+ redact: strict
14
20
  ---
15
21
 
16
22
  <qe_agent_definition>
23
+ <advisor_protocol>
24
+ You have access to an advisor for strategic guidance on fleet orchestration decisions. The helper auto-detects the best provider.
25
+
26
+ ```bash
27
+ node .claude/helpers/v3/advisor-call.cjs \
28
+ --agent qe-queen-coordinator \
29
+ --task "Orchestrate <objective>" \
30
+ --context "Fleet state: <agents active>, domains: <list>, current plan: <decomposition>"
31
+ ```
32
+
33
+ Call BEFORE decomposing a complex multi-domain objective and BEFORE finalizing agent delegation.
34
+ </advisor_protocol>
35
+
17
36
  <identity>
18
37
  You are the V3 QE Queen Coordinator, the sovereign orchestrator of the Agentic QE v3 fleet.
19
38
  Mission: Lead hierarchical coordination of 40+ specialized QE agents to achieve >90% coverage, zero-defect releases, and <5min test feedback.
@@ -1,13 +1,32 @@
1
1
  ---
2
2
  name: qe-risk-assessor
3
3
  version: "3.0.0"
4
- updated: "2026-01-10"
4
+ updated: "2026-04-12"
5
5
  description: Quality risk assessment with multi-factor scoring, impact analysis, and mitigation recommendations
6
6
  domain: quality-assessment
7
7
  v3_new: true
8
+ advisor:
9
+ enabled: true
10
+ provider: openrouter
11
+ model: anthropic/claude-opus-4
12
+ max_uses: 3
13
+ redact: strict
8
14
  ---
9
15
 
10
16
  <qe_agent_definition>
17
+ <advisor_protocol>
18
+ You have access to an advisor for strategic guidance on risk assessment decisions. The helper auto-detects the best provider.
19
+
20
+ ```bash
21
+ node .claude/helpers/v3/advisor-call.cjs \
22
+ --agent qe-risk-assessor \
23
+ --task "Assess quality risk for <target>" \
24
+ --context "Risk factors identified: <list>. Current scoring: <summary>"
25
+ ```
26
+
27
+ Call BEFORE assigning final risk scores and BEFORE recommending mitigation strategies. The advisor can identify risk factors you may have underweighted.
28
+ </advisor_protocol>
29
+
11
30
  <identity>
12
31
  You are the V3 QE Risk Assessor, the quality risk assessment expert in Agentic QE v3.
13
32
  Mission: Assess and quantify quality risks across code, tests, and releases using multi-factor risk models and predictive analytics.
@@ -16,9 +16,28 @@ dependencies:
16
16
  mcp_servers:
17
17
  - name: agentic-qe
18
18
  required: true
19
+ advisor:
20
+ enabled: true
21
+ provider: openrouter
22
+ model: anthropic/claude-opus-4
23
+ max_uses: 3
24
+ redact: strict
19
25
  ---
20
26
 
21
27
  <qe_agent_definition>
28
+ <advisor_protocol>
29
+ You have access to an advisor for strategic guidance on root cause investigations. The helper auto-detects the best provider.
30
+
31
+ ```bash
32
+ node .claude/helpers/v3/advisor-call.cjs \
33
+ --agent qe-root-cause-analyzer \
34
+ --task "Root cause analysis for <failure description>" \
35
+ --context "Evidence gathered: <logs, traces, timeline>. Current hypothesis: <theory>"
36
+ ```
37
+
38
+ Call BEFORE committing to a root cause hypothesis and BEFORE recommending prevention strategies. Early wrong turns in RCA compound — the advisor can challenge your hypothesis.
39
+ </advisor_protocol>
40
+
22
41
  <identity>
23
42
  You are the V3 QE Root Cause Analyzer, the failure investigation expert in Agentic QE v3.
24
43
  Mission: Perform systematic root cause analysis on test failures, production incidents, and defects to identify underlying causes and prevent recurrence.
@@ -1,13 +1,32 @@
1
1
  ---
2
2
  name: qe-security-auditor
3
3
  version: "3.0.0"
4
- updated: "2026-01-10"
4
+ updated: "2026-04-12"
5
5
  description: Security audit specialist with OWASP coverage, compliance validation, and remediation workflows
6
6
  v2_compat: null # New in v3
7
7
  domain: security-compliance
8
+ advisor:
9
+ enabled: true
10
+ provider: claude
11
+ model: claude-opus-4-6
12
+ max_uses: 3
13
+ redact: strict
8
14
  ---
9
15
 
10
16
  <qe_agent_definition>
17
+ <advisor_protocol>
18
+ You have access to an advisor for strategic guidance on security audits. The helper auto-detects the provider. Security agents are automatically restricted to direct Anthropic or self-hosted Ollama (OpenRouter is blocked).
19
+
20
+ ```bash
21
+ node .claude/helpers/v3/advisor-call.cjs \
22
+ --agent qe-security-auditor \
23
+ --task "Security audit of <target>" \
24
+ --context "Found so far: <findings summary>"
25
+ ```
26
+
27
+ Call BEFORE committing to a finding severity assessment and BEFORE declaring the audit complete.
28
+ </advisor_protocol>
29
+
11
30
  <identity>
12
31
  You are the V3 QE Security Auditor, the comprehensive security audit expert in Agentic QE v3.
13
32
  Mission: Conduct comprehensive security audits of code, configurations, and infrastructure to identify vulnerabilities, ensure compliance, and recommend remediation strategies.
@@ -1,13 +1,21 @@
1
1
  ---
2
2
  name: qe-test-architect
3
3
  version: "3.0.0"
4
- updated: "2026-01-10"
4
+ updated: "2026-04-11"
5
5
  description: AI-powered test generation with sublinear optimization, multi-framework support, and self-learning capabilities
6
6
  v2_compat:
7
7
  name: qe-test-generator
8
8
  deprecated_in: "3.0.0"
9
9
  removed_in: "4.0.0"
10
10
  domain: test-generation
11
+ advisor:
12
+ enabled: true # ADR-092 Phase 0 target agent
13
+ provider: openrouter # Phase 0 default; any HybridRouter provider supported
14
+ model: anthropic/claude-opus-4 # Strong reasoning model via OpenRouter
15
+ max_uses: 3 # Per-task advisor call cap
16
+ budget_usd_per_task: 0.05 # Per-call budget ceiling
17
+ required: false # Phase 5 flips this to true for quality-gate enforcement
18
+ redact: strict # Phase 1 activates; Phase 0 uses happy path
11
19
  ---
12
20
 
13
21
  <qe_agent_definition>
@@ -37,6 +45,30 @@ Planned:
37
45
  - AI-powered test data synthesis at scale
38
46
  </implementation_status>
39
47
 
48
+ <advisor_protocol>
49
+ You have access to an advisor backed by a stronger model. The helper script auto-detects which provider and model to use from the user's environment and project config.
50
+
51
+ To call the advisor:
52
+ ```bash
53
+ node .claude/helpers/v3/advisor-call.cjs \
54
+ --agent qe-test-architect \
55
+ --task "Generate pytest tests for <module>" \
56
+ --context "I read the source. It has classes X, Y, Z with deps on A, B."
57
+ ```
58
+
59
+ If `aqe` is not on PATH, use `npx` instead:
60
+ ```bash
61
+ npx -y agentic-qe llm advise --stdin --agent qe-test-architect --json <<< '{"taskDescription":"...","messages":[{"role":"user","content":"..."},{"role":"assistant","content":"..."}]}'
62
+ ```
63
+
64
+ WHEN TO CALL:
65
+ - BEFORE writing any test code — after reading the source file(s), call for a strategic plan
66
+ - When stuck — errors recurring, approach not converging
67
+ - Before declaring the task complete — verify your approach
68
+
69
+ The advisor responds in under 100 words with enumerated steps naming concrete classes, methods, and mock targets. Give the advice serious weight. On short tasks (1-2 files, obvious strategy), skip the call.
70
+ </advisor_protocol>
71
+
40
72
  <default_to_action>
41
73
  Generate tests immediately when provided with source code and requirements.
42
74
  Make autonomous decisions about test types and coverage strategies when goals are clear.
@@ -4,9 +4,9 @@ This directory contains Quality Engineering skills managed by Agentic QE.
4
4
 
5
5
  ## Summary
6
6
 
7
- - **Total QE Skills**: 84
7
+ - **Total QE Skills**: 85
8
8
  - **V2 Methodology Skills**: 62
9
- - **V3 Domain Skills**: 23
9
+ - **V3 Domain Skills**: 24
10
10
  - **Platform Skills**: 30 (Claude Flow managed)
11
11
  - **Validation Infrastructure**: ✅ Installed
12
12
 
@@ -80,11 +80,12 @@ Version-agnostic quality engineering best practices from the QE community.
80
80
  - **wms-testing-patterns**: Warehouse Management System testing patterns for inventory operations, pick/pack/ship workflows, wave management, EDI X12/EDIFACT compliance, RF/barcode scanning, and WMS-ERP integration. Use when testing WMS platforms (Blue Yonder, Manhattan, SAP EWM).
81
81
  - **xp-practices**: Apply XP practices including pair programming, ensemble programming, continuous integration, and sustainable pace. Use when implementing agile development practices, improving team collaboration, or adopting technical excellence practices.
82
82
 
83
- ## V3 Domain Skills (23)
83
+ ## V3 Domain Skills (24)
84
84
 
85
85
  V3-specific implementation guides for the 12 DDD bounded contexts plus on-demand hooks, investigation runbooks, and measurement tools.
86
86
 
87
87
  - **pentest-validation**: Orchestrate security finding validation through graduated exploitation. 4-phase pipeline: recon (SAST/DAST), analysis (code review), validation (exploit proof), report (No Exploit, No Report gate). Eliminates false positives by proving exploitability.
88
+ - **qe-browser**: Browser automation fleet skill built on Vibium (WebDriver BiDi, ~10MB Go binary, auto-installed by `aqe init`). Ships 5 helpers: typed assertions with 16 check kinds, multi-step batch executor, pixel-perfect visual-diff against baselines, prompt-injection scanner with 14 patterns, and semantic intent scorer with 15 intents (accept_cookies, submit_form, fill_email, etc.). Emits a `skipped` envelope with exit code 2 if vibium isn't installed. Supersedes per-skill browser glue in a11y-ally, e2e-flow-verifier, visual-testing-advanced, and 8 other skills. See [ADR-091](../../../docs/implementation/adrs/ADR-091-qe-browser-skill-vibium-engine.md).
88
89
  - **qe-chaos-resilience**: Chaos engineering and resilience testing including fault injection, load testing, and system recovery validation.
89
90
  - **qe-code-intelligence**: Knowledge graph-based code understanding with semantic search and 80% token reduction through intelligent context retrieval.
90
91
  - **qe-coverage-analysis**: O(log n) sublinear coverage gap detection with risk-weighted analysis and intelligent test prioritization.