@remnic/core 9.52.2 → 9.54.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (429) hide show
  1. package/dist/access-admin-ops-surface.d.ts +11 -11
  2. package/dist/access-admin-ops-surface.js +22 -22
  3. package/dist/access-authorization-probe.d.ts +11 -11
  4. package/dist/access-authorization-probe.js +23 -23
  5. package/dist/access-boundary.d.ts +11 -11
  6. package/dist/access-boundary.js +22 -22
  7. package/dist/access-cli.js +55 -55
  8. package/dist/access-coding-context-resolution.d.ts +1 -1
  9. package/dist/access-extraction-force-flush.d.ts +11 -11
  10. package/dist/access-extraction-force-flush.js +22 -22
  11. package/dist/access-health-types.d.ts +1 -1
  12. package/dist/access-http-lcm-compaction.d.ts +11 -11
  13. package/dist/access-http-lifecycle-flush.d.ts +11 -11
  14. package/dist/access-http-offline-stream.d.ts +11 -11
  15. package/dist/access-http-query.js +22 -22
  16. package/dist/access-http.d.ts +11 -11
  17. package/dist/access-http.js +29 -29
  18. package/dist/access-identity-continuity-surface.d.ts +9 -9
  19. package/dist/access-identity-continuity-surface.js +22 -22
  20. package/dist/access-lcm-surface.d.ts +11 -11
  21. package/dist/access-lcm-surface.js +22 -22
  22. package/dist/access-mcp.d.ts +11 -11
  23. package/dist/access-mcp.js +27 -27
  24. package/dist/access-memory-search-fanout.d.ts +2 -2
  25. package/dist/{access-namespace-preflight-Ds6CGlCP.d.ts → access-namespace-preflight-C7n4tgWC.d.ts} +1 -1
  26. package/dist/access-namespace-preflight.d.ts +3 -3
  27. package/dist/access-namespace-preflight.js +22 -22
  28. package/dist/access-observe-write-surface.d.ts +11 -11
  29. package/dist/access-observe-write-surface.js +22 -22
  30. package/dist/access-offline-manifest.d.ts +9 -9
  31. package/dist/access-offline-manifest.js +8 -4
  32. package/dist/access-operations-batch.js +24 -24
  33. package/dist/access-operations.d.ts +14 -14
  34. package/dist/access-operations.js +26 -26
  35. package/dist/access-recall-concurrency.d.ts +11 -11
  36. package/dist/access-recall-concurrency.js +22 -22
  37. package/dist/access-recall-response.d.ts +11 -11
  38. package/dist/access-recall-response.js +22 -22
  39. package/dist/access-recall-surface.d.ts +11 -11
  40. package/dist/access-recall-surface.js +22 -22
  41. package/dist/access-schema.d.ts +88 -88
  42. package/dist/{access-service-Cbk3bNbD.d.ts → access-service-CXvbxLK-.d.ts} +7 -7
  43. package/dist/access-service-helpers.d.ts +11 -11
  44. package/dist/access-service.d.ts +11 -11
  45. package/dist/access-service.js +22 -22
  46. package/dist/access-surface-catalog.d.ts +11 -11
  47. package/dist/access-wearables-meetings-surface.d.ts +3 -3
  48. package/dist/action-confidence.d.ts +1 -1
  49. package/dist/active-memory-bridge.d.ts +1 -1
  50. package/dist/active-recall.d.ts +1 -1
  51. package/dist/active-recall.js +5 -5
  52. package/dist/ambient-provenance.d.ts +1 -1
  53. package/dist/artifact-search.d.ts +1 -1
  54. package/dist/{auto-sync-QFQGOEO2.js → auto-sync-TDHLZPVP.js} +7 -7
  55. package/dist/behavior-learner.d.ts +1 -1
  56. package/dist/behavior-signals.d.ts +1 -1
  57. package/dist/bootstrap.d.ts +9 -9
  58. package/dist/briefing.d.ts +2 -2
  59. package/dist/briefing.js +12 -12
  60. package/dist/buffer-surprise-report.d.ts +1 -1
  61. package/dist/buffer-turn-helpers.d.ts +1 -1
  62. package/dist/buffer.d.ts +2 -2
  63. package/dist/bulk-import/index.d.ts +3 -3
  64. package/dist/calibration.d.ts +1 -1
  65. package/dist/capabilities.d.ts +1 -1
  66. package/dist/{catalog-D3B4RDy1.d.ts → catalog-BOOxl-I2.d.ts} +1 -1
  67. package/dist/causal-behavior.d.ts +1 -1
  68. package/dist/causal-consolidation.d.ts +1 -1
  69. package/dist/causal-consolidation.js +13 -13
  70. package/dist/causal-trajectory-graph.d.ts +1 -1
  71. package/dist/{chunk-MLXZD4WM.js → chunk-2GFK22OZ.js} +2 -2
  72. package/dist/{chunk-RANKJI5T.js → chunk-3JLPGJ43.js} +2 -2
  73. package/dist/{chunk-O5FFBO2M.js → chunk-47P3RYZP.js} +70 -8
  74. package/dist/{chunk-O5FFBO2M.js.map → chunk-47P3RYZP.js.map} +1 -1
  75. package/dist/{chunk-X7XEDOSL.js → chunk-4IIFL7GC.js} +8 -8
  76. package/dist/chunk-5FVVY2EB.js +27 -0
  77. package/dist/chunk-5FVVY2EB.js.map +1 -0
  78. package/dist/{chunk-GXSOUIA4.js → chunk-5WQMORU5.js} +4 -4
  79. package/dist/{chunk-J272WKX2.js → chunk-6HPHEFXT.js} +2 -2
  80. package/dist/{chunk-B6LZ4IBH.js → chunk-6LAPLZOS.js} +2 -2
  81. package/dist/{chunk-WD5B5AIE.js → chunk-6R4G7N4S.js} +118 -173
  82. package/dist/chunk-6R4G7N4S.js.map +1 -0
  83. package/dist/{chunk-VXCNQYTC.js → chunk-APPFNGX6.js} +2 -2
  84. package/dist/{chunk-GXFSQ6SD.js → chunk-C4ZNGVK3.js} +2 -2
  85. package/dist/{chunk-JSEJH2YQ.js → chunk-CGVHPCP2.js} +2 -2
  86. package/dist/{chunk-BQIFZ2MP.js → chunk-CX5SW2EW.js} +41 -24
  87. package/dist/chunk-CX5SW2EW.js.map +1 -0
  88. package/dist/{chunk-RMHMUUBW.js → chunk-CYF6WVE7.js} +105 -49
  89. package/dist/{chunk-RMHMUUBW.js.map → chunk-CYF6WVE7.js.map} +1 -1
  90. package/dist/{chunk-TEMSWHQD.js → chunk-DZD576ZU.js} +5 -5
  91. package/dist/{chunk-AMTEYNYK.js → chunk-EVWWT3KE.js} +4 -4
  92. package/dist/{chunk-P2KBDJJ6.js → chunk-G2LUMAUF.js} +4 -3
  93. package/dist/{chunk-P2KBDJJ6.js.map → chunk-G2LUMAUF.js.map} +1 -1
  94. package/dist/{chunk-AXIDQG5A.js → chunk-G4T7L557.js} +5 -5
  95. package/dist/{chunk-7M6NYQWB.js → chunk-G7Z6EENO.js} +4 -4
  96. package/dist/{chunk-IARXXZU4.js → chunk-HOIRB77A.js} +99 -20
  97. package/dist/chunk-HOIRB77A.js.map +1 -0
  98. package/dist/{chunk-NDAH7BJ5.js → chunk-HVP33QVW.js} +103 -6
  99. package/dist/chunk-HVP33QVW.js.map +1 -0
  100. package/dist/{chunk-YXKVLYXU.js → chunk-HWRD23DW.js} +2 -2
  101. package/dist/{chunk-SOEN6KCF.js → chunk-IBKR2TFR.js} +2 -2
  102. package/dist/{chunk-R3DJVOSM.js → chunk-JDSVLVCG.js} +8 -1
  103. package/dist/chunk-JDSVLVCG.js.map +1 -0
  104. package/dist/{chunk-F4EU6VUC.js → chunk-JDZPNCMA.js} +2 -2
  105. package/dist/{chunk-D5YOZ66N.js → chunk-JV5YUBIZ.js} +20 -20
  106. package/dist/{chunk-DLG5V6ND.js → chunk-K4QS7LXU.js} +4 -7
  107. package/dist/chunk-K4QS7LXU.js.map +1 -0
  108. package/dist/{chunk-BAKXNQ3C.js → chunk-KRTY3ENI.js} +2 -2
  109. package/dist/{chunk-NK5RGJ65.js → chunk-L4DLLKPN.js} +2 -2
  110. package/dist/{chunk-VFSAWRMZ.js → chunk-LJS7KUPV.js} +2 -2
  111. package/dist/{chunk-JJRVPWFY.js → chunk-MLPTFODV.js} +166 -37
  112. package/dist/chunk-MLPTFODV.js.map +1 -0
  113. package/dist/{chunk-NOEMGE56.js → chunk-NH5IR2WM.js} +2 -2
  114. package/dist/{chunk-5V6IXHPI.js → chunk-NSVDUN76.js} +2 -2
  115. package/dist/{chunk-W7Y5JDVB.js → chunk-PDDTI7IC.js} +4 -4
  116. package/dist/{chunk-QINJITDS.js → chunk-PX2LSHYM.js} +2 -2
  117. package/dist/{chunk-HDIUYMSB.js → chunk-QWGE2PUH.js} +6 -6
  118. package/dist/{chunk-X57M2Q4I.js → chunk-RDJRFDJY.js} +3 -3
  119. package/dist/{chunk-RYLEDKQ2.js → chunk-RUMNY5DT.js} +3 -3
  120. package/dist/{chunk-BKIFTXHR.js → chunk-RZ4XGKOJ.js} +2 -2
  121. package/dist/{chunk-66SE3BNH.js → chunk-SUPEYLH2.js} +2 -2
  122. package/dist/{chunk-BF6SXNQJ.js → chunk-T2JHZWH6.js} +20 -20
  123. package/dist/{chunk-VHFXP27N.js → chunk-THPPCISA.js} +60 -23
  124. package/dist/chunk-THPPCISA.js.map +1 -0
  125. package/dist/{chunk-QPOHMO6M.js → chunk-UES4BHA2.js} +2 -2
  126. package/dist/{chunk-XAPMEU3K.js → chunk-UU7TRFNE.js} +2 -2
  127. package/dist/{chunk-QBSFOKY6.js → chunk-VOELBUS4.js} +4 -4
  128. package/dist/{chunk-2LY6GIIE.js → chunk-WDBX6VER.js} +2 -2
  129. package/dist/{chunk-BMEYMKWX.js → chunk-WM65LU67.js} +2 -2
  130. package/dist/{chunk-WLRD2TXF.js → chunk-WOPA3SGI.js} +4 -4
  131. package/dist/{chunk-5UZ6UCOZ.js → chunk-XUAMCLY4.js} +3 -3
  132. package/dist/{chunk-7HXZJAID.js → chunk-YGLY6QFV.js} +3 -3
  133. package/dist/{chunk-2OIQDTDC.js → chunk-ZPJ4QSGP.js} +2 -2
  134. package/dist/{chunk-3OY7KXHM.js → chunk-ZYLC7NFO.js} +3 -3
  135. package/dist/{cli-DMAFI0qt.d.ts → cli-DVUFIa5E.d.ts} +5 -5
  136. package/dist/cli.d.ts +13 -13
  137. package/dist/cli.js +42 -42
  138. package/dist/coding/pre-action-gate.d.ts +1 -1
  139. package/dist/compounding/engine.d.ts +2 -2
  140. package/dist/compounding/engine.js +13 -13
  141. package/dist/compounding/preference-consolidator.d.ts +1 -1
  142. package/dist/compression-optimizer.d.ts +1 -1
  143. package/dist/config.d.ts +1 -1
  144. package/dist/config.js +5 -5
  145. package/dist/connectors/codex-materialize-runner.d.ts +1 -1
  146. package/dist/connectors/codex-materialize-runner.js +12 -12
  147. package/dist/connectors/codex-materialize.d.ts +1 -1
  148. package/dist/connectors/index.d.ts +1 -1
  149. package/dist/connectors/index.js +12 -12
  150. package/dist/consolidation-provenance-check.d.ts +2 -2
  151. package/dist/consolidation-undo.d.ts +2 -2
  152. package/dist/content-hash.d.ts +12 -2
  153. package/dist/content-hash.js +9 -3
  154. package/dist/contradiction/index.d.ts +2 -2
  155. package/dist/contradiction/index.js +3 -3
  156. package/dist/converge-config.d.ts +1 -1
  157. package/dist/convergence-refresh.d.ts +2 -2
  158. package/dist/convergence-refresh.js +14 -14
  159. package/dist/conversation-index/backend.d.ts +1 -1
  160. package/dist/conversation-index/chunker.d.ts +1 -1
  161. package/dist/conversation-index/faiss-adapter.d.ts +1 -1
  162. package/dist/conversation-index/indexer.d.ts +1 -1
  163. package/dist/conversation-index/search.d.ts +1 -1
  164. package/dist/corpus-watermark.d.ts +1 -1
  165. package/dist/corpus-watermark.js +14 -14
  166. package/dist/day-summary.d.ts +1 -1
  167. package/dist/delinearize.d.ts +1 -1
  168. package/dist/dependency-propagation-config.d.ts +1 -1
  169. package/dist/{dependency-propagation-delivery-D63r24pH.d.ts → dependency-propagation-delivery-XzF76C9n.d.ts} +1 -1
  170. package/dist/direct-answer-wiring.d.ts +1 -1
  171. package/dist/direct-answer.d.ts +1 -1
  172. package/dist/embedding-fallback.d.ts +1 -1
  173. package/dist/enrichment/index.d.ts +1 -1
  174. package/dist/entity-retrieval.d.ts +2 -2
  175. package/dist/entity-retrieval.js +12 -12
  176. package/dist/entity-schema.d.ts +1 -1
  177. package/dist/explicit-capture.d.ts +9 -9
  178. package/dist/explicit-capture.js +8 -8
  179. package/dist/external-wiki-access.d.ts +11 -11
  180. package/dist/external-wiki-access.js +23 -23
  181. package/dist/external-wiki-collection-registration.d.ts +1 -1
  182. package/dist/external-wiki-collection.d.ts +1 -1
  183. package/dist/external-wiki-mcp-tools.d.ts +11 -11
  184. package/dist/extraction-error-classification.d.ts +1 -1
  185. package/dist/extraction-faithfulness.d.ts +1 -1
  186. package/dist/extraction-judge-telemetry.d.ts +1 -1
  187. package/dist/extraction-judge-training.d.ts +1 -1
  188. package/dist/extraction-judge.d.ts +1 -1
  189. package/dist/extraction-liveness.d.ts +1 -1
  190. package/dist/extraction-normalization.d.ts +1 -1
  191. package/dist/extraction-normalization.js +2 -2
  192. package/dist/extraction-prompt.d.ts +1 -1
  193. package/dist/extraction-source-grounding-rules.d.ts +1 -1
  194. package/dist/extraction-source-grounding.d.ts +1 -1
  195. package/dist/extraction-source-grounding.js +3 -3
  196. package/dist/extraction.d.ts +1 -1
  197. package/dist/extraction.js +16 -16
  198. package/dist/fallback-llm.d.ts +1 -1
  199. package/dist/{forget-HDS4N6CG.js → forget-EHGGJZLX.js} +3 -2
  200. package/dist/{forget-HDS4N6CG.js.map → forget-EHGGJZLX.js.map} +1 -1
  201. package/dist/graph-dashboard-diff.d.ts +1 -1
  202. package/dist/graph-dashboard-key.d.ts +1 -1
  203. package/dist/graph-dashboard-parser.d.ts +1 -1
  204. package/dist/graph-edge-reinforcement.d.ts +1 -1
  205. package/dist/graph-path-reconstruction.d.ts +1 -1
  206. package/dist/graph-path-scoring.d.ts +1 -1
  207. package/dist/graph-snapshot.d.ts +1 -1
  208. package/dist/graph.d.ts +1 -1
  209. package/dist/harmonic-construction.js +2 -2
  210. package/dist/harmonic-retrieval.js +4 -4
  211. package/dist/importance.d.ts +1 -1
  212. package/dist/importers/index.d.ts +1 -1
  213. package/dist/in-flight-reads.d.ts +1 -1
  214. package/dist/index.d.ts +777 -705
  215. package/dist/index.js +77 -67
  216. package/dist/intent.d.ts +1 -1
  217. package/dist/lcm/engine.d.ts +1 -1
  218. package/dist/lcm/index.d.ts +1 -1
  219. package/dist/lcm/tools.d.ts +1 -1
  220. package/dist/lifecycle.d.ts +1 -1
  221. package/dist/live-connectors-runner.d.ts +1 -1
  222. package/dist/local-llm.d.ts +1 -1
  223. package/dist/local-model-endpoint.d.ts +1 -1
  224. package/dist/maintenance/memory-governance.d.ts +1 -1
  225. package/dist/maintenance/memory-governance.js +12 -12
  226. package/dist/maintenance/rebuild-memory-lifecycle-ledger.d.ts +2 -2
  227. package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +12 -12
  228. package/dist/maintenance/rebuild-memory-projection.d.ts +2 -2
  229. package/dist/maintenance/rebuild-memory-projection.js +13 -13
  230. package/dist/{maintenance-kBII2qUI.d.ts → maintenance-BJzNIKBE.d.ts} +3 -3
  231. package/dist/mcp-memory-inspector-app.d.ts +11 -11
  232. package/dist/memory-action-policy.d.ts +1 -1
  233. package/dist/memory-cache.d.ts +1 -1
  234. package/dist/memory-lifecycle-ledger-utils.d.ts +1 -1
  235. package/dist/memory-projection-store.d.ts +1 -1
  236. package/dist/memory-provenance.d.ts +1 -1
  237. package/dist/memory-snapshot.d.ts +1 -1
  238. package/dist/memory-worth-outcomes.d.ts +2 -2
  239. package/dist/models-json.d.ts +1 -1
  240. package/dist/namespaces/migrate.d.ts +3 -3
  241. package/dist/namespaces/migrate.js +13 -13
  242. package/dist/namespaces/principal.d.ts +1 -1
  243. package/dist/namespaces/search.d.ts +1 -1
  244. package/dist/namespaces/storage.d.ts +3 -3
  245. package/dist/namespaces/storage.js +12 -12
  246. package/dist/native-knowledge.d.ts +1 -1
  247. package/dist/offline-sync-impression-drain.d.ts +1 -1
  248. package/dist/operator-doctor-corpus.d.ts +1 -1
  249. package/dist/operator-doctor-corpus.js +15 -15
  250. package/dist/operator-doctor-replica.d.ts +1 -1
  251. package/dist/operator-toolkit.d.ts +3 -3
  252. package/dist/operator-toolkit.js +21 -21
  253. package/dist/orchestration/compression-guideline-coordinator.d.ts +2 -2
  254. package/dist/orchestration/maintenance.d.ts +4 -4
  255. package/dist/orchestration/maintenance.js +17 -17
  256. package/dist/{orchestrator-DHy5LtTy.d.ts → orchestrator-BiXgBJBQ.d.ts} +8 -8
  257. package/dist/orchestrator.d.ts +9 -9
  258. package/dist/orchestrator.js +55 -55
  259. package/dist/patterns-cli.d.ts +1 -1
  260. package/dist/{pipeline-D21Rs6gW.d.ts → pipeline-sz_dcuLg.d.ts} +1 -1
  261. package/dist/policy-runtime.d.ts +1 -1
  262. package/dist/proactive-contention.d.ts +1 -1
  263. package/dist/provenance.d.ts +1 -1
  264. package/dist/provenance.js +2 -2
  265. package/dist/{qmd-Dhle1P4X.d.ts → qmd-eAWObK4M.d.ts} +1 -1
  266. package/dist/qmd-preflight.d.ts +2 -2
  267. package/dist/qmd-recall-cache.d.ts +1 -1
  268. package/dist/qmd.d.ts +2 -2
  269. package/dist/recall-concurrency-config.d.ts +1 -1
  270. package/dist/recall-disclosure-escalation.d.ts +1 -1
  271. package/dist/recall-explain-renderer.d.ts +1 -1
  272. package/dist/recall-memory-map.d.ts +1 -1
  273. package/dist/recall-planner-llm.d.ts +1 -1
  274. package/dist/recall-state.d.ts +1 -1
  275. package/dist/recall-tag-filter.d.ts +1 -1
  276. package/dist/recall-timings.d.ts +1 -1
  277. package/dist/recall-xray-cli.d.ts +1 -1
  278. package/dist/recall-xray-renderer.d.ts +1 -1
  279. package/dist/recall-xray.d.ts +1 -1
  280. package/dist/reconcile/cursor.d.ts +1 -1
  281. package/dist/reconcile/manifest.d.ts +4 -2
  282. package/dist/reconcile/manifest.js +7 -3
  283. package/dist/reconcile/plan.d.ts +1 -1
  284. package/dist/replay/normalizers/chatgpt.d.ts +1 -1
  285. package/dist/replay/normalizers/claude.d.ts +1 -1
  286. package/dist/replay/normalizers/openclaw.d.ts +1 -1
  287. package/dist/replay/normalizers/shared.d.ts +1 -1
  288. package/dist/replay/runner.d.ts +1 -1
  289. package/dist/replay/types.d.ts +1 -1
  290. package/dist/replica-divergence.d.ts +1 -1
  291. package/dist/replica-peers-config.d.ts +1 -1
  292. package/dist/{resolution-MDPNOEG6.js → resolution-MMOD5WC4.js} +4 -4
  293. package/dist/resolve-auth-token.d.ts +1 -1
  294. package/dist/resume-bundles.js +6 -6
  295. package/dist/retrieval-agents.d.ts +2 -2
  296. package/dist/retrieval-tiers.d.ts +1 -1
  297. package/dist/routing/engine.d.ts +1 -1
  298. package/dist/routing/store.d.ts +1 -1
  299. package/dist/salvage-envelope.d.ts +1 -1
  300. package/dist/salvage-envelope.js +3 -3
  301. package/dist/schemas.d.ts +138 -138
  302. package/dist/{scope-profiles-NzGPDXLn.d.ts → scope-profiles-BBQsXuyj.d.ts} +1 -1
  303. package/dist/search/embed-helper.d.ts +1 -1
  304. package/dist/search/factory.d.ts +1 -1
  305. package/dist/search/index.d.ts +1 -1
  306. package/dist/search/lancedb-backend.d.ts +1 -1
  307. package/dist/search/meilisearch-backend.d.ts +1 -1
  308. package/dist/search/noop-backend.d.ts +1 -1
  309. package/dist/search/orama-backend.d.ts +1 -1
  310. package/dist/search/port.d.ts +1 -1
  311. package/dist/search/remote-backend.d.ts +1 -1
  312. package/dist/{semantic-consolidation-DLDKvyy5.d.ts → semantic-consolidation-HD8RkzVA.d.ts} +1 -1
  313. package/dist/semantic-consolidation.d.ts +2 -2
  314. package/dist/semantic-consolidation.js +13 -13
  315. package/dist/semantic-rule-promotion.js +12 -12
  316. package/dist/semantic-rule-verifier.d.ts +1 -1
  317. package/dist/semantic-rule-verifier.js +12 -12
  318. package/dist/{service-PT2_z7xm.d.ts → service-DIrtHHEg.d.ts} +2 -2
  319. package/dist/session-observer-bands.d.ts +1 -1
  320. package/dist/session-observer-state.d.ts +1 -1
  321. package/dist/shared-context/manager.d.ts +9 -9
  322. package/dist/signal.d.ts +1 -1
  323. package/dist/source-agent-qualifier.d.ts +1 -1
  324. package/dist/source-agent-qualifier.js +14 -14
  325. package/dist/{storage-BmVudhk4.d.ts → storage-DqCzXi56.d.ts} +37 -33
  326. package/dist/storage.d.ts +2 -2
  327. package/dist/storage.js +14 -14
  328. package/dist/structured-attributes.d.ts +3 -1
  329. package/dist/structured-attributes.js +3 -1
  330. package/dist/summarizer.d.ts +1 -1
  331. package/dist/summary-snapshot.d.ts +1 -1
  332. package/dist/temporal-supersession.d.ts +2 -2
  333. package/dist/temporal-timeline-recall.d.ts +1 -1
  334. package/dist/temporal-validity.d.ts +1 -1
  335. package/dist/threading.d.ts +1 -1
  336. package/dist/tier-migration.d.ts +2 -2
  337. package/dist/tier-routing.d.ts +1 -1
  338. package/dist/topics.d.ts +1 -1
  339. package/dist/transcript.d.ts +1 -1
  340. package/dist/transfer/types.d.ts +66 -66
  341. package/dist/trust-score-stage.d.ts +1 -1
  342. package/dist/trust-score.d.ts +1 -1
  343. package/dist/{types-CkiDUorT.d.ts → types-d_j4vC6N.d.ts} +26 -1
  344. package/dist/types.d.ts +1 -1
  345. package/dist/utility-runtime.d.ts +1 -1
  346. package/dist/verified-recall.js +12 -12
  347. package/dist/write-envelope.d.ts +1 -1
  348. package/dist/write-envelope.js +2 -2
  349. package/package.json +2 -2
  350. package/src/access-offline-manifest.ts +1 -0
  351. package/src/access-service-offline-file-content.test.ts +1 -0
  352. package/src/content-hash.ts +34 -1
  353. package/src/dedup/index.test.ts +56 -38
  354. package/src/dedup/index.ts +85 -38
  355. package/src/lifecycle/tombstones.test.ts +763 -16
  356. package/src/lifecycle/tombstones.ts +217 -50
  357. package/src/reconcile/manifest.test.ts +158 -1
  358. package/src/reconcile/manifest.ts +76 -22
  359. package/src/storage/content-hash-index.ts +56 -40
  360. package/src/storage/entity-ref-repair.ts +3 -3
  361. package/src/storage/memory-read-store.ts +9 -0
  362. package/src/storage/tombstone-blocked-capture-index.ts +4 -9
  363. package/src/storage-contract/content-hash.test.ts +13 -0
  364. package/src/storage-fact-hash-index-defer.test.ts +1 -1
  365. package/src/storage.ts +107 -93
  366. package/src/structured-attributes.ts +11 -0
  367. package/src/wearables/cleanup.test.ts +71 -0
  368. package/src/wearables/cleanup.ts +163 -16
  369. package/src/wearables/config.test.ts +62 -0
  370. package/src/wearables/config.ts +99 -5
  371. package/src/wearables/index.ts +10 -0
  372. package/src/wearables/pipeline.test.ts +36 -0
  373. package/src/wearables/pipeline.ts +18 -3
  374. package/src/wearables/redaction.test.ts +156 -0
  375. package/src/wearables/redaction.ts +102 -10
  376. package/src/wearables/text-language.ts +146 -0
  377. package/src/wearables/types.ts +26 -0
  378. package/dist/chunk-BQIFZ2MP.js.map +0 -1
  379. package/dist/chunk-DLG5V6ND.js.map +0 -1
  380. package/dist/chunk-IARXXZU4.js.map +0 -1
  381. package/dist/chunk-JJRVPWFY.js.map +0 -1
  382. package/dist/chunk-NDAH7BJ5.js.map +0 -1
  383. package/dist/chunk-R3DJVOSM.js.map +0 -1
  384. package/dist/chunk-VHFXP27N.js.map +0 -1
  385. package/dist/chunk-W5H6ZRPT.js +0 -14
  386. package/dist/chunk-W5H6ZRPT.js.map +0 -1
  387. package/dist/chunk-WD5B5AIE.js.map +0 -1
  388. /package/dist/{auto-sync-QFQGOEO2.js.map → auto-sync-TDHLZPVP.js.map} +0 -0
  389. /package/dist/{chunk-MLXZD4WM.js.map → chunk-2GFK22OZ.js.map} +0 -0
  390. /package/dist/{chunk-RANKJI5T.js.map → chunk-3JLPGJ43.js.map} +0 -0
  391. /package/dist/{chunk-X7XEDOSL.js.map → chunk-4IIFL7GC.js.map} +0 -0
  392. /package/dist/{chunk-GXSOUIA4.js.map → chunk-5WQMORU5.js.map} +0 -0
  393. /package/dist/{chunk-J272WKX2.js.map → chunk-6HPHEFXT.js.map} +0 -0
  394. /package/dist/{chunk-B6LZ4IBH.js.map → chunk-6LAPLZOS.js.map} +0 -0
  395. /package/dist/{chunk-VXCNQYTC.js.map → chunk-APPFNGX6.js.map} +0 -0
  396. /package/dist/{chunk-GXFSQ6SD.js.map → chunk-C4ZNGVK3.js.map} +0 -0
  397. /package/dist/{chunk-JSEJH2YQ.js.map → chunk-CGVHPCP2.js.map} +0 -0
  398. /package/dist/{chunk-TEMSWHQD.js.map → chunk-DZD576ZU.js.map} +0 -0
  399. /package/dist/{chunk-AMTEYNYK.js.map → chunk-EVWWT3KE.js.map} +0 -0
  400. /package/dist/{chunk-AXIDQG5A.js.map → chunk-G4T7L557.js.map} +0 -0
  401. /package/dist/{chunk-7M6NYQWB.js.map → chunk-G7Z6EENO.js.map} +0 -0
  402. /package/dist/{chunk-YXKVLYXU.js.map → chunk-HWRD23DW.js.map} +0 -0
  403. /package/dist/{chunk-SOEN6KCF.js.map → chunk-IBKR2TFR.js.map} +0 -0
  404. /package/dist/{chunk-F4EU6VUC.js.map → chunk-JDZPNCMA.js.map} +0 -0
  405. /package/dist/{chunk-D5YOZ66N.js.map → chunk-JV5YUBIZ.js.map} +0 -0
  406. /package/dist/{chunk-BAKXNQ3C.js.map → chunk-KRTY3ENI.js.map} +0 -0
  407. /package/dist/{chunk-NK5RGJ65.js.map → chunk-L4DLLKPN.js.map} +0 -0
  408. /package/dist/{chunk-VFSAWRMZ.js.map → chunk-LJS7KUPV.js.map} +0 -0
  409. /package/dist/{chunk-NOEMGE56.js.map → chunk-NH5IR2WM.js.map} +0 -0
  410. /package/dist/{chunk-5V6IXHPI.js.map → chunk-NSVDUN76.js.map} +0 -0
  411. /package/dist/{chunk-W7Y5JDVB.js.map → chunk-PDDTI7IC.js.map} +0 -0
  412. /package/dist/{chunk-QINJITDS.js.map → chunk-PX2LSHYM.js.map} +0 -0
  413. /package/dist/{chunk-HDIUYMSB.js.map → chunk-QWGE2PUH.js.map} +0 -0
  414. /package/dist/{chunk-X57M2Q4I.js.map → chunk-RDJRFDJY.js.map} +0 -0
  415. /package/dist/{chunk-RYLEDKQ2.js.map → chunk-RUMNY5DT.js.map} +0 -0
  416. /package/dist/{chunk-BKIFTXHR.js.map → chunk-RZ4XGKOJ.js.map} +0 -0
  417. /package/dist/{chunk-66SE3BNH.js.map → chunk-SUPEYLH2.js.map} +0 -0
  418. /package/dist/{chunk-BF6SXNQJ.js.map → chunk-T2JHZWH6.js.map} +0 -0
  419. /package/dist/{chunk-QPOHMO6M.js.map → chunk-UES4BHA2.js.map} +0 -0
  420. /package/dist/{chunk-XAPMEU3K.js.map → chunk-UU7TRFNE.js.map} +0 -0
  421. /package/dist/{chunk-QBSFOKY6.js.map → chunk-VOELBUS4.js.map} +0 -0
  422. /package/dist/{chunk-2LY6GIIE.js.map → chunk-WDBX6VER.js.map} +0 -0
  423. /package/dist/{chunk-BMEYMKWX.js.map → chunk-WM65LU67.js.map} +0 -0
  424. /package/dist/{chunk-WLRD2TXF.js.map → chunk-WOPA3SGI.js.map} +0 -0
  425. /package/dist/{chunk-5UZ6UCOZ.js.map → chunk-XUAMCLY4.js.map} +0 -0
  426. /package/dist/{chunk-7HXZJAID.js.map → chunk-YGLY6QFV.js.map} +0 -0
  427. /package/dist/{chunk-2OIQDTDC.js.map → chunk-ZPJ4QSGP.js.map} +0 -0
  428. /package/dist/{chunk-3OY7KXHM.js.map → chunk-ZYLC7NFO.js.map} +0 -0
  429. /package/dist/{resolution-MDPNOEG6.js.map → resolution-MMOD5WC4.js.map} +0 -0
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  ExtractionEngine,
3
3
  shouldEnableLocalExtractionThinking
