agentic-qe 3.9.0 → 3.9.2

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 (416) hide show
  1. package/.claude/skills/skills-manifest.json +1 -1
  2. package/CHANGELOG.md +43 -0
  3. package/dist/audit/witness-chain.d.ts +1 -1
  4. package/dist/cli/bundle.js +8 -8
  5. package/dist/cli/chunks/adapter-53WBPKXU.js +2 -0
  6. package/dist/cli/chunks/{agent-booster-wasm-PQYB7VRU.js → agent-booster-wasm-AKAOHSCX.js} +2 -2
  7. package/dist/cli/chunks/{agent-handler-QDAB5NQS.js → agent-handler-MTGPOUVP.js} +2 -2
  8. package/dist/cli/chunks/agent-memory-branch-UFPKWUFK.js +2 -0
  9. package/dist/cli/chunks/aqe-learning-engine-MV7NGY24.js +2 -0
  10. package/dist/cli/chunks/{audit-S7JUYYVP.js → audit-VBEZHNHO.js} +2 -2
  11. package/dist/cli/chunks/base-DZVGMQN2.js +2 -0
  12. package/dist/cli/chunks/better-sqlite3-IRPHIXRU.js +2 -0
  13. package/dist/cli/chunks/brain-handler-7EO3FFRZ.js +68 -0
  14. package/dist/cli/chunks/{branch-enumerator-XK4V5W7L.js → branch-enumerator-MZRGP35N.js} +2 -2
  15. package/dist/cli/chunks/{browser-PALA5PL3.js → browser-VSIWQE7J.js} +2 -2
  16. package/dist/cli/chunks/browser-workflow-3J5YNMEI.js +2 -0
  17. package/dist/cli/chunks/chunk-25LFUL2K.js +79 -0
  18. package/dist/cli/chunks/{chunk-LHJQD2VU.js → chunk-2EC5Z2J4.js} +68 -68
  19. package/dist/cli/chunks/{chunk-4YOMLWEK.js → chunk-2VVV73PW.js} +1 -1
  20. package/dist/cli/chunks/{chunk-BPWXXEH2.js → chunk-2WBCYSUN.js} +128 -128
  21. package/dist/cli/chunks/{chunk-X3KI6JOY.js → chunk-2Z2TFEOL.js} +2 -2
  22. package/dist/cli/chunks/chunk-34U7JDCN.js +2 -0
  23. package/dist/cli/chunks/{chunk-24FKIJNC.js → chunk-3GZKAORV.js} +2 -2
  24. package/dist/cli/chunks/{chunk-72WOAVK6.js → chunk-4D2ZG2QO.js} +1 -1
  25. package/dist/cli/chunks/{chunk-B36CDR4U.js → chunk-4DAOZQ3V.js} +2 -2
  26. package/dist/cli/chunks/{chunk-CL6POIX4.js → chunk-4FMHBBG5.js} +1 -1
  27. package/dist/cli/chunks/{chunk-BXAXGEFC.js → chunk-4FT3PND7.js} +5 -5
  28. package/dist/cli/chunks/{chunk-IGJPMN4I.js → chunk-4LA7IW3V.js} +1 -1
  29. package/dist/cli/chunks/{chunk-JRYGQO2W.js → chunk-4PKXIBX2.js} +1 -1
  30. package/dist/cli/chunks/{chunk-YPFOCNOE.js → chunk-4UH25U4O.js} +1 -1
  31. package/dist/cli/chunks/{chunk-U5RN7YQW.js → chunk-4Z27TRQF.js} +2 -2
  32. package/dist/cli/chunks/{chunk-YW2THB5Q.js → chunk-563PJBDM.js} +2 -2
  33. package/dist/cli/chunks/{chunk-BDIEMZ22.js → chunk-56IWS2KY.js} +2 -2
  34. package/dist/cli/chunks/chunk-5AUKULWO.js +2 -0
  35. package/dist/cli/chunks/{chunk-VSVXUTJN.js → chunk-5L6AU3QK.js} +2 -2
  36. package/dist/cli/chunks/{chunk-RTGGL7D7.js → chunk-5RL66XSH.js} +2 -2
  37. package/dist/cli/chunks/{chunk-YANUP2RO.js → chunk-65M7C6SH.js} +1 -1
  38. package/dist/cli/chunks/{chunk-ESVQ6MEB.js → chunk-6SOJVEU7.js} +2 -2
  39. package/dist/cli/chunks/{chunk-UFUVUO3J.js → chunk-727BDQ3K.js} +2 -2
  40. package/dist/cli/chunks/{chunk-TLHP5EII.js → chunk-7NOIIC7G.js} +1 -1
  41. package/dist/cli/chunks/{chunk-N4TL73TH.js → chunk-7SLN2JGP.js} +8 -8
  42. package/dist/cli/chunks/{chunk-NZ2VCPN4.js → chunk-AA33R5U4.js} +2 -2
  43. package/dist/cli/chunks/{chunk-Y7BHKZFJ.js → chunk-AKSJQ6B3.js} +2 -2
  44. package/dist/cli/chunks/{chunk-3ZOONQG6.js → chunk-BIVIPF4O.js} +1 -1
  45. package/dist/cli/chunks/{chunk-VOS4NQSF.js → chunk-BKCTNRC5.js} +2 -2
  46. package/dist/cli/chunks/{chunk-B6LLWYQ6.js → chunk-BOH22AKC.js} +2 -2
  47. package/dist/cli/chunks/{chunk-OI5NGQO2.js → chunk-BY47GV4T.js} +2 -2
  48. package/dist/cli/chunks/chunk-CCYMJKWX.js +2 -0
  49. package/dist/cli/chunks/chunk-CL3K5EJK.js +2 -0
  50. package/dist/cli/chunks/{chunk-GPQ57KA4.js → chunk-CQBSGYRA.js} +2 -2
  51. package/dist/cli/chunks/{chunk-MZOFWJTM.js → chunk-CQP7ZFME.js} +2 -2
  52. package/dist/cli/chunks/chunk-DBE34QES.js +2 -0
  53. package/dist/cli/chunks/chunk-DHE66JRR.js +12 -0
  54. package/dist/cli/chunks/{chunk-2BZFNEN2.js → chunk-DNLMZTE2.js} +1 -1
  55. package/dist/cli/chunks/{chunk-XLRQYLWW.js → chunk-DSE57A5N.js} +1 -1
  56. package/dist/cli/chunks/{chunk-SUSEVMZT.js → chunk-E25S5E2D.js} +1 -1
  57. package/dist/cli/chunks/{chunk-FEKY7T6Q.js → chunk-FAXVVLPL.js} +2 -2
  58. package/dist/cli/chunks/chunk-FRJLP7IB.js +2 -0
  59. package/dist/cli/chunks/{chunk-CS2KS7LP.js → chunk-FUIHWBVF.js} +1 -1
  60. package/dist/cli/chunks/{chunk-LNQIY6BP.js → chunk-GCMVJS5X.js} +2 -2
  61. package/dist/cli/chunks/{chunk-XT2V2322.js → chunk-GITD7SRQ.js} +2 -2
  62. package/dist/cli/chunks/{chunk-JJO7Y4H3.js → chunk-GK72GUHA.js} +3 -3
  63. package/dist/cli/chunks/{chunk-6EOS7KX2.js → chunk-GPLERTZU.js} +2 -2
  64. package/dist/cli/chunks/{chunk-2E5NQNSU.js → chunk-HW4ISY5B.js} +11 -11
  65. package/dist/cli/chunks/{chunk-HRO6OZQD.js → chunk-ICDXWIFZ.js} +1 -1
  66. package/dist/cli/chunks/{chunk-3NZLZHJI.js → chunk-J4BS6IWE.js} +1 -1
  67. package/dist/cli/chunks/{chunk-4VUPRTVX.js → chunk-JOVINE23.js} +2 -2
  68. package/dist/cli/chunks/chunk-JV7LX6OT.js +95 -0
  69. package/dist/cli/chunks/{chunk-6SVX4DJC.js → chunk-KBA7FBK3.js} +3 -3
  70. package/dist/cli/chunks/chunk-KDDZYXP4.js +2 -0
  71. package/dist/cli/chunks/{chunk-GAOJV3OX.js → chunk-KNVAAVHH.js} +2 -2
  72. package/dist/cli/chunks/{chunk-CWFB6BSA.js → chunk-KQTJ2YLI.js} +4 -4
  73. package/dist/cli/chunks/{chunk-FGA7VIFR.js → chunk-KTYUCZEM.js} +3 -3
  74. package/dist/cli/chunks/{chunk-RU5WAHB7.js → chunk-KZTO5EVM.js} +2 -2
  75. package/dist/cli/chunks/{chunk-IFNIIK34.js → chunk-KZUJBZ7B.js} +3 -3
  76. package/dist/cli/chunks/{chunk-GKNNSCLC.js → chunk-L5WZUPZF.js} +2 -2
  77. package/dist/cli/chunks/{chunk-MDUHYUHF.js → chunk-L5YEPSDU.js} +2 -2
  78. package/dist/cli/chunks/chunk-LCAA6H4J.js +2 -0
  79. package/dist/cli/chunks/{chunk-XRE2HCWG.js → chunk-LMMEUVE5.js} +1 -1
  80. package/dist/cli/chunks/{chunk-7VDBAVTY.js → chunk-MN742FIH.js} +2 -2
  81. package/dist/cli/chunks/chunk-MY4LMIG7.js +180 -0
  82. package/dist/cli/chunks/{chunk-WGMPEW2T.js → chunk-N3F3CX4V.js} +2 -2
  83. package/dist/cli/chunks/{chunk-YVA65UZL.js → chunk-NJY7ZA77.js} +1 -1
  84. package/dist/cli/chunks/{chunk-3IHG3WOY.js → chunk-NM6TIEJ3.js} +3 -3
  85. package/dist/cli/chunks/{chunk-KP5NUODU.js → chunk-NRCKGXJJ.js} +1 -1
  86. package/dist/cli/chunks/{chunk-3ADGXLTM.js → chunk-PFNFC43Q.js} +1 -1
  87. package/dist/cli/chunks/{chunk-4VBTXZRM.js → chunk-PJFLO37I.js} +2 -2
  88. package/dist/cli/chunks/{chunk-XIBDETCS.js → chunk-PNL5G6TE.js} +2 -2
  89. package/dist/cli/chunks/{chunk-AFLLQ5PP.js → chunk-Q4A72ZTV.js} +2 -2
  90. package/dist/cli/chunks/{chunk-EHDQJQ6Y.js → chunk-QEQTC4WQ.js} +5 -5
  91. package/dist/cli/chunks/{chunk-IAV2JMIX.js → chunk-QIH3E775.js} +2 -2
  92. package/dist/cli/chunks/{chunk-GRUUQAR6.js → chunk-QNBQBSAI.js} +2 -2
  93. package/dist/cli/chunks/{chunk-WIEC7VKK.js → chunk-QODE4LM6.js} +2 -2
  94. package/dist/cli/chunks/{chunk-HY6PMO5W.js → chunk-QPRVX4H2.js} +2 -2
  95. package/dist/cli/chunks/chunk-RC5CPXON.js +2 -0
  96. package/dist/cli/chunks/{chunk-TWUWL5EJ.js → chunk-RITN3XR4.js} +2 -2
  97. package/dist/cli/chunks/{chunk-WBQSXPBI.js → chunk-RJROC5M3.js} +2 -2
  98. package/dist/cli/chunks/chunk-RQGYJK7H.js +2 -0
  99. package/dist/cli/chunks/{chunk-XO6PVK2P.js → chunk-S3RDH5CI.js} +2 -2
  100. package/dist/cli/chunks/{chunk-3IUNFTIF.js → chunk-SCF7NRVE.js} +1 -1
  101. package/dist/cli/chunks/chunk-SDTVHR63.js +2 -0
  102. package/dist/cli/chunks/chunk-SGAW2WLI.js +65 -0
  103. package/dist/cli/chunks/{chunk-N2NS2PHA.js → chunk-SNVM4YJS.js} +2 -2
  104. package/dist/cli/chunks/{chunk-JXM26HEE.js → chunk-SRRFWTNF.js} +2 -2
  105. package/dist/cli/chunks/{chunk-UQHYFOBX.js → chunk-STE42EMB.js} +2 -2
  106. package/dist/cli/chunks/{chunk-WJ3DLOXF.js → chunk-T5GV6UIO.js} +2 -2
  107. package/dist/cli/chunks/{chunk-4YS3IJ45.js → chunk-TKF447CW.js} +1 -1
  108. package/dist/cli/chunks/{chunk-ZAPS3UGQ.js → chunk-TTOE336G.js} +3 -3
  109. package/dist/cli/chunks/{chunk-YAGODYIG.js → chunk-UKDOMLBI.js} +3 -3
  110. package/dist/cli/chunks/{chunk-JBANAPWG.js → chunk-V6XBAZNH.js} +1 -1
  111. package/dist/cli/chunks/{chunk-BULKFVYX.js → chunk-VHVWAXCF.js} +1 -1
  112. package/dist/cli/chunks/{chunk-5SKGFSKD.js → chunk-VL7YOOC2.js} +2 -2
  113. package/dist/cli/chunks/{chunk-AKE543X2.js → chunk-VUAO4VFC.js} +2 -2
  114. package/dist/cli/chunks/{chunk-7R6YMLVS.js → chunk-WG4GHAML.js} +2 -2
  115. package/dist/cli/chunks/{chunk-BTREG4IW.js → chunk-WXWY2GAF.js} +2 -2
  116. package/dist/cli/chunks/chunk-X35GP7TR.js +1 -0
  117. package/dist/cli/chunks/chunk-X6LCMOGC.js +2 -0
  118. package/dist/cli/chunks/{chunk-BGXNSCXX.js → chunk-XFMKJ3UD.js} +1 -1
  119. package/dist/cli/chunks/{chunk-BLBRY5UD.js → chunk-XH53ARZD.js} +2 -2
  120. package/dist/cli/chunks/chunk-XIBVVZGB.js +2 -0
  121. package/dist/cli/chunks/chunk-XYJL6DKI.js +2 -0
  122. package/dist/cli/chunks/{chunk-5T2ZQWKF.js → chunk-Y6O7CDLI.js} +2 -2
  123. package/dist/cli/chunks/{chunk-4I2IOUS4.js → chunk-YXCU4CJX.js} +1 -1
  124. package/dist/cli/chunks/{chunk-YR6ZZGH7.js → chunk-Z2IKNC5M.js} +1 -1
  125. package/dist/cli/chunks/{chunk-OLHKGP35.js → chunk-Z54EO6E6.js} +2 -2
  126. package/dist/cli/chunks/{chunk-ZDATDCYN.js → chunk-Z5HXGVXZ.js} +1 -1
  127. package/dist/cli/chunks/{ci-J374KDLI.js → ci-2BCOBWFG.js} +2 -2
  128. package/dist/cli/chunks/ci-output-FB4OJHAC.js +2 -0
  129. package/dist/cli/chunks/{claude-flow-setup-245JLJCN.js → claude-flow-setup-NEEFZTMB.js} +2 -2
  130. package/dist/cli/chunks/client-EF555KYW.js +2 -0
  131. package/dist/cli/chunks/{cline-installer-LBA2M5N3.js → cline-installer-ODO2PS4K.js} +2 -2
  132. package/dist/cli/chunks/{code-U4N4WONM.js → code-NSOF62VE.js} +2 -2
  133. package/dist/cli/chunks/{code-index-extractor-A57Z6BO4.js → code-index-extractor-YQL5XN52.js} +2 -2
  134. package/dist/cli/chunks/{codex-installer-UXMK2N4T.js → codex-installer-SPEY6VYT.js} +2 -2
  135. package/dist/cli/chunks/{completions-W66BSCOE.js → completions-OWKBUMBE.js} +2 -2
  136. package/dist/cli/chunks/complexity-analyzer-PGTXKP73.js +2 -0
  137. package/dist/cli/chunks/{continuedev-installer-LRFZ2SJM.js → continuedev-installer-KGOXAC7L.js} +2 -2
  138. package/dist/cli/chunks/{copilot-installer-CQ3JYBIB.js → copilot-installer-BF3UA3TG.js} +2 -2
  139. package/dist/cli/chunks/cost-tracker-2HDJ66E2.js +2 -0
  140. package/dist/cli/chunks/{coverage-4PUEQXAY.js → coverage-KPA2PHIN.js} +3 -3
  141. package/dist/cli/chunks/cross-domain-router-GXFNK5TS.js +2 -0
  142. package/dist/cli/chunks/{cursor-installer-JZEDEDHA.js → cursor-installer-7CDZFHTV.js} +2 -2
  143. package/dist/cli/chunks/{daemon-B7TWGHXQ.js → daemon-4BPGCKDJ.js} +3 -3
  144. package/dist/cli/chunks/dag-attention-scheduler-2MAVGSBB.js +2 -0
  145. package/dist/cli/chunks/detect-WRPWTGP5.js +2 -0
  146. package/dist/cli/chunks/{domain-handler-FT5FLZWL.js → domain-handler-JZVSJ7AG.js} +2 -2
  147. package/dist/cli/chunks/domain-transfer-XGIZOR2X.js +2 -0
  148. package/dist/cli/chunks/dream-3IKF5XH4.js +2 -0
  149. package/dist/cli/chunks/esm-node-DHAE52OW.js +2 -0
  150. package/dist/cli/chunks/{eval-GHMPFGWV.js → eval-T7YPAS4G.js} +2 -2
  151. package/dist/cli/chunks/{fast-paths-B3R647KN.js → fast-paths-QECJTKCQ.js} +2 -2
  152. package/dist/cli/chunks/{feature-flags-DWS7ARSX.js → feature-flags-LIFURSFZ.js} +2 -2
  153. package/dist/cli/chunks/feature-flags-R4QZYTIW.js +2 -0
  154. package/dist/cli/chunks/file-discovery-4W3K3W4C.js +2 -0
  155. package/dist/cli/chunks/{fleet-EKOKMOMW.js → fleet-NLLQWCI5.js} +3 -3
  156. package/dist/cli/chunks/gnn-wrapper-XEII72LN.js +2 -0
  157. package/dist/cli/chunks/{heartbeat-handler-MBBS4IBU.js → heartbeat-handler-DJ65RE5D.js} +4 -4
  158. package/dist/cli/chunks/{heartbeat-scheduler-XDGMOT7X.js → heartbeat-scheduler-H664265Q.js} +2 -2
  159. package/dist/cli/chunks/hnsw-adapter-DML5KXQR.js +2 -0
  160. package/dist/cli/chunks/hnsw-index-BUPPGVR6.js +2 -0
  161. package/dist/cli/chunks/hnsw-legacy-bridge-SQIDTWAA.js +2 -0
  162. package/dist/cli/chunks/hnswlib-node-WICYCU5U.js +2 -0
  163. package/dist/cli/chunks/{hooks-L5VLZGEK.js → hooks-GZUHUD63.js} +6 -6
  164. package/dist/cli/chunks/hypergraph-engine-MLCDZ6BL.js +2 -0
  165. package/dist/cli/chunks/{hypergraph-handler-3HDGB5SZ.js → hypergraph-handler-NNDDI4R3.js} +3 -3
  166. package/dist/cli/chunks/impact-analyzer-DPTMJRYS.js +2 -0
  167. package/dist/cli/chunks/{init-handler-JDET6WUN.js → init-handler-IJ6BHE6A.js} +6 -6
  168. package/dist/cli/chunks/init-wizard-35PUDJPW.js +2 -0
  169. package/dist/cli/chunks/kernel-2HZ44ZJ4.js +2 -0
  170. package/dist/cli/chunks/{kilocode-installer-GZZG5AFW.js → kilocode-installer-EPZFFPFE.js} +2 -2
  171. package/dist/cli/chunks/{kiro-installer-IWNY5TKH.js → kiro-installer-5VACG3HU.js} +2 -2
  172. package/dist/cli/chunks/knowledge-graph-JL62G72U.js +2 -0
  173. package/dist/cli/chunks/{learning-722ZNSZ6.js → learning-6FITK6XY.js} +3 -3
  174. package/dist/cli/chunks/{llm-router-DNAV746L.js → llm-router-4DDC6AKJ.js} +2 -2
  175. package/dist/cli/chunks/{load-Y3GCUFM4.js → load-KGDNVUBX.js} +2 -2
  176. package/dist/cli/chunks/load-test-LN245SSD.js +2 -0
  177. package/dist/cli/chunks/{mcp-LKPIBZ3W.js → mcp-4LETGVIV.js} +2 -2
  178. package/dist/cli/chunks/{memory-L57MLFOP.js → memory-II4I4QMO.js} +5 -5
  179. package/dist/cli/chunks/memory-backend-SVM7YRIE.js +2 -0
  180. package/dist/cli/chunks/memory-handlers-TQXTOJGQ.js +2 -0
  181. package/dist/cli/chunks/opencode-installer-EU6JCWBW.js +3 -0
  182. package/dist/cli/chunks/{orchestrator-QHSBB2UC.js → orchestrator-YLMGJVSP.js} +5 -5
  183. package/dist/cli/chunks/{pipeline-D3QER35Z.js → pipeline-MPZJWYKK.js} +2 -2
  184. package/dist/cli/chunks/{platform-T4E7Q3RD.js → platform-YH35ZZFZ.js} +2 -2
  185. package/dist/cli/chunks/{plugin-JHW2YPRC.js → plugin-B7JYZFNQ.js} +2 -2
  186. package/dist/cli/chunks/{prime-radiant-advanced-wasm-G7CFNNQV.js → prime-radiant-advanced-wasm-KTUK6UE2.js} +2 -2
  187. package/dist/cli/chunks/protocol-executor-IEN2XB4L.js +2 -0
  188. package/dist/cli/chunks/{protocol-handler-2BQQ4HDM.js → protocol-handler-3NXMVU34.js} +2 -2
  189. package/dist/cli/chunks/{prove-UQ6JFT73.js → prove-H5LMGSUC.js} +2 -2
  190. package/dist/cli/chunks/qe-reasoning-bank-Q3ZV3JRG.js +2 -0
  191. package/dist/cli/chunks/{quality-JRZYMC77.js → quality-RCWHY6GO.js} +2 -2
  192. package/dist/cli/chunks/queen-coordinator-E6ON3JUR.js +2 -0
  193. package/dist/cli/chunks/real-embeddings-NKH4VURF.js +2 -0
  194. package/dist/cli/chunks/{roocode-installer-F4E2LAYR.js → roocode-installer-SB7QJYM3.js} +2 -2
  195. package/dist/cli/chunks/router-WMC3LZ3C.js +2 -0
  196. package/dist/cli/chunks/routing-feedback-VKCZRCE3.js +2 -0
  197. package/dist/cli/chunks/{routing-handler-VNKFUUGB.js → routing-handler-SY7GKG2W.js} +2 -2
  198. package/dist/cli/chunks/ruvector-commands-HATTO3UQ.js +8 -0
  199. package/dist/cli/chunks/rvf-dual-writer-D57EXQUD.js +2 -0
  200. package/dist/cli/chunks/rvf-migration-adapter-OWDYN6KD.js +2 -0
  201. package/dist/cli/chunks/rvf-migration-coordinator-SIQVJB5S.js +2 -0
  202. package/dist/cli/chunks/rvf-native-adapter-C7NBH5UN.js +2 -0
  203. package/dist/cli/chunks/safe-db-5KLXCNXN.js +2 -0
  204. package/dist/cli/chunks/schedule-HAWWOXWB.js +2 -0
  205. package/dist/cli/chunks/scheduler-HTRDY5BC.js +2 -0
  206. package/dist/cli/chunks/{security-EBEG2OPU.js → security-DS3XLZWN.js} +3 -3
  207. package/dist/cli/chunks/shared-rvf-adapter-6I2Z5UGL.js +2 -0
  208. package/dist/cli/chunks/shared-rvf-dual-writer-YB7AH6XJ.js +2 -0
  209. package/dist/cli/chunks/sqlite-persistence-WNNRGTGG.js +2 -0
  210. package/dist/cli/chunks/{status-handler-VZ32M4G4.js → status-handler-TUYHE4FT.js} +2 -2
  211. package/dist/cli/chunks/{structural-health-K6LRCKV6.js → structural-health-XNGBNRRD.js} +2 -2
  212. package/dist/cli/chunks/{sync-MHSHNLIM.js → sync-K6CIRKBB.js} +2 -2
  213. package/dist/cli/chunks/{task-handler-JNOIBZ2G.js → task-handler-7PJY67DR.js} +2 -2
  214. package/dist/cli/chunks/task-handlers-WB5CDWUR.js +2 -0
  215. package/dist/cli/chunks/{test-DO22BNIL.js → test-WV5ALEBB.js} +4 -4
  216. package/dist/cli/chunks/{test-scheduling-VLRQZEFL.js → test-scheduling-N55ZGGA2.js} +3 -3
  217. package/dist/cli/chunks/token-bootstrap-SINWHAKR.js +2 -0
  218. package/dist/cli/chunks/{token-usage-LG3PXRXH.js → token-usage-R7TGEVGL.js} +2 -2
  219. package/dist/cli/chunks/transformers-6DBLXPV7.js +2 -0
  220. package/dist/cli/chunks/{tree-sitter-wasm-parser-FT2KB66N.js → tree-sitter-wasm-parser-7C7FKMQW.js} +2 -2
  221. package/dist/cli/chunks/types-VNPMOKQT.js +2 -0
  222. package/dist/cli/chunks/unified-memory-72SKVZ7Y.js +2 -0
  223. package/dist/cli/chunks/unified-memory-hnsw-TMN2L77W.js +2 -0
  224. package/dist/cli/chunks/unified-persistence-MDN3SRCR.js +2 -0
  225. package/dist/cli/chunks/{validate-VQCRSVNQ.js → validate-53MNIRAF.js} +2 -2
  226. package/dist/cli/chunks/{validate-swarm-A5DHAWTP.js → validate-swarm-ZY4RGUFO.js} +2 -2
  227. package/dist/cli/chunks/{vibium-RZBSL4EB.js → vibium-PBADBIV6.js} +2 -2
  228. package/dist/cli/chunks/visual-security-TRBCXPIB.js +2 -0
  229. package/dist/cli/chunks/{web-tree-sitter-7C4NXEOF.js → web-tree-sitter-O7VI6RLB.js} +2 -2
  230. package/dist/cli/chunks/{windsurf-installer-ES3KPQG3.js → windsurf-installer-HV3C3TAD.js} +2 -2
  231. package/dist/cli/chunks/witness-chain-4WIMYP4X.js +2 -0
  232. package/dist/cli/chunks/witness-chain-JOI2YYGK.js +2 -0
  233. package/dist/cli/chunks/{workflow-JETHX4ML.js → workflow-5RVAQ4TM.js} +4 -4
  234. package/dist/cli/chunks/workflow-orchestrator-2NQ72S3C.js +2 -0
  235. package/dist/cli/chunks/{wrappers-WP5RH745.js → wrappers-RRHCCA3E.js} +2 -2
  236. package/dist/cli/commands/ruvector-commands.js +14 -2
  237. package/dist/cli/index.js +10 -15
  238. package/dist/coordination/agent-memory-branch.d.ts +117 -0
  239. package/dist/coordination/agent-memory-branch.js +213 -0
  240. package/dist/coordination/agent-teams/mailbox.d.ts +43 -0
  241. package/dist/coordination/agent-teams/mailbox.js +130 -4
  242. package/dist/coordination/handlers/handler-utils.d.ts +1 -0
  243. package/dist/coordination/handlers/handler-utils.js +9 -2
  244. package/dist/coordination/handlers/quality-handlers.js +7 -1
  245. package/dist/domains/contract-testing/coordinator.js +11 -0
  246. package/dist/domains/quality-assessment/coherence/gate-controller.d.ts +20 -1
  247. package/dist/domains/quality-assessment/coherence/gate-controller.js +64 -0
  248. package/dist/domains/quality-assessment/coherence/index.d.ts +3 -3
  249. package/dist/domains/quality-assessment/coherence/index.js +2 -2
  250. package/dist/domains/quality-assessment/coherence/types.d.ts +39 -0
  251. package/dist/domains/quality-assessment/coherence/types.js +11 -0
  252. package/dist/domains/quality-assessment/coordinator.d.ts +14 -0
  253. package/dist/domains/quality-assessment/coordinator.js +92 -0
  254. package/dist/domains/test-execution/coordinator.d.ts +19 -0
  255. package/dist/domains/test-execution/coordinator.js +102 -5
  256. package/dist/domains/test-generation/coordinator.js +11 -0
  257. package/dist/domains/test-generation/interfaces.d.ts +2 -0
  258. package/dist/domains/test-generation/services/test-generator.d.ts +9 -0
  259. package/dist/domains/test-generation/services/test-generator.js +37 -0
  260. package/dist/init/agents-installer.d.ts +5 -3
  261. package/dist/init/agents-installer.js +17 -43
  262. package/dist/init/find-package-root.d.ts +22 -0
  263. package/dist/init/find-package-root.js +46 -0
  264. package/dist/init/n8n-installer.d.ts +4 -2
  265. package/dist/init/n8n-installer.js +23 -23
  266. package/dist/init/opencode-installer.d.ts +0 -5
  267. package/dist/init/opencode-installer.js +12 -39
  268. package/dist/init/skills-installer.d.ts +5 -2
  269. package/dist/init/skills-installer.js +15 -37
  270. package/dist/integrations/embeddings/index/HNSWIndex.d.ts +9 -2
  271. package/dist/integrations/embeddings/index/HNSWIndex.js +110 -35
  272. package/dist/integrations/ruvector/cognitive-routing.d.ts +67 -0
  273. package/dist/integrations/ruvector/cognitive-routing.js +208 -0
  274. package/dist/integrations/ruvector/feature-flags.d.ts +84 -0
  275. package/dist/integrations/ruvector/feature-flags.js +59 -0
  276. package/dist/integrations/ruvector/hdc-fingerprint.d.ts +76 -0
  277. package/dist/integrations/ruvector/hdc-fingerprint.js +217 -0
  278. package/dist/integrations/ruvector/hyperbolic-hnsw.d.ts +59 -0
  279. package/dist/integrations/ruvector/hyperbolic-hnsw.js +194 -0
  280. package/dist/integrations/ruvector/index.d.ts +5 -2
  281. package/dist/integrations/ruvector/index.js +13 -2
  282. package/dist/integrations/ruvector/shared-rvf-adapter.d.ts +24 -0
  283. package/dist/integrations/ruvector/shared-rvf-adapter.js +55 -0
  284. package/dist/integrations/ruvector/shared-rvf-dual-writer.d.ts +6 -0
  285. package/dist/integrations/ruvector/shared-rvf-dual-writer.js +38 -0
  286. package/dist/integrations/ruvector/sona-persistence.d.ts +8 -0
  287. package/dist/integrations/ruvector/sona-persistence.js +10 -0
  288. package/dist/integrations/ruvector/vector-delta-tracker.d.ts +96 -0
  289. package/dist/integrations/ruvector/vector-delta-tracker.js +226 -0
  290. package/dist/kernel/agent-coordinator.d.ts +75 -1
  291. package/dist/kernel/agent-coordinator.js +250 -1
  292. package/dist/kernel/hnsw-legacy-bridge.d.ts +38 -0
  293. package/dist/kernel/hnsw-legacy-bridge.js +88 -0
  294. package/dist/kernel/hnsw-shadow-validator.d.ts +91 -0
  295. package/dist/kernel/hnsw-shadow-validator.js +139 -0
  296. package/dist/kernel/index.d.ts +1 -1
  297. package/dist/kernel/index.js +1 -1
  298. package/dist/kernel/interfaces.d.ts +39 -0
  299. package/dist/kernel/kernel.d.ts +23 -0
  300. package/dist/kernel/kernel.js +106 -1
  301. package/dist/kernel/unified-memory.d.ts +1 -1
  302. package/dist/kernel/unified-memory.js +7 -3
  303. package/dist/learning/aqe-learning-engine.d.ts +65 -0
  304. package/dist/learning/aqe-learning-engine.js +134 -0
  305. package/dist/learning/dream/dream-engine.d.ts +6 -1
  306. package/dist/learning/dream/dream-engine.js +37 -2
  307. package/dist/learning/dream/dream-scheduler.d.ts +25 -0
  308. package/dist/learning/dream/dream-scheduler.js +120 -0
  309. package/dist/learning/dream/rvcow-branch-manager.d.ts +6 -3
  310. package/dist/learning/dream/rvcow-branch-manager.js +60 -5
  311. package/dist/learning/experience-capture.d.ts +3 -3
  312. package/dist/learning/hyperbolic-pattern-index.d.ts +82 -0
  313. package/dist/learning/hyperbolic-pattern-index.js +142 -0
  314. package/dist/learning/index.d.ts +3 -3
  315. package/dist/learning/index.js +1 -1
  316. package/dist/learning/metrics-tracker.d.ts +44 -0
  317. package/dist/learning/metrics-tracker.js +37 -0
  318. package/dist/learning/pattern-promotion.d.ts +3 -3
  319. package/dist/learning/pattern-store.d.ts +45 -2
  320. package/dist/learning/pattern-store.js +239 -4
  321. package/dist/learning/qe-patterns.d.ts +1 -1
  322. package/dist/learning/qe-reasoning-bank.js +1 -1
  323. package/dist/learning/rvf-pattern-migration.d.ts +50 -0
  324. package/dist/learning/rvf-pattern-migration.js +106 -0
  325. package/dist/learning/rvf-pattern-store.d.ts +69 -0
  326. package/dist/learning/rvf-pattern-store.js +449 -0
  327. package/dist/mcp/bundle.js +1894 -1804
  328. package/dist/mcp/handlers/index.d.ts +1 -0
  329. package/dist/mcp/handlers/index.js +2 -0
  330. package/dist/mcp/handlers/migration-handlers.d.ts +52 -0
  331. package/dist/mcp/handlers/migration-handlers.js +85 -0
  332. package/dist/mcp/protocol-server.d.ts +1 -0
  333. package/dist/mcp/protocol-server.js +63 -2
  334. package/dist/mcp/types.d.ts +1 -1
  335. package/dist/optimization/early-exit-token-optimizer.d.ts +7 -7
  336. package/dist/optimization/early-exit-token-optimizer.js +3 -3
  337. package/dist/persistence/rvf-consistency-validator.d.ts +85 -0
  338. package/dist/persistence/rvf-consistency-validator.js +182 -0
  339. package/dist/persistence/rvf-migration-adapter.d.ts +125 -0
  340. package/dist/persistence/rvf-migration-adapter.js +303 -0
  341. package/dist/persistence/rvf-migration-coordinator.d.ts +115 -0
  342. package/dist/persistence/rvf-migration-coordinator.js +224 -0
  343. package/dist/persistence/rvf-stage-gate.d.ts +70 -0
  344. package/dist/persistence/rvf-stage-gate.js +163 -0
  345. package/package.json +10 -10
  346. package/dist/cli/chunks/adapter-WBR5NXS3.js +0 -2
  347. package/dist/cli/chunks/aqe-learning-engine-TK4JQCGT.js +0 -2
  348. package/dist/cli/chunks/base-2WXOSMBQ.js +0 -2
  349. package/dist/cli/chunks/better-sqlite3-7KY2RDXO.js +0 -2
  350. package/dist/cli/chunks/brain-handler-PPEGDCN4.js +0 -68
  351. package/dist/cli/chunks/browser-workflow-42F7GK5T.js +0 -2
  352. package/dist/cli/chunks/chunk-263XS447.js +0 -2
  353. package/dist/cli/chunks/chunk-2I7J3O6V.js +0 -2
  354. package/dist/cli/chunks/chunk-3JPRUND5.js +0 -2
  355. package/dist/cli/chunks/chunk-3THRQEZ2.js +0 -95
  356. package/dist/cli/chunks/chunk-4B6NCELM.js +0 -2
  357. package/dist/cli/chunks/chunk-62ADTHV7.js +0 -2
  358. package/dist/cli/chunks/chunk-BR26T7ZS.js +0 -180
  359. package/dist/cli/chunks/chunk-DRT3WKQW.js +0 -2
  360. package/dist/cli/chunks/chunk-FIA6X7UL.js +0 -2
  361. package/dist/cli/chunks/chunk-J3KWWR6Z.js +0 -1
  362. package/dist/cli/chunks/chunk-JZSDOIXA.js +0 -2
  363. package/dist/cli/chunks/chunk-MV6CMOJQ.js +0 -65
  364. package/dist/cli/chunks/chunk-N5UXCLFI.js +0 -2
  365. package/dist/cli/chunks/chunk-OF4D7MYI.js +0 -2
  366. package/dist/cli/chunks/chunk-QOVHWZEP.js +0 -1
  367. package/dist/cli/chunks/chunk-RFSN6IDA.js +0 -79
  368. package/dist/cli/chunks/chunk-X5IJGWYG.js +0 -2
  369. package/dist/cli/chunks/ci-output-7JN7F6CI.js +0 -2
  370. package/dist/cli/chunks/client-MCSNSH2C.js +0 -2
  371. package/dist/cli/chunks/complexity-analyzer-AB4OZARV.js +0 -2
  372. package/dist/cli/chunks/cost-tracker-4F723RB6.js +0 -2
  373. package/dist/cli/chunks/cross-domain-router-OWR5IJ5G.js +0 -2
  374. package/dist/cli/chunks/dag-attention-scheduler-JWO6XI6A.js +0 -2
  375. package/dist/cli/chunks/detect-L6ZZHUSX.js +0 -2
  376. package/dist/cli/chunks/domain-transfer-5Y4FGJAJ.js +0 -2
  377. package/dist/cli/chunks/dream-4TDBIYED.js +0 -2
  378. package/dist/cli/chunks/esm-node-2PKHKOTS.js +0 -2
  379. package/dist/cli/chunks/feature-flags-IVQ3AL4Q.js +0 -2
  380. package/dist/cli/chunks/file-discovery-QFPA6GMV.js +0 -2
  381. package/dist/cli/chunks/gnn-wrapper-OYC55N5E.js +0 -2
  382. package/dist/cli/chunks/hnsw-index-YO7CT23I.js +0 -2
  383. package/dist/cli/chunks/hnswlib-node-56YWVXFE.js +0 -2
  384. package/dist/cli/chunks/hypergraph-engine-A4Y2ZRAG.js +0 -2
  385. package/dist/cli/chunks/impact-analyzer-UEIGXSZ4.js +0 -2
  386. package/dist/cli/chunks/init-wizard-JWZUGIPJ.js +0 -2
  387. package/dist/cli/chunks/kernel-YNDTVKIW.js +0 -2
  388. package/dist/cli/chunks/knowledge-graph-NGJKFTSN.js +0 -2
  389. package/dist/cli/chunks/load-test-GZUBXFF3.js +0 -2
  390. package/dist/cli/chunks/memory-backend-3NQIZUXE.js +0 -2
  391. package/dist/cli/chunks/memory-handlers-MDZQ7HVW.js +0 -2
  392. package/dist/cli/chunks/opencode-installer-4HUB36H5.js +0 -3
  393. package/dist/cli/chunks/protocol-executor-SPUVRDWT.js +0 -2
  394. package/dist/cli/chunks/qe-reasoning-bank-3HBK2FVD.js +0 -2
  395. package/dist/cli/chunks/queen-coordinator-RW3NKO5A.js +0 -2
  396. package/dist/cli/chunks/real-embeddings-GK63VF35.js +0 -2
  397. package/dist/cli/chunks/router-RJGHWDQ3.js +0 -2
  398. package/dist/cli/chunks/routing-feedback-ZXBXFKX6.js +0 -2
  399. package/dist/cli/chunks/ruvector-commands-2TLNHC3A.js +0 -8
  400. package/dist/cli/chunks/rvf-dual-writer-MQW2SJLT.js +0 -2
  401. package/dist/cli/chunks/rvf-native-adapter-LKFKTMUN.js +0 -2
  402. package/dist/cli/chunks/safe-db-G22E5ROA.js +0 -2
  403. package/dist/cli/chunks/schedule-Y7VVCPYV.js +0 -2
  404. package/dist/cli/chunks/scheduler-AUQIFQB7.js +0 -2
  405. package/dist/cli/chunks/shared-rvf-dual-writer-BVSCQAFS.js +0 -2
  406. package/dist/cli/chunks/sqlite-persistence-JAVHUGGL.js +0 -2
  407. package/dist/cli/chunks/task-handlers-P5DSUKND.js +0 -2
  408. package/dist/cli/chunks/token-bootstrap-4VJKGVMK.js +0 -2
  409. package/dist/cli/chunks/transformers-GY7SIKEU.js +0 -2
  410. package/dist/cli/chunks/types-QJGNBKP2.js +0 -2
  411. package/dist/cli/chunks/unified-memory-XYGENQUT.js +0 -2
  412. package/dist/cli/chunks/unified-memory-hnsw-MVEGQBF3.js +0 -2
  413. package/dist/cli/chunks/unified-persistence-PFRCWEUG.js +0 -2
  414. package/dist/cli/chunks/visual-security-V47BLGJM.js +0 -2
  415. package/dist/cli/chunks/witness-chain-BR63P4A7.js +0 -2
  416. package/dist/cli/chunks/workflow-orchestrator-7PZMX3JZ.js +0 -2
