agentic-qe 3.15.10 → 3.15.12

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 (536) hide show
  1. package/.claude/hooks/aqe-hook.cjs +38 -2
  2. package/.claude/skills/skills-manifest.json +1 -1
  3. package/CHANGELOG.md +263 -0
  4. package/README.md +8 -0
  5. package/assets/skills/skills-manifest.json +1 -1
  6. package/dist/adapters/a2a/agent-cards/generator.js +6 -3
  7. package/dist/adapters/a2a/tasks/task-router.js +3 -1
  8. package/dist/adapters/trajectory-adapter.js +1 -1
  9. package/dist/agents/claim-verifier/verifiers/output-verifier.d.ts +3 -1
  10. package/dist/agents/claim-verifier/verifiers/output-verifier.js +31 -2
  11. package/dist/agents/overlay-loader.js +26 -21
  12. package/dist/cli/bundle.js +6 -6
  13. package/dist/cli/chunks/adapter-HL7MOCQN.js +2 -0
  14. package/dist/cli/chunks/{agent-booster-wasm-H7ANGXW4.js → agent-booster-wasm-5VZCKTIJ.js} +2 -2
  15. package/dist/cli/chunks/{agent-handler-SVXSHEET.js → agent-handler-K3C6CQCD.js} +2 -2
  16. package/dist/cli/chunks/{agent-memory-branch-WKQH36XL.js → agent-memory-branch-NVFQ25WS.js} +2 -2
  17. package/dist/cli/chunks/aqe-learning-engine-OZ2DXB4G.js +2 -0
  18. package/dist/cli/chunks/{arena-EKOOFVST.js → arena-QGWIJADQ.js} +2 -2
  19. package/dist/cli/chunks/{arena-OPS36NFZ.js → arena-TSZVDSXS.js} +4 -4
  20. package/dist/cli/chunks/{audit-AO5NDZRI.js → audit-KIEE2SHJ.js} +3 -3
  21. package/dist/cli/chunks/base-WIM7G3HC.js +2 -0
  22. package/dist/cli/chunks/{better-sqlite3-TFLVEMMY.js → better-sqlite3-BNB32NW3.js} +2 -2
  23. package/dist/cli/chunks/{brain-handler-ADBBJPYW.js → brain-handler-MPC5SPYI.js} +3 -3
  24. package/dist/cli/chunks/{branch-enumerator-HGHUYYL5.js → branch-enumerator-LZ7UXKAY.js} +2 -2
  25. package/dist/cli/chunks/{browser-5LU6P4SZ.js → browser-VDHAW4RK.js} +2 -2
  26. package/dist/cli/chunks/browser-workflow-QRKCFVR3.js +2 -0
  27. package/dist/cli/chunks/{chunk-5LPYV3TK.js → chunk-23PQF7NN.js} +1 -1
  28. package/dist/cli/chunks/{chunk-2ZMF4NCF.js → chunk-26672ISV.js} +2 -2
  29. package/dist/cli/chunks/{chunk-U53ZB4IX.js → chunk-2ASQRBK2.js} +2 -2
  30. package/dist/cli/chunks/{chunk-7PJIR4ST.js → chunk-2E2QO44T.js} +2 -2
  31. package/dist/cli/chunks/{chunk-2T7RRL6G.js → chunk-2IVE5AR3.js} +1 -1
  32. package/dist/cli/chunks/{chunk-B6LTH6YV.js → chunk-2JYUA27M.js} +1 -1
  33. package/dist/cli/chunks/{chunk-PFG6VQ5Z.js → chunk-2PPSS4JD.js} +2 -2
  34. package/dist/cli/chunks/{chunk-NZYLNXT6.js → chunk-32UTHIY5.js} +5 -5
  35. package/dist/cli/chunks/{chunk-5E6GHSTY.js → chunk-33I2ZP6E.js} +2 -2
  36. package/dist/cli/chunks/{chunk-XLZYRTNO.js → chunk-35MIUSXQ.js} +2 -2
  37. package/dist/cli/chunks/{chunk-7LFZ4CHM.js → chunk-35NW676P.js} +2 -2
  38. package/dist/cli/chunks/{chunk-4G63WT4F.js → chunk-3EWQN37E.js} +2 -2
  39. package/dist/cli/chunks/{chunk-GZLZCZ42.js → chunk-3IU4LDZR.js} +2 -2
  40. package/dist/cli/chunks/{chunk-CESIR27V.js → chunk-47RMGDG4.js} +2 -2
  41. package/dist/cli/chunks/chunk-4A76VPU4.js +3 -0
  42. package/dist/cli/chunks/{chunk-DT7SIJOA.js → chunk-4CB3QPZM.js} +2 -2
  43. package/dist/cli/chunks/{chunk-ERQKYIP7.js → chunk-4HWUECVD.js} +5 -5
  44. package/dist/cli/chunks/{chunk-MA7JIQ6U.js → chunk-4KUOYDY2.js} +5 -5
  45. package/dist/cli/chunks/{chunk-VWNFAW2M.js → chunk-4LWMAAWK.js} +2 -2
  46. package/dist/cli/chunks/{chunk-IKISCIGH.js → chunk-4PU5GTZW.js} +2 -2
  47. package/dist/cli/chunks/{chunk-ZXPY654C.js → chunk-4SA7M34P.js} +1 -1
  48. package/dist/cli/chunks/{chunk-NGKNYIQZ.js → chunk-4Y6OEBJZ.js} +1 -1
  49. package/dist/cli/chunks/{chunk-KOBVYY6H.js → chunk-5A66EGEW.js} +2 -2
  50. package/dist/cli/chunks/{chunk-Z2O2YJAF.js → chunk-5ADXFUMO.js} +2 -2
  51. package/dist/cli/chunks/{chunk-YKMU4LBV.js → chunk-5S4UIDFK.js} +1 -1
  52. package/dist/cli/chunks/{chunk-Z7IYW5U7.js → chunk-5TAEW5OV.js} +1 -1
  53. package/dist/cli/chunks/chunk-5Z23ZMXZ.js +742 -0
  54. package/dist/cli/chunks/{chunk-6TB6YOCZ.js → chunk-65TH6RPD.js} +1 -1
  55. package/dist/cli/chunks/{chunk-3Y7SPD72.js → chunk-66PXR3NI.js} +2 -2
  56. package/dist/cli/chunks/{chunk-3P34JFQH.js → chunk-6E6HB4N4.js} +14 -14
  57. package/dist/cli/chunks/{chunk-6PX4OXQO.js → chunk-6QRI3JVE.js} +2 -2
  58. package/dist/cli/chunks/{chunk-WBM6N6IM.js → chunk-7DNR4KKR.js} +1 -1
  59. package/dist/cli/chunks/{chunk-6XCMKIZN.js → chunk-7JFDLL2F.js} +1 -1
  60. package/dist/cli/chunks/chunk-7OEFBWAG.js +5 -0
  61. package/dist/cli/chunks/{chunk-Y76IAYQD.js → chunk-7QEUHNKO.js} +1 -1
  62. package/dist/cli/chunks/{chunk-WQ4PYWSW.js → chunk-7TA5MUPW.js} +1 -1
  63. package/dist/cli/chunks/{chunk-2XGVTYVX.js → chunk-A2JCRXTK.js} +2 -2
  64. package/dist/cli/chunks/{chunk-ESUO3GTJ.js → chunk-A5Y7DAVQ.js} +2 -2
  65. package/dist/cli/chunks/{chunk-ATHWDAXB.js → chunk-ADUAJIAU.js} +2 -2
  66. package/dist/cli/chunks/{chunk-IU2IV4NE.js → chunk-AJEXPFAB.js} +1 -1
  67. package/dist/cli/chunks/{chunk-YK7JN5N7.js → chunk-BC4T6SCV.js} +4 -4
  68. package/dist/cli/chunks/{chunk-KSIWGGJI.js → chunk-BMG2JLSQ.js} +2 -2
  69. package/dist/cli/chunks/chunk-BOSMELJX.js +180 -0
  70. package/dist/cli/chunks/{chunk-7OZVZIBE.js → chunk-BYRCB5JT.js} +2 -2
  71. package/dist/cli/chunks/{chunk-FAUCT5KR.js → chunk-C3YOVASQ.js} +6 -5
  72. package/dist/cli/chunks/{chunk-DMFTELBS.js → chunk-C74M4WUI.js} +2 -2
  73. package/dist/cli/chunks/{chunk-2SXBBUM6.js → chunk-CA5UNWQF.js} +2 -2
  74. package/dist/cli/chunks/{chunk-UCJMVXO4.js → chunk-CDA5Z74H.js} +2 -2
  75. package/dist/cli/chunks/{chunk-NVYIZCSR.js → chunk-CPIBIR3X.js} +2 -2
  76. package/dist/cli/chunks/{chunk-YK3BVZY6.js → chunk-CU36D7TN.js} +2 -2
  77. package/dist/cli/chunks/{chunk-H32EPIR2.js → chunk-DAUEK66C.js} +1 -1
  78. package/dist/cli/chunks/{chunk-6KIL6CMD.js → chunk-DRCBRUGN.js} +2 -2
  79. package/dist/cli/chunks/{chunk-EWFECZ2U.js → chunk-DZGPUGUG.js} +2 -2
  80. package/dist/cli/chunks/{chunk-YDAQK5UF.js → chunk-EF6OERRR.js} +1 -1
  81. package/dist/cli/chunks/{chunk-KG336OV3.js → chunk-EN7GRVEQ.js} +2 -2
  82. package/dist/cli/chunks/{chunk-DBMNJSBV.js → chunk-ENGL7FIJ.js} +1 -1
  83. package/dist/cli/chunks/{chunk-FKL3R5JQ.js → chunk-FAGKBOX2.js} +2 -2
  84. package/dist/cli/chunks/{chunk-NAXGWDVM.js → chunk-FNUFTWEO.js} +3 -3
  85. package/dist/cli/chunks/{chunk-RWWOHCMG.js → chunk-FZJCBSN4.js} +2 -2
  86. package/dist/cli/chunks/{chunk-ABFFWZPC.js → chunk-G24SWTAX.js} +151 -149
  87. package/dist/cli/chunks/{chunk-ODJNUMV3.js → chunk-G3AABG4Q.js} +2 -2
  88. package/dist/cli/chunks/{chunk-FBXTQNRH.js → chunk-GJKZ7UQO.js} +2 -2
  89. package/dist/cli/chunks/{chunk-DEF34AFL.js → chunk-GKFV6CUD.js} +2 -2
  90. package/dist/cli/chunks/{chunk-SY2IB442.js → chunk-HLGFHHWV.js} +2 -2
  91. package/dist/cli/chunks/{chunk-CZGOSJQ4.js → chunk-HM3LSFTY.js} +2 -2
  92. package/dist/cli/chunks/chunk-HSA5IGGW.js +2 -0
  93. package/dist/cli/chunks/{chunk-GJHWY3ZX.js → chunk-HZBXJFGN.js} +2 -2
  94. package/dist/cli/chunks/chunk-IA55PFLG.js +7 -0
  95. package/dist/cli/chunks/{chunk-MNN5J4GU.js → chunk-ICKUINKD.js} +2 -2
  96. package/dist/cli/chunks/{chunk-XEB3NLJR.js → chunk-IETBWYHW.js} +2 -2
  97. package/dist/cli/chunks/{chunk-A55QKKT2.js → chunk-IL7GQNNE.js} +2 -2
  98. package/dist/cli/chunks/{chunk-LRZY4KS2.js → chunk-INZARYUD.js} +2 -2
  99. package/dist/cli/chunks/{chunk-OBAREPDC.js → chunk-IPA7K556.js} +2 -2
  100. package/dist/cli/chunks/{chunk-CFBEBXLO.js → chunk-IVTQF55W.js} +3 -3
  101. package/dist/cli/chunks/{chunk-FFTPAWM6.js → chunk-J7Y7ZBIT.js} +8 -8
  102. package/dist/cli/chunks/{chunk-I33O4BRQ.js → chunk-JGIJPDGD.js} +2 -2
  103. package/dist/cli/chunks/chunk-JNXK47OL.js +2 -0
  104. package/dist/cli/chunks/{chunk-PCEW6Q2C.js → chunk-JOWUS2X5.js} +1 -1
  105. package/dist/cli/chunks/{chunk-KI73QCR5.js → chunk-JR6CUKAI.js} +2 -2
  106. package/dist/cli/chunks/chunk-JRYWLOBD.js +21 -0
  107. package/dist/cli/chunks/{chunk-SO45NA4D.js → chunk-JW5PDJ5O.js} +11 -11
  108. package/dist/cli/chunks/{chunk-APSRPR4W.js → chunk-K3A3NWT3.js} +2 -2
  109. package/dist/cli/chunks/{chunk-FESZBPUB.js → chunk-KA5SHLMW.js} +2 -2
  110. package/dist/cli/chunks/{chunk-OPFGRS5S.js → chunk-KGA7VAI4.js} +2 -2
  111. package/dist/cli/chunks/chunk-KJDI5CHX.js +2 -0
  112. package/dist/cli/chunks/{chunk-V2RSNVMW.js → chunk-L3PV7VXK.js} +1 -1
  113. package/dist/cli/chunks/{chunk-C522H7XR.js → chunk-L7NGKANW.js} +32 -32
  114. package/dist/cli/chunks/{chunk-DNRWGATA.js → chunk-LFBA735S.js} +7 -7
  115. package/dist/cli/chunks/{chunk-V2M2XCR5.js → chunk-MAJXZYGK.js} +1 -1
  116. package/dist/cli/chunks/{chunk-FZOWULMH.js → chunk-MCPEC6OO.js} +1 -1
  117. package/dist/cli/chunks/{chunk-LMS3Y7JD.js → chunk-MCPXNUDK.js} +2 -2
  118. package/dist/cli/chunks/{chunk-GWZZ7DAO.js → chunk-MMEALJ4D.js} +2 -2
  119. package/dist/cli/chunks/{chunk-G3CZCUPM.js → chunk-MYF5CNGV.js} +2 -2
  120. package/dist/cli/chunks/{chunk-NNFZUTDH.js → chunk-MYUMJ2ZI.js} +1 -1
  121. package/dist/cli/chunks/{chunk-WDQ7IEZY.js → chunk-N7O3PF6Y.js} +2 -2
  122. package/dist/cli/chunks/{chunk-YAKGBHO4.js → chunk-NA3F6FEO.js} +2 -2
  123. package/dist/cli/chunks/chunk-NNBQZR73.js +6 -0
  124. package/dist/cli/chunks/{chunk-6C3II5OM.js → chunk-NV74SICL.js} +2 -2
  125. package/dist/cli/chunks/chunk-NVRYELCY.js +13 -0
  126. package/dist/cli/chunks/{chunk-UHTTW3IT.js → chunk-NX4BCSOZ.js} +2 -2
  127. package/dist/cli/chunks/{chunk-EN2QSKFF.js → chunk-O3IM4WRZ.js} +2 -2
  128. package/dist/cli/chunks/{chunk-S75EYIJG.js → chunk-O4QJMANM.js} +1 -1
  129. package/dist/cli/chunks/{chunk-NPPHWFA2.js → chunk-OHVYINGM.js} +18 -18
  130. package/dist/cli/chunks/{chunk-DE4YJQJF.js → chunk-P5E26N2X.js} +2 -2
  131. package/dist/cli/chunks/chunk-P7UFJ6DO.js +14 -0
  132. package/dist/cli/chunks/{chunk-XFVTGAAJ.js → chunk-PGSJBXTD.js} +2 -2
  133. package/dist/cli/chunks/{chunk-CZ2IF6MC.js → chunk-PT2NXS43.js} +1 -1
  134. package/dist/cli/chunks/{chunk-RK73HB2F.js → chunk-PTBOLBM4.js} +2 -2
  135. package/dist/cli/chunks/{chunk-EAU5KDFO.js → chunk-PX5OPXY6.js} +1 -1
  136. package/dist/cli/chunks/chunk-QCPVUNN3.js +2 -0
  137. package/dist/cli/chunks/{chunk-VKRTTFB6.js → chunk-QSGEBCDB.js} +2 -2
  138. package/dist/cli/chunks/{chunk-SKQUUE4F.js → chunk-QUJJYTJH.js} +2 -2
  139. package/dist/cli/chunks/chunk-QWG3SILX.js +59 -0
  140. package/dist/cli/chunks/{chunk-D6DA2KFD.js → chunk-RCOLPF3B.js} +2 -2
  141. package/dist/cli/chunks/{chunk-SU5H66SD.js → chunk-RYHG3I7J.js} +2 -2
  142. package/dist/cli/chunks/chunk-SBHM5X2S.js +4 -0
  143. package/dist/cli/chunks/{chunk-62OAY5KJ.js → chunk-SDRJJUPO.js} +1 -1
  144. package/dist/cli/chunks/{chunk-FB6TI3BH.js → chunk-SG2TX72G.js} +2 -2
  145. package/dist/cli/chunks/{chunk-H2PYU7MN.js → chunk-SITL5YZV.js} +4 -4
  146. package/dist/cli/chunks/{chunk-AI4VYSFS.js → chunk-SPC4RBLF.js} +2 -2
  147. package/dist/cli/chunks/{chunk-BQUAE3CP.js → chunk-SQVZ3TRU.js} +2 -2
  148. package/dist/cli/chunks/{chunk-TBLI254A.js → chunk-SUX5XB2Z.js} +2 -2
  149. package/dist/cli/chunks/{chunk-VFSYMOAL.js → chunk-T4EN5VVK.js} +2 -2
  150. package/dist/cli/chunks/{chunk-KNQ2ERFX.js → chunk-TGMXUZZC.js} +2 -2
  151. package/dist/cli/chunks/{chunk-7TB6FK4B.js → chunk-TLRHAMX5.js} +1 -1
  152. package/dist/cli/chunks/{chunk-V6JBOIMX.js → chunk-TOWOJGEI.js} +1 -1
  153. package/dist/cli/chunks/{chunk-JHIY4VCC.js → chunk-TSOQ2QLT.js} +3 -3
  154. package/dist/cli/chunks/{chunk-YYTGXD3R.js → chunk-TVA5GRIU.js} +2 -2
  155. package/dist/cli/chunks/{chunk-6MVVSSID.js → chunk-TXEUVUMO.js} +1 -1
  156. package/dist/cli/chunks/{chunk-7ZCDZHDB.js → chunk-U6IXYQO4.js} +2 -2
  157. package/dist/cli/chunks/{chunk-NW5JUCCG.js → chunk-U7ZHDGXG.js} +1 -1
  158. package/dist/cli/chunks/{chunk-UARKIZAS.js → chunk-UCSK2RMI.js} +2 -2
  159. package/dist/cli/chunks/{chunk-RPHY2DU6.js → chunk-UIKQPO4Y.js} +2 -2
  160. package/dist/cli/chunks/chunk-UJNGGFGX.js +2 -0
  161. package/dist/cli/chunks/{chunk-EDLFX4ZB.js → chunk-ULCW6IVQ.js} +2 -2
  162. package/dist/cli/chunks/{chunk-M2QV7PT7.js → chunk-UREDS662.js} +2 -2
  163. package/dist/cli/chunks/{chunk-MG27QY4D.js → chunk-URSTP3WI.js} +2 -2
  164. package/dist/cli/chunks/{chunk-2ZI5FKSF.js → chunk-UUZZXHUF.js} +2 -2
  165. package/dist/cli/chunks/{chunk-IPJ7Q3AJ.js → chunk-UZED4YZ5.js} +1 -1
  166. package/dist/cli/chunks/{chunk-VFKF2XO7.js → chunk-VF7FTD64.js} +1 -1
  167. package/dist/cli/chunks/{chunk-YCGP5VFP.js → chunk-VUR5THML.js} +2 -2
  168. package/dist/cli/chunks/{chunk-WDVRE6GN.js → chunk-VXVTFKRA.js} +2 -2
  169. package/dist/cli/chunks/chunk-VZBC6DP7.js +2 -0
  170. package/dist/cli/chunks/{chunk-GHBNRMSJ.js → chunk-W4II6SIH.js} +2 -2
  171. package/dist/cli/chunks/{chunk-TNMBRDCA.js → chunk-W5HQIYQU.js} +3 -3
  172. package/dist/cli/chunks/{chunk-H74Q7TJN.js → chunk-W7H55PY4.js} +1 -1
  173. package/dist/cli/chunks/{chunk-OY2AHLSF.js → chunk-WDEXOLK2.js} +1 -1
  174. package/dist/cli/chunks/{chunk-VJQYDYAJ.js → chunk-WGTEZT7G.js} +2 -2
  175. package/dist/cli/chunks/{chunk-GRCIBCJ2.js → chunk-WLRU6ESI.js} +2 -2
  176. package/dist/cli/chunks/{chunk-ACWFKES2.js → chunk-WTAUF6O4.js} +2 -2
  177. package/dist/cli/chunks/chunk-XCNSGSKV.js +3 -0
  178. package/dist/cli/chunks/{chunk-6S3WJGUV.js → chunk-XZOYKB22.js} +2 -2
  179. package/dist/cli/chunks/chunk-YIDAXOUX.js +8 -0
  180. package/dist/cli/chunks/{chunk-LQEURY7C.js → chunk-YLKIXEPP.js} +1 -1
  181. package/dist/cli/chunks/chunk-YNVEDFPQ.js +2 -0
  182. package/dist/cli/chunks/{chunk-PGYMKGOE.js → chunk-YUA6ZKKY.js} +2 -2
  183. package/dist/cli/chunks/{chunk-GJMLK5UT.js → chunk-YVJEUX3I.js} +2 -2
  184. package/dist/cli/chunks/{chunk-AH3ZD3NJ.js → chunk-YWWMNTBF.js} +2 -2
  185. package/dist/cli/chunks/{chunk-37OWRCUN.js → chunk-ZGROHCOW.js} +2 -2
  186. package/dist/cli/chunks/{chunk-OEKP73MC.js → chunk-ZPVGX4DI.js} +2 -2
  187. package/dist/cli/chunks/{chunk-6GP6W46M.js → chunk-ZROAMFX2.js} +2 -2
  188. package/dist/cli/chunks/{chunk-OY3NJNP2.js → chunk-ZYOYR3UR.js} +1 -1
  189. package/dist/cli/chunks/ci-BZNWW3I3.js +81 -0
  190. package/dist/cli/chunks/{ci-config-7ODMNAUM.js → ci-config-LOHNXOKV.js} +2 -2
  191. package/dist/cli/chunks/{ci-output-FXZ7ZZW3.js → ci-output-LCOQBSJL.js} +2 -2
  192. package/dist/cli/chunks/{circuit-breaker-4VOUEPOX.js → circuit-breaker-7LRXTLFE.js} +2 -2
  193. package/dist/cli/chunks/{claude-flow-setup-7D4SGLM4.js → claude-flow-setup-HBU4VWC3.js} +2 -2
  194. package/dist/cli/chunks/client-4PNYDFYS.js +2 -0
  195. package/dist/cli/chunks/{cline-installer-WRRT7BGQ.js → cline-installer-CO6MLH6X.js} +2 -2
  196. package/dist/cli/chunks/{code-ZDJRIL3S.js → code-SIXBS6JM.js} +3 -3
  197. package/dist/cli/chunks/{code-index-extractor-4S4SHM56.js → code-index-extractor-GWJKZ2IQ.js} +2 -2
  198. package/dist/cli/chunks/{codex-installer-YTRHNDWR.js → codex-installer-6NINVWXJ.js} +2 -2
  199. package/dist/cli/chunks/{completions-6N64JUXJ.js → completions-7VIX3GML.js} +2 -2
  200. package/dist/cli/chunks/{complexity-analyzer-I4A26VCJ.js → complexity-analyzer-FBQR6ZP2.js} +2 -2
  201. package/dist/cli/chunks/{continuedev-installer-IIDR66LB.js → continuedev-installer-VA7RIXW5.js} +2 -2
  202. package/dist/cli/chunks/{copilot-installer-SVVFY3S2.js → copilot-installer-4QEBC4MU.js} +2 -2
  203. package/dist/cli/chunks/core-handlers-ODO6LUWQ.js +2 -0
  204. package/dist/cli/chunks/{cost-tracker-VGFS6IBX.js → cost-tracker-GRYKHPWL.js} +2 -2
  205. package/dist/cli/chunks/coverage-USPMNKOU.js +50 -0
  206. package/dist/cli/chunks/cross-domain-router-DT4MHJKK.js +2 -0
  207. package/dist/cli/chunks/{cursor-installer-UPETT57E.js → cursor-installer-ZXIPSZVH.js} +2 -2
  208. package/dist/cli/chunks/{daemon-CQFNZLXU.js → daemon-D7F3RGI5.js} +3 -3
  209. package/dist/cli/chunks/{daemon-7BDJHEIJ.js → daemon-N2VRHPSJ.js} +4 -4
  210. package/dist/cli/chunks/{dag-attention-scheduler-PJVABHON.js → dag-attention-scheduler-NL6BA7BY.js} +2 -2
  211. package/dist/cli/chunks/{detect-56SKAGWX.js → detect-XC2HCIIT.js} +2 -2
  212. package/dist/cli/chunks/{dist-node-UYTYUMLN.js → dist-node-A3Y26MEI.js} +2 -2
  213. package/dist/cli/chunks/{domain-handler-YOYLBYJE.js → domain-handler-WV6SFXRB.js} +2 -2
  214. package/dist/cli/chunks/{domain-plugins-7TARX2XF.js → domain-plugins-KJIF6Z2B.js} +2 -2
  215. package/dist/cli/chunks/{domain-transfer-AKVSBD6E.js → domain-transfer-L3F6AES2.js} +2 -2
  216. package/dist/cli/chunks/dream-QOB3JCOM.js +2 -0
  217. package/dist/cli/chunks/{embed-and-insert-pattern-IS6HSR66.js → embed-and-insert-pattern-PA3Y4KGO.js} +2 -2
  218. package/dist/cli/chunks/{eval-GNB574IM.js → eval-YGEZNUVE.js} +2 -2
  219. package/dist/cli/chunks/{experience-capture-middleware-RCAOCKM7.js → experience-capture-middleware-D4T7NW6B.js} +3 -3
  220. package/dist/cli/chunks/{fast-paths-KTZ5SF54.js → fast-paths-6JYK7RYQ.js} +2 -2
  221. package/dist/cli/chunks/{feature-flags-KFHSR5YF.js → feature-flags-DKXMDVPE.js} +2 -2
  222. package/dist/cli/chunks/{feature-flags-ITX5LQ57.js → feature-flags-RBH2GDSR.js} +2 -2
  223. package/dist/cli/chunks/file-discovery-BN76S2PR.js +2 -0
  224. package/dist/cli/chunks/fleet-43YMXACN.js +46 -0
  225. package/dist/cli/chunks/{gnn-wrapper-RLFW3GSX.js → gnn-wrapper-MV54UC4C.js} +2 -2
  226. package/dist/cli/chunks/{heartbeat-handler-EM2URCYZ.js → heartbeat-handler-7DKMVQQH.js} +4 -4
  227. package/dist/cli/chunks/heartbeat-scheduler-3NNP4WCP.js +2 -0
  228. package/dist/cli/chunks/hnsw-adapter-MZR7Y4WF.js +2 -0
  229. package/dist/cli/chunks/hnsw-index-HE4AX22U.js +2 -0
  230. package/dist/cli/chunks/{hnsw-legacy-bridge-JMHEOIBH.js → hnsw-legacy-bridge-6IWREDQC.js} +2 -2
  231. package/dist/cli/chunks/{hnswlib-node-CBP73QHY.js → hnswlib-node-5BIESSCK.js} +2 -2
  232. package/dist/cli/chunks/{hooks-IP7XE34Z.js → hooks-3EETRM62.js} +30 -30
  233. package/dist/cli/chunks/hybrid-backend-IHUHB3Y2.js +2 -0
  234. package/dist/cli/chunks/{hypergraph-engine-ONAYHU25.js → hypergraph-engine-RSWCB2D3.js} +2 -2
  235. package/dist/cli/chunks/{hypergraph-handler-VINJRAID.js → hypergraph-handler-552LXKL3.js} +3 -3
  236. package/dist/cli/chunks/impact-analyzer-FI6GI6PD.js +2 -0
  237. package/dist/cli/chunks/{init-guard-RYVV5R3Z.js → init-guard-OTDBJ5HD.js} +2 -2
  238. package/dist/cli/chunks/{init-handler-MPRGWMOE.js → init-handler-3FK3TKEA.js} +26 -25
  239. package/dist/cli/chunks/init-wizard-WLQKH5Y5.js +2 -0
  240. package/dist/cli/chunks/kernel-2WZOQEZS.js +2 -0
  241. package/dist/cli/chunks/{kilocode-installer-OPD7JBRL.js → kilocode-installer-KZ2O4LF3.js} +2 -2
  242. package/dist/cli/chunks/{kiro-installer-M4OPUNK2.js → kiro-installer-MLCCXRF7.js} +2 -2
  243. package/dist/cli/chunks/knowledge-graph-G3LVKK6P.js +2 -0
  244. package/dist/cli/chunks/{learning-4UWTQLMF.js → learning-QUCMBD77.js} +3 -3
  245. package/dist/cli/chunks/{llm-router-SQ56FF6Z.js → llm-router-PDEV3UP2.js} +4 -4
  246. package/dist/cli/chunks/llm-router-service-MM75HKWJ.js +2 -0
  247. package/dist/cli/chunks/{load-HPHKDGGL.js → load-XFVVLO7E.js} +2 -2
  248. package/dist/cli/chunks/load-test-BEWEE44J.js +2 -0
  249. package/dist/cli/chunks/{mcp-TELMAC7Z.js → mcp-74G3CL2S.js} +2 -2
  250. package/dist/cli/chunks/{memory-PFQ3KPVJ.js → memory-XIFM6JNX.js} +5 -5
  251. package/dist/cli/chunks/memory-backend-NYKBBKZR.js +2 -0
  252. package/dist/cli/chunks/memory-handlers-ZCKURV6S.js +2 -0
  253. package/dist/cli/chunks/{multi-model-executor-3VDRX6TZ.js → multi-model-executor-7L4W3O2Q.js} +2 -2
  254. package/dist/cli/chunks/{opencode-installer-PJ576R63.js → opencode-installer-BPG422LF.js} +2 -2
  255. package/dist/cli/chunks/{orchestrator-72QP4UU7.js → orchestrator-OEAFLAEV.js} +61 -23
  256. package/dist/cli/chunks/pattern-null-store-QGPUIV6M.js +2 -0
  257. package/dist/cli/chunks/{pattern-usage-recorder-754YQW7C.js → pattern-usage-recorder-LOPNCULT.js} +2 -2
  258. package/dist/cli/chunks/{pipeline-AVXY4MVB.js → pipeline-VWTYUZB7.js} +2 -2
  259. package/dist/cli/chunks/{platform-3E3DXLYB.js → platform-WFJJ3X2E.js} +2 -2
  260. package/dist/cli/chunks/{plugin-7FUQAKRE.js → plugin-744TPUSG.js} +2 -2
  261. package/dist/cli/chunks/{prime-radiant-advanced-wasm-NIB4F5NV.js → prime-radiant-advanced-wasm-BD5BLNDR.js} +2 -2
  262. package/dist/cli/chunks/project-root-C7ELXZRK.js +2 -0
  263. package/dist/cli/chunks/protocol-executor-SUVE33BM.js +2 -0
  264. package/dist/cli/chunks/{protocol-handler-BQRYMUTG.js → protocol-handler-JIBILI74.js} +2 -2
  265. package/dist/cli/chunks/{prove-H52QGC6B.js → prove-MNOL5FYW.js} +2 -2
  266. package/dist/cli/chunks/qe-reasoning-bank-YWZMMGJB.js +2 -0
  267. package/dist/cli/chunks/{quality-QO4XPAUM.js → quality-JEGBDGGX.js} +2 -2
  268. package/dist/cli/chunks/{quality-gate-FBKE5E6F.js → quality-gate-SYJ6ROMI.js} +3 -3
  269. package/dist/cli/chunks/queen-coordinator-ZFAKXRN7.js +2 -0
  270. package/dist/cli/chunks/real-embeddings-ZWXS5ZFV.js +2 -0
  271. package/dist/cli/chunks/{ref-validation-LF76ZOBD.js → ref-validation-RRHUFW2N.js} +2 -2
  272. package/dist/cli/chunks/{roocode-installer-3BYEBTQ7.js → roocode-installer-XFO6JSVN.js} +2 -2
  273. package/dist/cli/chunks/router-4FTAVYLJ.js +2 -0
  274. package/dist/cli/chunks/routing-feedback-IO2KOWMJ.js +2 -0
  275. package/dist/cli/chunks/{routing-handler-DST7BVCU.js → routing-handler-L2K3JASE.js} +2 -2
  276. package/dist/cli/chunks/{ruvector-commands-XE32PGKC.js → ruvector-commands-A6CINHGM.js} +2 -2
  277. package/dist/cli/chunks/rvf-dual-writer-KCIRNE7C.js +2 -0
  278. package/dist/cli/chunks/rvf-migration-adapter-MFC5WTJU.js +2 -0
  279. package/dist/cli/chunks/{rvf-migration-coordinator-VP32XC75.js → rvf-migration-coordinator-T4RY7L53.js} +2 -2
  280. package/dist/cli/chunks/rvf-native-adapter-I3KWHE7X.js +2 -0
  281. package/dist/cli/chunks/{rvf-store-integrity-SH2AMVI7.js → rvf-store-integrity-IR33TGQS.js} +2 -2
  282. package/dist/cli/chunks/safe-db-QXDZ6QY3.js +2 -0
  283. package/dist/cli/chunks/schedule-CZKD6RIY.js +2 -0
  284. package/dist/cli/chunks/scheduler-BLA3Q4CH.js +2 -0
  285. package/dist/cli/chunks/{security-VSPNKCDS.js → security-Z5GDE2IH.js} +3 -3
  286. package/dist/cli/chunks/{shared-rvf-adapter-HX6AHL3P.js → shared-rvf-adapter-SIZMEHPM.js} +2 -2
  287. package/dist/cli/chunks/{shared-rvf-dual-writer-MX4FC2JE.js → shared-rvf-dual-writer-HLM65RDS.js} +2 -2
  288. package/dist/cli/chunks/sqlite-persistence-XIUYDJC4.js +2 -0
  289. package/dist/cli/chunks/{standalone-memory-O4QUTK6L.js → standalone-memory-SKSZG7P5.js} +2 -2
  290. package/dist/cli/chunks/{status-handler-Z2BP6EOG.js → status-handler-766YOOMJ.js} +2 -2
  291. package/dist/cli/chunks/{structural-health-R36WNLQG.js → structural-health-M45FNOLT.js} +2 -2
  292. package/dist/cli/chunks/{sync-QF5Y3EMZ.js → sync-6CJ24B5T.js} +2 -2
  293. package/dist/cli/chunks/{sync-2ELWUFQU.js → sync-B2U366I3.js} +2 -2
  294. package/dist/cli/chunks/{task-handler-43PYE75J.js → task-handler-P6IFLCKP.js} +17 -15
  295. package/dist/cli/chunks/task-handlers-DPWMUKFC.js +9 -0
  296. package/dist/cli/chunks/{test-UWA377D4.js → test-TODH7KRF.js} +11 -11
  297. package/dist/cli/chunks/test-runner-process-46IPK3GH.js +2 -0
  298. package/dist/cli/chunks/{test-scheduling-YQZPJRRN.js → test-scheduling-VMVMVRHT.js} +3 -3
  299. package/dist/cli/chunks/{token-bootstrap-F7C6UKTC.js → token-bootstrap-XQW7BMCK.js} +2 -2
  300. package/dist/cli/chunks/{token-usage-DO6WLMXP.js → token-usage-JCZEIRKO.js} +2 -2
  301. package/dist/cli/chunks/{transformers-H5RGFKVO.js → transformers-U2ML3OHE.js} +2 -2
  302. package/dist/cli/chunks/tree-sitter-wasm-parser-MOI2WWNJ.js +2 -0
  303. package/dist/cli/chunks/{types-PJS2FGPF.js → types-GGEPCHP6.js} +2 -2
  304. package/dist/cli/chunks/unified-memory-FL26RTV3.js +2 -0
  305. package/dist/cli/chunks/unified-memory-hnsw-E2BPTH3U.js +2 -0
  306. package/dist/cli/chunks/unified-persistence-5ZOUPKHF.js +2 -0
  307. package/dist/cli/chunks/{upgrade-4IC4F6AB.js → upgrade-T5GRM7HS.js} +2 -2
  308. package/dist/cli/chunks/{validate-DHUWW7PF.js → validate-XMUJPLP3.js} +2 -2
  309. package/dist/cli/chunks/{validate-swarm-OERQNOX5.js → validate-swarm-KJLF7JEH.js} +2 -2
  310. package/dist/cli/chunks/visual-security-IJVPO5FA.js +2 -0
  311. package/dist/cli/chunks/{web-tree-sitter-TV7DMKES.js → web-tree-sitter-LOHVZ7G5.js} +2 -2
  312. package/dist/cli/chunks/{windsurf-installer-QZPWSH37.js → windsurf-installer-33FBTXJU.js} +2 -2
  313. package/dist/cli/chunks/witness-chain-5FAFCQKP.js +2 -0
  314. package/dist/cli/chunks/witness-chain-V2M32W5D.js +2 -0
  315. package/dist/cli/chunks/{witness-chain-repair-RUXIOE7F.js → witness-chain-repair-VWBO4NXE.js} +2 -2
  316. package/dist/cli/chunks/{witness-chain-verifier-YXENHB42.js → witness-chain-verifier-BHJ3ZAEK.js} +2 -2
  317. package/dist/cli/chunks/{witness-key-manager-HL26AGFO.js → witness-key-manager-WNVPH2Z3.js} +2 -2
  318. package/dist/cli/chunks/{workflow-EOVVCN2E.js → workflow-6QR5MQTO.js} +4 -4
  319. package/dist/cli/chunks/workflow-orchestrator-3JLF3IX7.js +2 -0
  320. package/dist/cli/chunks/{wrappers-AGODHBOO.js → wrappers-EHOL62TS.js} +2 -2
  321. package/dist/cli/commands/ci.js +7 -0
  322. package/dist/cli/commands/coverage.js +7 -1
  323. package/dist/cli/commands/fleet.js +5 -2
  324. package/dist/cli/commands/hooks-handlers/stats-hooks.d.ts +4 -3
  325. package/dist/cli/commands/hooks-handlers/stats-hooks.js +22 -4
  326. package/dist/cli/commands/hooks-handlers/tool-loop-guardrail.js +11 -6
  327. package/dist/cli/commands/test.js +5 -2
  328. package/dist/cli/handlers/init-handler.d.ts +12 -0
  329. package/dist/cli/handlers/init-handler.js +27 -12
  330. package/dist/cli/handlers/task-handler.js +6 -0
  331. package/dist/cli/utils/ci-output.d.ts +2 -0
  332. package/dist/cli/utils/ci-output.js +2 -0
  333. package/dist/cli/utils/coverage-verdict.d.ts +11 -2
  334. package/dist/cli/utils/coverage-verdict.js +26 -6
  335. package/dist/cli/utils/fleet-operation.d.ts +5 -0
  336. package/dist/cli/utils/fleet-operation.js +7 -1
  337. package/dist/cli/utils/fleet-result.d.ts +5 -3
  338. package/dist/cli/utils/fleet-result.js +9 -3
  339. package/dist/cli/utils/progress.d.ts +16 -2
  340. package/dist/cli/utils/progress.js +31 -14
  341. package/dist/coordination/consensus/consensus-engine.js +3 -1
  342. package/dist/coordination/handlers/code-intelligence-handlers.js +3 -2
  343. package/dist/coordination/handlers/coverage-collection.d.ts +2 -0
  344. package/dist/coordination/handlers/coverage-collection.js +5 -2
  345. package/dist/coordination/handlers/coverage-evidence.d.ts +75 -0
  346. package/dist/coordination/handlers/coverage-evidence.js +159 -0
  347. package/dist/coordination/handlers/coverage-handlers.js +16 -3
  348. package/dist/coordination/handlers/coverage-runner.d.ts +3 -8
  349. package/dist/coordination/handlers/coverage-runner.js +6 -22
  350. package/dist/coordination/handlers/coverage-scope.d.ts +40 -0
  351. package/dist/coordination/handlers/coverage-scope.js +321 -0
  352. package/dist/coordination/handlers/coverage-stderr.d.ts +23 -0
  353. package/dist/coordination/handlers/coverage-stderr.js +39 -0
  354. package/dist/coordination/handlers/coverage-target.d.ts +9 -0
  355. package/dist/coordination/handlers/coverage-target.js +21 -8
  356. package/dist/coordination/handlers/handler-utils.d.ts +5 -0
  357. package/dist/coordination/handlers/handler-utils.js +11 -5
  358. package/dist/coordination/handlers/requirements-handlers.js +3 -2
  359. package/dist/coordination/handlers/security-handlers.js +34 -20
  360. package/dist/coordination/queen-coordinator.js +8 -3
  361. package/dist/coordination/task-executability.d.ts +12 -0
  362. package/dist/coordination/task-executability.js +27 -0
  363. package/dist/coordination/workflow-orchestrator.d.ts +6 -0
  364. package/dist/coordination/workflow-orchestrator.js +22 -8
  365. package/dist/domains/code-intelligence/services/metric-collector/listing-process-owner.js +4 -1
  366. package/dist/domains/code-intelligence/services/product-factors-bridge.js +7 -4
  367. package/dist/domains/code-intelligence/services/semantic-analyzer.d.ts +8 -0
  368. package/dist/domains/code-intelligence/services/semantic-analyzer.js +10 -7
  369. package/dist/domains/coverage-analysis/services/coverage-parser.js +19 -10
  370. package/dist/domains/learning-optimization/interfaces.d.ts +2 -0
  371. package/dist/domains/learning-optimization/services/learning-coordinator.js +2 -1
  372. package/dist/domains/learning-optimization/services/metrics-optimizer.js +14 -4
  373. package/dist/domains/learning-optimization/services/production-intel.js +3 -1
  374. package/dist/domains/security-compliance/generic-finding-dedup.d.ts +40 -0
  375. package/dist/domains/security-compliance/generic-finding-dedup.js +63 -0
  376. package/dist/domains/security-compliance/services/scanners/dependency-resolver.js +14 -6
  377. package/dist/domains/security-compliance/services/scanners/sast-scanner.js +4 -2
  378. package/dist/domains/security-compliance/services/security-auditor-sast.js +2 -2
  379. package/dist/domains/security-compliance/services/security-auditor-secrets.js +2 -2
  380. package/dist/domains/security-compliance/services/security-auditor.js +3 -2
  381. package/dist/domains/test-execution/coordinator.d.ts +2 -1
  382. package/dist/domains/test-execution/coordinator.js +5 -14
  383. package/dist/domains/test-execution/interfaces.d.ts +11 -1
  384. package/dist/domains/test-execution/services/retry-outcome.d.ts +18 -0
  385. package/dist/domains/test-execution/services/retry-outcome.js +53 -0
  386. package/dist/domains/test-generation/coordinator.js +2 -2
  387. package/dist/domains/test-generation/services/pattern-matcher.js +4 -4
  388. package/dist/domains/test-generation/services/test-generator.js +2 -2
  389. package/dist/governance/evolution-pipeline-integration.js +3 -1
  390. package/dist/hooks/cross-phase-hooks.js +3 -1
  391. package/dist/init/init-wizard-steps.js +5 -1
  392. package/dist/init/phases/04-database.js +7 -0
  393. package/dist/init/phases/10-workers.js +42 -4
  394. package/dist/init/phases/12-verification.js +14 -4
  395. package/dist/init/settings-merge.js +7 -4
  396. package/dist/integrations/agentic-flow/reasoning-bank/experience-replay.d.ts +29 -0
  397. package/dist/integrations/agentic-flow/reasoning-bank/experience-replay.js +70 -6
  398. package/dist/integrations/agentic-flow/reasoning-bank/index.d.ts +10 -3
  399. package/dist/integrations/agentic-flow/reasoning-bank/index.js +13 -0
  400. package/dist/integrations/ruvector/filter-adapter.js +2 -1
  401. package/dist/learning/dream/insight-generator.js +5 -4
  402. package/dist/learning/embedder-endpoint-client.d.ts +8 -0
  403. package/dist/learning/embedder-endpoint-client.js +20 -0
  404. package/dist/learning/embedder-recovery.d.ts +63 -0
  405. package/dist/learning/embedder-recovery.js +94 -0
  406. package/dist/learning/memory-auditor.js +3 -1
  407. package/dist/learning/qe-patterns.js +2 -1
  408. package/dist/learning/qe-reasoning-bank-types.d.ts +5 -0
  409. package/dist/learning/qe-reasoning-bank.d.ts +21 -0
  410. package/dist/learning/qe-reasoning-bank.js +54 -8
  411. package/dist/learning/real-embeddings.d.ts +23 -0
  412. package/dist/learning/real-embeddings.js +69 -2
  413. package/dist/learning/real-qe-reasoning-bank.d.ts +39 -0
  414. package/dist/learning/real-qe-reasoning-bank.js +108 -38
  415. package/dist/logging/redaction.js +142 -12
  416. package/dist/mcp/bundle.js +520 -503
  417. package/dist/mcp/daemon-mode.d.ts +126 -0
  418. package/dist/mcp/daemon-mode.js +257 -0
  419. package/dist/mcp/entry.d.ts +4 -0
  420. package/dist/mcp/entry.js +50 -2
  421. package/dist/mcp/handlers/domain-handler-configs.d.ts +2 -0
  422. package/dist/mcp/handlers/domain-handler-configs.js +13 -2
  423. package/dist/mcp/handlers/orchestrate-routes.d.ts +6 -1
  424. package/dist/mcp/handlers/orchestrate-routes.js +53 -0
  425. package/dist/mcp/handlers/task-handlers.d.ts +23 -1
  426. package/dist/mcp/handlers/task-handlers.js +90 -19
  427. package/dist/mcp/handlers/validation-pipeline-handler.js +9 -9
  428. package/dist/mcp/protocol-server.js +11 -8
  429. package/dist/mcp/qe-tool-bridge.js +3 -0
  430. package/dist/mcp/services/reasoning-bank-service.d.ts +9 -2
  431. package/dist/mcp/services/reasoning-bank-service.js +13 -0
  432. package/dist/mcp/tool-annotations.js +4 -1
  433. package/dist/mcp/tools/coherence/check.js +1 -0
  434. package/dist/mcp/tools/coherence/consensus.js +4 -2
  435. package/dist/mcp/tools/learning-optimization/optimize.js +1 -2
  436. package/dist/mcp/tools/mincut/index.js +3 -0
  437. package/dist/mcp/tools/quality-assessment/gate.js +7 -0
  438. package/dist/mcp/tools/qx-analysis/analyze.js +1 -0
  439. package/dist/mcp/tools/requirements-validation/quality-criteria.js +10 -3
  440. package/dist/mcp/tools/security-compliance/scan.js +4 -2
  441. package/dist/mcp/tools/test-execution/e2e-execute.js +2 -2
  442. package/dist/mcp/tools/test-execution/execute.js +3 -2
  443. package/dist/mcp/types.d.ts +14 -0
  444. package/dist/memory/crdt/crdt-store.js +5 -0
  445. package/dist/memory/crdt/lww-register.js +12 -2
  446. package/dist/optimization/early-exit-token-optimizer.js +3 -1
  447. package/dist/planning/goap-planner.js +5 -0
  448. package/dist/planning/plan-executor.js +5 -0
  449. package/dist/routing/advisor/redaction.js +22 -2
  450. package/dist/shared/io/confined-read.d.ts +74 -0
  451. package/dist/shared/io/confined-read.js +256 -0
  452. package/dist/shared/io/file-reader.d.ts +6 -6
  453. package/dist/shared/io/file-reader.js +16 -42
  454. package/dist/shared/llm/providers/claude-code.js +4 -1
  455. package/dist/shared/llm/providers/response-deadline.js +16 -2
  456. package/dist/shared/native-module-errors.d.ts +51 -0
  457. package/dist/shared/native-module-errors.js +129 -0
  458. package/dist/shared/safe-db.js +14 -4
  459. package/dist/shared/security/osv-client.js +4 -1
  460. package/dist/shared/types/index.js +3 -1
  461. package/dist/shared/types/test-frameworks.js +2 -2
  462. package/dist/strange-loop/infra-healing/infra-aware-agent-provider.js +8 -1
  463. package/dist/sync/readers/json-reader.js +2 -1
  464. package/dist/validation/anchor-set.d.ts +6 -0
  465. package/dist/validation/anchor-set.js +9 -1
  466. package/dist/validation/quality-gate-runner.d.ts +7 -1
  467. package/dist/validation/quality-gate-runner.js +3 -3
  468. package/package.json +3 -3
  469. package/dist/cli/chunks/adapter-TR5SLAZC.js +0 -2
  470. package/dist/cli/chunks/aqe-learning-engine-DXWKCHY2.js +0 -2
  471. package/dist/cli/chunks/base-GTB6POYE.js +0 -2
  472. package/dist/cli/chunks/browser-workflow-MSBOLYUY.js +0 -2
  473. package/dist/cli/chunks/chunk-4SJYIX54.js +0 -3
  474. package/dist/cli/chunks/chunk-6P7424AO.js +0 -21
  475. package/dist/cli/chunks/chunk-6X5DHU6Q.js +0 -14
  476. package/dist/cli/chunks/chunk-CMBLM26R.js +0 -2
  477. package/dist/cli/chunks/chunk-DKAC3E3B.js +0 -3
  478. package/dist/cli/chunks/chunk-DURHK377.js +0 -742
  479. package/dist/cli/chunks/chunk-FPUDRSFJ.js +0 -180
  480. package/dist/cli/chunks/chunk-G5I6KGMW.js +0 -59
  481. package/dist/cli/chunks/chunk-HOZUDE4C.js +0 -2
  482. package/dist/cli/chunks/chunk-N6PIIK6G.js +0 -3
  483. package/dist/cli/chunks/chunk-NSHU347M.js +0 -2
  484. package/dist/cli/chunks/chunk-PPSAMXYN.js +0 -13
  485. package/dist/cli/chunks/chunk-TYFZXDGZ.js +0 -4
  486. package/dist/cli/chunks/chunk-U4OICXV2.js +0 -6
  487. package/dist/cli/chunks/chunk-WSF24I3D.js +0 -2
  488. package/dist/cli/chunks/chunk-XBVUVFJK.js +0 -4
  489. package/dist/cli/chunks/chunk-XUZDBQ5X.js +0 -6
  490. package/dist/cli/chunks/chunk-YBSBABOS.js +0 -2
  491. package/dist/cli/chunks/chunk-ZG5666GJ.js +0 -2
  492. package/dist/cli/chunks/ci-MSKMVH5X.js +0 -81
  493. package/dist/cli/chunks/client-POSVREVS.js +0 -2
  494. package/dist/cli/chunks/core-handlers-V243GY7X.js +0 -2
  495. package/dist/cli/chunks/coverage-B7MCGNTE.js +0 -49
  496. package/dist/cli/chunks/cross-domain-router-N3AIEM3B.js +0 -2
  497. package/dist/cli/chunks/dream-UA7MKOPQ.js +0 -2
  498. package/dist/cli/chunks/file-discovery-YCMNKZAK.js +0 -2
  499. package/dist/cli/chunks/fleet-2Y3ZE6CE.js +0 -46
  500. package/dist/cli/chunks/heartbeat-scheduler-QH5V6G2P.js +0 -2
  501. package/dist/cli/chunks/hnsw-adapter-OJNFAGJS.js +0 -2
  502. package/dist/cli/chunks/hnsw-index-DFUNARVD.js +0 -2
  503. package/dist/cli/chunks/hybrid-backend-SSGQQEQ2.js +0 -2
  504. package/dist/cli/chunks/impact-analyzer-CRGCA7ZD.js +0 -2
  505. package/dist/cli/chunks/init-wizard-NIMZ4J55.js +0 -2
  506. package/dist/cli/chunks/kernel-JQK7PRAI.js +0 -2
  507. package/dist/cli/chunks/knowledge-graph-YPVVIKEU.js +0 -2
  508. package/dist/cli/chunks/llm-router-service-5OGAUOXF.js +0 -2
  509. package/dist/cli/chunks/load-test-UKNV5MWW.js +0 -2
  510. package/dist/cli/chunks/memory-backend-ZW4BTRNK.js +0 -2
  511. package/dist/cli/chunks/memory-handlers-FCXN437E.js +0 -2
  512. package/dist/cli/chunks/pattern-null-store-4DUV6MQC.js +0 -2
  513. package/dist/cli/chunks/project-root-JCAUNL6O.js +0 -2
  514. package/dist/cli/chunks/protocol-executor-RNZNZP3A.js +0 -2
  515. package/dist/cli/chunks/qe-reasoning-bank-WK6TQOG2.js +0 -2
  516. package/dist/cli/chunks/queen-coordinator-4452SXZQ.js +0 -2
  517. package/dist/cli/chunks/real-embeddings-RWGOVOXO.js +0 -2
  518. package/dist/cli/chunks/router-3DIS5X4R.js +0 -2
  519. package/dist/cli/chunks/routing-feedback-OPXRCXM7.js +0 -2
  520. package/dist/cli/chunks/rvf-dual-writer-JL6T727I.js +0 -2
  521. package/dist/cli/chunks/rvf-migration-adapter-V7IBDUCS.js +0 -2
  522. package/dist/cli/chunks/rvf-native-adapter-O3UQTEBK.js +0 -2
  523. package/dist/cli/chunks/safe-db-EVB4ZC7T.js +0 -2
  524. package/dist/cli/chunks/schedule-ORDDXXY4.js +0 -2
  525. package/dist/cli/chunks/scheduler-XFLJSFIU.js +0 -2
  526. package/dist/cli/chunks/sqlite-persistence-Y7B42CJ3.js +0 -2
  527. package/dist/cli/chunks/task-handlers-KPWAEMKH.js +0 -9
  528. package/dist/cli/chunks/test-runner-process-3XZUYST2.js +0 -2
  529. package/dist/cli/chunks/tree-sitter-wasm-parser-YTBCBHUO.js +0 -2
  530. package/dist/cli/chunks/unified-memory-EHD4VNFW.js +0 -2
  531. package/dist/cli/chunks/unified-memory-hnsw-ZODGM4UK.js +0 -2
  532. package/dist/cli/chunks/unified-persistence-MHSI7ABK.js +0 -2
  533. package/dist/cli/chunks/visual-security-54MLFKWY.js +0 -2
  534. package/dist/cli/chunks/witness-chain-LC6Q2W27.js +0 -2
  535. package/dist/cli/chunks/witness-chain-QUIBAF3W.js +0 -2
  536. package/dist/cli/chunks/workflow-orchestrator-UKHEJVSK.js +0 -2
