agentic-qe 3.11.3 → 3.11.5

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 (426) hide show
  1. package/.claude/hooks/aqe-hook.cjs +44 -10
  2. package/.claude/skills/skills-manifest.json +1 -1
  3. package/CHANGELOG.md +106 -0
  4. package/assets/skills/skills-manifest.json +1 -1
  5. package/dist/audit/witness-chain.d.ts +25 -0
  6. package/dist/audit/witness-chain.js +69 -22
  7. package/dist/audit/witness-key-manager.d.ts +11 -0
  8. package/dist/audit/witness-key-manager.js +24 -0
  9. package/dist/cli/brain-commands.js +2 -1
  10. package/dist/cli/bundle.js +5 -5
  11. package/dist/cli/chunks/adapter-KNM5R47J.js +2 -0
  12. package/dist/cli/chunks/{agent-booster-wasm-BFRW7HEU.js → agent-booster-wasm-CSTBLNYZ.js} +2 -2
  13. package/dist/cli/chunks/{agent-handler-ZVC3VFPC.js → agent-handler-M4W4GTXN.js} +2 -2
  14. package/dist/cli/chunks/{agent-memory-branch-3WU3CVSX.js → agent-memory-branch-VGXFYLSQ.js} +2 -2
  15. package/dist/cli/chunks/aqe-learning-engine-MXPJLVR3.js +2 -0
  16. package/dist/cli/chunks/{arena-QMRLNQUC.js → arena-FKSD3LLM.js} +4 -4
  17. package/dist/cli/chunks/{arena-JMVTWWG5.js → arena-IQBRGWAG.js} +2 -2
  18. package/dist/cli/chunks/audit-7NSGRR4Z.js +3 -0
  19. package/dist/cli/chunks/base-X4EXQ2AS.js +2 -0
  20. package/dist/cli/chunks/{hnswlib-node-EBRXKEX5.js → better-sqlite3-2KR4LQRU.js} +2 -2
  21. package/dist/cli/chunks/brain-handler-M6A3UB66.js +89 -0
  22. package/dist/cli/chunks/{branch-enumerator-CJJG6X3I.js → branch-enumerator-2JGKY4BB.js} +2 -2
  23. package/dist/cli/chunks/{browser-LI2CDWVR.js → browser-J43WQPJL.js} +2 -2
  24. package/dist/cli/chunks/browser-workflow-4HX6RP5F.js +2 -0
  25. package/dist/cli/chunks/{chunk-DS7AZD26.js → chunk-26WEI3P4.js} +2 -2
  26. package/dist/cli/chunks/{chunk-OVEG5MEL.js → chunk-2XPMATEK.js} +2 -2
  27. package/dist/cli/chunks/{chunk-36HTS4EP.js → chunk-2XQHG56O.js} +2 -2
  28. package/dist/cli/chunks/{chunk-CGKHG46K.js → chunk-354367AP.js} +2 -2
  29. package/dist/cli/chunks/{chunk-FPKKKUWF.js → chunk-37ZUF5NX.js} +1 -1
  30. package/dist/cli/chunks/{chunk-H7Y43HBQ.js → chunk-3I4TCMOJ.js} +1 -1
  31. package/dist/cli/chunks/{chunk-WV66MXJI.js → chunk-3JF5A72M.js} +2 -2
  32. package/dist/cli/chunks/{chunk-MX5FMAY5.js → chunk-3LY7OCSO.js} +1 -1
  33. package/dist/cli/chunks/{chunk-KHUN65Q3.js → chunk-3V36WMIO.js} +1 -1
  34. package/dist/cli/chunks/{chunk-VFEU4JM4.js → chunk-3WR35GFF.js} +2 -2
  35. package/dist/cli/chunks/{chunk-A43MKBSX.js → chunk-4LODYRNV.js} +2 -2
  36. package/dist/cli/chunks/{chunk-3E3PSEC5.js → chunk-4MHN7JWC.js} +3 -3
  37. package/dist/cli/chunks/chunk-4QOI5JS7.js +14 -0
  38. package/dist/cli/chunks/{chunk-LKLWIP4Z.js → chunk-4RTWPR3X.js} +1 -1
  39. package/dist/cli/chunks/chunk-4XJ2A3HY.js +65 -0
  40. package/dist/cli/chunks/{chunk-PMHSTMHV.js → chunk-4Y3LGBKJ.js} +3 -3
  41. package/dist/cli/chunks/{chunk-SFDBIO64.js → chunk-52U5BFZP.js} +2 -2
  42. package/dist/cli/chunks/{chunk-YPRM6ZFL.js → chunk-53YOYZW5.js} +2 -2
  43. package/dist/cli/chunks/{chunk-REZ2GZQ3.js → chunk-5WMU7XCF.js} +1 -1
  44. package/dist/cli/chunks/{chunk-VUEYLW5P.js → chunk-62OTU2AP.js} +2 -2
  45. package/dist/cli/chunks/{chunk-3XLGXCSX.js → chunk-62UM7Q5N.js} +1 -1
  46. package/dist/cli/chunks/{chunk-DZZ4AJQI.js → chunk-6Q57K4YD.js} +2 -2
  47. package/dist/cli/chunks/chunk-6R3YOAKO.js +2 -0
  48. package/dist/cli/chunks/chunk-6T65OKUM.js +2 -0
  49. package/dist/cli/chunks/{chunk-VTDWQ7WI.js → chunk-7BCRULCP.js} +2 -2
  50. package/dist/cli/chunks/{chunk-XCSEJQXR.js → chunk-7DTMENY6.js} +2 -2
  51. package/dist/cli/chunks/{chunk-N2K2EQFH.js → chunk-7KXPNNMR.js} +2 -2
  52. package/dist/cli/chunks/{chunk-XKUN5PDH.js → chunk-7P6X4BFO.js} +3 -3
  53. package/dist/cli/chunks/{chunk-3CBYKKRW.js → chunk-7YSBATSN.js} +2 -2
  54. package/dist/cli/chunks/{chunk-ZDPQB67L.js → chunk-ABU64UWB.js} +1 -1
  55. package/dist/cli/chunks/{chunk-IJHPZMEQ.js → chunk-AF6P5RWY.js} +2 -2
  56. package/dist/cli/chunks/{chunk-7S7QF4HJ.js → chunk-AGJOGUP5.js} +1 -1
  57. package/dist/cli/chunks/{chunk-EHEFI6LR.js → chunk-AL5VJJN4.js} +1 -1
  58. package/dist/cli/chunks/{chunk-Q2A2XQGF.js → chunk-AOQYORVA.js} +2 -2
  59. package/dist/cli/chunks/{chunk-6WWNK67C.js → chunk-AOXJFDH5.js} +180 -176
  60. package/dist/cli/chunks/{chunk-SWRGPCZ2.js → chunk-AXKWV5NF.js} +4 -4
  61. package/dist/cli/chunks/{chunk-3BREKEL5.js → chunk-B2VBDMDI.js} +2 -2
  62. package/dist/cli/chunks/{chunk-RXN5DWVM.js → chunk-BJLA2IX7.js} +2 -2
  63. package/dist/cli/chunks/{chunk-DPYNXEBC.js → chunk-BLPWJQTY.js} +2 -2
  64. package/dist/cli/chunks/{chunk-SMHYPPO6.js → chunk-BTLUWH4R.js} +2 -2
  65. package/dist/cli/chunks/{chunk-PUK5NE47.js → chunk-C4EZNOWK.js} +1 -1
  66. package/dist/cli/chunks/{chunk-ATFADWGD.js → chunk-C5C4W572.js} +2 -2
  67. package/dist/cli/chunks/{chunk-WTKT2AD3.js → chunk-CDJP6COA.js} +2 -2
  68. package/dist/cli/chunks/{chunk-G6MPXBCD.js → chunk-CKOF27L7.js} +2 -2
  69. package/dist/cli/chunks/{chunk-BQ5EJPK3.js → chunk-D45QLJEL.js} +1 -1
  70. package/dist/cli/chunks/{chunk-WCVZHXWL.js → chunk-DFRRWOEX.js} +2 -2
  71. package/dist/cli/chunks/{chunk-PSL53AQ4.js → chunk-DLBVADWQ.js} +92 -92
  72. package/dist/cli/chunks/{chunk-HRD5I7ES.js → chunk-DPL762HU.js} +1 -1
  73. package/dist/cli/chunks/{chunk-7QIYYYUE.js → chunk-DVW66FPU.js} +1 -1
  74. package/dist/cli/chunks/{chunk-ABD6JBNO.js → chunk-EDOGRFAG.js} +1 -1
  75. package/dist/cli/chunks/{chunk-7SBMTSGY.js → chunk-EEKG35K5.js} +5 -5
  76. package/dist/cli/chunks/{chunk-PW4GGJMP.js → chunk-EK3HPH6A.js} +1 -1
  77. package/dist/cli/chunks/{chunk-QPMISAWB.js → chunk-FGD6HINU.js} +1 -1
  78. package/dist/cli/chunks/{chunk-SLU35IDJ.js → chunk-FGSIID5C.js} +2 -2
  79. package/dist/cli/chunks/{chunk-DNOBN3IR.js → chunk-FHTYEAQ3.js} +2 -2
  80. package/dist/cli/chunks/{chunk-S2T2BXUL.js → chunk-FII3WCCY.js} +2 -2
  81. package/dist/cli/chunks/{chunk-77QJQRL2.js → chunk-FIPKIIMS.js} +2 -2
  82. package/dist/cli/chunks/{chunk-WYJFVSEB.js → chunk-FMNXHVIN.js} +2 -2
  83. package/dist/cli/chunks/{chunk-FZLCKIPP.js → chunk-G2ZIJZJ7.js} +2 -2
  84. package/dist/cli/chunks/{chunk-L6PH7JIE.js → chunk-GODAWJMZ.js} +2 -2
  85. package/dist/cli/chunks/{chunk-KTYESESI.js → chunk-GW6XWMX2.js} +2 -2
  86. package/dist/cli/chunks/{chunk-AC6OZTY4.js → chunk-HC6KTVFR.js} +2 -2
  87. package/dist/cli/chunks/{chunk-EXCU4J7T.js → chunk-HJWT4KME.js} +1 -1
  88. package/dist/cli/chunks/{chunk-GBCDJJWH.js → chunk-I3ANRYQ6.js} +2 -2
  89. package/dist/cli/chunks/{chunk-KXRI4MR3.js → chunk-I3NWKPXJ.js} +2 -2
  90. package/dist/cli/chunks/chunk-IBDQWKI3.js +2 -0
  91. package/dist/cli/chunks/{chunk-7FVWETN4.js → chunk-IU5RSN6M.js} +2 -2
  92. package/dist/cli/chunks/{chunk-L44XXD3X.js → chunk-J5XDKVI7.js} +2 -2
  93. package/dist/cli/chunks/{chunk-NJ2RY4OL.js → chunk-J6PFPY7V.js} +2 -2
  94. package/dist/cli/chunks/{chunk-27MMZQ7X.js → chunk-JATLFS6A.js} +1 -1
  95. package/dist/cli/chunks/{chunk-SIAJP3YA.js → chunk-JBKZ5TUM.js} +2 -2
  96. package/dist/cli/chunks/{chunk-PLQADRA6.js → chunk-JDSHUECG.js} +2 -2
  97. package/dist/cli/chunks/chunk-K4C25BWV.js +24 -0
  98. package/dist/cli/chunks/{chunk-UFZCHVLH.js → chunk-K4I7UIU5.js} +1 -1
  99. package/dist/cli/chunks/{chunk-6F43POT6.js → chunk-KP3R2M2G.js} +1 -1
  100. package/dist/cli/chunks/chunk-KQVIWE3W.js +2 -0
  101. package/dist/cli/chunks/{chunk-JWTMVC6E.js → chunk-KVVJVMDM.js} +2 -2
  102. package/dist/cli/chunks/{chunk-EZ4GKHSI.js → chunk-LOE2JETO.js} +2 -2
  103. package/dist/cli/chunks/{chunk-O7ZDQ5FF.js → chunk-LPR2R3AN.js} +3 -3
  104. package/dist/cli/chunks/{chunk-AKOGQT3A.js → chunk-M6FW56MV.js} +2 -2
  105. package/dist/cli/chunks/{chunk-NBOEXSV2.js → chunk-MCHEUSY4.js} +1 -1
  106. package/dist/cli/chunks/{chunk-B7XPSXK6.js → chunk-MEIU7457.js} +2 -2
  107. package/dist/cli/chunks/{chunk-3FOFPGHH.js → chunk-MHMQ6MCT.js} +2 -2
  108. package/dist/cli/chunks/{chunk-6JR2RSY2.js → chunk-MIU5RUBJ.js} +2 -2
  109. package/dist/cli/chunks/{chunk-QCCXH5DK.js → chunk-MMEXHZUC.js} +37 -12
  110. package/dist/cli/chunks/{chunk-LW5TUN5F.js → chunk-MTBGOWJA.js} +2 -2
  111. package/dist/cli/chunks/{chunk-JVXPKHND.js → chunk-NCSXLMDL.js} +77 -27
  112. package/dist/cli/chunks/{chunk-WLLGPGQY.js → chunk-O7J54OHN.js} +1 -1
  113. package/dist/cli/chunks/{chunk-ZM7WOA3K.js → chunk-OGNTCZKK.js} +1 -1
  114. package/dist/cli/chunks/{chunk-CYJ6O5VZ.js → chunk-OS2HHJTM.js} +2 -2
  115. package/dist/cli/chunks/{chunk-242B625Q.js → chunk-OS62Y77J.js} +2 -2
  116. package/dist/cli/chunks/{chunk-CLZ5RQVA.js → chunk-PVDXNQPL.js} +2 -2
  117. package/dist/cli/chunks/{chunk-PUUGIBFF.js → chunk-PW72M2FE.js} +2 -2
  118. package/dist/cli/chunks/{chunk-RWUGXU2K.js → chunk-Q5TR6ETB.js} +22 -22
  119. package/dist/cli/chunks/{chunk-CCDGNJZX.js → chunk-QKK7VBVB.js} +2 -2
  120. package/dist/cli/chunks/{chunk-BHZI6PDR.js → chunk-RFLHPLET.js} +1 -1
  121. package/dist/cli/chunks/{chunk-KULBMV6K.js → chunk-RJN2RM76.js} +2 -2
  122. package/dist/cli/chunks/{chunk-LGEZ3ZJX.js → chunk-RKXZLTWR.js} +2 -2
  123. package/dist/cli/chunks/{chunk-OFMVC6P3.js → chunk-SE3JFUKP.js} +1 -1
  124. package/dist/cli/chunks/{chunk-S7KDHA6P.js → chunk-SK754ZSH.js} +4 -4
  125. package/dist/cli/chunks/{chunk-OQGELUM2.js → chunk-SO6G4IX3.js} +2 -2
  126. package/dist/cli/chunks/{chunk-5746QYRF.js → chunk-SUL3I6QZ.js} +2 -2
  127. package/dist/cli/chunks/{chunk-22CUJA33.js → chunk-TBT3OFRW.js} +2 -2
  128. package/dist/cli/chunks/{chunk-26KHL4VO.js → chunk-TEIWJ3GJ.js} +1 -1
  129. package/dist/cli/chunks/{chunk-SFGBC5RP.js → chunk-TRNBQFFG.js} +8 -20
  130. package/dist/cli/chunks/{chunk-UTGW75AZ.js → chunk-TTJJ4DQE.js} +2 -2
  131. package/dist/cli/chunks/{chunk-H6YFMUFG.js → chunk-UBI2EOS3.js} +1 -1
  132. package/dist/cli/chunks/{chunk-GCIL7PK7.js → chunk-UBY322ED.js} +2 -2
  133. package/dist/cli/chunks/{chunk-P4UGVVVX.js → chunk-UORTQXJ2.js} +1 -1
  134. package/dist/cli/chunks/{chunk-BFBZFUBP.js → chunk-URP75DL4.js} +1 -1
  135. package/dist/cli/chunks/chunk-V6NAB5UZ.js +2 -0
  136. package/dist/cli/chunks/{chunk-DZ7PWB6E.js → chunk-VMFAANWX.js} +2 -2
  137. package/dist/cli/chunks/{chunk-6KKKPVOF.js → chunk-VMWRMINE.js} +1 -1
  138. package/dist/cli/chunks/{chunk-ECGASTG7.js → chunk-VN2HHBZN.js} +2 -2
  139. package/dist/cli/chunks/{chunk-6GVRP64A.js → chunk-W72FJA2H.js} +2 -2
  140. package/dist/cli/chunks/chunk-W7TYKPLY.js +27 -0
  141. package/dist/cli/chunks/{chunk-2OUXYSQV.js → chunk-WHHQIL4F.js} +2 -2
  142. package/dist/cli/chunks/{chunk-RRSUW2TK.js → chunk-WMZ2QGGS.js} +2 -2
  143. package/dist/cli/chunks/{chunk-54TDOQAH.js → chunk-WPSK237F.js} +3 -3
  144. package/dist/cli/chunks/{chunk-LMA6KEZH.js → chunk-XKQY2Z3Q.js} +1 -1
  145. package/dist/cli/chunks/{chunk-UMWYL37S.js → chunk-XLT3FYS7.js} +2 -2
  146. package/dist/cli/chunks/{chunk-5EW36WTI.js → chunk-XT4TDLOB.js} +2 -2
  147. package/dist/cli/chunks/{chunk-7UOH55UT.js → chunk-Y25PO65W.js} +2 -2
  148. package/dist/cli/chunks/{chunk-ED7MD6OI.js → chunk-Y6DWJKHU.js} +3 -3
  149. package/dist/cli/chunks/{chunk-A4NYOH7P.js → chunk-YBPLJRVT.js} +2 -2
  150. package/dist/cli/chunks/{chunk-BA7PJS3Y.js → chunk-YFCULQBP.js} +2 -2
  151. package/dist/cli/chunks/{chunk-B65CRJN6.js → chunk-YGVDP6X7.js} +1 -1
  152. package/dist/cli/chunks/chunk-YR2JKBZO.js +2 -0
  153. package/dist/cli/chunks/{chunk-FJRRXCIS.js → chunk-YZSTZUGJ.js} +1 -1
  154. package/dist/cli/chunks/{chunk-H2YOWAEB.js → chunk-ZG5UAEEO.js} +2 -2
  155. package/dist/cli/chunks/{chunk-MU36VPXV.js → chunk-ZLBY25MB.js} +1 -1
  156. package/dist/cli/chunks/chunk-ZMPAM4DY.js +2 -0
  157. package/dist/cli/chunks/{chunk-4ITHKHR5.js → chunk-ZPP57WQU.js} +2 -2
  158. package/dist/cli/chunks/{chunk-B6USJW5E.js → chunk-ZXEWTZFR.js} +1 -1
  159. package/dist/cli/chunks/{ci-JW4O2J3W.js → ci-CBNVLOOQ.js} +2 -2
  160. package/dist/cli/chunks/{ci-output-JNXJV4B2.js → ci-output-I4HY2FYJ.js} +2 -2
  161. package/dist/cli/chunks/{circuit-breaker-XDD4KUGR.js → circuit-breaker-5VRBKGWL.js} +2 -2
  162. package/dist/cli/chunks/{claude-flow-setup-L6IZOGYZ.js → claude-flow-setup-XPJPKHIO.js} +2 -2
  163. package/dist/cli/chunks/client-AHXNCOHK.js +2 -0
  164. package/dist/cli/chunks/{cline-installer-PK5SMN2B.js → cline-installer-OFRDUUWZ.js} +2 -2
  165. package/dist/cli/chunks/{code-ZDVX3SQH.js → code-QIZQVB3E.js} +2 -2
  166. package/dist/cli/chunks/{code-index-extractor-VXZNKEU5.js → code-index-extractor-LMUUWEX4.js} +2 -2
  167. package/dist/cli/chunks/{codex-installer-OXKSIX7H.js → codex-installer-N2MKIZ2S.js} +2 -2
  168. package/dist/cli/chunks/{completions-VRFFK223.js → completions-Y36S3C5J.js} +2 -2
  169. package/dist/cli/chunks/{complexity-analyzer-FTIMV74J.js → complexity-analyzer-73YS3WUD.js} +2 -2
  170. package/dist/cli/chunks/{continuedev-installer-KTYBBPN4.js → continuedev-installer-SAOTP6J3.js} +2 -2
  171. package/dist/cli/chunks/{copilot-installer-WDC3YNUR.js → copilot-installer-A4HXF6HE.js} +2 -2
  172. package/dist/cli/chunks/core-handlers-EEFLLMAZ.js +2 -0
  173. package/dist/cli/chunks/{cost-tracker-6MH4H33B.js → cost-tracker-P26XUVZS.js} +2 -2
  174. package/dist/cli/chunks/{coverage-NHATLNS4.js → coverage-HVNHSMVJ.js} +3 -3
  175. package/dist/cli/chunks/cross-domain-router-LT3H4SNJ.js +2 -0
  176. package/dist/cli/chunks/{cursor-installer-VQSUJDFB.js → cursor-installer-46BQFTYZ.js} +2 -2
  177. package/dist/cli/chunks/{daemon-3VAOEKQW.js → daemon-Y54O3FLT.js} +3 -3
  178. package/dist/cli/chunks/daemon-YE7K2AZF.js +10 -0
  179. package/dist/cli/chunks/{dag-attention-scheduler-HZ6OGYIH.js → dag-attention-scheduler-ETA7YY52.js} +2 -2
  180. package/dist/cli/chunks/{detect-CGU3SC63.js → detect-5WLQ2J3E.js} +2 -2
  181. package/dist/cli/chunks/{dist-node-DIBQ7PTA.js → dist-node-45WW6I7J.js} +2 -2
  182. package/dist/cli/chunks/{domain-handler-DCMGAYXS.js → domain-handler-J7DQV74M.js} +2 -2
  183. package/dist/cli/chunks/domain-transfer-GD2EGQVR.js +2 -0
  184. package/dist/cli/chunks/dream-4K3BK4IG.js +2 -0
  185. package/dist/cli/chunks/{embed-and-insert-pattern-7247LAU3.js → embed-and-insert-pattern-JELNEA2D.js} +2 -2
  186. package/dist/cli/chunks/{eval-6KR7TFOK.js → eval-A4PA5G2U.js} +2 -2
  187. package/dist/cli/chunks/{experience-capture-middleware-IIOR6RVV.js → experience-capture-middleware-MLHTYWTA.js} +3 -3
  188. package/dist/cli/chunks/{fast-paths-M7OGD4ZI.js → fast-paths-QYDTITRV.js} +2 -2
  189. package/dist/cli/chunks/{feature-flags-U75KFIGH.js → feature-flags-H4MSY26Z.js} +2 -2
  190. package/dist/cli/chunks/{feature-flags-GGUXHRJI.js → feature-flags-MQYYRHIK.js} +2 -2
  191. package/dist/cli/chunks/{file-discovery-V52AYEB7.js → file-discovery-RMFVJNGL.js} +2 -2
  192. package/dist/cli/chunks/{fleet-2UH72CK4.js → fleet-7KZQOTAC.js} +4 -4
  193. package/dist/cli/chunks/{gnn-wrapper-J2GDLT3P.js → gnn-wrapper-NMZFTGVH.js} +2 -2
  194. package/dist/cli/chunks/{heartbeat-handler-QIDQHRXT.js → heartbeat-handler-7BQDK7MG.js} +4 -4
  195. package/dist/cli/chunks/heartbeat-scheduler-IMPPGQUK.js +2 -0
  196. package/dist/cli/chunks/hnsw-adapter-EIAA6R2L.js +2 -0
  197. package/dist/cli/chunks/hnsw-index-ZXXP6AXZ.js +2 -0
  198. package/dist/cli/chunks/{hnsw-legacy-bridge-IU62PIY5.js → hnsw-legacy-bridge-TPPGBPKF.js} +2 -2
  199. package/dist/cli/chunks/{better-sqlite3-QNZJOJAB.js → hnswlib-node-E6NSZPP2.js} +2 -2
  200. package/dist/cli/chunks/{hooks-ZI4D3ATS.js → hooks-CYZIUYSH.js} +48 -52
  201. package/dist/cli/chunks/hybrid-router-LXWG4MLH.js +2 -0
  202. package/dist/cli/chunks/{hypergraph-engine-6JEERAGA.js → hypergraph-engine-WC6DMTYQ.js} +2 -2
  203. package/dist/cli/chunks/{hypergraph-handler-YMDGYCB6.js → hypergraph-handler-GTGA3TXJ.js} +3 -3
  204. package/dist/cli/chunks/impact-analyzer-TP5LRFYH.js +2 -0
  205. package/dist/cli/chunks/{init-handler-N57NW3QI.js → init-handler-N3Z72JNI.js} +6 -6
  206. package/dist/cli/chunks/init-wizard-AIOA5KOY.js +2 -0
  207. package/dist/cli/chunks/kernel-SQALRU6Q.js +2 -0
  208. package/dist/cli/chunks/{kilocode-installer-7ABTGXJ5.js → kilocode-installer-FUX4V6II.js} +2 -2
  209. package/dist/cli/chunks/{kiro-installer-2JFOHLVI.js → kiro-installer-ZSNZT7ZR.js} +2 -2
  210. package/dist/cli/chunks/knowledge-graph-JFVT6SNN.js +2 -0
  211. package/dist/cli/chunks/{learning-3P3ZXRGD.js → learning-UQY64COU.js} +3 -3
  212. package/dist/cli/chunks/{llm-router-AWB2KHDW.js → llm-router-CMHGGX6N.js} +4 -4
  213. package/dist/cli/chunks/llm-router-service-XHFKTH3I.js +2 -0
  214. package/dist/cli/chunks/{load-GGVBCBGX.js → load-E6WH4QN2.js} +2 -2
  215. package/dist/cli/chunks/load-test-JEIFJKNN.js +2 -0
  216. package/dist/cli/chunks/{mcp-33NHIBN3.js → mcp-UM5VTW6N.js} +2 -2
  217. package/dist/cli/chunks/{memory-IVAQS4OW.js → memory-7Q3XDUE5.js} +5 -5
  218. package/dist/cli/chunks/memory-backend-NT7I37CP.js +2 -0
  219. package/dist/cli/chunks/memory-handlers-746D7NE7.js +2 -0
  220. package/dist/cli/chunks/{multi-model-executor-NWQY6IN2.js → multi-model-executor-LZENWVRR.js} +2 -2
  221. package/dist/cli/chunks/{opencode-installer-FBB4JOEV.js → opencode-installer-O2JAIPLF.js} +2 -2
  222. package/dist/cli/chunks/{orchestrator-GDAXR7DH.js → orchestrator-DKZWXDRI.js} +5 -5
  223. package/dist/cli/chunks/pattern-null-store-6QU6WHDW.js +2 -0
  224. package/dist/cli/chunks/pattern-usage-recorder-CLUL4M55.js +2 -0
  225. package/dist/cli/chunks/{pipeline-VIKAOIBE.js → pipeline-2VDLTR5J.js} +2 -2
  226. package/dist/cli/chunks/{platform-FFVP36LH.js → platform-4N4Q5XYX.js} +2 -2
  227. package/dist/cli/chunks/{plugin-TI6QOLXH.js → plugin-GY5AU5CS.js} +2 -2
  228. package/dist/cli/chunks/{prime-radiant-advanced-wasm-AZRNI2OL.js → prime-radiant-advanced-wasm-TQ4DKDZS.js} +2 -2
  229. package/dist/cli/chunks/protocol-executor-GT2MZYUU.js +2 -0
  230. package/dist/cli/chunks/{protocol-handler-J4EA34B3.js → protocol-handler-T3LZ3WRG.js} +2 -2
  231. package/dist/cli/chunks/{prove-ADVRMAWS.js → prove-OV7S5J4W.js} +2 -2
  232. package/dist/cli/chunks/provider-manager-OATJ7R3D.js +2 -0
  233. package/dist/cli/chunks/qe-reasoning-bank-IJXNQ67O.js +2 -0
  234. package/dist/cli/chunks/{quality-GB5SJFSD.js → quality-AXD4NLQA.js} +2 -2
  235. package/dist/cli/chunks/queen-coordinator-6RBHWCUG.js +2 -0
  236. package/dist/cli/chunks/{real-embeddings-GDRJ4XSH.js → real-embeddings-2PUCC7FG.js} +2 -2
  237. package/dist/cli/chunks/{roocode-installer-Q6EISUDV.js → roocode-installer-WJ5ARGLW.js} +2 -2
  238. package/dist/cli/chunks/router-XKQRT5JK.js +2 -0
  239. package/dist/cli/chunks/routing-feedback-ACPSD4LW.js +2 -0
  240. package/dist/cli/chunks/{routing-handler-RO4RTRAG.js → routing-handler-CU6657SZ.js} +2 -2
  241. package/dist/cli/chunks/{ruvector-commands-FFIHCGVQ.js → ruvector-commands-IIF6VSFW.js} +2 -2
  242. package/dist/cli/chunks/{rvf-dual-writer-JGEK3A5Y.js → rvf-dual-writer-YMQI7XO2.js} +2 -2
  243. package/dist/cli/chunks/{rvf-migration-adapter-OVYC4QM6.js → rvf-migration-adapter-HDE3PR2W.js} +2 -2
  244. package/dist/cli/chunks/{rvf-migration-coordinator-U6L77QTS.js → rvf-migration-coordinator-MQV5OA7K.js} +2 -2
  245. package/dist/cli/chunks/rvf-native-adapter-SIWRKE33.js +2 -0
  246. package/dist/cli/chunks/safe-db-LCPUYMX4.js +2 -0
  247. package/dist/cli/chunks/schedule-HIQJCWXG.js +2 -0
  248. package/dist/cli/chunks/scheduler-QE5EJ5LE.js +2 -0
  249. package/dist/cli/chunks/{security-QPQIDAIL.js → security-UM3IGDSM.js} +3 -3
  250. package/dist/cli/chunks/{shared-rvf-adapter-JRJTI4UD.js → shared-rvf-adapter-I3SOJ6M4.js} +2 -2
  251. package/dist/cli/chunks/{shared-rvf-dual-writer-DSHGURDA.js → shared-rvf-dual-writer-KQGC2UO7.js} +2 -2
  252. package/dist/cli/chunks/sqlite-persistence-EU54UTMH.js +2 -0
  253. package/dist/cli/chunks/status-handler-OX4CJZME.js +46 -0
  254. package/dist/cli/chunks/{structural-health-UVECCN7U.js → structural-health-PYUMVBXJ.js} +2 -2
  255. package/dist/cli/chunks/{sync-XXIGTGCG.js → sync-2TED3YTY.js} +2 -2
  256. package/dist/cli/chunks/{sync-ZLZ4CZFJ.js → sync-VALFNTA6.js} +2 -2
  257. package/dist/cli/chunks/{task-handler-73YAVOKJ.js → task-handler-VPGAJVPC.js} +2 -2
  258. package/dist/cli/chunks/{task-handlers-PKECV27D.js → task-handlers-IB4UAMU6.js} +3 -3
  259. package/dist/cli/chunks/{test-U3SXW4SV.js → test-OMRJOZB6.js} +4 -4
  260. package/dist/cli/chunks/{test-scheduling-POJND3GV.js → test-scheduling-ZL3YFPBU.js} +3 -3
  261. package/dist/cli/chunks/{token-bootstrap-ICX6SIXJ.js → token-bootstrap-DNWZI7SH.js} +2 -2
  262. package/dist/cli/chunks/{token-usage-WCHJUVGT.js → token-usage-IYO7RGFF.js} +2 -2
  263. package/dist/cli/chunks/{transformers-L77UIHIY.js → transformers-53ALC34T.js} +2 -2
  264. package/dist/cli/chunks/{tree-sitter-wasm-parser-CVAXURQP.js → tree-sitter-wasm-parser-WUKJ2I2Q.js} +2 -2
  265. package/dist/cli/chunks/{types-LNVJBDM2.js → types-47FTEPMV.js} +2 -2
  266. package/dist/cli/chunks/unified-memory-CJLMC2I4.js +2 -0
  267. package/dist/cli/chunks/unified-memory-hnsw-FDGR4D2J.js +2 -0
  268. package/dist/cli/chunks/unified-persistence-UFH5GLDN.js +2 -0
  269. package/dist/cli/chunks/{upgrade-4ND5RQFY.js → upgrade-QPLMJA5Z.js} +2 -2
  270. package/dist/cli/chunks/{validate-ZA4XT6K2.js → validate-3GVKZOVF.js} +2 -2
  271. package/dist/cli/chunks/{validate-swarm-FNK3GCJ4.js → validate-swarm-XCRTLVM6.js} +2 -2
  272. package/dist/cli/chunks/{vibium-E2CK2GBQ.js → vibium-CH4VPKVZ.js} +2 -2
  273. package/dist/cli/chunks/visual-security-4ARJ7J2Y.js +2 -0
  274. package/dist/cli/chunks/{web-tree-sitter-63VRNKZV.js → web-tree-sitter-JDBNAZTV.js} +2 -2
  275. package/dist/cli/chunks/{windsurf-installer-5BTCVOLH.js → windsurf-installer-3MNPVJBP.js} +2 -2
  276. package/dist/cli/chunks/witness-chain-73QC33ED.js +2 -0
  277. package/dist/cli/chunks/{witness-chain-6CUUGISD.js → witness-chain-HR5UBV5J.js} +2 -2
  278. package/dist/cli/chunks/witness-key-manager-G5SQTIBZ.js +2 -0
  279. package/dist/cli/chunks/{workflow-V7ED22XT.js → workflow-43EMD5FY.js} +4 -4
  280. package/dist/cli/chunks/workflow-orchestrator-RKMMPXNA.js +2 -0
  281. package/dist/cli/chunks/{wrappers-7S3NTTLW.js → wrappers-3N7AYNM3.js} +2 -2
  282. package/dist/cli/commands/audit.d.ts +12 -0
  283. package/dist/cli/commands/audit.js +64 -4
  284. package/dist/cli/commands/hooks-handlers/hooks-dream-learning.js +45 -19
  285. package/dist/cli/commands/hooks-handlers/hooks-shared.d.ts +13 -0
  286. package/dist/cli/commands/hooks-handlers/hooks-shared.js +38 -0
  287. package/dist/cli/commands/hooks-handlers/task-hooks.js +19 -1
  288. package/dist/cli/handlers/status-handler.d.ts +18 -0
  289. package/dist/cli/handlers/status-handler.js +47 -0
  290. package/dist/coordination/consensus/providers/ollama-provider.js +3 -2
  291. package/dist/coordination/mincut/queen-integration.js +24 -7
  292. package/dist/coordination/protocol-executor.js +2 -1
  293. package/dist/coordination/queen-lifecycle.js +4 -1
  294. package/dist/domains/code-intelligence/coordinator.js +10 -6
  295. package/dist/domains/code-intelligence/services/product-factors-bridge.js +3 -1
  296. package/dist/domains/defect-intelligence/services/defect-predictor.d.ts +6 -0
  297. package/dist/domains/defect-intelligence/services/defect-predictor.js +21 -0
  298. package/dist/domains/learning-optimization/interfaces.d.ts +7 -0
  299. package/dist/domains/learning-optimization/plugin.js +5 -0
  300. package/dist/domains/learning-optimization/services/learning-coordinator.d.ts +10 -0
  301. package/dist/domains/learning-optimization/services/learning-coordinator.js +57 -0
  302. package/dist/domains/test-execution/plugin.js +2 -2
  303. package/dist/domains/test-execution/services/flaky-detector.js +1 -1
  304. package/dist/domains/test-generation/coordinator.js +22 -8
  305. package/dist/domains/test-generation/interfaces.d.ts +3 -0
  306. package/dist/domains/test-generation/services/test-generator.js +9 -1
  307. package/dist/integrations/ruvector/delta-tracker.js +10 -1
  308. package/dist/integrations/ruvector/proof-gate.d.ts +68 -0
  309. package/dist/integrations/ruvector/proof-gate.js +135 -0
  310. package/dist/integrations/ruvector/sona-persistence.d.ts +24 -0
  311. package/dist/integrations/ruvector/sona-persistence.js +76 -0
  312. package/dist/integrations/ruvector/sona-three-loop.d.ts +15 -0
  313. package/dist/integrations/ruvector/sona-three-loop.js +17 -0
  314. package/dist/kernel/unified-memory-schemas.d.ts +2 -2
  315. package/dist/kernel/unified-memory-schemas.js +48 -2
  316. package/dist/kernel/unified-memory.d.ts +57 -0
  317. package/dist/kernel/unified-memory.js +148 -0
  318. package/dist/learning/aqe-learning-engine.js +3 -1
  319. package/dist/learning/dream/concept-graph.d.ts +31 -1
  320. package/dist/learning/dream/concept-graph.js +109 -3
  321. package/dist/learning/dream/dream-engine.d.ts +13 -1
  322. package/dist/learning/dream/dream-engine.js +146 -10
  323. package/dist/learning/dream/index.d.ts +1 -1
  324. package/dist/learning/dream/types.d.ts +23 -0
  325. package/dist/learning/local-judge-client.js +2 -1
  326. package/dist/learning/pattern-store.d.ts +2 -2
  327. package/dist/learning/pattern-store.js +14 -3
  328. package/dist/learning/qe-reasoning-bank.js +34 -31
  329. package/dist/learning/routing-topology-gate.d.ts +12 -2
  330. package/dist/learning/routing-topology-gate.js +15 -3
  331. package/dist/learning/rvf-pattern-store.d.ts +1 -1
  332. package/dist/learning/rvf-pattern-store.js +21 -8
  333. package/dist/learning/sqlite-persistence.js +12 -9
  334. package/dist/mcp/bundle.js +524 -445
  335. package/dist/mcp/qe-tool-bridge.js +7 -2
  336. package/dist/mcp/tools/base.d.ts +29 -0
  337. package/dist/mcp/tools/base.js +25 -0
  338. package/dist/mcp/tools/coverage-analysis/index.js +6 -4
  339. package/dist/mcp/tools/learning-optimization/dream.d.ts +4 -13
  340. package/dist/mcp/tools/learning-optimization/dream.js +10 -96
  341. package/dist/mcp/tools/planning/goap-execute.d.ts +13 -1
  342. package/dist/mcp/tools/planning/goap-execute.js +33 -18
  343. package/dist/mcp/tools/registry.js +7 -2
  344. package/dist/persistence/rvf-migration-coordinator.js +2 -1
  345. package/dist/planning/actions/qe-action-library.js +124 -1
  346. package/dist/planning/goap-planner.d.ts +14 -2
  347. package/dist/planning/goap-planner.js +51 -9
  348. package/dist/planning/index.d.ts +1 -1
  349. package/dist/planning/plan-executor.d.ts +84 -4
  350. package/dist/planning/plan-executor.js +221 -56
  351. package/dist/planning/types.d.ts +27 -0
  352. package/dist/routing/free-tier/coordinator-support.d.ts +6 -3
  353. package/dist/routing/free-tier/coordinator-support.js +6 -3
  354. package/dist/routing/free-tier/executor.d.ts +14 -0
  355. package/dist/routing/free-tier/executor.js +21 -0
  356. package/dist/routing/free-tier/index.d.ts +1 -0
  357. package/dist/routing/free-tier/index.js +1 -0
  358. package/dist/routing/free-tier/pattern-cache.d.ts +57 -0
  359. package/dist/routing/free-tier/pattern-cache.js +148 -0
  360. package/dist/routing/free-tier/provider.js +9 -1
  361. package/dist/routing/value-score.js +3 -0
  362. package/dist/shared/embeddings/ollama-client.js +2 -1
  363. package/dist/shared/events/domain-events.d.ts +2 -0
  364. package/dist/shared/llm/model-mapping.js +26 -0
  365. package/dist/shared/llm/model-registry.d.ts +10 -0
  366. package/dist/shared/llm/model-registry.js +92 -0
  367. package/dist/shared/llm/ollama-url.d.ts +17 -0
  368. package/dist/shared/llm/ollama-url.js +25 -0
  369. package/dist/shared/llm/providers/ollama-timeout.d.ts +26 -0
  370. package/dist/shared/llm/providers/ollama-timeout.js +31 -0
  371. package/dist/shared/llm/providers/ollama.d.ts +10 -0
  372. package/dist/shared/llm/providers/ollama.js +31 -4
  373. package/dist/shared/llm/router/hybrid-router.js +18 -1
  374. package/dist/workers/workers/learning-consolidation.js +21 -1
  375. package/package.json +5 -1
  376. package/dist/cli/chunks/adapter-IU3H3MD7.js +0 -2
  377. package/dist/cli/chunks/aqe-learning-engine-BGOC63IN.js +0 -2
  378. package/dist/cli/chunks/audit-TTWAAV7P.js +0 -3
  379. package/dist/cli/chunks/base-DVPRE3WO.js +0 -2
  380. package/dist/cli/chunks/brain-handler-FXPLJCPV.js +0 -89
  381. package/dist/cli/chunks/browser-workflow-MP5P7KZF.js +0 -2
  382. package/dist/cli/chunks/chunk-2SZQDTI5.js +0 -2
  383. package/dist/cli/chunks/chunk-6IHB3T6M.js +0 -2
  384. package/dist/cli/chunks/chunk-7PDUD7FF.js +0 -2
  385. package/dist/cli/chunks/chunk-EBCUWMLX.js +0 -27
  386. package/dist/cli/chunks/chunk-NWUVXLBB.js +0 -65
  387. package/dist/cli/chunks/chunk-OCACCUFO.js +0 -2
  388. package/dist/cli/chunks/chunk-PY2Q6MN3.js +0 -24
  389. package/dist/cli/chunks/chunk-UNH2DE2G.js +0 -2
  390. package/dist/cli/chunks/client-ADCDBTEE.js +0 -2
  391. package/dist/cli/chunks/core-handlers-HCACMLUW.js +0 -2
  392. package/dist/cli/chunks/cross-domain-router-HXFQAU4M.js +0 -2
  393. package/dist/cli/chunks/daemon-ZSK6CLQR.js +0 -10
  394. package/dist/cli/chunks/domain-transfer-UWFKBZTJ.js +0 -2
  395. package/dist/cli/chunks/dream-SVWQH62A.js +0 -2
  396. package/dist/cli/chunks/heartbeat-scheduler-QW5TW5QS.js +0 -2
  397. package/dist/cli/chunks/hnsw-adapter-D6EJWYAL.js +0 -2
  398. package/dist/cli/chunks/hnsw-index-4MWR4U5W.js +0 -2
  399. package/dist/cli/chunks/hybrid-router-BYVUBHER.js +0 -2
  400. package/dist/cli/chunks/impact-analyzer-OK2UIMSG.js +0 -2
  401. package/dist/cli/chunks/init-wizard-6NNPNS6J.js +0 -2
  402. package/dist/cli/chunks/kernel-F4A4GRNO.js +0 -2
  403. package/dist/cli/chunks/knowledge-graph-MSJDEZCF.js +0 -2
  404. package/dist/cli/chunks/llm-router-service-27IQAO7G.js +0 -2
  405. package/dist/cli/chunks/load-test-TT5VLAN7.js +0 -2
  406. package/dist/cli/chunks/memory-backend-FVSK53IM.js +0 -2
  407. package/dist/cli/chunks/memory-handlers-OPUDOZNT.js +0 -2
  408. package/dist/cli/chunks/pattern-null-store-7MVEDWCY.js +0 -2
  409. package/dist/cli/chunks/protocol-executor-BLDDYEJ4.js +0 -2
  410. package/dist/cli/chunks/provider-manager-ZYCFRYZQ.js +0 -2
  411. package/dist/cli/chunks/qe-reasoning-bank-P66CCPHM.js +0 -2
  412. package/dist/cli/chunks/queen-coordinator-LPHT3SX5.js +0 -2
  413. package/dist/cli/chunks/router-XQ2TERUT.js +0 -2
  414. package/dist/cli/chunks/routing-feedback-K52O752B.js +0 -2
  415. package/dist/cli/chunks/rvf-native-adapter-G4DV7FK3.js +0 -2
  416. package/dist/cli/chunks/safe-db-TMSEITES.js +0 -2
  417. package/dist/cli/chunks/schedule-RWFLA43O.js +0 -2
  418. package/dist/cli/chunks/scheduler-2V55MJJR.js +0 -2
  419. package/dist/cli/chunks/sqlite-persistence-L7QM6IWF.js +0 -2
  420. package/dist/cli/chunks/status-handler-SBT3MZTX.js +0 -45
  421. package/dist/cli/chunks/unified-memory-ZSULA46X.js +0 -2
  422. package/dist/cli/chunks/unified-memory-hnsw-SQEWFUBN.js +0 -2
  423. package/dist/cli/chunks/unified-persistence-EDCTT6SE.js +0 -2
  424. package/dist/cli/chunks/visual-security-SOGAETFP.js +0 -2
  425. package/dist/cli/chunks/witness-chain-AJCECBH5.js +0 -2
  426. package/dist/cli/chunks/workflow-orchestrator-UXRUCOZR.js +0 -2
