agentic-qe 3.15.6 → 3.15.8

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 (441) hide show
  1. package/.claude/skills/skills-manifest.json +1 -1
  2. package/CHANGELOG.md +263 -0
  3. package/README.md +2 -0
  4. package/assets/skills/skills-manifest.json +1 -1
  5. package/dist/cli/bundle.js +8 -6
  6. package/dist/cli/chunks/adapter-FC4EY447.js +2 -0
  7. package/dist/cli/chunks/{agent-booster-wasm-SY7UCLBL.js → agent-booster-wasm-W3V5P7LE.js} +2 -2
  8. package/dist/cli/chunks/{agent-handler-KAMYBU3S.js → agent-handler-2NQFHAWE.js} +2 -2
  9. package/dist/cli/chunks/{agent-memory-branch-2CAW3KUM.js → agent-memory-branch-457ECHHK.js} +2 -2
  10. package/dist/cli/chunks/aqe-learning-engine-AUAL6UBL.js +2 -0
  11. package/dist/cli/chunks/{arena-QCCVIOAH.js → arena-IYBQ3GPY.js} +4 -4
  12. package/dist/cli/chunks/{arena-4OFLJ3R2.js → arena-JV3WSEHU.js} +2 -2
  13. package/dist/cli/chunks/{audit-RBDQJQJB.js → audit-5OS3T3K6.js} +3 -3
  14. package/dist/cli/chunks/base-2XML4WH7.js +2 -0
  15. package/dist/cli/chunks/{better-sqlite3-5JRACCDQ.js → better-sqlite3-IQKBFVAO.js} +2 -2
  16. package/dist/cli/chunks/{brain-handler-W4QIIRT4.js → brain-handler-KA3SGAFM.js} +3 -3
  17. package/dist/cli/chunks/{branch-enumerator-IBNGI572.js → branch-enumerator-QZDU2VOQ.js} +2 -2
  18. package/dist/cli/chunks/{browser-GMSCVAOI.js → browser-ZL7OLKJQ.js} +2 -2
  19. package/dist/cli/chunks/browser-workflow-2IFEUAAK.js +2 -0
  20. package/dist/cli/chunks/{chunk-6HWARQWV.js → chunk-22DOS3PM.js} +2 -2
  21. package/dist/cli/chunks/{chunk-VCONCVSY.js → chunk-2DPHFCMW.js} +2 -2
  22. package/dist/cli/chunks/{chunk-ALCIUWFC.js → chunk-2GSAAUW3.js} +1 -1
  23. package/dist/cli/chunks/{chunk-AX26QJ6T.js → chunk-2JCLACCS.js} +2 -2
  24. package/dist/cli/chunks/{chunk-7XTANLTN.js → chunk-2QRGIEQV.js} +1 -1
  25. package/dist/cli/chunks/{chunk-MP3FSUNB.js → chunk-2UN4JOTN.js} +2 -2
  26. package/dist/cli/chunks/{chunk-CR66HNAE.js → chunk-2ZRNXEVI.js} +1 -1
  27. package/dist/cli/chunks/{chunk-WKDWRRDT.js → chunk-3LFLO2WK.js} +2 -2
  28. package/dist/cli/chunks/{chunk-QLYO3H7E.js → chunk-3N627QRU.js} +2 -2
  29. package/dist/cli/chunks/{chunk-VVF337SV.js → chunk-4C3RYBTT.js} +2 -2
  30. package/dist/cli/chunks/{chunk-MQCTLTGE.js → chunk-4C7KE2EL.js} +2 -2
  31. package/dist/cli/chunks/{chunk-AUN4FG7V.js → chunk-4GUVVGJX.js} +1 -1
  32. package/dist/cli/chunks/{chunk-ZOUEQ6DL.js → chunk-4GYFONJB.js} +1 -1
  33. package/dist/cli/chunks/{chunk-24ZSGYC6.js → chunk-4I35ARWW.js} +1 -1
  34. package/dist/cli/chunks/{chunk-6MXAJBEA.js → chunk-4NTLGGXO.js} +1 -1
  35. package/dist/cli/chunks/{chunk-EF5UHDCG.js → chunk-4TZLZRZ4.js} +1 -1
  36. package/dist/cli/chunks/{chunk-RD5BYLN7.js → chunk-4YUBWU3E.js} +1 -1
  37. package/dist/cli/chunks/{chunk-7TVIX4WL.js → chunk-52YRSWPS.js} +2 -2
  38. package/dist/cli/chunks/{chunk-LAY7NCQK.js → chunk-5DZDLOY6.js} +3 -3
  39. package/dist/cli/chunks/{chunk-34MDMFET.js → chunk-5MBNRTT5.js} +2 -2
  40. package/dist/cli/chunks/{chunk-VAYZ5QIE.js → chunk-5ONJ7AV6.js} +1 -1
  41. package/dist/cli/chunks/{chunk-RV6HSMKJ.js → chunk-5YOO5QSE.js} +1 -1
  42. package/dist/cli/chunks/{chunk-BUTGIVKW.js → chunk-62T7U25U.js} +1 -1
  43. package/dist/cli/chunks/{chunk-66NW3ZB4.js → chunk-6CKTLVYV.js} +2 -2
  44. package/dist/cli/chunks/{chunk-TUDENMAE.js → chunk-6E7EOHMN.js} +2 -2
  45. package/dist/cli/chunks/{chunk-GVRFSXY6.js → chunk-6GIC2263.js} +2 -2
  46. package/dist/cli/chunks/{chunk-KIDOBLUO.js → chunk-767SR7WH.js} +2 -2
  47. package/dist/cli/chunks/{chunk-NBUXM5X6.js → chunk-7C6FMLQR.js} +2 -2
  48. package/dist/cli/chunks/{chunk-4POOJYXA.js → chunk-7CVMT64N.js} +1 -1
  49. package/dist/cli/chunks/{chunk-R363XXGH.js → chunk-7DHSHD5B.js} +2 -2
  50. package/dist/cli/chunks/{chunk-IEPWO4XP.js → chunk-7H3GNRNA.js} +2 -2
  51. package/dist/cli/chunks/{chunk-DQNUPEY5.js → chunk-7SLEUVPZ.js} +2 -2
  52. package/dist/cli/chunks/{chunk-YNG7E26C.js → chunk-7XGM7Q2N.js} +2 -2
  53. package/dist/cli/chunks/{chunk-5MT7DMD7.js → chunk-A2UGPKCS.js} +2 -2
  54. package/dist/cli/chunks/{chunk-2CIDFR2H.js → chunk-A6GCO6ZU.js} +2 -2
  55. package/dist/cli/chunks/{chunk-XFPQIWEH.js → chunk-BEVWCF3Q.js} +3 -3
  56. package/dist/cli/chunks/{chunk-LCCTJ2PC.js → chunk-BLZEOGQE.js} +2 -2
  57. package/dist/cli/chunks/{chunk-6R3FBFCJ.js → chunk-BQUIZ5QT.js} +2 -2
  58. package/dist/cli/chunks/{chunk-ZUTFHGEO.js → chunk-BTMEOZYY.js} +1 -1
  59. package/dist/cli/chunks/{chunk-FU7LNUD7.js → chunk-CDLG3Q2O.js} +2 -2
  60. package/dist/cli/chunks/{chunk-NYS2GUNO.js → chunk-CQ3SBRDP.js} +2 -2
  61. package/dist/cli/chunks/chunk-CQ5G64EA.js +3 -0
  62. package/dist/cli/chunks/{chunk-JCE76MPP.js → chunk-CRUQ6RXU.js} +2 -2
  63. package/dist/cli/chunks/{chunk-XBFQJZWX.js → chunk-D4IBIMWI.js} +2 -2
  64. package/dist/cli/chunks/{chunk-LZWJ5BMP.js → chunk-D4O3TJI7.js} +2 -2
  65. package/dist/cli/chunks/{chunk-AUOSHM63.js → chunk-DAFMHM64.js} +2 -2
  66. package/dist/cli/chunks/{chunk-V3OLS2NG.js → chunk-DCYUHCPK.js} +2 -2
  67. package/dist/cli/chunks/{chunk-F7A2UBZO.js → chunk-DKFSCJEF.js} +2 -2
  68. package/dist/cli/chunks/{chunk-5LST62QR.js → chunk-DN3AKAPY.js} +2 -2
  69. package/dist/cli/chunks/{chunk-OQ4S6B7P.js → chunk-DY37YMMQ.js} +1 -1
  70. package/dist/cli/chunks/{chunk-XQ53PZEF.js → chunk-EUVSSIGR.js} +3 -3
  71. package/dist/cli/chunks/{chunk-6WOZUSSN.js → chunk-FAYXES7R.js} +2 -2
  72. package/dist/cli/chunks/{chunk-GNYOHZVV.js → chunk-FEN2DHFM.js} +1 -1
  73. package/dist/cli/chunks/{chunk-BAYGQRNP.js → chunk-FEPFXXI7.js} +2 -2
  74. package/dist/cli/chunks/{chunk-DLSFT6PO.js → chunk-FJAO4UX2.js} +2 -2
  75. package/dist/cli/chunks/{chunk-22OZIJAD.js → chunk-FWXNFPLS.js} +2 -2
  76. package/dist/cli/chunks/{chunk-X33F7NXH.js → chunk-G6CLO74Q.js} +3 -3
  77. package/dist/cli/chunks/{chunk-HAN4MS5T.js → chunk-G77Q22EN.js} +2 -2
  78. package/dist/cli/chunks/{chunk-5DH5QI7G.js → chunk-GENNJRNK.js} +3 -3
  79. package/dist/cli/chunks/{chunk-LMAEMVPA.js → chunk-GGSTLKY5.js} +1 -1
  80. package/dist/cli/chunks/{chunk-EJ4KZFZN.js → chunk-GSOK4M6V.js} +1 -1
  81. package/dist/cli/chunks/{chunk-DA7DGDTI.js → chunk-HI6OBDDY.js} +2 -2
  82. package/dist/cli/chunks/{chunk-XZ46CI35.js → chunk-HNGNRIZZ.js} +2 -2
  83. package/dist/cli/chunks/{chunk-CLAMMGY3.js → chunk-HXCGV5UJ.js} +2 -2
  84. package/dist/cli/chunks/{chunk-5UPIL62W.js → chunk-I4U7YCXG.js} +3 -3
  85. package/dist/cli/chunks/{chunk-RFDFET3O.js → chunk-I77D65X5.js} +2 -2
  86. package/dist/cli/chunks/{chunk-HEGGV2PT.js → chunk-IJSFZO7P.js} +2 -2
  87. package/dist/cli/chunks/{chunk-GWM4M5NF.js → chunk-IMSRWNWF.js} +1 -1
  88. package/dist/cli/chunks/{chunk-B7RHBKHL.js → chunk-J6LL25QJ.js} +2 -2
  89. package/dist/cli/chunks/{chunk-KYVIOC3C.js → chunk-J7FLNP5L.js} +2 -2
  90. package/dist/cli/chunks/{chunk-YLNYPQDR.js → chunk-J7RCI25Q.js} +1 -1
  91. package/dist/cli/chunks/{chunk-72MQCZSM.js → chunk-JFWQFB3S.js} +2 -2
  92. package/dist/cli/chunks/{chunk-SV5BUYHH.js → chunk-JLTGO5BB.js} +2 -2
  93. package/dist/cli/chunks/{chunk-CCL436IU.js → chunk-JWPYMRIX.js} +14 -6
  94. package/dist/cli/chunks/{chunk-ONPPBLRB.js → chunk-K4N2MBCE.js} +2 -2
  95. package/dist/cli/chunks/{chunk-7SAMMQVS.js → chunk-K5R3WUJP.js} +1 -1
  96. package/dist/cli/chunks/{chunk-GI5HWS4H.js → chunk-KITKQUBX.js} +1 -1
  97. package/dist/cli/chunks/{chunk-7TJZDRDU.js → chunk-KJNUETCB.js} +1 -1
  98. package/dist/cli/chunks/{chunk-JYKQVYX2.js → chunk-KMVFBYJO.js} +2 -2
  99. package/dist/cli/chunks/{chunk-ZSBD4FUX.js → chunk-KMZW2P3R.js} +2 -2
  100. package/dist/cli/chunks/{chunk-PEMSXSP2.js → chunk-KNHLOANK.js} +2 -2
  101. package/dist/cli/chunks/{chunk-47Q7JL3V.js → chunk-KNQUHGNY.js} +2 -2
  102. package/dist/cli/chunks/{chunk-A7ANPS4E.js → chunk-KVMKYUOE.js} +2 -2
  103. package/dist/cli/chunks/{chunk-XBEI2JBA.js → chunk-LHRVSK44.js} +2 -2
  104. package/dist/cli/chunks/{chunk-AJT3XDRD.js → chunk-LPSMVBB3.js} +2 -2
  105. package/dist/cli/chunks/{chunk-ORBODZSO.js → chunk-LVHZK7GW.js} +2 -2
  106. package/dist/cli/chunks/{chunk-ZTB32K5N.js → chunk-LZWBUVCK.js} +3 -3
  107. package/dist/cli/chunks/{chunk-OPDZBRIL.js → chunk-MMY52Y6R.js} +2 -2
  108. package/dist/cli/chunks/{chunk-MQTA6KIO.js → chunk-MUDBF2JC.js} +1 -1
  109. package/dist/cli/chunks/{chunk-GFB6BZWU.js → chunk-MV4S3TEC.js} +2 -2
  110. package/dist/cli/chunks/{chunk-UB6DQGWM.js → chunk-NF63NHJH.js} +2 -2
  111. package/dist/cli/chunks/{chunk-D5N2O5EH.js → chunk-NHOMVBCI.js} +2 -2
  112. package/dist/cli/chunks/{chunk-3NJ7O3OH.js → chunk-NLYUC63R.js} +2 -2
  113. package/dist/cli/chunks/{chunk-4CLDYT36.js → chunk-NQDYOF35.js} +2 -2
  114. package/dist/cli/chunks/{chunk-ORFL3YXB.js → chunk-NW7HTOSN.js} +2 -2
  115. package/dist/cli/chunks/{chunk-FQ5N666N.js → chunk-NWFBF3KT.js} +1 -1
  116. package/dist/cli/chunks/{chunk-P7DXVL2S.js → chunk-NZATJ2C6.js} +2 -2
  117. package/dist/cli/chunks/{chunk-HOEWMEF2.js → chunk-O4RRVTXN.js} +2 -2
  118. package/dist/cli/chunks/{chunk-4KOVHQXK.js → chunk-OCLAMZJG.js} +2 -2
  119. package/dist/cli/chunks/{chunk-TLUIO37P.js → chunk-OJWEZYLR.js} +2 -2
  120. package/dist/cli/chunks/{chunk-A74J23QB.js → chunk-OWBFVAEH.js} +2 -2
  121. package/dist/cli/chunks/{chunk-6T6AHVLF.js → chunk-P2EA62YS.js} +1 -1
  122. package/dist/cli/chunks/{chunk-TL5GV3PR.js → chunk-P4UT4LBE.js} +3 -3
  123. package/dist/cli/chunks/{chunk-IVJIHZSM.js → chunk-PICEGWGB.js} +1 -1
  124. package/dist/cli/chunks/{chunk-ITIJ23K2.js → chunk-PIEKGKW6.js} +2 -2
  125. package/dist/cli/chunks/{chunk-2ZTWPMTK.js → chunk-PJGQ2TKN.js} +2 -2
  126. package/dist/cli/chunks/{chunk-KCB6P463.js → chunk-PPIM7B5G.js} +2 -2
  127. package/dist/cli/chunks/{chunk-L2TDHJR3.js → chunk-PUYQ6EKC.js} +2 -2
  128. package/dist/cli/chunks/{chunk-2IWPJUVV.js → chunk-PWA6XBW4.js} +8 -8
  129. package/dist/cli/chunks/{chunk-XPB5BVU6.js → chunk-PZ7FJ4UG.js} +2 -2
  130. package/dist/cli/chunks/{chunk-SOSJWM3E.js → chunk-QFYUZYRA.js} +4 -4
  131. package/dist/cli/chunks/{chunk-RUTO67PT.js → chunk-R2NHGESM.js} +2 -2
  132. package/dist/cli/chunks/{chunk-K55EAWZ5.js → chunk-RG42LDOB.js} +2 -2
  133. package/dist/cli/chunks/{chunk-JAPBSSFY.js → chunk-RSMPJWQH.js} +1 -1
  134. package/dist/cli/chunks/{chunk-46HBVDMU.js → chunk-SFPGLUXS.js} +1 -1
  135. package/dist/cli/chunks/{chunk-TVLOED6O.js → chunk-SHEVM5PF.js} +2 -2
  136. package/dist/cli/chunks/{chunk-6RDVY26I.js → chunk-SJMZZMHP.js} +2 -2
  137. package/dist/cli/chunks/{chunk-3DJNKNBR.js → chunk-ST7ASEJO.js} +57 -57
  138. package/dist/cli/chunks/{chunk-QS5KZYUZ.js → chunk-SWY6KGMF.js} +2 -2
  139. package/dist/cli/chunks/{chunk-UHHMAKPE.js → chunk-T2TDTBFV.js} +1 -1
  140. package/dist/cli/chunks/{chunk-5HAPS6VD.js → chunk-TC52M542.js} +2 -2
  141. package/dist/cli/chunks/chunk-TMNEK7TP.js +2 -0
  142. package/dist/cli/chunks/{chunk-ELI4GDQO.js → chunk-U3BWBP6B.js} +2 -2
  143. package/dist/cli/chunks/{chunk-CZBIREL5.js → chunk-U7CIY3YR.js} +2 -2
  144. package/dist/cli/chunks/{chunk-X2DR27AY.js → chunk-UDCYQLTD.js} +2 -2
  145. package/dist/cli/chunks/{chunk-CEXNW5TR.js → chunk-UKKFZJME.js} +1 -1
  146. package/dist/cli/chunks/{chunk-5NC7QEJ6.js → chunk-UQLAN5TX.js} +4 -4
  147. package/dist/cli/chunks/{chunk-BIXRTOH3.js → chunk-UTFMMZ57.js} +3 -3
  148. package/dist/cli/chunks/{chunk-YXU35GGD.js → chunk-UTNKMPTC.js} +1 -1
  149. package/dist/cli/chunks/{chunk-HZFK2Z2Z.js → chunk-V4QJ3MMT.js} +1 -1
  150. package/dist/cli/chunks/{chunk-LJCEDTUM.js → chunk-V7VZSNDK.js} +3 -3
  151. package/dist/cli/chunks/{chunk-RLB7K7QP.js → chunk-VKFVJCIH.js} +1 -1
  152. package/dist/cli/chunks/{chunk-5GIJU2ZY.js → chunk-VQRBBR27.js} +2 -2
  153. package/dist/cli/chunks/{chunk-Q2RBOC7V.js → chunk-VVK4ECVJ.js} +2 -2
  154. package/dist/cli/chunks/{chunk-624QRKQX.js → chunk-VWRNG3UK.js} +1 -1
  155. package/dist/cli/chunks/{chunk-F3KS3TAB.js → chunk-VWSGWYRB.js} +2 -2
  156. package/dist/cli/chunks/{chunk-I7WAW7TM.js → chunk-W5A36V3Z.js} +2 -2
  157. package/dist/cli/chunks/chunk-WAWKAYPY.js +2 -0
  158. package/dist/cli/chunks/{chunk-NMY4KTWA.js → chunk-WLXGUQOZ.js} +2 -2
  159. package/dist/cli/chunks/{chunk-7VTKR44N.js → chunk-X3HM7SV4.js} +2 -2
  160. package/dist/cli/chunks/chunk-X6VYQVUM.js +2 -0
  161. package/dist/cli/chunks/{chunk-ZL5LJT7D.js → chunk-X7ZQIFES.js} +2 -2
  162. package/dist/cli/chunks/{chunk-5VUIXDY2.js → chunk-XOOBLZXR.js} +2 -2
  163. package/dist/cli/chunks/{chunk-L4D3TPFP.js → chunk-XZQVC3GD.js} +1 -1
  164. package/dist/cli/chunks/{chunk-BO7UFNYV.js → chunk-Y5ZBF7MA.js} +2 -2
  165. package/dist/cli/chunks/{chunk-ULCHPPW2.js → chunk-YNQPHRUZ.js} +1 -1
  166. package/dist/cli/chunks/{chunk-ZCP4P6O2.js → chunk-YRH7KMTU.js} +2 -2
  167. package/dist/cli/chunks/{chunk-QLKUCMZC.js → chunk-YTYS2XSY.js} +1 -1
  168. package/dist/cli/chunks/{chunk-JPJEAK4G.js → chunk-YUP3APSN.js} +1 -1
  169. package/dist/cli/chunks/{chunk-BXATKI5S.js → chunk-YVWMJZ6O.js} +2 -2
  170. package/dist/cli/chunks/{chunk-PS6WFCA4.js → chunk-Z3LDUPLQ.js} +2 -2
  171. package/dist/cli/chunks/{chunk-FOJRPEIP.js → chunk-ZBI7PJFX.js} +2 -2
  172. package/dist/cli/chunks/{chunk-NHRF3V4B.js → chunk-ZG7UKWBB.js} +2 -2
  173. package/dist/cli/chunks/{chunk-7XUB7U6Z.js → chunk-ZOHS32SI.js} +2 -2
  174. package/dist/cli/chunks/{chunk-RHIQ6QO5.js → chunk-ZOVAZTXE.js} +430 -430
  175. package/dist/cli/chunks/{chunk-7QVPMH25.js → chunk-ZWMFKZEQ.js} +2 -2
  176. package/dist/cli/chunks/{ci-GEJCXMBK.js → ci-7NUCRGWO.js} +2 -2
  177. package/dist/cli/chunks/{ci-config-2ZVV4OXL.js → ci-config-VQVECCFI.js} +2 -2
  178. package/dist/cli/chunks/{ci-output-E45OGVPR.js → ci-output-P7GQ6TKF.js} +2 -2
  179. package/dist/cli/chunks/{circuit-breaker-X73ITYZC.js → circuit-breaker-5YP6N6HE.js} +2 -2
  180. package/dist/cli/chunks/{claude-flow-setup-W4PPH46C.js → claude-flow-setup-W5H7CMU6.js} +2 -2
  181. package/dist/cli/chunks/client-RFUSQRUZ.js +2 -0
  182. package/dist/cli/chunks/{cline-installer-NUEPMWDE.js → cline-installer-OYANSZ54.js} +2 -2
  183. package/dist/cli/chunks/{code-6WQHBS7G.js → code-OMT4UEZI.js} +3 -3
  184. package/dist/cli/chunks/{code-index-extractor-BXQIFIFT.js → code-index-extractor-M2JEWKNF.js} +2 -2
  185. package/dist/cli/chunks/{codex-installer-Z337R2KH.js → codex-installer-YBS6N5O3.js} +2 -2
  186. package/dist/cli/chunks/{completions-F5DMYFHV.js → completions-U7GS5RG6.js} +2 -2
  187. package/dist/cli/chunks/{complexity-analyzer-W2SYPZDI.js → complexity-analyzer-QSXPIUIU.js} +2 -2
  188. package/dist/cli/chunks/{continuedev-installer-ZCHUIFTN.js → continuedev-installer-W5TTT743.js} +2 -2
  189. package/dist/cli/chunks/{copilot-installer-M5JNODXF.js → copilot-installer-KC2RT24C.js} +2 -2
  190. package/dist/cli/chunks/core-handlers-ZC7QB432.js +2 -0
  191. package/dist/cli/chunks/{cost-tracker-LSYTHBHV.js → cost-tracker-OQPVR6V4.js} +2 -2
  192. package/dist/cli/chunks/{coverage-PGMRS5SS.js → coverage-TCO2A2NX.js} +3 -3
  193. package/dist/cli/chunks/cross-domain-router-GRBK7YFZ.js +2 -0
  194. package/dist/cli/chunks/{cursor-installer-XPUA73UW.js → cursor-installer-MH7GWD4L.js} +2 -2
  195. package/dist/cli/chunks/daemon-JER6HE2J.js +12 -0
  196. package/dist/cli/chunks/{daemon-ITKDIYMW.js → daemon-UJEARJZ2.js} +3 -3
  197. package/dist/cli/chunks/{dag-attention-scheduler-T55AXLD6.js → dag-attention-scheduler-F3SUJU5O.js} +2 -2
  198. package/dist/cli/chunks/{detect-DR7J6K4O.js → detect-5QTCRB32.js} +2 -2
  199. package/dist/cli/chunks/{dist-node-LAJJBOUT.js → dist-node-XKZPHDBO.js} +2 -2
  200. package/dist/cli/chunks/{domain-handler-OMSHCRMK.js → domain-handler-V3UEADKW.js} +2 -2
  201. package/dist/cli/chunks/{domain-plugins-EQXSKC5K.js → domain-plugins-7PES4UHZ.js} +2 -2
  202. package/dist/cli/chunks/{domain-transfer-FKRAGVSW.js → domain-transfer-NF7UJW7B.js} +2 -2
  203. package/dist/cli/chunks/dream-VALD726W.js +2 -0
  204. package/dist/cli/chunks/{embed-and-insert-pattern-JZFPCNL3.js → embed-and-insert-pattern-D2HWORHF.js} +2 -2
  205. package/dist/cli/chunks/{eval-JSNNASBW.js → eval-UF2UBAUC.js} +2 -2
  206. package/dist/cli/chunks/{experience-capture-middleware-UPD3IZBK.js → experience-capture-middleware-2OUCEHHM.js} +3 -3
  207. package/dist/cli/chunks/{fast-paths-YNMIBS2E.js → fast-paths-KV5DKKHC.js} +2 -2
  208. package/dist/cli/chunks/{feature-flags-SRLXDKBI.js → feature-flags-6YWMTNO5.js} +2 -2
  209. package/dist/cli/chunks/{feature-flags-VIR7O4L7.js → feature-flags-MTW6NMR3.js} +2 -2
  210. package/dist/cli/chunks/file-discovery-VL73ASNI.js +2 -0
  211. package/dist/cli/chunks/{fleet-K2ED46EL.js → fleet-GJ66QFXK.js} +3 -3
  212. package/dist/cli/chunks/{gnn-wrapper-QCU4ZRYW.js → gnn-wrapper-52V6ANOY.js} +2 -2
  213. package/dist/cli/chunks/{heartbeat-handler-YYQI4WZM.js → heartbeat-handler-X7NHNRC7.js} +4 -4
  214. package/dist/cli/chunks/heartbeat-scheduler-FSX7A3ZA.js +2 -0
  215. package/dist/cli/chunks/hnsw-adapter-UX2QT6RL.js +2 -0
  216. package/dist/cli/chunks/hnsw-index-WRDDAMXH.js +2 -0
  217. package/dist/cli/chunks/{hnsw-legacy-bridge-C5TJSWTZ.js → hnsw-legacy-bridge-DZBE3KMK.js} +2 -2
  218. package/dist/cli/chunks/{hnswlib-node-SE3MJJYS.js → hnswlib-node-2AWWUJAZ.js} +2 -2
  219. package/dist/cli/chunks/{hooks-C572SRDH.js → hooks-XLPVROL3.js} +10 -10
  220. package/dist/cli/chunks/hybrid-backend-O67NGIB5.js +2 -0
  221. package/dist/cli/chunks/{hypergraph-engine-35A6G3M5.js → hypergraph-engine-6TI7YP6P.js} +2 -2
  222. package/dist/cli/chunks/{hypergraph-handler-U2756CWI.js → hypergraph-handler-DBIBBOXS.js} +3 -3
  223. package/dist/cli/chunks/impact-analyzer-6VXWWYWM.js +2 -0
  224. package/dist/cli/chunks/init-guard-OSO6MIDD.js +2 -0
  225. package/dist/cli/chunks/init-handler-7S7IHMUF.js +88 -0
  226. package/dist/cli/chunks/init-wizard-VH34J4TL.js +2 -0
  227. package/dist/cli/chunks/kernel-KJD24NO7.js +2 -0
  228. package/dist/cli/chunks/{kilocode-installer-32PX5YH7.js → kilocode-installer-2KBRFXMA.js} +2 -2
  229. package/dist/cli/chunks/{kiro-installer-C4ROMMUS.js → kiro-installer-5VFR4OQZ.js} +2 -2
  230. package/dist/cli/chunks/knowledge-graph-343O2HEZ.js +2 -0
  231. package/dist/cli/chunks/{learning-GEPVZGJQ.js → learning-G5NHL3DV.js} +20 -20
  232. package/dist/cli/chunks/{llm-router-XRKTTJTX.js → llm-router-4EAPPMHS.js} +4 -4
  233. package/dist/cli/chunks/llm-router-service-2M4BT2AO.js +2 -0
  234. package/dist/cli/chunks/{load-XVH6HW7E.js → load-UYMZPEY6.js} +2 -2
  235. package/dist/cli/chunks/load-test-OTQ2JQ5F.js +2 -0
  236. package/dist/cli/chunks/{mcp-IULSTM4Z.js → mcp-NOTDZBW5.js} +2 -2
  237. package/dist/cli/chunks/{memory-6K7IAU4T.js → memory-QL53YIHP.js} +5 -5
  238. package/dist/cli/chunks/memory-backend-4QSNRRV6.js +2 -0
  239. package/dist/cli/chunks/{memory-handlers-CG6DRLAW.js → memory-handlers-YFFYRSM6.js} +2 -2
  240. package/dist/cli/chunks/{multi-model-executor-VZDUYPLX.js → multi-model-executor-PDDDXF2B.js} +2 -2
  241. package/dist/cli/chunks/{opencode-installer-QUTXKNH4.js → opencode-installer-75D2SKOT.js} +2 -2
  242. package/dist/cli/chunks/{orchestrator-PCKKUWOP.js → orchestrator-3WIZBV4T.js} +5 -5
  243. package/dist/cli/chunks/pattern-null-store-5USH5MNR.js +2 -0
  244. package/dist/cli/chunks/{pattern-usage-recorder-PX5HQVRL.js → pattern-usage-recorder-TEX2JGHA.js} +2 -2
  245. package/dist/cli/chunks/{pipeline-O562GTOG.js → pipeline-7ATPA6LU.js} +2 -2
  246. package/dist/cli/chunks/{platform-PM7Q2AZS.js → platform-WPSKRJE7.js} +2 -2
  247. package/dist/cli/chunks/{plugin-OTYTFGPY.js → plugin-UUFOVVMU.js} +2 -2
  248. package/dist/cli/chunks/{prime-radiant-advanced-wasm-6CFXTHC2.js → prime-radiant-advanced-wasm-PDFSYWKZ.js} +2 -2
  249. package/dist/cli/chunks/project-root-SRTA6TBL.js +2 -0
  250. package/dist/cli/chunks/protocol-executor-4WYPCNBS.js +2 -0
  251. package/dist/cli/chunks/{protocol-handler-PPGNSAOS.js → protocol-handler-3VRYRIQB.js} +2 -2
  252. package/dist/cli/chunks/{prove-WQ3BKRZG.js → prove-2NAUROGF.js} +2 -2
  253. package/dist/cli/chunks/qe-reasoning-bank-I4D6SFS4.js +2 -0
  254. package/dist/cli/chunks/{quality-C5WUU3AA.js → quality-ZIEI2WGA.js} +2 -2
  255. package/dist/cli/chunks/{quality-gate-WSSRKD5U.js → quality-gate-KWJO4SWQ.js} +3 -3
  256. package/dist/cli/chunks/queen-coordinator-24UMTZTE.js +2 -0
  257. package/dist/cli/chunks/{real-embeddings-CFQE7IRQ.js → real-embeddings-TSZ4UIAE.js} +2 -2
  258. package/dist/cli/chunks/{ref-validation-DHKHXVZT.js → ref-validation-DWFFRETJ.js} +2 -2
  259. package/dist/cli/chunks/{roocode-installer-3PPODABV.js → roocode-installer-XTZHLUBO.js} +2 -2
  260. package/dist/cli/chunks/router-AUD4GATI.js +2 -0
  261. package/dist/cli/chunks/routing-feedback-2FE6SIKQ.js +2 -0
  262. package/dist/cli/chunks/{routing-handler-JNXTGT6T.js → routing-handler-GG525TDM.js} +2 -2
  263. package/dist/cli/chunks/{ruvector-commands-6YLROPVP.js → ruvector-commands-QKRJDM7Z.js} +2 -2
  264. package/dist/cli/chunks/rvf-dual-writer-P5LEUF25.js +2 -0
  265. package/dist/cli/chunks/rvf-migration-adapter-ZCYD5YJS.js +2 -0
  266. package/dist/cli/chunks/{rvf-migration-coordinator-4DWB4WRK.js → rvf-migration-coordinator-FF52OS6Q.js} +2 -2
  267. package/dist/cli/chunks/rvf-native-adapter-QGV6BW2W.js +2 -0
  268. package/dist/cli/chunks/{rvf-store-integrity-YKR2ZNBF.js → rvf-store-integrity-M6DXTAZ4.js} +2 -2
  269. package/dist/cli/chunks/safe-db-Q6JUKG2A.js +2 -0
  270. package/dist/cli/chunks/schedule-44OSMGE5.js +2 -0
  271. package/dist/cli/chunks/scheduler-V3HO2QQT.js +2 -0
  272. package/dist/cli/chunks/security-EHXSW22U.js +18 -0
  273. package/dist/cli/chunks/{shared-rvf-adapter-LNRLFP5I.js → shared-rvf-adapter-6EH7UVJL.js} +2 -2
  274. package/dist/cli/chunks/{shared-rvf-dual-writer-GWU6YQNS.js → shared-rvf-dual-writer-WML274E7.js} +2 -2
  275. package/dist/cli/chunks/sqlite-persistence-N5T7DWMR.js +2 -0
  276. package/dist/cli/chunks/{standalone-memory-46KKBSSV.js → standalone-memory-C7QKAXS4.js} +2 -2
  277. package/dist/cli/chunks/{status-handler-35T5FTDQ.js → status-handler-VLI7MRLM.js} +2 -2
  278. package/dist/cli/chunks/{structural-health-P7QPQWLO.js → structural-health-3LPG6MQN.js} +2 -2
  279. package/dist/cli/chunks/{sync-Y43EWBSY.js → sync-4IMMQEPT.js} +2 -2
  280. package/dist/cli/chunks/{sync-W6Z4R4PL.js → sync-JFJEJBVK.js} +2 -2
  281. package/dist/cli/chunks/{task-handler-5CX3ZYT7.js → task-handler-IED3K6E4.js} +2 -2
  282. package/dist/cli/chunks/{task-handlers-DQZGOJNE.js → task-handlers-FH6DNTHW.js} +3 -3
  283. package/dist/cli/chunks/{test-TPP53VVV.js → test-GPKT3CKZ.js} +4 -4
  284. package/dist/cli/chunks/{test-scheduling-WBV4UMQH.js → test-scheduling-Z42XXZP6.js} +3 -3
  285. package/dist/cli/chunks/{token-bootstrap-GIIDXHLC.js → token-bootstrap-HMM3AHXM.js} +2 -2
  286. package/dist/cli/chunks/{token-usage-AKK37RB7.js → token-usage-6Y2ERYIY.js} +2 -2
  287. package/dist/cli/chunks/{transformers-7MASPELS.js → transformers-MB63T2XO.js} +2 -2
  288. package/dist/cli/chunks/{tree-sitter-wasm-parser-YZKD6UGB.js → tree-sitter-wasm-parser-56GDQCMR.js} +2 -2
  289. package/dist/cli/chunks/{types-AZ3BTXDP.js → types-J4J6QV3I.js} +2 -2
  290. package/dist/cli/chunks/unified-memory-RQ3Q4CU3.js +2 -0
  291. package/dist/cli/chunks/unified-memory-hnsw-ZOP5FEYX.js +2 -0
  292. package/dist/cli/chunks/unified-persistence-72OCJJKK.js +2 -0
  293. package/dist/cli/chunks/{upgrade-L7OTDKEK.js → upgrade-U4XU7LFM.js} +2 -2
  294. package/dist/cli/chunks/{validate-O3QVFIGP.js → validate-B57HA4YK.js} +2 -2
  295. package/dist/cli/chunks/{validate-swarm-2UGBGLTX.js → validate-swarm-UPPA4M6T.js} +2 -2
  296. package/dist/cli/chunks/visual-security-7F5UV23J.js +2 -0
  297. package/dist/cli/chunks/{web-tree-sitter-J75IYPRO.js → web-tree-sitter-GDZMUKOZ.js} +2 -2
  298. package/dist/cli/chunks/{windsurf-installer-FQ5DBFCG.js → windsurf-installer-VJRWCHXP.js} +2 -2
  299. package/dist/cli/chunks/witness-chain-KZ57QUFE.js +2 -0
  300. package/dist/cli/chunks/{witness-chain-I7TN4MXZ.js → witness-chain-LFASSMZK.js} +2 -2
  301. package/dist/cli/chunks/{witness-chain-repair-D3NE3NQK.js → witness-chain-repair-TPHN4DXN.js} +2 -2
  302. package/dist/cli/chunks/{witness-chain-verifier-RU2WOP5M.js → witness-chain-verifier-Z23FVABW.js} +2 -2
  303. package/dist/cli/chunks/{witness-key-manager-IHQB2FR5.js → witness-key-manager-745MJ7WO.js} +2 -2
  304. package/dist/cli/chunks/{workflow-6BWTNVV6.js → workflow-T245QNQM.js} +4 -4
  305. package/dist/cli/chunks/workflow-orchestrator-ZNWEUYBN.js +2 -0
  306. package/dist/cli/chunks/{wrappers-URVP25VU.js → wrappers-WCAYIQUX.js} +2 -2
  307. package/dist/cli/commands/learning.js +3 -2
  308. package/dist/cli/commands/security.d.ts +16 -0
  309. package/dist/cli/commands/security.js +76 -9
  310. package/dist/cli/handlers/init-guard.d.ts +21 -1
  311. package/dist/cli/handlers/init-guard.js +51 -8
  312. package/dist/cli/handlers/init-handler.js +57 -56
  313. package/dist/cli/index.js +11 -0
  314. package/dist/cli/utils/ci-output.d.ts +5 -0
  315. package/dist/cli/utils/ci-output.js +8 -0
  316. package/dist/coordination/handlers/security-handlers.js +22 -6
  317. package/dist/coordination/protocols/defect-investigation.js +7 -1
  318. package/dist/coordination/protocols/learning-consolidation.js +6 -12
  319. package/dist/coordination/protocols/security-audit.js +11 -0
  320. package/dist/coordination/result-saver.d.ts +9 -0
  321. package/dist/coordination/result-saver.js +34 -4
  322. package/dist/domains/coverage-analysis/collected-metrics.d.ts +2 -0
  323. package/dist/domains/coverage-analysis/collected-metrics.js +8 -1
  324. package/dist/domains/defect-intelligence/services/defect-predictor.js +9 -6
  325. package/dist/domains/learning-optimization/active-patterns.d.ts +55 -0
  326. package/dist/domains/learning-optimization/active-patterns.js +77 -0
  327. package/dist/domains/learning-optimization/coordinator.js +12 -9
  328. package/dist/domains/learning-optimization/services/learning-coordinator.js +15 -17
  329. package/dist/domains/quality-assessment/interfaces.d.ts +4 -0
  330. package/dist/domains/quality-assessment/quality-evidence.d.ts +1 -1
  331. package/dist/domains/quality-assessment/services/quality-analyzer.js +7 -5
  332. package/dist/domains/quality-assessment/services/quality-gate.js +12 -3
  333. package/dist/domains/security-compliance/dependency-advisory-engine.d.ts +52 -0
  334. package/dist/domains/security-compliance/dependency-advisory-engine.js +113 -0
  335. package/dist/domains/security-compliance/interfaces.d.ts +30 -0
  336. package/dist/domains/security-compliance/plugin.d.ts +7 -1
  337. package/dist/domains/security-compliance/plugin.js +19 -0
  338. package/dist/domains/security-compliance/services/scanners/dependency-resolver.d.ts +71 -0
  339. package/dist/domains/security-compliance/services/scanners/dependency-resolver.js +232 -0
  340. package/dist/domains/security-compliance/services/scanners/dependency-scanner.d.ts +21 -6
  341. package/dist/domains/security-compliance/services/scanners/dependency-scanner.js +142 -64
  342. package/dist/domains/security-compliance/services/scanners/lockfile-versions.d.ts +43 -0
  343. package/dist/domains/security-compliance/services/scanners/lockfile-versions.js +248 -0
  344. package/dist/domains/security-compliance/services/scanners/scanner-types.d.ts +30 -2
  345. package/dist/domains/security-compliance/services/security-auditor.d.ts +19 -6
  346. package/dist/domains/security-compliance/services/security-auditor.js +133 -92
  347. package/dist/domains/test-execution/services/retry-handler.js +34 -7
  348. package/dist/domains/test-execution/services/test-executor.d.ts +1 -0
  349. package/dist/domains/test-execution/services/test-executor.js +87 -7
  350. package/dist/kernel/shared-dirs.js +17 -5
  351. package/dist/learning/dream/dream-engine.d.ts +27 -1
  352. package/dist/learning/dream/dream-engine.js +56 -2
  353. package/dist/learning/dream/rvcow-branch-manager.d.ts +8 -0
  354. package/dist/learning/dream/rvcow-branch-manager.js +8 -0
  355. package/dist/learning/dream/speculative-dreamer.d.ts +8 -0
  356. package/dist/learning/dream/speculative-dreamer.js +8 -0
  357. package/dist/mcp/background-workers.d.ts +15 -0
  358. package/dist/mcp/background-workers.js +71 -0
  359. package/dist/mcp/bundle.js +881 -878
  360. package/dist/mcp/entry.js +4 -49
  361. package/dist/mcp/handlers/domain-handler-configs.d.ts +4 -0
  362. package/dist/mcp/handlers/domain-handler-configs.js +5 -1
  363. package/dist/mcp/protocol-server.js +2 -1
  364. package/dist/mcp/types.d.ts +6 -0
  365. package/dist/shared/security/index.d.ts +2 -2
  366. package/dist/shared/security/index.js +1 -1
  367. package/dist/shared/security/osv-client.d.ts +79 -132
  368. package/dist/shared/security/osv-client.js +344 -167
  369. package/dist/shared/security/osv-lookup.d.ts +124 -0
  370. package/dist/shared/security/osv-lookup.js +246 -0
  371. package/dist/shared/security/osv-types.d.ts +119 -0
  372. package/dist/shared/security/osv-types.js +6 -0
  373. package/dist/workers/daemon.d.ts +5 -0
  374. package/dist/workers/daemon.js +16 -2
  375. package/dist/workers/interfaces.d.ts +6 -1
  376. package/dist/workers/namespaced-keys.d.ts +16 -0
  377. package/dist/workers/namespaced-keys.js +24 -0
  378. package/dist/workers/quality-daemon/persistent-memory.d.ts +1 -1
  379. package/dist/workers/quality-daemon/persistent-memory.js +2 -2
  380. package/dist/workers/worker-env.d.ts +45 -0
  381. package/dist/workers/worker-env.js +76 -0
  382. package/dist/workers/worker-manager.js +5 -2
  383. package/dist/workers/workers/defect-predictor.d.ts +25 -8
  384. package/dist/workers/workers/defect-predictor.js +223 -216
  385. package/dist/workers/workers/learning-consolidation.d.ts +20 -0
  386. package/dist/workers/workers/learning-consolidation.js +53 -22
  387. package/dist/workers/workers/performance-baseline.d.ts +24 -9
  388. package/dist/workers/workers/performance-baseline.js +187 -230
  389. package/dist/workers/workers/quality-gate.d.ts +11 -9
  390. package/dist/workers/workers/quality-gate.js +125 -267
  391. package/dist/workers/workers/security-scan-records.d.ts +111 -0
  392. package/dist/workers/workers/security-scan-records.js +128 -0
  393. package/dist/workers/workers/security-scan.d.ts +25 -7
  394. package/dist/workers/workers/security-scan.js +187 -164
  395. package/package.json +2 -2
  396. package/dist/cli/chunks/adapter-PP3XIXDV.js +0 -2
  397. package/dist/cli/chunks/aqe-learning-engine-VDUQJKKY.js +0 -2
  398. package/dist/cli/chunks/base-QSYWWPCE.js +0 -2
  399. package/dist/cli/chunks/browser-workflow-WXXPBSCM.js +0 -2
  400. package/dist/cli/chunks/chunk-45MVRQG4.js +0 -2
  401. package/dist/cli/chunks/chunk-5VZVMO7B.js +0 -3
  402. package/dist/cli/chunks/chunk-EECF4CMA.js +0 -2
  403. package/dist/cli/chunks/client-6XKSQ4JT.js +0 -2
  404. package/dist/cli/chunks/core-handlers-OJYW4Y6M.js +0 -2
  405. package/dist/cli/chunks/cross-domain-router-QVUPQ2SC.js +0 -2
  406. package/dist/cli/chunks/daemon-QBYTCIMH.js +0 -10
  407. package/dist/cli/chunks/dream-3UABDRZJ.js +0 -2
  408. package/dist/cli/chunks/file-discovery-ZFGZTKZ4.js +0 -2
  409. package/dist/cli/chunks/heartbeat-scheduler-MJ6MTPDF.js +0 -2
  410. package/dist/cli/chunks/hnsw-adapter-FQWJCFVW.js +0 -2
  411. package/dist/cli/chunks/hnsw-index-NJYKJUHC.js +0 -2
  412. package/dist/cli/chunks/hybrid-backend-SL7RFID7.js +0 -2
  413. package/dist/cli/chunks/impact-analyzer-5ZJTXPVC.js +0 -2
  414. package/dist/cli/chunks/init-handler-PCLYQUSB.js +0 -88
  415. package/dist/cli/chunks/init-wizard-MQMDSIOF.js +0 -2
  416. package/dist/cli/chunks/kernel-MEJ5GMRH.js +0 -2
  417. package/dist/cli/chunks/knowledge-graph-XUBZSEZE.js +0 -2
  418. package/dist/cli/chunks/llm-router-service-QZAPAEPX.js +0 -2
  419. package/dist/cli/chunks/load-test-OVXIQ3AF.js +0 -2
  420. package/dist/cli/chunks/memory-backend-TRPOMPK4.js +0 -2
  421. package/dist/cli/chunks/pattern-null-store-JWYBRBZG.js +0 -2
  422. package/dist/cli/chunks/project-root-VVSTHIP4.js +0 -2
  423. package/dist/cli/chunks/protocol-executor-PXZCLZD3.js +0 -2
  424. package/dist/cli/chunks/qe-reasoning-bank-42FRS5V3.js +0 -2
  425. package/dist/cli/chunks/queen-coordinator-UI3B7DI6.js +0 -2
  426. package/dist/cli/chunks/router-HYRPWLAY.js +0 -2
  427. package/dist/cli/chunks/routing-feedback-BPZ5R6F3.js +0 -2
  428. package/dist/cli/chunks/rvf-dual-writer-DEKDQ6KO.js +0 -2
  429. package/dist/cli/chunks/rvf-migration-adapter-L53VBS7I.js +0 -2
  430. package/dist/cli/chunks/rvf-native-adapter-I6RUGD2D.js +0 -2
  431. package/dist/cli/chunks/safe-db-KS65XDCP.js +0 -2
  432. package/dist/cli/chunks/schedule-KD2VN6GB.js +0 -2
  433. package/dist/cli/chunks/scheduler-ZH3RMUHY.js +0 -2
  434. package/dist/cli/chunks/security-PWQTGDRU.js +0 -13
  435. package/dist/cli/chunks/sqlite-persistence-6DTVME5D.js +0 -2
  436. package/dist/cli/chunks/unified-memory-FCX7NLFZ.js +0 -2
  437. package/dist/cli/chunks/unified-memory-hnsw-VU5QJK37.js +0 -2
  438. package/dist/cli/chunks/unified-persistence-FM376LGE.js +0 -2
  439. package/dist/cli/chunks/visual-security-EU7Y3X46.js +0 -2
  440. package/dist/cli/chunks/witness-chain-CSEBT52D.js +0 -2
  441. package/dist/cli/chunks/workflow-orchestrator-ALNKOM3N.js +0 -2