@@ -8,7 +8,9 @@
8
8
  import { ToolResult, TaskSubmitParams, TaskSubmitResult, TaskListParams, TaskStatusParams, TaskStatusResult, TaskCancelParams } from '../types';
9
9
  import { TaskType } from '../../coordination/queen-coordinator';
10
10
  import { type RoutingLogEntry, type RoutingStats } from '../services/task-router';
11
+ import type { ExperienceGuidanceStatus } from '../../integrations/agentic-flow/reasoning-bank/index.js';
11
12
  import type { ModelTier } from '../../integrations/agentic-flow';
13
+ import { type Priority } from '../../shared/types/index.js';
12
14
  export declare function handleTaskSubmit(params: TaskSubmitParams): Promise<ToolResult<TaskSubmitResult>>;
13
15
  export declare function handleTaskList(params: TaskListParams): Promise<ToolResult<TaskStatusResult[]>>;
14
16
  export declare function handleTaskStatus(params: TaskStatusParams): Promise<ToolResult<TaskStatusResult>>;
@@ -20,7 +22,8 @@ export declare function handleTaskCancel(params: TaskCancelParams): Promise<Tool
20
22
  export interface TaskOrchestrateParams {
21
23
  task: string;
22
24
  strategy?: 'parallel' | 'sequential' | 'adaptive';
23
- priority?: 'low' | 'medium' | 'high' | 'critical';
25
+ /** Named levels, or a canonical p0-p3 priority (p0 stays p0). */
26
+ priority?: 'low' | 'medium' | 'high' | 'critical' | Priority;
24
27
  maxAgents?: number;
25
28
  /** Manual tier override (0-4) */
26
29
  manualTier?: ModelTier;
@@ -35,6 +38,23 @@ export interface TaskOrchestrateParams {
35
38
  requirements?: string[];
36
39
  };
37
40
  }
