@remnic/core 9.3.690 → 9.3.691

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 (281) hide show
  1. package/dist/access-boundary.d.ts +5 -5
  2. package/dist/access-boundary.js +18 -18
  3. package/dist/access-cli.js +44 -44
  4. package/dist/access-http.d.ts +5 -5
  5. package/dist/access-http.js +24 -24
  6. package/dist/access-mcp.d.ts +5 -5
  7. package/dist/access-mcp.js +21 -21
  8. package/dist/access-operations.d.ts +5 -5
  9. package/dist/access-operations.js +20 -20
  10. package/dist/access-schema.js +3 -3
  11. package/dist/{access-service-Dujr3MTm.d.ts → access-service-CKnFdxH-.d.ts} +2 -2
  12. package/dist/access-service.d.ts +5 -5
  13. package/dist/access-service.js +17 -17
  14. package/dist/access-surface-catalog.d.ts +5 -5
  15. package/dist/action-confidence.d.ts +1 -1
  16. package/dist/active-memory-bridge.d.ts +1 -1
  17. package/dist/active-recall.d.ts +1 -1
  18. package/dist/active-recall.js +1 -1
  19. package/dist/adapters/index.js +4 -4
  20. package/dist/adapters/registry.js +2 -2
  21. package/dist/{auto-sync-NUQWSFQD.js → auto-sync-RWXT6P5M.js} +5 -5
  22. package/dist/behavior-learner.d.ts +1 -1
  23. package/dist/behavior-signals.d.ts +1 -1
  24. package/dist/bootstrap.d.ts +4 -4
  25. package/dist/briefing.d.ts +1 -1
  26. package/dist/briefing.js +5 -5
  27. package/dist/buffer-surprise-report.d.ts +1 -1
  28. package/dist/buffer.d.ts +1 -1
  29. package/dist/calibration.d.ts +1 -1
  30. package/dist/calibration.js +2 -2
  31. package/dist/capabilities.d.ts +1 -1
  32. package/dist/{catalog-CKPtJ114.d.ts → catalog-BEWLjdOr.d.ts} +1 -1
  33. package/dist/causal-behavior.d.ts +1 -1
  34. package/dist/causal-consolidation.d.ts +1 -1
  35. package/dist/causal-consolidation.js +8 -8
  36. package/dist/{chunk-GTDH3IUH.js → chunk-2D27ODNX.js} +2 -2
  37. package/dist/{chunk-3K37VPM3.js → chunk-3BRA3N5A.js} +2 -2
  38. package/dist/{chunk-RTFAZOIR.js → chunk-3VVH6ZQW.js} +2 -2
  39. package/dist/{chunk-FIVDN2SM.js → chunk-4RGWCRIJ.js} +4 -4
  40. package/dist/{chunk-AGJH5ISO.js → chunk-5KBNNUXS.js} +2 -2
  41. package/dist/{chunk-X7RLU5CR.js → chunk-66HROLW5.js} +2 -2
  42. package/dist/{chunk-NSVXK7M5.js → chunk-7UVDIWLL.js} +4 -4
  43. package/dist/{chunk-UPIBE2DK.js → chunk-ADUAF5EV.js} +2 -2
  44. package/dist/{chunk-LLONI6PY.js → chunk-AFWEUTMS.js} +2 -2
  45. package/dist/{chunk-CWE74HRG.js → chunk-D3DNGQNQ.js} +3 -3
  46. package/dist/{chunk-ZUDM75KG.js → chunk-DCWIQFNA.js} +4 -4
  47. package/dist/{chunk-NGFEWFNK.js → chunk-DQHZA7Y3.js} +1 -1
  48. package/dist/chunk-DQHZA7Y3.js.map +1 -0
  49. package/dist/{chunk-OBXTMFZQ.js → chunk-ECZPWSB5.js} +2 -2
  50. package/dist/{chunk-BFVPIKDY.js → chunk-GCOSQBQ2.js} +3 -3
  51. package/dist/{chunk-LXIEXSHU.js → chunk-IPJD7WJH.js} +2 -2
  52. package/dist/{chunk-KQAFEZQX.js → chunk-IPLYGWQF.js} +5 -5
  53. package/dist/{chunk-MDYG7VI7.js → chunk-IREVVFTM.js} +10 -1
  54. package/dist/{chunk-MDYG7VI7.js.map → chunk-IREVVFTM.js.map} +1 -1
  55. package/dist/{chunk-RKNJBZ55.js → chunk-JBPKEARU.js} +4 -4
  56. package/dist/{chunk-WROKD3XC.js → chunk-K7I24ZO2.js} +24 -24
  57. package/dist/{chunk-Z7KILAOU.js → chunk-KO6OL4I7.js} +20 -20
  58. package/dist/{chunk-SB6CQTKP.js → chunk-MCV2DD6F.js} +2 -2
  59. package/dist/{chunk-3FC6LW6T.js → chunk-MRFVMSTR.js} +2 -2
  60. package/dist/{chunk-WDXCNJSF.js → chunk-MXZWKOOR.js} +2 -2
  61. package/dist/{chunk-XKUKJIOY.js → chunk-NCRDCTEJ.js} +7 -7
  62. package/dist/{chunk-RGNEARXW.js → chunk-NUZ3N445.js} +7 -7
  63. package/dist/{chunk-CP2NZQLT.js → chunk-OOO7ZKOD.js} +6 -6
  64. package/dist/{chunk-PHZKALOE.js → chunk-QFG23CRE.js} +2 -2
  65. package/dist/{chunk-UDJLF3BO.js → chunk-QLRYXOAD.js} +2 -2
  66. package/dist/{chunk-ZU7N3S6V.js → chunk-QNG35H27.js} +2 -2
  67. package/dist/{chunk-A4HH2EWA.js → chunk-QVG4LAQO.js} +2 -2
  68. package/dist/{chunk-54PVJDO5.js → chunk-SAC5V6JT.js} +2 -2
  69. package/dist/{chunk-CE6CBRCV.js → chunk-TJ5IIQIR.js} +56 -45
  70. package/dist/chunk-TJ5IIQIR.js.map +1 -0
  71. package/dist/{chunk-OMKUJTVJ.js → chunk-TSGREOYY.js} +5 -5
  72. package/dist/{chunk-2N6UNJSX.js → chunk-U2OBZSGG.js} +2 -2
  73. package/dist/{chunk-BKAMHZYR.js → chunk-UOCLRM74.js} +2 -2
  74. package/dist/{chunk-A7UZR6RA.js → chunk-UTUYAPLY.js} +14 -1
  75. package/dist/chunk-UTUYAPLY.js.map +1 -0
  76. package/dist/{chunk-TYF3D4MS.js → chunk-UUMYB3FR.js} +2 -2
  77. package/dist/{chunk-CUNTLEJP.js → chunk-VFVG4NS2.js} +30 -9
  78. package/dist/chunk-VFVG4NS2.js.map +1 -0
  79. package/dist/{chunk-46URPRE6.js → chunk-VH2DHBHG.js} +2 -2
  80. package/dist/{chunk-UD5OKH4J.js → chunk-W4ELOUNX.js} +2 -2
  81. package/dist/{chunk-GR77Z2BM.js → chunk-WIKNVFBS.js} +2 -2
  82. package/dist/{chunk-67MMWC74.js → chunk-ZLXGFAML.js} +2 -2
  83. package/dist/{cli-BkDp6WNi.d.ts → cli-CrSW_KRq.d.ts} +3 -3
  84. package/dist/cli.d.ts +6 -6
  85. package/dist/cli.js +38 -38
  86. package/dist/compounding/engine.d.ts +1 -1
  87. package/dist/compounding/engine.js +5 -5
  88. package/dist/compounding/preference-consolidator.d.ts +1 -1
  89. package/dist/compression-optimizer.d.ts +1 -1
  90. package/dist/config.d.ts +1 -1
  91. package/dist/config.js +1 -1
  92. package/dist/connectors/codex-materialize-runner.d.ts +1 -1
  93. package/dist/connectors/codex-materialize-runner.js +5 -5
  94. package/dist/connectors/codex-materialize.d.ts +1 -1
  95. package/dist/connectors/index.d.ts +1 -1
  96. package/dist/connectors/index.js +5 -5
  97. package/dist/consolidation-provenance-check.d.ts +1 -1
  98. package/dist/consolidation-undo.d.ts +1 -1
  99. package/dist/contradiction/index.d.ts +1 -1
  100. package/dist/contradiction/index.js +4 -4
  101. package/dist/conversation-index/backend.d.ts +1 -1
  102. package/dist/conversation-index/backend.js +2 -2
  103. package/dist/conversation-index/chunker.d.ts +1 -1
  104. package/dist/conversation-index/faiss-adapter.d.ts +1 -1
  105. package/dist/conversation-index/indexer.d.ts +1 -1
  106. package/dist/conversation-index/search.d.ts +1 -1
  107. package/dist/day-summary.d.ts +1 -1
  108. package/dist/delinearize.d.ts +1 -1
  109. package/dist/direct-answer-wiring.d.ts +1 -1
  110. package/dist/direct-answer.d.ts +1 -1
  111. package/dist/embedding-fallback.d.ts +1 -1
  112. package/dist/enrichment/index.d.ts +1 -1
  113. package/dist/entity-retrieval.d.ts +1 -1
  114. package/dist/entity-retrieval.js +5 -5
  115. package/dist/entity-schema.d.ts +1 -1
  116. package/dist/event-time.d.ts +35 -0
  117. package/dist/event-time.js +325 -0
  118. package/dist/event-time.js.map +1 -0
  119. package/dist/explicit-capture.d.ts +4 -4
  120. package/dist/extraction-judge-telemetry.d.ts +1 -1
  121. package/dist/extraction-judge-training.d.ts +1 -1
  122. package/dist/extraction-judge.d.ts +1 -1
  123. package/dist/extraction-judge.js +3 -3
  124. package/dist/extraction.d.ts +1 -1
  125. package/dist/extraction.js +3 -3
  126. package/dist/fallback-llm.d.ts +1 -1
  127. package/dist/fallback-llm.js +2 -2
  128. package/dist/identity-continuity.d.ts +1 -1
  129. package/dist/importance.d.ts +1 -1
  130. package/dist/index.d.ts +9 -9
  131. package/dist/index.js +72 -72
  132. package/dist/intent.d.ts +1 -1
  133. package/dist/lcm/engine.d.ts +1 -1
  134. package/dist/lcm/index.d.ts +1 -1
  135. package/dist/lcm/tools.d.ts +1 -1
  136. package/dist/lifecycle.d.ts +1 -1
  137. package/dist/live-connectors-runner.d.ts +1 -1
  138. package/dist/local-llm.d.ts +1 -1
  139. package/dist/maintenance/memory-governance.d.ts +1 -1
  140. package/dist/maintenance/memory-governance.js +5 -5
  141. package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +5 -5
  142. package/dist/maintenance/rebuild-memory-projection.js +6 -6
  143. package/dist/mcp-memory-inspector-app.d.ts +5 -5
  144. package/dist/memory-action-policy.d.ts +1 -1
  145. package/dist/memory-cache.d.ts +1 -1
  146. package/dist/memory-lifecycle-ledger-utils.d.ts +1 -1
  147. package/dist/memory-projection-store.d.ts +1 -1
  148. package/dist/memory-provenance.d.ts +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 +10 -10
  153. package/dist/namespaces/principal.d.ts +1 -1
  154. package/dist/namespaces/search.d.ts +1 -1
  155. package/dist/namespaces/search.js +4 -4
  156. package/dist/namespaces/storage.d.ts +2 -2
  157. package/dist/namespaces/storage.js +5 -5
  158. package/dist/native-knowledge.d.ts +1 -1
  159. package/dist/operator-toolkit.d.ts +1 -1
  160. package/dist/operator-toolkit.js +14 -14
  161. package/dist/{orchestrator-B7ixmUkP.d.ts → orchestrator-DvswGK76.d.ts} +3 -3
  162. package/dist/orchestrator.d.ts +4 -4
  163. package/dist/orchestrator.js +34 -34
  164. package/dist/patterns-cli.d.ts +1 -1
  165. package/dist/policy-runtime.d.ts +1 -1
  166. package/dist/provenance.d.ts +1 -1
  167. package/dist/qmd-recall-cache.d.ts +1 -1
  168. package/dist/qmd.d.ts +1 -1
  169. package/dist/recall-disclosure-escalation.d.ts +1 -1
  170. package/dist/recall-explain-renderer.d.ts +1 -1
  171. package/dist/recall-explain-renderer.js +3 -3
  172. package/dist/recall-planner-llm.d.ts +1 -1
  173. package/dist/recall-planner-llm.js +2 -2
  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 +4 -4
  178. package/dist/recall-xray-renderer.d.ts +1 -1
  179. package/dist/recall-xray-renderer.js +3 -3
  180. package/dist/recall-xray.d.ts +1 -1
  181. package/dist/recall-xray.js +2 -2
  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/search/embed-helper.d.ts +1 -1
  189. package/dist/search/factory.d.ts +1 -1
  190. package/dist/search/factory.js +3 -3
  191. package/dist/search/index.d.ts +1 -1
  192. package/dist/search/index.js +3 -3
  193. package/dist/search/lancedb-backend.d.ts +1 -1
  194. package/dist/search/meilisearch-backend.d.ts +1 -1
  195. package/dist/search/noop-backend.d.ts +1 -1
  196. package/dist/search/orama-backend.d.ts +1 -1
  197. package/dist/search/port.d.ts +1 -1
  198. package/dist/search/remote-backend.d.ts +1 -1
  199. package/dist/{semantic-consolidation-CWch5uM7.d.ts → semantic-consolidation-D5U0Mrdb.d.ts} +1 -1
  200. package/dist/semantic-consolidation.d.ts +2 -2
  201. package/dist/semantic-consolidation.js +6 -6
  202. package/dist/semantic-rule-promotion.js +5 -5
  203. package/dist/semantic-rule-verifier.d.ts +1 -1
  204. package/dist/semantic-rule-verifier.js +5 -5
  205. package/dist/session-observer-bands.d.ts +1 -1
  206. package/dist/session-observer-state.d.ts +1 -1
  207. package/dist/shared-context/manager.d.ts +1 -1
  208. package/dist/signal.d.ts +1 -1
  209. package/dist/storage.d.ts +3 -1
  210. package/dist/storage.js +4 -4
  211. package/dist/summarizer.d.ts +1 -1
  212. package/dist/summarizer.js +3 -3
  213. package/dist/summary-snapshot.d.ts +1 -1
  214. package/dist/temporal-supersession.d.ts +1 -1
  215. package/dist/temporal-supersession.js +2 -2
  216. package/dist/temporal-validity.d.ts +22 -2
  217. package/dist/temporal-validity.js +3 -1
  218. package/dist/threading.d.ts +1 -1
  219. package/dist/tier-migration.d.ts +1 -1
  220. package/dist/tier-routing.d.ts +1 -1
  221. package/dist/topics.d.ts +1 -1
  222. package/dist/transcript.d.ts +1 -1
  223. package/dist/transfer/autodetect.js +1 -1
  224. package/dist/transfer/backup.js +1 -1
  225. package/dist/transfer/capsule-export.js +2 -2
  226. package/dist/{types-Dm5xxVrr.d.ts → types-2NoBoRBM.d.ts} +38 -0
  227. package/dist/types.d.ts +1 -1
  228. package/dist/types.js +1 -1
  229. package/dist/utility-runtime.d.ts +1 -1
  230. package/dist/verified-recall.js +5 -5
  231. package/package.json +2 -2
  232. package/src/bitemporal-frontmatter.test.ts +177 -0
  233. package/src/config.ts +13 -0
  234. package/src/event-time.test.ts +514 -0
  235. package/src/event-time.ts +548 -0
  236. package/src/orchestrator.ts +27 -1
  237. package/src/storage.ts +34 -0
  238. package/src/temporal-validity.ts +34 -0
  239. package/src/types.ts +38 -0
  240. package/dist/chunk-A7UZR6RA.js.map +0 -1
  241. package/dist/chunk-CE6CBRCV.js.map +0 -1
  242. package/dist/chunk-CUNTLEJP.js.map +0 -1
  243. package/dist/chunk-NGFEWFNK.js.map +0 -1
  244. /package/dist/{auto-sync-NUQWSFQD.js.map → auto-sync-RWXT6P5M.js.map} +0 -0
  245. /package/dist/{chunk-GTDH3IUH.js.map → chunk-2D27ODNX.js.map} +0 -0
  246. /package/dist/{chunk-3K37VPM3.js.map → chunk-3BRA3N5A.js.map} +0 -0
  247. /package/dist/{chunk-RTFAZOIR.js.map → chunk-3VVH6ZQW.js.map} +0 -0
  248. /package/dist/{chunk-FIVDN2SM.js.map → chunk-4RGWCRIJ.js.map} +0 -0
  249. /package/dist/{chunk-AGJH5ISO.js.map → chunk-5KBNNUXS.js.map} +0 -0
  250. /package/dist/{chunk-X7RLU5CR.js.map → chunk-66HROLW5.js.map} +0 -0
  251. /package/dist/{chunk-NSVXK7M5.js.map → chunk-7UVDIWLL.js.map} +0 -0
  252. /package/dist/{chunk-UPIBE2DK.js.map → chunk-ADUAF5EV.js.map} +0 -0
  253. /package/dist/{chunk-LLONI6PY.js.map → chunk-AFWEUTMS.js.map} +0 -0
  254. /package/dist/{chunk-CWE74HRG.js.map → chunk-D3DNGQNQ.js.map} +0 -0
  255. /package/dist/{chunk-ZUDM75KG.js.map → chunk-DCWIQFNA.js.map} +0 -0
  256. /package/dist/{chunk-OBXTMFZQ.js.map → chunk-ECZPWSB5.js.map} +0 -0
  257. /package/dist/{chunk-BFVPIKDY.js.map → chunk-GCOSQBQ2.js.map} +0 -0
  258. /package/dist/{chunk-LXIEXSHU.js.map → chunk-IPJD7WJH.js.map} +0 -0
  259. /package/dist/{chunk-KQAFEZQX.js.map → chunk-IPLYGWQF.js.map} +0 -0
  260. /package/dist/{chunk-RKNJBZ55.js.map → chunk-JBPKEARU.js.map} +0 -0
  261. /package/dist/{chunk-WROKD3XC.js.map → chunk-K7I24ZO2.js.map} +0 -0
  262. /package/dist/{chunk-Z7KILAOU.js.map → chunk-KO6OL4I7.js.map} +0 -0
  263. /package/dist/{chunk-SB6CQTKP.js.map → chunk-MCV2DD6F.js.map} +0 -0
  264. /package/dist/{chunk-3FC6LW6T.js.map → chunk-MRFVMSTR.js.map} +0 -0
  265. /package/dist/{chunk-WDXCNJSF.js.map → chunk-MXZWKOOR.js.map} +0 -0
  266. /package/dist/{chunk-XKUKJIOY.js.map → chunk-NCRDCTEJ.js.map} +0 -0
  267. /package/dist/{chunk-RGNEARXW.js.map → chunk-NUZ3N445.js.map} +0 -0
  268. /package/dist/{chunk-CP2NZQLT.js.map → chunk-OOO7ZKOD.js.map} +0 -0
  269. /package/dist/{chunk-PHZKALOE.js.map → chunk-QFG23CRE.js.map} +0 -0
  270. /package/dist/{chunk-UDJLF3BO.js.map → chunk-QLRYXOAD.js.map} +0 -0
  271. /package/dist/{chunk-ZU7N3S6V.js.map → chunk-QNG35H27.js.map} +0 -0
  272. /package/dist/{chunk-A4HH2EWA.js.map → chunk-QVG4LAQO.js.map} +0 -0
  273. /package/dist/{chunk-54PVJDO5.js.map → chunk-SAC5V6JT.js.map} +0 -0
  274. /package/dist/{chunk-OMKUJTVJ.js.map → chunk-TSGREOYY.js.map} +0 -0
  275. /package/dist/{chunk-2N6UNJSX.js.map → chunk-U2OBZSGG.js.map} +0 -0
  276. /package/dist/{chunk-BKAMHZYR.js.map → chunk-UOCLRM74.js.map} +0 -0
  277. /package/dist/{chunk-TYF3D4MS.js.map → chunk-UUMYB3FR.js.map} +0 -0
  278. /package/dist/{chunk-46URPRE6.js.map → chunk-VH2DHBHG.js.map} +0 -0
  279. /package/dist/{chunk-UD5OKH4J.js.map → chunk-W4ELOUNX.js.map} +0 -0
  280. /package/dist/{chunk-GR77Z2BM.js.map → chunk-WIKNVFBS.js.map} +0 -0
  281. /package/dist/{chunk-67MMWC74.js.map → chunk-ZLXGFAML.js.map} +0 -0