@@ -14,6 +14,9 @@
14
14
  */
15
15
  import { v4 as uuidv4 } from 'uuid';
16
16
  import { LoggerFactory } from '../../logging/index.js';
17
+ // ADR-062: Meta-learning integration
18
+ import { MetaLearningEngine, DEFAULT_META_LEARNING_CONFIG, } from '../aqe-learning-engine.js';
19
+ import { LearningMetricsTracker, } from '../metrics-tracker.js';
17
20
  const logger = LoggerFactory.create('DreamScheduler');
18
21
  /**
19
22
  * Default DreamScheduler configuration
@@ -94,6 +97,14 @@ export class DreamScheduler {
94
97
  subscriptions = [];
95
98
  // Last result
96
99
  lastDreamResult = null;
100
+ // ADR-062: Meta-learning integration
101
+ metaLearningEngine;
102
+ metaLearningSnapshots = [];
103
+ metricsTracker = null;
104
+ static MAX_META_SNAPSHOTS = 20;
105
+ /** Queryable store of detected meta-learning insights (Gap 1: persist, not just log) */
106
+ detectedInsights = [];
107
+ static MAX_DETECTED_INSIGHTS = 100;
97
108
  /**
98
109
  * Create a new DreamScheduler instance.
99
110
  *
@@ -113,6 +124,8 @@ export class DreamScheduler {
113
124
  this.eventBus = dependencies.eventBus;
114
125
  this.memoryBackend = dependencies.memoryBackend;
115
126
  this.config = { ...DEFAULT_DREAM_SCHEDULER_CONFIG, ...config };
127
+ // ADR-062: Initialize meta-learning engine
128
+ this.metaLearningEngine = new MetaLearningEngine();
116
129
  }
117
130
  // ==========================================================================
118
131
  // Lifecycle Methods
@@ -177,6 +190,11 @@ export class DreamScheduler {
177
190
  subscription.unsubscribe();
178
191
  }
179
192
  this.subscriptions = [];
193
+ // Close meta-learning metrics tracker if initialized
194
+ if (this.metricsTracker) {
195
+ this.metricsTracker.close();
196
+ this.metricsTracker = null;
197
+ }
180
198
  // Save state before disposing
181
199
  await this.saveState();
182
200
  this.initialized = false;
@@ -288,6 +306,21 @@ export class DreamScheduler {
288
306
  getLastDreamResult() {
289
307
  return this.lastDreamResult;
290
308
  }
309
+ /**
310
+ * Return all detected meta-learning insights (most recent first).
311
+ *
312
+ * Gap 1 fix: insights are now stored in-memory rather than only logged,
313
+ * making them queryable by other subsystems (e.g., PatternStore consumers,
314
+ * quality gates, or dashboards).
315
+ *
316
+ * @param limit - Maximum number of insights to return (default: all)
317
+ * @returns Array of MetaInsight objects, newest first
318
+ */
319
+ getMetaInsights(limit) {
320
+ // Return newest first (reverse of insertion order)
321
+ const reversed = [...this.detectedInsights].reverse();
322
+ return limit !== undefined ? reversed.slice(0, limit) : reversed;
323
+ }
291
324
  // ==========================================================================
