agentic-qe 3.14.4 → 3.14.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 (403) hide show
  1. package/.claude/skills/skills-manifest.json +1 -1
  2. package/CHANGELOG.md +93 -0
  3. package/assets/skills/skills-manifest.json +1 -1
  4. package/dist/audit/witness-chain.d.ts +1 -1
  5. package/dist/audit/witness-chain.js +29 -22
  6. package/dist/cli/bundle.js +13 -10
  7. package/dist/cli/chunks/adapter-IYC62SXA.js +2 -0
  8. package/dist/cli/chunks/{agent-booster-wasm-5PC7D2FW.js → agent-booster-wasm-EDNKP3SP.js} +2 -2
  9. package/dist/cli/chunks/{agent-handler-RDNTK4CA.js → agent-handler-V6CZ7Q6S.js} +2 -2
  10. package/dist/cli/chunks/{agent-memory-branch-NAAMBWIR.js → agent-memory-branch-ZMD6ULC3.js} +2 -2
  11. package/dist/cli/chunks/aqe-learning-engine-LLOU2IXD.js +2 -0
  12. package/dist/cli/chunks/{arena-HXTWJ5YY.js → arena-4UPAEHFT.js} +4 -4
  13. package/dist/cli/chunks/{arena-KXFHRWX4.js → arena-QLSBESC7.js} +2 -2
  14. package/dist/cli/chunks/{audit-YSGA7UWT.js → audit-CVZQMF55.js} +3 -3
  15. package/dist/cli/chunks/base-P3Z4IKCT.js +2 -0
  16. package/dist/cli/chunks/{better-sqlite3-UICJZIDG.js → better-sqlite3-4DSBPDRH.js} +2 -2
  17. package/dist/cli/chunks/brain-handler-GBY4EZ4P.js +94 -0
  18. package/dist/cli/chunks/{branch-enumerator-SS7UNVIA.js → branch-enumerator-XYBVXCNO.js} +2 -2
  19. package/dist/cli/chunks/{browser-77GI6KBE.js → browser-32F6MREU.js} +2 -2
  20. package/dist/cli/chunks/browser-workflow-YYHQQ25X.js +2 -0
  21. package/dist/cli/chunks/{chunk-FGYMFUE2.js → chunk-2JGEZHWY.js} +2 -2
  22. package/dist/cli/chunks/{chunk-MOBNBMFW.js → chunk-2KJQ2UQE.js} +1 -1
  23. package/dist/cli/chunks/{chunk-C2WU3533.js → chunk-2OMLTYQK.js} +1 -1
  24. package/dist/cli/chunks/{chunk-CU46J64M.js → chunk-37TUN44F.js} +2 -2
  25. package/dist/cli/chunks/{chunk-Z3RHREWF.js → chunk-3DDXWYMO.js} +1 -1
  26. package/dist/cli/chunks/{chunk-Q5DO24IJ.js → chunk-3EZ5DR2R.js} +3 -3
  27. package/dist/cli/chunks/{chunk-WLG5AJ4N.js → chunk-3KDL6QDK.js} +2 -2
  28. package/dist/cli/chunks/{chunk-MTZH7AHC.js → chunk-3VIXOHMS.js} +1 -1
  29. package/dist/cli/chunks/{chunk-ISDMD6EU.js → chunk-3YUB5HER.js} +96 -96
  30. package/dist/cli/chunks/{chunk-CDKG6EI7.js → chunk-4FWTLJEP.js} +2 -2
  31. package/dist/cli/chunks/{chunk-HDSAM2RE.js → chunk-52L77RMG.js} +2 -2
  32. package/dist/cli/chunks/{chunk-MEGDYJPV.js → chunk-5D36YHS3.js} +4 -4
  33. package/dist/cli/chunks/{chunk-T6BVLVI5.js → chunk-5WOSWNDN.js} +1 -1
  34. package/dist/cli/chunks/{chunk-M2JBBZQB.js → chunk-67YV75XP.js} +2 -2
  35. package/dist/cli/chunks/{chunk-KHFNNVJA.js → chunk-6A44AOGN.js} +2 -2
  36. package/dist/cli/chunks/{chunk-IPR4QP3H.js → chunk-6CR4VQBQ.js} +2 -2
  37. package/dist/cli/chunks/{chunk-XRT2WRMS.js → chunk-6ITZZIQX.js} +2 -2
  38. package/dist/cli/chunks/{chunk-4OYFXLBK.js → chunk-6LKDHEBY.js} +2 -2
  39. package/dist/cli/chunks/{chunk-FLYOJOKN.js → chunk-6TU7FEMD.js} +1 -1
  40. package/dist/cli/chunks/{chunk-6QYNWR7U.js → chunk-6VAZAHQG.js} +2 -2
  41. package/dist/cli/chunks/{chunk-TWAWHOP7.js → chunk-73EI4C2E.js} +2 -2
  42. package/dist/cli/chunks/{chunk-5R3QL7WN.js → chunk-75QJ5HWE.js} +2 -2
  43. package/dist/cli/chunks/{chunk-Y3MW3YBC.js → chunk-7CD7PBHY.js} +2 -2
  44. package/dist/cli/chunks/chunk-7DETTOPZ.js +14 -0
  45. package/dist/cli/chunks/{chunk-KSKEF7LZ.js → chunk-7JZJJA7U.js} +3 -3
  46. package/dist/cli/chunks/{chunk-AIHDEEJO.js → chunk-7VFY7TUR.js} +2 -2
  47. package/dist/cli/chunks/chunk-7X7JYWT4.js +27 -0
  48. package/dist/cli/chunks/chunk-AF4XKLXO.js +2 -0
  49. package/dist/cli/chunks/{chunk-6KJABXAR.js → chunk-AFEDJ3RU.js} +2 -2
  50. package/dist/cli/chunks/{chunk-5SJHQ2CO.js → chunk-AMMQOV35.js} +2 -2
  51. package/dist/cli/chunks/{chunk-6VRA2QGL.js → chunk-BHFR2EXL.js} +1 -1
  52. package/dist/cli/chunks/{chunk-ZBAKA4YB.js → chunk-BJPL6THQ.js} +1 -1
  53. package/dist/cli/chunks/{chunk-DOTK76IJ.js → chunk-BXVAVFGU.js} +2 -2
  54. package/dist/cli/chunks/{chunk-MNW6QGNJ.js → chunk-BYG36QC5.js} +2 -2
  55. package/dist/cli/chunks/chunk-C3HQL6S4.js +2 -0
  56. package/dist/cli/chunks/{chunk-PZJOPURC.js → chunk-C3Z4VVHP.js} +5 -5
  57. package/dist/cli/chunks/{chunk-OULHKEVH.js → chunk-CPC7FN52.js} +2 -2
  58. package/dist/cli/chunks/{chunk-BFP7KO7P.js → chunk-CVMNJSCB.js} +2 -2
  59. package/dist/cli/chunks/{chunk-AUXFKCQL.js → chunk-CYE2TJFV.js} +2 -2
  60. package/dist/cli/chunks/{chunk-7D777LTF.js → chunk-CZO4BJG5.js} +2 -2
  61. package/dist/cli/chunks/{chunk-VD6QRULW.js → chunk-D6OUCB2H.js} +2 -2
  62. package/dist/cli/chunks/{chunk-6UWGMOND.js → chunk-DDCIYOGT.js} +2 -2
  63. package/dist/cli/chunks/{chunk-STJCATGN.js → chunk-DKUBQQFG.js} +2 -2
  64. package/dist/cli/chunks/{chunk-M4WJKGVK.js → chunk-DLF5BOJD.js} +1 -1
  65. package/dist/cli/chunks/{chunk-DA5K5754.js → chunk-DO6EI5KB.js} +1 -1
  66. package/dist/cli/chunks/{chunk-BDESSCVR.js → chunk-DPBRWP4J.js} +3 -3
  67. package/dist/cli/chunks/{chunk-HV2J7KKQ.js → chunk-E3W6XQ57.js} +2 -2
  68. package/dist/cli/chunks/{chunk-MDWCE7YW.js → chunk-E4AZXCT5.js} +1 -1
  69. package/dist/cli/chunks/{chunk-F3SBRQC6.js → chunk-E4EYPYR3.js} +2 -2
  70. package/dist/cli/chunks/{chunk-55RWDRJD.js → chunk-EFV4ADMO.js} +4 -4
  71. package/dist/cli/chunks/{chunk-5YPYDPBJ.js → chunk-ELBZON4V.js} +2 -2
  72. package/dist/cli/chunks/{chunk-PO3IXGMQ.js → chunk-EOR2UT72.js} +2 -2
  73. package/dist/cli/chunks/{chunk-EDJ3O7RH.js → chunk-F34OAHOM.js} +2 -2
  74. package/dist/cli/chunks/{chunk-XRYF6JV7.js → chunk-FUNGTIF2.js} +2 -2
  75. package/dist/cli/chunks/{chunk-EKQ673SA.js → chunk-G3L5L6YQ.js} +1 -1
  76. package/dist/cli/chunks/{chunk-NJBGXDQ7.js → chunk-G3W6BMVJ.js} +1 -1
  77. package/dist/cli/chunks/{chunk-CIZ5JPDC.js → chunk-GTKCGPJZ.js} +3 -3
  78. package/dist/cli/chunks/{chunk-QGIU2WRL.js → chunk-HBCGYMQU.js} +1 -1
  79. package/dist/cli/chunks/{chunk-V3QLFNA2.js → chunk-HSVKZ5KI.js} +4 -4
  80. package/dist/cli/chunks/{chunk-BGE6FOLM.js → chunk-HVU64GP5.js} +2 -2
  81. package/dist/cli/chunks/chunk-HVXJC3OC.js +2 -0
  82. package/dist/cli/chunks/{chunk-MIQTXNBG.js → chunk-HYEJJJY3.js} +1 -1
  83. package/dist/cli/chunks/{chunk-CLTMDCSE.js → chunk-I2NENQ44.js} +2 -2
  84. package/dist/cli/chunks/{chunk-SGYJ4NFZ.js → chunk-I6X3EGJI.js} +1 -1
  85. package/dist/cli/chunks/{chunk-BOARZKU3.js → chunk-IGBEJ4UJ.js} +2 -2
  86. package/dist/cli/chunks/{chunk-FWGOHAAB.js → chunk-IIAR5S7Q.js} +2 -2
  87. package/dist/cli/chunks/{chunk-DHJPWQBR.js → chunk-IJHCIXJC.js} +2 -2
  88. package/dist/cli/chunks/{chunk-UEM7ZF5K.js → chunk-IUDWEOLX.js} +2 -2
  89. package/dist/cli/chunks/chunk-IUHB5GVS.js +3 -0
  90. package/dist/cli/chunks/{chunk-M5QUBZY6.js → chunk-IYTLXUBO.js} +2 -2
  91. package/dist/cli/chunks/chunk-J27F4NSB.js +2 -0
  92. package/dist/cli/chunks/{chunk-G6T45OIC.js → chunk-J5UNP6W3.js} +2 -2
  93. package/dist/cli/chunks/{chunk-3UPAMMCB.js → chunk-JES6R5KP.js} +1 -1
  94. package/dist/cli/chunks/{chunk-ZBQY5GLF.js → chunk-JROVR6YS.js} +2 -2
  95. package/dist/cli/chunks/chunk-JSZ663MU.js +2 -0
  96. package/dist/cli/chunks/{chunk-PFR4G3DJ.js → chunk-JVQBWYHW.js} +2 -2
  97. package/dist/cli/chunks/{chunk-JBNEE5UH.js → chunk-K27SU3RE.js} +2 -2
  98. package/dist/cli/chunks/{chunk-JZ3ORVZ3.js → chunk-K7NJHFLZ.js} +3 -3
  99. package/dist/cli/chunks/{chunk-3VOQRIQM.js → chunk-KEY43ANX.js} +2 -2
  100. package/dist/cli/chunks/chunk-KIP6WZGV.js +13 -0
  101. package/dist/cli/chunks/{chunk-UDHKLT4C.js → chunk-KKHYJF5U.js} +1 -1
  102. package/dist/cli/chunks/{chunk-ZNEMGX5O.js → chunk-KLTP5IDB.js} +1 -1
  103. package/dist/cli/chunks/{chunk-ONII3572.js → chunk-KO4FNAUR.js} +3 -3
  104. package/dist/cli/chunks/{chunk-TSRSV3LD.js → chunk-KYA5LARK.js} +1 -1
  105. package/dist/cli/chunks/{chunk-2JW3BCGG.js → chunk-LSUILON7.js} +1 -1
  106. package/dist/cli/chunks/chunk-LULD4JV2.js +15 -0
  107. package/dist/cli/chunks/{chunk-FRH6VAUS.js → chunk-M23ZOZVY.js} +1 -1
  108. package/dist/cli/chunks/{chunk-R5NE6B2M.js → chunk-M5AEL7IS.js} +2 -2
  109. package/dist/cli/chunks/chunk-MI5Q55DG.js +65 -0
  110. package/dist/cli/chunks/chunk-N7H767TP.js +4 -0
  111. package/dist/cli/chunks/{chunk-RJCYCLZV.js → chunk-NQI7FWCS.js} +2 -2
  112. package/dist/cli/chunks/{chunk-CXQPR5MY.js → chunk-NRE4NAVA.js} +1 -1
  113. package/dist/cli/chunks/{chunk-ODKLFVYC.js → chunk-NU7UTXMP.js} +2 -2
  114. package/dist/cli/chunks/{chunk-MVPCNSPY.js → chunk-NVYBM3R4.js} +2 -2
  115. package/dist/cli/chunks/{chunk-MVNP7GIR.js → chunk-O3JTQ7N4.js} +1 -1
  116. package/dist/cli/chunks/{chunk-6CQN24ZK.js → chunk-OEIQTWQP.js} +1 -1
  117. package/dist/cli/chunks/{chunk-U5K45TFH.js → chunk-PSPKSUF6.js} +1 -1
  118. package/dist/cli/chunks/{chunk-CDHQFHRP.js → chunk-QIRL6B3C.js} +2 -2
  119. package/dist/cli/chunks/{chunk-OSLYSG3B.js → chunk-QRCIZFNK.js} +2 -2
  120. package/dist/cli/chunks/{chunk-BOZZYWCR.js → chunk-QWUXCG2L.js} +1 -1
  121. package/dist/cli/chunks/{chunk-HIYXCDEP.js → chunk-QYOGD2VW.js} +1 -1
  122. package/dist/cli/chunks/{chunk-A4FYONNU.js → chunk-QZMUXJHZ.js} +2 -2
  123. package/dist/cli/chunks/{chunk-3TW5W5LX.js → chunk-R6IU3EWP.js} +2 -2
  124. package/dist/cli/chunks/{chunk-3X3DJZJJ.js → chunk-R74ZKREV.js} +1 -1
  125. package/dist/cli/chunks/{chunk-HIVA55CJ.js → chunk-RD2VGOUH.js} +1 -1
  126. package/dist/cli/chunks/{chunk-TPGED2IF.js → chunk-RD6TEZ64.js} +2 -2
  127. package/dist/cli/chunks/{chunk-4MHXCAG2.js → chunk-RGGK6VZ7.js} +1 -1
  128. package/dist/cli/chunks/{chunk-UGVHCMUN.js → chunk-RIZVC4XY.js} +3 -3
  129. package/dist/cli/chunks/{chunk-R4VL6E65.js → chunk-RKOUXVZZ.js} +2 -2
  130. package/dist/cli/chunks/{chunk-IFCLB7FJ.js → chunk-RP2ZKPYV.js} +1 -1
  131. package/dist/cli/chunks/{chunk-34WO57CW.js → chunk-SQF6HRXR.js} +1 -1
  132. package/dist/cli/chunks/{chunk-YNXS6CGV.js → chunk-SQKW3B6B.js} +1 -1
  133. package/dist/cli/chunks/{chunk-TDZ53WO2.js → chunk-SX4JLSLV.js} +2 -2
  134. package/dist/cli/chunks/{chunk-PAWXJ73E.js → chunk-TUSSPKRM.js} +1 -1
  135. package/dist/cli/chunks/{chunk-DFZCKIGY.js → chunk-TY5WC3FT.js} +3 -3
  136. package/dist/cli/chunks/{chunk-J6GNQS62.js → chunk-UDHVCKGA.js} +2 -2
  137. package/dist/cli/chunks/{chunk-CIKSHTEQ.js → chunk-UJWAWIRV.js} +4 -4
  138. package/dist/cli/chunks/{chunk-XJ7QNVI5.js → chunk-UKGXWW64.js} +3 -3
  139. package/dist/cli/chunks/{chunk-64PFWE2F.js → chunk-UMGFMKDW.js} +2 -2
  140. package/dist/cli/chunks/{chunk-DPFRKBOG.js → chunk-URVHZPWY.js} +2 -2
  141. package/dist/cli/chunks/{chunk-MCUJEZT6.js → chunk-UTBYJ4RF.js} +2 -2
  142. package/dist/cli/chunks/{chunk-HUWNIPZ5.js → chunk-VD5IO5EO.js} +1 -1
  143. package/dist/cli/chunks/{chunk-7ZIOFPL3.js → chunk-VTOVWHEM.js} +2 -2
  144. package/dist/cli/chunks/{chunk-SRKETSFF.js → chunk-W2XCZU62.js} +1 -1
  145. package/dist/cli/chunks/{chunk-CNG6GQEZ.js → chunk-WJHWH5D2.js} +2 -2
  146. package/dist/cli/chunks/{chunk-ZJ26AQA5.js → chunk-WJTSY5MC.js} +1 -1
  147. package/dist/cli/chunks/{chunk-OCWWP5PL.js → chunk-WK7B4B6Y.js} +2 -2
  148. package/dist/cli/chunks/{chunk-KPA7MZ6C.js → chunk-WLXK2KNU.js} +2 -2
  149. package/dist/cli/chunks/{chunk-ZBJ4XOOV.js → chunk-WOIGKU2N.js} +4 -4
  150. package/dist/cli/chunks/{chunk-ZZDIMOOV.js → chunk-WX6RRIGW.js} +2 -2
  151. package/dist/cli/chunks/{chunk-STM3UDNO.js → chunk-XEZIIQYJ.js} +2 -2
  152. package/dist/cli/chunks/{chunk-3QHGWY7T.js → chunk-XFPPERA2.js} +2 -2
  153. package/dist/cli/chunks/{chunk-VIHTL3U2.js → chunk-XLAUGSW7.js} +2 -2
  154. package/dist/cli/chunks/{chunk-XC7DYDSY.js → chunk-XQSIRBKT.js} +2 -2
  155. package/dist/cli/chunks/{chunk-GPLQ6DOK.js → chunk-XUR2M2WB.js} +2 -2
  156. package/dist/cli/chunks/{chunk-KCZR45PA.js → chunk-XZSMZHM2.js} +2 -2
  157. package/dist/cli/chunks/{chunk-ZNPKDCZR.js → chunk-Y5L3ES4L.js} +2 -2
  158. package/dist/cli/chunks/{chunk-W7BWUTVV.js → chunk-YDFL445W.js} +2 -2
  159. package/dist/cli/chunks/{chunk-AWWNB2T7.js → chunk-YQGPQBCX.js} +2 -2
  160. package/dist/cli/chunks/{chunk-DAEFDCJ4.js → chunk-YXP6BKGS.js} +17 -17
  161. package/dist/cli/chunks/{chunk-OBAP2TXZ.js → chunk-ZBABIZ2D.js} +2 -2
  162. package/dist/cli/chunks/{chunk-CSU5NYOX.js → chunk-ZCWERUYB.js} +4 -4
  163. package/dist/cli/chunks/{ci-464KPQNP.js → ci-RACDAJMR.js} +2 -2
  164. package/dist/cli/chunks/{ci-output-I7FX2RSO.js → ci-output-EHRSZBKG.js} +2 -2
  165. package/dist/cli/chunks/{circuit-breaker-3FW237WW.js → circuit-breaker-GBV7M5XG.js} +2 -2
  166. package/dist/cli/chunks/{claude-flow-setup-6JKMBPGU.js → claude-flow-setup-5LVJOFKP.js} +2 -2
  167. package/dist/cli/chunks/client-HUVFA5PF.js +2 -0
  168. package/dist/cli/chunks/{cline-installer-UWFHT6VY.js → cline-installer-W4NMXJSG.js} +2 -2
  169. package/dist/cli/chunks/{code-KQSUT3FS.js → code-JWXJMYXB.js} +3 -3
  170. package/dist/cli/chunks/{code-index-extractor-PABBNUSC.js → code-index-extractor-RVI2IFTM.js} +2 -2
  171. package/dist/cli/chunks/codex-installer-3BORJINH.js +14 -0
  172. package/dist/cli/chunks/{completions-7RWHAUAR.js → completions-A55NCTAO.js} +2 -2
  173. package/dist/cli/chunks/{complexity-analyzer-XPOAF33E.js → complexity-analyzer-JCXHGGLY.js} +2 -2
  174. package/dist/cli/chunks/{continuedev-installer-V4F2FIZP.js → continuedev-installer-PUVFMGYW.js} +2 -2
  175. package/dist/cli/chunks/{copilot-installer-JMICURQB.js → copilot-installer-4DCMYWHB.js} +2 -2
  176. package/dist/cli/chunks/core-handlers-UEXO3VAA.js +2 -0
  177. package/dist/cli/chunks/{cost-tracker-5OFHEYFJ.js → cost-tracker-5TV2GGKY.js} +2 -2
  178. package/dist/cli/chunks/{coverage-QKN57JDS.js → coverage-NNWM7TX3.js} +3 -3
  179. package/dist/cli/chunks/cross-domain-router-ODU5IZD6.js +2 -0
  180. package/dist/cli/chunks/{cursor-installer-GBJ7YXSM.js → cursor-installer-4NCHGJGK.js} +2 -2
  181. package/dist/cli/chunks/{daemon-IAVSO6HK.js → daemon-QIKCXKWO.js} +4 -4
  182. package/dist/cli/chunks/{daemon-GKP7CMEK.js → daemon-T4JO4IXP.js} +3 -3
  183. package/dist/cli/chunks/{dag-attention-scheduler-S225TCI7.js → dag-attention-scheduler-RPAAIDAD.js} +2 -2
  184. package/dist/cli/chunks/{detect-IUYH422U.js → detect-SBEEVDSN.js} +2 -2
  185. package/dist/cli/chunks/{dist-node-2YRE6A7C.js → dist-node-ZHI6NCSU.js} +2 -2
  186. package/dist/cli/chunks/{domain-handler-PL2TZC6H.js → domain-handler-LBC3GJ7Z.js} +2 -2
  187. package/dist/cli/chunks/{domain-plugins-HCGLXKIT.js → domain-plugins-H6IZ5USZ.js} +2 -2
  188. package/dist/cli/chunks/{domain-transfer-KQJRUPXA.js → domain-transfer-JZA5TMW3.js} +2 -2
  189. package/dist/cli/chunks/dream-HE3OX42F.js +2 -0
  190. package/dist/cli/chunks/embed-and-insert-pattern-AHTR7CRU.js +3 -0
  191. package/dist/cli/chunks/{eval-WCK7KNFN.js → eval-DZU2KISM.js} +2 -2
  192. package/dist/cli/chunks/{experience-capture-middleware-2MSQWSAR.js → experience-capture-middleware-5IQCWKSL.js} +4 -4
  193. package/dist/cli/chunks/{fast-paths-VYOSIBKF.js → fast-paths-2KLDUWCY.js} +2 -2
  194. package/dist/cli/chunks/{feature-flags-UJRHFBRX.js → feature-flags-7AC3XDZA.js} +2 -2
  195. package/dist/cli/chunks/{feature-flags-WCFUKHNQ.js → feature-flags-N6UAEZY4.js} +2 -2
  196. package/dist/cli/chunks/{file-discovery-JDGL4ZWS.js → file-discovery-5SDIW4V2.js} +2 -2
  197. package/dist/cli/chunks/{fleet-ROXVMZ2F.js → fleet-ZIQCAZ2Y.js} +3 -3
  198. package/dist/cli/chunks/{gnn-wrapper-NIO4ZCO3.js → gnn-wrapper-DUMBZJEV.js} +2 -2
  199. package/dist/cli/chunks/{heartbeat-handler-PI42WD3C.js → heartbeat-handler-6HVM6ZMR.js} +4 -4
  200. package/dist/cli/chunks/heartbeat-scheduler-QUIFGGLX.js +2 -0
  201. package/dist/cli/chunks/hnsw-adapter-42KB37KP.js +2 -0
  202. package/dist/cli/chunks/hnsw-index-T2PGO77J.js +2 -0
  203. package/dist/cli/chunks/{hnsw-legacy-bridge-YLC7SPK2.js → hnsw-legacy-bridge-5DRL5FLX.js} +2 -2
  204. package/dist/cli/chunks/{hnswlib-node-LG6OS3B7.js → hnswlib-node-GW67GTCL.js} +2 -2
  205. package/dist/cli/chunks/{hooks-WVALP5GX.js → hooks-QHH6FVO4.js} +10 -10
  206. package/dist/cli/chunks/hybrid-backend-FRNWYRKH.js +2 -0
  207. package/dist/cli/chunks/{hypergraph-engine-GJEMW3EG.js → hypergraph-engine-7XDCCVG2.js} +2 -2
  208. package/dist/cli/chunks/{hypergraph-handler-BLF6LXEV.js → hypergraph-handler-QHF7NOU5.js} +3 -3
  209. package/dist/cli/chunks/impact-analyzer-A5QYOYBR.js +2 -0
  210. package/dist/cli/chunks/{init-handler-K25RWRYY.js → init-handler-5UIVOM7K.js} +6 -6
  211. package/dist/cli/chunks/init-wizard-XBU674YH.js +2 -0
  212. package/dist/cli/chunks/kernel-DV5MTNZD.js +2 -0
  213. package/dist/cli/chunks/{kilocode-installer-BXN6WZ7G.js → kilocode-installer-TGGV6K5Q.js} +2 -2
  214. package/dist/cli/chunks/{kiro-installer-PM362DLN.js → kiro-installer-4XYBHZWW.js} +2 -2
  215. package/dist/cli/chunks/knowledge-graph-4ACGVJQK.js +2 -0
  216. package/dist/cli/chunks/{learning-CPERDDRG.js → learning-STE5W6BS.js} +3 -3
  217. package/dist/cli/chunks/{llm-router-GOAV5FPI.js → llm-router-NKF7J3RI.js} +4 -4
  218. package/dist/cli/chunks/llm-router-service-PSMASERT.js +2 -0
  219. package/dist/cli/chunks/{load-2BG6SHAK.js → load-B2T77UJQ.js} +2 -2
  220. package/dist/cli/chunks/load-test-MRUO2VPF.js +2 -0
  221. package/dist/cli/chunks/mcp-JGSFCEMH.js +2 -0
  222. package/dist/cli/chunks/{memory-4NHBYT6S.js → memory-WRFZKG56.js} +6 -6
  223. package/dist/cli/chunks/memory-backend-2MPGI6JW.js +2 -0
  224. package/dist/cli/chunks/memory-handlers-XT4HMITB.js +2 -0
  225. package/dist/cli/chunks/{multi-model-executor-KCWSGCDT.js → multi-model-executor-26Q5BSVG.js} +2 -2
  226. package/dist/cli/chunks/{opencode-installer-ATZLLK74.js → opencode-installer-J36EMQU7.js} +2 -2
  227. package/dist/cli/chunks/{orchestrator-RKB7XJRG.js → orchestrator-D5IFV65I.js} +18 -18
  228. package/dist/cli/chunks/pattern-null-store-TGWUL237.js +2 -0
  229. package/dist/cli/chunks/{pattern-usage-recorder-7VE4XDAI.js → pattern-usage-recorder-BVMTWI3E.js} +2 -2
  230. package/dist/cli/chunks/{pipeline-LQZSNDD2.js → pipeline-OWAHDUAQ.js} +2 -2
  231. package/dist/cli/chunks/platform-ANGBFWBV.js +2 -0
  232. package/dist/cli/chunks/{plugin-EJ6K2MGU.js → plugin-OO7ON2YW.js} +2 -2
  233. package/dist/cli/chunks/{prime-radiant-advanced-wasm-OIHTKJMN.js → prime-radiant-advanced-wasm-HFG3BXWU.js} +2 -2
  234. package/dist/cli/chunks/project-root-LNOYVTYY.js +2 -0
  235. package/dist/cli/chunks/protocol-executor-GEVH5KD6.js +2 -0
  236. package/dist/cli/chunks/{protocol-handler-NRBROAU7.js → protocol-handler-CE3Q6LY4.js} +2 -2
  237. package/dist/cli/chunks/{prove-EJOGEGD3.js → prove-7XPN53PY.js} +2 -2
  238. package/dist/cli/chunks/qe-reasoning-bank-DJ2JL6QB.js +2 -0
  239. package/dist/cli/chunks/{quality-E55UC73D.js → quality-TT23JRFX.js} +2 -2
  240. package/dist/cli/chunks/{quality-gate-OIQATNT3.js → quality-gate-PPPRP255.js} +3 -3
  241. package/dist/cli/chunks/queen-coordinator-F7E3AS26.js +2 -0
  242. package/dist/cli/chunks/real-embeddings-EYNZIFJE.js +2 -0
  243. package/dist/cli/chunks/{ref-validation-OPO6J7OL.js → ref-validation-QQR64ZXD.js} +2 -2
  244. package/dist/cli/chunks/{roocode-installer-ODY5KRWU.js → roocode-installer-UIGS7ZJD.js} +2 -2
  245. package/dist/cli/chunks/router-OZH3QSAU.js +2 -0
  246. package/dist/cli/chunks/routing-feedback-J2E3ADZB.js +2 -0
  247. package/dist/cli/chunks/{routing-handler-KQM6VWLC.js → routing-handler-6AENUIRG.js} +2 -2
  248. package/dist/cli/chunks/{ruvector-commands-U2GVV6PF.js → ruvector-commands-5AWMEV34.js} +2 -2
  249. package/dist/cli/chunks/rvf-dual-writer-HK525Y5Y.js +2 -0
  250. package/dist/cli/chunks/rvf-migration-adapter-Q7FB3BKR.js +2 -0
  251. package/dist/cli/chunks/rvf-migration-coordinator-NWRJ7C22.js +2 -0
  252. package/dist/cli/chunks/rvf-native-adapter-5ZRCGUI6.js +2 -0
  253. package/dist/cli/chunks/{rvf-store-integrity-KMIHD3LP.js → rvf-store-integrity-ISKRP563.js} +2 -2
  254. package/dist/cli/chunks/safe-db-3OYEPVEH.js +2 -0
  255. package/dist/cli/chunks/schedule-AG4C2EIQ.js +2 -0
  256. package/dist/cli/chunks/scheduler-SQS2CZFZ.js +2 -0
  257. package/dist/cli/chunks/{security-P5NM353C.js → security-325A7FMB.js} +3 -3
  258. package/dist/cli/chunks/{shared-rvf-adapter-LVIUOO4S.js → shared-rvf-adapter-NFL6QSZ6.js} +2 -2
  259. package/dist/cli/chunks/{shared-rvf-dual-writer-2CSG7C4W.js → shared-rvf-dual-writer-THFDYS2Z.js} +2 -2
  260. package/dist/cli/chunks/sqlite-persistence-MAKDFSHC.js +2 -0
  261. package/dist/cli/chunks/standalone-memory-UD4MJ6GZ.js +2 -0
  262. package/dist/cli/chunks/{status-handler-6TU6O37R.js → status-handler-CPFTN4XL.js} +2 -2
  263. package/dist/cli/chunks/{structural-health-KBIJSTXJ.js → structural-health-2MG2IVBL.js} +2 -2
  264. package/dist/cli/chunks/{sync-LNHI5SB7.js → sync-EE4VVKOW.js} +2 -2
  265. package/dist/cli/chunks/{sync-UHOX6RJW.js → sync-MBTW5XBF.js} +2 -2
  266. package/dist/cli/chunks/task-handler-7H5OYJG4.js +54 -0
  267. package/dist/cli/chunks/task-handlers-NH4GJHCJ.js +9 -0
  268. package/dist/cli/chunks/{test-DHAAI3DU.js → test-MPHGT4T6.js} +4 -4
  269. package/dist/cli/chunks/{test-scheduling-XDBZ3QC2.js → test-scheduling-CHQ4ZLLJ.js} +3 -3
  270. package/dist/cli/chunks/token-bootstrap-SSDCYEKK.js +2 -0
  271. package/dist/cli/chunks/{token-usage-Q2YG5YQN.js → token-usage-EBXUJNRB.js} +2 -2
  272. package/dist/cli/chunks/{transformers-F5UQTQCY.js → transformers-ZEKS2OJZ.js} +2 -2
  273. package/dist/cli/chunks/{tree-sitter-wasm-parser-DEGOHS6F.js → tree-sitter-wasm-parser-J6ZMAK37.js} +2 -2
  274. package/dist/cli/chunks/{types-JQ7EQO5Q.js → types-KYAA5VLV.js} +2 -2
  275. package/dist/cli/chunks/unified-memory-DDWMC435.js +2 -0
  276. package/dist/cli/chunks/unified-memory-hnsw-4JA7SGBK.js +2 -0
  277. package/dist/cli/chunks/unified-persistence-F6OSNTXY.js +2 -0
  278. package/dist/cli/chunks/{upgrade-TJRVGHGD.js → upgrade-UJBJ5AYM.js} +2 -2
  279. package/dist/cli/chunks/{validate-BWPCVHBN.js → validate-RUV6YMWS.js} +2 -2
  280. package/dist/cli/chunks/{validate-swarm-QVVKCQLP.js → validate-swarm-IVEVMGVM.js} +2 -2
  281. package/dist/cli/chunks/{vibium-ZFATIWHO.js → vibium-HOGMFJ2Z.js} +2 -2
  282. package/dist/cli/chunks/visual-security-25SMBIYT.js +2 -0
  283. package/dist/cli/chunks/{web-tree-sitter-KPLY7ONR.js → web-tree-sitter-AVWA6HKE.js} +2 -2
  284. package/dist/cli/chunks/{windsurf-installer-H7XM7ISA.js → windsurf-installer-DAH7HI2W.js} +2 -2
  285. package/dist/cli/chunks/{witness-chain-RRN6NDCH.js → witness-chain-PJOQPFUX.js} +2 -2
  286. package/dist/cli/chunks/witness-chain-ZW6KKUZU.js +2 -0
  287. package/dist/cli/chunks/{witness-key-manager-DFRL42GE.js → witness-key-manager-JSTBMG43.js} +2 -2
  288. package/dist/cli/chunks/{workflow-2ZQO6WYI.js → workflow-TWOIA6LZ.js} +4 -4
  289. package/dist/cli/chunks/workflow-orchestrator-UKSIDM7Q.js +2 -0
  290. package/dist/cli/chunks/{wrappers-SUS6XEJD.js → wrappers-UR7BLXKV.js} +2 -2
  291. package/dist/cli/commands/mcp.js +6 -0
  292. package/dist/cli/commands/memory.d.ts +1 -1
  293. package/dist/cli/commands/memory.js +8 -8
  294. package/dist/cli/commands/platform.js +15 -2
  295. package/dist/cli/commands/upgrade.d.ts +3 -3
  296. package/dist/cli/commands/upgrade.js +3 -3
  297. package/dist/cli/handlers/init-handler.d.ts +10 -0
  298. package/dist/cli/handlers/task-handler.js +24 -3
  299. package/dist/cli/helpers/standalone-memory.d.ts +12 -0
  300. package/dist/cli/helpers/standalone-memory.js +46 -0
  301. package/dist/cli/index.js +37 -41
  302. package/dist/cli/log-gate.d.ts +66 -0
  303. package/dist/cli/log-gate.js +170 -0
  304. package/dist/init/codex-installer.js +18 -6
  305. package/dist/init/orchestrator.js +1 -0
  306. package/dist/init/phases/09-assets.d.ts +10 -0
  307. package/dist/init/phases/09-assets.js +3 -0
  308. package/dist/init/token-bootstrap.d.ts +1 -1
  309. package/dist/init/token-bootstrap.js +12 -2
  310. package/dist/init/types.d.ts +10 -0
  311. package/dist/integrations/ruvector/brain-exporter.js +17 -0
  312. package/dist/integrations/ruvector/brain-import-audit.d.ts +20 -0
  313. package/dist/integrations/ruvector/brain-import-audit.js +22 -0
  314. package/dist/integrations/ruvector/brain-rvf-exporter.js +16 -0
  315. package/dist/integrations/ruvector/brain-shared.js +1 -1
  316. package/dist/integrations/ruvector/rvf-dual-writer.js +6 -1
  317. package/dist/kernel/hybrid-backend.d.ts +6 -0
  318. package/dist/kernel/hybrid-backend.js +18 -0
  319. package/dist/kernel/kernel.js +9 -14
  320. package/dist/kernel/project-root.d.ts +1 -1
  321. package/dist/kernel/project-root.js +24 -3
  322. package/dist/learning/embedder-identity-store.js +4 -3
  323. package/dist/learning/pattern-store.js +5 -1
  324. package/dist/learning/real-embeddings.d.ts +8 -0
  325. package/dist/learning/real-embeddings.js +16 -0
  326. package/dist/learning/rvf-pattern-store.js +10 -3
  327. package/dist/mcp/bundle.js +442 -442
  328. package/dist/mcp/entry.js +2 -0
  329. package/dist/mcp/handlers/memory-handlers.d.ts +6 -1
  330. package/dist/mcp/handlers/memory-handlers.js +44 -22
  331. package/dist/mcp/handlers/task-handlers.js +14 -1
  332. package/dist/mcp/protocol-server.js +1 -0
  333. package/dist/mcp/services/session-store.js +5 -1
  334. package/dist/plugins/cache.d.ts +2 -0
  335. package/dist/plugins/cache.js +15 -2
  336. package/dist/plugins/lifecycle.js +15 -2
  337. package/dist/plugins/manifest.js +7 -5
  338. package/dist/plugins/resolver.d.ts +13 -22
  339. package/dist/plugins/resolver.js +169 -61
  340. package/dist/plugins/version-policy.d.ts +13 -0
  341. package/dist/plugins/version-policy.js +18 -0
  342. package/dist/shared/types/index.d.ts +6 -0
  343. package/dist/shared/types/index.js +8 -0
  344. package/package.json +2 -1
  345. package/dist/cli/chunks/adapter-TNNNJRDG.js +0 -2
  346. package/dist/cli/chunks/aqe-learning-engine-5ZRMYJLB.js +0 -2
  347. package/dist/cli/chunks/base-KWZHOPSH.js +0 -2
  348. package/dist/cli/chunks/brain-handler-ET6YAP4B.js +0 -90
  349. package/dist/cli/chunks/browser-workflow-2FZTKDUL.js +0 -2
  350. package/dist/cli/chunks/chunk-33YYYWBQ.js +0 -4
  351. package/dist/cli/chunks/chunk-5Z6XZV7K.js +0 -65
  352. package/dist/cli/chunks/chunk-6J62K3SW.js +0 -2
  353. package/dist/cli/chunks/chunk-6TPKK7LD.js +0 -15
  354. package/dist/cli/chunks/chunk-DEYLEDJN.js +0 -27
  355. package/dist/cli/chunks/chunk-KGT36Z42.js +0 -14
  356. package/dist/cli/chunks/chunk-NA7B2QYB.js +0 -2
  357. package/dist/cli/chunks/chunk-NDPFGIMJ.js +0 -13
  358. package/dist/cli/chunks/chunk-PEPFCPES.js +0 -2
  359. package/dist/cli/chunks/chunk-TT23RRB7.js +0 -2
  360. package/dist/cli/chunks/chunk-XWMZ6D6N.js +0 -2
  361. package/dist/cli/chunks/client-7E4LM2WW.js +0 -2
  362. package/dist/cli/chunks/codex-installer-CQ24DTP5.js +0 -14
  363. package/dist/cli/chunks/core-handlers-IFG3757P.js +0 -2
  364. package/dist/cli/chunks/cross-domain-router-EK7W4PGP.js +0 -2
  365. package/dist/cli/chunks/dream-NFSCSLY7.js +0 -2
  366. package/dist/cli/chunks/embed-and-insert-pattern-ZPAG7235.js +0 -3
  367. package/dist/cli/chunks/heartbeat-scheduler-ZATCDJDK.js +0 -2
  368. package/dist/cli/chunks/hnsw-adapter-WXQABRCA.js +0 -2
  369. package/dist/cli/chunks/hnsw-index-TPSWLEA5.js +0 -2
  370. package/dist/cli/chunks/impact-analyzer-HNIU45P5.js +0 -2
  371. package/dist/cli/chunks/init-wizard-JUIPBMHG.js +0 -2
  372. package/dist/cli/chunks/kernel-5BOZQ754.js +0 -2
  373. package/dist/cli/chunks/knowledge-graph-EWDAENWM.js +0 -2
  374. package/dist/cli/chunks/llm-router-service-3YT7JGBS.js +0 -2
  375. package/dist/cli/chunks/load-test-BP2CPLIV.js +0 -2
  376. package/dist/cli/chunks/mcp-5TTB37DC.js +0 -2
  377. package/dist/cli/chunks/memory-backend-4PYQBPRM.js +0 -2
  378. package/dist/cli/chunks/memory-handlers-2B27NITS.js +0 -2
  379. package/dist/cli/chunks/pattern-null-store-OYOQOV2O.js +0 -2
  380. package/dist/cli/chunks/platform-OD5H5U6G.js +0 -2
  381. package/dist/cli/chunks/protocol-executor-3ATJTXWG.js +0 -2
  382. package/dist/cli/chunks/qe-reasoning-bank-LLMYZT4X.js +0 -2
  383. package/dist/cli/chunks/queen-coordinator-RN7L6KG5.js +0 -2
  384. package/dist/cli/chunks/real-embeddings-FPFFNOSZ.js +0 -2
  385. package/dist/cli/chunks/router-MDHITQ2V.js +0 -2
  386. package/dist/cli/chunks/routing-feedback-5XLNJ3Y3.js +0 -2
  387. package/dist/cli/chunks/rvf-dual-writer-JBW4O3II.js +0 -2
  388. package/dist/cli/chunks/rvf-migration-adapter-BPPQL4XJ.js +0 -2
  389. package/dist/cli/chunks/rvf-migration-coordinator-V2GHCJKN.js +0 -2
  390. package/dist/cli/chunks/rvf-native-adapter-S4562CG5.js +0 -2
  391. package/dist/cli/chunks/safe-db-FIRHSXVF.js +0 -2
  392. package/dist/cli/chunks/schedule-RVXFB4HK.js +0 -2
  393. package/dist/cli/chunks/scheduler-IKKAMAOO.js +0 -2
  394. package/dist/cli/chunks/sqlite-persistence-SQ3HCUQ7.js +0 -2
  395. package/dist/cli/chunks/task-handler-AVDHMLGI.js +0 -49
  396. package/dist/cli/chunks/task-handlers-KYK4VTRA.js +0 -9
  397. package/dist/cli/chunks/token-bootstrap-GUTTLPZX.js +0 -2
  398. package/dist/cli/chunks/unified-memory-CXHLHB5I.js +0 -2
  399. package/dist/cli/chunks/unified-memory-hnsw-I7WAE54M.js +0 -2
  400. package/dist/cli/chunks/unified-persistence-6CPF65WI.js +0 -2
  401. package/dist/cli/chunks/visual-security-GNPHME5H.js +0 -2
  402. package/dist/cli/chunks/witness-chain-VT4UHHBR.js +0 -2
  403. package/dist/cli/chunks/workflow-orchestrator-DB3HIECD.js +0 -2