@@ -24,6 +24,14 @@ function isValidAsOf(fm, asOfMs) {
24
24
  if (!Number.isFinite(invalidAtMs)) return true;
25
25
  return invalidAtMs > asOfMs;
26
26
  }
27
+ function isValidityExpiredNow(fm, nowMs) {
28
+ if (!Number.isFinite(nowMs)) return false;
29
+ const invalidAt = fm.invalid_at?.trim();
30
+ if (!invalidAt || invalidAt.length === 0) return false;
31
+ const invalidAtMs = Date.parse(invalidAt);
32
+ if (!Number.isFinite(invalidAtMs)) return false;
33
+ return invalidAtMs <= nowMs;
34
+ }
27
35
  function parseAsOfTimestamp(raw) {
28
36
  if (typeof raw !== "string" || raw.trim().length === 0) {
29
37
  throw new RangeError(
@@ -43,6 +51,7 @@ export {
43
51
  effectiveValidAt,
44
52
  effectiveInvalidAt,
45
53
  isValidAsOf,
54
+ isValidityExpiredNow,
46
55
  parseAsOfTimestamp
47
56
  };
48
- //# sourceMappingURL=chunk-MDYG7VI7.js.map
57
+ //# sourceMappingURL=chunk-IREVVFTM.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/temporal-validity.ts"],"sourcesContent":["/**\n * Temporal validity helpers (issue #680).\n *\n * `valid_at` / `invalid_at` are explicit ISO 8601 timestamps that mark when a\n * fact begins and ends being authoritative. These helpers centralize the\n * read-time defaulting rules so every call site (recall filter, supersession\n * write, tests) agrees on the canonical semantics:\n *\n * - `effectiveValidAt(fm)` — the moment this fact starts being true.\n * Falls back to `created` when `valid_at` is absent so legacy memories\n * written before #680 still participate in `as_of` filtering without\n * a backfill migration.\n * - `effectiveInvalidAt(fm)` — the moment this fact stops being true.\n * Returns `undefined` when no `invalid_at` is set; supersession logic\n * populates it on the older fact when a newer one replaces it.\n * - `isValidAsOf(fm, asOfMs)` — true when the fact was authoritative at\n * `asOfMs` (a numeric timestamp in ms). Half-open interval semantics:\n * `valid_at <= asOf < invalid_at`. Strings are parsed via\n * `Date.parse()` so timezone-suffixed ISO strings compare correctly\n * (CLAUDE.md gotcha — never compare ISO strings lexicographically).\n *\n * Boundary case: when `invalid_at === asOf`, the fact is treated as NOT\n * valid (the upper bound is exclusive), which matches the supersession\n * model — at the instant a successor's `valid_at` fires, the predecessor\n * is no longer authoritative.\n */\nimport type { MemoryFrontmatter } from \"./types.js\";\n\nexport function effectiveValidAt(fm: Pick<MemoryFrontmatter, \"valid_at\" | \"created\">): string {\n // `created` is required on every memory (see types.ts), so the fallback\n // chain always terminates. Trimming guards against whitespace-only\n // overrides written by legacy tooling.\n const explicit = fm.valid_at?.trim();\n if (explicit && explicit.length > 0) return explicit;\n return fm.created;\n}\n\nexport function effectiveInvalidAt(\n fm: Pick<MemoryFrontmatter, \"invalid_at\" | \"supersededAt\" | \"status\">,\n): string | undefined {\n const explicit = fm.invalid_at?.trim();\n if (explicit && explicit.length > 0) return explicit;\n // Cursor Medium rounds 1+2 on PR #713: legacy data written before\n // #680 has `status: superseded` and `supersededAt` populated, but\n // no `invalid_at`. With the new `as_of` filter bypassing the\n // supersession status check, those legacy predecessors would\n // otherwise be treated as \"always valid\" and surface alongside\n // their successors at every historical pin. Fall back to\n // `supersededAt` so the half-open `[valid_at, invalid_at)`\n // interval still terminates for legacy supersedes without\n // requiring a backfill migration.\n //\n // BOUNDARY APPROXIMATION: `supersededAt` is when the supersession\n // write fired, which may post-date the successor's true\n // `valid_at` (consolidation runs on its own cadence). So the\n // legacy predecessor stays visible from `valid_at` through\n // `supersededAt` rather than the tighter `valid_at` through\n // successor-`valid_at` window. We accept this intentionally: the\n // alternative — successor-aware coordination — would require\n // threading the successor through every call site, and \"show the\n // legacy fact a bit too long\" is a clear win over \"drop legacy\n // facts entirely from `as_of`\". New data (post-#680) writes\n // `invalid_at` directly and is unaffected.\n if (fm.status === \"superseded\") {\n const legacy = fm.supersededAt?.trim();\n if (legacy && legacy.length > 0) return legacy;\n }\n return undefined;\n}\n\n/**\n * Returns true when the fact was authoritative at `asOfMs` (parsed\n * milliseconds since epoch). Half-open semantics: a fact is valid in\n * `[valid_at, invalid_at)`.\n *\n * If `valid_at` cannot be parsed, the fact is conservatively treated as\n * NOT valid at the requested point — we never silently default a corrupt\n * timestamp to \"always true\" because that would let bad data leak past\n * the historical filter (CLAUDE.md gotcha #34: distinguish empty from\n * malformed).\n */\nexport function isValidAsOf(\n fm: Pick<\n MemoryFrontmatter,\n \"valid_at\" | \"invalid_at\" | \"created\" | \"supersededAt\" | \"status\"\n >,\n asOfMs: number,\n): boolean {\n if (!Number.isFinite(asOfMs)) return true;\n const validAtMs = Date.parse(effectiveValidAt(fm));\n if (!Number.isFinite(validAtMs)) return false;\n if (validAtMs > asOfMs) return false;\n const invalidAt = effectiveInvalidAt(fm);\n if (invalidAt === undefined) return true;\n const invalidAtMs = Date.parse(invalidAt);\n // Unparseable invalid_at — conservatively keep the fact (we can read\n // valid_at, so we know the fact was at some point true; corrupt\n // invalid_at is not a reason to hide it).\n if (!Number.isFinite(invalidAtMs)) return true;\n // Half-open: at exactly invalid_at, the fact is no longer valid.\n return invalidAtMs > asOfMs;\n}\n\n/**\n * Parse and validate an `as_of` value supplied at an input boundary\n * (CLI flag, HTTP query param, MCP field). Returns parsed milliseconds\n * on success; throws a `RangeError` with a helpful message on malformed\n * input. CLAUDE.md rule 51 — never silently default invalid input.\n */\nexport function parseAsOfTimestamp(raw: unknown): number {\n if (typeof raw !== \"string\" || raw.trim().length === 0) {\n throw new RangeError(\n `as_of must be a non-empty ISO 8601 timestamp string (got: ${typeof raw === \"string\" ? `\"${raw}\"` : typeof raw})`,\n );\n }\n const ms = Date.parse(raw);\n if (!Number.isFinite(ms)) {\n throw new RangeError(\n `as_of must be a parseable ISO 8601 timestamp (got: \"${raw}\")`,\n );\n }\n return ms;\n}\n"],"mappings":";AA4BO,SAAS,iBAAiB,IAA6D;AAI5F,QAAM,WAAW,GAAG,UAAU,KAAK;AACnC,MAAI,YAAY,SAAS,SAAS,EAAG,QAAO;AAC5C,SAAO,GAAG;AACZ;AAEO,SAAS,mBACd,IACoB;AACpB,QAAM,WAAW,GAAG,YAAY,KAAK;AACrC,MAAI,YAAY,SAAS,SAAS,EAAG,QAAO;AAsB5C,MAAI,GAAG,WAAW,cAAc;AAC9B,UAAM,SAAS,GAAG,cAAc,KAAK;AACrC,QAAI,UAAU,OAAO,SAAS,EAAG,QAAO;AAAA,EAC1C;AACA,SAAO;AACT;AAaO,SAAS,YACd,IAIA,QACS;AACT,MAAI,CAAC,OAAO,SAAS,MAAM,EAAG,QAAO;AACrC,QAAM,YAAY,KAAK,MAAM,iBAAiB,EAAE,CAAC;AACjD,MAAI,CAAC,OAAO,SAAS,SAAS,EAAG,QAAO;AACxC,MAAI,YAAY,OAAQ,QAAO;AAC/B,QAAM,YAAY,mBAAmB,EAAE;AACvC,MAAI,cAAc,OAAW,QAAO;AACpC,QAAM,cAAc,KAAK,MAAM,SAAS;AAIxC,MAAI,CAAC,OAAO,SAAS,WAAW,EAAG,QAAO;AAE1C,SAAO,cAAc;AACvB;AAQO,SAAS,mBAAmB,KAAsB;AACvD,MAAI,OAAO,QAAQ,YAAY,IAAI,KAAK,EAAE,WAAW,GAAG;AACtD,UAAM,IAAI;AAAA,MACR,6DAA6D,OAAO,QAAQ,WAAW,IAAI,GAAG,MAAM,OAAO,GAAG;AAAA,IAChH;AAAA,EACF;AACA,QAAM,KAAK,KAAK,MAAM,GAAG;AACzB,MAAI,CAAC,OAAO,SAAS,EAAE,GAAG;AACxB,UAAM,IAAI;AAAA,MACR,uDAAuD,GAAG;AAAA,IAC5D;AAAA,EACF;AACA,SAAO;AACT;","names":[]}
1
+ {"version":3,"sources":["../src/temporal-validity.ts"],"sourcesContent":["/**\n * Temporal validity helpers (issue #680).\n *\n * `valid_at` / `invalid_at` are explicit ISO 8601 timestamps that mark when a\n * fact begins and ends being authoritative. These helpers centralize the\n * read-time defaulting rules so every call site (recall filter, supersession\n * write, tests) agrees on the canonical semantics:\n *\n * - `effectiveValidAt(fm)` — the moment this fact starts being true.\n * Falls back to `created` when `valid_at` is absent so legacy memories\n * written before #680 still participate in `as_of` filtering without\n * a backfill migration.\n * - `effectiveInvalidAt(fm)` — the moment this fact stops being true.\n * Returns `undefined` when no `invalid_at` is set; supersession logic\n * populates it on the older fact when a newer one replaces it.\n * - `isValidAsOf(fm, asOfMs)` — true when the fact was authoritative at\n * `asOfMs` (a numeric timestamp in ms). Half-open interval semantics:\n * `valid_at <= asOf < invalid_at`. Strings are parsed via\n * `Date.parse()` so timezone-suffixed ISO strings compare correctly\n * (CLAUDE.md gotcha — never compare ISO strings lexicographically).\n *\n * Boundary case: when `invalid_at === asOf`, the fact is treated as NOT\n * valid (the upper bound is exclusive), which matches the supersession\n * model — at the instant a successor's `valid_at` fires, the predecessor\n * is no longer authoritative.\n */\nimport type { MemoryFrontmatter } from \"./types.js\";\n\nexport function effectiveValidAt(fm: Pick<MemoryFrontmatter, \"valid_at\" | \"created\">): string {\n // `created` is required on every memory (see types.ts), so the fallback\n // chain always terminates. Trimming guards against whitespace-only\n // overrides written by legacy tooling.\n const explicit = fm.valid_at?.trim();\n if (explicit && explicit.length > 0) return explicit;\n return fm.created;\n}\n\nexport function effectiveInvalidAt(\n fm: Pick<MemoryFrontmatter, \"invalid_at\" | \"supersededAt\" | \"status\">,\n): string | undefined {\n const explicit = fm.invalid_at?.trim();\n if (explicit && explicit.length > 0) return explicit;\n // Cursor Medium rounds 1+2 on PR #713: legacy data written before\n // #680 has `status: superseded` and `supersededAt` populated, but\n // no `invalid_at`. With the new `as_of` filter bypassing the\n // supersession status check, those legacy predecessors would\n // otherwise be treated as \"always valid\" and surface alongside\n // their successors at every historical pin. Fall back to\n // `supersededAt` so the half-open `[valid_at, invalid_at)`\n // interval still terminates for legacy supersedes without\n // requiring a backfill migration.\n //\n // BOUNDARY APPROXIMATION: `supersededAt` is when the supersession\n // write fired, which may post-date the successor's true\n // `valid_at` (consolidation runs on its own cadence). So the\n // legacy predecessor stays visible from `valid_at` through\n // `supersededAt` rather than the tighter `valid_at` through\n // successor-`valid_at` window. We accept this intentionally: the\n // alternative — successor-aware coordination — would require\n // threading the successor through every call site, and \"show the\n // legacy fact a bit too long\" is a clear win over \"drop legacy\n // facts entirely from `as_of`\". New data (post-#680) writes\n // `invalid_at` directly and is unaffected.\n if (fm.status === \"superseded\") {\n const legacy = fm.supersededAt?.trim();\n if (legacy && legacy.length > 0) return legacy;\n }\n return undefined;\n}\n\n/**\n * Returns true when the fact was authoritative at `asOfMs` (parsed\n * milliseconds since epoch). Half-open semantics: a fact is valid in\n * `[valid_at, invalid_at)`.\n *\n * If `valid_at` cannot be parsed, the fact is conservatively treated as\n * NOT valid at the requested point — we never silently default a corrupt\n * timestamp to \"always true\" because that would let bad data leak past\n * the historical filter (CLAUDE.md gotcha #34: distinguish empty from\n * malformed).\n */\nexport function isValidAsOf(\n fm: Pick<\n MemoryFrontmatter,\n \"valid_at\" | \"invalid_at\" | \"created\" | \"supersededAt\" | \"status\"\n >,\n asOfMs: number,\n): boolean {\n if (!Number.isFinite(asOfMs)) return true;\n const validAtMs = Date.parse(effectiveValidAt(fm));\n if (!Number.isFinite(validAtMs)) return false;\n if (validAtMs > asOfMs) return false;\n const invalidAt = effectiveInvalidAt(fm);\n if (invalidAt === undefined) return true;\n const invalidAtMs = Date.parse(invalidAt);\n // Unparseable invalid_at — conservatively keep the fact (we can read\n // valid_at, so we know the fact was at some point true; corrupt\n // invalid_at is not a reason to hide it).\n if (!Number.isFinite(invalidAtMs)) return true;\n // Half-open: at exactly invalid_at, the fact is no longer valid.\n return invalidAtMs > asOfMs;\n}\n\n/**\n * Bi-temporal injection filter (issue #1578).\n *\n * Returns `true` when the fact's event-time interval has already ended before\n * `nowMs` — i.e. it is no longer *true in the world* and should leave the\n * default injection candidate set (it remains findable by explicit search\n * and `as_of` queries, mirroring the lifecycle-filter escape-hatch principle\n * in AGENTS.md §16). Gated by `temporalBiTemporal`; the escape hatch\n * `temporalExpiredInInjection` re-admits expired facts when a deployment\n * prefers the older always-inject behavior.\n *\n * Semantics: a fact is expired-now when `invalid_at` is present and\n * `invalid_at <= nowMs` (the exclusive upper bound has passed). Absent\n * `invalid_at` means \"still valid\" — never expired. This is the\n * status-orthogonal complement of `isValidAsOf` for the wall-clock instant:\n * an `active` memory can be validity-expired, and a `superseded` one can\n * still be validity-valid within its historical window (issue pitfall: the\n * filter is status-orthogonal).\n */\nexport function isValidityExpiredNow(\n fm: Pick<MemoryFrontmatter, \"invalid_at\">,\n nowMs: number,\n): boolean {\n if (!Number.isFinite(nowMs)) return false;\n const invalidAt = fm.invalid_at?.trim();\n if (!invalidAt || invalidAt.length === 0) return false;\n const invalidAtMs = Date.parse(invalidAt);\n // Unparseable invalid_at — conservatively keep the fact (do not filter on\n // corrupt data; the as_of path already handles malformed bounds).\n if (!Number.isFinite(invalidAtMs)) return false;\n // Half-open interval end has passed: [valid_at, invalid_at) ended.\n return invalidAtMs <= nowMs;\n}\n\n/**\n * Parse and validate an `as_of` value supplied at an input boundary\n * (CLI flag, HTTP query param, MCP field). Returns parsed milliseconds\n * on success; throws a `RangeError` with a helpful message on malformed\n * input. CLAUDE.md rule 51 — never silently default invalid input.\n */\nexport function parseAsOfTimestamp(raw: unknown): number {\n if (typeof raw !== \"string\" || raw.trim().length === 0) {\n throw new RangeError(\n `as_of must be a non-empty ISO 8601 timestamp string (got: ${typeof raw === \"string\" ? `\"${raw}\"` : typeof raw})`,\n );\n }\n const ms = Date.parse(raw);\n if (!Number.isFinite(ms)) {\n throw new RangeError(\n `as_of must be a parseable ISO 8601 timestamp (got: \"${raw}\")`,\n );\n }\n return ms;\n}\n"],"mappings":";AA4BO,SAAS,iBAAiB,IAA6D;AAI5F,QAAM,WAAW,GAAG,UAAU,KAAK;AACnC,MAAI,YAAY,SAAS,SAAS,EAAG,QAAO;AAC5C,SAAO,GAAG;AACZ;AAEO,SAAS,mBACd,IACoB;AACpB,QAAM,WAAW,GAAG,YAAY,KAAK;AACrC,MAAI,YAAY,SAAS,SAAS,EAAG,QAAO;AAsB5C,MAAI,GAAG,WAAW,cAAc;AAC9B,UAAM,SAAS,GAAG,cAAc,KAAK;AACrC,QAAI,UAAU,OAAO,SAAS,EAAG,QAAO;AAAA,EAC1C;AACA,SAAO;AACT;AAaO,SAAS,YACd,IAIA,QACS;AACT,MAAI,CAAC,OAAO,SAAS,MAAM,EAAG,QAAO;AACrC,QAAM,YAAY,KAAK,MAAM,iBAAiB,EAAE,CAAC;AACjD,MAAI,CAAC,OAAO,SAAS,SAAS,EAAG,QAAO;AACxC,MAAI,YAAY,OAAQ,QAAO;AAC/B,QAAM,YAAY,mBAAmB,EAAE;AACvC,MAAI,cAAc,OAAW,QAAO;AACpC,QAAM,cAAc,KAAK,MAAM,SAAS;AAIxC,MAAI,CAAC,OAAO,SAAS,WAAW,EAAG,QAAO;AAE1C,SAAO,cAAc;AACvB;AAqBO,SAAS,qBACd,IACA,OACS;AACT,MAAI,CAAC,OAAO,SAAS,KAAK,EAAG,QAAO;AACpC,QAAM,YAAY,GAAG,YAAY,KAAK;AACtC,MAAI,CAAC,aAAa,UAAU,WAAW,EAAG,QAAO;AACjD,QAAM,cAAc,KAAK,MAAM,SAAS;AAGxC,MAAI,CAAC,OAAO,SAAS,WAAW,EAAG,QAAO;AAE1C,SAAO,eAAe;AACxB;AAQO,SAAS,mBAAmB,KAAsB;AACvD,MAAI,OAAO,QAAQ,YAAY,IAAI,KAAK,EAAE,WAAW,GAAG;AACtD,UAAM,IAAI;AAAA,MACR,6DAA6D,OAAO,QAAQ,WAAW,IAAI,GAAG,MAAM,OAAO,GAAG;AAAA,IAChH;AAAA,EACF;AACA,QAAM,KAAK,KAAK,MAAM,GAAG;AACzB,MAAI,CAAC,OAAO,SAAS,EAAE,GAAG;AACxB,UAAM,IAAI;AAAA,MACR,uDAAuD,GAAG;AAAA,IAC5D;AAAA,EACF;AACA,SAAO;AACT;","names":[]}
@@ -1,3 +1,6 @@
1
+ import {
2
+ ReplitAdapter
3
+ } from "./chunk-TMSXWOBZ.js";
1
4
  import {
2
5
  ClaudeCodeAdapter
3
6
  } from "./chunk-J64TK33U.js";
@@ -7,9 +10,6 @@ import {
7
10
  import {
8
11
  HermesAdapter
9
12
  } from "./chunk-42NQ7AVG.js";
10
- import {
11
- ReplitAdapter
12
- } from "./chunk-TMSXWOBZ.js";
13
13
 
14
14
  // src/adapters/registry.ts
15
15
  var AdapterRegistry = class {
@@ -53,4 +53,4 @@ var AdapterRegistry = class {
53
53
  export {
54
54
  AdapterRegistry
55
55
  };
56
- //# sourceMappingURL=chunk-RKNJBZ55.js.map
56
+ //# sourceMappingURL=chunk-JBPKEARU.js.map
@@ -1,12 +1,12 @@
1
+ import {
2
+ claudeReplayNormalizer
3
+ } from "./chunk-LQHDIS7L.js";
1
4
  import {
2
5
  openclawReplayNormalizer
3
6
  } from "./chunk-7F7Z6MOS.js";
4
7
  import {
5
8
  chatgptReplayNormalizer
6
9
  } from "./chunk-MC4FJXPA.js";
7
- import {
8
- claudeReplayNormalizer
9
- } from "./chunk-LQHDIS7L.js";
10
10
  import {
11
11
  exportJsonBundle
12
12
  } from "./chunk-UP6MOYCB.js";
@@ -47,12 +47,12 @@ import {
47
47
  } from "./chunk-D6RIFG4O.js";
48
48
  import {
49
49
  rebuildMemoryLifecycleLedger
50
- } from "./chunk-GR77Z2BM.js";
50
+ } from "./chunk-WIKNVFBS.js";
51
51
  import {
52
52
  rebuildMemoryProjection,
53
53
  repairMemoryProjection,
54
54
  verifyMemoryProjection
55
- } from "./chunk-RGNEARXW.js";
55
+ } from "./chunk-NUZ3N445.js";
56
56
  import {
57
57
  rebuildObservations
58
58
  } from "./chunk-LZZNTPLR.js";
@@ -74,18 +74,18 @@ import {
74
74
  } from "./chunk-IQ7WCZRW.js";
75
75
  import {
76
76
  promoteSemanticRuleFromMemory
77
- } from "./chunk-SB6CQTKP.js";
77
+ } from "./chunk-MCV2DD6F.js";
78
+ import {
79
+ resolveAgentAccessAuthToken
80
+ } from "./chunk-TGQ2NTWH.js";
78
81
  import {
79
82
  buildResumeBundleFromState,
80
83
  getResumeBundleStatus,
81
84
  recordResumeBundle
82
- } from "./chunk-3K37VPM3.js";
85
+ } from "./chunk-3BRA3N5A.js";
83
86
  import {
84
87
  parseXrayCliOptions
85
- } from "./chunk-BFVPIKDY.js";
86
- import {
87
- resolveAgentAccessAuthToken
88
- } from "./chunk-TGQ2NTWH.js";
88
+ } from "./chunk-GCOSQBQ2.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-CP2NZQLT.js";
105
+ } from "./chunk-OOO7ZKOD.js";
106
106
  import {
107
107
  listNamespaces,
108
108
  runNamespaceMigration,
109
109
  verifyNamespaces
110
- } from "./chunk-CWE74HRG.js";
110
+ } from "./chunk-D3DNGQNQ.js";
111
111
  import {
112
112
  GraphDashboardServer
113
113
  } from "./chunk-YNDLCWXS.js";
