@remnic/core 9.7.15 → 9.8.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/dist/access-admin-ops-surface.d.ts +13 -6
- package/dist/access-admin-ops-surface.js +85 -71
- package/dist/access-audit.js +2 -2
- package/dist/access-boundary.d.ts +35 -17
- package/dist/access-boundary.js +86 -74
- package/dist/access-citation.d.ts +28 -0
- package/dist/access-citation.js +9 -0
- package/dist/access-cli.js +194 -178
- package/dist/access-cli.js.map +1 -1
- package/dist/access-errors.d.ts +16 -1
- package/dist/access-errors.js +7 -3
- package/dist/access-http.d.ts +25 -19
- package/dist/access-http.js +100 -87
- package/dist/access-identity-continuity-surface.d.ts +13 -8
- package/dist/access-identity-continuity-surface.js +85 -71
- package/dist/access-lcm-surface.d.ts +16 -9
- package/dist/access-lcm-surface.js +85 -71
- package/dist/access-mcp.d.ts +23 -16
- package/dist/access-mcp.js +96 -84
- package/dist/access-memory-search-fanout.d.ts +93 -0
- package/dist/access-memory-search-fanout.js +18 -0
- package/dist/access-observe-write-surface.d.ts +26 -8
- package/dist/access-observe-write-surface.js +85 -71
- package/dist/access-operations-batch.js +92 -80
- package/dist/access-operations.d.ts +29 -22
- package/dist/access-operations.js +94 -82
- package/dist/access-recall-concurrency.d.ts +250 -0
- package/dist/access-recall-concurrency.js +157 -0
- package/dist/access-recall-response.d.ts +130 -0
- package/dist/access-recall-response.js +147 -0
- package/dist/access-recall-surface.d.ts +15 -7
- package/dist/access-recall-surface.js +85 -71
- package/dist/access-schema.d.ts +98 -98
- package/dist/access-schema.js +8 -6
- package/dist/{access-service-DpcYZ9Nl.d.ts → access-service-DEL4qCrc.d.ts} +25 -32
- package/dist/access-service.d.ts +13 -6
- package/dist/access-service.js +89 -72
- package/dist/access-surface-catalog.d.ts +23 -16
- package/dist/access-surface-catalog.js +1 -0
- package/dist/access-surface-catalog.js.map +1 -1
- package/dist/access-token-capabilities.d.ts +2 -1
- package/dist/access-token-capabilities.js +4 -2
- package/dist/action-confidence.d.ts +3 -1
- package/dist/active-memory-bridge.d.ts +3 -1
- package/dist/active-memory-bridge.js +4 -4
- package/dist/active-recall.d.ts +4 -1
- package/dist/active-recall.js +23 -13
- package/dist/active-recall.js.map +1 -1
- package/dist/adapters/index.js +4 -4
- package/dist/adapters/registry.js +2 -2
- package/dist/{auto-sync-AAMTVZMK.js → auto-sync-UZG3XQZ5.js} +14 -8
- package/dist/{auto-sync-AAMTVZMK.js.map → auto-sync-UZG3XQZ5.js.map} +1 -1
- package/dist/behavior-learner.d.ts +3 -1
- package/dist/behavior-signals.d.ts +3 -1
- package/dist/bootstrap.d.ts +12 -7
- package/dist/bootstrap.js +2 -2
- package/dist/bounded-jsonl-state.d.ts +54 -0
- package/dist/bounded-jsonl-state.js +10 -0
- package/dist/boxes.js +2 -2
- package/dist/briefing.d.ts +5 -2
- package/dist/briefing.js +34 -24
- package/dist/buffer-surprise-report.d.ts +3 -1
- package/dist/buffer.d.ts +60 -2
- package/dist/buffer.js +3 -3
- package/dist/bulk-import/index.d.ts +5 -3
- package/dist/calibration.d.ts +3 -1
- package/dist/calibration.js +6 -6
- package/dist/capabilities.d.ts +7 -7
- package/dist/capabilities.js +1 -1
- package/dist/{capsule-crypto-CZJSLEFG.js → capsule-crypto-YO5QJ6L3.js} +3 -3
- package/dist/capsule-crypto-YO5QJ6L3.js.map +1 -0
- package/dist/{catalog-C9444P10.d.ts → catalog-BWqHb5HT.d.ts} +1 -1
- package/dist/causal-behavior.d.ts +3 -1
- package/dist/causal-behavior.js +6 -6
- package/dist/causal-chain.js +4 -4
- package/dist/causal-consolidation.d.ts +3 -1
- package/dist/causal-consolidation.js +43 -34
- package/dist/causal-consolidation.js.map +1 -1
- package/dist/causal-retrieval.js +6 -6
- package/dist/causal-trajectory-graph.d.ts +3 -1
- package/dist/causal-trajectory-graph.js +1 -1
- package/dist/causal-trajectory.js +1 -1
- package/dist/{chunk-A3GOMRJG.js → chunk-23L3IXFD.js} +2 -2
- package/dist/chunk-2CGLBUW3.js +15 -0
- package/dist/chunk-2CGLBUW3.js.map +1 -0
- package/dist/{chunk-MRHFJV44.js → chunk-2DQ2XREU.js} +2 -2
- package/dist/{chunk-QKQYXZVS.js → chunk-2EJOEICD.js} +1819 -1481
- package/dist/chunk-2EJOEICD.js.map +1 -0
- package/dist/{chunk-L2B3EE7B.js → chunk-2QMKMVHH.js} +2 -2
- package/dist/{chunk-VJVNLNDQ.js → chunk-2UFO7X4Q.js} +7 -7
- package/dist/{chunk-2MR3MFQB.js → chunk-2VEOKUPP.js} +3 -3
- package/dist/chunk-2Z24E5W2.js +22 -0
- package/dist/chunk-2Z24E5W2.js.map +1 -0
- package/dist/{chunk-RHOZ5LLO.js → chunk-347WD2LE.js} +2 -2
- package/dist/{chunk-HDTQVNWD.js → chunk-3QAH2S33.js} +3 -3
- package/dist/{chunk-37CTGERM.js → chunk-3WCASNQZ.js} +12 -1
- package/dist/chunk-3WCASNQZ.js.map +1 -0
- package/dist/{chunk-LRNMRXJO.js → chunk-3Y224NYC.js} +3 -3
- package/dist/{chunk-3IY64MV6.js → chunk-44XZ75OQ.js} +44 -10
- package/dist/chunk-44XZ75OQ.js.map +1 -0
- package/dist/{chunk-VFSP73LP.js → chunk-45GF7Y3V.js} +2 -2
- package/dist/{chunk-K7LOWSLU.js → chunk-4BJQODZF.js} +2479 -1520
- package/dist/chunk-4BJQODZF.js.map +1 -0
- package/dist/{chunk-JREB6UFH.js → chunk-57OWKFUQ.js} +17 -6
- package/dist/chunk-57OWKFUQ.js.map +1 -0
- package/dist/{chunk-OEHCMALU.js → chunk-5I4M26Q7.js} +5 -5
- package/dist/{chunk-2AZXIZEN.js → chunk-5Q7EVV4X.js} +6 -6
- package/dist/{chunk-LC7OODWZ.js → chunk-5SB7SC2G.js} +80 -49
- package/dist/chunk-5SB7SC2G.js.map +1 -0
- package/dist/{chunk-PUBTHW5O.js → chunk-6DRPPQEJ.js} +2 -2
- package/dist/{chunk-NWTGD4AN.js → chunk-6KIQT7RG.js} +10 -9
- package/dist/chunk-6KIQT7RG.js.map +1 -0
- package/dist/{chunk-FDCTQWLW.js → chunk-6O22TZSB.js} +3 -3
- package/dist/{chunk-ZQ7UBUZ6.js → chunk-6QYST5XN.js} +6 -6
- package/dist/{chunk-W4PGTAS2.js → chunk-6WAFYNVT.js} +3 -3
- package/dist/chunk-6ZMAMSHS.js +20 -0
- package/dist/chunk-6ZMAMSHS.js.map +1 -0
- package/dist/{chunk-R5VAVVHP.js → chunk-72A4L5JJ.js} +2 -2
- package/dist/{chunk-X64YLC24.js → chunk-72VAXGEI.js} +5 -13
- package/dist/chunk-72VAXGEI.js.map +1 -0
- package/dist/{chunk-IKQTFQMI.js → chunk-755Q3DGF.js} +22 -3
- package/dist/chunk-755Q3DGF.js.map +1 -0
- package/dist/{chunk-OVJ2HIPE.js → chunk-76GLCM57.js} +158 -125
- package/dist/chunk-76GLCM57.js.map +1 -0
- package/dist/{chunk-D7FOKIY5.js → chunk-7AMFUATK.js} +12 -9
- package/dist/{chunk-D7FOKIY5.js.map → chunk-7AMFUATK.js.map} +1 -1
- package/dist/{chunk-BFVEEB7W.js → chunk-7ON2JW73.js} +57 -22
- package/dist/chunk-7ON2JW73.js.map +1 -0
- package/dist/chunk-7RNBVZZO.js +270 -0
- package/dist/chunk-7RNBVZZO.js.map +1 -0
- package/dist/{chunk-3FAMU5TX.js → chunk-A6USBZTO.js} +2 -2
- package/dist/{chunk-ZHIVCODT.js → chunk-A72SWTWW.js} +7 -7
- package/dist/{chunk-FC77VUX5.js → chunk-A7Q43EUZ.js} +2 -2
- package/dist/{chunk-UJBESW6X.js → chunk-AE7WMV4V.js} +7 -7
- package/dist/{chunk-J2HSAU72.js → chunk-AIK5W3IW.js} +29 -1
- package/dist/chunk-AIK5W3IW.js.map +1 -0
- package/dist/{chunk-A5UXZRRM.js → chunk-AJ7QCSIS.js} +2 -2
- package/dist/{chunk-FNMFJWBY.js → chunk-ANEUPF6O.js} +5 -5
- package/dist/chunk-AREGMX2J.js +50 -0
- package/dist/chunk-AREGMX2J.js.map +1 -0
- package/dist/chunk-AVPXXV6J.js +448 -0
- package/dist/chunk-AVPXXV6J.js.map +1 -0
- package/dist/{chunk-2A3OXAP2.js → chunk-B7RWBZXW.js} +2 -2
- package/dist/{chunk-GWTFLF2P.js → chunk-BJMBJZ2Y.js} +59 -59
- package/dist/chunk-BJMBJZ2Y.js.map +1 -0
- package/dist/{chunk-74F5STS4.js → chunk-BLAKS3CP.js} +4 -4
- package/dist/{chunk-M7VGG3ID.js → chunk-BV5WMSIJ.js} +9 -9
- package/dist/{chunk-2BFLDH5F.js → chunk-BXLOS5AJ.js} +2 -2
- package/dist/{chunk-UXKMMNJD.js → chunk-C23BYTJV.js} +6 -6
- package/dist/{chunk-JZHHREBL.js → chunk-C3AKM55W.js} +2 -2
- package/dist/{chunk-RP7YXA67.js → chunk-C5JF6EZ7.js} +2 -2
- package/dist/{chunk-T7Y5KPLN.js → chunk-C6XBRYVD.js} +16 -15
- package/dist/chunk-C6XBRYVD.js.map +1 -0
- package/dist/{chunk-FTYDWKO6.js → chunk-CEN6DW6X.js} +12 -2
- package/dist/chunk-CEN6DW6X.js.map +1 -0
- package/dist/chunk-CGASUJVP.js +421 -0
- package/dist/chunk-CGASUJVP.js.map +1 -0
- package/dist/{chunk-EHCONI6E.js → chunk-CQMEM5CC.js} +2 -2
- package/dist/{chunk-PBNZVPFS.js → chunk-CXZQOVIE.js} +12 -12
- package/dist/chunk-D3V3UMET.js +44 -0
- package/dist/chunk-D3V3UMET.js.map +1 -0
- package/dist/{chunk-7N2RUBAP.js → chunk-DDA47TES.js} +2 -2
- package/dist/{chunk-64SE4X5G.js → chunk-DEBHXHJR.js} +3 -3
- package/dist/{chunk-EHK6KZHK.js → chunk-DNHVPZOD.js} +2 -2
- package/dist/{chunk-437S3G37.js → chunk-DQEMWVMT.js} +2 -2
- package/dist/{chunk-LZZNTPLR.js → chunk-DX3XRGLH.js} +2 -2
- package/dist/chunk-EA2H5LML.js +72 -0
- package/dist/chunk-EA2H5LML.js.map +1 -0
- package/dist/{chunk-INELTPRG.js → chunk-EEC7UJPX.js} +103 -106
- package/dist/chunk-EEC7UJPX.js.map +1 -0
- package/dist/{chunk-KSNVDPDF.js → chunk-EKBNDKDY.js} +21 -20
- package/dist/chunk-EKBNDKDY.js.map +1 -0
- package/dist/{chunk-YF6FMLBT.js → chunk-EQWEIIKQ.js} +64 -34
- package/dist/chunk-EQWEIIKQ.js.map +1 -0
- package/dist/{chunk-DZKHSDOM.js → chunk-ES36HTSC.js} +4 -4
- package/dist/{chunk-TN7THW5U.js → chunk-ET356KSB.js} +2 -2
- package/dist/{chunk-YNDLCWXS.js → chunk-EZ25VE3G.js} +4 -4
- package/dist/{chunk-DMSDUGDM.js → chunk-F7GAIWFA.js} +20 -20
- package/dist/{chunk-G6XXLKC5.js → chunk-FFPJINJE.js} +6 -6
- package/dist/chunk-FMLKOL2Z.js +636 -0
- package/dist/chunk-FMLKOL2Z.js.map +1 -0
- package/dist/chunk-FQC3DHH2.js +20 -0
- package/dist/chunk-FQC3DHH2.js.map +1 -0
- package/dist/{chunk-G4CN3ZXL.js → chunk-FUTF72MJ.js} +15 -15
- package/dist/chunk-GCASGYIO.js +71 -0
- package/dist/chunk-GCASGYIO.js.map +1 -0
- package/dist/{chunk-HF77M34J.js → chunk-GFPZS3F5.js} +8 -8
- package/dist/{chunk-BCDKBDSY.js → chunk-GNVZQ5JN.js} +99 -41
- package/dist/chunk-GNVZQ5JN.js.map +1 -0
- package/dist/{chunk-G6NKALRN.js → chunk-H4WG3UQZ.js} +2 -2
- package/dist/{chunk-UDQUSU27.js → chunk-HNZKVLAN.js} +2 -2
- package/dist/{chunk-5EZXHU36.js → chunk-HYQJQGD3.js} +2 -2
- package/dist/{chunk-OAZVR2BV.js → chunk-IDZFBSHN.js} +8 -6
- package/dist/{chunk-OAZVR2BV.js.map → chunk-IDZFBSHN.js.map} +1 -1
- package/dist/{chunk-PLQE6MJA.js → chunk-IFH6LWTO.js} +50 -8
- package/dist/chunk-IFH6LWTO.js.map +1 -0
- package/dist/{chunk-RULE4VG5.js → chunk-ILGC6JH6.js} +21 -6
- package/dist/chunk-ILGC6JH6.js.map +1 -0
- package/dist/chunk-IUM3VSHI.js +113 -0
- package/dist/chunk-IUM3VSHI.js.map +1 -0
- package/dist/{chunk-DCFV7A7H.js → chunk-IYNGIMVG.js} +101 -91
- package/dist/chunk-IYNGIMVG.js.map +1 -0
- package/dist/{chunk-TRWPCR6P.js → chunk-JECBQBEX.js} +3 -3
- package/dist/{chunk-E6CBU7XP.js → chunk-JYIFGGEM.js} +2 -2
- package/dist/{chunk-VA4WSW54.js → chunk-JYIJNNN3.js} +3 -3
- package/dist/{chunk-L5HJQC36.js → chunk-K2TDK7GG.js} +3 -3
- package/dist/{chunk-KDXVOFYY.js → chunk-KAVBJSBQ.js} +4 -4
- package/dist/{chunk-BS4SGLWV.js → chunk-KF5EUVKQ.js} +16 -6
- package/dist/chunk-KF5EUVKQ.js.map +1 -0
- package/dist/chunk-KFZY2OFH.js +42 -0
- package/dist/chunk-KFZY2OFH.js.map +1 -0
- package/dist/{chunk-4OKLXWDZ.js → chunk-KNB7IBBU.js} +2 -2
- package/dist/{chunk-QLULYKWZ.js → chunk-KSXJOC4F.js} +2 -2
- package/dist/{chunk-2S6QHZGJ.js → chunk-L2DPF4DF.js} +1 -1
- package/dist/{chunk-JI5AVXYO.js → chunk-LEPOP46W.js} +6 -6
- package/dist/{chunk-O7BBFJLP.js → chunk-LTAVSOZW.js} +2 -2
- package/dist/{chunk-E3VODCC3.js → chunk-LUDXM7MD.js} +14 -2
- package/dist/{chunk-E3VODCC3.js.map → chunk-LUDXM7MD.js.map} +1 -1
- package/dist/{chunk-2IZAGAJR.js → chunk-LULR4IUW.js} +3 -3
- package/dist/{chunk-QQGPUKMT.js → chunk-MC5Q3J7S.js} +398 -7
- package/dist/chunk-MC5Q3J7S.js.map +1 -0
- package/dist/{chunk-WMWVO45V.js → chunk-MC6XO7T4.js} +2 -2
- package/dist/chunk-MKQBXQKU.js +107 -0
- package/dist/chunk-MKQBXQKU.js.map +1 -0
- package/dist/{chunk-7PND4PUC.js → chunk-MMGGVZ4Q.js} +29 -9
- package/dist/{chunk-7PND4PUC.js.map → chunk-MMGGVZ4Q.js.map} +1 -1
- package/dist/{chunk-D6RIFG4O.js → chunk-MNB5RMAY.js} +2 -2
- package/dist/{chunk-Q5WG43OP.js → chunk-MYFQ3ED4.js} +7 -7
- package/dist/{chunk-V3UE5I5F.js → chunk-MYVPLJOO.js} +2 -2
- package/dist/chunk-NINSR6LX.js +83 -0
- package/dist/chunk-NINSR6LX.js.map +1 -0
- package/dist/{chunk-MTWKDOVO.js → chunk-NLE6TSLG.js} +2 -2
- package/dist/{chunk-DBRYEIGY.js → chunk-OJP3N7UK.js} +2 -2
- package/dist/{chunk-VDW4VU7B.js → chunk-OQJIB32H.js} +28 -23
- package/dist/chunk-OQJIB32H.js.map +1 -0
- package/dist/{chunk-SMX5267P.js → chunk-OZKOPQCM.js} +2 -2
- package/dist/{chunk-JCK7V6SN.js → chunk-P65YJEEL.js} +2 -2
- package/dist/{chunk-MTR7BZQN.js → chunk-PBGWYM3H.js} +3 -3
- package/dist/chunk-PIG4WJFQ.js +87 -0
- package/dist/chunk-PIG4WJFQ.js.map +1 -0
- package/dist/chunk-PQVCH2AE.js +76 -0
- package/dist/chunk-PQVCH2AE.js.map +1 -0
- package/dist/{chunk-AXTXN4T6.js → chunk-PWFCHOB3.js} +2 -2
- package/dist/{chunk-FDPZVY6D.js → chunk-QFN4U7AG.js} +2 -2
- package/dist/{chunk-K2ZLHESQ.js → chunk-QIEUU4UK.js} +2 -2
- package/dist/{chunk-DYP3YYJJ.js → chunk-QJAQNXWI.js} +39 -5
- package/dist/chunk-QJAQNXWI.js.map +1 -0
- package/dist/{chunk-3D6AFGQR.js → chunk-QVT3E4CE.js} +7 -7
- package/dist/{chunk-FIJUY7GG.js → chunk-R26ZMXR2.js} +23 -23
- package/dist/{chunk-FIJUY7GG.js.map → chunk-R26ZMXR2.js.map} +1 -1
- package/dist/chunk-R3DJVOSM.js +34 -0
- package/dist/chunk-R3DJVOSM.js.map +1 -0
- package/dist/{chunk-SFQ6QNL7.js → chunk-R6YJI3HE.js} +2 -1
- package/dist/{chunk-5CJVLG3H.js → chunk-RFDD3B7W.js} +5 -5
- package/dist/{chunk-JBPKEARU.js → chunk-RKNJBZ55.js} +4 -4
- package/dist/chunk-ROI7BK7H.js +88 -0
- package/dist/chunk-ROI7BK7H.js.map +1 -0
- package/dist/{chunk-FNZQGN76.js → chunk-S2BBISHU.js} +4 -4
- package/dist/{chunk-IALLX7EE.js → chunk-S2FSBU4H.js} +3 -3
- package/dist/{chunk-BFPETA3S.js → chunk-SCCO46KZ.js} +3 -2
- package/dist/chunk-SCCO46KZ.js.map +1 -0
- package/dist/chunk-SICXL4MK.js +165 -0
- package/dist/chunk-SICXL4MK.js.map +1 -0
- package/dist/chunk-SK7AMF2J.js +168 -0
- package/dist/chunk-SK7AMF2J.js.map +1 -0
- package/dist/{chunk-LZOV7MX7.js → chunk-TDTXKOAJ.js} +6474 -5747
- package/dist/chunk-TDTXKOAJ.js.map +1 -0
- package/dist/{chunk-KSBEEMQF.js → chunk-TG6IHVE2.js} +151 -6
- package/dist/chunk-TG6IHVE2.js.map +1 -0
- package/dist/{chunk-7K5Q6COX.js → chunk-TVVEYCNW.js} +4 -4
- package/dist/{chunk-DPAENM7O.js → chunk-U3ZAVRP3.js} +2 -2
- package/dist/{chunk-ODPLEWB6.js → chunk-UFGFMWAD.js} +47 -17
- package/dist/chunk-UFGFMWAD.js.map +1 -0
- package/dist/{chunk-4KJLYTLS.js → chunk-V57NLO5P.js} +2 -2
- package/dist/{chunk-FLVL4L3L.js → chunk-VDX2J7OX.js} +2 -2
- package/dist/{chunk-AJLLIIML.js → chunk-W4FBGYGK.js} +1 -1
- package/dist/{chunk-TXLGHDHS.js → chunk-W4XJFLAL.js} +53 -32
- package/dist/chunk-W4XJFLAL.js.map +1 -0
- package/dist/{chunk-6SXVCD7W.js → chunk-W7IGLX4G.js} +2 -2
- package/dist/{chunk-KQDNAXOM.js → chunk-WG5HSQ4P.js} +19 -6
- package/dist/chunk-WG5HSQ4P.js.map +1 -0
- package/dist/{chunk-LTJAMRGI.js → chunk-WL5EBRDH.js} +17 -3
- package/dist/chunk-WL5EBRDH.js.map +1 -0
- package/dist/{chunk-KAWTOYAW.js → chunk-WLZYGLJ4.js} +2 -2
- package/dist/{chunk-RO4LQGT3.js → chunk-WON4APQY.js} +4 -4
- package/dist/{chunk-PQVK2S3J.js → chunk-WZFAPHIK.js} +6 -6
- package/dist/{chunk-KQPJLK3X.js → chunk-XL24QQ63.js} +2 -2
- package/dist/{chunk-RVZRYUQH.js → chunk-YROFNEG5.js} +7 -7
- package/dist/{chunk-RAR2BSEM.js → chunk-YV32N67O.js} +1 -1
- package/dist/chunk-YV32N67O.js.map +1 -0
- package/dist/{chunk-PBSAPHHA.js → chunk-YVKF3HEW.js} +1 -1
- package/dist/chunk-YVKF3HEW.js.map +1 -0
- package/dist/{chunk-VRAD2FGO.js → chunk-Z54EM5YZ.js} +12 -12
- package/dist/{chunk-2VN4JAX7.js → chunk-ZOKZIR5K.js} +95 -33
- package/dist/chunk-ZOKZIR5K.js.map +1 -0
- package/dist/{cli-Cd5fMmhq.d.ts → cli-C_pqqTCw.d.ts} +28 -12
- package/dist/cli.d.ts +16 -9
- package/dist/cli.js +142 -127
- package/dist/compounding/engine.d.ts +5 -2
- package/dist/compounding/engine.js +36 -26
- package/dist/compounding/preference-consolidator.d.ts +3 -1
- package/dist/compounding/preference-consolidator.js +1 -1
- package/dist/compression-optimizer.d.ts +3 -1
- package/dist/config-qmd.d.ts +8 -0
- package/dist/config-qmd.js +20 -0
- package/dist/config-qmd.js.map +1 -0
- package/dist/config.d.ts +3 -1
- package/dist/config.js +15 -10
- package/dist/connectors/codex-materialize-runner.d.ts +3 -1
- package/dist/connectors/codex-materialize-runner.js +36 -26
- package/dist/connectors/codex-materialize.d.ts +3 -1
- package/dist/connectors/codex-materialize.js +2 -2
- package/dist/connectors/index.d.ts +3 -1
- package/dist/connectors/index.js +41 -32
- package/dist/consolidation-provenance-check.d.ts +5 -2
- package/dist/consolidation-undo.d.ts +5 -2
- package/dist/contradiction/index.d.ts +5 -2
- package/dist/contradiction/index.js +10 -4
- package/dist/{contradiction-scan-J57T5QV7.js → contradiction-scan-RJBABNRH.js} +4 -4
- package/dist/contradiction-scan-RJBABNRH.js.map +1 -0
- package/dist/conversation-index/backend.d.ts +3 -1
- package/dist/conversation-index/backend.js +5 -5
- package/dist/conversation-index/chunker.d.ts +3 -1
- package/dist/conversation-index/cleanup.js +2 -2
- package/dist/conversation-index/faiss-adapter.d.ts +3 -1
- package/dist/conversation-index/faiss-adapter.js +2 -2
- package/dist/conversation-index/indexer.d.ts +3 -1
- package/dist/conversation-index/indexer.js +2 -2
- package/dist/conversation-index/search.d.ts +3 -1
- package/dist/conversation-index/search.js +2 -2
- package/dist/cross-namespace-budget.d.ts +45 -1
- package/dist/cross-namespace-budget.js +5 -3
- package/dist/dashboard-runtime.js +2 -2
- package/dist/day-summary.d.ts +3 -1
- package/dist/day-summary.js +3 -3
- package/dist/delinearize.d.ts +3 -1
- package/dist/direct-answer-wiring.d.ts +3 -1
- package/dist/direct-answer.d.ts +3 -1
- package/dist/{dreams-ledger-6UODQOX6.js → dreams-ledger-567VKVOU.js} +4 -2
- package/dist/dreams-ledger-567VKVOU.js.map +1 -0
- package/dist/embedding-fallback.d.ts +3 -1
- package/dist/embedding-fallback.js +3 -3
- package/dist/enrichment/index.d.ts +3 -1
- package/dist/entity-retrieval.d.ts +5 -2
- package/dist/entity-retrieval.js +35 -26
- package/dist/entity-schema.d.ts +3 -1
- package/dist/explicit-capture.d.ts +13 -8
- package/dist/explicit-capture.js +7 -3
- package/dist/extraction-faithfulness.d.ts +3 -1
- package/dist/extraction-faithfulness.js +5 -5
- package/dist/extraction-judge-telemetry.d.ts +3 -1
- package/dist/extraction-judge-telemetry.js +2 -2
- package/dist/extraction-judge-training.d.ts +3 -1
- package/dist/extraction-judge-training.js +2 -2
- package/dist/extraction-judge.d.ts +3 -1
- package/dist/extraction-judge.js +5 -5
- package/dist/extraction.d.ts +3 -1
- package/dist/extraction.js +13 -12
- package/dist/faithfulness-config.js +3 -2
- package/dist/fallback-llm.d.ts +3 -1
- package/dist/fallback-llm.js +4 -4
- package/dist/{first-start-migration-TI67YMLG.js → first-start-migration-CSRHCJIQ.js} +2 -2
- package/dist/{forget-CQCLB5LB.js → forget-HRPLVB3W.js} +5 -5
- package/dist/graph-dashboard-diff.d.ts +3 -1
- package/dist/graph-dashboard-key.d.ts +3 -1
- package/dist/graph-dashboard-parser.d.ts +3 -1
- package/dist/{graph-edge-decay-IOGBBAGC.js → graph-edge-decay-Z6ENALU2.js} +3 -3
- package/dist/graph-edge-decay-Z6ENALU2.js.map +1 -0
- package/dist/graph-edge-reinforcement.d.ts +3 -1
- package/dist/graph-snapshot.d.ts +3 -1
- package/dist/graph-snapshot.js +2 -2
- package/dist/graph.d.ts +3 -1
- package/dist/graph.js +1 -1
- package/dist/identity-continuity.d.ts +1 -2
- package/dist/importance.d.ts +3 -1
- package/dist/importers/index.d.ts +3 -1
- package/dist/in-flight-reads.d.ts +3 -1
- package/dist/index.d.ts +473 -464
- package/dist/index.js +287 -239
- package/dist/intent.d.ts +3 -1
- package/dist/lcm/archive.js +2 -2
- package/dist/lcm/engine.d.ts +3 -1
- package/dist/lcm/engine.js +6 -6
- package/dist/lcm/index.d.ts +3 -1
- package/dist/lcm/index.js +13 -13
- package/dist/lcm/schema.js +2 -2
- package/dist/lcm/summarizer.js +3 -3
- package/dist/lcm/tools.d.ts +3 -1
- package/dist/lifecycle.d.ts +3 -1
- package/dist/live-connectors-runner.d.ts +3 -1
- package/dist/local-llm.d.ts +5 -2
- package/dist/local-llm.js +3 -3
- package/dist/local-model-endpoint.d.ts +3 -1
- package/dist/logger.d.ts +3 -1
- package/dist/logger.js +7 -3
- package/dist/maintenance/archive-observations.js +2 -2
- package/dist/maintenance/memory-governance.d.ts +3 -1
- package/dist/maintenance/memory-governance.js +35 -25
- package/dist/maintenance/migrate-observations.js +3 -3
- package/dist/maintenance/observation-ledger-utils.js +2 -2
- package/dist/maintenance/rebuild-memory-lifecycle-ledger.d.ts +102 -1
- package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +37 -25
- package/dist/maintenance/rebuild-memory-projection.js +38 -28
- package/dist/maintenance/rebuild-observations.js +3 -3
- package/dist/mcp-memory-inspector-app.d.ts +22 -15
- package/dist/memory-action-policy.d.ts +3 -1
- package/dist/memory-cache.d.ts +3 -1
- package/dist/memory-lifecycle-ledger-utils.d.ts +25 -2
- package/dist/memory-lifecycle-ledger-utils.js +11 -1
- package/dist/memory-projection-store.d.ts +3 -1
- package/dist/memory-projection-store.js +2 -2
- package/dist/memory-provenance.d.ts +3 -1
- package/dist/memory-worth-outcomes.d.ts +5 -2
- package/dist/model-registry.js +2 -2
- package/dist/models-json.d.ts +3 -1
- package/dist/models-json.js +2 -2
- package/dist/namespaces/migrate.d.ts +6 -3
- package/dist/namespaces/migrate.js +51 -42
- package/dist/namespaces/principal.d.ts +27 -2
- package/dist/namespaces/principal.js +6 -2
- package/dist/namespaces/search.d.ts +16 -2
- package/dist/namespaces/search.js +24 -20
- package/dist/namespaces/storage.d.ts +24 -3
- package/dist/namespaces/storage.js +35 -27
- package/dist/native-knowledge.d.ts +3 -1
- package/dist/native-knowledge.js +2 -2
- package/dist/negative.js +2 -2
- package/dist/offline-sync-exclude-globs.d.ts +13 -0
- package/dist/offline-sync-exclude-globs.js +10 -0
- package/dist/offline-sync-exclude-globs.js.map +1 -0
- package/dist/offline-sync-impression-drain.d.ts +78 -0
- package/dist/offline-sync-impression-drain.js +37 -0
- package/dist/offline-sync-impression-drain.js.map +1 -0
- package/dist/offline-sync.js +4 -2
- package/dist/operator-toolkit.d.ts +5 -2
- package/dist/operator-toolkit.js +69 -54
- package/dist/orchestration/compression-guideline-coordinator.d.ts +5 -2
- package/dist/orchestration/compression-guideline-coordinator.js +3 -3
- package/dist/orchestration/maintenance.d.ts +121 -2
- package/dist/orchestration/maintenance.js +44 -31
- package/dist/{orchestrator-Bp_jeBHK.d.ts → orchestrator-CQJ8U7En.d.ts} +85 -79
- package/dist/orchestrator.d.ts +13 -8
- package/dist/orchestrator.js +194 -177
- package/dist/patterns-cli.d.ts +3 -1
- package/dist/{pipeline-BAj5bx7g.d.ts → pipeline-Cn-kvYeV.d.ts} +1 -1
- package/dist/policy-runtime.d.ts +3 -1
- package/dist/prioritized-embed.d.ts +19 -0
- package/dist/prioritized-embed.js +8 -0
- package/dist/prioritized-embed.js.map +1 -0
- package/dist/proactive-contention.d.ts +28 -0
- package/dist/proactive-contention.js +8 -0
- package/dist/proactive-contention.js.map +1 -0
- package/dist/profiling.js +2 -2
- package/dist/provenance.d.ts +3 -1
- package/dist/provenance.js +3 -2
- package/dist/{purge-NDWV6WYD.js → purge-IRF47ZTX.js} +3 -3
- package/dist/{qmd-_MDSlj1m.d.ts → qmd-oh9VXz1d.d.ts} +11 -1
- package/dist/qmd-preflight.d.ts +5 -2
- package/dist/qmd-recall-cache.d.ts +3 -1
- package/dist/qmd-status.d.ts +57 -0
- package/dist/qmd-status.js +18 -0
- package/dist/qmd-status.js.map +1 -0
- package/dist/qmd.d.ts +5 -2
- package/dist/qmd.js +7 -3
- package/dist/recall-concurrency-config.d.ts +16 -0
- package/dist/recall-concurrency-config.js +10 -0
- package/dist/recall-concurrency-config.js.map +1 -0
- package/dist/recall-disclosure-escalation.d.ts +3 -1
- package/dist/recall-explain-renderer.d.ts +4 -1
- package/dist/recall-explain-renderer.js +3 -3
- package/dist/recall-memory-map.d.ts +26 -0
- package/dist/recall-memory-map.js +18 -0
- package/dist/recall-memory-map.js.map +1 -0
- package/dist/recall-planner-llm.d.ts +3 -1
- package/dist/recall-planner-llm.js +4 -4
- package/dist/recall-qos.js +2 -2
- package/dist/recall-state.d.ts +163 -2
- package/dist/recall-state.js +6 -3
- package/dist/recall-tag-filter.d.ts +3 -1
- package/dist/recall-timings.d.ts +11 -2
- package/dist/recall-timings.js +3 -1
- package/dist/recall-xray-cli.d.ts +3 -1
- package/dist/recall-xray-cli.js +4 -4
- package/dist/recall-xray-renderer.d.ts +3 -1
- package/dist/recall-xray-renderer.js +3 -3
- package/dist/recall-xray.d.ts +3 -1
- package/dist/recall-xray.js +2 -2
- package/dist/relevance.js +3 -3
- package/dist/replay/normalizers/chatgpt.d.ts +3 -1
- package/dist/replay/normalizers/claude.d.ts +3 -1
- package/dist/replay/normalizers/openclaw.d.ts +3 -1
- package/dist/replay/normalizers/shared.d.ts +3 -1
- package/dist/replay/runner.d.ts +3 -1
- package/dist/replay/types.d.ts +3 -1
- package/dist/rerank.d.ts +8 -1
- package/dist/rerank.js +3 -1
- package/dist/resolution-3K27T4VO.js +18 -0
- package/dist/resolution-3K27T4VO.js.map +1 -0
- package/dist/resolve-auth-token.d.ts +3 -1
- package/dist/resolve-provider-secret.js +2 -2
- package/dist/resume-bundles.js +19 -14
- package/dist/retrieval-agents.d.ts +19 -16
- package/dist/retrieval-agents.js +3 -3
- package/dist/retrieval-tiers.d.ts +3 -1
- package/dist/routing/engine.d.ts +3 -1
- package/dist/routing/store.d.ts +3 -1
- package/dist/routing/store.js +2 -2
- package/dist/salvage-envelope.d.ts +18 -0
- package/dist/salvage-envelope.js +15 -0
- package/dist/salvage-envelope.js.map +1 -0
- package/dist/schemas.d.ts +98 -98
- package/dist/scope-profiles-EpJG7yKP.d.ts +30 -0
- package/dist/search/document-scanner.js +3 -2
- package/dist/search/embed-helper.d.ts +3 -1
- package/dist/search/embed-helper.js +3 -3
- package/dist/search/factory.d.ts +3 -1
- package/dist/search/factory.js +18 -16
- package/dist/search/index.d.ts +3 -1
- package/dist/search/index.js +22 -20
- package/dist/search/lancedb-backend.d.ts +3 -1
- package/dist/search/lancedb-backend.js +6 -5
- package/dist/search/meilisearch-backend.d.ts +3 -1
- package/dist/search/meilisearch-backend.js +6 -5
- package/dist/search/noop-backend.d.ts +3 -1
- package/dist/search/orama-backend.d.ts +3 -1
- package/dist/search/orama-backend.js +6 -5
- package/dist/search/port.d.ts +16 -2
- package/dist/search/port.js +1 -1
- package/dist/search/remote-backend.d.ts +3 -1
- package/dist/search/remote-backend.js +3 -3
- package/dist/secure-store/index.d.ts +12 -1
- package/dist/secure-store/index.js +6 -3
- package/dist/{semantic-consolidation-C2m5eHHE.d.ts → semantic-consolidation-DILZEQq3.d.ts} +1 -1
- package/dist/semantic-consolidation.d.ts +4 -2
- package/dist/semantic-consolidation.js +38 -29
- package/dist/semantic-rule-promotion.js +34 -24
- package/dist/semantic-rule-verifier.d.ts +3 -1
- package/dist/semantic-rule-verifier.js +35 -25
- package/dist/session-observer-bands.d.ts +3 -1
- package/dist/session-observer-state.d.ts +3 -1
- package/dist/session-observer-state.js +2 -2
- package/dist/session-transcript-migration.js +2 -2
- package/dist/shared-context/manager.d.ts +11 -9
- package/dist/shared-context/manager.js +3 -3
- package/dist/signal.d.ts +3 -1
- package/dist/{storage-hr_Y2z5R.d.ts → storage-NIyKYD8g.d.ts} +489 -110
- package/dist/storage-guards.js +2 -2
- package/dist/storage.d.ts +6 -3
- package/dist/storage.js +38 -26
- package/dist/structured-attributes.d.ts +23 -1
- package/dist/structured-attributes.js +7 -1
- package/dist/summarizer.d.ts +3 -1
- package/dist/summarizer.js +11 -11
- package/dist/summary-snapshot.d.ts +3 -1
- package/dist/summary-snapshot.js +2 -2
- package/dist/temporal-index-batch.d.ts +1 -0
- package/dist/temporal-index-batch.js +10 -0
- package/dist/temporal-index-batch.js.map +1 -0
- package/dist/temporal-index-compat.d.ts +279 -1
- package/dist/temporal-index-compat.js +1 -1
- package/dist/temporal-index.d.ts +1 -225
- package/dist/temporal-index.js +35 -3
- package/dist/temporal-supersession.d.ts +5 -2
- package/dist/temporal-supersession.js +2 -2
- package/dist/temporal-timeline-recall.d.ts +3 -1
- package/dist/temporal-validity.d.ts +3 -1
- package/dist/threading.d.ts +3 -1
- package/dist/threading.js +2 -2
- package/dist/tier-migration.d.ts +5 -2
- package/dist/tier-routing.d.ts +3 -1
- package/dist/{tier-stats-KV7IWCJR.js → tier-stats-QEJSPFV2.js} +2 -2
- package/dist/tokens.js +3 -3
- package/dist/topics.d.ts +3 -1
- package/dist/transcript.d.ts +3 -1
- package/dist/transcript.js +2 -2
- package/dist/transfer/backup.js +3 -3
- package/dist/transfer/capsule-export.js +3 -3
- package/dist/transfer/capsule-import.js +3 -3
- package/dist/transfer/types.d.ts +90 -90
- package/dist/trust-score-stage.d.ts +75 -38
- package/dist/trust-score-stage.js +11 -3
- package/dist/trust-score.d.ts +3 -1
- package/dist/{types-Cg8q7W7_.d.ts → types-D_fG2ix8.d.ts} +39 -63
- package/dist/types-continuity.d.ts +52 -0
- package/dist/types-continuity.js +1 -0
- package/dist/types-continuity.js.map +1 -0
- package/dist/types.d.ts +3 -1
- package/dist/types.js +1 -1
- package/dist/utility-runtime.d.ts +3 -1
- package/dist/utils/serialize-mutations.d.ts +31 -2
- package/dist/utils/serialize-mutations.js +1 -1
- package/dist/verified-recall.js +36 -26
- package/dist/write-envelope.d.ts +282 -0
- package/dist/write-envelope.js +35 -0
- package/dist/write-envelope.js.map +1 -0
- package/dist/write-quarantine.d.ts +79 -0
- package/dist/write-quarantine.js +11 -0
- package/dist/write-quarantine.js.map +1 -0
- package/dist/write-rate-limiter.d.ts +45 -0
- package/dist/write-rate-limiter.js +9 -0
- package/dist/write-rate-limiter.js.map +1 -0
- package/package.json +37 -2
- package/src/access-admin-ops-surface.ts +17 -7
- package/src/access-boundary.test.ts +28 -0
- package/src/access-boundary.ts +31 -2
- package/src/access-citation.test.ts +72 -0
- package/src/access-citation.ts +139 -0
- package/src/access-errors.ts +21 -0
- package/src/access-fingerprint-parity.test.ts +211 -0
- package/src/access-http-cancellation.test.ts +59 -21
- package/src/access-http.test.ts +90 -0
- package/src/access-http.ts +79 -79
- package/src/access-mcp-cancellation.test.ts +16 -7
- package/src/access-memory-search-fanout.test.ts +220 -0
- package/src/access-memory-search-fanout.ts +168 -0
- package/src/access-observe-quarantine.test.ts +120 -0
- package/src/access-observe-write-surface.ts +130 -11
- package/src/access-operations-batch.ts +2 -0
- package/src/access-recall-concurrency.ts +773 -0
- package/src/access-recall-response.ts +307 -0
- package/src/access-recall-surface.ts +100 -252
- package/src/access-service-coding-write.test.ts +22 -4
- package/src/access-service-health.test.ts +49 -0
- package/src/access-service-namespace.test.ts +486 -8
- package/src/access-service-observe-scope.test.ts +4 -0
- package/src/access-service-recall-concurrency.test.ts +1990 -0
- package/src/access-service.ts +182 -175
- package/src/access-surface-catalog.ts +1 -0
- package/src/access-token-capabilities.ts +16 -9
- package/src/active-recall.test.ts +35 -0
- package/src/active-recall.ts +7 -0
- package/src/bounded-jsonl-state.ts +93 -0
- package/src/buffer-session.test.ts +422 -5
- package/src/buffer-surprise-trigger.test.ts +41 -0
- package/src/buffer.ts +218 -3
- package/src/capabilities-cluster-b.test.ts +1 -0
- package/src/capabilities.ts +5 -6
- package/src/cli.ts +21 -22
- package/src/coding/architecture-surfaces.test.ts +6 -3
- package/src/coding/architecture-surfaces.ts +36 -25
- package/src/coding/decision-surfaces.ts +42 -34
- package/src/compounding/engine.test.ts +5 -1
- package/src/compounding/engine.ts +7 -7
- package/src/config-qmd.ts +89 -0
- package/src/config.test.ts +136 -0
- package/src/config.ts +113 -118
- package/src/connector-provenance-lifecycle.test.ts +4 -4
- package/src/connectors/coerce.test.ts +131 -0
- package/src/connectors/coerce.ts +80 -7
- package/src/contradiction/contradiction.test.ts +10 -6
- package/src/contradiction/resolution.ts +17 -4
- package/src/correction/correction-access-wiring.ts +62 -18
- package/src/cross-namespace-budget.test.ts +35 -0
- package/src/cross-namespace-budget.ts +86 -19
- package/src/explicit-capture.ts +54 -17
- package/src/extraction.ts +2 -3
- package/src/faithfulness-graph-guard.test.ts +16 -69
- package/src/graph-recall.test.ts +31 -0
- package/src/index.ts +22 -2
- package/src/local-llm.ts +4 -6
- package/src/logger.ts +16 -0
- package/src/maintenance/dreams-ledger.ts +100 -49
- package/src/maintenance/rebuild-memory-lifecycle-ledger-cli.ts +77 -0
- package/src/maintenance/rebuild-memory-lifecycle-ledger.ts +373 -9
- package/src/memory-lifecycle-ledger-utils.ts +51 -5
- package/src/namespaces/principal.test.ts +37 -1
- package/src/namespaces/principal.ts +48 -0
- package/src/namespaces/search.test.ts +79 -5
- package/src/namespaces/search.ts +59 -6
- package/src/namespaces/storage.ts +43 -1
- package/src/offline-sync-exclude-globs.ts +58 -0
- package/src/offline-sync-impression-drain.test.ts +316 -0
- package/src/offline-sync-impression-drain.ts +260 -0
- package/src/offline-sync.test.ts +32 -5
- package/src/offline-sync.ts +1 -14
- package/src/operator-toolkit.ts +1 -1
- package/src/orchestration/batch-deindex-flush.test.ts +146 -0
- package/src/orchestration/consolidation-run.ts +96 -85
- package/src/orchestration/extraction-envelope.ts +94 -0
- package/src/orchestration/extraction-persist-promotion.ts +134 -0
- package/src/orchestration/extraction-persist.ts +325 -260
- package/src/orchestration/extraction-run.test.ts +1 -1
- package/src/orchestration/extraction-run.ts +2 -2
- package/src/orchestration/graph-recall-coordinator.ts +18 -7
- package/src/orchestration/lifecycle-policy-coordinator.ts +63 -48
- package/src/orchestration/maintenance.test.ts +2103 -3
- package/src/orchestration/maintenance.ts +574 -2
- package/src/orchestration/namespace-read-fanout.ts +14 -8
- package/src/orchestration/orchestrator-helpers.ts +8 -1
- package/src/orchestration/orchestrator-init.ts +22 -6
- package/src/orchestration/orchestrator-namespace-scope.ts +71 -0
- package/src/orchestration/persistence-index.ts +64 -9
- package/src/orchestration/qmd-result-resolver.ts +27 -0
- package/src/orchestration/recall-entry.ts +34 -19
- package/src/orchestration/recall-internal.ts +207 -79
- package/src/orchestration/recall-rerank-coordinator.ts +229 -82
- package/src/orchestration/recall-result-formatter.ts +76 -20
- package/src/orchestration/recall-search-pipeline.test.ts +70 -0
- package/src/orchestration/recall-search-pipeline.ts +102 -129
- package/src/orchestration/recall-section-coordinator.ts +315 -85
- package/src/orchestration/semantic-consolidation-coordinator.ts +69 -37
- package/src/orchestration/session-context.ts +21 -0
- package/src/orchestration/workspace-ops.test.ts +348 -0
- package/src/orchestration/workspace-ops.ts +168 -34
- package/src/orchestrator-chunked-hash-durability.test.ts +126 -0
- package/src/orchestrator-connector-dedup.test.ts +1061 -40
- package/src/orchestrator-flush.test.ts +155 -39
- package/src/orchestrator-nonchunked-hash-durability.test.ts +121 -0
- package/src/orchestrator-source-attribution.test.ts +9 -9
- package/src/orchestrator.ts +160 -149
- package/src/prioritized-embed.ts +123 -0
- package/src/proactive-contention.test.ts +80 -0
- package/src/proactive-contention.ts +39 -0
- package/src/procedural/procedure-miner.test.ts +19 -14
- package/src/procedural/procedure-miner.ts +44 -13
- package/src/qmd-client.test.ts +111 -1
- package/src/qmd-status.ts +186 -0
- package/src/qmd.ts +47 -47
- package/src/recall-budget-config.test.ts +30 -0
- package/src/recall-cold-deadline.test.ts +149 -0
- package/src/recall-concurrency-config.ts +28 -0
- package/src/recall-memory-map.ts +74 -0
- package/src/recall-rerank-coordinator.test.ts +508 -0
- package/src/recall-state.test.ts +825 -1
- package/src/recall-state.ts +406 -7
- package/src/recall-timings-access.test.ts +41 -0
- package/src/recall-timings.ts +16 -0
- package/src/relay/mission-access.test.ts +5 -5
- package/src/rerank.ts +22 -0
- package/src/retrieval-agents.test.ts +79 -0
- package/src/retrieval-agents.ts +71 -19
- package/src/salvage-envelope.ts +28 -0
- package/src/scopes/scope-plan.test.ts +42 -0
- package/src/scopes/scope-plan.ts +45 -0
- package/src/search/port.ts +13 -0
- package/src/secure-store/index.ts +1 -0
- package/src/secure-store/secure-fs.ts +48 -0
- package/src/secure-store/secure-store.test.ts +40 -0
- package/src/semantic-rule-promotion.ts +13 -4
- package/src/storage/content-hash-index.ts +655 -0
- package/src/storage/entity-timeline.ts +473 -0
- package/src/storage/memory-lifecycle-ledger-access.ts +603 -0
- package/src/storage/secure-line-reader.test.ts +197 -0
- package/src/storage/secure-line-reader.ts +181 -3
- package/src/storage-append-header-sniff.test.ts +195 -0
- package/src/storage-behavior-signals-cache.test.ts +237 -0
- package/src/storage-contract/cache-coherence.test.ts +96 -1
- package/src/storage-contract/content-hash.test.ts +47 -2
- package/src/storage-fact-hash-index-defer.test.ts +1200 -0
- package/src/storage-memory-lifecycle-ledger.test.ts +1146 -3
- package/src/storage.ts +882 -890
- package/src/structured-attributes.ts +52 -0
- package/src/temporal-index-batch.ts +112 -0
- package/src/temporal-index.test.ts +193 -0
- package/src/temporal-index.ts +49 -53
- package/src/testing/lifecycle-matrix.test.ts +212 -0
- package/src/testing/lifecycle-matrix.ts +271 -0
- package/src/testing/orchestrator-lite.ts +236 -0
- package/src/testing/subjects/dreams-ledger.test.ts +67 -0
- package/src/testing/subjects/extraction-lifecycle.test.ts +442 -0
- package/src/testing/subjects/lifecycle-ledger.test.ts +93 -0
- package/src/testing/subjects/recall-budget.test.ts +461 -0
- package/src/testing/subjects/serialized-write-chain.test.ts +224 -0
- package/src/trust-score-stage.test.ts +154 -0
- package/src/trust-score-stage.ts +216 -53
- package/src/types-continuity.ts +57 -0
- package/src/types.ts +51 -77
- package/src/utils/path-containment.test.ts +75 -0
- package/src/utils/path-containment.ts +76 -0
- package/src/utils/serialize-mutations.test.ts +122 -0
- package/src/utils/serialize-mutations.ts +68 -3
- package/src/wearables/memory-gen.test.ts +31 -9
- package/src/wearables/memory-gen.ts +95 -55
- package/src/wearables/pipeline.test.ts +10 -7
- package/src/wearables/service.test.ts +6 -8
- package/src/wearables/service.ts +2 -2
- package/src/write-envelope.extension.test.ts +111 -0
- package/src/write-envelope.test.ts +683 -0
- package/src/write-envelope.ts +902 -0
- package/src/write-quarantine.test.ts +193 -0
- package/src/write-quarantine.ts +241 -0
- package/src/write-rate-limiter.test.ts +105 -0
- package/src/write-rate-limiter.ts +135 -0
- package/src/write-sealed-parity.test.ts +204 -0
- package/dist/chunk-2VN4JAX7.js.map +0 -1
- package/dist/chunk-37CTGERM.js.map +0 -1
- package/dist/chunk-3IY64MV6.js.map +0 -1
- package/dist/chunk-BCDKBDSY.js.map +0 -1
- package/dist/chunk-BFPETA3S.js.map +0 -1
- package/dist/chunk-BFVEEB7W.js.map +0 -1
- package/dist/chunk-BS4SGLWV.js.map +0 -1
- package/dist/chunk-DCFV7A7H.js.map +0 -1
- package/dist/chunk-DYP3YYJJ.js.map +0 -1
- package/dist/chunk-E5BK6CGV.js +0 -335
- package/dist/chunk-E5BK6CGV.js.map +0 -1
- package/dist/chunk-FTYDWKO6.js.map +0 -1
- package/dist/chunk-GWTFLF2P.js.map +0 -1
- package/dist/chunk-IKQTFQMI.js.map +0 -1
- package/dist/chunk-INELTPRG.js.map +0 -1
- package/dist/chunk-J2HSAU72.js.map +0 -1
- package/dist/chunk-JREB6UFH.js.map +0 -1
- package/dist/chunk-K7LOWSLU.js.map +0 -1
- package/dist/chunk-KQDNAXOM.js.map +0 -1
- package/dist/chunk-KSBEEMQF.js.map +0 -1
- package/dist/chunk-KSNVDPDF.js.map +0 -1
- package/dist/chunk-LC7OODWZ.js.map +0 -1
- package/dist/chunk-LTJAMRGI.js.map +0 -1
- package/dist/chunk-LZOV7MX7.js.map +0 -1
- package/dist/chunk-NWTGD4AN.js.map +0 -1
- package/dist/chunk-ODPLEWB6.js.map +0 -1
- package/dist/chunk-OVJ2HIPE.js.map +0 -1
- package/dist/chunk-PBSAPHHA.js.map +0 -1
- package/dist/chunk-PHK3HARR.js +0 -32
- package/dist/chunk-PHK3HARR.js.map +0 -1
- package/dist/chunk-PLQE6MJA.js.map +0 -1
- package/dist/chunk-QKQYXZVS.js.map +0 -1
- package/dist/chunk-QQGPUKMT.js.map +0 -1
- package/dist/chunk-RANHFI3P.js +0 -8
- package/dist/chunk-RANHFI3P.js.map +0 -1
- package/dist/chunk-RAR2BSEM.js.map +0 -1
- package/dist/chunk-RULE4VG5.js.map +0 -1
- package/dist/chunk-SVOZFLIQ.js +0 -16
- package/dist/chunk-SVOZFLIQ.js.map +0 -1
- package/dist/chunk-T7Y5KPLN.js.map +0 -1
- package/dist/chunk-TXLGHDHS.js.map +0 -1
- package/dist/chunk-VDW4VU7B.js.map +0 -1
- package/dist/chunk-VSMRDBFT.js +0 -17
- package/dist/chunk-VSMRDBFT.js.map +0 -1
- package/dist/chunk-X64YLC24.js.map +0 -1
- package/dist/chunk-XDSXEKYK.js +0 -118
- package/dist/chunk-XDSXEKYK.js.map +0 -1
- package/dist/chunk-YF6FMLBT.js.map +0 -1
- package/dist/resolution-VH4NGENZ.js +0 -12
- /package/dist/{capsule-crypto-CZJSLEFG.js.map → access-citation.js.map} +0 -0
- /package/dist/{contradiction-scan-J57T5QV7.js.map → access-memory-search-fanout.js.map} +0 -0
- /package/dist/{dreams-ledger-6UODQOX6.js.map → access-recall-concurrency.js.map} +0 -0
- /package/dist/{graph-edge-decay-IOGBBAGC.js.map → access-recall-response.js.map} +0 -0
- /package/dist/{resolution-VH4NGENZ.js.map → bounded-jsonl-state.js.map} +0 -0
- /package/dist/{chunk-A3GOMRJG.js.map → chunk-23L3IXFD.js.map} +0 -0
- /package/dist/{chunk-MRHFJV44.js.map → chunk-2DQ2XREU.js.map} +0 -0
- /package/dist/{chunk-L2B3EE7B.js.map → chunk-2QMKMVHH.js.map} +0 -0
- /package/dist/{chunk-VJVNLNDQ.js.map → chunk-2UFO7X4Q.js.map} +0 -0
- /package/dist/{chunk-2MR3MFQB.js.map → chunk-2VEOKUPP.js.map} +0 -0
- /package/dist/{chunk-RHOZ5LLO.js.map → chunk-347WD2LE.js.map} +0 -0
- /package/dist/{chunk-HDTQVNWD.js.map → chunk-3QAH2S33.js.map} +0 -0
- /package/dist/{chunk-LRNMRXJO.js.map → chunk-3Y224NYC.js.map} +0 -0
- /package/dist/{chunk-VFSP73LP.js.map → chunk-45GF7Y3V.js.map} +0 -0
- /package/dist/{chunk-OEHCMALU.js.map → chunk-5I4M26Q7.js.map} +0 -0
- /package/dist/{chunk-2AZXIZEN.js.map → chunk-5Q7EVV4X.js.map} +0 -0
- /package/dist/{chunk-PUBTHW5O.js.map → chunk-6DRPPQEJ.js.map} +0 -0
- /package/dist/{chunk-FDCTQWLW.js.map → chunk-6O22TZSB.js.map} +0 -0
- /package/dist/{chunk-ZQ7UBUZ6.js.map → chunk-6QYST5XN.js.map} +0 -0
- /package/dist/{chunk-W4PGTAS2.js.map → chunk-6WAFYNVT.js.map} +0 -0
- /package/dist/{chunk-R5VAVVHP.js.map → chunk-72A4L5JJ.js.map} +0 -0
- /package/dist/{chunk-3FAMU5TX.js.map → chunk-A6USBZTO.js.map} +0 -0
- /package/dist/{chunk-ZHIVCODT.js.map → chunk-A72SWTWW.js.map} +0 -0
- /package/dist/{chunk-FC77VUX5.js.map → chunk-A7Q43EUZ.js.map} +0 -0
- /package/dist/{chunk-UJBESW6X.js.map → chunk-AE7WMV4V.js.map} +0 -0
- /package/dist/{chunk-A5UXZRRM.js.map → chunk-AJ7QCSIS.js.map} +0 -0
- /package/dist/{chunk-FNMFJWBY.js.map → chunk-ANEUPF6O.js.map} +0 -0
- /package/dist/{chunk-2A3OXAP2.js.map → chunk-B7RWBZXW.js.map} +0 -0
- /package/dist/{chunk-74F5STS4.js.map → chunk-BLAKS3CP.js.map} +0 -0
- /package/dist/{chunk-M7VGG3ID.js.map → chunk-BV5WMSIJ.js.map} +0 -0
- /package/dist/{chunk-2BFLDH5F.js.map → chunk-BXLOS5AJ.js.map} +0 -0
- /package/dist/{chunk-UXKMMNJD.js.map → chunk-C23BYTJV.js.map} +0 -0
- /package/dist/{chunk-JZHHREBL.js.map → chunk-C3AKM55W.js.map} +0 -0
- /package/dist/{chunk-RP7YXA67.js.map → chunk-C5JF6EZ7.js.map} +0 -0
- /package/dist/{chunk-EHCONI6E.js.map → chunk-CQMEM5CC.js.map} +0 -0
- /package/dist/{chunk-PBNZVPFS.js.map → chunk-CXZQOVIE.js.map} +0 -0
- /package/dist/{chunk-7N2RUBAP.js.map → chunk-DDA47TES.js.map} +0 -0
- /package/dist/{chunk-64SE4X5G.js.map → chunk-DEBHXHJR.js.map} +0 -0
- /package/dist/{chunk-EHK6KZHK.js.map → chunk-DNHVPZOD.js.map} +0 -0
- /package/dist/{chunk-437S3G37.js.map → chunk-DQEMWVMT.js.map} +0 -0
- /package/dist/{chunk-LZZNTPLR.js.map → chunk-DX3XRGLH.js.map} +0 -0
- /package/dist/{chunk-DZKHSDOM.js.map → chunk-ES36HTSC.js.map} +0 -0
- /package/dist/{chunk-TN7THW5U.js.map → chunk-ET356KSB.js.map} +0 -0
- /package/dist/{chunk-YNDLCWXS.js.map → chunk-EZ25VE3G.js.map} +0 -0
- /package/dist/{chunk-DMSDUGDM.js.map → chunk-F7GAIWFA.js.map} +0 -0
- /package/dist/{chunk-G6XXLKC5.js.map → chunk-FFPJINJE.js.map} +0 -0
- /package/dist/{chunk-G4CN3ZXL.js.map → chunk-FUTF72MJ.js.map} +0 -0
- /package/dist/{chunk-HF77M34J.js.map → chunk-GFPZS3F5.js.map} +0 -0
- /package/dist/{chunk-G6NKALRN.js.map → chunk-H4WG3UQZ.js.map} +0 -0
- /package/dist/{chunk-UDQUSU27.js.map → chunk-HNZKVLAN.js.map} +0 -0
- /package/dist/{chunk-5EZXHU36.js.map → chunk-HYQJQGD3.js.map} +0 -0
- /package/dist/{chunk-TRWPCR6P.js.map → chunk-JECBQBEX.js.map} +0 -0
- /package/dist/{chunk-E6CBU7XP.js.map → chunk-JYIFGGEM.js.map} +0 -0
- /package/dist/{chunk-VA4WSW54.js.map → chunk-JYIJNNN3.js.map} +0 -0
- /package/dist/{chunk-L5HJQC36.js.map → chunk-K2TDK7GG.js.map} +0 -0
- /package/dist/{chunk-KDXVOFYY.js.map → chunk-KAVBJSBQ.js.map} +0 -0
- /package/dist/{chunk-4OKLXWDZ.js.map → chunk-KNB7IBBU.js.map} +0 -0
- /package/dist/{chunk-QLULYKWZ.js.map → chunk-KSXJOC4F.js.map} +0 -0
- /package/dist/{chunk-2S6QHZGJ.js.map → chunk-L2DPF4DF.js.map} +0 -0
- /package/dist/{chunk-JI5AVXYO.js.map → chunk-LEPOP46W.js.map} +0 -0
- /package/dist/{chunk-O7BBFJLP.js.map → chunk-LTAVSOZW.js.map} +0 -0
- /package/dist/{chunk-2IZAGAJR.js.map → chunk-LULR4IUW.js.map} +0 -0
- /package/dist/{chunk-WMWVO45V.js.map → chunk-MC6XO7T4.js.map} +0 -0
- /package/dist/{chunk-D6RIFG4O.js.map → chunk-MNB5RMAY.js.map} +0 -0
- /package/dist/{chunk-Q5WG43OP.js.map → chunk-MYFQ3ED4.js.map} +0 -0
- /package/dist/{chunk-V3UE5I5F.js.map → chunk-MYVPLJOO.js.map} +0 -0
- /package/dist/{chunk-MTWKDOVO.js.map → chunk-NLE6TSLG.js.map} +0 -0
- /package/dist/{chunk-DBRYEIGY.js.map → chunk-OJP3N7UK.js.map} +0 -0
- /package/dist/{chunk-SMX5267P.js.map → chunk-OZKOPQCM.js.map} +0 -0
- /package/dist/{chunk-JCK7V6SN.js.map → chunk-P65YJEEL.js.map} +0 -0
- /package/dist/{chunk-MTR7BZQN.js.map → chunk-PBGWYM3H.js.map} +0 -0
- /package/dist/{chunk-AXTXN4T6.js.map → chunk-PWFCHOB3.js.map} +0 -0
- /package/dist/{chunk-FDPZVY6D.js.map → chunk-QFN4U7AG.js.map} +0 -0
- /package/dist/{chunk-K2ZLHESQ.js.map → chunk-QIEUU4UK.js.map} +0 -0
- /package/dist/{chunk-3D6AFGQR.js.map → chunk-QVT3E4CE.js.map} +0 -0
- /package/dist/{chunk-SFQ6QNL7.js.map → chunk-R6YJI3HE.js.map} +0 -0
- /package/dist/{chunk-5CJVLG3H.js.map → chunk-RFDD3B7W.js.map} +0 -0
- /package/dist/{chunk-JBPKEARU.js.map → chunk-RKNJBZ55.js.map} +0 -0
- /package/dist/{chunk-FNZQGN76.js.map → chunk-S2BBISHU.js.map} +0 -0
- /package/dist/{chunk-IALLX7EE.js.map → chunk-S2FSBU4H.js.map} +0 -0
- /package/dist/{chunk-7K5Q6COX.js.map → chunk-TVVEYCNW.js.map} +0 -0
- /package/dist/{chunk-DPAENM7O.js.map → chunk-U3ZAVRP3.js.map} +0 -0
- /package/dist/{chunk-4KJLYTLS.js.map → chunk-V57NLO5P.js.map} +0 -0
- /package/dist/{chunk-FLVL4L3L.js.map → chunk-VDX2J7OX.js.map} +0 -0
- /package/dist/{chunk-AJLLIIML.js.map → chunk-W4FBGYGK.js.map} +0 -0
- /package/dist/{chunk-6SXVCD7W.js.map → chunk-W7IGLX4G.js.map} +0 -0
- /package/dist/{chunk-KAWTOYAW.js.map → chunk-WLZYGLJ4.js.map} +0 -0
- /package/dist/{chunk-RO4LQGT3.js.map → chunk-WON4APQY.js.map} +0 -0
- /package/dist/{chunk-PQVK2S3J.js.map → chunk-WZFAPHIK.js.map} +0 -0
- /package/dist/{chunk-KQPJLK3X.js.map → chunk-XL24QQ63.js.map} +0 -0
- /package/dist/{chunk-RVZRYUQH.js.map → chunk-YROFNEG5.js.map} +0 -0
- /package/dist/{chunk-VRAD2FGO.js.map → chunk-Z54EM5YZ.js.map} +0 -0
- /package/dist/{first-start-migration-TI67YMLG.js.map → first-start-migration-CSRHCJIQ.js.map} +0 -0
- /package/dist/{forget-CQCLB5LB.js.map → forget-HRPLVB3W.js.map} +0 -0
- /package/dist/{purge-NDWV6WYD.js.map → purge-IRF47ZTX.js.map} +0 -0
- /package/dist/{tier-stats-KV7IWCJR.js.map → tier-stats-QEJSPFV2.js.map} +0 -0
package/src/orchestrator.ts
CHANGED
|
@@ -103,7 +103,11 @@ import { EntitySynthesisCoordinator } from "./orchestration/entity-synthesis-coo
|
|
|
103
103
|
import { RecallResultFormatter } from "./orchestration/recall-result-formatter.js";
|
|
104
104
|
import { ConversationIndexCoordinator } from "./orchestration/conversation-index-coordinator.js";
|
|
105
105
|
import { RecallRerankCoordinator } from "./orchestration/recall-rerank-coordinator.js";
|
|
106
|
-
import {
|
|
106
|
+
import {
|
|
107
|
+
RecallSectionCoordinator,
|
|
108
|
+
type RecallSectionAppendOptions,
|
|
109
|
+
type RecallSectionBuckets,
|
|
110
|
+
} from "./orchestration/recall-section-coordinator.js";
|
|
107
111
|
import { QmdResultResolver, qmdCollectionPathParts, qmdResultPathCandidates } from "./orchestration/qmd-result-resolver.js";
|
|
108
112
|
import { ContradictionLinkingCoordinator } from "./orchestration/contradiction-linking-coordinator.js";
|
|
109
113
|
import {
|
|
@@ -126,6 +130,10 @@ import { RecallEntryCoordinator } from "./orchestration/recall-entry.js";
|
|
|
126
130
|
import { SessionContextCoordinator } from "./orchestration/session-context.js";
|
|
127
131
|
import { drainRecallWrites, trackRecallWrite } from "./orchestration/recall-background-writes.js";
|
|
128
132
|
import { XrayCaptureQueue } from "./orchestration/xray-capture-queue.js";
|
|
133
|
+
import {
|
|
134
|
+
computeSemanticDedupScope,
|
|
135
|
+
qmdCollectionNamespaceFromPrefix as computeQmdCollectionNamespaceFromPrefix,
|
|
136
|
+
} from "./orchestration/orchestrator-namespace-scope.js";
|
|
129
137
|
import {
|
|
130
138
|
abortRecallError,
|
|
131
139
|
buildCompressionGuidelinesMarkdown,
|
|
@@ -275,6 +283,7 @@ import {
|
|
|
275
283
|
} from "./dedup/semantic.js";
|
|
276
284
|
import { BootstrapEngine } from "./bootstrap.js";
|
|
277
285
|
import { parseQmdExplain } from "./qmd.js";
|
|
286
|
+
import { installPrioritizedEmbedding, type PrioritizedEmbeddingHandle } from "./prioritized-embed.js";
|
|
278
287
|
import {
|
|
279
288
|
buildQmdRecallCacheKey,
|
|
280
289
|
getCachedQmdRecall,
|
|
@@ -364,7 +373,6 @@ import { resolveNamespaceCapabilities,
|
|
|
364
373
|
resolveIdentityContinuityCapabilities,
|
|
365
374
|
resolveLocalLlmCapabilities,
|
|
366
375
|
resolveSecurityCapabilities, resolveEvalCapabilities, resolveUtilityLearningCapabilities, resolveObjectiveStateCapabilities, resolveCompressionCapabilities, resolvePresentationCapabilities, resolveConsolidationCapabilities, resolveRecallAuxiliaryCapabilities ,
|
|
367
|
-
resolveRecallEnhancementCapabilities,
|
|
368
376
|
resolvePipelineProcessingCapabilities,
|
|
369
377
|
resolveConversationContextCapabilities,
|
|
370
378
|
} from "./capabilities.js";
|
|
@@ -437,7 +445,6 @@ import {
|
|
|
437
445
|
type NamespaceMaintenanceHealthSummary,
|
|
438
446
|
} from "./maintenance/namespace-maintenance-fanout.js";
|
|
439
447
|
import {
|
|
440
|
-
namespaceIdentityFromToken,
|
|
441
448
|
namespaceIdentityToken,
|
|
442
449
|
normalizeNamespaceIdentity,
|
|
443
450
|
} from "./namespaces/identity.js";
|
|
@@ -535,15 +542,12 @@ import type {
|
|
|
535
542
|
} from "./types.js";
|
|
536
543
|
import { disposeDefaultArchiveScoring, getDefaultArchiveScoring, memoryFileToScoreItem } from "./recall/archive-scoring.js";
|
|
537
544
|
|
|
538
|
-
|
|
539
545
|
// Issue #1526 seam 15: ExtractionRunResult moved to orchestration/extraction-run.ts.
|
|
540
546
|
export type { ExtractionRunResult } from "./orchestration/extraction-run.js";
|
|
541
547
|
|
|
542
|
-
|
|
543
548
|
// Issue #1526 seam 15: deriveTopicsFromExtraction moved to orchestration/extraction-run.ts.
|
|
544
549
|
export { deriveTopicsFromExtraction } from "./orchestration/extraction-run.js";
|
|
545
550
|
|
|
546
|
-
|
|
547
551
|
export class Orchestrator {
|
|
548
552
|
|
|
549
553
|
readonly storage: StorageManager;
|
|
@@ -560,6 +564,7 @@ export class Orchestrator {
|
|
|
560
564
|
* runners (consolidation/pattern-reinforcement/governance) stay here.
|
|
561
565
|
*/
|
|
562
566
|
readonly maintenanceScheduler: MaintenanceScheduler;
|
|
567
|
+
private prioritizedEmbedding?: PrioritizedEmbeddingHandle;
|
|
563
568
|
private readonly conversationQmd?: ConversationQmdRuntime;
|
|
564
569
|
private readonly conversationFaiss?: ReturnType<
|
|
565
570
|
typeof createConversationIndexRuntime
|
|
@@ -604,7 +609,6 @@ export class Orchestrator {
|
|
|
604
609
|
get fastGatewayLlm(): FallbackLlmClient | null {
|
|
605
610
|
return this._fastGatewayLlm;
|
|
606
611
|
}
|
|
607
|
-
|
|
608
612
|
getConsoleFaithfulnessDistribution(): FaithfulnessGateCounters | undefined {
|
|
609
613
|
return this.recallIntrospection.getConsoleFaithfulnessDistribution(
|
|
610
614
|
);
|
|
@@ -701,7 +705,13 @@ export class Orchestrator {
|
|
|
701
705
|
// Batched access-tracking counts and timestamps (Phase 1A).
|
|
702
706
|
private accessTrackingBuffer: Map<
|
|
703
707
|
string,
|
|
704
|
-
{
|
|
708
|
+
{
|
|
709
|
+
memoryId: string;
|
|
710
|
+
memoryPath?: string;
|
|
711
|
+
namespace?: string;
|
|
712
|
+
count: number;
|
|
713
|
+
lastAccessed: string;
|
|
714
|
+
}
|
|
705
715
|
> = new Map();
|
|
706
716
|
|
|
707
717
|
// Passive correction capture (issue #1581) — dedup state + lazy service.
|
|
@@ -822,6 +832,7 @@ export class Orchestrator {
|
|
|
822
832
|
hasContentHashDedup: (targetStorage, content) => this.hasContentHashDedup(targetStorage, content),
|
|
823
833
|
backfillTemporalBoundsOnDedupHit: (targetStorage, dedupContent, bounds, entityRef, sourceConnector) =>
|
|
824
834
|
this.backfillTemporalBoundsOnDedupHit(targetStorage, dedupContent, bounds, entityRef, sourceConnector),
|
|
835
|
+
// Removal-aware reconciling save serializes append vs removal (issue #1909).
|
|
825
836
|
saveContentHashIndexes: () => this.saveContentHashIndexes(),
|
|
826
837
|
artifactTypeForCategory: (category) => this.artifactTypeForCategory(category),
|
|
827
838
|
loadRoutingRules: () => this.loadRoutingRules(),
|
|
@@ -927,12 +938,10 @@ export class Orchestrator {
|
|
|
927
938
|
this.deferredInitAbort = null;
|
|
928
939
|
}
|
|
929
940
|
}
|
|
930
|
-
|
|
931
941
|
/** Track a recall-side write so destroy() can wait for it before teardown. @internal */
|
|
932
942
|
trackRecallBackgroundWrite(promise: Promise<void>, label: string): void {
|
|
933
943
|
trackRecallWrite(this, promise, label);
|
|
934
944
|
}
|
|
935
|
-
|
|
936
945
|
/**
|
|
937
946
|
* Stop background initialization and release runtime-owned handles.
|
|
938
947
|
* Long-lived hosts should call this from their shutdown path; one-shot
|
|
@@ -948,28 +957,63 @@ export class Orchestrator {
|
|
|
948
957
|
}
|
|
949
958
|
this.maintenanceScheduler.dispose();
|
|
950
959
|
await drainRecallWrites(this);
|
|
951
|
-
//
|
|
952
|
-
//
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
|
|
957
|
-
|
|
960
|
+
// PR #2016 finding 3: drain any deferred lock-timeout hash-index retries so a
|
|
961
|
+
// short-lived writer's durable fact hash reaches disk before the process
|
|
962
|
+
// exits. The per-index background retry is unref'd (it never keeps a
|
|
963
|
+
// long-lived host alive), so a one-shot CLI could exit before it fires; this
|
|
964
|
+
// drives it to completion inline at the shutdown boundary. Best-effort.
|
|
965
|
+
await this.persistenceIndexCoordinator
|
|
966
|
+
.drainContentHashReconcileRetries()
|
|
967
|
+
.catch((err) => log.warn(`content-hash reconcile drain failed during destroy: ${err}`));
|
|
968
|
+
// Issue #1909: persist any turns buffered within the debounce window BEFORE
|
|
969
|
+
// flushing catalog touches (review round 11 finding 2). The buffer save fires
|
|
970
|
+
// a coalesced namespace-catalog touch on an unref'd timer; flushing touches
|
|
971
|
+
// first would let that shutdown-time touch queue after the flush and be lost.
|
|
972
|
+
// Ordering it before flushPendingTouches folds the buffer-save's touch into
|
|
973
|
+
// the flush below so both settle before destroy() returns.
|
|
974
|
+
//
|
|
975
|
+
// Graceful-shutdown durability contract (review round 14): the flush runs
|
|
976
|
+
// with throwOnFailure so a failed buffer write is NOT silently swallowed.
|
|
977
|
+
// flushPendingSave keeps the save pending on failure (in-memory turns are
|
|
978
|
+
// retained), so we finish the rest of teardown in a finally block and then
|
|
979
|
+
// rethrow — the host learns buffered turns did not reach disk instead of
|
|
980
|
+
// destroy() reporting a clean shutdown and losing them on exit.
|
|
981
|
+
let bufferFlushError: unknown;
|
|
982
|
+
try {
|
|
983
|
+
await this.buffer.flushPendingSave({ throwOnFailure: true });
|
|
984
|
+
} catch (err) {
|
|
985
|
+
bufferFlushError = err;
|
|
986
|
+
}
|
|
987
|
+
try {
|
|
988
|
+
// Issue #1903: flush any coalesced namespace-catalog touches before teardown
|
|
989
|
+
// so a long-lived host does not drop buffered read/write timestamps.
|
|
990
|
+
await this.namespaceCatalog.flushPendingTouches().catch(() => undefined);
|
|
991
|
+
this.prioritizedEmbedding?.dispose();
|
|
992
|
+
await this.namespaceSearchRouter.dispose();
|
|
993
|
+
await (this.qmd as { dispose?: () => void | Promise<void> }).dispose?.();
|
|
994
|
+
if (this.conversationQmd && this.conversationQmd !== this.qmd) {
|
|
995
|
+
await (this.conversationQmd as { dispose?: () => void | Promise<void> }).dispose?.();
|
|
996
|
+
}
|
|
997
|
+
// Issue #1674: terminate archive-scoring worker threads on destroy.
|
|
998
|
+
await disposeDefaultArchiveScoring();
|
|
999
|
+
} finally {
|
|
1000
|
+
if (bufferFlushError !== undefined) {
|
|
1001
|
+
log.warn(
|
|
1002
|
+
`orchestrator.destroy: buffer flush failed; pending turns retained in memory but not persisted: ${String(bufferFlushError)}`,
|
|
1003
|
+
);
|
|
1004
|
+
throw bufferFlushError;
|
|
1005
|
+
}
|
|
958
1006
|
}
|
|
959
|
-
// Issue #1674: terminate archive-scoring worker threads on destroy.
|
|
960
|
-
await disposeDefaultArchiveScoring();
|
|
961
1007
|
}
|
|
962
1008
|
|
|
963
1009
|
/** Set per-session workspace for the next recall() call (compaction reset). @internal */
|
|
964
1010
|
setRecallWorkspaceOverride(sessionKey: string, dir: string): void {
|
|
965
1011
|
this._recallWorkspaceOverrides.set(sessionKey, dir);
|
|
966
1012
|
}
|
|
967
|
-
|
|
968
1013
|
/** Remove a per-session workspace selection (cleanup on error or early return). @internal */
|
|
969
1014
|
clearRecallWorkspaceOverride(sessionKey: string): void {
|
|
970
1015
|
this._recallWorkspaceOverrides.delete(sessionKey);
|
|
971
1016
|
}
|
|
972
|
-
|
|
973
1017
|
resolvePrincipal(sessionKey?: string): string | undefined {
|
|
974
1018
|
return resolvePrincipal(sessionKey, this.config);
|
|
975
1019
|
}
|
|
@@ -1249,23 +1293,26 @@ export class Orchestrator {
|
|
|
1249
1293
|
): Promise<ContentHashIndex | null> {
|
|
1250
1294
|
if (!resolveRecallAuxiliaryCapabilities(this.config).factDeduplication) return null;
|
|
1251
1295
|
|
|
1296
|
+
// Round 12: share the StorageManager's corpus-AUTHORITATIVE fact-hash index
|
|
1297
|
+
// (rebuilt from the .md corpus on first use per process) instead of loading a
|
|
1298
|
+
// separate, possibly-stale fact-hashes.txt. This makes the orchestrator's
|
|
1299
|
+
// dedup layer and StorageManager.hasFactContentHash() one coherent source:
|
|
1300
|
+
// after a crash before the deferred batch save, the restart rebuild includes
|
|
1301
|
+
// the durable fact, so hasContentHashDedup() sees it and persistExtraction
|
|
1302
|
+
// does not re-create it. We still cache the reference so saveContentHashIndexes
|
|
1303
|
+
// persists exactly the shared instance.
|
|
1304
|
+
// PR #2016: use the shared (best-effort) accessor, not the throwing
|
|
1305
|
+
// authoritative one — the shared instance must be available for registration
|
|
1306
|
+
// add/remove even under lock contention (it reconciles to disk via the
|
|
1307
|
+
// deferred retry). The dedup READ path (extraction-persist) gates a MISS on
|
|
1308
|
+
// isFactContentHashAuthoritative() and confirms against the corpus, so a
|
|
1309
|
+
// non-authoritative snapshot never causes a false dedup miss.
|
|
1310
|
+
const index = await targetStorage.getSharedFactHashIndex();
|
|
1252
1311
|
if (targetStorage.dir === this.storage.dir) {
|
|
1253
|
-
|
|
1254
|
-
|
|
1255
|
-
|
|
1256
|
-
}
|
|
1257
|
-
return this.contentHashIndex;
|
|
1312
|
+
this.contentHashIndex = index;
|
|
1313
|
+
} else {
|
|
1314
|
+
this.contentHashIndexesByStorageDir.set(targetStorage.dir, index);
|
|
1258
1315
|
}
|
|
1259
|
-
|
|
1260
|
-
const cached = this.contentHashIndexesByStorageDir.get(targetStorage.dir);
|
|
1261
|
-
if (cached) return cached;
|
|
1262
|
-
|
|
1263
|
-
const index = targetStorage.createContentHashIndex();
|
|
1264
|
-
await index.load();
|
|
1265
|
-
this.contentHashIndexesByStorageDir.set(targetStorage.dir, index);
|
|
1266
|
-
log.info(
|
|
1267
|
-
`content-hash dedup: loaded ${index.size} hashes for storage ${targetStorage.dir}`,
|
|
1268
|
-
);
|
|
1269
1316
|
return index;
|
|
1270
1317
|
}
|
|
1271
1318
|
|
|
@@ -1327,8 +1374,7 @@ export class Orchestrator {
|
|
|
1327
1374
|
}
|
|
1328
1375
|
|
|
1329
1376
|
private async saveContentHashIndexes(): Promise<void> {
|
|
1330
|
-
return this.persistenceIndexCoordinator.saveContentHashIndexes(
|
|
1331
|
-
);
|
|
1377
|
+
return this.persistenceIndexCoordinator.saveContentHashIndexes();
|
|
1332
1378
|
}
|
|
1333
1379
|
|
|
1334
1380
|
constructor(config: PluginConfig) {
|
|
@@ -1418,15 +1464,28 @@ export class Orchestrator {
|
|
|
1418
1464
|
// and writes will throw SecureStoreLockedError via resolveWriteKey().
|
|
1419
1465
|
}
|
|
1420
1466
|
this.qmd = createSearchBackend(config);
|
|
1467
|
+
// #2019: prioritized embedding for write-path searchability.
|
|
1468
|
+
const qmdCaps = resolveQmdCapabilities(config);
|
|
1469
|
+
if (qmdCaps.qmd && qmdCaps.qmdAutoEmbed) {
|
|
1470
|
+
this.prioritizedEmbedding = installPrioritizedEmbedding(
|
|
1471
|
+
(namespace) => this.namespaceSearchRouter.backendForNamespace(namespace),
|
|
1472
|
+
(msg) => log.debug(msg),
|
|
1473
|
+
);
|
|
1474
|
+
const defaultNs = this.config.defaultNamespace;
|
|
1475
|
+
this.storage.onMemoryWrite = (filePath) => this.prioritizedEmbedding?.enqueue(filePath, defaultNs);
|
|
1476
|
+
this.storageRouter.onStorageCreated = (storage, namespace) => {
|
|
1477
|
+
storage.onMemoryWrite = (filePath) => this.prioritizedEmbedding?.enqueue(filePath, namespace);
|
|
1478
|
+
};
|
|
1479
|
+
this.storageRouter.forEachCachedStorage((storage, namespace) => {
|
|
1480
|
+
storage.onMemoryWrite = (filePath) => this.prioritizedEmbedding?.enqueue(filePath, namespace);
|
|
1481
|
+
});
|
|
1482
|
+
}
|
|
1421
1483
|
this.maintenanceScheduler = new MaintenanceScheduler({
|
|
1422
1484
|
config,
|
|
1423
|
-
// Live accessor: the orchestrator reassigns this.qmd to NoopSearchBackend
|
|
1424
|
-
// after construction when the collection is missing (initialize /
|
|
1425
|
-
// startupSearchSync); the scheduler must read the current backend so
|
|
1426
|
-
// debounced maintenance never runs against a stale/disposed one.
|
|
1427
1485
|
getQmd: () => this.qmd,
|
|
1428
1486
|
namespaceSearchRouter: this.namespaceSearchRouter,
|
|
1429
1487
|
namespaceCatalog: this.namespaceCatalog,
|
|
1488
|
+
getStorage: () => this.storage, storageForNamespace: (namespace) => this.storageRouter.storageFor(namespace),
|
|
1430
1489
|
});
|
|
1431
1490
|
// Issue #1526: background extraction queue lives on its own coordinator.
|
|
1432
1491
|
this.extractionQueueCoordinator = new ExtractionQueueCoordinator();
|
|
@@ -1461,8 +1520,8 @@ export class Orchestrator {
|
|
|
1461
1520
|
this.recallRerankCoordinator = new RecallRerankCoordinator({
|
|
1462
1521
|
getConfig: () => this.config,
|
|
1463
1522
|
getStorage: (namespace) => this.getStorage(namespace),
|
|
1464
|
-
readQmdResultMemory: (resultPath, fallbackStorage, recallNamespaces) =>
|
|
1465
|
-
this.readQmdResultMemory(resultPath, fallbackStorage, recallNamespaces),
|
|
1523
|
+
readQmdResultMemory: (resultPath, fallbackStorage, recallNamespaces, preferredNamespace) =>
|
|
1524
|
+
this.readQmdResultMemory(resultPath, fallbackStorage, recallNamespaces, preferredNamespace),
|
|
1466
1525
|
});
|
|
1467
1526
|
this.recallSectionCoordinator = new RecallSectionCoordinator({
|
|
1468
1527
|
getConfig: () => this.config,
|
|
@@ -1488,12 +1547,15 @@ export class Orchestrator {
|
|
|
1488
1547
|
this.resolveColdQmdResultForRecall(result, fallbackStorage, recallNamespaces),
|
|
1489
1548
|
storageForAbsoluteQmdResultPath: (resultPath, fallbackStorage, recallNamespaces) =>
|
|
1490
1549
|
this.storageForAbsoluteQmdResultPath(resultPath, fallbackStorage, recallNamespaces),
|
|
1491
|
-
readQmdResultMemory: (resultPath, fallbackStorage, recallNamespaces) =>
|
|
1492
|
-
this.readQmdResultMemory(resultPath, fallbackStorage, recallNamespaces),
|
|
1550
|
+
readQmdResultMemory: (resultPath, fallbackStorage, recallNamespaces, preferredNamespace) =>
|
|
1551
|
+
this.readQmdResultMemory(resultPath, fallbackStorage, recallNamespaces, preferredNamespace),
|
|
1493
1552
|
});
|
|
1494
1553
|
this.relevance = new RelevanceStore(config.memoryDir);
|
|
1495
1554
|
this.negatives = new NegativeExampleStore(config.memoryDir);
|
|
1496
|
-
this.lastRecall = new LastRecallStore(config.memoryDir
|
|
1555
|
+
this.lastRecall = new LastRecallStore(config.memoryDir, {
|
|
1556
|
+
impressionsRotateBytes: config.recallImpressionsRotateBytes,
|
|
1557
|
+
impressionsRotateKeep: config.recallImpressionsRotateKeep,
|
|
1558
|
+
});
|
|
1497
1559
|
this.handleHistory = new RecallHandleHistoryStore(config.memoryDir, {
|
|
1498
1560
|
maxDepth: config.recallHandleSnapshotDepth,
|
|
1499
1561
|
});
|
|
@@ -1536,7 +1598,7 @@ export class Orchestrator {
|
|
|
1536
1598
|
getConfig: () => this.config,
|
|
1537
1599
|
storageFor: (namespace) => this.storageRouter.storageFor(namespace),
|
|
1538
1600
|
storageDirNamespace: (storageDir) => this.storageDirNamespace(storageDir),
|
|
1539
|
-
qmdCollectionNamespaceFromPrefix: (prefix) => this.
|
|
1601
|
+
qmdCollectionNamespaceFromPrefix: (prefix) => computeQmdCollectionNamespaceFromPrefix(prefix, this.config),
|
|
1540
1602
|
namespaceFromPath: (p) => this.namespaceFromPath(p),
|
|
1541
1603
|
});
|
|
1542
1604
|
|
|
@@ -2009,7 +2071,6 @@ export class Orchestrator {
|
|
|
2009
2071
|
});
|
|
2010
2072
|
}
|
|
2011
2073
|
|
|
2012
|
-
|
|
2013
2074
|
async applyBehaviorRuntimePolicy(
|
|
2014
2075
|
state: BehaviorLoopPolicyState,
|
|
2015
2076
|
): Promise<{
|
|
@@ -2610,14 +2671,16 @@ export class Orchestrator {
|
|
|
2610
2671
|
}
|
|
2611
2672
|
|
|
2612
2673
|
private appendRecallSection(
|
|
2613
|
-
sectionBuckets:
|
|
2674
|
+
sectionBuckets: RecallSectionBuckets,
|
|
2614
2675
|
sectionId: string,
|
|
2615
2676
|
content: string,
|
|
2677
|
+
options?: RecallSectionAppendOptions,
|
|
2616
2678
|
): boolean {
|
|
2617
2679
|
return this.recallSectionCoordinator.appendRecallSection(
|
|
2618
2680
|
sectionBuckets,
|
|
2619
2681
|
sectionId,
|
|
2620
2682
|
content,
|
|
2683
|
+
options,
|
|
2621
2684
|
);
|
|
2622
2685
|
}
|
|
2623
2686
|
|
|
@@ -2636,7 +2699,7 @@ export class Orchestrator {
|
|
|
2636
2699
|
}
|
|
2637
2700
|
|
|
2638
2701
|
private assembleRecallSections(
|
|
2639
|
-
sectionBuckets:
|
|
2702
|
+
sectionBuckets: RecallSectionBuckets,
|
|
2640
2703
|
budgetOverride?: number,
|
|
2641
2704
|
): {
|
|
2642
2705
|
sections: string[];
|
|
@@ -2644,6 +2707,10 @@ export class Orchestrator {
|
|
|
2644
2707
|
omittedIds: string[];
|
|
2645
2708
|
truncated: boolean;
|
|
2646
2709
|
finalChars: number;
|
|
2710
|
+
includedMemoryIds: string[];
|
|
2711
|
+
includedMemoryPaths: string[];
|
|
2712
|
+
includedMemoryNamespaces: Array<string | undefined>;
|
|
2713
|
+
omittedMemoryIds: string[];
|
|
2647
2714
|
} {
|
|
2648
2715
|
return this.recallSectionCoordinator.assembleRecallSections(
|
|
2649
2716
|
sectionBuckets,
|
|
@@ -2651,7 +2718,6 @@ export class Orchestrator {
|
|
|
2651
2718
|
);
|
|
2652
2719
|
}
|
|
2653
2720
|
|
|
2654
|
-
|
|
2655
2721
|
/**
|
|
2656
2722
|
* Clock source for the shared post-retrieval assembly/enrichment budget. The
|
|
2657
2723
|
* deadline is set from this value and every expiry check reads it back, so a
|
|
@@ -3089,8 +3155,7 @@ export class Orchestrator {
|
|
|
3089
3155
|
requestQmdMaintenanceForTool(reason: string): void {
|
|
3090
3156
|
this.maintenanceScheduler.requestQmdMaintenanceForTool(reason);
|
|
3091
3157
|
}
|
|
3092
|
-
|
|
3093
|
-
private async persistExtraction(
|
|
3158
|
+
async persistExtraction(
|
|
3094
3159
|
result: ExtractionResult,
|
|
3095
3160
|
storage: StorageManager,
|
|
3096
3161
|
threadIdForExtraction?: string | null,
|
|
@@ -3101,8 +3166,8 @@ export class Orchestrator {
|
|
|
3101
3166
|
sourceText?: string,
|
|
3102
3167
|
graphCaps: GraphConstructionCapabilitySet = resolveGraphConstructionCapabilities(this.config),
|
|
3103
3168
|
lifecycleCaps: MemoryLifecycleCapabilitySet = resolveMemoryLifecycleCapabilities(this.config),
|
|
3104
|
-
): Promise<string[]> {
|
|
3105
|
-
|
|
3169
|
+
): Promise<{ persistedIds: string[]; memoryPathById: Map<string, string> }> {
|
|
3170
|
+
const { persistedIds, memoryPathById } = await this.extractionPersistCoordinator.persistExtraction(
|
|
3106
3171
|
result,
|
|
3107
3172
|
storage,
|
|
3108
3173
|
threadIdForExtraction,
|
|
@@ -3113,6 +3178,7 @@ export class Orchestrator {
|
|
|
3113
3178
|
graphCaps,
|
|
3114
3179
|
lifecycleCaps,
|
|
3115
3180
|
);
|
|
3181
|
+
return { persistedIds, memoryPathById };
|
|
3116
3182
|
}
|
|
3117
3183
|
/**
|
|
3118
3184
|
* Append persisted ids to the thread episode set, excluding pending_review
|
|
@@ -3215,7 +3281,6 @@ export class Orchestrator {
|
|
|
3215
3281
|
return this.compressionGuidelineCoordinator.buildCompressionGuidelineRecallSection();
|
|
3216
3282
|
}
|
|
3217
3283
|
|
|
3218
|
-
|
|
3219
3284
|
async runLifecyclePolicyNow(storage: StorageManager = this.storage): Promise<{ memoriesAssessed: number }> {
|
|
3220
3285
|
const lifecycleCorpus = await storage.readAllMemories();
|
|
3221
3286
|
// Record the catalog write when the pass rewrote any frontmatter (codex NR-tS).
|
|
@@ -3350,7 +3415,7 @@ export class Orchestrator {
|
|
|
3350
3415
|
private publishRecallResults(options: {
|
|
3351
3416
|
title: string;
|
|
3352
3417
|
results: QmdSearchResult[];
|
|
3353
|
-
sectionBuckets:
|
|
3418
|
+
sectionBuckets: RecallSectionBuckets;
|
|
3354
3419
|
retrievalQuery: string;
|
|
3355
3420
|
sessionKey: string | undefined;
|
|
3356
3421
|
identityInjection?: {
|
|
@@ -3375,41 +3440,13 @@ export class Orchestrator {
|
|
|
3375
3440
|
);
|
|
3376
3441
|
}
|
|
3377
3442
|
|
|
3378
|
-
/**
|
|
3379
|
-
* Apply MMR over the pre-truncation recall candidate pool and then slice
|
|
3380
|
-
* the result to `limit`. This is the single place in the pipeline where
|
|
3381
|
-
* MMR runs, and it must be called *before* callers throw away candidates
|
|
3382
|
-
* that would otherwise sit below the final cutoff. Running MMR post-slice
|
|
3383
|
-
* is a no-op in the cases we care about — diverse candidates just below
|
|
3384
|
-
* the cutoff are already gone and can never be promoted.
|
|
3385
|
-
*
|
|
3386
|
-
* Callers must pass the full candidate pool (post-rerank, pre-slice).
|
|
3387
|
-
*/
|
|
3388
|
-
private qmdCollectionNamespaceFromPrefix(collectionPrefix: string): string | null {
|
|
3389
|
-
const baseCollection = this.config.qmdCollection;
|
|
3390
|
-
if (collectionPrefix === baseCollection) return this.config.defaultNamespace;
|
|
3391
|
-
const namespaceSuffix = collectionPrefix.startsWith(`${baseCollection}--`)
|
|
3392
|
-
? collectionPrefix.slice(baseCollection.length + 2)
|
|
3393
|
-
: "";
|
|
3394
|
-
if (!namespaceSuffix) return null;
|
|
3395
|
-
|
|
3396
|
-
const decoded = namespaceIdentityFromToken(namespaceSuffix);
|
|
3397
|
-
if (decoded !== null) return decoded || this.config.defaultNamespace;
|
|
3398
|
-
if (namespaceSuffix.startsWith("ns--")) {
|
|
3399
|
-
const legacyNamespace = namespaceSuffix.slice("ns--".length).trim();
|
|
3400
|
-
return legacyNamespace || null;
|
|
3401
|
-
}
|
|
3402
|
-
return null;
|
|
3403
|
-
}
|
|
3404
|
-
|
|
3405
|
-
// Issue #1526 seam 11: QMD result-resolution methods moved to QmdResultResolver.
|
|
3406
|
-
// Thin delegation keeps the private API stable for callers + tests.
|
|
3407
3443
|
private async readQmdResultMemory(
|
|
3408
3444
|
resultPath: string,
|
|
3409
3445
|
fallbackStorage: StorageManager,
|
|
3410
3446
|
recallNamespaces: readonly string[] = [],
|
|
3447
|
+
preferredNamespace?: string,
|
|
3411
3448
|
): Promise<MemoryFile | null> {
|
|
3412
|
-
return this.qmdResultResolver.readQmdResultMemory(resultPath, fallbackStorage, recallNamespaces);
|
|
3449
|
+
return this.qmdResultResolver.readQmdResultMemory(resultPath, fallbackStorage, recallNamespaces, preferredNamespace);
|
|
3413
3450
|
}
|
|
3414
3451
|
|
|
3415
3452
|
private async resolveColdQmdResultForRecall(
|
|
@@ -3433,18 +3470,20 @@ export class Orchestrator {
|
|
|
3433
3470
|
private async applyMemoryWorthRerank(
|
|
3434
3471
|
results: QmdSearchResult[],
|
|
3435
3472
|
namespaces: string[],
|
|
3473
|
+
preloadedFrontmatter?: ReadonlyMap<string, MemoryFile>,
|
|
3436
3474
|
): Promise<QmdSearchResult[]> {
|
|
3437
|
-
return this.recallRerankCoordinator.applyMemoryWorthRerank(results, namespaces);
|
|
3475
|
+
return this.recallRerankCoordinator.applyMemoryWorthRerank(results, namespaces, preloadedFrontmatter);
|
|
3438
3476
|
}
|
|
3439
3477
|
|
|
3440
3478
|
private async applyTrustScoreRerank(
|
|
3441
3479
|
results: QmdSearchResult[],
|
|
3442
3480
|
namespaces: string[],
|
|
3481
|
+
preloadedFrontmatter?: ReadonlyMap<string, MemoryFile>,
|
|
3443
3482
|
): Promise<{
|
|
3444
3483
|
results: QmdSearchResult[];
|
|
3445
3484
|
trustByPath: Map<string, TrustStageResultItem> | null;
|
|
3446
3485
|
}> {
|
|
3447
|
-
return this.recallRerankCoordinator.applyTrustScoreRerank(results, namespaces);
|
|
3486
|
+
return this.recallRerankCoordinator.applyTrustScoreRerank(results, namespaces, preloadedFrontmatter);
|
|
3448
3487
|
}
|
|
3449
3488
|
|
|
3450
3489
|
private async applyTrustScoreToBranch(
|
|
@@ -3452,11 +3491,20 @@ export class Orchestrator {
|
|
|
3452
3491
|
namespaces: string[],
|
|
3453
3492
|
caps: CapabilitySet,
|
|
3454
3493
|
label: string,
|
|
3494
|
+
preloadedFrontmatter?: ReadonlyMap<string, MemoryFile>,
|
|
3495
|
+
abortSignal?: AbortSignal,
|
|
3455
3496
|
): Promise<{
|
|
3456
3497
|
results: QmdSearchResult[];
|
|
3457
3498
|
trustByPath: Map<string, TrustStageResultItem> | null;
|
|
3458
3499
|
}> {
|
|
3459
|
-
return this.recallRerankCoordinator.applyTrustScoreToBranch(
|
|
3500
|
+
return this.recallRerankCoordinator.applyTrustScoreToBranch(
|
|
3501
|
+
results,
|
|
3502
|
+
namespaces,
|
|
3503
|
+
caps,
|
|
3504
|
+
label,
|
|
3505
|
+
preloadedFrontmatter,
|
|
3506
|
+
abortSignal,
|
|
3507
|
+
);
|
|
3460
3508
|
}
|
|
3461
3509
|
|
|
3462
3510
|
private diversifyAndLimitRecallResults(
|
|
@@ -3485,13 +3533,17 @@ export class Orchestrator {
|
|
|
3485
3533
|
finalContextChars?: number;
|
|
3486
3534
|
truncated?: boolean;
|
|
3487
3535
|
includedSections?: string[];
|
|
3536
|
+
includedMemoryIds?: string[];
|
|
3537
|
+
includedMemoryPaths?: string[];
|
|
3538
|
+
includedMemoryNamespaces?: Array<string | undefined>;
|
|
3539
|
+
omittedMemoryIds?: string[];
|
|
3488
3540
|
omittedSections?: string[];
|
|
3489
3541
|
}): LastRecallBudgetSummary {
|
|
3490
3542
|
return this.recallSectionCoordinator.buildLastRecallBudgetSummary(options);
|
|
3491
3543
|
}
|
|
3492
3544
|
|
|
3493
3545
|
private collectLastRecallSources(
|
|
3494
|
-
sectionBuckets:
|
|
3546
|
+
sectionBuckets: RecallSectionBuckets,
|
|
3495
3547
|
recallSource:
|
|
3496
3548
|
| "none"
|
|
3497
3549
|
| "hot_qmd"
|
|
@@ -3535,34 +3587,7 @@ export class Orchestrator {
|
|
|
3535
3587
|
pathPrefix?: string;
|
|
3536
3588
|
pathExcludePrefixes?: readonly string[];
|
|
3537
3589
|
} {
|
|
3538
|
-
|
|
3539
|
-
const memoryDir = path.resolve(this.config.memoryDir);
|
|
3540
|
-
const storageDir = path.resolve(targetStorage.dir);
|
|
3541
|
-
if (storageDir === memoryDir) {
|
|
3542
|
-
// Default namespace at legacy root. Include everything that isn't
|
|
3543
|
-
// under `namespaces/*` (those belong to other namespaces).
|
|
3544
|
-
return { pathExcludePrefixes: ["namespaces/"] };
|
|
3545
|
-
}
|
|
3546
|
-
let rel = path.relative(memoryDir, storageDir);
|
|
3547
|
-
if (!rel || rel.startsWith("..")) {
|
|
3548
|
-
// Round 12 fix (PR #399 thread PRRT_kwDORJXyws56U6Gj): when
|
|
3549
|
-
// targetStorage.dir is outside memoryDir (custom namespace routing),
|
|
3550
|
-
// toMemoryRelativePath() stores the absolute file path in the index
|
|
3551
|
-
// rather than a memoryDir-relative path. Return the absolute storageDir
|
|
3552
|
-
// as the pathPrefix so the search() filter still scopes the lookup to
|
|
3553
|
-
// the correct tenant's files. Previously this returned {} (no scoping),
|
|
3554
|
-
// which let high-similarity hits from other namespaces' absolute-path
|
|
3555
|
-
// entries suppress writes in the target namespace — a cross-tenant
|
|
3556
|
-
// dedup suppression path.
|
|
3557
|
-
log.debug(
|
|
3558
|
-
`semantic dedup: target storage dir ${storageDir} is outside memoryDir ${memoryDir}; scoping lookup to absolute path prefix`,
|
|
3559
|
-
);
|
|
3560
|
-
const absPrefix = storageDir.replace(/\\/g, "/");
|
|
3561
|
-
return { pathPrefix: absPrefix.endsWith("/") ? absPrefix : `${absPrefix}/` };
|
|
3562
|
-
}
|
|
3563
|
-
rel = rel.replace(/\\/g, "/");
|
|
3564
|
-
if (!rel.endsWith("/")) rel = `${rel}/`;
|
|
3565
|
-
return { pathPrefix: rel };
|
|
3590
|
+
return computeSemanticDedupScope(targetStorage, this.config);
|
|
3566
3591
|
}
|
|
3567
3592
|
|
|
3568
3593
|
private async searchEmbeddingFallback(
|
|
@@ -3645,27 +3670,16 @@ export class Orchestrator {
|
|
|
3645
3670
|
* Record that memories were accessed (retrieved).
|
|
3646
3671
|
* Updates are batched in memory and flushed during consolidation.
|
|
3647
3672
|
*/
|
|
3648
|
-
trackMemoryAccess(
|
|
3649
|
-
|
|
3650
|
-
|
|
3651
|
-
|
|
3652
|
-
|
|
3653
|
-
|
|
3654
|
-
|
|
3655
|
-
|
|
3656
|
-
|
|
3657
|
-
|
|
3658
|
-
}
|
|
3659
|
-
|
|
3660
|
-
// Flush if buffer exceeds max size
|
|
3661
|
-
if (
|
|
3662
|
-
this.accessTrackingBuffer.size >= this.config.accessTrackingBufferMaxSize
|
|
3663
|
-
) {
|
|
3664
|
-
this.trackRecallBackgroundWrite(
|
|
3665
|
-
this.flushAccessTracking(),
|
|
3666
|
-
"background access tracking flush",
|
|
3667
|
-
);
|
|
3668
|
-
}
|
|
3673
|
+
trackMemoryAccess(
|
|
3674
|
+
memoryIds: string[],
|
|
3675
|
+
memoryPaths: string[] = [],
|
|
3676
|
+
memoryNamespaces: Array<string | undefined> = [],
|
|
3677
|
+
): void {
|
|
3678
|
+
this.workspaceOpsCoordinator.trackMemoryAccess(
|
|
3679
|
+
memoryIds,
|
|
3680
|
+
memoryPaths,
|
|
3681
|
+
memoryNamespaces,
|
|
3682
|
+
);
|
|
3669
3683
|
}
|
|
3670
3684
|
|
|
3671
3685
|
async flushAccessTracking(): Promise<void> {
|
|
@@ -3758,15 +3772,10 @@ export class Orchestrator {
|
|
|
3758
3772
|
);
|
|
3759
3773
|
}
|
|
3760
3774
|
|
|
3761
|
-
/**
|
|
3762
|
-
* Extract memory IDs from QMD search results for access tracking.
|
|
3763
|
-
*/
|
|
3764
3775
|
private extractMemoryIdsFromResults(results: QmdSearchResult[]): string[] {
|
|
3765
|
-
// QMD results have paths like /path/to/fact-123.md
|
|
3766
|
-
// Extract the ID from the filename
|
|
3767
3776
|
return results
|
|
3768
3777
|
.map((r) => {
|
|
3769
|
-
const match = r.path.match(/([
|
|
3778
|
+
const match = r.path.match(/([^/\\]+)\.md$/);
|
|
3770
3779
|
return match ? match[1] : null;
|
|
3771
3780
|
})
|
|
3772
3781
|
.filter((id): id is string => id !== null);
|
|
@@ -3800,6 +3809,10 @@ export class Orchestrator {
|
|
|
3800
3809
|
return this.lastRecall.get(sessionKey);
|
|
3801
3810
|
}
|
|
3802
3811
|
|
|
3812
|
+
async drainPendingRecallImpressions() {
|
|
3813
|
+
return this.lastRecall.drainPendingImpressions();
|
|
3814
|
+
}
|
|
3815
|
+
|
|
3803
3816
|
/**
|
|
3804
3817
|
* Issue #1582 — resolve a memory handle (`[m:4f2a]` / bare hex) to its memory
|
|
3805
3818
|
* id against THIS session's recent recall history. Returns the id on a unique
|
|
@@ -3947,7 +3960,6 @@ export class Orchestrator {
|
|
|
3947
3960
|
* and inline-note writes were missing from `writtenSince`/maintenance).
|
|
3948
3961
|
*/
|
|
3949
3962
|
|
|
3950
|
-
|
|
3951
3963
|
// markCatalogRead removed — use storageRouter.recordRead() instead (#1522).
|
|
3952
3964
|
|
|
3953
3965
|
private async readAllMemoriesForNamespaces(
|
|
@@ -3957,7 +3969,6 @@ export class Orchestrator {
|
|
|
3957
3969
|
namespaces,
|
|
3958
3970
|
);
|
|
3959
3971
|
}
|
|
3960
|
-
|
|
3961
3972
|
private async readArchivedMemoriesForNamespaces(
|
|
3962
3973
|
namespaces: string[],
|
|
3963
3974
|
): Promise<MemoryFile[]> {
|