agentic-qe 3.13.12 → 3.14.0
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/qe-court/SKILL.md +4 -4
- package/.claude/skills/qe-court/config-schema.json +38 -0
- package/.claude/skills/qe-court/evals/qe-court.yaml +8 -8
- package/.claude/skills/skills-manifest.json +1 -1
- package/CHANGELOG.md +53 -0
- package/assets/skills/qe-court/SKILL.md +4 -4
- package/assets/skills/qe-court/config-schema.json +38 -0
- package/assets/skills/qe-court/evals/qe-court.yaml +8 -8
- package/assets/skills/skills-manifest.json +1 -1
- package/dist/cli/brain-commands.d.ts +1 -0
- package/dist/cli/brain-commands.js +1 -0
- package/dist/cli/bundle.js +5 -5
- package/dist/cli/chunks/adapter-3VBXL7DO.js +2 -0
- package/dist/cli/chunks/{agent-booster-wasm-7I7LZFNC.js → agent-booster-wasm-JZO6VUW4.js} +2 -2
- package/dist/cli/chunks/{agent-handler-QZZT52BH.js → agent-handler-534KFGEJ.js} +2 -2
- package/dist/cli/chunks/{agent-memory-branch-MLQS5Y26.js → agent-memory-branch-B7KWLWY4.js} +2 -2
- package/dist/cli/chunks/aqe-learning-engine-NXRNKJNA.js +2 -0
- package/dist/cli/chunks/{arena-IM4CP6LP.js → arena-7CCD3S3I.js} +2 -2
- package/dist/cli/chunks/{arena-WRIY37EJ.js → arena-OW5MELJX.js} +4 -4
- package/dist/cli/chunks/{audit-BSAQ4EFN.js → audit-BHVKN4E2.js} +3 -3
- package/dist/cli/chunks/base-F6GMOKU2.js +2 -0
- package/dist/cli/chunks/{better-sqlite3-X2XZUXWZ.js → better-sqlite3-P5FA6WFK.js} +2 -2
- package/dist/cli/chunks/brain-handler-WNW5LOV7.js +90 -0
- package/dist/cli/chunks/{branch-enumerator-NI4Q7DSJ.js → branch-enumerator-TVZ2ODKH.js} +2 -2
- package/dist/cli/chunks/{browser-PXBLORUZ.js → browser-TCEB2W2F.js} +2 -2
- package/dist/cli/chunks/browser-workflow-QRDC46LR.js +2 -0
- package/dist/cli/chunks/{chunk-4FVOJBEU.js → chunk-2D7UBX5S.js} +1 -1
- package/dist/cli/chunks/{chunk-NG6A7LCG.js → chunk-2HYVOX6N.js} +1 -1
- package/dist/cli/chunks/{chunk-MGKH4LCM.js → chunk-2NO4H35K.js} +1 -1
- package/dist/cli/chunks/{chunk-UC4EIULB.js → chunk-2O4DDPEA.js} +19 -19
- package/dist/cli/chunks/{chunk-IT5QIUUA.js → chunk-3EM2MK3Z.js} +2 -2
- package/dist/cli/chunks/chunk-3GUO4ERR.js +24 -0
- package/dist/cli/chunks/{chunk-XIKYUBIV.js → chunk-3JIJBR4V.js} +2 -2
- package/dist/cli/chunks/{chunk-NL2SCAGJ.js → chunk-3QT6S3A3.js} +3 -3
- package/dist/cli/chunks/{chunk-SOS37ECY.js → chunk-3RYTAYR6.js} +1 -1
- package/dist/cli/chunks/chunk-43GPSYAL.js +14 -0
- package/dist/cli/chunks/{chunk-IPDM3CAK.js → chunk-4FEJEVG7.js} +1 -1
- package/dist/cli/chunks/{chunk-M3354CE4.js → chunk-4MK2G6TK.js} +2 -2
- package/dist/cli/chunks/{chunk-AM42ROKZ.js → chunk-4XTHRAUV.js} +1 -1
- package/dist/cli/chunks/{chunk-LRO74LPA.js → chunk-4ZVGSVHV.js} +4 -4
- package/dist/cli/chunks/{chunk-I5SXLV7D.js → chunk-52DFCV57.js} +2 -2
- package/dist/cli/chunks/{chunk-WYFAPA2G.js → chunk-5LEAGKX5.js} +2 -2
- package/dist/cli/chunks/{chunk-OZ53BIY5.js → chunk-5MZF4N4Q.js} +1 -1
- package/dist/cli/chunks/{chunk-NDRZZSD5.js → chunk-5VDVYTO5.js} +2 -2
- package/dist/cli/chunks/chunk-5XGVSQS2.js +11 -0
- package/dist/cli/chunks/{chunk-SXFSJJZF.js → chunk-6AOZU3UN.js} +2 -2
- package/dist/cli/chunks/{chunk-2VTX4SYW.js → chunk-6AYO3IR2.js} +2 -2
- package/dist/cli/chunks/{chunk-4AITMWFZ.js → chunk-6DPAMYLU.js} +2 -2
- package/dist/cli/chunks/{chunk-WE3VKDMK.js → chunk-6IJMD2ZL.js} +3 -3
- package/dist/cli/chunks/{chunk-5E76HULA.js → chunk-6IZQSLYZ.js} +2 -2
- package/dist/cli/chunks/{chunk-VBHA4SDU.js → chunk-6W42XWLL.js} +2 -2
- package/dist/cli/chunks/{chunk-ASWWBNX2.js → chunk-7BOPFN3Y.js} +2 -2
- package/dist/cli/chunks/{chunk-SCQNISGS.js → chunk-7OUMJCJT.js} +1 -1
- package/dist/cli/chunks/{chunk-M73KM3AZ.js → chunk-7RAB2BZY.js} +160 -26
- package/dist/cli/chunks/{chunk-4ANJV6I4.js → chunk-7RVAHJQZ.js} +3 -3
- package/dist/cli/chunks/{chunk-VQCLSX7T.js → chunk-A2WZEMWT.js} +1 -1
- package/dist/cli/chunks/{chunk-YQOQVSYU.js → chunk-A7SKM6JL.js} +1 -1
- package/dist/cli/chunks/chunk-AFGT26NR.js +2 -0
- package/dist/cli/chunks/{chunk-JVFZAJ5N.js → chunk-AR6SATU3.js} +2 -2
- package/dist/cli/chunks/{chunk-YL2GOJF6.js → chunk-AVLA5PBJ.js} +2 -2
- package/dist/cli/chunks/{chunk-R7LGVJMZ.js → chunk-B3H4K7CY.js} +2 -2
- package/dist/cli/chunks/{chunk-UWZYXI3R.js → chunk-BQCTO7UB.js} +2 -2
- package/dist/cli/chunks/{chunk-HAJG44BD.js → chunk-BZ4QVFP2.js} +2 -2
- package/dist/cli/chunks/{chunk-NNLZAVFH.js → chunk-CIUOC5F3.js} +1 -1
- package/dist/cli/chunks/{chunk-KRZYWVS3.js → chunk-CIZ6LSNV.js} +2 -2
- package/dist/cli/chunks/{chunk-HQWFZQMJ.js → chunk-DDPJUAXQ.js} +2 -2
- package/dist/cli/chunks/{chunk-X3JNFQW2.js → chunk-DJITEQYS.js} +2 -2
- package/dist/cli/chunks/{chunk-TB2N3CAK.js → chunk-DOWCOZDO.js} +2 -2
- package/dist/cli/chunks/{chunk-GJJWXRAD.js → chunk-E4NU4BJA.js} +2 -2
- package/dist/cli/chunks/{chunk-H3GAR4SV.js → chunk-E722WNWC.js} +2 -2
- package/dist/cli/chunks/chunk-ECTPFCON.js +2 -0
- package/dist/cli/chunks/{chunk-4YFXF5AQ.js → chunk-EJ6IP7DE.js} +5 -5
- package/dist/cli/chunks/{chunk-AN5CGTTJ.js → chunk-ENGKLFLY.js} +2 -2
- package/dist/cli/chunks/{chunk-7A4WTRWI.js → chunk-FF43SRP6.js} +1 -1
- package/dist/cli/chunks/{chunk-52VGZJSD.js → chunk-FOHYBR3O.js} +1 -1
- package/dist/cli/chunks/{chunk-6KI6LAAZ.js → chunk-FRL3X2QA.js} +2 -2
- package/dist/cli/chunks/{chunk-3ASVQILY.js → chunk-GKNDP5VK.js} +2 -2
- package/dist/cli/chunks/{chunk-2VY7FL6A.js → chunk-GVEJP5T7.js} +2 -2
- package/dist/cli/chunks/{chunk-VD53LBF7.js → chunk-H3YDDKBW.js} +3 -3
- package/dist/cli/chunks/{chunk-Z6DSYLAG.js → chunk-H6NFDOMK.js} +1 -1
- package/dist/cli/chunks/{chunk-BZIPYXSW.js → chunk-H76TV4UU.js} +3 -3
- package/dist/cli/chunks/{chunk-XT473WPO.js → chunk-HJIAVR6P.js} +2 -2
- package/dist/cli/chunks/{chunk-MLXLGBQZ.js → chunk-HLNQDRHA.js} +1 -1
- package/dist/cli/chunks/{chunk-DGFINXUE.js → chunk-HNKPLVYS.js} +1 -1
- package/dist/cli/chunks/{chunk-WXU7FAEB.js → chunk-HQ7243G3.js} +2 -2
- package/dist/cli/chunks/{chunk-VA2ORJB5.js → chunk-HQHLHSJO.js} +2 -2
- package/dist/cli/chunks/{chunk-2W3D5A4R.js → chunk-I3VHXA2W.js} +2 -2
- package/dist/cli/chunks/{chunk-EG73WYAW.js → chunk-IE5LC7MB.js} +2 -2
- package/dist/cli/chunks/{chunk-S6WHYOWV.js → chunk-IL4AEB3J.js} +27 -25
- package/dist/cli/chunks/{chunk-TWUWLSGQ.js → chunk-IL6QRXRP.js} +6 -6
- package/dist/cli/chunks/{chunk-5PNQNBDZ.js → chunk-IQ3JFHZN.js} +1 -1
- package/dist/cli/chunks/{chunk-MB2KLJ6Q.js → chunk-IQLRA4FV.js} +1 -1
- package/dist/cli/chunks/{chunk-A5RWLPVT.js → chunk-J3XSHJGK.js} +2 -2
- package/dist/cli/chunks/{chunk-U5G6OC2C.js → chunk-JAK5UUWH.js} +2 -2
- package/dist/cli/chunks/{chunk-E67ZXRG6.js → chunk-JGROLJ33.js} +1 -1
- package/dist/cli/chunks/{chunk-VNODKACB.js → chunk-JMKMDSXG.js} +2 -2
- package/dist/cli/chunks/{chunk-LXVT6JXO.js → chunk-JRKEBESE.js} +2 -2
- package/dist/cli/chunks/{chunk-AKUDUB3O.js → chunk-JTWJR2KY.js} +2 -2
- package/dist/cli/chunks/{chunk-IOJ34SXJ.js → chunk-JY4VZ6BN.js} +2 -2
- package/dist/cli/chunks/{chunk-AYH3DMW2.js → chunk-K6CGQR5R.js} +1 -1
- package/dist/cli/chunks/{chunk-QXO35J6F.js → chunk-KDIZQHG5.js} +2 -2
- package/dist/cli/chunks/{chunk-7LATB5IR.js → chunk-KTSCZ7AW.js} +2 -2
- package/dist/cli/chunks/{chunk-M7CPJW53.js → chunk-L4C42WYI.js} +2 -2
- package/dist/cli/chunks/{chunk-QG5L2JM5.js → chunk-LCSVROU7.js} +10 -10
- package/dist/cli/chunks/{chunk-6BSZHNOC.js → chunk-LKR7T3OZ.js} +1 -1
- package/dist/cli/chunks/{chunk-GJUGG6UR.js → chunk-LZHTCUCO.js} +2 -2
- package/dist/cli/chunks/{chunk-7RVLVIAI.js → chunk-M3HUZD2I.js} +1 -1
- package/dist/cli/chunks/{chunk-RP5VFZJO.js → chunk-MO7EITJK.js} +2 -2
- package/dist/cli/chunks/{chunk-44NPKZGI.js → chunk-N2YAUDAV.js} +2 -2
- package/dist/cli/chunks/{chunk-G6FJHDUG.js → chunk-NDPQ2WPU.js} +1 -1
- package/dist/cli/chunks/{chunk-UBOGJHWC.js → chunk-NKWO2X3T.js} +1 -1
- package/dist/cli/chunks/{chunk-NJ3QXJ54.js → chunk-NOPVFBQM.js} +2 -2
- package/dist/cli/chunks/{chunk-AOOCV56W.js → chunk-NYARYONH.js} +1 -1
- package/dist/cli/chunks/{chunk-6KKVMPPR.js → chunk-O2MZZL54.js} +2 -2
- package/dist/cli/chunks/{chunk-2JAC57JE.js → chunk-OIYUSWHX.js} +1 -1
- package/dist/cli/chunks/{chunk-BODFJ3DC.js → chunk-OONCRNFA.js} +2 -2
- package/dist/cli/chunks/{chunk-ZMYV4R32.js → chunk-PEW6FZ47.js} +1 -1
- package/dist/cli/chunks/{chunk-42AS3HPO.js → chunk-Q73RRTLE.js} +2 -2
- package/dist/cli/chunks/{chunk-IQH2RDN3.js → chunk-QKQZ4IJF.js} +5 -5
- package/dist/cli/chunks/{chunk-MYVKTG55.js → chunk-QMMDN4WX.js} +3 -3
- package/dist/cli/chunks/chunk-QQCENKCX.js +2 -0
- package/dist/cli/chunks/{chunk-7PCIN7UN.js → chunk-QSPRQPEL.js} +2 -2
- package/dist/cli/chunks/{chunk-ZSAGRDXA.js → chunk-QZPFUFZG.js} +2 -2
- package/dist/cli/chunks/chunk-R2B6EE45.js +2 -0
- package/dist/cli/chunks/{chunk-33YZGOT6.js → chunk-R6WJF4D5.js} +2 -2
- package/dist/cli/chunks/{chunk-QM4Z7TQH.js → chunk-RGVD6ZUX.js} +1 -1
- package/dist/cli/chunks/{chunk-VQD2ELNL.js → chunk-RKUYVVGJ.js} +2 -2
- package/dist/cli/chunks/{chunk-5VSS2RBD.js → chunk-S5YVLPXU.js} +2 -2
- package/dist/cli/chunks/{chunk-IPZEBALY.js → chunk-SROZXIMT.js} +37 -37
- package/dist/cli/chunks/{chunk-GMLRIZ4E.js → chunk-SSV6KSFT.js} +1 -1
- package/dist/cli/chunks/{chunk-PVINNJ4P.js → chunk-SUSMHSXT.js} +2 -2
- package/dist/cli/chunks/{chunk-KXSUDN46.js → chunk-T3BZAFLP.js} +1 -1
- package/dist/cli/chunks/{chunk-MLFELTJX.js → chunk-TGOGCA74.js} +2 -2
- package/dist/cli/chunks/{chunk-G45AOQDZ.js → chunk-TKYEP7OR.js} +1 -1
- package/dist/cli/chunks/{chunk-KYJBJ56M.js → chunk-TQJE7DNL.js} +2 -2
- package/dist/cli/chunks/{chunk-5PI75QYP.js → chunk-TRDEULS7.js} +2 -2
- package/dist/cli/chunks/{chunk-OG3DBHIV.js → chunk-U4GZWPKM.js} +2 -2
- package/dist/cli/chunks/{chunk-NJ4YVAG7.js → chunk-UI6WSPEK.js} +3 -3
- package/dist/cli/chunks/{chunk-4M7YZ2X7.js → chunk-UUJ5VQJM.js} +1 -1
- package/dist/cli/chunks/{chunk-UJUK6T4V.js → chunk-VESOYP6A.js} +2 -2
- package/dist/cli/chunks/{chunk-7ZVO7I4Q.js → chunk-VOSISOFD.js} +1 -1
- package/dist/cli/chunks/{chunk-HRTSYT4N.js → chunk-VPVZHJSU.js} +2 -2
- package/dist/cli/chunks/{chunk-66OQ7AB3.js → chunk-VRRG66XB.js} +1 -1
- package/dist/cli/chunks/{chunk-4Z4X2ND4.js → chunk-VXU53F7Z.js} +2 -2
- package/dist/cli/chunks/{chunk-XM5I7J5S.js → chunk-VYENTZ45.js} +2 -2
- package/dist/cli/chunks/chunk-WJXHE52V.js +65 -0
- package/dist/cli/chunks/{chunk-3XVZHJQT.js → chunk-WKNWRDA5.js} +1 -1
- package/dist/cli/chunks/{chunk-DFLASG3B.js → chunk-WTHAVFIC.js} +1 -1
- package/dist/cli/chunks/{chunk-NTALX2YC.js → chunk-WWWX76QB.js} +2 -2
- package/dist/cli/chunks/{chunk-L3GBNX7B.js → chunk-XITTURP2.js} +2 -2
- package/dist/cli/chunks/{chunk-FI6J3UHJ.js → chunk-XXFKN7LB.js} +1 -1
- package/dist/cli/chunks/{chunk-RP2BRRLX.js → chunk-YEAC3DC6.js} +2 -2
- package/dist/cli/chunks/{chunk-JTYCOFTD.js → chunk-YKWMKRYB.js} +1 -1
- package/dist/cli/chunks/chunk-YKZV7O65.js +2 -0
- package/dist/cli/chunks/{chunk-N4OQ4D4V.js → chunk-YW4RNZWT.js} +2 -2
- package/dist/cli/chunks/{chunk-P6EFKHNI.js → chunk-ZAAYOENS.js} +2 -2
- package/dist/cli/chunks/chunk-ZBKGX72B.js +13 -0
- package/dist/cli/chunks/{chunk-TJVTV3HP.js → chunk-ZBOWR4XT.js} +2 -2
- package/dist/cli/chunks/{chunk-4THFPRFM.js → chunk-ZCVJCCQQ.js} +2 -2
- package/dist/cli/chunks/{chunk-X2SZCVDA.js → chunk-ZI3UO7QR.js} +8 -7
- package/dist/cli/chunks/{chunk-DCVFHVPR.js → chunk-ZNSMVQCG.js} +2 -2
- package/dist/cli/chunks/{chunk-Z56BBX77.js → chunk-ZQSXG7FA.js} +2 -2
- package/dist/cli/chunks/{ci-QAUD62WH.js → ci-B432UH6N.js} +2 -2
- package/dist/cli/chunks/{ci-output-TZDVTNE7.js → ci-output-GTHH7WYG.js} +2 -2
- package/dist/cli/chunks/{circuit-breaker-ZWPHJ7YJ.js → circuit-breaker-VW75DLME.js} +2 -2
- package/dist/cli/chunks/{claude-flow-setup-SCB4EURN.js → claude-flow-setup-RE3IVT7U.js} +2 -2
- package/dist/cli/chunks/client-HNBZUEVV.js +2 -0
- package/dist/cli/chunks/{cline-installer-EHZLMLXF.js → cline-installer-NUBZZ55N.js} +2 -2
- package/dist/cli/chunks/{code-3N6PBJMK.js → code-K6JCWKNW.js} +2 -2
- package/dist/cli/chunks/{code-index-extractor-6DIKHNRI.js → code-index-extractor-I4ILB5JN.js} +2 -2
- package/dist/cli/chunks/{codex-installer-P7DPQMYL.js → codex-installer-AKQ5BCHU.js} +2 -2
- package/dist/cli/chunks/{completions-5MKWWCCE.js → completions-V3KJVJF4.js} +2 -2
- package/dist/cli/chunks/{complexity-analyzer-TPM4IPEK.js → complexity-analyzer-HRG7OOY3.js} +2 -2
- package/dist/cli/chunks/{continuedev-installer-VXODKGVX.js → continuedev-installer-CNTDONWG.js} +2 -2
- package/dist/cli/chunks/{copilot-installer-PVD5O56P.js → copilot-installer-XPWWIWYA.js} +2 -2
- package/dist/cli/chunks/core-handlers-TB7NLYXL.js +2 -0
- package/dist/cli/chunks/{cost-tracker-JOMZEQF3.js → cost-tracker-MFNLQ56K.js} +2 -2
- package/dist/cli/chunks/{coverage-HTXLEV3B.js → coverage-KOIK654V.js} +3 -3
- package/dist/cli/chunks/cross-domain-router-MDSI553U.js +2 -0
- package/dist/cli/chunks/{cursor-installer-SHKDTDDZ.js → cursor-installer-S5MKLRQQ.js} +2 -2
- package/dist/cli/chunks/{daemon-FCFEWVVJ.js → daemon-DUS6JYW6.js} +3 -3
- package/dist/cli/chunks/{daemon-PN4FEPLE.js → daemon-Z7VPGWHY.js} +4 -4
- package/dist/cli/chunks/{dag-attention-scheduler-PLOHU5SR.js → dag-attention-scheduler-7CQ3ARNI.js} +2 -2
- package/dist/cli/chunks/{detect-F3H4ZEZY.js → detect-WORBCAYF.js} +2 -2
- package/dist/cli/chunks/{dist-node-5TC665N6.js → dist-node-KRNI6OYW.js} +2 -2
- package/dist/cli/chunks/{domain-handler-ZIWVFXCU.js → domain-handler-KRUR2VQG.js} +2 -2
- package/dist/cli/chunks/{domain-transfer-7Q5JYMYR.js → domain-transfer-VEOVLV54.js} +2 -2
- package/dist/cli/chunks/dream-X7ISHFEE.js +2 -0
- package/dist/cli/chunks/embed-and-insert-pattern-QU3NQVA5.js +3 -0
- package/dist/cli/chunks/{eval-E2K2T75A.js → eval-AYQ7BSUP.js} +2 -2
- package/dist/cli/chunks/{experience-capture-middleware-Z5SE2O53.js → experience-capture-middleware-AWQBL6LT.js} +3 -3
- package/dist/cli/chunks/{fast-paths-3H52RSUK.js → fast-paths-V5EL4BYJ.js} +2 -2
- package/dist/cli/chunks/{feature-flags-LUHSMHPS.js → feature-flags-BXX7BP22.js} +2 -2
- package/dist/cli/chunks/{feature-flags-ONIKUZVK.js → feature-flags-P34BPRWU.js} +2 -2
- package/dist/cli/chunks/{file-discovery-FLYSYSS4.js → file-discovery-MS6BKQ2U.js} +2 -2
- package/dist/cli/chunks/{fleet-6OJUAAKV.js → fleet-7WVVPA4W.js} +3 -3
- package/dist/cli/chunks/{gnn-wrapper-PUL6B7KZ.js → gnn-wrapper-7WQ3LEPG.js} +2 -2
- package/dist/cli/chunks/{heartbeat-handler-HGHHDUDY.js → heartbeat-handler-P7QD3BZH.js} +4 -4
- package/dist/cli/chunks/heartbeat-scheduler-2C5XGFQT.js +2 -0
- package/dist/cli/chunks/hnsw-adapter-KCVMXLUL.js +2 -0
- package/dist/cli/chunks/hnsw-index-OGWZS6MP.js +2 -0
- package/dist/cli/chunks/{hnsw-legacy-bridge-NDZSNMYX.js → hnsw-legacy-bridge-Y3GAR3UP.js} +2 -2
- package/dist/cli/chunks/{hnswlib-node-PISLKSO2.js → hnswlib-node-5QUXZQWQ.js} +2 -2
- package/dist/cli/chunks/{hooks-WYG54MRI.js → hooks-2D64KPRY.js} +10 -10
- package/dist/cli/chunks/{hypergraph-engine-EDHKHZZ2.js → hypergraph-engine-5INXEZDP.js} +2 -2
- package/dist/cli/chunks/{hypergraph-handler-OCHZAPPL.js → hypergraph-handler-YJJJ3ESZ.js} +3 -3
- package/dist/cli/chunks/impact-analyzer-IBJ43GQL.js +2 -0
- package/dist/cli/chunks/{init-handler-5TCJ672H.js → init-handler-QSFYJN5Q.js} +6 -6
- package/dist/cli/chunks/init-wizard-6XMFD5LP.js +2 -0
- package/dist/cli/chunks/kernel-UDUMUPB3.js +2 -0
- package/dist/cli/chunks/{kilocode-installer-SWUQRCTZ.js → kilocode-installer-3N3QGTJU.js} +2 -2
- package/dist/cli/chunks/{kiro-installer-L22EBAM5.js → kiro-installer-GIWVTFZQ.js} +2 -2
- package/dist/cli/chunks/knowledge-graph-JRYTUG3W.js +2 -0
- package/dist/cli/chunks/learning-SGO2DQ5Q.js +122 -0
- package/dist/cli/chunks/{llm-router-F2L4LFT2.js → llm-router-HBBULO65.js} +14 -14
- package/dist/cli/chunks/llm-router-service-KF5ZALUQ.js +2 -0
- package/dist/cli/chunks/{load-A4ZF2KHC.js → load-B5OFYB4H.js} +2 -2
- package/dist/cli/chunks/load-test-LHMBCNCH.js +2 -0
- package/dist/cli/chunks/{mcp-T2Z46NNK.js → mcp-FG3LNQR4.js} +2 -2
- package/dist/cli/chunks/{memory-PUC3J6XC.js → memory-SPS7ZWLC.js} +5 -5
- package/dist/cli/chunks/memory-backend-WZHKHBZK.js +2 -0
- package/dist/cli/chunks/memory-handlers-P7FTPWP3.js +2 -0
- package/dist/cli/chunks/{multi-model-executor-U5L4FI4O.js → multi-model-executor-PUB7E6KH.js} +2 -2
- package/dist/cli/chunks/{opencode-installer-UWI6KHYH.js → opencode-installer-TGCSGVG2.js} +2 -2
- package/dist/cli/chunks/{orchestrator-3BEI7R5D.js → orchestrator-S5FTJFGB.js} +10 -13
- package/dist/cli/chunks/pattern-null-store-UZSHCRL2.js +2 -0
- package/dist/cli/chunks/{pattern-usage-recorder-EGWUI5LU.js → pattern-usage-recorder-LCXXGRAB.js} +2 -2
- package/dist/cli/chunks/{pipeline-JG6M4RHD.js → pipeline-ENOSRHKW.js} +2 -2
- package/dist/cli/chunks/{platform-F76G6RUI.js → platform-WCRBO3Z7.js} +2 -2
- package/dist/cli/chunks/{plugin-EEGN3PMK.js → plugin-JZ5ODJSU.js} +2 -2
- package/dist/cli/chunks/{prime-radiant-advanced-wasm-7KZAINFT.js → prime-radiant-advanced-wasm-DPJUPNCG.js} +2 -2
- package/dist/cli/chunks/protocol-executor-42NLVDTC.js +2 -0
- package/dist/cli/chunks/{protocol-handler-UCEHYK2R.js → protocol-handler-IP4NLVY3.js} +2 -2
- package/dist/cli/chunks/{prove-JSNG75VD.js → prove-P6FM4RU7.js} +2 -2
- package/dist/cli/chunks/qe-reasoning-bank-W74RSMMU.js +2 -0
- package/dist/cli/chunks/{quality-7SRM2HBM.js → quality-UHP4XO26.js} +2 -2
- package/dist/cli/chunks/{quality-gate-A5MPWHST.js → quality-gate-63DDBSGM.js} +3 -3
- package/dist/cli/chunks/queen-coordinator-XELKSRMS.js +2 -0
- package/dist/cli/chunks/real-embeddings-6SO5MFRQ.js +2 -0
- package/dist/cli/chunks/{roocode-installer-UYQK64BZ.js → roocode-installer-WTWUOFCH.js} +2 -2
- package/dist/cli/chunks/router-GTW2EQZV.js +2 -0
- package/dist/cli/chunks/routing-feedback-NVOBWEMK.js +2 -0
- package/dist/cli/chunks/{routing-handler-PY3KPDTH.js → routing-handler-IK7HYERQ.js} +2 -2
- package/dist/cli/chunks/{ruvector-commands-GCAOUTYS.js → ruvector-commands-THLB4NIM.js} +2 -2
- package/dist/cli/chunks/rvf-dual-writer-5OPVMXNL.js +2 -0
- package/dist/cli/chunks/rvf-migration-adapter-5S4YFTX4.js +2 -0
- package/dist/cli/chunks/rvf-migration-coordinator-BUKCSHBD.js +2 -0
- package/dist/cli/chunks/rvf-native-adapter-LYSJHEVX.js +2 -0
- package/dist/cli/chunks/{rvf-store-integrity-HNDKOM4L.js → rvf-store-integrity-ECTADZIN.js} +2 -2
- package/dist/cli/chunks/safe-db-AEB3JMLD.js +2 -0
- package/dist/cli/chunks/schedule-4QNPCQNT.js +2 -0
- package/dist/cli/chunks/scheduler-S3DFHX6A.js +2 -0
- package/dist/cli/chunks/{security-MQ2VB7PY.js → security-HN4UXFXX.js} +3 -3
- package/dist/cli/chunks/{shared-rvf-adapter-TAZEU6QK.js → shared-rvf-adapter-XJCPX5SN.js} +2 -2
- package/dist/cli/chunks/{shared-rvf-dual-writer-B7N6AOCY.js → shared-rvf-dual-writer-23X5PNY5.js} +2 -2
- package/dist/cli/chunks/sqlite-persistence-L2KISU2H.js +2 -0
- package/dist/cli/chunks/{status-handler-NZP7DFHE.js → status-handler-ZXANTHKT.js} +2 -2
- package/dist/cli/chunks/{structural-health-ALLUQ4X6.js → structural-health-LR6WI3AH.js} +2 -2
- package/dist/cli/chunks/{sync-WJJG5J6V.js → sync-4OEI3BC2.js} +2 -2
- package/dist/cli/chunks/{sync-MM7OCUYD.js → sync-I5IUJF33.js} +2 -2
- package/dist/cli/chunks/{task-handler-CAQUEEB4.js → task-handler-R3ATJKU5.js} +2 -2
- package/dist/cli/chunks/{task-handlers-25BJ7D3W.js → task-handlers-4X357AEW.js} +3 -3
- package/dist/cli/chunks/{test-HW7GVGVN.js → test-PR2B5H2F.js} +4 -4
- package/dist/cli/chunks/{test-scheduling-HTMFJMSP.js → test-scheduling-ZNOSQVLD.js} +3 -3
- package/dist/cli/chunks/token-bootstrap-LYXOI72S.js +2 -0
- package/dist/cli/chunks/{token-usage-RJZDMBDP.js → token-usage-R6EQZBX2.js} +2 -2
- package/dist/cli/chunks/{transformers-3YFW3EUO.js → transformers-COQWK27J.js} +2 -2
- package/dist/cli/chunks/{tree-sitter-wasm-parser-U3PQPIK7.js → tree-sitter-wasm-parser-LLIW2X3M.js} +2 -2
- package/dist/cli/chunks/{types-7Q762WDO.js → types-MEYTZITK.js} +2 -2
- package/dist/cli/chunks/unified-memory-5KQMA7FV.js +2 -0
- package/dist/cli/chunks/unified-memory-hnsw-PQRPTYOD.js +2 -0
- package/dist/cli/chunks/unified-persistence-YDONVPJB.js +2 -0
- package/dist/cli/chunks/{upgrade-F7MKJWBQ.js → upgrade-DVIJ456A.js} +2 -2
- package/dist/cli/chunks/{validate-B27AVRA6.js → validate-UYTSMJ5X.js} +2 -2
- package/dist/cli/chunks/{validate-swarm-GYZR3GNL.js → validate-swarm-P32WCJR6.js} +2 -2
- package/dist/cli/chunks/{vibium-W4XQMPJP.js → vibium-JGVOLM6X.js} +2 -2
- package/dist/cli/chunks/visual-security-RJ7RTNGJ.js +2 -0
- package/dist/cli/chunks/{web-tree-sitter-I7CDCFJU.js → web-tree-sitter-5ZGNCTPN.js} +2 -2
- package/dist/cli/chunks/{windsurf-installer-UYLHFDHU.js → windsurf-installer-IILSSQAE.js} +2 -2
- package/dist/cli/chunks/{witness-chain-B66SYZKU.js → witness-chain-JZMXCG3B.js} +2 -2
- package/dist/cli/chunks/witness-chain-YXXXNGAM.js +2 -0
- package/dist/cli/chunks/{witness-key-manager-U4JPAHVW.js → witness-key-manager-UUTLNUIH.js} +2 -2
- package/dist/cli/chunks/{workflow-DYMO47FF.js → workflow-NS7HXVHZ.js} +4 -4
- package/dist/cli/chunks/workflow-orchestrator-5KUAVSTH.js +2 -0
- package/dist/cli/chunks/{wrappers-7S6DQTEA.js → wrappers-XKEDSV5W.js} +2 -2
- package/dist/cli/commands/learning.js +44 -0
- package/dist/cli/commands/llm-router.js +27 -21
- package/dist/cli/handlers/brain-handler.js +2 -0
- package/dist/context/compaction/index.d.ts +1 -0
- package/dist/context/compaction/index.js +3 -0
- package/dist/context/compaction/instruction-provenance.d.ts +20 -0
- package/dist/context/compaction/instruction-provenance.js +18 -0
- package/dist/context/compaction/tier2-session-summary.d.ts +8 -0
- package/dist/context/compaction/tier2-session-summary.js +20 -0
- package/dist/context/compaction/tier3-llm-compact.d.ts +4 -0
- package/dist/context/compaction/tier3-llm-compact.js +32 -4
- package/dist/init/phases/07-hooks.js +0 -3
- package/dist/integrations/embeddings/base/EmbeddingGenerator.js +4 -2
- package/dist/integrations/ruvector/brain-exporter.d.ts +1 -1
- package/dist/integrations/ruvector/brain-exporter.js +15 -3
- package/dist/integrations/ruvector/brain-rvf-exporter.d.ts +4 -0
- package/dist/integrations/ruvector/brain-rvf-exporter.js +118 -37
- package/dist/integrations/ruvector/brain-search.d.ts +1 -1
- package/dist/integrations/ruvector/brain-search.js +1 -1
- package/dist/integrations/ruvector/brain-shared.d.ts +4 -2
- package/dist/integrations/ruvector/brain-shared.js +11 -4
- package/dist/integrations/ruvector/brain-table-ddl.d.ts +2 -2
- package/dist/integrations/ruvector/brain-table-ddl.js +20 -8
- package/dist/integrations/ruvector/cognitive-container.js +1 -1
- package/dist/integrations/ruvector/rvf-dual-writer.d.ts +4 -0
- package/dist/integrations/ruvector/rvf-dual-writer.js +57 -9
- package/dist/integrations/ruvector/rvf-store-integrity.js +1 -1
- package/dist/kernel/unified-memory-schemas.d.ts +4 -3
- package/dist/kernel/unified-memory-schemas.js +19 -9
- package/dist/kernel/unified-memory.d.ts +2 -0
- package/dist/kernel/unified-memory.js +19 -0
- package/dist/learning/embed-and-insert-pattern.js +6 -3
- package/dist/learning/embedding-space.d.ts +50 -0
- package/dist/learning/embedding-space.js +128 -0
- package/dist/learning/evidence-admission-store.d.ts +15 -0
- package/dist/learning/evidence-admission-store.js +68 -0
- package/dist/learning/index.d.ts +4 -0
- package/dist/learning/index.js +2 -0
- package/dist/learning/learning-evidence-admission.d.ts +44 -0
- package/dist/learning/learning-evidence-admission.js +97 -0
- package/dist/learning/pattern-store.d.ts +5 -0
- package/dist/learning/pattern-store.js +36 -7
- package/dist/learning/qe-flywheel/coupled-anchor.d.ts +8 -0
- package/dist/learning/qe-flywheel/coupled-anchor.js +46 -3
- package/dist/learning/qe-reasoning-bank.js +4 -0
- package/dist/learning/real-embeddings.d.ts +3 -0
- package/dist/learning/real-embeddings.js +40 -3
- package/dist/learning/real-qe-reasoning-bank.js +7 -3
- package/dist/learning/rvf-pattern-migration.d.ts +2 -0
- package/dist/learning/rvf-pattern-migration.js +5 -3
- package/dist/learning/rvf-pattern-store.d.ts +3 -0
- package/dist/learning/rvf-pattern-store.js +21 -1
- package/dist/learning/sqlite-persistence.d.ts +7 -2
- package/dist/learning/sqlite-persistence.js +58 -21
- package/dist/mcp/bundle.js +603 -447
- package/dist/mcp/handlers/memory-handlers.js +6 -2
- package/dist/migrations/20260830_add_learning_evidence_tables.d.ts +7 -0
- package/dist/migrations/20260830_add_learning_evidence_tables.js +173 -0
- package/dist/persistence/rvf-migration-adapter.d.ts +2 -0
- package/dist/persistence/rvf-migration-adapter.js +56 -12
- package/dist/shared/llm/llm-router-service.d.ts +8 -0
- package/dist/shared/llm/llm-router-service.js +21 -3
- package/dist/shared/sql-safety.js +4 -0
- package/dist/skills/qe-court/cli.d.ts +3 -0
- package/dist/skills/qe-court/cli.js +54 -0
- package/dist/verification/adversarial-verify/calibrate.d.ts +46 -2
- package/dist/verification/adversarial-verify/calibrate.js +104 -2
- package/dist/verification/adversarial-verify/index.d.ts +1 -1
- package/dist/verification/adversarial-verify/index.js +1 -1
- package/package.json +8 -3
- package/dist/cli/chunks/adapter-FUV6LBJT.js +0 -2
- package/dist/cli/chunks/aqe-learning-engine-QNFNA3J4.js +0 -2
- package/dist/cli/chunks/base-37W2XIXC.js +0 -2
- package/dist/cli/chunks/brain-handler-TVTTWZGP.js +0 -89
- package/dist/cli/chunks/browser-workflow-PDIUEK7B.js +0 -2
- package/dist/cli/chunks/chunk-EDRPTLAX.js +0 -2
- package/dist/cli/chunks/chunk-GEQWCK4F.js +0 -2
- package/dist/cli/chunks/chunk-GQLJYTXN.js +0 -2
- package/dist/cli/chunks/chunk-NLZUGANH.js +0 -11
- package/dist/cli/chunks/chunk-O4BWESH5.js +0 -2
- package/dist/cli/chunks/chunk-PGFCKE4G.js +0 -12
- package/dist/cli/chunks/chunk-RACWX2ZX.js +0 -9
- package/dist/cli/chunks/chunk-SNC73DWF.js +0 -2
- package/dist/cli/chunks/chunk-TDVMILKO.js +0 -2
- package/dist/cli/chunks/chunk-TK5XLF3Z.js +0 -65
- package/dist/cli/chunks/chunk-UQ4UCHO7.js +0 -2
- package/dist/cli/chunks/chunk-VZGP77YU.js +0 -12
- package/dist/cli/chunks/chunk-WA6CSEOX.js +0 -2
- package/dist/cli/chunks/chunk-WYIXNHPF.js +0 -2
- package/dist/cli/chunks/client-4W3KWTAU.js +0 -2
- package/dist/cli/chunks/core-handlers-BDU2XBLO.js +0 -2
- package/dist/cli/chunks/cross-domain-router-BPB6IHN4.js +0 -2
- package/dist/cli/chunks/dream-WFCZGFDY.js +0 -2
- package/dist/cli/chunks/embed-and-insert-pattern-VESJQSYD.js +0 -3
- package/dist/cli/chunks/heartbeat-scheduler-HWS4SHRM.js +0 -2
- package/dist/cli/chunks/hnsw-adapter-7QOBHKRB.js +0 -2
- package/dist/cli/chunks/hnsw-index-6WUKYJH7.js +0 -2
- package/dist/cli/chunks/hybrid-router-525JTRA5.js +0 -2
- package/dist/cli/chunks/impact-analyzer-GG6CJEOK.js +0 -2
- package/dist/cli/chunks/init-wizard-4VFAOK4Y.js +0 -2
- package/dist/cli/chunks/kernel-N3FQGOST.js +0 -2
- package/dist/cli/chunks/knowledge-graph-I5QIHB4G.js +0 -2
- package/dist/cli/chunks/learning-TQOGG3CR.js +0 -119
- package/dist/cli/chunks/llm-router-service-NCJZYJLG.js +0 -2
- package/dist/cli/chunks/load-test-DCJEYIXD.js +0 -2
- package/dist/cli/chunks/memory-backend-O6KO2KTX.js +0 -2
- package/dist/cli/chunks/memory-handlers-4Z43WEKD.js +0 -2
- package/dist/cli/chunks/pattern-null-store-5WIJKX2K.js +0 -2
- package/dist/cli/chunks/protocol-executor-5TPNAZTB.js +0 -2
- package/dist/cli/chunks/provider-manager-3VMOZ6HV.js +0 -2
- package/dist/cli/chunks/qe-reasoning-bank-BATV4NTT.js +0 -2
- package/dist/cli/chunks/queen-coordinator-EIHGYBUO.js +0 -2
- package/dist/cli/chunks/real-embeddings-ZBF5EQOG.js +0 -2
- package/dist/cli/chunks/router-EMVGY4HU.js +0 -2
- package/dist/cli/chunks/routing-feedback-JUP4OFB2.js +0 -2
- package/dist/cli/chunks/rvf-dual-writer-BUNP4SKD.js +0 -2
- package/dist/cli/chunks/rvf-migration-adapter-VSOAPLMB.js +0 -2
- package/dist/cli/chunks/rvf-migration-coordinator-LSWEHAWX.js +0 -2
- package/dist/cli/chunks/rvf-native-adapter-LOC42TQ6.js +0 -2
- package/dist/cli/chunks/safe-db-WQ62IQKV.js +0 -2
- package/dist/cli/chunks/schedule-XJRP57TE.js +0 -2
- package/dist/cli/chunks/scheduler-EZH5SDIM.js +0 -2
- package/dist/cli/chunks/sqlite-persistence-HPEVCTIB.js +0 -2
- package/dist/cli/chunks/token-bootstrap-F2DCLWGW.js +0 -2
- package/dist/cli/chunks/unified-memory-ATILROKR.js +0 -2
- package/dist/cli/chunks/unified-memory-hnsw-XJXAX7DW.js +0 -2
- package/dist/cli/chunks/unified-persistence-3TN5PBWE.js +0 -2
- package/dist/cli/chunks/visual-security-VFWRBCNA.js +0 -2
- package/dist/cli/chunks/witness-chain-JC5LEXRV.js +0 -2
- package/dist/cli/chunks/workflow-orchestrator-TKQUF2KN.js +0 -2
|
@@ -1,11 +1,143 @@
|
|
|
1
|
-
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.
|
|
2
|
-
import{d as j,f as
|
|
1
|
+
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.14.0");process.exit(0)}
|
|
2
|
+
import{d as j,f as ze}from"./chunk-CIZ6LSNV.js";import{a as z,c as He}from"./chunk-GKNDP5VK.js";import{a as Be}from"./chunk-R2B6EE45.js";import{c as se}from"./chunk-JY4VZ6BN.js";import{a as H,b as D,c as We}from"./chunk-FRL3X2QA.js";import{b as I,d as oe}from"./chunk-HQHLHSJO.js";import{a as X,c as ke}from"./chunk-XITTURP2.js";import{a as ie,b as je}from"./chunk-ZQSXG7FA.js";import{a as ae,d as U,e as ce,f as Te}from"./chunk-KTSCZ7AW.js";import{a as b,b as re,e as qe}from"./chunk-JAK5UUWH.js";import{c as R,e as Pe}from"./chunk-PEW6FZ47.js";import{createHash as ue}from"node:crypto";function $e(s){let e=Buffer.alloc(8);return e.writeBigUInt64LE(BigInt(s)),e}function Ke(s){return typeof s=="string"?Buffer.from(s,"utf8"):s instanceof Uint8Array?Buffer.from(s):Buffer.from(W(s),"utf8")}function W(s){return s===null||typeof s!="object"?JSON.stringify(s)??"null":Array.isArray(s)?`[${s.map(W).join(",")}]`:`{${Object.keys(s).sort().map(t=>`${JSON.stringify(t)}:${W(s[t])}`).join(",")}}`}function _e(...s){let e=ue("sha256");for(let t of s)e.update(t);return e.digest()}function de(s,e,t){return _e(Ye,s,e,$e(t))}var Ye,Ee,O,le=R(()=>{"use strict";Ye=Buffer.from("ruvector:chain:"),Ee=ue("sha256").update("ruvector-proof-gate-v1").digest();O=class s{seq=0;prev=Ee;chain=[];payloadHashes=[];admit(e){let t=_e(Ke(e)),n=de(this.prev,t,this.seq);this.prev=n,this.chain.push(n),this.payloadHashes.push(t);let a={sequence:this.seq,payloadHash:t.toString("hex"),chainCommitment:n.toString("hex")};return this.seq+=1,a}verifyReceipt(e){return e.sequence>=0&&e.sequence<this.chain.length&&this.chain[e.sequence].toString("hex")===e.chainCommitment}chainRoot(){return this.prev.toString("hex")}get length(){return this.seq}get isEmpty(){return this.seq===0}verifyIntegrity(){if(this.chain.length!==this.payloadHashes.length)return!1;let e=Ee;for(let t=0;t<this.chain.length;t++){if(!de(e,this.payloadHashes[t],t).equals(this.chain[t]))return!1;e=this.chain[t]}return e.equals(this.prev)}toJSON(){return{seq:this.seq,head:this.prev.toString("hex"),chain:this.chain.map(e=>e.toString("hex")),payloadHashes:this.payloadHashes.map(e=>e.toString("hex"))}}static fromJSON(e){let t=new s;t.seq=e.seq,t.prev=Buffer.from(e.head,"hex");for(let n of e.chain)t.chain.push(Buffer.from(n,"hex"));for(let n of e.payloadHashes)t.payloadHashes.push(Buffer.from(n,"hex"));return t}}});function A(s){if(!Y.has(s))throw new Error(`Invalid table name: "${s}" is not in the allowlist`);return s}function ot(s){let e=s.split(".");if(e.length>2)throw new Error(`Invalid SQL identifier: "${s}" has too many parts (max: schema.table)`);for(let t of e)if(!pe.test(t))throw new Error(`Invalid SQL identifier: "${s}" \u2014 part "${t}" does not match pattern ${pe}`);return s}var Y,pe,$=R(()=>{"use strict";Y=new Set(["schema_version","kv_store","vectors","rl_q_values","goap_goals","goap_actions","goap_plans","goap_plan_signatures","concept_nodes","concept_edges","dream_cycles","dream_insights","qe_patterns","qe_pattern_embeddings","qe_pattern_usage","qe_trajectories","embeddings","execution_results","executed_steps","mincut_snapshots","mincut_history","mincut_weak_vertices","mincut_alerts","mincut_healing_actions","mincut_observations","sona_patterns","sona_fisher_matrices","test_outcomes","routing_outcomes","coverage_sessions","patterns","hypergraph_nodes","hypergraph_edges","hypergraph_vertices","hypergraph_hyperedges","hypergraph_edge_vertices","hypergraph_vertex_properties","hypergraph_edge_properties","captured_experiences","experience_applications","witness_chain","witness_chain_receipts","witness_chain_archive","trajectories","trajectory_steps","pattern_evolution_events","pattern_relationships","pattern_versions","learning_daily_snapshots","metrics_outcomes","experience_consolidation_log","qe_pattern_reuse","learning_evidence_manifests","learning_evidence_segments","learning_segment_edges","learning_evidence_admissions","pattern_manifest_lineage","pattern_segment_lineage","qe_agent_co_execution"]);pe=/^[a-z_][a-z0-9_]{0,62}$/});function me(s){s.exec(ge),s.exec(`
|
|
3
|
+
INSERT OR IGNORE INTO learning_evidence_manifests (
|
|
4
|
+
id, trajectory_id, trajectory_hash, manifest_hash, task_family,
|
|
5
|
+
outcome, oracle_refs_json, source_kind, process_signals_json
|
|
6
|
+
)
|
|
7
|
+
SELECT
|
|
8
|
+
'legacy-pattern:' || id, NULL, NULL, 'legacy-pattern:' || id,
|
|
9
|
+
COALESCE(NULLIF(qe_domain, ''), NULLIF(domain, ''), 'unknown'),
|
|
10
|
+
'unknown', '[]', 'inferred', '{"legacy":true,"unassessed":true}'
|
|
11
|
+
FROM qe_patterns;
|
|
12
|
+
|
|
13
|
+
INSERT OR IGNORE INTO learning_evidence_admissions (
|
|
14
|
+
id, manifest_id, decision_seq, disposition, reason_codes_json,
|
|
15
|
+
assessor_kind, evidence_class
|
|
16
|
+
)
|
|
17
|
+
SELECT
|
|
18
|
+
'legacy-admission:' || id, 'legacy-pattern:' || id, 1, 'legacy-unknown',
|
|
19
|
+
'["legacy-pattern-without-qualified-trajectory"]', 'inferred', 'INFERRED'
|
|
20
|
+
FROM qe_patterns;
|
|
21
|
+
|
|
22
|
+
INSERT OR IGNORE INTO pattern_manifest_lineage (
|
|
23
|
+
pattern_id, manifest_id, use_kind
|
|
24
|
+
)
|
|
25
|
+
SELECT id, 'legacy-pattern:' || id, 'legacy-context' FROM qe_patterns;
|
|
26
|
+
`)}var ge,K=R(()=>{"use strict";ge=`
|
|
27
|
+
CREATE TABLE IF NOT EXISTS learning_evidence_manifests (
|
|
28
|
+
id TEXT PRIMARY KEY,
|
|
29
|
+
trajectory_id TEXT,
|
|
30
|
+
trajectory_hash TEXT,
|
|
31
|
+
manifest_hash TEXT NOT NULL UNIQUE,
|
|
32
|
+
task_family TEXT NOT NULL,
|
|
33
|
+
task_identity TEXT,
|
|
34
|
+
run_identity TEXT,
|
|
35
|
+
correlation_group TEXT,
|
|
36
|
+
dedupe_fingerprint TEXT,
|
|
37
|
+
revision TEXT,
|
|
38
|
+
environment TEXT,
|
|
39
|
+
outcome TEXT NOT NULL CHECK (outcome IN ('verified-success','verified-failure','unknown')),
|
|
40
|
+
oracle_refs_json TEXT NOT NULL DEFAULT '[]',
|
|
41
|
+
source_kind TEXT NOT NULL CHECK (source_kind IN ('executed','static','human-reviewed','inferred')),
|
|
42
|
+
process_signals_json TEXT NOT NULL DEFAULT '{}',
|
|
43
|
+
manifest_version INTEGER NOT NULL DEFAULT 1,
|
|
44
|
+
created_at TEXT NOT NULL DEFAULT (datetime('now'))
|
|
45
|
+
);
|
|
46
|
+
|
|
47
|
+
CREATE TABLE IF NOT EXISTS learning_evidence_segments (
|
|
48
|
+
id TEXT NOT NULL,
|
|
49
|
+
manifest_id TEXT NOT NULL REFERENCES learning_evidence_manifests(id) ON DELETE RESTRICT,
|
|
50
|
+
segment_order INTEGER NOT NULL,
|
|
51
|
+
kind TEXT NOT NULL CHECK (kind IN ('observe','decide','act','verify','recover','other')),
|
|
52
|
+
contribution TEXT NOT NULL CHECK (contribution IN ('causal','supporting','irrelevant','harmful','unknown')),
|
|
53
|
+
evidence_refs_json TEXT NOT NULL DEFAULT '[]',
|
|
54
|
+
admit_for_learning INTEGER NOT NULL CHECK (admit_for_learning IN (0,1)),
|
|
55
|
+
reasons_json TEXT NOT NULL DEFAULT '[]',
|
|
56
|
+
content_hash TEXT,
|
|
57
|
+
PRIMARY KEY (manifest_id, id),
|
|
58
|
+
UNIQUE (manifest_id, segment_order)
|
|
59
|
+
);
|
|
60
|
+
|
|
61
|
+
CREATE TABLE IF NOT EXISTS learning_segment_edges (
|
|
62
|
+
manifest_id TEXT NOT NULL,
|
|
63
|
+
parent_segment_id TEXT NOT NULL,
|
|
64
|
+
child_segment_id TEXT NOT NULL,
|
|
65
|
+
edge_kind TEXT NOT NULL DEFAULT 'depends-on',
|
|
66
|
+
PRIMARY KEY (manifest_id, parent_segment_id, child_segment_id, edge_kind),
|
|
67
|
+
FOREIGN KEY (manifest_id, parent_segment_id)
|
|
68
|
+
REFERENCES learning_evidence_segments(manifest_id, id) ON DELETE RESTRICT,
|
|
69
|
+
FOREIGN KEY (manifest_id, child_segment_id)
|
|
70
|
+
REFERENCES learning_evidence_segments(manifest_id, id) ON DELETE RESTRICT,
|
|
71
|
+
CHECK (parent_segment_id <> child_segment_id)
|
|
72
|
+
);
|
|
73
|
+
|
|
74
|
+
CREATE TABLE IF NOT EXISTS learning_evidence_admissions (
|
|
75
|
+
id TEXT PRIMARY KEY,
|
|
76
|
+
manifest_id TEXT NOT NULL REFERENCES learning_evidence_manifests(id) ON DELETE RESTRICT,
|
|
77
|
+
decision_seq INTEGER NOT NULL CHECK (decision_seq > 0),
|
|
78
|
+
disposition TEXT NOT NULL CHECK (disposition IN ('admitted','rejected','review-required','legacy-unknown')),
|
|
79
|
+
reason_codes_json TEXT NOT NULL DEFAULT '[]',
|
|
80
|
+
assessor_kind TEXT NOT NULL CHECK (assessor_kind IN ('executed','static','human-reviewed','inferred')),
|
|
81
|
+
evidence_class TEXT NOT NULL CHECK (evidence_class IN ('EXECUTED','STATIC','INFERRED','CONJECTURE')),
|
|
82
|
+
policy_version TEXT,
|
|
83
|
+
policy_hash TEXT,
|
|
84
|
+
created_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
85
|
+
UNIQUE (manifest_id, decision_seq)
|
|
86
|
+
);
|
|
87
|
+
|
|
88
|
+
CREATE TABLE IF NOT EXISTS pattern_manifest_lineage (
|
|
89
|
+
pattern_id TEXT NOT NULL REFERENCES qe_patterns(id) ON DELETE RESTRICT,
|
|
90
|
+
manifest_id TEXT NOT NULL REFERENCES learning_evidence_manifests(id) ON DELETE RESTRICT,
|
|
91
|
+
pattern_version_id TEXT,
|
|
92
|
+
use_kind TEXT NOT NULL CHECK (use_kind IN ('candidate-source','promotion-support','rejection','rollback','legacy-context')),
|
|
93
|
+
created_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
94
|
+
PRIMARY KEY (pattern_id, manifest_id, use_kind)
|
|
95
|
+
);
|
|
96
|
+
|
|
97
|
+
CREATE TABLE IF NOT EXISTS pattern_segment_lineage (
|
|
98
|
+
pattern_id TEXT NOT NULL REFERENCES qe_patterns(id) ON DELETE RESTRICT,
|
|
99
|
+
manifest_id TEXT NOT NULL,
|
|
100
|
+
segment_id TEXT NOT NULL,
|
|
101
|
+
pattern_version_id TEXT,
|
|
102
|
+
use_kind TEXT NOT NULL CHECK (use_kind IN ('candidate-source','promotion-support','rejection','rollback')),
|
|
103
|
+
created_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
104
|
+
PRIMARY KEY (pattern_id, manifest_id, segment_id, use_kind),
|
|
105
|
+
FOREIGN KEY (manifest_id, segment_id)
|
|
106
|
+
REFERENCES learning_evidence_segments(manifest_id, id) ON DELETE RESTRICT
|
|
107
|
+
);
|
|
108
|
+
|
|
109
|
+
CREATE INDEX IF NOT EXISTS idx_learning_manifest_trajectory ON learning_evidence_manifests(trajectory_id);
|
|
110
|
+
CREATE INDEX IF NOT EXISTS idx_learning_manifest_task ON learning_evidence_manifests(task_family);
|
|
111
|
+
CREATE INDEX IF NOT EXISTS idx_learning_manifest_dedupe ON learning_evidence_manifests(dedupe_fingerprint);
|
|
112
|
+
CREATE INDEX IF NOT EXISTS idx_learning_manifest_correlation ON learning_evidence_manifests(correlation_group);
|
|
113
|
+
CREATE INDEX IF NOT EXISTS idx_learning_manifest_outcome ON learning_evidence_manifests(outcome, source_kind);
|
|
114
|
+
CREATE INDEX IF NOT EXISTS idx_learning_admission_manifest ON learning_evidence_admissions(manifest_id, decision_seq DESC);
|
|
115
|
+
CREATE INDEX IF NOT EXISTS idx_pattern_manifest_lineage_manifest ON pattern_manifest_lineage(manifest_id);
|
|
116
|
+
CREATE INDEX IF NOT EXISTS idx_pattern_segment_lineage_manifest ON pattern_segment_lineage(manifest_id, segment_id);
|
|
117
|
+
|
|
118
|
+
CREATE TRIGGER IF NOT EXISTS learning_manifests_no_update BEFORE UPDATE ON learning_evidence_manifests
|
|
119
|
+
BEGIN SELECT RAISE(ABORT, 'learning evidence manifests are append-only'); END;
|
|
120
|
+
CREATE TRIGGER IF NOT EXISTS learning_manifests_no_delete BEFORE DELETE ON learning_evidence_manifests
|
|
121
|
+
BEGIN SELECT RAISE(ABORT, 'learning evidence manifests are append-only'); END;
|
|
122
|
+
CREATE TRIGGER IF NOT EXISTS learning_segments_no_update BEFORE UPDATE ON learning_evidence_segments
|
|
123
|
+
BEGIN SELECT RAISE(ABORT, 'learning evidence segments are append-only'); END;
|
|
124
|
+
CREATE TRIGGER IF NOT EXISTS learning_segments_no_delete BEFORE DELETE ON learning_evidence_segments
|
|
125
|
+
BEGIN SELECT RAISE(ABORT, 'learning evidence segments are append-only'); END;
|
|
126
|
+
CREATE TRIGGER IF NOT EXISTS learning_edges_no_update BEFORE UPDATE ON learning_segment_edges
|
|
127
|
+
BEGIN SELECT RAISE(ABORT, 'learning evidence edges are append-only'); END;
|
|
128
|
+
CREATE TRIGGER IF NOT EXISTS learning_edges_no_delete BEFORE DELETE ON learning_segment_edges
|
|
129
|
+
BEGIN SELECT RAISE(ABORT, 'learning evidence edges are append-only'); END;
|
|
130
|
+
CREATE TRIGGER IF NOT EXISTS learning_admissions_no_update BEFORE UPDATE ON learning_evidence_admissions
|
|
131
|
+
BEGIN SELECT RAISE(ABORT, 'learning evidence admissions are append-only'); END;
|
|
132
|
+
CREATE TRIGGER IF NOT EXISTS learning_admissions_no_delete BEFORE DELETE ON learning_evidence_admissions
|
|
133
|
+
BEGIN SELECT RAISE(ABORT, 'learning evidence admissions are append-only'); END;
|
|
134
|
+
`});var w,fe,Ne,Se,he,V,Re,Q,Le,Ie,Ce,Oe,Ae=R(()=>{"use strict";ze();He();K();w=13,fe=`
|
|
3
135
|
CREATE TABLE IF NOT EXISTS schema_version (
|
|
4
136
|
id INTEGER PRIMARY KEY CHECK (id = 1),
|
|
5
137
|
version INTEGER NOT NULL,
|
|
6
138
|
migrated_at TEXT DEFAULT (datetime('now'))
|
|
7
139
|
);
|
|
8
|
-
`,
|
|
140
|
+
`,Ne=`
|
|
9
141
|
-- Key-Value Store (v2 compatible - same schema as HybridBackend)
|
|
10
142
|
CREATE TABLE IF NOT EXISTS kv_store (
|
|
11
143
|
key TEXT NOT NULL,
|
|
@@ -17,7 +149,7 @@ import{d as j,f as qe}from"./chunk-KRZYWVS3.js";import{a as B,c as ze}from"./chu
|
|
|
17
149
|
);
|
|
18
150
|
CREATE INDEX IF NOT EXISTS idx_kv_namespace ON kv_store(namespace);
|
|
19
151
|
CREATE INDEX IF NOT EXISTS idx_kv_expires ON kv_store(expires_at) WHERE expires_at IS NOT NULL;
|
|
20
|
-
`,
|
|
152
|
+
`,Se=`
|
|
21
153
|
-- Vector Embeddings (new in v3 - replaces in-memory AgentDB)
|
|
22
154
|
CREATE TABLE IF NOT EXISTS vectors (
|
|
23
155
|
id TEXT PRIMARY KEY,
|
|
@@ -30,7 +162,7 @@ import{d as j,f as qe}from"./chunk-KRZYWVS3.js";import{a as B,c as ze}from"./chu
|
|
|
30
162
|
);
|
|
31
163
|
CREATE INDEX IF NOT EXISTS idx_vectors_namespace ON vectors(namespace);
|
|
32
164
|
CREATE INDEX IF NOT EXISTS idx_vectors_dimensions ON vectors(dimensions);
|
|
33
|
-
`,
|
|
165
|
+
`,he=`
|
|
34
166
|
-- Q-Values for RL algorithms (ADR-046)
|
|
35
167
|
CREATE TABLE IF NOT EXISTS rl_q_values (
|
|
36
168
|
id TEXT PRIMARY KEY,
|
|
@@ -51,7 +183,7 @@ import{d as j,f as qe}from"./chunk-KRZYWVS3.js";import{a as B,c as ze}from"./chu
|
|
|
51
183
|
CREATE INDEX IF NOT EXISTS idx_qvalues_state ON rl_q_values(agent_id, state_key);
|
|
52
184
|
CREATE INDEX IF NOT EXISTS idx_qvalues_domain ON rl_q_values(domain);
|
|
53
185
|
CREATE INDEX IF NOT EXISTS idx_qvalues_updated ON rl_q_values(updated_at);
|
|
54
|
-
`,
|
|
186
|
+
`,V=`
|
|
55
187
|
-- GOAP Goals
|
|
56
188
|
CREATE TABLE IF NOT EXISTS goap_goals (
|
|
57
189
|
id TEXT PRIMARY KEY,
|
|
@@ -162,7 +294,7 @@ import{d as j,f as qe}from"./chunk-KRZYWVS3.js";import{a as B,c as ze}from"./chu
|
|
|
162
294
|
-- would fail on "no such column" since CREATE TABLE IF NOT EXISTS above
|
|
163
295
|
-- silently no-ops against them. unified-memory.ts's v11 migration creates
|
|
164
296
|
-- this index only after confirming/backfilling the column.
|
|
165
|
-
`,
|
|
297
|
+
`,Re=`
|
|
166
298
|
-- Concept Graph Nodes (Dream Engine)
|
|
167
299
|
CREATE TABLE IF NOT EXISTS concept_nodes (
|
|
168
300
|
id TEXT PRIMARY KEY,
|
|
@@ -231,7 +363,7 @@ import{d as j,f as qe}from"./chunk-KRZYWVS3.js";import{a as B,c as ze}from"./chu
|
|
|
231
363
|
CREATE INDEX IF NOT EXISTS idx_edge_weight ON concept_edges(weight DESC);
|
|
232
364
|
CREATE INDEX IF NOT EXISTS idx_insight_cycle ON dream_insights(cycle_id);
|
|
233
365
|
CREATE INDEX IF NOT EXISTS idx_dream_status ON dream_cycles(status);
|
|
234
|
-
`,
|
|
366
|
+
`,Q=`
|
|
235
367
|
-- QE Patterns table (unified from sqlite-persistence.ts)
|
|
236
368
|
CREATE TABLE IF NOT EXISTS qe_patterns (
|
|
237
369
|
id TEXT PRIMARY KEY,
|
|
@@ -267,6 +399,7 @@ import{d as j,f as qe}from"./chunk-KRZYWVS3.js";import{a as B,c as ze}from"./chu
|
|
|
267
399
|
embedding BLOB NOT NULL,
|
|
268
400
|
dimension INTEGER NOT NULL,
|
|
269
401
|
model TEXT DEFAULT 'all-MiniLM-L6-v2',
|
|
402
|
+
space_id TEXT,
|
|
270
403
|
created_at TEXT DEFAULT (datetime('now')),
|
|
271
404
|
FOREIGN KEY (pattern_id) REFERENCES qe_patterns(id) ON DELETE CASCADE
|
|
272
405
|
);
|
|
@@ -373,6 +506,7 @@ import{d as j,f as qe}from"./chunk-KRZYWVS3.js";import{a as B,c as ze}from"./chu
|
|
|
373
506
|
CREATE INDEX IF NOT EXISTS idx_qe_patterns_type ON qe_patterns(pattern_type);
|
|
374
507
|
CREATE INDEX IF NOT EXISTS idx_qe_patterns_tier ON qe_patterns(tier);
|
|
375
508
|
CREATE INDEX IF NOT EXISTS idx_qe_patterns_quality ON qe_patterns(quality_score DESC);
|
|
509
|
+
CREATE INDEX IF NOT EXISTS idx_qe_pattern_embeddings_space ON qe_pattern_embeddings(space_id);
|
|
376
510
|
CREATE INDEX IF NOT EXISTS idx_qe_usage_pattern ON qe_pattern_usage(pattern_id);
|
|
377
511
|
CREATE INDEX IF NOT EXISTS idx_qe_trajectories_domain ON qe_trajectories(domain);
|
|
378
512
|
CREATE INDEX IF NOT EXISTS idx_embeddings_namespace ON embeddings(namespace);
|
|
@@ -381,7 +515,7 @@ import{d as j,f as qe}from"./chunk-KRZYWVS3.js";import{a as B,c as ze}from"./chu
|
|
|
381
515
|
CREATE INDEX IF NOT EXISTS idx_execution_results_status ON execution_results(status);
|
|
382
516
|
CREATE INDEX IF NOT EXISTS idx_executed_steps_execution ON executed_steps(execution_id);
|
|
383
517
|
CREATE INDEX IF NOT EXISTS idx_executed_steps_action ON executed_steps(action_id);
|
|
384
|
-
`,
|
|
518
|
+
`,Le=`
|
|
385
519
|
-- MinCut Graph Snapshots (ADR-047)
|
|
386
520
|
CREATE TABLE IF NOT EXISTS mincut_snapshots (
|
|
387
521
|
id TEXT PRIMARY KEY,
|
|
@@ -487,7 +621,7 @@ import{d as j,f as qe}from"./chunk-KRZYWVS3.js";import{a as B,c as ze}from"./chu
|
|
|
487
621
|
CREATE INDEX IF NOT EXISTS idx_mincut_healing_type ON mincut_healing_actions(action_type);
|
|
488
622
|
CREATE INDEX IF NOT EXISTS idx_mincut_healing_success ON mincut_healing_actions(success);
|
|
489
623
|
CREATE INDEX IF NOT EXISTS idx_mincut_observations_iter ON mincut_observations(iteration);
|
|
490
|
-
`,
|
|
624
|
+
`,Ie=`
|
|
491
625
|
-- SONA Patterns table (ADR-046: Pattern Persistence for Neural Backbone)
|
|
492
626
|
CREATE TABLE IF NOT EXISTS sona_patterns (
|
|
493
627
|
id TEXT PRIMARY KEY,
|
|
@@ -513,7 +647,7 @@ import{d as j,f as qe}from"./chunk-KRZYWVS3.js";import{a as B,c as ze}from"./chu
|
|
|
513
647
|
CREATE INDEX IF NOT EXISTS idx_sona_patterns_domain ON sona_patterns(domain);
|
|
514
648
|
CREATE INDEX IF NOT EXISTS idx_sona_patterns_confidence ON sona_patterns(confidence DESC);
|
|
515
649
|
CREATE INDEX IF NOT EXISTS idx_sona_patterns_updated ON sona_patterns(updated_at DESC);
|
|
516
|
-
`,
|
|
650
|
+
`,Ce=`
|
|
517
651
|
-- Test outcomes (ADR-023: Quality Feedback Loop)
|
|
518
652
|
CREATE TABLE IF NOT EXISTS test_outcomes (
|
|
519
653
|
id TEXT PRIMARY KEY,
|
|
@@ -596,16 +730,16 @@ import{d as j,f as qe}from"./chunk-KRZYWVS3.js";import{a as B,c as ze}from"./chu
|
|
|
596
730
|
CREATE INDEX IF NOT EXISTS idx_coverage_sessions_technique ON coverage_sessions(technique);
|
|
597
731
|
CREATE INDEX IF NOT EXISTS idx_coverage_sessions_agent ON coverage_sessions(agent_id);
|
|
598
732
|
CREATE INDEX IF NOT EXISTS idx_coverage_sessions_created ON coverage_sessions(created_at);
|
|
599
|
-
`,Le=["kv_store","vectors","rl_q_values","goap_actions","goap_goals","goap_plans","goap_plan_signatures","goap_execution_steps","concept_nodes","concept_edges","dream_cycles","dream_insights","qe_patterns","qe_pattern_embeddings","qe_pattern_usage","qe_trajectories","embeddings","execution_results","executed_steps","mincut_snapshots","mincut_history","mincut_weak_vertices","mincut_alerts","mincut_healing_actions","mincut_observations","hypergraph_nodes","hypergraph_edges","sona_patterns","witness_chain"]});function x(o,e,t){let n={value:e,timestamp:t??(e!==void 0?Date.now():0),nodeId:e!==void 0?o:"",version:e!==void 0?1:0,lastUpdated:Date.now()};function a(i,T,E,d){return i!==E?i-E:T.localeCompare(d)}return{get(){return n.value},set(i,T){let E=T??Date.now();(n.timestamp===0||a(E,o,n.timestamp,n.nodeId)>0)&&(n={value:i,timestamp:E,nodeId:o,version:n.version+1,lastUpdated:Date.now()})},merge(i){let T=i.getState();this.applyState(T)},getState(){return{value:n.value,timestamp:n.timestamp,nodeId:n.nodeId,version:n.version,lastUpdated:n.lastUpdated}},applyState(i){(n.timestamp===0||a(i.timestamp,i.nodeId,n.timestamp,n.nodeId)>0)&&(n={value:i.value,timestamp:i.timestamp,nodeId:i.nodeId,version:Math.max(n.version,i.version)+1,lastUpdated:Date.now()})},getNodeId(){return o},getTimestamp(){return n.timestamp}}}function F(o,e){let t=x(o);return t.applyState(e),t}var V=R(()=>{"use strict"});function I(o){let e={counts:{},version:0,lastUpdated:Date.now()};return e.counts[o]=0,{get(){return Object.values(e.counts).reduce((t,n)=>t+n,0)},increment(t=1){if(t<0)throw new Error("G-Counter can only increment by positive values");t!==0&&(e.counts[o]=(e.counts[o]||0)+t,e.version++,e.lastUpdated=Date.now())},merge(t){let n=t.getState();this.applyState(n)},getState(){return{counts:{...e.counts},version:e.version,lastUpdated:e.lastUpdated}},applyState(t){let n=!1;for(let[a,i]of Object.entries(t.counts)){let T=e.counts[a]||0;i>T&&(e.counts[a]=i,n=!0)}n&&(e.version=Math.max(e.version,t.version)+1,e.lastUpdated=Date.now())},getNodeId(){return o},getLocalCount(){return e.counts[o]||0}}}function M(o,e){let t=I(o);return t.applyState(e),t}var G=R(()=>{"use strict"});function P(o){let e=I(o),t=I(o),n=0,a=Date.now();return{get(){return e.get()-t.get()},increment(i=1){if(i<0)throw new Error("Use decrement() for negative values");i!==0&&(e.increment(i),n++,a=Date.now())},decrement(i=1){if(i<0)throw new Error("Use increment() for negative values");i!==0&&(t.increment(i),n++,a=Date.now())},merge(i){let T=i.getState();this.applyState(T)},getState(){return{positive:e.getState(),negative:t.getState(),version:n,lastUpdated:a}},applyState(i){let T=this.get();e.applyState(i.positive),t.applyState(i.negative);let E=this.get();T!==E&&(n=Math.max(n,i.version)+1,a=Date.now())},getNodeId(){return o}}}function k(o,e){let t=P(o);return t.applyState(e),t}var Q=R(()=>{"use strict";G()});function Ye(o,e){return`${o}:${Date.now()}:${e}`}function J(o){return typeof o=="string"?`s:${o}`:typeof o=="number"?`n:${o}`:typeof o=="boolean"?`b:${o}`:`j:${JSON.stringify(o)}`}function $e(o){let e=o.substring(0,2),t=o.substring(2);switch(e){case"s:":return t;case"n:":return Number(t);case"b:":return t==="true";case"j:":return C(t);default:throw new Error(`Unknown serialization type: ${e}`)}}function q(o){let e=new Map,t=new Map,n=0,a=Date.now(),i=0;function T(d){let u=e.get(d);if(!u||u.size===0)return!1;let p=t.get(d);if(!p||p.size===0)return!0;for(let _ of u)if(!p.has(_))return!0;return!1}function E(d){let u=e.get(d);if(!u)return new Set;let p=t.get(d)||new Set,_=new Set;for(let g of u)p.has(g)||_.add(g);return _}return{has(d){let u=J(d);return T(u)},values(){let d=[];for(let[u]of e)T(u)&&d.push($e(u));return d},size(){let d=0;for(let[u]of e)T(u)&&d++;return d},add(d){let u=J(d),p=Ye(o,i++);e.has(u)||e.set(u,new Set),e.get(u).add(p),n++,a=Date.now()},remove(d){let u=J(d),p=e.get(u);if(!p||p.size===0)return;t.has(u)||t.set(u,new Set);let _=t.get(u);for(let g of p)_.add(g);n++,a=Date.now()},merge(d){let u=d.getState();this.applyState(u)},getState(){let d={};for(let[p,_]of e)d[p]=Array.from(_);let u={};for(let[p,_]of t)_.size>0&&(u[p]=Array.from(_));return{elements:d,tombstones:u,version:n,lastUpdated:a}},applyState(d){let u=!1;for(let[p,_]of Object.entries(d.elements)){e.has(p)||e.set(p,new Set);let g=e.get(p);for(let l of _)g.has(l)||(g.add(l),u=!0)}for(let[p,_]of Object.entries(d.tombstones)){t.has(p)||t.set(p,new Set);let g=t.get(p);for(let l of _)g.has(l)||(g.add(l),u=!0)}u&&(n=Math.max(n,d.version)+1,a=Date.now())},getNodeId(){return o},clear(){for(let[d,u]of e){t.has(d)||t.set(d,new Set);let p=t.get(d);for(let _ of u)p.add(_)}n++,a=Date.now()}}}function z(o,e){let t=q(o);return t.applyState(e),t}var Z=R(()=>{"use strict";se()});function ee(o){let e={...Ke,...o},{nodeId:t,enableDeltaTracking:n,maxDeltaHistory:a}=e,i=new Map,T=new Map,E=new Map,d=new Map,u=0,p=[],_=new Set,g={registers:new Set,gCounters:new Set,pnCounters:new Set,sets:new Set};function l(s,r,c){let N={key:s,type:r,operation:c,timestamp:Date.now(),nodeId:t};for(let Ue of _)try{Ue(N)}catch(xe){console.error("[CRDTStore] Error in change listener:",xe)}}function m(s,r){u++,n&&g[s].add(r)}function L(){if(!n||!(g.registers.size>0||g.gCounters.size>0||g.pnCounters.size>0||g.sets.size>0))return;let r={fromVersion:p.length>0?p[p.length-1].toVersion:0,toVersion:u,timestamp:Date.now(),nodeId:t};if(g.registers.size>0){r.registers={};for(let c of g.registers){let N=i.get(c);N&&(r.registers[c]=N.getState())}g.registers.clear()}if(g.gCounters.size>0){r.gCounters={};for(let c of g.gCounters){let N=T.get(c);N&&(r.gCounters[c]=N.getState())}g.gCounters.clear()}if(g.pnCounters.size>0){r.pnCounters={};for(let c of g.pnCounters){let N=E.get(c);N&&(r.pnCounters[c]=N.getState())}g.pnCounters.clear()}if(g.sets.size>0){r.sets={};for(let c of g.sets){let N=d.get(c);N&&(r.sets[c]=N.getState())}g.sets.clear()}for(p.push(r);p.length>a;)p.shift()}let h={getRegister(s){return i.has(s)||i.set(s,x(t)),i.get(s)},setRegister(s,r){h.getRegister(s).set(r),m("registers",s),l(s,"lww-register","set")},hasRegister(s){return i.has(s)},deleteRegister(s){let r=i.delete(s);return r&&m("registers",s),r},getGCounter(s){return T.has(s)||T.set(s,I(t)),T.get(s)},incrementGCounter(s,r){h.getGCounter(s).increment(r),m("gCounters",s),l(s,"g-counter","increment")},hasGCounter(s){return T.has(s)},deleteGCounter(s){let r=T.delete(s);return r&&m("gCounters",s),r},getCounter(s){return E.has(s)||E.set(s,P(t)),E.get(s)},incrementCounter(s,r){h.getCounter(s).increment(r),m("pnCounters",s),l(s,"pn-counter","increment")},decrementCounter(s,r){h.getCounter(s).decrement(r),m("pnCounters",s),l(s,"pn-counter","decrement")},hasCounter(s){return E.has(s)},deleteCounter(s){let r=E.delete(s);return r&&m("pnCounters",s),r},getSet(s){return d.has(s)||d.set(s,q(t)),d.get(s)},addToSet(s,r){h.getSet(s).add(r),m("sets",s),l(s,"or-set","add")},removeFromSet(s,r){h.getSet(s).remove(r),m("sets",s),l(s,"or-set","remove")},hasSet(s){return d.has(s)},deleteSet(s){let r=d.delete(s);return r&&m("sets",s),r},merge(s){let r=s.getState();h.applyState(r)},getState(){L();let s={version:u,timestamp:Date.now(),nodeId:t,registers:{},gCounters:{},pnCounters:{},sets:{}};for(let[r,c]of i)s.registers[r]=c.getState();for(let[r,c]of T)s.gCounters[r]=c.getState();for(let[r,c]of E)s.pnCounters[r]=c.getState();for(let[r,c]of d)s.sets[r]=c.getState();return s},applyState(s){for(let[r,c]of Object.entries(s.registers))i.has(r)?i.get(r).applyState(c):i.set(r,F(t,c)),m("registers",r),l(r,"lww-register","merge");for(let[r,c]of Object.entries(s.gCounters))T.has(r)?T.get(r).applyState(c):T.set(r,M(t,c)),m("gCounters",r),l(r,"g-counter","merge");for(let[r,c]of Object.entries(s.pnCounters))E.has(r)?E.get(r).applyState(c):E.set(r,k(t,c)),m("pnCounters",r),l(r,"pn-counter","merge");for(let[r,c]of Object.entries(s.sets))d.has(r)?d.get(r).applyState(c):d.set(r,z(t,c)),m("sets",r),l(r,"or-set","merge");u=Math.max(u,s.version)+1},getDelta(s){if(L(),p.length===0)return s>=u,null;let r=p.filter(N=>N.toVersion>s);if(r.length===0)return null;let c={fromVersion:s,toVersion:u,timestamp:Date.now(),nodeId:t,registers:{},gCounters:{},pnCounters:{},sets:{}};for(let N of r)N.registers&&Object.assign(c.registers,N.registers),N.gCounters&&Object.assign(c.gCounters,N.gCounters),N.pnCounters&&Object.assign(c.pnCounters,N.pnCounters),N.sets&&Object.assign(c.sets,N.sets);return Object.keys(c.registers).length===0&&delete c.registers,Object.keys(c.gCounters).length===0&&delete c.gCounters,Object.keys(c.pnCounters).length===0&&delete c.pnCounters,Object.keys(c.sets).length===0&&delete c.sets,c},applyDelta(s){if(s.registers)for(let[r,c]of Object.entries(s.registers))i.has(r)?i.get(r).applyState(c):i.set(r,F(t,c)),m("registers",r),l(r,"lww-register","merge");if(s.gCounters)for(let[r,c]of Object.entries(s.gCounters))T.has(r)?T.get(r).applyState(c):T.set(r,M(t,c)),m("gCounters",r),l(r,"g-counter","merge");if(s.pnCounters)for(let[r,c]of Object.entries(s.pnCounters))E.has(r)?E.get(r).applyState(c):E.set(r,k(t,c)),m("pnCounters",r),l(r,"pn-counter","merge");if(s.sets)for(let[r,c]of Object.entries(s.sets))d.has(r)?d.get(r).applyState(c):d.set(r,z(t,c)),m("sets",r),l(r,"or-set","merge");u=Math.max(u,s.toVersion)+1},getVersion(){return u},getNodeId(){return t},on(s,r){if(s==="change")return _.add(r),()=>{_.delete(r)};throw new Error(`Unknown event type: ${s}`)},removeAllListeners(){_.clear()},keys(s){let r=[];return(!s||s==="lww-register")&&r.push(...Array.from(i.keys())),(!s||s==="g-counter")&&r.push(...Array.from(T.keys())),(!s||s==="pn-counter")&&r.push(...Array.from(E.keys())),(!s||s==="or-set")&&r.push(...Array.from(d.keys())),r},clear(){i.clear(),T.clear(),E.clear(),d.clear(),p.length=0,g.registers.clear(),g.gCounters.clear(),g.pnCounters.clear(),g.sets.clear(),u=0},getStats(){return{total:i.size+T.size+E.size+d.size,registers:i.size,gCounters:T.size,pnCounters:E.size,sets:d.size,version:u,nodeId:t,deltaHistorySize:p.length}}};return h}var Ke,Ie=R(()=>{"use strict";V();G();Q();Z();Ke={nodeId:"default-node",enableDeltaTracking:!0,maxDeltaHistory:100}});var Ae=R(()=>{"use strict"});var Oe=R(()=>{"use strict";V();G();Q();Z();Ie();Ae()});var Ze={};Fe(Ze,{ALLOWED_TABLE_NAMES:()=>Y,BinaryHeap:()=>oe,DEFAULT_UNIFIED_MEMORY_CONFIG:()=>De,UnifiedHnswIndex:()=>w,UnifiedMemoryManager:()=>v,clearProjectRootCache:()=>W,createHnswIndex:()=>ie,findProjectRoot:()=>y,getDefaultDbPath:()=>ye,getResolvedDefaultConfig:()=>Xe,getUnifiedMemory:()=>we,initializeUnifiedMemory:()=>Ve,resetUnifiedMemory:()=>Qe,validateTableName:()=>O});import*as f from"fs";import*as be from"os";import*as S from"path";function ye(){let o=y();return S.join(o,".agentic-qe","memory.db")}function Xe(){return{...De,dbPath:ye()}}function we(o){return v.getInstance(o)}async function Ve(o){let e=we(o);return await e.initialize(),e}function Qe(){v.resetInstance()}function Je(){if(ve)return;ve=!0;let o=()=>{try{let e=v.instance;e&&e.close()}catch(e){console.debug("[UnifiedMemory] Cleanup error:",e instanceof Error?e.message:e)}};process.on("beforeExit",o),process.on("SIGINT",()=>{o(),process.exit(0)}),process.on("SIGTERM",()=>{o(),process.exit(0)})}var D,De,v,ve,et=R(()=>{ke();se();Me();Ge();Pe();ue();$();$();ae();ae();Ce();Oe();je();D=ne.create("unified-memory");De={dbPath:".agentic-qe/memory.db",walMode:!0,mmapSize:b.MMAP_SIZE_BYTES,cacheSize:b.CACHE_SIZE_KB,busyTimeout:b.BUSY_TIMEOUT_MS,vectorDimensions:b.DEFAULT_VECTOR_DIMENSIONS};v=class o{static instance=null;static instancePromise=null;db=null;config;initialized=!1;vectorsLoaded=!1;initPromise=null;preparedStatements=new Map;vectorIndex=new w("qe-memory");crdtStore=null;proofGate=null;proofGateEnvChecked=!1;static PROOF_NS="__proofgate__";static PROOF_KEY="chain";constructor(e){let t=Xe();if(this.config={...t,...e},process.env.AQE_MEMORY_BACKEND==="memory"){this.config.dbPath=":memory:";return}if(!S.isAbsolute(this.config.dbPath)){let n=y();this.config.dbPath=S.join(n,this.config.dbPath)}}static getInstance(e){return o.instance||(o.instance=new o(e)),o.instance}static async getInstanceAsync(e){return o.instance?.initialized?o.instance:(o.instancePromise||(o.instancePromise=(async()=>{let t=o.getInstance(e);return await t.initialize(),t})()),o.instancePromise)}static resetInstance(){o.instance&&(o.instance.close(),o.instance=null),o.instancePromise=null,W()}async initialize(e){if(!this.initialized)return this.initPromise||(this.initPromise=this._doInitialize(e?.signal)),this.initPromise}async _doInitialize(e){if(!this.initialized){e?.throwIfAborted();try{let t=this.config.dbPath===":memory:",n="",a=!1,i=0;if(!t){let T=process.env.AQE_PROJECT_ROOT;if(T){let E=S.resolve(this.config.dbPath),d=S.resolve(T);!E.startsWith(d)&&!E.startsWith(be.tmpdir())&&E.includes(".agentic-qe")&&(console.error(`[UnifiedMemory] WARNING: DB path "${this.config.dbPath}" points to a production .agentic-qe/ while AQE_PROJECT_ROOT="${T}". Redirecting to test-safe path.`),this.config.dbPath=S.join(T,".agentic-qe","memory.db"))}if(n=S.dirname(this.config.dbPath),f.existsSync(n)||f.mkdirSync(n,{recursive:!0}),a=f.existsSync(this.config.dbPath),a)i=f.statSync(this.config.dbPath).size;else if(f.existsSync(n)){let E=this.findRecentBackups(n);if(E.length>0){let d=E[0];console.error(`[UnifiedMemory] CRITICAL: Database file missing but directory exists!
|
|
733
|
+
`,Oe=["kv_store","vectors","rl_q_values","goap_actions","goap_goals","goap_plans","goap_plan_signatures","goap_execution_steps","concept_nodes","concept_edges","dream_cycles","dream_insights","qe_patterns","qe_pattern_embeddings","qe_pattern_usage","qe_trajectories","embeddings","execution_results","executed_steps","mincut_snapshots","mincut_history","mincut_weak_vertices","mincut_alerts","mincut_healing_actions","mincut_observations","hypergraph_nodes","hypergraph_edges","sona_patterns","witness_chain","learning_evidence_manifests","learning_evidence_segments","learning_segment_edges","learning_evidence_admissions","pattern_manifest_lineage","pattern_segment_lineage"]});function F(s,e,t){let n={value:e,timestamp:t??(e!==void 0?Date.now():0),nodeId:e!==void 0?s:"",version:e!==void 0?1:0,lastUpdated:Date.now()};function a(o,T,d,E){return o!==d?o-d:T.localeCompare(E)}return{get(){return n.value},set(o,T){let d=T??Date.now();(n.timestamp===0||a(d,s,n.timestamp,n.nodeId)>0)&&(n={value:o,timestamp:d,nodeId:s,version:n.version+1,lastUpdated:Date.now()})},merge(o){let T=o.getState();this.applyState(T)},getState(){return{value:n.value,timestamp:n.timestamp,nodeId:n.nodeId,version:n.version,lastUpdated:n.lastUpdated}},applyState(o){(n.timestamp===0||a(o.timestamp,o.nodeId,n.timestamp,n.nodeId)>0)&&(n={value:o.value,timestamp:o.timestamp,nodeId:o.nodeId,version:Math.max(n.version,o.version)+1,lastUpdated:Date.now()})},getNodeId(){return s},getTimestamp(){return n.timestamp}}}function x(s,e){let t=F(s);return t.applyState(e),t}var J=R(()=>{"use strict"});function C(s){let e={counts:{},version:0,lastUpdated:Date.now()};return e.counts[s]=0,{get(){return Object.values(e.counts).reduce((t,n)=>t+n,0)},increment(t=1){if(t<0)throw new Error("G-Counter can only increment by positive values");t!==0&&(e.counts[s]=(e.counts[s]||0)+t,e.version++,e.lastUpdated=Date.now())},merge(t){let n=t.getState();this.applyState(n)},getState(){return{counts:{...e.counts},version:e.version,lastUpdated:e.lastUpdated}},applyState(t){let n=!1;for(let[a,o]of Object.entries(t.counts)){let T=e.counts[a]||0;o>T&&(e.counts[a]=o,n=!0)}n&&(e.version=Math.max(e.version,t.version)+1,e.lastUpdated=Date.now())},getNodeId(){return s},getLocalCount(){return e.counts[s]||0}}}function G(s,e){let t=C(s);return t.applyState(e),t}var M=R(()=>{"use strict"});function P(s){let e=C(s),t=C(s),n=0,a=Date.now();return{get(){return e.get()-t.get()},increment(o=1){if(o<0)throw new Error("Use decrement() for negative values");o!==0&&(e.increment(o),n++,a=Date.now())},decrement(o=1){if(o<0)throw new Error("Use increment() for negative values");o!==0&&(t.increment(o),n++,a=Date.now())},merge(o){let T=o.getState();this.applyState(T)},getState(){return{positive:e.getState(),negative:t.getState(),version:n,lastUpdated:a}},applyState(o){let T=this.get();e.applyState(o.positive),t.applyState(o.negative);let d=this.get();T!==d&&(n=Math.max(n,o.version)+1,a=Date.now())},getNodeId(){return s}}}function k(s,e){let t=P(s);return t.applyState(e),t}var Z=R(()=>{"use strict";M()});function Ve(s,e){return`${s}:${Date.now()}:${e}`}function ee(s){return typeof s=="string"?`s:${s}`:typeof s=="number"?`n:${s}`:typeof s=="boolean"?`b:${s}`:`j:${JSON.stringify(s)}`}function Qe(s){let e=s.substring(0,2),t=s.substring(2);switch(e){case"s:":return t;case"n:":return Number(t);case"b:":return t==="true";case"j:":return I(t);default:throw new Error(`Unknown serialization type: ${e}`)}}function q(s){let e=new Map,t=new Map,n=0,a=Date.now(),o=0;function T(E){let u=e.get(E);if(!u||u.size===0)return!1;let _=t.get(E);if(!_||_.size===0)return!0;for(let m of u)if(!_.has(m))return!0;return!1}function d(E){let u=e.get(E);if(!u)return new Set;let _=t.get(E)||new Set,m=new Set;for(let p of u)_.has(p)||m.add(p);return m}return{has(E){let u=ee(E);return T(u)},values(){let E=[];for(let[u]of e)T(u)&&E.push(Qe(u));return E},size(){let E=0;for(let[u]of e)T(u)&&E++;return E},add(E){let u=ee(E),_=Ve(s,o++);e.has(u)||e.set(u,new Set),e.get(u).add(_),n++,a=Date.now()},remove(E){let u=ee(E),_=e.get(u);if(!_||_.size===0)return;t.has(u)||t.set(u,new Set);let m=t.get(u);for(let p of _)m.add(p);n++,a=Date.now()},merge(E){let u=E.getState();this.applyState(u)},getState(){let E={};for(let[_,m]of e)E[_]=Array.from(m);let u={};for(let[_,m]of t)m.size>0&&(u[_]=Array.from(m));return{elements:E,tombstones:u,version:n,lastUpdated:a}},applyState(E){let u=!1;for(let[_,m]of Object.entries(E.elements)){e.has(_)||e.set(_,new Set);let p=e.get(_);for(let l of m)p.has(l)||(p.add(l),u=!0)}for(let[_,m]of Object.entries(E.tombstones)){t.has(_)||t.set(_,new Set);let p=t.get(_);for(let l of m)p.has(l)||(p.add(l),u=!0)}u&&(n=Math.max(n,E.version)+1,a=Date.now())},getNodeId(){return s},clear(){for(let[E,u]of e){t.has(E)||t.set(E,new Set);let _=t.get(E);for(let m of u)_.add(m)}n++,a=Date.now()}}}function B(s,e){let t=q(s);return t.applyState(e),t}var te=R(()=>{"use strict";oe()});function ne(s){let e={...Je,...s},{nodeId:t,enableDeltaTracking:n,maxDeltaHistory:a}=e,o=new Map,T=new Map,d=new Map,E=new Map,u=0,_=[],m=new Set,p={registers:new Set,gCounters:new Set,pnCounters:new Set,sets:new Set};function l(i,r,c){let N={key:i,type:r,operation:c,timestamp:Date.now(),nodeId:t};for(let Ge of m)try{Ge(N)}catch(Me){console.error("[CRDTStore] Error in change listener:",Me)}}function g(i,r){u++,n&&p[i].add(r)}function L(){if(!n||!(p.registers.size>0||p.gCounters.size>0||p.pnCounters.size>0||p.sets.size>0))return;let r={fromVersion:_.length>0?_[_.length-1].toVersion:0,toVersion:u,timestamp:Date.now(),nodeId:t};if(p.registers.size>0){r.registers={};for(let c of p.registers){let N=o.get(c);N&&(r.registers[c]=N.getState())}p.registers.clear()}if(p.gCounters.size>0){r.gCounters={};for(let c of p.gCounters){let N=T.get(c);N&&(r.gCounters[c]=N.getState())}p.gCounters.clear()}if(p.pnCounters.size>0){r.pnCounters={};for(let c of p.pnCounters){let N=d.get(c);N&&(r.pnCounters[c]=N.getState())}p.pnCounters.clear()}if(p.sets.size>0){r.sets={};for(let c of p.sets){let N=E.get(c);N&&(r.sets[c]=N.getState())}p.sets.clear()}for(_.push(r);_.length>a;)_.shift()}let h={getRegister(i){return o.has(i)||o.set(i,F(t)),o.get(i)},setRegister(i,r){h.getRegister(i).set(r),g("registers",i),l(i,"lww-register","set")},hasRegister(i){return o.has(i)},deleteRegister(i){let r=o.delete(i);return r&&g("registers",i),r},getGCounter(i){return T.has(i)||T.set(i,C(t)),T.get(i)},incrementGCounter(i,r){h.getGCounter(i).increment(r),g("gCounters",i),l(i,"g-counter","increment")},hasGCounter(i){return T.has(i)},deleteGCounter(i){let r=T.delete(i);return r&&g("gCounters",i),r},getCounter(i){return d.has(i)||d.set(i,P(t)),d.get(i)},incrementCounter(i,r){h.getCounter(i).increment(r),g("pnCounters",i),l(i,"pn-counter","increment")},decrementCounter(i,r){h.getCounter(i).decrement(r),g("pnCounters",i),l(i,"pn-counter","decrement")},hasCounter(i){return d.has(i)},deleteCounter(i){let r=d.delete(i);return r&&g("pnCounters",i),r},getSet(i){return E.has(i)||E.set(i,q(t)),E.get(i)},addToSet(i,r){h.getSet(i).add(r),g("sets",i),l(i,"or-set","add")},removeFromSet(i,r){h.getSet(i).remove(r),g("sets",i),l(i,"or-set","remove")},hasSet(i){return E.has(i)},deleteSet(i){let r=E.delete(i);return r&&g("sets",i),r},merge(i){let r=i.getState();h.applyState(r)},getState(){L();let i={version:u,timestamp:Date.now(),nodeId:t,registers:{},gCounters:{},pnCounters:{},sets:{}};for(let[r,c]of o)i.registers[r]=c.getState();for(let[r,c]of T)i.gCounters[r]=c.getState();for(let[r,c]of d)i.pnCounters[r]=c.getState();for(let[r,c]of E)i.sets[r]=c.getState();return i},applyState(i){for(let[r,c]of Object.entries(i.registers))o.has(r)?o.get(r).applyState(c):o.set(r,x(t,c)),g("registers",r),l(r,"lww-register","merge");for(let[r,c]of Object.entries(i.gCounters))T.has(r)?T.get(r).applyState(c):T.set(r,G(t,c)),g("gCounters",r),l(r,"g-counter","merge");for(let[r,c]of Object.entries(i.pnCounters))d.has(r)?d.get(r).applyState(c):d.set(r,k(t,c)),g("pnCounters",r),l(r,"pn-counter","merge");for(let[r,c]of Object.entries(i.sets))E.has(r)?E.get(r).applyState(c):E.set(r,B(t,c)),g("sets",r),l(r,"or-set","merge");u=Math.max(u,i.version)+1},getDelta(i){if(L(),_.length===0)return i>=u,null;let r=_.filter(N=>N.toVersion>i);if(r.length===0)return null;let c={fromVersion:i,toVersion:u,timestamp:Date.now(),nodeId:t,registers:{},gCounters:{},pnCounters:{},sets:{}};for(let N of r)N.registers&&Object.assign(c.registers,N.registers),N.gCounters&&Object.assign(c.gCounters,N.gCounters),N.pnCounters&&Object.assign(c.pnCounters,N.pnCounters),N.sets&&Object.assign(c.sets,N.sets);return Object.keys(c.registers).length===0&&delete c.registers,Object.keys(c.gCounters).length===0&&delete c.gCounters,Object.keys(c.pnCounters).length===0&&delete c.pnCounters,Object.keys(c.sets).length===0&&delete c.sets,c},applyDelta(i){if(i.registers)for(let[r,c]of Object.entries(i.registers))o.has(r)?o.get(r).applyState(c):o.set(r,x(t,c)),g("registers",r),l(r,"lww-register","merge");if(i.gCounters)for(let[r,c]of Object.entries(i.gCounters))T.has(r)?T.get(r).applyState(c):T.set(r,G(t,c)),g("gCounters",r),l(r,"g-counter","merge");if(i.pnCounters)for(let[r,c]of Object.entries(i.pnCounters))d.has(r)?d.get(r).applyState(c):d.set(r,k(t,c)),g("pnCounters",r),l(r,"pn-counter","merge");if(i.sets)for(let[r,c]of Object.entries(i.sets))E.has(r)?E.get(r).applyState(c):E.set(r,B(t,c)),g("sets",r),l(r,"or-set","merge");u=Math.max(u,i.toVersion)+1},getVersion(){return u},getNodeId(){return t},on(i,r){if(i==="change")return m.add(r),()=>{m.delete(r)};throw new Error(`Unknown event type: ${i}`)},removeAllListeners(){m.clear()},keys(i){let r=[];return(!i||i==="lww-register")&&r.push(...Array.from(o.keys())),(!i||i==="g-counter")&&r.push(...Array.from(T.keys())),(!i||i==="pn-counter")&&r.push(...Array.from(d.keys())),(!i||i==="or-set")&&r.push(...Array.from(E.keys())),r},clear(){o.clear(),T.clear(),d.clear(),E.clear(),_.length=0,p.registers.clear(),p.gCounters.clear(),p.pnCounters.clear(),p.sets.clear(),u=0},getStats(){return{total:o.size+T.size+d.size+E.size,registers:o.size,gCounters:T.size,pnCounters:d.size,sets:E.size,version:u,nodeId:t,deltaHistorySize:_.length}}};return h}var Je,ve=R(()=>{"use strict";J();M();Z();te();Je={nodeId:"default-node",enableDeltaTracking:!0,maxDeltaHistory:100}});var be=R(()=>{"use strict"});var De=R(()=>{"use strict";J();M();Z();te();ve();be()});var nt={};Pe(nt,{ALLOWED_TABLE_NAMES:()=>Y,BinaryHeap:()=>ae,DEFAULT_UNIFIED_MEMORY_CONFIG:()=>we,UnifiedHnswIndex:()=>U,UnifiedMemoryManager:()=>v,clearProjectRootCache:()=>H,createHnswIndex:()=>ce,findProjectRoot:()=>D,getDefaultDbPath:()=>Ue,getResolvedDefaultConfig:()=>Fe,getUnifiedMemory:()=>xe,initializeUnifiedMemory:()=>Ze,resetUnifiedMemory:()=>et,validateTableName:()=>A});import*as f from"fs";import*as Xe from"os";import*as S from"path";function Ue(){let s=D();return S.join(s,".agentic-qe","memory.db")}function Fe(){return{...we,dbPath:Ue()}}function xe(s){return v.getInstance(s)}async function Ze(s){let e=xe(s);return await e.initialize(),e}function et(){v.resetInstance()}function tt(){if(ye)return;ye=!0;let s=()=>{try{let e=v.instance;e&&e.close()}catch(e){console.debug("[UnifiedMemory] Cleanup error:",e instanceof Error?e.message:e)}};process.on("beforeExit",s),process.on("SIGINT",()=>{s(),process.exit(0)}),process.on("SIGTERM",()=>{s(),process.exit(0)})}var y,we,v,ye,rt=R(()=>{je();oe();ke();qe();Be();le();$();$();Te();Te();Ae();K();De();We();y=se.create("unified-memory");we={dbPath:".agentic-qe/memory.db",walMode:!0,mmapSize:b.MMAP_SIZE_BYTES,cacheSize:b.CACHE_SIZE_KB,busyTimeout:b.BUSY_TIMEOUT_MS,vectorDimensions:b.DEFAULT_VECTOR_DIMENSIONS};v=class s{static instance=null;static instancePromise=null;db=null;config;initialized=!1;vectorsLoaded=!1;initPromise=null;preparedStatements=new Map;vectorIndex=new U("qe-memory");crdtStore=null;proofGate=null;proofGateEnvChecked=!1;static PROOF_NS="__proofgate__";static PROOF_KEY="chain";constructor(e){let t=Fe();if(this.config={...t,...e},process.env.AQE_MEMORY_BACKEND==="memory"){this.config.dbPath=":memory:";return}if(!S.isAbsolute(this.config.dbPath)){let n=D();this.config.dbPath=S.join(n,this.config.dbPath)}}static getInstance(e){return s.instance||(s.instance=new s(e)),s.instance}static async getInstanceAsync(e){return s.instance?.initialized?s.instance:(s.instancePromise||(s.instancePromise=(async()=>{let t=s.getInstance(e);return await t.initialize(),t})()),s.instancePromise)}static resetInstance(){s.instance&&(s.instance.close(),s.instance=null),s.instancePromise=null,H()}async initialize(e){if(!this.initialized)return this.initPromise||(this.initPromise=this._doInitialize(e?.signal)),this.initPromise}async _doInitialize(e){if(!this.initialized){e?.throwIfAborted();try{let t=this.config.dbPath===":memory:",n="",a=!1,o=0;if(!t){let T=process.env.AQE_PROJECT_ROOT;if(T){let d=S.resolve(this.config.dbPath),E=S.resolve(T);!d.startsWith(E)&&!d.startsWith(Xe.tmpdir())&&d.includes(".agentic-qe")&&(console.error(`[UnifiedMemory] WARNING: DB path "${this.config.dbPath}" points to a production .agentic-qe/ while AQE_PROJECT_ROOT="${T}". Redirecting to test-safe path.`),this.config.dbPath=S.join(T,".agentic-qe","memory.db"))}if(n=S.dirname(this.config.dbPath),f.existsSync(n)||f.mkdirSync(n,{recursive:!0}),a=f.existsSync(this.config.dbPath),a)o=f.statSync(this.config.dbPath).size;else if(f.existsSync(n)){let d=this.findRecentBackups(n);if(d.length>0){let E=d[0];console.error(`[UnifiedMemory] CRITICAL: Database file missing but directory exists!
|
|
600
734
|
Expected: ${this.config.dbPath}
|
|
601
|
-
Found ${
|
|
602
|
-
Restoring from backup to prevent data loss...`),f.copyFileSync(
|
|
603
|
-
DB was ${(
|
|
735
|
+
Found ${d.length} backup(s), newest: ${E.path} (${(E.size/1024/1024).toFixed(1)}MB)
|
|
736
|
+
Restoring from backup to prevent data loss...`),f.copyFileSync(E.path,this.config.dbPath);for(let u of["-wal","-shm"]){let _=this.config.dbPath+u;f.existsSync(_)&&f.unlinkSync(_)}o=E.size}}}if(e?.throwIfAborted(),this.db=ie(this.config.dbPath,{walMode:this.config.walMode,busyTimeout:this.config.busyTimeout,autoRestore:!0}),this.db.pragma(`mmap_size = ${this.config.mmapSize}`),this.db.pragma(`cache_size = ${this.config.cacheSize}`),this.db.pragma("foreign_keys = ON"),e?.aborted){try{this.db.close()}catch{}this.db=null,e.throwIfAborted()}if(await this.runMigrations(),e?.throwIfAborted(),a&&o>1e6)try{let T=this.db.prepare("SELECT COUNT(*) as cnt FROM qe_patterns").get();if(T&&T.cnt===0){let d=f.statSync(this.config.dbPath).size;d<o*.1&&console.error(`[UnifiedMemory] CRITICAL: Possible data loss detected!
|
|
737
|
+
DB was ${(o/1024/1024).toFixed(1)}MB, now ${(d/1024/1024).toFixed(1)}MB with 0 patterns.
|
|
604
738
|
This looks like the DB was replaced with an empty schema.
|
|
605
|
-
Check backups in ${n} and restore manually.`)}}catch{}this.vectorsLoaded=!1,this.initialized=!0,console.log(`[UnifiedMemory] Initialized: ${this.config.dbPath}`),this.warnIfDuplicateDatabases()}catch(t){throw this.initPromise=null,t instanceof Error&&(t.name==="AbortError"||(e?.aborted??!1))?t:new Error(`Failed to initialize UnifiedMemoryManager: ${X(t)}`)}}}findRecentBackups(e){try{let n=f.readdirSync(e).filter(
|
|
739
|
+
Check backups in ${n} and restore manually.`)}}catch{}this.vectorsLoaded=!1,this.initialized=!0,console.log(`[UnifiedMemory] Initialized: ${this.config.dbPath}`),this.warnIfDuplicateDatabases()}catch(t){throw this.initPromise=null,t instanceof Error&&(t.name==="AbortError"||(e?.aborted??!1))?t:new Error(`Failed to initialize UnifiedMemoryManager: ${X(t)}`)}}}findRecentBackups(e){try{let n=f.readdirSync(e).filter(o=>o.startsWith("memory")&&o.endsWith(".db")&&o!=="memory.db").map(o=>{let T=S.join(e,o),d=f.statSync(T);return{path:T,size:d.size,mtime:d.mtimeMs}}).filter(o=>o.size>1e6).sort((o,T)=>T.mtime-o.mtime),a=S.join(e,"backups");if(f.existsSync(a)){let o=f.readdirSync(a);for(let T of o)if(T.endsWith(".db")){let d=S.join(a,T),E=f.statSync(d);E.size>1e6&&n.push({path:d,size:E.size,mtime:E.mtimeMs})}n.sort((T,d)=>d.mtime-T.mtime)}return n}catch{return[]}}warnIfDuplicateDatabases(){if(this.config.dbPath!==":memory:")try{let e=D(),t=S.resolve(this.config.dbPath),a=[S.join(e,".agentic-qe","memory.db"),S.join(e,"v3",".agentic-qe","memory.db")].map(o=>S.resolve(o)).filter(o=>o!==t&&f.existsSync(o));a.length>0&&console.warn(`[UnifiedMemory] WARNING: Duplicate database(s) detected!
|
|
606
740
|
Canonical: ${t}
|
|
607
741
|
Duplicates: ${a.join(", ")}
|
|
608
|
-
This can cause data splits. Remove duplicates or set AQE_PROJECT_ROOT.`)}catch(e){
|
|
742
|
+
This can cause data splits. Remove duplicates or set AQE_PROJECT_ROOT.`)}catch(e){y.debug("Duplicate database check failed",{error:e instanceof Error?e.message:String(e)})}}columnExists(e,t){if(!this.db)return!1;try{let n=A(e);return this.db.prepare(`PRAGMA table_info(${n})`).all().some(o=>o.name===t)}catch(n){return y.debug("Column existence check failed",{table:e,column:t,error:n instanceof Error?n.message:String(n)}),!1}}handleV2SchemaIncompatibilities(){if(!this.db)return;let e=[{table:"goap_plans",requiredColumn:"status",columnDef:"TEXT DEFAULT 'pending'"},{table:"goap_actions",requiredColumn:"agent_type",columnDef:"TEXT DEFAULT 'unknown'"},{table:"concept_nodes",requiredColumn:"concept_type",columnDef:"TEXT DEFAULT 'general'"},{table:"concept_edges",requiredColumn:"edge_type",columnDef:"TEXT DEFAULT 'related'"},{table:"dream_insights",requiredColumn:"cycle_id",columnDef:"TEXT DEFAULT ''"},{table:"rl_q_values",requiredColumn:"algorithm",columnDef:"TEXT DEFAULT 'q-learning'"}];for(let{table:t,requiredColumn:n,columnDef:a}of e)if(this.db.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name=?").get(t)&&!this.columnExists(t,n)){let T=A(t);try{this.db.exec(`ALTER TABLE ${T} ADD COLUMN ${n} ${a}`),console.log(`[UnifiedMemory] Added column ${n} to ${t} (safe migration)`)}catch(d){console.log(`[UnifiedMemory] Column ${n} on ${t}: ${d instanceof Error?d.message:String(d)}`)}}}async runMigrations(){if(!this.db)throw new Error("Database not initialized");this.db.exec(fe),this.handleV2SchemaIncompatibilities();let t=this.db.prepare("SELECT version FROM schema_version WHERE id = 1").get()?.version??0;t<w&&(console.log(`[UnifiedMemory] Migrating from v${t} to v${w}`),this.db.transaction(()=>{t<1&&this.db.exec(Ne),t<2&&this.db.exec(Se),t<3&&(this.db.exec(he),this.db.exec(V),this.db.exec(Re)),t<4&&this.db.exec(Q),t<5&&this.db.exec(Le),t<6&&this.db.exec(j),t<7&&this.db.exec(Ie),t<8&&this.db.exec(Ce),t<9&&(this.db.exec(`
|
|
609
743
|
CREATE VIRTUAL TABLE IF NOT EXISTS qe_patterns_fts USING fts5(
|
|
610
744
|
name, description, pattern_type, qe_domain,
|
|
611
745
|
content='qe_patterns',
|
|
@@ -631,16 +765,16 @@ import{d as j,f as qe}from"./chunk-KRZYWVS3.js";import{a as B,c as ze}from"./chu
|
|
|
631
765
|
`),this.db.exec(`
|
|
632
766
|
INSERT INTO qe_patterns_fts(rowid, name, description, pattern_type, qe_domain)
|
|
633
767
|
SELECT rowid, name, description, pattern_type, qe_domain FROM qe_patterns;
|
|
634
|
-
`)),t<10&&this.db.exec(
|
|
768
|
+
`)),t<10&&this.db.exec(z),t<11&&this.migrateToV11GoapExecutionSteps(),t<12&&me(this.db),t<13&&this.migrateToV13EmbeddingSpace(),this.db.prepare(`
|
|
635
769
|
INSERT OR REPLACE INTO schema_version (id, version, migrated_at)
|
|
636
770
|
VALUES (1, ?, datetime('now'))
|
|
637
|
-
`).run(
|
|
771
|
+
`).run(w)})(),console.log("[UnifiedMemory] Migration complete"))}migrateToV11GoapExecutionSteps(){let e=this.db;e.exec(V);let t=(n,a,o)=>{e.prepare(`SELECT name FROM pragma_table_info('${n}')`).all().some(d=>d.name===a)||e.exec(`ALTER TABLE ${n} ADD COLUMN ${a} ${o}`)};t("goap_execution_steps","execution_id","TEXT"),t("goap_execution_steps","retries","INTEGER DEFAULT 0"),t("goap_execution_steps","started_at","TEXT"),t("goap_execution_steps","agent_output","TEXT"),t("goap_actions","method","TEXT"),t("goap_actions","params","TEXT"),t("goap_actions","implemented","INTEGER DEFAULT 0"),e.exec("CREATE INDEX IF NOT EXISTS idx_goap_exec_steps_execution ON goap_execution_steps(execution_id)")}async loadVectorIndex(){if(this.vectorsLoaded)return;if(!this.db)throw new Error("Database not initialized");this.vectorIndex.clear();let e=this.db.prepare("SELECT id, embedding, dimensions FROM vectors").all();for(let t of e){let n=this.bufferToFloatArray(t.embedding,t.dimensions);this.vectorIndex.add(t.id,n)}this.vectorsLoaded=!0,console.log(`[UnifiedMemory] Loaded ${e.length} vectors into vector index (ruvector flat)`)}async kvSet(e,t,n="default",a){this.ensureInitialized();let o=a?Date.now()+a*1e3:null,T=JSON.stringify(t);this.db.prepare(`
|
|
638
772
|
INSERT OR REPLACE INTO kv_store (key, namespace, value, expires_at)
|
|
639
773
|
VALUES (?, ?, ?, ?)
|
|
640
|
-
`).run(e,n,T,
|
|
774
|
+
`).run(e,n,T,o),this.auditWrite("kvSet",n,e,T)}async kvGet(e,t="default"){this.ensureInitialized();let n=this.db.prepare(`
|
|
641
775
|
SELECT value, expires_at FROM kv_store
|
|
642
776
|
WHERE key = ? AND namespace = ?
|
|
643
|
-
`).get(e,t);if(n){if(n.expires_at&&Date.now()>n.expires_at){this.db.prepare("DELETE FROM kv_store WHERE key = ? AND namespace = ?").run(e,t);return}return
|
|
777
|
+
`).get(e,t);if(n){if(n.expires_at&&Date.now()>n.expires_at){this.db.prepare("DELETE FROM kv_store WHERE key = ? AND namespace = ?").run(e,t);return}return I(n.value)}}async kvDelete(e,t="default"){this.ensureInitialized();let n=this.db.prepare("DELETE FROM kv_store WHERE key = ? AND namespace = ?").run(e,t);return n.changes>0&&this.auditWrite("kvDelete",t,e,""),n.changes>0}async kvExists(e,t="default"){return this.ensureInitialized(),this.db.prepare(`
|
|
644
778
|
SELECT 1 FROM kv_store
|
|
645
779
|
WHERE key = ? AND namespace = ? AND (expires_at IS NULL OR expires_at > ?)
|
|
646
780
|
`).get(e,t,Date.now())!==void 0}async kvSearch(e,t="default",n=100){this.ensureInitialized();let a=e.replace(/\*/g,"%").replace(/\?/g,"_");return this.db.prepare(`
|
|
@@ -648,14 +782,14 @@ import{d as j,f as qe}from"./chunk-KRZYWVS3.js";import{a as B,c as ze}from"./chu
|
|
|
648
782
|
WHERE namespace = ? AND key LIKE ?
|
|
649
783
|
AND (expires_at IS NULL OR expires_at > ?)
|
|
650
784
|
LIMIT ?
|
|
651
|
-
`).all(t,a,Date.now(),n).map(T=>T.key)}async kvCleanupExpired(){return this.ensureInitialized(),this.db.prepare("DELETE FROM kv_store WHERE expires_at IS NOT NULL AND expires_at < ?").run(Date.now()).changes}enableProofGate(){this.ensureInitialized(),this.proofGateEnvChecked=!0,!this.proofGate&&(this.proofGate=this.loadProofChain()??new
|
|
785
|
+
`).all(t,a,Date.now(),n).map(T=>T.key)}async kvCleanupExpired(){return this.ensureInitialized(),this.db.prepare("DELETE FROM kv_store WHERE expires_at IS NOT NULL AND expires_at < ?").run(Date.now()).changes}enableProofGate(){this.ensureInitialized(),this.proofGateEnvChecked=!0,!this.proofGate&&(this.proofGate=this.loadProofChain()??new O)}isProofGateEnabled(){return this.proofGate!==null}verifyMemoryIntegrity(){if(!this.proofGate)throw new Error("Proof-gate not enabled \u2014 call enableProofGate() or set AQE_PROOF_GATE=1");return this.proofGate.verifyIntegrity()}getProofChainRoot(){return this.proofGate?this.proofGate.chainRoot():null}getProofChainLength(){return this.proofGate?this.proofGate.length:0}auditWrite(e,t,n,a){if(!this.proofGate){if(this.proofGateEnvChecked||(this.proofGateEnvChecked=!0,process.env.AQE_PROOF_GATE!=="1"))return;this.proofGate=this.loadProofChain()??new O}if(t!==s.PROOF_NS)try{this.proofGate.admit({op:e,ns:t,key:n,value:a}),this.persistProofChain()}catch(o){y.warn(`proof-gate audit skipped for ${t}/${n}: ${X(o)}`)}}persistProofChain(){!this.proofGate||!this.db||this.db.prepare(`
|
|
652
786
|
INSERT OR REPLACE INTO kv_store (key, namespace, value, expires_at)
|
|
653
787
|
VALUES (?, ?, ?, NULL)
|
|
654
|
-
`).run(
|
|
788
|
+
`).run(s.PROOF_KEY,s.PROOF_NS,JSON.stringify(this.proofGate.toJSON()))}loadProofChain(){if(!this.db)return null;let e=this.db.prepare(`
|
|
655
789
|
SELECT value FROM kv_store WHERE key = ? AND namespace = ?
|
|
656
|
-
`).get(
|
|
790
|
+
`).get(s.PROOF_KEY,s.PROOF_NS);if(!e)return null;try{return O.fromJSON(JSON.parse(e.value))}catch(t){return y.warn(`proof-gate chain failed to load (starting fresh): ${X(t)}`),null}}async vectorStore(e,t,n="default",a){this.ensureInitialized();let o=this.floatArrayToBuffer(t),T=a?JSON.stringify(a):null;this.db.prepare(`
|
|
657
791
|
INSERT OR REPLACE INTO vectors (id, namespace, embedding, dimensions, metadata, updated_at)
|
|
658
792
|
VALUES (?, ?, ?, ?, ?, datetime('now'))
|
|
659
|
-
`).run(e,n,
|
|
793
|
+
`).run(e,n,o,t.length,T),this.vectorIndex.add(e,t)}async vectorGet(e){this.ensureInitialized();let t=this.db.prepare(`
|
|
660
794
|
SELECT embedding, dimensions, metadata FROM vectors WHERE id = ?
|
|
661
|
-
`).get(e);if(t)return{embedding:this.bufferToFloatArray(t.embedding,t.dimensions),metadata:t.metadata?
|
|
795
|
+
`).get(e);if(t)return{embedding:this.bufferToFloatArray(t.embedding,t.dimensions),metadata:t.metadata?I(t.metadata):void 0}}async vectorDelete(e){this.ensureInitialized();let t=this.db.prepare("DELETE FROM vectors WHERE id = ?").run(e);return this.vectorIndex.remove(e),t.changes>0}async vectorSearch(e,t=10,n,a){if(this.ensureInitialized(),!Number.isInteger(t)||t<=0)return[];this.vectorsLoaded||await this.loadVectorIndex();let o=this.vectorIndex.size(),T=!!(n||a),d=Math.min(o,Math.max(T?t*2:t,1)),E=n?this.db.prepare("SELECT id, namespace, metadata FROM vectors WHERE namespace = ?").all(n):void 0,u=E?new Map(E.map(l=>[l.id,l])):void 0,_=this.vectorIndex.search(e,d);for(;T&&_.filter(l=>(!a||l.id.startsWith(a))&&(!u||u.has(l.id))).length<t&&d<o;)d=Math.min(o,d*2),_=this.vectorIndex.search(e,d);if(_.length===0)return[];let m=u??(()=>{let l=_.map(h=>h.id),g=l.map(()=>"?").join(","),L=this.db.prepare(`SELECT id, namespace, metadata FROM vectors WHERE id IN (${g})`).all(...l);return new Map(L.map(h=>[h.id,h]))})();if(n){let l=[];for(let g of _){let L=m.get(g.id);if(L&&L.namespace===n&&(!a||g.id.startsWith(a))&&(l.push({id:g.id,score:g.score,metadata:L.metadata?I(L.metadata):void 0}),l.length>=t))break}return l}return(a?_.filter(l=>l.id.startsWith(a)).slice(0,t):_.slice(0,t)).map(l=>{let g=m.get(l.id);return{id:l.id,score:l.score,metadata:g?.metadata?I(g.metadata):void 0}})}migrateToV13EmbeddingSpace(){let e=this.db;if(!e.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='qe_pattern_embeddings'").get()){e.exec(Q);return}e.prepare("PRAGMA table_info('qe_pattern_embeddings')").all().some(a=>a.name==="space_id")||e.exec("ALTER TABLE qe_pattern_embeddings ADD COLUMN space_id TEXT"),e.exec("CREATE INDEX IF NOT EXISTS idx_qe_pattern_embeddings_space ON qe_pattern_embeddings(space_id)")}getVectorSearchProvenance(){return this.vectorIndex.getProvider().isNativeBackend()?{backend:"native-hnsw",indexType:"hnsw",approximate:!0,estimatedRecall:this.vectorIndex.recall(),qualifiedMaxK:re.EF_SEARCH}:{backend:"progressive-hnsw",indexType:"flat",approximate:!1,estimatedRecall:1}}async vectorCount(e){return this.ensureInitialized(),e?this.db.prepare("SELECT COUNT(*) as count FROM vectors WHERE namespace = ?").get(e).count:this.db.prepare("SELECT COUNT(*) as count FROM vectors").get().count}queryCount(e){this.ensureInitialized();let t=A(e);return this.db.prepare(`SELECT COUNT(*) as c FROM ${t}`).get().c}initializeCRDT(e){if(this.crdtStore){console.warn("[UnifiedMemory] CRDT store already initialized");return}this.crdtStore=ne({nodeId:e}),console.log(`[UnifiedMemory] CRDT store initialized for node: ${e}`)}getCRDTStore(){return this.crdtStore}isCRDTInitialized(){return this.crdtStore!==null}async crdtSet(e,t,n="crdt"){this.ensureInitialized(),this.crdtStore&&this.crdtStore.setRegister(e,t),await this.kvSet(e,t,n)}async crdtGet(e,t="crdt"){if(this.crdtStore){let n=this.crdtStore.getRegister(e);if(n)return n.get()}return this.kvGet(e,t)}crdtIncrement(e,t=1){if(!this.crdtStore)throw new Error("CRDT store not initialized. Call initializeCRDT first.");let n=this.crdtStore.getCounter(e);n||(this.crdtStore.incrementCounter(e,0),n=this.crdtStore.getCounter(e));for(let a=0;a<t;a++)this.crdtStore.incrementCounter(e)}crdtGetCounter(e){return this.crdtStore?this.crdtStore.getCounter(e)?.get()??0:0}crdtAddToSet(e,t){if(!this.crdtStore)throw new Error("CRDT store not initialized. Call initializeCRDT first.");this.crdtStore.addToSet(e,t)}crdtRemoveFromSet(e,t){if(!this.crdtStore)throw new Error("CRDT store not initialized. Call initializeCRDT first.");this.crdtStore.removeFromSet(e,t)}crdtGetSet(e){if(!this.crdtStore)return new Set;let t=this.crdtStore.getSet(e);return new Set(t.values())}crdtGetState(){return this.crdtStore?this.crdtStore.getState():null}crdtGetDelta(e){return this.crdtStore?this.crdtStore.getDelta(e??0):null}crdtMerge(e){if(!this.crdtStore)throw new Error("CRDT store not initialized. Call initializeCRDT first.");this.crdtStore.applyState(e)}crdtApplyDelta(e){if(!this.crdtStore)throw new Error("CRDT store not initialized. Call initializeCRDT first.");this.crdtStore.applyDelta(e)}async crdtPersist(){if(!this.crdtStore)return;let e=this.crdtStore.getState();await this.kvSet("__crdt_state__",e,"crdt-internal")}async crdtRestore(){if(!this.crdtStore)return!1;let e=await this.kvGet("__crdt_state__","crdt-internal");return e?(this.crdtStore.applyState(e),!0):!1}getDatabase(){if(!this.db||!this.initialized)throw new Error("UnifiedMemoryManager not initialized");return this.db}isInitialized(){return this.initialized}getDbPath(){return this.config.dbPath}prepare(e,t){if(!this.db)throw new Error("Database not initialized");let n=this.preparedStatements.get(e);return n||(n=this.db.prepare(t),this.preparedStatements.set(e,n)),n}transaction(e){if(!this.db)throw new Error("Database not initialized");return this.db.transaction(e)()}getStats(){if(!this.db)throw new Error("Database not initialized");let e=Oe.map(a=>{try{let o=this.db.prepare(`SELECT COUNT(*) as count FROM ${a}`).get();return{name:a,rowCount:o.count}}catch(o){return y.debug("Table row count query failed",{table:a,error:o instanceof Error?o.message:String(o)}),{name:a,rowCount:0}}}),t=0,n=0;try{f.existsSync(this.config.dbPath)&&(t=f.statSync(this.config.dbPath).size);let a=this.config.dbPath+"-wal";f.existsSync(a)&&(n=f.statSync(a).size)}catch(a){console.debug("[UnifiedMemory] File stat error:",a instanceof Error?a.message:a)}return{tables:e,fileSize:t,walSize:n,vectorIndexSize:this.vectorIndex.size()}}vacuum(){if(!this.db)throw new Error("Database not initialized");this.db.exec("VACUUM")}checkpoint(){if(!this.db)throw new Error("Database not initialized");this.db.pragma("wal_checkpoint(TRUNCATE)")}close(){this.db&&(this.preparedStatements.clear(),this.vectorIndex.clear(),this.db.close(),this.db=null,this.initialized=!1,console.log("[UnifiedMemory] Database closed"))}ensureInitialized(){if(!this.initialized||!this.db)throw new Error("UnifiedMemoryManager not initialized. Call initialize() first.")}floatArrayToBuffer(e){let t=Buffer.alloc(e.length*4);for(let n=0;n<e.length;n++)t.writeFloatLE(e[n],n*4);return t}bufferToFloatArray(e,t){let n=new Float32Array(e.buffer,e.byteOffset,t);return Array.from(n)}};ye=!1;tt()});export{Y as a,A as b,ot as c,$ as d,ge as e,K as f,Ue as g,we as h,Fe as i,v as j,xe as k,Ze as l,et as m,nt as n,rt as o};
|