@@ -128,13 +128,13 @@ import {
128
128
  } from "./chunk-TERNBNJB.js";
129
129
  import {
130
130
  searchVerifiedEpisodes
131
- } from "./chunk-RTFAZOIR.js";
131
+ } from "./chunk-3VVH6ZQW.js";
132
132
  import {
133
133
  ThreadingManager
134
134
  } from "./chunk-QRDOSYOR.js";
135
135
  import {
136
136
  searchVerifiedSemanticRules
137
- } from "./chunk-67MMWC74.js";
137
+ } from "./chunk-ZLXGFAML.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-ZU7N3S6V.js";
152
+ } from "./chunk-QNG35H27.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-A7UZR6RA.js";
216
+ } from "./chunk-UTUYAPLY.js";
217
217
  import {
218
218
  getAbstractionNodeStoreStatus
219
219
  } from "./chunk-OADWQ5CR.js";
220
220
  import {
221
221
  EngramAccessHttpServer
222
- } from "./chunk-XKUKJIOY.js";
222
+ } from "./chunk-NCRDCTEJ.js";
223
223
  import {
224
224
  WearablesInputError
225
225
  } from "./chunk-7WV3F5DQ.js";
226
226
  import {
227
227
  EngramMcpServer
228
- } from "./chunk-OMKUJTVJ.js";
228
+ } from "./chunk-TSGREOYY.js";
229
229
  import {
230
230
  EngramAccessService
231
- } from "./chunk-Z7KILAOU.js";
231
+ } from "./chunk-KO6OL4I7.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-GTDH3IUH.js";
239
+ } from "./chunk-2D27ODNX.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-54PVJDO5.js";
253
+ } from "./chunk-SAC5V6JT.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-NGFEWFNK.js";
266
+ } from "./chunk-DQHZA7Y3.js";
267
267
  import {
268
268
  RECALL_FALLBACK_DIRS
269
269
  } from "./chunk-VS2IYZRU.js";