4
- } from "./chunk-AXIDQG5A.js";
4
+ } from "./chunk-G4T7L557.js";
5
5
  import "./chunk-4RA3C3EV.js";
6
- import "./chunk-SOEN6KCF.js";
6
+ import "./chunk-IBKR2TFR.js";
7
7
  import "./chunk-WFLBP5GC.js";
8
8
  import "./chunk-54V4BZWP.js";
9
9
  import "./chunk-2CGLBUW3.js";
@@ -11,9 +11,9 @@ import "./chunk-WLZYGLJ4.js";
11
11
  import "./chunk-L6CQ7WIW.js";
12
12
  import "./chunk-WKDFJXW5.js";
13
13
  import "./chunk-JUXOTY6J.js";
14
- import "./chunk-AMTEYNYK.js";
14
+ import "./chunk-EVWWT3KE.js";
15
15
  import "./chunk-EEAMSNSG.js";
16
- import "./chunk-NK5RGJ65.js";
16
+ import "./chunk-L4DLLKPN.js";
17
17
  import "./chunk-4POAMKV6.js";
18
18
  import "./chunk-WAS4HV46.js";
19
19
  import {
@@ -31,14 +31,13 @@ import "./chunk-RZRUV6N2.js";
31
31
  import "./chunk-EMDLM3LW.js";
32
32
  import "./chunk-NLE6TSLG.js";
33
33
  import "./chunk-QDW3E4RD.js";
34
- import "./chunk-NOEMGE56.js";
34
+ import "./chunk-NH5IR2WM.js";
35
35
  import "./chunk-KSXJOC4F.js";
36
- import "./chunk-WD5B5AIE.js";
36
+ import "./chunk-6R4G7N4S.js";
37
37
  import "./chunk-UHVXE24Y.js";
38
- import "./chunk-JJRVPWFY.js";
38
+ import "./chunk-MLPTFODV.js";
39
39
  import "./chunk-SXIMQLGV.js";
40
40
  import "./chunk-S2V7RUCL.js";
41
- import "./chunk-J6A3CX5N.js";
42
41
  import "./chunk-UU3G6GUP.js";
43
42
  import "./chunk-SCU65EZI.js";
44
43
  import "./chunk-WRJVB3C2.js";
@@ -47,10 +46,9 @@ import "./chunk-DM2T26WE.js";
47
46
  import "./chunk-LDXUBPMO.js";
48
47
  import "./chunk-JYIJNNN3.js";
49
48
  import "./chunk-AAD2ZS6P.js";
50
- import "./chunk-DLG5V6ND.js";
51
- import "./chunk-5V6IXHPI.js";
49
+ import "./chunk-K4QS7LXU.js";
50
+ import "./chunk-NSVDUN76.js";
52
51
  import "./chunk-BT7NVCML.js";
53
- import "./chunk-R3DJVOSM.js";
54
52
  import "./chunk-YXZG5TVN.js";
55
53
  import "./chunk-5GINB5LC.js";
56
54
  import "./chunk-G7D6GZ5J.js";
@@ -76,12 +74,10 @@ import "./chunk-OD4FM2U7.js";
76
74
  import "./chunk-XMMESCPD.js";
77
75
  import "./chunk-42JKGUFJ.js";
78
76
  import "./chunk-K6MV3TRQ.js";
79
- import "./chunk-QBSFOKY6.js";
80
- import "./chunk-5GKPFL3S.js";
77
+ import "./chunk-VOELBUS4.js";
81
78
  import "./chunk-ZIKENA2C.js";
82
79
  import "./chunk-PQVCH2AE.js";
83
80
  import "./chunk-6MKAMLQL.js";
84
- import "./chunk-JAKIDQB2.js";
85
81
  import "./chunk-W5BIQOAJ.js";
86
82
  import "./chunk-Z7L72ZHL.js";
87
83
  import "./chunk-4O4TKIXQ.js";
@@ -90,17 +86,21 @@ import "./chunk-TBBDFYXW.js";
90
86
  import "./chunk-BJMBJZ2Y.js";
91
87
  import "./chunk-UKJAGEXH.js";
92
88
  import "./chunk-FP2373TW.js";
89
+ import "./chunk-J6A3CX5N.js";
93
90
  import "./chunk-7FGL6CGA.js";
94
91
  import "./chunk-EGGE52UU.js";
95
92
  import "./chunk-ZA53AZND.js";
96
93
  import "./chunk-GCASGYIO.js";
97
94
  import "./chunk-7RJUVTVF.js";
98
- import "./chunk-BQIFZ2MP.js";
95
+ import "./chunk-CX5SW2EW.js";
99
96
  import "./chunk-3CSX3ETE.js";
100
97
  import "./chunk-RL6NEVXT.js";
98
+ import "./chunk-JDSVLVCG.js";
101
99
  import "./chunk-FFAZ2XFU.js";
102
- import "./chunk-W5H6ZRPT.js";
100
+ import "./chunk-5FVVY2EB.js";
103
101
  import "./chunk-BGLY7EEM.js";
102
+ import "./chunk-5GKPFL3S.js";
103
+ import "./chunk-JAKIDQB2.js";
104
104
  import "./chunk-P7FMDTKL.js";
105
105
  import "./chunk-MZWSOLMT.js";
106
106
  import "./chunk-3GD2HFR6.js";
@@ -1,4 +1,4 @@
1
- import { G as GatewayConfig, A as AgentPersonaModelConfig, P as PluginConfig } from './types-CkiDUorT.js';
1
+ import { G as GatewayConfig, A as AgentPersonaModelConfig, P as PluginConfig } from './types-d_j4vC6N.js';
2
2
  import { GetRuntimeAuthForModelFn, ResolveApiKeyFn } from './resolve-provider-secret.js';
3
3
  import './message-parts/index.js';
4
4
  import './bounded-jsonl-state.js';
@@ -1,11 +1,12 @@
1
1
  import {
2
2
  buildRetiredFactTombstoneInputs
3
- } from "./chunk-JJRVPWFY.js";
3
+ } from "./chunk-MLPTFODV.js";
4
4
  import {
5
5
  supersessionKeysForFact
6
6
  } from "./chunk-5WITETWU.js";
