agentic-qe 3.15.12 → 3.15.14

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 (506) hide show
  1. package/.claude/helpers/brain-checkpoint.cjs +124 -5
  2. package/.claude/skills/skills-manifest.json +1 -1
  3. package/CHANGELOG.md +196 -0
  4. package/assets/skills/skills-manifest.json +1 -1
  5. package/dist/cli/bundle.js +6 -6
  6. package/dist/cli/chunks/adapter-23KA2YW7.js +2 -0
  7. package/dist/cli/chunks/{agent-booster-wasm-5VZCKTIJ.js → agent-booster-wasm-2DLAEZK6.js} +2 -2
  8. package/dist/cli/chunks/{agent-handler-K3C6CQCD.js → agent-handler-P3IY7XEE.js} +2 -2
  9. package/dist/cli/chunks/{agent-memory-branch-NVFQ25WS.js → agent-memory-branch-WWKC2H3G.js} +2 -2
  10. package/dist/cli/chunks/aqe-learning-engine-MUICAXW5.js +2 -0
  11. package/dist/cli/chunks/{arena-TSZVDSXS.js → arena-4BMFF6BS.js} +4 -4
  12. package/dist/cli/chunks/{arena-QGWIJADQ.js → arena-EIV5OALF.js} +2 -2
  13. package/dist/cli/chunks/{audit-KIEE2SHJ.js → audit-DNTI453H.js} +3 -3
  14. package/dist/cli/chunks/base-XPWGYDKD.js +2 -0
  15. package/dist/cli/chunks/{better-sqlite3-BNB32NW3.js → better-sqlite3-TQBQGNC6.js} +2 -2
  16. package/dist/cli/chunks/brain-handler-HY57CNAO.js +95 -0
  17. package/dist/cli/chunks/{branch-enumerator-LZ7UXKAY.js → branch-enumerator-THPMZPHQ.js} +2 -2
  18. package/dist/cli/chunks/{browser-VDHAW4RK.js → browser-O6JJOZCK.js} +2 -2
  19. package/dist/cli/chunks/browser-workflow-UMQVBVGK.js +2 -0
  20. package/dist/cli/chunks/{chunk-4PU5GTZW.js → chunk-2HPNGK7A.js} +2 -2
  21. package/dist/cli/chunks/{chunk-MCPXNUDK.js → chunk-2IJO3657.js} +2 -2
  22. package/dist/cli/chunks/{chunk-4Y6OEBJZ.js → chunk-2QLE6NDW.js} +1 -1
  23. package/dist/cli/chunks/{chunk-DZGPUGUG.js → chunk-2UZBLC5H.js} +2 -2
  24. package/dist/cli/chunks/{chunk-5A66EGEW.js → chunk-2W5MQDHM.js} +2 -2
  25. package/dist/cli/chunks/{chunk-JRYWLOBD.js → chunk-3FITMWWJ.js} +2 -2
  26. package/dist/cli/chunks/{chunk-RCOLPF3B.js → chunk-3TF27MG5.js} +2 -2
  27. package/dist/cli/chunks/{chunk-KGA7VAI4.js → chunk-3XACRXBY.js} +2 -2
  28. package/dist/cli/chunks/{chunk-SQVZ3TRU.js → chunk-43XHGWYH.js} +2 -2
  29. package/dist/cli/chunks/{chunk-JR6CUKAI.js → chunk-4RPBODN5.js} +2 -2
  30. package/dist/cli/chunks/{chunk-C3YOVASQ.js → chunk-4T7XV5KQ.js} +1 -1
  31. package/dist/cli/chunks/{chunk-N7O3PF6Y.js → chunk-4WLIOPHX.js} +2 -2
  32. package/dist/cli/chunks/{chunk-PGSJBXTD.js → chunk-52KOPIMI.js} +2 -2
  33. package/dist/cli/chunks/{chunk-4KUOYDY2.js → chunk-56NSE3LJ.js} +2 -2
  34. package/dist/cli/chunks/{chunk-3IU4LDZR.js → chunk-57DRT6UA.js} +2 -2
  35. package/dist/cli/chunks/{chunk-2JYUA27M.js → chunk-57FX3GP6.js} +1 -1
  36. package/dist/cli/chunks/{chunk-7QEUHNKO.js → chunk-5PLBQZ5J.js} +1 -1
  37. package/dist/cli/chunks/{chunk-VF7FTD64.js → chunk-5Y7UFHJD.js} +1 -1
  38. package/dist/cli/chunks/{chunk-7JFDLL2F.js → chunk-5Z4MO2F3.js} +1 -1
  39. package/dist/cli/chunks/chunk-65EE2EST.js +8 -0
  40. package/dist/cli/chunks/{chunk-66PXR3NI.js → chunk-6NIGSY5L.js} +2 -2
  41. package/dist/cli/chunks/chunk-6O63ZTVX.js +3 -0
  42. package/dist/cli/chunks/{chunk-ZYOYR3UR.js → chunk-6OI5SK7M.js} +1 -1
  43. package/dist/cli/chunks/{chunk-5TAEW5OV.js → chunk-6P4Q4RTC.js} +1 -1
  44. package/dist/cli/chunks/{chunk-W5HQIYQU.js → chunk-7724KXM2.js} +3 -3
  45. package/dist/cli/chunks/{chunk-A2JCRXTK.js → chunk-7MISCSL5.js} +2 -2
  46. package/dist/cli/chunks/{chunk-OHVYINGM.js → chunk-7MUO4DEH.js} +3 -3
  47. package/dist/cli/chunks/{chunk-QCPVUNN3.js → chunk-7QUSNBAA.js} +2 -2
  48. package/dist/cli/chunks/{chunk-YUA6ZKKY.js → chunk-7SQTLUEN.js} +2 -2
  49. package/dist/cli/chunks/{chunk-CA5UNWQF.js → chunk-7T6L3LFN.js} +2 -2
  50. package/dist/cli/chunks/{chunk-UREDS662.js → chunk-7TH4PJSU.js} +2 -2
  51. package/dist/cli/chunks/{chunk-TVA5GRIU.js → chunk-7Y3LXH57.js} +2 -2
  52. package/dist/cli/chunks/{chunk-A5Y7DAVQ.js → chunk-A2T56XVL.js} +2 -2
  53. package/dist/cli/chunks/{chunk-ZROAMFX2.js → chunk-AJVLVF7V.js} +2 -2
  54. package/dist/cli/chunks/{chunk-26672ISV.js → chunk-ARRBXCII.js} +2 -2
  55. package/dist/cli/chunks/{chunk-5S4UIDFK.js → chunk-AYLEH2UF.js} +1 -1
  56. package/dist/cli/chunks/{chunk-DRCBRUGN.js → chunk-BBYJBZHG.js} +2 -2
  57. package/dist/cli/chunks/{chunk-BMG2JLSQ.js → chunk-BM3EJLMV.js} +2 -2
  58. package/dist/cli/chunks/{chunk-6QRI3JVE.js → chunk-BNG4J3CE.js} +2 -2
  59. package/dist/cli/chunks/{chunk-EN7GRVEQ.js → chunk-BPDAQB3F.js} +2 -2
  60. package/dist/cli/chunks/{chunk-J7Y7ZBIT.js → chunk-BQJ7CV53.js} +9 -9
  61. package/dist/cli/chunks/{chunk-ADUAJIAU.js → chunk-C3OIBFAA.js} +2 -2
  62. package/dist/cli/chunks/{chunk-4LWMAAWK.js → chunk-CAZM63TP.js} +2 -2
  63. package/dist/cli/chunks/{chunk-UZED4YZ5.js → chunk-CIINJHOX.js} +1 -1
  64. package/dist/cli/chunks/{chunk-C74M4WUI.js → chunk-CPPYZYXC.js} +2 -2
  65. package/dist/cli/chunks/chunk-D3ZZ2NLL.js +62 -0
  66. package/dist/cli/chunks/{chunk-U7ZHDGXG.js → chunk-D5GB5PUU.js} +1 -1
  67. package/dist/cli/chunks/{chunk-HZBXJFGN.js → chunk-DLTB5KCR.js} +2 -2
  68. package/dist/cli/chunks/{chunk-NNBQZR73.js → chunk-DRLSJJIC.js} +2 -2
  69. package/dist/cli/chunks/{chunk-HLGFHHWV.js → chunk-DSQESXL4.js} +2 -2
  70. package/dist/cli/chunks/{chunk-LFBA735S.js → chunk-E2JLAW3U.js} +3 -3
  71. package/dist/cli/chunks/{chunk-PT2NXS43.js → chunk-E3QIQMMN.js} +1 -1
  72. package/dist/cli/chunks/{chunk-35MIUSXQ.js → chunk-E7OR6V3V.js} +2 -2
  73. package/dist/cli/chunks/{chunk-G24SWTAX.js → chunk-E7QTWGPI.js} +413 -413
  74. package/dist/cli/chunks/{chunk-PX5OPXY6.js → chunk-EC65UZ77.js} +1 -1
  75. package/dist/cli/chunks/{chunk-JNXK47OL.js → chunk-EIEEST4T.js} +2 -2
  76. package/dist/cli/chunks/{chunk-2PPSS4JD.js → chunk-FHPNWHY7.js} +2 -2
  77. package/dist/cli/chunks/{chunk-PTBOLBM4.js → chunk-FJOIBZUB.js} +2 -2
  78. package/dist/cli/chunks/{chunk-TXEUVUMO.js → chunk-FTYRPEJS.js} +1 -1
  79. package/dist/cli/chunks/{chunk-ZPVGX4DI.js → chunk-G7HGUQAE.js} +2 -2
  80. package/dist/cli/chunks/{chunk-EF6OERRR.js → chunk-GY4P7KAI.js} +1 -1
  81. package/dist/cli/chunks/{chunk-UUZZXHUF.js → chunk-H3C5FJRH.js} +2 -2
  82. package/dist/cli/chunks/{chunk-L3PV7VXK.js → chunk-H4LYXLAT.js} +1 -1
  83. package/dist/cli/chunks/{chunk-5Z23ZMXZ.js → chunk-HAYKLXCT.js} +63 -61
  84. package/dist/cli/chunks/{chunk-IPA7K556.js → chunk-HEDGFKC5.js} +2 -2
  85. package/dist/cli/chunks/{chunk-BC4T6SCV.js → chunk-HHBF2BZC.js} +4 -4
  86. package/dist/cli/chunks/{chunk-IVTQF55W.js → chunk-HSDWPQQY.js} +3 -3
  87. package/dist/cli/chunks/{chunk-SG2TX72G.js → chunk-HTVGHHX2.js} +2 -2
  88. package/dist/cli/chunks/{chunk-FZJCBSN4.js → chunk-HV43NX4A.js} +2 -2
  89. package/dist/cli/chunks/{chunk-MMEALJ4D.js → chunk-IDBA5GK2.js} +2 -2
  90. package/dist/cli/chunks/{chunk-IA55PFLG.js → chunk-INGXD5IX.js} +2 -2
  91. package/dist/cli/chunks/{chunk-RYHG3I7J.js → chunk-IQRPR4KB.js} +2 -2
  92. package/dist/cli/chunks/{chunk-7OEFBWAG.js → chunk-IRPNEXOU.js} +2 -2
  93. package/dist/cli/chunks/{chunk-P7UFJ6DO.js → chunk-J35JWDJE.js} +1 -1
  94. package/dist/cli/chunks/chunk-J6ASX536.js +2 -0
  95. package/dist/cli/chunks/{chunk-2ASQRBK2.js → chunk-JAOCHPYX.js} +2 -2
  96. package/dist/cli/chunks/{chunk-G3AABG4Q.js → chunk-JB7R77SH.js} +2 -2
  97. package/dist/cli/chunks/{chunk-HSA5IGGW.js → chunk-JI67T6Q2.js} +2 -2
  98. package/dist/cli/chunks/{chunk-ZGROHCOW.js → chunk-JJHLGGPP.js} +1 -1
  99. package/dist/cli/chunks/{chunk-L7NGKANW.js → chunk-JK6PMLQQ.js} +2 -2
  100. package/dist/cli/chunks/{chunk-IL7GQNNE.js → chunk-JO26SG47.js} +2 -2
  101. package/dist/cli/chunks/{chunk-3EWQN37E.js → chunk-JSSU4RIK.js} +2 -2
  102. package/dist/cli/chunks/{chunk-TOWOJGEI.js → chunk-K2SMP4OD.js} +1 -1
  103. package/dist/cli/chunks/{chunk-YVJEUX3I.js → chunk-K7GFYFBO.js} +2 -2
  104. package/dist/cli/chunks/{chunk-DAUEK66C.js → chunk-K7RT6ITZ.js} +1 -1
  105. package/dist/cli/chunks/{chunk-33I2ZP6E.js → chunk-KJ5A54ZH.js} +2 -2
  106. package/dist/cli/chunks/{chunk-W4II6SIH.js → chunk-L5VSLPMW.js} +2 -2
  107. package/dist/cli/chunks/{chunk-NVRYELCY.js → chunk-L752CNG3.js} +3 -3
  108. package/dist/cli/chunks/{chunk-MAJXZYGK.js → chunk-L7PC675Y.js} +1 -1
  109. package/dist/cli/chunks/{chunk-YWWMNTBF.js → chunk-LTGQJYYO.js} +2 -2
  110. package/dist/cli/chunks/{chunk-7DNR4KKR.js → chunk-M2TG7VDK.js} +1 -1
  111. package/dist/cli/chunks/{chunk-2E2QO44T.js → chunk-M5JEA6ZY.js} +2 -2
  112. package/dist/cli/chunks/{chunk-IETBWYHW.js → chunk-MB4UKUBV.js} +2 -2
  113. package/dist/cli/chunks/{chunk-W7H55PY4.js → chunk-MKYOE7NE.js} +1 -1
  114. package/dist/cli/chunks/{chunk-FNUFTWEO.js → chunk-MQXWG55U.js} +3 -3
  115. package/dist/cli/chunks/{chunk-O4QJMANM.js → chunk-MR2OPUSA.js} +1 -1
  116. package/dist/cli/chunks/{chunk-KA5SHLMW.js → chunk-N736GLWZ.js} +2 -2
  117. package/dist/cli/chunks/{chunk-NV74SICL.js → chunk-NHEG2DLN.js} +2 -2
  118. package/dist/cli/chunks/chunk-NKOLILT7.js +86 -0
  119. package/dist/cli/chunks/{chunk-KJDI5CHX.js → chunk-NPCXGX7N.js} +2 -2
  120. package/dist/cli/chunks/{chunk-2IVE5AR3.js → chunk-NZQYJCO6.js} +1 -1
  121. package/dist/cli/chunks/{chunk-4SA7M34P.js → chunk-O2AAYJUV.js} +1 -1
  122. package/dist/cli/chunks/{chunk-ULCW6IVQ.js → chunk-O32BFQV4.js} +2 -2
  123. package/dist/cli/chunks/{chunk-JOWUS2X5.js → chunk-O3ERGUXH.js} +1 -1
  124. package/dist/cli/chunks/{chunk-BYRCB5JT.js → chunk-O5CEL447.js} +2 -2
  125. package/dist/cli/chunks/{chunk-CPIBIR3X.js → chunk-O756AOUX.js} +2 -2
  126. package/dist/cli/chunks/{chunk-TSOQ2QLT.js → chunk-OCN53CCK.js} +2 -2
  127. package/dist/cli/chunks/{chunk-YLKIXEPP.js → chunk-OGEIHS76.js} +1 -1
  128. package/dist/cli/chunks/{chunk-ICKUINKD.js → chunk-OLUOVNUF.js} +2 -2
  129. package/dist/cli/chunks/{chunk-5ADXFUMO.js → chunk-P2TPH3TC.js} +2 -2
  130. package/dist/cli/chunks/{chunk-SBHM5X2S.js → chunk-PCQZIAXB.js} +2 -2
  131. package/dist/cli/chunks/{chunk-CDA5Z74H.js → chunk-PGN4TARY.js} +2 -2
  132. package/dist/cli/chunks/{chunk-P5E26N2X.js → chunk-PNRPVQGI.js} +2 -2
  133. package/dist/cli/chunks/{chunk-23PQF7NN.js → chunk-PWQWKYBG.js} +1 -1
  134. package/dist/cli/chunks/{chunk-T4EN5VVK.js → chunk-QNQE3EOH.js} +2 -2
  135. package/dist/cli/chunks/chunk-QP2HLKTS.js +2 -0
  136. package/dist/cli/chunks/{chunk-7TA5MUPW.js → chunk-QP6GL3O5.js} +1 -1
  137. package/dist/cli/chunks/{chunk-GKFV6CUD.js → chunk-QUZ745UQ.js} +2 -2
  138. package/dist/cli/chunks/{chunk-INZARYUD.js → chunk-R5RRWLRI.js} +2 -2
  139. package/dist/cli/chunks/{chunk-VZBC6DP7.js → chunk-RE6JTSDM.js} +1 -1
  140. package/dist/cli/chunks/{chunk-JGIJPDGD.js → chunk-TOJF3ZG4.js} +2 -2
  141. package/dist/cli/chunks/{chunk-WLRU6ESI.js → chunk-TSP6SU5V.js} +2 -2
  142. package/dist/cli/chunks/{chunk-6E6HB4N4.js → chunk-TW6Z6W4X.js} +4 -4
  143. package/dist/cli/chunks/{chunk-ENGL7FIJ.js → chunk-TWOV3I3A.js} +1 -1
  144. package/dist/cli/chunks/chunk-U4TML2VD.js +3 -0
  145. package/dist/cli/chunks/{chunk-O3IM4WRZ.js → chunk-U6IOQKCT.js} +2 -2
  146. package/dist/cli/chunks/{chunk-SPC4RBLF.js → chunk-UDSB3XCG.js} +2 -2
  147. package/dist/cli/chunks/{chunk-URSTP3WI.js → chunk-UFP7SN5V.js} +2 -2
  148. package/dist/cli/chunks/{chunk-MYF5CNGV.js → chunk-UMHFTQTR.js} +2 -2
  149. package/dist/cli/chunks/{chunk-65TH6RPD.js → chunk-UNYTHZDZ.js} +1 -1
  150. package/dist/cli/chunks/{chunk-FAGKBOX2.js → chunk-UPWLMIDY.js} +2 -2
  151. package/dist/cli/chunks/{chunk-4CB3QPZM.js → chunk-USAKCGHC.js} +2 -2
  152. package/dist/cli/chunks/{chunk-QUJJYTJH.js → chunk-V3MGY76S.js} +2 -2
  153. package/dist/cli/chunks/{chunk-WDEXOLK2.js → chunk-V6SE2ZU2.js} +1 -1
  154. package/dist/cli/chunks/{chunk-JW5PDJ5O.js → chunk-VCVRZD4Y.js} +3 -3
  155. package/dist/cli/chunks/{chunk-TGMXUZZC.js → chunk-VG32EEUG.js} +2 -2
  156. package/dist/cli/chunks/{chunk-MYUMJ2ZI.js → chunk-VGZOPQQY.js} +1 -1
  157. package/dist/cli/chunks/{chunk-BOSMELJX.js → chunk-VJBJRFUO.js} +2 -2
  158. package/dist/cli/chunks/{chunk-K3A3NWT3.js → chunk-WBC6WB32.js} +2 -2
  159. package/dist/cli/chunks/{chunk-QWG3SILX.js → chunk-WCM6WE7G.js} +5 -5
  160. package/dist/cli/chunks/{chunk-GJKZ7UQO.js → chunk-WCPSR4MJ.js} +2 -2
  161. package/dist/cli/chunks/{chunk-U6IXYQO4.js → chunk-WKI46WWN.js} +2 -2
  162. package/dist/cli/chunks/{chunk-NX4BCSOZ.js → chunk-WM2QRIRD.js} +2 -2
  163. package/dist/cli/chunks/{chunk-32UTHIY5.js → chunk-WRC3HLUY.js} +3 -3
  164. package/dist/cli/chunks/{chunk-AJEXPFAB.js → chunk-WUGXXNK4.js} +1 -1
  165. package/dist/cli/chunks/{chunk-NA3F6FEO.js → chunk-WZQADC5R.js} +2 -2
  166. package/dist/cli/chunks/{chunk-SDRJJUPO.js → chunk-X6NJOT3V.js} +1 -1
  167. package/dist/cli/chunks/{chunk-CU36D7TN.js → chunk-X6Q2N5S5.js} +2 -2
  168. package/dist/cli/chunks/{chunk-UIKQPO4Y.js → chunk-X7CUI7KH.js} +2 -2
  169. package/dist/cli/chunks/{chunk-MCPEC6OO.js → chunk-XMCSKYDE.js} +1 -1
  170. package/dist/cli/chunks/{chunk-WTAUF6O4.js → chunk-XN3KCKAM.js} +2 -2
  171. package/dist/cli/chunks/{chunk-TLRHAMX5.js → chunk-XSPMLJCQ.js} +1 -1
  172. package/dist/cli/chunks/{chunk-VUR5THML.js → chunk-XTZGAG6P.js} +2 -2
  173. package/dist/cli/chunks/{chunk-47RMGDG4.js → chunk-YE54T2NQ.js} +2 -2
  174. package/dist/cli/chunks/{chunk-HM3LSFTY.js → chunk-YEFTK4HD.js} +2 -2
  175. package/dist/cli/chunks/{chunk-4HWUECVD.js → chunk-YGC5QKQ4.js} +2 -2
  176. package/dist/cli/chunks/{chunk-SUX5XB2Z.js → chunk-YGOSSVY5.js} +2 -2
  177. package/dist/cli/chunks/{chunk-UJNGGFGX.js → chunk-YKQWIXUY.js} +2 -2
  178. package/dist/cli/chunks/{chunk-SITL5YZV.js → chunk-Z2S7DNFP.js} +2 -2
  179. package/dist/cli/chunks/{chunk-WGTEZT7G.js → chunk-Z54G2YOL.js} +2 -2
  180. package/dist/cli/chunks/{chunk-YNVEDFPQ.js → chunk-ZJGFQK27.js} +1 -1
  181. package/dist/cli/chunks/{chunk-35NW676P.js → chunk-ZUE524JL.js} +2 -2
  182. package/dist/cli/chunks/{ci-BZNWW3I3.js → ci-UMA2SMNW.js} +2 -2
  183. package/dist/cli/chunks/{ci-config-LOHNXOKV.js → ci-config-UQSILJFQ.js} +2 -2
  184. package/dist/cli/chunks/{ci-output-LCOQBSJL.js → ci-output-U6YZLLKH.js} +2 -2
  185. package/dist/cli/chunks/{circuit-breaker-7LRXTLFE.js → circuit-breaker-ATYQP6X2.js} +2 -2
  186. package/dist/cli/chunks/{claude-flow-setup-HBU4VWC3.js → claude-flow-setup-6YHFD7AN.js} +2 -2
  187. package/dist/cli/chunks/client-E43GWLQH.js +2 -0
  188. package/dist/cli/chunks/{cline-installer-CO6MLH6X.js → cline-installer-EPE7IOZE.js} +2 -2
  189. package/dist/cli/chunks/{code-SIXBS6JM.js → code-NUEJ4XYO.js} +19 -18
  190. package/dist/cli/chunks/{code-index-extractor-GWJKZ2IQ.js → code-index-extractor-D4DBT6OL.js} +2 -2
  191. package/dist/cli/chunks/{codex-installer-6NINVWXJ.js → codex-installer-633SM4LR.js} +2 -2
  192. package/dist/cli/chunks/{completions-7VIX3GML.js → completions-WUKVIW3L.js} +2 -2
  193. package/dist/cli/chunks/{complexity-analyzer-FBQR6ZP2.js → complexity-analyzer-F73ACR5H.js} +2 -2
  194. package/dist/cli/chunks/{continuedev-installer-VA7RIXW5.js → continuedev-installer-QH42TKMS.js} +2 -2
  195. package/dist/cli/chunks/{copilot-installer-4QEBC4MU.js → copilot-installer-Y3XC7BTT.js} +2 -2
  196. package/dist/cli/chunks/core-handlers-R5A3SQDY.js +2 -0
  197. package/dist/cli/chunks/{cost-tracker-GRYKHPWL.js → cost-tracker-57QPV7E3.js} +2 -2
  198. package/dist/cli/chunks/coverage-IBCHMBCR.js +51 -0
  199. package/dist/cli/chunks/cross-domain-router-LLYVPZF6.js +2 -0
  200. package/dist/cli/chunks/{cursor-installer-ZXIPSZVH.js → cursor-installer-F4UYQHIN.js} +2 -2
  201. package/dist/cli/chunks/{daemon-N2VRHPSJ.js → daemon-BYYPIJ7G.js} +4 -4
  202. package/dist/cli/chunks/{daemon-D7F3RGI5.js → daemon-XR4Q6YZF.js} +3 -3
  203. package/dist/cli/chunks/{dag-attention-scheduler-NL6BA7BY.js → dag-attention-scheduler-ZR5ZD3TW.js} +2 -2
  204. package/dist/cli/chunks/{detect-XC2HCIIT.js → detect-GEGYURLL.js} +2 -2
  205. package/dist/cli/chunks/{dist-node-A3Y26MEI.js → dist-node-JU3KT2JO.js} +2 -2
  206. package/dist/cli/chunks/{domain-handler-WV6SFXRB.js → domain-handler-7QI3FJGE.js} +2 -2
  207. package/dist/cli/chunks/{domain-plugins-KJIF6Z2B.js → domain-plugins-O2YRM2PD.js} +2 -2
  208. package/dist/cli/chunks/domain-transfer-7J3S2OS6.js +2 -0
  209. package/dist/cli/chunks/dream-6C4NURSE.js +2 -0
  210. package/dist/cli/chunks/{embed-and-insert-pattern-PA3Y4KGO.js → embed-and-insert-pattern-URES5Q6J.js} +2 -2
  211. package/dist/cli/chunks/{eval-YGEZNUVE.js → eval-RVMCIUOR.js} +2 -2
  212. package/dist/cli/chunks/{experience-capture-middleware-D4T7NW6B.js → experience-capture-middleware-SYJQSBKE.js} +3 -3
  213. package/dist/cli/chunks/{fast-paths-6JYK7RYQ.js → fast-paths-QUKPKWKZ.js} +2 -2
  214. package/dist/cli/chunks/{feature-flags-DKXMDVPE.js → feature-flags-5JCSKL2P.js} +2 -2
  215. package/dist/cli/chunks/{feature-flags-RBH2GDSR.js → feature-flags-K7JXNKJI.js} +2 -2
  216. package/dist/cli/chunks/file-discovery-J5IE5KP7.js +2 -0
  217. package/dist/cli/chunks/fleet-II4Q6HXK.js +44 -0
  218. package/dist/cli/chunks/{gnn-wrapper-MV54UC4C.js → gnn-wrapper-M7VO2EMS.js} +2 -2
  219. package/dist/cli/chunks/{heartbeat-handler-7DKMVQQH.js → heartbeat-handler-ND5CY26N.js} +4 -4
  220. package/dist/cli/chunks/heartbeat-scheduler-FC5PBTMN.js +2 -0
  221. package/dist/cli/chunks/hnsw-adapter-47UIVOBG.js +2 -0
  222. package/dist/cli/chunks/hnsw-index-3AKVLOZQ.js +2 -0
  223. package/dist/cli/chunks/{hnsw-legacy-bridge-6IWREDQC.js → hnsw-legacy-bridge-N3AUUUU7.js} +2 -2
  224. package/dist/cli/chunks/{hnswlib-node-5BIESSCK.js → hnswlib-node-NZY3E5EN.js} +2 -2
  225. package/dist/cli/chunks/{hooks-3EETRM62.js → hooks-QVJDTII5.js} +10 -10
  226. package/dist/cli/chunks/hybrid-backend-YAOSNX47.js +2 -0
  227. package/dist/cli/chunks/{hypergraph-engine-RSWCB2D3.js → hypergraph-engine-ZRY6MTDV.js} +2 -2
  228. package/dist/cli/chunks/{hypergraph-handler-552LXKL3.js → hypergraph-handler-56DO4XZQ.js} +3 -3
  229. package/dist/cli/chunks/impact-analyzer-4FMJXM4M.js +2 -0
  230. package/dist/cli/chunks/{init-guard-OTDBJ5HD.js → init-guard-DTF4EVUY.js} +2 -2
  231. package/dist/cli/chunks/{init-handler-3FK3TKEA.js → init-handler-M6CNQHMX.js} +6 -6
  232. package/dist/cli/chunks/init-wizard-RTLCRWDT.js +2 -0
  233. package/dist/cli/chunks/kernel-2OWIGGGT.js +2 -0
  234. package/dist/cli/chunks/{kilocode-installer-KZ2O4LF3.js → kilocode-installer-IJN7XKBH.js} +2 -2
  235. package/dist/cli/chunks/{kiro-installer-MLCCXRF7.js → kiro-installer-UKKPGPDC.js} +2 -2
  236. package/dist/cli/chunks/knowledge-graph-25XXKDJN.js +2 -0
  237. package/dist/cli/chunks/learning-W2HETWQ4.js +131 -0
  238. package/dist/cli/chunks/{llm-router-PDEV3UP2.js → llm-router-Y546K4VX.js} +4 -4
  239. package/dist/cli/chunks/llm-router-service-G3EIN4UB.js +2 -0
  240. package/dist/cli/chunks/{load-XFVVLO7E.js → load-MKAB2AXE.js} +2 -2
  241. package/dist/cli/chunks/load-test-D6QYNIVT.js +2 -0
  242. package/dist/cli/chunks/{mcp-74G3CL2S.js → mcp-AZKUS6K3.js} +2 -2
  243. package/dist/cli/chunks/{memory-XIFM6JNX.js → memory-ZDOQN2KU.js} +5 -5
  244. package/dist/cli/chunks/memory-backend-LDFFZMEQ.js +2 -0
  245. package/dist/cli/chunks/{memory-handlers-ZCKURV6S.js → memory-handlers-3SQVY7FE.js} +2 -2
  246. package/dist/cli/chunks/{multi-model-executor-7L4W3O2Q.js → multi-model-executor-WWVXDHG4.js} +2 -2
  247. package/dist/cli/chunks/{opencode-installer-BPG422LF.js → opencode-installer-YUJNXXWS.js} +2 -2
  248. package/dist/cli/chunks/{orchestrator-OEAFLAEV.js → orchestrator-Z6PWPLRE.js} +109 -25
  249. package/dist/cli/chunks/pattern-null-store-KDVRM7PW.js +2 -0
  250. package/dist/cli/chunks/{pattern-usage-recorder-LOPNCULT.js → pattern-usage-recorder-TPWPX32U.js} +2 -2
  251. package/dist/cli/chunks/{pipeline-VWTYUZB7.js → pipeline-4BBGTE4M.js} +2 -2
  252. package/dist/cli/chunks/{platform-WFJJ3X2E.js → platform-5GSHXCV5.js} +2 -2
  253. package/dist/cli/chunks/{plugin-744TPUSG.js → plugin-OFDVF5HS.js} +2 -2
  254. package/dist/cli/chunks/{prime-radiant-advanced-wasm-BD5BLNDR.js → prime-radiant-advanced-wasm-NC6MUYGJ.js} +2 -2
  255. package/dist/cli/chunks/project-root-DDGBWDP6.js +2 -0
  256. package/dist/cli/chunks/protocol-executor-KBOLLCWA.js +2 -0
  257. package/dist/cli/chunks/{protocol-handler-JIBILI74.js → protocol-handler-MPOAAEPA.js} +2 -2
  258. package/dist/cli/chunks/{prove-MNOL5FYW.js → prove-CDKMAIVM.js} +2 -2
  259. package/dist/cli/chunks/qe-reasoning-bank-GRXBT7FC.js +2 -0
  260. package/dist/cli/chunks/{quality-JEGBDGGX.js → quality-ZH4F7R7R.js} +2 -2
  261. package/dist/cli/chunks/{quality-gate-SYJ6ROMI.js → quality-gate-IDRMW6OE.js} +3 -3
  262. package/dist/cli/chunks/queen-coordinator-L2QWMJ5Q.js +2 -0
  263. package/dist/cli/chunks/{real-embeddings-ZWXS5ZFV.js → real-embeddings-I2UVNNB3.js} +2 -2
  264. package/dist/cli/chunks/{ref-validation-RRHUFW2N.js → ref-validation-Z5GCGVXK.js} +2 -2
  265. package/dist/cli/chunks/{roocode-installer-XFO6JSVN.js → roocode-installer-IZ2S7PH2.js} +2 -2
  266. package/dist/cli/chunks/router-FT5WJPUH.js +2 -0
  267. package/dist/cli/chunks/routing-feedback-EO2MKOUX.js +2 -0
  268. package/dist/cli/chunks/{routing-handler-L2K3JASE.js → routing-handler-NAX35VUW.js} +2 -2
  269. package/dist/cli/chunks/{ruvector-commands-A6CINHGM.js → ruvector-commands-5YW2SOFF.js} +2 -2
  270. package/dist/cli/chunks/rvf-dual-writer-WHBFQJVU.js +2 -0
  271. package/dist/cli/chunks/rvf-migration-adapter-YT3APF2I.js +2 -0
  272. package/dist/cli/chunks/{rvf-migration-coordinator-T4RY7L53.js → rvf-migration-coordinator-VUIZHTVG.js} +2 -2
  273. package/dist/cli/chunks/rvf-native-adapter-37PUFKQD.js +2 -0
  274. package/dist/cli/chunks/{rvf-store-integrity-IR33TGQS.js → rvf-store-integrity-IPGCAT6C.js} +2 -2
  275. package/dist/cli/chunks/safe-db-TDZKUOZJ.js +2 -0
  276. package/dist/cli/chunks/schedule-CRKTRY2A.js +2 -0
  277. package/dist/cli/chunks/scheduler-6ZBDVQWN.js +2 -0
  278. package/dist/cli/chunks/{security-Z5GDE2IH.js → security-3IH4BO5Z.js} +3 -3
  279. package/dist/cli/chunks/{shared-rvf-adapter-SIZMEHPM.js → shared-rvf-adapter-ABY7PAY2.js} +2 -2
  280. package/dist/cli/chunks/{shared-rvf-dual-writer-HLM65RDS.js → shared-rvf-dual-writer-6KENLN2W.js} +2 -2
  281. package/dist/cli/chunks/sqlite-persistence-FFJQAIKW.js +2 -0
  282. package/dist/cli/chunks/{standalone-memory-SKSZG7P5.js → standalone-memory-RLFAUGOW.js} +2 -2
  283. package/dist/cli/chunks/{status-handler-766YOOMJ.js → status-handler-FCOZBPE5.js} +2 -2
  284. package/dist/cli/chunks/{structural-health-M45FNOLT.js → structural-health-4RDA5UUM.js} +2 -2
  285. package/dist/cli/chunks/{sync-B2U366I3.js → sync-54LUAUTK.js} +2 -2
  286. package/dist/cli/chunks/{sync-6CJ24B5T.js → sync-KGEEXXCC.js} +2 -2
  287. package/dist/cli/chunks/task-handler-K3OXHYKU.js +62 -0
  288. package/dist/cli/chunks/task-handlers-6H7L2UT4.js +9 -0
  289. package/dist/cli/chunks/{test-TODH7KRF.js → test-S7IG6EIX.js} +4 -4
  290. package/dist/cli/chunks/test-runner-process-OTQDAJLN.js +2 -0
  291. package/dist/cli/chunks/{test-scheduling-VMVMVRHT.js → test-scheduling-7XYXI4L2.js} +3 -3
  292. package/dist/cli/chunks/{token-bootstrap-XQW7BMCK.js → token-bootstrap-3QMABE45.js} +2 -2
  293. package/dist/cli/chunks/{token-usage-JCZEIRKO.js → token-usage-Y2YTPOFE.js} +2 -2
  294. package/dist/cli/chunks/{transformers-U2ML3OHE.js → transformers-UCJ3HHHC.js} +2 -2
  295. package/dist/cli/chunks/tree-sitter-wasm-parser-D6JTTHTP.js +2 -0
  296. package/dist/cli/chunks/{types-GGEPCHP6.js → types-6CMFPETH.js} +2 -2
  297. package/dist/cli/chunks/unified-memory-QARWQKJ2.js +2 -0
  298. package/dist/cli/chunks/unified-memory-hnsw-LHY3DXCP.js +2 -0
  299. package/dist/cli/chunks/unified-persistence-WEYYGLHM.js +2 -0
  300. package/dist/cli/chunks/{upgrade-T5GRM7HS.js → upgrade-K25DN6WU.js} +2 -2
  301. package/dist/cli/chunks/{validate-XMUJPLP3.js → validate-T4V3TBY3.js} +2 -2
  302. package/dist/cli/chunks/{validate-swarm-KJLF7JEH.js → validate-swarm-XSRC576T.js} +2 -2
  303. package/dist/cli/chunks/visual-security-O4ALMCXQ.js +2 -0
  304. package/dist/cli/chunks/{web-tree-sitter-LOHVZ7G5.js → web-tree-sitter-YOZXHRTN.js} +2 -2
  305. package/dist/cli/chunks/{windsurf-installer-33FBTXJU.js → windsurf-installer-ITPU2IYL.js} +2 -2
  306. package/dist/cli/chunks/witness-chain-B3YW5NMS.js +2 -0
  307. package/dist/cli/chunks/witness-chain-PIYR72HJ.js +2 -0
  308. package/dist/cli/chunks/{witness-chain-repair-VWBO4NXE.js → witness-chain-repair-YUG7E3UX.js} +2 -2
  309. package/dist/cli/chunks/{witness-chain-verifier-BHJ3ZAEK.js → witness-chain-verifier-DTDSVKOG.js} +2 -2
  310. package/dist/cli/chunks/{witness-key-manager-WNVPH2Z3.js → witness-key-manager-EWACWGAW.js} +2 -2
  311. package/dist/cli/chunks/{workflow-6QR5MQTO.js → workflow-ZIQ4FV42.js} +4 -4
  312. package/dist/cli/chunks/workflow-orchestrator-3ZN2BCGY.js +2 -0
  313. package/dist/cli/chunks/{wrappers-EHOL62TS.js → wrappers-PW2O27LL.js} +2 -2
  314. package/dist/cli/commands/code.js +6 -0
  315. package/dist/cli/commands/coverage.js +6 -0
  316. package/dist/cli/commands/fleet-run.d.ts +12 -0
  317. package/dist/cli/commands/fleet-run.js +175 -0
  318. package/dist/cli/commands/fleet.js +2 -117
  319. package/dist/cli/commands/learning-prune.d.ts +14 -0
  320. package/dist/cli/commands/learning-prune.js +105 -0
  321. package/dist/cli/commands/learning.js +9 -0
  322. package/dist/cli/handlers/brain-handler.js +12 -1
  323. package/dist/cli/handlers/task-handler.d.ts +5 -0
  324. package/dist/cli/handlers/task-handler.js +20 -0
  325. package/dist/cli/utils/coverage-verdict.js +14 -3
  326. package/dist/cli/utils/fleet-operation.d.ts +5 -2
  327. package/dist/cli/utils/fleet-operation.js +13 -2
  328. package/dist/cli/utils/fleet-result.d.ts +16 -2
  329. package/dist/cli/utils/fleet-result.js +26 -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/context/compaction/index.d.ts +7 -0
  333. package/dist/context/compaction/index.js +30 -6
  334. package/dist/coordination/handlers/code-intelligence-handlers.js +21 -1
  335. package/dist/coordination/handlers/coverage-evidence.d.ts +19 -0
  336. package/dist/coordination/handlers/coverage-evidence.js +31 -2
  337. package/dist/coordination/handlers/coverage-handlers.js +5 -1
  338. package/dist/coordination/handlers/coverage-target.js +8 -1
  339. package/dist/coordination/handlers/handler-types.d.ts +2 -2
  340. package/dist/coordination/handlers/handler-utils.d.ts +6 -0
  341. package/dist/coordination/handlers/handler-utils.js +14 -4
  342. package/dist/coordination/handlers/misc-handlers.js +5 -2
  343. package/dist/coordination/handlers/quality-handlers.js +11 -3
  344. package/dist/coordination/handlers/security-handlers.js +12 -2
  345. package/dist/coordination/protocols/security-audit.js +11 -1
  346. package/dist/coordination/result-saver-adapters.js +1 -0
  347. package/dist/coordination/result-saver.js +9 -5
  348. package/dist/coordination/task-executor.js +7 -2
  349. package/dist/domains/chaos-resilience/services/chaos-engineer.d.ts +1 -0
  350. package/dist/domains/chaos-resilience/services/chaos-engineer.js +23 -45
  351. package/dist/domains/code-intelligence/coordinator-gnn.d.ts +2 -16
  352. package/dist/domains/code-intelligence/coordinator-gnn.js +1 -62
  353. package/dist/domains/code-intelligence/coordinator.d.ts +12 -6
  354. package/dist/domains/code-intelligence/coordinator.js +24 -27
  355. package/dist/domains/code-intelligence/interfaces.d.ts +9 -0
  356. package/dist/domains/code-intelligence/services/semantic-analyzer.d.ts +43 -5
  357. package/dist/domains/code-intelligence/services/semantic-analyzer.js +134 -71
  358. package/dist/domains/coverage-analysis/collected-metrics.d.ts +26 -0
  359. package/dist/domains/coverage-analysis/collected-metrics.js +54 -0
  360. package/dist/domains/coverage-analysis/services/coverage-analyzer.js +13 -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/defect-intelligence/services/defect-predictor.js +3 -6
  364. package/dist/domains/quality-assessment/coherence/gate-controller.js +16 -4
  365. package/dist/domains/quality-assessment/coherence/lambda-calculator.d.ts +8 -0
  366. package/dist/domains/quality-assessment/coherence/lambda-calculator.js +57 -14
  367. package/dist/domains/quality-assessment/coherence/types.d.ts +12 -7
  368. package/dist/domains/quality-assessment/coordinator-gate-evaluation.js +3 -1
  369. package/dist/domains/quality-assessment/coordinator-reports.d.ts +30 -10
  370. package/dist/domains/quality-assessment/coordinator-reports.js +93 -57
  371. package/dist/domains/quality-assessment/coordinator.d.ts +14 -40
  372. package/dist/domains/quality-assessment/coordinator.js +10 -4
  373. package/dist/domains/quality-assessment/coverage-report-event.d.ts +8 -0
  374. package/dist/domains/quality-assessment/coverage-report-event.js +22 -1
  375. package/dist/domains/quality-assessment/interfaces.d.ts +8 -0
  376. package/dist/domains/quality-assessment/services/coherence-gate.js +15 -2
  377. package/dist/domains/quality-assessment/services/quality-analyzer.d.ts +4 -0
  378. package/dist/domains/quality-assessment/services/quality-analyzer.js +63 -17
  379. package/dist/domains/quality-assessment/services/quality-gate.js +6 -4
  380. package/dist/domains/security-compliance/index.d.ts +1 -1
  381. package/dist/domains/security-compliance/interfaces.d.ts +46 -5
  382. package/dist/domains/security-compliance/services/scanners/dast-auth-testing.d.ts +3 -3
  383. package/dist/domains/security-compliance/services/scanners/dast-auth-testing.js +15 -14
  384. package/dist/domains/security-compliance/services/scanners/dast-helpers.d.ts +8 -9
  385. package/dist/domains/security-compliance/services/scanners/dast-helpers.js +19 -44
  386. package/dist/domains/security-compliance/services/scanners/dast-injection-testing.d.ts +3 -3
  387. package/dist/domains/security-compliance/services/scanners/dast-injection-testing.js +13 -9
  388. package/dist/domains/security-compliance/services/scanners/dast-requests.d.ts +54 -0
  389. package/dist/domains/security-compliance/services/scanners/dast-requests.js +125 -0
  390. package/dist/domains/security-compliance/services/scanners/dast-scanner.d.ts +5 -1
  391. package/dist/domains/security-compliance/services/scanners/dast-scanner.js +125 -155
  392. package/dist/domains/security-compliance/services/scanners/index.d.ts +1 -1
  393. package/dist/domains/security-compliance/services/scanners/index.js +1 -1
  394. package/dist/domains/security-compliance/services/scanners/scanner-types.d.ts +2 -2
  395. package/dist/domains/security-compliance/services/security-auditor-dast.js +183 -212
  396. package/dist/domains/security-compliance/services/security-auditor-reports.js +5 -1
  397. package/dist/domains/security-compliance/services/security-auditor.d.ts +11 -3
  398. package/dist/domains/security-compliance/services/security-auditor.js +106 -65
  399. package/dist/domains/test-execution/coordinator.d.ts +2 -1
  400. package/dist/domains/test-execution/coordinator.js +33 -27
  401. package/dist/domains/test-execution/interfaces.d.ts +10 -0
  402. package/dist/domains/test-execution/services/test-executor.d.ts +6 -0
  403. package/dist/domains/test-execution/services/test-executor.js +22 -4
  404. package/dist/domains/visual-accessibility/coordinator.js +34 -9
  405. package/dist/domains/visual-accessibility/interfaces.d.ts +27 -0
  406. package/dist/domains/visual-accessibility/plugin.js +5 -0
  407. package/dist/domains/visual-accessibility/services/accessibility-tester-heuristics.d.ts +13 -21
  408. package/dist/domains/visual-accessibility/services/accessibility-tester-heuristics.js +13 -297
  409. package/dist/domains/visual-accessibility/services/accessibility-tester.d.ts +13 -5
  410. package/dist/domains/visual-accessibility/services/accessibility-tester.js +96 -73
  411. package/dist/init/phases/07-hooks.js +90 -6
  412. package/dist/integrations/embeddings/index/HNSWIndex.js +8 -4
  413. package/dist/integrations/ruvector/brain-rvf-exporter.d.ts +25 -0
  414. package/dist/integrations/ruvector/brain-rvf-exporter.js +154 -61
  415. package/dist/integrations/ruvector/transfer-coherence-stub.js +5 -10
  416. package/dist/learning/dream/dream-engine.d.ts +24 -1
  417. package/dist/learning/dream/dream-engine.js +57 -6
  418. package/dist/learning/learning-retention.d.ts +103 -0
  419. package/dist/learning/learning-retention.js +213 -0
  420. package/dist/mcp/bundle.js +508 -503
  421. package/dist/mcp/handlers/domain-handler-configs.d.ts +17 -1
  422. package/dist/mcp/handlers/domain-handler-configs.js +33 -16
  423. package/dist/mcp/handlers/handler-factory.js +3 -0
  424. package/dist/mcp/handlers/model-route-handlers.d.ts +107 -0
  425. package/dist/mcp/handlers/model-route-handlers.js +139 -0
  426. package/dist/mcp/handlers/orchestrate-routes.js +41 -3
  427. package/dist/mcp/handlers/task-handlers.d.ts +3 -251
  428. package/dist/mcp/handlers/task-handlers.js +6 -828
  429. package/dist/mcp/handlers/task-inference.d.ts +26 -0
  430. package/dist/mcp/handlers/task-inference.js +156 -0
  431. package/dist/mcp/handlers/task-learning-handlers.d.ts +92 -0
  432. package/dist/mcp/handlers/task-learning-handlers.js +230 -0
  433. package/dist/mcp/handlers/task-orchestrate-handler.d.ts +73 -0
  434. package/dist/mcp/handlers/task-orchestrate-handler.js +361 -0
  435. package/dist/mcp/protocol-server.js +13 -3
  436. package/dist/mcp/tools/chaos-resilience/inject.d.ts +3 -4
  437. package/dist/mcp/tools/chaos-resilience/inject.js +11 -81
  438. package/dist/mcp/tools/code-intelligence/analyze.js +3 -6
  439. package/dist/mcp/tools/coverage-analysis/index.d.ts +4 -0
  440. package/dist/mcp/tools/coverage-analysis/index.js +8 -2
  441. package/dist/mcp/tools/learning-optimization/dream.d.ts +8 -0
  442. package/dist/mcp/tools/learning-optimization/dream.js +4 -0
  443. package/dist/mcp/tools/visual-accessibility/index.d.ts +7 -0
  444. package/dist/mcp/tools/visual-accessibility/index.js +29 -13
  445. package/dist/shared/events/domain-events.d.ts +2 -0
  446. package/dist/shared/metrics/code-metrics.js +21 -3
  447. package/dist/shared/parsers/typescript-parser.d.ts +6 -0
  448. package/dist/shared/parsers/typescript-parser.js +13 -1
  449. package/package.json +1 -1
  450. package/dist/cli/chunks/adapter-HL7MOCQN.js +0 -2
  451. package/dist/cli/chunks/aqe-learning-engine-OZ2DXB4G.js +0 -2
  452. package/dist/cli/chunks/base-WIM7G3HC.js +0 -2
  453. package/dist/cli/chunks/brain-handler-MPC5SPYI.js +0 -94
  454. package/dist/cli/chunks/browser-workflow-QRKCFVR3.js +0 -2
  455. package/dist/cli/chunks/chunk-4A76VPU4.js +0 -3
  456. package/dist/cli/chunks/chunk-QSGEBCDB.js +0 -62
  457. package/dist/cli/chunks/chunk-UCSK2RMI.js +0 -2
  458. package/dist/cli/chunks/chunk-VXVTFKRA.js +0 -2
  459. package/dist/cli/chunks/chunk-XCNSGSKV.js +0 -3
  460. package/dist/cli/chunks/chunk-XZOYKB22.js +0 -79
  461. package/dist/cli/chunks/chunk-YIDAXOUX.js +0 -8
  462. package/dist/cli/chunks/client-4PNYDFYS.js +0 -2
  463. package/dist/cli/chunks/core-handlers-ODO6LUWQ.js +0 -2
  464. package/dist/cli/chunks/coverage-USPMNKOU.js +0 -50
  465. package/dist/cli/chunks/cross-domain-router-DT4MHJKK.js +0 -2
  466. package/dist/cli/chunks/domain-transfer-L3F6AES2.js +0 -2
  467. package/dist/cli/chunks/dream-QOB3JCOM.js +0 -2
  468. package/dist/cli/chunks/file-discovery-BN76S2PR.js +0 -2
  469. package/dist/cli/chunks/fleet-43YMXACN.js +0 -46
  470. package/dist/cli/chunks/heartbeat-scheduler-3NNP4WCP.js +0 -2
  471. package/dist/cli/chunks/hnsw-adapter-MZR7Y4WF.js +0 -2
  472. package/dist/cli/chunks/hnsw-index-HE4AX22U.js +0 -2
  473. package/dist/cli/chunks/hybrid-backend-IHUHB3Y2.js +0 -2
  474. package/dist/cli/chunks/impact-analyzer-FI6GI6PD.js +0 -2
  475. package/dist/cli/chunks/init-wizard-WLQKH5Y5.js +0 -2
  476. package/dist/cli/chunks/kernel-2WZOQEZS.js +0 -2
  477. package/dist/cli/chunks/knowledge-graph-G3LVKK6P.js +0 -2
  478. package/dist/cli/chunks/learning-QUCMBD77.js +0 -122
  479. package/dist/cli/chunks/llm-router-service-MM75HKWJ.js +0 -2
  480. package/dist/cli/chunks/load-test-BEWEE44J.js +0 -2
  481. package/dist/cli/chunks/memory-backend-NYKBBKZR.js +0 -2
  482. package/dist/cli/chunks/pattern-null-store-QGPUIV6M.js +0 -2
  483. package/dist/cli/chunks/project-root-C7ELXZRK.js +0 -2
  484. package/dist/cli/chunks/protocol-executor-SUVE33BM.js +0 -2
  485. package/dist/cli/chunks/qe-reasoning-bank-YWZMMGJB.js +0 -2
  486. package/dist/cli/chunks/queen-coordinator-ZFAKXRN7.js +0 -2
  487. package/dist/cli/chunks/router-4FTAVYLJ.js +0 -2
  488. package/dist/cli/chunks/routing-feedback-IO2KOWMJ.js +0 -2
  489. package/dist/cli/chunks/rvf-dual-writer-KCIRNE7C.js +0 -2
  490. package/dist/cli/chunks/rvf-migration-adapter-MFC5WTJU.js +0 -2
  491. package/dist/cli/chunks/rvf-native-adapter-I3KWHE7X.js +0 -2
  492. package/dist/cli/chunks/safe-db-QXDZ6QY3.js +0 -2
  493. package/dist/cli/chunks/schedule-CZKD6RIY.js +0 -2
  494. package/dist/cli/chunks/scheduler-BLA3Q4CH.js +0 -2
  495. package/dist/cli/chunks/sqlite-persistence-XIUYDJC4.js +0 -2
  496. package/dist/cli/chunks/task-handler-P6IFLCKP.js +0 -62
  497. package/dist/cli/chunks/task-handlers-DPWMUKFC.js +0 -9
  498. package/dist/cli/chunks/test-runner-process-46IPK3GH.js +0 -2
  499. package/dist/cli/chunks/tree-sitter-wasm-parser-MOI2WWNJ.js +0 -2
  500. package/dist/cli/chunks/unified-memory-FL26RTV3.js +0 -2
  501. package/dist/cli/chunks/unified-memory-hnsw-E2BPTH3U.js +0 -2
  502. package/dist/cli/chunks/unified-persistence-5ZOUPKHF.js +0 -2
  503. package/dist/cli/chunks/visual-security-IJVPO5FA.js +0 -2
  504. package/dist/cli/chunks/witness-chain-5FAFCQKP.js +0 -2
  505. package/dist/cli/chunks/witness-chain-V2M32W5D.js +0 -2
  506. package/dist/cli/chunks/workflow-orchestrator-3JLF3IX7.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') {