@@ -7326,4 +7326,4 @@ export {
7326
7326
  listMemoryMarkdownFilePaths,
7327
7327
  registerCli
7328
7328
  };
7329
- //# sourceMappingURL=chunk-WROKD3XC.js.map
7329
+ //# sourceMappingURL=chunk-K7I24ZO2.js.map
@@ -9,6 +9,9 @@ import {
9
9
  import {
10
10
  importCapsule
11
11
  } from "./chunk-ARV3AUOM.js";
12
+ import {
13
+ toRecallExplainJson
14
+ } from "./chunk-2D27ODNX.js";
12
15
  import {
13
16
  applyTagFilter,
14
17
  normalizeTags,
@@ -17,9 +20,6 @@ import {
17
20
  import {
18
21
  decideDisclosureEscalation
19
22
  } from "./chunk-H7XKCNR6.js";
20
- import {
21
- toRecallExplainJson
22
- } from "./chunk-GTDH3IUH.js";
23
23
  import {
24
24
  clusterByKey,
25
25
  combineNamespaces,
@@ -44,7 +44,7 @@ import {
44
44
  } from "./chunk-FF4KLI5W.js";
45
45
  import {
46
46
  estimateRecallTokens
47
- } from "./chunk-LLONI6PY.js";
47
+ } from "./chunk-AFWEUTMS.js";
48
48
  import {
49
49
  recordObjectiveStateSnapshotsFromObservedMessages
50
50
  } from "./chunk-BMFZLLNI.js";
@@ -58,10 +58,10 @@ import {
58
58
  listMemoryGovernanceRuns,
59
59
  readMemoryGovernanceRunArtifact,
60
60
  runMemoryGovernance
61
- } from "./chunk-54PVJDO5.js";
61
+ } from "./chunk-SAC5V6JT.js";
62
62
  import {
63
63
  namespaceCollectionName
64
- } from "./chunk-LXIEXSHU.js";
64
+ } from "./chunk-IPJD7WJH.js";
65
65
  import {
66
66
  namespaceIdentityFromToken
67
67
  } from "./chunk-ZFXCQPNO.js";
@@ -71,17 +71,17 @@ import {
71
71
  import {
72
72
  buildGraphSnapshot
73
73
  } from "./chunk-YOI3ELXF.js";
74
- import {
75
- persistExplicitCapture,
76
- queueExplicitCaptureForReview,
77
- validateExplicitCaptureInput
78
- } from "./chunk-U33LWTQQ.js";
79
74
  import {
80
75
  wrapWorkLayerContext
81
76
  } from "./chunk-EI6V5UXY.js";
82
77
  import {
83
78
  formatProfileTraceAscii
84
79
  } from "./chunk-PNLCEFE4.js";
80
+ import {
81
+ persistExplicitCapture,
82
+ queueExplicitCaptureForReview,
83
+ validateExplicitCaptureInput
84
+ } from "./chunk-U33LWTQQ.js";
85
85
  import {
86
86
  buildProcedurePersistBody,
87
87
  normalizeProcedureSteps
@@ -101,17 +101,21 @@ import {
101
101
  buildBriefing,
102
102
  parseBriefingFocus,
103
103
  parseBriefingWindow
104
- } from "./chunk-X7RLU5CR.js";
104
+ } from "./chunk-66HROLW5.js";
105
105
  import {
106
106
  parseEntityFile
107
- } from "./chunk-CUNTLEJP.js";
107
+ } from "./chunk-VFVG4NS2.js";
108
108
  import {
109
109
  stripAttributesSuffix
110
110
  } from "./chunk-SVOZFLIQ.js";
111
111
  import {
112
112
  DEFAULT_RECALL_DISCLOSURE,
113
113
  isRecallDisclosure
114
- } from "./chunk-NGFEWFNK.js";
114
+ } from "./chunk-DQHZA7Y3.js";
115
+ import {
116
+ normalizeProjectionPreview,
117
+ normalizeProjectionTags
118
+ } from "./chunk-SCU65EZI.js";
115
119
  import {
116
120
  getMemoryProjectionPath
117
121
  } from "./chunk-MB5RSUW6.js";
