@remnic/core 9.69.37 → 9.69.39

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 (697) hide show
  1. package/dist/access-admin-ops-surface.d.ts +14 -12
  2. package/dist/access-admin-ops-surface.js +86 -83
  3. package/dist/access-authorization-probe.d.ts +14 -12
  4. package/dist/access-authorization-probe.js +87 -84
  5. package/dist/access-boundary.d.ts +14 -12
  6. package/dist/access-boundary.js +86 -83
  7. package/dist/access-cli.js +197 -191
  8. package/dist/access-cli.js.map +1 -1
  9. package/dist/access-coding-context-resolution.d.ts +2 -1
  10. package/dist/access-extraction-force-flush.d.ts +14 -12
  11. package/dist/access-extraction-force-flush.js +86 -83
  12. package/dist/access-health-types.d.ts +2 -1
  13. package/dist/access-http-briefing.d.ts +14 -12
  14. package/dist/access-http-briefing.js +87 -84
  15. package/dist/access-http-lcm-compaction.d.ts +14 -12
  16. package/dist/access-http-lifecycle-flush.d.ts +14 -12
  17. package/dist/access-http-offline-stream.d.ts +14 -12
  18. package/dist/access-http-query.d.ts +3 -2
  19. package/dist/access-http-query.js +88 -85
  20. package/dist/access-http.d.ts +15 -13
  21. package/dist/access-http.js +108 -105
  22. package/dist/access-identity-continuity-surface.d.ts +12 -10
  23. package/dist/access-identity-continuity-surface.js +86 -83
  24. package/dist/access-lcm-surface.d.ts +14 -12
  25. package/dist/access-lcm-surface.js +86 -83
  26. package/dist/access-mcp.d.ts +14 -12
  27. package/dist/access-mcp.js +97 -94
  28. package/dist/access-memory-search-fanout.d.ts +3 -2
  29. package/dist/{access-namespace-preflight-CV5cHujx.d.ts → access-namespace-preflight-DY4z6L5X.d.ts} +1 -1
  30. package/dist/access-namespace-preflight.d.ts +4 -3
  31. package/dist/access-namespace-preflight.js +86 -83
  32. package/dist/access-observe-transcript.d.ts +12 -10
  33. package/dist/access-observe-write-category.d.ts +37 -0
  34. package/dist/access-observe-write-category.js +34 -0
  35. package/dist/access-observe-write-surface.d.ts +17 -15
  36. package/dist/access-observe-write-surface.js +86 -83
  37. package/dist/access-offline-manifest.d.ts +12 -10
  38. package/dist/access-offline-manifest.js +15 -15
  39. package/dist/access-operations-batch.js +91 -88
  40. package/dist/access-operations.d.ts +17 -30
  41. package/dist/access-operations.js +96 -93
  42. package/dist/access-recall-concurrency.d.ts +14 -12
  43. package/dist/access-recall-concurrency.js +86 -83
  44. package/dist/access-recall-response.d.ts +14 -12
  45. package/dist/access-recall-response.js +86 -83
  46. package/dist/access-recall-surface.d.ts +14 -12
  47. package/dist/access-recall-surface.js +86 -83
  48. package/dist/access-schema.d.ts +210 -107
  49. package/dist/access-schema.js +9 -15
  50. package/dist/{access-service-DwHC7lcV.d.ts → access-service-MY4bsr_Q.d.ts} +101 -77
  51. package/dist/access-service-helpers.d.ts +14 -12
  52. package/dist/access-service.d.ts +14 -12
  53. package/dist/access-service.js +86 -83
  54. package/dist/access-surface-catalog.d.ts +14 -12
  55. package/dist/access-surface-catalog.js +88 -85
  56. package/dist/access-surface-catalog.js.map +1 -1
  57. package/dist/access-wearables-meetings-surface.d.ts +5 -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 +3 -3
  61. package/dist/active-recall.d.ts +2 -1
  62. package/dist/active-recall.js +20 -17
  63. package/dist/active-recall.js.map +1 -1
  64. package/dist/activity/digest.d.ts +2 -1
  65. package/dist/adapters/index.js +4 -4
  66. package/dist/adapters/registry.js +2 -2
  67. package/dist/ambient-provenance.d.ts +2 -1
  68. package/dist/artifact-search.d.ts +2 -1
  69. package/dist/{auto-sync-FSRJDU63.js → auto-sync-RP4C6ZPF.js} +11 -9
  70. package/dist/{auto-sync-FSRJDU63.js.map → auto-sync-RP4C6ZPF.js.map} +1 -1
  71. package/dist/background-generation-config.d.ts +10 -0
  72. package/dist/background-generation-config.js +9 -0
  73. package/dist/background-generation.d.ts +25 -0
  74. package/dist/background-generation.js +11 -0
  75. package/dist/behavior-learner.d.ts +2 -1
  76. package/dist/behavior-signals.d.ts +2 -1
  77. package/dist/bootstrap.d.ts +12 -10
  78. package/dist/briefing-window.d.ts +3 -2
  79. package/dist/briefing.d.ts +3 -2
  80. package/dist/briefing.js +27 -26
  81. package/dist/buffer-surprise-report.d.ts +2 -1
  82. package/dist/buffer-turn-helpers.d.ts +2 -1
  83. package/dist/buffer.d.ts +3 -2
  84. package/dist/buffer.js +8 -8
  85. package/dist/bulk-import/index.d.ts +4 -3
  86. package/dist/calibration.d.ts +3 -1
  87. package/dist/calibration.js +4 -2
  88. package/dist/calibration.js.map +1 -1
  89. package/dist/capabilities.d.ts +2 -1
  90. package/dist/{capsule-crypto-YO5QJ6L3.js → capsule-crypto-7FJQINUR.js} +2 -2
  91. package/dist/{capsule-merge-ZCXUPLNJ.js → capsule-merge-IPG4IOFP.js} +2 -2
  92. package/dist/{catalog-Cl4H8N89.d.ts → catalog-CW87xGx8.d.ts} +1 -1
  93. package/dist/causal-behavior.d.ts +2 -1
  94. package/dist/causal-behavior.js +2 -2
  95. package/dist/causal-chain.js +2 -2
  96. package/dist/causal-consolidation.d.ts +2 -1
  97. package/dist/causal-consolidation.js +29 -28
  98. package/dist/causal-consolidation.js.map +1 -1
  99. package/dist/causal-retrieval.js +2 -2
  100. package/dist/causal-trajectory-graph.d.ts +2 -1
  101. package/dist/causal-trajectory-graph.js +2 -2
  102. package/dist/causal-trajectory.js +1 -1
  103. package/dist/{chunk-YHU5XUF4.js → chunk-27MKMTBY.js} +2 -2
  104. package/dist/{chunk-TK4FHQRN.js → chunk-2J3V5QEO.js} +4 -4
  105. package/dist/{chunk-BXLOS5AJ.js → chunk-2NLLXCJG.js} +2 -2
  106. package/dist/chunk-2QG4SLZI.js +44 -0
  107. package/dist/chunk-2QG4SLZI.js.map +1 -0
  108. package/dist/{chunk-TFRDUD3M.js → chunk-2ZTDRNCS.js} +2 -2
  109. package/dist/{chunk-PWPIERBM.js → chunk-37CAEC7E.js} +4 -4
  110. package/dist/{chunk-X7BCM2NA.js → chunk-3EKVN2OP.js} +2 -2
  111. package/dist/{chunk-S2ULTQZR.js → chunk-3N3PBBEH.js} +2 -2
  112. package/dist/{chunk-XCF3SFHD.js → chunk-3NPNBVFR.js} +2 -2
  113. package/dist/{chunk-JO5TQAKW.js → chunk-4BCHFSC7.js} +3 -3
  114. package/dist/{chunk-Q6D7EUSQ.js → chunk-4JVQRFZD.js} +10 -10
  115. package/dist/{chunk-YEDVOYL2.js → chunk-4RX5O34R.js} +2 -2
  116. package/dist/{chunk-JMPYZJQN.js → chunk-4RZLTZVM.js} +4 -4
  117. package/dist/{chunk-Q7JK6YEB.js → chunk-54NX5EG4.js} +2 -2
  118. package/dist/{chunk-GWK7FEUL.js → chunk-5FAGCOZD.js} +4 -4
  119. package/dist/{chunk-2PUE5P7C.js → chunk-5N4MZLEH.js} +5 -5
  120. package/dist/{chunk-B2YKTE7P.js → chunk-5SPCMAUC.js} +10 -10
  121. package/dist/{chunk-3OHISDDW.js → chunk-5U7K4W6K.js} +2 -2
  122. package/dist/{chunk-CYEMS2PG.js → chunk-5YCNDC3C.js} +3 -3
  123. package/dist/{chunk-PAAJWQH5.js → chunk-62D2PAAM.js} +4 -4
  124. package/dist/{chunk-52II7PB6.js → chunk-645WOU5I.js} +4 -4
  125. package/dist/chunk-6AGWBKQU.js +94 -0
  126. package/dist/chunk-6AGWBKQU.js.map +1 -0
  127. package/dist/{chunk-326KUXIR.js → chunk-6EHM2AV7.js} +6 -6
  128. package/dist/{chunk-YM7YN37H.js → chunk-6ET2VII7.js} +2 -2
  129. package/dist/chunk-6H2G7RFT.js +58 -0
  130. package/dist/chunk-6H2G7RFT.js.map +1 -0
  131. package/dist/{chunk-A2YQL2FF.js → chunk-6P4REYKL.js} +5 -5
  132. package/dist/{chunk-7RKBPXY6.js → chunk-6YAIN5XJ.js} +2 -2
  133. package/dist/{chunk-2L5FSNPC.js → chunk-A7GQBJP5.js} +10 -10
  134. package/dist/{chunk-UYVXIY6C.js → chunk-AAZEKXUP.js} +2 -2
  135. package/dist/{chunk-JR6PP7UM.js → chunk-ACY4ZPF7.js} +28 -2
  136. package/dist/chunk-ACY4ZPF7.js.map +1 -0
  137. package/dist/{chunk-IQZ6ISFX.js → chunk-AECJY3GJ.js} +2 -2
  138. package/dist/{chunk-76DRU7C4.js → chunk-AENM6GKU.js} +2 -2
  139. package/dist/{chunk-KTRXQQFN.js → chunk-B36GUU6T.js} +4 -4
  140. package/dist/{chunk-TLHNF6GA.js → chunk-BV4ZKIZH.js} +1 -1
  141. package/dist/{chunk-ZWEZXVYH.js → chunk-CEO4DONG.js} +2 -2
  142. package/dist/chunk-CWTCMZGE.js +858 -0
  143. package/dist/chunk-CWTCMZGE.js.map +1 -0
  144. package/dist/{chunk-ZEPVWLCN.js → chunk-CZTPU65V.js} +25 -25
  145. package/dist/{chunk-TRU6JBOI.js → chunk-D545Z7UH.js} +3 -3
  146. package/dist/{chunk-6E5GYDIE.js → chunk-DGS34QSY.js} +2 -2
  147. package/dist/{chunk-65RENJGB.js → chunk-E2AWJ7KQ.js} +8 -4
  148. package/dist/chunk-E2AWJ7KQ.js.map +1 -0
  149. package/dist/{chunk-6Z3WW2MW.js → chunk-ENBPQEVU.js} +3 -3
  150. package/dist/{chunk-DOKKRZPH.js → chunk-EYKIDK33.js} +21 -19
  151. package/dist/chunk-EYKIDK33.js.map +1 -0
  152. package/dist/{chunk-PNEDMJ53.js → chunk-F4EHXVP7.js} +2 -2
  153. package/dist/{chunk-JPKZTCWZ.js → chunk-FNHLI2RE.js} +3 -3
  154. package/dist/{chunk-D2DIYEFW.js → chunk-FWWWUPOE.js} +12 -36
  155. package/dist/chunk-FWWWUPOE.js.map +1 -0
  156. package/dist/{chunk-M3MYMWXG.js → chunk-FXHOZGSE.js} +2 -2
  157. package/dist/{chunk-SAKA6PPL.js → chunk-GAS7KYC7.js} +5 -5
  158. package/dist/{chunk-LSLCFCCQ.js → chunk-GDYU6VF4.js} +1 -1
  159. package/dist/chunk-GDYU6VF4.js.map +1 -0
  160. package/dist/{chunk-2AR5JFD7.js → chunk-GG5FHZJJ.js} +6 -6
  161. package/dist/{chunk-WS3WNLST.js → chunk-GI4ZBWPQ.js} +3 -3
  162. package/dist/{chunk-JYR4LH76.js → chunk-GMIQV6DD.js} +2 -2
  163. package/dist/{chunk-WIKO4SCR.js → chunk-H3TKENU4.js} +5 -5
  164. package/dist/{chunk-ZLN7AROH.js → chunk-HIP6DKJJ.js} +5 -5
  165. package/dist/{chunk-SF6RFI5Z.js → chunk-HWLIMQE2.js} +2 -2
  166. package/dist/{chunk-JZYECQWN.js → chunk-IL6ODG6M.js} +2 -2
  167. package/dist/{chunk-GNR6YEWZ.js → chunk-IQEJIOEU.js} +6 -6
  168. package/dist/{chunk-BICNRVEC.js → chunk-IWO6QXWJ.js} +2 -2
  169. package/dist/{chunk-RN3MVLW3.js → chunk-IYKZJVL5.js} +1 -1
  170. package/dist/chunk-IYKZJVL5.js.map +1 -0
  171. package/dist/{chunk-42DJ235G.js → chunk-J272ODKJ.js} +2 -2
  172. package/dist/{chunk-R3TLVTWW.js → chunk-JDX2OA4R.js} +3 -3
  173. package/dist/{chunk-G5MO3VQA.js → chunk-JKKII6GX.js} +2 -2
  174. package/dist/{chunk-L5OXE4PX.js → chunk-JTQR6L2N.js} +3 -3
  175. package/dist/{chunk-VDX2J7OX.js → chunk-KQAFEZQX.js} +2 -2
  176. package/dist/{chunk-AKE4GGQ3.js → chunk-KQW3YGEN.js} +2 -2
  177. package/dist/{chunk-LMMQKZK3.js → chunk-L63GFNKL.js} +1 -1
  178. package/dist/{chunk-BRZWWUCJ.js → chunk-LMLGBG6H.js} +2 -2
  179. package/dist/{chunk-3IXB77DA.js → chunk-LPYYY4AP.js} +318 -278
  180. package/dist/chunk-LPYYY4AP.js.map +1 -0
  181. package/dist/{chunk-YEN4TREG.js → chunk-LQNRVPTV.js} +54 -567
  182. package/dist/chunk-LQNRVPTV.js.map +1 -0
  183. package/dist/{chunk-CQ7SSBO4.js → chunk-M6HBPLBA.js} +2 -2
  184. package/dist/chunk-MCRVQ5YQ.js +14 -0
  185. package/dist/chunk-MCRVQ5YQ.js.map +1 -0
  186. package/dist/{chunk-3YMDY3ZF.js → chunk-MUTVRKKY.js} +16 -16
  187. package/dist/{chunk-FCFAYMTU.js → chunk-NXGSONWM.js} +2 -2
  188. package/dist/{chunk-4WGAMREC.js → chunk-O4M4BDIJ.js} +2 -2
  189. package/dist/{chunk-5SYI2F47.js → chunk-O76F5QPP.js} +2 -2
  190. package/dist/{chunk-SROIT6QY.js → chunk-OPBFP4TF.js} +28 -11
  191. package/dist/chunk-OPBFP4TF.js.map +1 -0
  192. package/dist/{chunk-7MJBKZPU.js → chunk-P4ZAEYKG.js} +68 -34
  193. package/dist/chunk-P4ZAEYKG.js.map +1 -0
  194. package/dist/{chunk-57GDHV2D.js → chunk-PCOVEDPK.js} +6 -6
  195. package/dist/{chunk-PPTOAHTZ.js → chunk-PGAB2V53.js} +2 -2
  196. package/dist/{chunk-HHDTBYDJ.js → chunk-Q432REND.js} +2 -2
  197. package/dist/{chunk-XAITGGX5.js → chunk-Q4AUIFUA.js} +4 -4
  198. package/dist/{chunk-5LLQAUMI.js → chunk-Q7CLGFA7.js} +3 -3
  199. package/dist/{chunk-KUK56OPR.js → chunk-QHT7MOUF.js} +12 -12
  200. package/dist/{chunk-W6IJMWTZ.js → chunk-QTQ6XKGT.js} +4 -4
  201. package/dist/{chunk-FLLORID2.js → chunk-RLJHJQUY.js} +9 -9
  202. package/dist/{chunk-353KGBKY.js → chunk-RW4QNB4J.js} +4 -4
  203. package/dist/{chunk-GWQVMKUJ.js → chunk-SCXURCVT.js} +3 -3
  204. package/dist/{chunk-FQXJAC3T.js → chunk-SGUDMW2K.js} +4 -4
  205. package/dist/{chunk-LSDEIZ76.js → chunk-TA4C3XB7.js} +6 -6
  206. package/dist/{chunk-YIZ2EUUL.js → chunk-TNZNSMVJ.js} +94 -94
  207. package/dist/{chunk-CIYUWSMZ.js → chunk-TRLOFIQC.js} +2 -2
  208. package/dist/{chunk-TL7NLM2L.js → chunk-TSP5WH72.js} +2 -2
  209. package/dist/{chunk-3K6UFW5B.js → chunk-UHRZ324M.js} +8 -8
  210. package/dist/{chunk-JLXWRQNR.js → chunk-UZEHHXYC.js} +170 -167
  211. package/dist/chunk-UZEHHXYC.js.map +1 -0
  212. package/dist/{chunk-A5UQ52YQ.js → chunk-UZZ7SQT3.js} +5 -5
  213. package/dist/{chunk-GHX5PNXW.js → chunk-VBSNUH4J.js} +2 -2
  214. package/dist/{chunk-MR6LQVZ5.js → chunk-VJIE4D2I.js} +3 -3
  215. package/dist/{chunk-OTPXEE6W.js → chunk-VSL63CFJ.js} +15 -12
  216. package/dist/chunk-VSL63CFJ.js.map +1 -0
  217. package/dist/{chunk-2JGGZICG.js → chunk-WBM2MVBK.js} +2 -2
  218. package/dist/{chunk-CD3C4BJN.js → chunk-WIWLX65T.js} +2 -2
  219. package/dist/{chunk-GDDSXVWR.js → chunk-X4TD4O2F.js} +3 -3
  220. package/dist/{chunk-DQEMWVMT.js → chunk-X7Y7WX73.js} +1 -1
  221. package/dist/{chunk-FPQDZCUX.js → chunk-XH3HGI2N.js} +2 -2
  222. package/dist/{chunk-C6KRO3SU.js → chunk-XVDZFTN5.js} +4 -4
  223. package/dist/{chunk-3SL52JKD.js → chunk-XVZA6VXC.js} +4 -4
  224. package/dist/chunk-YDVAM7S4.js +221 -0
  225. package/dist/chunk-YDVAM7S4.js.map +1 -0
  226. package/dist/chunk-YFTNZMGR.js +71 -0
  227. package/dist/chunk-YFTNZMGR.js.map +1 -0
  228. package/dist/{chunk-VELCIWJZ.js → chunk-YKREX63Z.js} +19 -10
  229. package/dist/chunk-YKREX63Z.js.map +1 -0
  230. package/dist/{chunk-BLHX5FQW.js → chunk-YUW66UAH.js} +2 -2
  231. package/dist/{chunk-DOQLHCSS.js → chunk-ZBW7A667.js} +2 -2
  232. package/dist/{chunk-4DPDIOVA.js → chunk-ZEGL7YCC.js} +2 -2
  233. package/dist/{chunk-VVX5PZFS.js → chunk-ZHXSOMYH.js} +2 -2
  234. package/dist/{chunk-GCBIXUPT.js → chunk-ZMWSYUUL.js} +2 -2
  235. package/dist/{chunk-X2QPKLPL.js → chunk-ZZUVBZL2.js} +2 -2
  236. package/dist/{cli-1mzd5TM4.d.ts → cli-DGq0MNpO.d.ts} +5 -5
  237. package/dist/cli-fallback.d.ts +4 -2
  238. package/dist/cli-fallback.js +3 -1
  239. package/dist/cli.d.ts +16 -14
  240. package/dist/cli.js +139 -134
  241. package/dist/coding/export-okf-codegraph.d.ts +2 -1
  242. package/dist/coding/export-okf-codegraph.js +26 -25
  243. package/dist/coding/export-okf-codegraph.js.map +1 -1
  244. package/dist/coding/pre-action-gate.d.ts +2 -1
  245. package/dist/coding/pre-action-gate.js +2 -2
  246. package/dist/compat/codex-cli-fallback.d.ts +1 -1
  247. package/dist/compat/codex-cli-fallback.js +3 -1
  248. package/dist/compat/codex-cli-fallback.js.map +1 -1
  249. package/dist/compounding/engine.d.ts +3 -2
  250. package/dist/compounding/engine.js +27 -26
  251. package/dist/compounding/preference-consolidator.d.ts +2 -1
  252. package/dist/compression-optimizer.d.ts +2 -1
  253. package/dist/config.d.ts +2 -1
  254. package/dist/config.js +18 -15
  255. package/dist/connectors/codex-materialize-runner.d.ts +2 -1
  256. package/dist/connectors/codex-materialize-runner.js +26 -25
  257. package/dist/connectors/codex-materialize.d.ts +2 -1
  258. package/dist/connectors/index.d.ts +2 -1
  259. package/dist/connectors/index.js +29 -28
  260. package/dist/consolidation-provenance-check.d.ts +3 -2
  261. package/dist/consolidation-undo.d.ts +3 -2
  262. package/dist/contradiction/index.d.ts +5 -3
  263. package/dist/contradiction/index.js +7 -7
  264. package/dist/{contradiction-scan-GVD4JJ7B.js → contradiction-scan-BSGKZHYJ.js} +4 -4
  265. package/dist/contradiction-scan-BSGKZHYJ.js.map +1 -0
  266. package/dist/converge-config.d.ts +2 -1
  267. package/dist/convergence-refresh.d.ts +3 -2
  268. package/dist/convergence-refresh.js +29 -28
  269. package/dist/conversation-index/backend.d.ts +2 -1
  270. package/dist/conversation-index/chunker.d.ts +2 -1
  271. package/dist/conversation-index/faiss-adapter.d.ts +2 -1
  272. package/dist/conversation-index/indexer.d.ts +2 -1
  273. package/dist/conversation-index/search.d.ts +2 -1
  274. package/dist/corpus-watermark.d.ts +2 -1
  275. package/dist/corpus-watermark.js +29 -28
  276. package/dist/cross-lingual-recall.d.ts +2 -1
  277. package/dist/day-summary.d.ts +2 -1
  278. package/dist/deep-recall-http-glue.d.ts +14 -12
  279. package/dist/deep-recall-http-glue.js +4 -14
  280. package/dist/deep-recall-mcp-tools.d.ts +14 -12
  281. package/dist/deep-recall-policy-llm.d.ts +3 -1
  282. package/dist/deep-recall-policy-llm.js +5 -3
  283. package/dist/deep-recall-seeds.d.ts +2 -1
  284. package/dist/delinearize.d.ts +2 -1
  285. package/dist/dependency-propagation-config.d.ts +2 -1
  286. package/dist/{dependency-propagation-delivery-Bua2ApHV.d.ts → dependency-propagation-delivery-Cq1ekOwV.d.ts} +1 -1
  287. package/dist/direct-answer-wiring.d.ts +2 -1
  288. package/dist/direct-answer.d.ts +2 -1
  289. package/dist/embedding-fallback.d.ts +2 -1
  290. package/dist/enrichment/index.d.ts +2 -1
  291. package/dist/entity-origin-fields.d.ts +2 -1
  292. package/dist/entity-retrieval.d.ts +3 -2
  293. package/dist/entity-retrieval.js +28 -27
  294. package/dist/entity-schema.d.ts +2 -1
  295. package/dist/episodic-context.d.ts +2 -1
  296. package/dist/eval-trajectory-contracts.d.ts +2 -1
  297. package/dist/eval-trajectory-store.d.ts +2 -1
  298. package/dist/eval-trajectory.d.ts +2 -1
  299. package/dist/event-order-recall.js +3 -3
  300. package/dist/explicit-capture.d.ts +12 -10
  301. package/dist/explicit-capture.js +6 -6
  302. package/dist/external-wiki-access.d.ts +14 -12
  303. package/dist/external-wiki-access.js +87 -84
  304. package/dist/external-wiki-collection-registration.d.ts +2 -1
  305. package/dist/external-wiki-collection.d.ts +2 -1
  306. package/dist/external-wiki-mcp-tools.d.ts +14 -12
  307. package/dist/extraction-error-classification.d.ts +2 -1
  308. package/dist/extraction-faithfulness.d.ts +3 -1
  309. package/dist/extraction-faithfulness.js +5 -3
  310. package/dist/extraction-judge-telemetry.d.ts +3 -1
  311. package/dist/extraction-judge-training.d.ts +3 -1
  312. package/dist/extraction-judge.d.ts +3 -1
  313. package/dist/extraction-judge.js +5 -3
  314. package/dist/extraction-liveness.d.ts +2 -1
  315. package/dist/extraction-normalization.d.ts +2 -1
  316. package/dist/extraction-prompt.d.ts +2 -1
  317. package/dist/extraction-source-grounding-rules.d.ts +2 -1
  318. package/dist/extraction-source-grounding.d.ts +2 -1
  319. package/dist/extraction-source-grounding.js +3 -3
  320. package/dist/extraction-span-config.d.ts +2 -1
  321. package/dist/extraction-span-materialize.d.ts +2 -1
  322. package/dist/extraction-span-materialize.js +2 -2
  323. package/dist/extraction.d.ts +2 -1
  324. package/dist/extraction.js +46 -45
  325. package/dist/fallback-llm-codex-subscription.d.ts +79 -0
  326. package/dist/fallback-llm-codex-subscription.js +22 -0
  327. package/dist/fallback-llm-codex-subscription.js.map +1 -0
  328. package/dist/fallback-llm.d.ts +5 -1
  329. package/dist/fallback-llm.js +4 -2
  330. package/dist/{first-start-migration-GZ45G5FS.js → first-start-migration-ZWMV5CX4.js} +6 -6
  331. package/dist/{generic-recall-paths-DJBADojG.d.ts → generic-recall-paths-BcySh_f9.d.ts} +1 -1
  332. package/dist/graph-append-error.d.ts +2 -1
  333. package/dist/graph-dashboard-diff.d.ts +2 -1
  334. package/dist/graph-dashboard-key.d.ts +2 -1
  335. package/dist/graph-dashboard-parser.d.ts +2 -1
  336. package/dist/{graph-edge-decay-ROSUPDX3.js → graph-edge-decay-MKIRZ762.js} +5 -5
  337. package/dist/graph-edge-decay-MKIRZ762.js.map +1 -0
  338. package/dist/graph-edge-reinforcement.d.ts +2 -1
  339. package/dist/graph-jsonl.d.ts +2 -1
  340. package/dist/graph-jsonl.js +3 -3
  341. package/dist/graph-path-reconstruction.d.ts +2 -1
  342. package/dist/graph-path-scoring.d.ts +2 -1
  343. package/dist/graph-snapshot.d.ts +2 -1
  344. package/dist/graph-snapshot.js +3 -3
  345. package/dist/graph.d.ts +2 -1
  346. package/dist/graph.js +2 -2
  347. package/dist/harmonic-retrieval.js +3 -3
  348. package/dist/importance.d.ts +2 -1
  349. package/dist/importers/index.d.ts +2 -1
  350. package/dist/importers/test-utils.d.ts +2 -1
  351. package/dist/in-flight-reads.d.ts +2 -1
  352. package/dist/{index-Bsy8ygLL.d.ts → index-DWOb4wz9.d.ts} +2 -2
  353. package/dist/index.d.ts +713 -705
  354. package/dist/index.js +419 -346
  355. package/dist/intent.d.ts +2 -1
  356. package/dist/lcm/engine.d.ts +2 -1
  357. package/dist/lcm/engine.js +4 -4
  358. package/dist/lcm/index.d.ts +2 -1
  359. package/dist/lcm/index.js +12 -12
  360. package/dist/lcm/tools.d.ts +2 -1
  361. package/dist/lifecycle.d.ts +2 -1
  362. package/dist/live-connectors-runner.d.ts +2 -1
  363. package/dist/local-llm-config.d.ts +7 -1
  364. package/dist/local-llm-config.js +12 -0
  365. package/dist/local-llm.d.ts +2 -1
  366. package/dist/local-model-endpoint.d.ts +2 -1
  367. package/dist/location/index.d.ts +4 -3
  368. package/dist/location/index.js +60 -59
  369. package/dist/maintenance/memory-governance.d.ts +2 -1
  370. package/dist/maintenance/memory-governance.js +26 -25
  371. package/dist/maintenance/rebuild-memory-lifecycle-ledger.d.ts +3 -2
  372. package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +27 -26
  373. package/dist/maintenance/rebuild-memory-projection.d.ts +3 -2
  374. package/dist/maintenance/rebuild-memory-projection.js +28 -27
  375. package/dist/{maintenance-DItyBwTC.d.ts → maintenance-CW9wCzMP.d.ts} +3 -3
  376. package/dist/mcp-memory-inspector-app.d.ts +14 -12
  377. package/dist/memory-action-policy.d.ts +2 -1
  378. package/dist/memory-cache.d.ts +2 -1
  379. package/dist/memory-controller.d.ts +2 -1
  380. package/dist/memory-lifecycle-ledger-utils.d.ts +2 -1
  381. package/dist/memory-projection-store.d.ts +2 -1
  382. package/dist/memory-provenance.d.ts +2 -1
  383. package/dist/memory-snapshot.d.ts +2 -1
  384. package/dist/memory-subject-cli.d.ts +14 -12
  385. package/dist/memory-subject.d.ts +14 -12
  386. package/dist/memory-worth-outcomes.d.ts +3 -2
  387. package/dist/models-json.d.ts +2 -1
  388. package/dist/namespaces/migrate.d.ts +4 -3
  389. package/dist/namespaces/migrate.js +27 -26
  390. package/dist/namespaces/principal.d.ts +2 -1
  391. package/dist/namespaces/search.d.ts +2 -1
  392. package/dist/namespaces/search.js +6 -6
  393. package/dist/namespaces/storage.d.ts +4 -3
  394. package/dist/namespaces/storage.js +26 -25
  395. package/dist/native-knowledge.d.ts +2 -1
  396. package/dist/offline-sync-impression-drain.d.ts +2 -1
  397. package/dist/offline-sync-impression-drain.js +4 -4
  398. package/dist/operator-doctor-corpus.d.ts +2 -1
  399. package/dist/operator-doctor-corpus.js +30 -29
  400. package/dist/operator-doctor-replica.d.ts +2 -1
  401. package/dist/operator-toolkit.d.ts +4 -3
  402. package/dist/operator-toolkit.js +53 -49
  403. package/dist/orchestration/compression-guideline-coordinator.d.ts +3 -2
  404. package/dist/orchestration/maintenance.d.ts +5 -4
  405. package/dist/orchestration/maintenance.js +39 -38
  406. package/dist/{orchestrator-DBUX-aAM.d.ts → orchestrator-ComHLm49.d.ts} +22 -11
  407. package/dist/orchestrator.d.ts +12 -10
  408. package/dist/orchestrator.js +224 -218
  409. package/dist/patterns-cli.d.ts +2 -1
  410. package/dist/{pipeline-BqgcOk1Z.d.ts → pipeline-CiYcqqhl.d.ts} +1 -1
  411. package/dist/policy-runtime.d.ts +2 -1
  412. package/dist/proactive-contention.d.ts +2 -1
  413. package/dist/provenance.d.ts +2 -1
  414. package/dist/provenance.js +2 -2
  415. package/dist/{public-http-CqtZ5kv3.d.ts → public-http-CuK4_Cb1.d.ts} +1 -1
  416. package/dist/qmd-preflight.d.ts +3 -2
  417. package/dist/{qmd-BD0ikV_Y.d.ts → qmd-qXD4vatU.d.ts} +1 -1
  418. package/dist/qmd-recall-cache.d.ts +2 -1
  419. package/dist/qmd.d.ts +3 -2
  420. package/dist/recall-concurrency-config.d.ts +2 -1
  421. package/dist/recall-disclosure-escalation.d.ts +2 -1
  422. package/dist/recall-explain-renderer.d.ts +2 -1
  423. package/dist/recall-explain-renderer.js +3 -3
  424. package/dist/recall-memory-map.d.ts +2 -1
  425. package/dist/recall-navigate-access.d.ts +2 -1
  426. package/dist/recall-navigate-access.js +2 -2
  427. package/dist/recall-navigate-disclosure.d.ts +2 -1
  428. package/dist/recall-navigate-disclosure.js +1 -1
  429. package/dist/recall-navigate.d.ts +2 -1
  430. package/dist/recall-navigate.js +2 -2
  431. package/dist/recall-planner-llm.d.ts +3 -1
  432. package/dist/recall-planner-llm.js +4 -2
  433. package/dist/recall-planner-llm.js.map +1 -1
  434. package/dist/recall-state-view-admission.d.ts +3 -2
  435. package/dist/recall-state-view-admission.js +9 -9
  436. package/dist/recall-state-view-anchors.d.ts +85 -0
  437. package/dist/recall-state-view-anchors.js +21 -0
  438. package/dist/recall-state-view-anchors.js.map +1 -0
  439. package/dist/recall-state-view-inject.js +2 -2
  440. package/dist/recall-state-view-render.js +2 -2
  441. package/dist/recall-state-view-widen.js +2 -2
  442. package/dist/recall-state-view-wire.js +3 -3
  443. package/dist/recall-state-view.d.ts +37 -1
  444. package/dist/recall-state-view.js +11 -3
  445. package/dist/recall-state.d.ts +2 -1
  446. package/dist/recall-tag-filter.d.ts +2 -1
  447. package/dist/recall-timings.d.ts +2 -1
  448. package/dist/recall-xray-cli.d.ts +2 -1
  449. package/dist/recall-xray-cli.js +4 -4
  450. package/dist/recall-xray-renderer.d.ts +2 -1
  451. package/dist/recall-xray-renderer.js +3 -3
  452. package/dist/recall-xray.d.ts +2 -1
  453. package/dist/recall-xray.js +2 -2
  454. package/dist/reconcile/cursor.d.ts +2 -1
  455. package/dist/reconcile/cursor.js +2 -2
  456. package/dist/reconcile/manifest.d.ts +2 -1
  457. package/dist/reconcile/manifest.js +4 -4
  458. package/dist/reconcile/plan.d.ts +2 -1
  459. package/dist/reconcile/plan.js +2 -2
  460. package/dist/replay/normalizers/chatgpt.d.ts +2 -1
  461. package/dist/replay/normalizers/claude.d.ts +2 -1
  462. package/dist/replay/normalizers/openclaw.d.ts +2 -1
  463. package/dist/replay/normalizers/shared.d.ts +2 -1
  464. package/dist/replay/runner.d.ts +2 -1
  465. package/dist/replay/types.d.ts +2 -1
  466. package/dist/replica-divergence.d.ts +2 -1
  467. package/dist/replica-peers-config.d.ts +2 -1
  468. package/dist/{resolution-OHJZG45O.js → resolution-4GG3QZRJ.js} +8 -8
  469. package/dist/resolution-4GG3QZRJ.js.map +1 -0
  470. package/dist/resolve-auth-token.d.ts +2 -1
  471. package/dist/resume-bundles.js +19 -16
  472. package/dist/retrieval-agents.d.ts +3 -2
  473. package/dist/retrieval-tiers.d.ts +2 -1
  474. package/dist/routing/engine.d.ts +2 -1
  475. package/dist/routing/store.d.ts +2 -1
  476. package/dist/salvage-envelope.d.ts +2 -1
  477. package/dist/salvage-envelope.js +2 -2
  478. package/dist/schemas.d.ts +160 -160
  479. package/dist/{scope-profiles-BIJMsd0B.d.ts → scope-profiles-BT9rqC3w.d.ts} +1 -1
  480. package/dist/search/embed-helper.d.ts +2 -1
  481. package/dist/search/factory.d.ts +2 -1
  482. package/dist/search/factory.js +5 -5
  483. package/dist/search/index.d.ts +2 -1
  484. package/dist/search/index.js +13 -13
  485. package/dist/search/lancedb-backend.d.ts +2 -1
  486. package/dist/search/meilisearch-backend.d.ts +2 -1
  487. package/dist/search/noop-backend.d.ts +2 -1
  488. package/dist/search/orama-backend.d.ts +2 -1
  489. package/dist/search/port.d.ts +2 -1
  490. package/dist/search/remote-backend.d.ts +2 -1
  491. package/dist/{semantic-consolidation-D7sJocll.d.ts → semantic-consolidation-CmZi7thY.d.ts} +1 -1
  492. package/dist/semantic-consolidation.d.ts +3 -2
  493. package/dist/semantic-consolidation.js +27 -26
  494. package/dist/semantic-rule-promotion.js +26 -25
  495. package/dist/semantic-rule-verifier.d.ts +2 -1
  496. package/dist/semantic-rule-verifier.js +26 -25
  497. package/dist/{service-fwgEngUj.d.ts → service-CLkA7AQB.d.ts} +2 -2
  498. package/dist/session-observer-bands.d.ts +2 -1
  499. package/dist/session-observer-state.d.ts +2 -1
  500. package/dist/shared-context/manager.d.ts +8 -7
  501. package/dist/signal.d.ts +2 -1
  502. package/dist/source-agent-qualifier.d.ts +2 -1
  503. package/dist/source-agent-qualifier.js +41 -40
  504. package/dist/standup/build.js +27 -26
  505. package/dist/{storage-Cbll3-Tk.d.ts → storage-wvX01lht.d.ts} +1 -1
  506. package/dist/storage.d.ts +3 -2
  507. package/dist/storage.js +25 -24
  508. package/dist/subject-config.d.ts +2 -1
  509. package/dist/subject-config.js +2 -2
  510. package/dist/summarizer.d.ts +2 -1
  511. package/dist/summarizer.js +6 -3
  512. package/dist/summary-snapshot.d.ts +2 -1
  513. package/dist/support-passport/index.d.ts +17 -15
  514. package/dist/support-passport/index.js +92 -89
  515. package/dist/temporal-supersession.d.ts +3 -2
  516. package/dist/temporal-timeline-recall.d.ts +2 -1
  517. package/dist/temporal-validity.d.ts +2 -1
  518. package/dist/threading.d.ts +2 -1
  519. package/dist/tier-migration.d.ts +3 -2
  520. package/dist/tier-routing.d.ts +2 -1
  521. package/dist/tier-routing.js +3 -3
  522. package/dist/{tier-stats-VK5PCO2L.js → tier-stats-LUSUUNU6.js} +4 -4
  523. package/dist/topics.d.ts +2 -1
  524. package/dist/transcript.d.ts +2 -1
  525. package/dist/transfer/backup.js +2 -2
  526. package/dist/transfer/capsule-export.js +2 -2
  527. package/dist/transfer/capsule-import.js +3 -3
  528. package/dist/transfer/export-okf.d.ts +2 -1
  529. package/dist/transfer/export-okf.js +26 -25
  530. package/dist/transfer/types.d.ts +78 -78
  531. package/dist/trust-score-stage.d.ts +2 -1
  532. package/dist/trust-score.d.ts +2 -1
  533. package/dist/{types-48sPkWB0.d.ts → types-Cyr32ABj.d.ts} +3 -1
  534. package/dist/types.d.ts +2 -1
  535. package/dist/types.js +1 -1
  536. package/dist/utility-runtime.d.ts +2 -1
  537. package/dist/verified-recall.js +26 -25
  538. package/dist/who-knows-cli.d.ts +14 -12
  539. package/dist/who-knows-cli.js +27 -26
  540. package/dist/who-knows.d.ts +14 -12
  541. package/dist/who-knows.js +26 -25
  542. package/dist/write-envelope.d.ts +7 -1
  543. package/dist/write-envelope.js +1 -1
  544. package/package.json +2 -2
  545. package/src/access-boundary.ts +21 -6
  546. package/src/access-category-alias.test.ts +488 -51
  547. package/src/access-http.test.ts +249 -0
  548. package/src/access-http.ts +2 -0
  549. package/src/access-mcp.test.ts +2 -2
  550. package/src/access-observe-write-category.ts +25 -0
  551. package/src/access-observe-write-surface.ts +58 -57
  552. package/src/access-operations-batch.ts +28 -2
  553. package/src/access-operations.ts +6 -4
  554. package/src/access-schema.ts +106 -50
  555. package/src/access-service.ts +23 -9
  556. package/src/background-generation-config.ts +79 -0
  557. package/src/background-generation.test.ts +123 -0
  558. package/src/background-generation.ts +52 -0
  559. package/src/cli-fallback.ts +8 -2
  560. package/src/config.test.ts +172 -0
  561. package/src/config.ts +2 -43
  562. package/src/fallback-llm-codex-subscription.ts +168 -0
  563. package/src/fallback-llm.test.ts +46 -0
  564. package/src/fallback-llm.ts +60 -48
  565. package/src/index.ts +2 -16
  566. package/src/local-llm-config.ts +84 -0
  567. package/src/orchestration/recall-internal.ts +91 -74
  568. package/src/orchestration/recall-rerank-coordinator.ts +41 -4
  569. package/src/orchestration/recall-search-pipeline.ts +25 -18
  570. package/src/orchestration/recall-state-view-pipeline.test.ts +89 -0
  571. package/src/providers/codex-subscription.test.ts +804 -1
  572. package/src/providers/codex-subscription.ts +407 -65
  573. package/src/recall-rerank-coordinator.test.ts +153 -0
  574. package/src/recall-state-view-anchors.ts +163 -0
  575. package/src/recall-state-view-widen.ts +21 -7
  576. package/src/recall-state-view-zero-diff.test.ts +30 -0
  577. package/src/recall-state-view.test.ts +161 -0
  578. package/src/recall-state-view.ts +206 -35
  579. package/src/summarizer.ts +25 -0
  580. package/src/trust-score-recall-paths.test.ts +1 -1
  581. package/src/types.ts +3 -2
  582. package/src/write-envelope.ts +5 -0
  583. package/dist/chunk-255PC37A.js +0 -120
  584. package/dist/chunk-255PC37A.js.map +0 -1
  585. package/dist/chunk-3IXB77DA.js.map +0 -1
  586. package/dist/chunk-65RENJGB.js.map +0 -1
  587. package/dist/chunk-7MJBKZPU.js.map +0 -1
  588. package/dist/chunk-D2DIYEFW.js.map +0 -1
  589. package/dist/chunk-DOKKRZPH.js.map +0 -1
  590. package/dist/chunk-JLXWRQNR.js.map +0 -1
  591. package/dist/chunk-JR6PP7UM.js.map +0 -1
  592. package/dist/chunk-LSLCFCCQ.js.map +0 -1
  593. package/dist/chunk-OTPXEE6W.js.map +0 -1
  594. package/dist/chunk-RN3MVLW3.js.map +0 -1
  595. package/dist/chunk-SROIT6QY.js.map +0 -1
  596. package/dist/chunk-VELCIWJZ.js.map +0 -1
  597. package/dist/chunk-YEN4TREG.js.map +0 -1
  598. /package/dist/{capsule-crypto-YO5QJ6L3.js.map → access-observe-write-category.js.map} +0 -0
  599. /package/dist/{contradiction-scan-GVD4JJ7B.js.map → background-generation-config.js.map} +0 -0
  600. /package/dist/{graph-edge-decay-ROSUPDX3.js.map → background-generation.js.map} +0 -0
  601. /package/dist/{resolution-OHJZG45O.js.map → capsule-crypto-7FJQINUR.js.map} +0 -0
  602. /package/dist/{capsule-merge-ZCXUPLNJ.js.map → capsule-merge-IPG4IOFP.js.map} +0 -0
  603. /package/dist/{chunk-YHU5XUF4.js.map → chunk-27MKMTBY.js.map} +0 -0
  604. /package/dist/{chunk-TK4FHQRN.js.map → chunk-2J3V5QEO.js.map} +0 -0
  605. /package/dist/{chunk-BXLOS5AJ.js.map → chunk-2NLLXCJG.js.map} +0 -0
  606. /package/dist/{chunk-TFRDUD3M.js.map → chunk-2ZTDRNCS.js.map} +0 -0
  607. /package/dist/{chunk-PWPIERBM.js.map → chunk-37CAEC7E.js.map} +0 -0
  608. /package/dist/{chunk-X7BCM2NA.js.map → chunk-3EKVN2OP.js.map} +0 -0
  609. /package/dist/{chunk-S2ULTQZR.js.map → chunk-3N3PBBEH.js.map} +0 -0
  610. /package/dist/{chunk-XCF3SFHD.js.map → chunk-3NPNBVFR.js.map} +0 -0
  611. /package/dist/{chunk-JO5TQAKW.js.map → chunk-4BCHFSC7.js.map} +0 -0
  612. /package/dist/{chunk-Q6D7EUSQ.js.map → chunk-4JVQRFZD.js.map} +0 -0
  613. /package/dist/{chunk-YEDVOYL2.js.map → chunk-4RX5O34R.js.map} +0 -0
  614. /package/dist/{chunk-JMPYZJQN.js.map → chunk-4RZLTZVM.js.map} +0 -0
  615. /package/dist/{chunk-Q7JK6YEB.js.map → chunk-54NX5EG4.js.map} +0 -0
  616. /package/dist/{chunk-GWK7FEUL.js.map → chunk-5FAGCOZD.js.map} +0 -0
  617. /package/dist/{chunk-2PUE5P7C.js.map → chunk-5N4MZLEH.js.map} +0 -0
  618. /package/dist/{chunk-B2YKTE7P.js.map → chunk-5SPCMAUC.js.map} +0 -0
  619. /package/dist/{chunk-3OHISDDW.js.map → chunk-5U7K4W6K.js.map} +0 -0
  620. /package/dist/{chunk-CYEMS2PG.js.map → chunk-5YCNDC3C.js.map} +0 -0
  621. /package/dist/{chunk-PAAJWQH5.js.map → chunk-62D2PAAM.js.map} +0 -0
  622. /package/dist/{chunk-52II7PB6.js.map → chunk-645WOU5I.js.map} +0 -0
  623. /package/dist/{chunk-326KUXIR.js.map → chunk-6EHM2AV7.js.map} +0 -0
  624. /package/dist/{chunk-YM7YN37H.js.map → chunk-6ET2VII7.js.map} +0 -0
  625. /package/dist/{chunk-A2YQL2FF.js.map → chunk-6P4REYKL.js.map} +0 -0
  626. /package/dist/{chunk-7RKBPXY6.js.map → chunk-6YAIN5XJ.js.map} +0 -0
  627. /package/dist/{chunk-2L5FSNPC.js.map → chunk-A7GQBJP5.js.map} +0 -0
  628. /package/dist/{chunk-UYVXIY6C.js.map → chunk-AAZEKXUP.js.map} +0 -0
  629. /package/dist/{chunk-IQZ6ISFX.js.map → chunk-AECJY3GJ.js.map} +0 -0
  630. /package/dist/{chunk-76DRU7C4.js.map → chunk-AENM6GKU.js.map} +0 -0
  631. /package/dist/{chunk-KTRXQQFN.js.map → chunk-B36GUU6T.js.map} +0 -0
  632. /package/dist/{chunk-TLHNF6GA.js.map → chunk-BV4ZKIZH.js.map} +0 -0
  633. /package/dist/{chunk-ZWEZXVYH.js.map → chunk-CEO4DONG.js.map} +0 -0
  634. /package/dist/{chunk-ZEPVWLCN.js.map → chunk-CZTPU65V.js.map} +0 -0
  635. /package/dist/{chunk-TRU6JBOI.js.map → chunk-D545Z7UH.js.map} +0 -0
  636. /package/dist/{chunk-6E5GYDIE.js.map → chunk-DGS34QSY.js.map} +0 -0
  637. /package/dist/{chunk-6Z3WW2MW.js.map → chunk-ENBPQEVU.js.map} +0 -0
  638. /package/dist/{chunk-PNEDMJ53.js.map → chunk-F4EHXVP7.js.map} +0 -0
  639. /package/dist/{chunk-JPKZTCWZ.js.map → chunk-FNHLI2RE.js.map} +0 -0
  640. /package/dist/{chunk-M3MYMWXG.js.map → chunk-FXHOZGSE.js.map} +0 -0
  641. /package/dist/{chunk-SAKA6PPL.js.map → chunk-GAS7KYC7.js.map} +0 -0
  642. /package/dist/{chunk-2AR5JFD7.js.map → chunk-GG5FHZJJ.js.map} +0 -0
  643. /package/dist/{chunk-WS3WNLST.js.map → chunk-GI4ZBWPQ.js.map} +0 -0
  644. /package/dist/{chunk-JYR4LH76.js.map → chunk-GMIQV6DD.js.map} +0 -0
  645. /package/dist/{chunk-WIKO4SCR.js.map → chunk-H3TKENU4.js.map} +0 -0
  646. /package/dist/{chunk-ZLN7AROH.js.map → chunk-HIP6DKJJ.js.map} +0 -0
  647. /package/dist/{chunk-SF6RFI5Z.js.map → chunk-HWLIMQE2.js.map} +0 -0
  648. /package/dist/{chunk-JZYECQWN.js.map → chunk-IL6ODG6M.js.map} +0 -0
  649. /package/dist/{chunk-GNR6YEWZ.js.map → chunk-IQEJIOEU.js.map} +0 -0
  650. /package/dist/{chunk-BICNRVEC.js.map → chunk-IWO6QXWJ.js.map} +0 -0
  651. /package/dist/{chunk-42DJ235G.js.map → chunk-J272ODKJ.js.map} +0 -0
  652. /package/dist/{chunk-R3TLVTWW.js.map → chunk-JDX2OA4R.js.map} +0 -0
  653. /package/dist/{chunk-G5MO3VQA.js.map → chunk-JKKII6GX.js.map} +0 -0
  654. /package/dist/{chunk-L5OXE4PX.js.map → chunk-JTQR6L2N.js.map} +0 -0
  655. /package/dist/{chunk-VDX2J7OX.js.map → chunk-KQAFEZQX.js.map} +0 -0
  656. /package/dist/{chunk-AKE4GGQ3.js.map → chunk-KQW3YGEN.js.map} +0 -0
  657. /package/dist/{chunk-LMMQKZK3.js.map → chunk-L63GFNKL.js.map} +0 -0
  658. /package/dist/{chunk-BRZWWUCJ.js.map → chunk-LMLGBG6H.js.map} +0 -0
  659. /package/dist/{chunk-CQ7SSBO4.js.map → chunk-M6HBPLBA.js.map} +0 -0
  660. /package/dist/{chunk-3YMDY3ZF.js.map → chunk-MUTVRKKY.js.map} +0 -0
  661. /package/dist/{chunk-FCFAYMTU.js.map → chunk-NXGSONWM.js.map} +0 -0
  662. /package/dist/{chunk-4WGAMREC.js.map → chunk-O4M4BDIJ.js.map} +0 -0
  663. /package/dist/{chunk-5SYI2F47.js.map → chunk-O76F5QPP.js.map} +0 -0
  664. /package/dist/{chunk-57GDHV2D.js.map → chunk-PCOVEDPK.js.map} +0 -0
  665. /package/dist/{chunk-PPTOAHTZ.js.map → chunk-PGAB2V53.js.map} +0 -0
  666. /package/dist/{chunk-HHDTBYDJ.js.map → chunk-Q432REND.js.map} +0 -0
  667. /package/dist/{chunk-XAITGGX5.js.map → chunk-Q4AUIFUA.js.map} +0 -0
  668. /package/dist/{chunk-5LLQAUMI.js.map → chunk-Q7CLGFA7.js.map} +0 -0
  669. /package/dist/{chunk-KUK56OPR.js.map → chunk-QHT7MOUF.js.map} +0 -0
  670. /package/dist/{chunk-W6IJMWTZ.js.map → chunk-QTQ6XKGT.js.map} +0 -0
  671. /package/dist/{chunk-FLLORID2.js.map → chunk-RLJHJQUY.js.map} +0 -0
  672. /package/dist/{chunk-353KGBKY.js.map → chunk-RW4QNB4J.js.map} +0 -0
  673. /package/dist/{chunk-GWQVMKUJ.js.map → chunk-SCXURCVT.js.map} +0 -0
  674. /package/dist/{chunk-FQXJAC3T.js.map → chunk-SGUDMW2K.js.map} +0 -0
  675. /package/dist/{chunk-LSDEIZ76.js.map → chunk-TA4C3XB7.js.map} +0 -0
  676. /package/dist/{chunk-YIZ2EUUL.js.map → chunk-TNZNSMVJ.js.map} +0 -0
  677. /package/dist/{chunk-CIYUWSMZ.js.map → chunk-TRLOFIQC.js.map} +0 -0
  678. /package/dist/{chunk-TL7NLM2L.js.map → chunk-TSP5WH72.js.map} +0 -0
  679. /package/dist/{chunk-3K6UFW5B.js.map → chunk-UHRZ324M.js.map} +0 -0
  680. /package/dist/{chunk-A5UQ52YQ.js.map → chunk-UZZ7SQT3.js.map} +0 -0
  681. /package/dist/{chunk-GHX5PNXW.js.map → chunk-VBSNUH4J.js.map} +0 -0
  682. /package/dist/{chunk-MR6LQVZ5.js.map → chunk-VJIE4D2I.js.map} +0 -0
  683. /package/dist/{chunk-2JGGZICG.js.map → chunk-WBM2MVBK.js.map} +0 -0
  684. /package/dist/{chunk-CD3C4BJN.js.map → chunk-WIWLX65T.js.map} +0 -0
  685. /package/dist/{chunk-GDDSXVWR.js.map → chunk-X4TD4O2F.js.map} +0 -0
  686. /package/dist/{chunk-DQEMWVMT.js.map → chunk-X7Y7WX73.js.map} +0 -0
  687. /package/dist/{chunk-FPQDZCUX.js.map → chunk-XH3HGI2N.js.map} +0 -0
  688. /package/dist/{chunk-C6KRO3SU.js.map → chunk-XVDZFTN5.js.map} +0 -0
  689. /package/dist/{chunk-3SL52JKD.js.map → chunk-XVZA6VXC.js.map} +0 -0
  690. /package/dist/{chunk-BLHX5FQW.js.map → chunk-YUW66UAH.js.map} +0 -0
  691. /package/dist/{chunk-DOQLHCSS.js.map → chunk-ZBW7A667.js.map} +0 -0
  692. /package/dist/{chunk-4DPDIOVA.js.map → chunk-ZEGL7YCC.js.map} +0 -0
  693. /package/dist/{chunk-VVX5PZFS.js.map → chunk-ZHXSOMYH.js.map} +0 -0
  694. /package/dist/{chunk-GCBIXUPT.js.map → chunk-ZMWSYUUL.js.map} +0 -0
  695. /package/dist/{chunk-X2QPKLPL.js.map → chunk-ZZUVBZL2.js.map} +0 -0
  696. /package/dist/{first-start-migration-GZ45G5FS.js.map → first-start-migration-ZWMV5CX4.js.map} +0 -0
  697. /package/dist/{tier-stats-VK5PCO2L.js.map → tier-stats-LUSUUNU6.js.map} +0 -0