292
325
  // Private: Dream Execution
293
326
  // ==========================================================================
@@ -320,6 +353,18 @@ export class DreamScheduler {
320
353
  }
321
354
  // Publish dream completed event
322
355
  await this.publishDreamCompletedEvent(result);
356
+ // ADR-062: Run meta-learning analysis after dream cycle
357
+ if (process.env.AQE_META_LEARNING_ENABLED === 'true') {
358
+ try {
359
+ await this.runPostDreamMetaLearning();
360
+ }
361
+ catch (metaErr) {
362
+ // Meta-learning failure must never break dream cycles
363
+ logger.warn('Post-dream meta-learning failed (non-critical)', {
364
+ error: metaErr instanceof Error ? metaErr.message : String(metaErr),
365
+ });
366
+ }
367
+ }
323
368
  // Reschedule next dream if running
324
369
  if (this.running) {
325
370
  this.scheduleNextDream();
@@ -350,6 +395,81 @@ export class DreamScheduler {
350
395
  }
351
396
  }
352
397
  // ==========================================================================
398
+ // Private: Meta-Learning (ADR-062)
399
+ // ==========================================================================
400
+ /**
401
+ * Collect a metrics snapshot and, if enough have accumulated, run a
402
+ * meta-learning analysis cycle to detect token-waste, quality plateaus,
403
+ * learning stalls, and performance regressions.
404
+ */
405
+ async runPostDreamMetaLearning() {
406
+ // Lazily initialize the metrics tracker
407
+ if (!this.metricsTracker) {
408
+ this.metricsTracker = new LearningMetricsTracker();
409
+ await this.metricsTracker.initialize();
410
+ }
411
+ // Collect a unified snapshot
412
+ const snapshot = await this.metricsTracker.collectUnifiedSnapshot();
413
+ this.metaLearningSnapshots.push(snapshot);
414
+ // Cap the buffer at MAX_META_SNAPSHOTS (keep most recent)
415
+ while (this.metaLearningSnapshots.length > DreamScheduler.MAX_META_SNAPSHOTS) {
416
+ this.metaLearningSnapshots.shift();
417
+ }
418
+ // Run meta-learning if we have enough snapshots
419
+ const minRequired = DEFAULT_META_LEARNING_CONFIG.minSnapshotsForAnalysis;
420
+ if (this.metaLearningSnapshots.length >= minRequired) {
421
+ const insights = this.metaLearningEngine.runMetaLearningCycle(this.metaLearningSnapshots);
422
+ if (insights.length > 0) {
423
+ logger.info('Meta-learning insights detected', {
424
+ count: insights.length,
425
+ types: insights.map(i => i.type),
426
+ });
427
+ // Gap 1: Store insights in queryable in-memory buffer (not just logs)
428
+ for (const insight of insights) {
429
+ logger.info(`Meta-insight [${insight.type}]: ${insight.description}`, {
430
+ confidence: insight.confidence.toFixed(2),
431
+ suggestedAction: insight.suggestedAction,
432
+ });
433
+ this.detectedInsights.push(insight);
434
+ }
435
+ // Cap the insights buffer at MAX_DETECTED_INSIGHTS (keep most recent)
436
+ while (this.detectedInsights.length > DreamScheduler.MAX_DETECTED_INSIGHTS) {
437
+ this.detectedInsights.shift();
438
+ }
439
+ // Publish event so other subsystems can react to meta-learning insights
440
+ try {
441
+ this.eventBus.publish({
442
+ id: uuidv4(),
443
+ type: 'meta-learning.insight-detected',
444
+ timestamp: new Date(),
445
+ source: 'learning-optimization',
446
+ payload: {
447
+ count: insights.length,
448
+ insights: insights.map(i => ({
449
+ id: i.id,
450
+ type: i.type,
451
+ description: i.description,
452
+ confidence: i.confidence,
453
+ suggestedAction: i.suggestedAction,
454
+ detectedAt: i.detectedAt,
455
+ })),
456
+ },
457
+ });
458
+ }
459
+ catch {
460
+ // Event publishing is best-effort; insight storage above is the primary mechanism
461
+ logger.debug('Failed to publish meta-learning insight event');
462
+ }
463
+ }
464
+ }
465
+ else {
466
+ logger.debug('Meta-learning: accumulating snapshots', {
467
+ current: this.metaLearningSnapshots.length,
468
+ required: minRequired,
469
+ });
470
+ }
471
+ }
472
+ // ==========================================================================
353
473
  // Private: Scheduling