@@ -122,16 +126,12 @@ import {
122
126
  inferMemoryStatus,
123
127
  toMemoryPathRel
124
128
  } from "./chunk-RULE4VG5.js";
125
- import {
126
- normalizeProjectionPreview,
127
- normalizeProjectionTags
128
- } from "./chunk-SCU65EZI.js";
129
129
  import {
130
130
  createVersion
131
131
  } from "./chunk-VF4XKTX3.js";
132
132
  import {
133
133
  exportCapsule
134
- } from "./chunk-KQAFEZQX.js";
134
+ } from "./chunk-IPLYGWQF.js";
135
135
  import {
136
136
  OFFLINE_SYNC_SNAPSHOT_FORMAT,
137
137
  applyOfflineSyncChangeset,
@@ -6660,4 +6660,4 @@ export {
6660
6660
  shapeMemorySummary,
6661
6661
  EngramAccessService
6662
6662
  };
6663
- //# sourceMappingURL=chunk-Z7KILAOU.js.map
6663
+ //# sourceMappingURL=chunk-KO6OL4I7.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  StorageManager
3
- } from "./chunk-CUNTLEJP.js";
3
+ } from "./chunk-VFVG4NS2.js";
4
4
 
5
5
  // src/semantic-rule-promotion.ts
6
6
  import { createHash, randomUUID } from "crypto";
