agentic-qe 3.9.9 → 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 (330) 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/skills-manifest.json +2 -2
  12. package/CHANGELOG.md +22 -0
  13. package/assets/agents/v3/helpers/advisor-call.cjs +283 -0
  14. package/assets/agents/v3/qe-coverage-specialist.md +20 -1
  15. package/assets/agents/v3/qe-fleet-commander.md +20 -1
  16. package/assets/agents/v3/qe-pentest-validator.md +20 -1
  17. package/assets/agents/v3/qe-queen-coordinator.md +20 -1
  18. package/assets/agents/v3/qe-risk-assessor.md +20 -1
  19. package/assets/agents/v3/qe-root-cause-analyzer.md +19 -0
  20. package/assets/agents/v3/qe-security-auditor.md +20 -1
  21. package/assets/agents/v3/qe-test-architect.md +33 -1
  22. package/assets/skills/skills-manifest.json +2 -2
  23. package/dist/cli/bundle.js +5 -5
  24. package/dist/cli/chunks/adapter-IKCDCMSI.js +2 -0
  25. package/dist/cli/chunks/{agent-booster-wasm-QEN7W6VC.js → agent-booster-wasm-HM4XSABF.js} +2 -2
  26. package/dist/cli/chunks/{agent-handler-F3RLG42J.js → agent-handler-UDBDLLO4.js} +2 -2
  27. package/dist/cli/chunks/{agent-memory-branch-U3PZ3CPL.js → agent-memory-branch-VIXQ3DAR.js} +2 -2
  28. package/dist/cli/chunks/aqe-learning-engine-W4WW7SQW.js +2 -0
  29. package/dist/cli/chunks/{audit-FF6SP7Q2.js → audit-FWTGLQHH.js} +2 -2
  30. package/dist/cli/chunks/base-UQKFTHOY.js +2 -0
  31. package/dist/cli/chunks/{better-sqlite3-CVXRDGQX.js → better-sqlite3-TYI3CCWU.js} +2 -2
  32. package/dist/cli/chunks/{brain-handler-AMTRZ35W.js → brain-handler-45ZGBLSB.js} +3 -3
  33. package/dist/cli/chunks/{branch-enumerator-Y4A34YFT.js → branch-enumerator-ZBXELCQA.js} +2 -2
  34. package/dist/cli/chunks/{browser-ETSF5GZR.js → browser-2KM5IKEX.js} +2 -2
  35. package/dist/cli/chunks/browser-workflow-NMOEM3HW.js +2 -0
  36. package/dist/cli/chunks/{chunk-3NU4C62D.js → chunk-226DSROQ.js} +3 -3
  37. package/dist/cli/chunks/{chunk-JK4K4EH3.js → chunk-27B575K6.js} +2 -2
  38. package/dist/cli/chunks/{chunk-J2DNMVB5.js → chunk-2IJFZW3N.js} +12 -12
  39. package/dist/cli/chunks/{chunk-BVKS3X2I.js → chunk-32OB4ZYQ.js} +1 -1
  40. package/dist/cli/chunks/{chunk-UYKIPSRX.js → chunk-335CCAOL.js} +1 -1
  41. package/dist/cli/chunks/{chunk-ECNPBD4Y.js → chunk-34WI4QNF.js} +2 -2
  42. package/dist/cli/chunks/chunk-3A4BL62O.js +2 -0
  43. package/dist/cli/chunks/{chunk-4HDG7OS4.js → chunk-3AG647MY.js} +2 -2
  44. package/dist/cli/chunks/{chunk-22HQFULR.js → chunk-3HIDCXW3.js} +1 -1
  45. package/dist/cli/chunks/{chunk-OMRZUYXN.js → chunk-4EKWEDHA.js} +9 -9
  46. package/dist/cli/chunks/{chunk-S6VT7VAO.js → chunk-4FU6YNDP.js} +2 -2
  47. package/dist/cli/chunks/{chunk-2ZHA6ORO.js → chunk-4LOJJ4VX.js} +1 -1
  48. package/dist/cli/chunks/{chunk-Q2ZBPOUX.js → chunk-4VOGUZW5.js} +1 -1
  49. package/dist/cli/chunks/{chunk-QMNAELZG.js → chunk-4ZR5G4MZ.js} +2 -2
  50. package/dist/cli/chunks/{chunk-MDTF7LE6.js → chunk-52ZHPZVX.js} +2 -2
  51. package/dist/cli/chunks/{chunk-5DU4YW2S.js → chunk-53G3OCGS.js} +2 -2
  52. package/dist/cli/chunks/{chunk-NLKJI73E.js → chunk-54TZA65H.js} +2 -2
  53. package/dist/cli/chunks/{chunk-3JCZTTFY.js → chunk-5QKTLOGO.js} +1 -1
  54. package/dist/cli/chunks/{chunk-QHATTMJC.js → chunk-5TATJQ3Z.js} +2 -2
  55. package/dist/cli/chunks/{chunk-CJQLJEO4.js → chunk-5V6DRRLO.js} +2 -2
  56. package/dist/cli/chunks/{chunk-5L3EUZJA.js → chunk-6X7WKNDF.js} +2 -2
  57. package/dist/cli/chunks/chunk-7FWZHYYE.js +2 -0
  58. package/dist/cli/chunks/{chunk-PEEN4AAK.js → chunk-A2ULGMMG.js} +1 -1
  59. package/dist/cli/chunks/{chunk-2KY5B4ON.js → chunk-A53XKLEA.js} +8 -8
  60. package/dist/cli/chunks/{chunk-QSA23PJ6.js → chunk-A5OIXFFL.js} +1 -1
  61. package/dist/cli/chunks/{chunk-VTX4NAWB.js → chunk-ACNL4NFI.js} +2 -2
  62. package/dist/cli/chunks/{chunk-2UP3DYNH.js → chunk-AE6Y5CNJ.js} +2 -2
  63. package/dist/cli/chunks/{chunk-3F666FYP.js → chunk-AO4HDN62.js} +2 -2
  64. package/dist/cli/chunks/{chunk-JIPU4YQK.js → chunk-AOA454FC.js} +2 -2
  65. package/dist/cli/chunks/{chunk-YRORPSPA.js → chunk-B2QVWL5R.js} +2 -2
  66. package/dist/cli/chunks/{chunk-AYMIF4W5.js → chunk-B3L3CT4X.js} +2 -2
  67. package/dist/cli/chunks/{chunk-MXMKHI2I.js → chunk-B4AFVIOA.js} +2 -2
  68. package/dist/cli/chunks/{chunk-R23PJGH7.js → chunk-BCSCJBYQ.js} +2 -2
  69. package/dist/cli/chunks/{chunk-CCCBGKVY.js → chunk-BIV6HWMT.js} +2 -2
  70. package/dist/cli/chunks/{chunk-A6GYFTIA.js → chunk-BNNH3KZP.js} +1 -1
  71. package/dist/cli/chunks/{chunk-74FBSJVC.js → chunk-C234RGWZ.js} +2 -2
  72. package/dist/cli/chunks/{chunk-PRJUO2OQ.js → chunk-C55GEYDA.js} +2 -2
  73. package/dist/cli/chunks/{chunk-IZC5NPHD.js → chunk-CEBZHZ4O.js} +1 -1
  74. package/dist/cli/chunks/{chunk-TTENF6AH.js → chunk-CFQHIWWH.js} +1 -1
  75. package/dist/cli/chunks/{chunk-B3DA4SCL.js → chunk-CJO2V2FB.js} +1 -1
  76. package/dist/cli/chunks/{chunk-CZYTPNUI.js → chunk-CQNXIYQW.js} +2 -2
  77. package/dist/cli/chunks/{chunk-FTF34UME.js → chunk-D2A4TGZY.js} +1 -1
  78. package/dist/cli/chunks/{chunk-MWZN4PYF.js → chunk-DG2OYKUQ.js} +2 -2
  79. package/dist/cli/chunks/{chunk-OFOFXJ3M.js → chunk-DPYCHODC.js} +2 -2
  80. package/dist/cli/chunks/{chunk-JQJHRQRX.js → chunk-E4YKNKQL.js} +2 -2
  81. package/dist/cli/chunks/{chunk-65XCVUP7.js → chunk-EEWTTYRC.js} +1 -1
  82. package/dist/cli/chunks/{chunk-KSJCMXAJ.js → chunk-EGIYLRW5.js} +2 -2
  83. package/dist/cli/chunks/{chunk-ADJGMTIW.js → chunk-EHGTNSJ2.js} +1 -1
  84. package/dist/cli/chunks/{chunk-P6YMECV2.js → chunk-EJNASXOY.js} +2 -2
  85. package/dist/cli/chunks/{chunk-AT2VD2ZP.js → chunk-F7HRGQRS.js} +2 -2
  86. package/dist/cli/chunks/{chunk-C7YD7O74.js → chunk-FF7TSDO4.js} +2 -2
  87. package/dist/cli/chunks/{chunk-MUCFC3YG.js → chunk-FIQNVPYY.js} +2 -2
  88. package/dist/cli/chunks/{chunk-RZYTJSQT.js → chunk-FJOBKT7N.js} +1 -1
  89. package/dist/cli/chunks/{chunk-YXE67VME.js → chunk-FYI52MFF.js} +2 -2
  90. package/dist/cli/chunks/{chunk-DNS7DP2O.js → chunk-GCNTU3QJ.js} +1 -1
  91. package/dist/cli/chunks/{chunk-ZEUORIH2.js → chunk-H56YBNXW.js} +2 -2
  92. package/dist/cli/chunks/{chunk-J62N66ZH.js → chunk-HJMLJNCB.js} +1 -1
  93. package/dist/cli/chunks/chunk-I3IRIJOT.js +2 -0
  94. package/dist/cli/chunks/chunk-IEQ2VYMO.js +3 -0
  95. package/dist/cli/chunks/{chunk-BVOGMK6N.js → chunk-IGRKFVFD.js} +2 -2
  96. package/dist/cli/chunks/{chunk-6LTJP3DO.js → chunk-IJPE6OGD.js} +10 -10
  97. package/dist/cli/chunks/{chunk-HDM43P7H.js → chunk-IJUL2UMO.js} +1 -1
  98. package/dist/cli/chunks/{chunk-EV2NMWJV.js → chunk-ISZJAZ2D.js} +1 -1
  99. package/dist/cli/chunks/{chunk-4CDSEZD6.js → chunk-ITDYTODU.js} +2 -2
  100. package/dist/cli/chunks/{chunk-BYJEK6LX.js → chunk-JHUEBBSX.js} +2 -2
  101. package/dist/cli/chunks/{chunk-2HFPJPQW.js → chunk-JN3CC2TX.js} +2 -2
  102. package/dist/cli/chunks/{chunk-CXWA34RL.js → chunk-JOEEGNNX.js} +2 -2
  103. package/dist/cli/chunks/{chunk-BYPBKVTC.js → chunk-JQX2DHQT.js} +1 -1
  104. package/dist/cli/chunks/{chunk-ZKXA4VBK.js → chunk-JRG4AFUR.js} +3 -3
  105. package/dist/cli/chunks/{chunk-52RZZV4M.js → chunk-JRMNQWRL.js} +3 -3
  106. package/dist/cli/chunks/{chunk-2JAYDTSE.js → chunk-JXDJMVIG.js} +2 -2
  107. package/dist/cli/chunks/{chunk-2X7LDTVD.js → chunk-JYPW22JV.js} +2 -2
  108. package/dist/cli/chunks/{chunk-XZ2JYMFT.js → chunk-KK3KVYE7.js} +2 -2
  109. package/dist/cli/chunks/{chunk-BSES27JE.js → chunk-KSRAA6ZD.js} +3 -3
  110. package/dist/cli/chunks/chunk-KUCU5ML6.js +6 -0
  111. package/dist/cli/chunks/{chunk-QTYTM7C7.js → chunk-KXXLMLMJ.js} +2 -2
  112. package/dist/cli/chunks/{chunk-DI6R2AVP.js → chunk-LKCFJC4Q.js} +1 -1
  113. package/dist/cli/chunks/{chunk-SVLO2DVL.js → chunk-LODXDV4G.js} +2 -2
  114. package/dist/cli/chunks/{chunk-AHOP227C.js → chunk-M4CYXAVP.js} +4 -4
  115. package/dist/cli/chunks/{chunk-6KQLF3ZO.js → chunk-MOLMS6MA.js} +2 -2
  116. package/dist/cli/chunks/{chunk-YISXT54V.js → chunk-NBTM2J4B.js} +2 -2
  117. package/dist/cli/chunks/{chunk-FGW5W3YK.js → chunk-NIFVFUCU.js} +2 -2
  118. package/dist/cli/chunks/{chunk-W57I57M4.js → chunk-OOHKW3UE.js} +2 -2
  119. package/dist/cli/chunks/{chunk-6PJUDLCT.js → chunk-ORA6NIXN.js} +2 -2
  120. package/dist/cli/chunks/{chunk-HOWZFW7G.js → chunk-OSD55UO7.js} +2 -2
  121. package/dist/cli/chunks/{chunk-Z7AFNZMI.js → chunk-OWQRMH3G.js} +2 -2
  122. package/dist/cli/chunks/chunk-QFUINEBN.js +2 -0
  123. package/dist/cli/chunks/{chunk-OEZA7Q2Z.js → chunk-RE2IBX7Z.js} +2 -2
  124. package/dist/cli/chunks/{chunk-5SWY75MJ.js → chunk-RMQQ5UHM.js} +2 -2
  125. package/dist/cli/chunks/{chunk-MZOYBHJ3.js → chunk-ROEMVTXC.js} +3 -3
  126. package/dist/cli/chunks/{chunk-WDWIJDQR.js → chunk-SMTAZQJ3.js} +2 -2
  127. package/dist/cli/chunks/{chunk-W4VDPHWC.js → chunk-TO4NGP3E.js} +1 -1
  128. package/dist/cli/chunks/{chunk-PYTXZMXR.js → chunk-TTXYZUTQ.js} +2 -2
  129. package/dist/cli/chunks/{chunk-WEJJWJ5M.js → chunk-U4NODKRR.js} +2 -2
  130. package/dist/cli/chunks/{chunk-RLLDZNLF.js → chunk-U635PSAW.js} +2 -2
  131. package/dist/cli/chunks/{chunk-QZMBJ67L.js → chunk-UBT7VCKQ.js} +2 -2
  132. package/dist/cli/chunks/{chunk-R5ZKFJ3H.js → chunk-UETM5XDO.js} +1 -1
  133. package/dist/cli/chunks/{chunk-MUIJVPGB.js → chunk-URXG7FMO.js} +4 -3
  134. package/dist/cli/chunks/{chunk-VIIUJRKA.js → chunk-VIWDVS24.js} +2 -2
  135. package/dist/cli/chunks/{chunk-5HM66R4W.js → chunk-VNKCUKUJ.js} +3 -3
  136. package/dist/cli/chunks/{chunk-ZTI3BATG.js → chunk-VXIXHZCN.js} +2 -2
  137. package/dist/cli/chunks/{chunk-GYNGJHYF.js → chunk-WFEXEDMC.js} +2 -2
  138. package/dist/cli/chunks/{chunk-UEKDDUGV.js → chunk-WLX57ULC.js} +2 -2
  139. package/dist/cli/chunks/{chunk-ANLFEGDG.js → chunk-WVQZGLCT.js} +2 -2
  140. package/dist/cli/chunks/{chunk-2BSVGL35.js → chunk-WW5DZ6BU.js} +1 -1
  141. package/dist/cli/chunks/{chunk-4CSINHCB.js → chunk-X364AIY6.js} +1 -1
  142. package/dist/cli/chunks/{chunk-3FAEM5M7.js → chunk-XH7D6EGE.js} +1 -1
  143. package/dist/cli/chunks/{chunk-NQ3WHTLT.js → chunk-XICRAXUR.js} +4 -4
  144. package/dist/cli/chunks/{chunk-WZR4CKR4.js → chunk-XMAV7AIC.js} +1 -1
  145. package/dist/cli/chunks/{chunk-2O3WZ6E3.js → chunk-XSUPK7FI.js} +1 -1
  146. package/dist/cli/chunks/{chunk-QQLQEQJM.js → chunk-XSWOB74I.js} +2 -2
  147. package/dist/cli/chunks/chunk-YPIZMTTA.js +14 -0
  148. package/dist/cli/chunks/{chunk-3XR7ARS6.js → chunk-YT6KBEXE.js} +2 -2
  149. package/dist/cli/chunks/{chunk-VWHALAEO.js → chunk-ZENLP5LF.js} +1 -1
  150. package/dist/cli/chunks/{ci-4QYE6JBM.js → ci-WS32HBBS.js} +2 -2
  151. package/dist/cli/chunks/{ci-output-MV75HUK7.js → ci-output-67R5MSLL.js} +2 -2
  152. package/dist/cli/chunks/circuit-breaker-MA562FT7.js +2 -0
  153. package/dist/cli/chunks/{claude-flow-setup-CZITY7SG.js → claude-flow-setup-4QKGSRS7.js} +2 -2
  154. package/dist/cli/chunks/client-XQGZKXOB.js +2 -0
  155. package/dist/cli/chunks/{cline-installer-ZLQKCPFF.js → cline-installer-6VSROHRY.js} +2 -2
  156. package/dist/cli/chunks/{code-NYEXOJVP.js → code-FBPBHVV3.js} +2 -2
  157. package/dist/cli/chunks/{code-index-extractor-TITXUC44.js → code-index-extractor-62F622V2.js} +2 -2
  158. package/dist/cli/chunks/{codex-installer-TWT4LIL2.js → codex-installer-LSR6DVCU.js} +2 -2
  159. package/dist/cli/chunks/{completions-2KNV2MZG.js → completions-56QOICBN.js} +2 -2
  160. package/dist/cli/chunks/{complexity-analyzer-2U3OVRDX.js → complexity-analyzer-SDH4NWIS.js} +2 -2
  161. package/dist/cli/chunks/{continuedev-installer-BWQBRVTC.js → continuedev-installer-S7ZPL3VC.js} +2 -2
  162. package/dist/cli/chunks/{copilot-installer-CYN33NMG.js → copilot-installer-25GNNKNL.js} +2 -2
  163. package/dist/cli/chunks/{cost-tracker-2GUCBYLK.js → cost-tracker-73J4Y2RS.js} +2 -2
  164. package/dist/cli/chunks/{coverage-BAVD66VL.js → coverage-WEE2AZ5F.js} +3 -3
  165. package/dist/cli/chunks/cross-domain-router-C2ZFCSXJ.js +2 -0
  166. package/dist/cli/chunks/{cursor-installer-ZQAUD47B.js → cursor-installer-DHQ644T3.js} +2 -2
  167. package/dist/cli/chunks/{daemon-VY2LZPIM.js → daemon-3WUJ5E3X.js} +3 -3
  168. package/dist/cli/chunks/{dag-attention-scheduler-JNQWWXSW.js → dag-attention-scheduler-IRLAM43H.js} +2 -2
  169. package/dist/cli/chunks/{detect-Y7BBW4LI.js → detect-DTSB4T4R.js} +2 -2
  170. package/dist/cli/chunks/{domain-handler-473WNSR2.js → domain-handler-DDN2Z5XC.js} +2 -2
  171. package/dist/cli/chunks/{domain-transfer-R4VK7CRR.js → domain-transfer-3RRG4S6R.js} +2 -2
  172. package/dist/cli/chunks/dream-JSZZ67OO.js +2 -0
  173. package/dist/cli/chunks/esm-node-X4TES6NX.js +2 -0
  174. package/dist/cli/chunks/{eval-TJAZGRCM.js → eval-UXEP425X.js} +2 -2
  175. package/dist/cli/chunks/{fast-paths-LMN542IB.js → fast-paths-4XLHS2VN.js} +2 -2
  176. package/dist/cli/chunks/{feature-flags-IMFZ7KED.js → feature-flags-6C2HD76K.js} +2 -2
  177. package/dist/cli/chunks/{feature-flags-WMXIDTXL.js → feature-flags-KXXHAEYF.js} +2 -2
  178. package/dist/cli/chunks/{file-discovery-GXXWQJV3.js → file-discovery-YSDUIZO4.js} +2 -2
  179. package/dist/cli/chunks/{fleet-WIC7RHJV.js → fleet-TYDG5DWK.js} +3 -3
  180. package/dist/cli/chunks/{gnn-wrapper-PVKCXV25.js → gnn-wrapper-GJVYRPHB.js} +2 -2
  181. package/dist/cli/chunks/{heartbeat-handler-BJ6ZZP7Q.js → heartbeat-handler-X63CM35O.js} +4 -4
  182. package/dist/cli/chunks/{heartbeat-scheduler-3SQXTFYU.js → heartbeat-scheduler-NYH4CMVM.js} +2 -2
  183. package/dist/cli/chunks/hnsw-adapter-SQCVEHB5.js +2 -0
  184. package/dist/cli/chunks/hnsw-index-UGVC5IDK.js +2 -0
  185. package/dist/cli/chunks/{hnsw-legacy-bridge-23HFWIPK.js → hnsw-legacy-bridge-YDVUZTJI.js} +2 -2
  186. package/dist/cli/chunks/{hnswlib-node-4GRFMUPD.js → hnswlib-node-TLBDFWA6.js} +2 -2
  187. package/dist/cli/chunks/{hooks-IXH5454I.js → hooks-B6PVGP7D.js} +6 -6
  188. package/dist/cli/chunks/hybrid-router-YZEBKUZJ.js +2 -0
  189. package/dist/cli/chunks/{hypergraph-engine-TEQMJFJJ.js → hypergraph-engine-OQ2ZEG53.js} +2 -2
  190. package/dist/cli/chunks/{hypergraph-handler-3ECUWIG3.js → hypergraph-handler-VPD424MI.js} +3 -3
  191. package/dist/cli/chunks/impact-analyzer-ZIXSRWED.js +2 -0
  192. package/dist/cli/chunks/{init-handler-TZRKW3NZ.js → init-handler-5WYP6NJW.js} +6 -6
  193. package/dist/cli/chunks/init-wizard-MO6PCXPX.js +2 -0
  194. package/dist/cli/chunks/kernel-P54KQB2F.js +2 -0
  195. package/dist/cli/chunks/{kilocode-installer-IPH3O3ZS.js → kilocode-installer-YVY4EVMY.js} +2 -2
  196. package/dist/cli/chunks/{kiro-installer-VROMOOQO.js → kiro-installer-GNT4BN3A.js} +2 -2
  197. package/dist/cli/chunks/knowledge-graph-GU57FQAQ.js +2 -0
  198. package/dist/cli/chunks/{learning-JYQLD66S.js → learning-LD2RSBRS.js} +3 -3
  199. package/dist/cli/chunks/llm-router-ALKXFKLQ.js +36 -0
  200. package/dist/cli/chunks/{load-DMAQB4NC.js → load-XAOTGZYB.js} +2 -2
  201. package/dist/cli/chunks/load-test-5RFBTSS7.js +2 -0
  202. package/dist/cli/chunks/{mcp-K6CSUBMU.js → mcp-WDAJHGH4.js} +2 -2
  203. package/dist/cli/chunks/{memory-5BSXKHSK.js → memory-M7QD57JD.js} +5 -5
  204. package/dist/cli/chunks/memory-backend-GPOP3IR4.js +2 -0
  205. package/dist/cli/chunks/memory-handlers-2NHGZLQM.js +2 -0
  206. package/dist/cli/chunks/multi-model-executor-2XZQK2IN.js +14 -0
  207. package/dist/cli/chunks/{opencode-installer-IUWO2QV6.js → opencode-installer-ASCVY3GG.js} +2 -2
  208. package/dist/cli/chunks/{orchestrator-Z2EM76CR.js → orchestrator-GOZICWN3.js} +6 -6
  209. package/dist/cli/chunks/{pipeline-OL5SI2RI.js → pipeline-YHQRJWV3.js} +2 -2
  210. package/dist/cli/chunks/{platform-VNJIKIHZ.js → platform-4NESYFHN.js} +2 -2
  211. package/dist/cli/chunks/{plugin-SJJUE47D.js → plugin-E24I2RVB.js} +2 -2
  212. package/dist/cli/chunks/{prime-radiant-advanced-wasm-ZLVTCNSH.js → prime-radiant-advanced-wasm-CDVSLR7R.js} +2 -2
  213. package/dist/cli/chunks/protocol-executor-M5IONISJ.js +2 -0
  214. package/dist/cli/chunks/{protocol-handler-HTX44YTW.js → protocol-handler-TGTDKSZB.js} +2 -2
  215. package/dist/cli/chunks/{prove-MGFLVZNS.js → prove-WUKDAMSE.js} +2 -2
  216. package/dist/cli/chunks/provider-manager-BTKK6W7M.js +24 -0
  217. package/dist/cli/chunks/qe-reasoning-bank-WIEXCBVE.js +2 -0
  218. package/dist/cli/chunks/{quality-FMFKPICZ.js → quality-RTIOIS2K.js} +2 -2
  219. package/dist/cli/chunks/queen-coordinator-ZFK6DANW.js +2 -0
  220. package/dist/cli/chunks/{real-embeddings-2BMEEOA2.js → real-embeddings-4JJKAEMO.js} +2 -2
  221. package/dist/cli/chunks/{roocode-installer-2PA3B5JI.js → roocode-installer-XU2IXRBM.js} +2 -2
  222. package/dist/cli/chunks/router-TOFBEI2Q.js +2 -0
  223. package/dist/cli/chunks/routing-feedback-RC2VDP6W.js +2 -0
  224. package/dist/cli/chunks/{routing-handler-SNGSQ757.js → routing-handler-3KBOCIEN.js} +2 -2
  225. package/dist/cli/chunks/{ruvector-commands-54MYLF63.js → ruvector-commands-HHE2ZPX7.js} +2 -2
  226. package/dist/cli/chunks/{rvf-dual-writer-6Q44XJOJ.js → rvf-dual-writer-GAWM2BUZ.js} +2 -2
  227. package/dist/cli/chunks/{rvf-migration-adapter-JECN625C.js → rvf-migration-adapter-HQPEC4BN.js} +2 -2
  228. package/dist/cli/chunks/{rvf-migration-coordinator-MEAVIHQY.js → rvf-migration-coordinator-A4K45EFU.js} +2 -2
  229. package/dist/cli/chunks/rvf-native-adapter-ZOQDH3JY.js +2 -0
  230. package/dist/cli/chunks/safe-db-RIP3X32S.js +2 -0
  231. package/dist/cli/chunks/schedule-Q6KZRLWS.js +2 -0
  232. package/dist/cli/chunks/scheduler-SJO5QPAU.js +2 -0
  233. package/dist/cli/chunks/{security-CXLXTNIV.js → security-UIKUNOXB.js} +3 -3
  234. package/dist/cli/chunks/shared-rvf-adapter-JJCR3AWU.js +2 -0
  235. package/dist/cli/chunks/{shared-rvf-dual-writer-SOQDKE6S.js → shared-rvf-dual-writer-ZUWSLFPH.js} +2 -2
  236. package/dist/cli/chunks/sqlite-persistence-HK2S6XAI.js +2 -0
  237. package/dist/cli/chunks/{status-handler-NNEF4SQV.js → status-handler-E3VSWGA6.js} +2 -2
  238. package/dist/cli/chunks/{structural-health-FY6QIA55.js → structural-health-Y22H4BOU.js} +2 -2
  239. package/dist/cli/chunks/{sync-2QMSZ67Q.js → sync-CA4KWZFS.js} +2 -2
  240. package/dist/cli/chunks/{task-handler-GZJPE2QW.js → task-handler-3EZPIAMD.js} +2 -2
  241. package/dist/cli/chunks/task-handlers-6UVAQAGP.js +2 -0
  242. package/dist/cli/chunks/{test-JVA2S2R2.js → test-Q5DOFSJI.js} +4 -4
  243. package/dist/cli/chunks/{test-scheduling-PRMP4H6X.js → test-scheduling-BSXWCIMQ.js} +3 -3
  244. package/dist/cli/chunks/token-bootstrap-XGEZU2CS.js +2 -0
  245. package/dist/cli/chunks/{token-usage-G73L32OF.js → token-usage-BZX5TCG6.js} +2 -2
  246. package/dist/cli/chunks/{transformers-U3TSLEGO.js → transformers-7ITQPXAU.js} +2 -2
  247. package/dist/cli/chunks/{tree-sitter-wasm-parser-QXP2MNSX.js → tree-sitter-wasm-parser-ZYBBNYR3.js} +2 -2
  248. package/dist/cli/chunks/{types-BIQ7O5VR.js → types-ACZ5VVRC.js} +2 -2
  249. package/dist/cli/chunks/unified-memory-EXO6WK33.js +2 -0
  250. package/dist/cli/chunks/unified-memory-hnsw-7HPSTFVV.js +2 -0
  251. package/dist/cli/chunks/unified-persistence-WC3O4WOJ.js +2 -0
  252. package/dist/cli/chunks/{validate-CTBEA4BZ.js → validate-IQL6OVXD.js} +2 -2
  253. package/dist/cli/chunks/{validate-swarm-PHT6XW3A.js → validate-swarm-J52J2K5X.js} +2 -2
  254. package/dist/cli/chunks/{vibium-CRCYAH3V.js → vibium-XSE76PXE.js} +2 -2
  255. package/dist/cli/chunks/visual-security-COW3OCEE.js +2 -0
  256. package/dist/cli/chunks/{web-tree-sitter-2MH3G7K7.js → web-tree-sitter-YM6QXUIY.js} +2 -2
  257. package/dist/cli/chunks/{windsurf-installer-LBRNYFSI.js → windsurf-installer-M27DVL4H.js} +2 -2
  258. package/dist/cli/chunks/{witness-chain-HNFQLO7Q.js → witness-chain-NB5LP73S.js} +2 -2
  259. package/dist/cli/chunks/witness-chain-XQXF3RSP.js +2 -0
  260. package/dist/cli/chunks/{workflow-DNAF6BQ2.js → workflow-5DODQ6XS.js} +4 -4
  261. package/dist/cli/chunks/workflow-orchestrator-HSIZEKZM.js +2 -0
  262. package/dist/cli/chunks/{wrappers-U7AO6ZZN.js → wrappers-K7HHCIYD.js} +2 -2
  263. package/dist/cli/commands/llm-router.js +252 -0
  264. package/dist/coordination/queen-task-management.js +8 -1
  265. package/dist/init/init-wizard-steps.js +9 -0
  266. package/dist/init/phases/12-verification.js +8 -0
  267. package/dist/kernel/unified-memory-schemas.d.ts +1 -1
  268. package/dist/kernel/unified-memory-schemas.js +2 -1
  269. package/dist/mcp/bundle.js +47 -44
  270. package/dist/mcp/protocol-server.js +87 -0
  271. package/dist/routing/advisor/circuit-breaker.d.ts +56 -0
  272. package/dist/routing/advisor/circuit-breaker.js +128 -0
  273. package/dist/routing/advisor/domain-prompts.d.ts +14 -0
  274. package/dist/routing/advisor/domain-prompts.js +53 -0
  275. package/dist/routing/advisor/index.d.ts +10 -0
  276. package/dist/routing/advisor/index.js +9 -0
  277. package/dist/routing/advisor/multi-model-executor.d.ts +60 -0
  278. package/dist/routing/advisor/multi-model-executor.js +176 -0
  279. package/dist/routing/advisor/redaction.d.ts +40 -0
  280. package/dist/routing/advisor/redaction.js +187 -0
  281. package/dist/routing/advisor/types.d.ts +101 -0
  282. package/dist/routing/advisor/types.js +9 -0
  283. package/dist/routing/queen-integration.d.ts +3 -0
  284. package/dist/routing/queen-integration.js +7 -1
  285. package/dist/routing/routing-feedback.d.ts +7 -1
  286. package/dist/routing/routing-feedback.js +57 -11
  287. package/dist/routing/tiny-dancer-router.d.ts +35 -1
  288. package/dist/routing/tiny-dancer-router.js +33 -0
  289. package/dist/routing/types.d.ts +12 -0
  290. package/package.json +1 -1
  291. package/dist/cli/chunks/adapter-XKXEZEMM.js +0 -2
  292. package/dist/cli/chunks/aqe-learning-engine-K7XGBDMZ.js +0 -2
  293. package/dist/cli/chunks/base-NUF35LIJ.js +0 -2
  294. package/dist/cli/chunks/browser-workflow-MWPELXFA.js +0 -2
  295. package/dist/cli/chunks/chunk-ENG5UF7M.js +0 -7
  296. package/dist/cli/chunks/chunk-NVVF5ROM.js +0 -14
  297. package/dist/cli/chunks/chunk-VRH3YLO2.js +0 -2
  298. package/dist/cli/chunks/client-VXVVUQDV.js +0 -2
  299. package/dist/cli/chunks/cross-domain-router-HUJG6CFC.js +0 -2
  300. package/dist/cli/chunks/dream-QQDRI2EQ.js +0 -2
  301. package/dist/cli/chunks/esm-node-Y3HIFLTX.js +0 -2
  302. package/dist/cli/chunks/hnsw-adapter-VKS7ORL2.js +0 -2
  303. package/dist/cli/chunks/hnsw-index-GPUBY6EQ.js +0 -2
  304. package/dist/cli/chunks/impact-analyzer-D6MBGRKX.js +0 -2
  305. package/dist/cli/chunks/init-wizard-S6P2MFJF.js +0 -2
  306. package/dist/cli/chunks/kernel-EFDDMNXJ.js +0 -2
  307. package/dist/cli/chunks/knowledge-graph-4PM4DFH3.js +0 -2
  308. package/dist/cli/chunks/llm-router-CIICNICY.js +0 -30
  309. package/dist/cli/chunks/load-test-PPSWF3TO.js +0 -2
  310. package/dist/cli/chunks/memory-backend-3E6BA2JU.js +0 -2
  311. package/dist/cli/chunks/memory-handlers-APOLXPNH.js +0 -2
  312. package/dist/cli/chunks/protocol-executor-2RD52J5J.js +0 -2
  313. package/dist/cli/chunks/qe-reasoning-bank-OGKT52EN.js +0 -2
  314. package/dist/cli/chunks/queen-coordinator-B63YXNI6.js +0 -2
  315. package/dist/cli/chunks/router-NDQCJQC6.js +0 -2
  316. package/dist/cli/chunks/routing-feedback-PSN2RLDO.js +0 -2
  317. package/dist/cli/chunks/rvf-native-adapter-F56HQKLS.js +0 -2
  318. package/dist/cli/chunks/safe-db-LMRMNROL.js +0 -2
  319. package/dist/cli/chunks/schedule-OZSUYPPC.js +0 -2
  320. package/dist/cli/chunks/scheduler-GFXCQ6ZA.js +0 -2
  321. package/dist/cli/chunks/shared-rvf-adapter-RZPF4WWK.js +0 -2
  322. package/dist/cli/chunks/sqlite-persistence-VP67CJPK.js +0 -2
  323. package/dist/cli/chunks/task-handlers-AHM37D4I.js +0 -2
  324. package/dist/cli/chunks/token-bootstrap-YJEHCBV2.js +0 -2
  325. package/dist/cli/chunks/unified-memory-JB4KPMPI.js +0 -2
  326. package/dist/cli/chunks/unified-memory-hnsw-RPSZZIWP.js +0 -2
  327. package/dist/cli/chunks/unified-persistence-L23T4C5C.js +0 -2
  328. package/dist/cli/chunks/visual-security-F2I524IQ.js +0 -2
  329. package/dist/cli/chunks/witness-chain-CN6FCWRY.js +0 -2
  330. package/dist/cli/chunks/workflow-orchestrator-JJBCCNYI.js +0 -2
