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.
- package/.claude/skills/skills-manifest.json +1 -1
- package/CHANGELOG.md +43 -0
- package/dist/audit/witness-chain.d.ts +1 -1
- package/dist/cli/bundle.js +8 -8
- package/dist/cli/chunks/adapter-53WBPKXU.js +2 -0
- package/dist/cli/chunks/{agent-booster-wasm-PQYB7VRU.js → agent-booster-wasm-AKAOHSCX.js} +2 -2
- package/dist/cli/chunks/{agent-handler-QDAB5NQS.js → agent-handler-MTGPOUVP.js} +2 -2
- package/dist/cli/chunks/agent-memory-branch-UFPKWUFK.js +2 -0
- package/dist/cli/chunks/aqe-learning-engine-MV7NGY24.js +2 -0
- package/dist/cli/chunks/{audit-S7JUYYVP.js → audit-VBEZHNHO.js} +2 -2
- package/dist/cli/chunks/base-DZVGMQN2.js +2 -0
- package/dist/cli/chunks/better-sqlite3-IRPHIXRU.js +2 -0
- package/dist/cli/chunks/brain-handler-7EO3FFRZ.js +68 -0
- package/dist/cli/chunks/{branch-enumerator-XK4V5W7L.js → branch-enumerator-MZRGP35N.js} +2 -2
- package/dist/cli/chunks/{browser-PALA5PL3.js → browser-VSIWQE7J.js} +2 -2
- package/dist/cli/chunks/browser-workflow-3J5YNMEI.js +2 -0
- package/dist/cli/chunks/chunk-25LFUL2K.js +79 -0
- package/dist/cli/chunks/{chunk-LHJQD2VU.js → chunk-2EC5Z2J4.js} +68 -68
- package/dist/cli/chunks/{chunk-4YOMLWEK.js → chunk-2VVV73PW.js} +1 -1
- package/dist/cli/chunks/{chunk-BPWXXEH2.js → chunk-2WBCYSUN.js} +128 -128
- package/dist/cli/chunks/{chunk-X3KI6JOY.js → chunk-2Z2TFEOL.js} +2 -2
- package/dist/cli/chunks/chunk-34U7JDCN.js +2 -0
- package/dist/cli/chunks/{chunk-24FKIJNC.js → chunk-3GZKAORV.js} +2 -2
- package/dist/cli/chunks/{chunk-72WOAVK6.js → chunk-4D2ZG2QO.js} +1 -1
- package/dist/cli/chunks/{chunk-B36CDR4U.js → chunk-4DAOZQ3V.js} +2 -2
- package/dist/cli/chunks/{chunk-CL6POIX4.js → chunk-4FMHBBG5.js} +1 -1
- package/dist/cli/chunks/{chunk-BXAXGEFC.js → chunk-4FT3PND7.js} +5 -5
- package/dist/cli/chunks/{chunk-IGJPMN4I.js → chunk-4LA7IW3V.js} +1 -1
- package/dist/cli/chunks/{chunk-JRYGQO2W.js → chunk-4PKXIBX2.js} +1 -1
- package/dist/cli/chunks/{chunk-YPFOCNOE.js → chunk-4UH25U4O.js} +1 -1
- package/dist/cli/chunks/{chunk-U5RN7YQW.js → chunk-4Z27TRQF.js} +2 -2
- package/dist/cli/chunks/{chunk-YW2THB5Q.js → chunk-563PJBDM.js} +2 -2
- package/dist/cli/chunks/{chunk-BDIEMZ22.js → chunk-56IWS2KY.js} +2 -2
- package/dist/cli/chunks/chunk-5AUKULWO.js +2 -0
- package/dist/cli/chunks/{chunk-VSVXUTJN.js → chunk-5L6AU3QK.js} +2 -2
- package/dist/cli/chunks/{chunk-RTGGL7D7.js → chunk-5RL66XSH.js} +2 -2
- package/dist/cli/chunks/{chunk-YANUP2RO.js → chunk-65M7C6SH.js} +1 -1
- package/dist/cli/chunks/{chunk-ESVQ6MEB.js → chunk-6SOJVEU7.js} +2 -2
- package/dist/cli/chunks/{chunk-UFUVUO3J.js → chunk-727BDQ3K.js} +2 -2
- package/dist/cli/chunks/{chunk-TLHP5EII.js → chunk-7NOIIC7G.js} +1 -1
- package/dist/cli/chunks/{chunk-N4TL73TH.js → chunk-7SLN2JGP.js} +8 -8
- package/dist/cli/chunks/{chunk-NZ2VCPN4.js → chunk-AA33R5U4.js} +2 -2
- package/dist/cli/chunks/{chunk-Y7BHKZFJ.js → chunk-AKSJQ6B3.js} +2 -2
- package/dist/cli/chunks/{chunk-3ZOONQG6.js → chunk-BIVIPF4O.js} +1 -1
- package/dist/cli/chunks/{chunk-VOS4NQSF.js → chunk-BKCTNRC5.js} +2 -2
- package/dist/cli/chunks/{chunk-B6LLWYQ6.js → chunk-BOH22AKC.js} +2 -2
- package/dist/cli/chunks/{chunk-OI5NGQO2.js → chunk-BY47GV4T.js} +2 -2
- package/dist/cli/chunks/chunk-CCYMJKWX.js +2 -0
- package/dist/cli/chunks/chunk-CL3K5EJK.js +2 -0
- package/dist/cli/chunks/{chunk-GPQ57KA4.js → chunk-CQBSGYRA.js} +2 -2
- package/dist/cli/chunks/{chunk-MZOFWJTM.js → chunk-CQP7ZFME.js} +2 -2
- package/dist/cli/chunks/chunk-DBE34QES.js +2 -0
- package/dist/cli/chunks/chunk-DHE66JRR.js +12 -0
- package/dist/cli/chunks/{chunk-2BZFNEN2.js → chunk-DNLMZTE2.js} +1 -1
- package/dist/cli/chunks/{chunk-XLRQYLWW.js → chunk-DSE57A5N.js} +1 -1
- package/dist/cli/chunks/{chunk-SUSEVMZT.js → chunk-E25S5E2D.js} +1 -1
- package/dist/cli/chunks/{chunk-FEKY7T6Q.js → chunk-FAXVVLPL.js} +2 -2
- package/dist/cli/chunks/chunk-FRJLP7IB.js +2 -0
- package/dist/cli/chunks/{chunk-CS2KS7LP.js → chunk-FUIHWBVF.js} +1 -1
- package/dist/cli/chunks/{chunk-LNQIY6BP.js → chunk-GCMVJS5X.js} +2 -2
- package/dist/cli/chunks/{chunk-XT2V2322.js → chunk-GITD7SRQ.js} +2 -2
- package/dist/cli/chunks/{chunk-JJO7Y4H3.js → chunk-GK72GUHA.js} +3 -3
- package/dist/cli/chunks/{chunk-6EOS7KX2.js → chunk-GPLERTZU.js} +2 -2
- package/dist/cli/chunks/{chunk-2E5NQNSU.js → chunk-HW4ISY5B.js} +11 -11
- package/dist/cli/chunks/{chunk-HRO6OZQD.js → chunk-ICDXWIFZ.js} +1 -1
- package/dist/cli/chunks/{chunk-3NZLZHJI.js → chunk-J4BS6IWE.js} +1 -1
- package/dist/cli/chunks/{chunk-4VUPRTVX.js → chunk-JOVINE23.js} +2 -2
- package/dist/cli/chunks/chunk-JV7LX6OT.js +95 -0
- package/dist/cli/chunks/{chunk-6SVX4DJC.js → chunk-KBA7FBK3.js} +3 -3
- package/dist/cli/chunks/chunk-KDDZYXP4.js +2 -0
- package/dist/cli/chunks/{chunk-GAOJV3OX.js → chunk-KNVAAVHH.js} +2 -2
- package/dist/cli/chunks/{chunk-CWFB6BSA.js → chunk-KQTJ2YLI.js} +4 -4
- package/dist/cli/chunks/{chunk-FGA7VIFR.js → chunk-KTYUCZEM.js} +3 -3
- package/dist/cli/chunks/{chunk-RU5WAHB7.js → chunk-KZTO5EVM.js} +2 -2
- package/dist/cli/chunks/{chunk-IFNIIK34.js → chunk-KZUJBZ7B.js} +3 -3
- package/dist/cli/chunks/{chunk-GKNNSCLC.js → chunk-L5WZUPZF.js} +2 -2
- package/dist/cli/chunks/{chunk-MDUHYUHF.js → chunk-L5YEPSDU.js} +2 -2
- package/dist/cli/chunks/chunk-LCAA6H4J.js +2 -0
- package/dist/cli/chunks/{chunk-XRE2HCWG.js → chunk-LMMEUVE5.js} +1 -1
- package/dist/cli/chunks/{chunk-7VDBAVTY.js → chunk-MN742FIH.js} +2 -2
- package/dist/cli/chunks/chunk-MY4LMIG7.js +180 -0
- package/dist/cli/chunks/{chunk-WGMPEW2T.js → chunk-N3F3CX4V.js} +2 -2
- package/dist/cli/chunks/{chunk-YVA65UZL.js → chunk-NJY7ZA77.js} +1 -1
- package/dist/cli/chunks/{chunk-3IHG3WOY.js → chunk-NM6TIEJ3.js} +3 -3
- package/dist/cli/chunks/{chunk-KP5NUODU.js → chunk-NRCKGXJJ.js} +1 -1
- package/dist/cli/chunks/{chunk-3ADGXLTM.js → chunk-PFNFC43Q.js} +1 -1
- package/dist/cli/chunks/{chunk-4VBTXZRM.js → chunk-PJFLO37I.js} +2 -2
- package/dist/cli/chunks/{chunk-XIBDETCS.js → chunk-PNL5G6TE.js} +2 -2
- package/dist/cli/chunks/{chunk-AFLLQ5PP.js → chunk-Q4A72ZTV.js} +2 -2
- package/dist/cli/chunks/{chunk-EHDQJQ6Y.js → chunk-QEQTC4WQ.js} +5 -5
- package/dist/cli/chunks/{chunk-IAV2JMIX.js → chunk-QIH3E775.js} +2 -2
- package/dist/cli/chunks/{chunk-GRUUQAR6.js → chunk-QNBQBSAI.js} +2 -2
- package/dist/cli/chunks/{chunk-WIEC7VKK.js → chunk-QODE4LM6.js} +2 -2
- package/dist/cli/chunks/{chunk-HY6PMO5W.js → chunk-QPRVX4H2.js} +2 -2
- package/dist/cli/chunks/chunk-RC5CPXON.js +2 -0
- package/dist/cli/chunks/{chunk-TWUWL5EJ.js → chunk-RITN3XR4.js} +2 -2
- package/dist/cli/chunks/{chunk-WBQSXPBI.js → chunk-RJROC5M3.js} +2 -2
- package/dist/cli/chunks/chunk-RQGYJK7H.js +2 -0
- package/dist/cli/chunks/{chunk-XO6PVK2P.js → chunk-S3RDH5CI.js} +2 -2
- package/dist/cli/chunks/{chunk-3IUNFTIF.js → chunk-SCF7NRVE.js} +1 -1
- package/dist/cli/chunks/chunk-SDTVHR63.js +2 -0
- package/dist/cli/chunks/chunk-SGAW2WLI.js +65 -0
- package/dist/cli/chunks/{chunk-N2NS2PHA.js → chunk-SNVM4YJS.js} +2 -2
- package/dist/cli/chunks/{chunk-JXM26HEE.js → chunk-SRRFWTNF.js} +2 -2
- package/dist/cli/chunks/{chunk-UQHYFOBX.js → chunk-STE42EMB.js} +2 -2
- package/dist/cli/chunks/{chunk-WJ3DLOXF.js → chunk-T5GV6UIO.js} +2 -2
- package/dist/cli/chunks/{chunk-4YS3IJ45.js → chunk-TKF447CW.js} +1 -1
- package/dist/cli/chunks/{chunk-ZAPS3UGQ.js → chunk-TTOE336G.js} +3 -3
- package/dist/cli/chunks/{chunk-YAGODYIG.js → chunk-UKDOMLBI.js} +3 -3
- package/dist/cli/chunks/{chunk-JBANAPWG.js → chunk-V6XBAZNH.js} +1 -1
- package/dist/cli/chunks/{chunk-BULKFVYX.js → chunk-VHVWAXCF.js} +1 -1
- package/dist/cli/chunks/{chunk-5SKGFSKD.js → chunk-VL7YOOC2.js} +2 -2
- package/dist/cli/chunks/{chunk-AKE543X2.js → chunk-VUAO4VFC.js} +2 -2
- package/dist/cli/chunks/{chunk-7R6YMLVS.js → chunk-WG4GHAML.js} +2 -2
- package/dist/cli/chunks/{chunk-BTREG4IW.js → chunk-WXWY2GAF.js} +2 -2
- package/dist/cli/chunks/chunk-X35GP7TR.js +1 -0
- package/dist/cli/chunks/chunk-X6LCMOGC.js +2 -0
- package/dist/cli/chunks/{chunk-BGXNSCXX.js → chunk-XFMKJ3UD.js} +1 -1
- package/dist/cli/chunks/{chunk-BLBRY5UD.js → chunk-XH53ARZD.js} +2 -2
- package/dist/cli/chunks/chunk-XIBVVZGB.js +2 -0
- package/dist/cli/chunks/chunk-XYJL6DKI.js +2 -0
- package/dist/cli/chunks/{chunk-5T2ZQWKF.js → chunk-Y6O7CDLI.js} +2 -2
- package/dist/cli/chunks/{chunk-4I2IOUS4.js → chunk-YXCU4CJX.js} +1 -1
- package/dist/cli/chunks/{chunk-YR6ZZGH7.js → chunk-Z2IKNC5M.js} +1 -1
- package/dist/cli/chunks/{chunk-OLHKGP35.js → chunk-Z54EO6E6.js} +2 -2
- package/dist/cli/chunks/{chunk-ZDATDCYN.js → chunk-Z5HXGVXZ.js} +1 -1
- package/dist/cli/chunks/{ci-J374KDLI.js → ci-2BCOBWFG.js} +2 -2
- package/dist/cli/chunks/ci-output-FB4OJHAC.js +2 -0
- package/dist/cli/chunks/{claude-flow-setup-245JLJCN.js → claude-flow-setup-NEEFZTMB.js} +2 -2
- package/dist/cli/chunks/client-EF555KYW.js +2 -0
- package/dist/cli/chunks/{cline-installer-LBA2M5N3.js → cline-installer-ODO2PS4K.js} +2 -2
- package/dist/cli/chunks/{code-U4N4WONM.js → code-NSOF62VE.js} +2 -2
- package/dist/cli/chunks/{code-index-extractor-A57Z6BO4.js → code-index-extractor-YQL5XN52.js} +2 -2
- package/dist/cli/chunks/{codex-installer-UXMK2N4T.js → codex-installer-SPEY6VYT.js} +2 -2
- package/dist/cli/chunks/{completions-W66BSCOE.js → completions-OWKBUMBE.js} +2 -2
- package/dist/cli/chunks/complexity-analyzer-PGTXKP73.js +2 -0
- package/dist/cli/chunks/{continuedev-installer-LRFZ2SJM.js → continuedev-installer-KGOXAC7L.js} +2 -2
- package/dist/cli/chunks/{copilot-installer-CQ3JYBIB.js → copilot-installer-BF3UA3TG.js} +2 -2
- package/dist/cli/chunks/cost-tracker-2HDJ66E2.js +2 -0
- package/dist/cli/chunks/{coverage-4PUEQXAY.js → coverage-KPA2PHIN.js} +3 -3
- package/dist/cli/chunks/cross-domain-router-GXFNK5TS.js +2 -0
- package/dist/cli/chunks/{cursor-installer-JZEDEDHA.js → cursor-installer-7CDZFHTV.js} +2 -2
- package/dist/cli/chunks/{daemon-B7TWGHXQ.js → daemon-4BPGCKDJ.js} +3 -3
- package/dist/cli/chunks/dag-attention-scheduler-2MAVGSBB.js +2 -0
- package/dist/cli/chunks/detect-WRPWTGP5.js +2 -0
- package/dist/cli/chunks/{domain-handler-FT5FLZWL.js → domain-handler-JZVSJ7AG.js} +2 -2
- package/dist/cli/chunks/domain-transfer-XGIZOR2X.js +2 -0
- package/dist/cli/chunks/dream-3IKF5XH4.js +2 -0
- package/dist/cli/chunks/esm-node-DHAE52OW.js +2 -0
- package/dist/cli/chunks/{eval-GHMPFGWV.js → eval-T7YPAS4G.js} +2 -2
- package/dist/cli/chunks/{fast-paths-B3R647KN.js → fast-paths-QECJTKCQ.js} +2 -2
- package/dist/cli/chunks/{feature-flags-DWS7ARSX.js → feature-flags-LIFURSFZ.js} +2 -2
- package/dist/cli/chunks/feature-flags-R4QZYTIW.js +2 -0
- package/dist/cli/chunks/file-discovery-4W3K3W4C.js +2 -0
- package/dist/cli/chunks/{fleet-EKOKMOMW.js → fleet-NLLQWCI5.js} +3 -3
- package/dist/cli/chunks/gnn-wrapper-XEII72LN.js +2 -0
- package/dist/cli/chunks/{heartbeat-handler-MBBS4IBU.js → heartbeat-handler-DJ65RE5D.js} +4 -4
- package/dist/cli/chunks/{heartbeat-scheduler-XDGMOT7X.js → heartbeat-scheduler-H664265Q.js} +2 -2
- package/dist/cli/chunks/hnsw-adapter-DML5KXQR.js +2 -0
- package/dist/cli/chunks/hnsw-index-BUPPGVR6.js +2 -0
- package/dist/cli/chunks/hnsw-legacy-bridge-SQIDTWAA.js +2 -0
- package/dist/cli/chunks/hnswlib-node-WICYCU5U.js +2 -0
- package/dist/cli/chunks/{hooks-L5VLZGEK.js → hooks-GZUHUD63.js} +6 -6
- package/dist/cli/chunks/hypergraph-engine-MLCDZ6BL.js +2 -0
- package/dist/cli/chunks/{hypergraph-handler-3HDGB5SZ.js → hypergraph-handler-NNDDI4R3.js} +3 -3
- package/dist/cli/chunks/impact-analyzer-DPTMJRYS.js +2 -0
- package/dist/cli/chunks/{init-handler-JDET6WUN.js → init-handler-IJ6BHE6A.js} +6 -6
- package/dist/cli/chunks/init-wizard-35PUDJPW.js +2 -0
- package/dist/cli/chunks/kernel-2HZ44ZJ4.js +2 -0
- package/dist/cli/chunks/{kilocode-installer-GZZG5AFW.js → kilocode-installer-EPZFFPFE.js} +2 -2
- package/dist/cli/chunks/{kiro-installer-IWNY5TKH.js → kiro-installer-5VACG3HU.js} +2 -2
- package/dist/cli/chunks/knowledge-graph-JL62G72U.js +2 -0
- package/dist/cli/chunks/{learning-722ZNSZ6.js → learning-6FITK6XY.js} +3 -3
- package/dist/cli/chunks/{llm-router-DNAV746L.js → llm-router-4DDC6AKJ.js} +2 -2
- package/dist/cli/chunks/{load-Y3GCUFM4.js → load-KGDNVUBX.js} +2 -2
- package/dist/cli/chunks/load-test-LN245SSD.js +2 -0
- package/dist/cli/chunks/{mcp-LKPIBZ3W.js → mcp-4LETGVIV.js} +2 -2
- package/dist/cli/chunks/{memory-L57MLFOP.js → memory-II4I4QMO.js} +5 -5
- package/dist/cli/chunks/memory-backend-SVM7YRIE.js +2 -0
- package/dist/cli/chunks/memory-handlers-TQXTOJGQ.js +2 -0
- package/dist/cli/chunks/opencode-installer-EU6JCWBW.js +3 -0
- package/dist/cli/chunks/{orchestrator-QHSBB2UC.js → orchestrator-YLMGJVSP.js} +5 -5
- package/dist/cli/chunks/{pipeline-D3QER35Z.js → pipeline-MPZJWYKK.js} +2 -2
- package/dist/cli/chunks/{platform-T4E7Q3RD.js → platform-YH35ZZFZ.js} +2 -2
- package/dist/cli/chunks/{plugin-JHW2YPRC.js → plugin-B7JYZFNQ.js} +2 -2
- package/dist/cli/chunks/{prime-radiant-advanced-wasm-G7CFNNQV.js → prime-radiant-advanced-wasm-KTUK6UE2.js} +2 -2
- package/dist/cli/chunks/protocol-executor-IEN2XB4L.js +2 -0
- package/dist/cli/chunks/{protocol-handler-2BQQ4HDM.js → protocol-handler-3NXMVU34.js} +2 -2
- package/dist/cli/chunks/{prove-UQ6JFT73.js → prove-H5LMGSUC.js} +2 -2
- package/dist/cli/chunks/qe-reasoning-bank-Q3ZV3JRG.js +2 -0
- package/dist/cli/chunks/{quality-JRZYMC77.js → quality-RCWHY6GO.js} +2 -2
- package/dist/cli/chunks/queen-coordinator-E6ON3JUR.js +2 -0
- package/dist/cli/chunks/real-embeddings-NKH4VURF.js +2 -0
- package/dist/cli/chunks/{roocode-installer-F4E2LAYR.js → roocode-installer-SB7QJYM3.js} +2 -2
- package/dist/cli/chunks/router-WMC3LZ3C.js +2 -0
- package/dist/cli/chunks/routing-feedback-VKCZRCE3.js +2 -0
- package/dist/cli/chunks/{routing-handler-VNKFUUGB.js → routing-handler-SY7GKG2W.js} +2 -2
- package/dist/cli/chunks/ruvector-commands-HATTO3UQ.js +8 -0
- package/dist/cli/chunks/rvf-dual-writer-D57EXQUD.js +2 -0
- package/dist/cli/chunks/rvf-migration-adapter-OWDYN6KD.js +2 -0
- package/dist/cli/chunks/rvf-migration-coordinator-SIQVJB5S.js +2 -0
- package/dist/cli/chunks/rvf-native-adapter-C7NBH5UN.js +2 -0
- package/dist/cli/chunks/safe-db-5KLXCNXN.js +2 -0
- package/dist/cli/chunks/schedule-HAWWOXWB.js +2 -0
- package/dist/cli/chunks/scheduler-HTRDY5BC.js +2 -0
- package/dist/cli/chunks/{security-EBEG2OPU.js → security-DS3XLZWN.js} +3 -3
- package/dist/cli/chunks/shared-rvf-adapter-6I2Z5UGL.js +2 -0
- package/dist/cli/chunks/shared-rvf-dual-writer-YB7AH6XJ.js +2 -0
- package/dist/cli/chunks/sqlite-persistence-WNNRGTGG.js +2 -0
- package/dist/cli/chunks/{status-handler-VZ32M4G4.js → status-handler-TUYHE4FT.js} +2 -2
- package/dist/cli/chunks/{structural-health-K6LRCKV6.js → structural-health-XNGBNRRD.js} +2 -2
- package/dist/cli/chunks/{sync-MHSHNLIM.js → sync-K6CIRKBB.js} +2 -2
- package/dist/cli/chunks/{task-handler-JNOIBZ2G.js → task-handler-7PJY67DR.js} +2 -2
- package/dist/cli/chunks/task-handlers-WB5CDWUR.js +2 -0
- package/dist/cli/chunks/{test-DO22BNIL.js → test-WV5ALEBB.js} +4 -4
- package/dist/cli/chunks/{test-scheduling-VLRQZEFL.js → test-scheduling-N55ZGGA2.js} +3 -3
- package/dist/cli/chunks/token-bootstrap-SINWHAKR.js +2 -0
- package/dist/cli/chunks/{token-usage-LG3PXRXH.js → token-usage-R7TGEVGL.js} +2 -2
- package/dist/cli/chunks/transformers-6DBLXPV7.js +2 -0
- package/dist/cli/chunks/{tree-sitter-wasm-parser-FT2KB66N.js → tree-sitter-wasm-parser-7C7FKMQW.js} +2 -2
- package/dist/cli/chunks/types-VNPMOKQT.js +2 -0
- package/dist/cli/chunks/unified-memory-72SKVZ7Y.js +2 -0
- package/dist/cli/chunks/unified-memory-hnsw-TMN2L77W.js +2 -0
- package/dist/cli/chunks/unified-persistence-MDN3SRCR.js +2 -0
- package/dist/cli/chunks/{validate-VQCRSVNQ.js → validate-53MNIRAF.js} +2 -2
- package/dist/cli/chunks/{validate-swarm-A5DHAWTP.js → validate-swarm-ZY4RGUFO.js} +2 -2
- package/dist/cli/chunks/{vibium-RZBSL4EB.js → vibium-PBADBIV6.js} +2 -2
- package/dist/cli/chunks/visual-security-TRBCXPIB.js +2 -0
- package/dist/cli/chunks/{web-tree-sitter-7C4NXEOF.js → web-tree-sitter-O7VI6RLB.js} +2 -2
- package/dist/cli/chunks/{windsurf-installer-ES3KPQG3.js → windsurf-installer-HV3C3TAD.js} +2 -2
- package/dist/cli/chunks/witness-chain-4WIMYP4X.js +2 -0
- package/dist/cli/chunks/witness-chain-JOI2YYGK.js +2 -0
- package/dist/cli/chunks/{workflow-JETHX4ML.js → workflow-5RVAQ4TM.js} +4 -4
- package/dist/cli/chunks/workflow-orchestrator-2NQ72S3C.js +2 -0
- package/dist/cli/chunks/{wrappers-WP5RH745.js → wrappers-RRHCCA3E.js} +2 -2
- package/dist/cli/commands/ruvector-commands.js +14 -2
- package/dist/cli/index.js +10 -15
- package/dist/coordination/agent-memory-branch.d.ts +117 -0
- package/dist/coordination/agent-memory-branch.js +213 -0
- package/dist/coordination/agent-teams/mailbox.d.ts +43 -0
- package/dist/coordination/agent-teams/mailbox.js +130 -4
- package/dist/coordination/handlers/handler-utils.d.ts +1 -0
- package/dist/coordination/handlers/handler-utils.js +9 -2
- package/dist/coordination/handlers/quality-handlers.js +7 -1
- package/dist/domains/contract-testing/coordinator.js +11 -0
- package/dist/domains/quality-assessment/coherence/gate-controller.d.ts +20 -1
- package/dist/domains/quality-assessment/coherence/gate-controller.js +64 -0
- package/dist/domains/quality-assessment/coherence/index.d.ts +3 -3
- package/dist/domains/quality-assessment/coherence/index.js +2 -2
- package/dist/domains/quality-assessment/coherence/types.d.ts +39 -0
- package/dist/domains/quality-assessment/coherence/types.js +11 -0
- package/dist/domains/quality-assessment/coordinator.d.ts +14 -0
- package/dist/domains/quality-assessment/coordinator.js +92 -0
- package/dist/domains/test-execution/coordinator.d.ts +19 -0
- package/dist/domains/test-execution/coordinator.js +102 -5
- package/dist/domains/test-generation/coordinator.js +11 -0
- package/dist/domains/test-generation/interfaces.d.ts +2 -0
- package/dist/domains/test-generation/services/test-generator.d.ts +9 -0
- package/dist/domains/test-generation/services/test-generator.js +37 -0
- package/dist/init/agents-installer.d.ts +5 -3
- package/dist/init/agents-installer.js +17 -43
- package/dist/init/find-package-root.d.ts +22 -0
- package/dist/init/find-package-root.js +46 -0
- package/dist/init/n8n-installer.d.ts +4 -2
- package/dist/init/n8n-installer.js +23 -23
- package/dist/init/opencode-installer.d.ts +0 -5
- package/dist/init/opencode-installer.js +12 -39
- package/dist/init/skills-installer.d.ts +5 -2
- package/dist/init/skills-installer.js +15 -37
- package/dist/integrations/embeddings/index/HNSWIndex.d.ts +9 -2
- package/dist/integrations/embeddings/index/HNSWIndex.js +110 -35
- package/dist/integrations/ruvector/cognitive-routing.d.ts +67 -0
- package/dist/integrations/ruvector/cognitive-routing.js +208 -0
- package/dist/integrations/ruvector/feature-flags.d.ts +84 -0
- package/dist/integrations/ruvector/feature-flags.js +59 -0
- package/dist/integrations/ruvector/hdc-fingerprint.d.ts +76 -0
- package/dist/integrations/ruvector/hdc-fingerprint.js +217 -0
- package/dist/integrations/ruvector/hyperbolic-hnsw.d.ts +59 -0
- package/dist/integrations/ruvector/hyperbolic-hnsw.js +194 -0
- package/dist/integrations/ruvector/index.d.ts +5 -2
- package/dist/integrations/ruvector/index.js +13 -2
- package/dist/integrations/ruvector/shared-rvf-adapter.d.ts +24 -0
- package/dist/integrations/ruvector/shared-rvf-adapter.js +55 -0
- package/dist/integrations/ruvector/shared-rvf-dual-writer.d.ts +6 -0
- package/dist/integrations/ruvector/shared-rvf-dual-writer.js +38 -0
- package/dist/integrations/ruvector/sona-persistence.d.ts +8 -0
- package/dist/integrations/ruvector/sona-persistence.js +10 -0
- package/dist/integrations/ruvector/vector-delta-tracker.d.ts +96 -0
- package/dist/integrations/ruvector/vector-delta-tracker.js +226 -0
- package/dist/kernel/agent-coordinator.d.ts +75 -1
- package/dist/kernel/agent-coordinator.js +250 -1
- package/dist/kernel/hnsw-legacy-bridge.d.ts +38 -0
- package/dist/kernel/hnsw-legacy-bridge.js +88 -0
- package/dist/kernel/hnsw-shadow-validator.d.ts +91 -0
- package/dist/kernel/hnsw-shadow-validator.js +139 -0
- package/dist/kernel/index.d.ts +1 -1
- package/dist/kernel/index.js +1 -1
- package/dist/kernel/interfaces.d.ts +39 -0
- package/dist/kernel/kernel.d.ts +23 -0
- package/dist/kernel/kernel.js +106 -1
- package/dist/kernel/unified-memory.d.ts +1 -1
- package/dist/kernel/unified-memory.js +7 -3
- package/dist/learning/aqe-learning-engine.d.ts +65 -0
- package/dist/learning/aqe-learning-engine.js +134 -0
- package/dist/learning/dream/dream-engine.d.ts +6 -1
- package/dist/learning/dream/dream-engine.js +37 -2
- package/dist/learning/dream/dream-scheduler.d.ts +25 -0
- package/dist/learning/dream/dream-scheduler.js +120 -0
- package/dist/learning/dream/rvcow-branch-manager.d.ts +6 -3
- package/dist/learning/dream/rvcow-branch-manager.js +60 -5
- package/dist/learning/experience-capture.d.ts +3 -3
- package/dist/learning/hyperbolic-pattern-index.d.ts +82 -0
- package/dist/learning/hyperbolic-pattern-index.js +142 -0
- package/dist/learning/index.d.ts +3 -3
- package/dist/learning/index.js +1 -1
- package/dist/learning/metrics-tracker.d.ts +44 -0
- package/dist/learning/metrics-tracker.js +37 -0
- package/dist/learning/pattern-promotion.d.ts +3 -3
- package/dist/learning/pattern-store.d.ts +45 -2
- package/dist/learning/pattern-store.js +239 -4
- package/dist/learning/qe-patterns.d.ts +1 -1
- package/dist/learning/qe-reasoning-bank.js +1 -1
- package/dist/learning/rvf-pattern-migration.d.ts +50 -0
- package/dist/learning/rvf-pattern-migration.js +106 -0
- package/dist/learning/rvf-pattern-store.d.ts +69 -0
- package/dist/learning/rvf-pattern-store.js +449 -0
- package/dist/mcp/bundle.js +1894 -1804
- package/dist/mcp/handlers/index.d.ts +1 -0
- package/dist/mcp/handlers/index.js +2 -0
- package/dist/mcp/handlers/migration-handlers.d.ts +52 -0
- package/dist/mcp/handlers/migration-handlers.js +85 -0
- package/dist/mcp/protocol-server.d.ts +1 -0
- package/dist/mcp/protocol-server.js +63 -2
- package/dist/mcp/types.d.ts +1 -1
- package/dist/optimization/early-exit-token-optimizer.d.ts +7 -7
- package/dist/optimization/early-exit-token-optimizer.js +3 -3
- package/dist/persistence/rvf-consistency-validator.d.ts +85 -0
- package/dist/persistence/rvf-consistency-validator.js +182 -0
- package/dist/persistence/rvf-migration-adapter.d.ts +125 -0
- package/dist/persistence/rvf-migration-adapter.js +303 -0
- package/dist/persistence/rvf-migration-coordinator.d.ts +115 -0
- package/dist/persistence/rvf-migration-coordinator.js +224 -0
- package/dist/persistence/rvf-stage-gate.d.ts +70 -0
- package/dist/persistence/rvf-stage-gate.js +163 -0
- package/package.json +10 -10
- package/dist/cli/chunks/adapter-WBR5NXS3.js +0 -2
- package/dist/cli/chunks/aqe-learning-engine-TK4JQCGT.js +0 -2
- package/dist/cli/chunks/base-2WXOSMBQ.js +0 -2
- package/dist/cli/chunks/better-sqlite3-7KY2RDXO.js +0 -2
- package/dist/cli/chunks/brain-handler-PPEGDCN4.js +0 -68
- package/dist/cli/chunks/browser-workflow-42F7GK5T.js +0 -2
- package/dist/cli/chunks/chunk-263XS447.js +0 -2
- package/dist/cli/chunks/chunk-2I7J3O6V.js +0 -2
- package/dist/cli/chunks/chunk-3JPRUND5.js +0 -2
- package/dist/cli/chunks/chunk-3THRQEZ2.js +0 -95
- package/dist/cli/chunks/chunk-4B6NCELM.js +0 -2
- package/dist/cli/chunks/chunk-62ADTHV7.js +0 -2
- package/dist/cli/chunks/chunk-BR26T7ZS.js +0 -180
- package/dist/cli/chunks/chunk-DRT3WKQW.js +0 -2
- package/dist/cli/chunks/chunk-FIA6X7UL.js +0 -2
- package/dist/cli/chunks/chunk-J3KWWR6Z.js +0 -1
- package/dist/cli/chunks/chunk-JZSDOIXA.js +0 -2
- package/dist/cli/chunks/chunk-MV6CMOJQ.js +0 -65
- package/dist/cli/chunks/chunk-N5UXCLFI.js +0 -2
- package/dist/cli/chunks/chunk-OF4D7MYI.js +0 -2
- package/dist/cli/chunks/chunk-QOVHWZEP.js +0 -1
- package/dist/cli/chunks/chunk-RFSN6IDA.js +0 -79
- package/dist/cli/chunks/chunk-X5IJGWYG.js +0 -2
- package/dist/cli/chunks/ci-output-7JN7F6CI.js +0 -2
- package/dist/cli/chunks/client-MCSNSH2C.js +0 -2
- package/dist/cli/chunks/complexity-analyzer-AB4OZARV.js +0 -2
- package/dist/cli/chunks/cost-tracker-4F723RB6.js +0 -2
- package/dist/cli/chunks/cross-domain-router-OWR5IJ5G.js +0 -2
- package/dist/cli/chunks/dag-attention-scheduler-JWO6XI6A.js +0 -2
- package/dist/cli/chunks/detect-L6ZZHUSX.js +0 -2
- package/dist/cli/chunks/domain-transfer-5Y4FGJAJ.js +0 -2
- package/dist/cli/chunks/dream-4TDBIYED.js +0 -2
- package/dist/cli/chunks/esm-node-2PKHKOTS.js +0 -2
- package/dist/cli/chunks/feature-flags-IVQ3AL4Q.js +0 -2
- package/dist/cli/chunks/file-discovery-QFPA6GMV.js +0 -2
- package/dist/cli/chunks/gnn-wrapper-OYC55N5E.js +0 -2
- package/dist/cli/chunks/hnsw-index-YO7CT23I.js +0 -2
- package/dist/cli/chunks/hnswlib-node-56YWVXFE.js +0 -2
- package/dist/cli/chunks/hypergraph-engine-A4Y2ZRAG.js +0 -2
- package/dist/cli/chunks/impact-analyzer-UEIGXSZ4.js +0 -2
- package/dist/cli/chunks/init-wizard-JWZUGIPJ.js +0 -2
- package/dist/cli/chunks/kernel-YNDTVKIW.js +0 -2
- package/dist/cli/chunks/knowledge-graph-NGJKFTSN.js +0 -2
- package/dist/cli/chunks/load-test-GZUBXFF3.js +0 -2
- package/dist/cli/chunks/memory-backend-3NQIZUXE.js +0 -2
- package/dist/cli/chunks/memory-handlers-MDZQ7HVW.js +0 -2
- package/dist/cli/chunks/opencode-installer-4HUB36H5.js +0 -3
- package/dist/cli/chunks/protocol-executor-SPUVRDWT.js +0 -2
- package/dist/cli/chunks/qe-reasoning-bank-3HBK2FVD.js +0 -2
- package/dist/cli/chunks/queen-coordinator-RW3NKO5A.js +0 -2
- package/dist/cli/chunks/real-embeddings-GK63VF35.js +0 -2
- package/dist/cli/chunks/router-RJGHWDQ3.js +0 -2
- package/dist/cli/chunks/routing-feedback-ZXBXFKX6.js +0 -2
- package/dist/cli/chunks/ruvector-commands-2TLNHC3A.js +0 -8
- package/dist/cli/chunks/rvf-dual-writer-MQW2SJLT.js +0 -2
- package/dist/cli/chunks/rvf-native-adapter-LKFKTMUN.js +0 -2
- package/dist/cli/chunks/safe-db-G22E5ROA.js +0 -2
- package/dist/cli/chunks/schedule-Y7VVCPYV.js +0 -2
- package/dist/cli/chunks/scheduler-AUQIFQB7.js +0 -2
- package/dist/cli/chunks/shared-rvf-dual-writer-BVSCQAFS.js +0 -2
- package/dist/cli/chunks/sqlite-persistence-JAVHUGGL.js +0 -2
- package/dist/cli/chunks/task-handlers-P5DSUKND.js +0 -2
- package/dist/cli/chunks/token-bootstrap-4VJKGVMK.js +0 -2
- package/dist/cli/chunks/transformers-GY7SIKEU.js +0 -2
- package/dist/cli/chunks/types-QJGNBKP2.js +0 -2
- package/dist/cli/chunks/unified-memory-XYGENQUT.js +0 -2
- package/dist/cli/chunks/unified-memory-hnsw-MVEGQBF3.js +0 -2
- package/dist/cli/chunks/unified-persistence-PFRCWEUG.js +0 -2
- package/dist/cli/chunks/visual-security-V47BLGJM.js +0 -2
- package/dist/cli/chunks/witness-chain-BR63P4A7.js +0 -2
- 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
|
|
114
|
-
*
|
|
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
|
|
63
|
-
*
|
|
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
|
-
//
|
|
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
|
-
|
|
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 {
|
|
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?:
|
|
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?:
|
|
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
|
package/dist/learning/index.d.ts
CHANGED
|
@@ -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';
|
package/dist/learning/index.js
CHANGED
|
@@ -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
|
*/
|