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
@@ -6,23 +6,14 @@
6
6
  * Issue #206: Workflow auto-execution for task types with associated workflows
7
7
  */
8
8
  import { getFleetState, isFleetInitialized } from './core-handlers.js';
9
- import { getTaskRouter, } from '../services/task-router.js';
10
- import { getReasoningBankService, startTaskTrajectory, endTaskTrajectory, } from '../services/reasoning-bank-service.js';
11
- import { scoreUnjudgedTrajectories } from './trajectory-judge.js';
12
9
  import { toErrorMessage } from '../../shared/error-utils.js';
13
10
  import { ALL_DOMAINS, invalidPriorityMessage, isDomainName, isPriority } from '../../shared/types/index.js';
14
- import { validateIndexPaths, validateIndexTaskPayload } from '../../domains/code-intelligence/index-path-guard.js';
15
- import { routeInferredTask } from './orchestrate-routes.js';
16
- // ============================================================================
17
- // Task Type to Workflow Mapping (Issue #206)
18
- // Maps TaskTypes to their associated workflow IDs for auto-execution
19
- // ============================================================================
20
- const TASK_WORKFLOW_MAP = {
21
- 'ideation-assessment': 'qcsd-ideation-swarm',
22
- // Add more mappings as workflows are created:
23
- // 'generate-tests': 'comprehensive-testing',
24
- // 'test-accessibility': 'visual-accessibility-workflow',
25
- };
11
+ import { validateIndexTaskPayload } from '../../domains/code-intelligence/index-path-guard.js';
12
+ // #1146: task_orchestrate, model routing and the learning handlers live in
13
+ // their own modules; they are re-exported so existing imports keep working.
14
+ export * from './task-orchestrate-handler.js';
15
+ export * from './model-route-handlers.js';
16
+ export * from './task-learning-handlers.js';
26
17
  // ============================================================================
27
18
  // Task Submit Handler
28
19
  // ============================================================================
@@ -111,6 +102,11 @@ export async function handleTaskList(params) {
111
102
  error: 'Fleet not initialized. Call fleet_init first.',
112
103
  };
113
104
  }
105
+ // A priority outside the allowed set is an error, not an empty list.
106
+ // Parity with `aqe task list --priority`.
107
+ if (params.priority !== undefined && !isPriority(params.priority)) {
108
+ return { success: false, error: invalidPriorityMessage(params.priority) };
109
+ }
114
110
  const { queen } = getFleetState();
