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
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RVF Migration Coordinator (ADR-072 Phase 3)
|
|
3
|
+
*
|
|
4
|
+
* Wires together RvfMigrationAdapter, RvfConsistencyValidator, and
|
|
5
|
+
* RvfStageGate into a single service that can be initialized during
|
|
6
|
+
* kernel boot and exposed via MCP tools.
|
|
7
|
+
*
|
|
8
|
+
* Lifecycle:
|
|
9
|
+
* 1. Kernel calls RvfMigrationCoordinator.initialize(db)
|
|
10
|
+
* 2. Coordinator reads stage from feature flags, attaches SQLite + RVF handles
|
|
11
|
+
* 3. MCP tools call getStatus(), runConsistencyCheck(), promote()
|
|
12
|
+
*
|
|
13
|
+
* @module persistence/rvf-migration-coordinator
|
|
14
|
+
*/
|
|
15
|
+
import { RvfMigrationAdapter, STAGE_NAMES } from './rvf-migration-adapter.js';
|
|
16
|
+
import { RvfConsistencyValidator } from './rvf-consistency-validator.js';
|
|
17
|
+
import { RvfStageGate } from './rvf-stage-gate.js';
|
|
18
|
+
// ============================================================================
|
|
19
|
+
// Singleton
|
|
20
|
+
// ============================================================================
|
|
21
|
+
let instance = null;
|
|
22
|
+
// ============================================================================
|
|
23
|
+
// RvfMigrationCoordinator
|
|
24
|
+
// ============================================================================
|
|
25
|
+
export class RvfMigrationCoordinator {
|
|
26
|
+
adapter;
|
|
27
|
+
validator;
|
|
28
|
+
gate;
|
|
29
|
+
currentStage;
|
|
30
|
+
initialized = false;
|
|
31
|
+
constructor(config) {
|
|
32
|
+
// Stage is set synchronously from config or default.
|
|
33
|
+
// Feature flags are read asynchronously in initialize().
|
|
34
|
+
this.currentStage = config?.stage ?? 1;
|
|
35
|
+
this.adapter = new RvfMigrationAdapter({
|
|
36
|
+
stage: this.currentStage,
|
|
37
|
+
rvfPath: config?.rvfPath ?? '.agentic-qe/patterns.rvf',
|
|
38
|
+
dimensions: config?.dimensions ?? 384,
|
|
39
|
+
enableFallback: true,
|
|
40
|
+
});
|
|
41
|
+
this.validator = new RvfConsistencyValidator({
|
|
42
|
+
sampleSize: 50,
|
|
43
|
+
windowDurationMs: 7 * 24 * 60 * 60 * 1000, // 7 days
|
|
44
|
+
compactionThreshold: 0.3,
|
|
45
|
+
scoreTolerance: 0.05,
|
|
46
|
+
});
|
|
47
|
+
this.gate = new RvfStageGate({
|
|
48
|
+
minChecksRequired: 10,
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
// --------------------------------------------------------------------------
|
|
52
|
+
// Initialization
|
|
53
|
+
// --------------------------------------------------------------------------
|
|
54
|
+
/**
|
|
55
|
+
* Attach the real SQLite database handle (from UnifiedMemoryManager).
|
|
56
|
+
* Called during kernel boot.
|
|
57
|
+
*/
|
|
58
|
+
attachSqliteDb(db) {
|
|
59
|
+
this.adapter.setSqliteDb(db);
|
|
60
|
+
this.validator.setSqliteDb(db);
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Attach the shared RVF store (from shared-rvf-adapter singleton).
|
|
64
|
+
* Called during kernel boot when native bindings are available.
|
|
65
|
+
*/
|
|
66
|
+
attachRvfStore(store) {
|
|
67
|
+
this.adapter.setRvfStore(store);
|
|
68
|
+
this.validator.setRvfStore(store);
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Attach a witness chain for audit trail of stage promotions.
|
|
72
|
+
*/
|
|
73
|
+
attachWitnessChain(wc) {
|
|
74
|
+
this.gate.setWitnessChain(wc);
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Full initialization: reads handles from running system.
|
|
78
|
+
*/
|
|
79
|
+
async initialize() {
|
|
80
|
+
if (this.initialized)
|
|
81
|
+
return;
|
|
82
|
+
// Read stage from feature flags (async import for ESM compatibility)
|
|
83
|
+
if (this.currentStage === 1) {
|
|
84
|
+
try {
|
|
85
|
+
const { getRvfMigrationStage } = await import('../integrations/ruvector/feature-flags.js');
|
|
86
|
+
const flagStage = getRvfMigrationStage();
|
|
87
|
+
this.currentStage = flagStage;
|
|
88
|
+
this.adapter.setStage(flagStage);
|
|
89
|
+
}
|
|
90
|
+
catch {
|
|
91
|
+
// Feature flags unavailable — keep constructor default
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
// Try to get SQLite handle from UnifiedMemoryManager
|
|
95
|
+
try {
|
|
96
|
+
const { UnifiedMemoryManager } = await import('../kernel/unified-memory.js');
|
|
97
|
+
const umm = UnifiedMemoryManager.getInstance();
|
|
98
|
+
await umm.initialize();
|
|
99
|
+
const db = umm.getDatabase();
|
|
100
|
+
if (db)
|
|
101
|
+
this.attachSqliteDb(db);
|
|
102
|
+
}
|
|
103
|
+
catch {
|
|
104
|
+
// UMM unavailable — adapter works without it (read/write ops return empty)
|
|
105
|
+
}
|
|
106
|
+
// Try to get shared RVF adapter
|
|
107
|
+
try {
|
|
108
|
+
const { getSharedRvfAdapter } = await import('../integrations/ruvector/shared-rvf-adapter.js');
|
|
109
|
+
const adapter = getSharedRvfAdapter();
|
|
110
|
+
if (adapter)
|
|
111
|
+
this.attachRvfStore(adapter);
|
|
112
|
+
}
|
|
113
|
+
catch {
|
|
114
|
+
// RVF native unavailable — adapter works without it
|
|
115
|
+
}
|
|
116
|
+
// Try to attach witness chain
|
|
117
|
+
try {
|
|
118
|
+
const { WitnessChain } = await import('../audit/witness-chain.js');
|
|
119
|
+
const wc = new WitnessChain();
|
|
120
|
+
await wc.initialize();
|
|
121
|
+
this.attachWitnessChain(wc);
|
|
122
|
+
}
|
|
123
|
+
catch {
|
|
124
|
+
// Witness chain is optional
|
|
125
|
+
}
|
|
126
|
+
this.initialized = true;
|
|
127
|
+
}
|
|
128
|
+
// --------------------------------------------------------------------------
|
|
129
|
+
// User-Facing Operations
|
|
130
|
+
// --------------------------------------------------------------------------
|
|
131
|
+
/**
|
|
132
|
+
* Get comprehensive migration status.
|
|
133
|
+
* This is the primary user-facing method — shows stage, metrics,
|
|
134
|
+
* consistency history, and gate evaluation at a glance.
|
|
135
|
+
*/
|
|
136
|
+
getStatus() {
|
|
137
|
+
const metrics = this.adapter.getMetrics();
|
|
138
|
+
const engineStatus = this.adapter.status();
|
|
139
|
+
const history = this.validator.getHistory();
|
|
140
|
+
const gateEvaluation = this.gate.evaluate(this.currentStage, this.validator, metrics);
|
|
141
|
+
return {
|
|
142
|
+
stage: this.currentStage,
|
|
143
|
+
stageName: STAGE_NAMES[this.currentStage],
|
|
144
|
+
metrics,
|
|
145
|
+
consistencyHistory: {
|
|
146
|
+
totalChecks: this.validator.getCheckCount(),
|
|
147
|
+
rollingDivergenceRate: this.validator.getRollingDivergenceRate(),
|
|
148
|
+
lastCheck: history.length > 0 ? history[history.length - 1] : null,
|
|
149
|
+
},
|
|
150
|
+
gateEvaluation,
|
|
151
|
+
engineStatus: {
|
|
152
|
+
sqliteVectorCount: engineStatus.sqlite.vectorCount,
|
|
153
|
+
rvfAvailable: engineStatus.rvf !== null,
|
|
154
|
+
rvfVectorCount: engineStatus.rvf?.totalVectors ?? null,
|
|
155
|
+
rvfDeadSpaceRatio: engineStatus.rvf?.deadSpaceRatio ?? null,
|
|
156
|
+
},
|
|
157
|
+
};
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Run a consistency check between SQLite and RVF.
|
|
161
|
+
* Returns the check result with divergence details.
|
|
162
|
+
*/
|
|
163
|
+
runConsistencyCheck() {
|
|
164
|
+
return this.validator.runCheck();
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Evaluate whether promotion to the next stage is allowed.
|
|
168
|
+
*/
|
|
169
|
+
evaluateGate() {
|
|
170
|
+
return this.gate.evaluate(this.currentStage, this.validator, this.adapter.getMetrics());
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Attempt to promote to the next migration stage.
|
|
174
|
+
*
|
|
175
|
+
* @param force - Skip gate checks (records forced promotion in witness chain)
|
|
176
|
+
* @returns Promotion result with new stage
|
|
177
|
+
*/
|
|
178
|
+
promote(force = false) {
|
|
179
|
+
const previousStage = this.currentStage;
|
|
180
|
+
const { promoted, newStage, result } = this.gate.promote(this.currentStage, this.validator, this.adapter.getMetrics(), force);
|
|
181
|
+
if (promoted) {
|
|
182
|
+
this.currentStage = newStage;
|
|
183
|
+
// Propagate to adapter so write/read routing uses the new stage
|
|
184
|
+
this.adapter.setStage(newStage);
|
|
185
|
+
// Note: The feature flag default is NOT mutated at runtime.
|
|
186
|
+
// The new stage is active for this process lifetime. To persist
|
|
187
|
+
// the promotion, update rvfMigrationStage in feature-flags.ts.
|
|
188
|
+
}
|
|
189
|
+
return { promoted, previousStage, newStage, result };
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
* Write a vector through the migration adapter.
|
|
193
|
+
* Used to verify dual-write routing at each stage.
|
|
194
|
+
*/
|
|
195
|
+
write(id, vector) {
|
|
196
|
+
return this.adapter.write(id, vector);
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Search through the migration adapter.
|
|
200
|
+
* Used to verify read routing at each stage.
|
|
201
|
+
*/
|
|
202
|
+
search(query, k) {
|
|
203
|
+
return this.adapter.search(query, k);
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* Get the underlying adapter (for advanced use / testing).
|
|
207
|
+
*/
|
|
208
|
+
getAdapter() {
|
|
209
|
+
return this.adapter;
|
|
210
|
+
}
|
|
211
|
+
// --------------------------------------------------------------------------
|
|
212
|
+
// Singleton
|
|
213
|
+
// --------------------------------------------------------------------------
|
|
214
|
+
static getInstance(config) {
|
|
215
|
+
if (!instance) {
|
|
216
|
+
instance = new RvfMigrationCoordinator(config);
|
|
217
|
+
}
|
|
218
|
+
return instance;
|
|
219
|
+
}
|
|
220
|
+
static resetInstance() {
|
|
221
|
+
instance = null;
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
//# sourceMappingURL=rvf-migration-coordinator.js.map
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RVF Stage Gate Enforcer (ADR-072)
|
|
3
|
+
*
|
|
4
|
+
* Enforces go/no-go criteria for promoting the RVF migration stage.
|
|
5
|
+
* Each stage transition has specific requirements that must be met
|
|
6
|
+
* before promotion is allowed.
|
|
7
|
+
*
|
|
8
|
+
* Stage gates (from ADR-072):
|
|
9
|
+
* Stage 2→3: divergence <0.01% over 7 days, RVF read latency <2x SQLite
|
|
10
|
+
* Stage 3→4: zero fallbacks over 14 days, RVF write latency <1.5x SQLite
|
|
11
|
+
*
|
|
12
|
+
* Supports manual override with witness chain recording for audit trail.
|
|
13
|
+
*
|
|
14
|
+
* @module persistence/rvf-stage-gate
|
|
15
|
+
*/
|
|
16
|
+
import type { MigrationStage, MigrationMetrics } from './rvf-migration-adapter.js';
|
|
17
|
+
import type { RvfConsistencyValidator } from './rvf-consistency-validator.js';
|
|
18
|
+
import type { WitnessChain } from '../audit/witness-chain.js';
|
|
19
|
+
export interface StageGateResult {
|
|
20
|
+
/** Whether promotion is allowed */
|
|
21
|
+
canPromote: boolean;
|
|
22
|
+
/** Current stage */
|
|
23
|
+
currentStage: MigrationStage;
|
|
24
|
+
/** Target stage */
|
|
25
|
+
targetStage: MigrationStage;
|
|
26
|
+
/** Individual gate check results */
|
|
27
|
+
checks: GateCheck[];
|
|
28
|
+
/** Human-readable summary */
|
|
29
|
+
summary: string;
|
|
30
|
+
}
|
|
31
|
+
export interface GateCheck {
|
|
32
|
+
name: string;
|
|
33
|
+
passed: boolean;
|
|
34
|
+
actual: string;
|
|
35
|
+
threshold: string;
|
|
36
|
+
}
|
|
37
|
+
export interface StageGateConfig {
|
|
38
|
+
/** Max divergence rate for stage 2→3 (default: 0.0001 = 0.01%) */
|
|
39
|
+
maxDivergenceRate2to3: number;
|
|
40
|
+
/** Max RVF/SQLite read latency ratio for stage 2→3 (default: 2.0) */
|
|
41
|
+
maxReadLatencyRatio2to3: number;
|
|
42
|
+
/** Max fallbacks allowed for stage 3→4 (default: 0) */
|
|
43
|
+
maxFallbacks3to4: number;
|
|
44
|
+
/** Max RVF/SQLite write latency ratio for stage 3→4 (default: 1.5) */
|
|
45
|
+
maxWriteLatencyRatio3to4: number;
|
|
46
|
+
/** Minimum checks required in window before gate can pass (default: 10) */
|
|
47
|
+
minChecksRequired: number;
|
|
48
|
+
}
|
|
49
|
+
export declare class RvfStageGate {
|
|
50
|
+
private readonly config;
|
|
51
|
+
private witnessChain;
|
|
52
|
+
constructor(config?: Partial<StageGateConfig>);
|
|
53
|
+
/** Attach witness chain for audit trail of promotions */
|
|
54
|
+
setWitnessChain(wc: WitnessChain): void;
|
|
55
|
+
/**
|
|
56
|
+
* Evaluate whether promotion from currentStage to currentStage+1 is allowed.
|
|
57
|
+
*/
|
|
58
|
+
evaluate(currentStage: MigrationStage, validator: RvfConsistencyValidator, metrics: MigrationMetrics): StageGateResult;
|
|
59
|
+
/**
|
|
60
|
+
* Attempt to promote to the next stage. Returns the new stage if successful.
|
|
61
|
+
* Records the promotion (or block) in the witness chain.
|
|
62
|
+
*/
|
|
63
|
+
promote(currentStage: MigrationStage, validator: RvfConsistencyValidator, metrics: MigrationMetrics, force?: boolean): {
|
|
64
|
+
promoted: boolean;
|
|
65
|
+
newStage: MigrationStage;
|
|
66
|
+
result: StageGateResult;
|
|
67
|
+
};
|
|
68
|
+
private recordWitness;
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=rvf-stage-gate.d.ts.map
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RVF Stage Gate Enforcer (ADR-072)
|
|
3
|
+
*
|
|
4
|
+
* Enforces go/no-go criteria for promoting the RVF migration stage.
|
|
5
|
+
* Each stage transition has specific requirements that must be met
|
|
6
|
+
* before promotion is allowed.
|
|
7
|
+
*
|
|
8
|
+
* Stage gates (from ADR-072):
|
|
9
|
+
* Stage 2→3: divergence <0.01% over 7 days, RVF read latency <2x SQLite
|
|
10
|
+
* Stage 3→4: zero fallbacks over 14 days, RVF write latency <1.5x SQLite
|
|
11
|
+
*
|
|
12
|
+
* Supports manual override with witness chain recording for audit trail.
|
|
13
|
+
*
|
|
14
|
+
* @module persistence/rvf-stage-gate
|
|
15
|
+
*/
|
|
16
|
+
const DEFAULT_CONFIG = {
|
|
17
|
+
maxDivergenceRate2to3: 0.0001, // 0.01%
|
|
18
|
+
maxReadLatencyRatio2to3: 2.0,
|
|
19
|
+
maxFallbacks3to4: 0,
|
|
20
|
+
maxWriteLatencyRatio3to4: 1.5,
|
|
21
|
+
minChecksRequired: 10,
|
|
22
|
+
};
|
|
23
|
+
// ============================================================================
|
|
24
|
+
// RvfStageGate
|
|
25
|
+
// ============================================================================
|
|
26
|
+
export class RvfStageGate {
|
|
27
|
+
config;
|
|
28
|
+
witnessChain = null;
|
|
29
|
+
constructor(config) {
|
|
30
|
+
this.config = { ...DEFAULT_CONFIG, ...config };
|
|
31
|
+
}
|
|
32
|
+
/** Attach witness chain for audit trail of promotions */
|
|
33
|
+
setWitnessChain(wc) {
|
|
34
|
+
this.witnessChain = wc;
|
|
35
|
+
}
|
|
36
|
+
// --------------------------------------------------------------------------
|
|
37
|
+
// Gate Evaluation
|
|
38
|
+
// --------------------------------------------------------------------------
|
|
39
|
+
/**
|
|
40
|
+
* Evaluate whether promotion from currentStage to currentStage+1 is allowed.
|
|
41
|
+
*/
|
|
42
|
+
evaluate(currentStage, validator, metrics) {
|
|
43
|
+
const targetStage = Math.min(currentStage + 1, 4);
|
|
44
|
+
if (currentStage >= 4) {
|
|
45
|
+
return {
|
|
46
|
+
canPromote: false,
|
|
47
|
+
currentStage,
|
|
48
|
+
targetStage: 4,
|
|
49
|
+
checks: [],
|
|
50
|
+
summary: 'Already at maximum stage (4: RVF primary)',
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
if (currentStage < 2) {
|
|
54
|
+
// Stages 0→1 and 1→2 don't have automated gates
|
|
55
|
+
return {
|
|
56
|
+
canPromote: true,
|
|
57
|
+
currentStage,
|
|
58
|
+
targetStage,
|
|
59
|
+
checks: [],
|
|
60
|
+
summary: `Stage ${currentStage}→${targetStage} has no automated gates — manual promotion allowed`,
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
const checks = [];
|
|
64
|
+
if (currentStage === 2) {
|
|
65
|
+
// Stage 2→3: divergence + read latency
|
|
66
|
+
const divergenceRate = validator.getRollingDivergenceRate();
|
|
67
|
+
const checkCount = validator.getCheckCount();
|
|
68
|
+
checks.push({
|
|
69
|
+
name: 'consistency-checks-count',
|
|
70
|
+
passed: checkCount >= this.config.minChecksRequired,
|
|
71
|
+
actual: `${checkCount} checks`,
|
|
72
|
+
threshold: `>= ${this.config.minChecksRequired} checks`,
|
|
73
|
+
});
|
|
74
|
+
checks.push({
|
|
75
|
+
name: 'divergence-rate',
|
|
76
|
+
passed: divergenceRate <= this.config.maxDivergenceRate2to3,
|
|
77
|
+
actual: `${(divergenceRate * 100).toFixed(4)}%`,
|
|
78
|
+
threshold: `<= ${(this.config.maxDivergenceRate2to3 * 100).toFixed(4)}%`,
|
|
79
|
+
});
|
|
80
|
+
const latencyRatio = metrics.sqliteReadLatencyAvgMs > 0
|
|
81
|
+
? metrics.rvfReadLatencyAvgMs / metrics.sqliteReadLatencyAvgMs
|
|
82
|
+
: 0;
|
|
83
|
+
checks.push({
|
|
84
|
+
name: 'read-latency-ratio',
|
|
85
|
+
passed: latencyRatio <= this.config.maxReadLatencyRatio2to3 || metrics.rvfReadLatencyAvgMs === 0,
|
|
86
|
+
actual: `${latencyRatio.toFixed(2)}x`,
|
|
87
|
+
threshold: `<= ${this.config.maxReadLatencyRatio2to3}x`,
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
if (currentStage === 3) {
|
|
91
|
+
// Stage 3→4: zero fallbacks + write latency
|
|
92
|
+
checks.push({
|
|
93
|
+
name: 'fallback-count',
|
|
94
|
+
passed: metrics.fallbacksUsed <= this.config.maxFallbacks3to4,
|
|
95
|
+
actual: `${metrics.fallbacksUsed} fallbacks`,
|
|
96
|
+
threshold: `<= ${this.config.maxFallbacks3to4} fallbacks`,
|
|
97
|
+
});
|
|
98
|
+
// Use write latency metrics when available, fall back to read latency as proxy
|
|
99
|
+
const sqliteWriteAvg = metrics.sqliteWriteLatencyAvgMs ?? metrics.sqliteReadLatencyAvgMs;
|
|
100
|
+
const rvfWriteAvg = metrics.rvfWriteLatencyAvgMs ?? metrics.rvfReadLatencyAvgMs;
|
|
101
|
+
const writeLatencyRatio = sqliteWriteAvg > 0 ? rvfWriteAvg / sqliteWriteAvg : 0;
|
|
102
|
+
checks.push({
|
|
103
|
+
name: 'write-latency-ratio',
|
|
104
|
+
passed: writeLatencyRatio <= this.config.maxWriteLatencyRatio3to4 || rvfWriteAvg === 0,
|
|
105
|
+
actual: `${writeLatencyRatio.toFixed(2)}x`,
|
|
106
|
+
threshold: `<= ${this.config.maxWriteLatencyRatio3to4}x`,
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
const canPromote = checks.length > 0 && checks.every(c => c.passed);
|
|
110
|
+
const failedChecks = checks.filter(c => !c.passed).map(c => c.name);
|
|
111
|
+
return {
|
|
112
|
+
canPromote,
|
|
113
|
+
currentStage,
|
|
114
|
+
targetStage,
|
|
115
|
+
checks,
|
|
116
|
+
summary: canPromote
|
|
117
|
+
? `All gates passed — safe to promote to stage ${targetStage}`
|
|
118
|
+
: `Blocked: ${failedChecks.join(', ')} failed`,
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
// --------------------------------------------------------------------------
|
|
122
|
+
// Promotion
|
|
123
|
+
// --------------------------------------------------------------------------
|
|
124
|
+
/**
|
|
125
|
+
* Attempt to promote to the next stage. Returns the new stage if successful.
|
|
126
|
+
* Records the promotion (or block) in the witness chain.
|
|
127
|
+
*/
|
|
128
|
+
promote(currentStage, validator, metrics, force = false) {
|
|
129
|
+
const result = this.evaluate(currentStage, validator, metrics);
|
|
130
|
+
if (!result.canPromote && !force) {
|
|
131
|
+
this.recordWitness('QUALITY_GATE_FAIL', {
|
|
132
|
+
action: 'stage-promotion-blocked',
|
|
133
|
+
from: currentStage,
|
|
134
|
+
to: result.targetStage,
|
|
135
|
+
failedChecks: result.checks.filter(c => !c.passed),
|
|
136
|
+
summary: result.summary,
|
|
137
|
+
});
|
|
138
|
+
return { promoted: false, newStage: currentStage, result };
|
|
139
|
+
}
|
|
140
|
+
const newStage = result.targetStage;
|
|
141
|
+
this.recordWitness(force ? 'QUALITY_GATE_PASS' : 'QUALITY_GATE_PASS', {
|
|
142
|
+
action: force ? 'stage-promotion-forced' : 'stage-promotion-approved',
|
|
143
|
+
from: currentStage,
|
|
144
|
+
to: newStage,
|
|
145
|
+
checks: result.checks,
|
|
146
|
+
forced: force,
|
|
147
|
+
summary: result.summary,
|
|
148
|
+
});
|
|
149
|
+
return { promoted: true, newStage, result };
|
|
150
|
+
}
|
|
151
|
+
// --------------------------------------------------------------------------
|
|
152
|
+
// Private
|
|
153
|
+
// --------------------------------------------------------------------------
|
|
154
|
+
recordWitness(actionType, data) {
|
|
155
|
+
try {
|
|
156
|
+
this.witnessChain?.append(actionType, data, 'rvf-stage-gate');
|
|
157
|
+
}
|
|
158
|
+
catch {
|
|
159
|
+
// Witness recording is best-effort
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
//# sourceMappingURL=rvf-stage-gate.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "agentic-qe",
|
|
3
|
-
"version": "3.9.
|
|
3
|
+
"version": "3.9.2",
|
|
4
4
|
"description": "Agentic Quality Engineering V3 - Domain-Driven Design Architecture with 13 Bounded Contexts, O(log n) coverage analysis, ReasoningBank learning, 60 specialized QE agents, mathematical Coherence verification, deep Claude Flow integration",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -130,7 +130,7 @@
|
|
|
130
130
|
"dependencies": {
|
|
131
131
|
"@claude-flow/guidance": "3.0.0-alpha.1",
|
|
132
132
|
"@ruvector/attention": "0.1.3",
|
|
133
|
-
"@ruvector/gnn": "0.1.
|
|
133
|
+
"@ruvector/gnn": "0.1.25",
|
|
134
134
|
"@ruvector/learning-wasm": "^0.1.29",
|
|
135
135
|
"@ruvector/router": "^0.1.28",
|
|
136
136
|
"@ruvector/rvf-node": "^0.1.7",
|
|
@@ -162,12 +162,12 @@
|
|
|
162
162
|
"@ruvector/attention-linux-arm64-musl": "npm:@ruvector/attention-linux-arm64-gnu@0.1.3",
|
|
163
163
|
"@ruvector/attention-linux-x64-gnu": "0.1.3",
|
|
164
164
|
"@ruvector/attention-linux-x64-musl": "npm:@ruvector/attention-linux-x64-gnu@0.1.3",
|
|
165
|
-
"@ruvector/gnn-darwin-arm64": "0.1.
|
|
166
|
-
"@ruvector/gnn-darwin-x64": "0.1.
|
|
167
|
-
"@ruvector/gnn-linux-arm64-gnu": "0.1.
|
|
168
|
-
"@ruvector/gnn-linux-arm64-musl": "npm:@ruvector/gnn-linux-arm64-gnu@0.1.
|
|
169
|
-
"@ruvector/gnn-linux-x64-gnu": "0.1.
|
|
170
|
-
"@ruvector/gnn-linux-x64-musl": "npm:@ruvector/gnn-linux-x64-gnu@0.1.
|
|
165
|
+
"@ruvector/gnn-darwin-arm64": "0.1.25",
|
|
166
|
+
"@ruvector/gnn-darwin-x64": "0.1.25",
|
|
167
|
+
"@ruvector/gnn-linux-arm64-gnu": "0.1.25",
|
|
168
|
+
"@ruvector/gnn-linux-arm64-musl": "npm:@ruvector/gnn-linux-arm64-gnu@0.1.25",
|
|
169
|
+
"@ruvector/gnn-linux-x64-gnu": "0.1.25",
|
|
170
|
+
"@ruvector/gnn-linux-x64-musl": "npm:@ruvector/gnn-linux-x64-gnu@0.1.25",
|
|
171
171
|
"@ruvector/tiny-dancer-linux-arm64-gnu": "^0.1.17",
|
|
172
172
|
"rvlite": "^0.2.4"
|
|
173
173
|
},
|
|
@@ -177,8 +177,8 @@
|
|
|
177
177
|
"tar": ">=7.5.7"
|
|
178
178
|
},
|
|
179
179
|
"overrides": {
|
|
180
|
-
"@ruvector/gnn-linux-x64-musl": "npm:@ruvector/gnn-linux-x64-gnu@0.1.
|
|
181
|
-
"@ruvector/gnn-linux-arm64-musl": "npm:@ruvector/gnn-linux-arm64-gnu@0.1.
|
|
180
|
+
"@ruvector/gnn-linux-x64-musl": "npm:@ruvector/gnn-linux-x64-gnu@0.1.25",
|
|
181
|
+
"@ruvector/gnn-linux-arm64-musl": "npm:@ruvector/gnn-linux-arm64-gnu@0.1.25",
|
|
182
182
|
"tar": ">=7.5.7",
|
|
183
183
|
"markdown-it": ">=14.1.1"
|
|
184
184
|
},
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.0");process.exit(0)}
|
|
2
|
-
import{a,b,c}from"./chunk-6SVX4DJC.js";import"./chunk-B6LLWYQ6.js";import"./chunk-72WOAVK6.js";import"./chunk-WGMPEW2T.js";import"./chunk-JZSDOIXA.js";import"./chunk-4I2IOUS4.js";export{a as AgentBoosterAdapter,b as createAgentBoosterAdapter,c as createAgentBoosterAdapterSync};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.0");process.exit(0)}
|
|
2
|
-
import{a,b,c,d}from"./chunk-BXAXGEFC.js";import"./chunk-GKNNSCLC.js";import"./chunk-N4TL73TH.js";import"./chunk-YPFOCNOE.js";import"./chunk-VSVXUTJN.js";import"./chunk-XO6PVK2P.js";import"./chunk-X5IJGWYG.js";import"./chunk-J3KWWR6Z.js";import"./chunk-EHDQJQ6Y.js";import"./chunk-MV6CMOJQ.js";import"./chunk-JRYGQO2W.js";import"./chunk-4YS3IJ45.js";import"./chunk-YW2THB5Q.js";import"./chunk-3ZOONQG6.js";import"./chunk-SUSEVMZT.js";import"./chunk-JJO7Y4H3.js";import"./chunk-N2NS2PHA.js";import"./chunk-3JPRUND5.js";import"./chunk-4VUPRTVX.js";import"./chunk-WGMPEW2T.js";import"./chunk-JZSDOIXA.js";import"./chunk-263XS447.js";import"./chunk-MDUHYUHF.js";import"./chunk-GAOJV3OX.js";import"./chunk-62ADTHV7.js";import"./chunk-DRT3WKQW.js";import"./chunk-UFUVUO3J.js";import"./chunk-7VDBAVTY.js";import"./chunk-B36CDR4U.js";import"./chunk-2I7J3O6V.js";import"./chunk-4I2IOUS4.js";export{b as AQELearningEngine,a as DEFAULT_ENGINE_CONFIG,c as createAQELearningEngine,d as createDefaultLearningEngine};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.0");process.exit(0)}
|
|
2
|
-
import{a,b,c,d,e,f}from"./chunk-NZ2VCPN4.js";import"./chunk-24FKIJNC.js";import"./chunk-SUSEVMZT.js";import"./chunk-JJO7Y4H3.js";import"./chunk-N2NS2PHA.js";import"./chunk-3JPRUND5.js";import"./chunk-4VUPRTVX.js";import"./chunk-WGMPEW2T.js";import"./chunk-JZSDOIXA.js";import"./chunk-263XS447.js";import"./chunk-MDUHYUHF.js";import"./chunk-GAOJV3OX.js";import"./chunk-62ADTHV7.js";import"./chunk-DRT3WKQW.js";import"./chunk-UFUVUO3J.js";import"./chunk-7VDBAVTY.js";import"./chunk-B36CDR4U.js";import"./chunk-2I7J3O6V.js";import"./chunk-4I2IOUS4.js";export{f as MCPToolBase,e as defaultToolLogger,d as getMemoryBackend,b as getSharedMemoryBackend,a as registerRvfResetFn,c as resetSharedMemoryBackend};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.0");process.exit(0)}
|
|
2
|
-
import{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,q as p}from"./chunk-MDUHYUHF.js";import"./chunk-4I2IOUS4.js";p();export{i as DotProductAttention,h as FlashAttention,k as HyperbolicAttention,l as LinearAttention,m as MoEAttention,j as MultiHeadAttention,b as RuvectorLayer,n as SonaEngine,c as TensorCompress,a as default,d as differentiableSearch,f as getCompressionLevel,e as hierarchicalForward,g as init,o as pipeline};
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.0");process.exit(0)}
|
|
2
|
-
import{a as $,b as M,c as L,d as v,e as H,f as k,g as F,h as _,i as P,j as G,k as V,l as ce,m as q,n as Q,o as de,p as Y,q as j,r as W,s as U}from"./chunk-IAV2JMIX.js";import{b as ae}from"./chunk-EHDQJQ6Y.js";import{a as se,b as ie,c as le,d as O}from"./chunk-FIA6X7UL.js";import"./chunk-JJO7Y4H3.js";import"./chunk-N2NS2PHA.js";import"./chunk-3JPRUND5.js";import"./chunk-4VUPRTVX.js";import{b as N,d as Be}from"./chunk-WGMPEW2T.js";import"./chunk-JZSDOIXA.js";import{a as S,b as Ie}from"./chunk-263XS447.js";import"./chunk-MDUHYUHF.js";import"./chunk-GAOJV3OX.js";import"./chunk-62ADTHV7.js";import"./chunk-DRT3WKQW.js";import"./chunk-UFUVUO3J.js";import"./chunk-7VDBAVTY.js";import"./chunk-B36CDR4U.js";import"./chunk-2I7J3O6V.js";import"./chunk-4I2IOUS4.js";import T from"path";import r from"chalk";Ie();Be();import{existsSync as z,mkdirSync as Ne,writeFileSync as Oe,readFileSync as X}from"fs";import{join as E,resolve as Z}from"path";var ke={rl_q_values:"includeQValues",dream_insights:"includeDreamInsights",dream_cycles:"includeDreamInsights",witness_chain:"includeWitnessChain",vectors:"includeVectors"};function qe(n,t){let o=ke[n.tableName];return!(o&&t[o]===!1)}var Te=1e4;function Ae(n,t,o,e){if(!qe(t,o))return Q(E(e,t.fileName),[]),{count:0,rows:[]};let[s,i]=t.domainColumn?q(o.domains,t.domainColumn):[void 0,[]];if(G(n,t.tableName,s,i)>=Te){let d=t.blobColumns,f=d&&d.length>0?p=>k(p,d):void 0;return{count:de(E(e,t.fileName),ce(n,t.tableName,s,i),f)}}let a=V(n,t.tableName,s,i);return t.blobColumns&&t.blobColumns.length>0&&(a=a.map(d=>k(d,t.blobColumns))),Q(E(e,t.fileName),a),{count:a.length,rows:a}}function me(n){let t=[];for(let o of v){let e=E(n,o.fileName);z(e)?t.push(_(X(e,"utf-8"))):t.push(_(""))}return _(t.join(":"))}function fe(n,t,o="memory.db"){let e=Z(t.outputPath);z(e)||Ne(e,{recursive:!0});let s=0,i={},c=new Set;for(let u of v){let p=Ae(n,u,t,e);if(i[u.tableName]=p.count,s+=p.count,u.tableName==="qe_patterns"){if(p.rows)for(let l of p.rows)l.qe_domain&&c.add(l.qe_domain);else if(p.count>0){let[l,h]=u.domainColumn?q(t.domains,u.domainColumn):[void 0,[]],b=`SELECT DISTINCT qe_domain FROM qe_patterns ${l?`WHERE ${l} AND qe_domain IS NOT NULL`:"WHERE qe_domain IS NOT NULL"}`;try{let y=n.prepare(b).all(...h||[]);for(let R of y)c.add(R.qe_domain)}catch{}}}}let a=t.includeVectors!==!1?G(n,"vectors"):0,d=me(e),f={version:"3.0",exportedAt:new Date().toISOString(),sourceDb:o,stats:{patternCount:i.qe_patterns||0,vectorCount:a,qValueCount:i.rl_q_values||0,dreamInsightCount:i.dream_insights||0,witnessChainLength:i.witness_chain||0,totalRecords:s},domains:[...c].sort(),checksum:d,tableRecordCounts:i};return Oe(E(e,"manifest.json"),JSON.stringify(f,null,2),"utf-8"),f}var De=new Set(["qe_patterns","rl_q_values","dream_insights","witness_chain"]);function $e(n){return n==="1.0"?v.filter(t=>De.has(t.tableName)):n==="3.0"?v:(console.warn(`[brain-import] Unknown manifest version '${n}'. Attempting full import \u2014 some files may be missing.`),v)}function ue(n,t,o){let e=Z(t),s=E(e,"manifest.json");if(!z(s))throw new Error(`Manifest not found at ${s}`);let i=N(X(s,"utf-8")),c=me(e);if(c!==i.checksum)throw new Error(`Checksum mismatch: expected ${i.checksum}, got ${c}. The export may have been tampered with or corrupted.`);let a=$e(i.version);if(o.dryRun){let l=0;for(let h of a){let m=Y(E(e,h.fileName),N);l+=m.length}return{imported:l,skipped:0,conflicts:0}}U(n);let d=0,f=0,u=0;return n.transaction(()=>{for(let l of a){let h=E(e,l.fileName),m=Y(h,N);l.blobColumns&&l.blobColumns.length>0&&(m=m.map(b=>F(b,l.blobColumns)));for(let b of m){let y;if(l.dedupColumns&&l.dedupColumns.length>0)y=W(n,l.tableName,b,l.dedupColumns);else{let R=$[l.tableName]||"id",C=L[l.tableName],x=M[l.tableName];y=j(n,l.tableName,b,R,o.mergeStrategy,C,x)}d+=y.imported,f+=y.skipped,u+=y.conflicts}}})(),{imported:d,skipped:f,conflicts:u}}function pe(n){let t=Z(n),o=E(t,"manifest.json");if(!z(o))throw new Error(`Manifest not found at ${o}`);return N(X(o,"utf-8"))}import{existsSync as K,statSync as Me,unlinkSync as ge,writeFileSync as Le}from"fs";import{resolve as ee}from"path";function be(n,t,o="memory.db"){if(!O())throw new Error("@ruvector/rvf-node is not available. Install it or use --format jsonl instead.");let e=ee(t.outputPath),s=t.dimension??384;K(e)&&ge(e);let i=`${e}.idmap.json`;K(i)&&ge(i);let c=se(e,s);try{let a={},d=new Set,f=0;for(let w of v){let[g,oe]=w.domainColumn?q(t.domains,w.domainColumn):[void 0,[]],B=V(n,w.tableName,g,oe);if(w.tableName==="qe_patterns")for(let D of B)D.qe_domain&&d.add(D.qe_domain);let J=H[w.tableName];J&&J.length>0&&(B=B.map(D=>k(D,J))),a[w.tableName]=B,f+=B.length}let u=0,p=[];if(P(n,"qe_pattern_embeddings")){let w=n.prepare("SELECT pattern_id, embedding, dimension FROM qe_pattern_embeddings").all();for(let g of w)g.embedding&&g.dimension===s&&p.push({id:`pe:${g.pattern_id}`,vector:new Float32Array(g.embedding.buffer,g.embedding.byteOffset,s),metadata:{tableName:"qe_pattern_embeddings"}})}if(P(n,"captured_experiences")){let w=n.prepare("SELECT id, embedding, embedding_dimension, domain, quality FROM captured_experiences WHERE embedding IS NOT NULL").all();for(let g of w)g.embedding_dimension===s&&p.push({id:`exp:${g.id}`,vector:new Float32Array(g.embedding.buffer,g.embedding.byteOffset,s),metadata:{tableName:"captured_experiences",domain:g.domain,confidence:g.quality}})}if(P(n,"sona_patterns")){let w=n.prepare("SELECT id, state_embedding, domain, confidence FROM sona_patterns WHERE state_embedding IS NOT NULL").all();for(let g of w)g.state_embedding.byteLength/4===s&&p.push({id:`sona:${g.id}`,vector:new Float32Array(g.state_embedding.buffer,g.state_embedding.byteOffset,s),metadata:{tableName:"sona_patterns",domain:g.domain,confidence:g.confidence}})}p.length>0&&(u=c.ingest(p).accepted);let l={version:"3.0",format:"rvf",exportedAt:new Date().toISOString(),sourceDb:o,domains:[...d].sort(),tables:a},h=JSON.stringify(l),m=_(h),b=Buffer.from(h);c.embedKernel(b);let y=t.sign?c.sign(b)??void 0:void 0,R=y?t.signerKeyId??"default":void 0,C=c.fileId(),x=C?{fileId:C,parentId:c.parentId(),lineageDepth:c.lineageDepth()}:void 0,I=c.status(),A={version:"3.0",format:"rvf",exportedAt:l.exportedAt,sourceDb:o,stats:{patternCount:(a.qe_patterns||[]).length,embeddingCount:u,qValueCount:(a.rl_q_values||[]).length,dreamInsightCount:(a.dream_insights||[]).length,witnessChainLength:(a.witness_chain||[]).length,totalRecords:f},domains:l.domains,checksum:m,rvfStatus:{totalVectors:I.totalVectors,totalSegments:I.totalSegments,fileSizeBytes:I.fileSizeBytes},...y?{signature:y,signerKeyId:R}:{},...x?{lineage:x}:{}};if(y)try{c.freeze()}catch{}let Se=`${e}.manifest.json`;return Le(Se,JSON.stringify(A,null,2),"utf-8"),A}finally{c.close()}}var Fe={patterns:"qe_patterns",qValues:"rl_q_values",dreamInsights:"dream_insights",witnessChain:"witness_chain"};function ye(n,t,o){if(!O())throw new Error("@ruvector/rvf-node is not available. Install it or use JSONL format.");let e=ee(t);if(!K(e))throw new Error(`RVF file not found: ${e}`);let s=ie(e);try{let i=s.verifyWitness();if(!i.valid&&(i.totalEntries>0||i.errors.length>0)){let m=i.errors.length>0?i.errors.join("; "):"unknown integrity error";throw new Error(`RVF witness verification failed: ${m}`)}let c=s.extractKernel();if(!c||!c.image)throw new Error("No brain data found in RVF file (missing kernel segment)");let a;try{a=JSON.parse(c.image.toString("utf-8"))}catch(m){throw new Error(`Failed to parse brain kernel data as JSON: ${m instanceof Error?m.message:m}`)}if(o.dryRun){let m=0;if(a.tables)for(let b of Object.values(a.tables))m+=b?.length??0;else m=(a.patterns?.length??0)+(a.qValues?.length??0)+(a.dreamInsights?.length??0)+(a.witnessChain?.length??0);return{imported:m,skipped:0,conflicts:0,embeddingsRestored:0}}U(n);let d=0,f=0,u=0,p=0,l={};if(a.tables)Object.assign(l,a.tables);else for(let[m,b]of Object.entries(Fe)){let y=a[m];Array.isArray(y)&&(l[b]=y)}if(n.transaction(()=>{for(let m of v){let b=l[m.tableName];if(!b||!Array.isArray(b))continue;let y=H[m.tableName];if(y&&y.length>0){b=b.map(R=>F(R,y));for(let R of b)for(let C of y)R[C]instanceof Buffer&&p++}for(let R of b){let C;if(m.dedupColumns&&m.dedupColumns.length>0)C=W(n,m.tableName,R,m.dedupColumns);else{let x=$[m.tableName]||"id",I=L[m.tableName],A=M[m.tableName];C=j(n,m.tableName,R,x,o.mergeStrategy,I,A)}d+=C.imported,f+=C.skipped,u+=C.conflicts}}})(),u>0)try{s.compact()}catch{}return{imported:d,skipped:f,conflicts:u,embeddingsRestored:p}}finally{s.close()}}function he(n){if(!O())throw new Error("@ruvector/rvf-node is not available.");let t=ee(n);if(!K(t))throw new Error(`RVF file not found: ${t}`);let o=le(t);try{let e=o.extractKernel();if(!e||!e.image)throw new Error("No brain data found in RVF file");let s=e.image.toString("utf-8"),i;try{i=JSON.parse(s)}catch(h){throw new Error(`Failed to parse brain kernel data as JSON: ${h instanceof Error?h.message:h}`)}let c=o.status(),a=Me(t).size,d=i.tables,f=d?d.qe_patterns?.length??0:i.patterns?.length??0,u=d?d.rl_q_values?.length??0:i.qValues?.length??0,p=d?d.dream_insights?.length??0:i.dreamInsights?.length??0,l=d?d.witness_chain?.length??0:i.witnessChain?.length??0;return{version:"3.0",format:"rvf",exportedAt:i.exportedAt??"unknown",sourceDb:i.sourceDb??"unknown",stats:{patternCount:f,embeddingCount:c.totalVectors,qValueCount:u,dreamInsightCount:p,witnessChainLength:l},domains:i.domains??[],checksum:_(s),rvfStatus:{totalVectors:c.totalVectors,totalSegments:c.totalSegments,fileSizeBytes:a}}}finally{o.close()}}function te(){return O()}function we(n,t){if(!n.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='qe_patterns'").get())return{created:0,skipped:0};n.exec(`
|
|
3
|
-
CREATE TEMP TABLE IF NOT EXISTS _covered_patterns (
|
|
4
|
-
pattern_id TEXT PRIMARY KEY
|
|
5
|
-
)
|
|
6
|
-
`),n.exec("DELETE FROM _covered_patterns"),n.exec(`
|
|
7
|
-
INSERT INTO _covered_patterns (pattern_id)
|
|
8
|
-
SELECT DISTINCT json_extract(action_data, '$.patternId')
|
|
9
|
-
FROM witness_chain
|
|
10
|
-
WHERE action_type = 'PATTERN_CREATE'
|
|
11
|
-
AND json_extract(action_data, '$.patternId') IS NOT NULL
|
|
12
|
-
`),n.exec(`
|
|
13
|
-
INSERT OR IGNORE INTO _covered_patterns (pattern_id)
|
|
14
|
-
SELECT DISTINCT json_extract(action_data, '$.pattern_id')
|
|
15
|
-
FROM witness_chain
|
|
16
|
-
WHERE action_type = 'PATTERN_CREATE'
|
|
17
|
-
AND json_extract(action_data, '$.pattern_id') IS NOT NULL
|
|
18
|
-
`);let e=n.prepare(`SELECT p.id, p.pattern_type, p.qe_domain, p.name, p.created_at
|
|
19
|
-
FROM qe_patterns p
|
|
20
|
-
LEFT JOIN _covered_patterns c ON p.id = c.pattern_id
|
|
21
|
-
WHERE c.pattern_id IS NULL
|
|
22
|
-
ORDER BY p.created_at ASC`).all(),i=n.prepare("SELECT COUNT(*) as count FROM qe_patterns").get().count-e.length,c=0;for(let a of e)t.append("PATTERN_CREATE",{patternId:a.id,patternType:a.pattern_type,qeDomain:a.qe_domain,name:a.name,originalCreatedAt:a.created_at,backfilled:!0},"system:backfill"),c++;return n.exec("DROP TABLE IF EXISTS _covered_patterns"),{created:c,skipped:i}}async function Re(n,t){if(Pe(t.format)==="rvf"){let s=S(n,{readonly:!0});try{return be(s,{outputPath:t.outputPath,domains:t.domains},n)}finally{s.close()}}let e=S(n,{readonly:!0});try{return fe(e,t,n)}finally{e.close()}}async function Ce(n,t,o){if(_e(t,o.format)==="rvf"){let i=S(n);try{return ye(i,t,{mergeStrategy:o.mergeStrategy,dryRun:o.dryRun})}finally{i.close()}}let s=S(n);try{return ue(s,t,o)}finally{s.close()}}async function ve(n,t){return _e(n,t)==="rvf"?he(n):pe(n)}async function Ee(n){let t=S(n);try{let o=ae(t);return await o.initialize(),we(t,o)}finally{t.close()}}function Pe(n){if(n==="jsonl")return"jsonl";if(n==="rvf"){if(!te())throw new Error("RVF format requested but @ruvector/rvf-node is not available on this platform. Use --format jsonl instead.");return"rvf"}return te()?"rvf":"jsonl"}function _e(n,t){return t==="rvf"?"rvf":t==="jsonl"?"jsonl":n.endsWith(".rvf")?"rvf":"jsonl"}var re=class{name="brain";description="Export, import, and inspect QE brain state";cleanupAndExit;ensureInitialized;constructor(t,o){this.cleanupAndExit=t,this.ensureInitialized=o}register(t,o){let e=t.command("brain").description(this.description);e.command("export").description("Export brain state to a portable directory").requiredOption("-o, --output <path>","Output directory path").option("--format <format>","Export format: rvf (default) or jsonl","rvf").option("--db <path>","Source database path").action(async s=>{await this.executeExport(s)}),e.command("import").description("Import brain state from an export directory").requiredOption("-i, --input <path>","Path to brain export directory").option("--strategy <strategy>","Merge strategy","skip-conflicts").option("--dry-run","Preview import without writing",!1).option("--db <path>","Target database path").action(async s=>{await this.executeImport(s)}),e.command("info").description("Show manifest info for a brain export").requiredOption("-i, --input <path>","Path to brain export directory").action(async s=>{await this.executeInfo(s)}),e.command("witness-backfill").description("Create witness chain entries for patterns that predate the witness chain").option("--db <path>","Database path").action(async s=>{await this.executeWitnessBackfill(s)})}async executeExport(t){try{console.log(r.blue(`
|
|
23
|
-
Exporting brain state (format: ${t.format})...
|
|
24
|
-
`));let o=await ne(t.db),e=await Re(o,{outputPath:T.resolve(t.output),format:t.format});if(console.log(r.green(" Export complete.")),console.log(` Format: ${r.cyan("format"in e?e.format??"jsonl":"jsonl")}`),console.log(` Patterns: ${r.cyan(e.stats.patternCount)}`),"embeddingCount"in e.stats?console.log(` Vectors: ${r.cyan(e.stats.embeddingCount)}`):"vectorCount"in e.stats&&console.log(` Vectors: ${r.cyan(e.stats.vectorCount)}`),"rvfStatus"in e){let s=e.rvfStatus;console.log(` RVF Size: ${r.cyan(xe(s.fileSizeBytes))}`),console.log(` Segments: ${r.cyan(s.totalSegments)}`)}console.log(` Checksum: ${r.gray(e.checksum)}`),console.log(` Output: ${r.cyan(T.resolve(t.output))}`),console.log(""),await this.cleanupAndExit(0)}catch(o){console.error(r.red(`
|
|
25
|
-
Brain export failed:`),o),await this.cleanupAndExit(1)}}async executeImport(t){try{t.dryRun?console.log(r.yellow(`
|
|
26
|
-
Dry-run mode \u2014 no data will be written.
|
|
27
|
-
`)):console.log(r.blue(`
|
|
28
|
-
Importing brain state...
|
|
29
|
-
`));let o=await ne(t.db),e=await Ce(o,T.resolve(t.input),{mergeStrategy:t.strategy,dryRun:t.dryRun});console.log(r.green(" Import complete.")),console.log(` Imported: ${r.cyan(e.imported)}`),console.log(` Skipped: ${r.yellow(e.skipped)}`),console.log(` Conflicts: ${r.red(e.conflicts)}`),"embeddingsRestored"in e&&console.log(` Embeddings: ${r.cyan(e.embeddingsRestored)}`),console.log(""),await this.cleanupAndExit(0)}catch(o){console.error(r.red(`
|
|
30
|
-
Brain import failed:`),o),await this.cleanupAndExit(1)}}async executeInfo(t){try{console.log(r.blue(`
|
|
31
|
-
Brain Export Info
|
|
32
|
-
`));let o=T.resolve(t.input),e=await ve(o),s="format"in e?e.format??"jsonl":"jsonl";if(console.log(` Version: ${r.cyan(e.version)}`),console.log(` Format: ${r.cyan(s)}`),console.log(` Exported: ${r.cyan(e.exportedAt)}`),console.log(` Source DB: ${r.cyan(e.sourceDb)}`),console.log(r.blue(`
|
|
33
|
-
Learning Data:`)),console.log(` Patterns: ${r.cyan(e.stats.patternCount)}`),"qValueCount"in e.stats&&console.log(` Q-Values: ${r.cyan(e.stats.qValueCount)}`),"dreamInsightCount"in e.stats){let a=e.stats.dreamInsightCount,f=("tableRecordCounts"in e?e.tableRecordCounts:void 0)?.dream_cycles,u=f!==void 0?` (${f} cycles)`:"";console.log(` Dream Insights: ${r.cyan(a)}${r.gray(u)}`)}"witnessChainLength"in e.stats&&console.log(` Witness Chain: ${r.cyan(e.stats.witnessChainLength)} entries`),"embeddingCount"in e.stats?console.log(` Embeddings: ${r.cyan(e.stats.embeddingCount)}`):"vectorCount"in e.stats&&console.log(` Vectors: ${r.cyan(e.stats.vectorCount)}`);let i="tableRecordCounts"in e?e.tableRecordCounts:void 0;if(i){let a=Object.entries(i).filter(([d,f])=>f>0&&!["qe_patterns","rl_q_values","dream_insights","dream_cycles","witness_chain","vectors","qe_pattern_embeddings"].includes(d));if(a.length>0)for(let[d,f]of a){let p=`${d.replace(/_/g," ").replace(/\b\w/g,l=>l.toUpperCase())}:`.padEnd(15);console.log(` ${p}${r.cyan(f)}`)}}let c="totalRecords"in e.stats?e.stats.totalRecords:void 0;if(c!==void 0&&(console.log(r.blue(`
|
|
34
|
-
Summary:`)),console.log(` Total Records: ${r.cyan(c)}`)),"domains"in e&&Array.isArray(e.domains)&&e.domains.length>0&&(c||console.log(r.blue(`
|
|
35
|
-
Summary:`)),console.log(` Domains: ${r.cyan(e.domains.join(", "))}`)),"rvfStatus"in e){let a=e.rvfStatus;console.log(r.blue(`
|
|
36
|
-
RVF Details:`)),console.log(` File Size: ${r.cyan(xe(a.fileSizeBytes))}`),console.log(` Vectors: ${r.cyan(a.totalVectors)}`),console.log(` Segments: ${r.cyan(a.totalSegments)}`)}if("lineage"in e){let a=e.lineage;a&&(console.log(r.blue(`
|
|
37
|
-
Lineage:`)),console.log(` File ID: ${r.cyan(a.fileId)}`),console.log(` Parent ID: ${r.cyan(a.parentId??"none (root)")}`),console.log(` Depth: ${r.cyan(a.lineageDepth)}`))}if("signature"in e){let a=e.signature,d=e.signerKeyId;console.log(r.blue(`
|
|
38
|
-
Signature:`)),a?(console.log(` Status: ${r.green("Signed")}`),console.log(` Key ID: ${r.cyan(d??"unknown")}`),console.log(` Signature: ${r.gray(a.slice(0,32)+"...")}`)):console.log(` Status: ${r.yellow("Unsigned")}`)}console.log(`
|
|
39
|
-
Checksum: ${r.gray(e.checksum)}`),console.log(""),await this.cleanupAndExit(0)}catch(o){console.error(r.red(`
|
|
40
|
-
Failed to read brain info:`),o),await this.cleanupAndExit(1)}}async executeWitnessBackfill(t){try{console.log(r.blue(`
|
|
41
|
-
Running witness chain backfill...
|
|
42
|
-
`));let o=await ne(t.db),e=await Ee(o);console.log(r.green(" Backfill complete.")),console.log(` Created: ${r.cyan(e.created)} new witness entries`),console.log(` Skipped: ${r.cyan(e.skipped)} (already witnessed)`),console.log(""),await this.cleanupAndExit(0)}catch(o){console.error(r.red(`
|
|
43
|
-
Witness backfill failed:`),o),await this.cleanupAndExit(1)}}getHelp(){return`
|
|
44
|
-
Export, import, and inspect QE brain state.
|
|
45
|
-
|
|
46
|
-
Formats:
|
|
47
|
-
rvf \u2014 Single portable .rvf file (default, requires @ruvector/rvf-node)
|
|
48
|
-
jsonl \u2014 JSONL directory format (fallback when native not available)
|
|
49
|
-
|
|
50
|
-
Usage:
|
|
51
|
-
aqe brain export -o brain.rvf [--format rvf] [--db <path>]
|
|
52
|
-
aqe brain export -o ./brain-dir --format jsonl [--db <path>]
|
|
53
|
-
aqe brain import -i brain.rvf [--strategy skip-conflicts] [--dry-run] [--db <path>]
|
|
54
|
-
aqe brain info -i brain.rvf
|
|
55
|
-
|
|
56
|
-
Subcommands:
|
|
57
|
-
export Export brain state to a portable .rvf file or JSONL directory
|
|
58
|
-
import Import a brain export into the local database
|
|
59
|
-
info Show manifest metadata for an existing brain export
|
|
60
|
-
|
|
61
|
-
Examples:
|
|
62
|
-
aqe brain export -o .agentic-qe/brain.rvf
|
|
63
|
-
aqe brain export -o .agentic-qe/brain.rvf --format rvf
|
|
64
|
-
aqe brain export -o ./brain-export --format jsonl
|
|
65
|
-
aqe brain import -i .agentic-qe/brain.rvf --strategy latest-wins
|
|
66
|
-
aqe brain import -i .agentic-qe/brain.rvf --dry-run
|
|
67
|
-
aqe brain info -i .agentic-qe/brain.rvf
|
|
68
|
-
`}};async function ne(n){if(n)return n;let{findProjectRoot:t}=await import("./unified-memory-XYGENQUT.js");return T.join(t(),".agentic-qe","memory.db")}function xe(n){return n<1024?`${n} B`:n<1024*1024?`${(n/1024).toFixed(1)} KB`:`${(n/(1024*1024)).toFixed(1)} MB`}function it(n,t){return new re(n,t)}export{re as BrainHandler,it as createBrainHandler};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.0");process.exit(0)}
|
|
2
|
-
import{a}from"./chunk-BLBRY5UD.js";import"./chunk-NZ2VCPN4.js";import"./chunk-24FKIJNC.js";import"./chunk-SUSEVMZT.js";import"./chunk-JJO7Y4H3.js";import"./chunk-N2NS2PHA.js";import"./chunk-3JPRUND5.js";import"./chunk-4VUPRTVX.js";import"./chunk-WGMPEW2T.js";import"./chunk-JZSDOIXA.js";import"./chunk-263XS447.js";import"./chunk-MDUHYUHF.js";import"./chunk-GAOJV3OX.js";import"./chunk-62ADTHV7.js";import"./chunk-DRT3WKQW.js";import"./chunk-UFUVUO3J.js";import"./chunk-7VDBAVTY.js";import"./chunk-B36CDR4U.js";import"./chunk-2I7J3O6V.js";import"./chunk-4I2IOUS4.js";export{a as BrowserWorkflowTool};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.0");process.exit(0)}
|
|
2
|
-
import{a as t,q as r}from"./chunk-MDUHYUHF.js";import{c as l}from"./chunk-4I2IOUS4.js";function m(s,e){let o=e?.readonly??!1,n=e?.fileMustExist??!1,i=e?.busyTimeout??5e3,b=e?.walMode??!o,a=new t(s,{readonly:o,fileMustExist:n});return a.pragma(`busy_timeout = ${i}`),b&&a.pragma("journal_mode = WAL"),a}var u=l(()=>{r()});export{m as a,u as b};
|