@remnic/core 9.3.699 → 9.3.700

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 (272) hide show
  1. package/dist/access-boundary.d.ts +5 -5
  2. package/dist/access-boundary.js +14 -10
  3. package/dist/access-cli.js +28 -26
  4. package/dist/access-cli.js.map +1 -1
  5. package/dist/access-http.d.ts +5 -5
  6. package/dist/access-http.js +18 -14
  7. package/dist/access-mcp.d.ts +5 -5
  8. package/dist/access-mcp.js +17 -13
  9. package/dist/access-operations.d.ts +5 -5
  10. package/dist/access-operations.js +16 -12
  11. package/dist/access-schema.js +3 -3
  12. package/dist/{access-service-DftqtNUy.d.ts → access-service-Cte3ol0W.d.ts} +2 -2
  13. package/dist/access-service.d.ts +5 -5
  14. package/dist/access-service.js +13 -9
  15. package/dist/access-surface-catalog.d.ts +5 -5
  16. package/dist/action-confidence.d.ts +1 -1
  17. package/dist/action-confidence.js +2 -2
  18. package/dist/active-memory-bridge.d.ts +1 -1
  19. package/dist/active-recall.d.ts +1 -1
  20. package/dist/active-recall.js +1 -1
  21. package/dist/behavior-learner.d.ts +1 -1
  22. package/dist/behavior-signals.d.ts +1 -1
  23. package/dist/bootstrap.d.ts +4 -4
  24. package/dist/briefing.d.ts +1 -1
  25. package/dist/briefing.js +7 -3
  26. package/dist/buffer-surprise-report.d.ts +1 -1
  27. package/dist/buffer.d.ts +1 -1
  28. package/dist/calibration.d.ts +1 -1
  29. package/dist/capabilities.d.ts +1 -1
  30. package/dist/{catalog-D7YDNNF7.d.ts → catalog-DN1PzThs.d.ts} +1 -1
  31. package/dist/causal-behavior.d.ts +1 -1
  32. package/dist/causal-consolidation.d.ts +1 -1
  33. package/dist/causal-consolidation.js +8 -4
  34. package/dist/causal-consolidation.js.map +1 -1
  35. package/dist/{chunk-SJQ4HY3E.js → chunk-2NWHLAXX.js} +2 -2
  36. package/dist/{chunk-UDDSC6PO.js → chunk-33L6XHU2.js} +54 -6
  37. package/dist/chunk-33L6XHU2.js.map +1 -0
  38. package/dist/{chunk-XFG3PVZE.js → chunk-3E5WRQNQ.js} +8 -8
  39. package/dist/{chunk-EZWQZYLK.js → chunk-6JDGADXK.js} +2 -2
  40. package/dist/{chunk-IZ5E6ZTK.js → chunk-CCOXIDRM.js} +6 -6
  41. package/dist/{chunk-COEZR6F5.js → chunk-CHM274U6.js} +2 -2
  42. package/dist/{chunk-TIVZ4MCG.js → chunk-D75JXBV4.js} +3 -3
  43. package/dist/{chunk-M4DQWUKX.js → chunk-DR2JTSLZ.js} +2 -2
  44. package/dist/{chunk-XL5RSHZP.js → chunk-EOBJRBLC.js} +2 -2
  45. package/dist/{chunk-YY2HGKWR.js → chunk-G5PKTQ5J.js} +2 -2
  46. package/dist/{chunk-JYVD2XZ4.js → chunk-GA5A6MJH.js} +57 -24
  47. package/dist/chunk-GA5A6MJH.js.map +1 -0
  48. package/dist/{chunk-E6GOVHHJ.js → chunk-GYVVQYA3.js} +3 -3
  49. package/dist/{chunk-2KJG6ZZK.js → chunk-HDLC75NX.js} +2 -2
  50. package/dist/{chunk-AC5LO7IU.js → chunk-I4WBNM3M.js} +7 -1
  51. package/dist/chunk-I4WBNM3M.js.map +1 -0
  52. package/dist/{chunk-QVTSLRKT.js → chunk-IJEZMWKA.js} +3 -3
  53. package/dist/{chunk-ZXUOAFUG.js → chunk-IKNQAGBV.js} +1 -1
  54. package/dist/chunk-IKNQAGBV.js.map +1 -0
  55. package/dist/{chunk-N55RJT4N.js → chunk-JKW5XSWC.js} +2 -2
  56. package/dist/{chunk-CQ4PGFMC.js → chunk-JX3YZVII.js} +4 -4
  57. package/dist/{chunk-3LSSFCB4.js → chunk-K4DWSPMW.js} +11 -1
  58. package/dist/chunk-K4DWSPMW.js.map +1 -0
  59. package/dist/{chunk-HZ5DRA4Q.js → chunk-NHBEO3F3.js} +20 -20
  60. package/dist/{chunk-FSEQXHEZ.js → chunk-O54DY26V.js} +2 -2
  61. package/dist/{chunk-MRFVMSTR.js → chunk-OMNTQPZO.js} +20 -1
  62. package/dist/{chunk-MRFVMSTR.js.map → chunk-OMNTQPZO.js.map} +1 -1
  63. package/dist/chunk-PCZR32VL.js +446 -0
  64. package/dist/chunk-PCZR32VL.js.map +1 -0
  65. package/dist/{chunk-2K64VH66.js → chunk-PQG4T5V3.js} +22 -2
  66. package/dist/chunk-PQG4T5V3.js.map +1 -0
  67. package/dist/{chunk-JI6HWBYL.js → chunk-Q4O3ET6F.js} +2 -2
  68. package/dist/{chunk-ANZLT74L.js → chunk-RJ2THZ4H.js} +2 -2
  69. package/dist/{chunk-LPIWEKZ3.js → chunk-SDPDU2PM.js} +3 -3
  70. package/dist/{chunk-A62RAIBN.js → chunk-SEWF2O74.js} +2 -2
  71. package/dist/{chunk-2ULWWAQH.js → chunk-SMIVW7XC.js} +2 -2
  72. package/dist/{chunk-RTN2BLZM.js → chunk-T5QAZIBO.js} +2 -2
  73. package/dist/{chunk-RIC5U67B.js → chunk-X74FJSW7.js} +232 -4
  74. package/dist/chunk-X74FJSW7.js.map +1 -0
  75. package/dist/{chunk-SIDSEXUG.js → chunk-XY4WJTEX.js} +2 -2
  76. package/dist/{chunk-LIWU4QI6.js → chunk-YMTGXDN6.js} +5 -5
  77. package/dist/chunk-YPR7DOPD.js +286 -0
  78. package/dist/chunk-YPR7DOPD.js.map +1 -0
  79. package/dist/{chunk-MRX6S22R.js → chunk-YXIFA36P.js} +2 -2
  80. package/dist/{chunk-AH2JUU6X.js → chunk-Z2YFLXHU.js} +2 -2
  81. package/dist/{chunk-PJIHCOGV.js → chunk-ZDK2IW5F.js} +2 -2
  82. package/dist/{cli-DUMkkdLl.d.ts → cli--yVN9yEV.d.ts} +3 -3
  83. package/dist/cli.d.ts +6 -6
  84. package/dist/cli.js +32 -28
  85. package/dist/compounding/engine.d.ts +1 -1
  86. package/dist/compounding/engine.js +7 -3
  87. package/dist/compounding/preference-consolidator.d.ts +1 -1
  88. package/dist/compression-optimizer.d.ts +1 -1
  89. package/dist/config.d.ts +1 -1
  90. package/dist/config.js +1 -1
  91. package/dist/connectors/codex-materialize-runner.d.ts +1 -1
  92. package/dist/connectors/codex-materialize-runner.js +7 -3
  93. package/dist/connectors/codex-materialize.d.ts +1 -1
  94. package/dist/connectors/index.d.ts +1 -1
  95. package/dist/connectors/index.js +7 -3
  96. package/dist/consolidation-provenance-check.d.ts +1 -1
  97. package/dist/consolidation-undo.d.ts +1 -1
  98. package/dist/contradiction/index.d.ts +1 -1
  99. package/dist/conversation-index/backend.d.ts +1 -1
  100. package/dist/conversation-index/chunker.d.ts +1 -1
  101. package/dist/conversation-index/faiss-adapter.d.ts +1 -1
  102. package/dist/conversation-index/indexer.d.ts +1 -1
  103. package/dist/conversation-index/search.d.ts +1 -1
  104. package/dist/day-summary.d.ts +1 -1
  105. package/dist/delinearize.d.ts +1 -1
  106. package/dist/direct-answer-wiring.d.ts +1 -1
  107. package/dist/direct-answer.d.ts +1 -1
  108. package/dist/embedding-fallback.d.ts +1 -1
  109. package/dist/enrichment/index.d.ts +1 -1
  110. package/dist/entity-retrieval.d.ts +1 -1
  111. package/dist/entity-retrieval.js +7 -3
  112. package/dist/entity-schema.d.ts +1 -1
  113. package/dist/explicit-capture.d.ts +6 -6
  114. package/dist/extraction-faithfulness.d.ts +1 -1
  115. package/dist/extraction-judge-telemetry.d.ts +1 -1
  116. package/dist/extraction-judge-training.d.ts +1 -1
  117. package/dist/extraction-judge.d.ts +1 -1
  118. package/dist/extraction.d.ts +1 -1
  119. package/dist/fallback-llm.d.ts +1 -1
  120. package/dist/{forget-PLR6J5DN.js → forget-BEXG5PQC.js} +32 -1
  121. package/dist/forget-BEXG5PQC.js.map +1 -0
  122. package/dist/identity-continuity.d.ts +1 -1
  123. package/dist/importance.d.ts +1 -1
  124. package/dist/index.d.ts +21 -10
  125. package/dist/index.js +63 -41
  126. package/dist/index.js.map +1 -1
  127. package/dist/intent.d.ts +1 -1
  128. package/dist/lcm/engine.d.ts +1 -1
  129. package/dist/lcm/index.d.ts +1 -1
  130. package/dist/lcm/tools.d.ts +1 -1
  131. package/dist/lifecycle.d.ts +1 -1
  132. package/dist/live-connectors-runner.d.ts +1 -1
  133. package/dist/local-llm.d.ts +1 -1
  134. package/dist/maintenance/memory-governance.d.ts +1 -1
  135. package/dist/maintenance/memory-governance.js +7 -3
  136. package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +7 -3
  137. package/dist/maintenance/rebuild-memory-projection.js +8 -4
  138. package/dist/mcp-memory-inspector-app.d.ts +5 -5
  139. package/dist/memory-action-policy.d.ts +1 -1
  140. package/dist/memory-cache.d.ts +1 -1
  141. package/dist/memory-lifecycle-ledger-utils.d.ts +1 -1
  142. package/dist/memory-projection-store.d.ts +1 -1
  143. package/dist/memory-provenance.d.ts +1 -1
  144. package/dist/memory-provenance.js +1 -1
  145. package/dist/memory-worth-outcomes.d.ts +1 -1
  146. package/dist/models-json.d.ts +1 -1
  147. package/dist/namespaces/migrate.d.ts +2 -2
  148. package/dist/namespaces/migrate.js +8 -4
  149. package/dist/namespaces/principal.d.ts +1 -1
  150. package/dist/namespaces/search.d.ts +1 -1
  151. package/dist/namespaces/storage.d.ts +20 -2
  152. package/dist/namespaces/storage.js +7 -3
  153. package/dist/native-knowledge.d.ts +1 -1
  154. package/dist/operator-toolkit.d.ts +19 -2
  155. package/dist/operator-toolkit.js +17 -11
  156. package/dist/orchestration/maintenance.d.ts +2 -2
  157. package/dist/orchestration/maintenance.js +9 -5
  158. package/dist/{orchestrator-Dv8JQu3-.d.ts → orchestrator-CJI4xdqV.d.ts} +3 -3
  159. package/dist/orchestrator.d.ts +4 -4
  160. package/dist/orchestrator.js +20 -18
  161. package/dist/patterns-cli.d.ts +1 -1
  162. package/dist/policy-runtime.d.ts +1 -1
  163. package/dist/provenance.d.ts +1 -1
  164. package/dist/qmd-recall-cache.d.ts +1 -1
  165. package/dist/qmd.d.ts +1 -1
  166. package/dist/recall-disclosure-escalation.d.ts +1 -1
  167. package/dist/recall-explain-renderer.d.ts +1 -1
  168. package/dist/recall-explain-renderer.js +4 -4
  169. package/dist/recall-planner-llm.d.ts +1 -1
  170. package/dist/recall-state.d.ts +1 -1
  171. package/dist/recall-tag-filter.d.ts +1 -1
  172. package/dist/recall-xray-cli.d.ts +1 -1
  173. package/dist/recall-xray-cli.js +5 -5
  174. package/dist/recall-xray-renderer.d.ts +1 -1
  175. package/dist/recall-xray-renderer.js +4 -4
  176. package/dist/recall-xray.d.ts +1 -1
  177. package/dist/recall-xray.js +3 -3
  178. package/dist/resolve-auth-token.d.ts +1 -1
  179. package/dist/resume-bundles.js +2 -2
  180. package/dist/retrieval-agents.d.ts +1 -1
  181. package/dist/retrieval-tiers.d.ts +1 -1
  182. package/dist/routing/engine.d.ts +1 -1
  183. package/dist/routing/store.d.ts +1 -1
  184. package/dist/schemas.d.ts +28 -28
  185. package/dist/search/embed-helper.d.ts +1 -1
  186. package/dist/search/factory.d.ts +1 -1
  187. package/dist/search/index.d.ts +1 -1
  188. package/dist/search/lancedb-backend.d.ts +1 -1
  189. package/dist/search/meilisearch-backend.d.ts +1 -1
  190. package/dist/search/noop-backend.d.ts +1 -1
  191. package/dist/search/orama-backend.d.ts +1 -1
  192. package/dist/search/port.d.ts +1 -1
  193. package/dist/search/remote-backend.d.ts +1 -1
  194. package/dist/{semantic-consolidation-CgREi9E0.d.ts → semantic-consolidation-BtUfv-AL.d.ts} +1 -1
  195. package/dist/semantic-consolidation.d.ts +2 -2
  196. package/dist/semantic-consolidation.js +8 -4
  197. package/dist/semantic-rule-promotion.js +7 -3
  198. package/dist/semantic-rule-verifier.d.ts +1 -1
  199. package/dist/semantic-rule-verifier.js +7 -3
  200. package/dist/session-observer-bands.d.ts +1 -1
  201. package/dist/session-observer-state.d.ts +1 -1
  202. package/dist/shared-context/manager.d.ts +1 -1
  203. package/dist/signal.d.ts +1 -1
  204. package/dist/storage.d.ts +306 -2
  205. package/dist/storage.js +6 -2
  206. package/dist/summarizer.d.ts +1 -1
  207. package/dist/summary-snapshot.d.ts +1 -1
  208. package/dist/temporal-supersession.d.ts +1 -1
  209. package/dist/temporal-supersession.js +1 -1
  210. package/dist/temporal-validity.d.ts +1 -1
  211. package/dist/threading.d.ts +1 -1
  212. package/dist/tier-migration.d.ts +1 -1
  213. package/dist/tier-routing.d.ts +1 -1
  214. package/dist/topics.d.ts +1 -1
  215. package/dist/transcript.d.ts +1 -1
  216. package/dist/transfer/types.d.ts +12 -12
  217. package/dist/{types-CeZYSC-E.d.ts → types-PuiPZ9iE.d.ts} +34 -1
  218. package/dist/types.d.ts +1 -1
  219. package/dist/types.js +1 -1
  220. package/dist/utility-runtime.d.ts +1 -1
  221. package/dist/utils/serialize-mutations.js +5 -280
  222. package/dist/utils/serialize-mutations.js.map +1 -1
  223. package/dist/verified-recall.js +7 -3
  224. package/package.json +2 -2
  225. package/src/config.ts +10 -0
  226. package/src/lifecycle/tombstones.test.ts +355 -0
  227. package/src/lifecycle/tombstones.ts +807 -0
  228. package/src/maintenance/forget.ts +41 -0
  229. package/src/maintenance/pattern-reinforcement.ts +47 -0
  230. package/src/memory-provenance.ts +12 -0
  231. package/src/namespaces/storage.ts +33 -0
  232. package/src/operator-toolkit.ts +77 -0
  233. package/src/orchestrator.ts +16 -0
  234. package/src/review/index.ts +48 -3
  235. package/src/storage.ts +329 -2
  236. package/src/temporal-supersession.ts +38 -0
  237. package/src/types.ts +34 -0
  238. package/dist/chunk-2K64VH66.js.map +0 -1
  239. package/dist/chunk-3LSSFCB4.js.map +0 -1
  240. package/dist/chunk-AC5LO7IU.js.map +0 -1
  241. package/dist/chunk-JYVD2XZ4.js.map +0 -1
  242. package/dist/chunk-RIC5U67B.js.map +0 -1
  243. package/dist/chunk-UDDSC6PO.js.map +0 -1
  244. package/dist/chunk-ZXUOAFUG.js.map +0 -1
  245. package/dist/forget-PLR6J5DN.js.map +0 -1
  246. /package/dist/{chunk-SJQ4HY3E.js.map → chunk-2NWHLAXX.js.map} +0 -0
  247. /package/dist/{chunk-XFG3PVZE.js.map → chunk-3E5WRQNQ.js.map} +0 -0
  248. /package/dist/{chunk-EZWQZYLK.js.map → chunk-6JDGADXK.js.map} +0 -0
  249. /package/dist/{chunk-IZ5E6ZTK.js.map → chunk-CCOXIDRM.js.map} +0 -0
  250. /package/dist/{chunk-COEZR6F5.js.map → chunk-CHM274U6.js.map} +0 -0
  251. /package/dist/{chunk-TIVZ4MCG.js.map → chunk-D75JXBV4.js.map} +0 -0
  252. /package/dist/{chunk-M4DQWUKX.js.map → chunk-DR2JTSLZ.js.map} +0 -0
  253. /package/dist/{chunk-XL5RSHZP.js.map → chunk-EOBJRBLC.js.map} +0 -0
  254. /package/dist/{chunk-YY2HGKWR.js.map → chunk-G5PKTQ5J.js.map} +0 -0
  255. /package/dist/{chunk-E6GOVHHJ.js.map → chunk-GYVVQYA3.js.map} +0 -0
  256. /package/dist/{chunk-2KJG6ZZK.js.map → chunk-HDLC75NX.js.map} +0 -0
  257. /package/dist/{chunk-QVTSLRKT.js.map → chunk-IJEZMWKA.js.map} +0 -0
  258. /package/dist/{chunk-N55RJT4N.js.map → chunk-JKW5XSWC.js.map} +0 -0
  259. /package/dist/{chunk-CQ4PGFMC.js.map → chunk-JX3YZVII.js.map} +0 -0
  260. /package/dist/{chunk-HZ5DRA4Q.js.map → chunk-NHBEO3F3.js.map} +0 -0
  261. /package/dist/{chunk-FSEQXHEZ.js.map → chunk-O54DY26V.js.map} +0 -0
  262. /package/dist/{chunk-JI6HWBYL.js.map → chunk-Q4O3ET6F.js.map} +0 -0
  263. /package/dist/{chunk-ANZLT74L.js.map → chunk-RJ2THZ4H.js.map} +0 -0
  264. /package/dist/{chunk-LPIWEKZ3.js.map → chunk-SDPDU2PM.js.map} +0 -0
  265. /package/dist/{chunk-A62RAIBN.js.map → chunk-SEWF2O74.js.map} +0 -0
  266. /package/dist/{chunk-2ULWWAQH.js.map → chunk-SMIVW7XC.js.map} +0 -0
  267. /package/dist/{chunk-RTN2BLZM.js.map → chunk-T5QAZIBO.js.map} +0 -0
  268. /package/dist/{chunk-SIDSEXUG.js.map → chunk-XY4WJTEX.js.map} +0 -0
  269. /package/dist/{chunk-LIWU4QI6.js.map → chunk-YMTGXDN6.js.map} +0 -0
  270. /package/dist/{chunk-MRX6S22R.js.map → chunk-YXIFA36P.js.map} +0 -0
  271. /package/dist/{chunk-AH2JUU6X.js.map → chunk-Z2YFLXHU.js.map} +0 -0
  272. /package/dist/{chunk-PJIHCOGV.js.map → chunk-ZDK2IW5F.js.map} +0 -0