7
7
  import "./chunk-6CIAGZ6X.js";
8
8
  import "./chunk-FFAZ2XFU.js";
9
+ import "./chunk-5FVVY2EB.js";
9
10
  import "./chunk-3WCASNQZ.js";
10
11
  import "./chunk-PZ5AY32C.js";
11
12
 
@@ -97,4 +98,4 @@ export {
97
98
  ForgetMemoryNotFoundError,
98
99
  forgetMemory
99
100
  };
100
- //# sourceMappingURL=forget-HDS4N6CG.js.map
101
+ //# sourceMappingURL=forget-EHGGJZLX.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/maintenance/forget.ts"],"sourcesContent":["/**\n * Operator-facing memory forgetting (issue #686 PR 4/6).\n *\n * `remnic forget <id>` marks a memory as forgotten — a soft-delete that:\n *\n * 1. Sets `status: \"forgotten\"`, `forgottenAt`, optional\n * `forgottenReason` in YAML frontmatter via the existing\n * `storage.writeMemoryFrontmatter` path (which logs the change\n * to the lifecycle ledger and invalidates caches).\n * 2. Returns a structured result describing what changed so the\n * CLI and downstream telemetry can render it.\n *\n * Memories with `status === \"forgotten\"` are excluded from recall,\n * browse, and entity attribution by the status filters that serve\n * active user context. A future maintenance cron will hard-delete\n * forgotten memories after a configurable retention window (default\n * 90 days) — for this PR the file stays on disk and the act is\n * reversible by editing the YAML directly.\n *\n * This module ships the pure helper; the CLI wires it in `cli.ts` as\n * a new `remnic forget` subcommand.\n */\n\nimport type { StorageManager } from \"../storage.js\";\nimport { buildRetiredFactTombstoneInputs } from \"../lifecycle/tombstones.js\";\nimport { supersessionKeysForFact } from \"../temporal-supersession.js\";\nimport type { MemoryFile } from \"../types.js\";\n\nexport interface ForgetMemoryRequest {\n /** Memory id (frontmatter `id`) to forget. */\n id: string;\n /** Optional human-readable reason. */\n reason?: string;\n /** Override the timestamp written to `forgottenAt`. Defaults to `new Date().toISOString()`. */\n now?: () => Date;\n}\n\nexport interface ForgetMemoryResult {\n /** Memory id that was forgotten. */\n id: string;\n /** Filesystem path of the forgotten memory. */\n path: string;\n /** Prior status before the forget call, for audit. */\n priorStatus: string;\n /** Timestamp written to `forgottenAt`. */\n forgottenAt: string;\n /** Reason captured (or empty string if none). */\n reason: string;\n}\n\nexport class ForgetMemoryNotFoundError extends Error {\n readonly code = \"memory_not_found\" as const;\n constructor(id: string) {\n super(`memory not found: ${id}`);\n this.name = \"ForgetMemoryNotFoundError\";\n }\n}\n\nexport class ForgetMemoryAlreadyForgottenError extends Error {\n readonly code = \"already_forgotten\" as const;\n constructor(id: string, forgottenAt: string) {\n super(`memory ${id} was already forgotten at ${forgottenAt}`);\n this.name = \"ForgetMemoryAlreadyForgottenError\";\n }\n}\n\n/**\n * Mark a memory as forgotten. Pure orchestration over storage —\n * caller supplies the storage instance and the request. Status\n * filters elsewhere in the codebase exclude `status: \"forgotten\"`\n * from recall/browse surfaces before they serve active user context.\n */\nexport async function forgetMemory(\n storage: StorageManager,\n request: ForgetMemoryRequest,\n): Promise<ForgetMemoryResult> {\n const id = typeof request.id === \"string\" ? request.id.trim() : \"\";\n if (id.length === 0) {\n throw new Error(\"forget: memory id is required and must be non-empty\");\n }\n const memory = await findMemoryById(storage, id);\n if (!memory) {\n throw new ForgetMemoryNotFoundError(id);\n }\n if (memory.frontmatter.status === \"forgotten\") {\n throw new ForgetMemoryAlreadyForgottenError(\n id,\n memory.frontmatter.forgottenAt ?? \"(unknown)\",\n );\n }\n const priorStatus =\n typeof memory.frontmatter.status === \"string\" ? memory.frontmatter.status : \"active\";\n const now = (request.now ?? (() => new Date()))();\n const forgottenAt = now.toISOString();\n const reason = typeof request.reason === \"string\" ? request.reason.trim() : \"\";\n await storage.writeMemoryFrontmatter(memory, {\n status: \"forgotten\",\n forgottenAt,\n forgottenReason: reason.length > 0 ? reason : undefined,\n updated: forgottenAt,\n }, {\n actor: \"remnic-forget\",\n reasonCode: \"operator_forget\",\n });\n // Issue #1579 thread OchiF: emit a LIVE tombstone at forget time so a\n // forgotten FACT cannot resurrect via re-extraction/import before an\n // operator runs `remnic doctor --rebuild-tombstones`. Without this, the\n // non-resurrection chokepoint in writeMemory has nothing to match — the\n // forgotten fact's content hash is gone from the active index but no\n // tombstone exists until a manual rebuild derives one — so the same fact\n // written again through writeMemory becomes active. Mirrors supersedeMemory\n // (contradiction) and applyTemporalSupersession via the shared\n // buildRetiredFactTombstoneInputs helper. Best-effort (rule 34): a tombstone\n // append failure must not fail the forget, which already succeeded on disk.\n if (memory.frontmatter.category === \"fact\") {\n for (const input of buildRetiredFactTombstoneInputs(\n {\n id,\n content: memory.content,\n ...(memory.frontmatter.contentHash\n ? { contentHash: memory.frontmatter.contentHash }\n : {}),\n ...(memory.frontmatter.entityRef\n ? { entityRef: memory.frontmatter.entityRef }\n : {}),\n ...(memory.frontmatter.structuredAttributes\n ? { structuredAttributes: memory.frontmatter.structuredAttributes }\n : {}),\n },\n {\n reason: \"retraction\",\n createdBy: \"user_correction\",\n createdAt: forgottenAt,\n supersessionKeysForFact,\n },\n )) {\n try {\n await storage.appendTombstone(input);\n } catch {\n // Best-effort — the forget already succeeded on disk.\n }\n }\n }\n return {\n id,\n path: memory.path,\n priorStatus,\n forgottenAt,\n reason,\n };\n}\n\nasync function findMemoryById(\n storage: StorageManager,\n id: string,\n): Promise<MemoryFile | null> {\n const hot = await storage.readAllMemories();\n const hotMatch = hot.find((m) => m.frontmatter.id === id);\n if (hotMatch) return hotMatch;\n\n const archived = await storage.readArchivedMemories();\n const archivedMatch = archived.find((m) => m.frontmatter.id === id);\n if (archivedMatch) return archivedMatch;\n\n const cold = await storage.readAllColdMemories();\n return cold.find((m) => m.frontmatter.id === id) ?? null;\n}\n"],"mappings":";;;;;;;;;;;;AAkDO,IAAM,4BAAN,cAAwC,MAAM;AAAA,EAC1C,OAAO;AAAA,EAChB,YAAY,IAAY;AACtB,UAAM,qBAAqB,EAAE,EAAE;AAC/B,SAAK,OAAO;AAAA,EACd;AACF;AAEO,IAAM,oCAAN,cAAgD,MAAM;AAAA,EAClD,OAAO;AAAA,EAChB,YAAY,IAAY,aAAqB;AAC3C,UAAM,UAAU,EAAE,6BAA6B,WAAW,EAAE;AAC5D,SAAK,OAAO;AAAA,EACd;AACF;AAQA,eAAsB,aACpB,SACA,SAC6B;AAC7B,QAAM,KAAK,OAAO,QAAQ,OAAO,WAAW,QAAQ,GAAG,KAAK,IAAI;AAChE,MAAI,GAAG,WAAW,GAAG;AACnB,UAAM,IAAI,MAAM,qDAAqD;AAAA,EACvE;AACA,QAAM,SAAS,MAAM,eAAe,SAAS,EAAE;AAC/C,MAAI,CAAC,QAAQ;AACX,UAAM,IAAI,0BAA0B,EAAE;AAAA,EACxC;AACA,MAAI,OAAO,YAAY,WAAW,aAAa;AAC7C,UAAM,IAAI;AAAA,MACR;AAAA,MACA,OAAO,YAAY,eAAe;AAAA,IACpC;AAAA,EACF;AACA,QAAM,cACJ,OAAO,OAAO,YAAY,WAAW,WAAW,OAAO,YAAY,SAAS;AAC9E,QAAM,OAAO,QAAQ,QAAQ,MAAM,oBAAI,KAAK,IAAI;AAChD,QAAM,cAAc,IAAI,YAAY;AACpC,QAAM,SAAS,OAAO,QAAQ,WAAW,WAAW,QAAQ,OAAO,KAAK,IAAI;AAC5E,QAAM,QAAQ,uBAAuB,QAAQ;AAAA,IAC3C,QAAQ;AAAA,IACR;AAAA,IACA,iBAAiB,OAAO,SAAS,IAAI,SAAS;AAAA,IAC9C,SAAS;AAAA,EACX,GAAG;AAAA,IACD,OAAO;AAAA,IACP,YAAY;AAAA,EACd,CAAC;AAWD,MAAI,OAAO,YAAY,aAAa,QAAQ;AAC1C,eAAW,SAAS;AAAA,MAClB;AAAA,QACE;AAAA,QACA,SAAS,OAAO;AAAA,QAChB,GAAI,OAAO,YAAY,cACnB,EAAE,aAAa,OAAO,YAAY,YAAY,IAC9C,CAAC;AAAA,QACL,GAAI,OAAO,YAAY,YACnB,EAAE,WAAW,OAAO,YAAY,UAAU,IAC1C,CAAC;AAAA,QACL,GAAI,OAAO,YAAY,uBACnB,EAAE,sBAAsB,OAAO,YAAY,qBAAqB,IAChE,CAAC;AAAA,MACP;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,WAAW;AAAA,QACX,WAAW;AAAA,QACX;AAAA,MACF;AAAA,IACF,GAAG;AACD,UAAI;AACF,cAAM,QAAQ,gBAAgB,KAAK;AAAA,MACrC,QAAQ;AAAA,MAER;AAAA,IACF;AAAA,EACF;AACA,SAAO;AAAA,IACL;AAAA,IACA,MAAM,OAAO;AAAA,IACb;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;AAEA,eAAe,eACb,SACA,IAC4B;AAC5B,QAAM,MAAM,MAAM,QAAQ,gBAAgB;AAC1C,QAAM,WAAW,IAAI,KAAK,CAAC,MAAM,EAAE,YAAY,OAAO,EAAE;AACxD,MAAI,SAAU,QAAO;AAErB,QAAM,WAAW,MAAM,QAAQ,qBAAqB;AACpD,QAAM,gBAAgB,SAAS,KAAK,CAAC,MAAM,EAAE,YAAY,OAAO,EAAE;AAClE,MAAI,cAAe,QAAO;AAE1B,QAAM,OAAO,MAAM,QAAQ,oBAAoB;AAC/C,SAAO,KAAK,KAAK,CAAC,MAAM,EAAE,YAAY,OAAO,EAAE,KAAK;AACtD;","names":[]}
1
+ {"version":3,"sources":["../src/maintenance/forget.ts"],"sourcesContent":["/**\n * Operator-facing memory forgetting (issue #686 PR 4/6).\n *\n * `remnic forget <id>` marks a memory as forgotten — a soft-delete that:\n *\n * 1. Sets `status: \"forgotten\"`, `forgottenAt`, optional\n * `forgottenReason` in YAML frontmatter via the existing\n * `storage.writeMemoryFrontmatter` path (which logs the change\n * to the lifecycle ledger and invalidates caches).\n * 2. Returns a structured result describing what changed so the\n * CLI and downstream telemetry can render it.\n *\n * Memories with `status === \"forgotten\"` are excluded from recall,\n * browse, and entity attribution by the status filters that serve\n * active user context. A future maintenance cron will hard-delete\n * forgotten memories after a configurable retention window (default\n * 90 days) — for this PR the file stays on disk and the act is\n * reversible by editing the YAML directly.\n *\n * This module ships the pure helper; the CLI wires it in `cli.ts` as\n * a new `remnic forget` subcommand.\n */\n\nimport type { StorageManager } from \"../storage.js\";\nimport { buildRetiredFactTombstoneInputs } from \"../lifecycle/tombstones.js\";\nimport { supersessionKeysForFact } from \"../temporal-supersession.js\";\nimport type { MemoryFile } from \"../types.js\";\n\nexport interface ForgetMemoryRequest {\n /** Memory id (frontmatter `id`) to forget. */\n id: string;\n /** Optional human-readable reason. */\n reason?: string;\n /** Override the timestamp written to `forgottenAt`. Defaults to `new Date().toISOString()`. */\n now?: () => Date;\n}\n\nexport interface ForgetMemoryResult {\n /** Memory id that was forgotten. */\n id: string;\n /** Filesystem path of the forgotten memory. */\n path: string;\n /** Prior status before the forget call, for audit. */\n priorStatus: string;\n /** Timestamp written to `forgottenAt`. */\n forgottenAt: string;\n /** Reason captured (or empty string if none). */\n reason: string;\n}\n\nexport class ForgetMemoryNotFoundError extends Error {\n readonly code = \"memory_not_found\" as const;\n constructor(id: string) {\n super(`memory not found: ${id}`);\n this.name = \"ForgetMemoryNotFoundError\";\n }\n}\n\nexport class ForgetMemoryAlreadyForgottenError extends Error {\n readonly code = \"already_forgotten\" as const;\n constructor(id: string, forgottenAt: string) {\n super(`memory ${id} was already forgotten at ${forgottenAt}`);\n this.name = \"ForgetMemoryAlreadyForgottenError\";\n }\n}\n\n/**\n * Mark a memory as forgotten. Pure orchestration over storage —\n * caller supplies the storage instance and the request. Status\n * filters elsewhere in the codebase exclude `status: \"forgotten\"`\n * from recall/browse surfaces before they serve active user context.\n */\nexport async function forgetMemory(\n storage: StorageManager,\n request: ForgetMemoryRequest,\n): Promise<ForgetMemoryResult> {\n const id = typeof request.id === \"string\" ? request.id.trim() : \"\";\n if (id.length === 0) {\n throw new Error(\"forget: memory id is required and must be non-empty\");\n }\n const memory = await findMemoryById(storage, id);\n if (!memory) {\n throw new ForgetMemoryNotFoundError(id);\n }\n if (memory.frontmatter.status === \"forgotten\") {\n throw new ForgetMemoryAlreadyForgottenError(\n id,\n memory.frontmatter.forgottenAt ?? \"(unknown)\",\n );\n }\n const priorStatus =\n typeof memory.frontmatter.status === \"string\" ? memory.frontmatter.status : \"active\";\n const now = (request.now ?? (() => new Date()))();\n const forgottenAt = now.toISOString();\n const reason = typeof request.reason === \"string\" ? request.reason.trim() : \"\";\n await storage.writeMemoryFrontmatter(memory, {\n status: \"forgotten\",\n forgottenAt,\n forgottenReason: reason.length > 0 ? reason : undefined,\n updated: forgottenAt,\n }, {\n actor: \"remnic-forget\",\n reasonCode: \"operator_forget\",\n });\n // Issue #1579 thread OchiF: emit a LIVE tombstone at forget time so a\n // forgotten FACT cannot resurrect via re-extraction/import before an\n // operator runs `remnic doctor --rebuild-tombstones`. Without this, the\n // non-resurrection chokepoint in writeMemory has nothing to match — the\n // forgotten fact's content hash is gone from the active index but no\n // tombstone exists until a manual rebuild derives one — so the same fact\n // written again through writeMemory becomes active. Mirrors supersedeMemory\n // (contradiction) and applyTemporalSupersession via the shared\n // buildRetiredFactTombstoneInputs helper. Best-effort (rule 34): a tombstone\n // append failure must not fail the forget, which already succeeded on disk.\n if (memory.frontmatter.category === \"fact\") {\n for (const input of buildRetiredFactTombstoneInputs(\n {\n id,\n content: memory.content,\n ...(memory.frontmatter.contentHash\n ? { contentHash: memory.frontmatter.contentHash }\n : {}),\n ...(memory.frontmatter.entityRef\n ? { entityRef: memory.frontmatter.entityRef }\n : {}),\n ...(memory.frontmatter.structuredAttributes\n ? { structuredAttributes: memory.frontmatter.structuredAttributes }\n : {}),\n },\n {\n reason: \"retraction\",\n createdBy: \"user_correction\",\n createdAt: forgottenAt,\n supersessionKeysForFact,\n },\n )) {\n try {\n await storage.appendTombstone(input);\n } catch {\n // Best-effort — the forget already succeeded on disk.\n }\n }\n }\n return {\n id,\n path: memory.path,\n priorStatus,\n forgottenAt,\n reason,\n };\n}\n\nasync function findMemoryById(\n storage: StorageManager,\n id: string,\n): Promise<MemoryFile | null> {\n const hot = await storage.readAllMemories();\n const hotMatch = hot.find((m) => m.frontmatter.id === id);\n if (hotMatch) return hotMatch;\n\n const archived = await storage.readArchivedMemories();\n const archivedMatch = archived.find((m) => m.frontmatter.id === id);\n if (archivedMatch) return archivedMatch;\n\n const cold = await storage.readAllColdMemories();\n return cold.find((m) => m.frontmatter.id === id) ?? null;\n}\n"],"mappings":";;;;;;;;;;;;;AAkDO,IAAM,4BAAN,cAAwC,MAAM;AAAA,EAC1C,OAAO;AAAA,EAChB,YAAY,IAAY;AACtB,UAAM,qBAAqB,EAAE,EAAE;AAC/B,SAAK,OAAO;AAAA,EACd;AACF;AAEO,IAAM,oCAAN,cAAgD,MAAM;AAAA,EAClD,OAAO;AAAA,EAChB,YAAY,IAAY,aAAqB;AAC3C,UAAM,UAAU,EAAE,6BAA6B,WAAW,EAAE;AAC5D,SAAK,OAAO;AAAA,EACd;AACF;AAQA,eAAsB,aACpB,SACA,SAC6B;AAC7B,QAAM,KAAK,OAAO,QAAQ,OAAO,WAAW,QAAQ,GAAG,KAAK,IAAI;AAChE,MAAI,GAAG,WAAW,GAAG;AACnB,UAAM,IAAI,MAAM,qDAAqD;AAAA,EACvE;AACA,QAAM,SAAS,MAAM,eAAe,SAAS,EAAE;AAC/C,MAAI,CAAC,QAAQ;AACX,UAAM,IAAI,0BAA0B,EAAE;AAAA,EACxC;AACA,MAAI,OAAO,YAAY,WAAW,aAAa;AAC7C,UAAM,IAAI;AAAA,MACR;AAAA,MACA,OAAO,YAAY,eAAe;AAAA,IACpC;AAAA,EACF;AACA,QAAM,cACJ,OAAO,OAAO,YAAY,WAAW,WAAW,OAAO,YAAY,SAAS;AAC9E,QAAM,OAAO,QAAQ,QAAQ,MAAM,oBAAI,KAAK,IAAI;AAChD,QAAM,cAAc,IAAI,YAAY;AACpC,QAAM,SAAS,OAAO,QAAQ,WAAW,WAAW,QAAQ,OAAO,KAAK,IAAI;AAC5E,QAAM,QAAQ,uBAAuB,QAAQ;AAAA,IAC3C,QAAQ;AAAA,IACR;AAAA,IACA,iBAAiB,OAAO,SAAS,IAAI,SAAS;AAAA,IAC9C,SAAS;AAAA,EACX,GAAG;AAAA,IACD,OAAO;AAAA,IACP,YAAY;AAAA,EACd,CAAC;AAWD,MAAI,OAAO,YAAY,aAAa,QAAQ;AAC1C,eAAW,SAAS;AAAA,MAClB;AAAA,QACE;AAAA,QACA,SAAS,OAAO;AAAA,QAChB,GAAI,OAAO,YAAY,cACnB,EAAE,aAAa,OAAO,YAAY,YAAY,IAC9C,CAAC;AAAA,QACL,GAAI,OAAO,YAAY,YACnB,EAAE,WAAW,OAAO,YAAY,UAAU,IAC1C,CAAC;AAAA,QACL,GAAI,OAAO,YAAY,uBACnB,EAAE,sBAAsB,OAAO,YAAY,qBAAqB,IAChE,CAAC;AAAA,MACP;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,WAAW;AAAA,QACX,WAAW;AAAA,QACX;AAAA,MACF;AAAA,IACF,GAAG;AACD,UAAI;AACF,cAAM,QAAQ,gBAAgB,KAAK;AAAA,MACrC,QAAQ;AAAA,MAER;AAAA,IACF;AAAA,EACF;AACA,SAAO;AAAA,IACL;AAAA,IACA,MAAM,OAAO;AAAA,IACb;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;AAEA,eAAe,eACb,SACA,IAC4B;AAC5B,QAAM,MAAM,MAAM,QAAQ,gBAAgB;AAC1C,QAAM,WAAW,IAAI,KAAK,CAAC,MAAM,EAAE,YAAY,OAAO,EAAE;AACxD,MAAI,SAAU,QAAO;AAErB,QAAM,WAAW,MAAM,QAAQ,qBAAqB;AACpD,QAAM,gBAAgB,SAAS,KAAK,CAAC,MAAM,EAAE,YAAY,OAAO,EAAE;AAClE,MAAI,cAAe,QAAO;AAE1B,QAAM,OAAO,MAAM,QAAQ,oBAAoB;AAC/C,SAAO,KAAK,KAAK,CAAC,MAAM,EAAE,YAAY,OAAO,EAAE,KAAK;AACtD;","names":[]}
@@ -1,7 +1,7 @@
1
1
  import { a as GraphEdge } from './graph-444E-DrF.js';