@@ -529,4 +529,4 @@ export {
529
529
  setSemanticRulePromotionTestHooks,
530
530
  promoteSemanticRuleFromMemory
531
531
  };
532
- //# sourceMappingURL=chunk-SB6CQTKP.js.map
532
+ //# sourceMappingURL=chunk-MCV2DD6F.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  effectiveValidAt
3
- } from "./chunk-MDYG7VI7.js";
3
+ } from "./chunk-IREVVFTM.js";
4
4
  import {
5
5
  log
6
6
  } from "./chunk-NU3CSQ4H.js";
@@ -238,4 +238,4 @@ export {
238
238
  applyTemporalSupersession,
239
239
  shouldFilterSupersededFromRecall
240
240
  };
241
- //# sourceMappingURL=chunk-3FC6LW6T.js.map
241
+ //# sourceMappingURL=chunk-MRFVMSTR.js.map
@@ -31,7 +31,7 @@ import {
31
31
  FallbackLlmClient,
32
32
  fallbackLlmRuntimeContextFromConfig,
33
33
  gatewayTaskChainOptions
34
- } from "./chunk-FIVDN2SM.js";
34
+ } from "./chunk-4RGWCRIJ.js";
35
35
  import {
36
36
  buildChatCompletionTokenLimit,
37
37
  shouldAssumeOpenAiChatCompletions
@@ -2328,4 +2328,4 @@ ${memoryList}` }
2328
2328
  export {
2329
2329
  ExtractionEngine
2330
2330
  };
2331
- //# sourceMappingURL=chunk-WDXCNJSF.js.map
2331
+ //# sourceMappingURL=chunk-MXZWKOOR.js.map
@@ -1,21 +1,21 @@
1
1
  import {
2
2
  AdapterRegistry
3
- } from "./chunk-RKNJBZ55.js";
3
+ } from "./chunk-JBPKEARU.js";
4
4
  import {
5
5
  WearablesInputError
6
6
  } from "./chunk-7WV3F5DQ.js";
7
7
  import {
8
8
  EngramMcpServer
9
- } from "./chunk-OMKUJTVJ.js";
9
+ } from "./chunk-TSGREOYY.js";
10
10
  import {
11
11
  validateRequest
12
- } from "./chunk-UDJLF3BO.js";
12
+ } from "./chunk-QLRYXOAD.js";
13
13
  import {
14
14
  getOperation
15
- } from "./chunk-46URPRE6.js";
15
+ } from "./chunk-VH2DHBHG.js";
16
16
  import {
17
17
  EngramAccessInputError
18
- } from "./chunk-Z7KILAOU.js";
18
+ } from "./chunk-KO6OL4I7.js";
19
19
  import {
20
20
  projectTagProjectId
21
21
  } from "./chunk-7MOTEVAA.js";
@@ -27,7 +27,7 @@ import {
27
27
  } from "./chunk-DEUNUKTD.js";
28
28
  import {
29
29
  isRecallDisclosure
30
- } from "./chunk-NGFEWFNK.js";
30
+ } from "./chunk-DQHZA7Y3.js";
31
31
  import {
32
32
  OFFLINE_SYNC_APPLY_MAX_BODY_BYTES,
33
33
  OFFLINE_SYNC_FILE_CONTENT_MAX_CHUNK_BYTES,
@@ -2079,4 +2079,4 @@ function positiveIntQueryParam(value, label) {
2079
2079
  export {
2080
2080
  EngramAccessHttpServer
2081
2081
  };
2082
- //# sourceMappingURL=chunk-XKUKJIOY.js.map
2082
+ //# sourceMappingURL=chunk-NCRDCTEJ.js.map
@@ -10,10 +10,14 @@ import {
10
10
  import {
11
11
  listMemoryGovernanceRuns,
12
12
  readMemoryGovernanceRunArtifact
13
- } from "./chunk-54PVJDO5.js";
13
+ } from "./chunk-SAC5V6JT.js";
14
14
  import {
15
15
  StorageManager
16
- } from "./chunk-CUNTLEJP.js";
16
+ } from "./chunk-VFVG4NS2.js";
17
+ import {
18
+ normalizeProjectionPreview,
19
+ normalizeProjectionTags
20
+ } from "./chunk-SCU65EZI.js";
17
21
  import {
18
22
  MEMORY_PROJECTION_SCHEMA_VERSION,
19
23
  getMemoryProjectionPath,
@@ -35,10 +39,6 @@ import {
35
39
  sortMemoryLifecycleEvents,
36
40
  toMemoryPathRel
37
41
  } from "./chunk-RULE4VG5.js";
38
- import {
39
- normalizeProjectionPreview,
40
- normalizeProjectionTags
41
- } from "./chunk-SCU65EZI.js";
42
42
 
43
43
  // src/maintenance/rebuild-memory-projection.ts
44
44
  import path from "path";
@@ -929,4 +929,4 @@ export {
929
929
  verifyMemoryProjection,
930
930
  repairMemoryProjection
931
931
  };
932
- //# sourceMappingURL=chunk-RGNEARXW.js.map
932
+ //# sourceMappingURL=chunk-NUZ3N445.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  listNamespaces
3
- } from "./chunk-CWE74HRG.js";
3
+ } from "./chunk-D3DNGQNQ.js";
4
4
  import {
5
5
  runConsolidationProvenanceCheck
6
6
  } from "./chunk-7XH7VJN4.js";
@@ -9,7 +9,7 @@ import {
9
9
  } from "./chunk-YBPYIAA5.js";
10
10
  import {
11
11
  summarizeNamespaceMaintenanceHealth
12
- } from "./chunk-ZU7N3S6V.js";
12
+ } from "./chunk-QNG35H27.js";
13
13
  import {
14
14
  analyzeSessionIntegrity,
15
15
  applySessionRepair,
@@ -35,17 +35,17 @@ import {
35
35
  } from "./chunk-3PY7VHV7.js";
36
36
  import {
37
37
  parseConfig
38
- } from "./chunk-A7UZR6RA.js";
38
+ } from "./chunk-UTUYAPLY.js";
39
39
  import {
40
40
  listMemoryGovernanceRuns,
41
41
  readMemoryGovernanceRunArtifact
42
- } from "./chunk-54PVJDO5.js";
42
+ } from "./chunk-SAC5V6JT.js";
43
43
  import {
44
44
  analyzeGraphHealth
45
45
  } from "./chunk-KF74X62T.js";
46
46
  import {
47
47
  StorageManager
48
- } from "./chunk-CUNTLEJP.js";
48
+ } from "./chunk-VFVG4NS2.js";
49
49
  import {
50
50
  lintWorkspaceFiles
51
51
  } from "./chunk-DM2T26WE.js";
@@ -1347,4 +1347,4 @@ export {
1347
1347
  runBenchmarkRecall,
1348
1348
  runOperatorRepair
1349
1349
  };
1350
- //# sourceMappingURL=chunk-CP2NZQLT.js.map
1350
+ //# sourceMappingURL=chunk-OOO7ZKOD.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  runPostConsolidationMaterialize
3
- } from "./chunk-UPIBE2DK.js";
3
+ } from "./chunk-ADUAF5EV.js";
4
4
  import {
5
5
  discoverMemoryExtensions,
6
6
  renderExtensionsBlock,
@@ -217,4 +217,4 @@ export {
217
217
  buildExtensionsBlockForConsolidation,
218
218
  materializeAfterSemanticConsolidation
219
219
  };
220
- //# sourceMappingURL=chunk-PHZKALOE.js.map
220
+ //# sourceMappingURL=chunk-QFG23CRE.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  isValidCapsuleSince
3
- } from "./chunk-KQAFEZQX.js";
3
+ } from "./chunk-IPLYGWQF.js";
4
4
  import {
5
5
  CAPSULE_ID_PATTERN
6
6
  } from "./chunk-WEHSQBFR.js";
@@ -433,4 +433,4 @@ export {
433
433
  actionConfidenceRequestSchema,
434
434
  validateRequest
435
435
  };
436
- //# sourceMappingURL=chunk-UDJLF3BO.js.map
436
+ //# sourceMappingURL=chunk-QLRYXOAD.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  resolveDefaultNamespaceRoot,
3
3
  resolveNamespaceStorageRoot
4
- } from "./chunk-UD5OKH4J.js";
4
+ } from "./chunk-W4ELOUNX.js";
5
5
  import {
6
6
  namespaceIdentityFromToken,
7
7
  namespaceIdentityToken,
@@ -2187,4 +2187,4 @@ export {
2187
2187
  summarizeNamespaceMaintenanceHealth,
2188
2188
  formatNamespaceMaintenanceHealthText
2189
2189
  };
2190
- //# sourceMappingURL=chunk-ZU7N3S6V.js.map
2190
+ //# sourceMappingURL=chunk-QNG35H27.js.map
@@ -16,7 +16,7 @@ import {
16
16
  FallbackLlmClient,
17
17
  fallbackLlmRuntimeContextFromConfig,
18
18
  gatewayTaskChainOptions
19
- } from "./chunk-FIVDN2SM.js";
19
+ } from "./chunk-4RGWCRIJ.js";
20
20
  import {
21
21
  encodeStoragePathSegment,
22
22
  resolveSafeStoragePath
@@ -686,4 +686,4 @@ ${truncatedConversation}`;
686
686
  export {
687
687
  HourlySummarizer
688
688
  };
689
- //# sourceMappingURL=chunk-A4HH2EWA.js.map
689
+ //# sourceMappingURL=chunk-QVG4LAQO.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  StorageManager
3
- } from "./chunk-CUNTLEJP.js";
3
+ } from "./chunk-VFVG4NS2.js";
4
4
  import {
5
5
  assertPathInsideRoot
6
6
  } from "./chunk-5GPPACXK.js";
@@ -751,4 +751,4 @@ export {
751
751
  listMemoryGovernanceRuns,
752
752
  readMemoryGovernanceRunArtifact
753
753
  };
754
- //# sourceMappingURL=chunk-54PVJDO5.js.map
754
+ //# sourceMappingURL=chunk-SAC5V6JT.js.map