@remnic/core 9.3.699 → 9.3.701

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 (285) 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 +30 -28
  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-CGVWK6lZ.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-DBIghceA.d.ts} +27 -53
  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-E6GOVHHJ.js → chunk-27LQPUMZ.js} +3 -3
  36. package/dist/{chunk-XJNBEDFE.js → chunk-3FAMU5TX.js} +31 -74
  37. package/dist/chunk-3FAMU5TX.js.map +1 -0
  38. package/dist/chunk-3JJWNZTT.js +446 -0
  39. package/dist/chunk-3JJWNZTT.js.map +1 -0
  40. package/dist/{chunk-JYVD2XZ4.js → chunk-4HIAWLA2.js} +58 -25
  41. package/dist/chunk-4HIAWLA2.js.map +1 -0
  42. package/dist/{chunk-A62RAIBN.js → chunk-6W2D6FGG.js} +2 -2
  43. package/dist/{chunk-COEZR6F5.js → chunk-7TAQEPLE.js} +2 -2
  44. package/dist/{chunk-TIVZ4MCG.js → chunk-D75JXBV4.js} +3 -3
  45. package/dist/{chunk-YY2HGKWR.js → chunk-DEDQXIDL.js} +2 -2
  46. package/dist/{chunk-XFG3PVZE.js → chunk-FUCJAZ25.js} +8 -8
  47. package/dist/{chunk-EZWQZYLK.js → chunk-HF4N43Q7.js} +2 -2
  48. package/dist/{chunk-HZ5DRA4Q.js → chunk-HXHKLVAS.js} +20 -20
  49. package/dist/{chunk-AC5LO7IU.js → chunk-I4WBNM3M.js} +7 -1
  50. package/dist/chunk-I4WBNM3M.js.map +1 -0
  51. package/dist/{chunk-QVTSLRKT.js → chunk-IJEZMWKA.js} +3 -3
  52. package/dist/{chunk-ZXUOAFUG.js → chunk-IKNQAGBV.js} +1 -1
  53. package/dist/chunk-IKNQAGBV.js.map +1 -0
  54. package/dist/{chunk-RC3CNIPK.js → chunk-IO5NQEGZ.js} +2 -2
  55. package/dist/{chunk-2ULWWAQH.js → chunk-ISLJ5WIM.js} +2 -2
  56. package/dist/{chunk-2KJG6ZZK.js → chunk-IYOPIG3E.js} +2 -2
  57. package/dist/{chunk-M4DQWUKX.js → chunk-JKOKX3PS.js} +62 -163
  58. package/dist/chunk-JKOKX3PS.js.map +1 -0
  59. package/dist/{chunk-SJQ4HY3E.js → chunk-JO3E5VGS.js} +2 -2
  60. package/dist/{chunk-3LSSFCB4.js → chunk-K4DWSPMW.js} +11 -1
  61. package/dist/chunk-K4DWSPMW.js.map +1 -0
  62. package/dist/{chunk-IZ5E6ZTK.js → chunk-KF4TXW7Z.js} +6 -6
  63. package/dist/{chunk-CQ4PGFMC.js → chunk-KS7WQ4BZ.js} +4 -4
  64. package/dist/chunk-LTJAMRGI.js +286 -0
  65. package/dist/chunk-LTJAMRGI.js.map +1 -0
  66. package/dist/{chunk-PJIHCOGV.js → chunk-MNU5G4TK.js} +2 -2
  67. package/dist/{chunk-2K64VH66.js → chunk-ODTWHSY2.js} +69 -45
  68. package/dist/chunk-ODTWHSY2.js.map +1 -0
  69. package/dist/{chunk-LIWU4QI6.js → chunk-OLOYQZFB.js} +5 -5
  70. package/dist/{chunk-MRFVMSTR.js → chunk-OMNTQPZO.js} +20 -1
  71. package/dist/{chunk-MRFVMSTR.js.map → chunk-OMNTQPZO.js.map} +1 -1
  72. package/dist/{chunk-JI6HWBYL.js → chunk-Q4O3ET6F.js} +2 -2
  73. package/dist/{chunk-N55RJT4N.js → chunk-QP37KL5H.js} +2 -2
  74. package/dist/{chunk-LPIWEKZ3.js → chunk-SDPDU2PM.js} +3 -3
  75. package/dist/{chunk-RIC5U67B.js → chunk-SFMRLXIV.js} +232 -4
  76. package/dist/chunk-SFMRLXIV.js.map +1 -0
  77. package/dist/{chunk-RTN2BLZM.js → chunk-T5QAZIBO.js} +2 -2
  78. package/dist/{chunk-ANZLT74L.js → chunk-TFVVONWD.js} +2 -2
  79. package/dist/{chunk-SIDSEXUG.js → chunk-WFEZUGU5.js} +2 -2
  80. package/dist/{chunk-FSEQXHEZ.js → chunk-XTIRCSIH.js} +2 -2
  81. package/dist/{chunk-XL5RSHZP.js → chunk-YO4MBK3I.js} +2 -2
  82. package/dist/{chunk-AH2JUU6X.js → chunk-Z2YFLXHU.js} +2 -2
  83. package/dist/{chunk-MRX6S22R.js → chunk-ZT7B64BE.js} +2 -2
  84. package/dist/{chunk-UDDSC6PO.js → chunk-ZYNMX6IU.js} +54 -6
  85. package/dist/chunk-ZYNMX6IU.js.map +1 -0
  86. package/dist/{cli-DUMkkdLl.d.ts → cli-D3XeenwN.d.ts} +3 -3
  87. package/dist/cli.d.ts +6 -6
  88. package/dist/cli.js +32 -28
  89. package/dist/compounding/engine.d.ts +1 -1
  90. package/dist/compounding/engine.js +7 -3
  91. package/dist/compounding/preference-consolidator.d.ts +1 -1
  92. package/dist/compression-optimizer.d.ts +1 -1
  93. package/dist/config.d.ts +1 -1
  94. package/dist/config.js +1 -1
  95. package/dist/connectors/codex-materialize-runner.d.ts +1 -1
  96. package/dist/connectors/codex-materialize-runner.js +7 -3
  97. package/dist/connectors/codex-materialize.d.ts +1 -1
  98. package/dist/connectors/index.d.ts +1 -1
  99. package/dist/connectors/index.js +7 -3
  100. package/dist/consolidation-provenance-check.d.ts +1 -1
  101. package/dist/consolidation-undo.d.ts +1 -1
  102. package/dist/contradiction/index.d.ts +1 -1
  103. package/dist/conversation-index/backend.d.ts +1 -1
  104. package/dist/conversation-index/chunker.d.ts +1 -1
  105. package/dist/conversation-index/faiss-adapter.d.ts +1 -1
  106. package/dist/conversation-index/indexer.d.ts +1 -1
  107. package/dist/conversation-index/search.d.ts +1 -1
  108. package/dist/day-summary.d.ts +1 -1
  109. package/dist/delinearize.d.ts +1 -1
  110. package/dist/direct-answer-wiring.d.ts +1 -1
  111. package/dist/direct-answer.d.ts +1 -1
  112. package/dist/embedding-fallback.d.ts +1 -1
  113. package/dist/enrichment/index.d.ts +1 -1
  114. package/dist/entity-retrieval.d.ts +1 -1
  115. package/dist/entity-retrieval.js +7 -3
  116. package/dist/entity-schema.d.ts +1 -1
  117. package/dist/explicit-capture.d.ts +6 -6
  118. package/dist/extraction-faithfulness.d.ts +1 -1
  119. package/dist/extraction-judge-telemetry.d.ts +1 -1
  120. package/dist/extraction-judge-training.d.ts +1 -1
  121. package/dist/extraction-judge.d.ts +1 -1
  122. package/dist/extraction.d.ts +1 -1
  123. package/dist/fallback-llm.d.ts +1 -1
  124. package/dist/{forget-PLR6J5DN.js → forget-6SOIPUMQ.js} +32 -1
  125. package/dist/forget-6SOIPUMQ.js.map +1 -0
  126. package/dist/identity-continuity.d.ts +1 -1
  127. package/dist/importance.d.ts +1 -1
  128. package/dist/index.d.ts +21 -10
  129. package/dist/index.js +65 -43
  130. package/dist/index.js.map +1 -1
  131. package/dist/intent.d.ts +1 -1
  132. package/dist/lcm/engine.d.ts +1 -1
  133. package/dist/lcm/index.d.ts +1 -1
  134. package/dist/lcm/tools.d.ts +1 -1
  135. package/dist/lifecycle.d.ts +1 -1
  136. package/dist/live-connectors-runner.d.ts +1 -1
  137. package/dist/local-llm.d.ts +1 -1
  138. package/dist/maintenance/memory-governance.d.ts +1 -1
  139. package/dist/maintenance/memory-governance.js +7 -3
  140. package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +7 -3
  141. package/dist/maintenance/rebuild-memory-projection.js +8 -4
  142. package/dist/mcp-memory-inspector-app.d.ts +5 -5
  143. package/dist/memory-action-policy.d.ts +1 -1
  144. package/dist/memory-cache.d.ts +1 -1
  145. package/dist/memory-lifecycle-ledger-utils.d.ts +1 -1
  146. package/dist/memory-projection-store.d.ts +1 -1
  147. package/dist/memory-provenance.d.ts +1 -1
  148. package/dist/memory-provenance.js +1 -1
  149. package/dist/memory-worth-outcomes.d.ts +1 -1
  150. package/dist/models-json.d.ts +1 -1
  151. package/dist/namespaces/migrate.d.ts +2 -2
  152. package/dist/namespaces/migrate.js +8 -4
  153. package/dist/namespaces/principal.d.ts +1 -1
  154. package/dist/namespaces/search.d.ts +1 -1
  155. package/dist/namespaces/storage.d.ts +32 -3
  156. package/dist/namespaces/storage.js +7 -3
  157. package/dist/native-knowledge.d.ts +1 -1
  158. package/dist/operator-toolkit.d.ts +19 -2
  159. package/dist/operator-toolkit.js +17 -11
  160. package/dist/orchestration/maintenance.d.ts +2 -2
  161. package/dist/orchestration/maintenance.js +9 -5
  162. package/dist/{orchestrator-Dv8JQu3-.d.ts → orchestrator-BzMCZlKn.d.ts} +3 -3
  163. package/dist/orchestrator.d.ts +4 -4
  164. package/dist/orchestrator.js +22 -20
  165. package/dist/patterns-cli.d.ts +1 -1
  166. package/dist/policy-runtime.d.ts +1 -1
  167. package/dist/provenance.d.ts +1 -1
  168. package/dist/qmd-recall-cache.d.ts +1 -1
  169. package/dist/qmd.d.ts +1 -1
  170. package/dist/recall-disclosure-escalation.d.ts +1 -1
  171. package/dist/recall-explain-renderer.d.ts +1 -1
  172. package/dist/recall-explain-renderer.js +4 -4
  173. package/dist/recall-planner-llm.d.ts +1 -1
  174. package/dist/recall-state.d.ts +1 -1
  175. package/dist/recall-tag-filter.d.ts +1 -1
  176. package/dist/recall-xray-cli.d.ts +1 -1
  177. package/dist/recall-xray-cli.js +5 -5
  178. package/dist/recall-xray-renderer.d.ts +1 -1
  179. package/dist/recall-xray-renderer.js +4 -4
  180. package/dist/recall-xray.d.ts +1 -1
  181. package/dist/recall-xray.js +3 -3
  182. package/dist/resolve-auth-token.d.ts +1 -1
  183. package/dist/resume-bundles.js +2 -2
  184. package/dist/retrieval-agents.d.ts +1 -1
  185. package/dist/retrieval-tiers.d.ts +1 -1
  186. package/dist/routing/engine.d.ts +1 -1
  187. package/dist/routing/store.d.ts +1 -1
  188. package/dist/schemas.d.ts +28 -28
  189. package/dist/search/embed-helper.d.ts +1 -1
  190. package/dist/search/factory.d.ts +1 -1
  191. package/dist/search/index.d.ts +1 -1
  192. package/dist/search/lancedb-backend.d.ts +1 -1
  193. package/dist/search/meilisearch-backend.d.ts +1 -1
  194. package/dist/search/noop-backend.d.ts +1 -1
  195. package/dist/search/orama-backend.d.ts +1 -1
  196. package/dist/search/port.d.ts +1 -1
  197. package/dist/search/remote-backend.d.ts +1 -1
  198. package/dist/{semantic-consolidation-CgREi9E0.d.ts → semantic-consolidation-BtUfv-AL.d.ts} +1 -1
  199. package/dist/semantic-consolidation.d.ts +2 -2
  200. package/dist/semantic-consolidation.js +8 -4
  201. package/dist/semantic-rule-promotion.js +7 -3
  202. package/dist/semantic-rule-verifier.d.ts +1 -1
  203. package/dist/semantic-rule-verifier.js +7 -3
  204. package/dist/session-observer-bands.d.ts +1 -1
  205. package/dist/session-observer-state.d.ts +1 -1
  206. package/dist/shared-context/manager.d.ts +1 -1
  207. package/dist/signal.d.ts +1 -1
  208. package/dist/storage.d.ts +306 -2
  209. package/dist/storage.js +6 -2
  210. package/dist/summarizer.d.ts +1 -1
  211. package/dist/summarizer.js +3 -2
  212. package/dist/summary-snapshot.d.ts +1 -1
  213. package/dist/summary-snapshot.js +2 -1
  214. package/dist/temporal-supersession.d.ts +1 -1
  215. package/dist/temporal-supersession.js +1 -1
  216. package/dist/temporal-validity.d.ts +1 -1
  217. package/dist/threading.d.ts +1 -1
  218. package/dist/tier-migration.d.ts +1 -1
  219. package/dist/tier-routing.d.ts +1 -1
  220. package/dist/topics.d.ts +1 -1
  221. package/dist/transcript.d.ts +1 -1
  222. package/dist/transfer/types.d.ts +12 -12
  223. package/dist/{types-CeZYSC-E.d.ts → types-PuiPZ9iE.d.ts} +34 -1
  224. package/dist/types.d.ts +1 -1
  225. package/dist/types.js +1 -1
  226. package/dist/utility-runtime.d.ts +1 -1
  227. package/dist/utils/serialize-mutations.js +5 -280
  228. package/dist/utils/serialize-mutations.js.map +1 -1
  229. package/dist/verified-recall.js +7 -3
  230. package/package.json +2 -2
  231. package/src/config.ts +10 -0
  232. package/src/lifecycle/tombstones.test.ts +355 -0
  233. package/src/lifecycle/tombstones.ts +807 -0
  234. package/src/maintenance/forget.ts +41 -0
  235. package/src/maintenance/pattern-reinforcement.ts +47 -0
  236. package/src/memory-provenance.ts +12 -0
  237. package/src/namespaces/catalog.test.ts +222 -14
  238. package/src/namespaces/catalog.ts +54 -187
  239. package/src/namespaces/storage.ts +120 -80
  240. package/src/operator-toolkit.ts +77 -0
  241. package/src/orchestrator.ts +16 -0
  242. package/src/review/index.ts +48 -3
  243. package/src/storage.ts +329 -2
  244. package/src/summary-snapshot.test.ts +63 -1
  245. package/src/summary-snapshot.ts +61 -80
  246. package/src/temporal-supersession.ts +38 -0
  247. package/src/types.ts +34 -0
  248. package/src/utils/serialize-mutations.ts +10 -6
  249. package/dist/chunk-2K64VH66.js.map +0 -1
  250. package/dist/chunk-3LSSFCB4.js.map +0 -1
  251. package/dist/chunk-AC5LO7IU.js.map +0 -1
  252. package/dist/chunk-JYVD2XZ4.js.map +0 -1
  253. package/dist/chunk-M4DQWUKX.js.map +0 -1
  254. package/dist/chunk-RIC5U67B.js.map +0 -1
  255. package/dist/chunk-UDDSC6PO.js.map +0 -1
  256. package/dist/chunk-XJNBEDFE.js.map +0 -1
  257. package/dist/chunk-ZXUOAFUG.js.map +0 -1
  258. package/dist/forget-PLR6J5DN.js.map +0 -1
  259. /package/dist/{chunk-E6GOVHHJ.js.map → chunk-27LQPUMZ.js.map} +0 -0
  260. /package/dist/{chunk-A62RAIBN.js.map → chunk-6W2D6FGG.js.map} +0 -0
  261. /package/dist/{chunk-COEZR6F5.js.map → chunk-7TAQEPLE.js.map} +0 -0
  262. /package/dist/{chunk-TIVZ4MCG.js.map → chunk-D75JXBV4.js.map} +0 -0
  263. /package/dist/{chunk-YY2HGKWR.js.map → chunk-DEDQXIDL.js.map} +0 -0
  264. /package/dist/{chunk-XFG3PVZE.js.map → chunk-FUCJAZ25.js.map} +0 -0
  265. /package/dist/{chunk-EZWQZYLK.js.map → chunk-HF4N43Q7.js.map} +0 -0
  266. /package/dist/{chunk-HZ5DRA4Q.js.map → chunk-HXHKLVAS.js.map} +0 -0
  267. /package/dist/{chunk-QVTSLRKT.js.map → chunk-IJEZMWKA.js.map} +0 -0
  268. /package/dist/{chunk-RC3CNIPK.js.map → chunk-IO5NQEGZ.js.map} +0 -0
  269. /package/dist/{chunk-2ULWWAQH.js.map → chunk-ISLJ5WIM.js.map} +0 -0
  270. /package/dist/{chunk-2KJG6ZZK.js.map → chunk-IYOPIG3E.js.map} +0 -0
  271. /package/dist/{chunk-SJQ4HY3E.js.map → chunk-JO3E5VGS.js.map} +0 -0
  272. /package/dist/{chunk-IZ5E6ZTK.js.map → chunk-KF4TXW7Z.js.map} +0 -0
  273. /package/dist/{chunk-CQ4PGFMC.js.map → chunk-KS7WQ4BZ.js.map} +0 -0
  274. /package/dist/{chunk-PJIHCOGV.js.map → chunk-MNU5G4TK.js.map} +0 -0
  275. /package/dist/{chunk-LIWU4QI6.js.map → chunk-OLOYQZFB.js.map} +0 -0
  276. /package/dist/{chunk-JI6HWBYL.js.map → chunk-Q4O3ET6F.js.map} +0 -0
  277. /package/dist/{chunk-N55RJT4N.js.map → chunk-QP37KL5H.js.map} +0 -0
  278. /package/dist/{chunk-LPIWEKZ3.js.map → chunk-SDPDU2PM.js.map} +0 -0
  279. /package/dist/{chunk-RTN2BLZM.js.map → chunk-T5QAZIBO.js.map} +0 -0
  280. /package/dist/{chunk-ANZLT74L.js.map → chunk-TFVVONWD.js.map} +0 -0
  281. /package/dist/{chunk-SIDSEXUG.js.map → chunk-WFEZUGU5.js.map} +0 -0
  282. /package/dist/{chunk-FSEQXHEZ.js.map → chunk-XTIRCSIH.js.map} +0 -0
  283. /package/dist/{chunk-XL5RSHZP.js.map → chunk-YO4MBK3I.js.map} +0 -0
  284. /package/dist/{chunk-AH2JUU6X.js.map → chunk-Z2YFLXHU.js.map} +0 -0
  285. /package/dist/{chunk-MRX6S22R.js.map → chunk-ZT7B64BE.js.map} +0 -0