package/src/index.ts CHANGED
@@ -150,8 +150,7 @@ export {
150
150
  type CodexCliFallbackResult,
151
151
  type CodexCliFallbackRunner,
152
152
  } from "./cli-fallback.js";
153
- export { CODEX_SUBSCRIPTION_PROVIDER_ID, codexSubscriptionBuiltinProviderConfig, createCodexSubscriptionRunner, ensureCodexSubscriptionRunnerRegistered, CodexSubscriptionAuthError, CodexSubscriptionConfigError, CodexSubscriptionTimeoutError } from "./providers/codex-subscription.js";
154
-
153
+ export { CODEX_SUBSCRIPTION_PROVIDER_ID, beginCodexSubscriptionShutdown, codexSubscriptionBuiltinProviderConfig, createCodexSubscriptionRunner, ensureCodexSubscriptionRunnerRegistered, getCodexSubscriptionRunnerForOwner, terminateActiveCodexSubscriptionChildren, CodexSubscriptionAuthError, CodexSubscriptionConfigError, CodexSubscriptionTimeoutError } from "./providers/codex-subscription.js";
155
154
  // ---------------------------------------------------------------------------
156
155
  // Smart buffer (issue #563)
157
156
  // ---------------------------------------------------------------------------
@@ -564,20 +563,7 @@ export {
564
563
  type StructuralSpawnFn,
565
564
  } from "./coding/structural-subprocess-provider.js";
