@remnic/core 9.69.32 → 9.69.34

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 (775) hide show
  1. package/dist/access-admin-ops-surface.d.ts +13 -11
  2. package/dist/access-admin-ops-surface.js +64 -59
  3. package/dist/access-authorization-probe.d.ts +13 -11
  4. package/dist/access-authorization-probe.js +65 -60
  5. package/dist/access-boundary.d.ts +13 -11
  6. package/dist/access-boundary.js +64 -59
  7. package/dist/access-cli.js +140 -136
  8. package/dist/access-cli.js.map +1 -1
  9. package/dist/access-coding-context-resolution.d.ts +2 -1
  10. package/dist/access-coding-context-resolution.js +3 -3
  11. package/dist/access-extraction-force-flush.d.ts +13 -11
  12. package/dist/access-extraction-force-flush.js +64 -59
  13. package/dist/access-health-types.d.ts +2 -1
  14. package/dist/access-http-briefing.d.ts +13 -11
  15. package/dist/access-http-briefing.js +65 -60
  16. package/dist/access-http-lcm-compaction.d.ts +13 -11
  17. package/dist/access-http-lifecycle-flush.d.ts +13 -11
  18. package/dist/access-http-offline-stream.d.ts +13 -11
  19. package/dist/access-http-query.d.ts +3 -2
  20. package/dist/access-http-query.js +66 -61
  21. package/dist/access-http.d.ts +14 -12
  22. package/dist/access-http.js +86 -82
  23. package/dist/access-identity-continuity-surface.d.ts +11 -9
  24. package/dist/access-identity-continuity-surface.js +64 -59
  25. package/dist/access-lcm-surface.d.ts +13 -11
  26. package/dist/access-lcm-surface.js +64 -59
  27. package/dist/access-mcp.d.ts +13 -11
  28. package/dist/access-mcp.js +73 -69
  29. package/dist/access-memory-search-fanout.d.ts +3 -2
  30. package/dist/{access-namespace-preflight-BsvmyENS.d.ts → access-namespace-preflight-kXG8MvYx.d.ts} +1 -1
  31. package/dist/access-namespace-preflight.d.ts +4 -3
  32. package/dist/access-namespace-preflight.js +64 -59
  33. package/dist/access-observe-transcript.d.ts +11 -9
  34. package/dist/access-observe-transcript.js +3 -3
  35. package/dist/access-observe-write-surface.d.ts +15 -13
  36. package/dist/access-observe-write-surface.js +64 -59
  37. package/dist/access-offline-manifest.d.ts +47 -11
  38. package/dist/access-offline-manifest.js +18 -16
  39. package/dist/access-operations-batch.js +67 -63
  40. package/dist/access-operations.d.ts +18 -16
  41. package/dist/access-operations.js +72 -68
  42. package/dist/access-recall-concurrency.d.ts +13 -11
  43. package/dist/access-recall-concurrency.js +64 -59
  44. package/dist/access-recall-response.d.ts +13 -11
  45. package/dist/access-recall-response.js +64 -59
  46. package/dist/access-recall-surface.d.ts +13 -11
  47. package/dist/access-recall-surface.js +64 -59
  48. package/dist/access-schema.d.ts +138 -96
  49. package/dist/access-schema.js +15 -1
  50. package/dist/{access-service-CCpOuS46.d.ts → access-service-WUm2LnXZ.d.ts} +110 -108
  51. package/dist/access-service-helpers.d.ts +13 -11
  52. package/dist/access-service.d.ts +13 -11
  53. package/dist/access-service.js +64 -59
  54. package/dist/access-surface-catalog.d.ts +13 -11
  55. package/dist/access-surface-catalog.js +66 -61
  56. package/dist/access-surface-catalog.js.map +1 -1
  57. package/dist/access-wearables-meetings-surface.d.ts +4 -3
  58. package/dist/action-confidence.d.ts +2 -1
  59. package/dist/active-memory-bridge.d.ts +2 -1
  60. package/dist/active-memory-bridge.js +2 -2
  61. package/dist/active-recall.d.ts +2 -1
  62. package/dist/active-recall.js +14 -12
  63. package/dist/active-recall.js.map +1 -1
  64. package/dist/activity/digest.d.ts +56 -0
  65. package/dist/activity/digest.js +32 -0
  66. package/dist/adapters/index.d.ts +46 -1
  67. package/dist/adapters/index.js +13 -9
  68. package/dist/adapters/registry.js +3 -3
  69. package/dist/ambient-provenance.d.ts +2 -1
  70. package/dist/artifact-search.d.ts +2 -1
  71. package/dist/{auto-sync-NSHLUAQI.js → auto-sync-4YFATLFQ.js} +10 -9
  72. package/dist/{auto-sync-NSHLUAQI.js.map → auto-sync-4YFATLFQ.js.map} +1 -1
  73. package/dist/behavior-learner.d.ts +2 -1
  74. package/dist/behavior-signals.d.ts +2 -1
  75. package/dist/bootstrap.d.ts +11 -9
  76. package/dist/briefing-window.d.ts +3 -2
  77. package/dist/briefing.d.ts +3 -2
  78. package/dist/briefing.js +28 -27
  79. package/dist/buffer-surprise-report.d.ts +2 -1
  80. package/dist/buffer-turn-helpers.d.ts +2 -1
  81. package/dist/buffer.d.ts +3 -2
  82. package/dist/buffer.js +12 -11
  83. package/dist/bulk-import/index.d.ts +4 -3
  84. package/dist/calibration.d.ts +2 -1
  85. package/dist/calibration.js +3 -2
  86. package/dist/calibration.js.map +1 -1
  87. package/dist/capabilities.d.ts +2 -1
  88. package/dist/{capsule-merge-IPG4IOFP.js → capsule-merge-ZCXUPLNJ.js} +2 -2
  89. package/dist/{catalog-CDZLyiXL.d.ts → catalog-BaCx29iv.d.ts} +1 -1
  90. package/dist/causal-behavior.d.ts +2 -1
  91. package/dist/causal-consolidation.d.ts +2 -1
  92. package/dist/causal-consolidation.js +29 -28
  93. package/dist/causal-consolidation.js.map +1 -1
  94. package/dist/causal-trajectory-graph.d.ts +2 -1
  95. package/dist/{chunk-CDKHKZL5.js → chunk-2524MOWK.js} +2 -2
  96. package/dist/{chunk-HVAEXYPL.js → chunk-255PC37A.js} +47 -25
  97. package/dist/chunk-255PC37A.js.map +1 -0
  98. package/dist/{chunk-IY2FVXM6.js → chunk-2AU4D4HQ.js} +3 -3
  99. package/dist/{chunk-QDY6KYTN.js → chunk-2JCA2PQT.js} +3 -3
  100. package/dist/{chunk-RSVEP77Y.js → chunk-2UZ5ZH6W.js} +3 -3
  101. package/dist/{chunk-XQ2Q43XD.js → chunk-326KUXIR.js} +15 -648
  102. package/dist/chunk-326KUXIR.js.map +1 -0
  103. package/dist/{chunk-NWWXSJX5.js → chunk-34QW2LK2.js} +2 -2
  104. package/dist/{chunk-S7DPKM5W.js → chunk-353C5UNV.js} +1 -1
  105. package/dist/{chunk-GQOMZ3MK.js → chunk-36UBSLFN.js} +2 -2
  106. package/dist/{chunk-DBQWVT2H.js → chunk-3CBI2ZSA.js} +2 -2
  107. package/dist/{chunk-NZXEK3UF.js → chunk-3Q3N35W7.js} +2 -2
  108. package/dist/{chunk-YYGZJPOK.js → chunk-42DJ235G.js} +2 -2
  109. package/dist/{chunk-7VJXIDOC.js → chunk-4JVQRFZD.js} +9 -9
  110. package/dist/{chunk-22FVR2KE.js → chunk-4MIS4CQW.js} +6 -2
  111. package/dist/chunk-4MIS4CQW.js.map +1 -0
  112. package/dist/{chunk-WHBVXTUI.js → chunk-4PB2MBY6.js} +9 -9
  113. package/dist/{chunk-TEYN7ZYF.js → chunk-4WCNPQQ5.js} +4 -4
  114. package/dist/{chunk-Z4PCVRTN.js → chunk-5A7ZUOBA.js} +217 -396
  115. package/dist/chunk-5A7ZUOBA.js.map +1 -0
  116. package/dist/chunk-5HYUUFMQ.js +1280 -0
  117. package/dist/chunk-5HYUUFMQ.js.map +1 -0
  118. package/dist/{chunk-RBGREYVJ.js → chunk-5QBDLMGG.js} +2 -2
  119. package/dist/{chunk-RKBLRTNT.js → chunk-5SDSVX7N.js} +2 -2
  120. package/dist/{chunk-LPECRQO4.js → chunk-5THU7NFP.js} +3 -3
  121. package/dist/{chunk-N7RWREIQ.js → chunk-65RENJGB.js} +6 -1
  122. package/dist/chunk-65RENJGB.js.map +1 -0
  123. package/dist/{chunk-LWA7MDVO.js → chunk-6CCRSQWT.js} +2 -2
  124. package/dist/{chunk-TIT2C6WX.js → chunk-6XYC7NM4.js} +2 -2
  125. package/dist/{chunk-FHQSPTPZ.js → chunk-6YAIN5XJ.js} +2 -2
  126. package/dist/{chunk-PV36INNL.js → chunk-757NP436.js} +3 -3
  127. package/dist/{chunk-WJBZMNNS.js → chunk-7CAY3YKP.js} +742 -29
  128. package/dist/chunk-7CAY3YKP.js.map +1 -0
  129. package/dist/{chunk-6H5JYDOM.js → chunk-7J2CGXG3.js} +2 -2
  130. package/dist/{chunk-FBMYGNOC.js → chunk-A2YQL2FF.js} +6 -6
  131. package/dist/chunk-A5UQ52YQ.js +211 -0
  132. package/dist/chunk-A5UQ52YQ.js.map +1 -0
  133. package/dist/{chunk-X2NFFBTO.js → chunk-A7GQBJP5.js} +4 -4
  134. package/dist/{chunk-MPYD657E.js → chunk-A7WOWDZK.js} +2 -2
  135. package/dist/{chunk-C4OTC6WY.js → chunk-AIKTQVV3.js} +3 -3
  136. package/dist/{chunk-CGC5UQCF.js → chunk-AKE4GGQ3.js} +2 -2
  137. package/dist/{chunk-VP67GZ7T.js → chunk-APFKZVJS.js} +2 -2
  138. package/dist/{chunk-M75RYSHS.js → chunk-AQIRQUCP.js} +2 -2
  139. package/dist/{chunk-S7T2TY65.js → chunk-AXFR2NQ5.js} +3 -3
  140. package/dist/{chunk-PSPABFN2.js → chunk-BD7JTBYP.js} +4 -4
  141. package/dist/{chunk-FCSZ4K2X.js → chunk-BJJWRWER.js} +3 -3
  142. package/dist/{chunk-JT3EB7ZL.js → chunk-BNGHPYZU.js} +5 -5
  143. package/dist/chunk-BRZWWUCJ.js +13 -0
  144. package/dist/{chunk-FYDW33ZB.js.map → chunk-BRZWWUCJ.js.map} +1 -1
  145. package/dist/{chunk-MFJBANPX.js → chunk-C2BFTYD7.js} +2 -2
  146. package/dist/{chunk-3JVLGJCY.js → chunk-C6KRO3SU.js} +2 -2
  147. package/dist/{chunk-Q3O3VKRB.js → chunk-CRUFVJOX.js} +16 -15
  148. package/dist/chunk-CRUFVJOX.js.map +1 -0
  149. package/dist/{chunk-AOCP6JA7.js → chunk-D3IZCN5P.js} +4 -4
  150. package/dist/{chunk-ROKKIMON.js → chunk-EJIEQOPB.js} +5 -5
  151. package/dist/{chunk-ET356KSB.js → chunk-F4TWWUMP.js} +2 -2
  152. package/dist/{chunk-CLLPJ6QT.js → chunk-FQXJAC3T.js} +2 -2
  153. package/dist/{chunk-DD5JFCWM.js → chunk-GCBIXUPT.js} +2 -2
  154. package/dist/{chunk-ROGRI25A.js → chunk-I3H5LFOI.js} +2 -2
  155. package/dist/{chunk-S65WXHNK.js → chunk-IFFLUCCU.js} +2 -2
  156. package/dist/{chunk-MYMNC6O5.js → chunk-ISYZ5DUI.js} +64 -60
  157. package/dist/{chunk-MYMNC6O5.js.map → chunk-ISYZ5DUI.js.map} +1 -1
  158. package/dist/{chunk-D5LORF7A.js → chunk-JZDH2ZZK.js} +3 -3
  159. package/dist/{chunk-2GPE5UCR.js → chunk-K6IPSW5B.js} +2 -2
  160. package/dist/{chunk-HG6HXVHQ.js → chunk-KDJHLOZP.js} +10 -10
  161. package/dist/{chunk-I27RSQRR.js → chunk-KYGOQV37.js} +2 -2
  162. package/dist/{chunk-JEIXTYVG.js → chunk-L2QLDZJC.js} +46 -17
  163. package/dist/chunk-L2QLDZJC.js.map +1 -0
  164. package/dist/{chunk-A7XEPMQ6.js → chunk-LAVJC57X.js} +3 -3
  165. package/dist/chunk-LAVJC57X.js.map +1 -0
  166. package/dist/{chunk-VZWXFXLX.js → chunk-LMCD5W5B.js} +2 -2
  167. package/dist/{chunk-3QQTXYZ6.js → chunk-LSLCFCCQ.js} +2 -1
  168. package/dist/chunk-LSLCFCCQ.js.map +1 -0
  169. package/dist/{chunk-MKD3OMPS.js → chunk-M3MYMWXG.js} +2 -2
  170. package/dist/{chunk-DITMGZOL.js → chunk-MMG5K6XJ.js} +2 -2
  171. package/dist/{chunk-VGXM5B4H.js → chunk-MNIPH6LD.js} +2 -2
  172. package/dist/{chunk-CZYYJZB6.js → chunk-ND2O2PVN.js} +1014 -1318
  173. package/dist/chunk-ND2O2PVN.js.map +1 -0
  174. package/dist/chunk-NPNSKE76.js +220 -0
  175. package/dist/chunk-NPNSKE76.js.map +1 -0
  176. package/dist/{chunk-MKWKYHXJ.js → chunk-OB3XMWX5.js} +4 -4
  177. package/dist/{chunk-XU6OEECT.js → chunk-OQQXGYMX.js} +3 -3
  178. package/dist/{chunk-GTWHVXPA.js → chunk-OZUXKUPD.js} +6 -4
  179. package/dist/{chunk-GTWHVXPA.js.map → chunk-OZUXKUPD.js.map} +1 -1
  180. package/dist/chunk-PCEYGOSL.js +66 -0
  181. package/dist/chunk-PCEYGOSL.js.map +1 -0
  182. package/dist/{chunk-47DEYNMR.js → chunk-PEXW2JCK.js} +2 -2
  183. package/dist/{chunk-EEOUMG3J.js → chunk-PWPIERBM.js} +38 -6
  184. package/dist/chunk-PWPIERBM.js.map +1 -0
  185. package/dist/chunk-Q4AUIFUA.js +111 -0
  186. package/dist/chunk-Q4AUIFUA.js.map +1 -0
  187. package/dist/{chunk-SO7SV523.js → chunk-Q6LCCIZN.js} +1 -1
  188. package/dist/chunk-Q6LCCIZN.js.map +1 -0
  189. package/dist/{chunk-42SDNZCU.js → chunk-QF4J3KMV.js} +19 -19
  190. package/dist/{chunk-SB6PSOP7.js → chunk-QLJ6762U.js} +2 -2
  191. package/dist/{chunk-XOVKXJEP.js → chunk-R3TLVTWW.js} +3 -3
  192. package/dist/{chunk-PHNAB54Q.js → chunk-RQO3J4MR.js} +2 -2
  193. package/dist/{chunk-5N53UBH2.js → chunk-RR7G2X7C.js} +5 -5
  194. package/dist/{chunk-DCJ3YFIC.js → chunk-S2ULTQZR.js} +2 -2
  195. package/dist/{chunk-GY5WZBA6.js → chunk-S76KRJDG.js} +3 -3
  196. package/dist/{chunk-H272ZPQ3.js → chunk-SHEHQBCG.js} +124 -23
  197. package/dist/chunk-SHEHQBCG.js.map +1 -0
  198. package/dist/{chunk-EEC4PCG5.js → chunk-SZDLX763.js} +2 -2
  199. package/dist/{chunk-SQJ3SDIW.js → chunk-SZWEDG3H.js} +13 -7
  200. package/dist/chunk-SZWEDG3H.js.map +1 -0
  201. package/dist/{chunk-E2ZHGBAK.js → chunk-T2JSUEH6.js} +2 -2
  202. package/dist/{chunk-QMGXMJ2O.js → chunk-T2YFZ27G.js} +9 -9
  203. package/dist/{chunk-LEPOP46W.js → chunk-TFA6HPOA.js} +4 -4
  204. package/dist/{chunk-BA6WOZOT.js → chunk-TK4FHQRN.js} +4 -4
  205. package/dist/chunk-TLHNF6GA.js +647 -0
  206. package/dist/chunk-TLHNF6GA.js.map +1 -0
  207. package/dist/{chunk-ZNJSBIP4.js → chunk-TNSCIPBQ.js} +4 -4
  208. package/dist/{chunk-YUMDFDUA.js → chunk-TWYTGIBR.js} +4 -4
  209. package/dist/{chunk-FDLDOEO6.js → chunk-UBG4GAEP.js} +51 -6
  210. package/dist/chunk-UBG4GAEP.js.map +1 -0
  211. package/dist/{chunk-EZZV7OQL.js → chunk-UEZKN6VR.js} +2 -2
  212. package/dist/{chunk-HY55QQD7.js → chunk-UJX4I26O.js} +2 -2
  213. package/dist/{chunk-BLUYQFRH.js → chunk-VELCIWJZ.js} +15 -11
  214. package/dist/chunk-VELCIWJZ.js.map +1 -0
  215. package/dist/{chunk-CBCNKKZD.js → chunk-VIZR45AN.js} +2 -2
  216. package/dist/{chunk-ZG74PWRW.js → chunk-VZAKYDMJ.js} +2 -2
  217. package/dist/{chunk-ITPS5DDH.js → chunk-W5BLTZZJ.js} +8 -8
  218. package/dist/chunk-W6IJMWTZ.js +72 -0
  219. package/dist/chunk-W6IJMWTZ.js.map +1 -0
  220. package/dist/{chunk-H3TKENU4.js → chunk-WIKO4SCR.js} +5 -5
  221. package/dist/{chunk-YFLLGRXO.js → chunk-X2QPKLPL.js} +2 -2
  222. package/dist/{chunk-FGGYSN4P.js → chunk-X424T5JQ.js} +2 -2
  223. package/dist/{chunk-NAXDPKVM.js → chunk-XPJNT6PI.js} +4 -4
  224. package/dist/{chunk-2JVJ7UHC.js → chunk-XQU3CPF2.js} +4 -2
  225. package/dist/chunk-XQU3CPF2.js.map +1 -0
  226. package/dist/chunk-XW2T4QAW.js +1 -0
  227. package/dist/{chunk-VED2YHUD.js → chunk-YEDVOYL2.js} +2 -2
  228. package/dist/{chunk-TLPZ6MKZ.js → chunk-YEN4TREG.js} +541 -5
  229. package/dist/chunk-YEN4TREG.js.map +1 -0
  230. package/dist/{chunk-RC5DXXWC.js → chunk-YM7YN37H.js} +2 -2
  231. package/dist/{chunk-VLXBE57O.js → chunk-YVGXH72Y.js} +2 -2
  232. package/dist/{chunk-YQAXP5AC.js → chunk-YXLUTALO.js} +5 -5
  233. package/dist/{chunk-565C6ZFO.js → chunk-Z7YDVHDI.js} +2 -2
  234. package/dist/{chunk-O75CRYGF.js → chunk-ZEFVK7XC.js} +1 -1
  235. package/dist/chunk-ZEFVK7XC.js.map +1 -0
  236. package/dist/{chunk-XUE46UYW.js → chunk-ZLN7AROH.js} +6 -6
  237. package/dist/{chunk-GVG3JYBI.js → chunk-ZMKYCFJ7.js} +640 -199
  238. package/dist/chunk-ZMKYCFJ7.js.map +1 -0
  239. package/dist/{chunk-HK32G473.js → chunk-ZWEZXVYH.js} +2 -2
  240. package/dist/{cli-NEEdq5Rt.d.ts → cli-5mTYh1Tn.d.ts} +5 -5
  241. package/dist/cli-fallback.d.ts +11 -4
  242. package/dist/cli-fallback.js +5 -1
  243. package/dist/cli.d.ts +15 -13
  244. package/dist/cli.js +110 -106
  245. package/dist/coding/export-okf-codegraph.d.ts +2 -1
  246. package/dist/coding/export-okf-codegraph.js +34 -32
  247. package/dist/coding/export-okf-codegraph.js.map +1 -1
  248. package/dist/coding/pre-action-gate.d.ts +2 -1
  249. package/dist/compat/checks.js +2 -2
  250. package/dist/compat/codex-cli-fallback.d.ts +1 -1
  251. package/dist/compat/codex-cli-fallback.js +5 -1
  252. package/dist/compat/codex-cli-fallback.js.map +1 -1
  253. package/dist/compounding/engine.d.ts +3 -2
  254. package/dist/compounding/engine.js +29 -28
  255. package/dist/compounding/preference-consolidator.d.ts +2 -1
  256. package/dist/compression-optimizer.d.ts +2 -1
  257. package/dist/config.d.ts +2 -1
  258. package/dist/config.js +14 -12
  259. package/dist/connectors/codex-materialize-runner.d.ts +2 -1
  260. package/dist/connectors/codex-materialize-runner.js +28 -27
  261. package/dist/connectors/codex-materialize.d.ts +2 -1
  262. package/dist/connectors/index.d.ts +2 -1
  263. package/dist/connectors/index.js +30 -29
  264. package/dist/consolidation-provenance-check.d.ts +3 -2
  265. package/dist/consolidation-undo.d.ts +3 -2
  266. package/dist/contradiction/index.d.ts +4 -3
  267. package/dist/contradiction/index.js +5 -5
  268. package/dist/{contradiction-scan-NOYMFG66.js → contradiction-scan-GVD4JJ7B.js} +3 -3
  269. package/dist/converge-config.d.ts +2 -1
  270. package/dist/convergence-refresh.d.ts +3 -2
  271. package/dist/convergence-refresh.js +30 -29
  272. package/dist/conversation-index/backend.d.ts +2 -1
  273. package/dist/conversation-index/backend.js +3 -3
  274. package/dist/conversation-index/chunker.d.ts +2 -1
  275. package/dist/conversation-index/faiss-adapter.d.ts +2 -1
  276. package/dist/conversation-index/faiss-adapter.js +2 -2
  277. package/dist/conversation-index/indexer.d.ts +2 -1
  278. package/dist/conversation-index/search.d.ts +2 -1
  279. package/dist/corpus-watermark.d.ts +2 -1
  280. package/dist/corpus-watermark.js +31 -30
  281. package/dist/cross-lingual-recall.d.ts +2 -1
  282. package/dist/day-summary.d.ts +2 -1
  283. package/dist/deep-recall-http-glue.d.ts +13 -11
  284. package/dist/deep-recall-http-glue.js +12 -2
  285. package/dist/deep-recall-mcp-tools.d.ts +13 -11
  286. package/dist/deep-recall-policy-llm.d.ts +2 -1
  287. package/dist/deep-recall-policy-llm.js +4 -3
  288. package/dist/deep-recall-seeds.d.ts +2 -1
  289. package/dist/delinearize.d.ts +2 -1
  290. package/dist/dependency-propagation-config.d.ts +2 -1
  291. package/dist/{dependency-propagation-delivery-CQPCu0o5.d.ts → dependency-propagation-delivery-CDQCxNll.d.ts} +1 -1
  292. package/dist/direct-answer-wiring.d.ts +2 -1
  293. package/dist/direct-answer.d.ts +2 -1
  294. package/dist/embedding-fallback.d.ts +2 -1
  295. package/dist/enrichment/index.d.ts +2 -1
  296. package/dist/entity-origin-fields.d.ts +2 -1
  297. package/dist/entity-retrieval.d.ts +3 -2
  298. package/dist/entity-retrieval.js +28 -27
  299. package/dist/entity-schema.d.ts +2 -1
  300. package/dist/episodic-context.d.ts +2 -1
  301. package/dist/eval-trajectory-contracts.d.ts +2 -1
  302. package/dist/eval-trajectory-store.d.ts +2 -1
  303. package/dist/eval-trajectory.d.ts +2 -1
  304. package/dist/explicit-capture.d.ts +11 -9
  305. package/dist/explicit-capture.js +6 -6
  306. package/dist/external-wiki-access.d.ts +13 -11
  307. package/dist/external-wiki-access.js +65 -60
  308. package/dist/external-wiki-collection-registration.d.ts +2 -1
  309. package/dist/external-wiki-collection.d.ts +2 -1
  310. package/dist/external-wiki-mcp-tools.d.ts +13 -11
  311. package/dist/extraction-error-classification.d.ts +2 -1
  312. package/dist/extraction-faithfulness.d.ts +2 -1
  313. package/dist/extraction-faithfulness.js +4 -3
  314. package/dist/extraction-judge-telemetry.d.ts +2 -1
  315. package/dist/extraction-judge-training.d.ts +2 -1
  316. package/dist/extraction-judge.d.ts +2 -1
  317. package/dist/extraction-judge.js +5 -4
  318. package/dist/extraction-liveness.d.ts +2 -1
  319. package/dist/extraction-normalization.d.ts +2 -1
  320. package/dist/extraction-prompt.d.ts +2 -1
  321. package/dist/extraction-source-grounding-rules.d.ts +2 -1
  322. package/dist/extraction-source-grounding.d.ts +2 -1
  323. package/dist/extraction.d.ts +2 -1
  324. package/dist/extraction.js +40 -38
  325. package/dist/fallback-llm.d.ts +2 -1
  326. package/dist/fallback-llm.js +3 -2
  327. package/dist/{first-start-migration-RC345GPL.js → first-start-migration-L3UFX5CU.js} +3 -3
  328. package/dist/generic-recall-paths-CqAZyXKX.d.ts +23 -0
  329. package/dist/graph-append-error.d.ts +2 -1
  330. package/dist/graph-dashboard-diff.d.ts +2 -1
  331. package/dist/graph-dashboard-key.d.ts +2 -1
  332. package/dist/graph-dashboard-parser.d.ts +2 -1
  333. package/dist/graph-edge-reinforcement.d.ts +2 -1
  334. package/dist/graph-jsonl.d.ts +2 -1
  335. package/dist/graph-path-reconstruction.d.ts +2 -1
  336. package/dist/graph-path-scoring.d.ts +2 -1
  337. package/dist/graph-snapshot.d.ts +2 -1
  338. package/dist/graph.d.ts +2 -1
  339. package/dist/harmonic-retrieval.js +2 -2
  340. package/dist/importance.d.ts +2 -1
  341. package/dist/importers/index.d.ts +2 -1
  342. package/dist/importers/test-utils.d.ts +2 -1
  343. package/dist/in-flight-reads.d.ts +2 -1
  344. package/dist/{index-C9VXenR8.d.ts → index-BNluTxBp.d.ts} +2 -2
  345. package/dist/index.d.ts +963 -945
  346. package/dist/index.js +323 -221
  347. package/dist/intent.d.ts +2 -1
  348. package/dist/lcm/engine.d.ts +2 -1
  349. package/dist/lcm/engine.js +2 -2
  350. package/dist/lcm/index.d.ts +2 -1
  351. package/dist/lcm/index.js +7 -7
  352. package/dist/lcm/tools.d.ts +2 -1
  353. package/dist/lifecycle.d.ts +2 -1
  354. package/dist/live-connectors-runner.d.ts +2 -1
  355. package/dist/local-llm.d.ts +4 -1
  356. package/dist/local-llm.js +2 -2
  357. package/dist/local-model-endpoint.d.ts +2 -1
  358. package/dist/location/index.d.ts +4 -3
  359. package/dist/location/index.js +33 -32
  360. package/dist/maintenance/memory-governance.d.ts +2 -1
  361. package/dist/maintenance/memory-governance.js +28 -27
  362. package/dist/maintenance/rebuild-memory-lifecycle-ledger.d.ts +3 -2
  363. package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +28 -27
  364. package/dist/maintenance/rebuild-memory-projection.d.ts +3 -2
  365. package/dist/maintenance/rebuild-memory-projection.js +29 -28
  366. package/dist/{maintenance-C14sorKa.d.ts → maintenance-8hmWOMY_.d.ts} +378 -4
  367. package/dist/mcp-memory-inspector-app.d.ts +13 -11
  368. package/dist/memory-action-policy.d.ts +2 -1
  369. package/dist/memory-cache.d.ts +2 -1
  370. package/dist/memory-controller.d.ts +2 -1
  371. package/dist/memory-lifecycle-ledger-utils.d.ts +2 -1
  372. package/dist/memory-projection-store.d.ts +2 -1
  373. package/dist/memory-provenance.d.ts +2 -1
  374. package/dist/memory-snapshot.d.ts +2 -1
  375. package/dist/memory-subject-cli.d.ts +13 -11
  376. package/dist/memory-subject.d.ts +13 -11
  377. package/dist/memory-worth-outcomes.d.ts +3 -2
  378. package/dist/migrate/from-engram.js +2 -2
  379. package/dist/models-json.d.ts +2 -1
  380. package/dist/namespaces/migrate.d.ts +4 -3
  381. package/dist/namespaces/migrate.js +29 -28
  382. package/dist/namespaces/principal.d.ts +2 -1
  383. package/dist/namespaces/search.d.ts +2 -1
  384. package/dist/namespaces/search.js +11 -11
  385. package/dist/namespaces/storage.d.ts +4 -3
  386. package/dist/namespaces/storage.js +28 -27
  387. package/dist/native-knowledge.d.ts +2 -1
  388. package/dist/network/tailscale.js +2 -2
  389. package/dist/offline-sync-impression-drain.d.ts +2 -1
  390. package/dist/offline-sync-impression-drain.js +6 -6
  391. package/dist/operator-doctor-corpus.d.ts +2 -1
  392. package/dist/operator-doctor-corpus.js +32 -31
  393. package/dist/operator-doctor-replica.d.ts +2 -1
  394. package/dist/operator-toolkit.d.ts +4 -3
  395. package/dist/operator-toolkit.js +48 -46
  396. package/dist/orchestration/compression-guideline-coordinator.d.ts +3 -2
  397. package/dist/orchestration/maintenance.d.ts +5 -4
  398. package/dist/orchestration/maintenance.js +47 -42
  399. package/dist/{orchestrator-kqSzGv7e.d.ts → orchestrator-BUd_3Q86.d.ts} +17 -29
  400. package/dist/orchestrator.d.ts +11 -9
  401. package/dist/orchestrator.js +144 -138
  402. package/dist/patterns-cli.d.ts +2 -1
  403. package/dist/{pipeline-DRUwHb1X.d.ts → pipeline-Dv1Bv0ma.d.ts} +1 -1
  404. package/dist/policy-runtime.d.ts +2 -1
  405. package/dist/proactive-contention.d.ts +2 -1
  406. package/dist/provenance.d.ts +2 -1
  407. package/dist/{public-http-CW3l0g3P.d.ts → public-http-L-IymRBN.d.ts} +1 -1
  408. package/dist/{qmd-BVWlg1YS.d.ts → qmd-Mj508lHA.d.ts} +1 -1
  409. package/dist/qmd-preflight.d.ts +3 -2
  410. package/dist/qmd-recall-cache.d.ts +2 -1
  411. package/dist/qmd.d.ts +3 -2
  412. package/dist/qmd.js +2 -2
  413. package/dist/recall-concurrency-config.d.ts +2 -1
  414. package/dist/recall-disclosure-escalation.d.ts +2 -1
  415. package/dist/recall-explain-renderer.d.ts +2 -1
  416. package/dist/recall-explain-renderer.js +3 -3
  417. package/dist/recall-memory-map.d.ts +2 -1
  418. package/dist/recall-navigate-access.d.ts +2 -1
  419. package/dist/recall-navigate-access.js +2 -2
  420. package/dist/recall-navigate-disclosure.d.ts +2 -1
  421. package/dist/recall-navigate-disclosure.js +1 -1
  422. package/dist/recall-navigate.d.ts +2 -1
  423. package/dist/recall-navigate.js +2 -2
  424. package/dist/recall-planner-llm.d.ts +2 -1
  425. package/dist/recall-planner-llm.js +3 -2
  426. package/dist/recall-planner-llm.js.map +1 -1
  427. package/dist/recall-state-view-admission.d.ts +56 -0
  428. package/dist/recall-state-view-admission.js +39 -0
  429. package/dist/recall-state-view-admission.js.map +1 -0
  430. package/dist/recall-state-view-inject.js +2 -2
  431. package/dist/recall-state-view-render.js +2 -2
  432. package/dist/recall-state-view-widen.d.ts +18 -1
  433. package/dist/recall-state-view-widen.js +2 -2
  434. package/dist/recall-state-view-wire.d.ts +1 -1
  435. package/dist/recall-state-view-wire.js +3 -3
  436. package/dist/recall-state-view.d.ts +1 -0
  437. package/dist/recall-state-view.js +1 -1
  438. package/dist/recall-state.d.ts +2 -1
  439. package/dist/recall-tag-filter.d.ts +2 -1
  440. package/dist/recall-timings.d.ts +2 -1
  441. package/dist/recall-xray-cli.d.ts +2 -1
  442. package/dist/recall-xray-cli.js +4 -4
  443. package/dist/recall-xray-renderer.d.ts +2 -1
  444. package/dist/recall-xray-renderer.js +3 -3
  445. package/dist/recall-xray.d.ts +9 -1
  446. package/dist/recall-xray.js +2 -2
  447. package/dist/reconcile/cursor.d.ts +11 -2
  448. package/dist/reconcile/cursor.js +6 -4
  449. package/dist/reconcile/cursor.js.map +1 -1
  450. package/dist/reconcile/manifest.d.ts +37 -2
  451. package/dist/reconcile/manifest.js +15 -5
  452. package/dist/reconcile/plan.d.ts +2 -1
  453. package/dist/replay/normalizers/chatgpt.d.ts +2 -1
  454. package/dist/replay/normalizers/claude.d.ts +2 -1
  455. package/dist/replay/normalizers/openclaw.d.ts +2 -1
  456. package/dist/replay/normalizers/shared.d.ts +2 -1
  457. package/dist/replay/runner.d.ts +2 -1
  458. package/dist/replay/types.d.ts +2 -1
  459. package/dist/replica-divergence.d.ts +2 -1
  460. package/dist/replica-peers-config.d.ts +2 -1
  461. package/dist/{resolution-VKATP2HT.js → resolution-OHJZG45O.js} +6 -6
  462. package/dist/resolution-OHJZG45O.js.map +1 -0
  463. package/dist/resolve-auth-token.d.ts +2 -1
  464. package/dist/resume-bundles.js +15 -13
  465. package/dist/retrieval-agents.d.ts +3 -2
  466. package/dist/retrieval-tiers.d.ts +2 -1
  467. package/dist/routing/engine.d.ts +2 -1
  468. package/dist/routing/store.d.ts +2 -1
  469. package/dist/runtime/child-process.d.ts +1 -1
  470. package/dist/runtime/child-process.js +1 -1
  471. package/dist/salvage-envelope.d.ts +2 -1
  472. package/dist/salvage-envelope.js +2 -2
  473. package/dist/schemas.d.ts +176 -176
  474. package/dist/{scope-profiles-Vl00B1KU.d.ts → scope-profiles-B6BGVbxm.d.ts} +1 -1
  475. package/dist/search/embed-helper.d.ts +2 -1
  476. package/dist/search/factory.d.ts +2 -1
  477. package/dist/search/factory.js +10 -10
  478. package/dist/search/index.d.ts +2 -1
  479. package/dist/search/index.js +14 -14
  480. package/dist/search/lancedb-backend.d.ts +2 -1
  481. package/dist/search/lancedb-backend.js +2 -2
  482. package/dist/search/meilisearch-backend.d.ts +2 -1
  483. package/dist/search/meilisearch-backend.js +2 -2
  484. package/dist/search/noop-backend.d.ts +2 -1
  485. package/dist/search/orama-backend.d.ts +2 -1
  486. package/dist/search/orama-backend.js +2 -2
  487. package/dist/search/port.d.ts +2 -1
  488. package/dist/search/remote-backend.d.ts +2 -1
  489. package/dist/{semantic-consolidation-BC9-GFuT.d.ts → semantic-consolidation-J-598F5M.d.ts} +1 -1
  490. package/dist/semantic-consolidation.d.ts +3 -2
  491. package/dist/semantic-consolidation.js +29 -28
  492. package/dist/semantic-rule-promotion.js +28 -27
  493. package/dist/semantic-rule-verifier.d.ts +2 -1
  494. package/dist/semantic-rule-verifier.js +28 -27
  495. package/dist/{service-BOy6dHfc.d.ts → service-ZQkJ52cz.d.ts} +2 -2
  496. package/dist/session-observer-bands.d.ts +2 -1
  497. package/dist/session-observer-state.d.ts +2 -1
  498. package/dist/shared-context/manager.d.ts +8 -7
  499. package/dist/signal.d.ts +2 -1
  500. package/dist/source-agent-qualifier.d.ts +2 -1
  501. package/dist/source-agent-qualifier.js +38 -36
  502. package/dist/standup/build.js +29 -28
  503. package/dist/{storage-BLJRnFi6.d.ts → storage-CU_hZUgP.d.ts} +67 -6
  504. package/dist/storage.d.ts +4 -3
  505. package/dist/storage.js +27 -26
  506. package/dist/subject-config.d.ts +2 -1
  507. package/dist/subject-config.js +2 -2
  508. package/dist/summarizer.d.ts +2 -1
  509. package/dist/summarizer.js +5 -5
  510. package/dist/summary-snapshot.d.ts +2 -1
  511. package/dist/support-passport/index.d.ts +49 -15
  512. package/dist/support-passport/index.js +72 -63
  513. package/dist/temporal-supersession.d.ts +3 -2
  514. package/dist/temporal-timeline-recall.d.ts +2 -1
  515. package/dist/temporal-validity.d.ts +2 -1
  516. package/dist/threading.d.ts +2 -1
  517. package/dist/tier-migration.d.ts +3 -2
  518. package/dist/tier-routing.d.ts +2 -1
  519. package/dist/tier-routing.js +2 -2
  520. package/dist/{tier-stats-KA6OZX2C.js → tier-stats-VK5PCO2L.js} +3 -3
  521. package/dist/topics.d.ts +2 -1
  522. package/dist/transcript.d.ts +2 -1
  523. package/dist/transfer/capsule-import.js +1 -1
  524. package/dist/transfer/export-okf.d.ts +2 -1
  525. package/dist/transfer/export-okf.js +29 -28
  526. package/dist/transfer/types.d.ts +102 -102
  527. package/dist/trust-score-stage.d.ts +2 -1
  528. package/dist/trust-score.d.ts +2 -1
  529. package/dist/{types-YY-eKKU7.d.ts → types-BGxTvLBO.d.ts} +58 -13
  530. package/dist/types.d.ts +2 -1
  531. package/dist/types.js +1 -1
  532. package/dist/utility-runtime.d.ts +2 -1
  533. package/dist/verified-recall.js +28 -27
  534. package/dist/who-knows-cli.d.ts +13 -11
  535. package/dist/who-knows-cli.js +29 -28
  536. package/dist/who-knows.d.ts +13 -11
  537. package/dist/who-knows.js +28 -27
  538. package/dist/write-envelope.d.ts +4 -2
  539. package/dist/write-envelope.js +3 -1
  540. package/package.json +12 -2
  541. package/src/access-category-alias.test.ts +216 -0
  542. package/src/access-mcp.test.ts +73 -0
  543. package/src/access-mcp.ts +6 -6
  544. package/src/access-observe-write-surface.ts +19 -4
  545. package/src/access-offline-manifest.ts +297 -16
  546. package/src/access-recall-surface.ts +5 -5
  547. package/src/access-schema.ts +76 -7
  548. package/src/access-service.ts +11 -2
  549. package/src/activity/config.test.ts +124 -1
  550. package/src/activity/config.ts +150 -18
  551. package/src/activity/index.ts +3 -0
  552. package/src/activity/journal-extract-storage.test.ts +129 -0
  553. package/src/activity/journal-extract.test.ts +314 -0
  554. package/src/activity/journal-extract.ts +247 -0
  555. package/src/activity/journal-heading.test.ts +24 -1
  556. package/src/activity/journal-heading.ts +36 -0
  557. package/src/activity/journal-read.test.ts +242 -0
  558. package/src/activity/journal-read.ts +183 -0
  559. package/src/activity/journal-source.test.ts +15 -15
  560. package/src/activity/journal-source.ts +21 -14
  561. package/src/activity/journal-state.lock-worker.ts +30 -0
  562. package/src/activity/journal-state.test.ts +144 -0
  563. package/src/activity/journal-state.ts +107 -0
  564. package/src/activity/journal-strip.test.ts +106 -52
  565. package/src/activity/journal-strip.ts +35 -10
  566. package/src/activity/journal-vault-integration.test.ts +230 -0
  567. package/src/activity/journal-vault-provenance.test.ts +9 -7
  568. package/src/activity/journal-vault-provenance.ts +4 -10
  569. package/src/activity/journal-vault-read.test.ts +3 -2
  570. package/src/activity/journal-vault-read.ts +9 -139
  571. package/src/activity/journal.test.ts +74 -23
  572. package/src/activity/runner.test.ts +116 -1
  573. package/src/activity/runner.ts +25 -0
  574. package/src/activity/scheduler.ts +4 -0
  575. package/src/activity/store.test.ts +18 -0
  576. package/src/activity/store.ts +14 -0
  577. package/src/activity/sync-registration.ts +4 -0
  578. package/src/activity/timeline/analysis-metadata.ts +2 -0
  579. package/src/activity/timeline/analysis-provider.ts +140 -0
  580. package/src/activity/timeline/analysis-run.test.ts +419 -0
  581. package/src/activity/timeline/analysis-run.ts +106 -0
  582. package/src/activity/timeline/analysis.ts +66 -37
  583. package/src/activity/timeline/corrections.ts +9 -0
  584. package/src/activity/timeline/index.ts +3 -0
  585. package/src/activity/timeline/query.test.ts +71 -0
  586. package/src/activity/timeline/query.ts +57 -8
  587. package/src/activity/timeline/regenerate.test.ts +505 -0
  588. package/src/activity/timeline/regenerate.ts +373 -0
  589. package/src/activity/types.ts +40 -5
  590. package/src/adapters/grok-opencode.test.ts +146 -0
  591. package/src/adapters/grok.ts +53 -0
  592. package/src/adapters/index.ts +2 -0
  593. package/src/adapters/opencode.ts +52 -0
  594. package/src/adapters/registry.ts +4 -0
  595. package/src/cli-fallback.ts +13 -4
  596. package/src/config.test.ts +3 -1
  597. package/src/config.ts +4 -0
  598. package/src/dedup/merge.test.ts +732 -25
  599. package/src/fallback-llm.test.ts +53 -0
  600. package/src/fallback-llm.ts +12 -0
  601. package/src/index.ts +2 -0
  602. package/src/local-llm.ts +3 -1
  603. package/src/orchestration/dependency-propagation-recovery-replay.ts +1 -1
  604. package/src/orchestration/extraction-persist-deps.ts +9 -0
  605. package/src/orchestration/extraction-persist-promotion.test.ts +265 -6
  606. package/src/orchestration/extraction-persist-promotion.ts +42 -3
  607. package/src/orchestration/extraction-persist.ts +3 -3
  608. package/src/orchestration/harmonic-construction-persist.test.ts +115 -4
  609. package/src/orchestration/harmonic-construction-persist.ts +34 -6
  610. package/src/orchestration/maintenance.ts +1 -0
  611. package/src/orchestration/orchestrator-helpers.ts +6 -0
  612. package/src/orchestration/recall-entry.ts +16 -0
  613. package/src/orchestration/recall-internal-deps.ts +14 -0
  614. package/src/orchestration/recall-internal.ts +41 -58
  615. package/src/orchestration/recall-result-formatter.ts +11 -1
  616. package/src/orchestration/recall-search-pipeline.ts +121 -11
  617. package/src/orchestration/recall-state-view-pipeline.test.ts +211 -0
  618. package/src/orchestration/semantic-merge-commit-effects.ts +76 -17
  619. package/src/orchestration/semantic-merge-persist.ts +121 -16
  620. package/src/orchestration/semantic-merge-promotion-payload.ts +133 -54
  621. package/src/orchestrator.ts +7 -35
  622. package/src/providers/codex-subscription.test.ts +666 -0
  623. package/src/providers/codex-subscription.ts +743 -0
  624. package/src/recall-disclosure.test.ts +20 -0
  625. package/src/recall-state-view-admission.ts +114 -0
  626. package/src/recall-state-view-asof.test.ts +176 -0
  627. package/src/recall-state-view-call.test.ts +175 -0
  628. package/src/recall-state-view-config.test.ts +16 -0
  629. package/src/recall-state-view-widen.test.ts +70 -0
  630. package/src/recall-state-view-widen.ts +28 -7
  631. package/src/recall-state-view-wire.ts +3 -1
  632. package/src/recall-state-view-zero-diff.test.ts +20 -11
  633. package/src/recall-state-view.test.ts +142 -0
  634. package/src/recall-state-view.ts +72 -24
  635. package/src/recall-xray-renderer.test.ts +27 -0
  636. package/src/recall-xray-renderer.ts +4 -0
  637. package/src/recall-xray.ts +13 -0
  638. package/src/reconcile/cursor.ts +23 -33
  639. package/src/reconcile/manifest.ts +96 -11
  640. package/src/reconcile-identity-cache.test.ts +378 -0
  641. package/src/runtime/child-process.ts +1 -1
  642. package/src/storage/cas-revision-host.ts +75 -0
  643. package/src/storage/cas-revision-store.test.ts +459 -0
  644. package/src/storage/cas-revision-store.ts +661 -0
  645. package/src/storage/deletion-revision-store.ts +80 -6
  646. package/src/storage/tombstone-blocked-capture-index.ts +15 -0
  647. package/src/storage/tombstone-blocked-capture-mutation.ts +67 -7
  648. package/src/storage/tombstone-blocked-capture-sync.ts +55 -20
  649. package/src/storage-contract/failure-semantics.test.ts +1 -1
  650. package/src/storage-frontmatter-cas.test.ts +698 -1
  651. package/src/storage-replay.test.ts +166 -3
  652. package/src/storage.ts +41 -41
  653. package/src/support-passport/card-projection.ts +82 -33
  654. package/src/temporal-supersession.test.ts +10 -10
  655. package/src/types.ts +7 -7
  656. package/src/write-envelope.ts +1 -1
  657. package/dist/chunk-22FVR2KE.js.map +0 -1
  658. package/dist/chunk-2JVJ7UHC.js.map +0 -1
  659. package/dist/chunk-3QQTXYZ6.js.map +0 -1
  660. package/dist/chunk-4UDQUPT5.js +0 -560
  661. package/dist/chunk-4UDQUPT5.js.map +0 -1
  662. package/dist/chunk-A7XEPMQ6.js.map +0 -1
  663. package/dist/chunk-AU7Q3LSC.js +0 -56
  664. package/dist/chunk-AU7Q3LSC.js.map +0 -1
  665. package/dist/chunk-BLUYQFRH.js.map +0 -1
  666. package/dist/chunk-CZYYJZB6.js.map +0 -1
  667. package/dist/chunk-EEOUMG3J.js.map +0 -1
  668. package/dist/chunk-FDLDOEO6.js.map +0 -1
  669. package/dist/chunk-FYDW33ZB.js +0 -13
  670. package/dist/chunk-GVG3JYBI.js.map +0 -1
  671. package/dist/chunk-H272ZPQ3.js.map +0 -1
  672. package/dist/chunk-HVAEXYPL.js.map +0 -1
  673. package/dist/chunk-JEIXTYVG.js.map +0 -1
  674. package/dist/chunk-LRICZIGN.js +0 -52
  675. package/dist/chunk-LRICZIGN.js.map +0 -1
  676. package/dist/chunk-N7RWREIQ.js.map +0 -1
  677. package/dist/chunk-O75CRYGF.js.map +0 -1
  678. package/dist/chunk-Q3O3VKRB.js.map +0 -1
  679. package/dist/chunk-SEDEKFYQ.js +0 -1
  680. package/dist/chunk-SO7SV523.js.map +0 -1
  681. package/dist/chunk-SQJ3SDIW.js.map +0 -1
  682. package/dist/chunk-TLPZ6MKZ.js.map +0 -1
  683. package/dist/chunk-WJBZMNNS.js.map +0 -1
  684. package/dist/chunk-XQ2Q43XD.js.map +0 -1
  685. package/dist/chunk-Z4PCVRTN.js.map +0 -1
  686. package/src/activity/journal-mode.test.ts +0 -32
  687. package/src/activity/journal-mode.ts +0 -20
  688. /package/dist/{chunk-SEDEKFYQ.js.map → activity/digest.js.map} +0 -0
  689. /package/dist/{capsule-merge-IPG4IOFP.js.map → capsule-merge-ZCXUPLNJ.js.map} +0 -0
  690. /package/dist/{chunk-CDKHKZL5.js.map → chunk-2524MOWK.js.map} +0 -0
  691. /package/dist/{chunk-IY2FVXM6.js.map → chunk-2AU4D4HQ.js.map} +0 -0
  692. /package/dist/{chunk-QDY6KYTN.js.map → chunk-2JCA2PQT.js.map} +0 -0
  693. /package/dist/{chunk-RSVEP77Y.js.map → chunk-2UZ5ZH6W.js.map} +0 -0
  694. /package/dist/{chunk-NWWXSJX5.js.map → chunk-34QW2LK2.js.map} +0 -0
  695. /package/dist/{chunk-S7DPKM5W.js.map → chunk-353C5UNV.js.map} +0 -0
  696. /package/dist/{chunk-GQOMZ3MK.js.map → chunk-36UBSLFN.js.map} +0 -0
  697. /package/dist/{chunk-DBQWVT2H.js.map → chunk-3CBI2ZSA.js.map} +0 -0
  698. /package/dist/{chunk-NZXEK3UF.js.map → chunk-3Q3N35W7.js.map} +0 -0
  699. /package/dist/{chunk-YYGZJPOK.js.map → chunk-42DJ235G.js.map} +0 -0
  700. /package/dist/{chunk-7VJXIDOC.js.map → chunk-4JVQRFZD.js.map} +0 -0
  701. /package/dist/{chunk-WHBVXTUI.js.map → chunk-4PB2MBY6.js.map} +0 -0
  702. /package/dist/{chunk-TEYN7ZYF.js.map → chunk-4WCNPQQ5.js.map} +0 -0
  703. /package/dist/{chunk-RBGREYVJ.js.map → chunk-5QBDLMGG.js.map} +0 -0
  704. /package/dist/{chunk-RKBLRTNT.js.map → chunk-5SDSVX7N.js.map} +0 -0
  705. /package/dist/{chunk-LPECRQO4.js.map → chunk-5THU7NFP.js.map} +0 -0
  706. /package/dist/{chunk-LWA7MDVO.js.map → chunk-6CCRSQWT.js.map} +0 -0
  707. /package/dist/{chunk-TIT2C6WX.js.map → chunk-6XYC7NM4.js.map} +0 -0
  708. /package/dist/{chunk-FHQSPTPZ.js.map → chunk-6YAIN5XJ.js.map} +0 -0
  709. /package/dist/{chunk-PV36INNL.js.map → chunk-757NP436.js.map} +0 -0
  710. /package/dist/{chunk-6H5JYDOM.js.map → chunk-7J2CGXG3.js.map} +0 -0
  711. /package/dist/{chunk-FBMYGNOC.js.map → chunk-A2YQL2FF.js.map} +0 -0
  712. /package/dist/{chunk-X2NFFBTO.js.map → chunk-A7GQBJP5.js.map} +0 -0
  713. /package/dist/{chunk-MPYD657E.js.map → chunk-A7WOWDZK.js.map} +0 -0
  714. /package/dist/{chunk-C4OTC6WY.js.map → chunk-AIKTQVV3.js.map} +0 -0
  715. /package/dist/{chunk-CGC5UQCF.js.map → chunk-AKE4GGQ3.js.map} +0 -0
  716. /package/dist/{chunk-VP67GZ7T.js.map → chunk-APFKZVJS.js.map} +0 -0
  717. /package/dist/{chunk-M75RYSHS.js.map → chunk-AQIRQUCP.js.map} +0 -0
  718. /package/dist/{chunk-S7T2TY65.js.map → chunk-AXFR2NQ5.js.map} +0 -0
  719. /package/dist/{chunk-PSPABFN2.js.map → chunk-BD7JTBYP.js.map} +0 -0
  720. /package/dist/{chunk-FCSZ4K2X.js.map → chunk-BJJWRWER.js.map} +0 -0
  721. /package/dist/{chunk-JT3EB7ZL.js.map → chunk-BNGHPYZU.js.map} +0 -0
  722. /package/dist/{chunk-MFJBANPX.js.map → chunk-C2BFTYD7.js.map} +0 -0
  723. /package/dist/{chunk-3JVLGJCY.js.map → chunk-C6KRO3SU.js.map} +0 -0
  724. /package/dist/{chunk-AOCP6JA7.js.map → chunk-D3IZCN5P.js.map} +0 -0
  725. /package/dist/{chunk-ROKKIMON.js.map → chunk-EJIEQOPB.js.map} +0 -0
  726. /package/dist/{chunk-ET356KSB.js.map → chunk-F4TWWUMP.js.map} +0 -0
  727. /package/dist/{chunk-CLLPJ6QT.js.map → chunk-FQXJAC3T.js.map} +0 -0
  728. /package/dist/{chunk-DD5JFCWM.js.map → chunk-GCBIXUPT.js.map} +0 -0
  729. /package/dist/{chunk-ROGRI25A.js.map → chunk-I3H5LFOI.js.map} +0 -0
  730. /package/dist/{chunk-S65WXHNK.js.map → chunk-IFFLUCCU.js.map} +0 -0
  731. /package/dist/{chunk-D5LORF7A.js.map → chunk-JZDH2ZZK.js.map} +0 -0
  732. /package/dist/{chunk-2GPE5UCR.js.map → chunk-K6IPSW5B.js.map} +0 -0
  733. /package/dist/{chunk-HG6HXVHQ.js.map → chunk-KDJHLOZP.js.map} +0 -0
  734. /package/dist/{chunk-I27RSQRR.js.map → chunk-KYGOQV37.js.map} +0 -0
  735. /package/dist/{chunk-VZWXFXLX.js.map → chunk-LMCD5W5B.js.map} +0 -0
  736. /package/dist/{chunk-MKD3OMPS.js.map → chunk-M3MYMWXG.js.map} +0 -0
  737. /package/dist/{chunk-DITMGZOL.js.map → chunk-MMG5K6XJ.js.map} +0 -0
  738. /package/dist/{chunk-VGXM5B4H.js.map → chunk-MNIPH6LD.js.map} +0 -0
  739. /package/dist/{chunk-MKWKYHXJ.js.map → chunk-OB3XMWX5.js.map} +0 -0
  740. /package/dist/{chunk-XU6OEECT.js.map → chunk-OQQXGYMX.js.map} +0 -0
  741. /package/dist/{chunk-47DEYNMR.js.map → chunk-PEXW2JCK.js.map} +0 -0
  742. /package/dist/{chunk-42SDNZCU.js.map → chunk-QF4J3KMV.js.map} +0 -0
  743. /package/dist/{chunk-SB6PSOP7.js.map → chunk-QLJ6762U.js.map} +0 -0
  744. /package/dist/{chunk-XOVKXJEP.js.map → chunk-R3TLVTWW.js.map} +0 -0
  745. /package/dist/{chunk-PHNAB54Q.js.map → chunk-RQO3J4MR.js.map} +0 -0
  746. /package/dist/{chunk-5N53UBH2.js.map → chunk-RR7G2X7C.js.map} +0 -0
  747. /package/dist/{chunk-DCJ3YFIC.js.map → chunk-S2ULTQZR.js.map} +0 -0
  748. /package/dist/{chunk-GY5WZBA6.js.map → chunk-S76KRJDG.js.map} +0 -0
  749. /package/dist/{chunk-EEC4PCG5.js.map → chunk-SZDLX763.js.map} +0 -0
  750. /package/dist/{chunk-E2ZHGBAK.js.map → chunk-T2JSUEH6.js.map} +0 -0
  751. /package/dist/{chunk-QMGXMJ2O.js.map → chunk-T2YFZ27G.js.map} +0 -0
  752. /package/dist/{chunk-LEPOP46W.js.map → chunk-TFA6HPOA.js.map} +0 -0
  753. /package/dist/{chunk-BA6WOZOT.js.map → chunk-TK4FHQRN.js.map} +0 -0
  754. /package/dist/{chunk-ZNJSBIP4.js.map → chunk-TNSCIPBQ.js.map} +0 -0
  755. /package/dist/{chunk-YUMDFDUA.js.map → chunk-TWYTGIBR.js.map} +0 -0
  756. /package/dist/{chunk-EZZV7OQL.js.map → chunk-UEZKN6VR.js.map} +0 -0
  757. /package/dist/{chunk-HY55QQD7.js.map → chunk-UJX4I26O.js.map} +0 -0
  758. /package/dist/{chunk-CBCNKKZD.js.map → chunk-VIZR45AN.js.map} +0 -0
  759. /package/dist/{chunk-ZG74PWRW.js.map → chunk-VZAKYDMJ.js.map} +0 -0
  760. /package/dist/{chunk-ITPS5DDH.js.map → chunk-W5BLTZZJ.js.map} +0 -0
  761. /package/dist/{chunk-H3TKENU4.js.map → chunk-WIKO4SCR.js.map} +0 -0
  762. /package/dist/{chunk-YFLLGRXO.js.map → chunk-X2QPKLPL.js.map} +0 -0
  763. /package/dist/{chunk-FGGYSN4P.js.map → chunk-X424T5JQ.js.map} +0 -0
  764. /package/dist/{chunk-NAXDPKVM.js.map → chunk-XPJNT6PI.js.map} +0 -0
  765. /package/dist/{contradiction-scan-NOYMFG66.js.map → chunk-XW2T4QAW.js.map} +0 -0
  766. /package/dist/{chunk-VED2YHUD.js.map → chunk-YEDVOYL2.js.map} +0 -0
  767. /package/dist/{chunk-RC5DXXWC.js.map → chunk-YM7YN37H.js.map} +0 -0
  768. /package/dist/{chunk-VLXBE57O.js.map → chunk-YVGXH72Y.js.map} +0 -0
  769. /package/dist/{chunk-YQAXP5AC.js.map → chunk-YXLUTALO.js.map} +0 -0
  770. /package/dist/{chunk-565C6ZFO.js.map → chunk-Z7YDVHDI.js.map} +0 -0
  771. /package/dist/{chunk-XUE46UYW.js.map → chunk-ZLN7AROH.js.map} +0 -0
  772. /package/dist/{chunk-HK32G473.js.map → chunk-ZWEZXVYH.js.map} +0 -0
  773. /package/dist/{resolution-VKATP2HT.js.map → contradiction-scan-GVD4JJ7B.js.map} +0 -0
  774. /package/dist/{first-start-migration-RC345GPL.js.map → first-start-migration-L3UFX5CU.js.map} +0 -0
  775. /package/dist/{tier-stats-KA6OZX2C.js.map → tier-stats-VK5PCO2L.js.map} +0 -0