2
2
  import { GraphSnapshot } from './graph-dashboard-parser.js';
3
3
  import './capabilities.js';
4
- import './types-CkiDUorT.js';
4
+ import './types-d_j4vC6N.js';
5
5
  import './message-parts/index.js';
6
6
  import './bounded-jsonl-state.js';
7
7
  import './operator-doctor-types.js';
@@ -1,6 +1,6 @@
1
1
  import { a as GraphEdge } from './graph-444E-DrF.js';
2
2
  import './capabilities.js';
3
- import './types-CkiDUorT.js';
3
+ import './types-d_j4vC6N.js';
4
4
  import './message-parts/index.js';
5
5
  import './bounded-jsonl-state.js';
6
6
  import './operator-doctor-types.js';
@@ -1,6 +1,6 @@
1
1
  import { a as GraphEdge, G as GraphType } from './graph-444E-DrF.js';
2
2
  import './capabilities.js';
3
- import './types-CkiDUorT.js';
3
+ import './types-d_j4vC6N.js';
4
4
  import './message-parts/index.js';
5
5
  import './bounded-jsonl-state.js';
6
6
  import './operator-doctor-types.js';
@@ -1,6 +1,6 @@
1
1
  import { a as GraphEdge } from './graph-444E-DrF.js';
2
2
  import './capabilities.js';