41
+ /**
42
+ * #1022: how learned patterns informed task_orchestrate.
43
+ * - 'vector': embedding similarity plus text matching
44
+ * - 'lexical-only': no working embedder (absent, or failed at runtime, #1187);
45
+ * text matching only, no similarity
46
+ * scores, and experience guidance unavailable
47
+ * - 'unavailable': the ReasoningBank could not start; no learned guidance
48
+ *
49
+ * #1204: `experienceGuidance` says the same for similar-experience guidance:
50
+ * 'unavailable' (with the reason) when its embedder failed or is absent.
51
+ * Omitted when experience replay is disabled or the ReasoningBank is down.
52
+ */
53
+ export interface OrchestrateLearningStatus {
54
+ patternSearch: 'vector' | 'lexical-only' | 'unavailable';
55
+ reason?: string;
56
+ experienceGuidance?: ExperienceGuidanceStatus;
57
+ }
38
58
  export interface TaskOrchestrateResult {
39
59
  taskId: string;
40
60
  /** The task type submitted to the domain. */
@@ -57,6 +77,8 @@ export interface TaskOrchestrateResult {
57
77
  rationale: string;
58
78
  decisionTimeMs: number;
59
79
  };
80
+ /** #1022: how learned patterns informed this orchestration */
81
+ learning: OrchestrateLearningStatus;
60
82
  }