@@ -6,7 +6,7 @@ import {
6
6
  } from "./chunk-SFQ6QNL7.js";
7
7
  import {
8
8
  StorageManager
9
- } from "./chunk-RIC5U67B.js";
9
+ } from "./chunk-SFMRLXIV.js";
10
10
  import {
11
11
  buildLifecycleEventsForMemory,
12
12
  sortMemoryLifecycleEvents
@@ -74,4 +74,4 @@ export {
74
74
  backupExistingLedger,
75
75
  rebuildMemoryLifecycleLedger
76
76
  };
77
- //# sourceMappingURL=chunk-A62RAIBN.js.map
77
+ //# sourceMappingURL=chunk-6W2D6FGG.js.map
@@ -4,7 +4,7 @@ import {
4
4
  import {
5
5
  compareEntityTimestamps,
6
6
  normalizeEntityName
7
- } from "./chunk-RIC5U67B.js";
7
+ } from "./chunk-SFMRLXIV.js";
8
8
  import {
9
9
  sanitizeMemoryContent
10
10
  } from "./chunk-FVQJYWH7.js";
@@ -679,4 +679,4 @@ export {
679
679
  entityIndexVersion,
680
680
  entityRecentTranscriptLookbackHours
681
681
  };
682
- //# sourceMappingURL=chunk-COEZR6F5.js.map
682
+ //# sourceMappingURL=chunk-7TAQEPLE.js.map
@@ -3,10 +3,10 @@ import {
3
3
  } from "./chunk-SOBJ6NEY.js";
4
4
  import {
5
5
  summarizeDisclosureTokens
6
- } from "./chunk-LPIWEKZ3.js";
6
+ } from "./chunk-SDPDU2PM.js";
7
7
  import {
8
8
  summarizeRetrievedMemoryProvenance
9
- } from "./chunk-AC5LO7IU.js";
9
+ } from "./chunk-I4WBNM3M.js";
10
10
 
