@remnic/core 9.50.3 → 9.51.1

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 (486) hide show
  1. package/dist/access-admin-ops-surface.d.ts +13 -11
  2. package/dist/access-admin-ops-surface.js +41 -39
  3. package/dist/access-authorization-probe.d.ts +13 -11
  4. package/dist/access-authorization-probe.js +42 -40
  5. package/dist/access-boundary.d.ts +13 -11
  6. package/dist/access-boundary.js +41 -39
  7. package/dist/access-cli.js +109 -104
  8. package/dist/access-cli.js.map +1 -1
  9. package/dist/access-coding-context-resolution.d.ts +3 -1
  10. package/dist/access-extraction-force-flush.d.ts +13 -11
  11. package/dist/access-extraction-force-flush.js +41 -39
  12. package/dist/access-health-types.d.ts +3 -1
  13. package/dist/access-http-lcm-compaction.d.ts +13 -11
  14. package/dist/access-http-lifecycle-flush.d.ts +13 -11
  15. package/dist/access-http-offline-stream.d.ts +13 -11
  16. package/dist/access-http-query.js +41 -39
  17. package/dist/access-http.d.ts +13 -11
  18. package/dist/access-http.js +52 -50
  19. package/dist/access-identity-continuity-surface.d.ts +11 -9
  20. package/dist/access-identity-continuity-surface.js +41 -39
  21. package/dist/access-lcm-surface.d.ts +13 -11
  22. package/dist/access-lcm-surface.js +41 -39
  23. package/dist/access-mcp.d.ts +13 -11
  24. package/dist/access-mcp.js +47 -45
  25. package/dist/access-memory-search-fanout.d.ts +4 -2
  26. package/dist/{access-namespace-preflight-Dj2QolFE.d.ts → access-namespace-preflight-Ds6CGlCP.d.ts} +1 -1
  27. package/dist/access-namespace-preflight.d.ts +5 -3
  28. package/dist/access-namespace-preflight.js +41 -39
  29. package/dist/access-observe-write-surface.d.ts +13 -11
  30. package/dist/access-observe-write-surface.js +41 -39
  31. package/dist/access-offline-manifest.d.ts +11 -9
  32. package/dist/access-operations-batch.js +43 -41
  33. package/dist/access-operations.d.ts +16 -14
  34. package/dist/access-operations.js +46 -44
  35. package/dist/access-recall-concurrency.d.ts +13 -11
  36. package/dist/access-recall-concurrency.js +41 -39
  37. package/dist/access-recall-response.d.ts +13 -11
  38. package/dist/access-recall-response.js +41 -39
  39. package/dist/access-recall-surface.d.ts +13 -11
  40. package/dist/access-recall-surface.js +41 -39
  41. package/dist/access-schema.d.ts +88 -88
  42. package/dist/access-schema.js +3 -3
  43. package/dist/{access-service-DesbnTSa.d.ts → access-service-BY0KJ44c.d.ts} +7 -7
  44. package/dist/access-service-helpers.d.ts +13 -11
  45. package/dist/access-service.d.ts +13 -11
  46. package/dist/access-service.js +41 -39
  47. package/dist/access-surface-catalog.d.ts +13 -11
  48. package/dist/access-wearables-meetings-surface.d.ts +5 -3
  49. package/dist/action-confidence.d.ts +3 -1
  50. package/dist/active-memory-bridge.d.ts +3 -1
  51. package/dist/active-recall.d.ts +3 -1
  52. package/dist/active-recall.js +5 -3
  53. package/dist/active-recall.js.map +1 -1
  54. package/dist/adapters/index.js +4 -4
  55. package/dist/adapters/registry.js +2 -2
  56. package/dist/ambient-provenance.d.ts +3 -1
  57. package/dist/archive-mutation-version.d.ts +9 -0
  58. package/dist/archive-mutation-version.js +20 -0
  59. package/dist/artifact-search.d.ts +3 -1
  60. package/dist/behavior-learner.d.ts +3 -1
  61. package/dist/behavior-signals.d.ts +3 -1
  62. package/dist/bootstrap.d.ts +11 -9
  63. package/dist/briefing.d.ts +4 -2
  64. package/dist/briefing.js +10 -9
  65. package/dist/buffer-surprise-report.d.ts +3 -1
  66. package/dist/buffer-turn-helpers.d.ts +3 -1
  67. package/dist/buffer.d.ts +4 -2
  68. package/dist/buffer.js +5 -5
  69. package/dist/bulk-import/index.d.ts +5 -3
  70. package/dist/calibration.d.ts +3 -1
  71. package/dist/capabilities.d.ts +3 -1
  72. package/dist/{catalog-D-G7RgXR.d.ts → catalog-D3B4RDy1.d.ts} +1 -1
  73. package/dist/causal-behavior.d.ts +3 -1
  74. package/dist/causal-behavior.js +2 -2
  75. package/dist/causal-chain.js +2 -2
  76. package/dist/causal-consolidation.d.ts +3 -1
  77. package/dist/causal-consolidation.js +13 -12
  78. package/dist/causal-consolidation.js.map +1 -1
  79. package/dist/causal-retrieval.js +2 -2
  80. package/dist/causal-trajectory-graph.d.ts +4 -2
  81. package/dist/causal-trajectory-graph.js +2 -1
  82. package/dist/causal-trajectory-graph.js.map +1 -1
  83. package/dist/causal-trajectory.js +1 -1
  84. package/dist/{chunk-KDG2KTWW.js → chunk-33SV3E43.js} +4 -4
  85. package/dist/{chunk-2HGUDBRJ.js → chunk-37ZO6LLJ.js} +2 -2
  86. package/dist/{chunk-QW3WFHKU.js → chunk-45BRYON6.js} +2 -2
  87. package/dist/{chunk-GZICBRWK.js → chunk-4F6X3RXW.js} +2 -2
  88. package/dist/{chunk-7BAYBYY5.js → chunk-4PC4PRJE.js} +2 -2
  89. package/dist/{chunk-VJXY5ZCT.js → chunk-52UKFTUK.js} +2 -2
  90. package/dist/{chunk-ESG7Z255.js → chunk-5UDMFE3Q.js} +2 -2
  91. package/dist/{chunk-JPHEOE6Z.js → chunk-6MTSFX7A.js} +15 -15
  92. package/dist/chunk-6ZN34ISG.js +44 -0
  93. package/dist/chunk-6ZN34ISG.js.map +1 -0
  94. package/dist/{chunk-M4MP34AQ.js → chunk-AHZOMHWN.js} +1 -1
  95. package/dist/{chunk-Z3RHPGSY.js → chunk-AIUBBHSF.js} +3 -3
  96. package/dist/{chunk-S3AYIQCU.js → chunk-AXIDQG5A.js} +12 -12
  97. package/dist/{chunk-QN7NTKRC.js → chunk-AZ2QBGYB.js} +1 -1
  98. package/dist/{chunk-47J4EDGR.js → chunk-AZM4CCAC.js} +8 -8
  99. package/dist/{chunk-IXXABW5A.js → chunk-BHXYAVUM.js} +11 -5
  100. package/dist/chunk-BHXYAVUM.js.map +1 -0
  101. package/dist/{chunk-L2DPF4DF.js → chunk-BIJAWZYW.js} +54 -12
  102. package/dist/chunk-BIJAWZYW.js.map +1 -0
  103. package/dist/{chunk-LEJPSMKM.js → chunk-C5QLI33R.js} +3 -3
  104. package/dist/{chunk-SV3PSA7Y.js → chunk-CV6BBVYV.js} +5 -5
  105. package/dist/{chunk-V7X767RT.js → chunk-DCZBSE4F.js} +52 -52
  106. package/dist/chunk-FC67T4E6.js +70 -0
  107. package/dist/chunk-FC67T4E6.js.map +1 -0
  108. package/dist/{chunk-7PKFPLLZ.js → chunk-FXTYIA46.js} +2 -2
  109. package/dist/{chunk-64BHFFKZ.js → chunk-HLYR2TQL.js} +5 -5
  110. package/dist/{chunk-5C2HNJMO.js → chunk-J5LLX6IL.js} +32 -32
  111. package/dist/{chunk-RKNJBZ55.js → chunk-JBPKEARU.js} +4 -4
  112. package/dist/{chunk-PLKFO2HJ.js → chunk-JL43BVDE.js} +2 -2
  113. package/dist/{chunk-2S72LWKX.js → chunk-JYL3BVVZ.js} +2 -2
  114. package/dist/{chunk-IPLYGWQF.js → chunk-KQAFEZQX.js} +5 -5
  115. package/dist/chunk-LXY5VVGM.js +61 -0
  116. package/dist/chunk-LXY5VVGM.js.map +1 -0
  117. package/dist/{chunk-PYKKWQZ2.js → chunk-M7BXDKPR.js} +6 -6
  118. package/dist/{chunk-Z54EM5YZ.js → chunk-MAXVH44E.js} +7 -7
  119. package/dist/{chunk-LYMNZZIM.js → chunk-NIS256NW.js} +2 -2
  120. package/dist/{chunk-67QG75MJ.js → chunk-NLK2VZYZ.js} +2 -2
  121. package/dist/{chunk-A4QMKFFO.js → chunk-O5FFBO2M.js} +14 -28
  122. package/dist/chunk-O5FFBO2M.js.map +1 -0
  123. package/dist/{chunk-JYIFGGEM.js → chunk-OUKBMQ2O.js} +2 -2
  124. package/dist/{chunk-75XOWNRS.js → chunk-OYESWJ43.js} +4 -4
  125. package/dist/{chunk-TS4AJ2GI.js → chunk-PA45XCUD.js} +3 -3
  126. package/dist/{chunk-BJYET5TX.js → chunk-PRDJMOST.js} +7 -1
  127. package/dist/chunk-PRDJMOST.js.map +1 -0
  128. package/dist/{chunk-4MBPIL4V.js → chunk-PUSLMZBQ.js} +2 -2
  129. package/dist/{chunk-RVO6TCTU.js → chunk-QCECHYZL.js} +6 -6
  130. package/dist/{chunk-GFIKG4FR.js → chunk-QGR6OVGT.js} +2 -2
  131. package/dist/{chunk-NSGU76YO.js → chunk-QHFV6VNU.js} +6 -2
  132. package/dist/chunk-QHFV6VNU.js.map +1 -0
  133. package/dist/{chunk-PDEKQWDV.js → chunk-QT2FRYI4.js} +18 -2
  134. package/dist/chunk-QT2FRYI4.js.map +1 -0
  135. package/dist/{chunk-HNZKVLAN.js → chunk-S354QO4R.js} +2 -2
  136. package/dist/{chunk-NO37MR45.js → chunk-SOEN6KCF.js} +2 -2
  137. package/dist/{chunk-FXX6RQYC.js → chunk-TPTECFWR.js} +2 -2
  138. package/dist/{chunk-GDDGZVFI.js → chunk-UEVLYVNW.js} +2 -2
  139. package/dist/{chunk-YQ4IQ2GA.js → chunk-UT5BV5OG.js} +2 -2
  140. package/dist/{chunk-LAQ33B5D.js → chunk-UU3G6GUP.js} +1 -1
  141. package/dist/chunk-UU3G6GUP.js.map +1 -0
  142. package/dist/{chunk-LNTUXKBT.js → chunk-UYYW2KPU.js} +2 -2
  143. package/dist/{chunk-BOFVT6P3.js → chunk-VBHPOWBJ.js} +175 -98
  144. package/dist/chunk-VBHPOWBJ.js.map +1 -0
  145. package/dist/{chunk-QSYL5CXK.js → chunk-VKXWK44Q.js} +3 -3
  146. package/dist/{chunk-KMWYZTIE.js → chunk-VMMQDEN5.js} +2 -2
  147. package/dist/{chunk-JB6D7EFB.js → chunk-VVG2BOKA.js} +2 -2
  148. package/dist/chunk-W5BIQOAJ.js +69 -0
  149. package/dist/chunk-W5BIQOAJ.js.map +1 -0
  150. package/dist/{chunk-V5H6OJCR.js → chunk-W5XVQFLM.js} +2 -2
  151. package/dist/{chunk-OIOZ6MOP.js → chunk-W6FNX2LP.js} +2 -2
  152. package/dist/{chunk-6QPHF6RR.js → chunk-WQM326GS.js} +2 -2
  153. package/dist/{chunk-TQFHQPWD.js → chunk-XADV5IZ3.js} +8 -8
  154. package/dist/{chunk-DATDLJAO.js → chunk-XAPMEU3K.js} +2 -2
  155. package/dist/chunk-XXSOVESA.js +42 -0
  156. package/dist/chunk-XXSOVESA.js.map +1 -0
  157. package/dist/{chunk-IK6X5QPO.js → chunk-ZHY5TMJG.js} +1193 -443
  158. package/dist/chunk-ZHY5TMJG.js.map +1 -0
  159. package/dist/{chunk-N3LL5NEU.js → chunk-ZMYDYNI4.js} +2 -2
  160. package/dist/{cli-D4vvtxjY.d.ts → cli-CnOkH9hA.d.ts} +6 -6
  161. package/dist/cli.d.ts +15 -13
  162. package/dist/cli.js +74 -70
  163. package/dist/coding/pre-action-gate.d.ts +3 -1
  164. package/dist/coding/pre-action-gate.js +2 -2
  165. package/dist/compounding/engine.d.ts +4 -2
  166. package/dist/compounding/engine.js +10 -9
  167. package/dist/compounding/preference-consolidator.d.ts +3 -1
  168. package/dist/compression-optimizer.d.ts +3 -1
  169. package/dist/config.d.ts +3 -1
  170. package/dist/config.js +5 -3
  171. package/dist/connectors/codex-materialize-runner.d.ts +3 -1
  172. package/dist/connectors/codex-materialize-runner.js +10 -9
  173. package/dist/connectors/codex-materialize.d.ts +3 -1
  174. package/dist/connectors/index.d.ts +3 -1
  175. package/dist/connectors/index.js +10 -9
  176. package/dist/consolidation-provenance-check.d.ts +4 -2
  177. package/dist/consolidation-undo.d.ts +4 -2
  178. package/dist/contradiction/index.d.ts +4 -2
  179. package/dist/contradiction-config.d.ts +29 -0
  180. package/dist/contradiction-config.js +12 -0
  181. package/dist/contradiction-config.js.map +1 -0
  182. package/dist/converge-config.d.ts +3 -1
  183. package/dist/convergence-refresh.d.ts +4 -2
  184. package/dist/convergence-refresh.js +12 -11
  185. package/dist/conversation-index/backend.d.ts +3 -1
  186. package/dist/conversation-index/chunker.d.ts +3 -1
  187. package/dist/conversation-index/faiss-adapter.d.ts +3 -1
  188. package/dist/conversation-index/indexer.d.ts +3 -1
  189. package/dist/conversation-index/search.d.ts +3 -1
  190. package/dist/corpus-watermark.d.ts +3 -1
  191. package/dist/corpus-watermark.js +21 -20
  192. package/dist/day-summary.d.ts +3 -1
  193. package/dist/delinearize.d.ts +3 -1
  194. package/dist/dependency-propagation-config.d.ts +3 -1
  195. package/dist/direct-answer-wiring.d.ts +3 -1
  196. package/dist/direct-answer.d.ts +3 -1
  197. package/dist/embedding-fallback.d.ts +3 -1
  198. package/dist/enrichment/index.d.ts +3 -1
  199. package/dist/entity-retrieval.d.ts +4 -2
  200. package/dist/entity-retrieval.js +10 -9
  201. package/dist/entity-schema.d.ts +3 -1
  202. package/dist/explicit-capture.d.ts +11 -9
  203. package/dist/explicit-capture.js +3 -2
  204. package/dist/external-wiki-access.d.ts +13 -11
  205. package/dist/external-wiki-access.js +42 -40
  206. package/dist/external-wiki-collection-registration.d.ts +3 -1
  207. package/dist/external-wiki-collection.d.ts +3 -1
  208. package/dist/external-wiki-mcp-tools.d.ts +13 -11
  209. package/dist/extraction-error-classification.d.ts +3 -1
  210. package/dist/extraction-faithfulness.d.ts +3 -1
  211. package/dist/extraction-judge-telemetry.d.ts +3 -1
  212. package/dist/extraction-judge-training.d.ts +3 -1
  213. package/dist/extraction-judge.d.ts +3 -1
  214. package/dist/extraction-liveness.d.ts +3 -1
  215. package/dist/extraction-normalization.d.ts +3 -1
  216. package/dist/extraction-prompt.d.ts +3 -1
  217. package/dist/extraction-source-grounding-rules.d.ts +3 -1
  218. package/dist/extraction-source-grounding.d.ts +3 -1
  219. package/dist/extraction.d.ts +3 -1
  220. package/dist/extraction.js +22 -21
  221. package/dist/fallback-llm.d.ts +3 -1
  222. package/dist/graph-444E-DrF.d.ts +349 -0
  223. package/dist/graph-dashboard-diff.d.ts +4 -2
  224. package/dist/graph-dashboard-key.d.ts +4 -2
  225. package/dist/graph-dashboard-parser.d.ts +4 -2
  226. package/dist/{graph-edge-decay-Z6ENALU2.js → graph-edge-decay-65KMOJWY.js} +4 -3
  227. package/dist/graph-edge-decay-65KMOJWY.js.map +1 -0
  228. package/dist/graph-edge-reinforcement.d.ts +4 -2
  229. package/dist/graph-path-reconstruction.d.ts +10 -0
  230. package/dist/graph-path-reconstruction.js +12 -0
  231. package/dist/graph-path-reconstruction.js.map +1 -0
  232. package/dist/graph-path-scoring-config.d.ts +8 -0
  233. package/dist/graph-path-scoring-config.js +10 -0
  234. package/dist/graph-path-scoring-config.js.map +1 -0
  235. package/dist/graph-path-scoring.d.ts +36 -0
  236. package/dist/graph-path-scoring.js +11 -0
  237. package/dist/graph-path-scoring.js.map +1 -0
  238. package/dist/graph-snapshot.d.ts +4 -2
  239. package/dist/graph-snapshot.js +3 -2
  240. package/dist/graph.d.ts +5 -318
  241. package/dist/graph.js +5 -1
  242. package/dist/harmonic-retrieval.js +1 -1
  243. package/dist/importance.d.ts +3 -1
  244. package/dist/importers/index.d.ts +3 -1
  245. package/dist/in-flight-reads.d.ts +3 -1
  246. package/dist/index.d.ts +696 -694
  247. package/dist/index.js +149 -144
  248. package/dist/intent.d.ts +3 -1
  249. package/dist/lcm/engine.d.ts +3 -1
  250. package/dist/lcm/engine.js +3 -3
  251. package/dist/lcm/index.d.ts +3 -1
  252. package/dist/lcm/index.js +6 -6
  253. package/dist/lcm/tools.d.ts +3 -1
  254. package/dist/lifecycle.d.ts +3 -1
  255. package/dist/live-connectors-runner.d.ts +3 -1
  256. package/dist/local-llm.d.ts +3 -1
  257. package/dist/local-model-endpoint.d.ts +3 -1
  258. package/dist/maintenance/memory-governance.d.ts +3 -1
  259. package/dist/maintenance/memory-governance.js +10 -9
  260. package/dist/maintenance/rebuild-memory-lifecycle-ledger.d.ts +4 -2
  261. package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +10 -9
  262. package/dist/maintenance/rebuild-memory-projection.d.ts +4 -2
  263. package/dist/maintenance/rebuild-memory-projection.js +11 -10
  264. package/dist/{maintenance-ClmUVpGI.d.ts → maintenance-CKwxpdRx.d.ts} +3 -3
  265. package/dist/mcp-memory-inspector-app.d.ts +13 -11
  266. package/dist/memory-action-policy.d.ts +3 -1
  267. package/dist/memory-cache.d.ts +3 -1
  268. package/dist/memory-lifecycle-ledger-utils.d.ts +3 -1
  269. package/dist/memory-projection-store.d.ts +3 -1
  270. package/dist/memory-provenance.d.ts +3 -1
  271. package/dist/memory-snapshot.d.ts +3 -1
  272. package/dist/memory-worth-outcomes.d.ts +4 -2
  273. package/dist/models-json.d.ts +3 -1
  274. package/dist/namespaces/migrate.d.ts +5 -3
  275. package/dist/namespaces/migrate.js +20 -19
  276. package/dist/namespaces/principal.d.ts +3 -1
  277. package/dist/namespaces/search.d.ts +3 -1
  278. package/dist/namespaces/search.js +7 -7
  279. package/dist/namespaces/storage.d.ts +5 -3
  280. package/dist/namespaces/storage.js +10 -9
  281. package/dist/native-knowledge.d.ts +3 -1
  282. package/dist/offline-sync-impression-drain.d.ts +3 -1
  283. package/dist/operator-doctor-corpus.d.ts +3 -1
  284. package/dist/operator-doctor-corpus.js +22 -21
  285. package/dist/operator-doctor-replica.d.ts +3 -1
  286. package/dist/operator-toolkit.d.ts +6 -4
  287. package/dist/operator-toolkit.js +33 -29
  288. package/dist/orchestration/compression-guideline-coordinator.d.ts +4 -2
  289. package/dist/orchestration/maintenance.d.ts +6 -4
  290. package/dist/orchestration/maintenance.js +15 -14
  291. package/dist/{orchestrator-qJ07zI8H.d.ts → orchestrator-BshGam-o.d.ts} +45 -19
  292. package/dist/orchestrator.d.ts +11 -9
  293. package/dist/orchestrator.js +109 -104
  294. package/dist/patterns-cli.d.ts +3 -1
  295. package/dist/{pipeline-WFCxhHOn.d.ts → pipeline-D21Rs6gW.d.ts} +1 -1
  296. package/dist/policy-runtime.d.ts +3 -1
  297. package/dist/proactive-contention.d.ts +3 -1
  298. package/dist/provenance.d.ts +3 -1
  299. package/dist/{qmd-5tzkQ44y.d.ts → qmd-Dhle1P4X.d.ts} +1 -1
  300. package/dist/qmd-preflight.d.ts +4 -2
  301. package/dist/qmd-recall-cache.d.ts +3 -1
  302. package/dist/qmd.d.ts +4 -2
  303. package/dist/qmd.js +4 -4
  304. package/dist/recall-concurrency-config.d.ts +3 -1
  305. package/dist/recall-disclosure-escalation.d.ts +3 -1
  306. package/dist/recall-explain-renderer.d.ts +3 -1
  307. package/dist/recall-explain-renderer.js +3 -3
  308. package/dist/recall-memory-map.d.ts +3 -1
  309. package/dist/recall-planner-llm.d.ts +3 -1
  310. package/dist/recall-planner-llm.js +3 -3
  311. package/dist/recall-state.d.ts +7 -1
  312. package/dist/recall-state.js +1 -1
  313. package/dist/recall-tag-filter.d.ts +3 -1
  314. package/dist/recall-timings.d.ts +3 -1
  315. package/dist/recall-xray-cli.d.ts +3 -1
  316. package/dist/recall-xray-cli.js +4 -4
  317. package/dist/recall-xray-renderer.d.ts +3 -1
  318. package/dist/recall-xray-renderer.js +3 -3
  319. package/dist/recall-xray.d.ts +7 -1
  320. package/dist/recall-xray.js +2 -2
  321. package/dist/reconcile/cursor.d.ts +3 -1
  322. package/dist/reconcile/manifest.d.ts +3 -1
  323. package/dist/reconcile/plan.d.ts +3 -1
  324. package/dist/replay/normalizers/chatgpt.d.ts +3 -1
  325. package/dist/replay/normalizers/claude.d.ts +3 -1
  326. package/dist/replay/normalizers/openclaw.d.ts +3 -1
  327. package/dist/replay/normalizers/shared.d.ts +3 -1
  328. package/dist/replay/runner.d.ts +3 -1
  329. package/dist/replay/types.d.ts +3 -1
  330. package/dist/replica-divergence.d.ts +3 -1
  331. package/dist/replica-peers-config.d.ts +3 -1
  332. package/dist/resolve-auth-token.d.ts +3 -1
  333. package/dist/resume-bundles.js +6 -4
  334. package/dist/retrieval-agents.d.ts +4 -2
  335. package/dist/retrieval-tiers.d.ts +3 -1
  336. package/dist/routing/engine.d.ts +3 -1
  337. package/dist/routing/store.d.ts +3 -1
  338. package/dist/salvage-envelope.d.ts +3 -1
  339. package/dist/schemas.d.ts +116 -116
  340. package/dist/{scope-profiles--vfXPl3X.d.ts → scope-profiles-NzGPDXLn.d.ts} +1 -1
  341. package/dist/search/embed-helper.d.ts +3 -1
  342. package/dist/search/factory.d.ts +3 -1
  343. package/dist/search/factory.js +6 -6
  344. package/dist/search/index.d.ts +3 -1
  345. package/dist/search/index.js +12 -12
  346. package/dist/search/lancedb-backend.d.ts +3 -1
  347. package/dist/search/meilisearch-backend.d.ts +3 -1
  348. package/dist/search/noop-backend.d.ts +3 -1
  349. package/dist/search/orama-backend.d.ts +3 -1
  350. package/dist/search/port.d.ts +3 -1
  351. package/dist/search/remote-backend.d.ts +3 -1
  352. package/dist/{semantic-consolidation-BBDuP9nJ.d.ts → semantic-consolidation-DLDKvyy5.d.ts} +1 -1
  353. package/dist/semantic-consolidation.d.ts +4 -2
  354. package/dist/semantic-consolidation.js +11 -10
  355. package/dist/semantic-rule-promotion.js +10 -9
  356. package/dist/semantic-rule-verifier.d.ts +3 -1
  357. package/dist/semantic-rule-verifier.js +10 -9
  358. package/dist/{service-B8DtbpCM.d.ts → service-BIgVM7fL.d.ts} +2 -2
  359. package/dist/session-observer-bands.d.ts +3 -1
  360. package/dist/session-observer-state.d.ts +3 -1
  361. package/dist/shared-context/manager.d.ts +11 -9
  362. package/dist/signal.d.ts +3 -1
  363. package/dist/source-agent-qualifier.d.ts +3 -1
  364. package/dist/source-agent-qualifier.js +18 -17
  365. package/dist/{storage-BkYN1RIy.d.ts → storage-CVfGWqCI.d.ts} +7 -6
  366. package/dist/storage.d.ts +4 -2
  367. package/dist/storage.js +9 -8
  368. package/dist/summarizer.d.ts +3 -1
  369. package/dist/summary-snapshot.d.ts +3 -1
  370. package/dist/temporal-supersession.d.ts +4 -2
  371. package/dist/temporal-timeline-recall.d.ts +3 -1
  372. package/dist/temporal-validity.d.ts +3 -1
  373. package/dist/threading.d.ts +3 -1
  374. package/dist/tier-migration.d.ts +4 -2
  375. package/dist/tier-routing.d.ts +3 -1
  376. package/dist/topics.d.ts +3 -1
  377. package/dist/transcript.d.ts +3 -1
  378. package/dist/transfer/autodetect.js +1 -1
  379. package/dist/transfer/backup.js +1 -1
  380. package/dist/transfer/capsule-export.js +2 -2
  381. package/dist/transfer/types.d.ts +66 -66
  382. package/dist/trust-score-stage.d.ts +3 -1
  383. package/dist/trust-score.d.ts +3 -1
  384. package/dist/{types-u2s9j1uD.d.ts → types-CkiDUorT.d.ts} +10 -16
  385. package/dist/types.d.ts +3 -1
  386. package/dist/types.js +1 -1
  387. package/dist/utility-runtime.d.ts +3 -1
  388. package/dist/verified-recall.js +10 -9
  389. package/dist/write-envelope.d.ts +3 -1
  390. package/package.json +2 -2
  391. package/src/archive-mutation-version.ts +59 -0
  392. package/src/config.test.ts +45 -0
  393. package/src/config.ts +10 -30
  394. package/src/contradiction/contradiction.test.ts +86 -1
  395. package/src/contradiction-config.ts +92 -0
  396. package/src/graph-path-reconstruction.ts +91 -0
  397. package/src/graph-path-scoring-config.ts +55 -0
  398. package/src/graph-path-scoring.test.ts +238 -0
  399. package/src/graph-path-scoring.ts +77 -0
  400. package/src/graph.test.ts +225 -5
  401. package/src/graph.ts +72 -5
  402. package/src/orchestration/contradiction-linking-coordinator.ts +246 -76
  403. package/src/orchestration/contradiction-localization.integration.test.ts +1953 -0
  404. package/src/orchestration/extraction-anchor-snapshot.ts +83 -0
  405. package/src/orchestration/extraction-persist-deps.ts +8 -2
  406. package/src/orchestration/extraction-persist.ts +43 -34
  407. package/src/orchestration/graph-path-state-loader.test.ts +801 -0
  408. package/src/orchestration/graph-path-state-loader.ts +318 -0
  409. package/src/orchestration/graph-recall-coordinator.integration.test.ts +1163 -0
  410. package/src/orchestration/graph-recall-coordinator.ts +206 -29
  411. package/src/orchestration/graph-recall-seam.ts +19 -0
  412. package/src/orchestration/recall-internal-deps.ts +7 -13
  413. package/src/orchestration/recall-internal.ts +5 -0
  414. package/src/orchestration/recall-introspection.ts +9 -1
  415. package/src/orchestration/recall-search-pipeline.ts +8 -13
  416. package/src/orchestration/update-localization.test.ts +784 -0
  417. package/src/orchestration/update-localization.ts +173 -0
  418. package/src/orchestrator.ts +19 -18
  419. package/src/recall-state.test.ts +29 -1
  420. package/src/recall-state.ts +13 -0
  421. package/src/recall-xray-renderer.test.ts +45 -0
  422. package/src/recall-xray-renderer.ts +16 -0
  423. package/src/recall-xray.ts +13 -0
  424. package/src/storage/supersession-side-effects.ts +97 -0
  425. package/src/storage/tombstone-blocked-capture-sync.ts +13 -5
  426. package/src/storage-contract/cache-coherence.test.ts +299 -0
  427. package/src/storage.ts +86 -88
  428. package/src/types.ts +12 -15
  429. package/dist/chunk-A4QMKFFO.js.map +0 -1
  430. package/dist/chunk-BJYET5TX.js.map +0 -1
  431. package/dist/chunk-BOFVT6P3.js.map +0 -1
  432. package/dist/chunk-IK6X5QPO.js.map +0 -1
  433. package/dist/chunk-IXXABW5A.js.map +0 -1
  434. package/dist/chunk-L2DPF4DF.js.map +0 -1
  435. package/dist/chunk-LAQ33B5D.js.map +0 -1
  436. package/dist/chunk-NSGU76YO.js.map +0 -1
  437. package/dist/chunk-PDEKQWDV.js.map +0 -1
  438. /package/dist/{graph-edge-decay-Z6ENALU2.js.map → archive-mutation-version.js.map} +0 -0
  439. /package/dist/{chunk-KDG2KTWW.js.map → chunk-33SV3E43.js.map} +0 -0
  440. /package/dist/{chunk-2HGUDBRJ.js.map → chunk-37ZO6LLJ.js.map} +0 -0
  441. /package/dist/{chunk-QW3WFHKU.js.map → chunk-45BRYON6.js.map} +0 -0
  442. /package/dist/{chunk-GZICBRWK.js.map → chunk-4F6X3RXW.js.map} +0 -0
  443. /package/dist/{chunk-7BAYBYY5.js.map → chunk-4PC4PRJE.js.map} +0 -0
  444. /package/dist/{chunk-VJXY5ZCT.js.map → chunk-52UKFTUK.js.map} +0 -0
  445. /package/dist/{chunk-ESG7Z255.js.map → chunk-5UDMFE3Q.js.map} +0 -0
  446. /package/dist/{chunk-JPHEOE6Z.js.map → chunk-6MTSFX7A.js.map} +0 -0
  447. /package/dist/{chunk-M4MP34AQ.js.map → chunk-AHZOMHWN.js.map} +0 -0
  448. /package/dist/{chunk-Z3RHPGSY.js.map → chunk-AIUBBHSF.js.map} +0 -0
  449. /package/dist/{chunk-S3AYIQCU.js.map → chunk-AXIDQG5A.js.map} +0 -0
  450. /package/dist/{chunk-QN7NTKRC.js.map → chunk-AZ2QBGYB.js.map} +0 -0
  451. /package/dist/{chunk-47J4EDGR.js.map → chunk-AZM4CCAC.js.map} +0 -0
  452. /package/dist/{chunk-LEJPSMKM.js.map → chunk-C5QLI33R.js.map} +0 -0
  453. /package/dist/{chunk-SV3PSA7Y.js.map → chunk-CV6BBVYV.js.map} +0 -0
  454. /package/dist/{chunk-V7X767RT.js.map → chunk-DCZBSE4F.js.map} +0 -0
  455. /package/dist/{chunk-7PKFPLLZ.js.map → chunk-FXTYIA46.js.map} +0 -0
  456. /package/dist/{chunk-64BHFFKZ.js.map → chunk-HLYR2TQL.js.map} +0 -0
  457. /package/dist/{chunk-5C2HNJMO.js.map → chunk-J5LLX6IL.js.map} +0 -0
  458. /package/dist/{chunk-RKNJBZ55.js.map → chunk-JBPKEARU.js.map} +0 -0
  459. /package/dist/{chunk-PLKFO2HJ.js.map → chunk-JL43BVDE.js.map} +0 -0
  460. /package/dist/{chunk-2S72LWKX.js.map → chunk-JYL3BVVZ.js.map} +0 -0
  461. /package/dist/{chunk-IPLYGWQF.js.map → chunk-KQAFEZQX.js.map} +0 -0
  462. /package/dist/{chunk-PYKKWQZ2.js.map → chunk-M7BXDKPR.js.map} +0 -0
  463. /package/dist/{chunk-Z54EM5YZ.js.map → chunk-MAXVH44E.js.map} +0 -0
  464. /package/dist/{chunk-LYMNZZIM.js.map → chunk-NIS256NW.js.map} +0 -0
  465. /package/dist/{chunk-67QG75MJ.js.map → chunk-NLK2VZYZ.js.map} +0 -0
  466. /package/dist/{chunk-JYIFGGEM.js.map → chunk-OUKBMQ2O.js.map} +0 -0
  467. /package/dist/{chunk-75XOWNRS.js.map → chunk-OYESWJ43.js.map} +0 -0
  468. /package/dist/{chunk-TS4AJ2GI.js.map → chunk-PA45XCUD.js.map} +0 -0
  469. /package/dist/{chunk-4MBPIL4V.js.map → chunk-PUSLMZBQ.js.map} +0 -0
  470. /package/dist/{chunk-RVO6TCTU.js.map → chunk-QCECHYZL.js.map} +0 -0
  471. /package/dist/{chunk-GFIKG4FR.js.map → chunk-QGR6OVGT.js.map} +0 -0
  472. /package/dist/{chunk-HNZKVLAN.js.map → chunk-S354QO4R.js.map} +0 -0
  473. /package/dist/{chunk-NO37MR45.js.map → chunk-SOEN6KCF.js.map} +0 -0
  474. /package/dist/{chunk-FXX6RQYC.js.map → chunk-TPTECFWR.js.map} +0 -0
  475. /package/dist/{chunk-GDDGZVFI.js.map → chunk-UEVLYVNW.js.map} +0 -0
  476. /package/dist/{chunk-YQ4IQ2GA.js.map → chunk-UT5BV5OG.js.map} +0 -0
  477. /package/dist/{chunk-LNTUXKBT.js.map → chunk-UYYW2KPU.js.map} +0 -0
  478. /package/dist/{chunk-QSYL5CXK.js.map → chunk-VKXWK44Q.js.map} +0 -0
  479. /package/dist/{chunk-KMWYZTIE.js.map → chunk-VMMQDEN5.js.map} +0 -0
  480. /package/dist/{chunk-JB6D7EFB.js.map → chunk-VVG2BOKA.js.map} +0 -0
  481. /package/dist/{chunk-V5H6OJCR.js.map → chunk-W5XVQFLM.js.map} +0 -0
  482. /package/dist/{chunk-OIOZ6MOP.js.map → chunk-W6FNX2LP.js.map} +0 -0
  483. /package/dist/{chunk-6QPHF6RR.js.map → chunk-WQM326GS.js.map} +0 -0
  484. /package/dist/{chunk-TQFHQPWD.js.map → chunk-XADV5IZ3.js.map} +0 -0
  485. /package/dist/{chunk-DATDLJAO.js.map → chunk-XAPMEU3K.js.map} +0 -0
  486. /package/dist/{chunk-N3LL5NEU.js.map → chunk-ZMYDYNI4.js.map} +0 -0