@@ -1,10 +1,14 @@
1
1
  import assert from "node:assert/strict";
2
2
  import { test } from "node:test";
3
3
  import type { StorageManager } from "../index.js";
4
+ import type { MemoryFile } from "../types.js";
4
5
  import { deriveHarmonicRecords, type HarmonicConstructionInput } from "../harmonic-construction.js";
5
6
  import { enqueueMergedTargetForHarmonicConstruction } from "./harmonic-construction-persist.js";
6
7
 
7
- const storage = { dir: "/tmp/remnic-harmonic-coalesce" } as StorageManager;
8
+ const storage = {
9
+ dir: "/tmp/remnic-harmonic-coalesce",
10
+ getMemoryByIdIncludingArchived: async () => null,
11
+ } as unknown as StorageManager;
8
12
 
9
13
  function fact(cueAnchors: NonNullable<HarmonicConstructionInput["persistedFacts"][number]["cueAnchors"]>) {
10
14
  return {
@@ -15,12 +19,13 @@ function fact(cueAnchors: NonNullable<HarmonicConstructionInput["persistedFacts"
15
19
  };
16
20
  }
17
21
 
18
- test("two merges into one target coalesce to one harmonic entry: final body, unioned anchors (round N+9 C)", () => {
22
+
23
+ test("two merges into one target coalesce to one harmonic entry: final body, unioned anchors (round N+9 C)", async () => {
19
24
  const map = new Map<string, {
20
25
  storage: StorageManager;
21
26
  facts: HarmonicConstructionInput["persistedFacts"];
22
27
  }>();
23
- enqueueMergedTargetForHarmonicConstruction(
28
+ await enqueueMergedTargetForHarmonicConstruction(
24
29
  map,
25
30
  storage,
26
31
  fact([{ type: "tool", value: "atlas release workflow" }]),
@@ -28,7 +33,7 @@ test("two merges into one target coalesce to one harmonic entry: final body, uni
28
33
  "first cumulative body",
29
34
  "2026-08-22T10:00:00.000Z",
30
35
  );
31
- enqueueMergedTargetForHarmonicConstruction(
36
+ await enqueueMergedTargetForHarmonicConstruction(
32
37
  map,
33
38
  storage,
34
39
  fact([{ type: "entity", value: "Atlas PostgreSQL" }]),
@@ -67,3 +72,109 @@ test("two merges into one target coalesce to one harmonic entry: final body, uni
67
72
  "anchors from both merges reach the persisted anchor set",
68
73
  );
69
74
  });
75
+
76
+ test("a merged target's harmonic entry carries the committed record's entityRef and tags (#2807)", async () => {
77
+ // The parity gate lets an incoming fact with NO entityRef merge into a
78
+ // target that HAS one (only a differing non-undefined incoming entity
79
+ // refuses), and incoming tags are a subset of the target's. The enqueue
80
+ // used to stamp the incoming fact's fields onto the merged entry, so the
81
+ // episode held the cumulative body while missing the target's committed
82
+ // entity association and extra tags — and deriveHarmonicRecords skipped
83
+ // the deterministic entity cue/topic linkage for the merged claims.
84
+ const MERGED_BODY = "Billing service deploys run on Tuesdays at 09:00 UTC.";
85
+ const committed: MemoryFile = {
86
+ path: "/tmp/remnic-harmonic-merged/facts/2026-08-22/fact-target.md",
87
+ frontmatter: {
88
+ id: "fact-target",
89
+ category: "fact",
90
+ entityRef: "billing-service",
91
+ tags: ["deploy", "infra"],
92
+ } as unknown as MemoryFile["frontmatter"],
93
+ content: MERGED_BODY,
94
+ };
95
+ const mergedStore = {
96
+ dir: "/tmp/remnic-harmonic-merged",
97
+ getMemoryByIdIncludingArchived: async (id: string) =>
98
+ id === "fact-target" ? committed : null,
99
+ } as unknown as StorageManager;
100
+ const map = new Map<string, {
101
+ storage: StorageManager;
102
+ facts: HarmonicConstructionInput["persistedFacts"];
103
+ }>();
104
+ await enqueueMergedTargetForHarmonicConstruction(
105
+ map,
106
+ mergedStore,
107
+ {
108
+ content: "Deploys of the billing service run on Tuesdays.",
109
+ category: "fact",
110
+ tags: ["deploy"],
111
+ cueAnchors: [{ type: "tool", value: "deploy runbook" }],
112
+ },
113
+ "fact-target",
114
+ MERGED_BODY,
115
+ "2026-08-22T12:00:00.000Z",
116
+ );
117
+ const entry = map.get(mergedStore.dir)!.facts[0]!;
118
+ assert.equal(entry.content, MERGED_BODY, "the committed merged body is the entry body");
119
+ assert.equal(entry.entityRef, "billing-service", "the committed entityRef survives the merge");
120
+ assert.deepEqual(
121
+ [...entry.tags].sort(),
122
+ ["deploy", "infra"],
123
+ "tags come from the committed target (a superset of the incoming subset)",
124
+ );
125
+ assert.deepEqual(
126
+ entry.cueAnchors?.map((anchor) => anchor.value),
127
+ ["deploy runbook"],
128
+ "event-specific cue anchors still ride in from the incoming fact",
129
+ );
130
+ const records = deriveHarmonicRecords({
131
+ sessionKey: "session-merged-entity",
132
+ recordedAt: "2026-08-22T12:00:00.000Z",
133
+ persistedFacts: [entry],
134
+ entityMentions: [{ name: "Billing Service", type: "service" }],
135
+ });
136
+ const topic = records.nodes.find(
137
+ (node) => node.kind === "topic" || node.kind === "project",
138
+ );
139
+ assert.ok(topic, "a topic node exists for the entity mention");
140
+ assert.ok(
141
+ topic.sourceMemoryIds?.includes("fact-target"),
142
+ "the entity mention links to the merged target through the committed entityRef",
143
+ );
144
+ const entityAnchor = records.anchors.find(
145
+ (anchor) => anchor.anchorType === "entity" && anchor.anchorValue === "billing-service",
146
+ );
147
+ assert.ok(
148
+ entityAnchor !== undefined && entityAnchor.nodeRefs.includes(topic.nodeId),
149
+ "the deterministic entity anchor references the topic node",
150
+ );
151
+
152
+ // Control: a reread that no longer matches the merged body (the record
153
+ // advanced mid-flight) falls back to the incoming fact's own fields.
154
+ const advancedStore = {
155
+ dir: "/tmp/remnic-harmonic-advanced",
156
+ getMemoryByIdIncludingArchived: async () => ({
157
+ ...committed,
158
+ content: "a newer writer's body",
159
+ }) as MemoryFile,
160
+ } as unknown as StorageManager;
161
+ const advancedMap = new Map<string, {
162
+ storage: StorageManager;
163
+ facts: HarmonicConstructionInput["persistedFacts"];
164
+ }>();
165
+ await enqueueMergedTargetForHarmonicConstruction(
166
+ advancedMap,
167
+ advancedStore,
168
+ {
169
+ content: "incoming body",
170
+ category: "fact",
171
+ tags: ["deploy"],
172
+ },
173
+ "fact-target",
174
+ MERGED_BODY,
175
+ "2026-08-22T12:00:00.000Z",
176
+ );
177
+ const fallback = advancedMap.get(advancedStore.dir)!.facts[0]!;
178
+ assert.equal(fallback.entityRef, undefined, "an advanced record never lends its metadata");
179
+ assert.deepEqual(fallback.tags, ["deploy"]);
180
+ });
@@ -8,7 +8,7 @@ import {
8
8
  } from "../harmonic-construction.js";
9
9
  import { log } from "../logger.js";
10
10
  import type { StorageManager } from "../index.js";
11
- import type { ExtractionResult } from "../types.js";
11
+ import type { MemoryFile, ExtractionResult } from "../types.js";
12
12
 
13
13
  export interface HarmonicPersistenceEntry {
14
14
  storage: { dir: string };
@@ -57,8 +57,20 @@ export function filterHarmonicEntityMentions(
57
57
  * anchors UNION across merges — anchors are deduped by id downstream, but
58
58
  * the union keeps the earlier merge's anchors alive when the later incoming
59
59
  * fact carried none.
60
+ *
61
+ * #2807 (finding 3): the entry's metadata comes from the REREAD committed
62
+ * target, never the incoming fact alone. The parity gate lets an incoming
63
+ * fact with no entityRef merge into a target that HAS one (only a
64
+ * differing non-undefined incoming entity refuses), and incoming tags are
65
+ * a subset of the target's — so stamping the incoming fields onto the
66
+ * cumulative body dropped the target's committed entity association and
67
+ * extra tags, and `deriveHarmonicRecords` skipped the deterministic
68
+ * entity cue/topic linkage for the merged claims. Cue anchors stay
69
+ * incoming-only: they are event-specific. An unreadable or advanced record
70
+ * falls back to the incoming fact's own fields (fail-open, like every
71
+ * merge-adjacent effect).
60
72
  */
61
- export function enqueueMergedTargetForHarmonicConstruction(
73
+ export async function enqueueMergedTargetForHarmonicConstruction(
62
74
  entries: Map<
63
75
  string,
64
76
  { storage: StorageManager; facts: HarmonicConstructionInput["persistedFacts"] }
@@ -71,22 +83,38 @@ export function enqueueMergedTargetForHarmonicConstruction(
71
83
  memoryId: string,
72
84
  content: string,
73
85
  insertedAt: string,
74
- ): void {
86
+ ): Promise<void> {
87
+ let committed: MemoryFile | null = null;
88
+ try {
89
+ committed = await storage.getMemoryByIdIncludingArchived(memoryId);
90
+ } catch {
91
+ committed = null;
92
+ }
93
+ const derived =
94
+ committed && committed.content === content
95
+ ? {
96
+ ...fact,
97
+ category: committed.frontmatter.category,
98
+ tags: [...new Set([...(committed.frontmatter.tags ?? []), ...fact.tags])],
99
+ entityRef: committed.frontmatter.entityRef ?? fact.entityRef,
100
+ validAt: committed.frontmatter.valid_at ?? fact.validAt,
101
+ }
102
+ : fact;
75
103
  const entry = entries.get(storage.dir) ?? { storage, facts: [] };
76
104
  const prior = entry.facts.findIndex((existing) => existing.memoryId === memoryId);
77
105
  if (prior !== -1) {
78
106
  entry.facts[prior] = {
79
- ...fact,
107
+ ...derived,
80
108
  content,
81
109
  memoryId,
82
110
  insertedAt,
83
111
  cueAnchors: [
84
112
  ...(entry.facts[prior]!.cueAnchors ?? []),
85
- ...(fact.cueAnchors ?? []),
113
+ ...(derived.cueAnchors ?? []),
86
114
  ],
87
115
  };
88
116
  } else {
89
- entry.facts.push({ ...fact, content, memoryId, insertedAt });
117
+ entry.facts.push({ ...derived, content, memoryId, insertedAt });
90
118
  }
91
119
  entries.set(storage.dir, entry);
92
120
  }
@@ -167,6 +167,7 @@ export class MaintenanceScheduler {
167
167
  secureStoreEnabled: resolveRecallAuxiliaryCapabilities(deps.config).secureStore,
168
168
  getQmd: () => deps.getQmd(),
169
169
  requestReindexRetry: () => this.requestQmdMaintenanceForTool("activity-reindex-retry"),
170
+ pluginConfig: deps.config,
170
171
  ...(deps.onActivitySynced ? { onSynced: deps.onActivitySynced } : {}),
171
172
  });
172
173
  }
@@ -248,6 +248,12 @@ export interface RecallInvocationOptions {
248
248
  * normally be pruned by confidence decay. Default `false`.
249
249
  */
250
250
  includeLowConfidence?: boolean;
251
+ /**
252
+ * #1952 — per-call override enabling state-aware recall views for this
253
+ * recall only (MCP `stateView` boolean). ORs with the `recallStateViews`
254
+ * config flag; a change-intent query is still required for any effect.
255
+ */
256
+ stateView?: boolean;
251
257
  /**
252
258
  * User-aware context scopes active for this recall. Used by X-ray
253
259
  * provenance safety checks so boundary-scoped memories are evaluated
@@ -272,6 +272,20 @@ export class RecallEntryCoordinator {
272
272
  * also threaded to formatQmdResultEntries for the epistemic hedge.
273
273
  */
274
274
  trustByPath?: Map<string, TrustStageResultItem> | null;
275
+ /**
276
+ * #1952 — per-request effective state-view flag (per-call `stateView`
277
+ * OR `recallStateViews` config, gated on change intent), computed once
278
+ * in recallInternal and threaded here. The inject seam uses this flag
279
+ * instead of rereading live config so a per-call `stateView: true`
280
+ * still labels/widens when the global flag is false.
281
+ */
282
+ stateViewActive?: boolean;
283
+ /**
284
+ * #1952 — historical recall pin (epoch ms) for this call. Under a
285
+ * pin, annotation must not discard a predecessor whose successor is
286
+ * absent due to the asOf validity filter; see applyRecallStateViews.
287
+ */
288
+ asOfMs?: number;
275
289
  }): void {
276
290
  const sectionId = "memories";
277
291
  const trustByPath = options.trustByPath ?? null;
@@ -281,6 +295,8 @@ export class RecallEntryCoordinator {
281
295
  : options.results,
282
296
  options.retrievalQuery,
283
297
  this.deps.config,
298
+ options.stateViewActive === true,
299
+ options.asOfMs,
284
300
  );
285
301
  if (injectable.length === 0) return;
286
302
 
@@ -69,6 +69,8 @@ export interface RecallInternalDeps {
69
69
  /** Issue #680 — historical recall point in ms-since-epoch. */
70
70
  asOfMs?: number;
71
71
  requestingConnector?: string;
72
+ /** #1952 state-view admission — resolved by the caller from config/override + change intent. */
73
+ stateViewActive?: boolean;
72
74
  /**
73
75
  * Optional out-parameter that receives the pre-MMR / pre-truncation
74
76
  * pool size captured inside the pipeline (issue #570 PR 1). The
@@ -133,6 +135,8 @@ export interface RecallInternalDeps {
133
135
  * string at the input boundary (CLI / HTTP / MCP).
134
136
  */
135
137
  asOfMs?: number;
138
+ /** #1952 state-view admission — see RecallSearchPipelineCoordinator. */
139
+ stateViewActive?: boolean;
136
140
  requestingConnector?: string;
137
141
  },
138
142
  ): Promise<QmdSearchResult[]>;
@@ -233,6 +237,8 @@ export interface RecallInternalDeps {
233
237
  dropUnresolved?: boolean;
234
238
  recallNamespaces?: readonly string[];
235
239
  requestingConnector?: string;
240
+ /** #1952 state-view admission — see RecallSearchPipelineCoordinator. */
241
+ stateViewActive?: boolean;
236
242
  },
237
243
  ): Promise<{ results: QmdSearchResult[]; memoryByPath: Map<string, MemoryFile> }>;
238
244
  formatCausalTrajectoryResults(
@@ -321,6 +327,14 @@ export interface RecallInternalDeps {
321
327
  * formatQmdResults for the epistemic hedge.
322
328
  */
323
329
  trustByPath?: Map<string, TrustStageResultItem> | null;
330
+ /**
331
+ * #1952 — per-request effective state-view flag from recallInternal.
332
+ * The publish seam must not reread live config (per-call override
333
+ * semantics, issue #1952).
334
+ */
335
+ stateViewActive?: boolean;
336
+ /** #1952 — historical recall pin (epoch ms); asOf-mode annotation. */
337
+ asOfMs?: number;
324
338
  }): void;
325
339
  readonly qmd: SearchBackend;
326
340
  queueEvalShadowRecall(
@@ -69,7 +69,6 @@ import type { SearchDegradation } from "../search/port.js";
69
69
  import { type VerifiedSemanticRuleResult, compareVerifiedSemanticRuleResults, searchVerifiedSemanticRules } from "../semantic-rule-verifier.js";
70
70
  import { isDisagreementPrompt } from "../signal.js";
71
71
  import { buildTargetedFactRecallSection, shouldRecallTargetedFactEvidence } from "../targeted-fact-recall.js";
72
- import { shouldFilterSupersededFromRecall } from "../temporal-supersession.js";
73
72
  import { queryTemporalTimelineAsync } from "../temporal-index.js";
74
73
  import { type TrustStageResultItem, projectTrustForXray } from "../trust-score-stage.js";
75
74
  import { isValidAsOf } from "../temporal-validity.js";
@@ -99,6 +98,7 @@ import {
99
98
  type RecallInvocationOptions,
100
99
  } from "../orchestrator.js";
101
100
  import { isGenericRecallExcludedPath } from "./generic-recall-paths.js";
101
+ import { filterRecentScanMemoriesForStateView, indexStateViewAnnotatedResults, resolveRecallStateViewActive } from "../recall-state-view-admission.js";
102
102
  import type { RecallSectionBuckets } from "./recall-section-coordinator.js";
103
103
  import {
104
104
  reconcileRecallResultPartition,
@@ -243,6 +243,7 @@ export class RecallInternalCoordinator {
243
243
  cronConversationRecallMode: this.deps.config.cronConversationRecallMode,
244
244
  });
245
245
  const retrievalQuery = queryPolicy.retrievalQuery || prompt;
246
+ const stateViewActive = resolveRecallStateViewActive(options, this.deps.config, retrievalQuery);
246
247
  const retrievalQueryHash = createHash("sha256")
247
248
  .update(retrievalQuery)
248
249
  .digest("hex");
@@ -3842,6 +3843,7 @@ export class RecallInternalCoordinator {
3842
3843
  undefined,
3843
3844
  {
3844
3845
  asOfMs,
3846
+ stateViewActive,
3845
3847
  // If QMD had already settled before the ordered assembly reached it,
3846
3848
  // do not let unrelated slow enrichment turn those known results into
3847
3849
  // unchecked misses. QMD that only settles during its own wait remains
@@ -3865,7 +3867,7 @@ export class RecallInternalCoordinator {
3865
3867
  recallNamespaces,
3866
3868
  retrievalQuery,
3867
3869
  qmdBoostInput.memoryByPath,
3868
- { asOfMs, requestingConnector: options.sourceConnector },
3870
+ { asOfMs, stateViewActive, requestingConnector: options.sourceConnector },
3869
3871
  ),
3870
3872
  qmdBoostInput.results,
3871
3873
  );
@@ -4068,6 +4070,8 @@ export class RecallInternalCoordinator {
4068
4070
  injectedChars: identityInjectedChars,
4069
4071
  truncated: identityInjectionTruncated,
4070
4072
  },
4073
+ stateViewActive,
4074
+ asOfMs,
4071
4075
  trustByPath: recallTrustByPath,
4072
4076
  });
4073
4077
  recalledMemoryPaths = memoryResults
@@ -4106,7 +4110,7 @@ export class RecallInternalCoordinator {
4106
4110
  recallNamespaces,
4107
4111
  retrievalQuery,
4108
4112
  undefined,
4109
- { asOfMs, requestingConnector: options.sourceConnector },
4113
+ { asOfMs, stateViewActive, requestingConnector: options.sourceConnector },
4110
4114
  );
4111
4115
  xrayBranchPoolSize.hot_embedding = Math.max(
4112
4116
  xrayBranchPoolSize.hot_embedding,
@@ -4190,6 +4194,8 @@ export class RecallInternalCoordinator {
4190
4194
  injectedChars: identityInjectedChars,
4191
4195
  truncated: identityInjectionTruncated,
4192
4196
  },
4197
+ stateViewActive,
4198
+ asOfMs,
4193
4199
  trustByPath: recallTrustByPath,
4194
4200
  });
4195
4201
  recalledMemoryPaths = scoped
@@ -4201,6 +4207,7 @@ export class RecallInternalCoordinator {
4201
4207
  options.xrayCapture === true ? { partition: null } : undefined;
4202
4208
  const longTerm = await this.deps.applyColdFallbackPipeline({
4203
4209
  prompt: retrievalQuery,
4210
+ stateViewActive,
4204
4211
  recallNamespaces,
4205
4212
  recallResultLimit,
4206
4213
  recallMode,
@@ -4244,6 +4251,8 @@ export class RecallInternalCoordinator {
4244
4251
  injectedChars: identityInjectedChars,
4245
4252
  truncated: identityInjectionTruncated,
4246
4253
  },
4254
+ stateViewActive,
4255
+ asOfMs,
4247
4256
  trustByPath: recallTrustByPath,
4248
4257
  });
4249
4258
  recalledMemoryPaths = longTerm
@@ -4318,7 +4327,7 @@ export class RecallInternalCoordinator {
4318
4327
  recallNamespaces,
4319
4328
  retrievalQuery,
4320
4329
  undefined,
4321
- { asOfMs, requestingConnector: options.sourceConnector },
4330
+ { asOfMs, stateViewActive, requestingConnector: options.sourceConnector },
4322
4331
  );
4323
4332
  // MMR runs on the pre-truncation pool (see the hot-embedding branch).
4324
4333
  xrayBranchPoolSize.hot_embedding = Math.max(
@@ -4400,6 +4409,8 @@ export class RecallInternalCoordinator {
4400
4409
  injectedChars: identityInjectedChars,
4401
4410
  truncated: identityInjectionTruncated,
4402
4411
  },
4412
+ stateViewActive,
4413
+ asOfMs,
4403
4414
  trustByPath: recallTrustByPath,
4404
4415
  });
4405
4416
  recalledMemoryPaths = scoped
@@ -4416,59 +4427,19 @@ export class RecallInternalCoordinator {
4416
4427
  [] as MemoryFile[],
4417
4428
  );
4418
4429
  if (memories.length > 0) {
4419
- // Filter out non-active memories. Delegate to
4420
- // shouldFilterSupersededFromRecall for superseded-status logic so
4421
- // that the recent-scan path and the boostSearchResults (QMD) path
4422
- // have identical semantics:
4423
- // • temporalSupersessionEnabled=false → never filter superseded
4424
- // (mirrors QMD path; user disabled the feature, so old marks
4425
- // are ignored and all memories surface)
4426
- // • temporalSupersessionIncludeInRecall=true → never filter (audit mode)
4427
- // • enabled=true + includeInRecall=false → filter superseded
4428
- // Previously the recent-scan path checked `enabled && includeInRecall`
4429
- // directly, which disagreed with the QMD path when enabled=false
4430
- // (memories were still filtered, contrary to the kill-switch intent).
4431
- // Using the shared gate fixes both Finding 2 and Finding 3 from
4432
- // PR #402 (round 6).
4433
- const supersessionOptions = {
4434
- enabled: lifecycleCaps.temporalSupersession,
4435
- includeInRecall: this.deps.config.temporalSupersessionIncludeInRecall,
4436
- };
4437
- // Cursor Medium on PR #713: when `as_of` is active, the
4438
- // recent-scan path used to strip every non-active status
4439
- // (including superseded) before `boostSearchResults` ran,
4440
- // so the as_of bypass inside boostSearchResults never had
4441
- // a chance to admit historically-valid records. Pass
4442
- // superseded candidates through here when as_of is active;
4443
- // boostSearchResults's `[valid_at, invalid_at)` evaluation
4444
- // is the authoritative gate. Other non-active statuses
4445
- // (archived, forgotten, rejected) stay excluded — historical
4446
- // recall is about supersession history, not about reviving
4447
- // records the operator explicitly dropped.
4448
- const asOfActive =
4449
- typeof asOfMs === "number" && Number.isFinite(asOfMs);
4450
- const activeMemories = memories.filter(
4451
- (m) => {
4452
- if (isGenericRecallExcludedPath(m.path, this.deps.config)) return false;
4453
- const status = m.frontmatter.status;
4454
- if (!status || status === "active") return true;
4455
- if (status === "superseded") {
4456
- if (asOfActive) return true;
4457
- // Include superseded memory only if the canonical gate says
4458
- // NOT to filter it (kill switch off or audit mode on).
4459
- return !shouldFilterSupersededFromRecall(m.frontmatter, supersessionOptions);
4460
- }
4461
- // Other non-active statuses (archived, retired, etc.) are
4462
- // excluded from the recent-scan path by default.
4463
- return false;
4430
+ const activeMemories = filterRecentScanMemoriesForStateView(
4431
+ memories,
4432
+ this.deps.config,
4433
+ {
4434
+ enabled: lifecycleCaps.temporalSupersession,
4435
+ includeInRecall: this.deps.config.temporalSupersessionIncludeInRecall,
4464
4436
  },
4437
+ stateViewActive,
4438
+ asOfMs,
4465
4439
  );
4466
- // Convert all active memories to QmdSearchResult with recency-based
4467
- // baseline score, then pass through boostSearchResults so temporal/tag
4468
- // boosts apply consistently with the primary QMD retrieval path.
4469
- // Cap AFTER boosting so boosted-but-recency-ranked memories can surface.
4470
- // Pass a pre-populated memoryByPath so boostSearchResults skips redundant
4471
- // disk reads for files already loaded by readAllMemoriesForNamespaces.
4440
+ // Convert to QmdSearchResult with recency baseline, then boost so
4441
+ // temporal/tag boosts match the QMD path. Cap AFTER boosting, and
4442
+ // pass a pre-populated memoryByPath to skip redundant disk reads.
4472
4443
  const queryAwareScopedMemories = queryAwarePrefilter.candidatePaths
4473
4444
  ? activeMemories.filter((memory) =>
4474
4445
  queryAwarePrefilter.candidatePaths?.has(memory.path),
@@ -4482,6 +4453,7 @@ export class RecallInternalCoordinator {
4482
4453
  options.xrayCapture === true ? { partition: null } : undefined;
4483
4454
  const longTerm = await this.deps.applyColdFallbackPipeline({
4484
4455
  prompt: retrievalQuery,
4456
+ stateViewActive,
4485
4457
  recallNamespaces,
4486
4458
  recallResultLimit,
4487
4459
  recallMode,
@@ -4517,6 +4489,8 @@ export class RecallInternalCoordinator {
4517
4489
  injectedChars: identityInjectedChars,
4518
4490
  truncated: identityInjectionTruncated,
4519
4491
  },
4492
+ stateViewActive,
4493
+ asOfMs,
4520
4494
  trustByPath: recallTrustByPath,
4521
4495
  });
4522
4496
  recalledMemoryPaths = longTerm
@@ -4554,7 +4528,7 @@ export class RecallInternalCoordinator {
4554
4528
  recallNamespaces,
4555
4529
  retrievalQuery,
4556
4530
  preloadedMap,
4557
- { asOfMs, requestingConnector: options.sourceConnector },
4531
+ { asOfMs, stateViewActive, requestingConnector: options.sourceConnector },
4558
4532
  )
4559
4533
  ).sort((a, b) => b.score - a.score);
4560
4534
  // MMR runs on the pre-truncation pool so diverse candidates just
@@ -4644,6 +4618,8 @@ export class RecallInternalCoordinator {
4644
4618
  injectedChars: identityInjectedChars,
4645
4619
  truncated: identityInjectionTruncated,
4646
4620
  },
4621
+ stateViewActive,
4622
+ asOfMs,
4647
4623
  trustByPath: recallTrustByPath,
4648
4624
  });
4649
4625
  recalledMemoryPaths = recent
@@ -4655,6 +4631,7 @@ export class RecallInternalCoordinator {
4655
4631
  options.xrayCapture === true ? { partition: null } : undefined;
4656
4632
  const longTerm = await this.deps.applyColdFallbackPipeline({
4657
4633
  prompt: retrievalQuery,
4634
+ stateViewActive,
4658
4635
  recallNamespaces,
4659
4636
  recallResultLimit,
4660
4637
  recallMode,
@@ -4697,6 +4674,8 @@ export class RecallInternalCoordinator {
4697
4674
  injectedChars: identityInjectedChars,
4698
4675
  truncated: identityInjectionTruncated,
4699
4676
  },
4677
+ stateViewActive,
4678
+ asOfMs,
4700
4679
  trustByPath: recallTrustByPath,
4701
4680
  });
4702
4681
  recalledMemoryPaths = longTerm
@@ -4711,6 +4690,7 @@ export class RecallInternalCoordinator {
4711
4690
  options.xrayCapture === true ? { partition: null } : undefined;
4712
4691
  const longTerm = await this.deps.applyColdFallbackPipeline({
4713
4692
  prompt: retrievalQuery,
4693
+ stateViewActive,
4714
4694
  recallNamespaces,
4715
4695
  recallResultLimit,
4716
4696
  recallMode,
@@ -4752,6 +4732,8 @@ export class RecallInternalCoordinator {
4752
4732
  injectedChars: identityInjectedChars,
4753
4733
  truncated: identityInjectionTruncated,
4754
4734
  },
4735
+ stateViewActive,
4736
+ asOfMs,
4755
4737
  trustByPath: recallTrustByPath,
4756
4738
  });
4757
4739
  recalledMemoryPaths = longTerm
@@ -5050,8 +5032,8 @@ export class RecallInternalCoordinator {
5050
5032
  // Build a path → QmdSearchResult index so we can pull per-result
5051
5033
  // explain data (e.g. reinforcementBoost) from the result that
5052
5034
  // boostSearchResults annotated before surfacing to xray.
5053
- const xrayResultByPath = new Map<string, QmdSearchResult>(
5054
- xrayRecalledResults.map((xr) => [`${xr.namespace ?? ""}\0${xr.path}`, xr]),
5035
+ const xrayResultByPath = indexStateViewAnnotatedResults(
5036
+ xrayRecalledResults, retrievalQuery, this.deps.config, stateViewActive, asOfMs,
5055
5037
  );
5056
5038
  const results: RecallXrayResult[] = [];
5057
5039
  for (let xrayIdx = 0; xrayIdx < recalledMemoryPaths.length; xrayIdx += 1) {
@@ -5109,6 +5091,7 @@ export class RecallInternalCoordinator {
5109
5091
  servedBy,
5110
5092
  scoreDecomposition,
5111
5093
  admittedBy: [],
5094
+ ...(xrayResult?.stateLabel ? { stateView: xrayResult.stateLabel } : {}),
5112
5095
  ...(xrayResult?.pathNodeIds ? { pathNodeIds: xrayResult.pathNodeIds } : {}),
5113
5096
  ...(typeof xrayResult?.pathPenaltyApplied === "boolean"
5114
5097
  ? { pathPenaltyApplied: xrayResult.pathPenaltyApplied }
@@ -18,6 +18,7 @@
18
18
  */
19
19
 
20
20
  import { buildHandleIndexForResults } from "../recall-handles.js";
21
+ import { formatSupersededPrefix } from "../recall-state-view.js";
21
22
  import path from "node:path";
22
23
  import { renderAuthorityBoundContent } from "../recall-context-composition.js";
23
24
  import { renderEpistemicHedge } from "../trust-score.js";
@@ -215,8 +216,17 @@ export class RecallResultFormatter {
215
216
  const snippetBody = r.snippet
216
217
  ? r.snippet.slice(0, 500).replace(/\n/g, " ")
217
218
  : "(no preview)";
219
+ // Historical-prefix contract (issue #1952): only a labeled superseded
220
+ // row gets `[superseded <date> by <id>]`; every other row — and every
221
+ // render with the feature off — stays byte-identical.
222
+ const statePrefix =
223
+ (r.stateLabel === "historical" || r.stateLabel === "transition") &&
224
+ r.supersededAt &&
225
+ r.supersededBy
226
+ ? `${formatSupersededPrefix(r.supersededAt, r.supersededBy)} `
227
+ : "";
218
228
  const snippet = renderAuthorityBoundContent(
219
- snippetBody,
229
+ `${statePrefix}${snippetBody}`,
220
230
  r.origin,
221
231
  {
222
232
  enabled: this.originAuthorityEnabled,