@remnic/core 9.7.15 → 9.9.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.
Files changed (929) hide show
  1. package/dist/access-admin-ops-surface.d.ts +13 -6
  2. package/dist/access-admin-ops-surface.js +85 -71
  3. package/dist/access-audit.js +2 -2
  4. package/dist/access-boundary.d.ts +35 -17
  5. package/dist/access-boundary.js +86 -74
  6. package/dist/access-citation.d.ts +28 -0
  7. package/dist/access-citation.js +9 -0
  8. package/dist/access-cli.js +194 -178
  9. package/dist/access-cli.js.map +1 -1
  10. package/dist/access-errors.d.ts +16 -1
  11. package/dist/access-errors.js +7 -3
  12. package/dist/access-http.d.ts +25 -19
  13. package/dist/access-http.js +100 -87
  14. package/dist/access-identity-continuity-surface.d.ts +13 -8
  15. package/dist/access-identity-continuity-surface.js +85 -71
  16. package/dist/access-lcm-surface.d.ts +16 -9
  17. package/dist/access-lcm-surface.js +85 -71
  18. package/dist/access-mcp.d.ts +23 -16
  19. package/dist/access-mcp.js +96 -84
  20. package/dist/access-memory-search-fanout.d.ts +93 -0
  21. package/dist/access-memory-search-fanout.js +18 -0
  22. package/dist/access-observe-write-surface.d.ts +26 -8
  23. package/dist/access-observe-write-surface.js +85 -71
  24. package/dist/access-operations-batch.js +92 -80
  25. package/dist/access-operations.d.ts +29 -22
  26. package/dist/access-operations.js +94 -82
  27. package/dist/access-recall-concurrency.d.ts +250 -0
  28. package/dist/access-recall-concurrency.js +157 -0
  29. package/dist/access-recall-response.d.ts +130 -0
  30. package/dist/access-recall-response.js +147 -0
  31. package/dist/access-recall-surface.d.ts +15 -7
  32. package/dist/access-recall-surface.js +85 -71
  33. package/dist/access-schema.d.ts +98 -98
  34. package/dist/access-schema.js +8 -6
  35. package/dist/{access-service-DpcYZ9Nl.d.ts → access-service-DbZ1G3zV.d.ts} +29 -36
  36. package/dist/access-service.d.ts +13 -6
  37. package/dist/access-service.js +89 -72
  38. package/dist/access-surface-catalog.d.ts +23 -16
  39. package/dist/access-surface-catalog.js +1 -0
  40. package/dist/access-surface-catalog.js.map +1 -1
  41. package/dist/access-token-capabilities.d.ts +2 -1
  42. package/dist/access-token-capabilities.js +4 -2
  43. package/dist/action-confidence.d.ts +3 -1
  44. package/dist/active-memory-bridge.d.ts +3 -1
  45. package/dist/active-memory-bridge.js +4 -4
  46. package/dist/active-recall.d.ts +4 -1
  47. package/dist/active-recall.js +23 -13
  48. package/dist/active-recall.js.map +1 -1
  49. package/dist/adapters/index.js +4 -4
  50. package/dist/adapters/registry.js +2 -2
  51. package/dist/{auto-sync-AAMTVZMK.js → auto-sync-UZG3XQZ5.js} +14 -8
  52. package/dist/{auto-sync-AAMTVZMK.js.map → auto-sync-UZG3XQZ5.js.map} +1 -1
  53. package/dist/behavior-learner.d.ts +3 -1
  54. package/dist/behavior-signals.d.ts +3 -1
  55. package/dist/bootstrap.d.ts +12 -7
  56. package/dist/bootstrap.js +2 -2
  57. package/dist/bounded-jsonl-state.d.ts +54 -0
  58. package/dist/bounded-jsonl-state.js +10 -0
  59. package/dist/boxes.js +2 -2
  60. package/dist/briefing.d.ts +5 -2
  61. package/dist/briefing.js +34 -24
  62. package/dist/buffer-surprise-report.d.ts +3 -1
  63. package/dist/buffer.d.ts +60 -2
  64. package/dist/buffer.js +3 -3
  65. package/dist/bulk-import/index.d.ts +5 -3
  66. package/dist/calibration.d.ts +3 -1
  67. package/dist/calibration.js +6 -6
  68. package/dist/capabilities.d.ts +7 -7
  69. package/dist/capabilities.js +1 -1
  70. package/dist/{capsule-crypto-CZJSLEFG.js → capsule-crypto-YO5QJ6L3.js} +3 -3
  71. package/dist/capsule-crypto-YO5QJ6L3.js.map +1 -0
  72. package/dist/{catalog-C9444P10.d.ts → catalog-BWqHb5HT.d.ts} +1 -1
  73. package/dist/causal-behavior.d.ts +3 -1
  74. package/dist/causal-behavior.js +6 -6
  75. package/dist/causal-chain.js +4 -4
  76. package/dist/causal-consolidation.d.ts +3 -1
  77. package/dist/causal-consolidation.js +43 -34
  78. package/dist/causal-consolidation.js.map +1 -1
  79. package/dist/causal-retrieval.js +6 -6
  80. package/dist/causal-trajectory-graph.d.ts +3 -1
  81. package/dist/causal-trajectory-graph.js +1 -1
  82. package/dist/causal-trajectory.js +1 -1
  83. package/dist/{chunk-A3GOMRJG.js → chunk-23L3IXFD.js} +2 -2
  84. package/dist/chunk-2CGLBUW3.js +15 -0
  85. package/dist/chunk-2CGLBUW3.js.map +1 -0
  86. package/dist/{chunk-MRHFJV44.js → chunk-2DQ2XREU.js} +2 -2
  87. package/dist/{chunk-L2B3EE7B.js → chunk-2QMKMVHH.js} +2 -2
  88. package/dist/{chunk-VJVNLNDQ.js → chunk-2UFO7X4Q.js} +7 -7
  89. package/dist/{chunk-2MR3MFQB.js → chunk-2VEOKUPP.js} +3 -3
  90. package/dist/chunk-2Z24E5W2.js +22 -0
  91. package/dist/chunk-2Z24E5W2.js.map +1 -0
  92. package/dist/{chunk-RHOZ5LLO.js → chunk-347WD2LE.js} +2 -2
  93. package/dist/{chunk-HDTQVNWD.js → chunk-3QAH2S33.js} +3 -3
  94. package/dist/{chunk-37CTGERM.js → chunk-3WCASNQZ.js} +12 -1
  95. package/dist/chunk-3WCASNQZ.js.map +1 -0
  96. package/dist/{chunk-LRNMRXJO.js → chunk-3Y224NYC.js} +3 -3
  97. package/dist/{chunk-3IY64MV6.js → chunk-44XZ75OQ.js} +44 -10
  98. package/dist/chunk-44XZ75OQ.js.map +1 -0
  99. package/dist/{chunk-VFSP73LP.js → chunk-45GF7Y3V.js} +2 -2
  100. package/dist/{chunk-K7LOWSLU.js → chunk-4BJQODZF.js} +2479 -1520
  101. package/dist/chunk-4BJQODZF.js.map +1 -0
  102. package/dist/{chunk-JREB6UFH.js → chunk-57OWKFUQ.js} +17 -6
  103. package/dist/chunk-57OWKFUQ.js.map +1 -0
  104. package/dist/{chunk-OEHCMALU.js → chunk-5I4M26Q7.js} +5 -5
  105. package/dist/{chunk-2AZXIZEN.js → chunk-5Q7EVV4X.js} +6 -6
  106. package/dist/{chunk-LC7OODWZ.js → chunk-5SB7SC2G.js} +80 -49
  107. package/dist/chunk-5SB7SC2G.js.map +1 -0
  108. package/dist/{chunk-PUBTHW5O.js → chunk-6DRPPQEJ.js} +2 -2
  109. package/dist/{chunk-NWTGD4AN.js → chunk-6KIQT7RG.js} +10 -9
  110. package/dist/chunk-6KIQT7RG.js.map +1 -0
  111. package/dist/{chunk-FDCTQWLW.js → chunk-6O22TZSB.js} +3 -3
  112. package/dist/{chunk-ZQ7UBUZ6.js → chunk-6QYST5XN.js} +6 -6
  113. package/dist/{chunk-W4PGTAS2.js → chunk-6WAFYNVT.js} +3 -3
  114. package/dist/chunk-6ZMAMSHS.js +20 -0
  115. package/dist/chunk-6ZMAMSHS.js.map +1 -0
  116. package/dist/{chunk-R5VAVVHP.js → chunk-72A4L5JJ.js} +2 -2
  117. package/dist/{chunk-X64YLC24.js → chunk-72VAXGEI.js} +5 -13
  118. package/dist/chunk-72VAXGEI.js.map +1 -0
  119. package/dist/{chunk-IKQTFQMI.js → chunk-755Q3DGF.js} +22 -3
  120. package/dist/chunk-755Q3DGF.js.map +1 -0
  121. package/dist/{chunk-D7FOKIY5.js → chunk-7AMFUATK.js} +12 -9
  122. package/dist/{chunk-D7FOKIY5.js.map → chunk-7AMFUATK.js.map} +1 -1
  123. package/dist/{chunk-BFVEEB7W.js → chunk-7ON2JW73.js} +57 -22
  124. package/dist/chunk-7ON2JW73.js.map +1 -0
  125. package/dist/chunk-7RNBVZZO.js +270 -0
  126. package/dist/chunk-7RNBVZZO.js.map +1 -0
  127. package/dist/{chunk-3FAMU5TX.js → chunk-A6USBZTO.js} +2 -2
  128. package/dist/{chunk-ZHIVCODT.js → chunk-A72SWTWW.js} +7 -7
  129. package/dist/{chunk-FC77VUX5.js → chunk-A7Q43EUZ.js} +2 -2
  130. package/dist/{chunk-UJBESW6X.js → chunk-AE7WMV4V.js} +7 -7
  131. package/dist/{chunk-J2HSAU72.js → chunk-AIK5W3IW.js} +29 -1
  132. package/dist/chunk-AIK5W3IW.js.map +1 -0
  133. package/dist/{chunk-A5UXZRRM.js → chunk-AJ7QCSIS.js} +2 -2
  134. package/dist/{chunk-FNMFJWBY.js → chunk-ANEUPF6O.js} +5 -5
  135. package/dist/chunk-AREGMX2J.js +50 -0
  136. package/dist/chunk-AREGMX2J.js.map +1 -0
  137. package/dist/chunk-AVPXXV6J.js +448 -0
  138. package/dist/chunk-AVPXXV6J.js.map +1 -0
  139. package/dist/{chunk-2A3OXAP2.js → chunk-B7RWBZXW.js} +2 -2
  140. package/dist/{chunk-QKQYXZVS.js → chunk-BI2OJF6J.js} +1819 -1481
  141. package/dist/chunk-BI2OJF6J.js.map +1 -0
  142. package/dist/{chunk-GWTFLF2P.js → chunk-BJMBJZ2Y.js} +59 -59
  143. package/dist/chunk-BJMBJZ2Y.js.map +1 -0
  144. package/dist/{chunk-74F5STS4.js → chunk-BLAKS3CP.js} +4 -4
  145. package/dist/{chunk-M7VGG3ID.js → chunk-BV5WMSIJ.js} +9 -9
  146. package/dist/{chunk-2BFLDH5F.js → chunk-BXLOS5AJ.js} +2 -2
  147. package/dist/{chunk-UXKMMNJD.js → chunk-C23BYTJV.js} +6 -6
  148. package/dist/{chunk-JZHHREBL.js → chunk-C3AKM55W.js} +2 -2
  149. package/dist/{chunk-RP7YXA67.js → chunk-C5JF6EZ7.js} +2 -2
  150. package/dist/{chunk-T7Y5KPLN.js → chunk-C6XBRYVD.js} +16 -15
  151. package/dist/chunk-C6XBRYVD.js.map +1 -0
  152. package/dist/{chunk-FTYDWKO6.js → chunk-CEN6DW6X.js} +12 -2
  153. package/dist/chunk-CEN6DW6X.js.map +1 -0
  154. package/dist/chunk-CGASUJVP.js +421 -0
  155. package/dist/chunk-CGASUJVP.js.map +1 -0
  156. package/dist/{chunk-EHCONI6E.js → chunk-CQMEM5CC.js} +2 -2
  157. package/dist/{chunk-PBNZVPFS.js → chunk-CXZQOVIE.js} +12 -12
  158. package/dist/chunk-D3V3UMET.js +44 -0
  159. package/dist/chunk-D3V3UMET.js.map +1 -0
  160. package/dist/{chunk-7N2RUBAP.js → chunk-DDA47TES.js} +2 -2
  161. package/dist/{chunk-64SE4X5G.js → chunk-DEBHXHJR.js} +3 -3
  162. package/dist/{chunk-EHK6KZHK.js → chunk-DNHVPZOD.js} +2 -2
  163. package/dist/{chunk-437S3G37.js → chunk-DQEMWVMT.js} +2 -2
  164. package/dist/{chunk-LZZNTPLR.js → chunk-DX3XRGLH.js} +2 -2
  165. package/dist/chunk-EA2H5LML.js +72 -0
  166. package/dist/chunk-EA2H5LML.js.map +1 -0
  167. package/dist/{chunk-INELTPRG.js → chunk-EEC7UJPX.js} +103 -106
  168. package/dist/chunk-EEC7UJPX.js.map +1 -0
  169. package/dist/{chunk-KSNVDPDF.js → chunk-EKBNDKDY.js} +21 -20
  170. package/dist/chunk-EKBNDKDY.js.map +1 -0
  171. package/dist/{chunk-YF6FMLBT.js → chunk-EQWEIIKQ.js} +64 -34
  172. package/dist/chunk-EQWEIIKQ.js.map +1 -0
  173. package/dist/{chunk-DZKHSDOM.js → chunk-ES36HTSC.js} +4 -4
  174. package/dist/{chunk-TN7THW5U.js → chunk-ET356KSB.js} +2 -2
  175. package/dist/{chunk-YNDLCWXS.js → chunk-EZ25VE3G.js} +4 -4
  176. package/dist/{chunk-DMSDUGDM.js → chunk-F7GAIWFA.js} +20 -20
  177. package/dist/{chunk-G6XXLKC5.js → chunk-FFPJINJE.js} +6 -6
  178. package/dist/chunk-FMLKOL2Z.js +636 -0
  179. package/dist/chunk-FMLKOL2Z.js.map +1 -0
  180. package/dist/chunk-FQC3DHH2.js +20 -0
  181. package/dist/chunk-FQC3DHH2.js.map +1 -0
  182. package/dist/{chunk-G4CN3ZXL.js → chunk-FUTF72MJ.js} +15 -15
  183. package/dist/chunk-GCASGYIO.js +71 -0
  184. package/dist/chunk-GCASGYIO.js.map +1 -0
  185. package/dist/{chunk-HF77M34J.js → chunk-GFPZS3F5.js} +8 -8
  186. package/dist/{chunk-BCDKBDSY.js → chunk-GNVZQ5JN.js} +99 -41
  187. package/dist/chunk-GNVZQ5JN.js.map +1 -0
  188. package/dist/{chunk-G6NKALRN.js → chunk-H4WG3UQZ.js} +2 -2
  189. package/dist/{chunk-UDQUSU27.js → chunk-HNZKVLAN.js} +2 -2
  190. package/dist/{chunk-5EZXHU36.js → chunk-HYQJQGD3.js} +2 -2
  191. package/dist/{chunk-PLQE6MJA.js → chunk-IFH6LWTO.js} +50 -8
  192. package/dist/chunk-IFH6LWTO.js.map +1 -0
  193. package/dist/{chunk-RULE4VG5.js → chunk-ILGC6JH6.js} +21 -6
  194. package/dist/chunk-ILGC6JH6.js.map +1 -0
  195. package/dist/chunk-IUM3VSHI.js +113 -0
  196. package/dist/chunk-IUM3VSHI.js.map +1 -0
  197. package/dist/{chunk-TRWPCR6P.js → chunk-JECBQBEX.js} +3 -3
  198. package/dist/{chunk-E6CBU7XP.js → chunk-JYIFGGEM.js} +2 -2
  199. package/dist/{chunk-VA4WSW54.js → chunk-JYIJNNN3.js} +3 -3
  200. package/dist/{chunk-L5HJQC36.js → chunk-K2TDK7GG.js} +3 -3
  201. package/dist/{chunk-KDXVOFYY.js → chunk-KAVBJSBQ.js} +4 -4
  202. package/dist/{chunk-BS4SGLWV.js → chunk-KF5EUVKQ.js} +16 -6
  203. package/dist/chunk-KF5EUVKQ.js.map +1 -0
  204. package/dist/chunk-KFZY2OFH.js +42 -0
  205. package/dist/chunk-KFZY2OFH.js.map +1 -0
  206. package/dist/{chunk-4OKLXWDZ.js → chunk-KNB7IBBU.js} +2 -2
  207. package/dist/{chunk-QLULYKWZ.js → chunk-KSXJOC4F.js} +2 -2
  208. package/dist/{chunk-2S6QHZGJ.js → chunk-L2DPF4DF.js} +1 -1
  209. package/dist/{chunk-JI5AVXYO.js → chunk-LEPOP46W.js} +6 -6
  210. package/dist/{chunk-O7BBFJLP.js → chunk-LTAVSOZW.js} +2 -2
  211. package/dist/{chunk-E3VODCC3.js → chunk-LUDXM7MD.js} +14 -2
  212. package/dist/{chunk-E3VODCC3.js.map → chunk-LUDXM7MD.js.map} +1 -1
  213. package/dist/{chunk-2IZAGAJR.js → chunk-LULR4IUW.js} +3 -3
  214. package/dist/{chunk-QQGPUKMT.js → chunk-MC5Q3J7S.js} +398 -7
  215. package/dist/chunk-MC5Q3J7S.js.map +1 -0
  216. package/dist/{chunk-WMWVO45V.js → chunk-MC6XO7T4.js} +2 -2
  217. package/dist/chunk-MKQBXQKU.js +107 -0
  218. package/dist/chunk-MKQBXQKU.js.map +1 -0
  219. package/dist/{chunk-7PND4PUC.js → chunk-MMGGVZ4Q.js} +29 -9
  220. package/dist/{chunk-7PND4PUC.js.map → chunk-MMGGVZ4Q.js.map} +1 -1
  221. package/dist/{chunk-D6RIFG4O.js → chunk-MNB5RMAY.js} +2 -2
  222. package/dist/{chunk-Q5WG43OP.js → chunk-MYFQ3ED4.js} +7 -7
  223. package/dist/{chunk-V3UE5I5F.js → chunk-MYVPLJOO.js} +2 -2
  224. package/dist/chunk-NINSR6LX.js +83 -0
  225. package/dist/chunk-NINSR6LX.js.map +1 -0
  226. package/dist/{chunk-MTWKDOVO.js → chunk-NLE6TSLG.js} +2 -2
  227. package/dist/{chunk-OAZVR2BV.js → chunk-OGCAYLNA.js} +8 -6
  228. package/dist/{chunk-OAZVR2BV.js.map → chunk-OGCAYLNA.js.map} +1 -1
  229. package/dist/{chunk-DBRYEIGY.js → chunk-OJP3N7UK.js} +2 -2
  230. package/dist/{chunk-VDW4VU7B.js → chunk-OQJIB32H.js} +28 -23
  231. package/dist/chunk-OQJIB32H.js.map +1 -0
  232. package/dist/{chunk-SMX5267P.js → chunk-OZKOPQCM.js} +2 -2
  233. package/dist/{chunk-JCK7V6SN.js → chunk-P65YJEEL.js} +2 -2
  234. package/dist/{chunk-MTR7BZQN.js → chunk-PBGWYM3H.js} +3 -3
  235. package/dist/chunk-PIG4WJFQ.js +87 -0
  236. package/dist/chunk-PIG4WJFQ.js.map +1 -0
  237. package/dist/chunk-PJSK6OJM.js +201 -0
  238. package/dist/chunk-PJSK6OJM.js.map +1 -0
  239. package/dist/{chunk-OVJ2HIPE.js → chunk-PMUD7ERF.js} +158 -125
  240. package/dist/chunk-PMUD7ERF.js.map +1 -0
  241. package/dist/chunk-PQVCH2AE.js +76 -0
  242. package/dist/chunk-PQVCH2AE.js.map +1 -0
  243. package/dist/{chunk-AXTXN4T6.js → chunk-PWFCHOB3.js} +2 -2
  244. package/dist/{chunk-FDPZVY6D.js → chunk-QFN4U7AG.js} +2 -2
  245. package/dist/{chunk-K2ZLHESQ.js → chunk-QIEUU4UK.js} +2 -2
  246. package/dist/{chunk-DYP3YYJJ.js → chunk-QJAQNXWI.js} +39 -5
  247. package/dist/chunk-QJAQNXWI.js.map +1 -0
  248. package/dist/{chunk-3D6AFGQR.js → chunk-QVT3E4CE.js} +7 -7
  249. package/dist/{chunk-FIJUY7GG.js → chunk-R26ZMXR2.js} +23 -23
  250. package/dist/{chunk-FIJUY7GG.js.map → chunk-R26ZMXR2.js.map} +1 -1
  251. package/dist/chunk-R3DJVOSM.js +34 -0
  252. package/dist/chunk-R3DJVOSM.js.map +1 -0
  253. package/dist/{chunk-SFQ6QNL7.js → chunk-R6YJI3HE.js} +2 -1
  254. package/dist/{chunk-5CJVLG3H.js → chunk-RFDD3B7W.js} +5 -5
  255. package/dist/{chunk-JBPKEARU.js → chunk-RKNJBZ55.js} +4 -4
  256. package/dist/chunk-ROI7BK7H.js +88 -0
  257. package/dist/chunk-ROI7BK7H.js.map +1 -0
  258. package/dist/{chunk-FNZQGN76.js → chunk-S2BBISHU.js} +4 -4
  259. package/dist/{chunk-IALLX7EE.js → chunk-S2FSBU4H.js} +3 -3
  260. package/dist/{chunk-BFPETA3S.js → chunk-SCCO46KZ.js} +3 -2
  261. package/dist/chunk-SCCO46KZ.js.map +1 -0
  262. package/dist/chunk-SK7AMF2J.js +168 -0
  263. package/dist/chunk-SK7AMF2J.js.map +1 -0
  264. package/dist/{chunk-KSBEEMQF.js → chunk-TG6IHVE2.js} +151 -6
  265. package/dist/chunk-TG6IHVE2.js.map +1 -0
  266. package/dist/{chunk-7K5Q6COX.js → chunk-TVVEYCNW.js} +4 -4
  267. package/dist/{chunk-DPAENM7O.js → chunk-U3ZAVRP3.js} +2 -2
  268. package/dist/{chunk-ODPLEWB6.js → chunk-UFGFMWAD.js} +47 -17
  269. package/dist/chunk-UFGFMWAD.js.map +1 -0
  270. package/dist/{chunk-4KJLYTLS.js → chunk-V57NLO5P.js} +2 -2
  271. package/dist/{chunk-FLVL4L3L.js → chunk-VDX2J7OX.js} +2 -2
  272. package/dist/{chunk-AJLLIIML.js → chunk-W4FBGYGK.js} +1 -1
  273. package/dist/{chunk-TXLGHDHS.js → chunk-W4XJFLAL.js} +53 -32
  274. package/dist/chunk-W4XJFLAL.js.map +1 -0
  275. package/dist/{chunk-6SXVCD7W.js → chunk-W7IGLX4G.js} +2 -2
  276. package/dist/{chunk-KQDNAXOM.js → chunk-WG5HSQ4P.js} +19 -6
  277. package/dist/chunk-WG5HSQ4P.js.map +1 -0
  278. package/dist/{chunk-LTJAMRGI.js → chunk-WL5EBRDH.js} +17 -3
  279. package/dist/chunk-WL5EBRDH.js.map +1 -0
  280. package/dist/{chunk-KAWTOYAW.js → chunk-WLZYGLJ4.js} +2 -2
  281. package/dist/{chunk-RO4LQGT3.js → chunk-WON4APQY.js} +4 -4
  282. package/dist/{chunk-PQVK2S3J.js → chunk-WZFAPHIK.js} +6 -6
  283. package/dist/{chunk-KQPJLK3X.js → chunk-XL24QQ63.js} +2 -2
  284. package/dist/{chunk-LZOV7MX7.js → chunk-XQDRKZ7V.js} +6476 -5747
  285. package/dist/chunk-XQDRKZ7V.js.map +1 -0
  286. package/dist/{chunk-RVZRYUQH.js → chunk-YROFNEG5.js} +7 -7
  287. package/dist/{chunk-RAR2BSEM.js → chunk-YV32N67O.js} +1 -1
  288. package/dist/chunk-YV32N67O.js.map +1 -0
  289. package/dist/{chunk-PBSAPHHA.js → chunk-YVKF3HEW.js} +1 -1
  290. package/dist/chunk-YVKF3HEW.js.map +1 -0
  291. package/dist/{chunk-VRAD2FGO.js → chunk-Z54EM5YZ.js} +12 -12
  292. package/dist/{chunk-2VN4JAX7.js → chunk-ZOKZIR5K.js} +95 -33
  293. package/dist/chunk-ZOKZIR5K.js.map +1 -0
  294. package/dist/{chunk-DCFV7A7H.js → chunk-ZVAYK7GU.js} +101 -91
  295. package/dist/chunk-ZVAYK7GU.js.map +1 -0
  296. package/dist/{cli-Cd5fMmhq.d.ts → cli-5tNLVTvJ.d.ts} +28 -12
  297. package/dist/cli.d.ts +16 -9
  298. package/dist/cli.js +142 -127
  299. package/dist/compounding/engine.d.ts +5 -2
  300. package/dist/compounding/engine.js +36 -26
  301. package/dist/compounding/preference-consolidator.d.ts +3 -1
  302. package/dist/compounding/preference-consolidator.js +1 -1
  303. package/dist/compression-optimizer.d.ts +3 -1
  304. package/dist/config-qmd.d.ts +8 -0
  305. package/dist/config-qmd.js +20 -0
  306. package/dist/config-qmd.js.map +1 -0
  307. package/dist/config.d.ts +3 -1
  308. package/dist/config.js +15 -10
  309. package/dist/connectors/codex-materialize-runner.d.ts +3 -1
  310. package/dist/connectors/codex-materialize-runner.js +36 -26
  311. package/dist/connectors/codex-materialize.d.ts +3 -1
  312. package/dist/connectors/codex-materialize.js +2 -2
  313. package/dist/connectors/index.d.ts +3 -1
  314. package/dist/connectors/index.js +41 -32
  315. package/dist/consolidation-provenance-check.d.ts +5 -2
  316. package/dist/consolidation-undo.d.ts +5 -2
  317. package/dist/contradiction/index.d.ts +5 -2
  318. package/dist/contradiction/index.js +10 -4
  319. package/dist/{contradiction-scan-J57T5QV7.js → contradiction-scan-RJBABNRH.js} +4 -4
  320. package/dist/contradiction-scan-RJBABNRH.js.map +1 -0
  321. package/dist/conversation-index/backend.d.ts +3 -1
  322. package/dist/conversation-index/backend.js +5 -5
  323. package/dist/conversation-index/chunker.d.ts +3 -1
  324. package/dist/conversation-index/cleanup.js +2 -2
  325. package/dist/conversation-index/faiss-adapter.d.ts +3 -1
  326. package/dist/conversation-index/faiss-adapter.js +2 -2
  327. package/dist/conversation-index/indexer.d.ts +3 -1
  328. package/dist/conversation-index/indexer.js +2 -2
  329. package/dist/conversation-index/search.d.ts +3 -1
  330. package/dist/conversation-index/search.js +2 -2
  331. package/dist/cross-namespace-budget.d.ts +45 -1
  332. package/dist/cross-namespace-budget.js +5 -3
  333. package/dist/dashboard-runtime.js +2 -2
  334. package/dist/day-summary.d.ts +3 -1
  335. package/dist/day-summary.js +3 -3
  336. package/dist/delinearize.d.ts +3 -1
  337. package/dist/direct-answer-wiring.d.ts +3 -1
  338. package/dist/direct-answer.d.ts +3 -1
  339. package/dist/{dreams-ledger-6UODQOX6.js → dreams-ledger-567VKVOU.js} +4 -2
  340. package/dist/dreams-ledger-567VKVOU.js.map +1 -0
  341. package/dist/embedding-fallback.d.ts +3 -1
  342. package/dist/embedding-fallback.js +3 -3
  343. package/dist/enrichment/index.d.ts +3 -1
  344. package/dist/entity-retrieval.d.ts +5 -2
  345. package/dist/entity-retrieval.js +35 -26
  346. package/dist/entity-schema.d.ts +3 -1
  347. package/dist/explicit-capture.d.ts +13 -8
  348. package/dist/explicit-capture.js +7 -3
  349. package/dist/extraction-faithfulness.d.ts +3 -1
  350. package/dist/extraction-faithfulness.js +5 -5
  351. package/dist/extraction-judge-telemetry.d.ts +3 -1
  352. package/dist/extraction-judge-telemetry.js +2 -2
  353. package/dist/extraction-judge-training.d.ts +3 -1
  354. package/dist/extraction-judge-training.js +2 -2
  355. package/dist/extraction-judge.d.ts +3 -1
  356. package/dist/extraction-judge.js +5 -5
  357. package/dist/extraction.d.ts +3 -1
  358. package/dist/extraction.js +13 -12
  359. package/dist/faithfulness-config.js +3 -2
  360. package/dist/fallback-llm.d.ts +3 -1
  361. package/dist/fallback-llm.js +4 -4
  362. package/dist/{first-start-migration-TI67YMLG.js → first-start-migration-CSRHCJIQ.js} +2 -2
  363. package/dist/{forget-CQCLB5LB.js → forget-HRPLVB3W.js} +5 -5
  364. package/dist/graph-dashboard-diff.d.ts +3 -1
  365. package/dist/graph-dashboard-key.d.ts +3 -1
  366. package/dist/graph-dashboard-parser.d.ts +3 -1
  367. package/dist/{graph-edge-decay-IOGBBAGC.js → graph-edge-decay-Z6ENALU2.js} +3 -3
  368. package/dist/graph-edge-decay-Z6ENALU2.js.map +1 -0
  369. package/dist/graph-edge-reinforcement.d.ts +3 -1
  370. package/dist/graph-snapshot.d.ts +3 -1
  371. package/dist/graph-snapshot.js +2 -2
  372. package/dist/graph.d.ts +3 -1
  373. package/dist/graph.js +1 -1
  374. package/dist/identity-continuity.d.ts +1 -2
  375. package/dist/importance.d.ts +3 -1
  376. package/dist/importers/index.d.ts +3 -1
  377. package/dist/in-flight-reads.d.ts +3 -1
  378. package/dist/index.d.ts +473 -464
  379. package/dist/index.js +287 -239
  380. package/dist/intent.d.ts +3 -1
  381. package/dist/lcm/archive.js +2 -2
  382. package/dist/lcm/engine.d.ts +3 -1
  383. package/dist/lcm/engine.js +6 -6
  384. package/dist/lcm/index.d.ts +3 -1
  385. package/dist/lcm/index.js +13 -13
  386. package/dist/lcm/schema.js +2 -2
  387. package/dist/lcm/summarizer.js +3 -3
  388. package/dist/lcm/tools.d.ts +3 -1
  389. package/dist/lifecycle.d.ts +3 -1
  390. package/dist/live-connectors-runner.d.ts +3 -1
  391. package/dist/local-llm.d.ts +5 -2
  392. package/dist/local-llm.js +3 -3
  393. package/dist/local-model-endpoint.d.ts +3 -1
  394. package/dist/logger.d.ts +3 -1
  395. package/dist/logger.js +7 -3
  396. package/dist/maintenance/archive-observations.js +2 -2
  397. package/dist/maintenance/memory-governance.d.ts +3 -1
  398. package/dist/maintenance/memory-governance.js +35 -25
  399. package/dist/maintenance/migrate-observations.js +3 -3
  400. package/dist/maintenance/observation-ledger-utils.js +2 -2
  401. package/dist/maintenance/rebuild-memory-lifecycle-ledger.d.ts +102 -1
  402. package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +37 -25
  403. package/dist/maintenance/rebuild-memory-projection.js +38 -28
  404. package/dist/maintenance/rebuild-observations.js +3 -3
  405. package/dist/mcp-memory-inspector-app.d.ts +22 -15
  406. package/dist/memory-action-policy.d.ts +3 -1
  407. package/dist/memory-cache.d.ts +3 -1
  408. package/dist/memory-lifecycle-ledger-utils.d.ts +25 -2
  409. package/dist/memory-lifecycle-ledger-utils.js +11 -1
  410. package/dist/memory-projection-store.d.ts +3 -1
  411. package/dist/memory-projection-store.js +2 -2
  412. package/dist/memory-provenance.d.ts +3 -1
  413. package/dist/memory-worth-outcomes.d.ts +5 -2
  414. package/dist/model-registry.js +2 -2
  415. package/dist/models-json.d.ts +3 -1
  416. package/dist/models-json.js +2 -2
  417. package/dist/namespaces/migrate.d.ts +6 -3
  418. package/dist/namespaces/migrate.js +51 -42
  419. package/dist/namespaces/principal.d.ts +27 -2
  420. package/dist/namespaces/principal.js +6 -2
  421. package/dist/namespaces/search.d.ts +16 -2
  422. package/dist/namespaces/search.js +24 -20
  423. package/dist/namespaces/storage.d.ts +24 -3
  424. package/dist/namespaces/storage.js +35 -27
  425. package/dist/native-knowledge.d.ts +3 -1
  426. package/dist/native-knowledge.js +2 -2
  427. package/dist/negative.js +2 -2
  428. package/dist/offline-sync-exclude-globs.d.ts +13 -0
  429. package/dist/offline-sync-exclude-globs.js +10 -0
  430. package/dist/offline-sync-exclude-globs.js.map +1 -0
  431. package/dist/offline-sync-impression-drain.d.ts +78 -0
  432. package/dist/offline-sync-impression-drain.js +37 -0
  433. package/dist/offline-sync-impression-drain.js.map +1 -0
  434. package/dist/offline-sync.js +4 -2
  435. package/dist/operator-toolkit.d.ts +5 -2
  436. package/dist/operator-toolkit.js +69 -54
  437. package/dist/orchestration/compression-guideline-coordinator.d.ts +5 -2
  438. package/dist/orchestration/compression-guideline-coordinator.js +3 -3
  439. package/dist/orchestration/maintenance.d.ts +121 -2
  440. package/dist/orchestration/maintenance.js +44 -31
  441. package/dist/{orchestrator-Bp_jeBHK.d.ts → orchestrator-CQJ8U7En.d.ts} +85 -79
  442. package/dist/orchestrator.d.ts +13 -8
  443. package/dist/orchestrator.js +194 -177
  444. package/dist/patterns-cli.d.ts +3 -1
  445. package/dist/{pipeline-BAj5bx7g.d.ts → pipeline-Cn-kvYeV.d.ts} +1 -1
  446. package/dist/policy-runtime.d.ts +3 -1
  447. package/dist/prioritized-embed.d.ts +19 -0
  448. package/dist/prioritized-embed.js +8 -0
  449. package/dist/prioritized-embed.js.map +1 -0
  450. package/dist/proactive-contention.d.ts +28 -0
  451. package/dist/proactive-contention.js +8 -0
  452. package/dist/proactive-contention.js.map +1 -0
  453. package/dist/profiling.js +2 -2
  454. package/dist/provenance.d.ts +3 -1
  455. package/dist/provenance.js +3 -2
  456. package/dist/{purge-NDWV6WYD.js → purge-IRF47ZTX.js} +3 -3
  457. package/dist/{qmd-_MDSlj1m.d.ts → qmd-oh9VXz1d.d.ts} +11 -1
  458. package/dist/qmd-preflight.d.ts +5 -2
  459. package/dist/qmd-recall-cache.d.ts +3 -1
  460. package/dist/qmd-status.d.ts +57 -0
  461. package/dist/qmd-status.js +18 -0
  462. package/dist/qmd-status.js.map +1 -0
  463. package/dist/qmd.d.ts +5 -2
  464. package/dist/qmd.js +7 -3
  465. package/dist/recall-concurrency-config.d.ts +16 -0
  466. package/dist/recall-concurrency-config.js +10 -0
  467. package/dist/recall-concurrency-config.js.map +1 -0
  468. package/dist/recall-disclosure-escalation.d.ts +3 -1
  469. package/dist/recall-explain-renderer.d.ts +4 -1
  470. package/dist/recall-explain-renderer.js +3 -3
  471. package/dist/recall-memory-map.d.ts +26 -0
  472. package/dist/recall-memory-map.js +18 -0
  473. package/dist/recall-memory-map.js.map +1 -0
  474. package/dist/recall-planner-llm.d.ts +3 -1
  475. package/dist/recall-planner-llm.js +4 -4
  476. package/dist/recall-qos.js +2 -2
  477. package/dist/recall-state.d.ts +163 -2
  478. package/dist/recall-state.js +6 -3
  479. package/dist/recall-tag-filter.d.ts +3 -1
  480. package/dist/recall-timings.d.ts +11 -2
  481. package/dist/recall-timings.js +3 -1
  482. package/dist/recall-xray-cli.d.ts +3 -1
  483. package/dist/recall-xray-cli.js +4 -4
  484. package/dist/recall-xray-renderer.d.ts +3 -1
  485. package/dist/recall-xray-renderer.js +3 -3
  486. package/dist/recall-xray.d.ts +3 -1
  487. package/dist/recall-xray.js +2 -2
  488. package/dist/relevance.js +3 -3
  489. package/dist/replay/normalizers/chatgpt.d.ts +3 -1
  490. package/dist/replay/normalizers/claude.d.ts +3 -1
  491. package/dist/replay/normalizers/openclaw.d.ts +3 -1
  492. package/dist/replay/normalizers/shared.d.ts +3 -1
  493. package/dist/replay/runner.d.ts +3 -1
  494. package/dist/replay/types.d.ts +3 -1
  495. package/dist/rerank.d.ts +8 -1
  496. package/dist/rerank.js +3 -1
  497. package/dist/resolution-3K27T4VO.js +18 -0
  498. package/dist/resolution-3K27T4VO.js.map +1 -0
  499. package/dist/resolve-auth-token.d.ts +3 -1
  500. package/dist/resolve-provider-secret.js +2 -2
  501. package/dist/resume-bundles.js +19 -14
  502. package/dist/retrieval-agents.d.ts +19 -16
  503. package/dist/retrieval-agents.js +3 -3
  504. package/dist/retrieval-tiers.d.ts +3 -1
  505. package/dist/routing/engine.d.ts +3 -1
  506. package/dist/routing/store.d.ts +3 -1
  507. package/dist/routing/store.js +2 -2
  508. package/dist/salvage-envelope.d.ts +18 -0
  509. package/dist/salvage-envelope.js +15 -0
  510. package/dist/salvage-envelope.js.map +1 -0
  511. package/dist/schemas.d.ts +98 -98
  512. package/dist/scope-profiles-EpJG7yKP.d.ts +30 -0
  513. package/dist/search/document-scanner.js +3 -2
  514. package/dist/search/embed-helper.d.ts +3 -1
  515. package/dist/search/embed-helper.js +3 -3
  516. package/dist/search/factory.d.ts +3 -1
  517. package/dist/search/factory.js +18 -16
  518. package/dist/search/index.d.ts +3 -1
  519. package/dist/search/index.js +22 -20
  520. package/dist/search/lancedb-backend.d.ts +3 -1
  521. package/dist/search/lancedb-backend.js +6 -5
  522. package/dist/search/meilisearch-backend.d.ts +3 -1
  523. package/dist/search/meilisearch-backend.js +6 -5
  524. package/dist/search/noop-backend.d.ts +3 -1
  525. package/dist/search/orama-backend.d.ts +3 -1
  526. package/dist/search/orama-backend.js +6 -5
  527. package/dist/search/port.d.ts +16 -2
  528. package/dist/search/port.js +1 -1
  529. package/dist/search/remote-backend.d.ts +3 -1
  530. package/dist/search/remote-backend.js +3 -3
  531. package/dist/secure-store/index.d.ts +12 -1
  532. package/dist/secure-store/index.js +6 -3
  533. package/dist/{semantic-consolidation-C2m5eHHE.d.ts → semantic-consolidation-DILZEQq3.d.ts} +1 -1
  534. package/dist/semantic-consolidation.d.ts +4 -2
  535. package/dist/semantic-consolidation.js +38 -29
  536. package/dist/semantic-rule-promotion.js +34 -24
  537. package/dist/semantic-rule-verifier.d.ts +3 -1
  538. package/dist/semantic-rule-verifier.js +35 -25
  539. package/dist/session-observer-bands.d.ts +3 -1
  540. package/dist/session-observer-state.d.ts +3 -1
  541. package/dist/session-observer-state.js +2 -2
  542. package/dist/session-transcript-migration.js +2 -2
  543. package/dist/shared-context/manager.d.ts +11 -9
  544. package/dist/shared-context/manager.js +3 -3
  545. package/dist/signal.d.ts +3 -1
  546. package/dist/{storage-hr_Y2z5R.d.ts → storage-NIyKYD8g.d.ts} +489 -110
  547. package/dist/storage-guards.js +2 -2
  548. package/dist/storage.d.ts +6 -3
  549. package/dist/storage.js +38 -26
  550. package/dist/structured-attributes.d.ts +23 -1
  551. package/dist/structured-attributes.js +7 -1
  552. package/dist/summarizer.d.ts +3 -1
  553. package/dist/summarizer.js +11 -11
  554. package/dist/summary-snapshot.d.ts +3 -1
  555. package/dist/summary-snapshot.js +2 -2
  556. package/dist/temporal-index-batch.d.ts +1 -0
  557. package/dist/temporal-index-batch.js +10 -0
  558. package/dist/temporal-index-batch.js.map +1 -0
  559. package/dist/temporal-index-compat.d.ts +279 -1
  560. package/dist/temporal-index-compat.js +1 -1
  561. package/dist/temporal-index.d.ts +1 -225
  562. package/dist/temporal-index.js +35 -3
  563. package/dist/temporal-supersession.d.ts +5 -2
  564. package/dist/temporal-supersession.js +2 -2
  565. package/dist/temporal-timeline-recall.d.ts +3 -1
  566. package/dist/temporal-validity.d.ts +3 -1
  567. package/dist/threading.d.ts +3 -1
  568. package/dist/threading.js +2 -2
  569. package/dist/tier-migration.d.ts +5 -2
  570. package/dist/tier-routing.d.ts +3 -1
  571. package/dist/{tier-stats-KV7IWCJR.js → tier-stats-QEJSPFV2.js} +2 -2
  572. package/dist/tokens.js +3 -3
  573. package/dist/topics.d.ts +3 -1
  574. package/dist/transcript.d.ts +3 -1
  575. package/dist/transcript.js +2 -2
  576. package/dist/transfer/backup.js +3 -3
  577. package/dist/transfer/capsule-export.js +3 -3
  578. package/dist/transfer/capsule-import.js +3 -3
  579. package/dist/transfer/types.d.ts +90 -90
  580. package/dist/trust-score-stage.d.ts +75 -38
  581. package/dist/trust-score-stage.js +11 -3
  582. package/dist/trust-score.d.ts +3 -1
  583. package/dist/{types-Cg8q7W7_.d.ts → types-D_fG2ix8.d.ts} +39 -63
  584. package/dist/types-continuity.d.ts +52 -0
  585. package/dist/types-continuity.js +1 -0
  586. package/dist/types-continuity.js.map +1 -0
  587. package/dist/types.d.ts +3 -1
  588. package/dist/types.js +1 -1
  589. package/dist/utility-runtime.d.ts +3 -1
  590. package/dist/utils/serialize-mutations.d.ts +31 -2
  591. package/dist/utils/serialize-mutations.js +1 -1
  592. package/dist/verified-recall.js +36 -26
  593. package/dist/write-envelope.d.ts +282 -0
  594. package/dist/write-envelope.js +35 -0
  595. package/dist/write-envelope.js.map +1 -0
  596. package/dist/write-quarantine.d.ts +94 -0
  597. package/dist/write-quarantine.js +11 -0
  598. package/dist/write-quarantine.js.map +1 -0
  599. package/dist/write-rate-limiter.d.ts +45 -0
  600. package/dist/write-rate-limiter.js +9 -0
  601. package/dist/write-rate-limiter.js.map +1 -0
  602. package/package.json +37 -2
  603. package/src/access-admin-ops-surface.ts +17 -7
  604. package/src/access-boundary.test.ts +28 -0
  605. package/src/access-boundary.ts +31 -2
  606. package/src/access-citation.test.ts +72 -0
  607. package/src/access-citation.ts +139 -0
  608. package/src/access-errors.ts +21 -0
  609. package/src/access-fingerprint-parity.test.ts +211 -0
  610. package/src/access-http-cancellation.test.ts +59 -21
  611. package/src/access-http.test.ts +90 -0
  612. package/src/access-http.ts +79 -79
  613. package/src/access-mcp-cancellation.test.ts +16 -7
  614. package/src/access-memory-search-fanout.test.ts +220 -0
  615. package/src/access-memory-search-fanout.ts +168 -0
  616. package/src/access-observe-quarantine.test.ts +172 -0
  617. package/src/access-observe-write-surface.ts +137 -11
  618. package/src/access-operations-batch.ts +2 -0
  619. package/src/access-recall-concurrency.ts +773 -0
  620. package/src/access-recall-response.ts +307 -0
  621. package/src/access-recall-surface.ts +100 -252
  622. package/src/access-service-coding-write.test.ts +22 -4
  623. package/src/access-service-health.test.ts +49 -0
  624. package/src/access-service-namespace.test.ts +486 -8
  625. package/src/access-service-observe-scope.test.ts +4 -0
  626. package/src/access-service-recall-concurrency.test.ts +1990 -0
  627. package/src/access-service.ts +186 -179
  628. package/src/access-surface-catalog.ts +1 -0
  629. package/src/access-token-capabilities.ts +16 -9
  630. package/src/active-recall.test.ts +35 -0
  631. package/src/active-recall.ts +7 -0
  632. package/src/bounded-jsonl-state.ts +93 -0
  633. package/src/buffer-session.test.ts +422 -5
  634. package/src/buffer-surprise-trigger.test.ts +41 -0
  635. package/src/buffer.ts +218 -3
  636. package/src/capabilities-cluster-b.test.ts +1 -0
  637. package/src/capabilities.ts +5 -6
  638. package/src/cli.ts +21 -22
  639. package/src/coding/architecture-surfaces.test.ts +6 -3
  640. package/src/coding/architecture-surfaces.ts +36 -25
  641. package/src/coding/decision-surfaces.ts +42 -34
  642. package/src/compounding/engine.test.ts +5 -1
  643. package/src/compounding/engine.ts +7 -7
  644. package/src/config-qmd.ts +89 -0
  645. package/src/config.test.ts +136 -0
  646. package/src/config.ts +113 -118
  647. package/src/connector-provenance-lifecycle.test.ts +4 -4
  648. package/src/connectors/coerce.test.ts +131 -0
  649. package/src/connectors/coerce.ts +80 -7
  650. package/src/contradiction/contradiction.test.ts +10 -6
  651. package/src/contradiction/resolution.ts +17 -4
  652. package/src/correction/correction-access-wiring.ts +62 -18
  653. package/src/cross-namespace-budget.test.ts +35 -0
  654. package/src/cross-namespace-budget.ts +86 -19
  655. package/src/explicit-capture.ts +54 -17
  656. package/src/extraction.ts +2 -3
  657. package/src/faithfulness-graph-guard.test.ts +16 -69
  658. package/src/graph-recall.test.ts +31 -0
  659. package/src/index.ts +22 -2
  660. package/src/local-llm.ts +4 -6
  661. package/src/logger.ts +16 -0
  662. package/src/maintenance/dreams-ledger.ts +100 -49
  663. package/src/maintenance/rebuild-memory-lifecycle-ledger-cli.ts +77 -0
  664. package/src/maintenance/rebuild-memory-lifecycle-ledger.ts +373 -9
  665. package/src/memory-lifecycle-ledger-utils.ts +51 -5
  666. package/src/namespaces/principal.test.ts +37 -1
  667. package/src/namespaces/principal.ts +48 -0
  668. package/src/namespaces/search.test.ts +79 -5
  669. package/src/namespaces/search.ts +59 -6
  670. package/src/namespaces/storage.ts +43 -1
  671. package/src/offline-sync-exclude-globs.ts +58 -0
  672. package/src/offline-sync-impression-drain.test.ts +316 -0
  673. package/src/offline-sync-impression-drain.ts +260 -0
  674. package/src/offline-sync.test.ts +32 -5
  675. package/src/offline-sync.ts +1 -14
  676. package/src/operator-toolkit.ts +1 -1
  677. package/src/orchestration/batch-deindex-flush.test.ts +146 -0
  678. package/src/orchestration/consolidation-run.ts +96 -85
  679. package/src/orchestration/extraction-envelope.ts +94 -0
  680. package/src/orchestration/extraction-persist-promotion.ts +134 -0
  681. package/src/orchestration/extraction-persist.ts +325 -260
  682. package/src/orchestration/extraction-run.test.ts +1 -1
  683. package/src/orchestration/extraction-run.ts +2 -2
  684. package/src/orchestration/graph-recall-coordinator.ts +18 -7
  685. package/src/orchestration/lifecycle-policy-coordinator.ts +63 -48
  686. package/src/orchestration/maintenance.test.ts +2103 -3
  687. package/src/orchestration/maintenance.ts +574 -2
  688. package/src/orchestration/namespace-read-fanout.ts +14 -8
  689. package/src/orchestration/orchestrator-helpers.ts +8 -1
  690. package/src/orchestration/orchestrator-init.ts +22 -6
  691. package/src/orchestration/orchestrator-namespace-scope.ts +71 -0
  692. package/src/orchestration/persistence-index.ts +64 -9
  693. package/src/orchestration/qmd-result-resolver.ts +27 -0
  694. package/src/orchestration/recall-entry.ts +34 -19
  695. package/src/orchestration/recall-internal.ts +207 -79
  696. package/src/orchestration/recall-rerank-coordinator.ts +229 -82
  697. package/src/orchestration/recall-result-formatter.ts +76 -20
  698. package/src/orchestration/recall-search-pipeline.test.ts +70 -0
  699. package/src/orchestration/recall-search-pipeline.ts +102 -129
  700. package/src/orchestration/recall-section-coordinator.ts +315 -85
  701. package/src/orchestration/semantic-consolidation-coordinator.ts +69 -37
  702. package/src/orchestration/session-context.ts +21 -0
  703. package/src/orchestration/workspace-ops.test.ts +348 -0
  704. package/src/orchestration/workspace-ops.ts +168 -34
  705. package/src/orchestrator-chunked-hash-durability.test.ts +126 -0
  706. package/src/orchestrator-connector-dedup.test.ts +1061 -40
  707. package/src/orchestrator-flush.test.ts +155 -39
  708. package/src/orchestrator-nonchunked-hash-durability.test.ts +121 -0
  709. package/src/orchestrator-source-attribution.test.ts +9 -9
  710. package/src/orchestrator.ts +160 -149
  711. package/src/prioritized-embed.ts +123 -0
  712. package/src/proactive-contention.test.ts +80 -0
  713. package/src/proactive-contention.ts +39 -0
  714. package/src/procedural/procedure-miner.test.ts +19 -14
  715. package/src/procedural/procedure-miner.ts +44 -13
  716. package/src/qmd-client.test.ts +111 -1
  717. package/src/qmd-status.ts +186 -0
  718. package/src/qmd.ts +47 -47
  719. package/src/recall-budget-config.test.ts +30 -0
  720. package/src/recall-cold-deadline.test.ts +149 -0
  721. package/src/recall-concurrency-config.ts +28 -0
  722. package/src/recall-memory-map.ts +74 -0
  723. package/src/recall-rerank-coordinator.test.ts +508 -0
  724. package/src/recall-state.test.ts +825 -1
  725. package/src/recall-state.ts +406 -7
  726. package/src/recall-timings-access.test.ts +41 -0
  727. package/src/recall-timings.ts +16 -0
  728. package/src/relay/mission-access.test.ts +5 -5
  729. package/src/rerank.ts +22 -0
  730. package/src/retrieval-agents.test.ts +79 -0
  731. package/src/retrieval-agents.ts +71 -19
  732. package/src/salvage-envelope.ts +28 -0
  733. package/src/scopes/scope-plan.test.ts +42 -0
  734. package/src/scopes/scope-plan.ts +45 -0
  735. package/src/search/port.ts +13 -0
  736. package/src/secure-store/index.ts +1 -0
  737. package/src/secure-store/secure-fs.ts +48 -0
  738. package/src/secure-store/secure-store.test.ts +40 -0
  739. package/src/semantic-rule-promotion.ts +13 -4
  740. package/src/storage/content-hash-index.ts +655 -0
  741. package/src/storage/entity-timeline.ts +473 -0
  742. package/src/storage/memory-lifecycle-ledger-access.ts +603 -0
  743. package/src/storage/secure-line-reader.test.ts +197 -0
  744. package/src/storage/secure-line-reader.ts +181 -3
  745. package/src/storage-append-header-sniff.test.ts +195 -0
  746. package/src/storage-behavior-signals-cache.test.ts +237 -0
  747. package/src/storage-contract/cache-coherence.test.ts +96 -1
  748. package/src/storage-contract/content-hash.test.ts +47 -2
  749. package/src/storage-fact-hash-index-defer.test.ts +1200 -0
  750. package/src/storage-memory-lifecycle-ledger.test.ts +1146 -3
  751. package/src/storage.ts +882 -890
  752. package/src/structured-attributes.ts +52 -0
  753. package/src/temporal-index-batch.ts +112 -0
  754. package/src/temporal-index.test.ts +193 -0
  755. package/src/temporal-index.ts +49 -53
  756. package/src/testing/lifecycle-matrix.test.ts +212 -0
  757. package/src/testing/lifecycle-matrix.ts +271 -0
  758. package/src/testing/orchestrator-lite.ts +236 -0
  759. package/src/testing/subjects/dreams-ledger.test.ts +67 -0
  760. package/src/testing/subjects/extraction-lifecycle.test.ts +442 -0
  761. package/src/testing/subjects/lifecycle-ledger.test.ts +93 -0
  762. package/src/testing/subjects/recall-budget.test.ts +461 -0
  763. package/src/testing/subjects/serialized-write-chain.test.ts +224 -0
  764. package/src/trust-score-stage.test.ts +154 -0
  765. package/src/trust-score-stage.ts +216 -53
  766. package/src/types-continuity.ts +57 -0
  767. package/src/types.ts +51 -77
  768. package/src/utils/path-containment.test.ts +75 -0
  769. package/src/utils/path-containment.ts +76 -0
  770. package/src/utils/serialize-mutations.test.ts +122 -0
  771. package/src/utils/serialize-mutations.ts +68 -3
  772. package/src/wearables/memory-gen.test.ts +31 -9
  773. package/src/wearables/memory-gen.ts +95 -55
  774. package/src/wearables/pipeline.test.ts +10 -7
  775. package/src/wearables/service.test.ts +6 -8
  776. package/src/wearables/service.ts +2 -2
  777. package/src/write-envelope.extension.test.ts +111 -0
  778. package/src/write-envelope.test.ts +683 -0
  779. package/src/write-envelope.ts +902 -0
  780. package/src/write-quarantine.test.ts +245 -0
  781. package/src/write-quarantine.ts +290 -0
  782. package/src/write-rate-limiter.test.ts +105 -0
  783. package/src/write-rate-limiter.ts +135 -0
  784. package/src/write-sealed-parity.test.ts +204 -0
  785. package/dist/chunk-2VN4JAX7.js.map +0 -1
  786. package/dist/chunk-37CTGERM.js.map +0 -1
  787. package/dist/chunk-3IY64MV6.js.map +0 -1
  788. package/dist/chunk-BCDKBDSY.js.map +0 -1
  789. package/dist/chunk-BFPETA3S.js.map +0 -1
  790. package/dist/chunk-BFVEEB7W.js.map +0 -1
  791. package/dist/chunk-BS4SGLWV.js.map +0 -1
  792. package/dist/chunk-DCFV7A7H.js.map +0 -1
  793. package/dist/chunk-DYP3YYJJ.js.map +0 -1
  794. package/dist/chunk-E5BK6CGV.js +0 -335
  795. package/dist/chunk-E5BK6CGV.js.map +0 -1
  796. package/dist/chunk-FTYDWKO6.js.map +0 -1
  797. package/dist/chunk-GWTFLF2P.js.map +0 -1
  798. package/dist/chunk-IKQTFQMI.js.map +0 -1
  799. package/dist/chunk-INELTPRG.js.map +0 -1
  800. package/dist/chunk-J2HSAU72.js.map +0 -1
  801. package/dist/chunk-JREB6UFH.js.map +0 -1
  802. package/dist/chunk-K7LOWSLU.js.map +0 -1
  803. package/dist/chunk-KQDNAXOM.js.map +0 -1
  804. package/dist/chunk-KSBEEMQF.js.map +0 -1
  805. package/dist/chunk-KSNVDPDF.js.map +0 -1
  806. package/dist/chunk-LC7OODWZ.js.map +0 -1
  807. package/dist/chunk-LTJAMRGI.js.map +0 -1
  808. package/dist/chunk-LZOV7MX7.js.map +0 -1
  809. package/dist/chunk-NWTGD4AN.js.map +0 -1
  810. package/dist/chunk-ODPLEWB6.js.map +0 -1
  811. package/dist/chunk-OVJ2HIPE.js.map +0 -1
  812. package/dist/chunk-PBSAPHHA.js.map +0 -1
  813. package/dist/chunk-PHK3HARR.js +0 -32
  814. package/dist/chunk-PHK3HARR.js.map +0 -1
  815. package/dist/chunk-PLQE6MJA.js.map +0 -1
  816. package/dist/chunk-QKQYXZVS.js.map +0 -1
  817. package/dist/chunk-QQGPUKMT.js.map +0 -1
  818. package/dist/chunk-RANHFI3P.js +0 -8
  819. package/dist/chunk-RANHFI3P.js.map +0 -1
  820. package/dist/chunk-RAR2BSEM.js.map +0 -1
  821. package/dist/chunk-RULE4VG5.js.map +0 -1
  822. package/dist/chunk-SVOZFLIQ.js +0 -16
  823. package/dist/chunk-SVOZFLIQ.js.map +0 -1
  824. package/dist/chunk-T7Y5KPLN.js.map +0 -1
  825. package/dist/chunk-TXLGHDHS.js.map +0 -1
  826. package/dist/chunk-VDW4VU7B.js.map +0 -1
  827. package/dist/chunk-VSMRDBFT.js +0 -17
  828. package/dist/chunk-VSMRDBFT.js.map +0 -1
  829. package/dist/chunk-X64YLC24.js.map +0 -1
  830. package/dist/chunk-XDSXEKYK.js +0 -118
  831. package/dist/chunk-XDSXEKYK.js.map +0 -1
  832. package/dist/chunk-YF6FMLBT.js.map +0 -1
  833. package/dist/resolution-VH4NGENZ.js +0 -12
  834. /package/dist/{capsule-crypto-CZJSLEFG.js.map → access-citation.js.map} +0 -0
  835. /package/dist/{contradiction-scan-J57T5QV7.js.map → access-memory-search-fanout.js.map} +0 -0
  836. /package/dist/{dreams-ledger-6UODQOX6.js.map → access-recall-concurrency.js.map} +0 -0
  837. /package/dist/{graph-edge-decay-IOGBBAGC.js.map → access-recall-response.js.map} +0 -0
  838. /package/dist/{resolution-VH4NGENZ.js.map → bounded-jsonl-state.js.map} +0 -0
  839. /package/dist/{chunk-A3GOMRJG.js.map → chunk-23L3IXFD.js.map} +0 -0
  840. /package/dist/{chunk-MRHFJV44.js.map → chunk-2DQ2XREU.js.map} +0 -0
  841. /package/dist/{chunk-L2B3EE7B.js.map → chunk-2QMKMVHH.js.map} +0 -0
  842. /package/dist/{chunk-VJVNLNDQ.js.map → chunk-2UFO7X4Q.js.map} +0 -0
  843. /package/dist/{chunk-2MR3MFQB.js.map → chunk-2VEOKUPP.js.map} +0 -0
  844. /package/dist/{chunk-RHOZ5LLO.js.map → chunk-347WD2LE.js.map} +0 -0
  845. /package/dist/{chunk-HDTQVNWD.js.map → chunk-3QAH2S33.js.map} +0 -0
  846. /package/dist/{chunk-LRNMRXJO.js.map → chunk-3Y224NYC.js.map} +0 -0
  847. /package/dist/{chunk-VFSP73LP.js.map → chunk-45GF7Y3V.js.map} +0 -0
  848. /package/dist/{chunk-OEHCMALU.js.map → chunk-5I4M26Q7.js.map} +0 -0
  849. /package/dist/{chunk-2AZXIZEN.js.map → chunk-5Q7EVV4X.js.map} +0 -0
  850. /package/dist/{chunk-PUBTHW5O.js.map → chunk-6DRPPQEJ.js.map} +0 -0
  851. /package/dist/{chunk-FDCTQWLW.js.map → chunk-6O22TZSB.js.map} +0 -0
  852. /package/dist/{chunk-ZQ7UBUZ6.js.map → chunk-6QYST5XN.js.map} +0 -0
  853. /package/dist/{chunk-W4PGTAS2.js.map → chunk-6WAFYNVT.js.map} +0 -0
  854. /package/dist/{chunk-R5VAVVHP.js.map → chunk-72A4L5JJ.js.map} +0 -0
  855. /package/dist/{chunk-3FAMU5TX.js.map → chunk-A6USBZTO.js.map} +0 -0
  856. /package/dist/{chunk-ZHIVCODT.js.map → chunk-A72SWTWW.js.map} +0 -0
  857. /package/dist/{chunk-FC77VUX5.js.map → chunk-A7Q43EUZ.js.map} +0 -0
  858. /package/dist/{chunk-UJBESW6X.js.map → chunk-AE7WMV4V.js.map} +0 -0
  859. /package/dist/{chunk-A5UXZRRM.js.map → chunk-AJ7QCSIS.js.map} +0 -0
  860. /package/dist/{chunk-FNMFJWBY.js.map → chunk-ANEUPF6O.js.map} +0 -0
  861. /package/dist/{chunk-2A3OXAP2.js.map → chunk-B7RWBZXW.js.map} +0 -0
  862. /package/dist/{chunk-74F5STS4.js.map → chunk-BLAKS3CP.js.map} +0 -0
  863. /package/dist/{chunk-M7VGG3ID.js.map → chunk-BV5WMSIJ.js.map} +0 -0
  864. /package/dist/{chunk-2BFLDH5F.js.map → chunk-BXLOS5AJ.js.map} +0 -0
  865. /package/dist/{chunk-UXKMMNJD.js.map → chunk-C23BYTJV.js.map} +0 -0
  866. /package/dist/{chunk-JZHHREBL.js.map → chunk-C3AKM55W.js.map} +0 -0
  867. /package/dist/{chunk-RP7YXA67.js.map → chunk-C5JF6EZ7.js.map} +0 -0
  868. /package/dist/{chunk-EHCONI6E.js.map → chunk-CQMEM5CC.js.map} +0 -0
  869. /package/dist/{chunk-PBNZVPFS.js.map → chunk-CXZQOVIE.js.map} +0 -0
  870. /package/dist/{chunk-7N2RUBAP.js.map → chunk-DDA47TES.js.map} +0 -0
  871. /package/dist/{chunk-64SE4X5G.js.map → chunk-DEBHXHJR.js.map} +0 -0
  872. /package/dist/{chunk-EHK6KZHK.js.map → chunk-DNHVPZOD.js.map} +0 -0
  873. /package/dist/{chunk-437S3G37.js.map → chunk-DQEMWVMT.js.map} +0 -0
  874. /package/dist/{chunk-LZZNTPLR.js.map → chunk-DX3XRGLH.js.map} +0 -0
  875. /package/dist/{chunk-DZKHSDOM.js.map → chunk-ES36HTSC.js.map} +0 -0
  876. /package/dist/{chunk-TN7THW5U.js.map → chunk-ET356KSB.js.map} +0 -0
  877. /package/dist/{chunk-YNDLCWXS.js.map → chunk-EZ25VE3G.js.map} +0 -0
  878. /package/dist/{chunk-DMSDUGDM.js.map → chunk-F7GAIWFA.js.map} +0 -0
  879. /package/dist/{chunk-G6XXLKC5.js.map → chunk-FFPJINJE.js.map} +0 -0
  880. /package/dist/{chunk-G4CN3ZXL.js.map → chunk-FUTF72MJ.js.map} +0 -0
  881. /package/dist/{chunk-HF77M34J.js.map → chunk-GFPZS3F5.js.map} +0 -0
  882. /package/dist/{chunk-G6NKALRN.js.map → chunk-H4WG3UQZ.js.map} +0 -0
  883. /package/dist/{chunk-UDQUSU27.js.map → chunk-HNZKVLAN.js.map} +0 -0
  884. /package/dist/{chunk-5EZXHU36.js.map → chunk-HYQJQGD3.js.map} +0 -0
  885. /package/dist/{chunk-TRWPCR6P.js.map → chunk-JECBQBEX.js.map} +0 -0
  886. /package/dist/{chunk-E6CBU7XP.js.map → chunk-JYIFGGEM.js.map} +0 -0
  887. /package/dist/{chunk-VA4WSW54.js.map → chunk-JYIJNNN3.js.map} +0 -0
  888. /package/dist/{chunk-L5HJQC36.js.map → chunk-K2TDK7GG.js.map} +0 -0
  889. /package/dist/{chunk-KDXVOFYY.js.map → chunk-KAVBJSBQ.js.map} +0 -0
  890. /package/dist/{chunk-4OKLXWDZ.js.map → chunk-KNB7IBBU.js.map} +0 -0
  891. /package/dist/{chunk-QLULYKWZ.js.map → chunk-KSXJOC4F.js.map} +0 -0
  892. /package/dist/{chunk-2S6QHZGJ.js.map → chunk-L2DPF4DF.js.map} +0 -0
  893. /package/dist/{chunk-JI5AVXYO.js.map → chunk-LEPOP46W.js.map} +0 -0
  894. /package/dist/{chunk-O7BBFJLP.js.map → chunk-LTAVSOZW.js.map} +0 -0
  895. /package/dist/{chunk-2IZAGAJR.js.map → chunk-LULR4IUW.js.map} +0 -0
  896. /package/dist/{chunk-WMWVO45V.js.map → chunk-MC6XO7T4.js.map} +0 -0
  897. /package/dist/{chunk-D6RIFG4O.js.map → chunk-MNB5RMAY.js.map} +0 -0
  898. /package/dist/{chunk-Q5WG43OP.js.map → chunk-MYFQ3ED4.js.map} +0 -0
  899. /package/dist/{chunk-V3UE5I5F.js.map → chunk-MYVPLJOO.js.map} +0 -0
  900. /package/dist/{chunk-MTWKDOVO.js.map → chunk-NLE6TSLG.js.map} +0 -0
  901. /package/dist/{chunk-DBRYEIGY.js.map → chunk-OJP3N7UK.js.map} +0 -0
  902. /package/dist/{chunk-SMX5267P.js.map → chunk-OZKOPQCM.js.map} +0 -0
  903. /package/dist/{chunk-JCK7V6SN.js.map → chunk-P65YJEEL.js.map} +0 -0
  904. /package/dist/{chunk-MTR7BZQN.js.map → chunk-PBGWYM3H.js.map} +0 -0
  905. /package/dist/{chunk-AXTXN4T6.js.map → chunk-PWFCHOB3.js.map} +0 -0
  906. /package/dist/{chunk-FDPZVY6D.js.map → chunk-QFN4U7AG.js.map} +0 -0
  907. /package/dist/{chunk-K2ZLHESQ.js.map → chunk-QIEUU4UK.js.map} +0 -0
  908. /package/dist/{chunk-3D6AFGQR.js.map → chunk-QVT3E4CE.js.map} +0 -0
  909. /package/dist/{chunk-SFQ6QNL7.js.map → chunk-R6YJI3HE.js.map} +0 -0
  910. /package/dist/{chunk-5CJVLG3H.js.map → chunk-RFDD3B7W.js.map} +0 -0
  911. /package/dist/{chunk-JBPKEARU.js.map → chunk-RKNJBZ55.js.map} +0 -0
  912. /package/dist/{chunk-FNZQGN76.js.map → chunk-S2BBISHU.js.map} +0 -0
  913. /package/dist/{chunk-IALLX7EE.js.map → chunk-S2FSBU4H.js.map} +0 -0
  914. /package/dist/{chunk-7K5Q6COX.js.map → chunk-TVVEYCNW.js.map} +0 -0
  915. /package/dist/{chunk-DPAENM7O.js.map → chunk-U3ZAVRP3.js.map} +0 -0
  916. /package/dist/{chunk-4KJLYTLS.js.map → chunk-V57NLO5P.js.map} +0 -0
  917. /package/dist/{chunk-FLVL4L3L.js.map → chunk-VDX2J7OX.js.map} +0 -0
  918. /package/dist/{chunk-AJLLIIML.js.map → chunk-W4FBGYGK.js.map} +0 -0
  919. /package/dist/{chunk-6SXVCD7W.js.map → chunk-W7IGLX4G.js.map} +0 -0
  920. /package/dist/{chunk-KAWTOYAW.js.map → chunk-WLZYGLJ4.js.map} +0 -0
  921. /package/dist/{chunk-RO4LQGT3.js.map → chunk-WON4APQY.js.map} +0 -0
  922. /package/dist/{chunk-PQVK2S3J.js.map → chunk-WZFAPHIK.js.map} +0 -0
  923. /package/dist/{chunk-KQPJLK3X.js.map → chunk-XL24QQ63.js.map} +0 -0
  924. /package/dist/{chunk-RVZRYUQH.js.map → chunk-YROFNEG5.js.map} +0 -0
  925. /package/dist/{chunk-VRAD2FGO.js.map → chunk-Z54EM5YZ.js.map} +0 -0
  926. /package/dist/{first-start-migration-TI67YMLG.js.map → first-start-migration-CSRHCJIQ.js.map} +0 -0
  927. /package/dist/{forget-CQCLB5LB.js.map → forget-HRPLVB3W.js.map} +0 -0
  928. /package/dist/{purge-NDWV6WYD.js.map → purge-IRF47ZTX.js.map} +0 -0
  929. /package/dist/{tier-stats-KV7IWCJR.js.map → tier-stats-QEJSPFV2.js.map} +0 -0