package/CHANGELOG.md CHANGED
@@ -5,6 +5,28 @@ All notable changes to the Agentic QE project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [3.9.10] - 2026-04-13
9
+
10
+ **Use any LLM provider for QE advisory tasks.** Route simple questions to cheaper models, keep complex reasoning on premium providers, and let the fleet automatically route around outages. Sensitive data is scrubbed before prompts leave your environment. ([ADR-092](docs/implementation/adrs/ADR-092-provider-agnostic-advisor-strategy.md))
11
+
12
+ ### Added
13
+
14
+ - **Multi-provider advisor routing** — Distribute advisory tasks across Claude, OpenAI, Ollama, OpenRouter, or any compatible provider. Route by task complexity, cost, or provider health. If one provider goes down, the fleet routes around it automatically.
15
+ - **Automatic PII redaction** — API keys, credentials, secrets, and PII are stripped from prompts before they reach any external advisor. Three modes: `strict` (credentials + PII), `balanced` (credentials only), `off` (for self-hosted like Ollama).
16
+ - **Per-provider circuit breakers** — Detect provider degradation and stop sending requests before they time out. Automatic recovery probes re-enable providers when they come back.
17
+ - **`aqe llm-router` CLI command** — Inspect provider health, circuit breaker state, routing weights, and configuration.
18
+ - **8 QE agents upgraded** — coverage-specialist, fleet-commander, pentest-validator, queen-coordinator, risk-assessor, root-cause-analyzer, security-auditor, and test-architect all support multi-provider routing out of the box.
19
+
20
+ ### Fixed
21
+
22
+ - Distribution pipeline edge cases when multiple providers respond simultaneously
23
+ - Error handling in routing-feedback collection
24
+
25
+ ### Changed
26
+
27
+ - Queen coordinator now delegates advisory tasks through the advisor routing layer
28
+ - Tiny-dancer router gains an advisor fallback path for when primary routing is unavailable
29
+
8
30
  ## [3.9.9] - 2026-04-09
9
31
 
10
32
  This release ships **`qe-browser`** — a new fleet skill that gives every QE agent a real browser through a ~10MB Go binary instead of a 300MB Playwright install. Built on [Vibium](https://github.com/VibiumDev/vibium) (WebDriver BiDi) and shipped under [ADR-091](docs/implementation/adrs/ADR-091-qe-browser-skill-vibium-engine.md).
@@ -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.
@@ -939,9 +939,9 @@
939
939
  },
940
940
  "metadata": {
941
941
  "generatedBy": "Agentic QE Fleet",
942
- "fleetVersion": "3.9.9",
942
+ "fleetVersion": "3.9.10",
943
943
  "manifestVersion": "1.4.0",
944
- "lastUpdated": "2026-04-09T00:00:00.000Z",
944
+ "lastUpdated": "2026-04-13T00:00:00.000Z",
945
945
  "contributors": [
946
946
  {
947
947
  "name": "@fndlalit",