566
565
 
567
- export {
568
- validateRequest,
569
- formatZodError,
570
- recallRequestSchema,
571
- observeRequestSchema,
572
- memoryStoreRequestSchema,
573
- suggestionSubmitRequestSchema,
574
- type SchemaValidationError,
575
- type SchemaName,
576
- type RecallRequest,
577
- type ObserveRequest,
578
- type MemoryStoreRequest,
579
- type SuggestionSubmitRequest,
580
- } from "./access-schema.js";
566
+ export * from "./access-schema.js";
581
567
 
582
568
  // ---------------------------------------------------------------------------
583
569
  // Day summary / LCM
@@ -1,3 +1,8 @@
1
+ import { coerceNumber } from "./connectors/coerce.js";
2
+ import { parseBackgroundGeneration } from "./background-generation-config.js";
3
+ import type { BackgroundGenerationConfig } from "./background-generation-config.js";
4
+ import { readEnvVar } from "./runtime/env.js";
5
+
1
6
  export interface LocalLlmConfig {
2
7
  // Local LLM Provider (v2.1)
3
8
  localLlmEnabled: boolean;
@@ -23,3 +28,82 @@ export interface LocalLlmConfig {
23
28
  /** Max context window for local LLM (override auto-detection). Set lower if your LLM server defaults to smaller contexts. */
24
29
  localLlmMaxContext?: number;
25
30
  }
31
+
32
+ export type LocalLlmParseResult = LocalLlmConfig & {
33
+ backgroundGeneration?: BackgroundGenerationConfig;
34
+ };
35
+
36
+ function parseLocalLlmTimeoutMs(value: unknown): number {
37
+ const coerced = coerceNumber(value);
38
+ if (coerced === undefined) return 180_000;
39
+ return Math.min(86_400_000, Math.max(1, Math.floor(coerced)));
40
+ }
41
+
42
+ function parseLocalLlmMaxContext(value: unknown): number | undefined {
43
+ if (value === undefined || value === null) return undefined;
44
+ const coerced = coerceNumber(value);
45
+ if (
46
+ coerced === undefined ||
47
+ !Number.isFinite(coerced) ||
48
+ !Number.isInteger(coerced) ||
49
+ coerced < 1024
50
+ ) {
51
+ throw new Error(
52
+ `localLlmMaxContext must be an integer greater than or equal to 1024; got ${JSON.stringify(value)}`,
53
+ );
54
+ }
55
+ return coerced;
56
+ }
57
+
58
+ function copyStringRecord(value: unknown): Record<string, string> | undefined {
59
+ if (!value || typeof value !== "object" || Array.isArray(value)) return undefined;
60
+ const headers: Record<string, string> = {};
61
+ for (const key of Object.getOwnPropertyNames(value)) {
62
+ const headerValue = Reflect.get(value, key);
63
+ if (typeof headerValue === "string") headers[key] = headerValue;
64
+ }
65
+ return headers;
66
+ }
67
+
68
+ export function parseLocalLlmConfig(
69
+ cfg: Record<string, unknown>,
70
+ localLlmApiKeyEnv: string | undefined,
71
+ resolveEnvVars: (value: string) => string,
72
+ ): LocalLlmParseResult {
73
+ return {
74
+ backgroundGeneration: parseBackgroundGeneration(cfg),
75
+ localLlmEnabled: cfg.localLlmEnabled === true || cfg.localLlmEnabled === "true",
76
+ localLlmUrl:
77
+ typeof cfg.localLlmUrl === "string" && cfg.localLlmUrl.length > 0
78
+ ? cfg.localLlmUrl
79
+ : "http://localhost:1234/v1",
80
+ localLlmModel:
81
+ typeof cfg.localLlmModel === "string" && cfg.localLlmModel.length > 0
82
+ ? cfg.localLlmModel
83
+ : "local-model",
84
+ localLlmApiKey:
85
+ typeof cfg.localLlmApiKey === "string" && cfg.localLlmApiKey.length > 0
86
+ ? resolveEnvVars(cfg.localLlmApiKey)
87
+ : localLlmApiKeyEnv === undefined
88
+ ? undefined
89
+ : readEnvVar(localLlmApiKeyEnv),
90
+ localLlmApiKeyEnv,
91
+ localLlmHeaders: copyStringRecord(cfg.localLlmHeaders),
92
+ localLlmAuthHeader: cfg.localLlmAuthHeader !== false,
93
+ localLlmFallback: cfg.localLlmFallback !== false,
94
+ localLlmHomeDir:
95
+ typeof cfg.localLlmHomeDir === "string" && cfg.localLlmHomeDir.length > 0
96
+ ? cfg.localLlmHomeDir
97
+ : undefined,
98
+ localLmsCliPath:
99
+ typeof cfg.localLmsCliPath === "string" && cfg.localLmsCliPath.length > 0
100
+ ? cfg.localLmsCliPath
101
+ : undefined,
102
+ localLmsBinDir:
103
+ typeof cfg.localLmsBinDir === "string" && cfg.localLmsBinDir.length > 0
104
+ ? cfg.localLmsBinDir
105
+ : undefined,
106
+ localLlmTimeoutMs: parseLocalLlmTimeoutMs(cfg.localLlmTimeoutMs),
107
+ localLlmMaxContext: parseLocalLlmMaxContext(cfg.localLlmMaxContext),
108
+ };
109
+ }
@@ -98,7 +98,11 @@ import {
98
98
  type RecallInvocationOptions,
99
99
  } from "../orchestrator.js";
100
100
  import { isGenericRecallExcludedPath } from "./generic-recall-paths.js";
101
- import { filterRecentScanMemoriesForStateView, indexStateViewAnnotatedResults, resolveRecallStateViewActive } from "../recall-state-view-admission.js";
101
+ import {
102
+ filterRecentScanMemories,
103
+ resolveRecallStateViewFlags,
104
+ } from "../recall-state-view-anchors.js";
105
+ import { indexStateViewAnnotatedResults } from "../recall-state-view-admission.js";
102
106
  import type { RecallSectionBuckets } from "./recall-section-coordinator.js";
103
107
  import {
104
108
  reconcileRecallResultPartition,
@@ -242,8 +246,14 @@ export class RecallInternalCoordinator {
242
246
  this.deps.effectiveCronRecallInstructionHeavyTokenCap(),
243
247
  cronConversationRecallMode: this.deps.config.cronConversationRecallMode,
244
248
  });
249
+ // #1952 state views: config flag OR per-call override, gated on change intent; computed once for all branches.
245
250
  const retrievalQuery = queryPolicy.retrievalQuery || prompt;
246
- const stateViewActive = resolveRecallStateViewActive(options, this.deps.config, retrievalQuery);
251
+ const { stateViewActive, stateViewPacketActive } = resolveRecallStateViewFlags(
252
+ options.stateView,
253
+ this.deps.config.recallStateViews,
254
+ retrievalQuery,
255
+ asOfMs,
256
+ );
247
257
  const retrievalQueryHash = createHash("sha256")
248
258
  .update(retrievalQuery)
249
259
  .digest("hex");
@@ -3996,17 +4006,19 @@ export class RecallInternalCoordinator {
3996
4006
  recallResultLimit,
3997
4007
  retrievalQuery,
3998
4008
  caps,
4009
+ stateViewPacketActive,
3999
4010
  )
4000
4011
  : null;
4001
4012
  memoryResults = hotQmdPartition
4002
4013
  ? [...hotQmdPartition.appliedResults]
4003
- : this.deps.diversifyAndLimitRecallResults(
4014
+ : this.deps.recallRerankCoordinator.diversifyRecallResultsWithHeadroom(
4004
4015
  "memories",
4005
4016
  memoryResults,
4006
4017
  recallResultLimit,
4007
4018
  retrievalQuery,
4008
4019
  caps,
4009
- );
4020
+ stateViewPacketActive,
4021
+ ).appliedResults;
4010
4022
  // E-Mem-inspired memory reconstruction: fill gaps for referenced entities
4011
4023
  if (resolveRecallEnhancementCapabilities(this.deps.config).memoryReconstruction && memoryResults.length > 0) {
4012
4024
  try {
@@ -4120,27 +4132,8 @@ export class RecallInternalCoordinator {
4120
4132
  },
4121
4133
  [] as QmdSearchResult[],
4122
4134
  );
4123
- const embeddingPartition =
4124
- options.xrayCapture === true
4125
- ? this.deps.recallRerankCoordinator.diversifyRecallResultsWithHeadroom(
4126
- "memories",
4127
- scoped,
4128
- recallResultLimit,
4129
- retrievalQuery,
4130
- caps,
4131
- )
4132
- : null;
4133
- scoped =
4134
- embeddingPartition?.appliedResults ??
4135
- this.deps.diversifyAndLimitRecallResults(
4136
- "memories",
4137
- scoped,
4138
- recallResultLimit,
4139
- retrievalQuery,
4140
- caps,
4141
- );
4142
- // Issue #1577 — apply TrustScore on the embedding-fallback path so the
4143
- // feature gate is consistent across ALL recall paths (rule 41 parity).
4135
+ // Issue #1577 — trust filter before packet cap (AGENTS.md order).
4136
+ // Feature gate is consistent across ALL recall paths (rule 41 parity).
4144
4137
  {
4145
4138
  // Deadline-bound (issue #1905). This branch has no preloaded
4146
4139
  // frontmatter map (boost ran without one), so pass undefined and let
@@ -4173,6 +4166,27 @@ export class RecallInternalCoordinator {
4173
4166
  success: !trustFellBack,
4174
4167
  });
4175
4168
  }
4169
+ const embeddingPartition =
4170
+ options.xrayCapture === true
4171
+ ? this.deps.recallRerankCoordinator.diversifyRecallResultsWithHeadroom(
4172
+ "memories",
4173
+ scoped,
4174
+ recallResultLimit,
4175
+ retrievalQuery,
4176
+ caps,
4177
+ stateViewPacketActive,
4178
+ )
4179
+ : null;
4180
+ scoped =
4181
+ embeddingPartition?.appliedResults ??
4182
+ this.deps.recallRerankCoordinator.diversifyRecallResultsWithHeadroom(
4183
+ "memories",
4184
+ scoped,
4185
+ recallResultLimit,
4186
+ retrievalQuery,
4187
+ caps,
4188
+ stateViewPacketActive,
4189
+ ).appliedResults;
4176
4190
  if (scoped.length > 0) {
4177
4191
  if (shouldPersistGraphSnapshot) {
4178
4192
  graphSnapshotFinalResults = this.deps.buildGraphRecallRankedResults(
@@ -4338,27 +4352,8 @@ export class RecallInternalCoordinator {
4338
4352
  },
4339
4353
  [] as QmdSearchResult[],
4340
4354
  );
4341
- const embeddingPartition =
4342
- options.xrayCapture === true
4343
- ? this.deps.recallRerankCoordinator.diversifyRecallResultsWithHeadroom(
4344
- "memories",
4345
- scoped,
4346
- recallResultLimit,
4347
- retrievalQuery,
4348
- caps,
4349
- )
4350
- : null;
4351
- scoped =
4352
- embeddingPartition?.appliedResults ??
4353
- this.deps.diversifyAndLimitRecallResults(
4354
- "memories",
4355
- scoped,
4356
- recallResultLimit,
4357
- retrievalQuery,
4358
- caps,
4359
- );
4360
- // Issue #1577 — apply TrustScore on the embedding-fallback path so the
4361
- // feature gate is consistent across ALL recall paths (rule 41 parity).
4355
+ // Issue #1577 — trust filter before packet cap (AGENTS.md order).
4356
+ // Feature gate is consistent across ALL recall paths (rule 41 parity).
4362
4357
  {
4363
4358
  // Deadline-bound (issue #1905); no preloaded map on this branch.
4364
4359
  const trustT0 = Date.now();
@@ -4388,6 +4383,27 @@ export class RecallInternalCoordinator {
4388
4383
  success: !trustFellBack,
4389
4384
  });
4390
4385
  }
4386
+ const embeddingPartition =
4387
+ options.xrayCapture === true
4388
+ ? this.deps.recallRerankCoordinator.diversifyRecallResultsWithHeadroom(
4389
+ "memories",
4390
+ scoped,
4391
+ recallResultLimit,
4392
+ retrievalQuery,
4393
+ caps,
4394
+ stateViewPacketActive,
4395
+ )
4396
+ : null;
4397
+ scoped =
4398
+ embeddingPartition?.appliedResults ??
4399
+ this.deps.recallRerankCoordinator.diversifyRecallResultsWithHeadroom(
4400
+ "memories",
4401
+ scoped,
4402
+ recallResultLimit,
4403
+ retrievalQuery,
4404
+ caps,
4405
+ stateViewPacketActive,
4406
+ ).appliedResults;
4391
4407
  if (scoped.length > 0) {
4392
4408
  if (shouldPersistGraphSnapshot) {
4393
4409
  graphSnapshotFinalResults = this.deps.buildGraphRecallRankedResults(
@@ -4427,16 +4443,15 @@ export class RecallInternalCoordinator {
4427
4443
  [] as MemoryFile[],
4428
4444
  );
4429
4445
  if (memories.length > 0) {
4430
- const activeMemories = filterRecentScanMemoriesForStateView(
4431
- memories,
4432
- this.deps.config,
4433
- {
4446
+ const activeMemories = filterRecentScanMemories(memories, {
4447
+ stateViewActive, asOfMs,
4448
+ namespaceOf: (p) => this.deps.namespaceFromPath(p),
4449
+ isExcluded: (p) => isGenericRecallExcludedPath(p, this.deps.config),
4450
+ supersessionOptions: {
4434
4451
  enabled: lifecycleCaps.temporalSupersession,
4435
4452
  includeInRecall: this.deps.config.temporalSupersessionIncludeInRecall,
4436
4453
  },
4437
- stateViewActive,
4438
- asOfMs,
4439
- );
4454
+ });
4440
4455
  // Convert to QmdSearchResult with recency baseline, then boost so
4441
4456
  // temporal/tag boosts match the QMD path. Cap AFTER boosting, and
4442
4457
  // pass a pre-populated memoryByPath to skip redundant disk reads.
@@ -4541,27 +4556,8 @@ export class RecallInternalCoordinator {
4541
4556
  },
4542
4557
  [] as QmdSearchResult[],
4543
4558
  );
4544
- const recentPartition =
4545
- options.xrayCapture === true
4546
- ? this.deps.recallRerankCoordinator.diversifyRecallResultsWithHeadroom(
4547
- "memories",
4548
- recent,
4549
- recallResultLimit,
4550
- retrievalQuery,
4551
- caps,
4552
- )
4553
- : null;
4554
- recent =
4555
- recentPartition?.appliedResults ??
4556
- this.deps.diversifyAndLimitRecallResults(
4557
- "memories",
4558
- recent,
4559
- recallResultLimit,
4560
- retrievalQuery,
4561
- caps,
4562
- );
4563
- // Issue #1577 — apply TrustScore on the recent-scan path so the
4564
- // feature gate is consistent across ALL recall paths (rule 41).
4559
+ // Issue #1577 — trust filter before packet cap (AGENTS.md order).
4560
+ // Feature gate is consistent across ALL recall paths (rule 41).
4565
4561
  {
4566
4562
  // Deadline-bound (issue #1905). The recent-scan branch already
4567
4563
  // loaded every candidate's MemoryFile (queryAwareScopedMemories),
@@ -4597,6 +4593,27 @@ export class RecallInternalCoordinator {
4597
4593
  success: !trustFellBack,
4598
4594
  });
4599
4595
  }
4596
+ const recentPartition =
4597
+ options.xrayCapture === true
4598
+ ? this.deps.recallRerankCoordinator.diversifyRecallResultsWithHeadroom(
4599
+ "memories",
4600
+ recent,
4601
+ recallResultLimit,
4602
+ retrievalQuery,
4603
+ caps,
4604
+ stateViewPacketActive,
4605
+ )
4606
+ : null;
4607
+ recent =
4608
+ recentPartition?.appliedResults ??
4609
+ this.deps.recallRerankCoordinator.diversifyRecallResultsWithHeadroom(
4610
+ "memories",
4611
+ recent,
4612
+ recallResultLimit,
4613
+ retrievalQuery,
4614
+ caps,
4615
+ stateViewPacketActive,
4616
+ ).appliedResults;
4600
4617
  if (recent.length > 0) {
4601
4618
  if (shouldPersistGraphSnapshot) {
4602
4619
  graphSnapshotFinalResults = this.deps.buildGraphRecallRankedResults(
@@ -39,6 +39,7 @@ import type { TrustSignals } from "../trust-score.js";
39
39
  import { reorderRecallResultsWithMmr } from "../recall-mmr.js";
40
40
  import { applyReasoningTraceBoost } from "../reasoning-trace-recall.js";
41
41
  import { memoryMapKey } from "../recall-memory-map.js";
42
+ import { capStateViewPackets, reconcileStateViewPairs } from "../recall-state-view.js";
42
43
 
43
44
  export interface RecallResultPartition {
44
45
  appliedResults: QmdSearchResult[];
@@ -621,12 +622,28 @@ export class RecallRerankCoordinator {
621
622
  limit: number,
622
623
  retrievalQuery?: string,
623
624
  caps: CapabilitySet = resolveCapabilities(this.getConfig()),
625
+ /**
626
+ * #2859 — state-view packet semantics. When true, superseded rows are
627
+ * reconciled against their successors BEFORE MMR (orphan removal can
628
+ * never underfill), and the cap counts complete evidence packets: a
629
+ * predecessor admitted alongside its successor consumes ONE slot and
630
+ * the slice never splits the pair at the boundary. Absent/false keeps
631
+ * the legacy slice byte-identical.
632
+ */
633
+ stateViewActive?: boolean,
624
634
  ): RecallResultPartition {
625
635
  const safeLimit =
626
636
  typeof limit === "number" && Number.isFinite(limit)
627
637
  ? Math.max(0, Math.floor(limit))
628
638
  : 0;
629
- const candidates = Array.isArray(results) ? results : [];
639
+ // #2859: reconcile pairs before the user cap/MMR so orphan removal
640
+ // happens pre-truncation, never post-cap.
641
+ const candidates =
642
+ stateViewActive === true && Array.isArray(results)
643
+ ? reconcileStateViewPairs(results)
644
+ : Array.isArray(results)
645
+ ? results
646
+ : [];
630
647
  let orderedPool: QmdSearchResult[] | undefined;
631
648
  const resolveOrderedPool = (): QmdSearchResult[] => {
632
649
  if (orderedPool) return orderedPool;
@@ -640,15 +657,32 @@ export class RecallRerankCoordinator {
640
657
  orderedPool = this.applyMmrToQmdResults(sectionId, boosted, caps);
641
658
  return orderedPool;
642
659
  };
660
+ let appliedCache: QmdSearchResult[] | undefined;
661
+ const resolveApplied = (): QmdSearchResult[] => {
662
+ if (appliedCache) return appliedCache;
663
+ if (safeLimit === 0 || candidates.length === 0) {
664
+ appliedCache = [];
665
+ return appliedCache;
666
+ }
667
+ const ordered = resolveOrderedPool();
668
+ // #2859: the cap counts complete evidence packets, not rows.
669
+ appliedCache =
670
+ stateViewActive === true ? capStateViewPackets(ordered, safeLimit) : ordered.slice(0, safeLimit);
671
+ return appliedCache;
672
+ };
643
673
 
644
674
  return {
645
675
  get appliedResults(): QmdSearchResult[] {
646
- if (safeLimit === 0 || candidates.length === 0) return [];
647
- return resolveOrderedPool().slice(0, safeLimit);
676
+ return resolveApplied().slice();
648
677
  },
649
678
  get headroomResults(): QmdSearchResult[] {
650
679
  if (candidates.length === 0) return [];
651
- return resolveOrderedPool().slice(safeLimit);
680
+ const ordered = resolveOrderedPool();
681
+ if (stateViewActive === true) {
682
+ const applied = new Set(resolveApplied());
683
+ return ordered.filter((row) => !applied.has(row));
684
+ }
685
+ return ordered.slice(safeLimit);
652
686
  },
653
687
  };
654
688
  }
@@ -659,6 +693,8 @@ export class RecallRerankCoordinator {
659
693
  limit: number,
660
694
  retrievalQuery?: string,
661
695
  caps: CapabilitySet = resolveCapabilities(this.getConfig()),
696
+ /** #2859 — see diversifyRecallResultsWithHeadroom. */
697
+ stateViewActive?: boolean,
662
698
  ): QmdSearchResult[] {
663
699
  return this.diversifyRecallResultsWithHeadroom(
664
700
  sectionId,
@@ -666,6 +702,7 @@ export class RecallRerankCoordinator {
666
702
  limit,
667
703
  retrievalQuery,
668
704
  caps,
705
+ stateViewActive,
669
706
  ).appliedResults;
670
707
  }
671
708
 
@@ -45,6 +45,7 @@ import {
45
45
  } from "./recall-search-prefilter.js";
46
46
  import { shouldFilterSupersededFromRecall } from "../temporal-supersession.js";
47
47
  import { isValidAsOf, isValidityExpiredNow } from "../temporal-validity.js";
48
+ import { StateViewAnchorTracker, stateViewPacketActive } from "../recall-state-view-anchors.js";
48
49
  import type { TrustStageResultItem } from "../trust-score-stage.js";
49
50
  import type { MemoryFile, PluginConfig, QmdSearchResult, RecallPlanMode } from "../types.js";
50
51
  import {
@@ -987,17 +988,22 @@ export class RecallSearchPipelineCoordinator {
987
988
  options.recallResultLimit,
988
989
  options.prompt,
989
990
  caps,
991
+ // #2859: packet semantics are off under a historical asOf pin.
992
+ stateViewPacketActive(options.stateViewActive, options.asOfMs),
990
993
  );
991
994
  options.resultPartitionSink.partition = partition;
992
995
  return partition.appliedResults;
993
996
  }
994
- return this.deps.diversifyAndLimitRecallResults(
995
- "memories",
996
- results,
997
- options.recallResultLimit,
998
- options.prompt,
999
- caps,
1000
- );
997
+ return this.deps.recallRerankCoordinator
998
+ .diversifyRecallResultsWithHeadroom(
999
+ "memories",
1000
+ results,
1001
+ options.recallResultLimit,
1002
+ options.prompt,
1003
+ caps,
1004
+ stateViewPacketActive(options.stateViewActive, options.asOfMs),
1005
+ )
1006
+ .appliedResults;
1001
1007
  }
1002
1008
 
1003
1009
  async loadSearchResultMemoryMap(
@@ -1132,10 +1138,11 @@ export class RecallSearchPipelineCoordinator {
1132
1138
  // when its successor SURVIVES this filter — a successor rejected by
1133
1139
  // the connector/lifecycle/validity/dedicated-surface/status gates
1134
1140
  // must never anchor (or spend a result slot on) its superseded row.
1135
- // Anchors are therefore collected from rows that survive the pass
1136
- // below; superseded rows defer admission to the post-pass fixpoint.
1141
+ // #2859: anchors are namespace-qualified and include the successor
1142
+ // `supersedes` back-pointer (see StateViewAnchorTracker); superseded
1143
+ // rows defer admission to the post-pass fixpoint.
1137
1144
  const stateViewActive = options?.stateViewActive === true;
1138
- const stateViewSurvivorIds = stateViewActive ? new Set<string>() : null;
1145
+ const stateViewAnchors = stateViewActive ? new StateViewAnchorTracker() : null;
1139
1146
  const stateViewDeferred: number[] = [];
1140
1147
  const stateViewBuilt: (QmdSearchResult | null)[] | null = stateViewActive
1141
1148
  ? new Array<QmdSearchResult | null>(results.length).fill(null)
@@ -1150,8 +1157,11 @@ export class RecallSearchPipelineCoordinator {
1150
1157
  ? {
1151
1158
  id: memory.frontmatter.id,
1152
1159
  status: memory.frontmatter.status,
1160
+ supersedes: memory.frontmatter.supersedes,
1153
1161
  supersededBy: memory.frontmatter.supersededBy,
1154
1162
  supersededAt: memory.frontmatter.supersededAt,
1163
+ validAt: memory.frontmatter.valid_at,
1164
+ invalidAt: memory.frontmatter.invalid_at,
1155
1165
  }
1156
1166
  : {}),
1157
1167
  });
@@ -1307,10 +1317,7 @@ export class RecallSearchPipelineCoordinator {
1307
1317
  const builtRow = buildRecallRow(r, memory);
1308
1318
  if (stateViewBuilt !== null) {
1309
1319
  stateViewBuilt[resultIdx] = builtRow;
1310
- if (memory) {
1311
- const id = memory.frontmatter.id;
1312
- if (typeof id === "string" && id.length > 0) stateViewSurvivorIds!.add(id);
1313
- }
1320
+ if (memory && stateViewAnchors) stateViewAnchors.admit(r.namespace, memory.frontmatter);
1314
1321
  }
1315
1322
  filtered.push(builtRow);
1316
1323
  }
@@ -1324,12 +1331,12 @@ export class RecallSearchPipelineCoordinator {
1324
1331
  progress = false;
1325
1332
  for (const deferredIdx of stateViewDeferred) {
1326
1333
  if (admitted.has(deferredIdx)) continue;
1327
- const deferredMemory = memoryForResult(memoryByPath, results[deferredIdx]!);
1334
+ const deferredRow = results[deferredIdx]!;
1335
+ const deferredMemory = memoryForResult(memoryByPath, deferredRow);
1328
1336
  if (!deferredMemory) continue;
1329
- if (stateViewSurvivorIds!.has(deferredMemory.frontmatter.supersededBy ?? "")) {
1337
+ if (stateViewAnchors!.anchored(deferredRow.namespace, deferredMemory.frontmatter)) {
1330
1338
  admitted.add(deferredIdx);
1331
- const id = deferredMemory.frontmatter.id;
1332
- if (typeof id === "string" && id.length > 0) stateViewSurvivorIds!.add(id);
1339
+ stateViewAnchors!.admit(deferredRow.namespace, deferredMemory.frontmatter);
1333
1340
  progress = true;
1334
1341
  }
1335
1342
  }
@@ -209,3 +209,92 @@ test("an anchored predecessor keeps its rank position when admitted", async () =
209
209
  await rm(memoryDir, { recursive: true, force: true });
210
210
  }
211
211
  });
212
+
213
+ test("#2859 namespace fanout collision: a same-id successor in another namespace cannot anchor", async () => {
214
+ const memoryDir = await mkdtemp(path.join(os.tmpdir(), "remnic-sv-fanout-"));
215
+ try {
216
+ const coordinator = await makeCoordinator(memoryDir);
217
+ const A_OLD = "facts/a-old.md";
218
+ const B_NEW = "facts/b-new.md";
219
+ // ns-a: superseded predecessor whose successor id m-1 is NOT in the
220
+ // candidate set. ns-b: an unrelated active row that reuses id m-1.
221
+ // Bare-id matching (pre-#2859) admitted the ns-a predecessor on the
222
+ // ns-b anchor; qualified keys must not.
223
+ const results: QmdSearchResult[] = [
224
+ { ...result(B_NEW, 0.9), namespace: "ns-b" },
225
+ { ...result(A_OLD, 0.7), namespace: "ns-a" },
226
+ ];
227
+ const memories = new Map<string, MemoryFile>([
228
+ [`ns-b\0${B_NEW}`, memory(B_NEW, { id: "m-1", status: "active" })],
229
+ [
230
+ `ns-a\0${A_OLD}`,
231
+ memory(A_OLD, {
232
+ id: "m-0",
233
+ status: "superseded",
234
+ supersededBy: "m-1",
235
+ supersededAt: "2026-08-01",
236
+ }),
237
+ ],
238
+ ]);
239
+ const safe = coordinator.filterSearchResultsByRecallSafety(results, memories, {
240
+ stateViewActive: true,
241
+ });
242
+ assert.deepEqual(
243
+ safe.map((r) => r.path),
244
+ [B_NEW],
245
+ "a foreign-namespace successor must never anchor the superseded row"
246
+ );
247
+
248
+ // Positive control: ns-a's own m-1 present → the pair is admitted.
249
+ const A_NEW = "facts/a-new.md";
250
+ const pairResults: QmdSearchResult[] = [
251
+ { ...result(A_NEW, 0.9), namespace: "ns-a" },
252
+ { ...result(A_OLD, 0.7), namespace: "ns-a" },
253
+ ];
254
+ const pairMemories = new Map<string, MemoryFile>([
255
+ [`ns-a\0${A_NEW}`, memory(A_NEW, { id: "m-1", status: "active" })],
256
+ [`ns-a\0${A_OLD}`, memories.get(`ns-a\0${A_OLD}`)!],
257
+ ]);
258
+ const pair = coordinator.filterSearchResultsByRecallSafety(pairResults, pairMemories, {
259
+ stateViewActive: true,
260
+ });
261
+ assert.deepEqual(
262
+ pair.map((r) => r.path),
263
+ [A_NEW, A_OLD],
264
+ "the same-namespace successor anchors the pair as before"
265
+ );
266
+ } finally {
267
+ await rm(memoryDir, { recursive: true, force: true });
268
+ }
269
+ });
270
+
271
+ test("#2859 back-pointer anchors a deferred row whose supersededBy is absent", async () => {
272
+ const memoryDir = await mkdtemp(path.join(os.tmpdir(), "remnic-sv-backptr-"));
273
+ try {
274
+ const coordinator = await makeCoordinator(memoryDir);
275
+ const results = [result(NEW, 0.9), result(OLD, 0.7)];
276
+ const memories = new Map<string, MemoryFile>([
277
+ [NEW, memory(NEW, { id: "m-new", status: "active", supersedes: "m-old" })],
278
+ [
279
+ OLD,
280
+ memory(OLD, {
281
+ id: "m-old",
282
+ status: "superseded",
283
+ supersededAt: "2026-08-01",
284
+ }),
285
+ ],
286
+ ]);
287
+ const safe = coordinator.filterSearchResultsByRecallSafety(results, memories, {
288
+ stateViewActive: true,
289
+ });
290
+ assert.deepEqual(
291
+ safe.map((r) => r.path),
292
+ [NEW, OLD],
293
+ "the successor's supersedes back-pointer must admit its predecessor"
294
+ );
295
+ assert.equal(safe[1]?.supersedes, undefined, "the admitted row itself has no back-pointer");
296
+ assert.equal(safe[0]?.supersedes, "m-old", "the survivor carries its supersedes back-pointer");
297
+ } finally {
298
+ await rm(memoryDir, { recursive: true, force: true });
299
+ }
300
+ });