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
@@ -0,0 +1,97 @@
1
+ /**
2
+ * Agentic QE v3 - Microcompact Engine (IMP-01)
3
+ *
4
+ * Tracks MCP tool results over time and evicts stale entries to reduce
5
+ * context-window pressure. Registers as a postToolResult middleware on the
6
+ * IMP-00 middleware chain.
7
+ *
8
+ * Eviction rules (applied in order on each compact() call):
9
+ * 1. Results older than `maxAgeMs` are cleared — unless they are among
10
+ * the most recent `keepLastN` results.
11
+ * 2. If total estimated tokens still exceed `contextBudget * contextPressureThreshold`,
12
+ * the oldest non-protected results are cleared until the budget is satisfied.
13
+ *
14
+ * Cleared entries have their content replaced with a sentinel string so
15
+ * downstream consumers can detect compacted slots.
16
+ */
17
+ import type { ToolMiddleware } from './middleware-chain';
18
+ export interface MicrocompactOptions {
19
+ maxAgeMs?: number;
20
+ keepLastN?: number;
21
+ contextPressureThreshold?: number;
22
+ contextBudget?: number;
23
+ sentinel?: string;
24
+ }
25
+ export interface ToolResultEntry {
26
+ toolName: string;
27
+ result: unknown;
28
+ timestamp: number;
29
+ estimatedTokens: number;
30
+ cleared: boolean;
31
+ }
32
+ export interface MicrocompactResult {
33
+ clearedCount: number;
34
+ tokensSaved: number;
35
+ totalResults: number;
36
+ totalTokens: number;
37
+ }
38
+ /**
39
+ * Padded heuristic for token estimation: ceil(chars / 3).
40
+ * Intentionally conservative — overestimates slightly to give headroom.
41
+ */
42
+ export declare function estimateTokensPadded(content: unknown): number;
43
+ export declare class MicrocompactEngine {
44
+ private entries;
45
+ private readonly maxAgeMs;
46
+ private readonly keepLastN;
47
+ private readonly pressureThreshold;
48
+ private readonly contextBudget;
49
+ private readonly sentinel;
50
+ constructor(options?: MicrocompactOptions);
51
+ /** Register a new tool result for tracking. */
52
+ addResult(toolName: string, result: unknown): void;
53
+ /**
54
+ * Run the two-pass eviction algorithm and return a summary.
55
+ *
56
+ * Pass 1 — age-based: clear anything older than `maxAgeMs`, except the
57
+ * most recent `keepLastN` entries (regardless of age).
58
+ * Pass 2 — pressure-based: if total tokens still exceed the threshold,
59
+ * clear the oldest non-protected entries one-by-one until under budget.
60
+ */
61
+ compact(): MicrocompactResult;
62
+ /** Return current tracking statistics. */
63
+ getStats(): {
64
+ totalResults: number;
65
+ clearedCount: number;
66
+ totalTokens: number;
67
+ };
68
+ /** Expose estimateTokensPadded as a static method for external callers. */
69
+ static estimateTokensPadded(content: unknown): number;
70
+ /** Read-only access to the internal entries (useful for testing). */
71
+ getEntries(): ReadonlyArray<ToolResultEntry>;
72
+ }
73
+ /**
74
+ * Result of createMicrocompactMiddleware — returns both the middleware
75
+ * and the engine so callers can share the engine with other subsystems
76
+ * (e.g., the compaction pipeline's Tier 1).
77
+ */
78
+ export interface MicrocompactMiddlewareResult {
79
+ middleware: ToolMiddleware;
80
+ engine: MicrocompactEngine;
81
+ }
82
+ /**
83
+ * Create a ToolMiddleware that plugs the MicrocompactEngine into the
84
+ * IMP-00 middleware chain.
85
+ *
86
+ * The middleware:
87
+ * - Records every tool result via `addResult()`
88
+ * - Runs `compact()` to evict stale historical entries
89
+ * - Returns the current result unchanged (compaction targets history)
90
+ *
91
+ * Priority 100 — runs after most other post-hooks.
92
+ *
93
+ * Returns both the middleware and the underlying engine so the engine
94
+ * can be shared with the compaction pipeline (IMP-08 Tier 1).
95
+ */
96
+ export declare function createMicrocompactMiddleware(options?: MicrocompactOptions): MicrocompactMiddlewareResult;
97
+ //# sourceMappingURL=microcompact.d.ts.map
@@ -0,0 +1,179 @@
1
+ /**
2
+ * Agentic QE v3 - Microcompact Engine (IMP-01)
3
+ *
4
+ * Tracks MCP tool results over time and evicts stale entries to reduce
5
+ * context-window pressure. Registers as a postToolResult middleware on the
6
+ * IMP-00 middleware chain.
7
+ *
8
+ * Eviction rules (applied in order on each compact() call):
9
+ * 1. Results older than `maxAgeMs` are cleared — unless they are among
10
+ * the most recent `keepLastN` results.
11
+ * 2. If total estimated tokens still exceed `contextBudget * contextPressureThreshold`,
12
+ * the oldest non-protected results are cleared until the budget is satisfied.
13
+ *
14
+ * Cleared entries have their content replaced with a sentinel string so
15
+ * downstream consumers can detect compacted slots.
16
+ */
17
+ // ============================================================================
18
+ // Defaults
19
+ // ============================================================================
20
+ const DEFAULT_MAX_AGE_MS = 3_600_000; // 60 minutes
21
+ const DEFAULT_KEEP_LAST_N = 5;
22
+ const DEFAULT_CONTEXT_PRESSURE_THRESHOLD = 0.8;
23
+ const DEFAULT_CONTEXT_BUDGET = 100_000; // tokens
24
+ const DEFAULT_SENTINEL = '[Old tool result content cleared]';
25
+ // ============================================================================
26
+ // Token Estimation
27
+ // ============================================================================
28
+ /**
29
+ * Padded heuristic for token estimation: ceil(chars / 3).
30
+ * Intentionally conservative — overestimates slightly to give headroom.
31
+ */
32
+ export function estimateTokensPadded(content) {
33
+ const serialized = typeof content === 'string'
34
+ ? content
35
+ : JSON.stringify(content);
36
+ return Math.ceil(serialized.length / 3);
37
+ }
38
+ // ============================================================================
39
+ // MicrocompactEngine
40
+ // ============================================================================
41
+ export class MicrocompactEngine {
42
+ entries = [];
43
+ maxAgeMs;
44
+ keepLastN;
45
+ pressureThreshold;
46
+ contextBudget;
47
+ sentinel;
48
+ constructor(options = {}) {
49
+ this.maxAgeMs = options.maxAgeMs ?? DEFAULT_MAX_AGE_MS;
50
+ this.keepLastN = options.keepLastN ?? DEFAULT_KEEP_LAST_N;
51
+ this.pressureThreshold = options.contextPressureThreshold ?? DEFAULT_CONTEXT_PRESSURE_THRESHOLD;
52
+ this.contextBudget = options.contextBudget ?? DEFAULT_CONTEXT_BUDGET;
53
+ this.sentinel = options.sentinel ?? DEFAULT_SENTINEL;
54
+ }
55
+ // --------------------------------------------------------------------------
56
+ // Public API
57
+ // --------------------------------------------------------------------------
58
+ /** Register a new tool result for tracking. */
59
+ addResult(toolName, result) {
60
+ this.entries.push({
61
+ toolName,
62
+ result,
63
+ timestamp: Date.now(),
64
+ estimatedTokens: estimateTokensPadded(result),
65
+ cleared: false,
66
+ });
67
+ }
68
+ /**
69
+ * Run the two-pass eviction algorithm and return a summary.
70
+ *
71
+ * Pass 1 — age-based: clear anything older than `maxAgeMs`, except the
72
+ * most recent `keepLastN` entries (regardless of age).
73
+ * Pass 2 — pressure-based: if total tokens still exceed the threshold,
74
+ * clear the oldest non-protected entries one-by-one until under budget.
75
+ */
76
+ compact() {
77
+ const now = Date.now();
78
+ let clearedCount = 0;
79
+ let tokensSaved = 0;
80
+ const sentinelTokens = estimateTokensPadded(this.sentinel);
81
+ // Identify the protected tail (last N entries by insertion order).
82
+ const protectedStartIndex = Math.max(0, this.entries.length - this.keepLastN);
83
+ // --- Pass 1: age-based eviction ---
84
+ for (let i = 0; i < this.entries.length; i++) {
85
+ const entry = this.entries[i];
86
+ if (entry.cleared)
87
+ continue;
88
+ if (i >= protectedStartIndex)
89
+ continue; // protected
90
+ const age = now - entry.timestamp;
91
+ if (age > this.maxAgeMs) {
92
+ const saved = entry.estimatedTokens - sentinelTokens;
93
+ entry.result = this.sentinel;
94
+ entry.cleared = true;
95
+ entry.estimatedTokens = sentinelTokens;
96
+ clearedCount++;
97
+ tokensSaved += Math.max(0, saved);
98
+ }
99
+ }
100
+ // --- Pass 2: context-pressure eviction ---
101
+ const tokenCeiling = this.contextBudget * this.pressureThreshold;
102
+ let totalTokens = this.entries.reduce((sum, e) => sum + e.estimatedTokens, 0);
103
+ if (totalTokens > tokenCeiling) {
104
+ for (let i = 0; i < this.entries.length; i++) {
105
+ if (totalTokens <= tokenCeiling)
106
+ break;
107
+ const entry = this.entries[i];
108
+ if (entry.cleared)
109
+ continue;
110
+ if (i >= protectedStartIndex)
111
+ continue; // still protected
112
+ const saved = entry.estimatedTokens - sentinelTokens;
113
+ totalTokens -= Math.max(0, saved);
114
+ entry.result = this.sentinel;
115
+ entry.cleared = true;
116
+ entry.estimatedTokens = sentinelTokens;
117
+ clearedCount++;
118
+ tokensSaved += Math.max(0, saved);
119
+ }
120
+ }
121
+ // Recompute total tokens for the summary.
122
+ totalTokens = this.entries.reduce((sum, e) => sum + e.estimatedTokens, 0);
123
+ return {
124
+ clearedCount,
125
+ tokensSaved,
126
+ totalResults: this.entries.length,
127
+ totalTokens,
128
+ };
129
+ }
130
+ /** Return current tracking statistics. */
131
+ getStats() {
132
+ const clearedCount = this.entries.filter(e => e.cleared).length;
133
+ const totalTokens = this.entries.reduce((sum, e) => sum + e.estimatedTokens, 0);
134
+ return {
135
+ totalResults: this.entries.length,
136
+ clearedCount,
137
+ totalTokens,
138
+ };
139
+ }
140
+ /** Expose estimateTokensPadded as a static method for external callers. */
141
+ static estimateTokensPadded(content) {
142
+ return estimateTokensPadded(content);
143
+ }
144
+ /** Read-only access to the internal entries (useful for testing). */
145
+ getEntries() {
146
+ return this.entries;
147
+ }
148
+ }
149
+ /**
150
+ * Create a ToolMiddleware that plugs the MicrocompactEngine into the
151
+ * IMP-00 middleware chain.
152
+ *
153
+ * The middleware:
154
+ * - Records every tool result via `addResult()`
155
+ * - Runs `compact()` to evict stale historical entries
156
+ * - Returns the current result unchanged (compaction targets history)
157
+ *
158
+ * Priority 100 — runs after most other post-hooks.
159
+ *
160
+ * Returns both the middleware and the underlying engine so the engine
161
+ * can be shared with the compaction pipeline (IMP-08 Tier 1).
162
+ */
163
+ export function createMicrocompactMiddleware(options) {
164
+ const engine = new MicrocompactEngine(options);
165
+ const disabled = process.env.AQE_MICROCOMPACT === 'false';
166
+ const middleware = {
167
+ name: 'microcompact',
168
+ priority: 100,
169
+ async postToolResult(_context, result) {
170
+ if (disabled)
171
+ return result;
172
+ engine.addResult(_context.toolName, result);
173
+ engine.compact();
174
+ return result;
175
+ },
176
+ };
177
+ return { middleware, engine };
178
+ }
179
+ //# sourceMappingURL=microcompact.js.map
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Agentic QE v3 - Middleware Chain for MCP Tool Calls
3
+ *
4
+ * IMP-00: Extracts pre/post tool-call extension points from protocol-server.ts
5
+ * so future improvements (IMP-01, 02, 03, 04, 08) can register independently
6
+ * without editing handleToolsCall() or causing merge conflicts.
7
+ *
8
+ * Pattern: Sorted middleware chain with priority ordering.
9
+ * Lower priority number = runs first in pre-hooks, last in post-hooks (onion model).
10
+ */
11
+ export interface ToolCallContext {
12
+ toolName: string;
13
+ params: Record<string, unknown>;
14
+ timestamp: number;
15
+ sessionId?: string;
16
+ metadata: Record<string, unknown>;
17
+ }
18
+ export interface ToolMiddleware {
19
+ name: string;
20
+ priority: number;
21
+ preToolCall?(context: ToolCallContext): Promise<ToolCallContext>;
22
+ postToolResult?(context: ToolCallContext, result: unknown): Promise<unknown>;
23
+ onError?(context: ToolCallContext, error: Error): Promise<void>;
24
+ }
25
+ export declare class MiddlewareChain {
26
+ private middlewares;
27
+ register(mw: ToolMiddleware): void;
28
+ unregister(name: string): void;
29
+ getRegistered(): ReadonlyArray<{
30
+ name: string;
31
+ priority: number;
32
+ }>;
33
+ executePreHooks(ctx: ToolCallContext): Promise<ToolCallContext>;
34
+ executePostHooks(ctx: ToolCallContext, result: unknown): Promise<unknown>;
35
+ executeErrorHooks(ctx: ToolCallContext, error: Error): Promise<void>;
36
+ }
37
+ //# sourceMappingURL=middleware-chain.d.ts.map
@@ -0,0 +1,60 @@
1
+ /**
2
+ * Agentic QE v3 - Middleware Chain for MCP Tool Calls
3
+ *
4
+ * IMP-00: Extracts pre/post tool-call extension points from protocol-server.ts
5
+ * so future improvements (IMP-01, 02, 03, 04, 08) can register independently
6
+ * without editing handleToolsCall() or causing merge conflicts.
7
+ *
8
+ * Pattern: Sorted middleware chain with priority ordering.
9
+ * Lower priority number = runs first in pre-hooks, last in post-hooks (onion model).
10
+ */
11
+ // ============================================================================
12
+ // Middleware Chain
13
+ // ============================================================================
14
+ export class MiddlewareChain {
15
+ middlewares = [];
16
+ register(mw) {
17
+ this.middlewares.push(mw);
18
+ this.middlewares.sort((a, b) => a.priority - b.priority);
19
+ }
20
+ unregister(name) {
21
+ this.middlewares = this.middlewares.filter(mw => mw.name !== name);
22
+ }
23
+ getRegistered() {
24
+ return this.middlewares.map(mw => ({ name: mw.name, priority: mw.priority }));
25
+ }
26
+ async executePreHooks(ctx) {
27
+ let current = ctx;
28
+ for (const mw of this.middlewares) {
29
+ if (mw.preToolCall) {
30
+ current = await mw.preToolCall(current);
31
+ }
32
+ }
33
+ return current;
34
+ }
35
+ async executePostHooks(ctx, result) {
36
+ let current = result;
37
+ // Post-hooks run in reverse priority order (onion model)
38
+ for (let i = this.middlewares.length - 1; i >= 0; i--) {
39
+ const mw = this.middlewares[i];
40
+ if (mw.postToolResult) {
41
+ current = await mw.postToolResult(ctx, current);
42
+ }
43
+ }
44
+ return current;
45
+ }
46
+ async executeErrorHooks(ctx, error) {
47
+ for (const mw of this.middlewares) {
48
+ if (mw.onError) {
49
+ try {
50
+ await mw.onError(ctx, error);
51
+ }
52
+ catch (hookError) {
53
+ // Error hooks must not crash the chain
54
+ console.error(`[MiddlewareChain] Error in ${mw.name}.onError: ${hookError instanceof Error ? hookError.message : hookError}`);
55
+ }
56
+ }
57
+ }
58
+ }
59
+ }
60
+ //# sourceMappingURL=middleware-chain.js.map
@@ -6,6 +6,7 @@
6
6
  * ADR-039: Integrated with connection pooling, load balancing, and performance monitoring
