@remnic/core 9.7.14 → 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.
Files changed (950) hide show
  1. package/dist/access-admin-ops-surface.d.ts +13 -6
  2. package/dist/access-admin-ops-surface.js +88 -74
  3. package/dist/access-audit.js +2 -2
  4. package/dist/access-boundary.d.ts +35 -17
  5. package/dist/access-boundary.js +89 -77
  6. package/dist/access-citation.d.ts +28 -0
  7. package/dist/access-citation.js +9 -0
  8. package/dist/access-cli.js +197 -181
  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 +103 -90
  14. package/dist/access-identity-continuity-surface.d.ts +13 -8
  15. package/dist/access-identity-continuity-surface.js +88 -74
  16. package/dist/access-lcm-surface.d.ts +16 -9
  17. package/dist/access-lcm-surface.js +88 -74
  18. package/dist/access-mcp.d.ts +23 -16
  19. package/dist/access-mcp.js +99 -87
  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 +88 -74
  24. package/dist/access-operations-batch.js +95 -83
  25. package/dist/access-operations.d.ts +26 -19
  26. package/dist/access-operations.js +97 -85
  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 +88 -74
  33. package/dist/access-schema.d.ts +34 -34
  34. package/dist/access-schema.js +8 -6
  35. package/dist/{access-service-CPhSnLOH.d.ts → access-service-DEL4qCrc.d.ts} +25 -32
  36. package/dist/access-service.d.ts +13 -6
  37. package/dist/access-service.js +92 -75
  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 +37 -27
  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/{capsule-merge-Z2HUO6IK.js → capsule-merge-5KKJQBWQ.js} +4 -4
  73. package/dist/{catalog-uX9sT9ws.d.ts → catalog-BWqHb5HT.d.ts} +1 -1
  74. package/dist/causal-behavior.d.ts +3 -1
  75. package/dist/causal-behavior.js +6 -6
  76. package/dist/causal-chain.js +4 -4
  77. package/dist/causal-consolidation.d.ts +3 -1
  78. package/dist/causal-consolidation.js +46 -37
  79. package/dist/causal-consolidation.js.map +1 -1
  80. package/dist/causal-retrieval.js +6 -6
  81. package/dist/causal-trajectory-graph.d.ts +3 -1
  82. package/dist/causal-trajectory-graph.js +1 -1
  83. package/dist/causal-trajectory.js +1 -1
  84. package/dist/{chunk-A3GOMRJG.js → chunk-23L3IXFD.js} +2 -2
  85. package/dist/chunk-2CGLBUW3.js +15 -0
  86. package/dist/chunk-2CGLBUW3.js.map +1 -0
  87. package/dist/{chunk-MRHFJV44.js → chunk-2DQ2XREU.js} +2 -2
  88. package/dist/{chunk-ASKEM4AR.js → chunk-2EJOEICD.js} +1823 -1483
  89. package/dist/chunk-2EJOEICD.js.map +1 -0
  90. package/dist/{chunk-L2B3EE7B.js → chunk-2QMKMVHH.js} +2 -2
  91. package/dist/{chunk-6CALL5VN.js → chunk-2UFO7X4Q.js} +7 -7
  92. package/dist/{chunk-2MR3MFQB.js → chunk-2VEOKUPP.js} +3 -3
  93. package/dist/chunk-2Z24E5W2.js +22 -0
  94. package/dist/chunk-2Z24E5W2.js.map +1 -0
  95. package/dist/{chunk-RHOZ5LLO.js → chunk-347WD2LE.js} +2 -2
  96. package/dist/{chunk-5S7Z5SHA.js → chunk-34RC5RT7.js} +2 -2
  97. package/dist/{chunk-KGWXHWAH.js → chunk-3QAH2S33.js} +3 -3
  98. package/dist/{chunk-37CTGERM.js → chunk-3WCASNQZ.js} +12 -1
  99. package/dist/chunk-3WCASNQZ.js.map +1 -0
  100. package/dist/{chunk-ZIDSD6VC.js → chunk-3Y224NYC.js} +3 -3
  101. package/dist/{chunk-RBQLJSJ7.js → chunk-44XZ75OQ.js} +46 -10
  102. package/dist/chunk-44XZ75OQ.js.map +1 -0
  103. package/dist/{chunk-VFSP73LP.js → chunk-45GF7Y3V.js} +2 -2
  104. package/dist/{chunk-7ICYQUOL.js → chunk-4BJQODZF.js} +2514 -1526
  105. package/dist/chunk-4BJQODZF.js.map +1 -0
  106. package/dist/{chunk-JMBVCAR4.js → chunk-57OWKFUQ.js} +17 -6
  107. package/dist/chunk-57OWKFUQ.js.map +1 -0
  108. package/dist/{chunk-OEHCMALU.js → chunk-5I4M26Q7.js} +5 -5
  109. package/dist/{chunk-2E6G7FCE.js → chunk-5Q7EVV4X.js} +7 -7
  110. package/dist/{chunk-LC7OODWZ.js → chunk-5SB7SC2G.js} +80 -49
  111. package/dist/chunk-5SB7SC2G.js.map +1 -0
  112. package/dist/{chunk-VZ5OJE4X.js → chunk-5VQJBH2G.js} +2 -2
  113. package/dist/{chunk-PUBTHW5O.js → chunk-6DRPPQEJ.js} +2 -2
  114. package/dist/{chunk-NWTGD4AN.js → chunk-6KIQT7RG.js} +10 -9
  115. package/dist/chunk-6KIQT7RG.js.map +1 -0
  116. package/dist/{chunk-4LEF6XWJ.js → chunk-6O22TZSB.js} +3 -3
  117. package/dist/{chunk-ZQ7UBUZ6.js → chunk-6QYST5XN.js} +6 -6
  118. package/dist/{chunk-W4PGTAS2.js → chunk-6WAFYNVT.js} +3 -3
  119. package/dist/chunk-6ZMAMSHS.js +20 -0
  120. package/dist/chunk-6ZMAMSHS.js.map +1 -0
  121. package/dist/{chunk-R5VAVVHP.js → chunk-72A4L5JJ.js} +2 -2
  122. package/dist/{chunk-X64YLC24.js → chunk-72VAXGEI.js} +5 -13
  123. package/dist/chunk-72VAXGEI.js.map +1 -0
  124. package/dist/{chunk-IKQTFQMI.js → chunk-755Q3DGF.js} +22 -3
  125. package/dist/chunk-755Q3DGF.js.map +1 -0
  126. package/dist/{chunk-F7AU34FC.js → chunk-76GLCM57.js} +160 -127
  127. package/dist/chunk-76GLCM57.js.map +1 -0
  128. package/dist/{chunk-D7FOKIY5.js → chunk-7AMFUATK.js} +12 -9
  129. package/dist/{chunk-D7FOKIY5.js.map → chunk-7AMFUATK.js.map} +1 -1
  130. package/dist/{chunk-BFVEEB7W.js → chunk-7ON2JW73.js} +57 -22
  131. package/dist/chunk-7ON2JW73.js.map +1 -0
  132. package/dist/chunk-7RNBVZZO.js +270 -0
  133. package/dist/chunk-7RNBVZZO.js.map +1 -0
  134. package/dist/{chunk-3FAMU5TX.js → chunk-A6USBZTO.js} +2 -2
  135. package/dist/{chunk-TXVD7PLT.js → chunk-A72SWTWW.js} +7 -7
  136. package/dist/{chunk-FC77VUX5.js → chunk-A7Q43EUZ.js} +2 -2
  137. package/dist/{chunk-UJBESW6X.js → chunk-AE7WMV4V.js} +7 -7
  138. package/dist/{chunk-J2HSAU72.js → chunk-AIK5W3IW.js} +29 -1
  139. package/dist/chunk-AIK5W3IW.js.map +1 -0
  140. package/dist/{chunk-OKUEZOGW.js → chunk-AITCS2RC.js} +2 -2
  141. package/dist/{chunk-OC35KQIN.js → chunk-AJ7QCSIS.js} +4 -4
  142. package/dist/{chunk-FNMFJWBY.js → chunk-ANEUPF6O.js} +5 -5
  143. package/dist/chunk-AREGMX2J.js +50 -0
  144. package/dist/chunk-AREGMX2J.js.map +1 -0
  145. package/dist/chunk-AVPXXV6J.js +448 -0
  146. package/dist/chunk-AVPXXV6J.js.map +1 -0
  147. package/dist/{chunk-2A3OXAP2.js → chunk-B7RWBZXW.js} +2 -2
  148. package/dist/{chunk-GWTFLF2P.js → chunk-BJMBJZ2Y.js} +59 -59
  149. package/dist/chunk-BJMBJZ2Y.js.map +1 -0
  150. package/dist/{chunk-N3JDIRBW.js → chunk-BLAKS3CP.js} +4 -4
  151. package/dist/{chunk-M7VGG3ID.js → chunk-BV5WMSIJ.js} +9 -9
  152. package/dist/{chunk-2BFLDH5F.js → chunk-BXLOS5AJ.js} +2 -2
  153. package/dist/{chunk-UXKMMNJD.js → chunk-C23BYTJV.js} +6 -6
  154. package/dist/{chunk-JZHHREBL.js → chunk-C3AKM55W.js} +2 -2
  155. package/dist/{chunk-RP7YXA67.js → chunk-C5JF6EZ7.js} +2 -2
  156. package/dist/{chunk-FBNWOMCE.js → chunk-C6XBRYVD.js} +16 -15
  157. package/dist/chunk-C6XBRYVD.js.map +1 -0
  158. package/dist/{chunk-FTYDWKO6.js → chunk-CEN6DW6X.js} +12 -2
  159. package/dist/chunk-CEN6DW6X.js.map +1 -0
  160. package/dist/chunk-CGASUJVP.js +421 -0
  161. package/dist/chunk-CGASUJVP.js.map +1 -0
  162. package/dist/{chunk-DDGV7NAX.js → chunk-CQMEM5CC.js} +2 -2
  163. package/dist/{chunk-A7B4RMQG.js → chunk-CXZQOVIE.js} +12 -12
  164. package/dist/chunk-D3V3UMET.js +44 -0
  165. package/dist/chunk-D3V3UMET.js.map +1 -0
  166. package/dist/{chunk-7N2RUBAP.js → chunk-DDA47TES.js} +2 -2
  167. package/dist/{chunk-64SE4X5G.js → chunk-DEBHXHJR.js} +3 -3
  168. package/dist/{chunk-EHK6KZHK.js → chunk-DNHVPZOD.js} +2 -2
  169. package/dist/{chunk-437S3G37.js → chunk-DQEMWVMT.js} +2 -2
  170. package/dist/{chunk-LZZNTPLR.js → chunk-DX3XRGLH.js} +2 -2
  171. package/dist/chunk-EA2H5LML.js +72 -0
  172. package/dist/chunk-EA2H5LML.js.map +1 -0
  173. package/dist/{chunk-IFJ23BHU.js → chunk-EEC7UJPX.js} +112 -106
  174. package/dist/chunk-EEC7UJPX.js.map +1 -0
  175. package/dist/{chunk-KSNVDPDF.js → chunk-EKBNDKDY.js} +21 -20
  176. package/dist/chunk-EKBNDKDY.js.map +1 -0
  177. package/dist/{chunk-YF6FMLBT.js → chunk-EQWEIIKQ.js} +64 -34
  178. package/dist/chunk-EQWEIIKQ.js.map +1 -0
  179. package/dist/{chunk-7MW3CVLD.js → chunk-ES36HTSC.js} +4 -4
  180. package/dist/{chunk-TN7THW5U.js → chunk-ET356KSB.js} +2 -2
  181. package/dist/{chunk-YNDLCWXS.js → chunk-EZ25VE3G.js} +4 -4
  182. package/dist/{chunk-7LFXDGLH.js → chunk-F7GAIWFA.js} +20 -20
  183. package/dist/{chunk-IKSELOIV.js → chunk-FFPJINJE.js} +7 -7
  184. package/dist/chunk-FMLKOL2Z.js +636 -0
  185. package/dist/chunk-FMLKOL2Z.js.map +1 -0
  186. package/dist/chunk-FQC3DHH2.js +20 -0
  187. package/dist/chunk-FQC3DHH2.js.map +1 -0
  188. package/dist/{chunk-V53GJUSL.js → chunk-FUTF72MJ.js} +15 -15
  189. package/dist/chunk-GCASGYIO.js +71 -0
  190. package/dist/chunk-GCASGYIO.js.map +1 -0
  191. package/dist/{chunk-5UNWK7KU.js → chunk-GFPZS3F5.js} +8 -8
  192. package/dist/{chunk-BCDKBDSY.js → chunk-GNVZQ5JN.js} +99 -41
  193. package/dist/chunk-GNVZQ5JN.js.map +1 -0
  194. package/dist/{chunk-G6NKALRN.js → chunk-H4WG3UQZ.js} +2 -2
  195. package/dist/{chunk-HLTAPHZZ.js → chunk-HNZKVLAN.js} +2 -2
  196. package/dist/{chunk-5EZXHU36.js → chunk-HYQJQGD3.js} +2 -2
  197. package/dist/{chunk-ANADNYWK.js → chunk-IDZFBSHN.js} +8 -6
  198. package/dist/{chunk-ANADNYWK.js.map → chunk-IDZFBSHN.js.map} +1 -1
  199. package/dist/{chunk-XVLEGMJI.js → chunk-IFH6LWTO.js} +50 -8
  200. package/dist/chunk-IFH6LWTO.js.map +1 -0
  201. package/dist/{chunk-RULE4VG5.js → chunk-ILGC6JH6.js} +21 -6
  202. package/dist/chunk-ILGC6JH6.js.map +1 -0
  203. package/dist/chunk-IUM3VSHI.js +113 -0
  204. package/dist/chunk-IUM3VSHI.js.map +1 -0
  205. package/dist/{chunk-ND5M64JJ.js → chunk-IYNGIMVG.js} +101 -91
  206. package/dist/chunk-IYNGIMVG.js.map +1 -0
  207. package/dist/{chunk-TRWPCR6P.js → chunk-JECBQBEX.js} +3 -3
  208. package/dist/{chunk-HG32URJJ.js → chunk-JYIFGGEM.js} +2 -2
  209. package/dist/{chunk-VA4WSW54.js → chunk-JYIJNNN3.js} +3 -3
  210. package/dist/{chunk-L5HJQC36.js → chunk-K2TDK7GG.js} +3 -3
  211. package/dist/{chunk-MKDRQAA3.js → chunk-KAVBJSBQ.js} +4 -4
  212. package/dist/{chunk-EEARRVZ2.js → chunk-KF5EUVKQ.js} +16 -6
  213. package/dist/chunk-KF5EUVKQ.js.map +1 -0
  214. package/dist/chunk-KFZY2OFH.js +42 -0
  215. package/dist/chunk-KFZY2OFH.js.map +1 -0
  216. package/dist/{chunk-4OKLXWDZ.js → chunk-KNB7IBBU.js} +2 -2
  217. package/dist/{chunk-QLULYKWZ.js → chunk-KSXJOC4F.js} +2 -2
  218. package/dist/{chunk-OBMR4VIX.js → chunk-L2DPF4DF.js} +186 -15
  219. package/dist/chunk-L2DPF4DF.js.map +1 -0
  220. package/dist/{chunk-JI5AVXYO.js → chunk-LEPOP46W.js} +6 -6
  221. package/dist/{chunk-O7BBFJLP.js → chunk-LTAVSOZW.js} +2 -2
  222. package/dist/{chunk-E3VODCC3.js → chunk-LUDXM7MD.js} +14 -2
  223. package/dist/{chunk-E3VODCC3.js.map → chunk-LUDXM7MD.js.map} +1 -1
  224. package/dist/{chunk-2IZAGAJR.js → chunk-LULR4IUW.js} +3 -3
  225. package/dist/{chunk-NUWYOKS6.js → chunk-MC5Q3J7S.js} +398 -7
  226. package/dist/chunk-MC5Q3J7S.js.map +1 -0
  227. package/dist/{chunk-WMWVO45V.js → chunk-MC6XO7T4.js} +2 -2
  228. package/dist/chunk-MKQBXQKU.js +107 -0
  229. package/dist/chunk-MKQBXQKU.js.map +1 -0
  230. package/dist/{chunk-7PND4PUC.js → chunk-MMGGVZ4Q.js} +29 -9
  231. package/dist/{chunk-7PND4PUC.js.map → chunk-MMGGVZ4Q.js.map} +1 -1
  232. package/dist/{chunk-D6RIFG4O.js → chunk-MNB5RMAY.js} +2 -2
  233. package/dist/{chunk-67ZCJLJY.js → chunk-MYFQ3ED4.js} +8 -8
  234. package/dist/{chunk-V3UE5I5F.js → chunk-MYVPLJOO.js} +2 -2
  235. package/dist/chunk-NINSR6LX.js +83 -0
  236. package/dist/chunk-NINSR6LX.js.map +1 -0
  237. package/dist/{chunk-MTWKDOVO.js → chunk-NLE6TSLG.js} +2 -2
  238. package/dist/{chunk-DBRYEIGY.js → chunk-OJP3N7UK.js} +2 -2
  239. package/dist/{chunk-AD6AMF2N.js → chunk-OQJIB32H.js} +28 -23
  240. package/dist/chunk-OQJIB32H.js.map +1 -0
  241. package/dist/{chunk-SMX5267P.js → chunk-OZKOPQCM.js} +2 -2
  242. package/dist/{chunk-JCK7V6SN.js → chunk-P65YJEEL.js} +2 -2
  243. package/dist/{chunk-MTR7BZQN.js → chunk-PBGWYM3H.js} +3 -3
  244. package/dist/chunk-PIG4WJFQ.js +87 -0
  245. package/dist/chunk-PIG4WJFQ.js.map +1 -0
  246. package/dist/chunk-PQVCH2AE.js +76 -0
  247. package/dist/chunk-PQVCH2AE.js.map +1 -0
  248. package/dist/{chunk-AXTXN4T6.js → chunk-PWFCHOB3.js} +2 -2
  249. package/dist/{chunk-FDPZVY6D.js → chunk-QFN4U7AG.js} +2 -2
  250. package/dist/{chunk-K2ZLHESQ.js → chunk-QIEUU4UK.js} +2 -2
  251. package/dist/{chunk-AHLPZ2SF.js → chunk-QJAQNXWI.js} +44 -6
  252. package/dist/chunk-QJAQNXWI.js.map +1 -0
  253. package/dist/{chunk-3D6AFGQR.js → chunk-QVT3E4CE.js} +7 -7
  254. package/dist/{chunk-VYOFVVNK.js → chunk-R26ZMXR2.js} +24 -24
  255. package/dist/{chunk-VYOFVVNK.js.map → chunk-R26ZMXR2.js.map} +1 -1
  256. package/dist/chunk-R3DJVOSM.js +34 -0
  257. package/dist/chunk-R3DJVOSM.js.map +1 -0
  258. package/dist/{chunk-SFQ6QNL7.js → chunk-R6YJI3HE.js} +2 -1
  259. package/dist/{chunk-5CJVLG3H.js → chunk-RFDD3B7W.js} +5 -5
  260. package/dist/{chunk-JBPKEARU.js → chunk-RKNJBZ55.js} +4 -4
  261. package/dist/chunk-ROI7BK7H.js +88 -0
  262. package/dist/chunk-ROI7BK7H.js.map +1 -0
  263. package/dist/{chunk-UTRJFDP2.js → chunk-S2BBISHU.js} +4 -4
  264. package/dist/{chunk-IALLX7EE.js → chunk-S2FSBU4H.js} +3 -3
  265. package/dist/{chunk-BFPETA3S.js → chunk-SCCO46KZ.js} +3 -2
  266. package/dist/chunk-SCCO46KZ.js.map +1 -0
  267. package/dist/chunk-SICXL4MK.js +165 -0
  268. package/dist/chunk-SICXL4MK.js.map +1 -0
  269. package/dist/chunk-SK7AMF2J.js +168 -0
  270. package/dist/chunk-SK7AMF2J.js.map +1 -0
  271. package/dist/{chunk-GMSDQUCR.js → chunk-TDTXKOAJ.js} +6475 -5748
  272. package/dist/chunk-TDTXKOAJ.js.map +1 -0
  273. package/dist/{chunk-KSBEEMQF.js → chunk-TG6IHVE2.js} +151 -6
  274. package/dist/chunk-TG6IHVE2.js.map +1 -0
  275. package/dist/{chunk-7K5Q6COX.js → chunk-TVVEYCNW.js} +4 -4
  276. package/dist/{chunk-PK5XBDA6.js → chunk-U3ZAVRP3.js} +2 -2
  277. package/dist/{chunk-ODPLEWB6.js → chunk-UFGFMWAD.js} +47 -17
  278. package/dist/chunk-UFGFMWAD.js.map +1 -0
  279. package/dist/{chunk-4KJLYTLS.js → chunk-V57NLO5P.js} +2 -2
  280. package/dist/{chunk-FLVL4L3L.js → chunk-VDX2J7OX.js} +2 -2
  281. package/dist/{chunk-7XGSIUP5.js → chunk-W4FBGYGK.js} +1 -1
  282. package/dist/{chunk-TXLGHDHS.js → chunk-W4XJFLAL.js} +53 -32
  283. package/dist/chunk-W4XJFLAL.js.map +1 -0
  284. package/dist/{chunk-6SXVCD7W.js → chunk-W7IGLX4G.js} +2 -2
  285. package/dist/{chunk-KQDNAXOM.js → chunk-WG5HSQ4P.js} +19 -6
  286. package/dist/chunk-WG5HSQ4P.js.map +1 -0
  287. package/dist/{chunk-LTJAMRGI.js → chunk-WL5EBRDH.js} +17 -3
  288. package/dist/chunk-WL5EBRDH.js.map +1 -0
  289. package/dist/{chunk-KAWTOYAW.js → chunk-WLZYGLJ4.js} +2 -2
  290. package/dist/{chunk-W5NKDU24.js → chunk-WON4APQY.js} +4 -4
  291. package/dist/{chunk-NKCPUHCI.js → chunk-WZFAPHIK.js} +6 -6
  292. package/dist/{chunk-KQPJLK3X.js → chunk-XL24QQ63.js} +2 -2
  293. package/dist/{chunk-X47LWMKA.js → chunk-XMMESCPD.js} +26 -1
  294. package/dist/chunk-XMMESCPD.js.map +1 -0
  295. package/dist/{chunk-4B4MUS5D.js → chunk-YROFNEG5.js} +7 -7
  296. package/dist/{chunk-WU46YPY6.js → chunk-YV32N67O.js} +1 -1
  297. package/dist/chunk-YV32N67O.js.map +1 -0
  298. package/dist/{chunk-B3F4CWQR.js → chunk-YVKF3HEW.js} +1 -1
  299. package/dist/chunk-YVKF3HEW.js.map +1 -0
  300. package/dist/{chunk-VRAD2FGO.js → chunk-Z54EM5YZ.js} +12 -12
  301. package/dist/{chunk-2VN4JAX7.js → chunk-ZOKZIR5K.js} +95 -33
  302. package/dist/chunk-ZOKZIR5K.js.map +1 -0
  303. package/dist/{cli-_Y2Bmt6A.d.ts → cli-C_pqqTCw.d.ts} +28 -12
  304. package/dist/cli.d.ts +16 -9
  305. package/dist/cli.js +145 -130
  306. package/dist/compounding/engine.d.ts +5 -2
  307. package/dist/compounding/engine.js +39 -29
  308. package/dist/compounding/preference-consolidator.d.ts +3 -1
  309. package/dist/compounding/preference-consolidator.js +1 -1
  310. package/dist/compression-optimizer.d.ts +3 -1
  311. package/dist/config-qmd.d.ts +8 -0
  312. package/dist/config-qmd.js +20 -0
  313. package/dist/config-qmd.js.map +1 -0
  314. package/dist/config.d.ts +3 -1
  315. package/dist/config.js +15 -10
  316. package/dist/connectors/codex-materialize-runner.d.ts +3 -1
  317. package/dist/connectors/codex-materialize-runner.js +39 -29
  318. package/dist/connectors/codex-materialize.d.ts +3 -1
  319. package/dist/connectors/codex-materialize.js +2 -2
  320. package/dist/connectors/index.d.ts +3 -1
  321. package/dist/connectors/index.js +44 -35
  322. package/dist/consolidation-provenance-check.d.ts +5 -2
  323. package/dist/consolidation-provenance-check.js +4 -4
  324. package/dist/consolidation-undo.d.ts +5 -2
  325. package/dist/consolidation-undo.js +3 -3
  326. package/dist/contradiction/index.d.ts +5 -2
  327. package/dist/contradiction/index.js +10 -4
  328. package/dist/{contradiction-scan-J57T5QV7.js → contradiction-scan-RJBABNRH.js} +4 -4
  329. package/dist/contradiction-scan-RJBABNRH.js.map +1 -0
  330. package/dist/conversation-index/backend.d.ts +3 -1
  331. package/dist/conversation-index/backend.js +5 -5
  332. package/dist/conversation-index/chunker.d.ts +3 -1
  333. package/dist/conversation-index/cleanup.js +2 -2
  334. package/dist/conversation-index/faiss-adapter.d.ts +3 -1
  335. package/dist/conversation-index/faiss-adapter.js +2 -2
  336. package/dist/conversation-index/indexer.d.ts +3 -1
  337. package/dist/conversation-index/indexer.js +2 -2
  338. package/dist/conversation-index/search.d.ts +3 -1
  339. package/dist/conversation-index/search.js +2 -2
  340. package/dist/cross-namespace-budget.d.ts +45 -1
  341. package/dist/cross-namespace-budget.js +5 -3
  342. package/dist/dashboard-runtime.js +2 -2
  343. package/dist/day-summary.d.ts +3 -1
  344. package/dist/day-summary.js +3 -3
  345. package/dist/delinearize.d.ts +3 -1
  346. package/dist/direct-answer-wiring.d.ts +3 -1
  347. package/dist/direct-answer.d.ts +3 -1
  348. package/dist/{dreams-ledger-6UODQOX6.js → dreams-ledger-567VKVOU.js} +4 -2
  349. package/dist/dreams-ledger-567VKVOU.js.map +1 -0
  350. package/dist/embedding-fallback.d.ts +3 -1
  351. package/dist/embedding-fallback.js +3 -3
  352. package/dist/enrichment/index.d.ts +3 -1
  353. package/dist/entity-retrieval.d.ts +5 -2
  354. package/dist/entity-retrieval.js +38 -29
  355. package/dist/entity-schema.d.ts +3 -1
  356. package/dist/explicit-capture.d.ts +13 -8
  357. package/dist/explicit-capture.js +7 -3
  358. package/dist/extraction-faithfulness.d.ts +3 -1
  359. package/dist/extraction-faithfulness.js +5 -5
  360. package/dist/extraction-judge-telemetry.d.ts +3 -1
  361. package/dist/extraction-judge-telemetry.js +2 -2
  362. package/dist/extraction-judge-training.d.ts +3 -1
  363. package/dist/extraction-judge-training.js +2 -2
  364. package/dist/extraction-judge.d.ts +3 -1
  365. package/dist/extraction-judge.js +5 -5
  366. package/dist/extraction.d.ts +3 -1
  367. package/dist/extraction.js +13 -12
  368. package/dist/faithfulness-config.js +3 -2
  369. package/dist/fallback-llm.d.ts +3 -1
  370. package/dist/fallback-llm.js +4 -4
  371. package/dist/{first-start-migration-TI67YMLG.js → first-start-migration-CSRHCJIQ.js} +2 -2
  372. package/dist/{forget-CQCLB5LB.js → forget-HRPLVB3W.js} +5 -5
  373. package/dist/graph-dashboard-diff.d.ts +3 -1
  374. package/dist/graph-dashboard-key.d.ts +3 -1
  375. package/dist/graph-dashboard-parser.d.ts +3 -1
  376. package/dist/{graph-edge-decay-FO7AM4UR.js → graph-edge-decay-Z6ENALU2.js} +3 -3
  377. package/dist/graph-edge-decay-Z6ENALU2.js.map +1 -0
  378. package/dist/graph-edge-reinforcement.d.ts +3 -1
  379. package/dist/graph-snapshot.d.ts +3 -1
  380. package/dist/graph-snapshot.js +2 -2
  381. package/dist/graph.d.ts +57 -10
  382. package/dist/graph.js +1 -1
  383. package/dist/identity-continuity.d.ts +1 -2
  384. package/dist/importance.d.ts +3 -1
  385. package/dist/importers/index.d.ts +3 -1
  386. package/dist/in-flight-reads.d.ts +3 -1
  387. package/dist/index.d.ts +101 -92
  388. package/dist/index.js +290 -242
  389. package/dist/intent.d.ts +3 -1
  390. package/dist/lcm/archive.js +2 -2
  391. package/dist/lcm/engine.d.ts +3 -1
  392. package/dist/lcm/engine.js +6 -6
  393. package/dist/lcm/index.d.ts +3 -1
  394. package/dist/lcm/index.js +13 -13
  395. package/dist/lcm/schema.js +2 -2
  396. package/dist/lcm/summarizer.js +3 -3
  397. package/dist/lcm/tools.d.ts +3 -1
  398. package/dist/lifecycle.d.ts +3 -1
  399. package/dist/live-connectors-runner.d.ts +3 -1
  400. package/dist/local-llm.d.ts +5 -2
  401. package/dist/local-llm.js +3 -3
  402. package/dist/local-model-endpoint.d.ts +3 -1
  403. package/dist/logger.d.ts +3 -1
  404. package/dist/logger.js +7 -3
  405. package/dist/maintenance/archive-observations.js +2 -2
  406. package/dist/maintenance/memory-governance.d.ts +3 -1
  407. package/dist/maintenance/memory-governance.js +38 -28
  408. package/dist/maintenance/migrate-observations.js +3 -3
  409. package/dist/maintenance/observation-ledger-utils.js +2 -2
  410. package/dist/maintenance/rebuild-memory-lifecycle-ledger.d.ts +102 -1
  411. package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +40 -28
  412. package/dist/maintenance/rebuild-memory-projection.js +41 -31
  413. package/dist/maintenance/rebuild-observations.js +3 -3
  414. package/dist/mcp-memory-inspector-app.d.ts +22 -15
  415. package/dist/memory-action-policy.d.ts +3 -1
  416. package/dist/memory-cache.d.ts +46 -2
  417. package/dist/memory-cache.js +7 -1
  418. package/dist/memory-corpus-version.js +2 -2
  419. package/dist/memory-lifecycle-ledger-utils.d.ts +25 -2
  420. package/dist/memory-lifecycle-ledger-utils.js +11 -1
  421. package/dist/memory-projection-store.d.ts +3 -1
  422. package/dist/memory-projection-store.js +2 -2
  423. package/dist/memory-provenance.d.ts +3 -1
  424. package/dist/memory-worth-outcomes.d.ts +5 -2
  425. package/dist/model-registry.js +2 -2
  426. package/dist/models-json.d.ts +3 -1
  427. package/dist/models-json.js +2 -2
  428. package/dist/namespaces/migrate.d.ts +6 -3
  429. package/dist/namespaces/migrate.js +54 -45
  430. package/dist/namespaces/principal.d.ts +27 -2
  431. package/dist/namespaces/principal.js +6 -2
  432. package/dist/namespaces/search.d.ts +16 -2
  433. package/dist/namespaces/search.js +25 -21
  434. package/dist/namespaces/storage.d.ts +24 -3
  435. package/dist/namespaces/storage.js +38 -30
  436. package/dist/native-knowledge.d.ts +3 -1
  437. package/dist/native-knowledge.js +2 -2
  438. package/dist/negative.js +2 -2
  439. package/dist/offline-sync-exclude-globs.d.ts +13 -0
  440. package/dist/offline-sync-exclude-globs.js +10 -0
  441. package/dist/offline-sync-exclude-globs.js.map +1 -0
  442. package/dist/offline-sync-impression-drain.d.ts +78 -0
  443. package/dist/offline-sync-impression-drain.js +37 -0
  444. package/dist/offline-sync-impression-drain.js.map +1 -0
  445. package/dist/offline-sync.js +4 -2
  446. package/dist/operator-toolkit.d.ts +5 -2
  447. package/dist/operator-toolkit.js +73 -58
  448. package/dist/orchestration/compression-guideline-coordinator.d.ts +5 -2
  449. package/dist/orchestration/compression-guideline-coordinator.js +3 -3
  450. package/dist/orchestration/maintenance.d.ts +121 -2
  451. package/dist/orchestration/maintenance.js +47 -34
  452. package/dist/{orchestrator-BbZ_dQSU.d.ts → orchestrator-CQJ8U7En.d.ts} +85 -79
  453. package/dist/orchestrator.d.ts +13 -8
  454. package/dist/orchestrator.js +197 -180
  455. package/dist/page-versioning.js +3 -3
  456. package/dist/patterns-cli.d.ts +3 -1
  457. package/dist/{pipeline-FRMDb1fn.d.ts → pipeline-Cn-kvYeV.d.ts} +1 -1
  458. package/dist/policy-runtime.d.ts +3 -1
  459. package/dist/prioritized-embed.d.ts +19 -0
  460. package/dist/prioritized-embed.js +8 -0
  461. package/dist/prioritized-embed.js.map +1 -0
  462. package/dist/proactive-contention.d.ts +28 -0
  463. package/dist/proactive-contention.js +8 -0
  464. package/dist/proactive-contention.js.map +1 -0
  465. package/dist/profiling.js +2 -2
  466. package/dist/provenance.d.ts +3 -1
  467. package/dist/provenance.js +3 -2
  468. package/dist/{purge-NDWV6WYD.js → purge-IRF47ZTX.js} +3 -3
  469. package/dist/{qmd-xJRrHFbA.d.ts → qmd-oh9VXz1d.d.ts} +11 -1
  470. package/dist/qmd-preflight.d.ts +5 -2
  471. package/dist/qmd-recall-cache.d.ts +3 -1
  472. package/dist/qmd-status.d.ts +57 -0
  473. package/dist/qmd-status.js +18 -0
  474. package/dist/qmd-status.js.map +1 -0
  475. package/dist/qmd.d.ts +5 -2
  476. package/dist/qmd.js +8 -4
  477. package/dist/recall-concurrency-config.d.ts +16 -0
  478. package/dist/recall-concurrency-config.js +10 -0
  479. package/dist/recall-concurrency-config.js.map +1 -0
  480. package/dist/recall-disclosure-escalation.d.ts +3 -1
  481. package/dist/recall-explain-renderer.d.ts +4 -1
  482. package/dist/recall-explain-renderer.js +3 -3
  483. package/dist/recall-memory-map.d.ts +26 -0
  484. package/dist/recall-memory-map.js +18 -0
  485. package/dist/recall-memory-map.js.map +1 -0
  486. package/dist/recall-planner-llm.d.ts +3 -1
  487. package/dist/recall-planner-llm.js +4 -4
  488. package/dist/recall-qos.js +2 -2
  489. package/dist/recall-state.d.ts +163 -2
  490. package/dist/recall-state.js +6 -3
  491. package/dist/recall-tag-filter.d.ts +3 -1
  492. package/dist/recall-timings.d.ts +11 -2
  493. package/dist/recall-timings.js +3 -1
  494. package/dist/recall-xray-cli.d.ts +3 -1
  495. package/dist/recall-xray-cli.js +4 -4
  496. package/dist/recall-xray-renderer.d.ts +3 -1
  497. package/dist/recall-xray-renderer.js +3 -3
  498. package/dist/recall-xray.d.ts +3 -1
  499. package/dist/recall-xray.js +2 -2
  500. package/dist/relevance.js +3 -3
  501. package/dist/replay/normalizers/chatgpt.d.ts +3 -1
  502. package/dist/replay/normalizers/claude.d.ts +3 -1
  503. package/dist/replay/normalizers/openclaw.d.ts +3 -1
  504. package/dist/replay/normalizers/shared.d.ts +3 -1
  505. package/dist/replay/runner.d.ts +3 -1
  506. package/dist/replay/types.d.ts +3 -1
  507. package/dist/rerank.d.ts +8 -1
  508. package/dist/rerank.js +3 -1
  509. package/dist/resolution-3K27T4VO.js +18 -0
  510. package/dist/resolution-3K27T4VO.js.map +1 -0
  511. package/dist/resolve-auth-token.d.ts +3 -1
  512. package/dist/resolve-provider-secret.js +2 -2
  513. package/dist/resume-bundles.js +19 -14
  514. package/dist/retrieval-agents.d.ts +19 -16
  515. package/dist/retrieval-agents.js +3 -3
  516. package/dist/retrieval-tiers.d.ts +3 -1
  517. package/dist/routing/engine.d.ts +3 -1
  518. package/dist/routing/store.d.ts +3 -1
  519. package/dist/routing/store.js +2 -2
  520. package/dist/salvage-envelope.d.ts +18 -0
  521. package/dist/salvage-envelope.js +15 -0
  522. package/dist/salvage-envelope.js.map +1 -0
  523. package/dist/schemas.d.ts +24 -24
  524. package/dist/scope-profiles-EpJG7yKP.d.ts +30 -0
  525. package/dist/search/document-scanner.js +3 -2
  526. package/dist/search/embed-helper.d.ts +3 -1
  527. package/dist/search/embed-helper.js +3 -3
  528. package/dist/search/factory.d.ts +3 -1
  529. package/dist/search/factory.js +19 -17
  530. package/dist/search/index.d.ts +3 -1
  531. package/dist/search/index.js +23 -21
  532. package/dist/search/lancedb-backend.d.ts +3 -1
  533. package/dist/search/lancedb-backend.js +6 -5
  534. package/dist/search/meilisearch-backend.d.ts +3 -1
  535. package/dist/search/meilisearch-backend.js +6 -5
  536. package/dist/search/noop-backend.d.ts +3 -1
  537. package/dist/search/orama-backend.d.ts +3 -1
  538. package/dist/search/orama-backend.js +6 -5
  539. package/dist/search/port.d.ts +27 -2
  540. package/dist/search/port.js +1 -1
  541. package/dist/search/remote-backend.d.ts +3 -1
  542. package/dist/search/remote-backend.js +3 -3
  543. package/dist/secure-store/index.d.ts +12 -1
  544. package/dist/secure-store/index.js +6 -3
  545. package/dist/{semantic-consolidation-fvdZRa5Z.d.ts → semantic-consolidation-DILZEQq3.d.ts} +1 -1
  546. package/dist/semantic-consolidation.d.ts +4 -2
  547. package/dist/semantic-consolidation.js +41 -32
  548. package/dist/semantic-rule-promotion.js +37 -27
  549. package/dist/semantic-rule-verifier.d.ts +3 -1
  550. package/dist/semantic-rule-verifier.js +38 -28
  551. package/dist/session-observer-bands.d.ts +3 -1
  552. package/dist/session-observer-state.d.ts +3 -1
  553. package/dist/session-observer-state.js +2 -2
  554. package/dist/session-transcript-migration.js +2 -2
  555. package/dist/shared-context/manager.d.ts +3 -1
  556. package/dist/shared-context/manager.js +3 -3
  557. package/dist/signal.d.ts +3 -1
  558. package/dist/{storage-CrvzaM9C.d.ts → storage-NIyKYD8g.d.ts} +505 -110
  559. package/dist/storage-guards.js +2 -2
  560. package/dist/storage.d.ts +6 -3
  561. package/dist/storage.js +41 -29
  562. package/dist/structured-attributes.d.ts +23 -1
  563. package/dist/structured-attributes.js +7 -1
  564. package/dist/summarizer.d.ts +3 -1
  565. package/dist/summarizer.js +11 -11
  566. package/dist/summary-snapshot.d.ts +3 -1
  567. package/dist/summary-snapshot.js +2 -2
  568. package/dist/temporal-index-batch.d.ts +1 -0
  569. package/dist/temporal-index-batch.js +10 -0
  570. package/dist/temporal-index-batch.js.map +1 -0
  571. package/dist/temporal-index-compat.d.ts +279 -1
  572. package/dist/temporal-index-compat.js +1 -1
  573. package/dist/temporal-index.d.ts +1 -225
  574. package/dist/temporal-index.js +35 -3
  575. package/dist/temporal-supersession.d.ts +5 -2
  576. package/dist/temporal-supersession.js +2 -2
  577. package/dist/temporal-timeline-recall.d.ts +3 -1
  578. package/dist/temporal-validity.d.ts +3 -1
  579. package/dist/threading.d.ts +3 -1
  580. package/dist/threading.js +2 -2
  581. package/dist/tier-migration.d.ts +5 -2
  582. package/dist/tier-routing.d.ts +3 -1
  583. package/dist/{tier-stats-KV7IWCJR.js → tier-stats-QEJSPFV2.js} +2 -2
  584. package/dist/tokens.js +3 -3
  585. package/dist/topics.d.ts +3 -1
  586. package/dist/transcript.d.ts +3 -1
  587. package/dist/transcript.js +2 -2
  588. package/dist/transfer/backup.js +3 -3
  589. package/dist/transfer/capsule-export.js +3 -3
  590. package/dist/transfer/capsule-import.js +6 -6
  591. package/dist/transfer/types.d.ts +24 -24
  592. package/dist/trust-score-stage.d.ts +75 -38
  593. package/dist/trust-score-stage.js +11 -3
  594. package/dist/trust-score.d.ts +3 -1
  595. package/dist/{types-Bl4BWDM8.d.ts → types-D_fG2ix8.d.ts} +49 -63
  596. package/dist/types-continuity.d.ts +52 -0
  597. package/dist/types-continuity.js +1 -0
  598. package/dist/types-continuity.js.map +1 -0
  599. package/dist/types.d.ts +3 -1
  600. package/dist/types.js +1 -1
  601. package/dist/utility-runtime.d.ts +3 -1
  602. package/dist/utils/serialize-mutations.d.ts +31 -2
  603. package/dist/utils/serialize-mutations.js +1 -1
  604. package/dist/verified-recall.js +39 -29
  605. package/dist/write-envelope.d.ts +282 -0
  606. package/dist/write-envelope.js +35 -0
  607. package/dist/write-envelope.js.map +1 -0
  608. package/dist/write-quarantine.d.ts +79 -0
  609. package/dist/write-quarantine.js +11 -0
  610. package/dist/write-quarantine.js.map +1 -0
  611. package/dist/write-rate-limiter.d.ts +45 -0
  612. package/dist/write-rate-limiter.js +9 -0
  613. package/dist/write-rate-limiter.js.map +1 -0
  614. package/package.json +37 -2
  615. package/src/access-admin-ops-surface.ts +17 -7
  616. package/src/access-boundary.test.ts +28 -0
  617. package/src/access-boundary.ts +31 -2
  618. package/src/access-citation.test.ts +72 -0
  619. package/src/access-citation.ts +139 -0
  620. package/src/access-errors.ts +21 -0
  621. package/src/access-fingerprint-parity.test.ts +211 -0
  622. package/src/access-http-cancellation.test.ts +59 -21
  623. package/src/access-http.test.ts +90 -0
  624. package/src/access-http.ts +79 -79
  625. package/src/access-mcp-cancellation.test.ts +16 -7
  626. package/src/access-memory-search-fanout.test.ts +220 -0
  627. package/src/access-memory-search-fanout.ts +168 -0
  628. package/src/access-observe-quarantine.test.ts +120 -0
  629. package/src/access-observe-write-surface.ts +130 -11
  630. package/src/access-operations-batch.ts +2 -0
  631. package/src/access-recall-concurrency.ts +773 -0
  632. package/src/access-recall-response.ts +307 -0
  633. package/src/access-recall-surface.ts +100 -252
  634. package/src/access-service-coding-write.test.ts +22 -4
  635. package/src/access-service-health.test.ts +49 -0
  636. package/src/access-service-namespace.test.ts +486 -8
  637. package/src/access-service-observe-scope.test.ts +4 -0
  638. package/src/access-service-recall-concurrency.test.ts +1990 -0
  639. package/src/access-service.ts +182 -175
  640. package/src/access-surface-catalog.ts +1 -0
  641. package/src/access-token-capabilities.ts +16 -9
  642. package/src/active-recall.test.ts +35 -0
  643. package/src/active-recall.ts +7 -0
  644. package/src/bounded-jsonl-state.ts +93 -0
  645. package/src/buffer-session.test.ts +422 -5
  646. package/src/buffer-surprise-trigger.test.ts +41 -0
  647. package/src/buffer.ts +218 -3
  648. package/src/capabilities-cluster-b.test.ts +1 -0
  649. package/src/capabilities.ts +5 -6
  650. package/src/cli.ts +21 -22
  651. package/src/coding/architecture-surfaces.test.ts +6 -3
  652. package/src/coding/architecture-surfaces.ts +36 -25
  653. package/src/coding/decision-surfaces.ts +42 -34
  654. package/src/compounding/engine.test.ts +5 -1
  655. package/src/compounding/engine.ts +7 -7
  656. package/src/config-qmd.ts +89 -0
  657. package/src/config.test.ts +136 -0
  658. package/src/config.ts +122 -118
  659. package/src/connector-provenance-lifecycle.test.ts +4 -4
  660. package/src/connectors/coerce.test.ts +131 -0
  661. package/src/connectors/coerce.ts +80 -7
  662. package/src/contradiction/contradiction.test.ts +10 -6
  663. package/src/contradiction/resolution.ts +17 -4
  664. package/src/correction/correction-access-wiring.ts +62 -18
  665. package/src/cross-namespace-budget.test.ts +35 -0
  666. package/src/cross-namespace-budget.ts +86 -19
  667. package/src/explicit-capture.ts +54 -17
  668. package/src/extraction.ts +2 -3
  669. package/src/faithfulness-graph-guard.test.ts +16 -69
  670. package/src/graph-recall.test.ts +31 -0
  671. package/src/graph.test.ts +137 -1
  672. package/src/graph.ts +274 -17
  673. package/src/index.ts +22 -2
  674. package/src/local-llm.ts +4 -6
  675. package/src/logger.ts +16 -0
  676. package/src/maintenance/dreams-ledger.ts +100 -49
  677. package/src/maintenance/rebuild-memory-lifecycle-ledger-cli.ts +77 -0
  678. package/src/maintenance/rebuild-memory-lifecycle-ledger.ts +373 -9
  679. package/src/memory-cache.ts +70 -0
  680. package/src/memory-lifecycle-ledger-utils.ts +51 -5
  681. package/src/namespaces/principal.test.ts +37 -1
  682. package/src/namespaces/principal.ts +48 -0
  683. package/src/namespaces/search.test.ts +79 -5
  684. package/src/namespaces/search.ts +59 -6
  685. package/src/namespaces/storage.ts +45 -1
  686. package/src/offline-sync-exclude-globs.ts +58 -0
  687. package/src/offline-sync-impression-drain.test.ts +316 -0
  688. package/src/offline-sync-impression-drain.ts +260 -0
  689. package/src/offline-sync.test.ts +32 -5
  690. package/src/offline-sync.ts +1 -14
  691. package/src/operator-toolkit.ts +1 -1
  692. package/src/orchestration/batch-deindex-flush.test.ts +146 -0
  693. package/src/orchestration/consolidation-run.ts +96 -85
  694. package/src/orchestration/extraction-envelope.ts +94 -0
  695. package/src/orchestration/extraction-persist-promotion.ts +134 -0
  696. package/src/orchestration/extraction-persist.ts +325 -260
  697. package/src/orchestration/extraction-run.test.ts +1 -1
  698. package/src/orchestration/extraction-run.ts +2 -2
  699. package/src/orchestration/graph-recall-coordinator.ts +18 -7
  700. package/src/orchestration/lifecycle-policy-coordinator.ts +63 -48
  701. package/src/orchestration/maintenance.test.ts +2103 -3
  702. package/src/orchestration/maintenance.ts +581 -2
  703. package/src/orchestration/namespace-read-fanout.ts +14 -8
  704. package/src/orchestration/orchestrator-helpers.ts +8 -1
  705. package/src/orchestration/orchestrator-init.ts +22 -6
  706. package/src/orchestration/orchestrator-namespace-scope.ts +71 -0
  707. package/src/orchestration/persistence-index.ts +64 -9
  708. package/src/orchestration/qmd-result-resolver.ts +27 -0
  709. package/src/orchestration/recall-entry.ts +34 -19
  710. package/src/orchestration/recall-internal.ts +207 -79
  711. package/src/orchestration/recall-rerank-coordinator.ts +229 -82
  712. package/src/orchestration/recall-result-formatter.ts +76 -20
  713. package/src/orchestration/recall-search-pipeline.test.ts +70 -0
  714. package/src/orchestration/recall-search-pipeline.ts +102 -129
  715. package/src/orchestration/recall-section-coordinator.ts +315 -85
  716. package/src/orchestration/semantic-consolidation-coordinator.ts +69 -37
  717. package/src/orchestration/session-context.ts +21 -0
  718. package/src/orchestration/workspace-ops.test.ts +348 -0
  719. package/src/orchestration/workspace-ops.ts +172 -34
  720. package/src/orchestrator-chunked-hash-durability.test.ts +126 -0
  721. package/src/orchestrator-connector-dedup.test.ts +1061 -40
  722. package/src/orchestrator-flush.test.ts +155 -39
  723. package/src/orchestrator-nonchunked-hash-durability.test.ts +121 -0
  724. package/src/orchestrator-source-attribution.test.ts +9 -9
  725. package/src/orchestrator.ts +166 -150
  726. package/src/prioritized-embed.ts +123 -0
  727. package/src/proactive-contention.test.ts +80 -0
  728. package/src/proactive-contention.ts +39 -0
  729. package/src/procedural/procedure-miner.test.ts +19 -14
  730. package/src/procedural/procedure-miner.ts +44 -13
  731. package/src/qmd-client.test.ts +111 -1
  732. package/src/qmd-status.ts +186 -0
  733. package/src/qmd.test.ts +22 -0
  734. package/src/qmd.ts +60 -48
  735. package/src/recall-budget-config.test.ts +30 -0
  736. package/src/recall-cold-deadline.test.ts +149 -0
  737. package/src/recall-concurrency-config.ts +28 -0
  738. package/src/recall-memory-map.ts +74 -0
  739. package/src/recall-rerank-coordinator.test.ts +508 -0
  740. package/src/recall-state.test.ts +825 -1
  741. package/src/recall-state.ts +406 -7
  742. package/src/recall-timings-access.test.ts +41 -0
  743. package/src/recall-timings.ts +16 -0
  744. package/src/relay/mission-access.test.ts +5 -5
  745. package/src/rerank.ts +22 -0
  746. package/src/retrieval-agents.test.ts +79 -0
  747. package/src/retrieval-agents.ts +71 -19
  748. package/src/salvage-envelope.ts +28 -0
  749. package/src/scopes/scope-plan.test.ts +42 -0
  750. package/src/scopes/scope-plan.ts +45 -0
  751. package/src/search/port.ts +24 -0
  752. package/src/secure-store/index.ts +1 -0
  753. package/src/secure-store/secure-fs.ts +48 -0
  754. package/src/secure-store/secure-store.test.ts +40 -0
  755. package/src/semantic-rule-promotion.ts +13 -4
  756. package/src/storage/content-hash-index.ts +655 -0
  757. package/src/storage/entity-timeline.ts +473 -0
  758. package/src/storage/memory-lifecycle-ledger-access.ts +603 -0
  759. package/src/storage/secure-line-reader.test.ts +197 -0
  760. package/src/storage/secure-line-reader.ts +181 -3
  761. package/src/storage-append-header-sniff.test.ts +195 -0
  762. package/src/storage-behavior-signals-cache.test.ts +237 -0
  763. package/src/storage-contract/cache-coherence.test.ts +96 -1
  764. package/src/storage-contract/content-hash.test.ts +47 -2
  765. package/src/storage-fact-hash-index-defer.test.ts +1200 -0
  766. package/src/storage-memory-lifecycle-ledger.test.ts +1146 -3
  767. package/src/storage.ts +942 -903
  768. package/src/structured-attributes.ts +52 -0
  769. package/src/temporal-index-batch.ts +112 -0
  770. package/src/temporal-index.test.ts +193 -0
  771. package/src/temporal-index.ts +49 -53
  772. package/src/testing/lifecycle-matrix.test.ts +212 -0
  773. package/src/testing/lifecycle-matrix.ts +271 -0
  774. package/src/testing/orchestrator-lite.ts +236 -0
  775. package/src/testing/subjects/dreams-ledger.test.ts +67 -0
  776. package/src/testing/subjects/extraction-lifecycle.test.ts +442 -0
  777. package/src/testing/subjects/lifecycle-ledger.test.ts +93 -0
  778. package/src/testing/subjects/recall-budget.test.ts +461 -0
  779. package/src/testing/subjects/serialized-write-chain.test.ts +224 -0
  780. package/src/trust-score-stage.test.ts +154 -0
  781. package/src/trust-score-stage.ts +216 -53
  782. package/src/types-continuity.ts +57 -0
  783. package/src/types.ts +66 -77
  784. package/src/utils/path-containment.test.ts +75 -0
  785. package/src/utils/path-containment.ts +76 -0
  786. package/src/utils/serialize-mutations.test.ts +122 -0
  787. package/src/utils/serialize-mutations.ts +68 -3
  788. package/src/wearables/memory-gen.test.ts +31 -9
  789. package/src/wearables/memory-gen.ts +95 -55
  790. package/src/wearables/pipeline.test.ts +10 -7
  791. package/src/wearables/service.test.ts +6 -8
  792. package/src/wearables/service.ts +2 -2
  793. package/src/write-envelope.extension.test.ts +111 -0
  794. package/src/write-envelope.test.ts +683 -0
  795. package/src/write-envelope.ts +902 -0
  796. package/src/write-quarantine.test.ts +193 -0
  797. package/src/write-quarantine.ts +241 -0
  798. package/src/write-rate-limiter.test.ts +105 -0
  799. package/src/write-rate-limiter.ts +135 -0
  800. package/src/write-sealed-parity.test.ts +204 -0
  801. package/dist/chunk-2VN4JAX7.js.map +0 -1
  802. package/dist/chunk-37CTGERM.js.map +0 -1
  803. package/dist/chunk-7ICYQUOL.js.map +0 -1
  804. package/dist/chunk-AD6AMF2N.js.map +0 -1
  805. package/dist/chunk-AHLPZ2SF.js.map +0 -1
  806. package/dist/chunk-ASKEM4AR.js.map +0 -1
  807. package/dist/chunk-B3F4CWQR.js.map +0 -1
  808. package/dist/chunk-BCDKBDSY.js.map +0 -1
  809. package/dist/chunk-BFPETA3S.js.map +0 -1
  810. package/dist/chunk-BFVEEB7W.js.map +0 -1
  811. package/dist/chunk-E5BK6CGV.js +0 -335
  812. package/dist/chunk-E5BK6CGV.js.map +0 -1
  813. package/dist/chunk-EEARRVZ2.js.map +0 -1
  814. package/dist/chunk-F7AU34FC.js.map +0 -1
  815. package/dist/chunk-FBNWOMCE.js.map +0 -1
  816. package/dist/chunk-FTYDWKO6.js.map +0 -1
  817. package/dist/chunk-GMSDQUCR.js.map +0 -1
  818. package/dist/chunk-GWTFLF2P.js.map +0 -1
  819. package/dist/chunk-IFJ23BHU.js.map +0 -1
  820. package/dist/chunk-IKQTFQMI.js.map +0 -1
  821. package/dist/chunk-J2HSAU72.js.map +0 -1
  822. package/dist/chunk-JMBVCAR4.js.map +0 -1
  823. package/dist/chunk-KQDNAXOM.js.map +0 -1
  824. package/dist/chunk-KSBEEMQF.js.map +0 -1
  825. package/dist/chunk-KSNVDPDF.js.map +0 -1
  826. package/dist/chunk-LC7OODWZ.js.map +0 -1
  827. package/dist/chunk-LTJAMRGI.js.map +0 -1
  828. package/dist/chunk-ND5M64JJ.js.map +0 -1
  829. package/dist/chunk-NUWYOKS6.js.map +0 -1
  830. package/dist/chunk-NWTGD4AN.js.map +0 -1
  831. package/dist/chunk-OBMR4VIX.js.map +0 -1
  832. package/dist/chunk-ODPLEWB6.js.map +0 -1
  833. package/dist/chunk-PHK3HARR.js +0 -32
  834. package/dist/chunk-PHK3HARR.js.map +0 -1
  835. package/dist/chunk-RANHFI3P.js +0 -8
  836. package/dist/chunk-RANHFI3P.js.map +0 -1
  837. package/dist/chunk-RBQLJSJ7.js.map +0 -1
  838. package/dist/chunk-RULE4VG5.js.map +0 -1
  839. package/dist/chunk-SVOZFLIQ.js +0 -16
  840. package/dist/chunk-SVOZFLIQ.js.map +0 -1
  841. package/dist/chunk-TXLGHDHS.js.map +0 -1
  842. package/dist/chunk-UN3CH3CO.js +0 -118
  843. package/dist/chunk-UN3CH3CO.js.map +0 -1
  844. package/dist/chunk-VSMRDBFT.js +0 -17
  845. package/dist/chunk-VSMRDBFT.js.map +0 -1
  846. package/dist/chunk-WU46YPY6.js.map +0 -1
  847. package/dist/chunk-X47LWMKA.js.map +0 -1
  848. package/dist/chunk-X64YLC24.js.map +0 -1
  849. package/dist/chunk-XVLEGMJI.js.map +0 -1
  850. package/dist/chunk-YF6FMLBT.js.map +0 -1
  851. package/dist/resolution-VH4NGENZ.js +0 -12
  852. /package/dist/{capsule-crypto-CZJSLEFG.js.map → access-citation.js.map} +0 -0
  853. /package/dist/{contradiction-scan-J57T5QV7.js.map → access-memory-search-fanout.js.map} +0 -0
  854. /package/dist/{dreams-ledger-6UODQOX6.js.map → access-recall-concurrency.js.map} +0 -0
  855. /package/dist/{graph-edge-decay-FO7AM4UR.js.map → access-recall-response.js.map} +0 -0
  856. /package/dist/{resolution-VH4NGENZ.js.map → bounded-jsonl-state.js.map} +0 -0
  857. /package/dist/{capsule-merge-Z2HUO6IK.js.map → capsule-merge-5KKJQBWQ.js.map} +0 -0
  858. /package/dist/{chunk-A3GOMRJG.js.map → chunk-23L3IXFD.js.map} +0 -0
  859. /package/dist/{chunk-MRHFJV44.js.map → chunk-2DQ2XREU.js.map} +0 -0
  860. /package/dist/{chunk-L2B3EE7B.js.map → chunk-2QMKMVHH.js.map} +0 -0
  861. /package/dist/{chunk-6CALL5VN.js.map → chunk-2UFO7X4Q.js.map} +0 -0
  862. /package/dist/{chunk-2MR3MFQB.js.map → chunk-2VEOKUPP.js.map} +0 -0
  863. /package/dist/{chunk-RHOZ5LLO.js.map → chunk-347WD2LE.js.map} +0 -0
  864. /package/dist/{chunk-5S7Z5SHA.js.map → chunk-34RC5RT7.js.map} +0 -0
  865. /package/dist/{chunk-KGWXHWAH.js.map → chunk-3QAH2S33.js.map} +0 -0
  866. /package/dist/{chunk-ZIDSD6VC.js.map → chunk-3Y224NYC.js.map} +0 -0
  867. /package/dist/{chunk-VFSP73LP.js.map → chunk-45GF7Y3V.js.map} +0 -0
  868. /package/dist/{chunk-OEHCMALU.js.map → chunk-5I4M26Q7.js.map} +0 -0
  869. /package/dist/{chunk-2E6G7FCE.js.map → chunk-5Q7EVV4X.js.map} +0 -0
  870. /package/dist/{chunk-VZ5OJE4X.js.map → chunk-5VQJBH2G.js.map} +0 -0
  871. /package/dist/{chunk-PUBTHW5O.js.map → chunk-6DRPPQEJ.js.map} +0 -0
  872. /package/dist/{chunk-4LEF6XWJ.js.map → chunk-6O22TZSB.js.map} +0 -0
  873. /package/dist/{chunk-ZQ7UBUZ6.js.map → chunk-6QYST5XN.js.map} +0 -0
  874. /package/dist/{chunk-W4PGTAS2.js.map → chunk-6WAFYNVT.js.map} +0 -0
  875. /package/dist/{chunk-R5VAVVHP.js.map → chunk-72A4L5JJ.js.map} +0 -0
  876. /package/dist/{chunk-3FAMU5TX.js.map → chunk-A6USBZTO.js.map} +0 -0
  877. /package/dist/{chunk-TXVD7PLT.js.map → chunk-A72SWTWW.js.map} +0 -0
  878. /package/dist/{chunk-FC77VUX5.js.map → chunk-A7Q43EUZ.js.map} +0 -0
  879. /package/dist/{chunk-UJBESW6X.js.map → chunk-AE7WMV4V.js.map} +0 -0
  880. /package/dist/{chunk-OKUEZOGW.js.map → chunk-AITCS2RC.js.map} +0 -0
  881. /package/dist/{chunk-OC35KQIN.js.map → chunk-AJ7QCSIS.js.map} +0 -0
  882. /package/dist/{chunk-FNMFJWBY.js.map → chunk-ANEUPF6O.js.map} +0 -0
  883. /package/dist/{chunk-2A3OXAP2.js.map → chunk-B7RWBZXW.js.map} +0 -0
  884. /package/dist/{chunk-N3JDIRBW.js.map → chunk-BLAKS3CP.js.map} +0 -0
  885. /package/dist/{chunk-M7VGG3ID.js.map → chunk-BV5WMSIJ.js.map} +0 -0
  886. /package/dist/{chunk-2BFLDH5F.js.map → chunk-BXLOS5AJ.js.map} +0 -0
  887. /package/dist/{chunk-UXKMMNJD.js.map → chunk-C23BYTJV.js.map} +0 -0
  888. /package/dist/{chunk-JZHHREBL.js.map → chunk-C3AKM55W.js.map} +0 -0
  889. /package/dist/{chunk-RP7YXA67.js.map → chunk-C5JF6EZ7.js.map} +0 -0
  890. /package/dist/{chunk-DDGV7NAX.js.map → chunk-CQMEM5CC.js.map} +0 -0
  891. /package/dist/{chunk-A7B4RMQG.js.map → chunk-CXZQOVIE.js.map} +0 -0
  892. /package/dist/{chunk-7N2RUBAP.js.map → chunk-DDA47TES.js.map} +0 -0
  893. /package/dist/{chunk-64SE4X5G.js.map → chunk-DEBHXHJR.js.map} +0 -0
  894. /package/dist/{chunk-EHK6KZHK.js.map → chunk-DNHVPZOD.js.map} +0 -0
  895. /package/dist/{chunk-437S3G37.js.map → chunk-DQEMWVMT.js.map} +0 -0
  896. /package/dist/{chunk-LZZNTPLR.js.map → chunk-DX3XRGLH.js.map} +0 -0
  897. /package/dist/{chunk-7MW3CVLD.js.map → chunk-ES36HTSC.js.map} +0 -0
  898. /package/dist/{chunk-TN7THW5U.js.map → chunk-ET356KSB.js.map} +0 -0
  899. /package/dist/{chunk-YNDLCWXS.js.map → chunk-EZ25VE3G.js.map} +0 -0
  900. /package/dist/{chunk-7LFXDGLH.js.map → chunk-F7GAIWFA.js.map} +0 -0
  901. /package/dist/{chunk-IKSELOIV.js.map → chunk-FFPJINJE.js.map} +0 -0
  902. /package/dist/{chunk-V53GJUSL.js.map → chunk-FUTF72MJ.js.map} +0 -0
  903. /package/dist/{chunk-5UNWK7KU.js.map → chunk-GFPZS3F5.js.map} +0 -0
  904. /package/dist/{chunk-G6NKALRN.js.map → chunk-H4WG3UQZ.js.map} +0 -0
  905. /package/dist/{chunk-HLTAPHZZ.js.map → chunk-HNZKVLAN.js.map} +0 -0
  906. /package/dist/{chunk-5EZXHU36.js.map → chunk-HYQJQGD3.js.map} +0 -0
  907. /package/dist/{chunk-TRWPCR6P.js.map → chunk-JECBQBEX.js.map} +0 -0
  908. /package/dist/{chunk-HG32URJJ.js.map → chunk-JYIFGGEM.js.map} +0 -0
  909. /package/dist/{chunk-VA4WSW54.js.map → chunk-JYIJNNN3.js.map} +0 -0
  910. /package/dist/{chunk-L5HJQC36.js.map → chunk-K2TDK7GG.js.map} +0 -0
  911. /package/dist/{chunk-MKDRQAA3.js.map → chunk-KAVBJSBQ.js.map} +0 -0
  912. /package/dist/{chunk-4OKLXWDZ.js.map → chunk-KNB7IBBU.js.map} +0 -0
  913. /package/dist/{chunk-QLULYKWZ.js.map → chunk-KSXJOC4F.js.map} +0 -0
  914. /package/dist/{chunk-JI5AVXYO.js.map → chunk-LEPOP46W.js.map} +0 -0
  915. /package/dist/{chunk-O7BBFJLP.js.map → chunk-LTAVSOZW.js.map} +0 -0
  916. /package/dist/{chunk-2IZAGAJR.js.map → chunk-LULR4IUW.js.map} +0 -0
  917. /package/dist/{chunk-WMWVO45V.js.map → chunk-MC6XO7T4.js.map} +0 -0
  918. /package/dist/{chunk-D6RIFG4O.js.map → chunk-MNB5RMAY.js.map} +0 -0
  919. /package/dist/{chunk-67ZCJLJY.js.map → chunk-MYFQ3ED4.js.map} +0 -0
  920. /package/dist/{chunk-V3UE5I5F.js.map → chunk-MYVPLJOO.js.map} +0 -0
  921. /package/dist/{chunk-MTWKDOVO.js.map → chunk-NLE6TSLG.js.map} +0 -0
  922. /package/dist/{chunk-DBRYEIGY.js.map → chunk-OJP3N7UK.js.map} +0 -0
  923. /package/dist/{chunk-SMX5267P.js.map → chunk-OZKOPQCM.js.map} +0 -0
  924. /package/dist/{chunk-JCK7V6SN.js.map → chunk-P65YJEEL.js.map} +0 -0
  925. /package/dist/{chunk-MTR7BZQN.js.map → chunk-PBGWYM3H.js.map} +0 -0
  926. /package/dist/{chunk-AXTXN4T6.js.map → chunk-PWFCHOB3.js.map} +0 -0
  927. /package/dist/{chunk-FDPZVY6D.js.map → chunk-QFN4U7AG.js.map} +0 -0
  928. /package/dist/{chunk-K2ZLHESQ.js.map → chunk-QIEUU4UK.js.map} +0 -0
  929. /package/dist/{chunk-3D6AFGQR.js.map → chunk-QVT3E4CE.js.map} +0 -0
  930. /package/dist/{chunk-SFQ6QNL7.js.map → chunk-R6YJI3HE.js.map} +0 -0
  931. /package/dist/{chunk-5CJVLG3H.js.map → chunk-RFDD3B7W.js.map} +0 -0
  932. /package/dist/{chunk-JBPKEARU.js.map → chunk-RKNJBZ55.js.map} +0 -0
  933. /package/dist/{chunk-UTRJFDP2.js.map → chunk-S2BBISHU.js.map} +0 -0
  934. /package/dist/{chunk-IALLX7EE.js.map → chunk-S2FSBU4H.js.map} +0 -0
  935. /package/dist/{chunk-7K5Q6COX.js.map → chunk-TVVEYCNW.js.map} +0 -0
  936. /package/dist/{chunk-PK5XBDA6.js.map → chunk-U3ZAVRP3.js.map} +0 -0
  937. /package/dist/{chunk-4KJLYTLS.js.map → chunk-V57NLO5P.js.map} +0 -0
  938. /package/dist/{chunk-FLVL4L3L.js.map → chunk-VDX2J7OX.js.map} +0 -0
  939. /package/dist/{chunk-7XGSIUP5.js.map → chunk-W4FBGYGK.js.map} +0 -0
  940. /package/dist/{chunk-6SXVCD7W.js.map → chunk-W7IGLX4G.js.map} +0 -0
  941. /package/dist/{chunk-KAWTOYAW.js.map → chunk-WLZYGLJ4.js.map} +0 -0
  942. /package/dist/{chunk-W5NKDU24.js.map → chunk-WON4APQY.js.map} +0 -0
  943. /package/dist/{chunk-NKCPUHCI.js.map → chunk-WZFAPHIK.js.map} +0 -0
  944. /package/dist/{chunk-KQPJLK3X.js.map → chunk-XL24QQ63.js.map} +0 -0
  945. /package/dist/{chunk-4B4MUS5D.js.map → chunk-YROFNEG5.js.map} +0 -0
  946. /package/dist/{chunk-VRAD2FGO.js.map → chunk-Z54EM5YZ.js.map} +0 -0
  947. /package/dist/{first-start-migration-TI67YMLG.js.map → first-start-migration-CSRHCJIQ.js.map} +0 -0
  948. /package/dist/{forget-CQCLB5LB.js.map → forget-HRPLVB3W.js.map} +0 -0
  949. /package/dist/{purge-NDWV6WYD.js.map → purge-IRF47ZTX.js.map} +0 -0
  950. /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) {
@@ -1338,12 +1384,16 @@ export class Orchestrator {
1338
1384
  // — including the ephemeral ones recall sub-stages build over the same dir
1339
1385
  // — honors the operator's setting. Destructured (not `config.<flag>`) so
1340
1386
  // this single access-layer read stays off the scattered-flag ratchet.
1341
- const { hotMemoriesCacheEnabled } = config;
1387
+ const { hotMemoriesCacheEnabled, scopedCacheInvalidationEnabled } = config;
1342
1388
  StorageManager.setHotMemoriesCacheDefault(
1343
1389
  config.memoryDir,
1344
1390
  hotMemoriesCacheEnabled,
1345
1391
  config.hotMemoriesCacheTtlMs,
1346
1392
  );
1393
+ // Register the #1904 scope-invalidation gate for this dir so every
1394
+ // StorageManager over it (including ephemeral recall sub-stage instances)
1395
+ // honors the operator's rollback lever.
1396
+ StorageManager.setScopedCacheInvalidationDefault(config.memoryDir, scopedCacheInvalidationEnabled);
1347
1397
  this.profiler = new ProfilingCollector({
1348
1398
  enabled: resolvePipelineProcessingCapabilities(this.config).profiling,
1349
1399
  storageDir: config.profilingStorageDir || path.join(config.memoryDir, "profiling"),
@@ -1414,15 +1464,28 @@ export class Orchestrator {
1414
1464
  // and writes will throw SecureStoreLockedError via resolveWriteKey().
1415
1465
  }
1416
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
+ }
1417
1483
  this.maintenanceScheduler = new MaintenanceScheduler({
1418
1484
  config,
1419
- // Live accessor: the orchestrator reassigns this.qmd to NoopSearchBackend
1420
- // after construction when the collection is missing (initialize /
1421
- // startupSearchSync); the scheduler must read the current backend so
1422
- // debounced maintenance never runs against a stale/disposed one.
1423
1485
  getQmd: () => this.qmd,
1424
1486
  namespaceSearchRouter: this.namespaceSearchRouter,
1425
1487
  namespaceCatalog: this.namespaceCatalog,
1488
+ getStorage: () => this.storage, storageForNamespace: (namespace) => this.storageRouter.storageFor(namespace),
1426
1489
  });
1427
1490
  // Issue #1526: background extraction queue lives on its own coordinator.
1428
1491
  this.extractionQueueCoordinator = new ExtractionQueueCoordinator();
@@ -1457,8 +1520,8 @@ export class Orchestrator {
1457
1520
  this.recallRerankCoordinator = new RecallRerankCoordinator({
1458
1521
  getConfig: () => this.config,
1459
1522
  getStorage: (namespace) => this.getStorage(namespace),
1460
- readQmdResultMemory: (resultPath, fallbackStorage, recallNamespaces) =>
1461
- this.readQmdResultMemory(resultPath, fallbackStorage, recallNamespaces),
1523
+ readQmdResultMemory: (resultPath, fallbackStorage, recallNamespaces, preferredNamespace) =>
1524
+ this.readQmdResultMemory(resultPath, fallbackStorage, recallNamespaces, preferredNamespace),
1462
1525
  });
1463
1526
  this.recallSectionCoordinator = new RecallSectionCoordinator({
1464
1527
  getConfig: () => this.config,
@@ -1484,12 +1547,15 @@ export class Orchestrator {
1484
1547
  this.resolveColdQmdResultForRecall(result, fallbackStorage, recallNamespaces),
1485
1548
  storageForAbsoluteQmdResultPath: (resultPath, fallbackStorage, recallNamespaces) =>
1486
1549
  this.storageForAbsoluteQmdResultPath(resultPath, fallbackStorage, recallNamespaces),
1487
- readQmdResultMemory: (resultPath, fallbackStorage, recallNamespaces) =>
1488
- this.readQmdResultMemory(resultPath, fallbackStorage, recallNamespaces),
1550
+ readQmdResultMemory: (resultPath, fallbackStorage, recallNamespaces, preferredNamespace) =>
1551
+ this.readQmdResultMemory(resultPath, fallbackStorage, recallNamespaces, preferredNamespace),
1489
1552
  });
1490
1553
  this.relevance = new RelevanceStore(config.memoryDir);
1491
1554
  this.negatives = new NegativeExampleStore(config.memoryDir);
1492
- this.lastRecall = new LastRecallStore(config.memoryDir);
1555
+ this.lastRecall = new LastRecallStore(config.memoryDir, {
1556
+ impressionsRotateBytes: config.recallImpressionsRotateBytes,
1557
+ impressionsRotateKeep: config.recallImpressionsRotateKeep,
1558
+ });
1493
1559
  this.handleHistory = new RecallHandleHistoryStore(config.memoryDir, {
1494
1560
  maxDepth: config.recallHandleSnapshotDepth,
1495
1561
  });
@@ -1512,6 +1578,7 @@ export class Orchestrator {
1512
1578
  config.hotMemoriesCacheEnabled,
1513
1579
  config.hotMemoriesCacheTtlMs,
1514
1580
  );
1581
+ StorageManager.setScopedCacheInvalidationDefault(parentDir, scopedCacheInvalidationEnabled);
1515
1582
  return new StorageManager(parentDir, config.entitySchemas, config.hotMemoriesCacheEnabled);
1516
1583
  },
1517
1584
  });
@@ -1531,7 +1598,7 @@ export class Orchestrator {
1531
1598
  getConfig: () => this.config,
1532
1599
  storageFor: (namespace) => this.storageRouter.storageFor(namespace),
1533
1600
  storageDirNamespace: (storageDir) => this.storageDirNamespace(storageDir),
1534
- qmdCollectionNamespaceFromPrefix: (prefix) => this.qmdCollectionNamespaceFromPrefix(prefix),
1601
+ qmdCollectionNamespaceFromPrefix: (prefix) => computeQmdCollectionNamespaceFromPrefix(prefix, this.config),
1535
1602
  namespaceFromPath: (p) => this.namespaceFromPath(p),
1536
1603
  });
1537
1604
 
@@ -2004,7 +2071,6 @@ export class Orchestrator {
2004
2071
  });
