@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
|
@@ -52,9 +52,9 @@ import { createRecallSectionMetricRecorder } from "../recall-qos.js";
|
|
|
52
52
|
import { buildRecallQueryPolicy } from "../recall-query-policy.js";
|
|
53
53
|
import { type GraphRecallExpandedEntry, type LastRecallBudgetSummary, type LastRecallSnapshot, LastRecallStore, RecallHandleHistoryStore } from "../recall-state.js";
|
|
54
54
|
import { type RecallFilterTrace, type RecallXrayResult, type RecallXrayScoreDecomposition, type RecallXraySnapshot, buildXraySnapshot } from "../recall-xray.js";
|
|
55
|
-
import { recordRecallTiming } from "../recall-timings.js";
|
|
55
|
+
import { foldQueueWaitTiming, recordRecallTiming } from "../recall-timings.js";
|
|
56
56
|
import { findUnresolvedEntityRefs } from "../reconstruct.js";
|
|
57
|
-
import { RerankCache, rerankLocalOrNoop } from "../rerank.js";
|
|
57
|
+
import { RerankCache, rerankLocalOrNoop, reorderByRankedKeys } from "../rerank.js";
|
|
58
58
|
import { buildResponseGuidanceRecallSection, shouldRecallResponseGuidance } from "../response-guidance-recall.js";
|
|
59
59
|
import { type ParallelSearchResult, mergeWithAgentResults, runDirectAgent, runTemporalAgent, shouldRunAgent } from "../retrieval-agents.js";
|
|
60
60
|
import { resolveScopePlan } from "../scopes/scope-plan.js";
|
|
@@ -75,6 +75,7 @@ import { type TrustZoneSearchResult, searchTrustZoneRecords } from "../trust-zon
|
|
|
75
75
|
import type { CodingContext, EngramTraceEvent, IdentityInjectionMode, MemoryFile, MemoryIntent, PluginConfig, QmdSearchResult, RecallPlanMode, RecallSectionConfig } from "../types.js";
|
|
76
76
|
import { type VerifiedEpisodeResult, compareVerifiedEpisodeResults, searchVerifiedEpisodes } from "../verified-recall.js";
|
|
77
77
|
import { type WorkProductLedgerSearchResult, searchWorkProductLedgerEntries } from "../work-product-ledger.js";
|
|
78
|
+
import { abortError } from "../abort-error.js";
|
|
78
79
|
import {
|
|
79
80
|
applyQueryAwareCandidateFilter,
|
|
80
81
|
filterRecallCandidates,
|
|
@@ -97,12 +98,18 @@ import {
|
|
|
97
98
|
type RecallInvocationOptions,
|
|
98
99
|
} from "../orchestrator.js";
|
|
99
100
|
|
|
101
|
+
import type {
|
|
102
|
+
RecallSectionAppendOptions,
|
|
103
|
+
RecallSectionBuckets,
|
|
104
|
+
} from "./recall-section-coordinator.js";
|
|
105
|
+
|
|
100
106
|
export interface RecallInternalDeps {
|
|
101
107
|
readonly _recallWorkspaceOverrides: Map<string, string>;
|
|
102
108
|
appendRecallSection(
|
|
103
|
-
sectionBuckets:
|
|
109
|
+
sectionBuckets: RecallSectionBuckets,
|
|
104
110
|
sectionId: string,
|
|
105
111
|
content: string,
|
|
112
|
+
options?: RecallSectionAppendOptions,
|
|
106
113
|
): boolean;
|
|
107
114
|
applyColdFallbackPipeline(options: {
|
|
108
115
|
prompt: string;
|
|
@@ -150,12 +157,14 @@ export interface RecallInternalDeps {
|
|
|
150
157
|
namespaces: string[],
|
|
151
158
|
caps: CapabilitySet,
|
|
152
159
|
label: string,
|
|
160
|
+
preloadedFrontmatter?: ReadonlyMap<string, MemoryFile>,
|
|
161
|
+
abortSignal?: AbortSignal,
|
|
153
162
|
): Promise<{
|
|
154
163
|
results: QmdSearchResult[];
|
|
155
164
|
trustByPath: Map<string, TrustStageResultItem> | null;
|
|
156
165
|
}>;
|
|
157
166
|
assembleRecallSections(
|
|
158
|
-
sectionBuckets:
|
|
167
|
+
sectionBuckets: RecallSectionBuckets,
|
|
159
168
|
budgetOverride?: number,
|
|
160
169
|
): {
|
|
161
170
|
sections: string[];
|
|
@@ -163,6 +172,10 @@ export interface RecallInternalDeps {
|
|
|
163
172
|
omittedIds: string[];
|
|
164
173
|
truncated: boolean;
|
|
165
174
|
finalChars: number;
|
|
175
|
+
includedMemoryIds: string[];
|
|
176
|
+
includedMemoryPaths: string[];
|
|
177
|
+
includedMemoryNamespaces: Array<string | undefined>;
|
|
178
|
+
omittedMemoryIds: string[];
|
|
166
179
|
};
|
|
167
180
|
boostSearchResults(
|
|
168
181
|
results: QmdSearchResult[],
|
|
@@ -211,13 +224,17 @@ export interface RecallInternalDeps {
|
|
|
211
224
|
truncated?: boolean;
|
|
212
225
|
includedSections?: string[];
|
|
213
226
|
omittedSections?: string[];
|
|
227
|
+
includedMemoryIds?: string[];
|
|
228
|
+
includedMemoryPaths?: string[];
|
|
229
|
+
includedMemoryNamespaces?: Array<string | undefined>;
|
|
230
|
+
omittedMemoryIds?: string[];
|
|
214
231
|
}): LastRecallBudgetSummary;
|
|
215
232
|
buildQueryAwarePrefilter(
|
|
216
233
|
prompt: string,
|
|
217
234
|
recallNamespaces: string[],
|
|
218
235
|
): Promise<QueryAwarePrefilter>;
|
|
219
236
|
collectLastRecallSources(
|
|
220
|
-
sectionBuckets:
|
|
237
|
+
sectionBuckets: RecallSectionBuckets,
|
|
221
238
|
recallSource:
|
|
222
239
|
| "none"
|
|
223
240
|
| "hot_qmd"
|
|
@@ -330,6 +347,11 @@ export interface RecallInternalDeps {
|
|
|
330
347
|
): number | undefined;
|
|
331
348
|
getStorage(namespace?: string): Promise<StorageManager>;
|
|
332
349
|
readonly handleHistory: RecallHandleHistoryStore;
|
|
350
|
+
trackMemoryAccess(
|
|
351
|
+
memoryIds: string[],
|
|
352
|
+
memoryPaths?: string[],
|
|
353
|
+
memoryNamespaces?: Array<string | undefined>,
|
|
354
|
+
): void;
|
|
333
355
|
trackRecallBackgroundWrite(promise: Promise<void>, label: string): void;
|
|
334
356
|
isRecallSectionEnabled(
|
|
335
357
|
sectionId: string,
|
|
@@ -349,7 +371,7 @@ export interface RecallInternalDeps {
|
|
|
349
371
|
publishRecallResults(options: {
|
|
350
372
|
title: string;
|
|
351
373
|
results: QmdSearchResult[];
|
|
352
|
-
sectionBuckets:
|
|
374
|
+
sectionBuckets: RecallSectionBuckets;
|
|
353
375
|
retrievalQuery: string;
|
|
354
376
|
sessionKey: string | undefined;
|
|
355
377
|
identityInjection?: {
|
|
@@ -459,7 +481,7 @@ export class RecallInternalCoordinator {
|
|
|
459
481
|
const parsed = Date.parse(options.asOf);
|
|
460
482
|
if (Number.isFinite(parsed)) asOfMs = parsed;
|
|
461
483
|
}
|
|
462
|
-
const timings
|
|
484
|
+
const timings = foldQueueWaitTiming(options.queueWaitMs); // #1906 queue-wait phase
|
|
463
485
|
const profileTraceId = this.deps.profiler.startTrace("recall", sessionKey, {
|
|
464
486
|
qmdEnabled: resolveQmdCapabilities(this.deps.config).qmd,
|
|
465
487
|
rerankEnabled: caps.rerank,
|
|
@@ -536,7 +558,7 @@ export class RecallInternalCoordinator {
|
|
|
536
558
|
.update(`${sessionKey ?? "default"}:${recallStart}:${promptHash}`)
|
|
537
559
|
.digest("hex")
|
|
538
560
|
.slice(0, 16);
|
|
539
|
-
const sectionBuckets = new Map
|
|
561
|
+
const sectionBuckets: RecallSectionBuckets = new Map();
|
|
540
562
|
// The effective LCM read session_id SET is computed below from
|
|
541
563
|
// `recallNamespaces` (the SAME read-authorized namespace set normal QMD/file
|
|
542
564
|
// recall searches, incl. coding `readFallbacks`). See the
|
|
@@ -554,7 +576,6 @@ export class RecallInternalCoordinator {
|
|
|
554
576
|
.update(retrievalQuery)
|
|
555
577
|
.digest("hex");
|
|
556
578
|
const policyVersion = this.deps.currentPolicyVersion();
|
|
557
|
-
let impressionRecorded = false;
|
|
558
579
|
let recallSource:
|
|
559
580
|
| "none"
|
|
560
581
|
| "hot_qmd"
|
|
@@ -564,6 +585,7 @@ export class RecallInternalCoordinator {
|
|
|
564
585
|
let recalledMemoryCount = 0;
|
|
565
586
|
let recalledMemoryIds: string[] = [];
|
|
566
587
|
let recalledMemoryPaths: string[] = [];
|
|
588
|
+
let recalledMemoryNamespaces: Array<string | undefined> = [];
|
|
567
589
|
// Boosted QmdSearchResult array for the serving branch (issue #687 PR 3/4).
|
|
568
590
|
// Populated alongside recalledMemoryPaths so the X-ray capture can read
|
|
569
591
|
// per-result explain data (e.g. reinforcementBoost) from the result that
|
|
@@ -2531,6 +2553,7 @@ export class RecallInternalCoordinator {
|
|
|
2531
2553
|
retrievalQuery,
|
|
2532
2554
|
memoryDir,
|
|
2533
2555
|
maxPerAgent,
|
|
2556
|
+
(p) => this.deps.namespaceFromPath(p),
|
|
2534
2557
|
).catch((err) => {
|
|
2535
2558
|
log.debug(`DirectAgent pre-start failed: ${err}`);
|
|
2536
2559
|
return [] as ParallelSearchResult[];
|
|
@@ -2540,7 +2563,7 @@ export class RecallInternalCoordinator {
|
|
|
2540
2563
|
const merged: ParallelSearchResult[] = [];
|
|
2541
2564
|
const seen = new Set<string>();
|
|
2542
2565
|
for (const result of groups.flat()) {
|
|
2543
|
-
const key = (result as any).path ?? JSON.stringify(result)
|
|
2566
|
+
const key = `${(result as any).namespace ?? ""}\0${(result as any).path ?? JSON.stringify(result)}`;
|
|
2544
2567
|
if (seen.has(key)) continue;
|
|
2545
2568
|
seen.add(key);
|
|
2546
2569
|
merged.push(result);
|
|
@@ -2558,6 +2581,7 @@ export class RecallInternalCoordinator {
|
|
|
2558
2581
|
memoryDir,
|
|
2559
2582
|
maxPerAgent,
|
|
2560
2583
|
queryAwarePrefilter.candidatePaths,
|
|
2584
|
+
(p) => this.deps.namespaceFromPath(p),
|
|
2561
2585
|
).catch((err) => {
|
|
2562
2586
|
log.debug(`TemporalAgent pre-start failed for ${memoryDir}: ${err}`);
|
|
2563
2587
|
return [] as ParallelSearchResult[];
|
|
@@ -2567,7 +2591,7 @@ export class RecallInternalCoordinator {
|
|
|
2567
2591
|
const merged: ParallelSearchResult[] = [];
|
|
2568
2592
|
const seen = new Set<string>();
|
|
2569
2593
|
for (const result of groups.flat()) {
|
|
2570
|
-
const key = (result as any).path ?? JSON.stringify(result)
|
|
2594
|
+
const key = `${(result as any).namespace ?? ""}\0${(result as any).path ?? JSON.stringify(result)}`;
|
|
2571
2595
|
if (seen.has(key)) continue;
|
|
2572
2596
|
seen.add(key);
|
|
2573
2597
|
merged.push(result);
|
|
@@ -2636,6 +2660,8 @@ export class RecallInternalCoordinator {
|
|
|
2636
2660
|
this.deps.config.parallelAgentWeights,
|
|
2637
2661
|
qmdFetchLimit + lifecycleHeadroom,
|
|
2638
2662
|
this.deps.config.memoryDir,
|
|
2663
|
+
// Derive agent-hit namespace so a same (namespace,path) memory merges once (#2020).
|
|
2664
|
+
(p) => this.deps.namespaceFromPath(p),
|
|
2639
2665
|
);
|
|
2640
2666
|
}
|
|
2641
2667
|
} catch (err) {
|
|
@@ -3409,7 +3435,7 @@ export class RecallInternalCoordinator {
|
|
|
3409
3435
|
|
|
3410
3436
|
const awaitAssemblyStep = async <T>(
|
|
3411
3437
|
name: string,
|
|
3412
|
-
task: () => Promise<T>,
|
|
3438
|
+
task: (stepSignal: AbortSignal) => Promise<T>,
|
|
3413
3439
|
fallback: T,
|
|
3414
3440
|
): Promise<T> => {
|
|
3415
3441
|
if (options.abortSignal?.aborted) {
|
|
@@ -3428,11 +3454,23 @@ export class RecallInternalCoordinator {
|
|
|
3428
3454
|
return fallback;
|
|
3429
3455
|
}
|
|
3430
3456
|
|
|
3457
|
+
// Task-level deadline abort (#1907): give the step a child controller and
|
|
3458
|
+
// pass its signal into the task so the losing task cooperatively stops
|
|
3459
|
+
// instead of running to completion on the daemon thread after the race is
|
|
3460
|
+
// lost. Compose with the request signal so a client disconnect ALSO stops
|
|
3461
|
+
// the step's cooperative reads. This step controller only maps to the
|
|
3462
|
+
// step's `fallback` (fail-open, rule 41); it never rejects the recall —
|
|
3463
|
+
// a request-level abort rejects at the next throwIfRecallAborted boundary.
|
|
3464
|
+
const stepController = new AbortController();
|
|
3465
|
+
const stepSignal = options.abortSignal
|
|
3466
|
+
? AbortSignal.any([options.abortSignal, stepController.signal])
|
|
3467
|
+
: stepController.signal;
|
|
3468
|
+
|
|
3431
3469
|
let timeoutHandle: NodeJS.Timeout | undefined;
|
|
3432
3470
|
try {
|
|
3433
3471
|
const result = await (timeoutMs !== null
|
|
3434
3472
|
? Promise.race<T | { status: "timed_out" }>([
|
|
3435
|
-
task(),
|
|
3473
|
+
task(stepSignal),
|
|
3436
3474
|
new Promise<{ status: "timed_out" }>((resolve) => {
|
|
3437
3475
|
timeoutHandle = setTimeout(
|
|
3438
3476
|
() => resolve({ status: "timed_out" }),
|
|
@@ -3440,14 +3478,15 @@ export class RecallInternalCoordinator {
|
|
|
3440
3478
|
);
|
|
3441
3479
|
}),
|
|
3442
3480
|
])
|
|
3443
|
-
: task());
|
|
3481
|
+
: task(stepSignal));
|
|
3444
3482
|
if (timeoutHandle) clearTimeout(timeoutHandle);
|
|
3445
3483
|
if (
|
|
3446
3484
|
typeof result === "object" &&
|
|
3447
3485
|
result !== null &&
|
|
3448
3486
|
"status" in result &&
|
|
3449
|
-
|
|
3487
|
+
result.status === "timed_out"
|
|
3450
3488
|
) {
|
|
3489
|
+
stepController.abort(abortError(`recall assembly [${name}] deadline exceeded`));
|
|
3451
3490
|
log.debug(
|
|
3452
3491
|
`recall phase-1 assembly [${name}]: timed out within shared ${enrichmentSectionDeadlineMs}ms budget ` +
|
|
3453
3492
|
`at +${Date.now() - phase1Start}ms`,
|
|
@@ -3457,6 +3496,7 @@ export class RecallInternalCoordinator {
|
|
|
3457
3496
|
return result as T;
|
|
3458
3497
|
} catch (err) {
|
|
3459
3498
|
if (timeoutHandle) clearTimeout(timeoutHandle);
|
|
3499
|
+
stepController.abort(abortError(`recall assembly [${name}] failed`));
|
|
3460
3500
|
log.warn(
|
|
3461
3501
|
`recall phase-1 assembly [${name}] failed open: ${
|
|
3462
3502
|
err instanceof Error ? err.message : String(err)
|
|
@@ -4109,7 +4149,7 @@ export class RecallInternalCoordinator {
|
|
|
4109
4149
|
maxSpecializedScore,
|
|
4110
4150
|
} = qmdResult;
|
|
4111
4151
|
|
|
4112
|
-
// Merge/dedupe by path; keep the best score and first non-empty snippet.
|
|
4152
|
+
// Merge/dedupe by namespace and path; keep the best score and first non-empty snippet.
|
|
4113
4153
|
const memoryResultsRaw = mergeGraphExpandedResults(
|
|
4114
4154
|
memoryResultsLists.flat(),
|
|
4115
4155
|
[],
|
|
@@ -4117,11 +4157,9 @@ export class RecallInternalCoordinator {
|
|
|
4117
4157
|
|
|
4118
4158
|
let memoryResults = memoryResultsRaw;
|
|
4119
4159
|
|
|
4120
|
-
// Enforce namespace read policies by filtering paths.
|
|
4121
4160
|
if (resolveNamespaceCapabilities(this.deps.config).namespaces) {
|
|
4122
4161
|
memoryResults = memoryResults.filter((r) =>
|
|
4123
|
-
recallNamespaces.includes(this.deps.namespaceFromPath(r.path))
|
|
4124
|
-
);
|
|
4162
|
+
recallNamespaces.includes(r.namespace ?? this.deps.namespaceFromPath(r.path)));
|
|
4125
4163
|
}
|
|
4126
4164
|
// Artifacts are injected through dedicated verbatim recall flow only.
|
|
4127
4165
|
memoryResults = memoryResults.filter(
|
|
@@ -4297,12 +4335,14 @@ export class RecallInternalCoordinator {
|
|
|
4297
4335
|
|
|
4298
4336
|
// Optional LLM reranking (default off). Fail-open if rerank fails/slow.
|
|
4299
4337
|
if (caps.rerank && this.deps.config.rerankProvider === "local") {
|
|
4338
|
+
// (namespace, path) id so cross-namespace same-path hits don't collapse; LLM-safe + cache-stable (#2020).
|
|
4339
|
+
const rerankId = (r: QmdSearchResult): string => `${r.namespace ?? ""}|${r.path}`;
|
|
4300
4340
|
const ranked = await rerankLocalOrNoop({
|
|
4301
4341
|
query: retrievalQuery,
|
|
4302
4342
|
candidates: memoryResults
|
|
4303
4343
|
.slice(0, this.deps.config.rerankMaxCandidates)
|
|
4304
4344
|
.map((r) => ({
|
|
4305
|
-
id: r
|
|
4345
|
+
id: rerankId(r),
|
|
4306
4346
|
snippet: r.snippet || r.path,
|
|
4307
4347
|
})),
|
|
4308
4348
|
local: this.deps.fastLlmForRerank,
|
|
@@ -4314,18 +4354,7 @@ export class RecallInternalCoordinator {
|
|
|
4314
4354
|
cacheTtlMs: this.deps.config.rerankCacheTtlMs,
|
|
4315
4355
|
});
|
|
4316
4356
|
if (ranked && ranked.length > 0) {
|
|
4317
|
-
|
|
4318
|
-
const reordered: QmdSearchResult[] = [];
|
|
4319
|
-
for (const p of ranked) {
|
|
4320
|
-
const it = byPath.get(p);
|
|
4321
|
-
if (it) reordered.push(it);
|
|
4322
|
-
}
|
|
4323
|
-
// Append any unranked items in original order.
|
|
4324
|
-
const rankedSet = new Set(ranked);
|
|
4325
|
-
for (const r of memoryResults) {
|
|
4326
|
-
if (!rankedSet.has(r.path)) reordered.push(r);
|
|
4327
|
-
}
|
|
4328
|
-
memoryResults = reordered;
|
|
4357
|
+
memoryResults = reorderByRankedKeys(memoryResults, ranked, rerankId);
|
|
4329
4358
|
}
|
|
4330
4359
|
}
|
|
4331
4360
|
if (caps.rerank && this.deps.config.rerankProvider === "cloud") {
|
|
@@ -4340,14 +4369,43 @@ export class RecallInternalCoordinator {
|
|
|
4340
4369
|
// EVERY recall path via applyTrustScoreToBranch so the gate is consistent
|
|
4341
4370
|
// (rule 41 parity). Fail-open on lookup errors so recall never breaks.
|
|
4342
4371
|
{
|
|
4343
|
-
|
|
4344
|
-
|
|
4345
|
-
|
|
4346
|
-
|
|
4347
|
-
|
|
4372
|
+
// Deadline-bound the trust stage (issue #1905): a slow corpus scan must
|
|
4373
|
+
// not outrun the shared enrichment-assembly budget (the source of the
|
|
4374
|
+
// 17s qmdPost outliers). On timeout/abort/error the fallback returns
|
|
4375
|
+
// the inputs unchanged — the stage is already documented fail-open.
|
|
4376
|
+
// Pass the frontmatter already loaded by the safety filter so the stage
|
|
4377
|
+
// does O(candidates) work instead of a full-corpus scan.
|
|
4378
|
+
const trustT0 = Date.now();
|
|
4379
|
+
// The fallback is a distinct object: identity-comparing the outcome to
|
|
4380
|
+
// it detects a deadline/abort/error fallback so the metric records the
|
|
4381
|
+
// truth. awaitAssemblyStep injects a step signal that aborts the losing
|
|
4382
|
+
// task on deadline (or when the request disconnects), so an orphaned
|
|
4383
|
+
// corpus scan stops at its next loop boundary (#1905/#1907).
|
|
4384
|
+
const trustFallback = { results: memoryResults, trustByPath: recallTrustByPath };
|
|
4385
|
+
const trustOutcome = await awaitAssemblyStep(
|
|
4386
|
+
"trustStage",
|
|
4387
|
+
(stepSignal) =>
|
|
4388
|
+
this.deps.applyTrustScoreToBranch(
|
|
4389
|
+
memoryResults,
|
|
4390
|
+
recallNamespaces,
|
|
4391
|
+
caps,
|
|
4392
|
+
"hot-qmd",
|
|
4393
|
+
qmdBoostInput.memoryByPath,
|
|
4394
|
+
stepSignal,
|
|
4395
|
+
),
|
|
4396
|
+
trustFallback,
|
|
4348
4397
|
);
|
|
4398
|
+
const trustFellBack = trustOutcome === trustFallback;
|
|
4349
4399
|
memoryResults = trustOutcome.results;
|
|
4350
4400
|
recallTrustByPath = trustOutcome.trustByPath;
|
|
4401
|
+
recordRecallSectionMetric({
|
|
4402
|
+
section: "trustStage",
|
|
4403
|
+
priority: "enrichment",
|
|
4404
|
+
durationMs: Date.now() - trustT0,
|
|
4405
|
+
deadlineMs: enrichmentSectionDeadlineMs,
|
|
4406
|
+
source: "fresh",
|
|
4407
|
+
success: !trustFellBack,
|
|
4408
|
+
});
|
|
4351
4409
|
}
|
|
4352
4410
|
|
|
4353
4411
|
// Synapse-inspired confidence gate: check scores BEFORE slicing so
|
|
@@ -4466,12 +4524,10 @@ export class RecallInternalCoordinator {
|
|
|
4466
4524
|
},
|
|
4467
4525
|
trustByPath: recallTrustByPath,
|
|
4468
4526
|
});
|
|
4469
|
-
recalledMemoryIds = this.deps.extractMemoryIdsFromResults(memoryResults);
|
|
4470
4527
|
recalledMemoryPaths = memoryResults
|
|
4471
4528
|
.map((result) => result.path)
|
|
4472
4529
|
.filter(Boolean);
|
|
4473
4530
|
xrayRecalledResults = memoryResults;
|
|
4474
|
-
impressionRecorded = true;
|
|
4475
4531
|
} else if (!confidenceGateRejected) {
|
|
4476
4532
|
// Only attempt fallback paths if the confidence gate did NOT fire.
|
|
4477
4533
|
// When the gate rejects, all recall pathways are skipped to prevent
|
|
@@ -4524,14 +4580,36 @@ export class RecallInternalCoordinator {
|
|
|
4524
4580
|
// Issue #1577 — apply TrustScore on the embedding-fallback path so the
|
|
4525
4581
|
// feature gate is consistent across ALL recall paths (rule 41 parity).
|
|
4526
4582
|
{
|
|
4527
|
-
|
|
4528
|
-
|
|
4529
|
-
|
|
4530
|
-
|
|
4531
|
-
|
|
4583
|
+
// Deadline-bound (issue #1905). This branch has no preloaded
|
|
4584
|
+
// frontmatter map (boost ran without one), so pass undefined and let
|
|
4585
|
+
// the stage's corpus/direct-read fallback cover it — identical lookup
|
|
4586
|
+
// semantics (rule 41 parity).
|
|
4587
|
+
const trustT0 = Date.now();
|
|
4588
|
+
const trustFallback = { results: scoped, trustByPath: recallTrustByPath };
|
|
4589
|
+
const trustOutcome = await awaitAssemblyStep(
|
|
4590
|
+
"trustStage",
|
|
4591
|
+
(stepSignal) =>
|
|
4592
|
+
this.deps.applyTrustScoreToBranch(
|
|
4593
|
+
scoped,
|
|
4594
|
+
recallNamespaces,
|
|
4595
|
+
caps,
|
|
4596
|
+
"embedding-fallback",
|
|
4597
|
+
undefined,
|
|
4598
|
+
stepSignal,
|
|
4599
|
+
),
|
|
4600
|
+
trustFallback,
|
|
4532
4601
|
);
|
|
4602
|
+
const trustFellBack = trustOutcome === trustFallback;
|
|
4533
4603
|
scoped = trustOutcome.results;
|
|
4534
4604
|
recallTrustByPath = trustOutcome.trustByPath;
|
|
4605
|
+
recordRecallSectionMetric({
|
|
4606
|
+
section: "trustStage",
|
|
4607
|
+
priority: "enrichment",
|
|
4608
|
+
durationMs: Date.now() - trustT0,
|
|
4609
|
+
deadlineMs: enrichmentSectionDeadlineMs,
|
|
4610
|
+
source: "fresh",
|
|
4611
|
+
success: !trustFellBack,
|
|
4612
|
+
});
|
|
4535
4613
|
}
|
|
4536
4614
|
if (scoped.length > 0) {
|
|
4537
4615
|
if (shouldPersistGraphSnapshot) {
|
|
@@ -4555,12 +4633,10 @@ export class RecallInternalCoordinator {
|
|
|
4555
4633
|
},
|
|
4556
4634
|
trustByPath: recallTrustByPath,
|
|
4557
4635
|
});
|
|
4558
|
-
recalledMemoryIds = this.deps.extractMemoryIdsFromResults(scoped);
|
|
4559
4636
|
recalledMemoryPaths = scoped
|
|
4560
4637
|
.map((result) => result.path)
|
|
4561
4638
|
.filter(Boolean);
|
|
4562
4639
|
xrayRecalledResults = scoped;
|
|
4563
|
-
impressionRecorded = true;
|
|
4564
4640
|
} else {
|
|
4565
4641
|
const longTerm = await this.deps.applyColdFallbackPipeline({
|
|
4566
4642
|
prompt: retrievalQuery,
|
|
@@ -4606,12 +4682,10 @@ export class RecallInternalCoordinator {
|
|
|
4606
4682
|
},
|
|
4607
4683
|
trustByPath: recallTrustByPath,
|
|
4608
4684
|
});
|
|
4609
|
-
recalledMemoryIds = this.deps.extractMemoryIdsFromResults(longTerm);
|
|
4610
4685
|
recalledMemoryPaths = longTerm
|
|
4611
4686
|
.map((result) => result.path)
|
|
4612
4687
|
.filter(Boolean);
|
|
4613
4688
|
xrayRecalledResults = longTerm;
|
|
4614
|
-
impressionRecorded = true;
|
|
4615
4689
|
}
|
|
4616
4690
|
}
|
|
4617
4691
|
}
|
|
@@ -4703,14 +4777,33 @@ export class RecallInternalCoordinator {
|
|
|
4703
4777
|
// Issue #1577 — apply TrustScore on the embedding-fallback path so the
|
|
4704
4778
|
// feature gate is consistent across ALL recall paths (rule 41 parity).
|
|
4705
4779
|
{
|
|
4706
|
-
|
|
4707
|
-
|
|
4708
|
-
|
|
4709
|
-
|
|
4710
|
-
"
|
|
4780
|
+
// Deadline-bound (issue #1905); no preloaded map on this branch.
|
|
4781
|
+
const trustT0 = Date.now();
|
|
4782
|
+
const trustFallback = { results: scoped, trustByPath: recallTrustByPath };
|
|
4783
|
+
const trustOutcome = await awaitAssemblyStep(
|
|
4784
|
+
"trustStage",
|
|
4785
|
+
(stepSignal) =>
|
|
4786
|
+
this.deps.applyTrustScoreToBranch(
|
|
4787
|
+
scoped,
|
|
4788
|
+
recallNamespaces,
|
|
4789
|
+
caps,
|
|
4790
|
+
"embedding-fallback",
|
|
4791
|
+
undefined,
|
|
4792
|
+
stepSignal,
|
|
4793
|
+
),
|
|
4794
|
+
trustFallback,
|
|
4711
4795
|
);
|
|
4796
|
+
const trustFellBack = trustOutcome === trustFallback;
|
|
4712
4797
|
scoped = trustOutcome.results;
|
|
4713
4798
|
recallTrustByPath = trustOutcome.trustByPath;
|
|
4799
|
+
recordRecallSectionMetric({
|
|
4800
|
+
section: "trustStage",
|
|
4801
|
+
priority: "enrichment",
|
|
4802
|
+
durationMs: Date.now() - trustT0,
|
|
4803
|
+
deadlineMs: enrichmentSectionDeadlineMs,
|
|
4804
|
+
source: "fresh",
|
|
4805
|
+
success: !trustFellBack,
|
|
4806
|
+
});
|
|
4714
4807
|
}
|
|
4715
4808
|
if (scoped.length > 0) {
|
|
4716
4809
|
if (shouldPersistGraphSnapshot) {
|
|
@@ -4734,12 +4827,10 @@ export class RecallInternalCoordinator {
|
|
|
4734
4827
|
},
|
|
4735
4828
|
trustByPath: recallTrustByPath,
|
|
4736
4829
|
});
|
|
4737
|
-
recalledMemoryIds = this.deps.extractMemoryIdsFromResults(scoped);
|
|
4738
4830
|
recalledMemoryPaths = scoped
|
|
4739
4831
|
.map((result) => result.path)
|
|
4740
4832
|
.filter(Boolean);
|
|
4741
4833
|
xrayRecalledResults = scoped;
|
|
4742
|
-
impressionRecorded = true;
|
|
4743
4834
|
} else {
|
|
4744
4835
|
const memories = await awaitAssemblyStep(
|
|
4745
4836
|
"recent-memory-read",
|
|
@@ -4845,12 +4936,10 @@ export class RecallInternalCoordinator {
|
|
|
4845
4936
|
},
|
|
4846
4937
|
trustByPath: recallTrustByPath,
|
|
4847
4938
|
});
|
|
4848
|
-
recalledMemoryIds = this.deps.extractMemoryIdsFromResults(longTerm);
|
|
4849
4939
|
recalledMemoryPaths = longTerm
|
|
4850
4940
|
.map((result) => result.path)
|
|
4851
4941
|
.filter(Boolean);
|
|
4852
4942
|
xrayRecalledResults = longTerm;
|
|
4853
|
-
impressionRecorded = true;
|
|
4854
4943
|
}
|
|
4855
4944
|
} else {
|
|
4856
4945
|
let recent = await awaitAssemblyStep(
|
|
@@ -4870,6 +4959,7 @@ export class RecallInternalCoordinator {
|
|
|
4870
4959
|
(m, i) => ({
|
|
4871
4960
|
docid: m.frontmatter.id,
|
|
4872
4961
|
path: m.path,
|
|
4962
|
+
namespace: this.deps.namespaceFromPath(m.path),
|
|
4873
4963
|
snippet: m.content,
|
|
4874
4964
|
score: 1.0 - i / Math.max(recentSorted.length, 1),
|
|
4875
4965
|
}),
|
|
@@ -4902,14 +4992,39 @@ export class RecallInternalCoordinator {
|
|
|
4902
4992
|
// Issue #1577 — apply TrustScore on the recent-scan path so the
|
|
4903
4993
|
// feature gate is consistent across ALL recall paths (rule 41).
|
|
4904
4994
|
{
|
|
4905
|
-
|
|
4906
|
-
|
|
4907
|
-
|
|
4908
|
-
|
|
4909
|
-
|
|
4995
|
+
// Deadline-bound (issue #1905). The recent-scan branch already
|
|
4996
|
+
// loaded every candidate's MemoryFile (queryAwareScopedMemories),
|
|
4997
|
+
// so hand that frontmatter to the stage as the preloaded map —
|
|
4998
|
+
// the trust/memory-worth lookup then does zero corpus scans.
|
|
4999
|
+
const trustT0 = Date.now();
|
|
5000
|
+
const recentPreloaded = new Map<string, MemoryFile>(
|
|
5001
|
+
queryAwareScopedMemories.filter((m) => m.path).map((m) => [m.path, m]),
|
|
5002
|
+
);
|
|
5003
|
+
const trustFallback = { results: recent, trustByPath: recallTrustByPath };
|
|
5004
|
+
const trustOutcome = await awaitAssemblyStep(
|
|
5005
|
+
"trustStage",
|
|
5006
|
+
(stepSignal) =>
|
|
5007
|
+
this.deps.applyTrustScoreToBranch(
|
|
5008
|
+
recent,
|
|
5009
|
+
recallNamespaces,
|
|
5010
|
+
caps,
|
|
5011
|
+
"recent-scan",
|
|
5012
|
+
recentPreloaded,
|
|
5013
|
+
stepSignal,
|
|
5014
|
+
),
|
|
5015
|
+
trustFallback,
|
|
4910
5016
|
);
|
|
5017
|
+
const trustFellBack = trustOutcome === trustFallback;
|
|
4911
5018
|
recent = trustOutcome.results;
|
|
4912
5019
|
recallTrustByPath = trustOutcome.trustByPath;
|
|
5020
|
+
recordRecallSectionMetric({
|
|
5021
|
+
section: "trustStage",
|
|
5022
|
+
priority: "enrichment",
|
|
5023
|
+
durationMs: Date.now() - trustT0,
|
|
5024
|
+
deadlineMs: enrichmentSectionDeadlineMs,
|
|
5025
|
+
source: "fresh",
|
|
5026
|
+
success: !trustFellBack,
|
|
5027
|
+
});
|
|
4913
5028
|
}
|
|
4914
5029
|
|
|
4915
5030
|
if (recent.length > 0) {
|
|
@@ -4934,12 +5049,10 @@ export class RecallInternalCoordinator {
|
|
|
4934
5049
|
},
|
|
4935
5050
|
trustByPath: recallTrustByPath,
|
|
4936
5051
|
});
|
|
4937
|
-
recalledMemoryIds = this.deps.extractMemoryIdsFromResults(recent);
|
|
4938
5052
|
recalledMemoryPaths = recent
|
|
4939
5053
|
.map((result) => result.path)
|
|
4940
5054
|
.filter(Boolean);
|
|
4941
5055
|
xrayRecalledResults = recent;
|
|
4942
|
-
impressionRecorded = true;
|
|
4943
5056
|
} else {
|
|
4944
5057
|
const longTerm = await this.deps.applyColdFallbackPipeline({
|
|
4945
5058
|
prompt: retrievalQuery,
|
|
@@ -4984,12 +5097,10 @@ export class RecallInternalCoordinator {
|
|
|
4984
5097
|
},
|
|
4985
5098
|
trustByPath: recallTrustByPath,
|
|
4986
5099
|
});
|
|
4987
|
-
recalledMemoryIds = this.deps.extractMemoryIdsFromResults(longTerm);
|
|
4988
5100
|
recalledMemoryPaths = longTerm
|
|
4989
5101
|
.map((result) => result.path)
|
|
4990
5102
|
.filter(Boolean);
|
|
4991
5103
|
xrayRecalledResults = longTerm;
|
|
4992
|
-
impressionRecorded = true;
|
|
4993
5104
|
}
|
|
4994
5105
|
}
|
|
4995
5106
|
}
|
|
@@ -5036,12 +5147,10 @@ export class RecallInternalCoordinator {
|
|
|
5036
5147
|
},
|
|
5037
5148
|
trustByPath: recallTrustByPath,
|
|
5038
5149
|
});
|
|
5039
|
-
recalledMemoryIds = this.deps.extractMemoryIdsFromResults(longTerm);
|
|
5040
5150
|
recalledMemoryPaths = longTerm
|
|
5041
5151
|
.map((result) => result.path)
|
|
5042
5152
|
.filter(Boolean);
|
|
5043
5153
|
xrayRecalledResults = longTerm;
|
|
5044
|
-
impressionRecorded = true;
|
|
5045
5154
|
}
|
|
5046
5155
|
}
|
|
5047
5156
|
}
|
|
@@ -5214,6 +5323,15 @@ export class RecallInternalCoordinator {
|
|
|
5214
5323
|
sectionBuckets,
|
|
5215
5324
|
options.budgetCharsOverride,
|
|
5216
5325
|
);
|
|
5326
|
+
recalledMemoryIds = assembledRecall.includedMemoryIds;
|
|
5327
|
+
recalledMemoryPaths = assembledRecall.includedMemoryPaths;
|
|
5328
|
+
recalledMemoryNamespaces = assembledRecall.includedMemoryNamespaces;
|
|
5329
|
+
recalledMemoryCount = assembledRecall.includedMemoryIds.length;
|
|
5330
|
+
this.deps.trackMemoryAccess(
|
|
5331
|
+
assembledRecall.includedMemoryIds,
|
|
5332
|
+
assembledRecall.includedMemoryPaths,
|
|
5333
|
+
assembledRecall.includedMemoryNamespaces,
|
|
5334
|
+
);
|
|
5217
5335
|
const context =
|
|
5218
5336
|
assembledRecall.sections.length === 0
|
|
5219
5337
|
? ""
|
|
@@ -5231,6 +5349,10 @@ export class RecallInternalCoordinator {
|
|
|
5231
5349
|
truncated: assembledRecall.truncated,
|
|
5232
5350
|
includedSections: assembledRecall.includedIds,
|
|
5233
5351
|
omittedSections: assembledRecall.omittedIds,
|
|
5352
|
+
includedMemoryIds: assembledRecall.includedMemoryIds,
|
|
5353
|
+
includedMemoryPaths: assembledRecall.includedMemoryPaths,
|
|
5354
|
+
includedMemoryNamespaces: assembledRecall.includedMemoryNamespaces,
|
|
5355
|
+
omittedMemoryIds: assembledRecall.omittedMemoryIds,
|
|
5234
5356
|
});
|
|
5235
5357
|
|
|
5236
5358
|
// X-ray capture (issue #570 PR 1). Only fires when the caller
|
|
@@ -5260,20 +5382,23 @@ export class RecallInternalCoordinator {
|
|
|
5260
5382
|
// from the path here guarantees `memoryId` and `path` refer to
|
|
5261
5383
|
// the same underlying result.
|
|
5262
5384
|
const idFromPath = (p: string): string | null => {
|
|
5263
|
-
const match = p.match(/([
|
|
5385
|
+
const match = p.match(/([^/\\]+)\.md$/);
|
|
5264
5386
|
return match ? match[1] ?? null : null;
|
|
5265
5387
|
};
|
|
5266
5388
|
// Build a path → QmdSearchResult index so we can pull per-result
|
|
5267
5389
|
// explain data (e.g. reinforcementBoost) from the result that
|
|
5268
5390
|
// boostSearchResults annotated before surfacing to xray.
|
|
5269
5391
|
const xrayResultByPath = new Map<string, QmdSearchResult>(
|
|
5270
|
-
xrayRecalledResults.map((xr) => [xr.path
|
|
5392
|
+
xrayRecalledResults.map((xr) => [`${xr.namespace ?? ""}\0${xr.path}`, xr]),
|
|
5271
5393
|
);
|
|
5272
5394
|
const results: RecallXrayResult[] = [];
|
|
5273
|
-
for (
|
|
5395
|
+
for (let xrayIdx = 0; xrayIdx < recalledMemoryPaths.length; xrayIdx += 1) {
|
|
5396
|
+
const recalledPath = recalledMemoryPaths[xrayIdx]!;
|
|
5397
|
+
// Namespace from the aligned capture array, not re-derived from a relative path (#2020).
|
|
5398
|
+
const recalledNamespace = recalledMemoryNamespaces[xrayIdx];
|
|
5274
5399
|
const derivedId = idFromPath(recalledPath);
|
|
5275
5400
|
if (!derivedId) continue;
|
|
5276
|
-
const xrayResult = xrayResultByPath.get(recalledPath);
|
|
5401
|
+
const xrayResult = xrayResultByPath.get(`${recalledNamespace ?? ""}\0${recalledPath}`);
|
|
5277
5402
|
const scoreDecomposition: RecallXrayScoreDecomposition = {
|
|
5278
5403
|
final: xrayResult?.score ?? 0,
|
|
5279
5404
|
};
|
|
@@ -5284,7 +5409,7 @@ export class RecallInternalCoordinator {
|
|
|
5284
5409
|
scoreDecomposition.reinforcementBoost =
|
|
5285
5410
|
xrayResult.explain.reinforcementBoost;
|
|
5286
5411
|
}
|
|
5287
|
-
const resultNamespace = this.deps.namespaceFromPath(recalledPath);
|
|
5412
|
+
const resultNamespace = recalledNamespace ?? this.deps.namespaceFromPath(recalledPath);
|
|
5288
5413
|
let provenance: RecallXrayResult["provenance"] | undefined;
|
|
5289
5414
|
let sourceSpan: RecallXrayResult["sourceSpan"] | undefined;
|
|
5290
5415
|
try {
|
|
@@ -5313,7 +5438,9 @@ export class RecallInternalCoordinator {
|
|
|
5313
5438
|
// X-ray capture is best-effort; missing provenance must not
|
|
5314
5439
|
// perturb recall or suppress the surfaced result.
|
|
5315
5440
|
}
|
|
5316
|
-
const trustItem =
|
|
5441
|
+
const trustItem =
|
|
5442
|
+
recallTrustByPath?.get(JSON.stringify([recalledNamespace ?? "", recalledPath])) ??
|
|
5443
|
+
recallTrustByPath?.get(recalledPath);
|
|
5317
5444
|
results.push({
|
|
5318
5445
|
memoryId: derivedId,
|
|
5319
5446
|
path: recalledPath,
|
|
@@ -5331,13 +5458,14 @@ export class RecallInternalCoordinator {
|
|
|
5331
5458
|
// must never look like "no result"). These are NOT in recalledMemoryPaths
|
|
5332
5459
|
// (they were excluded from injection) but ARE in the trust map.
|
|
5333
5460
|
if (recallTrustByPath) {
|
|
5334
|
-
for (const
|
|
5335
|
-
|
|
5336
|
-
|
|
5461
|
+
for (const qItem of recallTrustByPath.values()) {
|
|
5462
|
+
// Map is keyed by composite trustResultKey; read the plain path from the item (#2020).
|
|
5463
|
+
if (!qItem.quarantined || recalledMemoryPaths.includes(qItem.path)) continue;
|
|
5464
|
+
const qId = idFromPath(qItem.path);
|
|
5337
5465
|
if (!qId) continue;
|
|
5338
5466
|
results.push({
|
|
5339
5467
|
memoryId: qId,
|
|
5340
|
-
path:
|
|
5468
|
+
path: qItem.path,
|
|
5341
5469
|
servedBy,
|
|
5342
5470
|
scoreDecomposition: { final: 0 },
|
|
5343
5471
|
admittedBy: [],
|
|
@@ -5445,9 +5573,9 @@ export class RecallInternalCoordinator {
|
|
|
5445
5573
|
budgetsApplied,
|
|
5446
5574
|
latencyMs: Date.now() - recallStart,
|
|
5447
5575
|
resultPaths: recalledMemoryPaths,
|
|
5576
|
+
resultNamespaces: recalledMemoryNamespaces,
|
|
5448
5577
|
policyVersion,
|
|
5449
5578
|
appendImpression:
|
|
5450
|
-
impressionRecorded ||
|
|
5451
5579
|
recalledMemoryIds.length > 0 ||
|
|
5452
5580
|
this.deps.config.recordEmptyRecallImpressions,
|
|
5453
5581
|
identityInjection: {
|