agentic-qe 3.8.14 → 3.9.1
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 +60 -0
- package/dist/adapters/a2ui/integration/agui-sync.js +2 -1
- package/dist/audit/witness-chain.d.ts +1 -1
- package/dist/boot/fast-paths.d.ts +24 -0
- package/dist/boot/fast-paths.js +43 -0
- package/dist/boot/parallel-prefetch.d.ts +26 -0
- package/dist/boot/parallel-prefetch.js +36 -0
- package/dist/cli/bundle.js +12 -9431
- package/dist/cli/chunks/adapter-NTM4ZH3P.js +2 -0
- package/dist/cli/chunks/agent-booster-wasm-UH2J6BNA.js +2 -0
- package/dist/cli/chunks/agent-handler-ZCBWQE3X.js +33 -0
- package/dist/cli/chunks/agent-memory-branch-2BAVI7UW.js +2 -0
- package/dist/cli/chunks/aqe-learning-engine-RVX6MPYK.js +2 -0
- package/dist/cli/chunks/audit-G5UIJBSQ.js +3 -0
- package/dist/cli/chunks/base-7HKNQ6UP.js +2 -0
- package/dist/cli/chunks/better-sqlite3-YHIAPPVT.js +2 -0
- package/dist/cli/chunks/brain-handler-5EE3J5PR.js +68 -0
- package/dist/cli/chunks/branch-enumerator-OV54PID5.js +7 -0
- package/dist/cli/chunks/browser-7RZGKOEO.js +4 -0
- package/dist/cli/chunks/browser-workflow-UOFSQK7X.js +2 -0
- package/dist/cli/chunks/chunk-24E47G3D.js +604 -0
- package/dist/cli/chunks/chunk-35H73OPP.js +2 -0
- package/dist/cli/chunks/chunk-36X2O3BL.js +3 -0
- package/dist/cli/chunks/chunk-3JESHZQM.js +2 -0
- package/dist/cli/chunks/chunk-3VAKR43Z.js +2 -0
- package/dist/cli/chunks/chunk-3WQNW6CH.js +2 -0
- package/dist/cli/chunks/chunk-43M6Y6VF.js +15 -0
- package/dist/cli/chunks/chunk-4BHOAQJH.js +2 -0
- package/dist/cli/chunks/chunk-4LWXZCSD.js +146 -0
- package/dist/cli/chunks/chunk-4TNXEANY.js +2 -0
- package/dist/cli/chunks/chunk-4XBY5JDT.js +4 -0
- package/dist/cli/chunks/chunk-4XREPCBZ.js +2 -0
- package/dist/cli/chunks/chunk-5GPTM2RV.js +2 -0
- package/dist/cli/chunks/chunk-5KBQQP3X.js +7 -0
- package/dist/cli/chunks/chunk-5LDBKZ6P.js +2 -0
- package/dist/cli/chunks/chunk-6BSJNG2S.js +2 -0
- package/dist/cli/chunks/chunk-6YC24TPL.js +27 -0
- package/dist/cli/chunks/chunk-7ATLJCSG.js +2 -0
- package/dist/cli/chunks/chunk-7JQTHPCD.js +2 -0
- package/dist/cli/chunks/chunk-7YUOUVN7.js +2 -0
- package/dist/cli/chunks/chunk-7ZNINH6J.js +59 -0
- package/dist/cli/chunks/chunk-A57BEPL7.js +3 -0
- package/dist/cli/chunks/chunk-AFPMCMVX.js +45 -0
- package/dist/cli/chunks/chunk-AREIP4FX.js +3 -0
- package/dist/cli/chunks/chunk-B2I7BJLL.js +3 -0
- package/dist/cli/chunks/chunk-BEHP3DEF.js +66 -0
- package/dist/cli/chunks/chunk-C24ZDUCM.js +30 -0
- package/dist/cli/chunks/chunk-D4PSFWND.js +2 -0
- package/dist/cli/chunks/chunk-D55PSO5D.js +81 -0
- package/dist/cli/chunks/chunk-DC3HPOOJ.js +2 -0
- package/dist/cli/chunks/chunk-DMGLX76J.js +180 -0
- package/dist/cli/chunks/chunk-E33KQBMW.js +2 -0
- package/dist/cli/chunks/chunk-EQFZQPFN.js +2 -0
- package/dist/cli/chunks/chunk-FPRL6UDF.js +2 -0
- package/dist/cli/chunks/chunk-FRNB4CH2.js +2 -0
- package/dist/cli/chunks/chunk-FWDKVTK4.js +2 -0
- package/dist/cli/chunks/chunk-GFNUESMU.js +2 -0
- package/dist/cli/chunks/chunk-GJW6V35N.js +2 -0
- package/dist/cli/chunks/chunk-GLIFZWV2.js +2 -0
- package/dist/cli/chunks/chunk-GNUUBTSX.js +14 -0
- package/dist/cli/chunks/chunk-HAUXLXKZ.js +2 -0
- package/dist/cli/chunks/chunk-HTXSUTWL.js +9 -0
- package/dist/cli/chunks/chunk-I5WZ2NM2.js +95 -0
- package/dist/cli/chunks/chunk-I7TA453K.js +2 -0
- package/dist/cli/chunks/chunk-IF6GW6IY.js +27 -0
- package/dist/cli/chunks/chunk-IHWSNYL2.js +5 -0
- package/dist/cli/chunks/chunk-IJKYJGJL.js +2 -0
- package/dist/cli/chunks/chunk-IQPXANCE.js +14 -0
- package/dist/cli/chunks/chunk-JCEY7RLP.js +2 -0
- package/dist/cli/chunks/chunk-JSOBRKMA.js +2 -0
- package/dist/cli/chunks/chunk-KIGRLIU4.js +2 -0
- package/dist/cli/chunks/chunk-L4H54Z27.js +21 -0
- package/dist/cli/chunks/chunk-LCOEBFAB.js +2 -0
- package/dist/cli/chunks/chunk-MZ54VM6A.js +2 -0
- package/dist/cli/chunks/chunk-NB47YT6A.js +167 -0
- package/dist/cli/chunks/chunk-NG3BKE7V.js +2 -0
- package/dist/cli/chunks/chunk-NG4TE3OW.js +2 -0
- package/dist/cli/chunks/chunk-O636JKJR.js +18 -0
- package/dist/cli/chunks/chunk-O6QQ4HLS.js +2 -0
- package/dist/cli/chunks/chunk-OFNIQCGX.js +2 -0
- package/dist/cli/chunks/chunk-OTSJU5LH.js +2 -0
- package/dist/cli/chunks/chunk-POLFT2PQ.js +15 -0
- package/dist/cli/chunks/chunk-QAYTL6KC.js +2 -0
- package/dist/cli/chunks/chunk-QMFP5OKH.js +2 -0
- package/dist/cli/chunks/chunk-RAJO7VML.js +2 -0
- package/dist/cli/chunks/chunk-RKIGOARX.js +2 -0
- package/dist/cli/chunks/chunk-RU6Q5HOC.js +3 -0
- package/dist/cli/chunks/chunk-RV6SGDET.js +2 -0
- package/dist/cli/chunks/chunk-RWXI7XAR.js +2 -0
- package/dist/cli/chunks/chunk-RXVYOXDB.js +2 -0
- package/dist/cli/chunks/chunk-SGRN6JFB.js +2 -0
- package/dist/cli/chunks/chunk-SVNX4UWR.js +3029 -0
- package/dist/cli/chunks/chunk-TL7ABIMP.js +2 -0
- package/dist/cli/chunks/chunk-TOLYWONQ.js +2 -0
- package/dist/cli/chunks/chunk-TPXYS3WG.js +3 -0
- package/dist/cli/chunks/chunk-U5JQGRHZ.js +2 -0
- package/dist/cli/chunks/chunk-UB7RGVKO.js +2 -0
- package/dist/cli/chunks/chunk-UBKK7KCR.js +70 -0
- package/dist/cli/chunks/chunk-UMGWGX7C.js +2 -0
- package/dist/cli/chunks/chunk-UN4PA4M2.js +2 -0
- package/dist/cli/chunks/chunk-US7INRP2.js +314 -0
- package/dist/cli/chunks/chunk-UWDBFPHQ.js +750 -0
- package/dist/cli/chunks/chunk-UZZCWWIG.js +2 -0
- package/dist/cli/chunks/chunk-V4HM4QAO.js +24 -0
- package/dist/cli/chunks/chunk-V4U3CTS2.js +180 -0
- package/dist/cli/chunks/chunk-VCCMCFDU.js +2 -0
- package/dist/cli/chunks/chunk-VEWIT6VN.js +4 -0
- package/dist/cli/chunks/chunk-VNYGVG4Y.js +2 -0
- package/dist/cli/chunks/chunk-VO3OVD5D.js +4 -0
- package/dist/cli/chunks/chunk-VY74OMGQ.js +6 -0
- package/dist/cli/chunks/chunk-WDJBGXC2.js +2 -0
- package/dist/cli/chunks/chunk-WDV6TN7E.js +65 -0
- package/dist/cli/chunks/chunk-WLXEDOG4.js +2 -0
- package/dist/cli/chunks/chunk-WXXAAXNS.js +12 -0
- package/dist/cli/chunks/chunk-X4MZYBOU.js +256 -0
- package/dist/cli/chunks/chunk-XE2YAYU5.js +12 -0
- package/dist/cli/chunks/chunk-XP6XKBNW.js +2 -0
- package/dist/cli/chunks/chunk-XPB6ZVQY.js +2 -0
- package/dist/cli/chunks/chunk-XRVUSKQV.js +1 -0
- package/dist/cli/chunks/chunk-XSITQBYB.js +20 -0
- package/dist/cli/chunks/chunk-XTLA4F5Z.js +91 -0
- package/dist/cli/chunks/chunk-XU6L2VJY.js +2 -0
- package/dist/cli/chunks/chunk-XUFHYPZK.js +2 -0
- package/dist/cli/chunks/chunk-Y2ZEDXTV.js +16 -0
- package/dist/cli/chunks/chunk-YQWB4QUP.js +316 -0
- package/dist/cli/chunks/chunk-YUQIXT3G.js +79 -0
- package/dist/cli/chunks/chunk-YYYB2JN5.js +2 -0
- package/dist/cli/chunks/chunk-ZEUVPLGX.js +2 -0
- package/dist/cli/chunks/chunk-ZSRQHJEW.js +3 -0
- package/dist/cli/chunks/ci-N4NTYAAI.js +81 -0
- package/dist/cli/chunks/ci-output-XYR2PSYH.js +2 -0
- package/dist/cli/chunks/claude-flow-setup-FX7PRBJV.js +2 -0
- package/dist/cli/chunks/client-CRRENRK4.js +2 -0
- package/dist/cli/chunks/cline-installer-GTHQOK7U.js +4 -0
- package/dist/cli/chunks/code-4G6ZHVNI.js +38 -0
- package/dist/cli/chunks/code-index-extractor-MKJTP5AK.js +3 -0
- package/dist/cli/chunks/codex-installer-UGS773DT.js +8 -0
- package/dist/cli/chunks/completions-B3BXNXAU.js +1364 -0
- package/dist/cli/chunks/complexity-analyzer-PMN77CUP.js +2 -0
- package/dist/cli/chunks/continuedev-installer-3DYKSIP3.js +14 -0
- package/dist/cli/chunks/copilot-installer-IUC5HDHD.js +3 -0
- package/dist/cli/chunks/cost-tracker-GSGQ7O5T.js +2 -0
- package/dist/cli/chunks/coverage-PO72QC3P.js +27 -0
- package/dist/cli/chunks/cross-domain-router-FSCGJG3B.js +2 -0
- package/dist/cli/chunks/cursor-installer-FK53S3ZL.js +3 -0
- package/dist/cli/chunks/daemon-4UIQTQ73.js +19 -0
- package/dist/cli/chunks/dag-attention-scheduler-ZGIMLECE.js +2 -0
- package/dist/cli/chunks/detect-XXHLTLL7.js +2 -0
- package/dist/cli/chunks/domain-handler-PPGFP7P4.js +25 -0
- package/dist/cli/chunks/domain-transfer-Q5UAE65W.js +2 -0
- package/dist/cli/chunks/dream-PONKQULG.js +2 -0
- package/dist/cli/chunks/esm-node-XLWDJRBX.js +2 -0
- package/dist/cli/chunks/eval-JVJKHSTQ.js +15 -0
- package/dist/cli/chunks/fast-paths-3KX4ZV66.js +2 -0
- package/dist/cli/chunks/feature-flags-2NOVE7DL.js +2 -0
- package/dist/cli/chunks/feature-flags-GKHHG2I2.js +2 -0
- package/dist/cli/chunks/file-discovery-XFSGQNM3.js +2 -0
- package/dist/cli/chunks/fleet-FOIDAXLR.js +43 -0
- package/dist/cli/chunks/gnn-wrapper-HPCQREKP.js +2 -0
- package/dist/cli/chunks/heartbeat-handler-HTR3EFFV.js +48 -0
- package/dist/cli/chunks/heartbeat-scheduler-NZQWN7CH.js +2 -0
- package/dist/cli/chunks/hnsw-adapter-BNA5WUAB.js +2 -0
- package/dist/cli/chunks/hnsw-index-RQIIAE7S.js +2 -0
- package/dist/cli/chunks/hnsw-legacy-bridge-H6OA3AA3.js +2 -0
- package/dist/cli/chunks/hnswlib-node-FF27BDMD.js +2 -0
- package/dist/cli/chunks/hooks-63NZQ7NH.js +101 -0
- package/dist/cli/chunks/hypergraph-engine-XMSLA4XH.js +2 -0
- package/dist/cli/chunks/hypergraph-handler-ID6J6GS2.js +35 -0
- package/dist/cli/chunks/impact-analyzer-FS2UNVP4.js +2 -0
- package/dist/cli/chunks/init-handler-CIKZGGAY.js +68 -0
- package/dist/cli/chunks/init-wizard-TUU5PPY6.js +2 -0
- package/dist/cli/chunks/kernel-XFG42WAG.js +2 -0
- package/dist/cli/chunks/kilocode-installer-N7NLISYY.js +4 -0
- package/dist/cli/chunks/kiro-installer-U6XIPAT3.js +74 -0
- package/dist/cli/chunks/knowledge-graph-XV7FPU2T.js +2 -0
- package/dist/cli/chunks/learning-NKOF7KDJ.js +107 -0
- package/dist/cli/chunks/llm-router-34WHT3PH.js +30 -0
- package/dist/cli/chunks/load-ZW4Z3YLT.js +2 -0
- package/dist/cli/chunks/load-test-F4L7RTXJ.js +2 -0
- package/dist/cli/chunks/mcp-6R7SVGKO.js +2 -0
- package/dist/cli/chunks/memory-OUYCBU4M.js +32 -0
- package/dist/cli/chunks/memory-backend-DTJD2DWF.js +2 -0
- package/dist/cli/chunks/memory-handlers-WNXKZRNM.js +2 -0
- package/dist/cli/chunks/opencode-installer-FR75GHFU.js +3 -0
- package/dist/cli/chunks/orchestrator-AK7ZMVNH.js +371 -0
- package/dist/cli/chunks/pipeline-CFOPG7EM.js +19 -0
- package/dist/cli/chunks/platform-NY3ULBR7.js +2 -0
- package/dist/cli/chunks/plugin-LRANQYUR.js +27 -0
- package/dist/cli/chunks/prime-radiant-advanced-wasm-6KEIU55P.js +2 -0
- package/dist/cli/chunks/protocol-executor-6W4PS2D4.js +2 -0
- package/dist/cli/chunks/protocol-handler-ESSZGJ7R.js +20 -0
- package/dist/cli/chunks/prove-EF2PPY65.js +3 -0
- package/dist/cli/chunks/qe-reasoning-bank-7G3TZLEA.js +2 -0
- package/dist/cli/chunks/quality-AYBXB635.js +7 -0
- package/dist/cli/chunks/queen-coordinator-NFPKGMQN.js +2 -0
- package/dist/cli/chunks/real-embeddings-QPBXE7MA.js +2 -0
- package/dist/cli/chunks/roocode-installer-UF6MMBH6.js +4 -0
- package/dist/cli/chunks/router-F4B7Q66G.js +2 -0
- package/dist/cli/chunks/routing-feedback-5CIDDW7P.js +2 -0
- package/dist/cli/chunks/routing-handler-5TVKFU7V.js +20 -0
- package/dist/cli/chunks/ruvector-commands-E33VXFIA.js +8 -0
- package/dist/cli/chunks/rvf-dual-writer-O3AZKD24.js +2 -0
- package/dist/cli/chunks/rvf-migration-adapter-IKEUZ2HX.js +2 -0
- package/dist/cli/chunks/rvf-migration-coordinator-M4H7W4RN.js +2 -0
- package/dist/cli/chunks/rvf-native-adapter-UX3WAPIP.js +2 -0
- package/dist/cli/chunks/safe-db-QBBNXEVK.js +2 -0
- package/dist/cli/chunks/schedule-GFT4NN6Z.js +2 -0
- package/dist/cli/chunks/scheduler-CQ56T7DB.js +2 -0
- package/dist/cli/chunks/security-ZLWT7IU3.js +14 -0
- package/dist/cli/chunks/shared-rvf-adapter-EXACQ2PT.js +2 -0
- package/dist/cli/chunks/shared-rvf-dual-writer-G43LQDIV.js +2 -0
- package/dist/cli/chunks/sqlite-persistence-JHSUZPAW.js +2 -0
- package/dist/cli/chunks/status-handler-7P23CXUI.js +45 -0
- package/dist/cli/chunks/structural-health-SCNBNL7K.js +2 -0
- package/dist/cli/chunks/sync-BYZBBH65.js +23 -0
- package/dist/cli/chunks/task-handler-DWJQXZ2K.js +49 -0
- package/dist/cli/chunks/task-handlers-35JIXVRW.js +2 -0
- package/dist/cli/chunks/test-2JSS4XW7.js +33 -0
- package/dist/cli/chunks/test-scheduling-TWJ5I7N3.js +15 -0
- package/dist/cli/chunks/token-bootstrap-LLLNJT5V.js +2 -0
- package/dist/cli/chunks/token-usage-EQ4HM4EZ.js +25 -0
- package/dist/cli/chunks/transformers-PBIR5U5S.js +2 -0
- package/dist/cli/chunks/tree-sitter-wasm-parser-X3L2GXUX.js +2 -0
- package/dist/cli/chunks/types-OD43K2NP.js +2 -0
- package/dist/cli/chunks/unified-memory-YPHONR2T.js +2 -0
- package/dist/cli/chunks/unified-memory-hnsw-HJS4OXWM.js +2 -0
- package/dist/cli/chunks/unified-persistence-EFZRO6AW.js +2 -0
- package/dist/cli/chunks/validate-POMLT2KU.js +21 -0
- package/dist/cli/chunks/validate-swarm-UOC4JGZT.js +14 -0
- package/dist/cli/chunks/vibium-5JF6LAXI.js +2 -0
- package/dist/cli/chunks/visual-security-7KWFLYNB.js +2 -0
- package/dist/cli/chunks/web-tree-sitter-R7WR7J7B.js +2 -0
- package/dist/cli/chunks/windsurf-installer-ZSPEUBKR.js +7 -0
- package/dist/cli/chunks/witness-chain-CFSPCXHG.js +2 -0
- package/dist/cli/chunks/witness-chain-RWU6WT37.js +2 -0
- package/dist/cli/chunks/workflow-YNQT3OW2.js +51 -0
- package/dist/cli/chunks/workflow-orchestrator-Z6TAVMQP.js +2 -0
- package/dist/cli/chunks/wrappers-BP4FODVH.js +2 -0
- package/dist/cli/commands/daemon.d.ts +13 -0
- package/dist/cli/commands/daemon.js +224 -0
- package/dist/cli/commands/hooks-handlers/hooks-shared.js +2 -1
- package/dist/cli/commands/plugin.d.ts +12 -0
- package/dist/cli/commands/plugin.js +135 -0
- package/dist/cli/commands/ruvector-commands.js +14 -2
- package/dist/cli/commands/workflow.d.ts +10 -0
- package/dist/cli/commands/workflow.js +587 -0
- package/dist/cli/handlers/brain-handler.js +13 -8
- package/dist/cli/handlers/heartbeat-handler.d.ts +1 -0
- package/dist/cli/handlers/heartbeat-handler.js +20 -10
- package/dist/cli/handlers/hypergraph-handler.js +3 -3
- package/dist/cli/handlers/init-handler.js +10 -9
- package/dist/cli/handlers/interfaces.d.ts +4 -4
- package/dist/cli/index.js +159 -638
- package/dist/cli/lazy-registry.d.ts +27 -0
- package/dist/cli/lazy-registry.js +70 -0
- package/dist/context/compaction/context-budget.d.ts +71 -0
- package/dist/context/compaction/context-budget.js +120 -0
- package/dist/context/compaction/index.d.ts +96 -0
- package/dist/context/compaction/index.js +259 -0
- package/dist/context/compaction/llm-caller-adapter.d.ts +14 -0
- package/dist/context/compaction/llm-caller-adapter.js +47 -0
- package/dist/context/compaction/tier1-microcompact.d.ts +33 -0
- package/dist/context/compaction/tier1-microcompact.js +47 -0
- package/dist/context/compaction/tier2-session-summary.d.ts +72 -0
- package/dist/context/compaction/tier2-session-summary.js +172 -0
- package/dist/context/compaction/tier3-llm-compact.d.ts +65 -0
- package/dist/context/compaction/tier3-llm-compact.js +166 -0
- package/dist/context/compaction/tier4-reactive.d.ts +54 -0
- package/dist/context/compaction/tier4-reactive.js +129 -0
- 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/consensus/providers/claude-provider.d.ts +1 -0
- package/dist/coordination/consensus/providers/claude-provider.js +23 -3
- 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/hooks/cross-phase-hooks.d.ts +11 -0
- package/dist/hooks/cross-phase-hooks.js +73 -9
- package/dist/hooks/security/config-snapshot.d.ts +21 -0
- package/dist/hooks/security/config-snapshot.js +33 -0
- package/dist/hooks/security/exit-codes.d.ts +28 -0
- package/dist/hooks/security/exit-codes.js +33 -0
- package/dist/hooks/security/index.d.ts +15 -0
- package/dist/hooks/security/index.js +15 -0
- package/dist/hooks/security/ssrf-guard.d.ts +25 -0
- package/dist/hooks/security/ssrf-guard.js +69 -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 +141 -1
- package/dist/kernel/memory-backend.js +3 -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 +217 -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 +66 -0
- package/dist/learning/rvf-pattern-store.js +447 -0
- package/dist/mcp/bundle.js +1937 -1793
- package/dist/mcp/entry.js +132 -77
- 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/middleware/batch-executor.d.ts +46 -0
- package/dist/mcp/middleware/batch-executor.js +150 -0
- package/dist/mcp/middleware/microcompact.d.ts +97 -0
- package/dist/mcp/middleware/microcompact.js +179 -0
- package/dist/mcp/middleware/middleware-chain.d.ts +37 -0
- package/dist/mcp/middleware/middleware-chain.js +60 -0
- package/dist/mcp/protocol-server.d.ts +12 -0
- package/dist/mcp/protocol-server.js +192 -36
- package/dist/mcp/services/session-durability-middleware.d.ts +22 -0
- package/dist/mcp/services/session-durability-middleware.js +64 -0
- package/dist/mcp/services/session-resume.d.ts +29 -0
- package/dist/mcp/services/session-resume.js +221 -0
- package/dist/mcp/services/session-store.d.ts +84 -0
- package/dist/mcp/services/session-store.js +163 -0
- package/dist/mcp/tool-registry.d.ts +9 -0
- package/dist/mcp/tool-registry.js +30 -1
- package/dist/mcp/types.d.ts +2 -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/dist/plugins/cache.d.ts +44 -0
- package/dist/plugins/cache.js +149 -0
- package/dist/plugins/index.d.ts +15 -0
- package/dist/plugins/index.js +15 -0
- package/dist/plugins/lifecycle.d.ts +67 -0
- package/dist/plugins/lifecycle.js +175 -0
- package/dist/plugins/manifest.d.ts +45 -0
- package/dist/plugins/manifest.js +173 -0
- package/dist/plugins/resolver.d.ts +37 -0
- package/dist/plugins/resolver.js +80 -0
- package/dist/plugins/security.d.ts +23 -0
- package/dist/plugins/security.js +125 -0
- package/dist/plugins/sources/github.d.ts +17 -0
- package/dist/plugins/sources/github.js +77 -0
- package/dist/plugins/sources/local.d.ts +20 -0
- package/dist/plugins/sources/local.js +32 -0
- package/dist/plugins/sources/npm.d.ts +18 -0
- package/dist/plugins/sources/npm.js +82 -0
- package/dist/shared/llm/retry.d.ts +5 -2
- package/dist/shared/llm/retry.js +7 -3
- package/dist/shared/prompt-cache-latch.d.ts +41 -0
- package/dist/shared/prompt-cache-latch.js +63 -0
- package/dist/shared/retry-engine.d.ts +77 -0
- package/dist/shared/retry-engine.js +194 -0
- package/dist/workers/daemon.d.ts +8 -0
- package/dist/workers/daemon.js +13 -0
- package/dist/workers/quality-daemon/ci-monitor.d.ts +55 -0
- package/dist/workers/quality-daemon/ci-monitor.js +147 -0
- package/dist/workers/quality-daemon/coverage-delta.d.ts +72 -0
- package/dist/workers/quality-daemon/coverage-delta.js +135 -0
- package/dist/workers/quality-daemon/git-watcher.d.ts +51 -0
- package/dist/workers/quality-daemon/git-watcher.js +209 -0
- package/dist/workers/quality-daemon/index.d.ts +119 -0
- package/dist/workers/quality-daemon/index.js +343 -0
- package/dist/workers/quality-daemon/nightly-consolidation.d.ts +74 -0
- package/dist/workers/quality-daemon/nightly-consolidation.js +136 -0
- package/dist/workers/quality-daemon/notification-service.d.ts +67 -0
- package/dist/workers/quality-daemon/notification-service.js +178 -0
- package/dist/workers/quality-daemon/persistent-memory.d.ts +31 -0
- package/dist/workers/quality-daemon/persistent-memory.js +30 -0
- package/dist/workers/quality-daemon/priority-queue.d.ts +97 -0
- package/dist/workers/quality-daemon/priority-queue.js +126 -0
- package/dist/workers/quality-daemon/test-suggester.d.ts +50 -0
- package/dist/workers/quality-daemon/test-suggester.js +121 -0
- package/dist/workers/worker-manager.js +2 -1
- package/package.json +10 -10
|
@@ -86,7 +86,7 @@ export declare function getRuVectorStatus(config?: Partial<RuVectorConfig>): Pro
|
|
|
86
86
|
}>;
|
|
87
87
|
export * from './wrappers';
|
|
88
88
|
export { RuVectorServiceProvider, getDomainRuVectorServices, getRuVectorProvider, getRuVectorServiceAvailability, type RuVectorServiceConfig, } from './provider';
|
|
89
|
-
export { getRuVectorFeatureFlags, setRuVectorFeatureFlags, resetRuVectorFeatureFlags, isSONAEnabled, isFlashAttentionEnabled, isGNNIndexEnabled, isTemporalCompressionEnabled, isCrossDomainTransferEnabled, shouldLogMigrationMetrics, initFeatureFlagsFromEnv, isHDCFingerprintingEnabled, isCusumDriftDetectionEnabled, isDeltaEventSourcingEnabled, isEwcPlusPlusEnabled, isGraphMAEEnabled, isHopfieldMemoryEnabled, isColdTierGNNEnabled, isMetaLearningEnabled, isSublinearSolverEnabled, isSpectralSparsificationEnabled, isReservoirReplayEnabled, isEpropOnlineLearningEnabled, isGrangerCausalityEnabled, DEFAULT_FEATURE_FLAGS, type RuVectorFeatureFlags, } from './feature-flags';
|
|
89
|
+
export { getRuVectorFeatureFlags, setRuVectorFeatureFlags, resetRuVectorFeatureFlags, isSONAEnabled, isFlashAttentionEnabled, isGNNIndexEnabled, isTemporalCompressionEnabled, isCrossDomainTransferEnabled, shouldLogMigrationMetrics, initFeatureFlagsFromEnv, isHDCFingerprintingEnabled, isCusumDriftDetectionEnabled, isDeltaEventSourcingEnabled, isEwcPlusPlusEnabled, isGraphMAEEnabled, isHopfieldMemoryEnabled, isColdTierGNNEnabled, isMetaLearningEnabled, isSublinearSolverEnabled, isSpectralSparsificationEnabled, isReservoirReplayEnabled, isEpropOnlineLearningEnabled, isGrangerCausalityEnabled, isCognitiveRoutingEnabled, isHyperbolicHnswEnabled, DEFAULT_FEATURE_FLAGS, type RuVectorFeatureFlags, } from './feature-flags';
|
|
90
90
|
export { DomainTransferEngine, ThompsonSampler, createDomainTransferEngine, DEFAULT_DOMAIN_TRANSFER_CONFIG, DecayingBeta, PlateauDetector, ParetoFront, CuriosityBonus, type TransferCandidate, type TransferResult, type TransferRecord, type DomainTransferConfig, type ParetoPoint, } from './domain-transfer';
|
|
91
91
|
export { TransferCoherenceStub, createTransferCoherenceGate, type ITransferCoherenceGate, type CoherenceValidation, } from './transfer-coherence-stub';
|
|
92
92
|
export { TransferVerifier, createTransferVerifier, DEFAULT_VERIFICATION_CONFIG, type DomainPerformanceSnapshot, type TransferResultForVerification, type VerificationResult, type TransferVerificationConfig, } from './transfer-verification';
|
|
@@ -101,9 +101,10 @@ export { RvfDualWriter, createDualWriter } from './rvf-dual-writer.js';
|
|
|
101
101
|
export type { DualWriteConfig, DualWriteResult, DivergenceReport } from './rvf-dual-writer.js';
|
|
102
102
|
export { getSharedRvfDualWriter, getSharedRvfDualWriterSync, resetSharedRvfDualWriter, } from './shared-rvf-dual-writer.js';
|
|
103
103
|
export { CognitiveContainer, createCognitiveContainer, generateSigningKeyPair, type ContainerSegment, type ContainerManifest, type ExportOptions, type ImportOptions, type ImportResult, type VerificationResult as CognitiveContainerVerificationResult, type ContainerInfo, type Ed25519KeyPair, } from './cognitive-container';
|
|
104
|
-
export { HdcFingerprinter, createHdcFingerprinter, type HdcConfig, type PatternFingerprint, } from './hdc-fingerprint';
|
|
104
|
+
export { HdcFingerprinter, createHdcFingerprinter, HDCPatternFingerprinter, createHDCFingerprinter, createRandomHypervector, bind, bundle, hammingDistance, hammingSimilarity, permute, type HdcConfig, type PatternFingerprint, } from './hdc-fingerprint';
|
|
105
105
|
export { CusumDetector, type CusumConfig, type CusumResult, type GateType, } from './cusum-detector';
|
|
106
106
|
export { DeltaTracker, PATTERN_DELTAS_SCHEMA, type DeltaEvent, type DeltaTrackerConfig, type JsonPatch, } from './delta-tracker';
|
|
107
|
+
export { VectorDeltaTracker, createVectorDeltaTracker, type PatternDelta, type SparseChange, type DeltaSnapshot, type VectorDeltaTrackerConfig, type VectorDeltaTrackerStats, } from './vector-delta-tracker';
|
|
107
108
|
export { GraphMAEEncoder, createGraphMAEEncoder, type GraphMAEConfig, type QEGraph, type GraphMAEResult, } from './graphmae-encoder';
|
|
108
109
|
export { HopfieldMemory, createHopfieldMemory, type HopfieldConfig, type StoredPattern, type RecallResult, } from './hopfield-memory';
|
|
109
110
|
export { ColdTierTrainer, InMemoryGraph, FileBackedGraph, createColdTierTrainer, type ColdTierConfig, type ColdTierGraph, type TrainingResult, type CacheStats, } from './cold-tier-trainer';
|
|
@@ -112,5 +113,7 @@ export { SpectralSparsifier, createSpectralSparsifier, type SparsifierGraph, typ
|
|
|
112
113
|
export { ReservoirReplayBuffer, createReservoirReplayBuffer, type ReservoirEntry, type ReservoirConfig, type ReservoirStats, type CoherenceTier, } from './reservoir-replay';
|
|
113
114
|
export { EpropNetwork, createEpropNetwork, type EpropConfig, type EpropStats, } from './eprop-learner';
|
|
114
115
|
export { GrangerAnalyzer, createGrangerAnalyzer, type TestExecutionHistory, type CausalLink, type GrangerConfig, } from './temporal-causality';
|
|
116
|
+
export { CognitiveRouter, MessagePredictor, OscillatoryRouter, createCognitiveRouter, type CognitiveRoutingConfig, type RoutedMessage, type RoutingStats, } from './cognitive-routing';
|
|
117
|
+
export { HyperbolicHNSW, PoincareOperations, createHyperbolicHNSW, type HyperbolicConfig, type HyperbolicPoint, type HyperbolicSearchResult, } from './hyperbolic-hnsw';
|
|
115
118
|
export { initializeSharedMemory, getSharedServerClient as getFleetSharedClient, setSharedServerClient, isSharedMemoryAvailable, getSharedMemoryStatus, getLastInitResult, shutdownSharedMemory, resetSharedMemoryState, integrateWithFleet, DEFAULT_SHARED_MEMORY_CONFIG, type SharedMemoryConfig, type SharedMemoryResult, type SharedMemoryStatus, } from './shared-memory';
|
|
116
119
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -295,7 +295,9 @@ isGraphMAEEnabled, isHopfieldMemoryEnabled, isColdTierGNNEnabled,
|
|
|
295
295
|
// Phase 5 Milestone 3 (ADR-087)
|
|
296
296
|
isMetaLearningEnabled, isSublinearSolverEnabled, isSpectralSparsificationEnabled, isReservoirReplayEnabled,
|
|
297
297
|
// Phase 5 Milestone 4 (ADR-087)
|
|
298
|
-
isEpropOnlineLearningEnabled, isGrangerCausalityEnabled,
|
|
298
|
+
isEpropOnlineLearningEnabled, isGrangerCausalityEnabled,
|
|
299
|
+
// Phase 5 Milestone 5 (ADR-087)
|
|
300
|
+
isCognitiveRoutingEnabled, isHyperbolicHnswEnabled, DEFAULT_FEATURE_FLAGS, } from './feature-flags';
|
|
299
301
|
// ============================================================================
|
|
300
302
|
// Cross-Domain Transfer Learning (ADR-084, Task 2.3)
|
|
301
303
|
// ============================================================================
|
|
@@ -338,11 +340,13 @@ export { CognitiveContainer, createCognitiveContainer, generateSigningKeyPair, }
|
|
|
338
340
|
// Phase 5: Pattern Intelligence (ADR-087, Milestone 1)
|
|
339
341
|
// ============================================================================
|
|
340
342
|
// R1: HDC Pattern Fingerprinting
|
|
341
|
-
export { HdcFingerprinter, createHdcFingerprinter, } from './hdc-fingerprint';
|
|
343
|
+
export { HdcFingerprinter, createHdcFingerprinter, HDCPatternFingerprinter, createHDCFingerprinter, createRandomHypervector, bind, bundle, hammingDistance, hammingSimilarity, permute, } from './hdc-fingerprint';
|
|
342
344
|
// R2: CUSUM Drift Detection
|
|
343
345
|
export { CusumDetector, } from './cusum-detector';
|
|
344
346
|
// R3: Delta Event Sourcing
|
|
345
347
|
export { DeltaTracker, PATTERN_DELTAS_SCHEMA, } from './delta-tracker';
|
|
348
|
+
// R3: Sparse Vector Delta Event Sourcing (ADR-087 Milestone 1)
|
|
349
|
+
export { VectorDeltaTracker, createVectorDeltaTracker, } from './vector-delta-tracker';
|
|
346
350
|
// ============================================================================
|
|
347
351
|
// Phase 5: Graph Learning (ADR-087, Milestone 2)
|
|
348
352
|
// ============================================================================
|
|
@@ -369,6 +373,13 @@ export { EpropNetwork, createEpropNetwork, } from './eprop-learner';
|
|
|
369
373
|
// R12: Granger Causality for Test Failure Prediction
|
|
370
374
|
export { GrangerAnalyzer, createGrangerAnalyzer, } from './temporal-causality';
|
|
371
375
|
// ============================================================================
|
|
376
|
+
// Phase 5: Routing & Geometry (ADR-087, Milestone 5)
|
|
377
|
+
// ============================================================================
|
|
378
|
+
// R13: Cognitive Routing
|
|
379
|
+
export { CognitiveRouter, MessagePredictor, OscillatoryRouter, createCognitiveRouter, } from './cognitive-routing';
|
|
380
|
+
// R14: Hyperbolic HNSW
|
|
381
|
+
export { HyperbolicHNSW, PoincareOperations, createHyperbolicHNSW, } from './hyperbolic-hnsw';
|
|
382
|
+
// ============================================================================
|
|
372
383
|
// Shared Memory Integration (Fleet Integration)
|
|
373
384
|
// ============================================================================
|
|
374
385
|
export { initializeSharedMemory, getSharedServerClient as getFleetSharedClient, setSharedServerClient, isSharedMemoryAvailable, getSharedMemoryStatus, getLastInitResult, shutdownSharedMemory, resetSharedMemoryState, integrateWithFleet, DEFAULT_SHARED_MEMORY_CONFIG, } from './shared-memory';
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared RVF Adapter Singleton
|
|
3
|
+
*
|
|
4
|
+
* Provides a single RvfNativeAdapter instance for .agentic-qe/patterns.rvf.
|
|
5
|
+
* Used by both the kernel (agent branching) and DreamEngine (COW dreams)
|
|
6
|
+
* to avoid dual file handles to the same .rvf file.
|
|
7
|
+
*
|
|
8
|
+
* Returns null when native bindings are unavailable — callers degrade
|
|
9
|
+
* gracefully.
|
|
10
|
+
*
|
|
11
|
+
* @module integrations/ruvector/shared-rvf-adapter
|
|
12
|
+
*/
|
|
13
|
+
import type { RvfNativeAdapter } from './rvf-native-adapter.js';
|
|
14
|
+
/**
|
|
15
|
+
* Get or create the shared RvfNativeAdapter singleton for patterns.rvf.
|
|
16
|
+
*
|
|
17
|
+
* @param dataDir - Data directory (default: .agentic-qe)
|
|
18
|
+
* @param dimensions - Vector dimensions (default: 384)
|
|
19
|
+
* @returns The shared adapter, or null if native bindings are unavailable
|
|
20
|
+
*/
|
|
21
|
+
export declare function getSharedRvfAdapter(dataDir?: string, dimensions?: number): RvfNativeAdapter | null;
|
|
22
|
+
/** Close the shared adapter and reset the singleton. */
|
|
23
|
+
export declare function resetSharedRvfAdapter(): void;
|
|
24
|
+
//# sourceMappingURL=shared-rvf-adapter.d.ts.map
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared RVF Adapter Singleton
|
|
3
|
+
*
|
|
4
|
+
* Provides a single RvfNativeAdapter instance for .agentic-qe/patterns.rvf.
|
|
5
|
+
* Used by both the kernel (agent branching) and DreamEngine (COW dreams)
|
|
6
|
+
* to avoid dual file handles to the same .rvf file.
|
|
7
|
+
*
|
|
8
|
+
* Returns null when native bindings are unavailable — callers degrade
|
|
9
|
+
* gracefully.
|
|
10
|
+
*
|
|
11
|
+
* @module integrations/ruvector/shared-rvf-adapter
|
|
12
|
+
*/
|
|
13
|
+
let sharedAdapter = null;
|
|
14
|
+
let initAttempted = false;
|
|
15
|
+
/**
|
|
16
|
+
* Get or create the shared RvfNativeAdapter singleton for patterns.rvf.
|
|
17
|
+
*
|
|
18
|
+
* @param dataDir - Data directory (default: .agentic-qe)
|
|
19
|
+
* @param dimensions - Vector dimensions (default: 384)
|
|
20
|
+
* @returns The shared adapter, or null if native bindings are unavailable
|
|
21
|
+
*/
|
|
22
|
+
export function getSharedRvfAdapter(dataDir = '.agentic-qe', dimensions = 384) {
|
|
23
|
+
if (initAttempted)
|
|
24
|
+
return sharedAdapter;
|
|
25
|
+
initAttempted = true;
|
|
26
|
+
try {
|
|
27
|
+
// Dynamic require to match the bundled build pattern used elsewhere
|
|
28
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
29
|
+
const { isRvfNativeAvailable, createRvfStore } = require('./rvf-native-adapter.js');
|
|
30
|
+
if (!isRvfNativeAvailable()) {
|
|
31
|
+
console.warn('[RVF] Native bindings unavailable — agent branching and dream COW disabled. ' +
|
|
32
|
+
'Install @ruvector/rvf-node to enable.');
|
|
33
|
+
return null;
|
|
34
|
+
}
|
|
35
|
+
const path = require('path');
|
|
36
|
+
sharedAdapter = createRvfStore(path.join(dataDir, 'patterns.rvf'), dimensions);
|
|
37
|
+
return sharedAdapter;
|
|
38
|
+
}
|
|
39
|
+
catch (error) {
|
|
40
|
+
console.warn('[RVF] Shared adapter init failed:', error instanceof Error ? error.message : error);
|
|
41
|
+
return null;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
/** Close the shared adapter and reset the singleton. */
|
|
45
|
+
export function resetSharedRvfAdapter() {
|
|
46
|
+
if (sharedAdapter) {
|
|
47
|
+
try {
|
|
48
|
+
sharedAdapter.close();
|
|
49
|
+
}
|
|
50
|
+
catch { /* best effort */ }
|
|
51
|
+
sharedAdapter = null;
|
|
52
|
+
}
|
|
53
|
+
initAttempted = false;
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=shared-rvf-adapter.js.map
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
* continue with SQLite-only operation.
|
|
13
13
|
*/
|
|
14
14
|
import type { RvfDualWriter } from './rvf-dual-writer.js';
|
|
15
|
+
import type { RvfMigrationAdapter } from '../../persistence/rvf-migration-adapter.js';
|
|
15
16
|
/**
|
|
16
17
|
* Get or create the shared RvfDualWriter singleton.
|
|
17
18
|
*
|
|
@@ -31,6 +32,11 @@ export declare function getSharedRvfDualWriter(): Promise<RvfDualWriter | null>;
|
|
|
31
32
|
* initialized or if native RVF is unavailable.
|
|
32
33
|
*/
|
|
33
34
|
export declare function getSharedRvfDualWriterSync(): RvfDualWriter | null;
|
|
35
|
+
/**
|
|
36
|
+
* Get the shared RvfMigrationAdapter (ADR-072).
|
|
37
|
+
* Returns null if migration stage < 2 or if initialization has not completed.
|
|
38
|
+
*/
|
|
39
|
+
export declare function getSharedMigrationAdapter(): RvfMigrationAdapter | null;
|
|
34
40
|
/**
|
|
35
41
|
* Reset the shared RvfDualWriter singleton.
|
|
36
42
|
*
|
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
// Singleton State
|
|
16
16
|
// ============================================================================
|
|
17
17
|
let sharedDualWriter = null;
|
|
18
|
+
let sharedMigrationAdapter = null;
|
|
18
19
|
let initPromise = null;
|
|
19
20
|
/** Tracks whether we already attempted init (to avoid retrying on null result) */
|
|
20
21
|
let initAttempted = false;
|
|
@@ -70,6 +71,35 @@ export async function getSharedRvfDualWriter() {
|
|
|
70
71
|
});
|
|
71
72
|
await writer.initialize();
|
|
72
73
|
sharedDualWriter = writer;
|
|
74
|
+
// ADR-072: Initialize migration adapter when stage >= 2
|
|
75
|
+
try {
|
|
76
|
+
const { getRvfMigrationStage } = await import('./feature-flags.js');
|
|
77
|
+
const stage = getRvfMigrationStage();
|
|
78
|
+
if (stage >= 2) {
|
|
79
|
+
const { RvfMigrationAdapter } = await import('../../persistence/rvf-migration-adapter.js');
|
|
80
|
+
const migrationAdapter = new RvfMigrationAdapter({ stage });
|
|
81
|
+
migrationAdapter.setSqliteDb(db);
|
|
82
|
+
// Wire the RVF store from the dual-writer's native adapter
|
|
83
|
+
const { getSharedRvfAdapter } = await import('./shared-rvf-adapter.js');
|
|
84
|
+
const rvfAdapter = getSharedRvfAdapter();
|
|
85
|
+
if (rvfAdapter) {
|
|
86
|
+
// Wrap the native adapter as an RvfStore
|
|
87
|
+
const rvfStore = {
|
|
88
|
+
ingest: (entries) => rvfAdapter.ingest(entries),
|
|
89
|
+
search: (query, k) => rvfAdapter.search(query, k).map(r => ({ id: r.id, score: r.score })),
|
|
90
|
+
delete: (ids) => rvfAdapter.delete(ids),
|
|
91
|
+
status: () => rvfAdapter.status(),
|
|
92
|
+
close: () => { },
|
|
93
|
+
};
|
|
94
|
+
migrationAdapter.setRvfStore(rvfStore);
|
|
95
|
+
}
|
|
96
|
+
sharedMigrationAdapter = migrationAdapter;
|
|
97
|
+
console.log(`[RVF] Migration adapter active at stage ${stage} (${['sqlite-only', 'hybrid', 'dual-sqlite', 'dual-rvf', 'rvf-primary'][stage]})`);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
catch {
|
|
101
|
+
// Migration adapter is optional — dual-writer works without it
|
|
102
|
+
}
|
|
73
103
|
return writer;
|
|
74
104
|
}
|
|
75
105
|
catch (error) {
|
|
@@ -100,6 +130,13 @@ export async function getSharedRvfDualWriter() {
|
|
|
100
130
|
export function getSharedRvfDualWriterSync() {
|
|
101
131
|
return sharedDualWriter;
|
|
102
132
|
}
|
|
133
|
+
/**
|
|
134
|
+
* Get the shared RvfMigrationAdapter (ADR-072).
|
|
135
|
+
* Returns null if migration stage < 2 or if initialization has not completed.
|
|
136
|
+
*/
|
|
137
|
+
export function getSharedMigrationAdapter() {
|
|
138
|
+
return sharedMigrationAdapter;
|
|
139
|
+
}
|
|
103
140
|
/**
|
|
104
141
|
* Reset the shared RvfDualWriter singleton.
|
|
105
142
|
*
|
|
@@ -116,6 +153,7 @@ export function resetSharedRvfDualWriter() {
|
|
|
116
153
|
}
|
|
117
154
|
sharedDualWriter = null;
|
|
118
155
|
}
|
|
156
|
+
sharedMigrationAdapter = null;
|
|
119
157
|
initPromise = null;
|
|
120
158
|
initAttempted = false;
|
|
121
159
|
}
|
|
@@ -213,6 +213,14 @@ export declare class PersistentSONAEngine {
|
|
|
213
213
|
* @returns Consolidation result, or null if three-loop engine not initialized
|
|
214
214
|
*/
|
|
215
215
|
backgroundConsolidate(): import('./sona-three-loop.js').ConsolidationResult | null;
|
|
216
|
+
/**
|
|
217
|
+
* Check if background consolidation is due (every N requests).
|
|
218
|
+
*
|
|
219
|
+
* Delegates to the base engine's shouldConsolidate().
|
|
220
|
+
*
|
|
221
|
+
* @returns true if consolidation interval has been reached
|
|
222
|
+
*/
|
|
223
|
+
shouldConsolidate(): boolean;
|
|
216
224
|
/**
|
|
217
225
|
* Check if the three-loop engine is initialized and active.
|
|
218
226
|
*/
|
|
@@ -594,6 +594,16 @@ export class PersistentSONAEngine {
|
|
|
594
594
|
this.ensureInitialized();
|
|
595
595
|
return this.baseEngine.backgroundConsolidate();
|
|
596
596
|
}
|
|
597
|
+
/**
|
|
598
|
+
* Check if background consolidation is due (every N requests).
|
|
599
|
+
*
|
|
600
|
+
* Delegates to the base engine's shouldConsolidate().
|
|
601
|
+
*
|
|
602
|
+
* @returns true if consolidation interval has been reached
|
|
603
|
+
*/
|
|
604
|
+
shouldConsolidate() {
|
|
605
|
+
return this.baseEngine.shouldConsolidate();
|
|
606
|
+
}
|
|
597
607
|
/**
|
|
598
608
|
* Check if the three-loop engine is initialized and active.
|
|
599
609
|
*/
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* R3: Sparse Vector Delta Event Sourcing (ADR-087, Milestone 1)
|
|
3
|
+
*
|
|
4
|
+
* Tracks pattern embedding version history using sparse delta encoding.
|
|
5
|
+
* Only changed dimensions are stored, giving massive compression for
|
|
6
|
+
* typical pattern updates where few dimensions change.
|
|
7
|
+
*
|
|
8
|
+
* Storage: In-memory (Map-based). SQLite integration deferred to later task.
|
|
9
|
+
*
|
|
10
|
+
* @module integrations/ruvector/vector-delta-tracker
|
|
11
|
+
*/
|
|
12
|
+
/** A single changed dimension in a vector update */
|
|
13
|
+
export interface SparseChange {
|
|
14
|
+
index: number;
|
|
15
|
+
oldValue: number;
|
|
16
|
+
newValue: number;
|
|
17
|
+
}
|
|
18
|
+
/** A delta event representing a change to a pattern embedding */
|
|
19
|
+
export interface PatternDelta {
|
|
20
|
+
patternId: string;
|
|
21
|
+
version: number;
|
|
22
|
+
timestamp: number;
|
|
23
|
+
deltaType: 'genesis' | 'update' | 'rollback';
|
|
24
|
+
sparseChanges: SparseChange[];
|
|
25
|
+
metadata?: Record<string, unknown>;
|
|
26
|
+
compressedSize?: number;
|
|
27
|
+
}
|
|
28
|
+
/** A full vector snapshot at a specific version */
|
|
29
|
+
export interface DeltaSnapshot {
|
|
30
|
+
patternId: string;
|
|
31
|
+
version: number;
|
|
32
|
+
fullVector: number[];
|
|
33
|
+
timestamp: number;
|
|
34
|
+
}
|
|
35
|
+
/** Configuration for the VectorDeltaTracker */
|
|
36
|
+
export interface VectorDeltaTrackerConfig {
|
|
37
|
+
/** Max deltas to retain per pattern (default: 50) */
|
|
38
|
+
maxHistoryPerPattern: number;
|
|
39
|
+
/** Full snapshot every N deltas (default: 10) */
|
|
40
|
+
snapshotInterval: number;
|
|
41
|
+
/** Buffer deltas before flushing (default: 20) */
|
|
42
|
+
batchSize: number;
|
|
43
|
+
/** Min absolute diff to count as changed (default: 1e-7) */
|
|
44
|
+
epsilon: number;
|
|
45
|
+
}
|
|
46
|
+
/** Summary statistics */
|
|
47
|
+
export interface VectorDeltaTrackerStats {
|
|
48
|
+
totalPatterns: number;
|
|
49
|
+
totalDeltas: number;
|
|
50
|
+
avgDeltasPerPattern: number;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Tracks pattern embedding version history using sparse delta encoding.
|
|
54
|
+
* Genesis creates a v0 snapshot; subsequent updates store only changed dims.
|
|
55
|
+
* Periodic snapshots enable fast reconstruction via nearest-snapshot + replay.
|
|
56
|
+
*/
|
|
57
|
+
export declare class VectorDeltaTracker {
|
|
58
|
+
private readonly config;
|
|
59
|
+
private readonly history;
|
|
60
|
+
private readonly snapshots;
|
|
61
|
+
private readonly versions;
|
|
62
|
+
private readonly buffer;
|
|
63
|
+
constructor(config?: Partial<VectorDeltaTrackerConfig>);
|
|
64
|
+
/** Create v0 genesis. All dimensions stored as changes from zero vector. */
|
|
65
|
+
recordGenesis(patternId: string, vector: number[], metadata?: Record<string, unknown>): PatternDelta;
|
|
66
|
+
/** Record a sparse delta between old and new vectors. */
|
|
67
|
+
recordDelta(patternId: string, oldVector: number[], newVector: number[], metadata?: Record<string, unknown>): PatternDelta;
|
|
68
|
+
/** Get delta history for a pattern, newest first. */
|
|
69
|
+
getHistory(patternId: string, limit?: number): PatternDelta[];
|
|
70
|
+
/** Rollback to a version. Returns null if version does not exist. */
|
|
71
|
+
rollback(patternId: string, targetVersion: number): DeltaSnapshot | null;
|
|
72
|
+
/** Current version for a pattern (-1 if unknown). */
|
|
73
|
+
getVersion(patternId: string): number;
|
|
74
|
+
/** Rebuild full vector at a version via nearest snapshot + forward replay. */
|
|
75
|
+
reconstructAtVersion(patternId: string, version: number): number[] | null;
|
|
76
|
+
/** Remove old deltas beyond retention limit. Returns count pruned. */
|
|
77
|
+
pruneHistory(patternId: string, keepVersions?: number): number;
|
|
78
|
+
/** Summary statistics. */
|
|
79
|
+
getStats(): VectorDeltaTrackerStats;
|
|
80
|
+
/** Flush write batch. Returns buffered deltas and clears the buffer. */
|
|
81
|
+
flush(): PatternDelta[];
|
|
82
|
+
/** Number of buffered (unflushed) deltas. */
|
|
83
|
+
getBufferSize(): number;
|
|
84
|
+
/** Clear all data. */
|
|
85
|
+
clear(): void;
|
|
86
|
+
private computeSparseChanges;
|
|
87
|
+
private applySparseForward;
|
|
88
|
+
private enforceRetention;
|
|
89
|
+
private getOrCreate;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Create a VectorDeltaTracker instance.
|
|
93
|
+
* Returns null if useDeltaEventSourcing feature flag is disabled.
|
|
94
|
+
*/
|
|
95
|
+
export declare function createVectorDeltaTracker(config?: Partial<VectorDeltaTrackerConfig>): VectorDeltaTracker | null;
|
|
96
|
+
//# sourceMappingURL=vector-delta-tracker.d.ts.map
|
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* R3: Sparse Vector Delta Event Sourcing (ADR-087, Milestone 1)
|
|
3
|
+
*
|
|
4
|
+
* Tracks pattern embedding version history using sparse delta encoding.
|
|
5
|
+
* Only changed dimensions are stored, giving massive compression for
|
|
6
|
+
* typical pattern updates where few dimensions change.
|
|
7
|
+
*
|
|
8
|
+
* Storage: In-memory (Map-based). SQLite integration deferred to later task.
|
|
9
|
+
*
|
|
10
|
+
* @module integrations/ruvector/vector-delta-tracker
|
|
11
|
+
*/
|
|
12
|
+
import { isDeltaEventSourcingEnabled } from './feature-flags.js';
|
|
13
|
+
const DEFAULT_CONFIG = {
|
|
14
|
+
maxHistoryPerPattern: 50,
|
|
15
|
+
snapshotInterval: 10,
|
|
16
|
+
batchSize: 20,
|
|
17
|
+
epsilon: 1e-7,
|
|
18
|
+
};
|
|
19
|
+
// ============================================================================
|
|
20
|
+
// VectorDeltaTracker
|
|
21
|
+
// ============================================================================
|
|
22
|
+
/**
|
|
23
|
+
* Tracks pattern embedding version history using sparse delta encoding.
|
|
24
|
+
* Genesis creates a v0 snapshot; subsequent updates store only changed dims.
|
|
25
|
+
* Periodic snapshots enable fast reconstruction via nearest-snapshot + replay.
|
|
26
|
+
*/
|
|
27
|
+
export class VectorDeltaTracker {
|
|
28
|
+
config;
|
|
29
|
+
history = new Map();
|
|
30
|
+
snapshots = new Map();
|
|
31
|
+
versions = new Map();
|
|
32
|
+
buffer = [];
|
|
33
|
+
constructor(config) {
|
|
34
|
+
this.config = { ...DEFAULT_CONFIG, ...config };
|
|
35
|
+
}
|
|
36
|
+
/** Create v0 genesis. All dimensions stored as changes from zero vector. */
|
|
37
|
+
recordGenesis(patternId, vector, metadata) {
|
|
38
|
+
if (this.versions.has(patternId)) {
|
|
39
|
+
throw new Error(`Genesis already exists for pattern ${patternId} (version ${this.versions.get(patternId)})`);
|
|
40
|
+
}
|
|
41
|
+
const sparseChanges = this.computeSparseChanges(new Array(vector.length).fill(0), vector);
|
|
42
|
+
const delta = {
|
|
43
|
+
patternId, version: 0, timestamp: Date.now(),
|
|
44
|
+
deltaType: 'genesis', sparseChanges, metadata,
|
|
45
|
+
compressedSize: sparseChanges.length,
|
|
46
|
+
};
|
|
47
|
+
const snapshot = {
|
|
48
|
+
patternId, version: 0,
|
|
49
|
+
fullVector: [...vector], timestamp: delta.timestamp,
|
|
50
|
+
};
|
|
51
|
+
this.versions.set(patternId, 0);
|
|
52
|
+
this.getOrCreate(this.history, patternId).push(delta);
|
|
53
|
+
this.getOrCreate(this.snapshots, patternId).push(snapshot);
|
|
54
|
+
this.buffer.push(delta);
|
|
55
|
+
return delta;
|
|
56
|
+
}
|
|
57
|
+
/** Record a sparse delta between old and new vectors. */
|
|
58
|
+
recordDelta(patternId, oldVector, newVector, metadata) {
|
|
59
|
+
const cur = this.versions.get(patternId);
|
|
60
|
+
if (cur === undefined) {
|
|
61
|
+
throw new Error(`No genesis found for pattern ${patternId}. Call recordGenesis() first.`);
|
|
62
|
+
}
|
|
63
|
+
const nextVersion = cur + 1;
|
|
64
|
+
const sparseChanges = this.computeSparseChanges(oldVector, newVector);
|
|
65
|
+
const delta = {
|
|
66
|
+
patternId, version: nextVersion, timestamp: Date.now(),
|
|
67
|
+
deltaType: 'update', sparseChanges, metadata,
|
|
68
|
+
compressedSize: sparseChanges.length,
|
|
69
|
+
};
|
|
70
|
+
this.versions.set(patternId, nextVersion);
|
|
71
|
+
this.getOrCreate(this.history, patternId).push(delta);
|
|
72
|
+
this.buffer.push(delta);
|
|
73
|
+
if (nextVersion % this.config.snapshotInterval === 0) {
|
|
74
|
+
this.getOrCreate(this.snapshots, patternId).push({
|
|
75
|
+
patternId, version: nextVersion,
|
|
76
|
+
fullVector: [...newVector], timestamp: delta.timestamp,
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
this.enforceRetention(patternId);
|
|
80
|
+
return delta;
|
|
81
|
+
}
|
|
82
|
+
/** Get delta history for a pattern, newest first. */
|
|
83
|
+
getHistory(patternId, limit) {
|
|
84
|
+
const deltas = this.history.get(patternId);
|
|
85
|
+
if (!deltas || deltas.length === 0)
|
|
86
|
+
return [];
|
|
87
|
+
const reversed = [...deltas].reverse();
|
|
88
|
+
return (limit !== undefined && limit > 0) ? reversed.slice(0, limit) : reversed;
|
|
89
|
+
}
|
|
90
|
+
/** Rollback to a version. Returns null if version does not exist. */
|
|
91
|
+
rollback(patternId, targetVersion) {
|
|
92
|
+
const vector = this.reconstructAtVersion(patternId, targetVersion);
|
|
93
|
+
if (vector === null)
|
|
94
|
+
return null;
|
|
95
|
+
return { patternId, version: targetVersion, fullVector: vector, timestamp: Date.now() };
|
|
96
|
+
}
|
|
97
|
+
/** Current version for a pattern (-1 if unknown). */
|
|
98
|
+
getVersion(patternId) {
|
|
99
|
+
return this.versions.get(patternId) ?? -1;
|
|
100
|
+
}
|
|
101
|
+
/** Rebuild full vector at a version via nearest snapshot + forward replay. */
|
|
102
|
+
reconstructAtVersion(patternId, version) {
|
|
103
|
+
const deltas = this.history.get(patternId);
|
|
104
|
+
if (!deltas || deltas.length === 0)
|
|
105
|
+
return null;
|
|
106
|
+
const cur = this.versions.get(patternId);
|
|
107
|
+
if (version < 0 || version > cur)
|
|
108
|
+
return null;
|
|
109
|
+
const snaps = this.snapshots.get(patternId) || [];
|
|
110
|
+
let base = null;
|
|
111
|
+
for (let i = snaps.length - 1; i >= 0; i--) {
|
|
112
|
+
if (snaps[i].version <= version) {
|
|
113
|
+
base = snaps[i];
|
|
114
|
+
break;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
if (!base)
|
|
118
|
+
return null;
|
|
119
|
+
const vector = [...base.fullVector];
|
|
120
|
+
const start = base.version + 1;
|
|
121
|
+
for (const d of deltas) {
|
|
122
|
+
if (d.version < start)
|
|
123
|
+
continue;
|
|
124
|
+
if (d.version > version)
|
|
125
|
+
break;
|
|
126
|
+
this.applySparseForward(vector, d.sparseChanges);
|
|
127
|
+
}
|
|
128
|
+
return vector;
|
|
129
|
+
}
|
|
130
|
+
/** Remove old deltas beyond retention limit. Returns count pruned. */
|
|
131
|
+
pruneHistory(patternId, keepVersions) {
|
|
132
|
+
const maxKeep = keepVersions ?? this.config.maxHistoryPerPattern;
|
|
133
|
+
const deltas = this.history.get(patternId);
|
|
134
|
+
if (!deltas || deltas.length <= maxKeep)
|
|
135
|
+
return 0;
|
|
136
|
+
const pruneCount = deltas.length - maxKeep;
|
|
137
|
+
const pruned = deltas.slice(0, pruneCount);
|
|
138
|
+
const kept = deltas.slice(pruneCount);
|
|
139
|
+
// Always preserve genesis
|
|
140
|
+
const gi = pruned.findIndex(d => d.deltaType === 'genesis');
|
|
141
|
+
if (gi >= 0) {
|
|
142
|
+
kept.unshift(pruned[gi]);
|
|
143
|
+
pruned.splice(gi, 1);
|
|
144
|
+
}
|
|
145
|
+
this.history.set(patternId, kept);
|
|
146
|
+
// Prune old snapshots (keep genesis + those >= oldest kept version)
|
|
147
|
+
const oldest = kept[0]?.version ?? 0;
|
|
148
|
+
const snaps = this.snapshots.get(patternId);
|
|
149
|
+
if (snaps) {
|
|
150
|
+
this.snapshots.set(patternId, snaps.filter(s => s.version === 0 || s.version >= oldest));
|
|
151
|
+
}
|
|
152
|
+
return pruned.length;
|
|
153
|
+
}
|
|
154
|
+
/** Summary statistics. */
|
|
155
|
+
getStats() {
|
|
156
|
+
let totalDeltas = 0;
|
|
157
|
+
for (const d of this.history.values())
|
|
158
|
+
totalDeltas += d.length;
|
|
159
|
+
const totalPatterns = this.history.size;
|
|
160
|
+
return {
|
|
161
|
+
totalPatterns, totalDeltas,
|
|
162
|
+
avgDeltasPerPattern: totalPatterns > 0 ? totalDeltas / totalPatterns : 0,
|
|
163
|
+
};
|
|
164
|
+
}
|
|
165
|
+
/** Flush write batch. Returns buffered deltas and clears the buffer. */
|
|
166
|
+
flush() {
|
|
167
|
+
const flushed = [...this.buffer];
|
|
168
|
+
this.buffer.length = 0;
|
|
169
|
+
return flushed;
|
|
170
|
+
}
|
|
171
|
+
/** Number of buffered (unflushed) deltas. */
|
|
172
|
+
getBufferSize() { return this.buffer.length; }
|
|
173
|
+
/** Clear all data. */
|
|
174
|
+
clear() {
|
|
175
|
+
this.history.clear();
|
|
176
|
+
this.snapshots.clear();
|
|
177
|
+
this.versions.clear();
|
|
178
|
+
this.buffer.length = 0;
|
|
179
|
+
}
|
|
180
|
+
// --------------------------------------------------------------------------
|
|
181
|
+
// Private
|
|
182
|
+
// --------------------------------------------------------------------------
|
|
183
|
+
computeSparseChanges(old, cur) {
|
|
184
|
+
const changes = [];
|
|
185
|
+
const len = Math.max(old.length, cur.length);
|
|
186
|
+
for (let i = 0; i < len; i++) {
|
|
187
|
+
const ov = i < old.length ? old[i] : 0;
|
|
188
|
+
const nv = i < cur.length ? cur[i] : 0;
|
|
189
|
+
if (Math.abs(ov - nv) > this.config.epsilon) {
|
|
190
|
+
changes.push({ index: i, oldValue: ov, newValue: nv });
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
return changes;
|
|
194
|
+
}
|
|
195
|
+
applySparseForward(vector, changes) {
|
|
196
|
+
for (const c of changes) {
|
|
197
|
+
while (vector.length <= c.index)
|
|
198
|
+
vector.push(0);
|
|
199
|
+
vector[c.index] = c.newValue;
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
enforceRetention(patternId) {
|
|
203
|
+
this.pruneHistory(patternId, this.config.maxHistoryPerPattern);
|
|
204
|
+
}
|
|
205
|
+
getOrCreate(map, key) {
|
|
206
|
+
let arr = map.get(key);
|
|
207
|
+
if (!arr) {
|
|
208
|
+
arr = [];
|
|
209
|
+
map.set(key, arr);
|
|
210
|
+
}
|
|
211
|
+
return arr;
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
// ============================================================================
|
|
215
|
+
// Factory
|
|
216
|
+
// ============================================================================
|
|
217
|
+
/**
|
|
218
|
+
* Create a VectorDeltaTracker instance.
|
|
219
|
+
* Returns null if useDeltaEventSourcing feature flag is disabled.
|
|
220
|
+
*/
|
|
221
|
+
export function createVectorDeltaTracker(config) {
|
|
222
|
+
if (!isDeltaEventSourcingEnabled())
|
|
223
|
+
return null;
|
|
224
|
+
return new VectorDeltaTracker(config);
|
|
225
|
+
}
|
|
226
|
+
//# sourceMappingURL=vector-delta-tracker.js.map
|