61
83
  export declare function handleTaskOrchestrate(params: TaskOrchestrateParams): Promise<ToolResult<TaskOrchestrateResult>>;
62
84
  export interface ModelRouteParams {
@@ -13,6 +13,7 @@ import { toErrorMessage } from '../../shared/error-utils.js';
13
13
  import { ALL_DOMAINS, invalidPriorityMessage, isDomainName, isPriority } from '../../shared/types/index.js';
14
14
  import { validateIndexPaths, validateIndexTaskPayload } from '../../domains/code-intelligence/index-path-guard.js';
15
15
  import { routeInferredTask } from './orchestrate-routes.js';
16
+ import { getTaskExecutor } from './handler-factory.js';
16
17
  // ============================================================================
17
18
  // Task Type to Workflow Mapping (Issue #206)
18
19
  // Maps TaskTypes to their associated workflow IDs for auto-execution
@@ -111,6 +112,11 @@ export async function handleTaskList(params) {
111
112
  error: 'Fleet not initialized. Call fleet_init first.',
112
113
  };
113
114
  }
115
+ // A priority outside the allowed set is an error, not an empty list.
116
+ // Parity with `aqe task list --priority`.
117
+ if (params.priority !== undefined && !isPriority(params.priority)) {
118
+ return { success: false, error: invalidPriorityMessage(params.priority) };
119
+ }
114
120
  const { queen } = getFleetState();
