agentic-qe 3.8.13 → 3.9.0

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 (359) hide show
  1. package/.claude/skills/skills-manifest.json +1 -1
  2. package/CHANGELOG.md +48 -0
  3. package/dist/adapters/a2ui/integration/agui-sync.js +2 -1
  4. package/dist/audit/witness-chain.js +15 -3
  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-WBR5NXS3.js +2 -0
  11. package/dist/cli/chunks/agent-booster-wasm-PQYB7VRU.js +2 -0
  12. package/dist/cli/chunks/agent-handler-QDAB5NQS.js +33 -0
  13. package/dist/cli/chunks/aqe-learning-engine-TK4JQCGT.js +2 -0
  14. package/dist/cli/chunks/audit-S7JUYYVP.js +3 -0
  15. package/dist/cli/chunks/base-2WXOSMBQ.js +2 -0
  16. package/dist/cli/chunks/better-sqlite3-7KY2RDXO.js +2 -0
  17. package/dist/cli/chunks/brain-handler-PPEGDCN4.js +68 -0
  18. package/dist/cli/chunks/branch-enumerator-XK4V5W7L.js +7 -0
  19. package/dist/cli/chunks/browser-PALA5PL3.js +4 -0
  20. package/dist/cli/chunks/browser-workflow-42F7GK5T.js +2 -0
  21. package/dist/cli/chunks/chunk-24FKIJNC.js +15 -0
  22. package/dist/cli/chunks/chunk-263XS447.js +2 -0
  23. package/dist/cli/chunks/chunk-2BZFNEN2.js +4 -0
  24. package/dist/cli/chunks/chunk-2E5NQNSU.js +180 -0
  25. package/dist/cli/chunks/chunk-2I7J3O6V.js +2 -0
  26. package/dist/cli/chunks/chunk-3ADGXLTM.js +14 -0
  27. package/dist/cli/chunks/chunk-3IHG3WOY.js +12 -0
  28. package/dist/cli/chunks/chunk-3IUNFTIF.js +2 -0
  29. package/dist/cli/chunks/chunk-3JPRUND5.js +2 -0
  30. package/dist/cli/chunks/chunk-3NZLZHJI.js +2 -0
  31. package/dist/cli/chunks/chunk-3THRQEZ2.js +95 -0
  32. package/dist/cli/chunks/chunk-3ZOONQG6.js +2 -0
  33. package/dist/cli/chunks/chunk-4B6NCELM.js +2 -0
  34. package/dist/cli/chunks/chunk-4I2IOUS4.js +2 -0
  35. package/dist/cli/chunks/chunk-4VBTXZRM.js +2 -0
  36. package/dist/cli/chunks/chunk-4VUPRTVX.js +3 -0
  37. package/dist/cli/chunks/chunk-4YOMLWEK.js +70 -0
  38. package/dist/cli/chunks/chunk-4YS3IJ45.js +2 -0
  39. package/dist/cli/chunks/chunk-5SKGFSKD.js +2 -0
  40. package/dist/cli/chunks/chunk-5T2ZQWKF.js +27 -0
  41. package/dist/cli/chunks/chunk-62ADTHV7.js +2 -0
  42. package/dist/cli/chunks/chunk-6EOS7KX2.js +2 -0
  43. package/dist/cli/chunks/chunk-6SVX4DJC.js +6 -0
  44. package/dist/cli/chunks/chunk-72WOAVK6.js +2 -0
  45. package/dist/cli/chunks/chunk-7R6YMLVS.js +3 -0
  46. package/dist/cli/chunks/chunk-7VDBAVTY.js +2 -0
  47. package/dist/cli/chunks/chunk-AFLLQ5PP.js +15 -0
  48. package/dist/cli/chunks/chunk-AKE543X2.js +2 -0
  49. package/dist/cli/chunks/chunk-B36CDR4U.js +2 -0
  50. package/dist/cli/chunks/chunk-B6LLWYQ6.js +2 -0
  51. package/dist/cli/chunks/chunk-BDIEMZ22.js +91 -0
  52. package/dist/cli/chunks/chunk-BGXNSCXX.js +4 -0
  53. package/dist/cli/chunks/chunk-BLBRY5UD.js +2 -0
  54. package/dist/cli/chunks/chunk-BPWXXEH2.js +3029 -0
  55. package/dist/cli/chunks/chunk-BR26T7ZS.js +180 -0
  56. package/dist/cli/chunks/chunk-BTREG4IW.js +2 -0
  57. package/dist/cli/chunks/chunk-BULKFVYX.js +2 -0
  58. package/dist/cli/chunks/chunk-BXAXGEFC.js +24 -0
  59. package/dist/cli/chunks/chunk-CL6POIX4.js +2 -0
  60. package/dist/cli/chunks/chunk-CS2KS7LP.js +2 -0
  61. package/dist/cli/chunks/chunk-CWFB6BSA.js +316 -0
  62. package/dist/cli/chunks/chunk-DRT3WKQW.js +2 -0
  63. package/dist/cli/chunks/chunk-EHDQJQ6Y.js +27 -0
  64. package/dist/cli/chunks/chunk-ESVQ6MEB.js +2 -0
  65. package/dist/cli/chunks/chunk-FEKY7T6Q.js +2 -0
  66. package/dist/cli/chunks/chunk-FGA7VIFR.js +7 -0
  67. package/dist/cli/chunks/chunk-FIA6X7UL.js +2 -0
  68. package/dist/cli/chunks/chunk-GAOJV3OX.js +2 -0
  69. package/dist/cli/chunks/chunk-GKNNSCLC.js +5 -0
  70. package/dist/cli/chunks/chunk-GPQ57KA4.js +2 -0
  71. package/dist/cli/chunks/chunk-GRUUQAR6.js +2 -0
  72. package/dist/cli/chunks/chunk-HRO6OZQD.js +2 -0
  73. package/dist/cli/chunks/chunk-HY6PMO5W.js +66 -0
  74. package/dist/cli/chunks/chunk-IAV2JMIX.js +167 -0
  75. package/dist/cli/chunks/chunk-IFNIIK34.js +21 -0
  76. package/dist/cli/chunks/chunk-IGJPMN4I.js +3 -0
  77. package/dist/cli/chunks/chunk-J3KWWR6Z.js +1 -0
  78. package/dist/cli/chunks/chunk-JBANAPWG.js +2 -0
  79. package/dist/cli/chunks/chunk-JJO7Y4H3.js +604 -0
  80. package/dist/cli/chunks/chunk-JRYGQO2W.js +2 -0
  81. package/dist/cli/chunks/chunk-JXM26HEE.js +2 -0
  82. package/dist/cli/chunks/chunk-JZSDOIXA.js +2 -0
  83. package/dist/cli/chunks/chunk-KP5NUODU.js +3 -0
  84. package/dist/cli/chunks/chunk-LHJQD2VU.js +750 -0
  85. package/dist/cli/chunks/chunk-LNQIY6BP.js +2 -0
  86. package/dist/cli/chunks/chunk-MDUHYUHF.js +2 -0
  87. package/dist/cli/chunks/chunk-MV6CMOJQ.js +65 -0
  88. package/dist/cli/chunks/chunk-MZOFWJTM.js +2 -0
  89. package/dist/cli/chunks/chunk-N2NS2PHA.js +45 -0
  90. package/dist/cli/chunks/chunk-N4TL73TH.js +314 -0
  91. package/dist/cli/chunks/chunk-N5UXCLFI.js +2 -0
  92. package/dist/cli/chunks/chunk-NZ2VCPN4.js +2 -0
  93. package/dist/cli/chunks/chunk-OF4D7MYI.js +2 -0
  94. package/dist/cli/chunks/chunk-OI5NGQO2.js +2 -0
  95. package/dist/cli/chunks/chunk-OLHKGP35.js +2 -0
  96. package/dist/cli/chunks/chunk-QOVHWZEP.js +1 -0
  97. package/dist/cli/chunks/chunk-RFSN6IDA.js +79 -0
  98. package/dist/cli/chunks/chunk-RTGGL7D7.js +4 -0
  99. package/dist/cli/chunks/chunk-RU5WAHB7.js +3 -0
  100. package/dist/cli/chunks/chunk-SUSEVMZT.js +2 -0
  101. package/dist/cli/chunks/chunk-TLHP5EII.js +2 -0
  102. package/dist/cli/chunks/chunk-TWUWL5EJ.js +2 -0
  103. package/dist/cli/chunks/chunk-U5RN7YQW.js +2 -0
  104. package/dist/cli/chunks/chunk-UFUVUO3J.js +2 -0
  105. package/dist/cli/chunks/chunk-UQHYFOBX.js +16 -0
  106. package/dist/cli/chunks/chunk-VOS4NQSF.js +2 -0
  107. package/dist/cli/chunks/chunk-VSVXUTJN.js +256 -0
  108. package/dist/cli/chunks/chunk-WBQSXPBI.js +2 -0
  109. package/dist/cli/chunks/chunk-WGMPEW2T.js +2 -0
  110. package/dist/cli/chunks/chunk-WIEC7VKK.js +2 -0
  111. package/dist/cli/chunks/chunk-WJ3DLOXF.js +14 -0
  112. package/dist/cli/chunks/chunk-X3KI6JOY.js +9 -0
  113. package/dist/cli/chunks/chunk-X5IJGWYG.js +2 -0
  114. package/dist/cli/chunks/chunk-XIBDETCS.js +146 -0
  115. package/dist/cli/chunks/chunk-XLRQYLWW.js +2 -0
  116. package/dist/cli/chunks/chunk-XO6PVK2P.js +3 -0
  117. package/dist/cli/chunks/chunk-XRE2HCWG.js +3 -0
  118. package/dist/cli/chunks/chunk-XT2V2322.js +2 -0
  119. package/dist/cli/chunks/chunk-Y7BHKZFJ.js +18 -0
  120. package/dist/cli/chunks/chunk-YAGODYIG.js +59 -0
  121. package/dist/cli/chunks/chunk-YANUP2RO.js +2 -0
  122. package/dist/cli/chunks/chunk-YPFOCNOE.js +30 -0
  123. package/dist/cli/chunks/chunk-YR6ZZGH7.js +81 -0
  124. package/dist/cli/chunks/chunk-YVA65UZL.js +2 -0
  125. package/dist/cli/chunks/chunk-YW2THB5Q.js +2 -0
  126. package/dist/cli/chunks/chunk-ZAPS3UGQ.js +20 -0
  127. package/dist/cli/chunks/chunk-ZDATDCYN.js +2 -0
  128. package/dist/cli/chunks/ci-J374KDLI.js +81 -0
  129. package/dist/cli/chunks/ci-output-7JN7F6CI.js +2 -0
  130. package/dist/cli/chunks/claude-flow-setup-245JLJCN.js +2 -0
  131. package/dist/cli/chunks/client-MCSNSH2C.js +2 -0
  132. package/dist/cli/chunks/cline-installer-LBA2M5N3.js +4 -0
  133. package/dist/cli/chunks/code-U4N4WONM.js +38 -0
  134. package/dist/cli/chunks/code-index-extractor-A57Z6BO4.js +3 -0
  135. package/dist/cli/chunks/codex-installer-UXMK2N4T.js +8 -0
  136. package/dist/cli/chunks/completions-W66BSCOE.js +1364 -0
  137. package/dist/cli/chunks/complexity-analyzer-AB4OZARV.js +2 -0
  138. package/dist/cli/chunks/continuedev-installer-LRFZ2SJM.js +14 -0
  139. package/dist/cli/chunks/copilot-installer-CQ3JYBIB.js +3 -0
  140. package/dist/cli/chunks/cost-tracker-4F723RB6.js +2 -0
  141. package/dist/cli/chunks/coverage-4PUEQXAY.js +27 -0
  142. package/dist/cli/chunks/cross-domain-router-OWR5IJ5G.js +2 -0
  143. package/dist/cli/chunks/cursor-installer-JZEDEDHA.js +3 -0
  144. package/dist/cli/chunks/daemon-B7TWGHXQ.js +19 -0
  145. package/dist/cli/chunks/dag-attention-scheduler-JWO6XI6A.js +2 -0
  146. package/dist/cli/chunks/detect-L6ZZHUSX.js +2 -0
  147. package/dist/cli/chunks/domain-handler-FT5FLZWL.js +25 -0
  148. package/dist/cli/chunks/domain-transfer-5Y4FGJAJ.js +2 -0
  149. package/dist/cli/chunks/dream-4TDBIYED.js +2 -0
  150. package/dist/cli/chunks/esm-node-2PKHKOTS.js +2 -0
  151. package/dist/cli/chunks/eval-GHMPFGWV.js +15 -0
  152. package/dist/cli/chunks/fast-paths-B3R647KN.js +2 -0
  153. package/dist/cli/chunks/feature-flags-DWS7ARSX.js +2 -0
  154. package/dist/cli/chunks/feature-flags-IVQ3AL4Q.js +2 -0
  155. package/dist/cli/chunks/file-discovery-QFPA6GMV.js +2 -0
  156. package/dist/cli/chunks/fleet-EKOKMOMW.js +43 -0
  157. package/dist/cli/chunks/gnn-wrapper-OYC55N5E.js +2 -0
  158. package/dist/cli/chunks/heartbeat-handler-MBBS4IBU.js +48 -0
  159. package/dist/cli/chunks/heartbeat-scheduler-XDGMOT7X.js +2 -0
  160. package/dist/cli/chunks/hnsw-index-YO7CT23I.js +2 -0
  161. package/dist/cli/chunks/hnswlib-node-56YWVXFE.js +2 -0
  162. package/dist/cli/chunks/hooks-L5VLZGEK.js +101 -0
  163. package/dist/cli/chunks/hypergraph-engine-A4Y2ZRAG.js +2 -0
  164. package/dist/cli/chunks/hypergraph-handler-3HDGB5SZ.js +35 -0
  165. package/dist/cli/chunks/impact-analyzer-UEIGXSZ4.js +2 -0
  166. package/dist/cli/chunks/init-handler-JDET6WUN.js +68 -0
  167. package/dist/cli/chunks/init-wizard-JWZUGIPJ.js +2 -0
  168. package/dist/cli/chunks/kernel-YNDTVKIW.js +2 -0
  169. package/dist/cli/chunks/kilocode-installer-GZZG5AFW.js +4 -0
  170. package/dist/cli/chunks/kiro-installer-IWNY5TKH.js +74 -0
  171. package/dist/cli/chunks/knowledge-graph-NGJKFTSN.js +2 -0
  172. package/dist/cli/chunks/learning-722ZNSZ6.js +107 -0
  173. package/dist/cli/chunks/llm-router-DNAV746L.js +30 -0
  174. package/dist/cli/chunks/load-Y3GCUFM4.js +2 -0
  175. package/dist/cli/chunks/load-test-GZUBXFF3.js +2 -0
  176. package/dist/cli/chunks/mcp-LKPIBZ3W.js +2 -0
  177. package/dist/cli/chunks/memory-L57MLFOP.js +32 -0
  178. package/dist/cli/chunks/memory-backend-3NQIZUXE.js +2 -0
  179. package/dist/cli/chunks/memory-handlers-MDZQ7HVW.js +2 -0
  180. package/dist/cli/chunks/opencode-installer-4HUB36H5.js +3 -0
  181. package/dist/cli/chunks/orchestrator-QHSBB2UC.js +371 -0
  182. package/dist/cli/chunks/pipeline-D3QER35Z.js +19 -0
  183. package/dist/cli/chunks/platform-T4E7Q3RD.js +2 -0
  184. package/dist/cli/chunks/plugin-JHW2YPRC.js +27 -0
  185. package/dist/cli/chunks/prime-radiant-advanced-wasm-G7CFNNQV.js +2 -0
  186. package/dist/cli/chunks/protocol-executor-SPUVRDWT.js +2 -0
  187. package/dist/cli/chunks/protocol-handler-2BQQ4HDM.js +20 -0
  188. package/dist/cli/chunks/prove-UQ6JFT73.js +3 -0
  189. package/dist/cli/chunks/qe-reasoning-bank-3HBK2FVD.js +2 -0
  190. package/dist/cli/chunks/quality-JRZYMC77.js +7 -0
  191. package/dist/cli/chunks/queen-coordinator-RW3NKO5A.js +2 -0
  192. package/dist/cli/chunks/real-embeddings-GK63VF35.js +2 -0
  193. package/dist/cli/chunks/roocode-installer-F4E2LAYR.js +4 -0
  194. package/dist/cli/chunks/router-RJGHWDQ3.js +2 -0
  195. package/dist/cli/chunks/routing-feedback-ZXBXFKX6.js +2 -0
  196. package/dist/cli/chunks/routing-handler-VNKFUUGB.js +20 -0
  197. package/dist/cli/chunks/ruvector-commands-2TLNHC3A.js +8 -0
  198. package/dist/cli/chunks/rvf-dual-writer-MQW2SJLT.js +2 -0
  199. package/dist/cli/chunks/rvf-native-adapter-LKFKTMUN.js +2 -0
  200. package/dist/cli/chunks/safe-db-G22E5ROA.js +2 -0
  201. package/dist/cli/chunks/schedule-Y7VVCPYV.js +2 -0
  202. package/dist/cli/chunks/scheduler-AUQIFQB7.js +2 -0
  203. package/dist/cli/chunks/security-EBEG2OPU.js +14 -0
  204. package/dist/cli/chunks/shared-rvf-dual-writer-BVSCQAFS.js +2 -0
  205. package/dist/cli/chunks/sqlite-persistence-JAVHUGGL.js +2 -0
  206. package/dist/cli/chunks/status-handler-VZ32M4G4.js +45 -0
  207. package/dist/cli/chunks/structural-health-K6LRCKV6.js +2 -0
  208. package/dist/cli/chunks/sync-MHSHNLIM.js +23 -0
  209. package/dist/cli/chunks/task-handler-JNOIBZ2G.js +49 -0
  210. package/dist/cli/chunks/task-handlers-P5DSUKND.js +2 -0
  211. package/dist/cli/chunks/test-DO22BNIL.js +33 -0
  212. package/dist/cli/chunks/test-scheduling-VLRQZEFL.js +15 -0
  213. package/dist/cli/chunks/token-bootstrap-4VJKGVMK.js +2 -0
  214. package/dist/cli/chunks/token-usage-LG3PXRXH.js +25 -0
  215. package/dist/cli/chunks/transformers-GY7SIKEU.js +2 -0
  216. package/dist/cli/chunks/tree-sitter-wasm-parser-FT2KB66N.js +2 -0
  217. package/dist/cli/chunks/types-QJGNBKP2.js +2 -0
  218. package/dist/cli/chunks/unified-memory-XYGENQUT.js +2 -0
  219. package/dist/cli/chunks/unified-memory-hnsw-MVEGQBF3.js +2 -0
  220. package/dist/cli/chunks/unified-persistence-PFRCWEUG.js +2 -0
  221. package/dist/cli/chunks/validate-VQCRSVNQ.js +21 -0
  222. package/dist/cli/chunks/validate-swarm-A5DHAWTP.js +14 -0
  223. package/dist/cli/chunks/vibium-RZBSL4EB.js +2 -0
  224. package/dist/cli/chunks/visual-security-V47BLGJM.js +2 -0
  225. package/dist/cli/chunks/web-tree-sitter-7C4NXEOF.js +2 -0
  226. package/dist/cli/chunks/windsurf-installer-ES3KPQG3.js +7 -0
  227. package/dist/cli/chunks/witness-chain-BR63P4A7.js +2 -0
  228. package/dist/cli/chunks/workflow-JETHX4ML.js +51 -0
  229. package/dist/cli/chunks/workflow-orchestrator-7PZMX3JZ.js +2 -0
  230. package/dist/cli/chunks/wrappers-WP5RH745.js +2 -0
  231. package/dist/cli/commands/daemon.d.ts +13 -0
  232. package/dist/cli/commands/daemon.js +224 -0
  233. package/dist/cli/commands/hooks-handlers/hooks-shared.js +2 -1
  234. package/dist/cli/commands/plugin.d.ts +12 -0
  235. package/dist/cli/commands/plugin.js +135 -0
  236. package/dist/cli/commands/workflow.d.ts +10 -0
  237. package/dist/cli/commands/workflow.js +587 -0
  238. package/dist/cli/handlers/brain-handler.js +13 -8
  239. package/dist/cli/handlers/heartbeat-handler.d.ts +1 -0
  240. package/dist/cli/handlers/heartbeat-handler.js +20 -10
  241. package/dist/cli/handlers/hypergraph-handler.js +3 -3
  242. package/dist/cli/handlers/init-handler.js +10 -9
  243. package/dist/cli/handlers/interfaces.d.ts +4 -4
  244. package/dist/cli/index.js +159 -638
  245. package/dist/cli/lazy-registry.d.ts +27 -0
  246. package/dist/cli/lazy-registry.js +70 -0
  247. package/dist/context/compaction/context-budget.d.ts +71 -0
  248. package/dist/context/compaction/context-budget.js +120 -0
  249. package/dist/context/compaction/index.d.ts +96 -0
  250. package/dist/context/compaction/index.js +259 -0
  251. package/dist/context/compaction/llm-caller-adapter.d.ts +14 -0
  252. package/dist/context/compaction/llm-caller-adapter.js +47 -0
  253. package/dist/context/compaction/tier1-microcompact.d.ts +33 -0
  254. package/dist/context/compaction/tier1-microcompact.js +47 -0
  255. package/dist/context/compaction/tier2-session-summary.d.ts +72 -0
  256. package/dist/context/compaction/tier2-session-summary.js +172 -0
  257. package/dist/context/compaction/tier3-llm-compact.d.ts +65 -0
  258. package/dist/context/compaction/tier3-llm-compact.js +166 -0
  259. package/dist/context/compaction/tier4-reactive.d.ts +54 -0
  260. package/dist/context/compaction/tier4-reactive.js +129 -0
  261. package/dist/coordination/consensus/providers/claude-provider.d.ts +1 -0
  262. package/dist/coordination/consensus/providers/claude-provider.js +23 -3
  263. package/dist/domains/test-generation/generators/base-test-generator.d.ts +1 -1
  264. package/dist/domains/test-generation/generators/base-test-generator.js +11 -11
  265. package/dist/domains/test-generation/generators/go-test-generator.js +12 -12
  266. package/dist/domains/test-generation/generators/junit5-generator.js +9 -9
  267. package/dist/domains/test-generation/generators/kotlin-junit-generator.js +10 -10
  268. package/dist/domains/test-generation/generators/pytest-generator.js +8 -8
  269. package/dist/domains/test-generation/generators/swift-testing-generator.js +8 -8
  270. package/dist/domains/test-generation/generators/test-value-helpers.d.ts +20 -0
  271. package/dist/domains/test-generation/generators/test-value-helpers.js +48 -0
  272. package/dist/domains/test-generation/generators/xunit-generator.js +11 -11
  273. package/dist/hooks/cross-phase-hooks.d.ts +11 -0
  274. package/dist/hooks/cross-phase-hooks.js +73 -9
  275. package/dist/hooks/security/config-snapshot.d.ts +21 -0
  276. package/dist/hooks/security/config-snapshot.js +33 -0
  277. package/dist/hooks/security/exit-codes.d.ts +28 -0
  278. package/dist/hooks/security/exit-codes.js +33 -0
  279. package/dist/hooks/security/index.d.ts +15 -0
  280. package/dist/hooks/security/index.js +15 -0
  281. package/dist/hooks/security/ssrf-guard.d.ts +25 -0
  282. package/dist/hooks/security/ssrf-guard.js +69 -0
  283. package/dist/index.d.ts +1 -1
  284. package/dist/index.js +1 -2
  285. package/dist/init/init-wizard-hooks.js +15 -1
  286. package/dist/init/phases/07-hooks.js +2 -2
  287. package/dist/init/settings-merge.js +3 -7
  288. package/dist/kernel/kernel.js +35 -0
  289. package/dist/kernel/memory-backend.js +3 -1
  290. package/dist/mcp/bundle.js +416 -362
  291. package/dist/mcp/entry.js +132 -77
  292. package/dist/mcp/http-server.js +4 -1
  293. package/dist/mcp/index.d.ts +2 -2
  294. package/dist/mcp/index.js +5 -4
  295. package/dist/mcp/middleware/batch-executor.d.ts +46 -0
  296. package/dist/mcp/middleware/batch-executor.js +150 -0
  297. package/dist/mcp/middleware/microcompact.d.ts +97 -0
  298. package/dist/mcp/middleware/microcompact.js +179 -0
  299. package/dist/mcp/middleware/middleware-chain.d.ts +37 -0
  300. package/dist/mcp/middleware/middleware-chain.js +60 -0
  301. package/dist/mcp/protocol-server.d.ts +16 -0
  302. package/dist/mcp/protocol-server.js +140 -36
  303. package/dist/mcp/services/session-durability-middleware.d.ts +22 -0
  304. package/dist/mcp/services/session-durability-middleware.js +64 -0
  305. package/dist/mcp/services/session-resume.d.ts +29 -0
  306. package/dist/mcp/services/session-resume.js +221 -0
  307. package/dist/mcp/services/session-store.d.ts +84 -0
  308. package/dist/mcp/services/session-store.js +163 -0
  309. package/dist/mcp/tool-registry.d.ts +9 -0
  310. package/dist/mcp/tool-registry.js +30 -1
  311. package/dist/mcp/types.d.ts +1 -0
  312. package/dist/plugins/cache.d.ts +44 -0
  313. package/dist/plugins/cache.js +149 -0
  314. package/dist/plugins/index.d.ts +15 -0
  315. package/dist/plugins/index.js +15 -0
  316. package/dist/plugins/lifecycle.d.ts +67 -0
  317. package/dist/plugins/lifecycle.js +175 -0
  318. package/dist/plugins/manifest.d.ts +45 -0
  319. package/dist/plugins/manifest.js +173 -0
  320. package/dist/plugins/resolver.d.ts +37 -0
  321. package/dist/plugins/resolver.js +80 -0
  322. package/dist/plugins/security.d.ts +23 -0
  323. package/dist/plugins/security.js +125 -0
  324. package/dist/plugins/sources/github.d.ts +17 -0
  325. package/dist/plugins/sources/github.js +77 -0
  326. package/dist/plugins/sources/local.d.ts +20 -0
  327. package/dist/plugins/sources/local.js +32 -0
  328. package/dist/plugins/sources/npm.d.ts +18 -0
  329. package/dist/plugins/sources/npm.js +82 -0
  330. package/dist/shared/llm/retry.d.ts +5 -2
  331. package/dist/shared/llm/retry.js +7 -3
  332. package/dist/shared/prompt-cache-latch.d.ts +41 -0
  333. package/dist/shared/prompt-cache-latch.js +63 -0
  334. package/dist/shared/retry-engine.d.ts +77 -0
  335. package/dist/shared/retry-engine.js +194 -0
  336. package/dist/workers/daemon.d.ts +8 -0
  337. package/dist/workers/daemon.js +13 -0
  338. package/dist/workers/quality-daemon/ci-monitor.d.ts +55 -0
  339. package/dist/workers/quality-daemon/ci-monitor.js +147 -0
  340. package/dist/workers/quality-daemon/coverage-delta.d.ts +72 -0
  341. package/dist/workers/quality-daemon/coverage-delta.js +135 -0
  342. package/dist/workers/quality-daemon/git-watcher.d.ts +51 -0
  343. package/dist/workers/quality-daemon/git-watcher.js +209 -0
  344. package/dist/workers/quality-daemon/index.d.ts +119 -0
  345. package/dist/workers/quality-daemon/index.js +343 -0
  346. package/dist/workers/quality-daemon/nightly-consolidation.d.ts +74 -0
  347. package/dist/workers/quality-daemon/nightly-consolidation.js +136 -0
  348. package/dist/workers/quality-daemon/notification-service.d.ts +67 -0
  349. package/dist/workers/quality-daemon/notification-service.js +178 -0
  350. package/dist/workers/quality-daemon/persistent-memory.d.ts +31 -0
  351. package/dist/workers/quality-daemon/persistent-memory.js +30 -0
  352. package/dist/workers/quality-daemon/priority-queue.d.ts +97 -0
  353. package/dist/workers/quality-daemon/priority-queue.js +126 -0
  354. package/dist/workers/quality-daemon/test-suggester.d.ts +50 -0
  355. package/dist/workers/quality-daemon/test-suggester.js +121 -0
  356. package/dist/workers/worker-manager.js +2 -1
  357. package/package.json +1 -1
  358. package/dist/mcp/server.d.ts +0 -46
  359. package/dist/mcp/server.js +0 -802
