agentic-qe 3.8.14 → 3.9.1

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 (451) hide show
  1. package/.claude/skills/skills-manifest.json +1 -1
  2. package/CHANGELOG.md +60 -0
  3. package/dist/adapters/a2ui/integration/agui-sync.js +2 -1
  4. package/dist/audit/witness-chain.d.ts +1 -1
  5. package/dist/boot/fast-paths.d.ts +24 -0
  6. package/dist/boot/fast-paths.js +43 -0
  7. package/dist/boot/parallel-prefetch.d.ts +26 -0
  8. package/dist/boot/parallel-prefetch.js +36 -0
  9. package/dist/cli/bundle.js +12 -9431
  10. package/dist/cli/chunks/adapter-NTM4ZH3P.js +2 -0
  11. package/dist/cli/chunks/agent-booster-wasm-UH2J6BNA.js +2 -0
  12. package/dist/cli/chunks/agent-handler-ZCBWQE3X.js +33 -0
  13. package/dist/cli/chunks/agent-memory-branch-2BAVI7UW.js +2 -0
  14. package/dist/cli/chunks/aqe-learning-engine-RVX6MPYK.js +2 -0
  15. package/dist/cli/chunks/audit-G5UIJBSQ.js +3 -0
  16. package/dist/cli/chunks/base-7HKNQ6UP.js +2 -0
  17. package/dist/cli/chunks/better-sqlite3-YHIAPPVT.js +2 -0
  18. package/dist/cli/chunks/brain-handler-5EE3J5PR.js +68 -0
  19. package/dist/cli/chunks/branch-enumerator-OV54PID5.js +7 -0
  20. package/dist/cli/chunks/browser-7RZGKOEO.js +4 -0
  21. package/dist/cli/chunks/browser-workflow-UOFSQK7X.js +2 -0
  22. package/dist/cli/chunks/chunk-24E47G3D.js +604 -0
  23. package/dist/cli/chunks/chunk-35H73OPP.js +2 -0
  24. package/dist/cli/chunks/chunk-36X2O3BL.js +3 -0
  25. package/dist/cli/chunks/chunk-3JESHZQM.js +2 -0
  26. package/dist/cli/chunks/chunk-3VAKR43Z.js +2 -0
  27. package/dist/cli/chunks/chunk-3WQNW6CH.js +2 -0
  28. package/dist/cli/chunks/chunk-43M6Y6VF.js +15 -0
  29. package/dist/cli/chunks/chunk-4BHOAQJH.js +2 -0
  30. package/dist/cli/chunks/chunk-4LWXZCSD.js +146 -0
  31. package/dist/cli/chunks/chunk-4TNXEANY.js +2 -0
  32. package/dist/cli/chunks/chunk-4XBY5JDT.js +4 -0
  33. package/dist/cli/chunks/chunk-4XREPCBZ.js +2 -0
  34. package/dist/cli/chunks/chunk-5GPTM2RV.js +2 -0
  35. package/dist/cli/chunks/chunk-5KBQQP3X.js +7 -0
  36. package/dist/cli/chunks/chunk-5LDBKZ6P.js +2 -0
  37. package/dist/cli/chunks/chunk-6BSJNG2S.js +2 -0
  38. package/dist/cli/chunks/chunk-6YC24TPL.js +27 -0
  39. package/dist/cli/chunks/chunk-7ATLJCSG.js +2 -0
  40. package/dist/cli/chunks/chunk-7JQTHPCD.js +2 -0
  41. package/dist/cli/chunks/chunk-7YUOUVN7.js +2 -0
  42. package/dist/cli/chunks/chunk-7ZNINH6J.js +59 -0
  43. package/dist/cli/chunks/chunk-A57BEPL7.js +3 -0
  44. package/dist/cli/chunks/chunk-AFPMCMVX.js +45 -0
  45. package/dist/cli/chunks/chunk-AREIP4FX.js +3 -0
  46. package/dist/cli/chunks/chunk-B2I7BJLL.js +3 -0
  47. package/dist/cli/chunks/chunk-BEHP3DEF.js +66 -0
  48. package/dist/cli/chunks/chunk-C24ZDUCM.js +30 -0
  49. package/dist/cli/chunks/chunk-D4PSFWND.js +2 -0
  50. package/dist/cli/chunks/chunk-D55PSO5D.js +81 -0
  51. package/dist/cli/chunks/chunk-DC3HPOOJ.js +2 -0
  52. package/dist/cli/chunks/chunk-DMGLX76J.js +180 -0
  53. package/dist/cli/chunks/chunk-E33KQBMW.js +2 -0
  54. package/dist/cli/chunks/chunk-EQFZQPFN.js +2 -0
  55. package/dist/cli/chunks/chunk-FPRL6UDF.js +2 -0
  56. package/dist/cli/chunks/chunk-FRNB4CH2.js +2 -0
  57. package/dist/cli/chunks/chunk-FWDKVTK4.js +2 -0
  58. package/dist/cli/chunks/chunk-GFNUESMU.js +2 -0
  59. package/dist/cli/chunks/chunk-GJW6V35N.js +2 -0
  60. package/dist/cli/chunks/chunk-GLIFZWV2.js +2 -0
  61. package/dist/cli/chunks/chunk-GNUUBTSX.js +14 -0
  62. package/dist/cli/chunks/chunk-HAUXLXKZ.js +2 -0
  63. package/dist/cli/chunks/chunk-HTXSUTWL.js +9 -0
  64. package/dist/cli/chunks/chunk-I5WZ2NM2.js +95 -0
  65. package/dist/cli/chunks/chunk-I7TA453K.js +2 -0
  66. package/dist/cli/chunks/chunk-IF6GW6IY.js +27 -0
  67. package/dist/cli/chunks/chunk-IHWSNYL2.js +5 -0
  68. package/dist/cli/chunks/chunk-IJKYJGJL.js +2 -0
  69. package/dist/cli/chunks/chunk-IQPXANCE.js +14 -0
  70. package/dist/cli/chunks/chunk-JCEY7RLP.js +2 -0
  71. package/dist/cli/chunks/chunk-JSOBRKMA.js +2 -0
  72. package/dist/cli/chunks/chunk-KIGRLIU4.js +2 -0
  73. package/dist/cli/chunks/chunk-L4H54Z27.js +21 -0
  74. package/dist/cli/chunks/chunk-LCOEBFAB.js +2 -0
  75. package/dist/cli/chunks/chunk-MZ54VM6A.js +2 -0
  76. package/dist/cli/chunks/chunk-NB47YT6A.js +167 -0
  77. package/dist/cli/chunks/chunk-NG3BKE7V.js +2 -0
  78. package/dist/cli/chunks/chunk-NG4TE3OW.js +2 -0
  79. package/dist/cli/chunks/chunk-O636JKJR.js +18 -0
  80. package/dist/cli/chunks/chunk-O6QQ4HLS.js +2 -0
  81. package/dist/cli/chunks/chunk-OFNIQCGX.js +2 -0
  82. package/dist/cli/chunks/chunk-OTSJU5LH.js +2 -0
  83. package/dist/cli/chunks/chunk-POLFT2PQ.js +15 -0
  84. package/dist/cli/chunks/chunk-QAYTL6KC.js +2 -0
  85. package/dist/cli/chunks/chunk-QMFP5OKH.js +2 -0
  86. package/dist/cli/chunks/chunk-RAJO7VML.js +2 -0
  87. package/dist/cli/chunks/chunk-RKIGOARX.js +2 -0
  88. package/dist/cli/chunks/chunk-RU6Q5HOC.js +3 -0
  89. package/dist/cli/chunks/chunk-RV6SGDET.js +2 -0
  90. package/dist/cli/chunks/chunk-RWXI7XAR.js +2 -0
  91. package/dist/cli/chunks/chunk-RXVYOXDB.js +2 -0
  92. package/dist/cli/chunks/chunk-SGRN6JFB.js +2 -0
  93. package/dist/cli/chunks/chunk-SVNX4UWR.js +3029 -0
  94. package/dist/cli/chunks/chunk-TL7ABIMP.js +2 -0
  95. package/dist/cli/chunks/chunk-TOLYWONQ.js +2 -0
  96. package/dist/cli/chunks/chunk-TPXYS3WG.js +3 -0
  97. package/dist/cli/chunks/chunk-U5JQGRHZ.js +2 -0
  98. package/dist/cli/chunks/chunk-UB7RGVKO.js +2 -0
  99. package/dist/cli/chunks/chunk-UBKK7KCR.js +70 -0
  100. package/dist/cli/chunks/chunk-UMGWGX7C.js +2 -0
  101. package/dist/cli/chunks/chunk-UN4PA4M2.js +2 -0
  102. package/dist/cli/chunks/chunk-US7INRP2.js +314 -0
  103. package/dist/cli/chunks/chunk-UWDBFPHQ.js +750 -0
  104. package/dist/cli/chunks/chunk-UZZCWWIG.js +2 -0
  105. package/dist/cli/chunks/chunk-V4HM4QAO.js +24 -0
  106. package/dist/cli/chunks/chunk-V4U3CTS2.js +180 -0
  107. package/dist/cli/chunks/chunk-VCCMCFDU.js +2 -0
  108. package/dist/cli/chunks/chunk-VEWIT6VN.js +4 -0
  109. package/dist/cli/chunks/chunk-VNYGVG4Y.js +2 -0
  110. package/dist/cli/chunks/chunk-VO3OVD5D.js +4 -0
  111. package/dist/cli/chunks/chunk-VY74OMGQ.js +6 -0
  112. package/dist/cli/chunks/chunk-WDJBGXC2.js +2 -0
  113. package/dist/cli/chunks/chunk-WDV6TN7E.js +65 -0
  114. package/dist/cli/chunks/chunk-WLXEDOG4.js +2 -0
  115. package/dist/cli/chunks/chunk-WXXAAXNS.js +12 -0
  116. package/dist/cli/chunks/chunk-X4MZYBOU.js +256 -0
  117. package/dist/cli/chunks/chunk-XE2YAYU5.js +12 -0
  118. package/dist/cli/chunks/chunk-XP6XKBNW.js +2 -0
  119. package/dist/cli/chunks/chunk-XPB6ZVQY.js +2 -0
  120. package/dist/cli/chunks/chunk-XRVUSKQV.js +1 -0
  121. package/dist/cli/chunks/chunk-XSITQBYB.js +20 -0
  122. package/dist/cli/chunks/chunk-XTLA4F5Z.js +91 -0
  123. package/dist/cli/chunks/chunk-XU6L2VJY.js +2 -0
  124. package/dist/cli/chunks/chunk-XUFHYPZK.js +2 -0
  125. package/dist/cli/chunks/chunk-Y2ZEDXTV.js +16 -0
  126. package/dist/cli/chunks/chunk-YQWB4QUP.js +316 -0
  127. package/dist/cli/chunks/chunk-YUQIXT3G.js +79 -0
  128. package/dist/cli/chunks/chunk-YYYB2JN5.js +2 -0
  129. package/dist/cli/chunks/chunk-ZEUVPLGX.js +2 -0
  130. package/dist/cli/chunks/chunk-ZSRQHJEW.js +3 -0
  131. package/dist/cli/chunks/ci-N4NTYAAI.js +81 -0
  132. package/dist/cli/chunks/ci-output-XYR2PSYH.js +2 -0
  133. package/dist/cli/chunks/claude-flow-setup-FX7PRBJV.js +2 -0
  134. package/dist/cli/chunks/client-CRRENRK4.js +2 -0
  135. package/dist/cli/chunks/cline-installer-GTHQOK7U.js +4 -0
  136. package/dist/cli/chunks/code-4G6ZHVNI.js +38 -0
  137. package/dist/cli/chunks/code-index-extractor-MKJTP5AK.js +3 -0
  138. package/dist/cli/chunks/codex-installer-UGS773DT.js +8 -0
  139. package/dist/cli/chunks/completions-B3BXNXAU.js +1364 -0
  140. package/dist/cli/chunks/complexity-analyzer-PMN77CUP.js +2 -0
  141. package/dist/cli/chunks/continuedev-installer-3DYKSIP3.js +14 -0
  142. package/dist/cli/chunks/copilot-installer-IUC5HDHD.js +3 -0
  143. package/dist/cli/chunks/cost-tracker-GSGQ7O5T.js +2 -0
  144. package/dist/cli/chunks/coverage-PO72QC3P.js +27 -0
  145. package/dist/cli/chunks/cross-domain-router-FSCGJG3B.js +2 -0
  146. package/dist/cli/chunks/cursor-installer-FK53S3ZL.js +3 -0
  147. package/dist/cli/chunks/daemon-4UIQTQ73.js +19 -0
  148. package/dist/cli/chunks/dag-attention-scheduler-ZGIMLECE.js +2 -0
  149. package/dist/cli/chunks/detect-XXHLTLL7.js +2 -0
  150. package/dist/cli/chunks/domain-handler-PPGFP7P4.js +25 -0
  151. package/dist/cli/chunks/domain-transfer-Q5UAE65W.js +2 -0
  152. package/dist/cli/chunks/dream-PONKQULG.js +2 -0
  153. package/dist/cli/chunks/esm-node-XLWDJRBX.js +2 -0
  154. package/dist/cli/chunks/eval-JVJKHSTQ.js +15 -0
  155. package/dist/cli/chunks/fast-paths-3KX4ZV66.js +2 -0
  156. package/dist/cli/chunks/feature-flags-2NOVE7DL.js +2 -0
  157. package/dist/cli/chunks/feature-flags-GKHHG2I2.js +2 -0
  158. package/dist/cli/chunks/file-discovery-XFSGQNM3.js +2 -0
  159. package/dist/cli/chunks/fleet-FOIDAXLR.js +43 -0
  160. package/dist/cli/chunks/gnn-wrapper-HPCQREKP.js +2 -0
  161. package/dist/cli/chunks/heartbeat-handler-HTR3EFFV.js +48 -0
  162. package/dist/cli/chunks/heartbeat-scheduler-NZQWN7CH.js +2 -0
  163. package/dist/cli/chunks/hnsw-adapter-BNA5WUAB.js +2 -0
  164. package/dist/cli/chunks/hnsw-index-RQIIAE7S.js +2 -0
  165. package/dist/cli/chunks/hnsw-legacy-bridge-H6OA3AA3.js +2 -0
  166. package/dist/cli/chunks/hnswlib-node-FF27BDMD.js +2 -0
  167. package/dist/cli/chunks/hooks-63NZQ7NH.js +101 -0
  168. package/dist/cli/chunks/hypergraph-engine-XMSLA4XH.js +2 -0
  169. package/dist/cli/chunks/hypergraph-handler-ID6J6GS2.js +35 -0
  170. package/dist/cli/chunks/impact-analyzer-FS2UNVP4.js +2 -0
  171. package/dist/cli/chunks/init-handler-CIKZGGAY.js +68 -0
  172. package/dist/cli/chunks/init-wizard-TUU5PPY6.js +2 -0
  173. package/dist/cli/chunks/kernel-XFG42WAG.js +2 -0
  174. package/dist/cli/chunks/kilocode-installer-N7NLISYY.js +4 -0
  175. package/dist/cli/chunks/kiro-installer-U6XIPAT3.js +74 -0
  176. package/dist/cli/chunks/knowledge-graph-XV7FPU2T.js +2 -0
  177. package/dist/cli/chunks/learning-NKOF7KDJ.js +107 -0
  178. package/dist/cli/chunks/llm-router-34WHT3PH.js +30 -0
  179. package/dist/cli/chunks/load-ZW4Z3YLT.js +2 -0
  180. package/dist/cli/chunks/load-test-F4L7RTXJ.js +2 -0
  181. package/dist/cli/chunks/mcp-6R7SVGKO.js +2 -0
  182. package/dist/cli/chunks/memory-OUYCBU4M.js +32 -0
  183. package/dist/cli/chunks/memory-backend-DTJD2DWF.js +2 -0
  184. package/dist/cli/chunks/memory-handlers-WNXKZRNM.js +2 -0
  185. package/dist/cli/chunks/opencode-installer-FR75GHFU.js +3 -0
  186. package/dist/cli/chunks/orchestrator-AK7ZMVNH.js +371 -0
  187. package/dist/cli/chunks/pipeline-CFOPG7EM.js +19 -0
  188. package/dist/cli/chunks/platform-NY3ULBR7.js +2 -0
  189. package/dist/cli/chunks/plugin-LRANQYUR.js +27 -0
  190. package/dist/cli/chunks/prime-radiant-advanced-wasm-6KEIU55P.js +2 -0
  191. package/dist/cli/chunks/protocol-executor-6W4PS2D4.js +2 -0
  192. package/dist/cli/chunks/protocol-handler-ESSZGJ7R.js +20 -0
  193. package/dist/cli/chunks/prove-EF2PPY65.js +3 -0
  194. package/dist/cli/chunks/qe-reasoning-bank-7G3TZLEA.js +2 -0
  195. package/dist/cli/chunks/quality-AYBXB635.js +7 -0
  196. package/dist/cli/chunks/queen-coordinator-NFPKGMQN.js +2 -0
  197. package/dist/cli/chunks/real-embeddings-QPBXE7MA.js +2 -0
  198. package/dist/cli/chunks/roocode-installer-UF6MMBH6.js +4 -0
  199. package/dist/cli/chunks/router-F4B7Q66G.js +2 -0
  200. package/dist/cli/chunks/routing-feedback-5CIDDW7P.js +2 -0
  201. package/dist/cli/chunks/routing-handler-5TVKFU7V.js +20 -0
  202. package/dist/cli/chunks/ruvector-commands-E33VXFIA.js +8 -0
  203. package/dist/cli/chunks/rvf-dual-writer-O3AZKD24.js +2 -0
  204. package/dist/cli/chunks/rvf-migration-adapter-IKEUZ2HX.js +2 -0
  205. package/dist/cli/chunks/rvf-migration-coordinator-M4H7W4RN.js +2 -0
  206. package/dist/cli/chunks/rvf-native-adapter-UX3WAPIP.js +2 -0
  207. package/dist/cli/chunks/safe-db-QBBNXEVK.js +2 -0
  208. package/dist/cli/chunks/schedule-GFT4NN6Z.js +2 -0
  209. package/dist/cli/chunks/scheduler-CQ56T7DB.js +2 -0
  210. package/dist/cli/chunks/security-ZLWT7IU3.js +14 -0
  211. package/dist/cli/chunks/shared-rvf-adapter-EXACQ2PT.js +2 -0
  212. package/dist/cli/chunks/shared-rvf-dual-writer-G43LQDIV.js +2 -0
  213. package/dist/cli/chunks/sqlite-persistence-JHSUZPAW.js +2 -0
  214. package/dist/cli/chunks/status-handler-7P23CXUI.js +45 -0
  215. package/dist/cli/chunks/structural-health-SCNBNL7K.js +2 -0
  216. package/dist/cli/chunks/sync-BYZBBH65.js +23 -0
  217. package/dist/cli/chunks/task-handler-DWJQXZ2K.js +49 -0
  218. package/dist/cli/chunks/task-handlers-35JIXVRW.js +2 -0
  219. package/dist/cli/chunks/test-2JSS4XW7.js +33 -0
  220. package/dist/cli/chunks/test-scheduling-TWJ5I7N3.js +15 -0
  221. package/dist/cli/chunks/token-bootstrap-LLLNJT5V.js +2 -0
  222. package/dist/cli/chunks/token-usage-EQ4HM4EZ.js +25 -0
  223. package/dist/cli/chunks/transformers-PBIR5U5S.js +2 -0
  224. package/dist/cli/chunks/tree-sitter-wasm-parser-X3L2GXUX.js +2 -0
  225. package/dist/cli/chunks/types-OD43K2NP.js +2 -0
  226. package/dist/cli/chunks/unified-memory-YPHONR2T.js +2 -0
  227. package/dist/cli/chunks/unified-memory-hnsw-HJS4OXWM.js +2 -0
  228. package/dist/cli/chunks/unified-persistence-EFZRO6AW.js +2 -0
  229. package/dist/cli/chunks/validate-POMLT2KU.js +21 -0
  230. package/dist/cli/chunks/validate-swarm-UOC4JGZT.js +14 -0
  231. package/dist/cli/chunks/vibium-5JF6LAXI.js +2 -0
  232. package/dist/cli/chunks/visual-security-7KWFLYNB.js +2 -0
  233. package/dist/cli/chunks/web-tree-sitter-R7WR7J7B.js +2 -0
  234. package/dist/cli/chunks/windsurf-installer-ZSPEUBKR.js +7 -0
  235. package/dist/cli/chunks/witness-chain-CFSPCXHG.js +2 -0
  236. package/dist/cli/chunks/witness-chain-RWU6WT37.js +2 -0
  237. package/dist/cli/chunks/workflow-YNQT3OW2.js +51 -0
  238. package/dist/cli/chunks/workflow-orchestrator-Z6TAVMQP.js +2 -0
  239. package/dist/cli/chunks/wrappers-BP4FODVH.js +2 -0
  240. package/dist/cli/commands/daemon.d.ts +13 -0
  241. package/dist/cli/commands/daemon.js +224 -0
  242. package/dist/cli/commands/hooks-handlers/hooks-shared.js +2 -1
  243. package/dist/cli/commands/plugin.d.ts +12 -0
  244. package/dist/cli/commands/plugin.js +135 -0
  245. package/dist/cli/commands/ruvector-commands.js +14 -2
  246. package/dist/cli/commands/workflow.d.ts +10 -0
  247. package/dist/cli/commands/workflow.js +587 -0
  248. package/dist/cli/handlers/brain-handler.js +13 -8
  249. package/dist/cli/handlers/heartbeat-handler.d.ts +1 -0
  250. package/dist/cli/handlers/heartbeat-handler.js +20 -10
  251. package/dist/cli/handlers/hypergraph-handler.js +3 -3
  252. package/dist/cli/handlers/init-handler.js +10 -9
  253. package/dist/cli/handlers/interfaces.d.ts +4 -4
  254. package/dist/cli/index.js +159 -638
  255. package/dist/cli/lazy-registry.d.ts +27 -0
  256. package/dist/cli/lazy-registry.js +70 -0
  257. package/dist/context/compaction/context-budget.d.ts +71 -0
  258. package/dist/context/compaction/context-budget.js +120 -0
  259. package/dist/context/compaction/index.d.ts +96 -0
  260. package/dist/context/compaction/index.js +259 -0
  261. package/dist/context/compaction/llm-caller-adapter.d.ts +14 -0
  262. package/dist/context/compaction/llm-caller-adapter.js +47 -0
  263. package/dist/context/compaction/tier1-microcompact.d.ts +33 -0
  264. package/dist/context/compaction/tier1-microcompact.js +47 -0
  265. package/dist/context/compaction/tier2-session-summary.d.ts +72 -0
  266. package/dist/context/compaction/tier2-session-summary.js +172 -0
  267. package/dist/context/compaction/tier3-llm-compact.d.ts +65 -0
  268. package/dist/context/compaction/tier3-llm-compact.js +166 -0
  269. package/dist/context/compaction/tier4-reactive.d.ts +54 -0
  270. package/dist/context/compaction/tier4-reactive.js +129 -0
  271. package/dist/coordination/agent-memory-branch.d.ts +117 -0
  272. package/dist/coordination/agent-memory-branch.js +213 -0
  273. package/dist/coordination/agent-teams/mailbox.d.ts +43 -0
  274. package/dist/coordination/agent-teams/mailbox.js +130 -4
  275. package/dist/coordination/consensus/providers/claude-provider.d.ts +1 -0
  276. package/dist/coordination/consensus/providers/claude-provider.js +23 -3
  277. package/dist/coordination/handlers/handler-utils.d.ts +1 -0
  278. package/dist/coordination/handlers/handler-utils.js +9 -2
  279. package/dist/coordination/handlers/quality-handlers.js +7 -1
  280. package/dist/domains/contract-testing/coordinator.js +11 -0
  281. package/dist/domains/quality-assessment/coherence/gate-controller.d.ts +20 -1
  282. package/dist/domains/quality-assessment/coherence/gate-controller.js +64 -0
  283. package/dist/domains/quality-assessment/coherence/index.d.ts +3 -3
  284. package/dist/domains/quality-assessment/coherence/index.js +2 -2
  285. package/dist/domains/quality-assessment/coherence/types.d.ts +39 -0
  286. package/dist/domains/quality-assessment/coherence/types.js +11 -0
  287. package/dist/domains/quality-assessment/coordinator.d.ts +14 -0
  288. package/dist/domains/quality-assessment/coordinator.js +92 -0
  289. package/dist/domains/test-execution/coordinator.d.ts +19 -0
  290. package/dist/domains/test-execution/coordinator.js +102 -5
  291. package/dist/domains/test-generation/coordinator.js +11 -0
  292. package/dist/domains/test-generation/interfaces.d.ts +2 -0
  293. package/dist/domains/test-generation/services/test-generator.d.ts +9 -0
  294. package/dist/domains/test-generation/services/test-generator.js +37 -0
  295. package/dist/hooks/cross-phase-hooks.d.ts +11 -0
  296. package/dist/hooks/cross-phase-hooks.js +73 -9
  297. package/dist/hooks/security/config-snapshot.d.ts +21 -0
  298. package/dist/hooks/security/config-snapshot.js +33 -0
  299. package/dist/hooks/security/exit-codes.d.ts +28 -0
  300. package/dist/hooks/security/exit-codes.js +33 -0
  301. package/dist/hooks/security/index.d.ts +15 -0
  302. package/dist/hooks/security/index.js +15 -0
  303. package/dist/hooks/security/ssrf-guard.d.ts +25 -0
  304. package/dist/hooks/security/ssrf-guard.js +69 -0
  305. package/dist/init/agents-installer.d.ts +5 -3
  306. package/dist/init/agents-installer.js +17 -43
  307. package/dist/init/find-package-root.d.ts +22 -0
  308. package/dist/init/find-package-root.js +46 -0
  309. package/dist/init/n8n-installer.d.ts +4 -2
  310. package/dist/init/n8n-installer.js +23 -23
  311. package/dist/init/opencode-installer.d.ts +0 -5
  312. package/dist/init/opencode-installer.js +12 -39
  313. package/dist/init/skills-installer.d.ts +5 -2
  314. package/dist/init/skills-installer.js +15 -37
  315. package/dist/integrations/embeddings/index/HNSWIndex.d.ts +9 -2
  316. package/dist/integrations/embeddings/index/HNSWIndex.js +110 -35
  317. package/dist/integrations/ruvector/cognitive-routing.d.ts +67 -0
  318. package/dist/integrations/ruvector/cognitive-routing.js +208 -0
  319. package/dist/integrations/ruvector/feature-flags.d.ts +84 -0
  320. package/dist/integrations/ruvector/feature-flags.js +59 -0
  321. package/dist/integrations/ruvector/hdc-fingerprint.d.ts +76 -0
  322. package/dist/integrations/ruvector/hdc-fingerprint.js +217 -0
  323. package/dist/integrations/ruvector/hyperbolic-hnsw.d.ts +59 -0
  324. package/dist/integrations/ruvector/hyperbolic-hnsw.js +194 -0
  325. package/dist/integrations/ruvector/index.d.ts +5 -2
  326. package/dist/integrations/ruvector/index.js +13 -2
  327. package/dist/integrations/ruvector/shared-rvf-adapter.d.ts +24 -0
  328. package/dist/integrations/ruvector/shared-rvf-adapter.js +55 -0
  329. package/dist/integrations/ruvector/shared-rvf-dual-writer.d.ts +6 -0
  330. package/dist/integrations/ruvector/shared-rvf-dual-writer.js +38 -0
  331. package/dist/integrations/ruvector/sona-persistence.d.ts +8 -0
  332. package/dist/integrations/ruvector/sona-persistence.js +10 -0
  333. package/dist/integrations/ruvector/vector-delta-tracker.d.ts +96 -0
  334. package/dist/integrations/ruvector/vector-delta-tracker.js +226 -0
  335. package/dist/kernel/agent-coordinator.d.ts +75 -1
  336. package/dist/kernel/agent-coordinator.js +250 -1
  337. package/dist/kernel/hnsw-legacy-bridge.d.ts +38 -0
  338. package/dist/kernel/hnsw-legacy-bridge.js +88 -0
  339. package/dist/kernel/hnsw-shadow-validator.d.ts +91 -0
  340. package/dist/kernel/hnsw-shadow-validator.js +139 -0
  341. package/dist/kernel/index.d.ts +1 -1
  342. package/dist/kernel/index.js +1 -1
  343. package/dist/kernel/interfaces.d.ts +39 -0
  344. package/dist/kernel/kernel.d.ts +23 -0
  345. package/dist/kernel/kernel.js +141 -1
  346. package/dist/kernel/memory-backend.js +3 -1
  347. package/dist/kernel/unified-memory.d.ts +1 -1
  348. package/dist/kernel/unified-memory.js +7 -3
  349. package/dist/learning/aqe-learning-engine.d.ts +65 -0
  350. package/dist/learning/aqe-learning-engine.js +134 -0
  351. package/dist/learning/dream/dream-engine.d.ts +6 -1
  352. package/dist/learning/dream/dream-engine.js +37 -2
  353. package/dist/learning/dream/dream-scheduler.d.ts +25 -0
  354. package/dist/learning/dream/dream-scheduler.js +120 -0
  355. package/dist/learning/dream/rvcow-branch-manager.d.ts +6 -3
  356. package/dist/learning/dream/rvcow-branch-manager.js +60 -5
  357. package/dist/learning/experience-capture.d.ts +3 -3
  358. package/dist/learning/hyperbolic-pattern-index.d.ts +82 -0
  359. package/dist/learning/hyperbolic-pattern-index.js +142 -0
  360. package/dist/learning/index.d.ts +3 -3
  361. package/dist/learning/index.js +1 -1
  362. package/dist/learning/metrics-tracker.d.ts +44 -0
  363. package/dist/learning/metrics-tracker.js +37 -0
  364. package/dist/learning/pattern-promotion.d.ts +3 -3
  365. package/dist/learning/pattern-store.d.ts +45 -2
  366. package/dist/learning/pattern-store.js +217 -4
  367. package/dist/learning/qe-patterns.d.ts +1 -1
  368. package/dist/learning/qe-reasoning-bank.js +1 -1
  369. package/dist/learning/rvf-pattern-migration.d.ts +50 -0
  370. package/dist/learning/rvf-pattern-migration.js +106 -0
  371. package/dist/learning/rvf-pattern-store.d.ts +66 -0
  372. package/dist/learning/rvf-pattern-store.js +447 -0
  373. package/dist/mcp/bundle.js +1937 -1793
  374. package/dist/mcp/entry.js +132 -77
  375. package/dist/mcp/handlers/index.d.ts +1 -0
  376. package/dist/mcp/handlers/index.js +2 -0
  377. package/dist/mcp/handlers/migration-handlers.d.ts +52 -0
  378. package/dist/mcp/handlers/migration-handlers.js +85 -0
  379. package/dist/mcp/middleware/batch-executor.d.ts +46 -0
  380. package/dist/mcp/middleware/batch-executor.js +150 -0
  381. package/dist/mcp/middleware/microcompact.d.ts +97 -0
  382. package/dist/mcp/middleware/microcompact.js +179 -0
  383. package/dist/mcp/middleware/middleware-chain.d.ts +37 -0
  384. package/dist/mcp/middleware/middleware-chain.js +60 -0
  385. package/dist/mcp/protocol-server.d.ts +12 -0
  386. package/dist/mcp/protocol-server.js +192 -36
  387. package/dist/mcp/services/session-durability-middleware.d.ts +22 -0
  388. package/dist/mcp/services/session-durability-middleware.js +64 -0
  389. package/dist/mcp/services/session-resume.d.ts +29 -0
  390. package/dist/mcp/services/session-resume.js +221 -0
  391. package/dist/mcp/services/session-store.d.ts +84 -0
  392. package/dist/mcp/services/session-store.js +163 -0
  393. package/dist/mcp/tool-registry.d.ts +9 -0
  394. package/dist/mcp/tool-registry.js +30 -1
  395. package/dist/mcp/types.d.ts +2 -1
  396. package/dist/optimization/early-exit-token-optimizer.d.ts +7 -7
  397. package/dist/optimization/early-exit-token-optimizer.js +3 -3
  398. package/dist/persistence/rvf-consistency-validator.d.ts +85 -0
  399. package/dist/persistence/rvf-consistency-validator.js +182 -0
  400. package/dist/persistence/rvf-migration-adapter.d.ts +125 -0
  401. package/dist/persistence/rvf-migration-adapter.js +303 -0
  402. package/dist/persistence/rvf-migration-coordinator.d.ts +115 -0
  403. package/dist/persistence/rvf-migration-coordinator.js +224 -0
  404. package/dist/persistence/rvf-stage-gate.d.ts +70 -0
  405. package/dist/persistence/rvf-stage-gate.js +163 -0
  406. package/dist/plugins/cache.d.ts +44 -0
  407. package/dist/plugins/cache.js +149 -0
  408. package/dist/plugins/index.d.ts +15 -0
  409. package/dist/plugins/index.js +15 -0
  410. package/dist/plugins/lifecycle.d.ts +67 -0
  411. package/dist/plugins/lifecycle.js +175 -0
  412. package/dist/plugins/manifest.d.ts +45 -0
  413. package/dist/plugins/manifest.js +173 -0
  414. package/dist/plugins/resolver.d.ts +37 -0
  415. package/dist/plugins/resolver.js +80 -0
  416. package/dist/plugins/security.d.ts +23 -0
  417. package/dist/plugins/security.js +125 -0
  418. package/dist/plugins/sources/github.d.ts +17 -0
  419. package/dist/plugins/sources/github.js +77 -0
  420. package/dist/plugins/sources/local.d.ts +20 -0
  421. package/dist/plugins/sources/local.js +32 -0
  422. package/dist/plugins/sources/npm.d.ts +18 -0
  423. package/dist/plugins/sources/npm.js +82 -0
  424. package/dist/shared/llm/retry.d.ts +5 -2
  425. package/dist/shared/llm/retry.js +7 -3
  426. package/dist/shared/prompt-cache-latch.d.ts +41 -0
  427. package/dist/shared/prompt-cache-latch.js +63 -0
  428. package/dist/shared/retry-engine.d.ts +77 -0
  429. package/dist/shared/retry-engine.js +194 -0
  430. package/dist/workers/daemon.d.ts +8 -0
  431. package/dist/workers/daemon.js +13 -0
  432. package/dist/workers/quality-daemon/ci-monitor.d.ts +55 -0
  433. package/dist/workers/quality-daemon/ci-monitor.js +147 -0
  434. package/dist/workers/quality-daemon/coverage-delta.d.ts +72 -0
  435. package/dist/workers/quality-daemon/coverage-delta.js +135 -0
  436. package/dist/workers/quality-daemon/git-watcher.d.ts +51 -0
  437. package/dist/workers/quality-daemon/git-watcher.js +209 -0
  438. package/dist/workers/quality-daemon/index.d.ts +119 -0
  439. package/dist/workers/quality-daemon/index.js +343 -0
  440. package/dist/workers/quality-daemon/nightly-consolidation.d.ts +74 -0
  441. package/dist/workers/quality-daemon/nightly-consolidation.js +136 -0
  442. package/dist/workers/quality-daemon/notification-service.d.ts +67 -0
  443. package/dist/workers/quality-daemon/notification-service.js +178 -0
  444. package/dist/workers/quality-daemon/persistent-memory.d.ts +31 -0
  445. package/dist/workers/quality-daemon/persistent-memory.js +30 -0
  446. package/dist/workers/quality-daemon/priority-queue.d.ts +97 -0
  447. package/dist/workers/quality-daemon/priority-queue.js +126 -0
  448. package/dist/workers/quality-daemon/test-suggester.d.ts +50 -0
  449. package/dist/workers/quality-daemon/test-suggester.js +121 -0
  450. package/dist/workers/worker-manager.js +2 -1
  451. package/package.json +10 -10