package/dist/mcp/entry.js CHANGED
@@ -25,6 +25,7 @@ import { initFeatureFlagsFromEnv } from '../integrations/ruvector/feature-flags.
25
25
  import { resetSharedRvfAdapter } from '../integrations/ruvector/shared-rvf-adapter.js';
26
26
  import { resetSharedRvfDualWriter } from '../integrations/ruvector/shared-rvf-dual-writer.js';
27
27
  import { claimProcessLifecycle, closeRegisteredStores } from '../kernel/process-lifecycle.js';
28
+ import { startBackgroundWorkers } from './background-workers.js';
28
29
  import { readFileSync } from 'node:fs';
29
30
  import { resolve, dirname } from 'node:path';
30
31
  import { fileURLToPath } from 'node:url';
@@ -330,55 +331,9 @@ async function main() {
330
331
  originalStderrWrite(`[MCP] WARNING: ReasoningBank prewarm failed: ${rbErr instanceof Error ? rbErr.message : 'unknown'}\n`);
331
332
  }
332
333
  })();
333
- // IMP-10: Start background workers (heartbeat scheduler, etc.). In
334
- // database-free mode they run against the in-memory unified store, so they
335
- // persist nothing to disk while keeping QualityDaemon/health functional.
336
- try {
337
- const { getDaemon } = await import('../workers/daemon.js');
338
- // ADR-001 Bug A fix: use the canonical getDaemon() default. Passing
339
- // `{ autoStart: false }` here would neuter workerManager.startAll() —
340
- // the only call path that schedules per-worker setInterval timers, so
341
- // workers would register but never tick. DEFAULT_CONFIG.autoStart=true
342
- // (workers/daemon.ts) is the contracted default; matches the
343
- // shutdownDaemon() call site above.
344
- const daemon = getDaemon();
345
- await daemon.start();
346
- const status = daemon.getStatus();
347
- originalStderrWrite(`[MCP] Background workers started (${status.workerManager.totalWorkers} workers)\n`);
348
- // IMP-10: Start QualityDaemon with persistent memory (Finding 1 & 2 resolution)
349
- try {
350
- const { UnifiedMemoryManager } = await import('../kernel/unified-memory.js');
351
- const { PersistentWorkerMemory } = await import('../workers/quality-daemon/persistent-memory.js');
352
- const { isPrivateIp } = await import('../hooks/security/ssrf-guard.js');
353
- const unifiedMemory = await UnifiedMemoryManager.getInstanceAsync();
354
- const persistentMemory = new PersistentWorkerMemory(unifiedMemory);
355
- const qualityDaemon = daemon.getQualityDaemon({
356
- notifications: {
357
- // IMP-07 SSRF guard: block private IPs in webhook URLs (Finding 5)
358
- urlValidator: (url) => {
359
- try {
360
- const parsed = new URL(url);
361
- const hostname = parsed.hostname.replace(/^\[|\]$/g, '');
362
- return !isPrivateIp(hostname);
363
- }
364
- catch {
365
- return false;
366
- }
367
- },
368
- },
369
- });
370
- await qualityDaemon.start(persistentMemory);
371
- originalStderrWrite(`[MCP] Quality daemon started\n`);
372
- }
373
- catch (qdError) {
374
- originalStderrWrite(`[MCP] WARNING: Quality daemon failed to start: ${qdError}\n`);
375
- // Non-fatal — MCP continues without quality daemon
376
- }
377
- }
378
- catch (daemonError) {
379
- originalStderrWrite(`[MCP] WARNING: Background workers failed to start: ${daemonError}\n`);
380
- // Non-fatal — MCP server continues without background workers
381
- }
334
+ // IMP-10: Start background workers (heartbeat scheduler, etc.) and the
335
+ // QualityDaemon. #1061: AQE_WORKERS_ENABLED=false skips both.
336
+ await startBackgroundWorkers(originalStderrWrite);
382
337
  // Start HTTP server for AG-UI/A2A/A2UI if port is specified