115
121
  try {
116
122
  const tasks = queen.listTasks({
@@ -232,6 +238,56 @@ export async function handleTaskCancel(params) {
232
238
  };
233
239
  }
234
240
  }
241
+ /**
242
+ * #1022: gather experience guidance and pattern hints for task_orchestrate.
243
+ * Learned guidance is optional: a missing embedder, or a ReasoningBank that
244
+ * cannot start, must not fail the orchestration. The returned status says
245
+ * which kind of matching produced the hints.
246
+ */
247
+ async function getOrchestrateLearningContext(task, guidanceDomain, patternDomain) {
248
+ let service;
249
+ try {
250
+ service = await getReasoningBankService();
251
+ }
252
+ catch (error) {
253
+ return {
254
+ experienceGuidance: null,
255
+ patternHintMatches: [],
256
+ learning: { patternSearch: 'unavailable', reason: toErrorMessage(error) },
257
+ };
258
+ }
259
+ // #1204: a background embedder retry can finish while this call runs.
260
+ // Report vector matching only if the embedder was usable for the whole
261
+ // call, so hints found by text alone are never labelled vector.
262
+ const patternStatusBefore = service.getPatternSearchStatus();
263
+ const experienceStatusBefore = service.getExperienceGuidanceStatus();
264
+ const experienceGuidance = await service.getExperienceGuidance(task, guidanceDomain);
265
+ // Bring HNSW A (qe_patterns) into the routing decision alongside HNSW C
266
+ // (experienceGuidance). Without this, only past trajectories influenced
267
+ // routing — the catalog of consolidated long-term patterns was never
268
+ // consulted for new tasks. Fail-soft: empty array on error.
269
+ const patternHintMatches = await service
270
+ .searchPatternMatches(task, { limit: 5, domain: patternDomain })
271
+ .catch(() => []);
272
+ const status = notVectorIfEither(patternStatusBefore, service.getPatternSearchStatus());
273
+ const experienceStatusAfter = service.getExperienceGuidanceStatus();
274
+ const experienceStatus = experienceStatusBefore && experienceStatusAfter
275
+ ? notVectorIfEither(experienceStatusBefore, experienceStatusAfter)
276
+ : experienceStatusAfter;
277
+ return {
278
+ experienceGuidance,
279
+ patternHintMatches,
280
+ learning: {
281
+ patternSearch: status.mode,
282
+ ...(status.reason ? { reason: status.reason } : {}),
283
+ ...(experienceStatus ? { experienceGuidance: experienceStatus } : {}),
284
+ },
285
+ };
286
+ }
287
+ /** #1204: the status before the call unless it was vector; otherwise the one after. */
288
+ function notVectorIfEither(before, after) {
289
+ return before.mode === 'vector' ? after : before;
290
+ }
235
291
  export async function handleTaskOrchestrate(params) {
236
292
  if (!isFleetInitialized()) {
237
293
  return {
@@ -247,6 +303,11 @@ export async function handleTaskOrchestrate(params) {
247
303
  return { success: false, error: filePaths.error.message };
248
304
  }
249
305
  }
306
+ // #1117: an unrecognised priority used to fall through to p1 (and a
307
+ // requested p0 was downgraded). Reject it up front, as task_submit does.
308
+ if (params.priority !== undefined && mapPriority(params.priority) === undefined) {
309
+ return { success: false, error: invalidOrchestratePriorityMessage(params.priority) };
310
+ }
250
311
  const { queen, workflowOrchestrator } = getFleetState();
251
312
  try {
252
313
  // ADR-051: Route task to optimal model tier BEFORE execution
@@ -270,21 +331,10 @@ export async function handleTaskOrchestrate(params) {
270
331
  },
271
332
  });
272
333
  // INTEGRATION FIX: Get ReasoningBank guidance for the task
273
- const reasoningBankService = await getReasoningBankService();
274
- const experienceGuidance = await reasoningBankService.getExperienceGuidance(params.task, params.context?.project);
275
- // Bring HNSW A (qe_patterns) into the routing decision alongside HNSW C
276
- // (experienceGuidance). Without this, only past trajectories influenced
277
- // routing — the catalog of consolidated long-term patterns was never
278
- // consulted for new tasks. Fail-soft: empty array on error.
279
- const patternHintMatches = await reasoningBankService
280
- .searchPatternMatches(params.task, {
281
- limit: 5,
282
- domain: params.context?.project ?? inferredDomain,
283
- })
284
- .catch(() => []);
334
+ const { experienceGuidance, patternHintMatches, learning } = await getOrchestrateLearningContext(params.task, params.context?.project, params.context?.project ?? inferredDomain);
285
335
  // Parse task description to determine task type
286
336
  const taskType = inferTaskType(params.task);
287
- const priority = mapPriority(params.priority || 'medium');
337
+ const priority = mapPriority(params.priority ?? 'medium') ?? 'p2';
288
338
  // Issue #206: Check if this task type has an associated workflow
289
339
  const workflowId = TASK_WORKFLOW_MAP[taskType];
290
340
  if (workflowId && workflowOrchestrator) {
@@ -355,6 +405,7 @@ export async function handleTaskOrchestrate(params) {
355
405
  rationale: routingResult.decision.rationale,
356
406
  decisionTimeMs: routingResult.decision.metadata.decisionTimeMs,
357
407
  },
408
+ learning,
358
409
  },
359
410
  };
360
411
  }