@@ -12,10 +12,11 @@ import * as fs from 'fs';
12
12
  import { initializeTokenOptimizer, TokenOptimizerService } from '../optimization/token-optimizer-service.js';
13
13
  import { TokenMetricsCollector } from '../learning/token-tracker.js';
14
14
  import { createDefaultMemoryBackend } from '../kernel/memory-factory.js';
15
+ import { findProjectRoot } from '../kernel/project-root.js';
15
16
  const DEFAULT_CONFIG = {
16
17
  enableOptimization: true,
17
18
  enablePersistence: true,
18
- storagePath: process.env.AQE_STORAGE_PATH ?? '.agentic-qe',
19
+ storagePath: '.agentic-qe',
19
20
  autoSaveIntervalMs: 60000,
20
21
  verbose: process.env.AQE_VERBOSE === 'true',
21
22
  };
@@ -36,7 +37,16 @@ export async function bootstrapTokenTracking(config) {
36
37
  if (initialized) {
37
38
  return;
38
39
  }
39
- const cfg = { ...DEFAULT_CONFIG, ...config };
40
+ // Resolve the project before creating any directory: a new cwd-local store
41
+ // would otherwise become the nearest AQE root and split project memory.
42
+ // A relative AQE_STORAGE_PATH is anchored at the project root too, so it
43
+ // cannot recreate a cwd-local store from a subdirectory.
44
+ const envStorage = process.env.AQE_STORAGE_PATH;
45
+ const cfg = {
46
+ ...DEFAULT_CONFIG, ...config,
47
+ storagePath: config?.storagePath
48
+ ?? (envStorage ? path.resolve(findProjectRoot(), envStorage) : path.join(findProjectRoot(), '.agentic-qe')),
49
+ };
40
50
  if (cfg.verbose) {
41
51
  console.log('[TokenBootstrap] Initializing token tracking...');
42
52
  }
@@ -227,6 +227,16 @@ export interface InitResult {
227
227
  policy: 'full' | 'compact' | 'none';
228
228
  ownedBytes: number;
229
229
  };
230
+ codexComponents?: {
231
+ hooks: {
232
+ status: string;
233
+ error?: string;
234
+ };
235
+ skills: {
236
+ status: string;
237
+ error?: string;
238
+ };
239
+ };
230
240
  };
