agentic-qe 3.15.11 → 3.15.13

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 (522) hide show
  1. package/.claude/hooks/aqe-hook.cjs +38 -2
  2. package/.claude/skills/skills-manifest.json +1 -1
  3. package/CHANGELOG.md +267 -0
  4. package/assets/skills/skills-manifest.json +1 -1
  5. package/dist/cli/bundle.js +6 -6
  6. package/dist/cli/chunks/adapter-KCQDVYY2.js +2 -0
  7. package/dist/cli/chunks/{agent-booster-wasm-TIDSQ3ZK.js → agent-booster-wasm-6RRQWMNE.js} +2 -2
  8. package/dist/cli/chunks/{agent-handler-G3EPBVA7.js → agent-handler-AOH6TV7W.js} +2 -2
  9. package/dist/cli/chunks/{agent-memory-branch-ARC5C7GW.js → agent-memory-branch-2P54SF5N.js} +2 -2
  10. package/dist/cli/chunks/aqe-learning-engine-SAQOHSGN.js +2 -0
  11. package/dist/cli/chunks/{arena-K4I4QDXB.js → arena-NSVFCAF5.js} +2 -2
  12. package/dist/cli/chunks/{arena-36DTATJV.js → arena-X6MOGQHA.js} +4 -4
  13. package/dist/cli/chunks/{audit-WQSJSJZF.js → audit-27DJLQNM.js} +3 -3
  14. package/dist/cli/chunks/base-WCACU3FN.js +2 -0
  15. package/dist/cli/chunks/{better-sqlite3-BB4K67MT.js → better-sqlite3-BU5GXILS.js} +2 -2
  16. package/dist/cli/chunks/{brain-handler-CU3GOIU3.js → brain-handler-GTQNHHZS.js} +3 -3
  17. package/dist/cli/chunks/{branch-enumerator-NJQX7ZNB.js → branch-enumerator-5CLULOCU.js} +2 -2
  18. package/dist/cli/chunks/{browser-6YJF4FQW.js → browser-R4DMU3LN.js} +2 -2
  19. package/dist/cli/chunks/browser-workflow-G6IASEAP.js +2 -0
  20. package/dist/cli/chunks/{chunk-G4FAPO57.js → chunk-2G7TVT6W.js} +2 -2
  21. package/dist/cli/chunks/{chunk-HDNWSKHA.js → chunk-32ZMWEP3.js} +2 -2
  22. package/dist/cli/chunks/{chunk-FWSGPE3V.js → chunk-3AN5TNGD.js} +3 -3
  23. package/dist/cli/chunks/{chunk-X4J73KP3.js → chunk-3LJ7LQMV.js} +1 -1
  24. package/dist/cli/chunks/{chunk-3RHOPP7A.js → chunk-3QZEGE67.js} +1 -1
  25. package/dist/cli/chunks/{chunk-RBZCA7SD.js → chunk-3RZV5DGO.js} +2 -2
  26. package/dist/cli/chunks/{chunk-DDEOZPWJ.js → chunk-3Y2ROSCL.js} +2 -2
  27. package/dist/cli/chunks/{chunk-LD5CFK53.js → chunk-3Y7TJFHU.js} +2 -2
  28. package/dist/cli/chunks/{chunk-I36CRDHF.js → chunk-3YNLWPBF.js} +2 -2
  29. package/dist/cli/chunks/{chunk-ZMC543GI.js → chunk-42J34YG4.js} +2 -2
  30. package/dist/cli/chunks/{chunk-YNOCQ2SL.js → chunk-4OVC4RIL.js} +1 -1
  31. package/dist/cli/chunks/{chunk-2KFFEKSI.js → chunk-526QYFJU.js} +2 -2
  32. package/dist/cli/chunks/{chunk-LBX7M4LW.js → chunk-5FKWCZNF.js} +2 -2
  33. package/dist/cli/chunks/{chunk-OH5V5EJW.js → chunk-5K26BEYB.js} +2 -2
  34. package/dist/cli/chunks/{chunk-TCYSBC7Y.js → chunk-5MDERQH3.js} +1 -1
  35. package/dist/cli/chunks/{chunk-V5AADCBC.js → chunk-5VMAV6T6.js} +1 -1
  36. package/dist/cli/chunks/{chunk-YBBT3YYG.js → chunk-5ZGM3RMH.js} +1 -1
  37. package/dist/cli/chunks/{chunk-RTY7VSZB.js → chunk-6KATY3KS.js} +2 -2
  38. package/dist/cli/chunks/{chunk-LPU6PAJE.js → chunk-6Z7PRBSG.js} +2 -2
  39. package/dist/cli/chunks/{chunk-6NA3KZZT.js → chunk-72ASBE35.js} +7 -7
  40. package/dist/cli/chunks/{chunk-GBFUANTC.js → chunk-756CGMEH.js} +1 -1
  41. package/dist/cli/chunks/{chunk-UTTSH4NH.js → chunk-75RDHBAX.js} +3 -3
  42. package/dist/cli/chunks/{chunk-XGPTZUKQ.js → chunk-7CMTY45A.js} +2 -2
  43. package/dist/cli/chunks/{chunk-NC6K7SCQ.js → chunk-7JUC2MVZ.js} +2 -2
  44. package/dist/cli/chunks/{chunk-RTFKTKSO.js → chunk-7NA7JXNB.js} +2 -2
  45. package/dist/cli/chunks/{chunk-GWJWSLDA.js → chunk-7PLIEBY7.js} +2 -2
  46. package/dist/cli/chunks/{chunk-OURITHFV.js → chunk-7YTGHGK4.js} +2 -2
  47. package/dist/cli/chunks/{chunk-ITL3IN2E.js → chunk-A64JFBWI.js} +2 -2
  48. package/dist/cli/chunks/{chunk-OHR7C777.js → chunk-AL6FBH3E.js} +2 -2
  49. package/dist/cli/chunks/{chunk-5N25I53C.js → chunk-AQSVJNEH.js} +2 -2
  50. package/dist/cli/chunks/{chunk-FL32MTKT.js → chunk-ARJW4I2O.js} +2 -2
  51. package/dist/cli/chunks/{chunk-ZQHDA4O7.js → chunk-ASQYASNV.js} +1 -1
  52. package/dist/cli/chunks/{chunk-4HJKQIX5.js → chunk-BEGR4D6N.js} +2 -2
  53. package/dist/cli/chunks/{chunk-G77MLBDF.js → chunk-BK577VL7.js} +2 -2
  54. package/dist/cli/chunks/{chunk-NPZOBSAN.js → chunk-BLSLEVDI.js} +2 -2
  55. package/dist/cli/chunks/{chunk-R5LGV6GZ.js → chunk-BTVEYBW2.js} +2 -2
  56. package/dist/cli/chunks/{chunk-2CW7VRPH.js → chunk-C6JTLKG7.js} +5 -5
  57. package/dist/cli/chunks/{chunk-EWPUQCN4.js → chunk-C7JM7CD3.js} +2 -2
  58. package/dist/cli/chunks/{chunk-325QCVDI.js → chunk-CCMKSHAT.js} +2 -2
  59. package/dist/cli/chunks/{chunk-V7DA4HAK.js → chunk-CE7B5LU7.js} +1 -1
  60. package/dist/cli/chunks/{chunk-4RAQ7PJA.js → chunk-CM4LSLKR.js} +2 -2
  61. package/dist/cli/chunks/chunk-CRWPZT74.js +62 -0
  62. package/dist/cli/chunks/{chunk-U3LJNNVJ.js → chunk-CT6SAVXQ.js} +2 -2
  63. package/dist/cli/chunks/chunk-CV77DMDQ.js +2 -0
  64. package/dist/cli/chunks/{chunk-UMVSWQNB.js → chunk-DFUASIKA.js} +2 -2
  65. package/dist/cli/chunks/{chunk-KSE5TDM5.js → chunk-DLD7RUZ4.js} +2 -2
  66. package/dist/cli/chunks/{chunk-4MUBW4RT.js → chunk-DNDL7SOS.js} +2 -2
  67. package/dist/cli/chunks/{chunk-EJPK7OTR.js → chunk-DVGRPK7A.js} +2 -2
  68. package/dist/cli/chunks/{chunk-WCVCOT4E.js → chunk-E56B6IDX.js} +2 -2
  69. package/dist/cli/chunks/{chunk-7HEMJHPP.js → chunk-E7CLYGS7.js} +1 -1
  70. package/dist/cli/chunks/{chunk-R5GRABPQ.js → chunk-EXGMJFAT.js} +1 -1
  71. package/dist/cli/chunks/chunk-F3YS57NF.js +21 -0
  72. package/dist/cli/chunks/{chunk-I4K2HTQU.js → chunk-FZ76G4QJ.js} +1 -1
  73. package/dist/cli/chunks/{chunk-4UX35V7P.js → chunk-G2Q66Z23.js} +2 -2
  74. package/dist/cli/chunks/{chunk-KJCIMNHS.js → chunk-G6WDYBLQ.js} +1 -1
  75. package/dist/cli/chunks/{chunk-VWUZSNVC.js → chunk-G77ERMUD.js} +1 -1
  76. package/dist/cli/chunks/{chunk-FZHSG75I.js → chunk-GB6HBNH2.js} +2 -2
  77. package/dist/cli/chunks/{chunk-KDI5JOYZ.js → chunk-GHM6MQNK.js} +2 -2
  78. package/dist/cli/chunks/{chunk-H7BLYMNU.js → chunk-GHY6Z6KO.js} +5 -5
  79. package/dist/cli/chunks/{chunk-TFW7CCKS.js → chunk-GII6UM3F.js} +1 -1
  80. package/dist/cli/chunks/{chunk-DOBZPSKE.js → chunk-GU5HNCWI.js} +1 -1
  81. package/dist/cli/chunks/{chunk-AFFN6E6Q.js → chunk-H4GG2NLO.js} +2 -2
  82. package/dist/cli/chunks/{chunk-7R5HC56U.js → chunk-H4H2YSFH.js} +1 -1
  83. package/dist/cli/chunks/{chunk-J4JMCZVA.js → chunk-HD7YIFOI.js} +2 -2
  84. package/dist/cli/chunks/{chunk-5MTWCCZJ.js → chunk-HOAJUIBQ.js} +2 -2
  85. package/dist/cli/chunks/{chunk-T5KHJ3J7.js → chunk-HQZGPJYG.js} +2 -2
  86. package/dist/cli/chunks/{chunk-VEEYL2CZ.js → chunk-HZ5NXFXH.js} +2 -2
  87. package/dist/cli/chunks/{chunk-LQ4NUC6Q.js → chunk-I3C7JOXC.js} +2 -2
  88. package/dist/cli/chunks/{chunk-Z2EA7A4Z.js → chunk-IC3TQEOA.js} +1 -1
  89. package/dist/cli/chunks/{chunk-E44NNCEU.js → chunk-IJUHSJ2U.js} +2 -2
  90. package/dist/cli/chunks/{chunk-EH2S6AOR.js → chunk-J2ZIFFM6.js} +2 -2
  91. package/dist/cli/chunks/{chunk-GVKVJJQX.js → chunk-JGZ722G3.js} +2 -2
  92. package/dist/cli/chunks/{chunk-EK5GMOSO.js → chunk-JQGMW45H.js} +1 -1
  93. package/dist/cli/chunks/{chunk-XGBU3KEM.js → chunk-JRRXCODW.js} +2 -2
  94. package/dist/cli/chunks/{chunk-5WYZHDIZ.js → chunk-K3TLLJMX.js} +1 -1
  95. package/dist/cli/chunks/{chunk-LXQ3B4RY.js → chunk-K4CZA77U.js} +2 -2
  96. package/dist/cli/chunks/chunk-K65CGKLD.js +8 -0
  97. package/dist/cli/chunks/{chunk-HFFPYC4G.js → chunk-KADFXPPN.js} +2 -2
  98. package/dist/cli/chunks/{chunk-APPZATXA.js → chunk-KB56CPU4.js} +2 -2
  99. package/dist/cli/chunks/{chunk-25P77WA5.js → chunk-KCW47QR5.js} +1 -1
  100. package/dist/cli/chunks/{chunk-WM3SRRA6.js → chunk-KDNJ4F3P.js} +2 -2
  101. package/dist/cli/chunks/{chunk-5ERFHEEE.js → chunk-KDVZND5Q.js} +1 -1
  102. package/dist/cli/chunks/{chunk-YOCULVHR.js → chunk-KUAKV3IW.js} +1 -1
  103. package/dist/cli/chunks/{chunk-M5XYIQYZ.js → chunk-KV4T4MXK.js} +2 -2
  104. package/dist/cli/chunks/{chunk-MIK4RBEH.js → chunk-KWYH3FI4.js} +1 -1
  105. package/dist/cli/chunks/{chunk-UKKYMW3S.js → chunk-LFJALJOA.js} +2 -2
  106. package/dist/cli/chunks/{chunk-K7V2WZNF.js → chunk-LL7LDPXS.js} +1 -1
  107. package/dist/cli/chunks/{chunk-55CH76ZO.js → chunk-LUZNKJE6.js} +3 -3
  108. package/dist/cli/chunks/{chunk-OV5RPLKV.js → chunk-LWR3FV3Y.js} +2 -2
  109. package/dist/cli/chunks/{chunk-SMVVAVN2.js → chunk-LZYQHVD4.js} +2 -2
  110. package/dist/cli/chunks/{chunk-672XOJDG.js → chunk-M6AAGIG7.js} +1 -1
  111. package/dist/cli/chunks/{chunk-WCAVIJ64.js → chunk-MAMQA43L.js} +1 -1
  112. package/dist/cli/chunks/chunk-MB46UBGY.js +3 -0
  113. package/dist/cli/chunks/{chunk-AP3ADWDK.js → chunk-MFW5HSG4.js} +2 -2
  114. package/dist/cli/chunks/{chunk-NKTWKYHB.js → chunk-MGZ5FJUW.js} +2 -2
  115. package/dist/cli/chunks/{chunk-ERN43HOX.js → chunk-MVVB7C2E.js} +410 -410
  116. package/dist/cli/chunks/{chunk-57LNKSW7.js → chunk-N4CYAKOX.js} +2 -2
  117. package/dist/cli/chunks/chunk-NT4DBXSX.js +2 -0
  118. package/dist/cli/chunks/{chunk-BZPE3LDO.js → chunk-NU3W5WFT.js} +2 -2
  119. package/dist/cli/chunks/chunk-NURIILUB.js +2 -0
  120. package/dist/cli/chunks/{chunk-ITPGWGQS.js → chunk-NW7IBHJA.js} +4 -4
  121. package/dist/cli/chunks/{chunk-OD5D4LSZ.js → chunk-NZ3GUMB2.js} +2 -2
  122. package/dist/cli/chunks/{chunk-35M2X3C5.js → chunk-NZD4DPSU.js} +2 -2
  123. package/dist/cli/chunks/{chunk-EIDJNT5C.js → chunk-O6FGXMHD.js} +1 -1
  124. package/dist/cli/chunks/{chunk-OYJC3YON.js → chunk-OCAEXYFA.js} +2 -2
  125. package/dist/cli/chunks/{chunk-Y7B5EUIJ.js → chunk-OFACHK5O.js} +2 -2
  126. package/dist/cli/chunks/{chunk-5MNASJOH.js → chunk-P7A4NKTZ.js} +2 -2
  127. package/dist/cli/chunks/{chunk-M7XFBSIK.js → chunk-PB6J6HAA.js} +2 -2
  128. package/dist/cli/chunks/{chunk-5HQP4SLM.js → chunk-PHP5UBT4.js} +2 -2
  129. package/dist/cli/chunks/{chunk-KXS3Y2AX.js → chunk-PIDQVU3L.js} +2 -2
  130. package/dist/cli/chunks/{chunk-4UBVAJFO.js → chunk-PSFSPGUD.js} +2 -2
  131. package/dist/cli/chunks/chunk-PT4FMJPQ.js +3 -0
  132. package/dist/cli/chunks/{chunk-HDJUYAZG.js → chunk-Q3UDLV5Z.js} +1 -1
  133. package/dist/cli/chunks/{chunk-CIAL4YRY.js → chunk-QDEJ4CI2.js} +2 -2
  134. package/dist/cli/chunks/{chunk-S6IYEBAI.js → chunk-QPNG5ZN2.js} +2 -2
  135. package/dist/cli/chunks/{chunk-YPX2TV3M.js → chunk-R7SYRCRP.js} +1 -1
  136. package/dist/cli/chunks/{chunk-XNLIWQYE.js → chunk-RF7HWBHN.js} +2 -2
  137. package/dist/cli/chunks/{chunk-5YLOLACR.js → chunk-RFNW2LGD.js} +2 -2
  138. package/dist/cli/chunks/{chunk-2VLYUF7U.js → chunk-S5AZCIZS.js} +2 -2
  139. package/dist/cli/chunks/{chunk-ETVAYGCB.js → chunk-SE4VNN4I.js} +3 -3
  140. package/dist/cli/chunks/{chunk-E6PF35JZ.js → chunk-SG3NX7QE.js} +2 -2
  141. package/dist/cli/chunks/{chunk-VYTILW4R.js → chunk-SSU73QAX.js} +2 -2
  142. package/dist/cli/chunks/{chunk-ZP75ASUU.js → chunk-SVLQRAMF.js} +1 -1
  143. package/dist/cli/chunks/{chunk-JGJXXAS6.js → chunk-SYV2V3PL.js} +4 -4
  144. package/dist/cli/chunks/{chunk-4RH5I24Q.js → chunk-T3PGQFDI.js} +2 -2
  145. package/dist/cli/chunks/{chunk-O4JAKWWM.js → chunk-TCBBNUBP.js} +17 -17
  146. package/dist/cli/chunks/{chunk-QDESWOZP.js → chunk-TOQWL2ZF.js} +2 -2
  147. package/dist/cli/chunks/{chunk-NTB342NJ.js → chunk-TSQC2KKZ.js} +4 -4
  148. package/dist/cli/chunks/{chunk-NQZNMCZU.js → chunk-TWDW32W2.js} +2 -2
  149. package/dist/cli/chunks/{chunk-CO3DX2AX.js → chunk-TWJTK4CC.js} +2 -2
  150. package/dist/cli/chunks/{chunk-FUYOOKTH.js → chunk-U2FUXDDJ.js} +3 -3
  151. package/dist/cli/chunks/{chunk-XDI5X3FR.js → chunk-UDQSYWVF.js} +1 -1
  152. package/dist/cli/chunks/chunk-UOC3O6RP.js +5 -0
  153. package/dist/cli/chunks/chunk-UT2VZ33P.js +2 -0
  154. package/dist/cli/chunks/{chunk-IOZRKXR5.js → chunk-UTRV7T2N.js} +2 -2
  155. package/dist/cli/chunks/{chunk-ZMHCMJ4J.js → chunk-UXZSUMEA.js} +2 -2
  156. package/dist/cli/chunks/{chunk-G4CKPWF6.js → chunk-VRHRBAEM.js} +1 -1
  157. package/dist/cli/chunks/{chunk-AUUJBXWX.js → chunk-VRVMIPTM.js} +2 -2
  158. package/dist/cli/chunks/{chunk-IENZSO3K.js → chunk-VTDFVFST.js} +2 -2
  159. package/dist/cli/chunks/{chunk-JFLU7L3W.js → chunk-VTOBUZL6.js} +2 -2
  160. package/dist/cli/chunks/{chunk-KKYO2NKV.js → chunk-VU5TBX2V.js} +2 -2
  161. package/dist/cli/chunks/{chunk-XS2XF3YG.js → chunk-W26B7ERY.js} +1 -1
  162. package/dist/cli/chunks/{chunk-DOFREOPQ.js → chunk-W2QWSQVE.js} +2 -2
  163. package/dist/cli/chunks/{chunk-KSLLHFVY.js → chunk-W3INMZZ6.js} +1 -1
  164. package/dist/cli/chunks/{chunk-FLU5FDSC.js → chunk-W3PPFHI5.js} +59 -59
  165. package/dist/cli/chunks/chunk-WKGTGOYS.js +13 -0
  166. package/dist/cli/chunks/{chunk-4X4MWMHB.js → chunk-WNQS4WTS.js} +2 -2
  167. package/dist/cli/chunks/{chunk-XJKZ7FTR.js → chunk-WO274FRI.js} +2 -2
  168. package/dist/cli/chunks/{chunk-76SNL7GU.js → chunk-WOCGL4QP.js} +2 -2
  169. package/dist/cli/chunks/{chunk-HYXUN7BW.js → chunk-WQL7WCIZ.js} +1 -1
  170. package/dist/cli/chunks/{chunk-BTVWA35P.js → chunk-X2Z7F4EU.js} +2 -2
  171. package/dist/cli/chunks/{chunk-VBK2YAYY.js → chunk-X7N2JF2X.js} +2 -2
  172. package/dist/cli/chunks/{chunk-NT7JRHMH.js → chunk-XEAEYC6Y.js} +1 -1
  173. package/dist/cli/chunks/{chunk-G2IJFNZS.js → chunk-XNBOGCF3.js} +2 -2
  174. package/dist/cli/chunks/{chunk-LCVEEII4.js → chunk-XPRVF4YE.js} +2 -2
  175. package/dist/cli/chunks/{chunk-AMZKAJLJ.js → chunk-YBQH2VOP.js} +2 -2
  176. package/dist/cli/chunks/{chunk-JUMICXM6.js → chunk-YQFLQE53.js} +2 -2
  177. package/dist/cli/chunks/{chunk-M5RQ6U3G.js → chunk-YSZ5OE3Z.js} +2 -2
  178. package/dist/cli/chunks/{chunk-RQMCZQN2.js → chunk-YXRASAPI.js} +2 -2
  179. package/dist/cli/chunks/{chunk-X3PZCXWG.js → chunk-YZEXYO4W.js} +1 -1
  180. package/dist/cli/chunks/{chunk-TL6OFMXF.js → chunk-YZWBNBTW.js} +2 -2
  181. package/dist/cli/chunks/{chunk-CFWGGRE7.js → chunk-ZAKQLAHT.js} +1 -1
  182. package/dist/cli/chunks/ci-ENOASTYB.js +81 -0
  183. package/dist/cli/chunks/{ci-config-J665XNOX.js → ci-config-B26OXHQM.js} +2 -2
  184. package/dist/cli/chunks/{ci-output-PEQQQWVD.js → ci-output-JTCLLNOQ.js} +2 -2
  185. package/dist/cli/chunks/{circuit-breaker-HHB2JSKH.js → circuit-breaker-23JMFNM5.js} +2 -2
  186. package/dist/cli/chunks/{claude-flow-setup-JKUJRWPN.js → claude-flow-setup-ON6L462G.js} +2 -2
  187. package/dist/cli/chunks/client-TV3V2YZ5.js +2 -0
  188. package/dist/cli/chunks/{cline-installer-Y77BWTAN.js → cline-installer-OWQ4D2FQ.js} +2 -2
  189. package/dist/cli/chunks/{code-LV2HAGJY.js → code-2ZRL7SEU.js} +19 -18
  190. package/dist/cli/chunks/{code-index-extractor-4GKKSETB.js → code-index-extractor-JXSQVM67.js} +2 -2
  191. package/dist/cli/chunks/{codex-installer-WMKBYE5Y.js → codex-installer-7LXZYBSQ.js} +2 -2
  192. package/dist/cli/chunks/{completions-SBGFAOIJ.js → completions-C2LR623C.js} +2 -2
  193. package/dist/cli/chunks/{complexity-analyzer-AQHFIJXC.js → complexity-analyzer-TGQLHCYJ.js} +2 -2
  194. package/dist/cli/chunks/{continuedev-installer-26AYFS2E.js → continuedev-installer-RUGD24D2.js} +2 -2
  195. package/dist/cli/chunks/{copilot-installer-4UD3DK55.js → copilot-installer-ZLFVLEJP.js} +2 -2
  196. package/dist/cli/chunks/core-handlers-PZT4OLWR.js +2 -0
  197. package/dist/cli/chunks/{cost-tracker-TP4NZCG4.js → cost-tracker-RT4QL745.js} +2 -2
  198. package/dist/cli/chunks/{coverage-B2KIXHAI.js → coverage-NV3C4IMM.js} +11 -10
  199. package/dist/cli/chunks/cross-domain-router-QOFCZ7G4.js +2 -0
  200. package/dist/cli/chunks/{cursor-installer-AVZEQZ4W.js → cursor-installer-LJKLNFF6.js} +2 -2
  201. package/dist/cli/chunks/{daemon-XM2A7LQU.js → daemon-BMDXCQT5.js} +3 -3
  202. package/dist/cli/chunks/{daemon-P574WWBW.js → daemon-FBH3IRYN.js} +4 -4
  203. package/dist/cli/chunks/{dag-attention-scheduler-MIWOZ6ET.js → dag-attention-scheduler-JGDED55I.js} +2 -2
  204. package/dist/cli/chunks/{detect-TYR7HT23.js → detect-SZIHIVCJ.js} +2 -2
  205. package/dist/cli/chunks/{dist-node-2DGVQGLS.js → dist-node-FV3KWXQ6.js} +2 -2
  206. package/dist/cli/chunks/{domain-handler-RRA4ZOMF.js → domain-handler-GI5JWQOV.js} +2 -2
  207. package/dist/cli/chunks/{domain-plugins-IVZEZ5RB.js → domain-plugins-BUWY36TL.js} +2 -2
  208. package/dist/cli/chunks/domain-transfer-GCY7W5DA.js +2 -0
  209. package/dist/cli/chunks/dream-TRFBGDSQ.js +2 -0
  210. package/dist/cli/chunks/{embed-and-insert-pattern-VNIEOVPO.js → embed-and-insert-pattern-GPRR3ZGD.js} +2 -2
  211. package/dist/cli/chunks/{eval-QV4LVPUF.js → eval-XPB3IGAP.js} +2 -2
  212. package/dist/cli/chunks/{experience-capture-middleware-DAPKT763.js → experience-capture-middleware-2E554UB3.js} +3 -3
  213. package/dist/cli/chunks/{fast-paths-WVRFPHX7.js → fast-paths-ZSMWZPUC.js} +2 -2
  214. package/dist/cli/chunks/{feature-flags-DEFTUIYT.js → feature-flags-GIWVDVVC.js} +2 -2
  215. package/dist/cli/chunks/{feature-flags-O7ZXDDCD.js → feature-flags-N7EOGE5P.js} +2 -2
  216. package/dist/cli/chunks/file-discovery-WCKGMSPZ.js +2 -0
  217. package/dist/cli/chunks/fleet-HCHDOUCX.js +44 -0
  218. package/dist/cli/chunks/{gnn-wrapper-LS4LZJDR.js → gnn-wrapper-CZNCNXXZ.js} +2 -2
  219. package/dist/cli/chunks/{heartbeat-handler-RFTERD4K.js → heartbeat-handler-6YUIF2YQ.js} +4 -4
  220. package/dist/cli/chunks/heartbeat-scheduler-P44A2OX3.js +2 -0
  221. package/dist/cli/chunks/hnsw-adapter-ZJQIQJKC.js +2 -0
  222. package/dist/cli/chunks/hnsw-index-HMG2GH3Z.js +2 -0
  223. package/dist/cli/chunks/{hnsw-legacy-bridge-GPKGFFHY.js → hnsw-legacy-bridge-J3M3IK24.js} +2 -2
  224. package/dist/cli/chunks/{hnswlib-node-PHL3F2PR.js → hnswlib-node-ULGTGDZW.js} +2 -2
  225. package/dist/cli/chunks/{hooks-GYJ6D4QM.js → hooks-C4BUGYUQ.js} +28 -28
  226. package/dist/cli/chunks/hybrid-backend-B7M74PZG.js +2 -0
  227. package/dist/cli/chunks/{hypergraph-engine-YGEQPCKJ.js → hypergraph-engine-WINGVMPG.js} +2 -2
  228. package/dist/cli/chunks/{hypergraph-handler-ZIMM647V.js → hypergraph-handler-GADMWKAU.js} +3 -3
  229. package/dist/cli/chunks/impact-analyzer-PZYOVKQO.js +2 -0
  230. package/dist/cli/chunks/{init-guard-VOMBXJXG.js → init-guard-K2T4QWAO.js} +2 -2
  231. package/dist/cli/chunks/{init-handler-PSMUBWK5.js → init-handler-PCZTDZYI.js} +6 -6
  232. package/dist/cli/chunks/init-wizard-TZDJQK3U.js +2 -0
  233. package/dist/cli/chunks/kernel-Y6RRIOKW.js +2 -0
  234. package/dist/cli/chunks/{kilocode-installer-2YNTFBWJ.js → kilocode-installer-XENXNEIU.js} +2 -2
  235. package/dist/cli/chunks/{kiro-installer-XHJDPVAZ.js → kiro-installer-3PG2TJ67.js} +2 -2
  236. package/dist/cli/chunks/knowledge-graph-BVD5Z66M.js +2 -0
  237. package/dist/cli/chunks/{learning-GNSIDRNG.js → learning-6KDH7FK4.js} +3 -3
  238. package/dist/cli/chunks/{llm-router-LQDM7IU2.js → llm-router-RKVDEWU2.js} +4 -4
  239. package/dist/cli/chunks/llm-router-service-KHCAMSUU.js +2 -0
  240. package/dist/cli/chunks/{load-YATHI72E.js → load-ITHC564X.js} +2 -2
  241. package/dist/cli/chunks/load-test-RUF7DZA5.js +2 -0
  242. package/dist/cli/chunks/{mcp-4Y6GDLYK.js → mcp-TCL5UW3N.js} +2 -2
  243. package/dist/cli/chunks/{memory-OUW3L7H2.js → memory-BKDAY2N2.js} +5 -5
  244. package/dist/cli/chunks/memory-backend-7ZLFOVGG.js +2 -0
  245. package/dist/cli/chunks/{memory-handlers-G3LFF53U.js → memory-handlers-WN4FXFOA.js} +2 -2
  246. package/dist/cli/chunks/{multi-model-executor-UBZJXAD2.js → multi-model-executor-VHAT7ZPF.js} +2 -2
  247. package/dist/cli/chunks/{opencode-installer-AMMNWVH5.js → opencode-installer-E3VM3EEY.js} +2 -2
  248. package/dist/cli/chunks/{orchestrator-Y44WDOER.js → orchestrator-BMQ6X762.js} +58 -20
  249. package/dist/cli/chunks/pattern-null-store-RY6CVYHP.js +2 -0
  250. package/dist/cli/chunks/{pattern-usage-recorder-ESR42RME.js → pattern-usage-recorder-GOOR2BV5.js} +2 -2
  251. package/dist/cli/chunks/{pipeline-EDTS6OSC.js → pipeline-5NSFQQIX.js} +2 -2
  252. package/dist/cli/chunks/{platform-5WONJSUX.js → platform-SQM34J5G.js} +2 -2
  253. package/dist/cli/chunks/{plugin-IJXPCLD4.js → plugin-UQJZRMZG.js} +2 -2
  254. package/dist/cli/chunks/{prime-radiant-advanced-wasm-5ECKGZK6.js → prime-radiant-advanced-wasm-WMDJOL4S.js} +2 -2
  255. package/dist/cli/chunks/project-root-IO5KRNGL.js +2 -0
  256. package/dist/cli/chunks/protocol-executor-U2CUDWDE.js +2 -0
  257. package/dist/cli/chunks/{protocol-handler-DRD3GVNW.js → protocol-handler-OBDCVY6X.js} +2 -2
  258. package/dist/cli/chunks/{prove-KTGW2HMJ.js → prove-XDC7I4XT.js} +2 -2
  259. package/dist/cli/chunks/qe-reasoning-bank-DQSSX2IP.js +2 -0
  260. package/dist/cli/chunks/{quality-DV2WPRRS.js → quality-L4GQ6WX4.js} +2 -2
  261. package/dist/cli/chunks/{quality-gate-HFUAFVZC.js → quality-gate-MJG66LKN.js} +3 -3
  262. package/dist/cli/chunks/queen-coordinator-6FN4BZIX.js +2 -0
  263. package/dist/cli/chunks/real-embeddings-HW4G2LWL.js +2 -0
  264. package/dist/cli/chunks/{ref-validation-QWSKS5OY.js → ref-validation-FC7JOJ2C.js} +2 -2
  265. package/dist/cli/chunks/{roocode-installer-RBAYRCHX.js → roocode-installer-KWS4CEIC.js} +2 -2
  266. package/dist/cli/chunks/router-YUO3I7RU.js +2 -0
  267. package/dist/cli/chunks/routing-feedback-36SLQGJE.js +2 -0
  268. package/dist/cli/chunks/{routing-handler-FMPP3XKO.js → routing-handler-QF4WVB2S.js} +2 -2
  269. package/dist/cli/chunks/{ruvector-commands-KZZT4HWF.js → ruvector-commands-2MTCOUK6.js} +2 -2
  270. package/dist/cli/chunks/rvf-dual-writer-FRYZH3WZ.js +2 -0
  271. package/dist/cli/chunks/rvf-migration-adapter-XXNITL5I.js +2 -0
  272. package/dist/cli/chunks/{rvf-migration-coordinator-7CHEV35N.js → rvf-migration-coordinator-BREJCXWN.js} +2 -2
  273. package/dist/cli/chunks/rvf-native-adapter-D2WWKJIV.js +2 -0
  274. package/dist/cli/chunks/{rvf-store-integrity-Q2TH52SN.js → rvf-store-integrity-KKC6HOJD.js} +2 -2
  275. package/dist/cli/chunks/safe-db-4RRIGRXD.js +2 -0
  276. package/dist/cli/chunks/schedule-25RTO4DQ.js +2 -0
  277. package/dist/cli/chunks/scheduler-BPIOJZ5P.js +2 -0
  278. package/dist/cli/chunks/{security-CUEA3UIM.js → security-OSAE7VAP.js} +3 -3
  279. package/dist/cli/chunks/{shared-rvf-adapter-DROMBRV2.js → shared-rvf-adapter-COUOS665.js} +2 -2
  280. package/dist/cli/chunks/{shared-rvf-dual-writer-DBNABOP7.js → shared-rvf-dual-writer-YXMPZKQE.js} +2 -2
  281. package/dist/cli/chunks/sqlite-persistence-EDF47DDX.js +2 -0
  282. package/dist/cli/chunks/{standalone-memory-IAHA3M6B.js → standalone-memory-E6JBMOIL.js} +2 -2
  283. package/dist/cli/chunks/{status-handler-AFUCASTX.js → status-handler-AFTCIYIX.js} +2 -2
  284. package/dist/cli/chunks/{structural-health-AQRV6JJ6.js → structural-health-2FROCEI4.js} +2 -2
  285. package/dist/cli/chunks/{sync-XW5TLZ7M.js → sync-VAYTOWDC.js} +2 -2
  286. package/dist/cli/chunks/{sync-GX7FMJHL.js → sync-YIQYOFGW.js} +2 -2
  287. package/dist/cli/chunks/task-handler-KVQHDEX3.js +62 -0
  288. package/dist/cli/chunks/task-handlers-MVVECQA6.js +9 -0
  289. package/dist/cli/chunks/{test-D2XDJNDX.js → test-5JSVTOMY.js} +4 -4
  290. package/dist/cli/chunks/test-runner-process-LEPF2OSS.js +2 -0
  291. package/dist/cli/chunks/{test-scheduling-TS6I2PR7.js → test-scheduling-HBOHVLI3.js} +3 -3
  292. package/dist/cli/chunks/{token-bootstrap-HBBLPCZ3.js → token-bootstrap-5VEPTPFA.js} +2 -2
  293. package/dist/cli/chunks/{token-usage-3MBUX4PR.js → token-usage-TBJHDLY6.js} +2 -2
  294. package/dist/cli/chunks/{transformers-ZWMQO3L2.js → transformers-VAWYMHMZ.js} +2 -2
  295. package/dist/cli/chunks/tree-sitter-wasm-parser-TSZTCMFV.js +2 -0
  296. package/dist/cli/chunks/{types-5YEMGPSQ.js → types-R5SDZU2E.js} +2 -2
  297. package/dist/cli/chunks/unified-memory-TLGSSLMI.js +2 -0
  298. package/dist/cli/chunks/unified-memory-hnsw-MSUR7ZOO.js +2 -0
  299. package/dist/cli/chunks/unified-persistence-VFFOTWK7.js +2 -0
  300. package/dist/cli/chunks/{upgrade-2TPBKIHI.js → upgrade-K5PIHXRB.js} +2 -2
  301. package/dist/cli/chunks/{validate-XRAXXFW6.js → validate-RPTS7RYJ.js} +2 -2
  302. package/dist/cli/chunks/{validate-swarm-IYSCS3BZ.js → validate-swarm-B2ZL556X.js} +2 -2
  303. package/dist/cli/chunks/visual-security-6Q44XNLB.js +2 -0
  304. package/dist/cli/chunks/{web-tree-sitter-PZQ3ZG2P.js → web-tree-sitter-K4DUJC32.js} +2 -2
  305. package/dist/cli/chunks/{windsurf-installer-U6XWFRVT.js → windsurf-installer-OK2AJN35.js} +2 -2
  306. package/dist/cli/chunks/witness-chain-KDOMXDQX.js +2 -0
  307. package/dist/cli/chunks/witness-chain-N3OY2RMH.js +2 -0
  308. package/dist/cli/chunks/{witness-chain-repair-K7YX2AO6.js → witness-chain-repair-L6Y5RFXR.js} +2 -2
  309. package/dist/cli/chunks/{witness-chain-verifier-GUTC3W7N.js → witness-chain-verifier-N4CW7FZX.js} +2 -2
  310. package/dist/cli/chunks/{witness-key-manager-YBNKMOP6.js → witness-key-manager-TDNPS3WD.js} +2 -2
  311. package/dist/cli/chunks/{workflow-UAJUILFQ.js → workflow-XRZA3YCY.js} +4 -4
  312. package/dist/cli/chunks/workflow-orchestrator-CVNNT2RJ.js +2 -0
  313. package/dist/cli/chunks/{wrappers-AVZ3GPAL.js → wrappers-5JIFWKN6.js} +2 -2
  314. package/dist/cli/commands/ci.js +7 -0
  315. package/dist/cli/commands/code.js +6 -0
  316. package/dist/cli/commands/coverage.js +7 -1
  317. package/dist/cli/commands/fleet-run.d.ts +12 -0
  318. package/dist/cli/commands/fleet-run.js +175 -0
  319. package/dist/cli/commands/fleet.js +2 -117
  320. package/dist/cli/commands/hooks-handlers/stats-hooks.d.ts +4 -3
  321. package/dist/cli/commands/hooks-handlers/stats-hooks.js +22 -4
  322. package/dist/cli/handlers/task-handler.d.ts +5 -0
  323. package/dist/cli/handlers/task-handler.js +26 -0
  324. package/dist/cli/utils/coverage-verdict.d.ts +11 -2
  325. package/dist/cli/utils/coverage-verdict.js +26 -6
  326. package/dist/cli/utils/fleet-operation.d.ts +10 -2
  327. package/dist/cli/utils/fleet-operation.js +20 -3
  328. package/dist/cli/utils/fleet-result.d.ts +20 -4
  329. package/dist/cli/utils/fleet-result.js +32 -21
  330. package/dist/cli/utils/fleet-shard.d.ts +36 -0
  331. package/dist/cli/utils/fleet-shard.js +110 -0
  332. package/dist/coordination/handlers/code-intelligence-handlers.js +21 -1
  333. package/dist/coordination/handlers/coverage-collection.d.ts +2 -0
  334. package/dist/coordination/handlers/coverage-collection.js +2 -1
  335. package/dist/coordination/handlers/coverage-evidence.d.ts +75 -0
  336. package/dist/coordination/handlers/coverage-evidence.js +159 -0
  337. package/dist/coordination/handlers/coverage-handlers.js +16 -3
  338. package/dist/coordination/handlers/coverage-scope.d.ts +40 -0
  339. package/dist/coordination/handlers/coverage-scope.js +321 -0
  340. package/dist/coordination/handlers/coverage-target.d.ts +9 -0
  341. package/dist/coordination/handlers/coverage-target.js +15 -5
  342. package/dist/coordination/handlers/handler-types.d.ts +2 -2
  343. package/dist/coordination/handlers/handler-utils.d.ts +11 -0
  344. package/dist/coordination/handlers/handler-utils.js +22 -8
  345. package/dist/coordination/handlers/misc-handlers.js +5 -2
  346. package/dist/coordination/handlers/quality-handlers.js +2 -2
  347. package/dist/coordination/handlers/security-handlers.js +12 -2
  348. package/dist/coordination/protocols/security-audit.js +11 -1
  349. package/dist/coordination/task-executor.js +7 -2
  350. package/dist/domains/code-intelligence/coordinator-gnn.d.ts +2 -16
  351. package/dist/domains/code-intelligence/coordinator-gnn.js +1 -62
  352. package/dist/domains/code-intelligence/coordinator.d.ts +12 -6
  353. package/dist/domains/code-intelligence/coordinator.js +24 -27
  354. package/dist/domains/code-intelligence/interfaces.d.ts +9 -0
  355. package/dist/domains/code-intelligence/services/metric-collector/listing-process-owner.js +4 -1
  356. package/dist/domains/code-intelligence/services/semantic-analyzer.d.ts +51 -5
  357. package/dist/domains/code-intelligence/services/semantic-analyzer.js +144 -78
  358. package/dist/domains/coverage-analysis/collected-metrics.d.ts +10 -0
  359. package/dist/domains/coverage-analysis/collected-metrics.js +29 -0
  360. package/dist/domains/coverage-analysis/services/coverage-analyzer.js +11 -3
  361. package/dist/domains/coverage-analysis/services/coverage-parser.d.ts +2 -0
  362. package/dist/domains/coverage-analysis/services/coverage-parser.js +18 -2
  363. package/dist/domains/quality-assessment/coherence/gate-controller.js +16 -4
  364. package/dist/domains/quality-assessment/coherence/lambda-calculator.d.ts +8 -0
  365. package/dist/domains/quality-assessment/coherence/lambda-calculator.js +57 -14
  366. package/dist/domains/quality-assessment/coherence/types.d.ts +12 -7
  367. package/dist/domains/quality-assessment/coordinator-gate-evaluation.js +3 -1
  368. package/dist/domains/quality-assessment/coordinator-reports.d.ts +30 -10
  369. package/dist/domains/quality-assessment/coordinator-reports.js +93 -57
  370. package/dist/domains/quality-assessment/coordinator.d.ts +14 -40
  371. package/dist/domains/quality-assessment/coordinator.js +10 -4
  372. package/dist/domains/quality-assessment/interfaces.d.ts +2 -0
  373. package/dist/domains/quality-assessment/services/coherence-gate.js +15 -2
  374. package/dist/domains/quality-assessment/services/quality-gate.js +6 -4
  375. package/dist/domains/security-compliance/index.d.ts +1 -1
  376. package/dist/domains/security-compliance/interfaces.d.ts +46 -5
  377. package/dist/domains/security-compliance/services/scanners/dast-auth-testing.d.ts +3 -3
  378. package/dist/domains/security-compliance/services/scanners/dast-auth-testing.js +15 -14
  379. package/dist/domains/security-compliance/services/scanners/dast-helpers.d.ts +8 -9
  380. package/dist/domains/security-compliance/services/scanners/dast-helpers.js +19 -44
  381. package/dist/domains/security-compliance/services/scanners/dast-injection-testing.d.ts +3 -3
  382. package/dist/domains/security-compliance/services/scanners/dast-injection-testing.js +13 -9
  383. package/dist/domains/security-compliance/services/scanners/dast-requests.d.ts +54 -0
  384. package/dist/domains/security-compliance/services/scanners/dast-requests.js +125 -0
  385. package/dist/domains/security-compliance/services/scanners/dast-scanner.d.ts +5 -1
  386. package/dist/domains/security-compliance/services/scanners/dast-scanner.js +125 -155
  387. package/dist/domains/security-compliance/services/scanners/index.d.ts +1 -1
  388. package/dist/domains/security-compliance/services/scanners/index.js +1 -1
  389. package/dist/domains/security-compliance/services/scanners/scanner-types.d.ts +2 -2
  390. package/dist/domains/security-compliance/services/security-auditor-dast.js +183 -212
  391. package/dist/domains/security-compliance/services/security-auditor-reports.js +5 -1
  392. package/dist/domains/security-compliance/services/security-auditor.d.ts +11 -3
  393. package/dist/domains/security-compliance/services/security-auditor.js +106 -65
  394. package/dist/domains/test-execution/coordinator.d.ts +2 -1
  395. package/dist/domains/test-execution/coordinator.js +33 -27
  396. package/dist/domains/test-execution/interfaces.d.ts +5 -0
  397. package/dist/domains/test-execution/services/test-executor.d.ts +6 -0
  398. package/dist/domains/test-execution/services/test-executor.js +16 -4
  399. package/dist/domains/visual-accessibility/coordinator.js +34 -9
  400. package/dist/domains/visual-accessibility/interfaces.d.ts +27 -0
  401. package/dist/domains/visual-accessibility/plugin.js +5 -0
  402. package/dist/domains/visual-accessibility/services/accessibility-tester-heuristics.d.ts +13 -21
  403. package/dist/domains/visual-accessibility/services/accessibility-tester-heuristics.js +13 -297
  404. package/dist/domains/visual-accessibility/services/accessibility-tester.d.ts +13 -5
  405. package/dist/domains/visual-accessibility/services/accessibility-tester.js +96 -73
  406. package/dist/init/phases/10-workers.js +42 -4
  407. package/dist/integrations/agentic-flow/reasoning-bank/experience-replay.d.ts +23 -1
  408. package/dist/integrations/agentic-flow/reasoning-bank/experience-replay.js +50 -15
  409. package/dist/integrations/agentic-flow/reasoning-bank/index.d.ts +7 -2
  410. package/dist/integrations/agentic-flow/reasoning-bank/index.js +8 -0
  411. package/dist/integrations/embeddings/index/HNSWIndex.js +8 -4
  412. package/dist/integrations/ruvector/transfer-coherence-stub.js +5 -10
  413. package/dist/learning/embedder-endpoint-client.d.ts +8 -0
  414. package/dist/learning/embedder-endpoint-client.js +20 -0
  415. package/dist/learning/embedder-recovery.d.ts +63 -0
  416. package/dist/learning/embedder-recovery.js +94 -0
  417. package/dist/learning/qe-reasoning-bank-types.d.ts +5 -0
  418. package/dist/learning/qe-reasoning-bank.d.ts +21 -0
  419. package/dist/learning/qe-reasoning-bank.js +54 -8
  420. package/dist/learning/real-embeddings.d.ts +23 -0
  421. package/dist/learning/real-embeddings.js +69 -2
  422. package/dist/learning/real-qe-reasoning-bank.d.ts +24 -4
  423. package/dist/learning/real-qe-reasoning-bank.js +58 -20
  424. package/dist/logging/redaction.js +142 -12
  425. package/dist/mcp/bundle.js +509 -497
  426. package/dist/mcp/daemon-mode.d.ts +126 -0
  427. package/dist/mcp/daemon-mode.js +257 -0
  428. package/dist/mcp/entry.d.ts +4 -0
  429. package/dist/mcp/entry.js +50 -2
  430. package/dist/mcp/handlers/domain-handler-configs.d.ts +8 -0
  431. package/dist/mcp/handlers/domain-handler-configs.js +14 -2
  432. package/dist/mcp/handlers/handler-factory.js +3 -0
  433. package/dist/mcp/handlers/model-route-handlers.d.ts +107 -0
  434. package/dist/mcp/handlers/model-route-handlers.js +139 -0
  435. package/dist/mcp/handlers/orchestrate-routes.d.ts +6 -1
  436. package/dist/mcp/handlers/orchestrate-routes.js +94 -3
  437. package/dist/mcp/handlers/task-handlers.d.ts +3 -242
  438. package/dist/mcp/handlers/task-handlers.js +11 -788
  439. package/dist/mcp/handlers/task-inference.d.ts +26 -0
  440. package/dist/mcp/handlers/task-inference.js +156 -0
  441. package/dist/mcp/handlers/task-learning-handlers.d.ts +92 -0
  442. package/dist/mcp/handlers/task-learning-handlers.js +230 -0
  443. package/dist/mcp/handlers/task-orchestrate-handler.d.ts +73 -0
  444. package/dist/mcp/handlers/task-orchestrate-handler.js +361 -0
  445. package/dist/mcp/protocol-server.js +15 -2
  446. package/dist/mcp/services/reasoning-bank-service.d.ts +6 -1
  447. package/dist/mcp/services/reasoning-bank-service.js +9 -0
  448. package/dist/mcp/tools/code-intelligence/analyze.js +3 -6
  449. package/dist/mcp/tools/coverage-analysis/index.d.ts +4 -0
  450. package/dist/mcp/tools/coverage-analysis/index.js +8 -2
  451. package/dist/mcp/tools/visual-accessibility/index.d.ts +7 -0
  452. package/dist/mcp/tools/visual-accessibility/index.js +29 -13
  453. package/dist/mcp/types.d.ts +14 -0
  454. package/dist/routing/advisor/redaction.js +22 -2
  455. package/dist/shared/events/domain-events.d.ts +2 -0
  456. package/dist/shared/llm/providers/response-deadline.js +16 -2
  457. package/dist/shared/metrics/code-metrics.js +21 -3
  458. package/dist/shared/parsers/typescript-parser.d.ts +6 -0
  459. package/dist/shared/parsers/typescript-parser.js +13 -1
  460. package/dist/shared/types/index.js +3 -1
  461. package/dist/strange-loop/infra-healing/infra-aware-agent-provider.js +8 -1
  462. package/package.json +3 -3
  463. package/dist/cli/chunks/adapter-V4GSGOOK.js +0 -2
  464. package/dist/cli/chunks/aqe-learning-engine-6WQTM5YR.js +0 -2
  465. package/dist/cli/chunks/base-AK7BXBX2.js +0 -2
  466. package/dist/cli/chunks/browser-workflow-VTDFBW7T.js +0 -2
  467. package/dist/cli/chunks/chunk-2DTX7YAZ.js +0 -6
  468. package/dist/cli/chunks/chunk-72ZBJD2E.js +0 -3
  469. package/dist/cli/chunks/chunk-EBPJY4DI.js +0 -3
  470. package/dist/cli/chunks/chunk-H43AFUKL.js +0 -2
  471. package/dist/cli/chunks/chunk-HJ3XNTTJ.js +0 -2
  472. package/dist/cli/chunks/chunk-IO5537OM.js +0 -2
  473. package/dist/cli/chunks/chunk-IW6WDGHM.js +0 -2
  474. package/dist/cli/chunks/chunk-K2HBNYAZ.js +0 -62
  475. package/dist/cli/chunks/chunk-LRL56ZYL.js +0 -21
  476. package/dist/cli/chunks/chunk-VLD7Z2ED.js +0 -13
  477. package/dist/cli/chunks/chunk-VO3DRK4P.js +0 -3
  478. package/dist/cli/chunks/ci-6GUFAZMJ.js +0 -81
  479. package/dist/cli/chunks/client-HL2COSFM.js +0 -2
  480. package/dist/cli/chunks/core-handlers-IX7ATLM6.js +0 -2
  481. package/dist/cli/chunks/cross-domain-router-YYKLAPJO.js +0 -2
  482. package/dist/cli/chunks/domain-transfer-DOBI67K6.js +0 -2
  483. package/dist/cli/chunks/dream-T6EP7B3F.js +0 -2
  484. package/dist/cli/chunks/file-discovery-JYMVTDMU.js +0 -2
  485. package/dist/cli/chunks/fleet-FVAUMKUT.js +0 -46
  486. package/dist/cli/chunks/heartbeat-scheduler-4N5MUJ7S.js +0 -2
  487. package/dist/cli/chunks/hnsw-adapter-ZPAJDSLR.js +0 -2
  488. package/dist/cli/chunks/hnsw-index-4CTH6RHB.js +0 -2
  489. package/dist/cli/chunks/hybrid-backend-AW6UTXQS.js +0 -2
  490. package/dist/cli/chunks/impact-analyzer-MZK3JMSV.js +0 -2
  491. package/dist/cli/chunks/init-wizard-FUC7KDVX.js +0 -2
  492. package/dist/cli/chunks/kernel-ZCPMCVMW.js +0 -2
  493. package/dist/cli/chunks/knowledge-graph-NUJKEDNF.js +0 -2
  494. package/dist/cli/chunks/llm-router-service-B2BFBQ76.js +0 -2
  495. package/dist/cli/chunks/load-test-ZHQ2MUGO.js +0 -2
  496. package/dist/cli/chunks/memory-backend-AAMQG6WH.js +0 -2
  497. package/dist/cli/chunks/pattern-null-store-RFNVA46O.js +0 -2
  498. package/dist/cli/chunks/project-root-7QL4KP5C.js +0 -2
  499. package/dist/cli/chunks/protocol-executor-2NW5BD4R.js +0 -2
  500. package/dist/cli/chunks/qe-reasoning-bank-G2JZOGKD.js +0 -2
  501. package/dist/cli/chunks/queen-coordinator-GRG5FT2A.js +0 -2
  502. package/dist/cli/chunks/real-embeddings-RQRVOKVM.js +0 -2
  503. package/dist/cli/chunks/router-LQB5SWAF.js +0 -2
  504. package/dist/cli/chunks/routing-feedback-OEEXA55N.js +0 -2
  505. package/dist/cli/chunks/rvf-dual-writer-BZK4M7BO.js +0 -2
  506. package/dist/cli/chunks/rvf-migration-adapter-EZZUJL2E.js +0 -2
  507. package/dist/cli/chunks/rvf-native-adapter-6COXTQZ3.js +0 -2
  508. package/dist/cli/chunks/safe-db-PE6G3L55.js +0 -2
  509. package/dist/cli/chunks/schedule-OLKQ6QYW.js +0 -2
  510. package/dist/cli/chunks/scheduler-LSGBDFAT.js +0 -2
  511. package/dist/cli/chunks/sqlite-persistence-HH4DNTYH.js +0 -2
  512. package/dist/cli/chunks/task-handler-TFKVUTNF.js +0 -60
  513. package/dist/cli/chunks/task-handlers-SS4ZDXNF.js +0 -9
  514. package/dist/cli/chunks/test-runner-process-PSSBNNGR.js +0 -2
  515. package/dist/cli/chunks/tree-sitter-wasm-parser-TYRQRJ2W.js +0 -2
  516. package/dist/cli/chunks/unified-memory-AGDZQ5XD.js +0 -2
  517. package/dist/cli/chunks/unified-memory-hnsw-X5TJ3JDE.js +0 -2
  518. package/dist/cli/chunks/unified-persistence-UCV7YETW.js +0 -2
  519. package/dist/cli/chunks/visual-security-ZLXRIQZV.js +0 -2
  520. package/dist/cli/chunks/witness-chain-CVIWYTD2.js +0 -2
  521. package/dist/cli/chunks/witness-chain-VBKORKOX.js +0 -2
  522. package/dist/cli/chunks/workflow-orchestrator-3ZN7MVCE.js +0 -2