3
- import './types-CkiDUorT.js';
3
+ import './types-d_j4vC6N.js';
4
4
  import './message-parts/index.js';
5
5
  import './bounded-jsonl-state.js';
6
6
  import './operator-doctor-types.js';
@@ -1,6 +1,6 @@
1
1
  export { d as ActivationPathCandidate, e as ActivationPathTracker, f as ActivationPredecessor, g as compareActivationPathCandidates, r as reconstructActivationPath } from './graph-444E-DrF.js';
2
2
  import './capabilities.js';
3
- import './types-CkiDUorT.js';
3
+ import './types-d_j4vC6N.js';
4
4
  import './message-parts/index.js';
5
5
  import './bounded-jsonl-state.js';
6
6
  import './operator-doctor-types.js';
@@ -1,5 +1,5 @@
1
1
  import { A as ActivationPath } from './graph-444E-DrF.js';
2
- import { l as MemoryFrontmatter, y as MemoryStatus } from './types-CkiDUorT.js';
2
+ import { l as MemoryFrontmatter, y as MemoryStatus } from './types-d_j4vC6N.js';
3
3
  import './capabilities.js';
4
4
  import './message-parts/index.js';
5
5
  import './bounded-jsonl-state.js';
@@ -1,6 +1,6 @@
1
1
  import { G as GraphType } from './graph-444E-DrF.js';