package/dist/mcp/entry.js CHANGED
@@ -20,6 +20,7 @@ import { bootstrapTokenTracking, shutdownTokenTracking } from '../init/token-boo
20
20
  import { initializeExperienceCapture, stopCleanupTimer } from '../learning/experience-capture-middleware.js';
21
21
  import { createInfraHealingOrchestratorSync, ShellCommandRunner } from '../strange-loop/infra-healing/index.js';
22
22
  import { setInfraHealingOrchestrator, handleFleetInit } from './handlers/index.js';
23
+ import { parallelPrefetch } from '../boot/parallel-prefetch.js';
23
24
  import { readFileSync } from 'node:fs';
24
25
  import { resolve, dirname } from 'node:path';
25
26
  import { fileURLToPath } from 'node:url';
@@ -31,11 +32,18 @@ async function main() {
31
32
  // Output startup message BEFORE suppressing stderr (Claude Code health check needs this)
32
33
  const version = pkg.version;
33
34
  process.stderr.write(`[agentic-qe-v3] MCP server starting v${version}\n`);
34
- // Handle graceful shutdown
35
+ // Handle graceful shutdown (includes QualityDaemon)
35
36
  const shutdownDaemon = async () => {
36
37
  try {
37
38
  const { getDaemon } = await import('../workers/daemon.js');
38
- await getDaemon().stop();
39
+ const daemon = getDaemon();
40
+ // Stop quality daemon first (if started)
41
+ try {
42
+ const qd = daemon.getQualityDaemon();
43
+ await qd.stop();
44
+ }
45
+ catch { /* not started */ }
46
+ await daemon.stop();
39
47
  }
40
48
  catch { /* ignore */ }
41
49
  };
@@ -98,81 +106,99 @@ async function main() {
98
106
  return true;
99
107
  });