@@ -0,0 +1,361 @@
1
+ /**
2
+ * Agentic QE v3 - task_orchestrate MCP handler
3
+ * ADR-051: Integrated with Model Router for intelligent tier selection
4
+ * Issue #206: Workflow auto-execution for task types with associated workflows
5
+ */
6
+ import { getFleetState, isFleetInitialized } from './core-handlers.js';
7
+ import { getTaskRouter } from '../services/task-router.js';
8
+ import { getReasoningBankService, startTaskTrajectory } from '../services/reasoning-bank-service.js';
9
+ import { scoreUnjudgedTrajectories } from './trajectory-judge.js';
10
+ import { toErrorMessage } from '../../shared/error-utils.js';
11
+ import { invalidPriorityMessage, isPriority } from '../../shared/types/index.js';
12
+ import { validateIndexPaths } from '../../domains/code-intelligence/index-path-guard.js';
13
+ import { routeInferredTask } from './orchestrate-routes.js';
14
+ import { getTaskExecutor } from './handler-factory.js';
15
+ import { TASK_WORKFLOW_MAP, inferDomainFromDescription, inferTaskType } from './task-inference.js';
16
+ /**
17
+ * #1022: gather experience guidance and pattern hints for task_orchestrate.
18
+ * Learned guidance is optional: a missing embedder, or a ReasoningBank that
19
+ * cannot start, must not fail the orchestration. The returned status says
20
+ * which kind of matching produced the hints.
21
+ */
22
+ async function getOrchestrateLearningContext(task, guidanceDomain, patternDomain) {
23
+ let service;
24
+ try {
25
+ service = await getReasoningBankService();
26
+ }
27
+ catch (error) {
28
+ return {
29
+ experienceGuidance: null,
30
+ patternHintMatches: [],
31
+ learning: { patternSearch: 'unavailable', reason: toErrorMessage(error) },
32
+ };
33
+ }
34
+ // #1204: a background embedder retry can finish while this call runs.
35
+ // Report vector matching only if the embedder was usable for the whole
36
+ // call, so hints found by text alone are never labelled vector.
37
+ const patternStatusBefore = service.getPatternSearchStatus();
38
+ const experienceStatusBefore = service.getExperienceGuidanceStatus();
39
+ const experienceGuidance = await service.getExperienceGuidance(task, guidanceDomain);
40
+ // Bring HNSW A (qe_patterns) into the routing decision alongside HNSW C
41
+ // (experienceGuidance). Without this, only past trajectories influenced
42
+ // routing — the catalog of consolidated long-term patterns was never
43
+ // consulted for new tasks. Fail-soft: empty array on error.
44
+ const patternHintMatches = await service
45
+ .searchPatternMatches(task, { limit: 5, domain: patternDomain })
46
+ .catch(() => []);
47
+ const status = notVectorIfEither(patternStatusBefore, service.getPatternSearchStatus());
48
+ const experienceStatusAfter = service.getExperienceGuidanceStatus();
49
+ const experienceStatus = experienceStatusBefore && experienceStatusAfter
50
+ ? notVectorIfEither(experienceStatusBefore, experienceStatusAfter)
51
+ : experienceStatusAfter;
52
+ return {
53
+ experienceGuidance,
54
+ patternHintMatches,
55
+ learning: {
56
+ patternSearch: status.mode,
57
+ ...(status.reason ? { reason: status.reason } : {}),
58
+ ...(experienceStatus ? { experienceGuidance: experienceStatus } : {}),
59
+ },
60
+ };
61
+ }
62
+ /** #1204: the status before the call unless it was vector; otherwise the one after. */
63
+ function notVectorIfEither(before, after) {
64
+ return before.mode === 'vector' ? after : before;
65
+ }
66
+ export async function handleTaskOrchestrate(params) {
67
+ if (!isFleetInitialized()) {
68
+ return {
69
+ success: false,
70
+ error: 'Fleet not initialized. Call fleet_init first.',
71
+ };
72
+ }
73
+ // #1096: filePaths feeds task payloads (sourceFiles, index paths), so a
74
+ // non-array value is rejected up front with a clear message.
75
+ if (params.filePaths !== undefined) {
76
+ const filePaths = validateIndexPaths(params.filePaths, 'filePaths', 'Invalid task_orchestrate params');
77
+ if (!filePaths.success) {
78
+ return { success: false, error: filePaths.error.message };
79
+ }
80
+ }
81
+ // #1117: an unrecognised priority used to fall through to p1 (and a
82
+ // requested p0 was downgraded). Reject it up front, as task_submit does.
83
+ if (params.priority !== undefined && mapPriority(params.priority) === undefined) {
84
+ return { success: false, error: invalidOrchestratePriorityMessage(params.priority) };
85
+ }
86
+ const { queen, workflowOrchestrator } = getFleetState();
87
+ try {
88
+ // ADR-051: Route task to optimal model tier BEFORE execution
89
+ // Fix #282: Enrich routing input with inferred domain (same as handleModelRoute)
90
+ const inferredDomain = params.context?.project || inferDomainFromDescription(params.task);
91
+ const inferredIsCritical = params.priority === 'critical' ||
92
+ /\b(security|vulnerability|cve|owasp|critical|production|exploit)\b/i.test(params.task);
93
+ const router = await getTaskRouter();
94
+ const routingResult = await router.routeTask({
95
+ task: params.task,
96
+ codeContext: params.codeContext,
97
+ filePaths: params.filePaths,
98
+ manualTier: params.manualTier,
99
+ isCritical: inferredIsCritical,
100
+ agentType: `qe-${inferredDomain}`,
101
+ domain: inferredDomain,
102
+ metadata: {
103
+ inferredDomain,
104
+ hasCodeContext: !!params.codeContext,
105
+ fileCount: params.filePaths?.length,
106
+ },
107
+ });
108
+ // INTEGRATION FIX: Get ReasoningBank guidance for the task
109
+ const { experienceGuidance, patternHintMatches, learning } = await getOrchestrateLearningContext(params.task, params.context?.project, params.context?.project ?? inferredDomain);
110
+ // Parse task description to determine task type
111
+ const taskType = inferTaskType(params.task);
112
+ const priority = mapPriority(params.priority ?? 'medium') ?? 'p2';
113
+ // Issue #206: Check if this task type has an associated workflow
114
+ const workflowId = TASK_WORKFLOW_MAP[taskType];
115
+ if (workflowId && workflowOrchestrator) {
116
+ // Execute the associated workflow directly
117
+ console.log(`[TaskOrchestrate] Task type '${taskType}' has workflow '${workflowId}' - executing workflow`);
118
+ // Detect URL in task description for live website analysis
119
+ const urlMatch = params.task.match(/https?:\/\/[^\s]+/i);
120
+ const detectedUrl = urlMatch ? urlMatch[0] : undefined;
121
+ if (detectedUrl) {
122
+ console.log(`[TaskOrchestrate] Detected URL for analysis: ${detectedUrl}`);
123
+ }
124
+ // Build workflow input from task params and context
125
+ const workflowInput = {
126
+ // Pass through context fields as workflow input
127
+ targetId: params.context?.project || detectedUrl || `task-${Date.now()}`,
128
+ targetType: detectedUrl ? 'website' : 'epic',
129
+ description: params.task,
130
+ acceptanceCriteria: params.context?.requirements || [],
131
+ // Pass URL if detected (enables website content extraction)
132
+ url: detectedUrl,
133
+ // Include routing info for downstream processing
134
+ routing: {
135
+ tier: routingResult.decision.tier,
136
+ modelId: routingResult.modelId,
137
+ executionStrategy: routingResult.executionStrategy,
138
+ complexity: routingResult.decision.complexityAnalysis.overall,
139
+ },
140
+ // HNSW A pattern hints (mirrors the submitTask payload below); the
141
+ // workflow branch routes through executeWorkflow, so the same catalog
142
+ // of consolidated long-term patterns should reach it.
143
+ patternHints: patternHintMatches.length > 0
144
+ ? patternHintMatches.map(({ pattern: p, similarity, score, matchType, canReuse }) => ({
145
+ patternId: p.id,
146
+ name: p.name,
147
+ description: p.description,
148
+ confidence: p.confidence,
149
+ similarity,
150
+ score,
151
+ matchType,
152
+ canReuse,
153
+ }))
154
+ : undefined,
155
+ };
156
+ const workflowResult = await workflowOrchestrator.executeWorkflow(workflowId, workflowInput);
157
+ if (!workflowResult.success) {
158
+ return {
159
+ success: false,
160
+ error: `Workflow execution failed: ${workflowResult.error.message}`,
161
+ };
162
+ }
163
+ return {
164
+ success: true,
165
+ data: {
166
+ taskId: workflowResult.value, // This is the workflow execution ID
167
+ type: taskType,
168
+ priority,
169
+ strategy: params.strategy || 'adaptive',
170
+ status: 'workflow-started',
171
+ message: `Workflow '${workflowId}' started for task: ${params.task}`,
172
+ routing: {
173
+ tier: routingResult.decision.tier,
174
+ tierName: routingResult.tierInfo.name,
175
+ modelId: routingResult.modelId,
176
+ executionStrategy: routingResult.executionStrategy,
177
+ complexity: routingResult.decision.complexityAnalysis.overall,
178
+ confidence: routingResult.decision.confidence,
179
+ useAgentBooster: routingResult.useAgentBooster,
180
+ rationale: routingResult.decision.rationale,
181
+ decisionTimeMs: routingResult.decision.metadata.decisionTimeMs,
182
+ },
183
+ learning,
184
+ },
185
+ };
186
+ }
187
+ // No workflow - submit as a regular task.
188
+ // #1125: an inferred type without a handler of its own runs the domain's
189
+ // concrete handler, with a payload built only from the request, or is
190
+ // refused with the input it needs.
191
+ const route = await routeInferredTask(taskType, params);
192
+ if (route.kind === 'needs-input') {
193
+ return { success: false, error: route.error };
194
+ }
195
+ const submitType = route.kind === 'route' ? route.type : taskType;
196
+ const targetDomains = route.kind === 'route' ? [route.domain] : [];
197
+ // #1200: a caller-owned task runs through the MCP task executor, as the
198
+ // domain's own tool does; the Queen does not dispatch it.
199
+ const callerExecutor = route.kind === 'route' && route.executionOwner === 'caller' ? getTaskExecutor() : null;
200
+ // #1081: the type must have a domain handler. Otherwise the Queen can
201
+ // only fail the task at dispatch, so reject it here with the reason.
202
+ const executable = queen.validateTaskExecutable(submitType, targetDomains);
203
+ if (!executable.success) {
204
+ return {
205
+ success: false,
206
+ error: `${executable.error.message}. task_orchestrate inferred '${taskType}' from the description; ` +
207
+ 'use task_submit with a supported type and its payload, or the domain\'s MCP tool.',
208
+ };
209
+ }
210
+ // Issue N2: Build domain-appropriate payload.
211
+ // Forward caller-provided filePaths/codeContext into the payload fields
212
+ // that domain plugins expect, so generate-tests doesn't reject with
213
+ // "missing sourceFiles" when called via task_orchestrate.
214
+ const taskPayload = {
215
+ description: params.task,
216
+ strategy: params.strategy || 'adaptive',
217
+ maxAgents: params.maxAgents,
218
+ context: params.context,
219
+ };
220
+ if (taskType === 'generate-tests') {
221
+ taskPayload.sourceFiles = params.filePaths || [];
222
+ taskPayload.sourceCode = params.codeContext || '';
223
+ taskPayload.language = taskPayload.language || 'typescript';
224
+ taskPayload.testType = taskPayload.testType || 'unit';
225
+ }
226
+ if (taskType === 'index-code') {
227
+ taskPayload.paths = params.filePaths || [];
228
+ }
229
+ if (route.kind === 'route')
230
+ Object.assign(taskPayload, route.payload);
231
+ const result = await queen.submitTask({
232
+ type: submitType,
233
+ ...(callerExecutor ? { executionOwner: 'caller' } : {}),
234
+ priority,
235
+ targetDomains,
236
+ payload: {
237
+ ...taskPayload,
238
+ // ADR-051: Include routing decision in payload for downstream processing
239
+ routing: {
240
+ tier: routingResult.decision.tier,
241
+ modelId: routingResult.modelId,
242
+ executionStrategy: routingResult.executionStrategy,
243
+ useAgentBooster: routingResult.useAgentBooster,
244
+ agentBoosterTransform: routingResult.decision.agentBoosterTransform,
245
+ complexity: routingResult.decision.complexityAnalysis.overall,
246
+ confidence: routingResult.decision.confidence,
247
+ },
248
+ // INTEGRATION FIX: Include experience guidance if available
249
+ experienceGuidance: experienceGuidance ? {
250
+ strategy: experienceGuidance.recommendedStrategy,
251
+ actions: experienceGuidance.suggestedActions,
252
+ confidence: experienceGuidance.confidence,
253
+ tokenSavings: experienceGuidance.estimatedTokenSavings,
254
+ } : undefined,
255
+ // HNSW A pattern hints for the executing agent
256
+ patternHints: patternHintMatches.length > 0
257
+ ? patternHintMatches.map(({ pattern: p, similarity, score, matchType, canReuse }) => ({
258
+ patternId: p.id,
259
+ name: p.name,
260
+ description: p.description,
261
+ confidence: p.confidence,
262
+ similarity,
263
+ score,
264
+ matchType,
265
+ canReuse,
266
+ }))
267
+ : undefined,
268
+ },
269
+ timeout: 600000, // 10 minutes for orchestrated tasks
270
+ });
271
+ if (!result.success) {
272
+ return {
273
+ success: false,
274
+ error: result.error.message,
275
+ };
276
+ }
277
+ // INTEGRATION FIX: Start trajectory tracking for learning
278
+ const taskId = result.value;
279
+ if (learning.patternSearch !== 'unavailable') {
280
+ await startTaskTrajectory(taskId, params.task, {
281
+ agent: 'queen-coordinator',
282
+ domain: params.context?.project,
283
+ });
284
+ }
285
+ // Issue N1: Trajectory auto-close is handled by subscribeTrajectoryEvents(),
286
+ // which listens for TaskCompleted/TaskFailed on the event router.
287
+ // No per-task polling needed.
288
+ // #1200: run a caller-owned task after its trajectory started, without
289
+ // waiting: the executor's TaskCompleted / TaskFailed settle it for task_status.
290
+ const execution = callerExecutor ? queen.getTaskStatus(taskId) : undefined;
291
+ if (callerExecutor && execution) {
292
+ void callerExecutor.execute(execution.task).catch(error => {
293
+ console.error(`[TaskOrchestrate] Task ${taskId} failed to execute: ${toErrorMessage(error)}`);
294
+ });
295
+ }
296
+ // Trajectory judge: opt-in LLM scoring of recent unscored trajectories.
297
+ // Hook-created rows in qe_trajectories never receive feedback unless
298
+ // something goes back and judges them. This catches up by scoring ≤5
299
+ // rows per task_orchestrate call. Opt-in (AQE_TRAJECTORY_JUDGE=1)
300
+ // because it makes paid LLM calls.
301
+ if (process.env.AQE_TRAJECTORY_JUDGE === '1' && process.env.ANTHROPIC_API_KEY) {
302
+ void scoreUnjudgedTrajectories().catch(err => {
303
+ console.warn('[TrajectoryJudge] failed:', err instanceof Error ? err.message : err);
304
+ });
305
+ }
306
+ return {
307
+ success: true,
308
+ data: {
309
+ taskId,
310
+ type: submitType,
311
+ ...(submitType !== taskType ? { inferredType: taskType } : {}),
312
+ priority,
313
+ strategy: params.strategy || 'adaptive',
314
+ status: 'submitted',
315
+ message: `Task orchestrated: ${params.task}${experienceGuidance ? ' (with experience guidance)' : ''}`,
316
+ // ADR-051: Include routing info in response
317
+ routing: {
318
+ tier: routingResult.decision.tier,
319
+ tierName: routingResult.tierInfo.name,
320
+ modelId: routingResult.modelId,
321
+ executionStrategy: routingResult.executionStrategy,
322
+ complexity: routingResult.decision.complexityAnalysis.overall,
323
+ confidence: routingResult.decision.confidence,
324
+ useAgentBooster: routingResult.useAgentBooster,
325
+ rationale: routingResult.decision.rationale,
326
+ decisionTimeMs: routingResult.decision.metadata.decisionTimeMs,
327
+ },
328
+ learning,
329
+ },
330
+ };
331
+ }
332
+ catch (error) {
333
+ return {
334
+ success: false,
335
+ error: `Failed to orchestrate task: ${toErrorMessage(error)}`,
336
+ };
337
+ }
338
+ }
339
+ /**
340
+ * Map a task_orchestrate priority to the canonical Priority type.
341
+ * Accepts the named levels and the canonical p0-p3 values; returns
342
+ * undefined for anything else so the caller can reject it (#1117).
343
+ */
344
+ function mapPriority(priority) {
345
+ switch (priority) {
346
+ case 'critical':
347
+ return 'p0';
348
+ case 'high':
349
+ return 'p1';
350
+ case 'medium':
351
+ return 'p2';
352
+ case 'low':
353
+ return 'p3';
354
+ default:
355
+ return isPriority(priority) ? priority : undefined;
356
+ }
357
+ }
358
+ function invalidOrchestratePriorityMessage(value) {
359
+ return `${invalidPriorityMessage(value)} (or critical, high, medium, low)`;
360
+ }
361
+ //# sourceMappingURL=task-orchestrate-handler.js.map
@@ -45,6 +45,14 @@ import { formatErrorForLog } from '../logging/redaction.js';
45
45
  import { BEHAVIOR_EXAMPLE_ITEM_SCHEMA } from '../domains/test-generation/services/behavior-example-validation.js';