package/dist/index.d.ts CHANGED
@@ -1,8 +1,8 @@
1
1
  export { PluginEntryResolverOptions, resolvePluginEntry } from './plugin-entry-resolver.js';
2
2
  export { isOpenaiApiKeyDisabled, parseConfig, resolveEnvVars } from './config.js';
3
3
  export { MigrationOptions, MigrationResult, RollbackResult, migrateFromEngram, rollbackFromEngramMigration } from './migrate/from-engram.js';
4
- import { S as SpeakerRegistry, W as WearablesService } from './orchestrator-Dv8JQu3-.js';
5
- export { D as DEFAULT_SELF_NAME, O as Orchestrator, R as ResolvedSpeaker, a as SpeakerOverride, b as WEARABLE_SOURCE_PREFIX, c as WearableDayTranscriptView, d as WearableMemoryGenDeps, e as WearableMemoryGenResult, f as WearableMemorySearchResult, g as WearableMemoryWriter, h as WearableSearchBackend, i as WearableStorageIo, j as WearableSyncDeps, k as WearableSyncOptions, l as WearableTranscriptSearchResult, m as WearablesServiceDeps, n as buildExtractionTurns, o as dateInTimezone, p as defaultTimezone, q as defaultWorkspaceDir, r as distinctSpeakerLabels, s as emptySpeakerRegistry, t as generateWearableMemories, u as importNativeMemories, v as loadSpeakerRegistry, w as locateTranscriptPath, x as memoryStatusForMode, y as resolveSpeaker, z as resolveSyncDates, A as sanitizeSessionKeyForFilename, B as saveSpeakerRegistry, C as speakerRegistryKey, E as speakersFilePath, F as syncWearableSource, H as wearableDayTag, J as wearableSourceLabel, K as writeDailyDigestMemory } from './orchestrator-Dv8JQu3-.js';
4
+ import { S as SpeakerRegistry, W as WearablesService } from './orchestrator-CJI4xdqV.js';
5
+ export { D as DEFAULT_SELF_NAME, O as Orchestrator, R as ResolvedSpeaker, a as SpeakerOverride, b as WEARABLE_SOURCE_PREFIX, c as WearableDayTranscriptView, d as WearableMemoryGenDeps, e as WearableMemoryGenResult, f as WearableMemorySearchResult, g as WearableMemoryWriter, h as WearableSearchBackend, i as WearableStorageIo, j as WearableSyncDeps, k as WearableSyncOptions, l as WearableTranscriptSearchResult, m as WearablesServiceDeps, n as buildExtractionTurns, o as dateInTimezone, p as defaultTimezone, q as defaultWorkspaceDir, r as distinctSpeakerLabels, s as emptySpeakerRegistry, t as generateWearableMemories, u as importNativeMemories, v as loadSpeakerRegistry, w as locateTranscriptPath, x as memoryStatusForMode, y as resolveSpeaker, z as resolveSyncDates, A as sanitizeSessionKeyForFilename, B as saveSpeakerRegistry, C as speakerRegistryKey, E as speakersFilePath, F as syncWearableSource, H as wearableDayTag, J as wearableSourceLabel, K as writeDailyDigestMemory } from './orchestrator-CJI4xdqV.js';
6
6
  export { normalizeProjectionPreview, normalizeProjectionTags } from './memory-projection-format.js';