@@ -980,7 +990,7 @@ export class MCPProtocolServer {
980
990
  this.registerTool({
981
991
  definition: {
982
992
  name: 'chaos_test',
983
- description: `Inject faults (latency, errors, CPU) for chaos engineering resilience testing. ${SAVE_RESULTS_HINT} Example: chaos_test({ faultType: "latency", target: "api-service" })`,
993
+ description: `Chaos resilience request; injects no faults itself (returns not-executed, null resilience, guidance). ${SAVE_RESULTS_HINT} Example: chaos_test({ faultType: "latency", target: "api-service" })`,
984
994
  category: 'domain',
985
995
  parameters: [
986
996
  { name: 'faultType', type: 'string', description: 'Type of fault to inject' },
@@ -28,8 +28,10 @@ export interface ChaosInjectResult {
28
28
  metrics: ExperimentMetrics;
29
29
  incidents: Incident[];
30
30
  recommendations: string[];
31
+ /** Why nothing was measured, when status is 'not-executed' (#1258). */
32
+ note?: string;
31
33
  }
32
- export type ExperimentStatus = 'pending' | 'running' | 'completed' | 'failed' | 'rolled-back' | 'aborted';
34
+ export type ExperimentStatus = 'pending' | 'running' | 'completed' | 'failed' | 'rolled-back' | 'aborted' | 'not-executed';
33
35
  export interface ExperimentMetrics {
34
36
  faultDuration: number;
35
37
  targetAffected: boolean;
@@ -51,11 +53,8 @@ export declare class ChaosInjectTool extends MCPToolBase<ChaosInjectParams, Chao
51
53
  execute(params: ChaosInjectParams, context: MCPToolContext): Promise<ToolResult<ChaosInjectResult>>;
52
54
  private buildExperiment;
53
55
  private buildFaultParameters;
54
- private simulateMetrics;
55
56
  private extractMetrics;
56
57
  private convertIncident;
57
- private collectIntensityIncidents;
58
- private validateHypothesisText;
59
58
  private generateRecommendations;
60
59
  }
61
60
  //# sourceMappingURL=inject.d.ts.map
@@ -71,11 +71,11 @@ export class ChaosInjectTool extends MCPToolBase {
71
71
  error: `Failed to create experiment: ${createResult.error.message}`,
72
72
  };
73
73
  }
74
- // Phase 3: Inject fault (or simulate in dry run)
74
+ // Phase 3: Inject fault (a dry run injects nothing)
75
75
  this.emitStream(context, {
76
76
  status: 'injecting',
77
77
  message: dryRun
78
- ? `[DRY RUN] Simulating ${faultType} fault`
78
+ ? `[DRY RUN] Planning ${faultType} fault (not injected)`
79
79
  : `Injecting ${faultType} fault`,
80
80
  });
81
81
  let faultInjected = false;
@@ -86,16 +86,15 @@ export class ChaosInjectTool extends MCPToolBase {
86
86
  faultDuration: duration,
87
87
  targetAffected: !dryRun,
88
88
  };
89
+ let note;
89
90
  if (dryRun) {
90
- // Dry run - simulate the fault injection
91
+ // #1258: a dry run injects nothing, so there are no metrics, incidents
92
+ // or hypothesis verdict to report. It used to return 'completed' with
93
+ // simulated recovery/latency numbers.
91
94
  faultInjected = false;
92
- status = 'completed';
93
- // Simulate metrics based on fault type
94
- metrics = this.simulateMetrics(faultType, duration, intensity);
95
- // Validate hypothesis if provided
96
- if (hypothesis) {
97
- hypothesisValidated = this.validateHypothesisText(hypothesis, metrics, incidents);
98
- }
95
+ status = 'not-executed';
96
+ note = `Dry run: the ${faultType} experiment was planned but no fault was injected, ` +
97
+ 'so no metrics were measured and the hypothesis was not tested.';
99
98
  }
100
99
  else {
101
100
  // Real execution - run the experiment
@@ -128,9 +127,6 @@ export class ChaosInjectTool extends MCPToolBase {
128
127
  status: 'monitoring',
129
128
  message: 'Monitoring system behavior',
130
129
  });
131
- // Collect any additional incidents based on intensity
132
- const intensityIncidents = this.collectIntensityIncidents(faultType, intensity, dryRun);
133
- incidents.push(...intensityIncidents);
134
130
  // Determine final status based on incidents
135
131
  if (!dryRun && incidents.some(i => i.severity === 'critical' && !i.resolved)) {
136
132
  status = rollbackOnFailure ? 'rolled-back' : 'failed';
@@ -153,6 +149,7 @@ export class ChaosInjectTool extends MCPToolBase {
153
149
  metrics,
154
150
  incidents,
155
151
  recommendations,
152
+ ...(note ? { note } : {}),
156
153
  },
157
154
  };
158
155
  }
@@ -275,27 +272,6 @@ export class ChaosInjectTool extends MCPToolBase {
275
272
  }
276
273
  return params;
277
274
  }
278
- simulateMetrics(faultType, duration, intensity) {
279
- const metrics = {
280
- faultDuration: duration,
281
- targetAffected: false,
282
- recoveryTime: 5000 + (intensity * 100), // Base recovery + intensity factor
283
- };
284
- switch (faultType) {
285
- case 'latency':
286
- metrics.latencyP99 = 100 + (intensity * 25); // Base + intensity factor
287
- break;
288
- case 'error':
289
- case 'timeout':
290
- metrics.errorRate = intensity * 0.5; // Half of intensity as error rate
291
- break;
292
- case 'cpu-stress':
293
- case 'memory-stress':
294
- metrics.recoveryTime = 10000 + (intensity * 200);
295
- break;
296
- }
297
- return metrics;
298
- }
299
275
  extractMetrics(result, faultType, duration) {
300
276
  const metrics = {
301
277
  faultDuration: duration,
@@ -330,52 +306,6 @@ export class ChaosInjectTool extends MCPToolBase {
330
306
  resolved: incident.resolved,
331
307
  };
332
308
  }
333
- collectIntensityIncidents(faultType, intensity, dryRun) {
334
- const incidents = [];
335
- if (dryRun) {
336
- // In dry run, simulate what incidents might occur
337
- if (intensity > 70) {
338
- incidents.push({
339
- type: 'alert',
340
- severity: 'high',
341
- message: `[Simulated] High ${faultType} impact would be detected`,
342
- timestamp: new Date().toISOString(),
343
- resolved: true,
344
- });
345
- }
346
- if (intensity > 90) {
347
- incidents.push({
348
- type: 'degradation',
349
- severity: 'critical',
350
- message: '[Simulated] Service degradation would occur',
351
- timestamp: new Date().toISOString(),
352
- resolved: true,
353
- });
354
- }
355
- }
356
- return incidents;
357
- }
358
- validateHypothesisText(hypothesis, metrics, incidents) {
359
- const hypothesisLower = hypothesis.toLowerCase();
360
- // Check recovery time hypothesis
361
- if (hypothesisLower.includes('recover') && metrics.recoveryTime) {
362
- const timeMatch = hypothesis.match(/(\d+)s/);
363
- if (timeMatch) {
364
- const expectedTime = parseInt(timeMatch[1]) * 1000;
365
- return metrics.recoveryTime <= expectedTime;
366
- }
367
- }
368
- // Check no critical incidents hypothesis
369
- if (hypothesisLower.includes('no critical')) {
370
- return !incidents.some(i => i.severity === 'critical' && !i.resolved);
371
- }
372
- // Check stable hypothesis
373
- if (hypothesisLower.includes('stable') || hypothesisLower.includes('remain')) {
374
- return !incidents.some(i => i.severity === 'critical' && !i.resolved);
375
- }
376
- // Default: validated if no unresolved critical incidents
377
- return !incidents.some(i => i.severity === 'critical' && !i.resolved);
378
- }
379
309
  generateRecommendations(faultType, metrics, incidents, hypothesisValidated) {
380
310
  const recs = [];
381
311
  if (hypothesisValidated === false) {
@@ -447,7 +377,7 @@ const CHAOS_INJECT_SCHEMA = {
447
377
  },
448
378
  dryRun: {
449
379
  type: 'boolean',
450
- description: 'Simulate without actual injection',
380
+ description: 'Plan the experiment without injecting a fault; nothing is measured',
451
381
  default: true,
452
382
  },
453
383
  hypothesis: {
@@ -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
  }
@@ -54,6 +54,14 @@ export interface DreamResultSummary {
54
54
  patternsCreated: number;
55
55
  /** #1060: how long the dream's single commit transaction held the write lock, in ms */
56
56
  commitDurationMs?: number;
57
+ /**
58
+ * #1239: dream retention after the commit. enabled=false (the default,
59
+ * AQE_DREAM_RETENTION) means nothing was deleted and `steps` say what would be.
60
+ */
61
+ retention?: {
62
+ enabled: boolean;
63
+ steps: string[];
64
+ };
57
65
  }
58
66
  export interface InsightSummary {
59
67
  id: string;