@@ -1,802 +0,0 @@
1
- /**
2
- * Agentic QE v3 - MCP Server
3
- * Model Context Protocol server for AI integration
4
- */
5
- import { createToolRegistry } from './tool-registry';
6
- import {
7
- // Core handlers
8
- handleFleetInit, handleFleetStatus, handleFleetHealth, disposeFleet,
9
- // Task handlers
10
- handleTaskSubmit, handleTaskList, handleTaskStatus, handleTaskCancel, handleTaskOrchestrate,
11
- // Agent handlers
12
- handleAgentList, handleAgentSpawn, handleAgentMetrics, handleAgentStatus,
13
- // Domain handlers
14
- handleTestGenerate, handleTestExecute, handleCoverageAnalyze, handleQualityAssess, handleSecurityScan, handleContractValidate, handleAccessibilityTest, handleChaosTest, handleDefectPredict, handleRequirementsValidate, handleCodeIndex,
15
- // Hypergraph query handler
16
- handleHypergraphQuery,
17
- // Memory handlers
18
- handleMemoryStore, handleMemoryRetrieve, handleMemoryQuery, handleMemoryDelete, handleMemoryUsage, handleMemoryShare,
19
- // Cross-phase handlers
20
- handleCrossPhaseStore, handleCrossPhaseQuery, handleAgentComplete, handlePhaseStart, handlePhaseEnd, handleCrossPhaseStats, handleFormatSignals, handleCrossPhaseCleanup,
21
- // Pipeline handlers (Imp-9: YAML Deterministic Pipelines)
22
- handlePipelineLoad, handlePipelineRun, handlePipelineList, handlePipelineValidate,
23
- // Validation Pipeline handler (BMAD-003)
24
- handleValidationPipeline,
25
- // Heartbeat handlers (Imp-10: Token-Free Heartbeat Scheduler)
26
- handleHeartbeatStatus, handleHeartbeatTrigger, handleHeartbeatLog, } from './handlers';
27
- // ============================================================================
28
- // Tool Definitions
29
- // ============================================================================
30
- const CORE_TOOLS = [
31
- // Fleet Init
32
- {
33
- definition: {
34
- name: 'mcp__agentic_qe__fleet_init',
35
- description: 'Initialize the AQE v3 fleet with specified topology and configuration',
36
- category: 'core',
37
- parameters: [
38
- { name: 'topology', type: 'string', description: 'Swarm topology type', enum: ['hierarchical', 'mesh', 'ring', 'adaptive'] },
39
- { name: 'maxAgents', type: 'number', description: 'Maximum number of agents', default: 15 },
40
- { name: 'testingFocus', type: 'array', description: 'Areas of testing focus' },
41
- { name: 'frameworks', type: 'array', description: 'Testing frameworks to support' },
42
- { name: 'environments', type: 'array', description: 'Target environments' },
43
- { name: 'enabledDomains', type: 'array', description: 'Domains to enable' },
44
- { name: 'lazyLoading', type: 'boolean', description: 'Enable lazy loading', default: true },
45
- { name: 'memoryBackend', type: 'string', description: 'Memory backend type', enum: ['sqlite', 'agentdb', 'hybrid'] },
46
- ],
47
- },
48
- handler: handleFleetInit,
49
- },
50
- // Fleet Status
51
- {
52
- definition: {
53
- name: 'mcp__agentic_qe__fleet_status',
54
- description: 'Get current fleet status including agents, tasks, and health',
55
- category: 'core',
56
- parameters: [
57
- { name: 'verbose', type: 'boolean', description: 'Include detailed information', default: false },
58
- { name: 'includeDomains', type: 'boolean', description: 'Include domain status', default: false },
59
- { name: 'includeMetrics', type: 'boolean', description: 'Include performance metrics', default: true },
60
- ],
61
- },
62
- handler: handleFleetStatus,
63
- },
64
- // Fleet Health
65
- {
66
- definition: {
67
- name: 'mcp__agentic_qe__fleet_health',
68
- description: 'Check fleet and domain health status',
69
- category: 'core',
70
- parameters: [
71
- { name: 'domain', type: 'string', description: 'Specific domain to check' },
72
- { name: 'detailed', type: 'boolean', description: 'Include detailed health info', default: false },
73
- ],
74
- },
75
- handler: handleFleetHealth,
76
- },
77
- ];
78
- const TASK_TOOLS = [
79
- // Task Submit
80
- {
81
- definition: {
82
- name: 'mcp__agentic_qe__task_submit',
83
- description: 'Submit a task to the Queen Coordinator for execution',
84
- category: 'task',
85
- parameters: [
86
- { name: 'type', type: 'string', description: 'Task type', required: true },
87
- { name: 'priority', type: 'string', description: 'Task priority', enum: ['p0', 'p1', 'p2', 'p3'], default: 'p1' },
88
- { name: 'targetDomains', type: 'array', description: 'Target domains for task' },
89
- { name: 'payload', type: 'object', description: 'Task payload data' },
90
- { name: 'timeout', type: 'number', description: 'Task timeout in ms', default: 300000 },
91
- ],
92
- },
93
- handler: handleTaskSubmit,
94
- },
95
- // Task List
96
- {
97
- definition: {
98
- name: 'mcp__agentic_qe__task_list',
99
- description: 'List tasks with optional filtering',
100
- category: 'task',
101
- parameters: [
102
- { name: 'status', type: 'string', description: 'Filter by status' },
103
- { name: 'priority', type: 'string', description: 'Filter by priority' },
104
- { name: 'domain', type: 'string', description: 'Filter by domain' },
105
- { name: 'limit', type: 'number', description: 'Maximum results', default: 50 },
106
- ],
107
- },
108
- handler: handleTaskList,
109
- },
110
- // Task Status
111
- {
112
- definition: {
113
- name: 'mcp__agentic_qe__task_status',
114
- description: 'Get detailed status of a specific task',
115
- category: 'task',
116
- parameters: [
117
- { name: 'taskId', type: 'string', description: 'Task ID', required: true },
118
- { name: 'detailed', type: 'boolean', description: 'Include full result data', default: false },
119
- ],
120
- },
121
- handler: handleTaskStatus,
122
- },
123
- // Task Cancel
124
- {
125
- definition: {
126
- name: 'mcp__agentic_qe__task_cancel',
127
- description: 'Cancel a running or pending task',
128
- category: 'task',
129
- parameters: [
130
- { name: 'taskId', type: 'string', description: 'Task ID to cancel', required: true },
131
- ],
132
- },
133
- handler: handleTaskCancel,
134
- },
135
- // Task Orchestrate
136
- {
137
- definition: {
138
- name: 'mcp__agentic_qe__task_orchestrate',
139
- description: 'Orchestrate a high-level QE task across multiple agents',
140
- category: 'task',
141
- parameters: [
142
- { name: 'task', type: 'string', description: 'Task description', required: true },
143
- { name: 'strategy', type: 'string', description: 'Execution strategy', enum: ['parallel', 'sequential', 'adaptive'], default: 'adaptive' },
144
- { name: 'priority', type: 'string', description: 'Task priority', enum: ['low', 'medium', 'high', 'critical'], default: 'medium' },
145
- { name: 'maxAgents', type: 'number', description: 'Maximum agents to use', default: 5 },
146
- { name: 'context', type: 'object', description: 'Additional context (project, branch, etc.)' },
147
- ],
148
- },
149
- handler: handleTaskOrchestrate,
150
- },
151
- ];
152
- const AGENT_TOOLS = [
153
- // Agent List
154
- {
155
- definition: {
156
- name: 'mcp__agentic_qe__agent_list',
157
- description: 'List all active agents with optional filtering',
158
- category: 'agent',
159
- parameters: [
160
- { name: 'domain', type: 'string', description: 'Filter by domain' },
161
- { name: 'status', type: 'string', description: 'Filter by status', enum: ['idle', 'busy', 'failed'] },
162
- { name: 'limit', type: 'number', description: 'Maximum results', default: 50 },
163
- ],
164
- },
165
- handler: handleAgentList,
166
- },
167
- // Agent Spawn
168
- {
169
- definition: {
170
- name: 'mcp__agentic_qe__agent_spawn',
171
- description: 'Spawn a new agent in a specific domain',
172
- category: 'agent',
173
- parameters: [
174
- { name: 'domain', type: 'string', description: 'Domain for the agent', required: true },
175
- { name: 'type', type: 'string', description: 'Agent type', default: 'worker' },
176
- { name: 'capabilities', type: 'array', description: 'Agent capabilities' },
177
- ],
178
- },
179
- handler: handleAgentSpawn,
180
- },
181
- // Agent Metrics
182
- {
183
- definition: {
184
- name: 'mcp__agentic_qe__agent_metrics',
185
- description: 'Get performance metrics for agents',
186
- category: 'agent',
187
- parameters: [
188
- { name: 'agentId', type: 'string', description: 'Specific agent ID' },
189
- { name: 'metric', type: 'string', description: 'Metric type', enum: ['all', 'cpu', 'memory', 'tasks', 'performance'], default: 'all' },
190
- ],
191
- },
192
- handler: handleAgentMetrics,
193
- },
194
- // Agent Status
195
- {
196
- definition: {
197
- name: 'mcp__agentic_qe__agent_status',
198
- description: 'Get detailed status of a specific agent',
199
- category: 'agent',
200
- parameters: [
201
- { name: 'agentId', type: 'string', description: 'Agent ID', required: true },
202
- ],
203
- },
204
- handler: handleAgentStatus,
205
- },
206
- ];
207
- const DOMAIN_TOOLS = [
208
- // Test Generate
209
- {
210
- definition: {
211
- name: 'mcp__agentic_qe__test_generate_enhanced',
212
- description: 'Generate tests with AI enhancement and pattern recognition',
213
- category: 'domain',
214
- domain: 'test-generation',
215
- lazyLoad: true,
216
- parameters: [
217
- { name: 'sourceCode', type: 'string', description: 'Source code to generate tests for' },
218
- { name: 'filePath', type: 'string', description: 'Path to source file' },
219
- { name: 'language', type: 'string', description: 'Programming language', enum: ['javascript', 'typescript', 'python', 'java', 'go'] },
220
- { name: 'framework', type: 'string', description: 'Test framework' },
221
- { name: 'testType', type: 'string', description: 'Type of tests', enum: ['unit', 'integration', 'e2e', 'property-based'] },
222
- { name: 'coverageGoal', type: 'number', description: 'Target coverage percentage', default: 80 },
223
- { name: 'aiEnhancement', type: 'boolean', description: 'Enable AI-powered analysis', default: true },
224
- { name: 'detectAntiPatterns', type: 'boolean', description: 'Detect code anti-patterns', default: false },
225
- ],
226
- },
227
- handler: handleTestGenerate,
228
- },
229
- // Test Execute
230
- {
231
- definition: {
232
- name: 'mcp__agentic_qe__test_execute_parallel',
233
- description: 'Execute tests in parallel with retry logic',
234
- category: 'domain',
235
- domain: 'test-execution',
236
- lazyLoad: true,
237
- parameters: [
238
- { name: 'testFiles', type: 'array', description: 'Test files to execute' },
239
- { name: 'testSuites', type: 'array', description: 'Test suites to run' },
240
- { name: 'parallel', type: 'boolean', description: 'Enable parallel execution', default: true },
241
- { name: 'parallelism', type: 'number', description: 'Number of parallel workers', default: 4 },
242
- { name: 'retryCount', type: 'number', description: 'Number of retries', default: 3 },
243
- { name: 'timeout', type: 'number', description: 'Test timeout in ms', default: 60000 },
244
- { name: 'collectCoverage', type: 'boolean', description: 'Collect coverage data', default: false },
245
- { name: 'reportFormat', type: 'string', description: 'Report format', enum: ['json', 'junit', 'html', 'markdown'] },
246
- ],
247
- },
248
- handler: handleTestExecute,
249
- },
250
- // Coverage Analyze
251
- {
252
- definition: {
253
- name: 'mcp__agentic_qe__coverage_analyze_sublinear',
254
- description: 'Analyze coverage with O(log n) sublinear algorithm',
255
- category: 'domain',
256
- domain: 'coverage-analysis',
257
- lazyLoad: true,
258
- parameters: [
259
- { name: 'target', type: 'string', description: 'Target path to analyze' },
260
- { name: 'includeRisk', type: 'boolean', description: 'Include risk scoring', default: false },
261
- { name: 'detectGaps', type: 'boolean', description: 'Detect coverage gaps', default: true },
262
- { name: 'mlPowered', type: 'boolean', description: 'Use ML for gap detection', default: false },
263
- { name: 'prioritization', type: 'string', description: 'Gap prioritization strategy', enum: ['complexity', 'criticality', 'change-frequency', 'ml-confidence'] },
264
- ],
265
- },
266
- handler: handleCoverageAnalyze,
267
- },
268
- // Quality Assess
269
- {
270
- definition: {
271
- name: 'mcp__agentic_qe__quality_assess',
272
- description: 'Assess code quality with optional quality gate',
273
- category: 'domain',
274
- domain: 'quality-assessment',
275
- lazyLoad: true,
276
- parameters: [
277
- { name: 'target', type: 'string', description: 'Target path to analyze' },
278
- { name: 'runGate', type: 'boolean', description: 'Run quality gate evaluation', default: false },
279
- { name: 'threshold', type: 'number', description: 'Quality threshold', default: 80 },
280
- { name: 'metrics', type: 'array', description: 'Metrics to evaluate' },
281
- ],
282
- },
283
- handler: handleQualityAssess,
284
- },
285
- // Security Scan
286
- {
287
- definition: {
288
- name: 'mcp__agentic_qe__security_scan_comprehensive',
289
- description: 'Comprehensive security scanning with SAST/DAST',
290
- category: 'domain',
291
- domain: 'security-compliance',
292
- lazyLoad: true,
293
- parameters: [
294
- { name: 'sast', type: 'boolean', description: 'Run SAST scan', default: true },
295
- { name: 'dast', type: 'boolean', description: 'Run DAST scan', default: false },
296
- { name: 'compliance', type: 'array', description: 'Compliance frameworks to check' },
297
- { name: 'target', type: 'string', description: 'Target to scan' },
298
- ],
299
- },
300
- handler: handleSecurityScan,
301
- },
302
- // Contract Validate
303
- {
304
- definition: {
305
- name: 'mcp__agentic_qe__contract_validate',
306
- description: 'Validate API contracts for breaking changes',
307
- category: 'domain',
308
- domain: 'contract-testing',
309
- lazyLoad: true,
310
- parameters: [
311
- { name: 'contractPath', type: 'string', description: 'Path to contract file' },
312
- { name: 'providerUrl', type: 'string', description: 'Provider URL' },
313
- { name: 'consumerName', type: 'string', description: 'Consumer name' },
314
- { name: 'checkBreakingChanges', type: 'boolean', description: 'Check for breaking changes', default: true },
315
- ],
316
- },
317
- handler: handleContractValidate,
318
- },
319
- // Accessibility Test
320
- {
321
- definition: {
322
- name: 'mcp__agentic_qe__accessibility_test',
323
- description: 'Test accessibility against WCAG standards',
324
- category: 'domain',
325
- domain: 'visual-accessibility',
326
- lazyLoad: true,
327
- parameters: [
328
- { name: 'url', type: 'string', description: 'URL to test' },
329
- { name: 'standard', type: 'string', description: 'Accessibility standard', enum: ['wcag21-aa', 'wcag21-aaa', 'wcag22-aa', 'section508'] },
330
- { name: 'includeScreenReader', type: 'boolean', description: 'Include screen reader tests', default: false },
331
- ],
332
- },
333
- handler: handleAccessibilityTest,
334
- },
335
- // Chaos Test
336
- {
337
- definition: {
338
- name: 'mcp__agentic_qe__chaos_test',
339
- description: 'Run chaos engineering tests',
340
- category: 'domain',
341
- domain: 'chaos-resilience',
342
- lazyLoad: true,
343
- parameters: [
344
- { name: 'faultType', type: 'string', description: 'Type of fault to inject', enum: ['latency', 'error', 'timeout', 'cpu', 'memory', 'network'] },
345
- { name: 'target', type: 'string', description: 'Target service' },
346
- { name: 'duration', type: 'number', description: 'Fault duration in ms', default: 30000 },
347
- { name: 'intensity', type: 'number', description: 'Fault intensity (0-100)', default: 50 },
348
- { name: 'dryRun', type: 'boolean', description: 'Dry run mode', default: true },
349
- ],
350
- },
351
- handler: handleChaosTest,
352
- },
353
- // Defect Predict
354
- {
355
- definition: {
356
- name: 'mcp__agentic_qe__defect_predict',
357
- description: 'Predict potential defects using AI',
358
- category: 'domain',
359
- domain: 'defect-intelligence',
360
- lazyLoad: true,
361
- parameters: [
362
- { name: 'target', type: 'string', description: 'Target path' },
363
- { name: 'lookback', type: 'number', description: 'Lookback period in days', default: 30 },
364
- { name: 'minConfidence', type: 'number', description: 'Minimum confidence threshold', default: 0.7 },
365
- ],
366
- },
367
- handler: handleDefectPredict,
368
- },
369
- // Requirements Validate
370
- {
371
- definition: {
372
- name: 'mcp__agentic_qe__requirements_validate',
373
- description: 'Validate requirements and generate BDD scenarios',
374
- category: 'domain',
375
- domain: 'requirements-validation',
376
- lazyLoad: true,
377
- parameters: [
378
- { name: 'requirementsPath', type: 'string', description: 'Path to requirements' },
379
- { name: 'testPath', type: 'string', description: 'Path to tests' },
380
- { name: 'generateBDD', type: 'boolean', description: 'Generate BDD scenarios', default: false },
381
- ],
382
- },
383
- handler: handleRequirementsValidate,
384
- },
385
- // Code Index
386
- {
387
- definition: {
388
- name: 'mcp__agentic_qe__code_index',
389
- description: 'Index code for knowledge graph',
390
- category: 'domain',
391
- domain: 'code-intelligence',
392
- lazyLoad: true,
393
- parameters: [
394
- { name: 'target', type: 'string', description: 'Target path' },
395
- { name: 'incremental', type: 'boolean', description: 'Incremental indexing', default: false },
396
- { name: 'gitSince', type: 'string', description: 'Index changes since git ref' },
397
- ],
398
- },
399
- handler: handleCodeIndex,
400
- },
401
- // Hypergraph Query
402
- {
403
- definition: {
404
- name: 'mcp__agentic_qe__hypergraph_query',
405
- description: 'Query the code knowledge hypergraph for untested functions, impacted tests, coverage gaps, and stats',
406
- category: 'domain',
407
- domain: 'code-intelligence',
408
- lazyLoad: true,
409
- parameters: [
410
- { name: 'query', type: 'string', description: 'Query type: stats, untested, impacted, gaps', required: true },
411
- { name: 'files', type: 'array', description: 'Changed files (required for "impacted" query)' },
412
- { name: 'maxCoverage', type: 'number', description: 'Max coverage threshold for "gaps" query (default: 50)' },
413
- { name: 'limit', type: 'number', description: 'Max results (default: 20)' },
414
- ],
415
- },
416
- handler: handleHypergraphQuery,
417
- },
418
- // Validation Pipeline (BMAD-003)
419
- {
420
- definition: {
421
- name: 'mcp__agentic_qe__validation_pipeline',
422
- description: 'Run structured validation pipeline (13-step requirements validation with gate enforcement and scoring)',
423
- category: 'domain',
424
- domain: 'requirements-validation',
425
- parameters: [
426
- { name: 'filePath', type: 'string', description: 'Path to the document to validate' },
427
- { name: 'content', type: 'string', description: 'Inline content to validate (alternative to filePath)' },
428
- { name: 'pipeline', type: 'string', description: 'Pipeline type', default: 'requirements', enum: ['requirements'] },
429
- { name: 'steps', type: 'array', description: 'Specific step IDs to run (default: all 13)' },
430
- { name: 'continueOnFailure', type: 'boolean', description: 'Continue past blocking failures', default: false },
431
- { name: 'format', type: 'string', description: 'Output format', default: 'markdown', enum: ['markdown', 'json'] },
432
- ],
433
- },
434
- handler: handleValidationPipeline,
435
- },
436
- ];
437
- const MEMORY_TOOLS = [
438
- // Memory Store
439
- {
440
- definition: {
441
- name: 'mcp__agentic_qe__memory_store',
442
- description: 'Store data in memory with optional TTL',
443
- category: 'memory',
444
- parameters: [
445
- { name: 'key', type: 'string', description: 'Memory key', required: true },
446
- { name: 'value', type: 'object', description: 'Value to store', required: true },
447
- { name: 'namespace', type: 'string', description: 'Memory namespace', default: 'default' },
448
- { name: 'ttl', type: 'number', description: 'Time to live in ms' },
449
- { name: 'metadata', type: 'object', description: 'Additional metadata' },
450
- { name: 'persist', type: 'boolean', description: 'Persist to storage', default: false },
451
- ],
452
- },
453
- handler: handleMemoryStore,
454
- },
455
- // Memory Retrieve
456
- {
457
- definition: {
458
- name: 'mcp__agentic_qe__memory_retrieve',
459
- description: 'Retrieve data from memory',
460
- category: 'memory',
461
- parameters: [
462
- { name: 'key', type: 'string', description: 'Memory key', required: true },
463
- { name: 'namespace', type: 'string', description: 'Memory namespace', default: 'default' },
464
- { name: 'includeMetadata', type: 'boolean', description: 'Include metadata', default: false },
465
- ],
466
- },
467
- handler: handleMemoryRetrieve,
468
- },
469
- // Memory Query
470
- {
471
- definition: {
472
- name: 'mcp__agentic_qe__memory_query',
473
- description: 'Query memory with pattern matching',
474
- category: 'memory',
475
- parameters: [
476
- { name: 'pattern', type: 'string', description: 'Key pattern (supports wildcards)' },
477
- { name: 'namespace', type: 'string', description: 'Memory namespace' },
478
- { name: 'limit', type: 'number', description: 'Maximum results', default: 100 },
479
- { name: 'offset', type: 'number', description: 'Pagination offset', default: 0 },
480
- { name: 'includeExpired', type: 'boolean', description: 'Include expired entries', default: false },
481
- ],
482
- },
483
- handler: handleMemoryQuery,
484
- },
485
- // Memory Delete
486
- {
487
- definition: {
488
- name: 'mcp__agentic_qe__memory_delete',
489
- description: 'Delete memory entry',
490
- category: 'memory',
491
- parameters: [
492
- { name: 'key', type: 'string', description: 'Memory key', required: true },
493
- { name: 'namespace', type: 'string', description: 'Memory namespace', default: 'default' },
494
- ],
495
- },
496
- handler: handleMemoryDelete,
497
- },
498
- // Memory Usage
499
- {
500
- definition: {
501
- name: 'mcp__agentic_qe__memory_usage',
502
- description: 'Get memory usage statistics',
503
- category: 'memory',
504
- parameters: [],
505
- },
506
- handler: handleMemoryUsage,
507
- },
508
- // Memory Share
509
- {
510
- definition: {
511
- name: 'mcp__agentic_qe__memory_share',
512
- description: 'Share knowledge between agents',
513
- category: 'memory',
514
- parameters: [
515
- { name: 'sourceAgentId', type: 'string', description: 'Source agent ID', required: true },
516
- { name: 'targetAgentIds', type: 'array', description: 'Target agent IDs', required: true },
517
- { name: 'knowledgeDomain', type: 'string', description: 'Knowledge domain', required: true },
518
- { name: 'knowledgeContent', type: 'object', description: 'Knowledge content', required: true },
519
- ],
520
- },
521
- handler: handleMemoryShare,
522
- },
523
- ];
524
- const CROSS_PHASE_TOOLS = [
525
- // Cross-Phase Store
526
- {
527
- definition: {
528
- name: 'mcp__agentic_qe__cross_phase_store',
529
- description: 'Store a cross-phase signal for QCSD feedback loops (strategic, tactical, operational, quality-criteria)',
530
- category: 'cross-phase',
531
- parameters: [
532
- { name: 'loop', type: 'string', description: 'Feedback loop type', required: true, enum: ['strategic', 'tactical', 'operational', 'quality-criteria'] },
533
- { name: 'data', type: 'object', description: 'Signal data (riskWeights, factorWeights, flakyPatterns, etc.)', required: true },
534
- ],
535
- },
536
- handler: handleCrossPhaseStore,
537
- },
538
- // Cross-Phase Query
539
- {
540
- definition: {
541
- name: 'mcp__agentic_qe__cross_phase_query',
542
- description: 'Query cross-phase signals by loop type with optional filters',
543
- category: 'cross-phase',
544
- parameters: [
545
- { name: 'loop', type: 'string', description: 'Feedback loop type', required: true, enum: ['strategic', 'tactical', 'operational', 'quality-criteria'] },
546
- { name: 'maxAge', type: 'string', description: 'Maximum signal age (e.g., "30d", "24h")', required: false },
547
- { name: 'filter', type: 'object', description: 'Additional filters', required: false },
548
- ],
549
- },
550
- handler: handleCrossPhaseQuery,
551
- },
552
- // Agent Complete Hook
553
- {
554
- definition: {
555
- name: 'mcp__agentic_qe__agent_complete',
556
- description: 'Trigger cross-phase hooks when an agent completes (auto-stores relevant signals)',
557
- category: 'cross-phase',
558
- parameters: [
559
- { name: 'agentName', type: 'string', description: 'Name of the completed agent', required: true },
560
- { name: 'result', type: 'object', description: 'Agent result data', required: true },
561
- ],
562
- },
563
- handler: handleAgentComplete,
564
- },
565
- // Phase Start Hook
566
- {
567
- definition: {
568
- name: 'mcp__agentic_qe__phase_start',
569
- description: 'Trigger phase start hooks to get injected cross-phase signals for agents',
570
- category: 'cross-phase',
571
- parameters: [
572
- { name: 'phase', type: 'string', description: 'QCSD phase name', required: true, enum: ['ideation', 'refinement', 'development', 'cicd', 'production'] },
573
- { name: 'context', type: 'object', description: 'Phase context data', required: false },
574
- ],
575
- },
576
- handler: handlePhaseStart,
577
- },
578
- // Phase End Hook
579
- {
580
- definition: {
581
- name: 'mcp__agentic_qe__phase_end',
582
- description: 'Trigger phase end hooks to store accumulated signals',
583
- category: 'cross-phase',
584
- parameters: [
585
- { name: 'phase', type: 'string', description: 'QCSD phase name', required: true, enum: ['ideation', 'refinement', 'development', 'cicd', 'production'] },
586
- { name: 'context', type: 'object', description: 'Phase result data', required: false },
587
- ],
588
- },
589
- handler: handlePhaseEnd,
590
- },
591
- // Cross-Phase Stats
592
- {
593
- definition: {
594
- name: 'mcp__agentic_qe__cross_phase_stats',
595
- description: 'Get cross-phase memory statistics (total signals, by loop, by namespace)',
596
- category: 'cross-phase',
597
- parameters: [],
598
- },
599
- handler: handleCrossPhaseStats,
600
- },
601
- // Format Signals
602
- {
603
- definition: {
604
- name: 'mcp__agentic_qe__format_signals',
605
- description: 'Format cross-phase signals for injection into agent prompts',
606
- category: 'cross-phase',
607
- parameters: [
608
- { name: 'signals', type: 'array', description: 'Signals to format', required: true },
609
- ],
610
- },
611
- handler: handleFormatSignals,
612
- },
613
- // Cross-Phase Cleanup
614
- {
615
- definition: {
616
- name: 'mcp__agentic_qe__cross_phase_cleanup',
617
- description: 'Clean up expired cross-phase signals',
618
- category: 'cross-phase',
619
- parameters: [],
620
- },
621
- handler: handleCrossPhaseCleanup,
622
- },
623
- ];
624
- // ============================================================================
625
- // MCP Server Class
626
- const PIPELINE_TOOLS = [
627
- // Pipeline Load
628
- {
629
- definition: {
630
- name: 'mcp__agentic_qe__pipeline_load',
631
- description: 'Load and register a YAML pipeline definition',
632
- category: 'coordination',
633
- parameters: [
634
- { name: 'yaml', type: 'string', description: 'YAML pipeline definition string', required: true },
635
- { name: 'variables', type: 'object', description: 'Variable substitutions for ${VAR} placeholders' },
636
- ],
637
- },
638
- handler: handlePipelineLoad,
639
- },
640
- // Pipeline Run
641
- {
642
- definition: {
643
- name: 'mcp__agentic_qe__pipeline_run',
644
- description: 'Execute a previously loaded pipeline by ID',
645
- category: 'coordination',
646
- parameters: [
647
- { name: 'pipelineId', type: 'string', description: 'Pipeline ID to execute', required: true },
648
- { name: 'input', type: 'object', description: 'Input data for pipeline execution' },
649
- ],
650
- },
651
- handler: handlePipelineRun,
652
- },
653
- // Pipeline List
654
- {
655
- definition: {
656
- name: 'mcp__agentic_qe__pipeline_list',
657
- description: 'List all registered pipelines (built-in and YAML)',
658
- category: 'coordination',
659
- parameters: [],
660
- },
661
- handler: handlePipelineList,
662
- },
663
- // Pipeline Validate
664
- {
665
- definition: {
666
- name: 'mcp__agentic_qe__pipeline_validate',
667
- description: 'Validate a YAML pipeline definition without registering it',
668
- category: 'coordination',
669
- parameters: [
670
- { name: 'yaml', type: 'string', description: 'YAML pipeline definition to validate', required: true },
671
- { name: 'variables', type: 'object', description: 'Variable substitutions for ${VAR} placeholders' },
672
- ],
673
- },
674
- handler: handlePipelineValidate,
675
- },
676
- ];
677
- // Imp-10: Token-Free Heartbeat Scheduler
678
- const HEARTBEAT_TOOLS = [
679
- // Heartbeat Status
680
- {
681
- definition: {
682
- name: 'mcp__agentic_qe__heartbeat_status',
683
- description: 'Get heartbeat scheduler status, health metrics, and last result',
684
- category: 'core',
685
- parameters: [],
686
- },
687
- handler: handleHeartbeatStatus,
688
- },
689
- // Heartbeat Trigger
690
- {
691
- definition: {
692
- name: 'mcp__agentic_qe__heartbeat_trigger',
693
- description: 'Trigger an immediate heartbeat maintenance cycle (SQL-only, zero tokens)',
694
- category: 'core',
695
- parameters: [
696
- { name: 'timeout', type: 'number', description: 'Timeout in milliseconds (default: 60000)' },
697
- ],
698
- },
699
- handler: handleHeartbeatTrigger,
700
- },
701
- // Heartbeat Log
702
- {
703
- definition: {
704
- name: 'mcp__agentic_qe__heartbeat_log',
705
- description: 'Read the daily heartbeat log for a specific date',
706
- category: 'core',
707
- parameters: [
708
- { name: 'date', type: 'string', description: 'Date in YYYY-MM-DD format (defaults to today)' },
709
- ],
710
- },
711
- handler: handleHeartbeatLog,
712
- },
713
- ];
714
- // ============================================================================
715
- export class MCPServer {
716
- registry;
717
- initialized = false;
718
- constructor() {
719
- this.registry = createToolRegistry();
720
- }
721
- /**
722
- * Initialize the server and register all tools
723
- */
724
- async initialize() {
725
- if (this.initialized) {
726
- return;
727
- }
728
- // Register all tools in a single consolidated loop
729
- const allTools = [
730
- ...CORE_TOOLS,
731
- ...TASK_TOOLS,
732
- ...AGENT_TOOLS,
733
- ...DOMAIN_TOOLS,
734
- ...MEMORY_TOOLS,
735
- ...CROSS_PHASE_TOOLS,
736
- ...PIPELINE_TOOLS,
737
- ...HEARTBEAT_TOOLS,
738
- ];
739
- this.registry.registerAll(allTools);
740
- this.initialized = true;
741
- }
742
- /**
743
- * Get tool registry
744
- */
745
- getRegistry() {
746
- return this.registry;
747
- }
748
- /**
749
- * Get all tool definitions
750
- */
751
- getTools() {
752
- return this.registry.getDefinitions();
753
- }
754
- /**
755
- * Get loaded tool definitions (for MCP protocol)
756
- */
757
- getLoadedTools() {
758
- return this.registry.getLoadedDefinitions();
759
- }
760
- /**
761
- * Invoke a tool
762
- */
763
- async invoke(toolName, params) {
764
- const result = await this.registry.invoke(toolName, params);
765
- if (!result.success) {
766
- throw new Error(result.error || 'Tool invocation failed');
767
- }
768
- return result.data;
769
- }
770
- /**
771
- * Load tools for a specific message (lazy loading)
772
- */
773
- loadToolsForMessage(message) {
774
- const domains = this.registry.loadForMessage(message);
775
- return domains;
776
- }
777
- /**
778
- * Get server statistics
779
- */
780
- getStats() {
781
- return this.registry.getStats();
782
- }
783
- /**
784
- * Dispose server resources
785
- */
786
- async dispose() {
787
- await disposeFleet();
788
- this.registry.clear();
789
- this.initialized = false;
790
- }
791
- }
792
- // ============================================================================
793
- // Factory Function
794
- // ============================================================================
795
- export function createMCPServer() {
796
- return new MCPServer();
797
- }
798
- // ============================================================================
799
- // Default Export
800
- // ============================================================================
801
- export default MCPServer;
802
- //# sourceMappingURL=server.js.map