354
474
  // ==========================================================================
355
475
  /**
@@ -102,7 +102,8 @@ export declare class RVCOWBranchManager {
102
102
  private listeners;
103
103
  /** Optional RVF native adapter for COW fork snapshots of dream state */
104
104
  private rvfAdapter?;
105
- /** When true and rvfAdapter is set, createBranch() also forks an RVF snapshot */
105
+ /** When true and rvfAdapter is set, createBranch() also forks an RVF snapshot.
106
+ * Driven by isRVFPatternStoreEnabled() feature flag when adapter is present. */
106
107
  private useRvfFork;
107
108
  /** Optional witness chain for audit trail of branch operations (ADR-070) */
108
109
  private _witnessChain;
@@ -110,8 +111,8 @@ export declare class RVCOWBranchManager {
110
111
  constructor(db: DatabaseType, thresholds?: ValidationThresholds);
111
112
  /**
112
113
  * Set an RVF native adapter for supplementary COW fork snapshots.
113
- * When set with useRvfFork=true, createBranch() will additionally
114
- * fork a portable .rvf snapshot alongside the SQLite savepoint.
114
+ * When set, useRvfFork is driven by the isRVFPatternStoreEnabled()
115
+ * feature flag (defaults to the explicit param if flag check fails).
115
116
  * SQLite savepoints remain the primary branching mechanism.
116
117
  */
117
118
  setRvfAdapter(adapter: any, useRvfFork?: boolean): void;
@@ -168,6 +169,8 @@ export declare class RVCOWBranchManager {
168
169
  */
169
170
  captureBaseline(): QualityBaseline;
170
171
  private ensureBranchActive;
172
+ /** Clean up RVF branch file and child adapter (ADR-069) */
173
+ private cleanupRvfBranch;
171
174
  private sanitizeSavepointName;
172
175
  private emit;
173
176
  }
@@ -15,6 +15,7 @@
15
15
  *
16
16
  * @module learning/dream/rvcow-branch-manager
17
17
  */
18
+ import { existsSync, unlinkSync } from 'fs';
18
19
  /** Default validation thresholds */
19
20
  export const DEFAULT_VALIDATION_THRESHOLDS = {
20
21
  maxPatternCountDrop: 0.05,
@@ -48,7 +49,8 @@ export class RVCOWBranchManager {
48
49
  /** Optional RVF native adapter for COW fork snapshots of dream state */
49
50
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
50
51
  rvfAdapter;
51
- /** When true and rvfAdapter is set, createBranch() also forks an RVF snapshot */
52
+ /** When true and rvfAdapter is set, createBranch() also forks an RVF snapshot.
53
+ * Driven by isRVFPatternStoreEnabled() feature flag when adapter is present. */
52
54
  useRvfFork = false;
53
55
  /** Optional witness chain for audit trail of branch operations (ADR-070) */
54
56
  _witnessChain = null;
@@ -59,14 +61,23 @@ export class RVCOWBranchManager {
59
61
  }
60
62
  /**
61
63
  * Set an RVF native adapter for supplementary COW fork snapshots.
62
- * When set with useRvfFork=true, createBranch() will additionally
63
- * fork a portable .rvf snapshot alongside the SQLite savepoint.
64
+ * When set, useRvfFork is driven by the isRVFPatternStoreEnabled()
65
+ * feature flag (defaults to the explicit param if flag check fails).
64
66
  * SQLite savepoints remain the primary branching mechanism.
65
67
  */
66
68
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
67
69
  setRvfAdapter(adapter, useRvfFork = true) {
68
70
  this.rvfAdapter = adapter;
71
+ // ADR-069: Link to feature flag so RVF fork follows the same toggle.
72
+ // Use dynamic import() for ESM safety; fall back to explicit param.
69
73
  this.useRvfFork = useRvfFork;
74
+ import('../../integrations/ruvector/feature-flags.js')
75
+ .then(({ isRVFPatternStoreEnabled }) => {
76
+ this.useRvfFork = isRVFPatternStoreEnabled();
77
+ })
78
+ .catch(() => {
79
+ // Keep the explicit useRvfFork param value
80
+ });
70
81
  }
71
82
  // --------------------------------------------------------------------------
72
83
  // Branch Lifecycle
@@ -95,10 +106,15 @@ export class RVCOWBranchManager {
95
106
  status: 'active',
96
107
  baselineSnapshot: baseline,
97
108
  };
98
- // Supplementary RVF fork for portable brain snapshots (when configured)
109
+ // ADR-069: RVF COW branch for true isolation (when configured)
110
+ // Creates a lightweight derived .rvf alongside the SQLite savepoint
99
111
  if (this.rvfAdapter && this.useRvfFork) {
100
112
  try {
101
- this.rvfAdapter.fork(`/tmp/dream-branch-${name}.rvf`);
113
+ const branchPath = `/tmp/dream-branch-${safeName}.rvf`;
114
+ const childAdapter = this.rvfAdapter.derive(branchPath);
115
+ const branchExt = branch;
116
+ branchExt._rvfBranchPath = branchPath;
117
+ branchExt._rvfChildAdapter = childAdapter;
102
118
  }
103
119
  catch {
104
120
  // RVF fork is best-effort — SQLite savepoint is the primary mechanism
@@ -153,6 +169,25 @@ export class RVCOWBranchManager {
153
169
  `(${(lossFraction * 100).toFixed(1)}%, threshold: ${(this.thresholds.maxHighConfidenceLoss * 100).toFixed(1)}%)`);
154
170
  }
155
171
  }
172
+ // Check 4 (ADR-069): Search recall comparison — verify dream didn't degrade retrieval
173
+ if (this.rvfAdapter && this.useRvfFork && base.patternCount > 0) {
174
+ try {
175
+ const dim = this.rvfAdapter.dimension?.() ?? 384;
176
+ // Run a benchmark query with a random-ish vector
177
+ const benchQuery = new Float32Array(dim);
178
+ for (let i = 0; i < dim; i++)
179
+ benchQuery[i] = Math.sin(i * 0.1);
180
+ const preResults = this.rvfAdapter.search?.(benchQuery, 10) ?? [];
181
+ // If search returns fewer results post-dream, recall may have degraded
182
+ if (preResults.length < Math.min(5, base.patternCount)) {
183
+ reasons.push(`Search recall degraded: only ${preResults.length} results returned (expected ≥${Math.min(5, base.patternCount)})`);
184
+ // Advisory — don't fail the gate for recall alone
185
+ }
186
+ }
187
+ catch {
188
+ // Recall check is advisory — don't block on errors
189
+ }
190
+ }
156
191
  const reason = passed
157
192
  ? 'All quality checks passed'
158
193
  : `Validation failed: ${reasons.join('; ')}`;
@@ -177,6 +212,7 @@ export class RVCOWBranchManager {
177
212
  this.db.exec(`RELEASE SAVEPOINT "${safeName}"`);
178
213
  branch.status = 'merged';
179
214
  this.activeBranches.delete(branch.name);
215
+ this.cleanupRvfBranch(branch);
180
216
  this.emit('dream:branch_merged', branch);
181
217
  try {
182
218
  this._witnessChain?.append('BRANCH_MERGE', {
@@ -199,6 +235,7 @@ export class RVCOWBranchManager {
199
235
  this.db.exec(`RELEASE SAVEPOINT "${safeName}"`);
200
236
  branch.status = 'discarded';
201
237
  this.activeBranches.delete(branch.name);
238
+ this.cleanupRvfBranch(branch);
202
239
  this.emit('dream:branch_discarded', branch);
203
240
  }
204
241
  /**
@@ -254,6 +291,24 @@ export class RVCOWBranchManager {
254
291
  throw new Error(`Branch '${name}' is ${branch.status}, not active`);
255
292
  }
256
293
  }
294
+ /** Clean up RVF branch file and child adapter (ADR-069) */
295
+ cleanupRvfBranch(branch) {
296
+ const ext = branch;
297
+ // Close child adapter if present
298
+ try {
299
+ const child = ext._rvfChildAdapter;
300
+ child?.close?.();
301
+ }
302
+ catch { /* best effort */ }
303
+ // Delete the temp .rvf file
304
+ try {
305
+ const branchPath = ext._rvfBranchPath;
306
+ if (branchPath && existsSync(branchPath)) {
307
+ unlinkSync(branchPath);
308
+ }
309
+ }
310
+ catch { /* best effort */ }
311
+ }
257
312
  sanitizeSavepointName(name) {
258
313
  // Replace non-alphanumeric characters (except hyphens/underscores) with underscores
259
314
  return name.replace(/[^a-zA-Z0-9_-]/g, '_');
@@ -16,7 +16,7 @@ import type { MemoryBackend, EventBus } from '../kernel/interfaces.js';
16
16
  import type { Result } from '../shared/types/index.js';
17
17
  import type { WitnessChain } from '../governance/witness-chain.js';
18
18
  import type { QEDomain } from './qe-patterns.js';
19
- import type { PatternStore } from './pattern-store.js';
19
+ import type { IPatternStore } from './pattern-store.js';
20
20
  /**
21
21
  * Test outcome categories for binary reward assignment (GRPO-inspired).
22
22
  * Maps discrete test outcomes to reward signals for pattern learning.
@@ -169,7 +169,7 @@ export declare class ExperienceCaptureService {
169
169
  private sessionCaptureCount;
170
170
  /** Optional witness chain for attaching audit receipts to experiences */
171
171
  private witnessChain?;
172
- constructor(memory: MemoryBackend, patternStore?: PatternStore | undefined, eventBus?: EventBus | undefined, config?: Partial<ExperienceCaptureConfig>);
172
+ constructor(memory: MemoryBackend, patternStore?: IPatternStore | undefined, eventBus?: EventBus | undefined, config?: Partial<ExperienceCaptureConfig>);
173
173
  /**
174
174
  * Set the witness chain for attaching audit receipts to captured experiences.
175
175
  * Only creates witness records when the useWitnessChain feature flag is enabled.
@@ -324,5 +324,5 @@ export declare class ExperienceCaptureService {
324
324
  /**
325
325
  * Create experience capture service
326
326
  */
327
- export declare function createExperienceCaptureService(memory: MemoryBackend, patternStore?: PatternStore, eventBus?: EventBus, config?: Partial<ExperienceCaptureConfig>): ExperienceCaptureService;
327
+ export declare function createExperienceCaptureService(memory: MemoryBackend, patternStore?: IPatternStore, eventBus?: EventBus, config?: Partial<ExperienceCaptureConfig>): ExperienceCaptureService;
328
328
  //# sourceMappingURL=experience-capture.d.ts.map
@@ -0,0 +1,82 @@
1
+ /**
2
+ * Hyperbolic Pattern Index — HyperbolicHNSW wrapper for pattern search
3
+ * ADR-087, R14: Poincare ball embeddings for hierarchical pattern data
4
+ *
5
+ * Provides an optional hyperbolic search backend for PatternStore.
6
+ * When enabled (via feature flag), patterns with embeddings are indexed
7
+ * into a Poincare ball HNSW structure that naturally preserves
8
+ * parent-child / hierarchical relationships in distance metrics.
9
+ *
10
+ * This is a standalone wrapper to avoid conflicts with other PatternStore
11
+ * modifications (HDC fingerprinting, delta event sourcing, etc.).
12
+ */
13
+ import { type HyperbolicConfig } from '../integrations/ruvector/hyperbolic-hnsw.js';
14
+ export interface HyperbolicPatternResult {
15
+ /** Pattern ID */
16
+ patternId: string;
17
+ /** Hyperbolic (Poincare) distance — lower is more similar */
18
+ distance: number;
19
+ /** Metadata stored alongside the point */
20
+ metadata?: Record<string, unknown>;
21
+ }
22
+ /**
23
+ * Wraps HyperbolicHNSW for pattern-store integration.
24
+ *
25
+ * Lazy-initialized: the underlying HNSW index is only created when the
26
+ * feature flag `useHyperbolicHnsw` is true. All public methods are
27
+ * safe to call when disabled — they return empty results or no-op.
28
+ */
29
+ export declare class HyperbolicPatternIndex {
30
+ private index;
31
+ private initialized;
32
+ private readonly config;
33
+ constructor(config?: Partial<HyperbolicConfig>);
34
+ /**
35
+ * Lazily initialize the hyperbolic index if the feature flag is enabled.
36
+ * Safe to call multiple times — only initializes once.
37
+ *
38
+ * @returns true if the index is available for use
39
+ */
40
+ ensureInitialized(): boolean;
41
+ /**
42
+ * Whether the hyperbolic index is currently available.
43
+ */
44
+ get isAvailable(): boolean;
45
+ /**
46
+ * Index a pattern's embedding into the hyperbolic space.
47
+ *
48
+ * The embedding is projected from Euclidean into the Poincare ball
49
+ * automatically by HyperbolicHNSW.insert().
50
+ *
51
+ * @param patternId - Unique pattern identifier
52
+ * @param embedding - Euclidean embedding vector (will be projected to Poincare ball)
53
+ * @param metadata - Optional metadata to store alongside the point
54
+ */
55
+ indexPattern(patternId: string, embedding: number[] | Float32Array, metadata?: Record<string, unknown>): void;
56
+ /**
57
+ * Search for nearest patterns in hyperbolic space.
58
+ *
59
+ * @param query - Query embedding (Euclidean; will be projected to Poincare ball)
60
+ * @param k - Number of nearest neighbors to return
61
+ * @returns Array of results sorted by ascending hyperbolic distance
62
+ */
63
+ search(query: Float32Array | number[], k: number): HyperbolicPatternResult[];
64
+ /**
65
+ * Get index statistics.
66
+ */
67
+ getStats(): {
68
+ elementCount: number;
69
+ dimensions: number;
70
+ curvature: number;
71
+ } | null;
72
+ /**
73
+ * Reset the index (for testing / dispose).
74
+ */
75
+ reset(): void;
76
+ }
77
+ /**
78
+ * Create a HyperbolicPatternIndex with the given config.
79
+ * The index is lazy — it won't allocate until ensureInitialized() is called.
80
+ */
81
+ export declare function createHyperbolicPatternIndex(config?: Partial<HyperbolicConfig>): HyperbolicPatternIndex;
82
+ //# sourceMappingURL=hyperbolic-pattern-index.d.ts.map
@@ -0,0 +1,142 @@
1
+ /**
2
+ * Hyperbolic Pattern Index — HyperbolicHNSW wrapper for pattern search
3
+ * ADR-087, R14: Poincare ball embeddings for hierarchical pattern data
4
+ *
5
+ * Provides an optional hyperbolic search backend for PatternStore.
6
+ * When enabled (via feature flag), patterns with embeddings are indexed
7
+ * into a Poincare ball HNSW structure that naturally preserves
8
+ * parent-child / hierarchical relationships in distance metrics.
9
+ *
10
+ * This is a standalone wrapper to avoid conflicts with other PatternStore
11
+ * modifications (HDC fingerprinting, delta event sourcing, etc.).
12
+ */
13
+ import { createHyperbolicHNSW, PoincareOperations, } from '../integrations/ruvector/hyperbolic-hnsw.js';
14
+ import { isHyperbolicHnswEnabled } from '../integrations/ruvector/feature-flags.js';
15
+ // ============================================================================
16
+ // Hyperbolic Pattern Index
17
+ // ============================================================================
18
+ /**
19
+ * Wraps HyperbolicHNSW for pattern-store integration.
20
+ *
21
+ * Lazy-initialized: the underlying HNSW index is only created when the
22
+ * feature flag `useHyperbolicHnsw` is true. All public methods are
23
+ * safe to call when disabled — they return empty results or no-op.
24
+ */
25
+ export class HyperbolicPatternIndex {
26
+ index = null;
27
+ initialized = false;
28
+ config;
29
+ constructor(config) {
30
+ this.config = config ?? {};
31
+ }
32
+ /**
33
+ * Lazily initialize the hyperbolic index if the feature flag is enabled.
34
+ * Safe to call multiple times — only initializes once.
35
+ *
36
+ * @returns true if the index is available for use
37
+ */
38
+ ensureInitialized() {
39
+ if (this.initialized) {
40
+ return this.index !== null;
41
+ }
42
+ this.initialized = true;
43
+ if (!isHyperbolicHnswEnabled()) {
44
+ return false;
45
+ }
46
+ try {
47
+ this.index = createHyperbolicHNSW(this.config);
48
+ return this.index !== null;
49
+ }
50
+ catch (error) {
51
+ console.warn('[HyperbolicPatternIndex] Failed to create HyperbolicHNSW:', error instanceof Error ? error.message : error);
52
+ this.index = null;
53
+ return false;
54
+ }
55
+ }
56
+ /**
57
+ * Whether the hyperbolic index is currently available.
58
+ */
59
+ get isAvailable() {
60
+ return this.index !== null;
61
+ }
62
+ /**
63
+ * Index a pattern's embedding into the hyperbolic space.
64
+ *
65
+ * The embedding is projected from Euclidean into the Poincare ball
66
+ * automatically by HyperbolicHNSW.insert().
67
+ *
68
+ * @param patternId - Unique pattern identifier
69
+ * @param embedding - Euclidean embedding vector (will be projected to Poincare ball)
70
+ * @param metadata - Optional metadata to store alongside the point
71
+ */
72
+ indexPattern(patternId, embedding, metadata) {
73
+ if (!this.ensureInitialized() || !this.index)
74
+ return;
75
+ try {
76
+ const coords = embedding instanceof Float32Array
77
+ ? embedding
78
+ : new Float32Array(embedding);
79
+ // Project Euclidean embedding into Poincare ball before insertion
80
+ const hyperbolicCoords = PoincareOperations.euclideanToHyperbolic(coords);
81
+ this.index.insert(patternId, hyperbolicCoords, metadata);
82
+ }
83
+ catch (error) {
84
+ // Non-fatal: dimension mismatch or capacity exceeded
85
+ console.debug(`[HyperbolicPatternIndex] Failed to index pattern ${patternId}:`, error instanceof Error ? error.message : error);
86
+ }
87
+ }
88
+ /**
89
+ * Search for nearest patterns in hyperbolic space.
90
+ *
91
+ * @param query - Query embedding (Euclidean; will be projected to Poincare ball)
92
+ * @param k - Number of nearest neighbors to return
93
+ * @returns Array of results sorted by ascending hyperbolic distance
94
+ */
95
+ search(query, k) {
96
+ if (!this.ensureInitialized() || !this.index)
97
+ return [];
98
+ try {
99
+ const coords = query instanceof Float32Array
100
+ ? query
101
+ : new Float32Array(query);
102
+ // Project query into Poincare ball
103
+ const hyperbolicQuery = PoincareOperations.euclideanToHyperbolic(coords);
104
+ const results = this.index.search(hyperbolicQuery, k);
105
+ return results.map(r => ({
106
+ patternId: r.id,
107
+ distance: r.distance,
108
+ metadata: r.point.metadata,
109
+ }));
110
+ }
111
+ catch (error) {
112
+ console.warn('[HyperbolicPatternIndex] Search failed:', error instanceof Error ? error.message : error);
113
+ return [];
114
+ }
115
+ }
116
+ /**
117
+ * Get index statistics.
118
+ */
119
+ getStats() {
120
+ if (!this.index)
121
+ return null;
122
+ return this.index.getStats();
123
+ }
124
+ /**
125
+ * Reset the index (for testing / dispose).
126
+ */
127
+ reset() {
128
+ this.index = null;
129
+ this.initialized = false;
130
+ }
131
+ }
132
+ // ============================================================================
133
+ // Factory
134
+ // ============================================================================
135
+ /**
136
+ * Create a HyperbolicPatternIndex with the given config.
137
+ * The index is lazy — it won't allocate until ensureInitialized() is called.
138
+ */
139
+ export function createHyperbolicPatternIndex(config) {
140
+ return new HyperbolicPatternIndex(config);
141
+ }
142
+ //# sourceMappingURL=hyperbolic-pattern-index.js.map
@@ -61,8 +61,8 @@ export { TokenMetricsCollector, TokenMetricsCollectorImpl, formatCostUsd, estima
61
61
  export type { TokenUsage, TaskTokenMetric, AgentTokenMetrics, SessionTokenSummary, TokenEfficiencyReport, Timeframe, TokenCostConfig, } from './token-tracker.js';
62
62
  export { ConceptGraph, createConceptGraph, DEFAULT_CONCEPT_GRAPH_CONFIG, } from './dream/index.js';
63
63
  export type { ConceptType, EdgeType, InsightType, DreamCycleStatus, ConceptNode, CreateConceptNodeInput, ConceptEdge, CreateEdgeInput, DreamCycle, DreamInsight, ConceptGraphStats, ConceptGraphConfig, PatternImportData, NeighborResult, } from './dream/index.js';
64
- export { AQELearningEngine, createAQELearningEngine, createDefaultLearningEngine, DEFAULT_ENGINE_CONFIG, } from './aqe-learning-engine.js';
65
- export type { AQELearningEngineConfig, AQELearningEngineStatus, AQELearningEngineStats, TaskExecution, TaskStep, } from './aqe-learning-engine.js';
64
+ export { AQELearningEngine, createAQELearningEngine, createDefaultLearningEngine, DEFAULT_ENGINE_CONFIG, MetaLearningEngine, DEFAULT_META_LEARNING_CONFIG, } from './aqe-learning-engine.js';
65
+ export type { AQELearningEngineConfig, AQELearningEngineStatus, AQELearningEngineStats, TaskExecution, TaskStep, MetaLearningConfig, MetaInsight, } from './aqe-learning-engine.js';
66
66
  export { ExperienceCaptureService, createExperienceCaptureService, DEFAULT_EXPERIENCE_CONFIG, } from './experience-capture.js';
67
67
  export type { TaskExperience, ExperienceStep, ExperienceCaptureConfig, ExperienceCaptureStats, PatternExtractionResult, } from './experience-capture.js';
68
68
  export { CausalVerifier, createCausalVerifier, createUninitializedCausalVerifier, } from './causal-verifier.js';
@@ -76,7 +76,7 @@ export type { PatternLifecycleConfig, ExperienceAggregate, PatternCandidate, Pro
76
76
  export { generateRemediationHints, findCommonKeywords, } from './opd-remediation.js';
77
77
  export type { RemediationHint, RemediationCategory, RemediationConfig, PatternInput, ExecutionRecord, } from './opd-remediation.js';
78
78
  export { LearningMetricsTracker, createLearningMetricsTracker, } from './metrics-tracker.js';
79
- export type { LearningMetricsSnapshot, DashboardData, } from './metrics-tracker.js';
79
+ export type { LearningMetricsSnapshot, DashboardData, UnifiedMetricsSnapshot, } from './metrics-tracker.js';
80
80
  export { RegretTracker, createRegretTracker, linearRegressionSlope, } from './regret-tracker.js';
81
81
  export type { RegretPoint, GrowthRate, DomainHealthSummary, RegretAlert, RegretAlertCallback, } from './regret-tracker.js';
82
82
  export { DailyLogger } from './daily-log.js';
@@ -112,7 +112,7 @@ DEFAULT_CONCEPT_GRAPH_CONFIG, } from './dream/index.js';
112
112
  // ============================================================================
113
113
  // Unified AQE Learning Engine (Standalone with CF Enhancement)
114
114
  // ============================================================================
115
- export { AQELearningEngine, createAQELearningEngine, createDefaultLearningEngine, DEFAULT_ENGINE_CONFIG, } from './aqe-learning-engine.js';
115
+ export { AQELearningEngine, createAQELearningEngine, createDefaultLearningEngine, DEFAULT_ENGINE_CONFIG, MetaLearningEngine, DEFAULT_META_LEARNING_CONFIG, } from './aqe-learning-engine.js';
116
116
  // ============================================================================
117
117
  // Experience Capture (Phase 4: Self-Learning)
118
118
  // ============================================================================
@@ -14,6 +14,42 @@
14
14
  */
15
15
  import type { QEDomain } from './qe-patterns.js';
16
16
  import type { DomainHealthSummary } from './regret-tracker.js';
17
+ /**
18
+ * Unified metrics snapshot across all AQE subsystems (ADR-062 Tier 3 Action 6).
19
+ *
20
+ * Gathers token, quality, learning, and performance metrics into a single
21
+ * point-in-time structure for meta-learning trend analysis.
22
+ */
23
+ export interface UnifiedMetricsSnapshot {
24
+ /** Epoch-ms timestamp when the snapshot was taken */
25
+ timestamp: number;
26
+ /** Token usage and cost metrics */
27
+ tokenMetrics: {
28
+ totalTokens: number;
29
+ costUsd: number;
30
+ savingsUsd: number;
31
+ cacheHitRate: number;
32
+ };
33
+ /** Quality gate metrics */
34
+ qualityMetrics: {
35
+ gatePassRate: number;
36
+ averageScore: number;
37
+ ratchetLevel: number;
38
+ };
39
+ /** Learning / pattern-store metrics */
40
+ learningMetrics: {
41
+ patternCount: number;
42
+ averageConfidence: number;
43
+ quarantinedCount: number;
44
+ transferSuccessRate: number;
45
+ };
46
+ /** Runtime performance metrics */
47
+ performanceMetrics: {
48
+ avgLatencyMs: number;
49
+ p95LatencyMs: number;
50
+ errorRate: number;
51
+ };
52
+ }
17
53
  /**
18
54
  * Learning metrics snapshot
19
55
  */
@@ -132,6 +168,14 @@ export declare class LearningMetricsTracker {
132
168
  * @returns Dashboard data with regret health attached
133
169
  */
134
170
  getDashboardDataWithRegret(regretHealth?: DomainHealthSummary[]): Promise<DashboardData>;
171
+ /**
172
+ * Collect a unified metrics snapshot across all subsystems (ADR-062).
173
+ *
174
+ * Gathers token, quality, learning, and performance data into a single
175
+ * point-in-time structure suitable for meta-learning trend analysis.
176
+ * Uses sensible zero-defaults when a subsystem is unavailable.
177
+ */
178
+ collectUnifiedSnapshot(): Promise<UnifiedMetricsSnapshot>;
135
179
  /**
136
180
  * Close the database connection
137
181
  */