383
338
  const httpPort = parseInt(process.env.AQE_HTTP_PORT || '0', 10);
384
339
  if (httpPort > 0) {
@@ -10,6 +10,7 @@ import { DomainHandlerConfig } from './handler-factory';
10
10
  import { TestGenerateParams, TestGenerateResult, TestExecuteParams, CoverageAnalyzeParams, CoverageAnalyzeResult, QualityAssessParams, SecurityScanParams, ContractValidateParams, AccessibilityTestParams, ChaosTestParams } from '../types';
11
11
  import type { SecurityScanEvidence } from '../../domains/security-compliance/scan-evidence.js';
12
12
  import type { SecurityCoverage } from '../../domains/security-compliance/interfaces.js';
13
+ import type { DependencyScanReport } from '../../domains/security-compliance/dependency-advisory-engine.js';
13
14
  import type { ExcludedQualityFile, PartialQualityMetric } from '../../domains/quality-assessment/interfaces.js';
14
15
  import { type RiskDecision } from '../../contracts/verdicts.js';
15
16
  import { type EvaluatedQualityCheck } from '../../domains/quality-assessment/quality-evidence.js';
@@ -114,7 +115,10 @@ export interface SecurityScanResult {
114
115
  scanTypes?: {
115
116
  sast: boolean;
116
117
  dast: boolean;
118
+ dependencies?: boolean;
117
119
  };
120
+ /** #1049: OSV dependency advisory scan; status other than 'complete' is not a clean result. */
121
+ dependencyScan?: DependencyScanReport;
118
122
  note?: string;
119
123
  }
120
124
  export interface ContractValidateResult {
@@ -537,10 +537,12 @@ export const securityScanConfig = {
537
537
  scanTypes.push('SAST');
538
538
  if (params.dast)
539
539
  scanTypes.push('DAST');
540
+ if (params.dependencies)
541
+ scanTypes.push('dependency advisories');
540
542
  return `Security scan (${scanTypes.join(', ')}) for ${params.target || 'project'}`;
541
543
  },
542
544
  mapToPayload: (params, routingResult) => {
543
- for (const name of ['sast', 'dast']) {
545
+ for (const name of ['sast', 'dast', 'dependencies']) {
544
546
  if (params[name] !== undefined && typeof params[name] !== 'boolean') {
545
547
  throw new Error(`${name} must be a boolean`);
546
548
  }
@@ -548,6 +550,7 @@ export const securityScanConfig = {
548
550
  return {
549
551
  sast: params.sast !== false,
550
552
  dast: params.dast || false,
553
+ dependencies: params.dependencies === true,
551
554
  compliance: params.compliance || [],
552
555
  target: params.target || '.',
553
556
  targetUrl: params.targetUrl,
@@ -582,6 +585,7 @@ export const securityScanConfig = {
582
585
  deepAnalysisPerformed: Boolean(data.evidence && data.deepAnalysisPerformed === true),
583
586
  analysisDepth: data.analysisDepth,
584
587
  scanTypes: data.scanTypes,
588
+ ...(data.dependencyScan ? { dependencyScan: data.dependencyScan } : {}),
585
589
  note: data.note,
586
590
  duration,
587
591
  savedFiles,
@@ -856,7 +856,7 @@ export class MCPProtocolServer {
856
856
  this.registerTool({
857
857
  definition: {
858
858
  name: 'test_generate_enhanced',
859
- description: 'Generate unit/integration/e2e tests with AI pattern recognition and anti-pattern detection. By default saves a manifest and report under .agentic-qe/results/tests/ (paths returned in savedFiles); pass saveResults: false to generate without writing any result files. Example: test_generate_enhanced({ sourceCode: "function add(a,b){return a+b}", testType: "unit", framework: "jest" })',
859
+ description: 'Generate unit/integration/e2e tests with AI pattern recognition and anti-pattern detection. By default saves a manifest and report under .agentic-qe/results/tests/, plus each generated test source under .agentic-qe/results/tests/generated/ (paths returned in savedFiles); pass saveResults: false to generate without writing any result files. Example: test_generate_enhanced({ sourceCode: "function add(a,b){return a+b}", testType: "unit", framework: "jest" })',
860
860
  category: 'domain',
861
861
  parameters: [
862
862
  { name: 'sourceCode', type: 'string', description: 'Source code to generate tests for' },
@@ -938,6 +938,7 @@ export class MCPProtocolServer {
938
938
  { name: 'dast', type: 'boolean', description: 'Run DAST scan', default: false },
939
939
  { name: 'target', type: 'string', description: 'Source file or directory for SAST' },
940
940
  { name: 'targetUrl', type: 'string', description: 'URL for a requested DAST scan' },
941
+ { name: 'dependencies', type: 'boolean', description: 'Check package.json dependencies against OSV advisories (sends package names and versions to the OSV API). If the lookup fails or is partial, dependencyScan.status is incomplete/failed: advisories could not be checked, which is not zero vulnerabilities.', default: false },
941
942
  saveResultsParameter('security_scan_comprehensive'),
942
943
  ],
943
944
  },
@@ -238,6 +238,12 @@ export interface SecurityScanParams {
238
238
  target?: string;
239
239
  /** URL for explicitly requested dynamic scanning. */
240
240
  targetUrl?: string;
241
+ /**
242
+ * #1049: check package.json dependencies against OSV advisories (opt-in; sends
243
+ * package names and versions to the OSV API). A failed or partial lookup is
244
+ * reported as incomplete, never as zero vulnerabilities.
245
+ */
246
+ dependencies?: boolean;
241
247
  /** #933: write result files under .agentic-qe/results/ (default true). false skips them. */
242
248
  saveResults?: boolean;
243
249
  }
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * Agentic QE v3 - Security Utilities
3
3
  */
4
- export { OSVClient } from './osv-client';
5
- export type { OSVClientConfig, OSVQueryRequest, OSVEcosystem, OSVVulnerability, OSVSeverity, OSVAffected, OSVRange, OSVReference, OSVQueryResponse, OSVBatchQueryRequest, OSVBatchQueryResponse, ParsedVulnerability, } from './osv-client';
4
+ export { OSVClient, OSVLookupError, resolveOSVBaseUrl } from './osv-client';
5
+ export type { OSVBatchLookup, OSVPackageQuery, OSVUncheckedPackage, OSVClientConfig, OSVQueryRequest, OSVEcosystem, OSVVulnerability, OSVSeverity, OSVAffected, OSVRange, OSVReference, OSVQueryResponse, OSVBatchQueryRequest, OSVBatchQueryResponse, ParsedVulnerability, } from './osv-client';
6
6
  export { CompliancePatternAnalyzer, getCompliancePatternAnalyzer } from './compliance-patterns';
7
7
  export type { PatternMatch, CompliancePatternResult, EncryptionAnalysis, AccessControlAnalysis, LoggingAnalysis, DataProtectionAnalysis, SecurityControlsAnalysis, } from './compliance-patterns';
8
8
  export type { RiskLevel, ValidationResult, PathValidationResult, RegexSafetyResult, CommandValidationResult, SanitizationOptions, PathValidationOptions, RegexValidationOptions, CommandValidationOptions, IValidationStrategy, IPathValidationStrategy, IRegexValidationStrategy, ICommandValidationStrategy, IInputSanitizationStrategy, ICryptoValidationStrategy, IValidationOrchestrator, } from './validators-interfaces';
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Agentic QE v3 - Security Utilities
3
3
  */
4
- export { OSVClient } from './osv-client.js';
4
+ export { OSVClient, OSVLookupError, resolveOSVBaseUrl } from './osv-client.js';
5
5
  export { CompliancePatternAnalyzer, getCompliancePatternAnalyzer } from './compliance-patterns.js';
6
6
  // ============================================================================
7
7
  // Validators (moved from mcp/security/validators/)
@@ -5,146 +5,85 @@
5
5
  * OSV provides vulnerability information for npm, PyPI, Go, Maven, and more.
6
6
  * API Documentation: https://google.github.io/osv.dev/api/
7
7
  */
8
- /**
9
- * OSV query request
10
- */
11
- export interface OSVQueryRequest {
12
- /** Package name */
13
- package?: {
14
- name: string;
15
- ecosystem: OSVEcosystem;
16
- version?: string;
17
- };
18
- /** Git commit hash */
19
- commit?: string;
20
- /** Package lock file version (for version ranges) */
21
- version?: string;
22
- }
23
- /**
24
- * Supported ecosystems
25
- */
26
- export type OSVEcosystem = 'npm' | 'PyPI' | 'Go' | 'Maven' | 'crates.io' | 'NuGet' | 'Packagist' | 'RubyGems' | 'Hex' | 'Pub';
27
- /**
28
- * OSV vulnerability record
29
- */
30
- export interface OSVVulnerability {
31
- id: string;
32
- summary: string;
33
- details?: string;
34
- aliases?: string[];
35
- modified: string;
36
- published?: string;
37
- withdrawn?: string;
38
- severity?: OSVSeverity[];
39
- affected: OSVAffected[];
40
- references?: OSVReference[];
41
- database_specific?: Record<string, unknown>;
42
- }
43
- /**
44
- * OSV severity rating
45
- */
46
- export interface OSVSeverity {
47
- type: 'CVSS_V2' | 'CVSS_V3';
48
- score: string;
49
- }
50
- /**
51
- * OSV affected package information
52
- */
53
- export interface OSVAffected {
54
- package: {
55
- name: string;
56
- ecosystem: string;
57
- purl?: string;
58
- };
59
- ranges?: OSVRange[];
60
- versions?: string[];
61
- ecosystem_specific?: Record<string, unknown>;
62
- database_specific?: Record<string, unknown>;
63
- }
64
- /**
65
- * OSV version range
66
- */
67
- export interface OSVRange {
68
- type: 'SEMVER' | 'ECOSYSTEM' | 'GIT';
69
- repo?: string;
70
- events: Array<{
71
- introduced?: string;
72
- fixed?: string;
73
- last_affected?: string;
74
- limit?: string;
75
- }>;
76
- }
77
- /**
78
- * OSV reference link
79
- */
80
- export interface OSVReference {
81
- type: 'ADVISORY' | 'ARTICLE' | 'DETECTION' | 'DISCUSSION' | 'REPORT' | 'FIX' | 'GIT' | 'PACKAGE' | 'EVIDENCE' | 'WEB';
82
- url: string;
83
- }
84
- /**
85
- * OSV query response
86
- */
87
- export interface OSVQueryResponse {
88
- vulns: OSVVulnerability[];
89
- }
90
- /**
91
- * OSV batch query request
92
- */
93
- export interface OSVBatchQueryRequest {
94
- queries: OSVQueryRequest[];
95
- }
96
- /**
97
- * OSV batch query response
98
- */
99
- export interface OSVBatchQueryResponse {
100
- results: Array<{
101
- vulns?: OSVVulnerability[];
102
- }>;
103
- }
104
- /**
105
- * Parsed vulnerability for easier consumption
106
- */
107
- export interface ParsedVulnerability {
108
- id: string;
109
- cveIds: string[];
110
- summary: string;
111
- details: string;
112
- severity: 'critical' | 'high' | 'medium' | 'low' | 'unknown';
113
- cvssScore: number | null;
114
- affectedPackage: string;
115
- affectedVersions: string[];
116
- fixedVersions: string[];
117
- publishedDate: Date | null;
118
- references: string[];
119
- }
8
+ import { type OSVBatchLookup, type OSVPackageQuery } from './osv-lookup';
9
+ export { OSVLookupError } from './osv-lookup';
10
+ export type { OSVBatchLookup, OSVPackageQuery, OSVUncheckedPackage } from './osv-lookup';
11
+ import type { OSVEcosystem, ParsedVulnerability } from './osv-types';
12
+ export type { OSVQueryRequest, OSVEcosystem, OSVVulnerability, OSVSeverity, OSVAffected, OSVRange, OSVReference, OSVQueryResponse, OSVBatchQueryRequest, OSVBatchQueryResponse, ParsedVulnerability, } from './osv-types';
120
13
  /**
121
14
  * OSV API Client Configuration
122
15
  */
123
16
  export interface OSVClientConfig {
124
- /** API base URL (default: https://api.osv.dev) */
17
+ /**
18
+ * API base URL (default: $AQE_OSV_API_URL, else https://api.osv.dev). Must be
19
+ * https, or http on a loopback host. Validated lazily at the first lookup, so
20
+ * an invalid value fails dependency scans only, never construction (#1049).
21
+ */
125
22
  baseUrl?: string;
126
- /** Request timeout in ms (default: 30000) */
23
+ /** Idle request timeout in ms (default: 30000) */
127
24
  timeout?: number;
128
- /** Enable response caching (default: true) */
25
+ /** Retries per request after the first attempt (default: 2) */
26
+ retries?: number;
27
+ /** Packages per querybatch request (default: 500; OSV accepts up to 1000) */
28
+ batchSize?: number;
29
+ /** Concurrent advisory-detail requests (default: 8) */
30
+ detailConcurrency?: number;
31
+ /** Enable advisory-detail caching (default: true) */
129
32
  enableCache?: boolean;
130
33
  /** Cache TTL in ms (default: 1 hour) */
131
34
  cacheTtl?: number;
132
35
  }
36
+ /**
37
+ * The OSV endpoint: `AQE_OSV_API_URL` or the public API. https is required,
38
+ * except plain http on a loopback host (local mirrors and test stubs).
39
+ * @throws Error naming AQE_OSV_API_URL when the value is not acceptable.
40
+ */
41
+ export declare function resolveOSVBaseUrl(env?: NodeJS.ProcessEnv): string;
42
+ /** Longest accepted AQE_OSV_API_URL; a longer value is invalid. */
43
+ export declare const MAX_OSV_URL_LENGTH = 2048;
133
44
  /**
134
45
  * OSV API Client
135
- * Queries the Open Source Vulnerabilities database for dependency vulnerabilities
46
+ * Queries the Open Source Vulnerabilities database for dependency vulnerabilities.
47
+ *
48
+ * #1049: a failed or partial lookup is never reported as "no vulnerabilities".
49
+ * `lookupBatch` returns the packages it could not check; the list-returning
50
+ * methods throw `OSVLookupError` instead of returning `[]`.
136
51
  */
137
52
  export declare class OSVClient {
138
53
  private readonly config;
54
+ private readonly configuredBaseUrl;
55
+ private endpoint;
139
56
  private readonly http;
140
- private readonly cache;
57
+ private readonly detailCache;
141
58
  constructor(config?: OSVClientConfig);
59
+ /** The endpoint this client queries, or null when the configured URL is invalid. */
60
+ get baseUrl(): string | null;
61
+ /** Resolve (once) the endpoint; an invalid value is a reason, never a throw. */
62
+ private resolveEndpoint;
63
+ private get base();
64
+ /**
65
+ * Look up advisories for packages, reporting every package that could not be
66
+ * checked. Only `status: 'complete'` may be read as a clean/measured result.
67
+ */
68
+ lookupBatch(packages: OSVPackageQuery[]): Promise<OSVBatchLookup>;
69
+ /**
70
+ * Look up npm `package.json` dependencies (`name -> version spec`).
71
+ *
72
+ * A dependency is checked at its lockfile-resolved version when one is given,
73
+ * else only when the spec is an exact version ("1.2.3", "=1.2.3", "v1.2.3").
74
+ * Ranges, tags and non-registry specs are reported unchecked, never guessed:
75
+ * checking a range's bound (e.g. "<4.17.12" as 4.17.12) can miss advisories
76
+ * that affect the versions the range allows (#1049).
77
+ */
78
+ lookupNpmDependencies(dependencies: Record<string, string>, lockedVersions?: Record<string, string>): Promise<OSVBatchLookup>;
142
79
  /**
143
- * Query OSV for vulnerabilities affecting a package
80
+ * Query OSV for vulnerabilities affecting a package.
81
+ * @throws OSVLookupError when the advisory lookup did not complete.
144
82
  */
145
83
  queryPackage(packageName: string, ecosystem: OSVEcosystem, version?: string): Promise<ParsedVulnerability[]>;
146
84
  /**
147
- * Batch query multiple packages
85
+ * Batch query multiple packages.
86
+ * @throws OSVLookupError when any package could not be checked.
148
87
  */
149
88
  queryBatch(packages: Array<{
150
89
  name: string;
@@ -152,40 +91,48 @@ export declare class OSVClient {
152
91
  version?: string;
153
92
  }>): Promise<Map<string, ParsedVulnerability[]>>;
154
93
  /**
155
- * Query vulnerabilities by CVE ID
94
+ * Query vulnerabilities by advisory/CVE id. An id OSV does not know (404) is [].
95
+ * @throws OSVLookupError on any other failure.
156
96
  */
157
97
  queryByCVE(cveId: string): Promise<ParsedVulnerability[]>;
158
98
  /**
159
- * Parse npm package.json dependencies for vulnerabilities
99
+ * Scan npm dependencies for vulnerabilities.
100
+ * @throws OSVLookupError when any dependency could not be checked; use
101
+ * `lookupNpmDependencies` to get partial results with the unchecked list.
160
102
  */
161
103
  scanNpmDependencies(dependencies: Record<string, string>): Promise<ParsedVulnerability[]>;
162
104
  /**
163
- * Scan a Python requirements.txt file content
105
+ * Scan a Python requirements.txt file content. Only `==` pins are concrete
106
+ * versions; other requirements are reported as unchecked.
107
+ * @throws OSVLookupError when any requirement could not be checked.
164
108
  */
165
109
  scanPythonRequirements(requirements: string): Promise<ParsedVulnerability[]>;
110
+ /** Clear the advisory-detail cache. */
111
+ clearCache(): void;
112
+ private requestOptions;
113
+ /** Read a JSON body; any transport failure, non-2xx status or parse failure is a reason. */
114
+ private readJson;
115
+ private postBatch;
116
+ /** Fetch full advisory records (querybatch returns only ids) with bounded concurrency. */
117
+ private fetchDetails;
118
+ private fetchDetail;
166
119
  /**
167
120
  * Parse vulnerabilities into a more usable format
168
121
  */
169
122
  private parseVulnerabilities;
170
123
  /**
171
- * Extract CVSS score from severity array
124
+ * Extract a numeric CVSS score. OSV usually carries a CVSS vector string
125
+ * ("CVSS:3.1/AV:N/..."), which holds no base score: that yields null.
172
126
  */
173
127
  private extractCVSSScore;
174
128
  /**
175
- * Convert CVSS score to severity level
129
+ * Severity from a numeric CVSS score, else the advisory's own severity label
130
+ * (GitHub advisories carry `database_specific.severity`), else unknown.
176
131
  */
177
132
  private scoreSeverity;
178
133
  /**
179
134
  * Extract fixed versions from affected ranges
180
135
  */
181
136
  private extractFixedVersions;
182
- /**
183
- * Clean version string (remove ^ ~ etc.)
184
- */
185
- private cleanVersion;
186
- /**
187
- * Clear the cache
188
- */
189
- clearCache(): void;
190
137
  }
191
138
  //# sourceMappingURL=osv-client.d.ts.map