7
7
  export { ModelCapabilities, ModelRegistry } from './model-registry.js';
8
8
  export { ACTIVE_STATUSES, ContradictionFilter, ContradictionJudgeBatchResult, ContradictionJudgeInput, ContradictionJudgeResult, ContradictionListResult, ContradictionVerdict, ResolutionResult, ResolutionVerb, ScanDependencies, ScanResult, computePairId, executeResolution, isCoolingDown, isValidResolutionVerb, judgeContradictionPairs, listPairs, readPair, resolvePair, runContradictionScan, writePair, writePairs } from './contradiction/index.js';
@@ -20,11 +20,11 @@ export { CodexCliFallbackConfig, CodexCliFallbackMessage, CodexCliFallbackOption
20
20
  export { BufferSurpriseProbe, SmartBuffer, TriggerDecision } from './buffer.js';
21
21
  export { ComputeSurpriseOptions, DEFAULT_SURPRISE_K, RecentMemoryLike, computeSurprise } from './buffer-surprise.js';
22
22
  export { BufferSurpriseDistribution, BufferSurpriseReader, BufferSurpriseReportOptions, reportBufferSurpriseDistribution } from './buffer-surprise-report.js';
23
- import { aL as CodingContext, aQ as CodingModeConfig, P as PluginConfig, M as MemoryCategory, aR as WearableCleanupSettings, aC as WearableSourceSettings, aG as WearablesConfig, aF as WearableSourceConnector, aB as WearableConversation, aK as WearableCorrectionRule, aS as WearableDayTranscriptMeta, aJ as WearableDayTranscript } from './types-CeZYSC-E.js';
24
- export { a8 as AgentAccessAuthToken, X as BriefingActiveThread, aT as BriefingConfig, U as BriefingFocus, S as BriefingFollowup, aU as BriefingOpenCommitment, Z as BriefingRecentEntity, Y as BriefingResult, O as BriefingSections, aV as BriefingWindow, o as BufferSurpriseEvent, W as CalendarEvent, V as CalendarSource, aW as CodexCompatConfig, aO as ConsolidationObservation, s as ContinuityImprovementLoop, aX as DEFAULT_RECALL_DISCLOSURE, y as EntityFile, E as EntityStructuredSection, aY as ExtractedFact, G as GatewayConfig, al as MemoryActionEligibilityContext, aZ as MemoryActionEligibilitySource, ac as MemoryActionType, g as MemoryFile, j as MemoryFrontmatter, a_ as MemoryObservation, a$ as MemoryScope, b0 as RECALL_DISCLOSURE_LEVELS, N as RecallDisclosure, a7 as SecretRef, b1 as WearableAuthCheck, b2 as WearableFetchOptions, b3 as WearableFetchPage, aE as WearableMemoryMode, aD as WearableNativeMemory, b4 as WearableNativeMemoryPage, aI as WearableSourceStatus, aH as WearableSyncSummary, b5 as WearableTranscriptSegment, b6 as isRecallDisclosure } from './types-CeZYSC-E.js';
23
+ import { aL as CodingContext, aQ as CodingModeConfig, P as PluginConfig, M as MemoryCategory, aR as WearableCleanupSettings, aC as WearableSourceSettings, aG as WearablesConfig, aF as WearableSourceConnector, aB as WearableConversation, aK as WearableCorrectionRule, aS as WearableDayTranscriptMeta, aJ as WearableDayTranscript } from './types-PuiPZ9iE.js';
24
+ export { J as AgentAccessAuthToken, r as BriefingActiveThread, aT as BriefingConfig, p as BriefingFocus, o as BriefingFollowup, aU as BriefingOpenCommitment, t as BriefingRecentEntity, s as BriefingResult, n as BriefingSections, aV as BriefingWindow, z as BufferSurpriseEvent, q as CalendarEvent, C as CalendarSource, aW as CodexCompatConfig, aO as ConsolidationObservation, a6 as ContinuityImprovementLoop, aX as DEFAULT_RECALL_DISCLOSURE, E as EntityFile, $ as EntityStructuredSection, aY as ExtractedFact, G as GatewayConfig, ac as MemoryActionEligibilityContext, aZ as MemoryActionEligibilitySource, U as MemoryActionType, g as MemoryFile, k as MemoryFrontmatter, a_ as MemoryObservation, a$ as MemoryScope, b0 as RECALL_DISCLOSURE_LEVELS, j as RecallDisclosure, D as SecretRef, b1 as WearableAuthCheck, b2 as WearableFetchOptions, b3 as WearableFetchPage, aE as WearableMemoryMode, aD as WearableNativeMemory, b4 as WearableNativeMemoryPage, aI as WearableSourceStatus, aH as WearableSyncSummary, b5 as WearableTranscriptSegment, b6 as isRecallDisclosure } from './types-PuiPZ9iE.js';
25
25
  export { JudgeBatchResult, JudgeCandidate, JudgeVerdict, JudgeVerdictKind, clearVerdictCache, createVerdictCache, getVerdictKind, isDurableVerdict, isValidCachedVerdict, judgeFactDurability, normalizeCachedVerdict, verdictCacheSize } from './extraction-judge.js';
26
26
  export { hasBroadGraphIntent, inferIntentFromText, intentCompatibilityScore, isTaskInitiationIntent, planRecallMode } from './intent.js';
27
- export { i as EngramAccessInputError, g as EngramAccessService, P as ProcedureStatsConfigSnapshot, j as ProcedureStatsRecent, k as ProcedureStatsReport, l as ProcedureStatusCounts, m as computeProcedureStats, n as formatProcedureStatsText } from './access-service-DftqtNUy.js';
27
+ export { i as EngramAccessInputError, g as EngramAccessService, P as ProcedureStatsConfigSnapshot, j as ProcedureStatsRecent, k as ProcedureStatsReport, l as ProcedureStatusCounts, m as computeProcedureStats, n as formatProcedureStatsText } from './access-service-Cte3ol0W.js';
28
28
  export { FILTER_LABELS as DIRECT_ANSWER_FILTER_LABELS, DirectAnswerCandidate, DirectAnswerConfig, DirectAnswerInput, DirectAnswerReason, DirectAnswerResult, isDirectAnswerEligible } from './direct-answer.js';
29
29
  export { MemoryTier, TierRoutingPolicy, TierTransitionDecision, computeTierValueScore, decideTierTransition } from './tier-routing.js';
30
30
  export { ApplyReasoningTraceBoostOptions, BoostableResult, DEFAULT_REASONING_TRACE_BOOST, applyReasoningTraceBoost, isReasoningTracePath, looksLikeProblemSolvingQuery } from './reasoning-trace-recall.js';
@@ -38,7 +38,7 @@ export { OramaBackend } from './search/orama-backend.js';
38
38
  export { MeilisearchBackend } from './search/meilisearch-backend.js';
39
39
  export { buildEntityRecallSection } from './entity-retrieval.js';
40
40
  export { resolvePrincipal } from './namespaces/principal.js';
41
- export { N as NamespaceCatalog, b as NamespaceCatalogFilter, c as NamespaceCatalogRebuildResult, d as NamespaceCatalogSkippedRoot, e as NamespaceDiscoverySource, a as NamespaceKind, f as NamespaceRecord, g as NamespaceTouchMetadata } from './catalog-D7YDNNF7.js';
41
+ export { N as NamespaceCatalog, b as NamespaceCatalogFilter, c as NamespaceCatalogRebuildResult, d as NamespaceCatalogSkippedRoot, e as NamespaceDiscoverySource, a as NamespaceKind, f as NamespaceRecord, g as NamespaceTouchMetadata } from './catalog-DN1PzThs.js';
42
42
  export { SESSION_CHANNEL_TYPE, SessionIdentity, SessionStoragePaths, legacyParserReadbackDir, parseSessionIdentity, sessionStoragePaths } from './session-identity.js';
43
43
  export { storagePathHash } from './storage-paths.js';
44
44
  export { TrustZoneName, TrustZoneRecord, TrustZoneRecordKind, TrustZoneSourceClass, isTrustZoneName } from './trust-zones.js';
@@ -62,8 +62,8 @@ export { CitationBlock, CitationEntry, CitationMetadata, buildCitationGuidance,
62
62
  export { initLogger, log } from './logger.js';
63
63
  export { b as SemanticDedupDecision, a as SemanticDedupHit, S as SemanticDedupLookup, c as SemanticDedupOptions, d as decideSemanticDedup } from './semantic-DJR8_DMQ.js';
64
64
  export { OFFLINE_SYNC_APPLY_MAX_BODY_BYTES, OFFLINE_SYNC_CHANGESET_FORMAT, OFFLINE_SYNC_FILE_CONTENT_MAX_CHUNK_BYTES, OFFLINE_SYNC_FILE_CONTENT_TRANSFER_CHUNK_BYTES, OFFLINE_SYNC_SNAPSHOT_BASE_MAX_BODY_BYTES, OFFLINE_SYNC_SNAPSHOT_FORMAT, OFFLINE_SYNC_STATE_VERSION, OfflineSyncApplyChangesetResult, OfflineSyncApplyFileContentChunkResult, OfflineSyncApplySnapshotResult, OfflineSyncChange, OfflineSyncChangeset, OfflineSyncConflict, OfflineSyncFileContentChunk, OfflineSyncFileDigest, OfflineSyncFileRecord, OfflineSyncFileState, OfflineSyncFileTarget, OfflineSyncFileWriteTarget, OfflineSyncSnapshot, OfflineSyncState, applyOfflineSyncChangeset, applyOfflineSyncFileContentChunk, applyOfflineSyncSnapshot, buildOfflineSyncChangeset, buildOfflineSyncChangesetFromSnapshot, buildOfflineSyncSnapshot, buildOfflineSyncSnapshotForPaths, buildOfflineSyncSnapshotFromBase, defaultOfflineSyncStatePath, fileStatesFromSnapshot, iterateOfflineSyncSnapshotFileRecords, normalizeOfflineSyncChangeset, normalizeOfflineSyncSnapshot, offlineSyncStateFromSnapshot, readOfflineSyncFileContentChunk, readOfflineSyncState, shouldPreferIncomingOfflineRuntimeFile, summarizeOfflineSyncChangeset, summarizeOfflineSyncPendingChanges, summarizeOfflineSyncPendingFiles, writeOfflineSyncState } from './offline-sync.js';
65
- import { D as DiscoveredExtension } from './semantic-consolidation-CgREi9E0.js';
66
- export { E as ExtensionSchema, R as REMNIC_EXTENSIONS_TOTAL_TOKEN_LIMIT, b as buildExtensionsBlockForConsolidation, d as discoverMemoryExtensions, r as resolveExtensionsRoot } from './semantic-consolidation-CgREi9E0.js';
65
+ import { D as DiscoveredExtension } from './semantic-consolidation-BtUfv-AL.js';
66
+ export { E as ExtensionSchema, R as REMNIC_EXTENSIONS_TOTAL_TOKEN_LIMIT, b as buildExtensionsBlockForConsolidation, d as discoverMemoryExtensions, r as resolveExtensionsRoot } from './semantic-consolidation-BtUfv-AL.js';
67
67
  export { ConnectorCapability, ConnectorInstance, ConnectorManifest, ConnectorRegistry, DoctorCheck, DoctorResult, InstallOptions, InstallResult, MARKETPLACE_MANIFEST_FILENAME, MARKETPLACE_SCHEMA_VERSION, MarketplaceConfig, MarketplaceEntry, MarketplaceInstallResult, MarketplaceInstallType, MarketplaceLogger, MarketplaceManifest, MarketplaceValidation, RemoveResult, checkMarketplaceManifest, coerceInstallExtension, doctorConnector, generateMarketplaceManifest, getConnectorToken, installConnector, installFromMarketplace, listConnectors, loadRegistry, removeConnector, saveRegistry, validateMarketplaceManifest, writeMarketplaceManifest } from './connectors/index.js';
68
68
  import { L as LiveConnector, S as SyncIncrementalResult } from './framework-CNDn2164.js';
69
69
  export { c as CONNECTOR_ID_PATTERN, C as ConnectorConfig, b as ConnectorCursor, a as ConnectorDocument, d as ConnectorDocumentSource, e as SyncIncrementalArgs, i as isValidConnectorId, p as persistableConnectorConfig, r as redactConnectorConfigSecrets } from './framework-CNDn2164.js';
@@ -79,7 +79,7 @@ export { EnrichmentAuditEntry, EnrichmentCandidate, EnrichmentCostTier, Enrichme
79
79
  export { d as BulkImportError, B as BulkImportOptions, b as BulkImportResult, a as BulkImportSource, e as BulkImportSourceAdapter, f as ImportSourceRole, I as ImportTurn, g as ImportTurnValidationIssue, i as isImportRole, p as parseIsoTimestamp, v as validateImportTurn } from './types-ByK7T3L6.js';
80
80
  export { clearBulkImportSources, getBulkImportSource, listBulkImportSources, registerBulkImportSource } from './bulk-import/index.js';
81
81
  export { a as ProcessBatchContext, P as ProcessBatchFn, b as ProcessBatchResult, f as formatBatchTranscript, r as resolveBulkImportContext, c as runBulkImportPipeline, v as validateBatchSize } from './pipeline-BSTuml0d.js';
82
- export { B as BulkImportCliCommandOptions, p as parseStrictCliDate, r as runBulkImportCliCommand } from './cli-DUMkkdLl.js';
82
+ export { B as BulkImportCliCommandOptions, p as parseStrictCliDate, r as runBulkImportCliCommand } from './cli--yVN9yEV.js';
83
83
  export { DEFAULT_IMPORT_BATCH_SIZE, ImportProgress, ImportedMemory, ImporterAdapter, ImporterParseOptions, ImporterTransformOptions, ImporterWriteResult, ImporterWriteTarget, RunImportOptions, RunImporterResult, defaultWriteMemoriesToOrchestrator, importedMemoryToTurn, runImporter, validateImportBatchSize, validateImportRateLimit } from './importers/index.js';
84
84
  export { FallbackLlmClient, FallbackLlmOptions, FallbackLlmResponse, FallbackLlmRuntimeContext } from './fallback-llm.js';
85
85
  export { ComputeMemoryWorthInput, MemoryWorthResult, computeMemoryWorth } from './memory-worth.js';
@@ -1409,7 +1409,7 @@ interface ReviewItem {
1409
1409
  /** Created date */
1410
1410
  created: string;
1411
1411
  /** Reason it's in review */
1412
- reviewReason: "low_confidence" | "suggestion" | "contradiction" | "duplicate";
1412
+ reviewReason: "low_confidence" | "suggestion" | "contradiction" | "duplicate" | "tombstone_blocked";
1413
1413
  /** Additional context */
1414
1414
  context?: string;
1415
1415
  }
@@ -1423,6 +1423,8 @@ interface ReviewResult {
1423
1423
  updatedPath?: string;
1424
1424
  /** Status message */
1425
1425
  message: string;
1426
+ /** Tombstone id cleared by an approve action (for the caller to revoke). */
1427
+ clearedTombstoneId?: string;
1426
1428
  }
1427
1429
  interface ReviewListResult {
1428
1430
  /** Items pending review */
@@ -1445,6 +1447,15 @@ interface ReviewOptions {
1445
1447
  interface ReviewActionOptions {
1446
1448
  /** Match the threshold used when listing review items (default: 0.7) */
1447
1449
  confidenceThreshold?: number;
1450
+ /**
1451
+ * Revocation hook (issue #1579). When approving a memory whose frontmatter
1452
+ * carries `blockedBy: <tombstoneId>`, the hook fires so the caller (CLI /
1453
+ * orchestrator) can append a `kind: "revocation"` tombstone entry —
1454
+ * re-allowing the content. Fire-and-forget: a revocation failure MUST NOT
1455
+ * fail the approval (gotcha #13). The hook receives the tombstone id and
1456
+ * the memory id.
1457
+ */
1458
+ onApproveBlockedMemory?: (tombstoneId: string, memoryId: string) => void | Promise<void>;
1448
1459
  }
1449
1460
  /**
1450
1461
  * List items pending review.
package/dist/index.js CHANGED
@@ -94,7 +94,7 @@ import {
94
94
  registerTrainingExportAdapter,
95
95
  runBulkImportCliCommand,
96
96
  runWearablesCliCommand
97
- } from "./chunk-HZ5DRA4Q.js";
97
+ } from "./chunk-NHBEO3F3.js";
98
98
  import "./chunk-MC4FJXPA.js";
99
99
  import "./chunk-LQHDIS7L.js";
100
100
  import "./chunk-7F7Z6MOS.js";
@@ -113,8 +113,8 @@ import "./chunk-HOJZMQ4J.js";
113
113
  import "./chunk-EEC4PCG5.js";
114
114
  import "./chunk-PYIFUBRK.js";
115
115
  import "./chunk-D6RIFG4O.js";
116
- import "./chunk-A62RAIBN.js";
117
- import "./chunk-E6GOVHHJ.js";
116
+ import "./chunk-SEWF2O74.js";
117
+ import "./chunk-GYVVQYA3.js";
118
118
  import "./chunk-KJTKLXTH.js";
119
119
  import "./chunk-LZZNTPLR.js";
120
120
  import "./chunk-JCK7V6SN.js";
@@ -136,22 +136,22 @@ import {
136
136
  } from "./chunk-OUELRE5E.js";
137
137
  import "./chunk-GQL52GQ5.js";
138
138
  import "./chunk-IQ7WCZRW.js";
139
- import "./chunk-2KJG6ZZK.js";
139
+ import "./chunk-HDLC75NX.js";
140
140
  import {
141
141
  clearAuthTokenSecretCache,
142
142
  isAgentAccessSecretRef,
143
143
  resolveAgentAccessAuthToken
144
144
  } from "./chunk-TGQ2NTWH.js";
145
- import "./chunk-RTN2BLZM.js";
145
+ import "./chunk-T5QAZIBO.js";
146
146
  import {
147
147
  parseXrayBudgetFlag,
148
148
  parseXrayCliOptions
149
- } from "./chunk-QVTSLRKT.js";
149
+ } from "./chunk-IJEZMWKA.js";
150
150
  import {
151
151
  parseStrictCliDate
152
152
  } from "./chunk-3T74IZB3.js";
153
- import "./chunk-UDDSC6PO.js";
154
- import "./chunk-YY2HGKWR.js";
153
+ import "./chunk-33L6XHU2.js";
154
+ import "./chunk-G5PKTQ5J.js";
155
155
  import "./chunk-HL4DB7TO.js";
156
156
  import "./chunk-7XH7VJN4.js";
157
157
  import "./chunk-YNDLCWXS.js";
@@ -191,7 +191,7 @@ import {
191
191
  saveTaxonomy,
192
192
  validateSlug,
193
193
  validateTaxonomy
194
- } from "./chunk-JYVD2XZ4.js";
194
+ } from "./chunk-GA5A6MJH.js";
195
195
  import {
196
196
  WEARABLE_SOURCE_PREFIX,
197
197
  buildExtractionTurns,
@@ -219,7 +219,7 @@ import {
219
219
  migrateFromEngram,
220
220
  rollbackFromEngramMigration
221
221
  } from "./chunk-7HYPN2GC.js";
222
- import "./chunk-MRX6S22R.js";
222
+ import "./chunk-YXIFA36P.js";
223
223
  import "./chunk-666A3MOW.js";
224
224
  import "./chunk-HHLLAQGZ.js";
225
225
  import "./chunk-X5J3JZR3.js";
@@ -235,13 +235,11 @@ import "./chunk-UWK5OXUJ.js";
235
235
  import "./chunk-O7GOFAM3.js";
236
236
  import "./chunk-MDJURR27.js";
237
237
  import "./chunk-7N4KAIGN.js";
238
- import "./chunk-PJIHCOGV.js";
238
+ import "./chunk-ZDK2IW5F.js";
239
239
  import "./chunk-UFS7OXGL.js";
240
240
  import "./chunk-TECVW3JP.js";
241
241
  import "./chunk-UHGBNIOS.js";
242
242
  import "./chunk-LXOM6IQU.js";
243
- import "./chunk-MRFVMSTR.js";
244
- import "./chunk-IREVVFTM.js";
245
243
  import {
246
244
  CODEX_THREAD_KEY_PREFIX
247
245
  } from "./chunk-4EX5WZ4M.js";
@@ -347,7 +345,7 @@ import {
347
345
  import "./chunk-ZA2S2VLL.js";
348
346
  import {
349
347
  buildEntityRecallSection
350
- } from "./chunk-COEZR6F5.js";
348
+ } from "./chunk-CHM274U6.js";
351
349
  import {
352
350
  buildEventOrderRecallSection,
353
351
  shouldRecallEventOrderEvidence
@@ -362,11 +360,11 @@ import {
362
360
  import "./chunk-VEWZZM3H.js";
363
361
  import "./chunk-2PRQG7PV.js";
364
362
  import "./chunk-WIWPSQYU.js";
365
- import "./chunk-FSEQXHEZ.js";
363
+ import "./chunk-O54DY26V.js";
366
364
  import "./chunk-2F6NP3NT.js";
367
365
  import "./chunk-TERNBNJB.js";
368
366
  import "./chunk-QRDOSYOR.js";
369
- import "./chunk-N55RJT4N.js";
367
+ import "./chunk-JKW5XSWC.js";
370
368
  import "./chunk-ZRWB5D4H.js";
371
369
  import "./chunk-PONNZ54D.js";
372
370
  import {
@@ -377,11 +375,11 @@ import {
377
375
  } from "./chunk-S4DDLTPX.js";
378
376
  import "./chunk-SFQ6QNL7.js";
379
377
  import "./chunk-33JBK2XP.js";
380
- import "./chunk-SIDSEXUG.js";
378
+ import "./chunk-XY4WJTEX.js";
381
379
  import {
382
380
  NamespaceCatalog
383
- } from "./chunk-M4DQWUKX.js";
384
- import "./chunk-2K64VH66.js";
381
+ } from "./chunk-DR2JTSLZ.js";
382
+ import "./chunk-PQG4T5V3.js";
385
383
  import "./chunk-KFY3SGN7.js";
386
384
  import {
387
385
  resolvePluginEntry
@@ -431,11 +429,11 @@ import {
431
429
  import "./chunk-PBH4JUAB.js";
432
430
  import {
433
431
  buildExtensionsBlockForConsolidation
434
- } from "./chunk-SJQ4HY3E.js";
432
+ } from "./chunk-2NWHLAXX.js";
435
433
  import {
436
434
  runCodexMaterialize,
437
435
  runPostConsolidationMaterialize
438
- } from "./chunk-2ULWWAQH.js";
436
+ } from "./chunk-SMIVW7XC.js";
439
437
  import {
440
438
  MATERIALIZE_VERSION,
441
439
  SENTINEL_FILE,
@@ -471,7 +469,7 @@ import {
471
469
  parseConfig,
472
470
  parseWearablesConfig,
473
471
  resolveEnvVars
474
- } from "./chunk-3LSSFCB4.js";
472
+ } from "./chunk-K4DWSPMW.js";
475
473
  import {
476
474
  REDACTION_PLACEHOLDER,
477
475
  applyCorrections,
@@ -491,7 +489,7 @@ import "./chunk-LBJBNWS2.js";
491
489
  import "./chunk-OADWQ5CR.js";
492
490
  import {
493
491
  EngramAccessHttpServer
494
- } from "./chunk-IZ5E6ZTK.js";
492
+ } from "./chunk-CCOXIDRM.js";
495
493
  import "./chunk-SEDEKFYQ.js";
496
494
  import "./chunk-JBPKEARU.js";
497
495
  import "./chunk-TMSXWOBZ.js";
@@ -505,7 +503,7 @@ import {
505
503
  } from "./chunk-7WV3F5DQ.js";
506
504
  import {
507
505
  EngramMcpServer
508
- } from "./chunk-LIWU4QI6.js";
506
+ } from "./chunk-YMTGXDN6.js";
509
507
  import {
510
508
  REMNIC_CHATGPT_MEMORY_INSPECTOR_CANONICAL_TOOL,
511
509
  REMNIC_CHATGPT_MEMORY_INSPECTOR_MIME_TYPE,
@@ -521,7 +519,7 @@ import {
521
519
  parseOaiMemCitation,
522
520
  sanitizeNoteForCitation
523
521
  } from "./chunk-D24OXEPB.js";
524
- import "./chunk-CQ4PGFMC.js";
522
+ import "./chunk-JX3YZVII.js";
525
523
  import {
526
524
  formatZodError,
527
525
  memoryStoreRequestSchema,
@@ -529,14 +527,14 @@ import {
529
527
  recallRequestSchema,
530
528
  suggestionSubmitRequestSchema,
531
529
  validateRequest
532
- } from "./chunk-JI6HWBYL.js";
533
- import "./chunk-XL5RSHZP.js";
530
+ } from "./chunk-Q4O3ET6F.js";
531
+ import "./chunk-EOBJRBLC.js";
534
532
  import {
535
533
  EngramAccessInputError,
536
534
  EngramAccessService,
537
535
  computeProcedureStats,
538
536
  formatProcedureStatsText
539
- } from "./chunk-XFG3PVZE.js";
537
+ } from "./chunk-3E5WRQNQ.js";
540
538
  import "./chunk-GDASG7NC.js";
541
539
  import "./chunk-GDB4J2H3.js";
542
540
  import {
@@ -554,7 +552,7 @@ import {
554
552
  renderXrayJson,
555
553
  renderXrayMarkdown,
556
554
  renderXrayText
557
- } from "./chunk-TIVZ4MCG.js";
555
+ } from "./chunk-D75JXBV4.js";
558
556
  import "./chunk-SOBJ6NEY.js";
559
557
  import "./chunk-BT7NVCML.js";
560
558
  import "./chunk-H7XKCNR6.js";
@@ -574,7 +572,7 @@ import {
574
572
  import {
575
573
  storagePathHash
576
574
  } from "./chunk-FF4KLI5W.js";
577
- import "./chunk-LPIWEKZ3.js";
575
+ import "./chunk-SDPDU2PM.js";
578
576
  import "./chunk-BMFZLLNI.js";
579
577
  import {
580
578
  isLcmMessagePartKind,
@@ -587,7 +585,7 @@ import {
587
585
  partsFromRenderedText
588
586
  } from "./chunk-CI7RKSRE.js";
589
587
  import "./chunk-6HMYUWXR.js";
590
- import "./chunk-ANZLT74L.js";
588
+ import "./chunk-RJ2THZ4H.js";
591
589
  import "./chunk-VPAFWWCL.js";
592
590
  import "./chunk-QQW2LIEA.js";
593
591
  import "./chunk-SANZHXY2.js";
@@ -653,12 +651,13 @@ import {
653
651
  renderBriefingMarkdown,
654
652
  resolveBriefingSaveDir,
655
653
  validateBriefingFormat
656
- } from "./chunk-EZWQZYLK.js";
654
+ } from "./chunk-6JDGADXK.js";
657
655
  import {
658
656
  StorageManager,
659
657
  parseEntityFile,
660
658
  serializeEntityFile
661
- } from "./chunk-RIC5U67B.js";
659
+ } from "./chunk-X74FJSW7.js";
660
+ import "./chunk-PCZR32VL.js";
662
661
  import {
663
662
  DEFAULT_SELF_NAME,
664
663
  WEARABLES_DIR_NAME,
@@ -676,8 +675,11 @@ import {
676
675
  speakerRegistryKey,
677
676
  speakersFilePath
678
677
  } from "./chunk-M7XQSUBB.js";
678
+ import "./chunk-YPR7DOPD.js";
679
679
  import "./chunk-5UZXUTVO.js";
680
680
  import "./chunk-5GPPACXK.js";
681
+ import "./chunk-OMNTQPZO.js";
682
+ import "./chunk-IREVVFTM.js";
681
683
  import "./chunk-SVOZFLIQ.js";
682
684
  import {
683
685
  CITATION_UNKNOWN,
@@ -694,7 +696,7 @@ import {
694
696
  DEFAULT_RECALL_DISCLOSURE,
695
697
  RECALL_DISCLOSURE_LEVELS,
696
698
  isRecallDisclosure
697
- } from "./chunk-ZXUOAFUG.js";
699
+ } from "./chunk-IKNQAGBV.js";
698
700
  import {
699
701
  normalizeProjectionPreview,
700
702
  normalizeProjectionTags
@@ -790,12 +792,12 @@ import {
790
792
  buildActionConfidenceInputFromOptions,
791
793
  evaluateActionConfidence,
792
794
  renderActionConfidenceText
793
- } from "./chunk-AH2JUU6X.js";
795
+ } from "./chunk-Z2YFLXHU.js";
794
796
  import {
795
797
  buildRetrievedMemoryProvenance,
796
798
  normalizeRetrievedMemoryProvenance,
797
799
  summarizeRetrievedMemoryProvenance
798
- } from "./chunk-AC5LO7IU.js";
800
+ } from "./chunk-I4WBNM3M.js";
799
801
  import {
800
802
  USER_BOUNDARY_SCOPES,
801
803
  USER_CONTEXT_SCOPES,
@@ -3251,7 +3253,7 @@ function listReviewItems(options) {
3251
3253
  const body = extractBody4(content);
3252
3254
  if (!fm?.id) return false;
3253
3255
  const confidence = parseConfidence(fm.confidence, 1);
3254
- if (confidence >= confidenceThreshold) return false;
3256
+ if (confidence >= confidenceThreshold && !(typeof fm.blockedBy === "string" && fm.blockedBy.length > 0)) return false;
3255
3257
  if (parseBoolean(fm.reviewDismissed)) return false;
3256
3258
  if (items.some((i) => i.id === fm.id)) return false;
3257
3259
  addItem({
@@ -3263,7 +3265,7 @@ function listReviewItems(options) {
3263
3265
  source: fm.source ?? "unknown",
3264
3266
  filePath,
3265
3267
  created: fm.created ?? (/* @__PURE__ */ new Date()).toISOString(),
3266
- reviewReason: "low_confidence"
3268
+ reviewReason: typeof fm.blockedBy === "string" && fm.blockedBy.length > 0 ? "tombstone_blocked" : "low_confidence"
3267
3269
  });
3268
3270
  return isLimitReached();
3269
3271
  });