2
2
  import './capabilities.js';
3
- import './types-CkiDUorT.js';
3
+ import './types-d_j4vC6N.js';
4
4
  import './message-parts/index.js';
5
5
  import './bounded-jsonl-state.js';
6
6
  import './operator-doctor-types.js';
package/dist/graph.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import './capabilities.js';
2
2
  export { A as ActivationPath, f as ActivationPredecessor, C as CAUSAL_PHRASES, D as DEFAULT_GRAPH_TRAVERSAL_CONFIDENCE_FLOOR, h as DEFAULT_GRAPH_TRAVERSAL_PAGERANK_ITERATIONS, i as GraphConfig, a as GraphEdge, j as GraphHealthFileStats, b as GraphHealthReport, c as GraphIndex, G as GraphType, k as analyzeGraphHealth, l as appendEdge, m as applyLateralInhibition, n as applyPageRankRefinement, o as clampConfidenceFloor, p as clampPageRankIterations, q as detectCausalPhrase, s as ensureGraphsDir, t as graphFilePath, u as graphsDir, v as readAllEdges, w as readEdges, x as readEdgesStrict, r as reconstructActivationPath, y as withGraphWriteLock } from './graph-444E-DrF.js';
3
- import './types-CkiDUorT.js';
3
+ import './types-d_j4vC6N.js';
4
4
  import './message-parts/index.js';