@@ -1,9 +1,3 @@
1
- import {
2
- TombstoneStore,
3
- applyTombstoneResurrectionGate,
4
- buildRetiredFactTombstoneInputs,
5
- collectRetiredMemoriesForRebuild
6
- } from "./chunk-ENTCVTQR.js";
7
1
  import {
8
2
  WEARABLES_DIR_NAME,
9
3
  escapeSegmentText,
@@ -15,6 +9,12 @@ import {
15
9
  unescapeSegmentText,
16
10
  unescapeSpeakerLabel
17
11
  } from "./chunk-UHVXE24Y.js";
12
+ import {
13
+ TombstoneStore,
14
+ applyTombstoneResurrectionGate,
15
+ buildRetiredFactTombstoneInputs,
16
+ collectRetiredMemoriesForRebuild
17
+ } from "./chunk-ENTCVTQR.js";
18
18
  import {
19
19
  withholdToolScopedFromSharedNamespace
20
20
  } from "./chunk-S2V7RUCL.js";
@@ -26,10 +26,7 @@ import {
26
26
  import {
27
27
  SPECULATIVE_TTL_DAYS,
28
28
  confidenceTier
29
- } from "./chunk-LAQ33B5D.js";
30
- import {
31
- createMemorySnapshot
32
- } from "./chunk-S2HLHAZ4.js";
29
+ } from "./chunk-UU3G6GUP.js";
33
30
  import {
34
31
  normalizeProjectionPreview,
35
32
  normalizeProjectionTags
@@ -38,6 +35,9 @@ import {
38
35
  rewriteProjectedEntityReferences,
39
36
  rewriteProjectedMemoryEntityReference
40
37
  } from "./chunk-WRJVB3C2.js";
38
+ import {
39
+ createMemorySnapshot
40
+ } from "./chunk-S2HLHAZ4.js";
41
41
  import {
42
42
  rotateMarkdownFileToArchive
43
43
  } from "./chunk-DM2T26WE.js";
@@ -61,7 +61,7 @@ import {
61
61
  isQueuedReviewMemory,
62
62
  parseTombstoneBlockedOfflineSyncMemory,
63
63
  tombstoneBlocked
64
- } from "./chunk-IXXABW5A.js";
64
+ } from "./chunk-BHXYAVUM.js";
65
65
  import {
66
66
  composeMemoryEnvelope,
67
67
  isSealedMemoryEnvelope,
@@ -130,14 +130,20 @@ import {
130
130
  reconcileProvenanceRead,
131
131
  serializeProvenanceFields
132
132
  } from "./chunk-QBSFOKY6.js";
133
+ import {
134
+ sanitizeMemoryContent
135
+ } from "./chunk-5GKPFL3S.js";
133
136
  import {
134
137
  matchEntitySchemaSection,
135
138
  normalizeEntityStructuredSection,
136
139
  sortStructuredSectionsBySchema
137
140
  } from "./chunk-ZIKENA2C.js";
138
141
  import {
139
- sanitizeMemoryContent
140
- } from "./chunk-5GKPFL3S.js";
142
+ archive_mutation_version_exports,
143
+ bumpArchiveMutationIfChanged,
144
+ getArchiveMutationVersionForDir,
145
+ recordArchiveDelete
146
+ } from "./chunk-W5BIQOAJ.js";
141
147
  import {
142
148
  selectArtifactMatches
143
149
  } from "./chunk-Z7L72ZHL.js";
@@ -5064,6 +5070,66 @@ function stripCitationMarkersForHashRemoval(value, template) {
5064
5070
  return removed ? trimLeadingSpacesAndTabs(result) : value;
5065
5071
  }
5066
5072
 
5073
+ // src/storage/supersession-side-effects.ts
5074
+ async function runSupersessionSideEffects(options) {
5075
+ const {
5076
+ oldMemoryId,
5077
+ newMemoryId,
5078
+ reason,
5079
+ now,
5080
+ currentBefore,
5081
+ updatedFm,
5082
+ citationTemplate,
5083
+ isColdOrArchiveTierPath,
5084
+ invalidateColdMemoriesCache,
5085
+ bumpMemoryCorpusVersion,
5086
+ appendLifecycleEvent,
5087
+ bumpMemoryStatusVersion,
5088
+ appendTombstone,
5089
+ writeSealedMemory
5090
+ } = options;
5091
+ try {
5092
+ if (isColdOrArchiveTierPath(currentBefore.path)) invalidateColdMemoriesCache();
5093
+ bumpMemoryCorpusVersion();
5094
+ await appendLifecycleEvent();
5095
+ bumpMemoryStatusVersion();
5096
+ log.debug(`superseded memory ${oldMemoryId} by ${newMemoryId}: ${reason}`);
5097
+ if (currentBefore.frontmatter.category === "fact") {
5098
+ for (const input of buildRetiredFactTombstoneInputs(
5099
+ {
5100
+ id: oldMemoryId,
5101
+ content: stripCitationForTemplate(currentBefore.content, citationTemplate),
5102
+ contentHash: currentBefore.frontmatter.contentHash,
5103
+ entityRef: updatedFm.entityRef,
5104
+ structuredAttributes: currentBefore.frontmatter.structuredAttributes
5105
+ },
5106
+ {
5107
+ reason: "contradiction_resolution",
5108
+ createdBy: "contradiction_resolution",
5109
+ createdAt: now,
5110
+ supersessionKeysForFact
5111
+ }
5112
+ )) {
5113
+ await appendTombstone(input);
5114
+ }
5115
+ }
5116
+ const auditEnvelope = composeMemoryEnvelope(
5117
+ {
5118
+ content: `Superseded: ${currentBefore.content}
5119
+
5120
+ Reason: ${reason}`,
5121
+ category: "correction",
5122
+ confidence: 1,
5123
+ tags: ["supersession", "auto-resolved"]
5124
+ },
5125
+ { source: "contradiction-detection" }
5126
+ );
5127
+ await writeSealedMemory(auditEnvelope, { lineage: [oldMemoryId, newMemoryId] });
5128
+ } catch (err) {
5129
+ log.error(`failed to supersede memory ${oldMemoryId}:`, err);
5130
+ }
5131
+ }
5132
+
5067
5133
  // src/storage/entity-timeline.ts
5068
5134
  import { createHash as createHash5 } from "crypto";
5069
5135
  function parseEntityTimelineBullet(bullet, fallbackTimestamp) {
@@ -6992,10 +7058,17 @@ var StorageManager3 = class _StorageManager extends TombstoneBlockedCaptureIndex
6992
7058
  getMemoryCorpusVersion() {
6993
7059
  return this.readSharedVersion("memory-corpus", _StorageManager.memoryCorpusVersionByDir);
6994
7060
  }
7061
+ /**
7062
+ * Bump only — NOT invalidateAllForDir (that would drop the very hot
7063
+ * entry the write path just patched).
7064
+ */
6995
7065
  bumpMemoryCorpusVersion() {
6996
7066
  this.bumpSharedVersion("memory-corpus", _StorageManager.memoryCorpusVersionByDir);
6997
7067
  deleteInFlightReadsForDir(this.baseDir);
6998
7068
  }
7069
+ getArchiveMutationVersion() {
7070
+ return getArchiveMutationVersionForDir(this.baseDir);
7071
+ }
6999
7072
  /**
7000
7073
  * Corpus bump reporting whether THIS process's append was the only one
7001
7074
  * since the pre-bump size (#1902, Codex P1): the `exclusive` flag lets
@@ -8695,16 +8768,19 @@ ${sanitized.text}
8695
8768
  invalidateMemoryCachesForTiers(tiers) {
8696
8769
  let hotChanged = false;
8697
8770
  let coldChanged = false;
8771
+ let archiveChanged = false;
8698
8772
  for (const tier of tiers) {
8699
8773
  if (tier === "cold") {
8700
8774
  coldChanged = true;
8701
- } else if (tier === "hot" || tier === "archive") {
8775
+ } else if (tier === "archive") {
8776
+ hotChanged = true;
8777
+ archiveChanged = true;
8778
+ } else if (tier === "hot") {
8702
8779
  hotChanged = true;
8703
8780
  }
8704
8781
  }
8705
- if (hotChanged) {
8706
- this.invalidateAllMemoriesCache();
8707
- }
8782
+ if (hotChanged) this.invalidateAllMemoriesCache();
8783
+ bumpArchiveMutationIfChanged(this.baseDir, archiveChanged);
8708
8784
  if (coldChanged) {
8709
8785
  this.invalidateColdMemoriesCache();
8710
8786
  }
@@ -9106,6 +9182,7 @@ ${memory.content}
9106
9182
  this.notifyCatalogWrite();
9107
9183
  }
9108
9184
  async moveMemoryToPath(memory, targetPath) {
9185
+ const { recordArchiveDelete: recordArchiveDelete2, recordArchiveWrite } = archive_mutation_version_exports;
9109
9186
  const changed = await this.withTombstoneBlockedMemoryPathLock(
9110
9187
  memory.path,
9111
9188
  async (current) => {
@@ -9126,12 +9203,12 @@ ${memory.content}
9126
9203
  let durable = false;
9127
9204
  try {
9128
9205
  if (destination?.frontmatter.id === current.frontmatter.id) {
9129
- await this.deleteManagedStorageFile(current.path);
9206
+ await recordArchiveDelete2(this.baseDir, current.path, () => this.deleteManagedStorageFile(current.path));
9130
9207
  durable = true;
9131
9208
  this.invalidateAllMemoriesCache();
9132
9209
  updateProjectedMemoryPath(this.baseDir, current.frontmatter.id, projectedPath);
9133
9210
  } else {
9134
- await this.writeMemoryFileAtomic(targetPath, current);
9211
+ await recordArchiveWrite(this.baseDir, targetPath, () => this.writeMemoryFileAtomic(targetPath, current));
9135
9212
  if (memory.frontmatter.entityRef !== current.frontmatter.entityRef) {
9136
9213
  memory.frontmatter.entityRef = current.frontmatter.entityRef;
9137
9214
  }
@@ -9139,7 +9216,7 @@ ${memory.content}
9139
9216
  const sourcePath = path9.resolve(current.path);
9140
9217
  const destPath = path9.resolve(targetPath);
9141
9218
  if (sourcePath !== destPath) {
9142
- await this.deleteManagedStorageFile(current.path);
9219
+ await recordArchiveDelete2(this.baseDir, current.path, () => this.deleteManagedStorageFile(current.path));
9143
9220
  this.invalidateAllMemoriesCache();
9144
9221
  updateProjectedMemoryPath(this.baseDir, current.frontmatter.id, projectedPath);
9145
9222
  }
@@ -9180,6 +9257,7 @@ ${memory.content}
9180
9257
  * Returns the new file path on success, null on failure.
9181
9258
  */
9182
9259
  async archiveMemory(memory, lifecycle) {
9260
+ const { recordArchiveDelete: recordArchiveDelete2, recordArchiveWrite } = archive_mutation_version_exports;
9183
9261
  const archiveCurrent = async (current, markDurable) => {
9184
9262
  try {
9185
9263
  const now = lifecycle?.at ?? /* @__PURE__ */ new Date();
@@ -9202,7 +9280,7 @@ ${current.content}
9202
9280
  `;
9203
9281
  const destPath = path9.join(destDir, path9.basename(current.path));
9204
9282
  const priorDest = await this.readStorageSecureFile(destPath).catch(() => null);
9205
- await this.writeStorageSecureFile(destPath, fileContent);
9283
+ await recordArchiveWrite(this.baseDir, destPath, () => this.writeStorageSecureFile(destPath, fileContent));
9206
9284
  if (typeof current.frontmatter.entityRef === "string") {
9207
9285
  try {
9208
9286
  await this.entityRefRepair.repair(
@@ -9214,14 +9292,29 @@ ${current.content}
9214
9292
  );
9215
9293
  } catch (err) {
9216
9294
  if (priorDest === null) {
9217
- await unlink4(destPath).catch(() => void 0);
9295
+ await recordArchiveDelete2(
9296
+ this.baseDir,
9297
+ destPath,
9298
+ () => unlink4(destPath).then(
9299
+ () => true,
9300
+ () => false
9301
+ )
9302
+ );
9218
9303
  } else {
9219
- await this.writeStorageSecureFile(destPath, priorDest).catch(() => void 0);
9304
+ await recordArchiveDelete2(
9305
+ this.baseDir,
9306
+ destPath,
9307
+ () => this.writeStorageSecureFile(destPath, priorDest).then(
9308
+ () => true,
9309
+ () => false
9310
+ )
9311
+ );
9220
9312
  }
9221
9313
  throw err;
9222
9314
  }
9223
9315
  }
9224
- if (!await this.deleteManagedStorageFile(current.path)) return null;
9316
+ const deleted = await recordArchiveDelete2(this.baseDir, current.path, () => this.deleteManagedStorageFile(current.path));
9317
+ if (!deleted) return null;
9225
9318
  markDurable();
9226
9319
  markProjectedMemoryPathInvalid(this.baseDir, current.frontmatter.id);
9227
9320
  this.invalidateAllMemoriesCache();
@@ -9300,7 +9393,8 @@ ${current.content}
9300
9393
  const memory = memories.find((candidate) => candidate.frontmatter.id === id);
9301
9394
  if (!memory) return false;
9302
9395
  return await this.runTombstoneBlockedInvalidation(memory, async (current, rebuildMarker, markDurable) => {
9303
- if (!await this.deleteManagedStorageFile(current.path)) return false;
9396
+ const deleted = await recordArchiveDelete(this.baseDir, current.path, () => this.deleteManagedStorageFile(current.path));
9397
+ if (!deleted) return false;
9304
9398
  markDurable();
9305
9399
  markProjectedMemoryPathInvalid(this.baseDir, id);
9306
9400
  this.invalidateAllMemoriesCache();
@@ -10527,49 +10621,64 @@ ${sanitized.text}
10527
10621
  const memories = await this.readAllMemories();
10528
10622
  return memories.filter((m) => m.frontmatter.parentId === parentId).sort((a, b) => (a.frontmatter.chunkIndex ?? 0) - (b.frontmatter.chunkIndex ?? 0));
10529
10623
  }
10530
- // ---------------------------------------------------------------------------
10531
- // Contradiction Detection (Phase 2B)
10532
- // ---------------------------------------------------------------------------
10533
- /**
10534
- * Mark a memory as superseded by another.
10535
- * Updates the old memory's status and adds the supersededBy link.
10536
- */
10537
10624
  async supersedeMemory(oldMemoryId, newMemoryId, reason) {
10538
10625
  const memories = await this.readAllMemories();
10539
- const oldMemory = memories.find((m) => m.frontmatter.id === oldMemoryId);
10626
+ let oldMemory = memories.find(
10627
+ (memory) => memory.frontmatter.id === oldMemoryId && inferMemoryStatus(memory.frontmatter, toMemoryPathRel(this.baseDir, memory.path)) === "active"
10628
+ );
10629
+ if (!oldMemory) {
10630
+ oldMemory = (await this.readAllColdMemories()).find(
10631
+ (memory) => memory.frontmatter.id === oldMemoryId && inferMemoryStatus(memory.frontmatter, toMemoryPathRel(this.baseDir, memory.path)) === "active"
10632
+ );
10633
+ }
10540
10634
  if (!oldMemory) return false;
10541
10635
  const now = (/* @__PURE__ */ new Date()).toISOString();
10542
10636
  let currentBefore = oldMemory;
10543
10637
  let updatedFm = oldMemory.frontmatter;
10544
- try {
10545
- const written = await this.withTombstoneBlockedMemoryPathLock(oldMemory.path, async (current) => {
10546
- if (current?.frontmatter.id !== oldMemoryId) return false;
10547
- currentBefore = current;
10548
- const refIdsAtWrite = this.currentHistoricalIds();
10549
- updatedFm = canonicalizeEntityRefOption(
10550
- { ...current.frontmatter, status: "superseded", supersededBy: newMemoryId, supersededAt: now, updated: now },
10551
- refIdsAtWrite
10552
- );
10553
- const fileContent = `${serializeFrontmatter(updatedFm)}
10638
+ const written = await this.withTombstoneBlockedMemoryPathLock(oldMemory.path, async (current) => {
10639
+ if (current?.frontmatter.id !== oldMemoryId) return false;
10640
+ if (current.frontmatter.supersededBy !== void 0 || inferMemoryStatus(current.frontmatter, toMemoryPathRel(this.baseDir, current.path)) !== "active") {
10641
+ return false;
10642
+ }
10643
+ currentBefore = current;
10644
+ const refIdsAtWrite = this.currentHistoricalIds();
10645
+ updatedFm = canonicalizeEntityRefOption(
10646
+ { ...current.frontmatter, status: "superseded", supersededBy: newMemoryId, supersededAt: now, updated: now },
10647
+ refIdsAtWrite
10648
+ );
10649
+ const fileContent = `${serializeFrontmatter(updatedFm)}
10554
10650
 
10555
10651
  ${current.content}
10556
10652
  `;
10557
- await this.writeTombstoneBlockedFrontmatter(current, fileContent, updatedFm);
10558
- if (typeof current.frontmatter.entityRef === "string") {
10559
- await this.entityRefRepair.repair(
10560
- current.path,
10561
- updatedFm,
10562
- current.frontmatter.entityRef,
10563
- refIdsAtWrite,
10564
- current.content,
10565
- { onFailRestore: current }
10566
- );
10567
- }
10568
- return true;
10569
- });
10570
- if (!written) return false;
10571
- this.bumpMemoryCorpusVersion();
10572
- await this.appendGeneratedMemoryLifecycleEventFailOpen("storage.supersedeMemory", {
10653
+ await this.writeTombstoneBlockedFrontmatter(current, fileContent, updatedFm);
10654
+ if (typeof current.frontmatter.entityRef === "string") {
10655
+ await this.entityRefRepair.repair(
10656
+ current.path,
10657
+ updatedFm,
10658
+ current.frontmatter.entityRef,
10659
+ refIdsAtWrite,
10660
+ current.content,
10661
+ { onFailRestore: current }
10662
+ );
10663
+ }
10664
+ return true;
10665
+ }).catch((err) => {
10666
+ log.error(`failed to supersede memory ${oldMemoryId}:`, err);
10667
+ return false;
10668
+ });
10669
+ if (!written) return false;
10670
+ await runSupersessionSideEffects({
10671
+ oldMemoryId,
10672
+ newMemoryId,
10673
+ reason,
10674
+ now,
10675
+ currentBefore,
10676
+ updatedFm,
10677
+ citationTemplate: this.citationTemplate,
10678
+ isColdOrArchiveTierPath: (memoryPath) => this.isColdOrArchiveTierPath(memoryPath),
10679
+ invalidateColdMemoriesCache: () => this.invalidateColdMemoriesCache(),
10680
+ bumpMemoryCorpusVersion: () => this.bumpMemoryCorpusVersion(),
10681
+ appendLifecycleEvent: () => this.appendGeneratedMemoryLifecycleEventFailOpen("storage.supersedeMemory", {
10573
10682
  memoryId: oldMemoryId,
10574
10683
  eventType: "superseded",
10575
10684
  timestamp: now,
@@ -10578,44 +10687,12 @@ ${current.content}
10578
10687
  before: this.summarizeLifecycleState(currentBefore.frontmatter, currentBefore.path),
10579
10688
  after: this.summarizeLifecycleState(updatedFm, currentBefore.path),
10580
10689
  relatedMemoryIds: [newMemoryId]
10581
- });
10582
- this.bumpMemoryStatusVersion();
10583
- log.debug(`superseded memory ${oldMemoryId} by ${newMemoryId}: ${reason}`);
10584
- if (currentBefore.frontmatter.category === "fact") {
10585
- for (const input of buildRetiredFactTombstoneInputs(
10586
- {
10587
- id: oldMemoryId,
10588
- content: stripCitationForTemplate(currentBefore.content, this.citationTemplate),
10589
- contentHash: currentBefore.frontmatter.contentHash,
10590
- entityRef: updatedFm.entityRef,
10591
- structuredAttributes: currentBefore.frontmatter.structuredAttributes
10592
- },
10593
- {
10594
- reason: "contradiction_resolution",
10595
- createdBy: "contradiction_resolution",
10596
- createdAt: now,
10597
- supersessionKeysForFact
10598
- }
10599
- )) {
10600
- await this.appendTombstone(input);
10601
- }
10602
- }
10603
- const auditBody = `Superseded: ${currentBefore.content}
10604
-
10605
- Reason: ${reason}`;
10606
- const auditInput = {
10607
- content: auditBody,
10608
- category: "correction",
10609
- confidence: 1,
10610
- tags: ["supersession", "auto-resolved"]
10611
- };
10612
- const auditEnvelope = composeMemoryEnvelope(auditInput, { source: "contradiction-detection" });
10613
- await this.writeSealedMemory(auditEnvelope, { lineage: [oldMemoryId, newMemoryId] });
10614
- return true;
10615
- } catch (err) {
10616
- log.error(`failed to supersede memory ${oldMemoryId}:`, err);
10617
- return false;
10618
- }
10690
+ }),
10691
+ bumpMemoryStatusVersion: () => this.bumpMemoryStatusVersion(),
10692
+ appendTombstone: (input) => this.appendTombstone(input),
10693
+ writeSealedMemory: (envelope, extras) => this.writeSealedMemory(envelope, extras)
10694
+ });
10695
+ return true;
10619
10696
  }
10620
10697
  // ---------------------------------------------------------------------------
10621
10698
  // Memory Summarization (Phase 4A)
@@ -10850,4 +10927,4 @@ export {
10850
10927
  isValidBufferSurpriseEvent,
10851
10928
  StorageManager3 as StorageManager
10852
10929
  };
10853
- //# sourceMappingURL=chunk-BOFVT6P3.js.map
10930
+ //# sourceMappingURL=chunk-VBHPOWBJ.js.map