231
241
  totalDurationMs: number;
232
242
  timestamp: Date;
@@ -21,6 +21,7 @@ import { existsSync, mkdirSync, writeFileSync, readFileSync } from 'fs';
21
21
  import { join, resolve } from 'path';
22
22
  import { safeJsonParse } from '../../shared/safe-json.js';
23
23
  import { sha256, queryAll, queryIterator, countRows, domainFilterForColumn, writeJsonl, writeJsonlStreaming, readJsonl, runImportTransaction, serializeRowBlobs, deserializeRowBlobs, mergeGenericRow, remapPatternReferences, mergeAppendOnlyRow, TABLE_CONFIGS, PK_COLUMNS, CONFIDENCE_COLUMNS, TIMESTAMP_COLUMNS, } from './brain-shared.js';
24
+ import { appendBrainImportWitness } from './brain-import-audit.js';
24
25
  // ============================================================================
25
26
  // Internal helpers
26
27
  // ============================================================================
@@ -226,9 +227,17 @@ export function importBrain(db, containerPath, options) {
226
227
  const importAll = () => {
227
228
  const patternIds = new Map();
228
229
  const patternWinners = new Map();
230
+ let sourceWitnessRows = 0;
229
231
  for (const config of configs) {
230
232
  const filePath = join(dir, config.fileName);
231
233
  let rows = readJsonl(filePath, safeJsonParse);
234
+ if (config.tableName === 'witness_chain') {
235
+ // Source rows are signed/linked to a different store. Copying them into
236
+ // this live chain would make the first imported predecessor invalid.
237
+ sourceWitnessRows += rows.length;
238
+ skipped += rows.length;
239
+ continue;
240
+ }
232
241
  // Deserialize BLOBs from Base64
233
242
  if (config.blobColumns && config.blobColumns.length > 0) {
234
243
  rows = rows.map(r => deserializeRowBlobs(r, config.blobColumns));
@@ -252,6 +261,14 @@ export function importBrain(db, containerPath, options) {
252
261
  conflicts += result.conflicts;
253
262
  }
254
263
  }
264
+ appendBrainImportWitness(db, {
265
+ sourceChecksum: manifest.checksum,
266
+ sourceWitnessRows,
267
+ importedRecords: imported,
268
+ skippedRecords: skipped,
269
+ conflicts,
270
+ });
271
+ imported += 1;
255
272
  };
256
273
  runImportTransaction(db, options.dryRun ?? false, importAll);
257
274
  return { imported, skipped, conflicts };
@@ -0,0 +1,20 @@
1
+ /** Record a brain import without grafting another store's witness history. */
2
+ import type Database from 'better-sqlite3';
3
+ interface BrainImportAuditDetails {
4
+ sourceChecksum: string;
5
+ sourceWitnessRows: number;
6
+ importedRecords: number;
7
+ skippedRecords: number;
8
+ conflicts: number;
9
+ }
10
+ /**
11
+ * Call inside the import transaction, after merging all non-witness tables.
12
+ *
13
+ * Reuses WitnessChain's own hashing/serialization so the link format cannot
14
+ * drift from what WitnessChain.verify() checks. The row is intentionally left
15
+ * unsigned: the target DB may belong to a different project than the CWD, so
16
+ * the process-default signing key is not necessarily the target's key.
17
+ */
18
+ export declare function appendBrainImportWitness(db: Database.Database, details: BrainImportAuditDetails): void;
19
+ export {};
20
+ //# sourceMappingURL=brain-import-audit.d.ts.map
@@ -0,0 +1,22 @@
1
+ import { GENESIS_PREV_HASH, hashWith, serializeEntry, } from '../../audit/witness-chain.js';
2
+ /**
3
+ * Call inside the import transaction, after merging all non-witness tables.
4
+ *
5
+ * Reuses WitnessChain's own hashing/serialization so the link format cannot
6
+ * drift from what WitnessChain.verify() checks. The row is intentionally left
7
+ * unsigned: the target DB may belong to a different project than the CWD, so
8
+ * the process-default signing key is not necessarily the target's key.
9
+ */
10
+ export function appendBrainImportWitness(db, details) {
11
+ const algo = 'shake256';
12
+ const actionData = JSON.stringify(details);
13
+ const last = db.prepare('SELECT * FROM witness_chain ORDER BY id DESC LIMIT 1')
14
+ .get();
15
+ const previousHash = last ? hashWith(algo, serializeEntry(last)) : GENESIS_PREV_HASH;
16
+ db.prepare(`
17
+ INSERT INTO witness_chain
18
+ (prev_hash, action_hash, action_type, action_data, timestamp, actor, hash_algo)
19
+ VALUES (?, ?, 'BRAIN_IMPORT', ?, ?, 'brain-import', ?)
20
+ `).run(previousHash, hashWith(algo, actionData), actionData, new Date().toISOString(), algo);
21
+ }
22
+ //# sourceMappingURL=brain-import-audit.js.map
@@ -7,6 +7,7 @@ import { existsSync, readdirSync, renameSync, statSync, unlinkSync, writeFileSyn
7
7
  import { basename, dirname, join, resolve } from 'path';
8
8
  import { createRvfStore, openRvfStore, openRvfStoreReadonly, isRvfNativeAvailable, } from './rvf-native-adapter.js';
9
9
  import { sha256, tableExists, queryAll, domainFilterForColumn, runImportTransaction, mergeGenericRow, remapPatternReferences, mergeAppendOnlyRow, TABLE_CONFIGS, TABLE_BLOB_COLUMNS, PK_COLUMNS, CONFIDENCE_COLUMNS, TIMESTAMP_COLUMNS, serializeRowBlobs, deserializeRowBlobs, } from './brain-shared.js';
10
+ import { appendBrainImportWitness } from './brain-import-audit.js';
10
11
  // --- Export ---
11
12
  /**
12
13
  * Sidecar suffixes that make up a complete store on disk. `''` is the store
@@ -401,11 +402,18 @@ export function importBrainFromRvf(db, rvfPath, options) {
401
402
  const importAll = () => {
402
403
  const patternIds = new Map();
403
404
  const patternWinners = new Map();
405
+ let sourceWitnessRows = 0;
404
406
  // Import in TABLE_CONFIGS order (FK-aware)
405
407
  for (const config of TABLE_CONFIGS) {
406
408
  let rows = tablesMap[config.tableName];
407
409
  if (!rows || !Array.isArray(rows))
408
410
  continue;
411
+ if (config.tableName === 'witness_chain') {
412
+ // A source chain cannot be grafted into another store's live chain.
413
+ sourceWitnessRows += rows.length;
414
+ skipped += rows.length;
415
+ continue;
416
+ }
409
417
  // Deserialize BLOBs
410
418
  const blobCols = TABLE_BLOB_COLUMNS[config.tableName];
411
419
  if (blobCols && blobCols.length > 0) {
@@ -434,6 +442,14 @@ export function importBrainFromRvf(db, rvfPath, options) {
434
442
  conflicts += result.conflicts;
435
443
  }
436
444
  }
445
+ appendBrainImportWitness(db, {
446
+ sourceChecksum: sha256(kernel.image.toString('utf-8')),
447
+ sourceWitnessRows,
448
+ importedRecords: imported,
449
+ skippedRecords: skipped,
450
+ conflicts,
451
+ });
452
+ imported += 1;
437
453
  };
438
454
  runImportTransaction(db, options.dryRun ?? false, importAll);
439
455
  // Compact after conflict resolution (best-effort)
@@ -408,7 +408,7 @@ export function runImportTransaction(db, dryRun, importer) {
408
408
  throw rollback;
409
409
  });
410
410
  try {
411
- transaction();
411
+ transaction.immediate();
412
412
  }
413
413
  catch (error) {
414
414
  if (error !== rollback)
@@ -10,7 +10,7 @@
10
10
  * intercepting pattern embedding writes/deletes/searches and routing them
11
11
  * to one or both backends depending on the configured mode.
12
12
  */
13
- import { getActiveEmbeddingSpaceIdentity } from '../../learning/real-embeddings.js';
13
+ import { ensureEndpointEmbeddingSpaceIdentity, getActiveEmbeddingSpaceIdentity } from '../../learning/real-embeddings.js';
14
14
  import { verifyOrCreateEmbeddingSpaceManifest } from '../../learning/embedding-space.js';
15
15
  /**
16
16
  * Wraps the real RvfNativeAdapter to conform to the simpler RvfStore interface.
@@ -97,6 +97,11 @@ export class RvfDualWriter {
97
97
  this.rvfAvailable = false;
98
98
  return;
99
99
  }
100
+ // #754: a later process opens brain.rvf before any embed call has
101
+ // initialized the (lazy) endpoint runtime; resolve its identity first.
102
+ if (!this.activeSpaceId()) {
103
+ await ensureEndpointEmbeddingSpaceIdentity();
104
+ }
100
105
  const { isRvfLockHeldError, removeStaleRvfLock, quarantineUnusableStore } = await import('./rvf-store-integrity.js');
101
106
  const tryOpen = () => {
102
107
  try {
@@ -175,5 +175,11 @@ export declare class HybridMemoryBackend implements MemoryBackend {
175
175
  private ensureInitialized;
176
176
  private cleanup;
177
177
  }
178
+ /**
179
+ * Create the project memory backend exactly as the QE kernel does
180
+ * (<dataDir>/memory.db, WAL, 'qe-kernel' default namespace). Shared with the
181
+ * CLI's lightweight memory path so both always open the same store.
182
+ */
183
+ export declare function createKernelMemoryBackend(dataDir: string): HybridMemoryBackend;
178
184
  export {};
179
185
  //# sourceMappingURL=hybrid-backend.d.ts.map
@@ -10,6 +10,7 @@
10
10
  * backward compatibility with existing MemoryBackend interface.
11
11
  */
12
12
  import { getUnifiedMemory, DEFAULT_UNIFIED_MEMORY_CONFIG } from './unified-memory.js';
13
+ import * as path from 'path';
13
14
  import { MEMORY_CONSTANTS } from './constants.js';
14
15
  import { LoggerFactory } from '../logging/index.js';
15
16
  const logger = LoggerFactory.create('hybrid-backend');
@@ -329,4 +330,21 @@ export class HybridMemoryBackend {
329
330
  }
330
331
  }
331
332
  }
333
+ /**
334
+ * Create the project memory backend exactly as the QE kernel does
335
+ * (<dataDir>/memory.db, WAL, 'qe-kernel' default namespace). Shared with the
336
+ * CLI's lightweight memory path so both always open the same store.
337
+ */
338
+ export function createKernelMemoryBackend(dataDir) {
339
+ return new HybridMemoryBackend({
340
+ sqlite: {
341
+ path: path.join(dataDir, 'memory.db'),
342
+ walMode: true,
343
+ poolSize: 3,
344
+ busyTimeout: MEMORY_CONSTANTS.BUSY_TIMEOUT_MS,
345
+ },
346
+ enableFallback: true,
347
+ defaultNamespace: 'qe-kernel',
348
+ });
349
+ }
332
350
  //# sourceMappingURL=hybrid-backend.js.map
@@ -8,10 +8,10 @@ import { InMemoryEventBus } from './event-bus.js';
8
8
  import { DefaultAgentCoordinator } from './agent-coordinator.js';
9
9
  import { DefaultPluginLoader } from './plugin-loader.js';
10
10
  import { InMemoryBackend } from './memory-backend.js';
11
- import { HybridMemoryBackend } from './hybrid-backend.js';
11
+ import { createKernelMemoryBackend } from './hybrid-backend.js';
12
12
  import { SemanticAntiDriftMiddleware, ToolCallSignatureTracker } from './anti-drift-middleware.js';
13
13
  import { LOOP_EVENT_TYPES } from './event-bus.js';
14
- import { AGENT_CONSTANTS, MEMORY_CONSTANTS } from './constants.js';
14
+ import { AGENT_CONSTANTS } from './constants.js';
15
15
  import { findProjectRoot } from './unified-memory.js';
16
16
  import { initializeUnifiedPersistence } from './unified-persistence.js';
17
17
  import * as path from 'path';
@@ -163,16 +163,7 @@ export class QEKernelImpl {
163
163
  else {
164
164
  // Use hybrid backend for persistent storage (default)
165
165
  // All data goes to unified memory.db via UnifiedMemoryManager
166
- this._memory = new HybridMemoryBackend({
167
- sqlite: {
168
- path: path.join(dataDir, 'memory.db'),
169
- walMode: true,
170
- poolSize: 3,
171
- busyTimeout: MEMORY_CONSTANTS.BUSY_TIMEOUT_MS,
172
- },
173
- enableFallback: true,
174
- defaultNamespace: 'qe-kernel',
175
- });
166
+ this._memory = createKernelMemoryBackend(dataDir);
176
167
  // Re-create plugins with the real memory backend
177
168
  this._plugins = new DefaultPluginLoader(this._eventBus, this._memory, this._config.lazyLoading);
178
169
  }
@@ -206,6 +197,9 @@ export class QEKernelImpl {
206
197
  const pluginCache = new PluginCache({ cacheDir: pluginCacheDir });
207
198
  const pluginLifecycle = new PluginLifecycleManager({ cache: pluginCache });
208
199
  const resolution = pluginLifecycle.resolveLoadOrder();
200
+ for (const error of resolution.errors) {
201
+ console.warn(`[QEKernel] External plugin ${error.plugin}: ${error.code}: ${error.message}`);
202
+ }
209
203
  for (const resolved of resolution.ordered) {
210
204
  const manifest = resolved.manifest;
211
205
  const cachedPlugin = pluginCache.get(manifest.name, manifest.version);
@@ -232,8 +226,9 @@ export class QEKernelImpl {
232
226
  }
233
227
  }
234
228
  }
235
- catch {
236
- // External plugin loading is best-effort — don't block kernel startup
229
+ catch (error) {
230
+ // External plugin loading is best-effort, but failures must be visible.
231
+ console.warn('[QEKernel] External plugin discovery failed:', error);
237
232
  }
238
233
  // Load plugins based on configuration
239
234
  if (!this._config.lazyLoading) {
@@ -21,7 +21,7 @@ export declare function clearProjectRootCache(): void;
21
21
  *
22
22
  * Priority order:
23
23
  * 1. AQE_PROJECT_ROOT environment variable (set by MCP config or init)
24
- * 2. Walk up looking for the NEAREST .agentic-qe directory (existing AQE project)
24
+ * 2. Nearest .agentic-qe at or below the nearest .git boundary
25
25
  * 3. Walk up looking for .git directory (git repo root)
26
26
  * 4. Walk up looking for package.json WITHOUT node_modules sibling (monorepo root)
27
27
  * 5. Fallback to current working directory
@@ -12,6 +12,7 @@
12
12
  * @module kernel/project-root
13
13
  */
14
14
  import * as fs from 'fs';
15
+ import * as os from 'os';
15
16
  import * as path from 'path';
16
17
  /** Module-level cache for findProjectRoot result. */
17
18
  let _cachedProjectRoot = null;
@@ -24,12 +25,17 @@ export function clearProjectRootCache() {
24
25
  _cachedProjectRoot = null;
25
26
  _cachedStartDir = null;
26
27
  }
28
+ /** True when `dir` is `parent` or inside it. */
29
+ function isWithin(dir, parent) {
30
+ const rel = path.relative(parent, dir);
31
+ return rel === '' || (!rel.startsWith('..') && !path.isAbsolute(rel));
32
+ }
27
33
  /**
28
34
  * Find the project root by walking up the directory tree.
29
35
  *
30
36
  * Priority order:
31
37
  * 1. AQE_PROJECT_ROOT environment variable (set by MCP config or init)
32
- * 2. Walk up looking for the NEAREST .agentic-qe directory (existing AQE project)
38
+ * 2. Nearest .agentic-qe at or below the nearest .git boundary
33
39
  * 3. Walk up looking for .git directory (git repo root)
34
40
  * 4. Walk up looking for package.json WITHOUT node_modules sibling (monorepo root)
35
41
  * 5. Fallback to current working directory
@@ -47,6 +53,17 @@ export function findProjectRoot(startDir = process.cwd()) {
47
53
  return _cachedProjectRoot;
48
54
  _cachedStartDir = dir;
49
55
  const root = path.parse(dir).root;
56
+ // A store directly in $HOME is almost always a stray from an `aqe` run in
57
+ // the home directory. Outside any git repository there is no boundary to
58
+ // stop at, so never let it claim a descendant directory (#735/#516); an
59
+ // `aqe` run from $HOME itself still uses it, and AQE_PROJECT_ROOT overrides.
60
+ let home = null;
61
+ try {
62
+ home = path.resolve(os.homedir());
63
+ }
64
+ catch {
65
+ home = null;
66
+ }
50
67
  let checkDir = dir;
51
68
  let nearestAqeDir = null;
52
69
  let lowestGitDir = null;
@@ -55,8 +72,12 @@ export function findProjectRoot(startDir = process.cwd()) {
55
72
  // Issue #516: prefer the NEAREST (lowest) .agentic-qe, mirroring the
56
73
  // .git logic below. Keeping the topmost match let an ancestor store
57
74
  // (e.g. ~/.agentic-qe, created by any `aqe` run from $HOME) hijack
58
- // every descendant project and fragment its learning into $HOME.
59
- if (fs.existsSync(path.join(checkDir, '.agentic-qe'))) {
75
+ // every descendant project and fragment its learning into $HOME. Stop
76
+ // considering stores above the nearest git boundary, even when the repo
77
+ // has not been initialized with AQE yet.
78
+ const isHomeStoreAboveStart = checkDir === home && checkDir !== dir
79
+ && !isWithin(dir, path.join(checkDir, '.agentic-qe'));
80
+ if (lowestGitDir === null && !isHomeStoreAboveStart && fs.existsSync(path.join(checkDir, '.agentic-qe'))) {
60
81
  if (nearestAqeDir === null) {
61
82
  nearestAqeDir = checkDir;
62
83
  }
@@ -13,9 +13,10 @@
13
13
  * We never throw out of these helpers under expected conditions; failure
14
14
  * reasons are surfaced as thrown errors only for genuine I/O problems.
15
15
  */
16
- import { join } from 'node:path';
16
+ import { join, resolve } from 'node:path';
17
17
  import { existsSync, mkdirSync } from 'node:fs';
18
18
  import { createRequire } from 'node:module';
19
+ import { findProjectRoot } from '../kernel/project-root.js';
19
20
  // `require` is unavailable in pure ESM; createRequire gives us synchronous
20
21
  // access to CommonJS modules like better-sqlite3 from the ESM build output.
21
22
  const nodeRequire = createRequire(import.meta.url);
@@ -26,8 +27,8 @@ const nodeRequire = createRequire(import.meta.url);
26
27
  function getMemoryDbPath() {
27
28
  const env = process.env.AQE_MEMORY_PATH;
28
29
  if (env && env.length > 0)
29
- return env;
30
- return join(process.cwd(), '.agentic-qe', 'memory.db');
30
+ return env === ':memory:' ? env : resolve(findProjectRoot(), env);
31
+ return join(findProjectRoot(), '.agentic-qe', 'memory.db');
31
32
  }
32
33
  const NAMESPACE = '_system';
33
34
  const KEY_PREFIX = 'embedder_identity:';
@@ -30,7 +30,7 @@ import { createVectorDeltaTracker, } from '../integrations/ruvector/vector-delta
30
30
  import { createHopfieldMemory } from '../integrations/ruvector/hopfield-memory.js';
31
31
  import { createHyperbolicPatternIndex, } from './hyperbolic-pattern-index.js';
32
32
  import { PatternNullStore } from './pattern-null-store.js';
33
- import { getActiveEmbeddingSpaceIdentity } from './real-embeddings.js';
33
+ import { ensureEndpointEmbeddingSpaceIdentity, getActiveEmbeddingSpaceIdentity } from './real-embeddings.js';
34
34
  import { PatternMutationError } from './pattern-mutation-error.js';
35
35
  // ============================================================================
36
36
  // R1: HDC Fingerprint Singleton (lazy-initialized)
@@ -244,6 +244,10 @@ export class PatternStore {
244
244
  */
245
245
  async initializeHNSWInternal() {
246
246
  try {
247
+ // #754: resolve a configured endpoint's identity before binding HNSW.
248
+ if (!getActiveEmbeddingSpaceIdentity() && !this.config.embeddingSpaceId) {
249
+ await ensureEndpointEmbeddingSpaceIdentity();
250
+ }
247
251
  this.hnswSpaceId = getActiveEmbeddingSpaceIdentity()?.spaceId ?? this.config.embeddingSpaceId ?? null;
248
252
  if (!this.hnswSpaceId) {
249
253
  throw new Error('VECTOR_SPACE_UNVERIFIED: cannot initialize HNSW without runtime provenance');
@@ -86,4 +86,12 @@ export declare function isUsingEndpoint(): boolean;
86
86
  export declare function getEndpointIdentity(): EndpointIdentity | null;
87
87
  /** Runtime-backed identity of the initialized embedding space. */
88
88
  export declare function getActiveEmbeddingSpaceIdentity(): EmbeddingSpaceIdentity | null;
89
+ /**
90
+ * #754: resolve the configured endpoint's embedding-space identity before an
91
+ * index binder (RVF pattern store, brain.rvf dual writer, SQLite HNSW) checks
92
+ * its space manifest. The endpoint runtime otherwise initializes lazily on the
93
+ * first embed call — after the binder has already refused for the process.
94
+ * Returns null when no endpoint is configured, so binders stay fail-closed.
95
+ */
96
+ export declare function ensureEndpointEmbeddingSpaceIdentity(): Promise<EmbeddingSpaceIdentity | null>;
89
97
  //# sourceMappingURL=real-embeddings.d.ts.map
@@ -410,4 +410,20 @@ export function getEndpointIdentity() {
410
410
  export function getActiveEmbeddingSpaceIdentity() {
411
411
  return activeEmbeddingSpaceIdentity;
412
412
  }
413
+ /**
414
+ * #754: resolve the configured endpoint's embedding-space identity before an
415
+ * index binder (RVF pattern store, brain.rvf dual writer, SQLite HNSW) checks
416
+ * its space manifest. The endpoint runtime otherwise initializes lazily on the
417
+ * first embed call — after the binder has already refused for the process.
418
+ * Returns null when no endpoint is configured, so binders stay fail-closed.
419
+ */
420
+ export async function ensureEndpointEmbeddingSpaceIdentity() {
421
+ if (activeEmbeddingSpaceIdentity)
422
+ return activeEmbeddingSpaceIdentity;
423
+ const endpoint = process.env.AQE_EMBEDDER_ENDPOINT;
424
+ if (!endpoint)
425
+ return null;
426
+ await initializeModel({ endpoint, endpointToken: process.env.AQE_EMBEDDER_TOKEN });
427
+ return activeEmbeddingSpaceIdentity;
428
+ }
413
429
  //# sourceMappingURL=real-embeddings.js.map
@@ -16,7 +16,7 @@ import { ok, err } from '../shared/types/index.js';
16
16
  import { toErrorMessage } from '../shared/error-utils.js';
17
17
  import { calculateQualityScore, validateQEPattern, mapQEDomainToAQE, PROMOTION_THRESHOLD, } from './qe-patterns.js';
18
18
  import { DEFAULT_PATTERN_STORE_CONFIG } from './pattern-store.js';
19
- import { getActiveEmbeddingSpaceIdentity } from './real-embeddings.js';
19
+ import { ensureEndpointEmbeddingSpaceIdentity, getActiveEmbeddingSpaceIdentity } from './real-embeddings.js';
20
20
  import { verifyOrCreateEmbeddingSpaceManifest } from './embedding-space.js';
21
21
  import { PatternMutationError } from './pattern-mutation-error.js';
22
22
  // ============================================================================
@@ -75,6 +75,12 @@ export class RvfPatternStore {
75
75
  return;
76
76
  }
77
77
  try {
78
+ // The endpoint runtime is lazy. Resolve its executable identity before
79
+ // binding a new RVF index; otherwise every fresh process sees null here
80
+ // and permanently disables RVF even though the endpoint is configured.
81
+ if (!this.embeddingSpaceId && !getActiveEmbeddingSpaceIdentity()) {
82
+ await ensureEndpointEmbeddingSpaceIdentity();
83
+ }
78
84
  this.adapter = this.createAdapter(this.rvfPath, this.config.embeddingDimension);
79
85
  const activeSpaceId = getActiveEmbeddingSpaceIdentity()?.spaceId ?? this.embeddingSpaceId ?? null;
80
86
  verifyOrCreateEmbeddingSpaceManifest(this.rvfPath, activeSpaceId, this.adapter.status()?.totalVectors ?? 0);
@@ -90,9 +96,10 @@ export class RvfPatternStore {
90
96
  this.adapter?.close();
91
97
  }
92
98
  catch { /* best effort */ }
93
- console.error(`[RvfPatternStore] ERROR: RVF native init failed — vector search is DISABLED. ` +
99
+ console.error(`[RvfPatternStore] ERROR: RVF initialization failed — vector search is DISABLED. ` +
94
100
  `Cause: ${this.rvfInitError}. ` +
95
- `Fix: install @ruvector/rvf-node native bindings, or set useRVFPatternStore=false to use SQLite HNSW.`);
101
+ `Fix: check the embedder endpoint and @ruvector/rvf-node binding, ` +
102
+ `or set RUVECTOR_USE_RVF_PATTERN_STORE=false to use SQLite HNSW.`);
96
103
  this.adapter = null;
97
104
  this.initialized = true; // mark initialized to prevent retry loops
98
105
  }