@@ -3294,10 +3296,25 @@ function approveItem(memoryDir, itemId, options) {
3294
3296
  const content = fs5.readFileSync(found.filePath, "utf8");
3295
3297
  const fm = parseFrontmatter4(content);
3296
3298
  if (!fm) return { itemId, action: "approve", message: "Could not parse frontmatter" };
3299
+ const blockedBy = typeof fm.blockedBy === "string" ? fm.blockedBy : null;
3300
+ if (blockedBy && options.onApproveBlockedMemory) {
3301
+ try {
3302
+ const maybe = options.onApproveBlockedMemory(blockedBy, itemId);
3303
+ if (maybe && typeof maybe.then === "function") {
3304
+ void maybe.catch(() => void 0);
3305
+ }
3306
+ } catch {
3307
+ }
3308
+ }
3297
3309
  const updatedContent = updateFrontmatterFields(content, {
3298
3310
  confidence: "0.9",
3299
3311
  confidenceTier: "high",
3300
- reviewDismissed: null
3312
+ reviewDismissed: null,
3313
+ // Clear the tombstone-block markers so the promoted memory is active.
3314
+ // Clear the tombstone-block markers AND restore active status so the
3315
+ // promoted memory is fully active in recall + provenance (issue #1579
3316
+ // review: leaving status: pending_review kept it invisible to recall).
3317
+ ...blockedBy ? { blockedBy: null, tombstoneBlockTier: null, status: "active" } : {}
3301
3318
  });
3302
3319
  if (found.location === "category") {
3303
3320
  fs5.writeFileSync(found.filePath, updatedContent, "utf8");
@@ -3305,7 +3322,8 @@ function approveItem(memoryDir, itemId, options) {
3305
3322
  itemId,
3306
3323
  action: "approve",
3307
3324
  updatedPath: found.filePath,
3308
- message: "Approved low-confidence memory in place with confidence 0.9"
3325
+ message: "Approved low-confidence memory in place with confidence 0.9",
3326
+ ...blockedBy ? { clearedTombstoneId: blockedBy } : {}
3309
3327
  };
3310
3328
  }
3311
3329
  const category = fm.category ?? "fact";
@@ -3320,7 +3338,8 @@ function approveItem(memoryDir, itemId, options) {
3320
3338
  itemId,
3321
3339
  action: "approve",
3322
3340
  updatedPath: promotedPath,
3323
- message: `Promoted to ${category} with confidence 0.9`
3341
+ message: `Promoted to ${category} with confidence 0.9`,
3342
+ ...blockedBy ? { clearedTombstoneId: blockedBy } : {}
3324
3343
  };
3325
3344
  }
3326
3345
  function dismissItem(memoryDir, itemId, options) {
@@ -3395,6 +3414,9 @@ function findFileById(rootReal, dir, id, include) {
3395
3414
  }
3396
3415
  function isLowConfidenceReviewCandidate(fm, options) {
3397
3416
  const threshold = options.confidenceThreshold ?? DEFAULT_CONFIDENCE_THRESHOLD;
3417
+ if (typeof fm.blockedBy === "string" && fm.blockedBy.length > 0) {
3418
+ return !parseBoolean(fm.reviewDismissed);
3419
+ }
3398
3420
  return parseConfidence(fm.confidence, 1) < threshold && !parseBoolean(fm.reviewDismissed);
3399
3421
  }
3400
3422
  function parseBoolean(value) {