@@ -277,7 +277,7 @@ export class QueenMinCutBridge {
277
277
  };
278
278
  // Agent status changed
279
279
  const onAgentStatusChanged = async (event) => {
280
- const { agentId, status, domain } = event.payload;
280
+ const { agentId, status } = event.payload;
281
281
  const vertexId = `agent:${agentId}`;
282
282
  const vertex = this.graph.getVertex(vertexId);
283
283
  if (vertex) {
@@ -293,7 +293,7 @@ export class QueenMinCutBridge {
293
293
  };
294
294
  // Task coordination (agent-to-agent communication)
295
295
  const onTaskCoordination = async (event) => {
296
- const { fromAgent, toAgent, messageType } = event.payload;
296
+ const { fromAgent, toAgent } = event.payload;
297
297
  const sourceId = `agent:${fromAgent}`;
298
298
  const targetId = `agent:${toAgent}`;
299
299
  if (this.graph.hasVertex(sourceId) && this.graph.hasVertex(targetId)) {
@@ -321,11 +321,20 @@ export class QueenMinCutBridge {
321
321
  }
322
322
  }
323
323
  };
324
- // Subscribe to events (would use eventBus.subscribe in real implementation)
325
- // For now, we store the handlers for cleanup
326
- this.eventSubscriptions.push(() => {
327
- // Cleanup placeholder - actual unsubscribe would go here
328
- });
324
+ // A16: these handlers existed but were never actually subscribed — the
325
+ // topology graph only ever saw its static domain-coordinator scaffold,
326
+ // never a real agent, no matter how many agents Queen actually spawned.
327
+ // `QueenCoordinator.publishEvent()` prefixes every event with "Queen"
328
+ // (e.g. `AgentSpawned` -> `QueenAgentSpawned`); only that one has a real
329
+ // publisher today (`queen-coordinator.ts`). The other three are wired to
330
+ // the same convention so they activate automatically if/when a publisher
331
+ // for agent termination / status-change / cross-agent coordination is
332
+ // added — they are current no-ops otherwise, not fabricated coverage.
333
+ const spawnedSub = this.eventBus.subscribe('QueenAgentSpawned', onAgentSpawned);
334
+ const terminatedSub = this.eventBus.subscribe('QueenAgentTerminated', onAgentTerminated);
335
+ const statusSub = this.eventBus.subscribe('QueenAgentStatusChanged', onAgentStatusChanged);
336
+ const taskCoordSub = this.eventBus.subscribe('QueenTaskCoordination', onTaskCoordination);
337
+ this.eventSubscriptions.push(() => spawnedSub.unsubscribe(), () => terminatedSub.unsubscribe(), () => statusSub.unsubscribe(), () => taskCoordSub.unsubscribe());
329
338
  }
330
339
  // ==========================================================================
331
340
  // Health Integration
@@ -437,6 +446,14 @@ export class QueenMinCutBridge {
437
446
  */
438
447
  startSnapshotTimer() {
439
448
  this.snapshotTimer = setInterval(async () => {
449
+ // A16: skip the periodic write entirely when no real agents have
450
+ // spawned yet — the domain-coordinator scaffold is static, so an
451
+ // empty-of-agents graph produces the exact same degenerate reading
452
+ // (14 vertices, mincut 0.0) every tick forever, which is noise, not
453
+ // signal. The dispose()-time final snapshot still runs unconditionally
454
+ // since that's a single row, not a recurring accumulation.
455
+ if (this.isEmptyTopology())
456
+ return;
440
457
  await this.saveSnapshot();
441
458
  // Also record history
442
459
  await this.persistence.recordHistory({
@@ -486,7 +486,8 @@ export class DefaultProtocolExecutor {
486
486
  results: Object.fromEntries(execution.results),
487
487
  }, {
488
488
  namespace: 'coordination',
489
- ttl: 86400000, // 24 hours
489
+ // ttl is in SECONDS, not ms (unified-memory.ts:607) — was 1000x too long.
490
+ ttl: 86400, // 24 hours
490
491
  });
491
492
  }
492
493
  /**
@@ -67,7 +67,10 @@ export function startMetricsCollectionTimer(ctx) {
67
67
  const metrics = ctx.getMetrics();
68
68
  await ctx.publishEvent('MetricsCollected', { metrics });
69
69
  await ctx.memory.set(`queen:metrics:${Date.now()}`, metrics, {
70
- ttl: 86400000, // 24 hours
70
+ // MemoryBackend.set's ttl is in SECONDS, not ms (unified-memory.ts:607
71
+ // does Date.now() + ttl * 1000) — this was 86400000, making rows live
72
+ // 1000 days instead of 1, hence unbounded kv_store growth.
73
+ ttl: 86400, // 24 hours
71
74
  namespace: 'queen-coordinator',
72
75
  });
73
76
  // ADR-064 Phase 4C: Feed workload metrics to dynamic scaler
@@ -853,14 +853,16 @@ export class CodeIntelligenceCoordinator extends BaseDomainCoordinator {
853
853
  */
854
854
  async storeC4DiagramsInMemory(projectPath, result) {
855
855
  const key = `c4-diagrams:latest:${this.hashCode(projectPath)}`;
856
+ // ttl is in SECONDS, not ms (unified-memory.ts:607) — these were
857
+ // 3600000, making cache entries live ~41.6 days instead of 1 hour.
856
858
  await this.memory.set(key, result, {
857
859
  namespace: 'code-intelligence',
858
860
  persist: true,
859
- ttl: 3600000, // 1 hour
861
+ ttl: 3600, // 1 hour
860
862
  });
861
863
  // Also store components and external systems separately for quick access
862
- await this.memory.set(`c4-components:${this.hashCode(projectPath)}`, result.components, { namespace: 'code-intelligence', ttl: 3600000 });
863
- await this.memory.set(`c4-external-systems:${this.hashCode(projectPath)}`, result.externalSystems, { namespace: 'code-intelligence', ttl: 3600000 });
864
+ await this.memory.set(`c4-components:${this.hashCode(projectPath)}`, result.components, { namespace: 'code-intelligence', ttl: 3600 });
865
+ await this.memory.set(`c4-external-systems:${this.hashCode(projectPath)}`, result.externalSystems, { namespace: 'code-intelligence', ttl: 3600 });
864
866
  }
865
867
  // ============================================================================
866
868
  // V3 Integration: MetricCollector for Real Code Metrics (Phase 5)
@@ -921,14 +923,16 @@ export class CodeIntelligenceCoordinator extends BaseDomainCoordinator {
921
923
  */
922
924
  async storeProjectMetricsInMemory(projectPath, metrics) {
923
925
  const key = `project-metrics:latest:${this.hashCode(projectPath)}`;
926
+ // ttl is in SECONDS, not ms (unified-memory.ts:607) — these were
927
+ // 300000, making entries live ~3.47 days instead of 5 minutes.
924
928
  await this.memory.set(key, metrics, {
925
929
  namespace: 'code-intelligence',
926
930
  persist: true,
927
- ttl: 300000, // 5 minutes (metrics can change frequently)
931
+ ttl: 300, // 5 minutes (metrics can change frequently)
928
932
  });
929
933
  // Store LOC and test counts separately for quick access
930
- await this.memory.set(`loc-metrics:${this.hashCode(projectPath)}`, metrics.loc, { namespace: 'code-intelligence', ttl: 300000 });
931
- await this.memory.set(`test-metrics:${this.hashCode(projectPath)}`, metrics.tests, { namespace: 'code-intelligence', ttl: 300000 });
934
+ await this.memory.set(`loc-metrics:${this.hashCode(projectPath)}`, metrics.loc, { namespace: 'code-intelligence', ttl: 300 });
935
+ await this.memory.set(`test-metrics:${this.hashCode(projectPath)}`, metrics.tests, { namespace: 'code-intelligence', ttl: 300 });
932
936
  }
933
937
  /**
934
938
  * Get the MetricCollector service for direct access
@@ -624,7 +624,9 @@ export class ProductFactorsBridgeService {
624
624
  };
625
625
  await this.memory.set(cacheKey, cacheEntry, {
626
626
  namespace: 'code-intelligence',
627
- ttl: this.config.cacheTtlMs,
627
+ // MemoryBackend.set's ttl is in SECONDS (unified-memory.ts:607 does
628
+ // Date.now() + ttl * 1000) — cacheTtlMs is milliseconds, so convert.
629
+ ttl: this.config.cacheTtlMs / 1000,
628
630
  });
629
631
  }
630
632
  getCacheKey(projectPath) {
@@ -121,6 +121,12 @@ export declare class DefectPredictorService implements IDefectPredictorService {
121
121
  * ADR-051: Retrieve historical defect patterns for context
122
122
  */
123
123
  private getHistoricalDefectPatterns;
124
+ /**
125
+ * Write side of getHistoricalDefectPatterns — records a confirmed defect's
126
+ * type both per-file and in the general pool, capped and deduped to match
127
+ * what the reader expects.
128
+ */
129
+ private recordConfirmedDefectPattern;
124
130
  /**
125
131
  * Analyze regression risk for a changeset
126
132
  */
@@ -331,6 +331,21 @@ Be specific and actionable. Focus on concrete issues, not generic advice.`,
331
331
  }
332
332
  return [...new Set(patterns)].slice(0, 10);
333
333
  }
334
+ /**
335
+ * Write side of getHistoricalDefectPatterns — records a confirmed defect's
336
+ * type both per-file and in the general pool, capped and deduped to match
337
+ * what the reader expects.
338
+ */
339
+ async recordConfirmedDefectPattern(file, defectType) {
340
+ const fileKey = `${this.config.modelNamespace}:defect-patterns:${file}`;
341
+ const existing = await this.memory.get(fileKey);
342
+ const patterns = [...new Set([...(existing?.patterns ?? []), defectType])].slice(-20);
343
+ await this.memory.set(fileKey, { patterns }, { namespace: 'defect-intelligence', persist: true });
344
+ const generalKey = `${this.config.modelNamespace}:common-defect-patterns`;
345
+ const existingGeneral = (await this.memory.get(generalKey)) ?? [];
346
+ const general = [...new Set([...existingGeneral, defectType])].slice(-50);
347
+ await this.memory.set(generalKey, general, { namespace: 'defect-intelligence', persist: true });
348
+ }
334
349
  /**
335
350
  * Analyze regression risk for a changeset
336
351
  */
@@ -385,6 +400,12 @@ Be specific and actionable. Focus on concrete issues, not generic advice.`,
385
400
  });
386
401
  // Update model metrics based on feedback
387
402
  await this.recalculateMetrics(feedback);
403
+ // A confirmed defect with a known type is the write side of
404
+ // getHistoricalDefectPatterns' read — previously nothing populated
405
+ // these keys, so historical-pattern lookup always returned empty.
406
+ if (feedback.actualDefect && feedback.defectType) {
407
+ await this.recordConfirmedDefectPattern(feedback.file, feedback.defectType);
408
+ }
388
409
  return ok(undefined);
389
410
  }
390
411
  catch (error) {
@@ -56,6 +56,13 @@ export interface Experience {
56
56
  readonly result: ExperienceResult;
57
57
  readonly reward: number;
58
58
  readonly timestamp: Date;
59
+ /**
60
+ * ReasoningBank pattern IDs that were applied/matched to produce this
61
+ * experience (ADR-110 kept-nulls). Optional — most domains don't yet
62
+ * track which pattern influenced a given operation; only populate this
63
+ * when real matched-pattern data exists, never a placeholder.
64
+ */
65
+ readonly appliedPatternIds?: readonly string[];
59
66
  }
60
67
  export interface StateSnapshot {
61
68
  readonly context: Record<string, unknown>;
@@ -391,6 +391,11 @@ export class LearningOptimizationPlugin extends BaseDomainPlugin {
391
391
  duration: 0,
392
392
  },
393
393
  reward: 0.8,
394
+ // ADR-110: real matched-pattern IDs from test-generation/coordinator.ts's
395
+ // GeneratedTests.patternsUsed. This event always represents a successful
396
+ // generation, so nulls won't fire from here in practice — threaded for
397
+ // correctness/future use, not for immediate null-recording payoff.
398
+ appliedPatternIds: payload.patternsUsed,
394
399
  });
395
400
  }
396
401
  async handleTestRunCompleted(event) {
@@ -40,6 +40,8 @@ export declare class LearningCoordinatorService implements IPatternLearningServi
40
40
  * Provides 2.49x-7.47x speedup via @ruvector/attention SIMD implementation
41
41
  */
42
42
  private flashAttention;
43
+ /** ADR-110 null store, lazily wired. undefined = not yet attempted; null = attempted and unavailable. */
44
+ private _nullStore?;
43
45
  constructor(dependencies: LearningCoordinatorDependencies, config?: Partial<LearningCoordinatorConfig>);
44
46
  /**
45
47
  * Initialize FlashAttention for high-performance similarity computations.
@@ -143,6 +145,14 @@ export declare class LearningCoordinatorService implements IPatternLearningServi
143
145
  * Record a new experience
144
146
  */
145
147
  recordExperience(experience: Omit<Experience, 'id' | 'timestamp'>): Promise<Result<string>>;
148
+ /**
149
+ * Lazily wire the ADR-110 null store (fail-soft — mirrors the witness-chain
150
+ * wiring pattern in AQELearningEngine). Cached after first successful init;
151
+ * silently no-ops if the unified persistence layer isn't available (e.g.
152
+ * memory-only mode) so a learning-side failure never blocks the caller.
153
+ */
154
+ private getNullStore;
155
+ private recordPatternNulls;
146
156
  /**
147
157
  * Mine experiences for insights
148
158
  */
@@ -40,6 +40,8 @@ export class LearningCoordinatorService {
40
40
  * Provides 2.49x-7.47x speedup via @ruvector/attention SIMD implementation
41
41
  */
42
42
  flashAttention = null;
43
+ /** ADR-110 null store, lazily wired. undefined = not yet attempted; null = attempted and unavailable. */
44
+ _nullStore;
43
45
  constructor(dependencies, config = {}) {
44
46
  this.memory = dependencies.memory;
45
47
  this.llmRouter = dependencies.llmRouter;
@@ -462,12 +464,67 @@ Provide:
462
464
  });
463
465
  // Index by agent and domain for faster retrieval
464
466
  await this.indexExperience(fullExperience);
467
+ // ADR-110: a pattern-guided failure is a kept null, not a discarded
468
+ // run. Only fires when the caller supplied real matched-pattern IDs
469
+ // (appliedPatternIds) — most domains don't track this yet, so this is
470
+ // a no-op for them, which is correct (nothing to blame the failure on).
471
+ if (!experience.result.success && experience.appliedPatternIds?.length) {
472
+ await this.recordPatternNulls(fullExperience);
473
+ }
465
474
  return ok(id);
466
475
  }
467
476
  catch (error) {
468
477
  return err(toError(error));
469
478
  }
470
479
  }
480
+ /**
481
+ * Lazily wire the ADR-110 null store (fail-soft — mirrors the witness-chain
482
+ * wiring pattern in AQELearningEngine). Cached after first successful init;
483
+ * silently no-ops if the unified persistence layer isn't available (e.g.
484
+ * memory-only mode) so a learning-side failure never blocks the caller.
485
+ */
486
+ async getNullStore() {
487
+ if (this._nullStore !== undefined)
488
+ return this._nullStore || undefined;
489
+ try {
490
+ const { getUnifiedPersistence } = await import('../../../kernel/unified-persistence.js');
491
+ const persistence = getUnifiedPersistence();
492
+ if (!persistence.isInitialized()) {
493
+ this._nullStore = null;
494
+ return undefined;
495
+ }
496
+ const { PatternNullStore } = await import('../../../learning/pattern-null-store.js');
497
+ this._nullStore = new PatternNullStore(persistence.getDatabase());
498
+ return this._nullStore;
499
+ }
500
+ catch (e) {
501
+ this._nullStore = null;
502
+ logger.warn('Null store wiring skipped', { error: e instanceof Error ? e.message : String(e) });
503
+ return undefined;
504
+ }
505
+ }
506
+ async recordPatternNulls(experience) {
507
+ const nullStore = await this.getNullStore();
508
+ if (!nullStore)
509
+ return;
510
+ const contextFingerprint = `${experience.domain}:${experience.action}`;
511
+ for (const patternId of experience.appliedPatternIds ?? []) {
512
+ try {
513
+ nullStore.recordNull({
514
+ patternId,
515
+ contextFingerprint,
516
+ failureMode: String(experience.result.outcome?.error ?? experience.action),
517
+ evidenceClass: 'EXECUTED',
518
+ });
519
+ }
520
+ catch (e) {
521
+ logger.warn('Failed to record pattern null', {
522
+ patternId,
523
+ error: e instanceof Error ? e.message : String(e),
524
+ });
525
+ }
526
+ }
527
+ }
471
528
  /**
472
529
  * Mine experiences for insights
473
530
  */
@@ -181,7 +181,7 @@ export class TestExecutionPlugin extends BaseDomainPlugin {
181
181
  eventId: event.id,
182
182
  timestamp: event.timestamp,
183
183
  sourceFiles: payload.sourceFiles,
184
- }, { namespace: 'test-execution', ttl: 86400000 } // 24 hours
184
+ }, { namespace: 'test-execution', ttl: 86400 } // 24 hours (ttl is in SECONDS — unified-memory.ts:607)
185
185
  );