5
5
  import './bounded-jsonl-state.js';
6
6
  import './operator-doctor-types.js';
@@ -5,13 +5,13 @@ import {
5
5
  normalizeCueAnchorInputs,
6
6
  normalizedHarmonicEntityIdentity,
7
7
  persistHarmonicRecords
8
- } from "./chunk-GXSOUIA4.js";
8
+ } from "./chunk-5WQMORU5.js";
9
9
  import "./chunk-ACPCA4NO.js";
10
10
  import "./chunk-DJUKBGAD.js";
11
11
  import "./chunk-G73MCJKL.js";
12
+ import "./chunk-ZBJMUXZH.js";
12
13
  import "./chunk-5GKPFL3S.js";
13
14
  import "./chunk-JAKIDQB2.js";
14
- import "./chunk-ZBJMUXZH.js";
15
15
  import "./chunk-A2IYSXDQ.js";
16
16
  import "./chunk-P77QX3ID.js";
17
17
  import "./chunk-PZ5AY32C.js";
@@ -1,15 +1,15 @@
1
1
  import {
2
2
  searchHarmonicRetrieval
3
- } from "./chunk-W7Y5JDVB.js";
3
+ } from "./chunk-PDDTI7IC.js";
4
4
  import "./chunk-ACPCA4NO.js";