@@ -368,6 +419,9 @@ export async function handleTaskOrchestrate(params) {
368
419
  }
369
420
  const submitType = route.kind === 'route' ? route.type : taskType;
370
421
  const targetDomains = route.kind === 'route' ? [route.domain] : [];
422
+ // #1200: a caller-owned task runs through the MCP task executor, as the
423
+ // domain's own tool does; the Queen does not dispatch it.
424
+ const callerExecutor = route.kind === 'route' && route.executionOwner === 'caller' ? getTaskExecutor() : null;
371
425
  // #1081: the type must have a domain handler. Otherwise the Queen can
372
426
  // only fail the task at dispatch, so reject it here with the reason.
373
427
  const executable = queen.validateTaskExecutable(submitType, targetDomains);
@@ -401,6 +455,7 @@ export async function handleTaskOrchestrate(params) {
401
455
  Object.assign(taskPayload, route.payload);
402
456
  const result = await queen.submitTask({
403
457
  type: submitType,
458
+ ...(callerExecutor ? { executionOwner: 'caller' } : {}),
404
459
  priority,
405
460
  targetDomains,
406
461
  payload: {
@@ -446,13 +501,23 @@ export async function handleTaskOrchestrate(params) {
446
501
  }
447
502
  // INTEGRATION FIX: Start trajectory tracking for learning
448
503
  const taskId = result.value;
449
- await startTaskTrajectory(taskId, params.task, {
450
- agent: 'queen-coordinator',
451
- domain: params.context?.project,
452
- });
504
+ if (learning.patternSearch !== 'unavailable') {
505
+ await startTaskTrajectory(taskId, params.task, {
506
+ agent: 'queen-coordinator',
507
+ domain: params.context?.project,
508
+ });
509
+ }
453
510
  // Issue N1: Trajectory auto-close is handled by subscribeTrajectoryEvents(),
454
511
  // which listens for TaskCompleted/TaskFailed on the event router.
455
512
  // No per-task polling needed.
513
+ // #1200: run a caller-owned task after its trajectory started, without
514
+ // waiting: the executor's TaskCompleted / TaskFailed settle it for task_status.
515
+ const execution = callerExecutor ? queen.getTaskStatus(taskId) : undefined;
516
+ if (callerExecutor && execution) {
517
+ void callerExecutor.execute(execution.task).catch(error => {
518
+ console.error(`[TaskOrchestrate] Task ${taskId} failed to execute: ${toErrorMessage(error)}`);
519
+ });
520
+ }
456
521
  // Trajectory judge: opt-in LLM scoring of recent unscored trajectories.
457
522
  // Hook-created rows in qe_trajectories never receive feedback unless
458
523
  // something goes back and judges them. This catches up by scoring ≤5
@@ -485,6 +550,7 @@ export async function handleTaskOrchestrate(params) {
485
550
  rationale: routingResult.decision.rationale,
486
551
  decisionTimeMs: routingResult.decision.metadata.decisionTimeMs,
487
552
  },
553
+ learning,
488
554
  },
489
555
  };
490
556
  }
@@ -742,7 +808,9 @@ function inferTaskType(description) {
742
808
  return 'generate-tests';
743
809
  }
744
810
  /**
745
- * Map priority string to Priority type
811
+ * Map a task_orchestrate priority to the canonical Priority type.
812
+ * Accepts the named levels and the canonical p0-p3 values; returns
813
+ * undefined for anything else so the caller can reject it (#1117).
746
814
  */
747
815
  function mapPriority(priority) {
748
816
  switch (priority) {
@@ -755,9 +823,12 @@ function mapPriority(priority) {
755
823
  case 'low':
756
824
  return 'p3';
757
825
  default:
758
- return 'p1';
826
+ return isPriority(priority) ? priority : undefined;
759
827
  }
760
828
  }
829
+ function invalidOrchestratePriorityMessage(value) {
830
+ return `${invalidPriorityMessage(value)} (or critical, high, medium, low)`;
831
+ }
761
832
  /**
762
833
  * Record a task outcome for ReasoningBank learning
763
834
  * ADR-051: Enables cross-session learning from task execution
@@ -4,11 +4,11 @@
4
4
  * Exposes the structured 13-step requirements validation pipeline
5
5
  * as an MCP tool that users can invoke directly.
6
6
  */
7
- import { readFileSync, existsSync } from 'fs';
8
7
  import { runPipeline, formatPipelineReport } from '../../validation/pipeline.js';
9
8
  import { createRequirementsPipeline, REQUIREMENTS_VALIDATION_STEPS } from '../../validation/steps/requirements.js';
10
9
  import { toErrorMessage } from '../../shared/error-utils.js';
11
10
  import { MAX_PAYLOAD_FILE_BYTES, requirePayloadPath } from '../../shared/io/payload-path-guard.js';
11
+ import { ConfinedReadError, readConfinedText } from '../../shared/io/confined-read.js';
12
12
  /**
13
13
  * Run the structured validation pipeline on a document.
14
14
  */
@@ -23,17 +23,17 @@ export async function handleValidationPipeline(params) {
23
23
  const confined = await requirePayloadPath('validation_pipeline', 'filePath', params.filePath, { allowMissing: true, maxBytes: MAX_PAYLOAD_FILE_BYTES });
24
24
  if (!confined.success)
25
25
  return { success: false, error: confined.error.message };
26
- const absPath = confined.value;
27
- if (!existsSync(absPath)) {
28
- return {
29
- success: false,
30
- error: `File not found: ${params.filePath}`,
31
- };
32
- }
26
+ // #1161: read from the validated descriptor, not the name checked above.
33
27
  try {
34
- content = readFileSync(absPath, 'utf-8');
28
+ content = await readConfinedText(confined.value, { maxBytes: MAX_PAYLOAD_FILE_BYTES });
35
29
  }
36
30
  catch (readErr) {
31
+ if (readErr instanceof ConfinedReadError && readErr.reason === 'not-found') {
32
+ return {
33
+ success: false,
34
+ error: `File not found: ${params.filePath}`,
35
+ };
36
+ }
37
37
  return {
38
38
  success: false,
39
39
  error: `Failed to read file: ${toErrorMessage(readErr)}`,
@@ -627,7 +627,7 @@ export class MCPProtocolServer {
627
627
  parameters: [
628
628
  { name: 'topology', type: 'string', description: 'Swarm topology type', enum: ['hierarchical', 'mesh', 'ring', 'adaptive'] },
629
629
  { name: 'maxAgents', type: 'number', description: 'Maximum number of agents', default: 15 },
630
- { name: 'enabledDomains', type: 'array', description: 'Domains to enable' },
630
+ { name: 'enabledDomains', type: 'array', description: 'Domains to enable', items: { type: 'string' } },
631
631
  { name: 'lazyLoading', type: 'boolean', description: 'Enable lazy loading', default: true },
632
632
  ],
633
633
  },
@@ -669,7 +669,7 @@ export class MCPProtocolServer {
669
669
  parameters: [
670
670
  { name: 'type', type: 'string', description: 'Task type', required: true },
671
671
  { name: 'priority', type: 'string', description: 'Task priority', enum: ['p0', 'p1', 'p2', 'p3'], default: 'p1' },
672
- { name: 'targetDomains', type: 'array', description: 'Target domains (e.g. ["coverage-analysis"]); unknown domains are rejected' },
672
+ { name: 'targetDomains', type: 'array', description: 'Target domains (e.g. ["coverage-analysis"]); unknown domains are rejected', items: { type: 'string' } },
673
673
  { name: 'payload', type: 'object', description: 'Task payload data' },
674
674
  ],
675
675
  },
@@ -684,6 +684,8 @@ export class MCPProtocolServer {
684
684
  isCacheable: false,
685
685
  parameters: [
686
686
  { name: 'status', type: 'string', description: 'Filter by status' },
687
+ { name: 'priority', type: 'string', description: 'Filter by priority', enum: ['p0', 'p1', 'p2', 'p3'] },
688
+ { name: 'domain', type: 'string', description: 'Filter by assigned domain' },
687
689
  { name: 'limit', type: 'number', description: 'Maximum results', default: 50 },
688
690
  ],
689
691
  },
@@ -722,6 +724,7 @@ export class MCPProtocolServer {
722
724
  { name: 'task', type: 'string', description: 'Task description', required: true },
723
725
  { name: 'strategy', type: 'string', description: 'Execution strategy', enum: ['parallel', 'sequential', 'adaptive'] },
724
726
  { name: 'filePaths', type: 'array', description: 'Project files the task works on. A security scan or quality assessment runs on these files and is refused without them.', items: { type: 'string' } },
727
+ { name: 'priority', type: 'string', description: 'Task priority (default: medium/p2)', enum: ['p0', 'p1', 'p2', 'p3', 'critical', 'high', 'medium', 'low'] },
725
728
  ],
726
729
  },
727
730
  handler: (params) => handleTaskOrchestrate(params),
@@ -882,7 +885,7 @@ export class MCPProtocolServer {
882
885
  description: `Execute test files in parallel with automatic retry on flaky failures. ${SAVE_RESULTS_HINT} Example: test_execute_parallel({ testFiles: ["tests/auth.test.ts"], parallel: true })`,
883
886
  category: 'domain',
884
887
  parameters: [
885
- { name: 'testFiles', type: 'array', description: 'Nonempty list of concrete test file paths (relative to the project working directory or absolute). Expand glob patterns before calling; glob patterns are rejected.' },
888
+ { name: 'testFiles', type: 'array', description: 'Nonempty list of concrete test file paths (relative to the project working directory or absolute). Expand glob patterns before calling; glob patterns are rejected.', items: { type: 'string' } },
886
889
  { name: 'parallel', type: 'boolean', description: 'Enable parallel execution', default: true },
887
890
  saveResultsParameter('test_execute_parallel'),
888
891
  ],
@@ -1110,7 +1113,7 @@ export class MCPProtocolServer {
1110
1113
  category: 'memory',
1111
1114
  parameters: [
1112
1115
  { name: 'sourceAgentId', type: 'string', description: 'Source agent ID', required: true },
1113
- { name: 'targetAgentIds', type: 'array', description: 'Target agent IDs', required: true },
1116
+ { name: 'targetAgentIds', type: 'array', description: 'Target agent IDs', required: true, items: { type: 'string' } },
1114
1117
  { name: 'knowledgeDomain', type: 'string', description: 'Knowledge domain', required: true },
1115
1118
  ],
1116
1119
  },
@@ -1127,7 +1130,7 @@ export class MCPProtocolServer {
1127
1130
  parameters: [
1128
1131
  { name: 'task', type: 'string', description: 'Task description to analyze', required: true },
1129
1132
  { name: 'codeContext', type: 'string', description: 'Optional code context for complexity analysis' },
1130
- { name: 'filePaths', type: 'array', description: 'Optional file paths involved' },
1133
+ { name: 'filePaths', type: 'array', description: 'Optional file paths involved', items: { type: 'string' } },
1131
1134
  { name: 'manualTier', type: 'number', description: 'Manual tier override (0-4)' },
1132
1135
  { name: 'isCritical', type: 'boolean', description: 'Mark as critical task (allows budget overrides)' },
1133
1136
  { name: 'agentType', type: 'string', description: 'Agent type making the request' },
@@ -1194,7 +1197,7 @@ export class MCPProtocolServer {
1194
1197
  description: 'Trigger infrastructure recovery for detected failures and optionally re-run affected tests. Example: infra_healing_recover({ services: ["postgres"], rerunTests: true })',
1195
1198
  category: 'infra-healing',
1196
1199
  parameters: [
1197
- { name: 'services', type: 'array', description: 'Specific services to recover (empty = all failing)' },
1200
+ { name: 'services', type: 'array', description: 'Specific services to recover (empty = all failing)', items: { type: 'string' } },
1198
1201
  { name: 'rerunTests', type: 'boolean', description: 'Re-run affected tests after recovery', default: true },
1199
1202
  ],
1200
1203
  },
@@ -1283,7 +1286,7 @@ export class MCPProtocolServer {
1283
1286
  category: 'cross-phase',
1284
1287
  isConcurrencySafe: true,
1285
1288
  parameters: [
1286
- { name: 'signals', type: 'array', description: 'Signals to format', required: true },
1289
+ { name: 'signals', type: 'array', description: 'Signals to format', required: true, items: { type: 'object' } },
1287
1290
  ],
1288
1291
  },
1289
1292
  handler: (params) => handleFormatSignals(params),
@@ -1309,7 +1312,7 @@ export class MCPProtocolServer {
1309
1312
  { name: 'filePath', type: 'string', description: 'Path to the document to validate' },
1310
1313
  { name: 'content', type: 'string', description: 'Inline content to validate (alternative to filePath)' },
1311
1314
  { name: 'pipeline', type: 'string', description: 'Pipeline type (default: requirements)', default: 'requirements' },
1312
- { name: 'steps', type: 'array', description: 'Specific step IDs to run (default: all 13)' },
1315
+ { name: 'steps', type: 'array', description: 'Specific step IDs to run (default: all 13)', items: { type: 'string' } },
1313
1316
  { name: 'continueOnFailure', type: 'boolean', description: 'Continue past blocking failures', default: false },
1314
1317
  { name: 'format', type: 'string', description: 'Output format: markdown or json', default: 'json' },
1315
1318
  ],
@@ -46,6 +46,9 @@ function schemaToParameters(tool) {
46
46
  required: requiredSet.has(name) || undefined,
47
47
  default: prop.default,
48
48
  enum: prop.enum,
49
+ // #1185: keep the element schema; clients such as VS Code Copilot
50
+ // reject a tool whose array parameter has no items.
51
+ items: prop.items,
49
52
  });
50
53
  }
51
54
  return params;
@@ -11,8 +11,8 @@
11
11
  * - Pattern evolution and consolidation
12
12
  * - Synchronous learning (no fire-and-forget)
13
13
  */
14
- import { type Trajectory, type TrajectoryStep as TrackerTrajectoryStep, type TrajectoryOptions, type ExperienceGuidance, type EnhancedReasoningBankAdapterStats } from '../../integrations/agentic-flow/reasoning-bank/index.js';
15
- import { type RealQERoutingRequest, type RealQERoutingResult, type RealQEReasoningBankStats, type RealQEPatternSearchResult } from '../../learning/real-qe-reasoning-bank.js';
14
+ import { type Trajectory, type TrajectoryStep as TrackerTrajectoryStep, type TrajectoryOptions, type ExperienceGuidance, type ExperienceGuidanceStatus, type EnhancedReasoningBankAdapterStats } from '../../integrations/agentic-flow/reasoning-bank/index.js';
15
+ import { type RealQERoutingRequest, type RealQERoutingResult, type RealQEReasoningBankStats, type PatternSearchStatus, type RealQEPatternSearchResult } from '../../learning/real-qe-reasoning-bank.js';
16
16
  import type { QEPattern, QEDomain } from '../../learning/qe-patterns.js';
17
17
  /**
18
18
  * Task outcome record for learning
@@ -208,6 +208,13 @@ export declare class ReasoningBankService {
208
208
  limit?: number;
209
209
  domain?: QEDomain;
210
210
  }): Promise<RealQEPatternSearchResult[]>;
211
+ /** #1022: whether pattern search uses vectors or text matching only. */
212
+ getPatternSearchStatus(): PatternSearchStatus;
213
+ /**
214
+ * #1204: whether similar-experience guidance can use vectors; null when
215
+ * experience replay is disabled or the service is disposed.
216
+ */
217
+ getExperienceGuidanceStatus(): ExperienceGuidanceStatus | null;
211
218
  /**
212
219
  * Get service statistics
213
220
  */
@@ -515,6 +515,19 @@ export class ReasoningBankService {
515
515
  return [];
516
516
  }
517
517
  }
518
+ /** #1022: whether pattern search uses vectors or text matching only. */
519
+ getPatternSearchStatus() {
520
+ return this.enhancedAdapter.getPatternSearchStatus();
521
+ }
522
+ /**
523
+ * #1204: whether similar-experience guidance can use vectors; null when
524
+ * experience replay is disabled or the service is disposed.
525
+ */
526
+ getExperienceGuidanceStatus() {
527
+ if (!this.config.enableExperienceReplay || this.disposed)
528
+ return null;
529
+ return this.enhancedAdapter.getExperienceGuidanceStatus();
530
+ }
518
531
  /**
519
532
  * Get service statistics
520
533
  */
@@ -58,7 +58,10 @@ function conservativeDisposition() {
58
58
  export const BUILT_IN_TOOL_SAFETY_INVENTORY = Object.freeze(Object.fromEntries(BUILT_IN_TOOL_NAMES.map((name) => [name, conservativeDisposition()])));
59
59
  /** Resolve explicit metadata over inventory metadata over conservative defaults. */
60
60
  export function resolveToolAnnotations(name, annotations) {
61
- const reviewedDisposition = BUILT_IN_TOOL_SAFETY_INVENTORY[name];
61
+ // #1157: own entries only; a tool named `constructor` is not in the inventory.
62
+ const reviewedDisposition = Object.hasOwn(BUILT_IN_TOOL_SAFETY_INVENTORY, name)
63
+ ? BUILT_IN_TOOL_SAFETY_INVENTORY[name]
64
+ : undefined;
62
65
  return Object.freeze({
63
66
  ...(reviewedDisposition?.annotations ?? CONSERVATIVE_TOOL_ANNOTATIONS),
64
67
  // Dynamic and plugin-supplied names cannot self-assert optimistic hints.
@@ -19,6 +19,7 @@ const COHERENCE_CHECK_SCHEMA = {
19
19
  nodes: {
20
20
  type: 'array',
21
21
  description: 'Array of nodes to check for coherence. Each node must have an id and embedding vector.',
22
+ items: { type: 'object', description: 'Node with id, embedding vector, optional weight and metadata' },
22
23
  },
23
24
  energyThreshold: {
24
25
  type: 'number',
@@ -54,11 +54,13 @@ const COHERENCE_CONSENSUS_SCHEMA = {
54
54
  agentId: { type: 'string', description: 'Agent identifier', minLength: 1 },
55
55
  agentType: { type: 'string', description: 'Agent type (default: worker)' },
56
56
  // `verdict` may be a string, number, or boolean, which this schema
57
- // type cannot express; it is required below and checked in execute().
57
+ // type cannot express. It is required, but checked in execute():
58
+ // listing it in `required` without a property is invalid in strict
59
+ // JSON Schema (#1185).
58
60
  confidence: { type: 'number', description: 'Confidence in the verdict', minimum: 0, maximum: 1 },
59
61
  reasoning: { type: 'string', description: 'Optional reasoning text' },
60
62
  },
61
- required: ['agentId', 'verdict', 'confidence'],
63
+ required: ['agentId', 'confidence'],
62
64
  },
63
65
  },
64
66
  confidenceThreshold: {
@@ -318,6 +318,7 @@ export class LearningOptimizeTool extends MCPToolBase {
318
318
  // Not enough data - recommend default strategy
319
319
  const contextForRecommendation = {
320
320
  tags: [targetDomain, objective.metric],
321
+ objective: { metric: objective.metric, direction: objective.direction },
321
322
  };
322
323
  const recommendResult = await metricsOptimizer.recommendStrategy(contextForRecommendation);
323
324
  if (!recommendResult.success)
@@ -362,7 +363,6 @@ export class LearningOptimizeTool extends MCPToolBase {
362
363
  let sourcePatterns = 0;
363
364
  let transferredPatterns = 0;
364
365
  let adaptedPatterns = 0;
365
- let totalRelevance = 0;
366
366
  if (queryResult.success) {
367
367
  sourcePatterns = queryResult.value.length;
368
368
  // Transfer each piece of knowledge to target domain
@@ -370,7 +370,6 @@ export class LearningOptimizeTool extends MCPToolBase {
370
370
  const transferResult = await transferSpecialist.transferKnowledge(knowledge, targetDomain);
371
371
  if (transferResult.success) {
372
372
  transferredPatterns++;
373
- totalRelevance += transferResult.value.relevanceScore;
374
373
  // Count as adapted if relevance changed significantly
375
374
  if (Math.abs(transferResult.value.relevanceScore - knowledge.relevanceScore) > 0.1) {
376
375
  adaptedPatterns++;
@@ -39,10 +39,12 @@ export class MinCutHealthTool extends MCPToolBase {
39
39
  agents: {
40
40
  type: 'array',
41
41
  description: 'Agent vertices to add to the graph before analysis',
42
+ items: { type: 'object', description: 'Agent vertex { id, domain, weight? }' },
42
43
  },
43
44
  edges: {
44
45
  type: 'array',
45
46
  description: 'Edges to add between agents',
47
+ items: { type: 'object', description: 'Edge { source, target, weight? }' },
46
48
  },
47
49
  includeWeakVertices: {
48
50
  type: 'boolean',
@@ -210,6 +212,7 @@ export class MinCutStrengthenTool extends MCPToolBase {
210
212
  targetVertices: {
211
213
  type: 'array',
212
214
  description: 'Specific vertices to strengthen',
215
+ items: { type: 'string', description: 'Vertex ID' },
213
216
  },
214
217
  apply: {
215
218
  type: 'boolean',
@@ -13,6 +13,8 @@ import { MCPToolBase } from '../base.js';
13
13
  import { toErrorMessage } from '../../../shared/error-utils.js';
14
14
  import { MAX_PAYLOAD_FILE_BYTES, requirePayloadPath } from '../../../shared/io/payload-path-guard.js';
15
15
  import { findProjectRoot } from '../../../kernel/project-root.js';
16
+ import { readConfinedText } from '../../../shared/io/confined-read.js';
17
+ import { parseAnchorSet } from '../../../validation/anchor-set.js';
16
18
  import { getLLMRouter } from '../base.js';
17
19
  import { runQualityGate, } from '../../../validation/quality-gate-runner.js';
18
20
  import { createRouterFrontierJudge, createUnavailableJudge, } from '../../../validation/frontier-judge.js';
@@ -37,11 +39,15 @@ export class QualityGateTool extends MCPToolBase {
37
39
  // #1126: a caller-named anchor must be a regular file inside the project
38
40
  // (relative paths resolve against the project root, as the runner does).
39
41
  let anchorPath;
42
+ let anchor;
40
43
  if (params.anchorPath !== undefined) {
41
44
  const confined = await requirePayloadPath('qe/quality/gate', 'anchorPath', params.anchorPath, { basePath: findProjectRoot(), maxBytes: MAX_PAYLOAD_FILE_BYTES });
42
45
  if (!confined.success)
43
46
  return { success: false, error: confined.error.message };
44
47
  anchorPath = confined.value;
48
+ // #1161: the runner gets the anchor read from the validated descriptor,
49
+ // so a file swapped after the check is never read by name.
50
+ anchor = parseAnchorSet(await readConfinedText(anchorPath, { maxBytes: MAX_PAYLOAD_FILE_BYTES }), params.anchorPath);
45
51
  }
46
52
  const router = await getLLMRouter(context);
47
53
  const judge = router
@@ -59,6 +65,7 @@ export class QualityGateTool extends MCPToolBase {
59
65
  checklistId: params.checklistId,
60
66
  judge,
61
67
  anchorPath,
68
+ anchor,
62
69
  verificationManifest: params.verificationManifest,
63
70
  });
64
71
  return { success: true, data: result };
@@ -37,6 +37,7 @@ const QX_ANALYZE_SCHEMA = {
37
37
  heuristics: {
38
38
  type: 'array',
39
39
  description: 'Specific heuristics to apply (default: all)',
40
+ items: { type: 'string', description: 'Heuristic name' },
40
41
  },
41
42
  minOracleSeverity: {
42
43
  type: 'string',
@@ -13,9 +13,9 @@
13
13
  */
14
14
  import { MCPToolBase } from '../base.js';
15
15
  import { createQualityCriteriaService, HTSM_CATEGORIES, NEVER_OMIT_CATEGORIES, } from '../../../domains/requirements-validation/index.js';
16
- import { existsSync, readFileSync } from 'fs';
17
16
  import { toErrorMessage } from '../../../shared/error-utils.js';
18
17
  import { MAX_PAYLOAD_FILE_BYTES, requirePayloadPath } from '../../../shared/io/payload-path-guard.js';
18
+ import { ConfinedReadError, readConfinedText } from '../../../shared/io/confined-read.js';
19
19
  // ============================================================================
20
20
  // Tool Implementation
21
21
  // ============================================================================
@@ -128,8 +128,15 @@ export class QualityCriteriaTool extends MCPToolBase {
128
128
  const confined = await requirePayloadPath('quality-criteria', 'epicPath', epicPath, { allowMissing: true, maxBytes: MAX_PAYLOAD_FILE_BYTES });
129
129
  if (!confined.success)
130
130
  return { success: false, error: confined.error.message };
131
- if (existsSync(confined.value))
132
- content = readFileSync(confined.value, 'utf-8');
131
+ // #1161: read from the validated descriptor; a missing file stays empty.
132
+ try {
133
+ content = await readConfinedText(confined.value, { maxBytes: MAX_PAYLOAD_FILE_BYTES });
134
+ }
135
+ catch (readErr) {
136
+ if (!(readErr instanceof ConfinedReadError) || readErr.reason !== 'not-found') {
137
+ return { success: false, error: toErrorMessage(readErr) };
138
+ }
139
+ }
133
140
  }
134
141
  if (!content && !epicPath) {
135
142
  return {
@@ -10,6 +10,7 @@
10
10
  import { MCPToolBase, getMemoryBackend } from '../base.js';
11
11
  import { toErrorMessage } from '../../../shared/error-utils.js';
12
12
  import { safeJsonParse } from '../../../shared/safe-json.js';
13
+ import { getOwn } from '../../../shared/utils/safe-record.js';
13
14
  import { ALL_SECURITY_PATTERNS, SECRET_PATTERNS, } from '../../../domains/security-compliance/services/scanners/security-patterns.js';
14
15
  import { writeQualityEvidence } from '../../../domains/quality-assessment/quality-evidence.js';
15
16
  // ============================================================================
@@ -460,7 +461,8 @@ const KNOWN_VULNERABLE_NPM = {
460
461
  function checkKnownVulnerableDeps(deps, manifest) {
461
462
  const vulns = [];
462
463
  for (const [name, version] of Object.entries(deps)) {
463
- const known = KNOWN_VULNERABLE_NPM[name];
464
+ // #1157: a dependency named `constructor` is a package, not a table entry.
465
+ const known = getOwn(KNOWN_VULNERABLE_NPM, name);
464
466
  if (known) {
465
467
  const cleanVersion = version.replace(/^[\^~>=<]+/, '');
466
468
  if (compareVersions(cleanVersion, known.maxSafe) < 0) {
@@ -512,7 +514,7 @@ function extractRequirementsTxtDeps(content) {
512
514
  function checkKnownVulnerablePythonDeps(deps, manifest) {
513
515
  const vulns = [];
514
516
  for (const dep of deps) {
515
- const known = KNOWN_VULNERABLE_PYTHON[dep];
517
+ const known = getOwn(KNOWN_VULNERABLE_PYTHON, dep);
516
518
  if (known) {
517
519
  vulns.push({
518
520
  id: `DEP-py-${dep}-${known.cve}`,
@@ -130,7 +130,7 @@ const E2E_EXECUTE_SCHEMA = {
130
130
  name: { type: 'string', description: 'Test case name' },
131
131
  description: { type: 'string', description: 'Test case description' },
132
132
  baseUrl: { type: 'string', description: 'Base URL for the test' },
133
- steps: { type: 'array', description: 'Test steps to execute' },
133
+ steps: { type: 'array', description: 'Test steps to execute', items: { type: 'object', description: 'Test step' } },
134
134
  viewport: {
135
135
  type: 'object',
136
136
  description: 'Browser viewport configuration',
@@ -149,7 +149,7 @@ const E2E_EXECUTE_SCHEMA = {
149
149
  id: { type: 'string', description: 'Test suite ID' },
150
150
  name: { type: 'string', description: 'Test suite name' },
151
151
  description: { type: 'string', description: 'Test suite description' },
152
- testCases: { type: 'array', description: 'Test cases in the suite' },
152
+ testCases: { type: 'array', description: 'Test cases in the suite', items: { type: 'object', description: 'Test case' } },
153
153
  parallel: { type: 'boolean', description: 'Run tests in parallel' },
154
154
  maxWorkers: { type: 'number', description: 'Maximum parallel workers' },
155
155
  },