186
186
  }
187
187
  async handleQualityGateEvaluated(event) {
@@ -192,7 +192,7 @@ export class TestExecutionPlugin extends BaseDomainPlugin {
192
192
  await this.memory.set(`quality-context:${payload.gateId}`, {
193
193
  requiresRetry: true,
194
194
  failedChecks: payload.checks.filter(c => !c.passed).map(c => c.name),
195
- }, { namespace: 'test-execution', ttl: 3600000 } // 1 hour
195
+ }, { namespace: 'test-execution', ttl: 3600 } // 1 hour (ttl is in SECONDS — unified-memory.ts:607)
196
196
  );
197
197
  }
198
198
  this.updateHealth({
@@ -92,7 +92,7 @@ export class FlakyDetectorService {
92
92
  this.analysisCache.set(testId, cachedAnalysis);
93
93
  await this.memory.set(`flaky-analysis:${testId}`, cachedAnalysis, {
94
94
  namespace: 'test-execution',
95
- ttl: 3600000, // 1 hour
95
+ ttl: 3600, // 1 hour (ttl is in SECONDS — unified-memory.ts:607)
96
96
  });
97
97
  return ok(analysis);
98
98
  }
@@ -350,7 +350,7 @@ export class TestGenerationCoordinator extends BaseDomainCoordinator {
350
350
  if (this.config.publishEvents) {
351
351
  await this.publishTestSuiteCreated(result.value, request);
352
352
  for (const test of result.value.tests) {
353
- await this.publishTestGenerated(test, request.framework ?? 'vitest');
353
+ await this.publishTestGenerated(test, request.framework ?? 'vitest', result.value.patternsUsed);
354
354
  }
355
355
  }
356
356
  // Three-loop protocol: instantAdapt must precede recordOutcome
@@ -631,13 +631,14 @@ export class TestGenerationCoordinator extends BaseDomainCoordinator {
631
631
  // ============================================================================
632
632
  // Event Publishing Methods
633
633
  // ============================================================================
634
- async publishTestGenerated(test, framework) {
634
+ async publishTestGenerated(test, framework, patternsUsed) {
635
635
  const payload = {
636
636
  testId: test.id,
637
637
  testFile: test.testFile,
638
638
  framework,
639
639
  sourceFile: test.sourceFile,
640
640
  testType: test.type,
641
+ patternsUsed,
641
642
  };
642
643
  const event = createEvent(TestGenerationEvents.TestGenerated, 'test-generation', payload);
643
644
  await this.eventBus.publish(event);
@@ -889,14 +890,27 @@ export class TestGenerationCoordinator extends BaseDomainCoordinator {
889
890
  // Pattern Learning
890
891
  // ============================================================================
891
892
  async learnFromGeneration(tests) {
892
- // Record successful patterns for future use
893
- for (const patternId of tests.patternsUsed) {
894
- const pattern = await this.patternMatcher.getPattern(patternId);
895
- if (pattern) {
896
- // Pattern was successfully used, increase its applicability
897
- // This is handled internally by recordPatternUsage
893
+ // A7: this was previously a no-op — the comment claimed usage tracking
894
+ // "is handled internally by recordPatternUsage" but nothing was ever
895
+ // called, and tests.patternsUsed (display names) wasn't even a valid
896
+ // pattern ID to begin with. Only called on the success path (coordinator
897
+ // line ~618), so success:true is honest here.
898
+ const patternIds = tests.patternIds ?? [];
899
+ if (patternIds.length === 0)
900
+ return;
901
+ try {
902
+ const { getUnifiedMemory } = await import('../../kernel/unified-memory.js');
903
+ const { recordPatternUsage } = await import('../../learning/pattern-usage-recorder.js');
904
+ const db = getUnifiedMemory().getDatabase();
905
+ for (const patternId of patternIds) {
906
+ recordPatternUsage(db, { patternId, success: true });
898
907
  }
899
908
  }
909
+ catch (error) {
910
+ logger.warn('Pattern usage recording skipped', {
911
+ error: error instanceof Error ? error.message : String(error),
912
+ });
913
+ }
900
914
  }
901
915
  // ============================================================================
902
916
  // @ruvector Integration Methods (ADR-040)
@@ -42,7 +42,10 @@ export interface IGenerateTestsRequest {
42
42
  export interface IGeneratedTests {
43
43
  tests: IGeneratedTest[];
44
44
  coverageEstimate: number;
45
+ /** Human-readable pattern names, for display (reports, CLI output). */
45
46
  patternsUsed: string[];
47
+ /** Real qe_patterns.id values for the same patterns, for usage/ADR-110 tracking. */
48
+ patternIds?: string[];
46
49
  }
47
50
  export interface IGeneratedTest {
48
51
  id: string;
@@ -302,11 +302,13 @@ Return a JSON array of test suggestions, each with: { "name": "test name", "desc
302
302
  }
303
303
  const tests = [];
304
304
  const patternsUsed = [];
305
+ const patternIds = [];
305
306
  for (const sourceFile of sourceFiles) {
306
307
  const fileTests = await this.generateTestsForFile(sourceFile, testType, effectiveFramework, patterns, effectiveLanguage, request);
307
308
  if (fileTests.success) {
308
309
  tests.push(...fileTests.value.tests);
309
310
  patternsUsed.push(...fileTests.value.patternsUsed);
311
+ patternIds.push(...fileTests.value.patternIds);
310
312
  }
311
313
  }
312
314
  // ADR-062 Tier 2: Mark holdout tests when feature flag is enabled
@@ -323,6 +325,7 @@ Return a JSON array of test suggestions, each with: { "name": "test name", "desc
323
325
  tests,
324
326
  coverageEstimate,
325
327
  patternsUsed: Array.from(new Set(patternsUsed)),
328
+ patternIds: Array.from(new Set(patternIds)),
326
329
  });
327
330
  }
328
331
  catch (error) {
@@ -396,8 +399,13 @@ Return a JSON array of test suggestions, each with: { "name": "test name", "desc
396
399
  async generateTestsForFile(sourceFile, testType, framework, patterns, effectiveLanguage, originalRequest) {
397
400
  const testFile = this.getTestFilePath(sourceFile, framework);
398
401
  const patternsUsed = [];
402
+ // Real qe_patterns.id values, parallel to patternsUsed (names) — feeds
403
+ // recordPatternUsage/ADR-110 appliedPatternIds, which would silently
404
+ // no-op against a display name instead of a real pattern ID.
405
+ const patternIds = [];
399
406
  const applicablePatterns = await this.findApplicablePatterns(sourceFile, patterns);
400
407
  patternsUsed.push(...applicablePatterns.map((p) => p.name));
408
+ patternIds.push(...applicablePatterns.map((p) => p.id));
401
409
  let codeAnalysis = null;
402
410
  let sourceContent = '';
403
411
  try {
@@ -470,7 +478,7 @@ Return a JSON array of test suggestions, each with: { "name": "test name", "desc
470
478
  if (this.qualityGate) {
471
479
  test.qualityGateResult = this.qualityGate.validate(testCode, sourceFile, sourceContent || undefined);
472
480
  }
473
- return ok({ tests: [test], patternsUsed });
481
+ return ok({ tests: [test], patternsUsed, patternIds });
474
482
  }
475
483
  async generateTestForLines(file, lines, framework) {
476
484
  if (lines.length === 0)
@@ -8,7 +8,16 @@
8
8
  * @module integrations/ruvector/delta-tracker
9
9
  */
10
10
  import { v4 as uuidv4 } from 'uuid';
11
- import * as fastJsonPatch from 'fast-json-patch';
11
+ import * as fastJsonPatchNs from 'fast-json-patch';
12
+ // fast-json-patch ships two entry points with different export shapes: its CJS
13
+ // entry (index.js) attaches named exports directly via Object.assign(exports,
14
+ // core), but its ESM entry (index.mjs) only exports a single default object
15
+ // bundling everything — it has no named `compare`/`applyPatch` exports. Which
16
+ // shape `import * as fastJsonPatchNs` lands on depends on the resolving
17
+ // loader/bundler, so `fastJsonPatchNs.compare` can be undefined even though
18
+ // the package is installed and working. Normalize once so callers don't care.
19
+ const fastJsonPatch = (fastJsonPatchNs.default
20
+ ?? fastJsonPatchNs);
12
21
  // ============================================================================
13
22
  // Schema
14
23
  // ============================================================================
@@ -0,0 +1,68 @@
1
+ /**
2
+ * Tamper-evident hash-chain audit gate — a faithful, dependency-free TypeScript
3
+ * port of RuVector's `ruvector-proof-gate` `HashChainGate` (upstream ADR-194;
4
+ * AQE-side integration decision: ADR-116).
5
+ *
6
+ * Why ported rather than bound: the Rust crate ships no NAPI/WASM binding, and
7
+ * the algorithm is small and exact. This uses only Node's `crypto` (no native
8
+ * dep) and opens NO database — the chain lives in memory and is serialized via
9
+ * {@link HashChainGate.toJSON}/{@link HashChainGate.fromJSON} so a caller can
10
+ * persist it through the existing unified `memory.db` (never a competing store).
11
+ *
12
+ * QE use-case: turn AQE's "verify row counts BEFORE and AFTER, never claim a
13
+ * sync/migration succeeded without proof" mandate into a cryptographic
14
+ * guarantee. Admit one payload per DB operation (table, op, row-count, content
15
+ * digest); a later `verifyIntegrity()` proves no admitted entry was mutated,
16
+ * reordered, or dropped.
17
+ *
18
+ * Commitment: commitment[n] = SHA256("ruvector:chain:" || commitment[n-1] ||
19
+ * payload_hash[n] || u64le(n)), seeded from a fixed genesis. Verification is
20
+ * O(n): replay from genesis. (Genesis differs from the Rust literal — we do not
21
+ * interoperate with Rust receipts, only self-verify.)
22
+ */
23
+ /** Any admissible payload. Objects are canonicalized (sorted keys) before hashing. */
24
+ export type GatePayload = string | Uint8Array | Record<string, unknown>;
25
+ export interface WriteReceipt {
26
+ /** 0-based admission order. */
27
+ sequence: number;
28
+ /** SHA-256 of the canonical payload bytes (hex). */
29
+ payloadHash: string;
30
+ /** Chain commitment at this entry (hex) — binds it to every prior entry. */
31
+ chainCommitment: string;
32
+ }
33
+ /** Serializable chain state for persistence through the unified store. */
34
+ export interface HashChainState {
35
+ seq: number;
36
+ head: string;
37
+ chain: string[];
38
+ payloadHashes: string[];
39
+ }
40
+ /**
41
+ * Sequential SHA-256 hash chain. O(1) per `admit`, O(n) `verifyIntegrity`.
42
+ * In-memory; persist/restore via {@link toJSON}/{@link fromJSON}.
43
+ */
44
+ export declare class HashChainGate {
45
+ private seq;
46
+ private prev;
47
+ private readonly chain;
48
+ private readonly payloadHashes;
49
+ /** Admit a payload; returns a receipt committing the chain state. */
50
+ admit(payload: GatePayload): WriteReceipt;
51
+ /** True iff `receipt` matches the commitment recorded at its sequence. */
52
+ verifyReceipt(receipt: WriteReceipt): boolean;
53
+ /** Current chain head (hex). Changes after every successful `admit`. */
54
+ chainRoot(): string;
55
+ get length(): number;
56
+ get isEmpty(): boolean;
57
+ /**
58
+ * Full cryptographic re-derivation from genesis. Returns false if ANY
59
+ * commitment fails to re-derive — catches a mutated commitment, a mutated
60
+ * payload hash, a reorder, or a length mismatch.
61
+ */
62
+ verifyIntegrity(): boolean;
63
+ /** Snapshot for persistence through the unified store (no DB opened here). */
64
+ toJSON(): HashChainState;
65
+ /** Restore a chain from a {@link toJSON} snapshot. */
66
+ static fromJSON(state: HashChainState): HashChainGate;
67
+ }
68
+ //# sourceMappingURL=proof-gate.d.ts.map