115
111
  try {
116
112
  const tasks = queen.listTasks({
@@ -232,777 +228,4 @@ export async function handleTaskCancel(params) {
232
228
  };
233
229
  }
234
230
  }
235
- /**
236
- * #1022: gather experience guidance and pattern hints for task_orchestrate.
237
- * Learned guidance is optional: a missing embedder, or a ReasoningBank that
238
- * cannot start, must not fail the orchestration. The returned status says
239
- * which kind of matching produced the hints.
240
- */
241
- async function getOrchestrateLearningContext(task, guidanceDomain, patternDomain) {
242
- let service;
243
- try {
244
- service = await getReasoningBankService();
245
- }
246
- catch (error) {
247
- return {
248
- experienceGuidance: null,
249
- patternHintMatches: [],
250
- learning: { patternSearch: 'unavailable', reason: toErrorMessage(error) },
251
- };
252
- }
253
- const experienceGuidance = await service.getExperienceGuidance(task, guidanceDomain);
254
- // Bring HNSW A (qe_patterns) into the routing decision alongside HNSW C
255
- // (experienceGuidance). Without this, only past trajectories influenced
256
- // routing — the catalog of consolidated long-term patterns was never
257
- // consulted for new tasks. Fail-soft: empty array on error.
258
- const patternHintMatches = await service
259
- .searchPatternMatches(task, { limit: 5, domain: patternDomain })
260
- .catch(() => []);
261
- const status = service.getPatternSearchStatus();
262
- return {
263
- experienceGuidance,
264
- patternHintMatches,
265
- learning: { patternSearch: status.mode, ...(status.reason ? { reason: status.reason } : {}) },
266
- };
267
- }
268
- export async function handleTaskOrchestrate(params) {
269
- if (!isFleetInitialized()) {
270
- return {
271
- success: false,
272
- error: 'Fleet not initialized. Call fleet_init first.',
273
- };
274
- }
275
- // #1096: filePaths feeds task payloads (sourceFiles, index paths), so a
276
- // non-array value is rejected up front with a clear message.
277
- if (params.filePaths !== undefined) {
278
- const filePaths = validateIndexPaths(params.filePaths, 'filePaths', 'Invalid task_orchestrate params');
279
- if (!filePaths.success) {
280
- return { success: false, error: filePaths.error.message };
281
- }
282
- }
283
- const { queen, workflowOrchestrator } = getFleetState();
284
- try {
285
- // ADR-051: Route task to optimal model tier BEFORE execution
286
- // Fix #282: Enrich routing input with inferred domain (same as handleModelRoute)
287
- const inferredDomain = params.context?.project || inferDomainFromDescription(params.task);
288
- const inferredIsCritical = params.priority === 'critical' ||
289
- /\b(security|vulnerability|cve|owasp|critical|production|exploit)\b/i.test(params.task);
290
- const router = await getTaskRouter();
291
- const routingResult = await router.routeTask({
292
- task: params.task,
293
- codeContext: params.codeContext,
294
- filePaths: params.filePaths,
295
- manualTier: params.manualTier,
296
- isCritical: inferredIsCritical,
297
- agentType: `qe-${inferredDomain}`,
298
- domain: inferredDomain,
299
- metadata: {
300
- inferredDomain,
301
- hasCodeContext: !!params.codeContext,
302
- fileCount: params.filePaths?.length,
303
- },
304
- });
305
- // INTEGRATION FIX: Get ReasoningBank guidance for the task
306
- const { experienceGuidance, patternHintMatches, learning } = await getOrchestrateLearningContext(params.task, params.context?.project, params.context?.project ?? inferredDomain);
307
- // Parse task description to determine task type
308
- const taskType = inferTaskType(params.task);
309
- const priority = mapPriority(params.priority || 'medium');
310
- // Issue #206: Check if this task type has an associated workflow
311
- const workflowId = TASK_WORKFLOW_MAP[taskType];
312
- if (workflowId && workflowOrchestrator) {
313
- // Execute the associated workflow directly
314
- console.log(`[TaskOrchestrate] Task type '${taskType}' has workflow '${workflowId}' - executing workflow`);
315
- // Detect URL in task description for live website analysis
316
- const urlMatch = params.task.match(/https?:\/\/[^\s]+/i);
317
- const detectedUrl = urlMatch ? urlMatch[0] : undefined;
318
- if (detectedUrl) {
319
- console.log(`[TaskOrchestrate] Detected URL for analysis: ${detectedUrl}`);
320
- }
321
- // Build workflow input from task params and context
322
- const workflowInput = {
323
- // Pass through context fields as workflow input
324
- targetId: params.context?.project || detectedUrl || `task-${Date.now()}`,
325
- targetType: detectedUrl ? 'website' : 'epic',
326
- description: params.task,
327
- acceptanceCriteria: params.context?.requirements || [],
328
- // Pass URL if detected (enables website content extraction)
329
- url: detectedUrl,
330
- // Include routing info for downstream processing
331
- routing: {
332
- tier: routingResult.decision.tier,
333
- modelId: routingResult.modelId,
334
- executionStrategy: routingResult.executionStrategy,
335
- complexity: routingResult.decision.complexityAnalysis.overall,
336
- },
337
- // HNSW A pattern hints (mirrors the submitTask payload below); the
338
- // workflow branch routes through executeWorkflow, so the same catalog
339
- // of consolidated long-term patterns should reach it.
340
- patternHints: patternHintMatches.length > 0
341
- ? patternHintMatches.map(({ pattern: p, similarity, score, matchType, canReuse }) => ({
342
- patternId: p.id,
343
- name: p.name,
344
- description: p.description,
345
- confidence: p.confidence,
346
- similarity,
347
- score,
348
- matchType,
349
- canReuse,
350
- }))
351
- : undefined,
352
- };
353
- const workflowResult = await workflowOrchestrator.executeWorkflow(workflowId, workflowInput);
354
- if (!workflowResult.success) {
355
- return {
356
- success: false,
357
- error: `Workflow execution failed: ${workflowResult.error.message}`,
358
- };
359
- }
360
- return {
361
- success: true,
362
- data: {
363
- taskId: workflowResult.value, // This is the workflow execution ID
364
- type: taskType,
365
- priority,
366
- strategy: params.strategy || 'adaptive',
367
- status: 'workflow-started',
368
- message: `Workflow '${workflowId}' started for task: ${params.task}`,
369
- routing: {
370
- tier: routingResult.decision.tier,
371
- tierName: routingResult.tierInfo.name,
372
- modelId: routingResult.modelId,
373
- executionStrategy: routingResult.executionStrategy,
374
- complexity: routingResult.decision.complexityAnalysis.overall,
375
- confidence: routingResult.decision.confidence,
376
- useAgentBooster: routingResult.useAgentBooster,
377
- rationale: routingResult.decision.rationale,
378
- decisionTimeMs: routingResult.decision.metadata.decisionTimeMs,
379
- },
380
- learning,
381
- },
382
- };
383
- }
384
- // No workflow - submit as a regular task.
385
- // #1125: an inferred type without a handler of its own runs the domain's
386
- // concrete handler, with a payload built only from the request, or is
387
- // refused with the input it needs.
388
- const route = await routeInferredTask(taskType, params);
389
- if (route.kind === 'needs-input') {
390
- return { success: false, error: route.error };
391
- }
392
- const submitType = route.kind === 'route' ? route.type : taskType;
393
- const targetDomains = route.kind === 'route' ? [route.domain] : [];
394
- // #1081: the type must have a domain handler. Otherwise the Queen can
395
- // only fail the task at dispatch, so reject it here with the reason.
396
- const executable = queen.validateTaskExecutable(submitType, targetDomains);
397
- if (!executable.success) {
398
- return {
399
- success: false,
400
- error: `${executable.error.message}. task_orchestrate inferred '${taskType}' from the description; ` +
401
- 'use task_submit with a supported type and its payload, or the domain\'s MCP tool.',
402
- };
403
- }
404
- // Issue N2: Build domain-appropriate payload.
405
- // Forward caller-provided filePaths/codeContext into the payload fields
406
- // that domain plugins expect, so generate-tests doesn't reject with
407
- // "missing sourceFiles" when called via task_orchestrate.
408
- const taskPayload = {
409
- description: params.task,
410
- strategy: params.strategy || 'adaptive',
411
- maxAgents: params.maxAgents,
412
- context: params.context,
413
- };
414
- if (taskType === 'generate-tests') {
415
- taskPayload.sourceFiles = params.filePaths || [];
416
- taskPayload.sourceCode = params.codeContext || '';
417
- taskPayload.language = taskPayload.language || 'typescript';
418
- taskPayload.testType = taskPayload.testType || 'unit';
419
- }
420
- if (taskType === 'index-code') {
421
- taskPayload.paths = params.filePaths || [];
422
- }
423
- if (route.kind === 'route')
424
- Object.assign(taskPayload, route.payload);
425
- const result = await queen.submitTask({
426
- type: submitType,
427
- priority,
428
- targetDomains,
429
- payload: {
430
- ...taskPayload,
431
- // ADR-051: Include routing decision in payload for downstream processing
432
- routing: {
433
- tier: routingResult.decision.tier,
434
- modelId: routingResult.modelId,
435
- executionStrategy: routingResult.executionStrategy,
436
- useAgentBooster: routingResult.useAgentBooster,
437
- agentBoosterTransform: routingResult.decision.agentBoosterTransform,
438
- complexity: routingResult.decision.complexityAnalysis.overall,
439
- confidence: routingResult.decision.confidence,
440
- },
441
- // INTEGRATION FIX: Include experience guidance if available
442
- experienceGuidance: experienceGuidance ? {
443
- strategy: experienceGuidance.recommendedStrategy,
444
- actions: experienceGuidance.suggestedActions,
445
- confidence: experienceGuidance.confidence,
446
- tokenSavings: experienceGuidance.estimatedTokenSavings,
447
- } : undefined,
448
- // HNSW A pattern hints for the executing agent
449
- patternHints: patternHintMatches.length > 0
450
- ? patternHintMatches.map(({ pattern: p, similarity, score, matchType, canReuse }) => ({
451
- patternId: p.id,
452
- name: p.name,
453
- description: p.description,
454
- confidence: p.confidence,
455
- similarity,
456
- score,
457
- matchType,
458
- canReuse,
459
- }))
460
- : undefined,
461
- },
462
- timeout: 600000, // 10 minutes for orchestrated tasks
463
- });
464
- if (!result.success) {
465
- return {
466
- success: false,
467
- error: result.error.message,
468
- };
469
- }
470
- // INTEGRATION FIX: Start trajectory tracking for learning
471
- const taskId = result.value;
472
- if (learning.patternSearch !== 'unavailable') {
473
- await startTaskTrajectory(taskId, params.task, {
474
- agent: 'queen-coordinator',
475
- domain: params.context?.project,
476
- });
477
- }
478
- // Issue N1: Trajectory auto-close is handled by subscribeTrajectoryEvents(),
479
- // which listens for TaskCompleted/TaskFailed on the event router.
480
- // No per-task polling needed.
481
- // Trajectory judge: opt-in LLM scoring of recent unscored trajectories.
482
- // Hook-created rows in qe_trajectories never receive feedback unless
483
- // something goes back and judges them. This catches up by scoring ≤5
484
- // rows per task_orchestrate call. Opt-in (AQE_TRAJECTORY_JUDGE=1)
485
- // because it makes paid LLM calls.
486
- if (process.env.AQE_TRAJECTORY_JUDGE === '1' && process.env.ANTHROPIC_API_KEY) {
487
- void scoreUnjudgedTrajectories().catch(err => {
488
- console.warn('[TrajectoryJudge] failed:', err instanceof Error ? err.message : err);
489
- });
490
- }
491
- return {
492
- success: true,
493
- data: {
494
- taskId,
495
- type: submitType,
496
- ...(submitType !== taskType ? { inferredType: taskType } : {}),
497
- priority,
498
- strategy: params.strategy || 'adaptive',
499
- status: 'submitted',
500
- message: `Task orchestrated: ${params.task}${experienceGuidance ? ' (with experience guidance)' : ''}`,
501
- // ADR-051: Include routing info in response
502
- routing: {
503
- tier: routingResult.decision.tier,
504
- tierName: routingResult.tierInfo.name,
505
- modelId: routingResult.modelId,
506
- executionStrategy: routingResult.executionStrategy,
507
- complexity: routingResult.decision.complexityAnalysis.overall,
508
- confidence: routingResult.decision.confidence,
509
- useAgentBooster: routingResult.useAgentBooster,
510
- rationale: routingResult.decision.rationale,
511
- decisionTimeMs: routingResult.decision.metadata.decisionTimeMs,
512
- },
513
- learning,
514
- },
515
- };
516
- }
517
- catch (error) {
518
- return {
519
- success: false,
520
- error: `Failed to orchestrate task: ${toErrorMessage(error)}`,
521
- };
522
- }
523
- }
524
- /**
525
- * Handle model routing query - returns routing decision without submitting task
526
- */
527
- export async function handleModelRoute(params) {
528
- try {
529
- const router = await getTaskRouter();
530
- // Enrich routing input: infer domain and metadata from task description
531
- // when the caller doesn't provide them explicitly
532
- const inferredDomain = params.domain || inferDomainFromDescription(params.task);
533
- const inferredIsCritical = params.isCritical ??
534
- /\b(security|vulnerability|cve|owasp|critical|production|exploit)\b/i.test(params.task);
535
- const result = await router.routeTask({
536
- task: params.task,
537
- codeContext: params.codeContext,
538
- filePaths: params.filePaths,
539
- manualTier: params.manualTier,
540
- isCritical: inferredIsCritical,
541
- agentType: params.agentType || `qe-${inferredDomain}`,
542
- domain: inferredDomain,
543
- // Pass metadata to help the complexity analyzer
544
- metadata: {
545
- inferredDomain,
546
- hasCodeContext: !!params.codeContext,
547
- fileCount: params.filePaths?.length,
548
- },
549
- });
550
- return {
551
- success: true,
552
- data: {
553
- tier: result.decision.tier,
554
- tierName: result.tierInfo.name,
555
- modelId: result.modelId,
556
- executionStrategy: result.executionStrategy,
557
- useAgentBooster: result.useAgentBooster,
558
- agentBoosterTransform: result.decision.agentBoosterTransform,
559
- complexity: {
560
- overall: result.decision.complexityAnalysis.overall,
561
- code: result.decision.complexityAnalysis.codeComplexity,
562
- reasoning: result.decision.complexityAnalysis.reasoningComplexity,
563
- scope: result.decision.complexityAnalysis.scopeComplexity,
564
- },
565
- confidence: result.decision.confidence,
566
- rationale: result.decision.rationale,
567
- warnings: result.decision.warnings,
568
- budget: {
569
- allowed: result.decision.budgetDecision.allowed,
570
- wasDowngraded: result.decision.budgetDecision.wasDowngraded,
571
- estimatedCostUsd: result.decision.budgetDecision.estimatedCostUsd,
572
- },
573
- decisionTimeMs: result.decision.metadata.decisionTimeMs,
574
- },
575
- };
576
- }
577
- catch (error) {
578
- return {
579
- success: false,
580
- error: `Failed to route task: ${toErrorMessage(error)}`,
581
- };
582
- }
583
- }
584
- /**
585
- * Handle routing metrics query
586
- */
587
- export async function handleRoutingMetrics(params) {
588
- try {
589
- const router = await getTaskRouter();
590
- const stats = router.getRoutingStats();
591
- const metrics = router.getMetrics();
592
- const result = {
593
- stats,
594
- modelRouterMetrics: {
595
- totalDecisions: metrics.totalDecisions,
596
- avgDecisionTimeMs: metrics.avgDecisionTimeMs,
597
- agentBoosterStats: metrics.agentBoosterStats,
598
- budgetStats: metrics.budgetStats,
599
- },
600
- };
601
- if (params.includeLog) {
602
- result.log = router.getRoutingLog(params.logLimit || 100);
603
- }
604
- return {
605
- success: true,
606
- data: result,
607
- };
608
- }
609
- catch (error) {
610
- return {
611
- success: false,
612
- error: `Failed to get routing metrics: ${toErrorMessage(error)}`,
613
- };
614
- }
615
- }
616
- /**
617
- * Handle economic routing report query
618
- */
619
- export async function handleRoutingEconomics(params) {
620
- try {
621
- const { createRoutingFeedbackCollector } = await import('../../routing/routing-feedback.js');
622
- const { getGlobalCostTracker } = await import('../../shared/llm/cost-tracker.js');
623
- // Create collector, initialize to load persisted state from DB, then enable economic routing
624
- const collector = createRoutingFeedbackCollector(100);
625
- await collector.initialize();
626
- collector.enableEconomicRouting({ ...(params.taskComplexity != null ? {} : {}) }, getGlobalCostTracker());
627
- const report = collector.getEconomicReport();
628
- if (!report) {
629
- return { success: false, error: 'Economic routing is not available' };
630
- }
631
- // Convert Infinity to string for JSON serialization
632
- const tierEfficiency = report.tierEfficiency.map(t => ({
633
- ...t,
634
- qualityPerDollar: isFinite(t.qualityPerDollar) ? t.qualityPerDollar : 'Infinity',
635
- }));
636
- return {
637
- success: true,
638
- data: {
639
- tierEfficiency,
640
- currentHourlyCostUsd: report.currentHourlyCostUsd,
641
- currentDailyCostUsd: report.currentDailyCostUsd,
642
- budgetRemaining: report.budgetRemaining,
643
- recommendation: report.recommendation,
644
- savingsOpportunity: report.savingsOpportunity,
645
- },
646
- };
647
- }
648
- catch (error) {
649
- return {
650
- success: false,
651
- error: `Failed to get economic routing report: ${toErrorMessage(error)}`,
652
- };
653
- }
654
- }
655
- // ============================================================================
656
- // Helper Functions
657
- // ============================================================================
658
- /**
659
- * Infer domain from task description for routing enrichment
660
- * Maps task descriptions to QE domains so the complexity analyzer
661
- * can apply domain-specific scoring (e.g., security → complex domain)
662
- */
663
- function inferDomainFromDescription(description) {
664
- const lower = description.toLowerCase();
665
- if (/\b(security|vulnerabilit|cve|owasp|secret|credential|injection|xss|csrf)\b/.test(lower)) {
666
- return 'security-compliance';
667
- }
668
- if (/\b(chaos|resilience|fault.?inject|disaster|failover)\b/.test(lower)) {
669
- return 'chaos-resilience';
670
- }
671
- if (/\b(defect|bug.?predict|risk.?assess|mutation)\b/.test(lower)) {
672
- return 'defect-intelligence';
673
- }
674
- if (/\b(coverage|uncovered|gap.?analy)\b/.test(lower)) {
675
- return 'coverage-analysis';
676
- }
677
- if (/\b(quality|code.?review|maintain|tech.?debt)\b/.test(lower)) {
678
- return 'quality-assessment';
679
- }
680
- if (/\b(contract|api.?compat|breaking.?change|pact)\b/.test(lower)) {
681
- return 'contract-testing';
682
- }
683
- if (/\b(index|knowledge.?graph|semantic|code.?intel)\b/.test(lower)) {
684
- return 'code-intelligence';
685
- }
686
- if (/\b(accessib|a11y|wcag|screen.?read)\b/.test(lower)) {
687
- return 'visual-accessibility';
688
- }
689
- if (/\b(requirement|bdd|acceptance|user.?stor)\b/.test(lower)) {
690
- return 'requirements-validation';
691
- }
692
- if (/\b(generat.*test|test.*generat|write.*test|create.*test)\b/.test(lower)) {
693
- return 'test-generation';
694
- }
695
- if (/\b(run.*test|execut.*test)\b/.test(lower)) {
696
- return 'test-execution';
697
- }
698
- return 'test-generation'; // Default
699
- }
700
- /**
701
- * Infer task type from description
702
- */
703
- // #1130: chaos named as the activity of a test run. The lookaheads keep a
704
- // path segment or file name (resilience tests/unit/…, src/fault-injection/…,
705
- // fault-injection.ts) from counting, and "fault injector" names a component.
706
- const CHAOS_ACTIVITY = new RegExp([
707
- String.raw `\b(?:chaos|resilience)\s+(?:\w+\s+)?(?:tests?|testing|experiments?)\b(?![./\w])`,
708
- String.raw `\bfault[\s-]?inject(?:ion|ing)\b(?![./\w])`,
709
- String.raw `\binject(?:s|ing)?\s+(?:\w+\s+)?faults?\b(?![./\w])`,
710
- ].join('|'));
711
- function inferTaskType(description) {
712
- const lower = description.toLowerCase();
713
- // Check execution first (more specific patterns)
714
- if (/run\s+(?:\w+\s+)*tests?/.test(lower) ||
715
- /execute\s+(?:\w+\s+)*tests?/.test(lower) ||
716
- lower.includes('run tests') ||
717
- lower.includes('execute tests')) {
718
- // #1130: "run chaos resilience testing" names a chaos run, not a test run.
719
- // Only a run whose activity is chaos counts; every other description keeps
720
- // the order below, where chaos wording is the last resort.
721
- return CHAOS_ACTIVITY.test(lower) ? 'run-chaos' : 'execute-tests';
722
- }
723
- // Then check generation
724
- if (lower.includes('generate test') || lower.includes('create test') || lower.includes('write test')) {
725
- return 'generate-tests';
726
- }
727
- if (lower.includes('coverage') || lower.includes('uncovered')) {
728
- return 'analyze-coverage';
729
- }
730
- if (lower.includes('quality') || lower.includes('code quality')) {
731
- return 'assess-quality';
732
- }
733
- if (lower.includes('defect') || lower.includes('bug') || lower.includes('predict')) {
734
- return 'predict-defects';
735
- }
736
- if (lower.includes('requirement') || lower.includes('bdd') || lower.includes('acceptance')) {
737
- return 'validate-requirements';
738
- }
739
- if (lower.includes('index') || lower.includes('knowledge graph') || lower.includes('semantic')) {
740
- return 'index-code';
741
- }
742
- if (lower.includes('security') || lower.includes('vulnerability') || lower.includes('owasp')) {
743
- return 'scan-security';
744
- }
745
- if (lower.includes('contract') || lower.includes('api contract') || lower.includes('pact')) {
746
- return 'validate-contracts';
747
- }
748
- if (lower.includes('accessibility') || lower.includes('a11y') || lower.includes('wcag')) {
749
- return 'test-accessibility';
750
- }
751
- if (lower.includes('chaos') || lower.includes('resilience') || lower.includes('fault')) {
752
- return 'run-chaos';
753
- }
754
- if (lower.includes('learn') || lower.includes('optimize') || lower.includes('improve')) {
755
- return 'optimize-learning';
756
- }
757
- // QCSD Ideation phase - quality criteria, testability, risk assessment
758
- if (lower.includes('ideation') ||
759
- lower.includes('quality criteria') ||
760
- lower.includes('htsm') ||
761
- lower.includes('qcsd') ||
762
- lower.includes('testability') ||
763
- lower.includes('pi planning') ||
764
- lower.includes('sprint planning')) {
765
- return 'ideation-assessment';
766
- }
767
- // Default to test generation
768
- return 'generate-tests';
769
- }
770
- /**
771
- * Map priority string to Priority type
772
- */
773
- function mapPriority(priority) {
774
- switch (priority) {
775
- case 'critical':
776
- return 'p0';
777
- case 'high':
778
- return 'p1';
779
- case 'medium':
780
- return 'p2';
781
- case 'low':
782
- return 'p3';
783
- default:
784
- return 'p1';
785
- }
786
- }
787
- /**
788
- * Record a task outcome for ReasoningBank learning
789
- * ADR-051: Enables cross-session learning from task execution
790
- */
791
- export async function handleTaskOutcomeRecord(params) {
792
- try {
793
- const service = await getReasoningBankService();
794
- const outcome = {
795
- taskId: params.taskId,
796
- task: params.task,
797
- taskType: params.taskType,
798
- success: params.success,
799
- executionTimeMs: params.executionTimeMs,
800
- agentId: params.agentId,
801
- domain: params.domain,
802
- modelTier: params.modelTier,
803
- qualityScore: params.qualityScore,
804
- error: params.error,
805
- metrics: params.metrics,
806
- };
807
- await service.recordTaskOutcome(outcome);
808
- const patternStored = params.success && (params.qualityScore || 0.5) >= 0.6;
809
- return {
810
- success: true,
811
- data: {
812
- recorded: true,
813
- patternStored,
814
- message: patternStored
815
- ? `Outcome recorded and pattern stored for task ${params.taskId}`
816
- : `Outcome recorded for task ${params.taskId}`,
817
- },
818
- };
819
- }
820
- catch (error) {
821
- return {
822
- success: false,
823
- error: `Failed to record task outcome: ${toErrorMessage(error)}`,
824
- };
825
- }
826
- }
827
- /**
828
- * Get ReasoningBank statistics
829
- * ADR-051: Provides visibility into learning system
830
- */
831
- export async function handleReasoningBankStats() {
832
- try {
833
- const service = await getReasoningBankService();
834
- const stats = await service.getStats();
835
- return {
836
- success: true,
837
- data: {
838
- service: stats.service,
839
- patterns: {
840
- totalPatterns: stats.reasoningBank.totalPatterns,
841
- byDomain: stats.reasoningBank.byDomain,
842
- byTier: stats.reasoningBank.byTier,
843
- learningOutcomes: stats.reasoningBank.learningOutcomes,
844
- patternSuccessRate: stats.reasoningBank.patternSuccessRate,
845
- },
846
- embeddings: {
847
- cacheSize: stats.reasoningBank.embeddingCacheSize,
848
- dimension: stats.reasoningBank.embeddingDimension,
849
- transformerAvailable: stats.reasoningBank.transformerAvailable,
850
- },
851
- performance: {
852
- avgRoutingLatencyMs: stats.reasoningBank.avgRoutingLatencyMs,
853
- p95RoutingLatencyMs: stats.reasoningBank.p95RoutingLatencyMs,
854
- },
855
- },
856
- };
857
- }
858
- catch (error) {
859
- return {
860
- success: false,
861
- error: `Failed to get ReasoningBank stats: ${toErrorMessage(error)}`,
862
- };
863
- }
864
- }
865
- // ============================================================================
866
- // Task Complete Handler with Learning
867
- // Records outcome when task status is queried and complete
868
- // ============================================================================
869
- // Track tasks we've already recorded to avoid duplicates
870
- const recordedTasks = new Set();
871
- /**
872
- * Enhanced task status that records outcomes for learning
873
- * ADR-051: Automatically records completed task outcomes
874
- * INTEGRATION FIX: Now synchronous to ensure learning occurs
875
- */
876
- export async function handleTaskStatusWithLearning(params) {
877
- if (!isFleetInitialized()) {
878
- return {
879
- success: false,
880
- error: 'Fleet not initialized. Call fleet_init first.',
881
- };
882
- }
883
- const { queen } = getFleetState();
884
- try {
885
- const execution = queen.getTaskStatus(params.taskId);
886
- if (!execution) {
887
- return {
888
- success: false,
889
- error: `Task not found: ${params.taskId}`,
890
- };
891
- }
892
- const result = {
893
- taskId: execution.taskId,
894
- type: execution.task.type,
895
- status: execution.status,
896
- cancellationResultPending: execution.cancellationResultPending,
897
- priority: execution.task.priority,
898
- assignedDomain: execution.assignedDomain,
899
- assignedAgents: execution.assignedAgents,
900
- result: params.detailed ? execution.result : undefined,
901
- error: execution.error,
902
- createdAt: execution.task.createdAt.toISOString(),
903
- startedAt: execution.startedAt?.toISOString(),
904
- completedAt: execution.completedAt?.toISOString(),
905
- duration: execution.completedAt && execution.startedAt
906
- ? execution.completedAt.getTime() - execution.startedAt.getTime()
907
- : undefined,
908
- };
909
- // INTEGRATION FIX: Record outcome for completed tasks synchronously (only once)
910
- if ((execution.status === 'completed' || execution.status === 'failed') &&
911
- !recordedTasks.has(params.taskId)) {
912
- recordedTasks.add(params.taskId);
913
- try {
914
- const service = await getReasoningBankService();
915
- const duration = result.duration || 0;
916
- const success = execution.status === 'completed';
917
- // Safely extract payload properties (typed as Record<string, unknown>)
918
- const payload = execution.task.payload || {};
919
- const taskDescription = typeof payload.description === 'string'
920
- ? payload.description
921
- : execution.task.type;
922
- const routing = payload.routing;
923
- // INTEGRATION FIX: End trajectory tracking first
924
- const trajectory = await endTaskTrajectory(params.taskId, success, execution.error);
925
- // Calculate quality score from trajectory if available
926
- const qualityScore = trajectory?.metrics.averageQuality ?? (success ? 0.7 : 0.3);
927
- // INTEGRATION FIX: Record outcome synchronously (await to ensure learning)
928
- await service.recordTaskOutcome({
929
- taskId: params.taskId,
930
- task: taskDescription,
931
- taskType: execution.task.type,
932
- success,
933
- executionTimeMs: duration,
934
- agentId: execution.assignedAgents?.[0],
935
- domain: execution.assignedDomain,
936
- modelTier: routing?.tier,
937
- qualityScore,
938
- error: execution.error,
939
- metrics: {
940
- // Extract any metrics from result if available
941
- testsGenerated: typeof execution.result === 'object' && execution.result
942
- ? execution.result.testsGenerated
943
- : undefined,
944
- testsPassed: typeof execution.result === 'object' && execution.result
945
- ? execution.result.testsPassed
946
- : undefined,
947
- },
948
- });
949
- console.error(`[TaskHandler] Recorded learning outcome: task=${params.taskId} ` +
950
- `success=${success} quality=${qualityScore.toFixed(2)} ` +
951
- `trajectorySteps=${trajectory?.steps.length ?? 0}`);
952
- }
953
- catch (err) {
954
- // Log but don't fail the response - learning is important but not blocking
955
- console.error('[TaskHandler] Failed to record outcome:', err);
956
- }
957
- }
958
- return {
959
- success: true,
960
- data: result,
961
- };
962
- }
963
- catch (error) {
964
- return {
965
- success: false,
966
- error: `Failed to get task status: ${toErrorMessage(error)}`,
967
- };
968
- }
969
- }
970
- // ============================================================================
971
- // Issue N1: Event-driven trajectory auto-close
972
- // Subscribe to TaskCompleted/TaskFailed events so trajectories are closed
973
- // by the event system, not by per-task polling loops.
974
- // Called once during fleet init.
975
- // ============================================================================
976
- /** Subscription IDs for cleanup on fleet dispose */
977
- let trajectorySubscriptionIds = [];
978
- /**
979
- * Subscribe to task lifecycle events to auto-close trajectories.
980
- * Must be called after the CrossDomainEventRouter is initialized.
981
- */
982
- export function subscribeTrajectoryEvents(router) {
983
- // Unsubscribe any previous subscriptions (idempotent)
984
- unsubscribeTrajectoryEvents(router);
985
- const completedId = router.subscribeToEventType('TaskCompleted', async (event) => {
986
- const { taskId } = event.payload;
987
- if (taskId && getFleetState().queen?.getTaskStatus(taskId)?.status !== 'cancelled') {
988
- await endTaskTrajectory(taskId, true).catch(() => { });
989
- }
990
- });
991
- const failedId = router.subscribeToEventType('TaskFailed', async (event) => {
992
- const { taskId, error: errorMsg } = event.payload;
993
- if (taskId && getFleetState().queen?.getTaskStatus(taskId)?.status !== 'cancelled') {
994
- await endTaskTrajectory(taskId, false, errorMsg).catch(() => { });
995
- }
996
- });
997
- trajectorySubscriptionIds = [completedId, failedId];
998
- }
999
- /**
1000
- * Unsubscribe trajectory event listeners. Called during fleet dispose.
1001
- */
1002
- export function unsubscribeTrajectoryEvents(router) {
1003
- for (const id of trajectorySubscriptionIds) {
1004
- router.unsubscribe(id);
1005
- }
1006
- trajectorySubscriptionIds = [];
1007
- }
1008
231
  //# sourceMappingURL=task-handlers.js.map