11
11
  // src/recall-explain-renderer.ts
12
12
  function sanitizeString(v) {
@@ -567,4 +567,4 @@ export {
567
567
  renderRecallExplain,
568
568
  parseRecallExplainFormat
569
569
  };
570
- //# sourceMappingURL=chunk-TIVZ4MCG.js.map
570
+ //# sourceMappingURL=chunk-D75JXBV4.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  NamespaceStorageRouter
3
- } from "./chunk-2K64VH66.js";
3
+ } from "./chunk-ODTWHSY2.js";
4
4
  import {
5
5
  namespaceCollectionName
6
6
  } from "./chunk-VPAFWWCL.js";
@@ -204,4 +204,4 @@ export {
204
204
  verifyNamespaces,
205
205
  runNamespaceMigration
206
206
  };
207
- //# sourceMappingURL=chunk-YY2HGKWR.js.map
207
+ //# sourceMappingURL=chunk-DEDQXIDL.js.map
@@ -11,7 +11,7 @@ import {
11
11
  } from "./chunk-DL6H3D7S.js";
12
12
  import {
13
13
  toRecallExplainJson
14
- } from "./chunk-TIVZ4MCG.js";
14
+ } from "./chunk-D75JXBV4.js";
15
15
  import {
16
16
  applyTagFilter,
17
17
  normalizeTags,
@@ -46,7 +46,7 @@ import {
46
46
  } from "./chunk-FF4KLI5W.js";
47
47
  import {
48
48
  estimateRecallTokens
49
- } from "./chunk-LPIWEKZ3.js";
49
+ } from "./chunk-SDPDU2PM.js";
50
50
  import {
51
51
  recordObjectiveStateSnapshotsFromObservedMessages
52
52
  } from "./chunk-BMFZLLNI.js";