@@ -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 { RecallSectionCoordinator } from "./orchestration/recall-section-coordinator.js";
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
- { count: number; lastAccessed: string }
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
- // Issue #1903: flush any coalesced namespace-catalog touches before teardown
952
- // so a long-lived host does not drop buffered read/write timestamps.
953
- await this.namespaceCatalog.flushPendingTouches().catch(() => undefined);
954
- await this.namespaceSearchRouter.dispose();
955
- await (this.qmd as { dispose?: () => void | Promise<void> }).dispose?.();
956
- if (this.conversationQmd && this.conversationQmd !== this.qmd) {
957
- await (this.conversationQmd as { dispose?: () => void | Promise<void> }).dispose?.();
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
- if (!this.contentHashIndex) {
1254
- this.contentHashIndex = this.storage.createContentHashIndex();
1255
- await this.contentHashIndex.load();
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.qmdCollectionNamespaceFromPrefix(prefix),
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: Map<string, string[]>,
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: Map<string, string[]>,
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
- return this.extractionPersistCoordinator.persistExtraction(
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: Map<string, string[]>;
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(results, namespaces, caps, label);
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: Map<string, string[]>,
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
- if (!resolveNamespaceCapabilities(this.config).namespaces) return {};
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(memoryIds: string[]): void {
3649
- if (!resolveRecallEnhancementCapabilities(this.config).accessTracking) return;
3650
-
3651
- const now = new Date().toISOString();
3652
- for (const id of memoryIds) {
3653
- const existing = this.accessTrackingBuffer.get(id);
3654
- this.accessTrackingBuffer.set(id, {
3655
- count: (existing?.count ?? 0) + 1,
3656
- lastAccessed: now,
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(/([^/]+)\.md$/);
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[]> {