46
46
  import { SAVE_RESULTS_HINT, saveResultsParameter } from './handlers/save-results-option.js';
47
47
  import { requestOwnedShutdown } from '../kernel/process-lifecycle.js';
48
+ /**
49
+ * Read-only status tools a client polls while work runs. Repeating one is
50
+ * the status protocol, not a loop, so loop detection skips them (#1227).
51
+ */
52
+ const LOOP_EXEMPT_STATUS_TOOLS = new Set([
53
+ 'pipeline_status', 'task_status', 'task_list', 'fleet_status', 'fleet_health',
54
+ 'agent_status', 'team_health', 'infra_healing_status', 'migration_status', 'aqe_health',
55
+ ]);
48
56
  import { createRequire } from 'module';
49
57
  const _require = createRequire(import.meta.url);
50
58
  const _pkg = _require('../../package.json');
@@ -440,8 +448,10 @@ export class MCPProtocolServer {
440
448
  let loopSteeringPrefix = '';
441
449
  // Polling a known execution is a normal status protocol, not a repeated
442
450
  // action loop. The default three-strike detector would block the third
443
- // pipeline_status call within 30 seconds while a workflow is running.
444
- if (process.env.AQE_LOOP_DETECTION_ENABLED !== 'false' && name !== 'pipeline_status') {
451
+ // identical status call within 30 seconds while the work is running
452
+ // (pipeline_status; #1227: task_status after task_submit, and the other
453
+ // read-only status tools a client polls).
454
+ if (process.env.AQE_LOOP_DETECTION_ENABLED !== 'false' && !LOOP_EXEMPT_STATUS_TOOLS.has(name)) {
445
455
  try {
446
456
  const loopResult = this.loopTracker.trackCall('mcp-client', name, args);
447
457
  if (loopResult.action === 'steer') {
@@ -684,6 +694,8 @@ export class MCPProtocolServer {
684
694
  isCacheable: false,
685
695
  parameters: [
686
696
  { name: 'status', type: 'string', description: 'Filter by status' },
697
+ { name: 'priority', type: 'string', description: 'Filter by priority', enum: ['p0', 'p1', 'p2', 'p3'] },
698
+ { name: 'domain', type: 'string', description: 'Filter by assigned domain' },
687
699
  { name: 'limit', type: 'number', description: 'Maximum results', default: 50 },
688
700
  ],
689
701
  },
@@ -722,6 +734,7 @@ export class MCPProtocolServer {
722
734
  { name: 'task', type: 'string', description: 'Task description', required: true },
723
735
  { name: 'strategy', type: 'string', description: 'Execution strategy', enum: ['parallel', 'sequential', 'adaptive'] },
724
736
  { name: 'filePaths', type: 'array', description: 'Project files the task works on. A security scan or quality assessment runs on these files and is refused without them.', items: { type: 'string' } },
737
+ { name: 'priority', type: 'string', description: 'Task priority (default: medium/p2)', enum: ['p0', 'p1', 'p2', 'p3', 'critical', 'high', 'medium', 'low'] },
725
738
  ],
726
739
  },
727
740
  handler: (params) => handleTaskOrchestrate(params),
@@ -11,7 +11,7 @@
11
11
  * - Pattern evolution and consolidation
12
12
  * - Synchronous learning (no fire-and-forget)
13
13
  */
14
- import { type Trajectory, type TrajectoryStep as TrackerTrajectoryStep, type TrajectoryOptions, type ExperienceGuidance, type EnhancedReasoningBankAdapterStats } from '../../integrations/agentic-flow/reasoning-bank/index.js';
14
+ import { type Trajectory, type TrajectoryStep as TrackerTrajectoryStep, type TrajectoryOptions, type ExperienceGuidance, type ExperienceGuidanceStatus, type EnhancedReasoningBankAdapterStats } from '../../integrations/agentic-flow/reasoning-bank/index.js';
15
15
  import { type RealQERoutingRequest, type RealQERoutingResult, type RealQEReasoningBankStats, type PatternSearchStatus, type RealQEPatternSearchResult } from '../../learning/real-qe-reasoning-bank.js';
16
16
  import type { QEPattern, QEDomain } from '../../learning/qe-patterns.js';
17
17
  /**
@@ -210,6 +210,11 @@ export declare class ReasoningBankService {
210
210
  }): Promise<RealQEPatternSearchResult[]>;
211
211
  /** #1022: whether pattern search uses vectors or text matching only. */
212
212
  getPatternSearchStatus(): PatternSearchStatus;
213
+ /**
214
+ * #1204: whether similar-experience guidance can use vectors; null when
215
+ * experience replay is disabled or the service is disposed.
216
+ */
217
+ getExperienceGuidanceStatus(): ExperienceGuidanceStatus | null;
213
218
  /**
214
219
  * Get service statistics
215
220
  */
@@ -519,6 +519,15 @@ export class ReasoningBankService {
519
519
  getPatternSearchStatus() {
520
520
  return this.enhancedAdapter.getPatternSearchStatus();
521
521
  }
522
+ /**
523
+ * #1204: whether similar-experience guidance can use vectors; null when
524
+ * experience replay is disabled or the service is disposed.
525
+ */
526
+ getExperienceGuidanceStatus() {
527
+ if (!this.config.enableExperienceReplay || this.disposed)
528
+ return null;
529
+ return this.enhancedAdapter.getExperienceGuidanceStatus();
530
+ }
522
531
  /**
523
532
  * Get service statistics
524
533
  */
@@ -164,13 +164,10 @@ export class CodeAnalyzeTool extends MCPToolBase {
164
164
  scope: paths.length > 0 && paths[0] !== '.' ? paths : undefined,
165
165
  });
166
166
  const searchTime = Date.now() - startTime;
167
- // If search failed, return error
167
+ // #1224: a search that could not run (e.g. nothing indexed) is an error,
168
+ // not an empty result.
168
169
  if (!result.success) {
169
- return {
170
- results: [],
171
- total: 0,
172
- searchTime,
173
- };
170
+ throw result.error;
174
171
  }
175
172
  // Empty results is a valid state - no matches found
176
173
  if (result.value.results.length === 0) {
@@ -39,6 +39,8 @@ export interface CoverageAnalyzeResult {
39
39
  language?: string;
40
40
  /** Coverage format used for parsing */
41
41
  format?: string;
42
+ /** Parts of the coverage report that could not be attributed to a file and are not reported (#1232). */
43
+ warnings?: string[];
42
44
  }
43
45
  export interface CoverageSummary {
44
46
  lines: CoverageMetric;
@@ -90,6 +92,8 @@ export interface CoverageGapsResult {
90
92
  description: string;
91
93
  confidence: number;
92
94
  }>;
95
+ /** Parts of the coverage report that could not be attributed to a file and are not reported (#1232). */
96
+ warnings?: string[];
93
97
  }
94
98
  export interface CoverageGap {
95
99
  file: string;
@@ -33,6 +33,10 @@ async function confineCoverageInputs(tool, target, coverageFile) {
33
33
  return { error: f.error.message };
34
34
  return { target: confinedTarget, coverageFile: f.value };
35
35
  }
36
+ /** The parser's warnings as an error-message suffix (#1232), or ''. */
37
+ function describeWarnings(report) {
38
+ return report?.warnings?.length ? ` ${report.warnings.join('. ')}.` : '';
39
+ }
36
40
  // ============================================================================
37
41
  // Helper: Calculate Coverage Summary from Files
38
42
  // ============================================================================
@@ -155,7 +159,7 @@ export class CoverageAnalyzeTool extends MCPToolBase {
155
159
  if (!parsedReport || parsedReport.files.size === 0) {
156
160
  return {
157
161
  success: false,
158
- error: `No coverage data found in '${target}'. Run your test suite with coverage enabled (e.g., 'npm test -- --coverage') and ensure coverage reports are generated (lcov.info, coverage-final.json, etc.)`,
162
+ error: `No coverage data found in '${target}'. Run your test suite with coverage enabled (e.g., 'npm test -- --coverage') and ensure coverage reports are generated (lcov.info, coverage-final.json, etc.)${describeWarnings(parsedReport)}`,
159
163
  };
160
164
  }
161
165
  // Mark as real data - we have actual coverage
@@ -250,6 +254,7 @@ export class CoverageAnalyzeTool extends MCPToolBase {
250
254
  trends,
251
255
  language: detectedLanguage,
252
256
  format: detectedFormat,
257
+ ...(parsedReport.warnings ? { warnings: parsedReport.warnings } : {}),
253
258
  },
254
259
  };
255
260
  }
@@ -376,7 +381,7 @@ export class CoverageGapsTool extends MCPToolBase {
376
381
  if (coverageFile) {
377
382
  return {
378
383
  success: false,
379
- error: `Coverage file '${coverageFile}' contains no usable coverage data (parsed 0 files). Verify the file is a non-empty Istanbul/LCOV/JaCoCo/etc. report.`,
384
+ error: `Coverage file '${coverageFile}' contains no usable coverage data (parsed 0 files). Verify the file is a non-empty Istanbul/LCOV/JaCoCo/etc. report.${describeWarnings(parsedReport)}`,
380
385
  };
381
386
  }
382
387
  return {
@@ -462,6 +467,7 @@ export class CoverageGapsTool extends MCPToolBase {
462
467
  criticalGaps: gaps.filter((g) => g.severity === 'critical').length,
463
468
  suggestedTests,
464
469
  ...(ghostGaps ? { ghostGaps } : {}),
470
+ ...(parsedReport.warnings ? { warnings: parsedReport.warnings } : {}),
465
471
  },
466
472
  };
467
473
  }
@@ -75,11 +75,15 @@ export interface A11yAuditResult {
75
75
  }
76
76
  export interface UrlAudit {
77
77
  url: string;
78
+ /** 0-100 when measured; -1 when the URL was not measured (#1145). */
78
79
  score: number;
79
80
  passed: boolean;
80
81
  violations: A11yViolation[];
81
82
  warnings: A11yWarning[];
82
83
  passedRules: number;
84
+ /** False when no browser audited the URL; it is then neither passing nor failing (#1145). */
85
+ measured?: boolean;
86
+ notMeasuredReason?: string;
83
87
  }
84
88
  export interface A11yViolation {
85
89
  id: string;
@@ -103,7 +107,10 @@ export interface A11yWarning {
103
107
  }
104
108
  export interface A11ySummary {
105
109
  totalUrls: number;
110
+ /** URLs a browser actually audited; passing/score/violation counts cover only these (#1145). */
111
+ measuredUrls?: number;
106
112
  passingUrls: number;
113
+ /** Mean over measured URLs; -1 when none was measured (#1145). */
107
114
  avgScore: number;
108
115
  criticalViolations: number;
109
116
  seriousViolations: number;
@@ -218,19 +218,24 @@ export class A11yAuditTool extends MCPToolBase {
218
218
  wcagLevel,
219
219
  includeWarnings,
220
220
  });
221
- if (!auditResult.success) {
222
- // Add failed audit with error info
221
+ if (!auditResult.success || auditResult.value.measured !== true) {
222
+ // #1145: an unmeasured URL carries no findings and no verdict
223
223
  audits.push({
224
224
  url,
225
- score: 0,
225
+ score: -1,
226
226
  passed: false,
227
227
  violations: [],
228
228
  warnings: [],
229
229
  passedRules: 0,
230
+ measured: false,
231
+ notMeasuredReason: auditResult.success
232
+ ? auditResult.value.notMeasuredReason ?? 'not measured'
233
+ : auditResult.error.message,
230
234
  });
231
235
  continue;
232
236
  }
233
237
  const report = auditResult.value;
238
+ const notMeasuredWarnings = [];
234
239
  // Optionally check contrast
235
240
  let contrastViolations = [];
236
241
  if (checkContrast) {
@@ -256,6 +261,9 @@ export class A11yAuditTool extends MCPToolBase {
256
261
  }));
257
262
  }
258
263
  }
264
+ else {
265
+ notMeasuredWarnings.push({ id: 'color-contrast-not-measured', description: contrastResult.error.message, nodes: 0 });
266
+ }
259
267
  }
260
268
  // Optionally check keyboard navigation
261
269
  const keyboardViolations = [];
@@ -302,6 +310,9 @@ export class A11yAuditTool extends MCPToolBase {
302
310
  });
303
311
  }
304
312
  }