@@ -60,7 +60,7 @@ import {
60
60
  listMemoryGovernanceRuns,
61
61
  readMemoryGovernanceRunArtifact,
62
62
  runMemoryGovernance
63
- } from "./chunk-ANZLT74L.js";
63
+ } from "./chunk-TFVVONWD.js";
64
64
  import {
65
65
  namespaceCollectionName
66
66
  } from "./chunk-VPAFWWCL.js";
@@ -103,17 +103,17 @@ import {
103
103
  buildBriefing,
104
104
  parseBriefingFocus,
105
105
  parseBriefingWindow
106
- } from "./chunk-EZWQZYLK.js";
106
+ } from "./chunk-HF4N43Q7.js";
107
107
  import {
108
108
  parseEntityFile
109
- } from "./chunk-RIC5U67B.js";
109
+ } from "./chunk-SFMRLXIV.js";
110
110
  import {
111
111
  stripAttributesSuffix
112
112
  } from "./chunk-SVOZFLIQ.js";
113
113
  import {
114
114
  DEFAULT_RECALL_DISCLOSURE,
115
115
  isRecallDisclosure
116
- } from "./chunk-ZXUOAFUG.js";
116
+ } from "./chunk-IKNQAGBV.js";
117
117
  import {
118
118
  normalizeProjectionPreview,
119
119
  normalizeProjectionTags
@@ -149,7 +149,7 @@ import {
149
149
  } from "./chunk-J2HSAU72.js";
150
150
  import {
151
151
  evaluateActionConfidence
152
- } from "./chunk-AH2JUU6X.js";
152
+ } from "./chunk-Z2YFLXHU.js";
153
153
  import {
154
154
  canReadNamespace,
155
155
  canWriteNamespace,
@@ -7743,4 +7743,4 @@ export {
7743
7743
  shapeMemorySummary,
7744
7744
  EngramAccessService
7745
7745
  };
7746
- //# sourceMappingURL=chunk-XFG3PVZE.js.map
7746
+ //# sourceMappingURL=chunk-FUCJAZ25.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  StorageManager,
3
3
  normalizeEntityName
4
- } from "./chunk-RIC5U67B.js";
4
+ } from "./chunk-SFMRLXIV.js";
5
5
  import {
6
6
  extractJsonCandidates
7
7
  } from "./chunk-RGMVMVMF.js";
@@ -870,4 +870,4 @@ export {
870
870
  resolveBriefingSaveDir,
871
871
  briefingFilename
872
872
  };
873
- //# sourceMappingURL=chunk-EZWQZYLK.js.map
873
+ //# sourceMappingURL=chunk-HF4N43Q7.js.map
@@ -47,12 +47,12 @@ import {
47
47
  } from "./chunk-D6RIFG4O.js";
48
48
  import {
49
49
  rebuildMemoryLifecycleLedger
50
- } from "./chunk-A62RAIBN.js";
50
+ } from "./chunk-6W2D6FGG.js";
51
51
  import {
52
52
  rebuildMemoryProjection,
53
53
  repairMemoryProjection,
54
54
  verifyMemoryProjection
55
- } from "./chunk-E6GOVHHJ.js";
55
+ } from "./chunk-27LQPUMZ.js";
56
56
  import {
57
57
  rebuildObservations
58
58
  } from "./chunk-LZZNTPLR.js";
@@ -74,7 +74,7 @@ import {
74
74
  } from "./chunk-IQ7WCZRW.js";
75
75
  import {
76
76
  promoteSemanticRuleFromMemory
77
- } from "./chunk-2KJG6ZZK.js";
77
+ } from "./chunk-IYOPIG3E.js";
78
78
  import {
79
79
  resolveAgentAccessAuthToken
80
80
  } from "./chunk-TGQ2NTWH.js";