2005
2072
  }
2006
2073
 
2007
-
2008
2074
  async applyBehaviorRuntimePolicy(
2009
2075
  state: BehaviorLoopPolicyState,
2010
2076
  ): Promise<{
@@ -2605,14 +2671,16 @@ export class Orchestrator {
2605
2671
  }
2606
2672
 
2607
2673
  private appendRecallSection(
2608
- sectionBuckets: Map<string, string[]>,
2674
+ sectionBuckets: RecallSectionBuckets,
2609
2675
  sectionId: string,
2610
2676
  content: string,
2677
+ options?: RecallSectionAppendOptions,
2611
2678
  ): boolean {
2612
2679
  return this.recallSectionCoordinator.appendRecallSection(
2613
2680
  sectionBuckets,
2614
2681
  sectionId,
2615
2682
  content,
2683
+ options,
2616
2684
  );
2617
2685
  }
2618
2686
 
@@ -2631,7 +2699,7 @@ export class Orchestrator {
2631
2699
  }
2632
2700
 
2633
2701
  private assembleRecallSections(
2634
- sectionBuckets: Map<string, string[]>,
2702
+ sectionBuckets: RecallSectionBuckets,
2635
2703
  budgetOverride?: number,
2636
2704
  ): {
2637
2705
  sections: string[];
@@ -2639,6 +2707,10 @@ export class Orchestrator {
2639
2707
  omittedIds: string[];
2640
2708
  truncated: boolean;
2641
2709
  finalChars: number;
2710
+ includedMemoryIds: string[];
2711
+ includedMemoryPaths: string[];
2712
+ includedMemoryNamespaces: Array<string | undefined>;
2713
+ omittedMemoryIds: string[];
2642
2714
  } {
2643
2715
  return this.recallSectionCoordinator.assembleRecallSections(
2644
2716
  sectionBuckets,
@@ -2646,7 +2718,6 @@ export class Orchestrator {
2646
2718
  );
2647
2719
  }
2648
2720
 
2649
-
2650
2721
  /**
2651
2722
  * Clock source for the shared post-retrieval assembly/enrichment budget. The
2652
2723
  * deadline is set from this value and every expiry check reads it back, so a
@@ -3084,8 +3155,7 @@ export class Orchestrator {
3084
3155
  requestQmdMaintenanceForTool(reason: string): void {
3085
3156
  this.maintenanceScheduler.requestQmdMaintenanceForTool(reason);
3086
3157
  }
3087
-
3088
- private async persistExtraction(
3158
+ async persistExtraction(
3089
3159
  result: ExtractionResult,
3090
3160
  storage: StorageManager,
3091
3161
  threadIdForExtraction?: string | null,
@@ -3096,8 +3166,8 @@ export class Orchestrator {
3096
3166
  sourceText?: string,
3097
3167
  graphCaps: GraphConstructionCapabilitySet = resolveGraphConstructionCapabilities(this.config),
3098
3168
  lifecycleCaps: MemoryLifecycleCapabilitySet = resolveMemoryLifecycleCapabilities(this.config),
3099
- ): Promise<string[]> {
3100
- return this.extractionPersistCoordinator.persistExtraction(
3169
+ ): Promise<{ persistedIds: string[]; memoryPathById: Map<string, string> }> {
3170
+ const { persistedIds, memoryPathById } = await this.extractionPersistCoordinator.persistExtraction(
3101
3171
  result,
3102
3172
  storage,
3103
3173
  threadIdForExtraction,
@@ -3108,6 +3178,7 @@ export class Orchestrator {
3108
3178
  graphCaps,
3109
3179
  lifecycleCaps,
3110
3180
  );
3181
+ return { persistedIds, memoryPathById };
3111
3182
  }
3112
3183
  /**
3113
3184
  * Append persisted ids to the thread episode set, excluding pending_review
@@ -3210,7 +3281,6 @@ export class Orchestrator {
3210
3281
  return this.compressionGuidelineCoordinator.buildCompressionGuidelineRecallSection();
3211
3282
  }
3212
3283
 
3213
-
3214
3284
  async runLifecyclePolicyNow(storage: StorageManager = this.storage): Promise<{ memoriesAssessed: number }> {
3215
3285
  const lifecycleCorpus = await storage.readAllMemories();
3216
3286
  // Record the catalog write when the pass rewrote any frontmatter (codex NR-tS).
@@ -3345,7 +3415,7 @@ export class Orchestrator {
3345
3415
  private publishRecallResults(options: {
3346
3416
  title: string;
3347
3417
  results: QmdSearchResult[];
3348
- sectionBuckets: Map<string, string[]>;
3418
+ sectionBuckets: RecallSectionBuckets;
3349
3419
  retrievalQuery: string;
3350
3420
  sessionKey: string | undefined;
3351
3421
  identityInjection?: {
@@ -3370,41 +3440,13 @@ export class Orchestrator {
3370
3440
  );
3371
3441
  }
3372
3442
 
3373
- /**
3374
- * Apply MMR over the pre-truncation recall candidate pool and then slice
3375
- * the result to `limit`. This is the single place in the pipeline where
3376
- * MMR runs, and it must be called *before* callers throw away candidates
3377
- * that would otherwise sit below the final cutoff. Running MMR post-slice
3378
- * is a no-op in the cases we care about — diverse candidates just below
3379
- * the cutoff are already gone and can never be promoted.
3380
- *
3381
- * Callers must pass the full candidate pool (post-rerank, pre-slice).
3382
- */
3383
- private qmdCollectionNamespaceFromPrefix(collectionPrefix: string): string | null {
3384
- const baseCollection = this.config.qmdCollection;
3385
- if (collectionPrefix === baseCollection) return this.config.defaultNamespace;
3386
- const namespaceSuffix = collectionPrefix.startsWith(`${baseCollection}--`)
3387
- ? collectionPrefix.slice(baseCollection.length + 2)
3388
- : "";
3389
- if (!namespaceSuffix) return null;
3390
-
3391
- const decoded = namespaceIdentityFromToken(namespaceSuffix);
3392
- if (decoded !== null) return decoded || this.config.defaultNamespace;
3393
- if (namespaceSuffix.startsWith("ns--")) {
3394
- const legacyNamespace = namespaceSuffix.slice("ns--".length).trim();
3395
- return legacyNamespace || null;
3396
- }
3397
- return null;
3398
- }
3399
-
3400
- // Issue #1526 seam 11: QMD result-resolution methods moved to QmdResultResolver.
3401
- // Thin delegation keeps the private API stable for callers + tests.
3402
3443
  private async readQmdResultMemory(
3403
3444
  resultPath: string,
3404
3445
  fallbackStorage: StorageManager,
3405
3446
  recallNamespaces: readonly string[] = [],
3447
+ preferredNamespace?: string,
3406
3448
  ): Promise<MemoryFile | null> {
3407
- return this.qmdResultResolver.readQmdResultMemory(resultPath, fallbackStorage, recallNamespaces);
3449
+ return this.qmdResultResolver.readQmdResultMemory(resultPath, fallbackStorage, recallNamespaces, preferredNamespace);
3408
3450
  }
3409
3451
 
3410
3452
  private async resolveColdQmdResultForRecall(
@@ -3428,18 +3470,20 @@ export class Orchestrator {
3428
3470
  private async applyMemoryWorthRerank(
3429
3471
  results: QmdSearchResult[],
3430
3472
  namespaces: string[],
3473
+ preloadedFrontmatter?: ReadonlyMap<string, MemoryFile>,
3431
3474
  ): Promise<QmdSearchResult[]> {
3432
- return this.recallRerankCoordinator.applyMemoryWorthRerank(results, namespaces);
3475
+ return this.recallRerankCoordinator.applyMemoryWorthRerank(results, namespaces, preloadedFrontmatter);
3433
3476
  }
3434
3477
 
3435
3478
  private async applyTrustScoreRerank(
3436
3479
  results: QmdSearchResult[],
3437
3480
  namespaces: string[],
3481
+ preloadedFrontmatter?: ReadonlyMap<string, MemoryFile>,
3438
3482
  ): Promise<{
3439
3483
  results: QmdSearchResult[];
3440
3484
  trustByPath: Map<string, TrustStageResultItem> | null;
3441
3485
  }> {
3442
- return this.recallRerankCoordinator.applyTrustScoreRerank(results, namespaces);
3486
+ return this.recallRerankCoordinator.applyTrustScoreRerank(results, namespaces, preloadedFrontmatter);
3443
3487
  }
3444
3488
 
3445
3489
  private async applyTrustScoreToBranch(
@@ -3447,11 +3491,20 @@ export class Orchestrator {
3447
3491
  namespaces: string[],
3448
3492
  caps: CapabilitySet,
3449
3493
  label: string,
3494
+ preloadedFrontmatter?: ReadonlyMap<string, MemoryFile>,
3495
+ abortSignal?: AbortSignal,
3450
3496
  ): Promise<{
3451
3497
  results: QmdSearchResult[];
3452
3498
  trustByPath: Map<string, TrustStageResultItem> | null;
3453
3499
  }> {
3454
- 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
+ );
3455
3508
  }
3456
3509
 
3457
3510
  private diversifyAndLimitRecallResults(
@@ -3480,13 +3533,17 @@ export class Orchestrator {
3480
3533
  finalContextChars?: number;
3481
3534
  truncated?: boolean;
3482
3535
  includedSections?: string[];
3536
+ includedMemoryIds?: string[];
3537
+ includedMemoryPaths?: string[];
3538
+ includedMemoryNamespaces?: Array<string | undefined>;
3539
+ omittedMemoryIds?: string[];
3483
3540
  omittedSections?: string[];
3484
3541
  }): LastRecallBudgetSummary {
3485
3542
  return this.recallSectionCoordinator.buildLastRecallBudgetSummary(options);
3486
3543
  }
3487
3544
 
3488
3545
  private collectLastRecallSources(
3489
- sectionBuckets: Map<string, string[]>,
3546
+ sectionBuckets: RecallSectionBuckets,
3490
3547
  recallSource:
3491
3548
  | "none"
3492
3549
  | "hot_qmd"
@@ -3530,34 +3587,7 @@ export class Orchestrator {
3530
3587
  pathPrefix?: string;
3531
3588
  pathExcludePrefixes?: readonly string[];
3532
3589
  } {
3533
- if (!resolveNamespaceCapabilities(this.config).namespaces) return {};
3534
- const memoryDir = path.resolve(this.config.memoryDir);
3535
- const storageDir = path.resolve(targetStorage.dir);
3536
- if (storageDir === memoryDir) {
3537
- // Default namespace at legacy root. Include everything that isn't
3538
- // under `namespaces/*` (those belong to other namespaces).
3539
- return { pathExcludePrefixes: ["namespaces/"] };
3540
- }
3541
- let rel = path.relative(memoryDir, storageDir);
3542
- if (!rel || rel.startsWith("..")) {
3543
- // Round 12 fix (PR #399 thread PRRT_kwDORJXyws56U6Gj): when
3544
- // targetStorage.dir is outside memoryDir (custom namespace routing),
3545
- // toMemoryRelativePath() stores the absolute file path in the index
3546
- // rather than a memoryDir-relative path. Return the absolute storageDir
3547
- // as the pathPrefix so the search() filter still scopes the lookup to
3548
- // the correct tenant's files. Previously this returned {} (no scoping),
3549
- // which let high-similarity hits from other namespaces' absolute-path
3550
- // entries suppress writes in the target namespace — a cross-tenant
3551
- // dedup suppression path.
3552
- log.debug(
3553
- `semantic dedup: target storage dir ${storageDir} is outside memoryDir ${memoryDir}; scoping lookup to absolute path prefix`,
3554
- );
3555
- const absPrefix = storageDir.replace(/\\/g, "/");
3556
- return { pathPrefix: absPrefix.endsWith("/") ? absPrefix : `${absPrefix}/` };
3557
- }
3558
- rel = rel.replace(/\\/g, "/");
3559
- if (!rel.endsWith("/")) rel = `${rel}/`;
3560
- return { pathPrefix: rel };
3590
+ return computeSemanticDedupScope(targetStorage, this.config);
3561
3591
  }
3562
3592
 
3563
3593
  private async searchEmbeddingFallback(
@@ -3640,27 +3670,16 @@ export class Orchestrator {
3640
3670
  * Record that memories were accessed (retrieved).
3641
3671
  * Updates are batched in memory and flushed during consolidation.
3642
3672
  */
3643
- trackMemoryAccess(memoryIds: string[]): void {
3644
- if (!resolveRecallEnhancementCapabilities(this.config).accessTracking) return;
3645
-
3646
- const now = new Date().toISOString();
3647
- for (const id of memoryIds) {
3648
- const existing = this.accessTrackingBuffer.get(id);
3649
- this.accessTrackingBuffer.set(id, {
3650
- count: (existing?.count ?? 0) + 1,
3651
- lastAccessed: now,
3652
- });
3653
- }
3654
-
3655
- // Flush if buffer exceeds max size
3656
- if (
3657
- this.accessTrackingBuffer.size >= this.config.accessTrackingBufferMaxSize
3658
- ) {
3659
- this.trackRecallBackgroundWrite(
3660
- this.flushAccessTracking(),
3661
- "background access tracking flush",
3662
- );
3663
- }
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
+ );
3664
3683
  }
3665
3684
 
3666
3685
  async flushAccessTracking(): Promise<void> {
@@ -3753,15 +3772,10 @@ export class Orchestrator {
3753
3772
  );
3754
3773
  }
3755
3774
 
3756
- /**
3757
- * Extract memory IDs from QMD search results for access tracking.
3758
- */
3759
3775
  private extractMemoryIdsFromResults(results: QmdSearchResult[]): string[] {
3760
- // QMD results have paths like /path/to/fact-123.md
3761
- // Extract the ID from the filename
3762
3776
  return results
3763
3777
  .map((r) => {
3764
- const match = r.path.match(/([^/]+)\.md$/);
3778
+ const match = r.path.match(/([^/\\]+)\.md$/);
3765
3779
  return match ? match[1] : null;
3766
3780
  })
3767
3781
  .filter((id): id is string => id !== null);
@@ -3795,6 +3809,10 @@ export class Orchestrator {
3795
3809
  return this.lastRecall.get(sessionKey);
3796
3810
  }
3797
3811
 
3812
+ async drainPendingRecallImpressions() {
3813
+ return this.lastRecall.drainPendingImpressions();
3814
+ }
3815
+
3798
3816
  /**
3799
3817
  * Issue #1582 — resolve a memory handle (`[m:4f2a]` / bare hex) to its memory
3800
3818
  * id against THIS session's recent recall history. Returns the id on a unique
@@ -3942,7 +3960,6 @@ export class Orchestrator {
3942
3960
  * and inline-note writes were missing from `writtenSince`/maintenance).
3943
3961
  */
3944
3962
 
3945
-
3946
3963
  // markCatalogRead removed — use storageRouter.recordRead() instead (#1522).
3947
3964
 
3948
3965
  private async readAllMemoriesForNamespaces(
@@ -3952,7 +3969,6 @@ export class Orchestrator {
3952
3969
  namespaces,
3953
3970
  );
3954
3971
  }
3955
-
3956
3972
  private async readArchivedMemoriesForNamespaces(
3957
3973
  namespaces: string[],
3958
3974
  ): Promise<MemoryFile[]> {