7
7
  */
8
8
  import { ToolDefinition } from './types';
9
+ import { type ToolMiddleware } from './middleware/middleware-chain';
9
10
  import { type EventAdapter } from '../adapters/ag-ui/index.js';
10
11
  export interface MCPServerConfig {
11
12
  name?: string;
@@ -42,6 +43,10 @@ export declare class MCPProtocolServer {
42
43
  private readonly balancer;
43
44
  private readonly monitor;
44
45
  private readonly eventAdapter;
46
+ private readonly middlewareChain;
47
+ private readonly sessionStore;
48
+ private readonly compactionPipeline;
49
+ private readonly loopTracker;
45
50
  private reconnecting;
46
51
  private pendingRequests;
47
52
  constructor(config?: MCPServerConfig);
@@ -62,6 +67,13 @@ export declare class MCPProtocolServer {
62
67
  * Stop the MCP server
63
68
  */
64
69
  stop(): Promise<void>;
70
+ /** IMP-00: Register a middleware into the tool-call chain. */
71
+ registerMiddleware(mw: ToolMiddleware): void;
72
+ /** IMP-00: Get registered middleware (for testing/introspection). */
73
+ getMiddleware(): ReadonlyArray<{
74
+ name: string;
75
+ priority: number;
76
+ }>;
65
77
  /**
66
78
  * Get server capabilities
67
79
  */