@@ -82,10 +82,10 @@ import {
82
82
  buildResumeBundleFromState,
83
83
  getResumeBundleStatus,
84
84
  recordResumeBundle
85
- } from "./chunk-RTN2BLZM.js";
85
+ } from "./chunk-T5QAZIBO.js";
86
86
  import {
87
87
  parseXrayCliOptions
88
- } from "./chunk-QVTSLRKT.js";
88
+ } from "./chunk-IJEZMWKA.js";
89
89
  import {
90
90
  collectPatternMemories,
91
91
  explainPatternMemory,
@@ -102,12 +102,12 @@ import {
102
102
  runOperatorInventory,
103
103
  runOperatorRepair,
104
104
  runOperatorSetup
105
- } from "./chunk-UDDSC6PO.js";
105
+ } from "./chunk-ZYNMX6IU.js";
106
106
  import {
107
107
  listNamespaces,
108
108
  runNamespaceMigration,
109
109
  verifyNamespaces
110
- } from "./chunk-YY2HGKWR.js";
110
+ } from "./chunk-DEDQXIDL.js";
111
111
  import {
112
112
  GraphDashboardServer
113
113
  } from "./chunk-YNDLCWXS.js";
@@ -120,7 +120,7 @@ import {
120
120
  } from "./chunk-WIWPSQYU.js";
121
121
  import {
122
122
  searchVerifiedEpisodes
123
- } from "./chunk-FSEQXHEZ.js";
123
+ } from "./chunk-XTIRCSIH.js";
124
124
  import {
125
125
  getUtilityLearningStatus,
126
126
  learnUtilityPromotionWeights
@@ -134,7 +134,7 @@ import {
134
134
  } from "./chunk-QRDOSYOR.js";
135
135
  import {
136
136
  searchVerifiedSemanticRules
137
- } from "./chunk-N55RJT4N.js";
137
+ } from "./chunk-QP37KL5H.js";
138
138
  import {
139
139
  getWorkProductLedgerStatus,
140
140
  recordWorkProductLedgerEntry,
@@ -149,7 +149,7 @@ import {
149
149
  } from "./chunk-33JBK2XP.js";
150
150
  import {
151
151
  formatNamespaceMaintenanceHealthText
152
- } from "./chunk-SIDSEXUG.js";
152
+ } from "./chunk-WFEZUGU5.js";
153
153
  import {
154
154
  analyzeSessionIntegrity,
155
155
  applySessionRepair,
@@ -213,22 +213,22 @@ import {
213
213
  } from "./chunk-UQ7RN5HK.js";
214
214
  import {
215
215
  parseConfig
216
- } from "./chunk-3LSSFCB4.js";
216
+ } from "./chunk-K4DWSPMW.js";
217
217
  import {
218
218
  getAbstractionNodeStoreStatus
219
219
  } from "./chunk-OADWQ5CR.js";
220
220
  import {
221
221
  EngramAccessHttpServer
222
- } from "./chunk-IZ5E6ZTK.js";
222
+ } from "./chunk-KF4TXW7Z.js";
223
223
  import {
224
224
  WearablesInputError
225
225
  } from "./chunk-7WV3F5DQ.js";
226
226
  import {
227
227
  EngramMcpServer
228
- } from "./chunk-LIWU4QI6.js";
228
+ } from "./chunk-OLOYQZFB.js";
229
229
  import {
230
230
  EngramAccessService
231
- } from "./chunk-XFG3PVZE.js";
231
+ } from "./chunk-FUCJAZ25.js";
232
232
  import {
233
233
  WorkStorage
234
234
  } from "./chunk-GDB4J2H3.js";
@@ -236,7 +236,7 @@ import {
236
236
  parseRecallExplainFormat,
237
237
  renderRecallExplain,
238
238
  renderXray
239
- } from "./chunk-TIVZ4MCG.js";
239
+ } from "./chunk-D75JXBV4.js";
240
240
  import {
241
241
  getTrustZoneStoreStatus,
242
242
  promoteTrustZoneRecord,
@@ -250,7 +250,7 @@ import {
250
250
  readMemoryGovernanceRunArtifact,
251
251
  restoreMemoryGovernanceRun,
252
252
  runMemoryGovernance
253
- } from "./chunk-ANZLT74L.js";
253
+ } from "./chunk-TFVVONWD.js";
254
254
  import {
255
255
  analyzeGraphHealth
256
256
  } from "./chunk-KF74X62T.js";
@@ -263,7 +263,7 @@ import {
263
263
  import {
264
264
  RECALL_DISCLOSURE_LEVELS,
265
265
  isRecallDisclosure
266
- } from "./chunk-ZXUOAFUG.js";
266
+ } from "./chunk-IKNQAGBV.js";
267
267
  import {
268
268
  RECALL_FALLBACK_DIRS
269
269
  } from "./chunk-VS2IYZRU.js";