5
5
  import "./chunk-DJUKBGAD.js";
6
6
  import "./chunk-G73MCJKL.js";
7
- import "./chunk-R3DJVOSM.js";
8
7
  import "./chunk-6CIAGZ6X.js";
9
- import "./chunk-5GKPFL3S.js";
10
- import "./chunk-JAKIDQB2.js";
11
8
  import "./chunk-ZBJMUXZH.js";
12
9
  import "./chunk-7RJUVTVF.js";
10
+ import "./chunk-JDSVLVCG.js";
11
+ import "./chunk-5GKPFL3S.js";
12
+ import "./chunk-JAKIDQB2.js";
13
13
  import "./chunk-BTTPKDIL.js";
14
14
  import "./chunk-A2IYSXDQ.js";
15
15
  import "./chunk-P77QX3ID.js";
@@ -1,4 +1,4 @@
1
- import { _ as ImportanceLevel, M as MemoryFile, aq as ImportanceScore, w as MemoryCategory } from './types-CkiDUorT.js';
1
+ import { _ as ImportanceLevel, M as MemoryFile, aq as ImportanceScore, w as MemoryCategory } from './types-d_j4vC6N.js';
2
2
  import './message-parts/index.js';
3
3
  import './bounded-jsonl-state.js';
4
4
  import './operator-doctor-types.js';
@@ -1,4 +1,4 @@
1
- import { a8 as ImportTurn } from '../types-CkiDUorT.js';
1
+ import { a8 as ImportTurn } from '../types-d_j4vC6N.js';
2
2
  import '../message-parts/index.js';
3
3
  import '../bounded-jsonl-state.js';
4
4
  import '../operator-doctor-types.js';
@@ -1,4 +1,4 @@
1
- import { M as MemoryFile } from './types-CkiDUorT.js';
1
+ import { M as MemoryFile } from './types-d_j4vC6N.js';
2
2
  import './message-parts/index.js';
3
3
  import './bounded-jsonl-state.js';
4
4
  import './operator-doctor-types.js';