100
108
  try {
101
- // ADR-042: Initialize token tracking and optimization
102
- originalStderrWrite('[MCP] Initializing token tracking...\n');
103
- await bootstrapTokenTracking({
104
- enableOptimization: true,
105
- enablePersistence: true,
106
- verbose: process.env.AQE_VERBOSE === 'true',
107
- });
108
- // ADR-051: Initialize experience capture and unified memory BEFORE server starts.
109
- // This ensures all tool invocations (domain, memory, core) write to v3 memory.db
110
- // from the first request, rather than lazy-initializing on first domain tool call.
111
- originalStderrWrite('[MCP] Initializing experience capture...\n');
112
- await initializeExperienceCapture();
113
- // ADR-057: Initialize infrastructure self-healing
114
- originalStderrWrite('[MCP] Initializing infra-healing...\n');
115
- try {
116
- const __filename = fileURLToPath(import.meta.url);
117
- const __dirname = dirname(__filename);
118
- const playbookPath = resolve(__dirname, '../strange-loop/infra-healing/default-playbook.yaml');
119
- let playbookContent;
120
- try {
121
- playbookContent = readFileSync(playbookPath, 'utf-8');
122
- }
123
- catch {
124
- // Fallback for bundled environments where the YAML may not be at the resolved path
125
- playbookContent = [
126
- 'services:',
127
- ' postgres:',
128
- ' healthCheck: "pg_isready -h localhost -p 5432"',
129
- ' recover: "echo postgres-recovery-placeholder"',
130
- ' verify: "pg_isready -h localhost -p 5432"',
131
- ' redis:',
132
- ' healthCheck: "redis-cli ping"',
133
- ' recover: "echo redis-recovery-placeholder"',
134
- ' verify: "redis-cli ping"',
135
- ' node:',
136
- ' healthCheck: "node --version"',
137
- ' recover: "echo node-recovery-placeholder"',
138
- ' verify: "node --version"',
139
- ].join('\n');
140
- }
141
- if (playbookContent) {
142
- const infraOrchestrator = createInfraHealingOrchestratorSync({
143
- commandRunner: new ShellCommandRunner(),
144
- playbook: playbookContent,
145
- });
146
- setInfraHealingOrchestrator(infraOrchestrator);
147
- originalStderrWrite(`[MCP] Infra-healing ready (${infraOrchestrator.getPlaybook().listServices().length} services)\n`);
148
- }
149
- else {
150
- originalStderrWrite('[MCP] Infra-healing skipped: no playbook found\n');
151
- }
109
+ // IMP-06: Run independent init tasks in parallel via parallelPrefetch.
110
+ // Token tracking, experience capture, infra-healing, and fleet init are
111
+ // all independent — total startup time is bounded by the slowest task
112
+ // rather than the sum of all tasks.
113
+ originalStderrWrite('[MCP] Initializing subsystems in parallel...\n');
114
+ const prefetchResult = await parallelPrefetch([
115
+ {
116
+ // ADR-042: Initialize token tracking and optimization
117
+ name: 'token-tracking',
118
+ fn: async () => {
119
+ await bootstrapTokenTracking({
120
+ enableOptimization: true,
121
+ enablePersistence: true,
122
+ verbose: process.env.AQE_VERBOSE === 'true',
123
+ });
124
+ },
125
+ },
126
+ {
127
+ // ADR-051: Initialize experience capture and unified memory BEFORE server starts.
128
+ // This ensures all tool invocations (domain, memory, core) write to v3 memory.db
129
+ // from the first request, rather than lazy-initializing on first domain tool call.
130
+ name: 'experience-capture',
131
+ fn: async () => {
132
+ await initializeExperienceCapture();
133
+ },
134
+ },
135
+ {
136
+ // ADR-057: Initialize infrastructure self-healing
137
+ name: 'infra-healing',
138
+ fn: async () => {
139
+ const __filename = fileURLToPath(import.meta.url);
140
+ const __dirname = dirname(__filename);
141
+ const playbookPath = resolve(__dirname, '../strange-loop/infra-healing/default-playbook.yaml');
142
+ let playbookContent;
143
+ try {
144
+ playbookContent = readFileSync(playbookPath, 'utf-8');
145
+ }
146
+ catch {
147
+ // Fallback for bundled environments where the YAML may not be at the resolved path
148
+ playbookContent = [
149
+ 'services:',
150
+ ' postgres:',
151
+ ' healthCheck: "pg_isready -h localhost -p 5432"',
152
+ ' recover: "echo postgres-recovery-placeholder"',
153
+ ' verify: "pg_isready -h localhost -p 5432"',
154
+ ' redis:',
155
+ ' healthCheck: "redis-cli ping"',
156
+ ' recover: "echo redis-recovery-placeholder"',
157
+ ' verify: "redis-cli ping"',
158
+ ' node:',
159
+ ' healthCheck: "node --version"',
160
+ ' recover: "echo node-recovery-placeholder"',
161
+ ' verify: "node --version"',
162
+ ].join('\n');
163
+ }
164
+ if (playbookContent) {
165
+ const infraOrchestrator = createInfraHealingOrchestratorSync({
166
+ commandRunner: new ShellCommandRunner(),
167
+ playbook: playbookContent,
168
+ });
169
+ setInfraHealingOrchestrator(infraOrchestrator);
170
+ originalStderrWrite(`[MCP] Infra-healing ready (${infraOrchestrator.getPlaybook().listServices().length} services)\n`);
171
+ }
172
+ else {
173
+ originalStderrWrite('[MCP] Infra-healing skipped: no playbook found\n');
174
+ }
175
+ },
176
+ },
177
+ {
178
+ // Auto-initialize fleet so tools work without requiring fleet_init call
179
+ name: 'fleet-init',
180
+ fn: async () => {
181
+ const fleetResult = await handleFleetInit({
182
+ topology: 'hierarchical',
183
+ maxAgents: 15,
184
+ memoryBackend: 'hybrid',
185
+ lazyLoading: true,
186
+ });
187
+ if (fleetResult.success) {
188
+ originalStderrWrite(`[MCP] Fleet ready: ${fleetResult.data?.fleetId}\n`);
189
+ }
190
+ else {
191
+ originalStderrWrite(`[MCP] WARNING: Fleet auto-init failed: ${fleetResult.error}\n`);
192
+ }
193
+ },
194
+ },
195
+ ]);
196
+ // Log prefetch results
197
+ if (prefetchResult.completedTasks.length > 0) {
198
+ originalStderrWrite(`[MCP] Initialized: ${prefetchResult.completedTasks.join(', ')} (${prefetchResult.totalTimeMs.toFixed(0)}ms)\n`);
152
199
  }
153
- catch (infraError) {
154
- originalStderrWrite(`[MCP] WARNING: Infra-healing init failed: ${infraError}\n`);
155
- // Non-fatal — MCP server continues without infra-healing
156
- }
157
- // Auto-initialize fleet so tools work without requiring fleet_init call
158
- originalStderrWrite('[MCP] Auto-initializing fleet...\n');
159
- try {
160
- const fleetResult = await handleFleetInit({
161
- topology: 'hierarchical',
162
- maxAgents: 15,
163
- memoryBackend: 'hybrid',
164
- lazyLoading: true,
165
- });
166
- if (fleetResult.success) {
167
- originalStderrWrite(`[MCP] Fleet ready: ${fleetResult.data?.fleetId}\n`);
168
- }
169
- else {
170
- originalStderrWrite(`[MCP] WARNING: Fleet auto-init failed: ${fleetResult.error}\n`);
171
- }
172
- }
173
- catch (fleetError) {
174
- originalStderrWrite(`[MCP] WARNING: Fleet auto-init error: ${fleetError}\n`);
175
- // Non-fatal — tools will prompt user to call fleet_init manually
200
+ for (const failed of prefetchResult.failedTasks) {
201
+ originalStderrWrite(`[MCP] WARNING: ${failed.name} init failed: ${failed.error}\n`);
176
202
  }
177
203
  // Start the MCP server
178
204
  originalStderrWrite('[MCP] Starting server...\n');
@@ -181,13 +207,42 @@ async function main() {
181
207
  version,
182
208
  });
183
209
  originalStderrWrite('[MCP] Ready\n');
184
- // Imp-10: Start background workers (heartbeat scheduler, etc.)
210
+ // IMP-10: Start background workers (heartbeat scheduler, etc.)
185
211
  try {
186
212
  const { getDaemon } = await import('../workers/daemon.js');
187
213
  const daemon = getDaemon({ autoStart: false });
188
214
  await daemon.start();
189
215
  const status = daemon.getStatus();
190
216
  originalStderrWrite(`[MCP] Background workers started (${status.workerManager.totalWorkers} workers)\n`);
217
+ // IMP-10: Start QualityDaemon with persistent memory (Finding 1 & 2 resolution)
218
+ try {
219
+ const { UnifiedMemoryManager } = await import('../kernel/unified-memory.js');
220
+ const { PersistentWorkerMemory } = await import('../workers/quality-daemon/persistent-memory.js');
221
+ const { isPrivateIp } = await import('../hooks/security/ssrf-guard.js');
222
+ const unifiedMemory = await UnifiedMemoryManager.getInstanceAsync();
223
+ const persistentMemory = new PersistentWorkerMemory(unifiedMemory);
224
+ const qualityDaemon = daemon.getQualityDaemon({
225
+ notifications: {
226
+ // IMP-07 SSRF guard: block private IPs in webhook URLs (Finding 5)
227
+ urlValidator: (url) => {
228
+ try {
229
+ const parsed = new URL(url);
230
+ const hostname = parsed.hostname.replace(/^\[|\]$/g, '');
231
+ return !isPrivateIp(hostname);
232
+ }
233
+ catch {
234
+ return false;
235
+ }
236
+ },
237
+ },
238
+ });
239
+ await qualityDaemon.start(persistentMemory);
240
+ originalStderrWrite(`[MCP] Quality daemon started\n`);
241
+ }
242
+ catch (qdError) {
243
+ originalStderrWrite(`[MCP] WARNING: Quality daemon failed to start: ${qdError}\n`);
244
+ // Non-fatal — MCP continues without quality daemon
245
+ }
191
246
  }
192
247
  catch (daemonError) {
193
248
  originalStderrWrite(`[MCP] WARNING: Background workers failed to start: ${daemonError}\n`);
@@ -14,4 +14,5 @@ export { handleValidationPipeline, type ValidationPipelineParams, type Validatio
14
14
  export { handleHypergraphQuery, type HypergraphQueryParams, type HypergraphQueryResult, } from './hypergraph-handler.js';
15
15
  export { handleHeartbeatStatus, handleHeartbeatTrigger, handleHeartbeatLog, type HeartbeatStatusParams, type HeartbeatStatusResult, type HeartbeatTriggerParams, type HeartbeatTriggerResult, type HeartbeatLogParams, type HeartbeatLogResult, } from './heartbeat-handlers.js';
16
16
  export { handleCrossPhaseStore, handleCrossPhaseQuery, handleAgentComplete, handlePhaseStart, handlePhaseEnd, handleCrossPhaseStats, handleFormatSignals, handleCrossPhaseCleanup, resetCrossPhaseHandlers, type StoreSignalParams, type StoreSignalResult, type QuerySignalsParams, type QuerySignalsResult, type AgentCompleteParams, type AgentCompleteResult, type PhaseEventParams, type PhaseStartResult, type PhaseEndResult, type CrossPhaseStatsResult, type FormatSignalsParams, type FormatSignalsResult, } from './cross-phase-handlers';
17
+ export { handleMigrationStatus, handleMigrationCheck, handleMigrationPromote, resetMigrationHandlers, type MigrationStatusResult, type MigrationCheckResult, type MigrationPromoteResult, } from './migration-handlers.js';
17
18
  //# sourceMappingURL=index.d.ts.map
@@ -30,4 +30,6 @@ export { handleHypergraphQuery, } from './hypergraph-handler.js';
30
30
  export { handleHeartbeatStatus, handleHeartbeatTrigger, handleHeartbeatLog, } from './heartbeat-handlers.js';
31
31
  // Cross-phase handlers
32
32
  export { handleCrossPhaseStore, handleCrossPhaseQuery, handleAgentComplete, handlePhaseStart, handlePhaseEnd, handleCrossPhaseStats, handleFormatSignals, handleCrossPhaseCleanup, resetCrossPhaseHandlers, } from './cross-phase-handlers';
33
+ // RVF Migration handlers (ADR-072 Phase 3)
34
+ export { handleMigrationStatus, handleMigrationCheck, handleMigrationPromote, resetMigrationHandlers, } from './migration-handlers.js';
33
35
  //# sourceMappingURL=index.js.map
@@ -0,0 +1,52 @@
1
+ /**
2
+ * MCP Handlers for RVF Migration (ADR-072 Phase 3)
3
+ *
4
+ * Exposes migration status, consistency checks, and stage promotion
5
+ * via MCP tools for user-facing verification.
6
+ */
7
+ import { type MigrationStatus } from '../../persistence/rvf-migration-coordinator.js';
8
+ import type { ConsistencyCheckResult } from '../../persistence/rvf-consistency-validator.js';
9
+ import type { StageGateResult } from '../../persistence/rvf-stage-gate.js';
10
+ import type { MigrationStage } from '../../persistence/rvf-migration-adapter.js';
11
+ export interface MigrationStatusResult {
12
+ success: boolean;
13
+ data: MigrationStatus | null;
14
+ error?: string;
15
+ }
16
+ export interface MigrationCheckResult {
17
+ success: boolean;
18
+ data: ConsistencyCheckResult | null;
19
+ error?: string;
20
+ }
21
+ export interface MigrationPromoteResult {
22
+ success: boolean;
23
+ data: {
24
+ promoted: boolean;
25
+ previousStage: MigrationStage;
26
+ newStage: MigrationStage;
27
+ gateResult: StageGateResult;
28
+ } | null;
29
+ error?: string;
30
+ }
31
+ /** Reset for testing */
32
+ export declare function resetMigrationHandlers(): void;
33
+ /**
34
+ * Get comprehensive RVF migration status including stage, metrics,
35
+ * consistency history, engine status, and gate evaluation.
36
+ */
37
+ export declare function handleMigrationStatus(): Promise<MigrationStatusResult>;
38
+ /**
39
+ * Run a consistency check comparing SQLite and RVF search results.
40
+ * Samples random patterns and reports divergences.
41
+ */
42
+ export declare function handleMigrationCheck(): Promise<MigrationCheckResult>;
43
+ /**
44
+ * Attempt to promote to the next migration stage.
45
+ * Evaluates stage gate criteria and records result in witness chain.
46
+ *
47
+ * @param params.force - Skip gate checks (force promotion)
48
+ */
49
+ export declare function handleMigrationPromote(params?: {
50
+ force?: boolean;
51
+ }): Promise<MigrationPromoteResult>;
52
+ //# sourceMappingURL=migration-handlers.d.ts.map
@@ -0,0 +1,85 @@
1
+ /**
2
+ * MCP Handlers for RVF Migration (ADR-072 Phase 3)
3
+ *
4
+ * Exposes migration status, consistency checks, and stage promotion
5
+ * via MCP tools for user-facing verification.
6
+ */
7
+ import { RvfMigrationCoordinator, } from '../../persistence/rvf-migration-coordinator.js';
8
+ // ============================================================================
9
+ // Lazy Coordinator Init
10
+ // ============================================================================
11
+ let coordinator = null;
12
+ async function getCoordinator() {
13
+ if (!coordinator) {
14
+ coordinator = RvfMigrationCoordinator.getInstance();
15
+ await coordinator.initialize();
16
+ }
17
+ return coordinator;
18
+ }
19
+ /** Reset for testing */
20
+ export function resetMigrationHandlers() {
21
+ coordinator = null;
22
+ RvfMigrationCoordinator.resetInstance();
23
+ }
24
+ // ============================================================================
25
+ // Handlers
26
+ // ============================================================================
27
+ /**
28
+ * Get comprehensive RVF migration status including stage, metrics,
29
+ * consistency history, engine status, and gate evaluation.
30
+ */
31
+ export async function handleMigrationStatus() {
32
+ try {
33
+ const coord = await getCoordinator();
34
+ return { success: true, data: coord.getStatus() };
35
+ }
36
+ catch (err) {
37
+ return {
38
+ success: false,
39
+ data: null,
40
+ error: err instanceof Error ? err.message : String(err),
41
+ };
42
+ }
43
+ }
44
+ /**
45
+ * Run a consistency check comparing SQLite and RVF search results.
46
+ * Samples random patterns and reports divergences.
47
+ */
48
+ export async function handleMigrationCheck() {
49
+ try {
50
+ const coord = await getCoordinator();
51
+ const result = coord.runConsistencyCheck();
52
+ return { success: true, data: result };
53
+ }
54
+ catch (err) {
55
+ return {
56
+ success: false,
57
+ data: null,
58
+ error: err instanceof Error ? err.message : String(err),
59
+ };
60
+ }
61
+ }
62
+ /**
63
+ * Attempt to promote to the next migration stage.
64
+ * Evaluates stage gate criteria and records result in witness chain.
65
+ *
66
+ * @param params.force - Skip gate checks (force promotion)
67
+ */
68
+ export async function handleMigrationPromote(params = {}) {
69
+ try {
70
+ const coord = await getCoordinator();
71
+ const { promoted, previousStage, newStage, result } = coord.promote(params.force ?? false);
72
+ return {
73
+ success: true,
74
+ data: { promoted, previousStage, newStage, gateResult: result },
75
+ };
76
+ }
77
+ catch (err) {
78
+ return {
79
+ success: false,
80
+ data: null,
81
+ error: err instanceof Error ? err.message : String(err),
82
+ };
83
+ }
84
+ }
85
+ //# sourceMappingURL=migration-handlers.js.map
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Agentic QE v3 - Batch Tool Executor
3
+ *
4
+ * IMP-02: Tool Concurrency Partitioning
5
+ *
6
+ * Enables parallel execution of concurrent-safe tool calls within internal
7
+ * orchestration paths (task_orchestrate, fleet batch ops). Does NOT change
8
+ * the MCP protocol contract — MCP still sends one tool call per request.
9
+ *
10
+ * Strategy:
11
+ * 1. Partition consecutive isConcurrencySafe:true calls into batches
12
+ * 2. Non-safe calls break the batch and run alone, sequentially
13
+ * 3. Each safe batch runs via Promise.all() with a semaphore limiter
14
+ * 4. Results are returned in original input order
15
+ */
16
+ export interface BatchToolCall {
17
+ name: string;
18
+ handler: () => Promise<unknown>;
19
+ isConcurrencySafe: boolean;
20
+ }
21
+ export interface BatchResult {
22
+ results: unknown[];
23
+ parallelBatches: number;
24
+ sequentialCalls: number;
25
+ totalWallTimeMs: number;
26
+ }
27
+ export declare class Semaphore {
28
+ private permits;
29
+ private readonly waiting;
30
+ constructor(permits: number);
31
+ acquire(): Promise<void>;
32
+ release(): void;
33
+ /** Current number of available permits (useful for testing). */
34
+ get available(): number;
35
+ }
36
+ export declare class BatchToolExecutor {
37
+ private readonly maxConcurrency;
38
+ constructor(maxConcurrency?: number);
39
+ /**
40
+ * Execute a batch of tool calls respecting concurrency safety annotations.
41
+ *
42
+ * @returns BatchResult with results in the same order as the input calls.
43
+ */
44
+ executeBatch(calls: BatchToolCall[]): Promise<BatchResult>;
45
+ }
46
+ //# sourceMappingURL=batch-executor.d.ts.map
@@ -0,0 +1,150 @@
1
+ /**
2
+ * Agentic QE v3 - Batch Tool Executor
3
+ *
4
+ * IMP-02: Tool Concurrency Partitioning
5
+ *
6
+ * Enables parallel execution of concurrent-safe tool calls within internal
7
+ * orchestration paths (task_orchestrate, fleet batch ops). Does NOT change
8
+ * the MCP protocol contract — MCP still sends one tool call per request.
9
+ *
10
+ * Strategy:
11
+ * 1. Partition consecutive isConcurrencySafe:true calls into batches
12
+ * 2. Non-safe calls break the batch and run alone, sequentially
13
+ * 3. Each safe batch runs via Promise.all() with a semaphore limiter
14
+ * 4. Results are returned in original input order
15
+ */
16
+ // ============================================================================
17
+ // Semaphore — simple concurrency limiter
18
+ // ============================================================================
19
+ export class Semaphore {
20
+ permits;
21
+ waiting = [];
22
+ constructor(permits) {
23
+ if (permits < 1) {
24
+ throw new Error('Semaphore permits must be >= 1');
25
+ }
26
+ this.permits = permits;
27
+ }
28
+ async acquire() {
29
+ if (this.permits > 0) {
30
+ this.permits--;
31
+ return;
32
+ }
33
+ return new Promise((resolve) => {
34
+ this.waiting.push(resolve);
35
+ });
36
+ }
37
+ release() {
38
+ if (this.waiting.length > 0) {
39
+ const next = this.waiting.shift();
40
+ // Resolve on next microtick to avoid stack issues
41
+ queueMicrotask(next);
42
+ }
43
+ else {
44
+ this.permits++;
45
+ }
46
+ }
47
+ /** Current number of available permits (useful for testing). */
48
+ get available() {
49
+ return this.permits;
50
+ }
51
+ }
52
+ /**
53
+ * Partition an array of calls into consecutive segments:
54
+ * - Consecutive safe calls → parallel segment
55
+ * - Each non-safe call → its own sequential segment
56
+ */
57
+ function partitionCalls(calls) {
58
+ const segments = [];
59
+ let currentSafe = [];
60
+ for (let i = 0; i < calls.length; i++) {
61
+ if (calls[i].isConcurrencySafe) {
62
+ currentSafe.push(i);
63
+ }
64
+ else {
65
+ // Flush any accumulated safe calls as a parallel batch
66
+ if (currentSafe.length > 0) {
67
+ segments.push({ kind: 'parallel', indices: currentSafe });
68
+ currentSafe = [];
69
+ }
70
+ segments.push({ kind: 'sequential', indices: [i] });
71
+ }
72
+ }
73
+ // Flush trailing safe calls
74
+ if (currentSafe.length > 0) {
75
+ segments.push({ kind: 'parallel', indices: currentSafe });
76
+ }
77
+ return segments;
78
+ }
79
+ // ============================================================================
80
+ // BatchToolExecutor
81
+ // ============================================================================
82
+ const DEFAULT_MAX_CONCURRENCY = 10;
83
+ const ENV_KEY = 'AQE_MAX_TOOL_CONCURRENCY';
84
+ export class BatchToolExecutor {
85
+ maxConcurrency;
86
+ constructor(maxConcurrency) {
87
+ if (maxConcurrency !== undefined) {
88
+ this.maxConcurrency = maxConcurrency;
89
+ }
90
+ else {
91
+ const envVal = process.env[ENV_KEY];
92
+ this.maxConcurrency =
93
+ envVal && !isNaN(Number(envVal)) && Number(envVal) >= 1
94
+ ? Number(envVal)
95
+ : DEFAULT_MAX_CONCURRENCY;
96
+ }
97
+ }
98
+ /**
99
+ * Execute a batch of tool calls respecting concurrency safety annotations.
100
+ *
101
+ * @returns BatchResult with results in the same order as the input calls.
102
+ */
103
+ async executeBatch(calls) {
104
+ if (calls.length === 0) {
105
+ return {
106
+ results: [],
107
+ parallelBatches: 0,
108
+ sequentialCalls: 0,
109
+ totalWallTimeMs: 0,
110
+ };
111
+ }
112
+ const startTime = Date.now();
113
+ const segments = partitionCalls(calls);
114
+ const results = new Array(calls.length);
115
+ let parallelBatches = 0;
116
+ let sequentialCalls = 0;
117
+ const semaphore = new Semaphore(this.maxConcurrency);
118
+ for (const segment of segments) {
119
+ if (segment.kind === 'parallel') {
120
+ parallelBatches++;
121
+ const batchResults = await Promise.all(segment.indices.map(async (idx) => {
122
+ await semaphore.acquire();
123
+ try {
124
+ return await calls[idx].handler();
125
+ }
126
+ finally {
127
+ semaphore.release();
128
+ }
129
+ }));
130
+ // Place results back at original indices
131
+ for (let j = 0; j < segment.indices.length; j++) {
132
+ results[segment.indices[j]] = batchResults[j];
133
+ }
134
+ }
135
+ else {
136
+ // Sequential: exactly one call
137
+ sequentialCalls++;
138
+ const idx = segment.indices[0];
139
+ results[idx] = await calls[idx].handler();
140
+ }
141
+ }
142
+ return {
143
+ results,
144
+ parallelBatches,
145
+ sequentialCalls,
146
+ totalWallTimeMs: Date.now() - startTime,
147
+ };
148
+ }
149
+ }
150
+ //# sourceMappingURL=batch-executor.js.map