@@ -271,7 +271,7 @@ import {
271
271
  buildActionConfidenceInputFromOptions,
272
272
  evaluateActionConfidence,
273
273
  renderActionConfidenceText
274
- } from "./chunk-AH2JUU6X.js";
274
+ } from "./chunk-Z2YFLXHU.js";
275
275
  import {
276
276
  selectRouteRule,
277
277
  validateRouteTarget
@@ -3077,7 +3077,7 @@ function registerCli(api, orchestrator, registerOptions = {}) {
3077
3077
  const idArg = typeof args[0] === "string" ? args[0] : "";
3078
3078
  const options = args[1] ?? {};
3079
3079
  const reason = typeof options.reason === "string" && options.reason.trim().length > 0 ? options.reason.trim() : void 0;
3080
- const { forgetMemory } = await import("./forget-PLR6J5DN.js");
3080
+ const { forgetMemory } = await import("./forget-6SOIPUMQ.js");
3081
3081
  try {
3082
3082
  const result = await forgetMemory(orchestrator.storage, {
3083
3083
  id: idArg,
@@ -7328,4 +7328,4 @@ export {
7328
7328
  listMemoryMarkdownFilePaths,
7329
7329
  registerCli
7330
7330
  };
7331
- //# sourceMappingURL=chunk-HZ5DRA4Q.js.map
7331
+ //# sourceMappingURL=chunk-HXHKLVAS.js.map
@@ -205,6 +205,12 @@ function inferSafetyReasons(input) {
205
205
  if (frontmatter.verificationState === "disputed") {
206
206
  reasons.push("verification=disputed");
207
207
  }
208
+ if (typeof frontmatter.blockedBy === "string" && frontmatter.blockedBy.length > 0) {
209
+ reasons.push(`tombstone-blocked=${frontmatter.blockedBy}`);
210
+ if (frontmatter.tombstoneBlockTier) {
211
+ reasons.push(`tombstone-tier=${frontmatter.tombstoneBlockTier}`);
212
+ }
213
+ }
208
214
  if (stale) reasons.push("stale=true");
209
215
  const boundaryScopes = userContextScopes.filter(isUserBoundaryScope);
210
216
  if (boundaryScopes.length > 0) {
@@ -305,4 +311,4 @@ export {
305
311
  normalizeRetrievedMemoryProvenance,
306
312
  summarizeRetrievedMemoryProvenance
307
313
  };
308
- //# sourceMappingURL=chunk-AC5LO7IU.js.map
314
+ //# sourceMappingURL=chunk-I4WBNM3M.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/memory-provenance.ts"],"sourcesContent":["import type {\n LifecycleState,\n MemoryFile,\n MemoryFrontmatter,\n MemoryStatus,\n PolicyClass,\n VerificationState,\n} from \"./types.js\";\nimport {\n isUserBoundaryScope,\n normalizeUserContextScope,\n type UserContextScope,\n} from \"./user-model.js\";\n\nexport type RetrievedMemoryCorrectionState =\n | \"none\"\n | \"correction\"\n | \"superseded\"\n | \"disputed\"\n | \"forgotten\";\n\nexport type RetrievedMemorySafety = \"safe\" | \"requires-review\" | \"blocked\";\n\nexport interface RetrievedMemoryProvenance {\n /** Frontmatter source, for example conversation, artifact, import, or consolidation. */\n source: string;\n /** ISO timestamp the memory was created, when known. */\n created?: string;\n /** ISO timestamp the memory was last updated, when known. */\n updated?: string;\n /** Namespace that produced the result, when known. */\n namespace?: string;\n /** Concrete retrieval scope. Defaults to namespace:<name> or the storage path. */\n scope: string;\n /** User-aware context scopes inferred from explicit scope metadata or tags. */\n userContextScopes: UserContextScope[];\n /** Why this memory was retrieved for the current response. */\n retrievalReason: string;\n /** Memory confidence clamped into [0, 1]. */\n confidence: number;\n /** Whether lifecycle, validity, or expiry metadata says this memory is stale now. */\n stale: boolean;\n /** Whether this result represents, has, or is affected by a user/system correction. */\n corrected: boolean;\n correctionState: RetrievedMemoryCorrectionState;\n /** Whether the memory is safe to use in the current context without asking first. */\n safeToUse: boolean;\n safety: RetrievedMemorySafety;\n safetyReasons: string[];\n status?: MemoryStatus;\n lifecycleState?: LifecycleState;\n verificationState?: VerificationState;\n policyClass?: PolicyClass;\n sourceMemoryId?: string;\n sourceTurnId?: string;\n derivedFrom?: string[];\n derivedVia?: MemoryFrontmatter[\"derived_via\"];\n validAt?: string;\n invalidAt?: string;\n forgottenAt?: string;\n forgottenReason?: string;\n}\n\nexport interface BuildRetrievedMemoryProvenanceOptions {\n namespace?: string;\n scope?: string;\n retrievalReason?: string;\n currentContextScopes?: readonly unknown[];\n now?: () => number;\n}\n\nconst MEMORY_STATUS_VALUES: readonly MemoryStatus[] = [\n \"active\",\n \"pending_review\",\n \"rejected\",\n \"quarantined\",\n \"superseded\",\n \"archived\",\n \"forgotten\",\n];\n\nconst LIFECYCLE_STATE_VALUES: readonly LifecycleState[] = [\n \"candidate\",\n \"validated\",\n \"active\",\n \"stale\",\n \"archived\",\n];\n\nconst VERIFICATION_STATE_VALUES: readonly VerificationState[] = [\n \"unverified\",\n \"user_confirmed\",\n \"system_inferred\",\n \"disputed\",\n];\n\nconst POLICY_CLASS_VALUES: readonly PolicyClass[] = [\n \"ephemeral\",\n \"durable\",\n \"protected\",\n];\n\nconst SAFETY_VALUES: readonly RetrievedMemorySafety[] = [\n \"safe\",\n \"requires-review\",\n \"blocked\",\n];\n\nconst CORRECTION_STATE_VALUES: readonly RetrievedMemoryCorrectionState[] = [\n \"none\",\n \"correction\",\n \"superseded\",\n \"disputed\",\n \"forgotten\",\n];\n\nexport function buildRetrievedMemoryProvenance(\n memory: MemoryFile,\n options: BuildRetrievedMemoryProvenanceOptions = {},\n): RetrievedMemoryProvenance {\n const frontmatter = memory.frontmatter;\n const nowMs = safeNow(options.now);\n const namespace = nonEmptyString(options.namespace);\n const scope =\n nonEmptyString(options.scope) ??\n (namespace ? `namespace:${namespace}` : nonEmptyString(memory.path) ?? \"unknown\");\n const userContextScopes = inferUserContextScopes(frontmatter);\n const currentContextScopes = normalizeScopeList(options.currentContextScopes);\n const stale = isStale(frontmatter, nowMs);\n const correctionState = inferCorrectionState(frontmatter);\n const corrected = correctionState !== \"none\";\n const safetyReasons = inferSafetyReasons({\n frontmatter,\n stale,\n userContextScopes,\n currentContextScopes,\n });\n const safety = inferSafety(safetyReasons);\n const provenance: RetrievedMemoryProvenance = {\n source: nonEmptyString(frontmatter.source) ?? \"unknown\",\n scope,\n userContextScopes,\n retrievalReason: nonEmptyString(options.retrievalReason) ?? \"retrieved\",\n confidence: clamp01(frontmatter.confidence),\n stale,\n corrected,\n correctionState,\n safeToUse: safety === \"safe\",\n safety,\n safetyReasons,\n };\n\n assignString(provenance, \"created\", frontmatter.created);\n assignString(provenance, \"updated\", frontmatter.updated);\n assignString(provenance, \"namespace\", namespace);\n assignStatus(provenance, \"status\", frontmatter.status);\n assignLifecycleState(provenance, \"lifecycleState\", frontmatter.lifecycleState);\n assignVerificationState(provenance, \"verificationState\", frontmatter.verificationState);\n assignPolicyClass(provenance, \"policyClass\", frontmatter.policyClass);\n assignString(provenance, \"sourceMemoryId\", frontmatter.sourceMemoryId);\n assignString(provenance, \"sourceTurnId\", frontmatter.sourceTurnId);\n assignString(provenance, \"validAt\", frontmatter.valid_at);\n assignString(provenance, \"invalidAt\", frontmatter.invalid_at);\n assignString(provenance, \"forgottenAt\", frontmatter.forgottenAt);\n assignString(provenance, \"forgottenReason\", frontmatter.forgottenReason);\n if (Array.isArray(frontmatter.derived_from) && frontmatter.derived_from.length > 0) {\n provenance.derivedFrom = stringList(frontmatter.derived_from);\n }\n if (frontmatter.derived_via !== undefined) {\n provenance.derivedVia = frontmatter.derived_via;\n }\n\n return provenance;\n}\n\nexport function normalizeRetrievedMemoryProvenance(\n value: unknown,\n): RetrievedMemoryProvenance | undefined {\n if (!value || typeof value !== \"object\") return undefined;\n const raw = value as Record<string, unknown>;\n const source = nonEmptyString(raw.source) ?? \"unknown\";\n const scope = nonEmptyString(raw.scope) ?? \"unknown\";\n const retrievalReason = nonEmptyString(raw.retrievalReason) ?? \"retrieved\";\n let safety = isRetrievedMemorySafety(raw.safety)\n ? raw.safety\n : raw.safeToUse === false\n ? \"requires-review\"\n : \"safe\";\n if (raw.safeToUse === false && safety === \"safe\") {\n safety = \"requires-review\";\n }\n const correctionState = isRetrievedMemoryCorrectionState(raw.correctionState)\n ? raw.correctionState\n : raw.corrected === true\n ? \"correction\"\n : \"none\";\n const safetyReasons = stringList(raw.safetyReasons);\n const provenance: RetrievedMemoryProvenance = {\n source,\n scope,\n userContextScopes: normalizeScopeList(raw.userContextScopes),\n retrievalReason,\n confidence: clamp01(raw.confidence),\n stale: raw.stale === true,\n corrected: raw.corrected === true || correctionState !== \"none\",\n correctionState,\n safeToUse: safety === \"safe\",\n safety,\n safetyReasons,\n };\n\n assignString(provenance, \"created\", raw.created);\n assignString(provenance, \"updated\", raw.updated);\n assignString(provenance, \"namespace\", raw.namespace);\n assignStatus(provenance, \"status\", raw.status);\n assignLifecycleState(provenance, \"lifecycleState\", raw.lifecycleState);\n assignVerificationState(provenance, \"verificationState\", raw.verificationState);\n assignPolicyClass(provenance, \"policyClass\", raw.policyClass);\n assignString(provenance, \"sourceMemoryId\", raw.sourceMemoryId);\n assignString(provenance, \"sourceTurnId\", raw.sourceTurnId);\n assignString(provenance, \"validAt\", raw.validAt);\n assignString(provenance, \"invalidAt\", raw.invalidAt);\n assignString(provenance, \"forgottenAt\", raw.forgottenAt);\n assignString(provenance, \"forgottenReason\", raw.forgottenReason);\n const derivedFrom = stringList(raw.derivedFrom);\n if (derivedFrom.length > 0) provenance.derivedFrom = derivedFrom;\n if (\n raw.derivedVia === \"split\" ||\n raw.derivedVia === \"merge\" ||\n raw.derivedVia === \"update\" ||\n raw.derivedVia === \"pattern-reinforcement\"\n ) {\n provenance.derivedVia = raw.derivedVia;\n }\n return provenance;\n}\n\nexport function summarizeRetrievedMemoryProvenance(\n provenance: RetrievedMemoryProvenance,\n): string {\n return [\n `source=${provenance.source}`,\n `created=${provenance.created ?? \"unknown\"}`,\n `scope=${provenance.scope}`,\n `confidence=${provenance.confidence.toFixed(2)}`,\n `stale=${provenance.stale ? \"true\" : \"false\"}`,\n `corrected=${provenance.corrected ? provenance.correctionState : \"false\"}`,\n `safe=${provenance.safeToUse ? \"true\" : \"false\"}`,\n ].join(\" \");\n}\n\nfunction inferUserContextScopes(frontmatter: MemoryFrontmatter): UserContextScope[] {\n const scoped = frontmatter as MemoryFrontmatter & {\n userContextScopes?: readonly unknown[];\n };\n return normalizeScopeList([\n ...(Array.isArray(scoped.userContextScopes) ? scoped.userContextScopes : []),\n ...(Array.isArray(frontmatter.tags) ? frontmatter.tags : []),\n ]);\n}\n\nfunction normalizeScopeList(values: unknown): UserContextScope[] {\n const input = Array.isArray(values) ? values : [];\n const seen = new Set<UserContextScope>();\n const normalized: UserContextScope[] = [];\n for (const value of input) {\n const scope = normalizeUserContextScope(value);\n if (!scope || seen.has(scope)) continue;\n seen.add(scope);\n normalized.push(scope);\n }\n return normalized;\n}\n\nfunction isStale(frontmatter: MemoryFrontmatter, nowMs: number): boolean {\n if (\n frontmatter.status === \"superseded\" ||\n frontmatter.status === \"archived\" ||\n frontmatter.status === \"forgotten\"\n ) {\n return true;\n }\n if (\n frontmatter.lifecycleState === \"stale\" ||\n frontmatter.lifecycleState === \"archived\"\n ) {\n return true;\n }\n const expiresAtMs = parseEpochMs(frontmatter.expiresAt);\n if (expiresAtMs !== null && expiresAtMs <= nowMs) return true;\n const invalidAtMs = parseEpochMs(frontmatter.invalid_at);\n if (invalidAtMs !== null && invalidAtMs <= nowMs) return true;\n return false;\n}\n\nfunction inferCorrectionState(\n frontmatter: MemoryFrontmatter,\n): RetrievedMemoryCorrectionState {\n if (frontmatter.status === \"forgotten\") return \"forgotten\";\n if (\n frontmatter.status === \"superseded\" ||\n frontmatter.supersededBy ||\n frontmatter.supersededAt\n ) {\n return \"superseded\";\n }\n if (frontmatter.verificationState === \"disputed\") return \"disputed\";\n if (frontmatter.category === \"correction\" || frontmatter.supersedes) {\n return \"correction\";\n }\n return \"none\";\n}\n\nfunction inferSafetyReasons(input: {\n frontmatter: MemoryFrontmatter;\n stale: boolean;\n userContextScopes: UserContextScope[];\n currentContextScopes: UserContextScope[];\n}): string[] {\n const reasons: string[] = [];\n const { frontmatter, stale, userContextScopes, currentContextScopes } = input;\n if (frontmatter.status === \"forgotten\") reasons.push(\"status=forgotten\");\n if (frontmatter.status === \"rejected\") reasons.push(\"status=rejected\");\n if (frontmatter.status === \"quarantined\") reasons.push(\"status=quarantined\");\n if (frontmatter.status === \"pending_review\") reasons.push(\"status=pending_review\");\n if (frontmatter.status === \"superseded\") reasons.push(\"status=superseded\");\n if (frontmatter.status === \"archived\") reasons.push(\"status=archived\");\n if (frontmatter.verificationState === \"disputed\") {\n reasons.push(\"verification=disputed\");\n }\n // Issue #1579 — x-ray visibility (rule 34: never a silent drop). When a\n // memory carries `blockedBy`, it was tombstone-blocked at the storage\n // chokepoint. Surface the tombstone id (and the matched tier when known)\n // in the safety reasons so every recall x-ray consumer (CLI / HTTP / MCP)\n // can attribute the pending_review state to a tombstone rather than a\n // generic low-confidence review.\n if (typeof frontmatter.blockedBy === \"string\" && frontmatter.blockedBy.length > 0) {\n reasons.push(`tombstone-blocked=${frontmatter.blockedBy}`);\n if (frontmatter.tombstoneBlockTier) {\n reasons.push(`tombstone-tier=${frontmatter.tombstoneBlockTier}`);\n }\n }\n if (stale) reasons.push(\"stale=true\");\n\n const boundaryScopes = userContextScopes.filter(isUserBoundaryScope);\n if (boundaryScopes.length > 0) {\n const current = new Set(currentContextScopes);\n const hasMatchingBoundary = boundaryScopes.some((scope) => current.has(scope));\n if (!hasMatchingBoundary) {\n const joined = boundaryScopes.join(\",\");\n if (boundaryScopes.includes(\"do-not-use-outside-this-context\")) {\n reasons.push(`boundary-blocked=${joined}`);\n } else {\n reasons.push(`boundary-review=${joined}`);\n }\n }\n }\n return uniqueStrings(reasons);\n}\n\nfunction inferSafety(reasons: readonly string[]): RetrievedMemorySafety {\n if (\n reasons.some((reason) =>\n reason === \"status=forgotten\" ||\n reason === \"status=rejected\" ||\n reason === \"status=quarantined\" ||\n reason.startsWith(\"boundary-blocked=\"),\n )\n ) {\n return \"blocked\";\n }\n return reasons.length > 0 ? \"requires-review\" : \"safe\";\n}\n\nfunction safeNow(now: (() => number) | undefined): number {\n const value = now ? now() : Date.now();\n return Number.isFinite(value) ? value : Date.now();\n}\n\nfunction parseEpochMs(value: unknown): number | null {\n if (typeof value !== \"string\" || value.trim().length === 0) return null;\n const parsed = Date.parse(value);\n return Number.isFinite(parsed) ? parsed : null;\n}\n\nfunction clamp01(value: unknown): number {\n if (typeof value !== \"number\" || !Number.isFinite(value)) return 0;\n return Math.min(1, Math.max(0, value));\n}\n\nfunction nonEmptyString(value: unknown): string | undefined {\n if (typeof value !== \"string\") return undefined;\n const trimmed = value.trim();\n return trimmed.length > 0 ? trimmed : undefined;\n}\n\nfunction stringList(value: unknown): string[] {\n if (!Array.isArray(value)) return [];\n return uniqueStrings(\n value\n .filter((item): item is string => typeof item === \"string\")\n .map((item) => item.trim())\n .filter((item) => item.length > 0),\n );\n}\n\nfunction uniqueStrings(values: readonly string[]): string[] {\n const seen = new Set<string>();\n const out: string[] = [];\n for (const value of values) {\n if (seen.has(value)) continue;\n seen.add(value);\n out.push(value);\n }\n return out;\n}\n\ntype RetrievedMemoryProvenanceStringField =\n | \"created\"\n | \"updated\"\n | \"namespace\"\n | \"sourceMemoryId\"\n | \"sourceTurnId\"\n | \"validAt\"\n | \"invalidAt\"\n | \"forgottenAt\"\n | \"forgottenReason\";\n\nfunction assignString(\n target: RetrievedMemoryProvenance,\n key: RetrievedMemoryProvenanceStringField,\n value: unknown,\n): void {\n const normalized = nonEmptyString(value);\n if (normalized !== undefined) {\n target[key] = normalized;\n }\n}\n\nfunction assignStatus(\n target: RetrievedMemoryProvenance,\n key: \"status\",\n value: unknown,\n): void {\n if (isMemoryStatus(value)) target[key] = value;\n}\n\nfunction assignLifecycleState(\n target: RetrievedMemoryProvenance,\n key: \"lifecycleState\",\n value: unknown,\n): void {\n if (isLifecycleState(value)) target[key] = value;\n}\n\nfunction assignVerificationState(\n target: RetrievedMemoryProvenance,\n key: \"verificationState\",\n value: unknown,\n): void {\n if (isVerificationState(value)) target[key] = value;\n}\n\nfunction assignPolicyClass(\n target: RetrievedMemoryProvenance,\n key: \"policyClass\",\n value: unknown,\n): void {\n if (isPolicyClass(value)) target[key] = value;\n}\n\nfunction isMemoryStatus(value: unknown): value is MemoryStatus {\n return typeof value === \"string\" && MEMORY_STATUS_VALUES.includes(value as MemoryStatus);\n}\n\nfunction isLifecycleState(value: unknown): value is LifecycleState {\n return typeof value === \"string\" && LIFECYCLE_STATE_VALUES.includes(value as LifecycleState);\n}\n\nfunction isVerificationState(value: unknown): value is VerificationState {\n return typeof value === \"string\" && VERIFICATION_STATE_VALUES.includes(value as VerificationState);\n}\n\nfunction isPolicyClass(value: unknown): value is PolicyClass {\n return typeof value === \"string\" && POLICY_CLASS_VALUES.includes(value as PolicyClass);\n}\n\nfunction isRetrievedMemorySafety(value: unknown): value is RetrievedMemorySafety {\n return typeof value === \"string\" && SAFETY_VALUES.includes(value as RetrievedMemorySafety);\n}\n\nfunction isRetrievedMemoryCorrectionState(\n value: unknown,\n): value is RetrievedMemoryCorrectionState {\n return typeof value === \"string\" && CORRECTION_STATE_VALUES.includes(value as RetrievedMemoryCorrectionState);\n}\n"],"mappings":"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","names":[]}
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  parseXrayFormat
3
- } from "./chunk-TIVZ4MCG.js";
3
+ } from "./chunk-D75JXBV4.js";
4
4
  import {
5
5
  RECALL_DISCLOSURE_LEVELS,
6
6
  isRecallDisclosure
7
- } from "./chunk-ZXUOAFUG.js";
7
+ } from "./chunk-IKNQAGBV.js";
8
8
 
9
9
  // src/recall-xray-cli.ts
10
10
  function parseXrayDisclosureFlag(value) {
@@ -50,4 +50,4 @@ export {
50
50
  parseXrayBudgetFlag,
51
51
  parseXrayCliOptions
52
52
  };
53
- //# sourceMappingURL=chunk-QVTSLRKT.js.map
53
+ //# sourceMappingURL=chunk-IJEZMWKA.js.map
@@ -23,4 +23,4 @@ export {
23
23
  confidenceTier,
24
24
  SPECULATIVE_TTL_DAYS
25
25
  };
26
- //# sourceMappingURL=chunk-ZXUOAFUG.js.map
26
+ //# sourceMappingURL=chunk-IKNQAGBV.js.map