313
+ else {
314
+ notMeasuredWarnings.push({ id: 'keyboard-not-measured', description: keyboardResult.error.message, nodes: 0 });
315
+ }
305
316
  }
306
317
  // Convert report violations to output format
307
318
  const violations = [
@@ -323,11 +334,11 @@ export class A11yAuditTool extends MCPToolBase {
323
334
  ...keyboardViolations,
324
335
  ];
325
336
  // Convert warnings (from incomplete checks)
326
- const warnings = report.incomplete.map((i) => ({
327
- id: i.id,
328
- description: i.description,
329
- nodes: i.nodes.length,
330
- }));
337
+ const warnings = [...report.incomplete.map((i) => ({
338
+ id: i.id,
339
+ description: i.description,
340
+ nodes: i.nodes.length,
341
+ })), ...notMeasuredWarnings];
331
342
  const hasCriticalOrSerious = violations.some((v) => v.impact === 'critical' || v.impact === 'serious');
332
343
  audits.push({
333
344
  url,
@@ -336,14 +347,17 @@ export class A11yAuditTool extends MCPToolBase {
336
347
  violations,
337
348
  warnings,
338
349
  passedRules: report.passes.length,
350
+ measured: true,
339
351
  });
340
352
  }
353
+ const measuredAudits = audits.filter((a) => a.measured === true);
341
354
  const summary = {
342
355
  totalUrls: audits.length,
343
- passingUrls: audits.filter((a) => a.passed).length,
344
- avgScore: audits.length > 0
345
- ? Math.round(audits.reduce((sum, a) => sum + a.score, 0) / audits.length)
346
- : 0,
356
+ measuredUrls: measuredAudits.length,
357
+ passingUrls: measuredAudits.filter((a) => a.passed).length,
358
+ avgScore: measuredAudits.length > 0
359
+ ? Math.round(measuredAudits.reduce((sum, a) => sum + a.score, 0) / measuredAudits.length)
360
+ : -1,
347
361
  criticalViolations: audits.reduce((sum, a) => sum + a.violations.filter((v) => v.impact === 'critical').length, 0),
348
362
  seriousViolations: audits.reduce((sum, a) => sum + a.violations.filter((v) => v.impact === 'serious').length, 0),
349
363
  totalViolations: audits.reduce((sum, a) => sum + a.violations.length, 0),
@@ -352,7 +366,9 @@ export class A11yAuditTool extends MCPToolBase {
352
366
  const remediationPlan = generateRemediationPlan(topIssues);
353
367
  this.emitStream(context, {
354
368
  status: 'complete',
355
- message: `Audit complete: avg score ${summary.avgScore}%`,
369
+ message: summary.avgScore < 0
370
+ ? `Audit complete: no URL measured (0/${summary.totalUrls}); no score`
371
+ : `Audit complete: ${summary.measuredUrls}/${summary.totalUrls} URL(s) measured, avg score ${summary.avgScore}%`,
356
372
  progress: 100,
357
373
  });
358
374
  return {