@remnic/core 9.3.726 → 9.3.728

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 (342) hide show
  1. package/dist/access-boundary.d.ts +5 -5
  2. package/dist/access-boundary.js +22 -22
  3. package/dist/access-cli.js +45 -45
  4. package/dist/access-http.d.ts +20 -5
  5. package/dist/access-http.js +27 -27
  6. package/dist/access-mcp.d.ts +5 -5
  7. package/dist/access-mcp.js +26 -26
  8. package/dist/access-operations-batch.js +23 -23
  9. package/dist/access-operations.d.ts +6 -6
  10. package/dist/access-operations.js +25 -25
  11. package/dist/access-schema.d.ts +4 -4
  12. package/dist/access-schema.js +3 -3
  13. package/dist/{access-service-B2PlPtxh.d.ts → access-service-Bgpjxo4f.d.ts} +36 -4
  14. package/dist/access-service.d.ts +5 -5
  15. package/dist/access-service.js +21 -21
  16. package/dist/access-surface-catalog.d.ts +5 -5
  17. package/dist/action-confidence.d.ts +1 -1
  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 +3 -3
  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 -7
  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 +44 -2
  30. package/dist/capabilities.js +5 -3
  31. package/dist/{capsule-crypto-GWVG7LGC.js → capsule-crypto-7FJQINUR.js} +2 -2
  32. package/dist/{catalog-CzUb-GyD.d.ts → catalog-bMczlO2G.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/causal-trajectory-graph.d.ts +1 -1
  37. package/dist/{chunk-OWHERGF2.js → chunk-2NLLXCJG.js} +2 -2
  38. package/dist/{chunk-BIA7ELIB.js → chunk-36SEDFAU.js} +3 -3
  39. package/dist/{chunk-UQSVUEN2.js → chunk-37436GML.js} +2 -2
  40. package/dist/{chunk-DVRHLN2O.js → chunk-3RCBIOOJ.js} +18 -2
  41. package/dist/{chunk-DVRHLN2O.js.map → chunk-3RCBIOOJ.js.map} +1 -1
  42. package/dist/{chunk-RRHHQYJS.js → chunk-3TSTGI6F.js} +2 -2
  43. package/dist/{chunk-5OOA7SGX.js → chunk-4ESAR77N.js} +2 -2
  44. package/dist/{chunk-FO3HO52S.js → chunk-4H4F3BFL.js} +2 -2
  45. package/dist/{chunk-BEUCACTV.js → chunk-4NOI577P.js} +2 -2
  46. package/dist/{chunk-BBIE7W52.js → chunk-4NR2PDZ5.js} +2 -2
  47. package/dist/{chunk-WGTWGDR5.js → chunk-76NHR6ZL.js} +5 -5
  48. package/dist/{chunk-PKMQK2WY.js → chunk-773DPI6T.js} +4 -4
  49. package/dist/{chunk-MQVKHFIU.js → chunk-7RLCCNHU.js} +8 -8
  50. package/dist/{chunk-XGTBNVIU.js → chunk-AAD2ZS6P.js} +11 -1
  51. package/dist/chunk-AAD2ZS6P.js.map +1 -0
  52. package/dist/{chunk-EZNDNMRH.js → chunk-AQLOP5F4.js} +2 -2
  53. package/dist/{chunk-UNNDFYUX.js → chunk-ARV3AUOM.js} +5 -5
  54. package/dist/{chunk-NPL7VDM6.js → chunk-ASKXIAHD.js} +2 -2
  55. package/dist/{chunk-TQQH2FTX.js → chunk-BQCHEV7O.js} +106 -15
  56. package/dist/{chunk-TQQH2FTX.js.map → chunk-BQCHEV7O.js.map} +1 -1
  57. package/dist/{chunk-ZA2S2VLL.js → chunk-C2PG7IEH.js} +5 -2
  58. package/dist/chunk-C2PG7IEH.js.map +1 -0
  59. package/dist/{chunk-K4ZNARDO.js → chunk-CBWI22JN.js} +2 -2
  60. package/dist/{chunk-ZOHMPFOB.js → chunk-CKFLLAIS.js} +3 -3
  61. package/dist/{chunk-JPUT5NGH.js → chunk-DMQWV6SQ.js} +2 -2
  62. package/dist/{chunk-F3XZN24Z.js → chunk-DRUDC2UX.js} +2 -2
  63. package/dist/{chunk-KJR66XOM.js → chunk-EY6MDMHK.js} +2 -2
  64. package/dist/{chunk-3TUT4PWB.js → chunk-FVZ2ISIX.js} +2 -2
  65. package/dist/{chunk-C4X4QGIO.js → chunk-G6NKALRN.js} +5 -2
  66. package/dist/chunk-G6NKALRN.js.map +1 -0
  67. package/dist/{chunk-6SQQOJ4U.js → chunk-GKRLPHPU.js} +2 -2
  68. package/dist/{chunk-PLG6JHQS.js → chunk-H5BWGCRZ.js} +43 -42
  69. package/dist/chunk-H5BWGCRZ.js.map +1 -0
  70. package/dist/{chunk-2NBP25BG.js → chunk-HGNOCPZX.js} +171 -79
  71. package/dist/chunk-HGNOCPZX.js.map +1 -0
  72. package/dist/{chunk-5NWYQUQC.js → chunk-HOHVIVDR.js} +2 -2
  73. package/dist/{chunk-DCKNMLEQ.js → chunk-I5REUWLH.js} +11 -5
  74. package/dist/chunk-I5REUWLH.js.map +1 -0
  75. package/dist/{chunk-6WAJQKBS.js → chunk-JYLFZWUX.js} +2 -2
  76. package/dist/{chunk-5W7CTZ2E.js → chunk-KQAFEZQX.js} +4 -4
  77. package/dist/{chunk-UKTDXTWX.js → chunk-M4AYVEWS.js} +7 -7
  78. package/dist/{chunk-YTZ3VGC7.js → chunk-M4V2JVSZ.js} +2 -2
  79. package/dist/{chunk-TA3Y6GEX.js → chunk-MLKWJOAJ.js} +2 -2
  80. package/dist/{chunk-DQXPJ6HD.js → chunk-O6YH5F47.js} +4 -4
  81. package/dist/{chunk-7AG54AF3.js → chunk-PUR2CKX2.js} +1 -1
  82. package/dist/chunk-PUR2CKX2.js.map +1 -0
  83. package/dist/{chunk-OAHOL3ZC.js → chunk-QNEUZIAH.js} +152 -62
  84. package/dist/chunk-QNEUZIAH.js.map +1 -0
  85. package/dist/{chunk-Q6D75LVH.js → chunk-UM5AWJNQ.js} +79 -17
  86. package/dist/chunk-UM5AWJNQ.js.map +1 -0
  87. package/dist/{chunk-53EEQYE5.js → chunk-UTHQPSRC.js} +8 -8
  88. package/dist/{chunk-BB57OZWC.js → chunk-UVPL565C.js} +2 -2
  89. package/dist/{chunk-6AFVIOVZ.js → chunk-V4GNSDFH.js} +2 -2
  90. package/dist/{chunk-EHISUJFN.js → chunk-WAS3NV46.js} +6 -3
  91. package/dist/chunk-WAS3NV46.js.map +1 -0
  92. package/dist/{chunk-UVYI6VIX.js → chunk-X7Y7WX73.js} +1 -1
  93. package/dist/{chunk-V7CMKMHM.js → chunk-Y4YD5TYW.js} +3 -3
  94. package/dist/{chunk-7NS7AWMZ.js → chunk-YGIQORJ3.js} +3 -3
  95. package/dist/{chunk-MDBZTH7N.js → chunk-YKBHOBJK.js} +44 -10
  96. package/dist/chunk-YKBHOBJK.js.map +1 -0
  97. package/dist/{chunk-3MS3QVX6.js → chunk-YOLZS7NY.js} +2 -2
  98. package/dist/{chunk-6OIDDKAA.js → chunk-YTU7WKYN.js} +35 -9
  99. package/dist/chunk-YTU7WKYN.js.map +1 -0
  100. package/dist/{cli-IOlDHSBT.d.ts → cli-BLME420h.d.ts} +3 -3
  101. package/dist/cli.d.ts +6 -6
  102. package/dist/cli.js +49 -49
  103. package/dist/compat/codex-cli-fallback.d.ts +1 -0
  104. package/dist/compat/codex-cli-fallback.js +22 -0
  105. package/dist/compat/codex-cli-fallback.js.map +1 -0
  106. package/dist/compat/codex-thread-key.d.ts +1 -0
  107. package/dist/compat/codex-thread-key.js +18 -0
  108. package/dist/compat/codex-thread-key.js.map +1 -0
  109. package/dist/compounding/engine.d.ts +1 -1
  110. package/dist/compounding/engine.js +7 -7
  111. package/dist/compounding/preference-consolidator.d.ts +1 -1
  112. package/dist/compression-optimizer.d.ts +1 -1
  113. package/dist/config.d.ts +1 -1
  114. package/dist/config.js +3 -3
  115. package/dist/connectors/codex-materialize-runner.d.ts +1 -1
  116. package/dist/connectors/codex-materialize-runner.js +7 -7
  117. package/dist/connectors/codex-materialize.d.ts +1 -1
  118. package/dist/connectors/index.d.ts +1 -1
  119. package/dist/connectors/index.js +7 -7
  120. package/dist/consolidation-provenance-check.d.ts +1 -1
  121. package/dist/consolidation-undo.d.ts +1 -1
  122. package/dist/contradiction/index.d.ts +1 -1
  123. package/dist/conversation-index/backend.d.ts +1 -1
  124. package/dist/conversation-index/chunker.d.ts +1 -1
  125. package/dist/conversation-index/faiss-adapter.d.ts +1 -1
  126. package/dist/conversation-index/indexer.d.ts +1 -1
  127. package/dist/conversation-index/search.d.ts +1 -1
  128. package/dist/day-summary.d.ts +1 -1
  129. package/dist/delinearize.d.ts +1 -1
  130. package/dist/direct-answer-wiring.d.ts +1 -1
  131. package/dist/direct-answer.d.ts +1 -1
  132. package/dist/embedding-fallback.d.ts +1 -1
  133. package/dist/embedding-fallback.js +2 -1
  134. package/dist/enrichment/index.d.ts +1 -1
  135. package/dist/entity-retrieval.d.ts +1 -1
  136. package/dist/entity-retrieval.js +7 -7
  137. package/dist/entity-schema.d.ts +1 -1
  138. package/dist/explicit-capture.d.ts +4 -4
  139. package/dist/extraction-faithfulness.d.ts +1 -1
  140. package/dist/extraction-faithfulness.js +2 -2
  141. package/dist/extraction-judge-telemetry.d.ts +1 -1
  142. package/dist/extraction-judge-training.d.ts +1 -1
  143. package/dist/extraction-judge.d.ts +1 -1
  144. package/dist/extraction.d.ts +1 -1
  145. package/dist/extraction.js +3 -2
  146. package/dist/faithfulness-config.d.ts +1 -0
  147. package/dist/faithfulness-config.js +1 -1
  148. package/dist/fallback-llm.d.ts +1 -1
  149. package/dist/{first-start-migration-PG5HBC3K.js → first-start-migration-22LPFHD5.js} +6 -2
  150. package/dist/first-start-migration-22LPFHD5.js.map +1 -0
  151. package/dist/graph-dashboard-diff.d.ts +1 -1
  152. package/dist/graph-dashboard-key.d.ts +1 -1
  153. package/dist/graph-dashboard-parser.d.ts +1 -1
  154. package/dist/graph-edge-reinforcement.d.ts +1 -1
  155. package/dist/graph-snapshot.d.ts +1 -1
  156. package/dist/graph.d.ts +1 -1
  157. package/dist/identity-continuity.d.ts +1 -1
  158. package/dist/importance.d.ts +1 -1
  159. package/dist/index.d.ts +9 -9
  160. package/dist/index.js +64 -64
  161. package/dist/intent.d.ts +1 -1
  162. package/dist/lcm/engine.d.ts +1 -1
  163. package/dist/lcm/engine.js +2 -2
  164. package/dist/lcm/index.d.ts +1 -1
  165. package/dist/lcm/index.js +7 -7
  166. package/dist/lcm/tools.d.ts +1 -1
  167. package/dist/lifecycle.d.ts +1 -1
  168. package/dist/live-connectors-runner.d.ts +1 -1
  169. package/dist/local-llm.d.ts +1 -1
  170. package/dist/local-model-endpoint.d.ts +9 -4
  171. package/dist/local-model-endpoint.js +1 -1
  172. package/dist/maintenance/memory-governance.d.ts +1 -1
  173. package/dist/maintenance/memory-governance.js +7 -7
  174. package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +7 -7
  175. package/dist/maintenance/rebuild-memory-projection.js +8 -8
  176. package/dist/mcp-memory-inspector-app.d.ts +5 -5
  177. package/dist/memory-action-policy.d.ts +1 -1
  178. package/dist/memory-cache.d.ts +1 -1
  179. package/dist/memory-lifecycle-ledger-utils.d.ts +1 -1
  180. package/dist/memory-projection-store.d.ts +1 -1
  181. package/dist/memory-provenance.d.ts +1 -1
  182. package/dist/memory-worth-outcomes.d.ts +1 -1
  183. package/dist/models-json.d.ts +1 -1
  184. package/dist/namespaces/migrate.d.ts +2 -2
  185. package/dist/namespaces/migrate.js +14 -13
  186. package/dist/namespaces/principal.d.ts +1 -1
  187. package/dist/namespaces/search.d.ts +1 -1
  188. package/dist/namespaces/search.js +6 -5
  189. package/dist/namespaces/storage.d.ts +2 -2
  190. package/dist/namespaces/storage.js +7 -7
  191. package/dist/native-knowledge.d.ts +1 -1
  192. package/dist/operator-toolkit.d.ts +1 -1
  193. package/dist/operator-toolkit.js +20 -20
  194. package/dist/orchestration/maintenance.d.ts +2 -2
  195. package/dist/orchestration/maintenance.js +9 -9
  196. package/dist/{orchestrator-C_OMSIMZ.d.ts → orchestrator-DqPAz8ot.d.ts} +3 -3
  197. package/dist/orchestrator.d.ts +4 -4
  198. package/dist/orchestrator.js +33 -33
  199. package/dist/patterns-cli.d.ts +1 -1
  200. package/dist/policy-runtime.d.ts +1 -1
  201. package/dist/provenance.d.ts +1 -1
  202. package/dist/provenance.js +1 -1
  203. package/dist/qmd-recall-cache.d.ts +1 -1
  204. package/dist/qmd.d.ts +1 -1
  205. package/dist/recall-disclosure-escalation.d.ts +1 -1
  206. package/dist/recall-explain-renderer.d.ts +1 -1
  207. package/dist/recall-explain-renderer.js +3 -3
  208. package/dist/recall-planner-llm.d.ts +1 -1
  209. package/dist/recall-state.d.ts +1 -1
  210. package/dist/recall-tag-filter.d.ts +1 -1
  211. package/dist/recall-xray-cli.d.ts +1 -1
  212. package/dist/recall-xray-cli.js +4 -4
  213. package/dist/recall-xray-renderer.d.ts +1 -1
  214. package/dist/recall-xray-renderer.js +3 -3
  215. package/dist/recall-xray.d.ts +1 -1
  216. package/dist/recall-xray.js +2 -2
  217. package/dist/resolve-auth-token.d.ts +1 -1
  218. package/dist/resume-bundles.js +4 -4
  219. package/dist/retrieval-agents.d.ts +1 -1
  220. package/dist/retrieval-tiers.d.ts +1 -1
  221. package/dist/routing/engine.d.ts +1 -1
  222. package/dist/routing/store.d.ts +1 -1
  223. package/dist/search/embed-helper.d.ts +1 -1
  224. package/dist/search/embed-helper.js +2 -1
  225. package/dist/search/factory.d.ts +1 -1
  226. package/dist/search/factory.js +5 -4
  227. package/dist/search/index.d.ts +1 -1
  228. package/dist/search/index.js +9 -8
  229. package/dist/search/lancedb-backend.d.ts +1 -1
  230. package/dist/search/meilisearch-backend.d.ts +1 -1
  231. package/dist/search/noop-backend.d.ts +1 -1
  232. package/dist/search/orama-backend.d.ts +1 -1
  233. package/dist/search/port.d.ts +1 -1
  234. package/dist/search/remote-backend.d.ts +1 -1
  235. package/dist/{semantic-consolidation-B8LiYtvx.d.ts → semantic-consolidation-Cl15ksZy.d.ts} +1 -1
  236. package/dist/semantic-consolidation.d.ts +2 -2
  237. package/dist/semantic-consolidation.js +8 -8
  238. package/dist/semantic-rule-promotion.js +7 -7
  239. package/dist/semantic-rule-verifier.d.ts +1 -1
  240. package/dist/semantic-rule-verifier.js +7 -7
  241. package/dist/session-observer-bands.d.ts +1 -1
  242. package/dist/session-observer-state.d.ts +1 -1
  243. package/dist/shared-context/manager.d.ts +1 -1
  244. package/dist/signal.d.ts +1 -1
  245. package/dist/storage.d.ts +1 -1
  246. package/dist/storage.js +6 -6
  247. package/dist/summarizer.d.ts +1 -1
  248. package/dist/summary-snapshot.d.ts +1 -1
  249. package/dist/temporal-supersession.d.ts +1 -1
  250. package/dist/temporal-validity.d.ts +1 -1
  251. package/dist/threading.d.ts +1 -1
  252. package/dist/tier-migration.d.ts +1 -1
  253. package/dist/tier-routing.d.ts +1 -1
  254. package/dist/topics.d.ts +1 -1
  255. package/dist/transcript.d.ts +1 -1
  256. package/dist/transfer/backup.js +2 -2
  257. package/dist/transfer/capsule-export.js +2 -2
  258. package/dist/transfer/capsule-import.js +2 -2
  259. package/dist/trust-score-stage.d.ts +1 -1
  260. package/dist/trust-score.d.ts +1 -1
  261. package/dist/{types-DmTaqob2.d.ts → types-ChQb9D6s.d.ts} +8 -0
  262. package/dist/types.d.ts +1 -1
  263. package/dist/types.js +1 -1
  264. package/dist/utility-runtime.d.ts +1 -1
  265. package/dist/verified-recall.js +7 -7
  266. package/package.json +26 -2
  267. package/src/access-http.ts +68 -1
  268. package/src/access-service.ts +2 -1
  269. package/src/admin/admin-surfaces.test.ts +289 -0
  270. package/src/admin/admin-surfaces.ts +138 -7
  271. package/src/bitemporal-dedup-backfill.test.ts +294 -0
  272. package/src/capabilities.test.ts +155 -0
  273. package/src/capabilities.ts +91 -0
  274. package/src/chat/chat-engine.test.ts +104 -1
  275. package/src/chat/chat-http.test.ts +119 -1
  276. package/src/chat/chat-http.ts +252 -97
  277. package/src/chat/chat-session.ts +166 -7
  278. package/src/cli.ts +3 -2
  279. package/src/compat/codex-cli-fallback.ts +23 -0
  280. package/src/compat/codex-subpath-aliases.test.ts +93 -0
  281. package/src/compat/codex-thread-key.ts +23 -0
  282. package/src/embedding-fallback.ts +2 -1
  283. package/src/extraction-faithfulness.test.ts +240 -0
  284. package/src/extraction-faithfulness.ts +58 -6
  285. package/src/extraction.ts +7 -3
  286. package/src/faithfulness-config.ts +16 -1
  287. package/src/local-model-endpoint.ts +24 -3
  288. package/src/maintenance/first-start-migration.ts +3 -1
  289. package/src/orchestrator.ts +238 -34
  290. package/src/provenance-extraction.test.ts +266 -0
  291. package/src/provenance.ts +66 -16
  292. package/src/search/embed-helper.ts +3 -2
  293. package/src/types.ts +8 -0
  294. package/dist/chunk-2NBP25BG.js.map +0 -1
  295. package/dist/chunk-6OIDDKAA.js.map +0 -1
  296. package/dist/chunk-7AG54AF3.js.map +0 -1
  297. package/dist/chunk-C4X4QGIO.js.map +0 -1
  298. package/dist/chunk-DCKNMLEQ.js.map +0 -1
  299. package/dist/chunk-EHISUJFN.js.map +0 -1
  300. package/dist/chunk-MDBZTH7N.js.map +0 -1
  301. package/dist/chunk-OAHOL3ZC.js.map +0 -1
  302. package/dist/chunk-PLG6JHQS.js.map +0 -1
  303. package/dist/chunk-Q6D75LVH.js.map +0 -1
  304. package/dist/chunk-XGTBNVIU.js.map +0 -1
  305. package/dist/chunk-ZA2S2VLL.js.map +0 -1
  306. package/dist/first-start-migration-PG5HBC3K.js.map +0 -1
  307. /package/dist/{capsule-crypto-GWVG7LGC.js.map → capsule-crypto-7FJQINUR.js.map} +0 -0
  308. /package/dist/{chunk-OWHERGF2.js.map → chunk-2NLLXCJG.js.map} +0 -0
  309. /package/dist/{chunk-BIA7ELIB.js.map → chunk-36SEDFAU.js.map} +0 -0
  310. /package/dist/{chunk-UQSVUEN2.js.map → chunk-37436GML.js.map} +0 -0
  311. /package/dist/{chunk-RRHHQYJS.js.map → chunk-3TSTGI6F.js.map} +0 -0
  312. /package/dist/{chunk-5OOA7SGX.js.map → chunk-4ESAR77N.js.map} +0 -0
  313. /package/dist/{chunk-FO3HO52S.js.map → chunk-4H4F3BFL.js.map} +0 -0
  314. /package/dist/{chunk-BEUCACTV.js.map → chunk-4NOI577P.js.map} +0 -0
  315. /package/dist/{chunk-BBIE7W52.js.map → chunk-4NR2PDZ5.js.map} +0 -0
  316. /package/dist/{chunk-WGTWGDR5.js.map → chunk-76NHR6ZL.js.map} +0 -0
  317. /package/dist/{chunk-PKMQK2WY.js.map → chunk-773DPI6T.js.map} +0 -0
  318. /package/dist/{chunk-MQVKHFIU.js.map → chunk-7RLCCNHU.js.map} +0 -0
  319. /package/dist/{chunk-EZNDNMRH.js.map → chunk-AQLOP5F4.js.map} +0 -0
  320. /package/dist/{chunk-UNNDFYUX.js.map → chunk-ARV3AUOM.js.map} +0 -0
  321. /package/dist/{chunk-NPL7VDM6.js.map → chunk-ASKXIAHD.js.map} +0 -0
  322. /package/dist/{chunk-K4ZNARDO.js.map → chunk-CBWI22JN.js.map} +0 -0
  323. /package/dist/{chunk-ZOHMPFOB.js.map → chunk-CKFLLAIS.js.map} +0 -0
  324. /package/dist/{chunk-JPUT5NGH.js.map → chunk-DMQWV6SQ.js.map} +0 -0
  325. /package/dist/{chunk-F3XZN24Z.js.map → chunk-DRUDC2UX.js.map} +0 -0
  326. /package/dist/{chunk-KJR66XOM.js.map → chunk-EY6MDMHK.js.map} +0 -0
  327. /package/dist/{chunk-3TUT4PWB.js.map → chunk-FVZ2ISIX.js.map} +0 -0
  328. /package/dist/{chunk-6SQQOJ4U.js.map → chunk-GKRLPHPU.js.map} +0 -0
  329. /package/dist/{chunk-5NWYQUQC.js.map → chunk-HOHVIVDR.js.map} +0 -0
  330. /package/dist/{chunk-6WAJQKBS.js.map → chunk-JYLFZWUX.js.map} +0 -0
  331. /package/dist/{chunk-5W7CTZ2E.js.map → chunk-KQAFEZQX.js.map} +0 -0
  332. /package/dist/{chunk-UKTDXTWX.js.map → chunk-M4AYVEWS.js.map} +0 -0
  333. /package/dist/{chunk-YTZ3VGC7.js.map → chunk-M4V2JVSZ.js.map} +0 -0
  334. /package/dist/{chunk-TA3Y6GEX.js.map → chunk-MLKWJOAJ.js.map} +0 -0
  335. /package/dist/{chunk-DQXPJ6HD.js.map → chunk-O6YH5F47.js.map} +0 -0
  336. /package/dist/{chunk-53EEQYE5.js.map → chunk-UTHQPSRC.js.map} +0 -0
  337. /package/dist/{chunk-BB57OZWC.js.map → chunk-UVPL565C.js.map} +0 -0
  338. /package/dist/{chunk-6AFVIOVZ.js.map → chunk-V4GNSDFH.js.map} +0 -0
  339. /package/dist/{chunk-UVYI6VIX.js.map → chunk-X7Y7WX73.js.map} +0 -0
  340. /package/dist/{chunk-V7CMKMHM.js.map → chunk-Y4YD5TYW.js.map} +0 -0
  341. /package/dist/{chunk-7NS7AWMZ.js.map → chunk-YGIQORJ3.js.map} +0 -0
  342. /package/dist/{chunk-3MS3QVX6.js.map → chunk-YOLZS7NY.js.map} +0 -0
@@ -7,26 +7,26 @@ import {
7
7
  } from "./chunk-4T3BMHKD.js";
8
8
  import {
9
9
  MaintenanceScheduler
10
- } from "./chunk-TA3Y6GEX.js";
10
+ } from "./chunk-MLKWJOAJ.js";
11
11
  import {
12
12
  migrateFromEngram
13
13
  } from "./chunk-7HYPN2GC.js";
14
14
  import {
15
15
  LcmEngine
16
- } from "./chunk-PKMQK2WY.js";
16
+ } from "./chunk-773DPI6T.js";
17
+ import {
18
+ chunkTranscriptEntries
19
+ } from "./chunk-TECVW3JP.js";
17
20
  import {
18
21
  cleanupConversationChunks
19
22
  } from "./chunk-O7GOFAM3.js";
20
23
  import {
21
24
  CompoundingEngine,
22
25
  defaultTierMigrationCycleBudget
23
- } from "./chunk-BBIE7W52.js";
26
+ } from "./chunk-4NR2PDZ5.js";
24
27
  import {
25
28
  SharedContextManager
26
29
  } from "./chunk-UFS7OXGL.js";
27
- import {
28
- chunkTranscriptEntries
29
- } from "./chunk-TECVW3JP.js";
30
30
  import {
31
31
  applyTrustScoreStage,
32
32
  buildTrustSignalsForRerank,
@@ -154,7 +154,7 @@ import {
154
154
  } from "./chunk-LTHVM4XN.js";
155
155
  import {
156
156
  ExtractionEngine
157
- } from "./chunk-DCKNMLEQ.js";
157
+ } from "./chunk-I5REUWLH.js";
158
158
  import {
159
159
  parseMemoryActionEligibilityContext
160
160
  } from "./chunk-5GSUBCZM.js";
@@ -187,12 +187,12 @@ import {
187
187
  } from "./chunk-Q6IP2ARR.js";
188
188
  import {
189
189
  EmbeddingFallback
190
- } from "./chunk-ZA2S2VLL.js";
190
+ } from "./chunk-C2PG7IEH.js";
191
191
  import {
192
192
  buildEntityRecallSection,
193
193
  entityRecentTranscriptLookbackHours,
194
194
  readRecentEntityTranscriptEntries
195
- } from "./chunk-3MS3QVX6.js";
195
+ } from "./chunk-YOLZS7NY.js";
196
196
  import {
197
197
  normalizeReplaySessionKey
198
198
  } from "./chunk-2PRQG7PV.js";
@@ -202,14 +202,14 @@ import {
202
202
  import {
203
203
  compareVerifiedEpisodeResults,
204
204
  searchVerifiedEpisodes
205
- } from "./chunk-NPL7VDM6.js";
205
+ } from "./chunk-ASKXIAHD.js";
206
206
  import {
207
207
  ThreadingManager
208
208
  } from "./chunk-QRDOSYOR.js";
209
209
  import {
210
210
  compareVerifiedSemanticRuleResults,
211
211
  searchVerifiedSemanticRules
212
- } from "./chunk-BB57OZWC.js";
212
+ } from "./chunk-UVPL565C.js";
213
213
  import {
214
214
  searchWorkProductLedgerEntries
215
215
  } from "./chunk-ZRWB5D4H.js";
@@ -222,14 +222,14 @@ import {
222
222
  import {
223
223
  runNamespaceMaintenanceFanout,
224
224
  summarizeNamespaceMaintenanceHealth
225
- } from "./chunk-K4ZNARDO.js";
225
+ } from "./chunk-CBWI22JN.js";
226
226
  import {
227
227
  NamespaceCatalog,
228
228
  planNamespaceMaintenance
229
- } from "./chunk-YTZ3VGC7.js";
229
+ } from "./chunk-M4V2JVSZ.js";
230
230
  import {
231
231
  NamespaceStorageRouter
232
- } from "./chunk-RRHHQYJS.js";
232
+ } from "./chunk-3TSTGI6F.js";
233
233
  import {
234
234
  searchHarmonicRetrieval
235
235
  } from "./chunk-AV5ZEH4M.js";
@@ -267,7 +267,7 @@ import {
267
267
  materializeAfterSemanticConsolidation,
268
268
  parseConsolidationResponse,
269
269
  parseOperatorAwareConsolidationResponse
270
- } from "./chunk-JPUT5NGH.js";
270
+ } from "./chunk-DMQWV6SQ.js";
271
271
  import {
272
272
  buildRecallQueryPolicy
273
273
  } from "./chunk-LBJBNWS2.js";
@@ -308,7 +308,7 @@ import {
308
308
  clusterByKey,
309
309
  createCorrectionService,
310
310
  detectPassiveCorrections
311
- } from "./chunk-EZNDNMRH.js";
311
+ } from "./chunk-AQLOP5F4.js";
312
312
  import {
313
313
  listTrustZoneRecords,
314
314
  searchTrustZoneRecords
@@ -318,7 +318,7 @@ import {
318
318
  } from "./chunk-FF4KLI5W.js";
319
319
  import {
320
320
  buildXraySnapshot
321
- } from "./chunk-F3XZN24Z.js";
321
+ } from "./chunk-DRUDC2UX.js";
322
322
  import {
323
323
  objectiveStateStoreOverrideForNamespace,
324
324
  searchObjectiveStateSnapshots
@@ -333,11 +333,11 @@ import {
333
333
  } from "./chunk-J6BH2OBA.js";
334
334
  import {
335
335
  NamespaceSearchRouter
336
- } from "./chunk-6AFVIOVZ.js";
336
+ } from "./chunk-V4GNSDFH.js";
337
337
  import {
338
338
  createConversationIndexRuntime,
339
339
  createSearchBackend
340
- } from "./chunk-53EEQYE5.js";
340
+ } from "./chunk-UTHQPSRC.js";
341
341
  import {
342
342
  NoopSearchBackend
343
343
  } from "./chunk-CYEPCZN5.js";
@@ -363,8 +363,9 @@ import {
363
363
  } from "./chunk-EH5ED3C6.js";
364
364
  import {
365
365
  resolveCapabilities,
366
- resolveGraphConstructionCapabilities
367
- } from "./chunk-DVRHLN2O.js";
366
+ resolveGraphConstructionCapabilities,
367
+ resolveMemoryLifecycleCapabilities
368
+ } from "./chunk-3RCBIOOJ.js";
368
369
  import {
369
370
  searchCausalTrajectories
370
371
  } from "./chunk-SQNED75R.js";
@@ -377,7 +378,7 @@ import {
377
378
  } from "./chunk-TBBDFYXW.js";
378
379
  import {
379
380
  buildChainFollowupGenerator
380
- } from "./chunk-KJR66XOM.js";
381
+ } from "./chunk-EY6MDMHK.js";
381
382
  import {
382
383
  ContentHashIndex,
383
384
  StorageManager,
@@ -385,7 +386,10 @@ import {
385
386
  fingerprintEntityStructuredFacts,
386
387
  normalizeAttributePairs,
387
388
  parseEntityFile
388
- } from "./chunk-MQVKHFIU.js";
389
+ } from "./chunk-7RLCCNHU.js";
390
+ import {
391
+ buildRetiredFactTombstoneInputs
392
+ } from "./chunk-L2B3EE7B.js";
389
393
  import {
390
394
  isValidTranscriptDate,
391
395
  loadSpeakerRegistry,
@@ -393,9 +397,6 @@ import {
393
397
  saveSpeakerRegistry,
394
398
  speakerRegistryKey
395
399
  } from "./chunk-M7XQSUBB.js";
396
- import {
397
- buildRetiredFactTombstoneInputs
398
- } from "./chunk-L2B3EE7B.js";
399
400
  import {
400
401
  assertPathInsideRoot
401
402
  } from "./chunk-5GPPACXK.js";
@@ -419,7 +420,7 @@ import {
419
420
  } from "./chunk-J6A3CX5N.js";
420
421
  import {
421
422
  confidenceTier
422
- } from "./chunk-7AG54AF3.js";
423
+ } from "./chunk-PUR2CKX2.js";
423
424
  import {
424
425
  buildQmdRecallCacheKey,
425
426
  getCachedQmdRecall,
@@ -437,7 +438,7 @@ import {
437
438
  applyFaithfulnessVerdict,
438
439
  createFaithfulnessCounters,
439
440
  runFaithfulnessGateBatch
440
- } from "./chunk-6OIDDKAA.js";
441
+ } from "./chunk-YTU7WKYN.js";
441
442
  import {
442
443
  FallbackLlmClient,
443
444
  fallbackLlmRuntimeContextFromConfig,
@@ -3583,7 +3584,8 @@ var Orchestrator = class _Orchestrator {
3583
3584
  * copy already carries.
3584
3585
  */
3585
3586
  async backfillTemporalBoundsOnDedupHit(targetStorage, dedupContent, bounds, entityRef) {
3586
- if (!bounds.invalidAt) return;
3587
+ const hasExtractedStart = bounds.validFrom !== void 0 && bounds.eventTimeSource === "extracted";
3588
+ if (!bounds.invalidAt && !hasExtractedStart) return;
3587
3589
  try {
3588
3590
  const incomingHash = ContentHashIndex.computeHash(dedupContent);
3589
3591
  const normalizedIncoming = ContentHashIndex.normalizeContent(dedupContent);
@@ -3614,6 +3616,12 @@ var Orchestrator = class _Orchestrator {
3614
3616
  if (bounds.eventTimeSource && (!fm.eventTimeSource || fm.eventTimeSource.length === 0)) {
3615
3617
  patch.eventTimeSource = bounds.eventTimeSource;
3616
3618
  }
3619
+ if (bounds.validFrom && bounds.eventTimeSource === "extracted" && fm.valid_at !== bounds.validFrom) {
3620
+ patch.valid_at = bounds.validFrom;
3621
+ if (fm.eventTimeSource !== "extracted") {
3622
+ patch.eventTimeSource = "extracted";
3623
+ }
3624
+ }
3617
3625
  if (Object.keys(patch).length === 0) return;
3618
3626
  const ok = await targetStorage.writeMemoryFrontmatter(existing, patch);
3619
3627
  if (ok) {
@@ -3780,8 +3788,9 @@ var Orchestrator = class _Orchestrator {
3780
3788
  path3.join(config.memoryDir, "threads"),
3781
3789
  config.threadingGapMinutes
3782
3790
  );
3791
+ const lifecycleCaps = resolveMemoryLifecycleCapabilities(config);
3783
3792
  this.tmtBuilder = new TmtBuilder(config.memoryDir, {
3784
- temporalMemoryTreeEnabled: config.temporalMemoryTreeEnabled,
3793
+ temporalMemoryTreeEnabled: lifecycleCaps.temporalMemoryTree,
3785
3794
  tmtHourlyMinMemories: config.tmtHourlyMinMemories,
3786
3795
  tmtSummaryMaxTokens: config.tmtSummaryMaxTokens
3787
3796
  });
@@ -4175,6 +4184,7 @@ var Orchestrator = class _Orchestrator {
4175
4184
  }
4176
4185
  }
4177
4186
  async deferredInitialize(signal) {
4187
+ const lifecycleCaps = resolveMemoryLifecycleCapabilities(this.config);
4178
4188
  if (this.qmd.isAvailable() && this.config.qmdMaintenanceEnabled) {
4179
4189
  try {
4180
4190
  log.info("QMD startup sync: updating index to match current disk state");
@@ -4208,7 +4218,7 @@ var Orchestrator = class _Orchestrator {
4208
4218
  })
4209
4219
  );
4210
4220
  }
4211
- if (this.config.embeddingFallbackEnabled) {
4221
+ if (resolveMemoryLifecycleCapabilities(this.config).embeddingFallback) {
4212
4222
  warmupPromises.push(
4213
4223
  this.embeddingFallback.isAvailable().then((ok) => {
4214
4224
  log.info(
@@ -4272,9 +4282,9 @@ var Orchestrator = class _Orchestrator {
4272
4282
  if (signal.aborted) return;
4273
4283
  await this.maintenanceScheduler.autoRegisterCrons(signal);
4274
4284
  if (signal.aborted) return;
4275
- if (this.config.lifecyclePolicyEnabled && this.config.qmdTierMigrationEnabled) {
4285
+ if (lifecycleCaps.lifecyclePolicy && this.config.qmdTierMigrationEnabled) {
4276
4286
  try {
4277
- const { runFirstStartMigration } = await import("./first-start-migration-PG5HBC3K.js");
4287
+ const { runFirstStartMigration } = await import("./first-start-migration-22LPFHD5.js");
4278
4288
  const result = await runFirstStartMigration({
4279
4289
  storage: this.storage,
4280
4290
  config: this.config,
@@ -4499,6 +4509,7 @@ var Orchestrator = class _Orchestrator {
4499
4509
  * default storage.
4500
4510
  */
4501
4511
  async runLifecyclePolicyFanout() {
4512
+ const lifecycleCaps = resolveMemoryLifecycleCapabilities(this.config);
4502
4513
  return this.runNamespaceMaintenanceFanoutForJob(
4503
4514
  "lifecycle",
4504
4515
  async (ctx) => {
@@ -4507,7 +4518,7 @@ var Orchestrator = class _Orchestrator {
4507
4518
  const assessed = await this.runLifecyclePolicyPass(corpus, storage);
4508
4519
  return { itemCount: assessed };
4509
4520
  },
4510
- { enabled: this.config.lifecyclePolicyEnabled }
4521
+ { enabled: lifecycleCaps.lifecyclePolicy }
4511
4522
  );
4512
4523
  }
4513
4524
  /**
@@ -6825,7 +6836,7 @@ ${r.snippet.trim()}
6825
6836
  recallAssemblyClockMs() {
6826
6837
  return Date.now();
6827
6838
  }
6828
- async recallInternal(prompt, sessionKey, options = {}, caps = resolveCapabilities(this.config), graphCaps = resolveGraphConstructionCapabilities(this.config)) {
6839
+ async recallInternal(prompt, sessionKey, options = {}, caps = resolveCapabilities(this.config), graphCaps = resolveGraphConstructionCapabilities(this.config), lifecycleCaps = resolveMemoryLifecycleCapabilities(this.config)) {
6829
6840
  const recallStart = Date.now();
6830
6841
  const backendDegradations = [];
6831
6842
  let asOfMs;
@@ -9402,8 +9413,8 @@ ${boxLines.join("\n")}`
9402
9413
  }
9403
9414
  if (this.isRecallSectionEnabled(
9404
9415
  "temporal-memory-tree",
9405
- this.config.temporalMemoryTreeEnabled === true
9406
- ) && this.config.temporalMemoryTreeEnabled && recallMode !== "minimal" && recallMode !== "no_recall") {
9416
+ lifecycleCaps.temporalMemoryTree
9417
+ ) && lifecycleCaps.temporalMemoryTree && recallMode !== "minimal" && recallMode !== "no_recall") {
9407
9418
  const tmtNode = await this.tmtBuilder.getMostRelevantNode();
9408
9419
  if (tmtNode) {
9409
9420
  const levelLabel = tmtNode.level.charAt(0).toUpperCase() + tmtNode.level.slice(1);
@@ -10066,7 +10077,7 @@ ${tmtNode.summary}`
10066
10077
  );
10067
10078
  if (memories.length > 0) {
10068
10079
  const supersessionOptions = {
10069
- enabled: this.config.temporalSupersessionEnabled,
10080
+ enabled: lifecycleCaps.temporalSupersession,
10070
10081
  includeInRecall: this.config.temporalSupersessionIncludeInRecall
10071
10082
  };
10072
10083
  const asOfActive = typeof asOfMs === "number" && Number.isFinite(asOfMs);
@@ -11201,7 +11212,8 @@ _Context: ${topQuestion.context}_`
11201
11212
  ${normalized}`).digest("hex");
11202
11213
  }
11203
11214
  shouldQueueExtraction(turns, options = {}) {
11204
- if (!this.config.extractionDedupeEnabled) return true;
11215
+ const lifecycleCaps = resolveMemoryLifecycleCapabilities(this.config);
11216
+ if (!lifecycleCaps.extractionDedupe) return true;
11205
11217
  if (!Array.isArray(turns) || turns.length === 0) return false;
11206
11218
  const bufferKey = options.bufferKey ?? turns[0]?.sessionKey ?? "default";
11207
11219
  const fingerprint = this.buildExtractionFingerprint(turns, bufferKey);
@@ -11802,7 +11814,7 @@ ${normalized}`).digest("hex");
11802
11814
  requestQmdMaintenanceForTool(reason) {
11803
11815
  this.maintenanceScheduler.requestQmdMaintenanceForTool(reason);
11804
11816
  }
11805
- async persistExtraction(result, storage, threadIdForExtraction, sourceContext, baseNamespace, scopeProfileWritePlan, sourceText, graphCaps = resolveGraphConstructionCapabilities(this.config)) {
11817
+ async persistExtraction(result, storage, threadIdForExtraction, sourceContext, baseNamespace, scopeProfileWritePlan, sourceText, graphCaps = resolveGraphConstructionCapabilities(this.config), lifecycleCaps = resolveMemoryLifecycleCapabilities(this.config)) {
11806
11818
  const citationEnabled = this.config.inlineSourceAttributionEnabled === true;
11807
11819
  const citationTemplate = this.config.inlineSourceAttributionFormat;
11808
11820
  const citationContextBase = citationEnabled ? {
@@ -11935,12 +11947,14 @@ ${normalized}`).digest("hex");
11935
11947
  const targetStorage = await this.storageRouter.storageFor(target.namespace);
11936
11948
  if (targetStorage.dir === options.sourceStorage.dir) continue;
11937
11949
  if (options.category === "fact" && await targetStorage.hasFactContentHash(dedupContent)) {
11938
- if (options.invalidAt) {
11950
+ if (options.invalidAt || options.validAt) {
11939
11951
  await this.backfillTemporalBoundsOnDedupHit(
11940
11952
  targetStorage,
11941
11953
  dedupContent,
11942
11954
  {
11943
11955
  invalidAt: options.invalidAt,
11956
+ // #1707 thread 2 — carry the corrected start bound.
11957
+ validFrom: options.validAt,
11944
11958
  ...options.observedAt ? { observedAt: options.observedAt } : {},
11945
11959
  ...options.eventTimeSource ? { eventTimeSource: options.eventTimeSource } : {}
11946
11960
  },
@@ -11975,7 +11989,7 @@ ${normalized}`).digest("hex");
11975
11989
  ...options.provenance ? { provenance: options.provenance } : {}
11976
11990
  }
11977
11991
  );
11978
- if (this.config.temporalSupersessionEnabled && options.category === "fact" && options.entityRef && options.structuredAttributes && Object.keys(options.structuredAttributes).length > 0) {
11992
+ if (lifecycleCaps.temporalSupersession && options.category === "fact" && options.entityRef && options.structuredAttributes && Object.keys(options.structuredAttributes).length > 0) {
11979
11993
  try {
11980
11994
  await applyTemporalSupersession({
11981
11995
  storage: targetStorage,
@@ -12029,19 +12043,21 @@ ${normalized}`).digest("hex");
12029
12043
  const dedupContent = options.category === "fact" && options.structuredAttributes && Object.keys(options.structuredAttributes).length > 0 ? `${sanitizedBase.text}
12030
12044
  [Attributes: ${normalizeAttributePairs(options.structuredAttributes)}]` : sanitizedBase.text;
12031
12045
  if (options.category === "fact" && await sharedStorage.hasFactContentHash(dedupContent)) {
12032
- if (options.invalidAt) {
12046
+ if (options.invalidAt || options.validAt) {
12033
12047
  await this.backfillTemporalBoundsOnDedupHit(
12034
12048
  sharedStorage,
12035
12049
  dedupContent,
12036
12050
  {
12037
12051
  invalidAt: options.invalidAt,
12052
+ // #1707 thread 2 — carry the corrected start bound.
12053
+ validFrom: options.validAt,
12038
12054
  ...options.observedAt ? { observedAt: options.observedAt } : {},
12039
12055
  ...options.eventTimeSource ? { eventTimeSource: options.eventTimeSource } : {}
12040
12056
  },
12041
12057
  options.entityRef
12042
12058
  );
12043
12059
  }
12044
- if (this.config.temporalSupersessionEnabled && options.entityRef && options.structuredAttributes && Object.keys(options.structuredAttributes).length > 0) {
12060
+ if (lifecycleCaps.temporalSupersession && options.entityRef && options.structuredAttributes && Object.keys(options.structuredAttributes).length > 0) {
12045
12061
  let hashDedupMatchingFact;
12046
12062
  let hashDedupLookupComplete = false;
12047
12063
  try {
@@ -12120,7 +12136,7 @@ ${normalized}`).digest("hex");
12120
12136
  ...options.provenance ? { provenance: options.provenance } : {}
12121
12137
  }
12122
12138
  );
12123
- if (this.config.temporalSupersessionEnabled && options.entityRef && options.structuredAttributes && Object.keys(options.structuredAttributes).length > 0) {
12139
+ if (lifecycleCaps.temporalSupersession && options.entityRef && options.structuredAttributes && Object.keys(options.structuredAttributes).length > 0) {
12124
12140
  try {
12125
12141
  await applyTemporalSupersession({
12126
12142
  storage: sharedStorage,
@@ -12157,6 +12173,60 @@ ${normalized}`).digest("hex");
12157
12173
  );
12158
12174
  }
12159
12175
  };
12176
+ const backfillTemporalBoundsOnPromotionCopies = async (args) => {
12177
+ const hasExtractedStart = args.bounds.validFrom !== void 0 && args.bounds.eventTimeSource === "extracted";
12178
+ if (!args.bounds.invalidAt && !hasExtractedStart) return;
12179
+ const rawContent = citationEnabled && hasCitationForTemplate(args.content, citationTemplate) ? stripCitationForTemplate(args.content, citationTemplate) : args.content;
12180
+ const sanitizedBase = sanitizeMemoryContent(rawContent);
12181
+ const dedupContent = args.category === "fact" && args.structuredAttributes && Object.keys(args.structuredAttributes).length > 0 ? `${sanitizedBase.text}
12182
+ [Attributes: ${normalizeAttributePairs(args.structuredAttributes)}]` : sanitizedBase.text;
12183
+ if (scopeProfileWritePlan) {
12184
+ const autoTargets = new Set(
12185
+ scopeProfileWritePlan.profile.autoPromote.targets
12186
+ );
12187
+ const profileTargets = scopeProfileWritePlan.promotionTargets.filter(
12188
+ (target) => target.target !== "serverShared" && autoTargets.has(target.target) && target.authorized && target.namespace
12189
+ );
12190
+ for (const target of profileTargets) {
12191
+ if (!target.namespace) continue;
12192
+ try {
12193
+ const targetStorage = await this.storageRouter.storageFor(
12194
+ target.namespace
12195
+ );
12196
+ if (targetStorage.dir === args.sourceStorage.dir) continue;
12197
+ await this.backfillTemporalBoundsOnDedupHit(
12198
+ targetStorage,
12199
+ dedupContent,
12200
+ args.bounds,
12201
+ args.entityRef
12202
+ );
12203
+ } catch (err) {
12204
+ log.warn(
12205
+ `bitemporal-backfill: profile-target backfill failed open for ${target.target}: ${err}`
12206
+ );
12207
+ }
12208
+ }
12209
+ }
12210
+ if (profileAllowsSharedWrites) {
12211
+ try {
12212
+ const sharedStorage = await this.storageRouter.storageFor(
12213
+ this.config.sharedNamespace
12214
+ );
12215
+ if (sharedStorage.dir !== args.sourceStorage.dir) {
12216
+ await this.backfillTemporalBoundsOnDedupHit(
12217
+ sharedStorage,
12218
+ dedupContent,
12219
+ args.bounds,
12220
+ args.entityRef
12221
+ );
12222
+ }
12223
+ } catch (err) {
12224
+ log.warn(
12225
+ `bitemporal-backfill: shared-target backfill failed open: ${err}`
12226
+ );
12227
+ }
12228
+ }
12229
+ };
12160
12230
  if (!result || !Array.isArray(result.facts)) {
12161
12231
  log.warn(
12162
12232
  "persistExtraction: result or result.facts is invalid, skipping",
@@ -12244,7 +12314,7 @@ ${normalized}`).digest("hex");
12244
12314
  let judgeVerdictsByFactIndex = null;
12245
12315
  let judgeGatedCount = 0;
12246
12316
  this.lastPersistExtractionDeferredCount = 0;
12247
- if (this.config.extractionJudgeEnabled) {
12317
+ if (lifecycleCaps.extractionJudge) {
12248
12318
  let preJudgeRedactionRules = [];
12249
12319
  try {
12250
12320
  preJudgeRedactionRules = await redactionRulesFor(storage.dir);
@@ -12288,7 +12358,7 @@ ${normalized}`).digest("hex");
12288
12358
  candidateToFactIndex.push(fi);
12289
12359
  }
12290
12360
  const judgeTelemetryOpts = {
12291
- enabled: this.config.extractionJudgeTelemetryEnabled === true,
12361
+ enabled: lifecycleCaps.extractionJudgeTelemetry,
12292
12362
  memoryDir: this.config.memoryDir
12293
12363
  };
12294
12364
  const judgeTrainingOpts = {
@@ -12413,7 +12483,7 @@ ${normalized}`).digest("hex");
12413
12483
  );
12414
12484
  }
12415
12485
  }
12416
- if (this.config.extractionScopeClassificationEnabled && this.config.namespacesEnabled && fact.scope === "global" && !routedNamespaceExplicit) {
12486
+ if (lifecycleCaps.extractionScopeClassification && this.config.namespacesEnabled && fact.scope === "global" && !routedNamespaceExplicit) {
12417
12487
  const currentNs = this.storageDirNamespace(targetStorage.dir);
12418
12488
  if (currentNs !== this.config.sharedNamespace && profileAllowsSharedWrites) {
12419
12489
  try {
@@ -12465,7 +12535,7 @@ ${normalized}`).digest("hex");
12465
12535
  );
12466
12536
  }
12467
12537
  if (exactDuplicate) {
12468
- if (biTemporal && biTemporal.validUntil) {
12538
+ if (biTemporal && writeCategory === "fact" && (biTemporal.validUntil || biTemporal.validFrom)) {
12469
12539
  const fr = faithfulnessResultsByFactIndex?.get(factLoopIndex);
12470
12540
  const faithfulnessWouldPending = faithfulnessMode === "enforce" && fr?.ok === true && (fr.verdict === "unsupported" || fr.verdict === "contradicted");
12471
12541
  const requireSpansWouldPending = this.config.provenance?.requireSpans === true && fact.requireSpansPending === true;
@@ -12477,11 +12547,27 @@ ${normalized}`).digest("hex");
12477
12547
  contentHashDedupKey,
12478
12548
  {
12479
12549
  invalidAt: biTemporal.validUntil,
12550
+ // #1707 thread 2 — carry the corrected start bound too.
12551
+ validFrom: biTemporal.validFrom,
12480
12552
  observedAt: biTemporal.observedAt,
12481
12553
  eventTimeSource: biTemporal.eventTimeSource
12482
12554
  },
12483
12555
  fact.entityRef
12484
12556
  );
12557
+ await backfillTemporalBoundsOnPromotionCopies({
12558
+ sourceStorage: targetStorage,
12559
+ content: fact.content,
12560
+ category: writeCategory,
12561
+ confidence: fact.confidence,
12562
+ entityRef: fact.entityRef,
12563
+ structuredAttributes: fact.structuredAttributes,
12564
+ bounds: {
12565
+ invalidAt: biTemporal.validUntil,
12566
+ validFrom: biTemporal.validFrom,
12567
+ observedAt: biTemporal.observedAt,
12568
+ eventTimeSource: biTemporal.eventTimeSource
12569
+ }
12570
+ });
12485
12571
  }
12486
12572
  }
12487
12573
  log.debug(
@@ -12759,7 +12845,7 @@ ${normalized}`).digest("hex");
12759
12845
  // #1578 r3: an extracted end-only bound (validFrom absent) is
12760
12846
  // historical, not a new authoritative state — never let it
12761
12847
  // supersede a later active fact (codex P1 on :15534).
12762
- enabled: this.config.temporalSupersessionEnabled && !(biTemporal && !biTemporal.validFrom)
12848
+ enabled: lifecycleCaps.temporalSupersession && !(biTemporal && !biTemporal.validFrom)
12763
12849
  });
12764
12850
  } catch (err) {
12765
12851
  log.warn(`temporal-supersession (chunked): unexpected error: ${err}`);
@@ -12922,7 +13008,7 @@ ${normalized}`).digest("hex");
12922
13008
  entityRef: supersessionEntityRef,
12923
13009
  structuredAttributes: fact.structuredAttributes,
12924
13010
  createdAt: supersessionOrderingAt(biTemporal?.validFrom ?? sourceContext?.validAt),
12925
- enabled: this.config.temporalSupersessionEnabled && !(biTemporal && !biTemporal.validFrom)
13011
+ enabled: lifecycleCaps.temporalSupersession && !(biTemporal && !biTemporal.validFrom)
12926
13012
  });
12927
13013
  } catch (err) {
12928
13014
  log.warn(`temporal-supersession: unexpected error: ${err}`);
@@ -13176,7 +13262,7 @@ ${normalized}`).digest("hex");
13176
13262
  }
13177
13263
  }
13178
13264
  async indexPersistedMemory(storage, memoryId) {
13179
- if (!this.config.embeddingFallbackEnabled) return;
13265
+ if (!resolveMemoryLifecycleCapabilities(this.config).embeddingFallback) return;
13180
13266
  if (!await this.embeddingFallback.isAvailable()) return;
13181
13267
  const memory = await storage.getMemoryById(memoryId);
13182
13268
  if (!memory) return;
@@ -13304,6 +13390,7 @@ ${normalized}`).digest("hex");
13304
13390
  /** IDs of facts persisted in the last extraction */
13305
13391
  lastPersistedIds = [];
13306
13392
  async runConsolidation() {
13393
+ const lifecycleCaps = resolveMemoryLifecycleCapabilities(this.config);
13307
13394
  log.info("running consolidation pass");
13308
13395
  let merged = 0;
13309
13396
  let invalidated = 0;
@@ -13468,7 +13555,7 @@ ${normalized}`).digest("hex");
13468
13555
  }
13469
13556
  }
13470
13557
  }
13471
- if (this.config.lifecyclePolicyEnabled) {
13558
+ if (lifecycleCaps.lifecyclePolicy) {
13472
13559
  try {
13473
13560
  const lightSleepStartedAt = (/* @__PURE__ */ new Date()).toISOString();
13474
13561
  const lifecycleCorpus = await this.storage.readAllMemories();
@@ -13618,7 +13705,7 @@ ${normalized}`).digest("hex");
13618
13705
  const meta = await this.storage.loadMeta();
13619
13706
  meta.lastConsolidationAt = (/* @__PURE__ */ new Date()).toISOString();
13620
13707
  await this.storage.saveMeta(meta);
13621
- if (this.config.temporalMemoryTreeEnabled) {
13708
+ if (lifecycleCaps.temporalMemoryTree) {
13622
13709
  try {
13623
13710
  const tmtEntries = allMemories.filter(
13624
13711
  (m) => m.frontmatter.status !== "superseded" && m.frontmatter.status !== "archived" && m.frontmatter.status !== "forgotten" && m.frontmatter.status !== "pending_review"
@@ -14014,6 +14101,7 @@ ${texts.map((t, i) => `[${i + 1}] ${t}`).join("\n\n")}`;
14014
14101
  let updatedCount = 0;
14015
14102
  let disputedCount = 0;
14016
14103
  let evaluatedCount = 0;
14104
+ const lifecycleCaps = resolveMemoryLifecycleCapabilities(this.config);
14017
14105
  const thresholds = this.effectiveLifecycleThresholds();
14018
14106
  const policy = {
14019
14107
  promoteHeatThreshold: thresholds.promoteHeatThreshold,
@@ -14053,7 +14141,7 @@ ${texts.map((t, i) => `[${i + 1}] ${t}`).join("\n\n")}`;
14053
14141
  });
14054
14142
  if (wrote) updatedCount += 1;
14055
14143
  }
14056
- if (!this.config.lifecycleMetricsEnabled) return updatedCount;
14144
+ if (!lifecycleCaps.lifecycleMetrics) return updatedCount;
14057
14145
  const total = evaluatedCount;
14058
14146
  const metrics = {
14059
14147
  generatedAt: nowIso,
@@ -15056,7 +15144,7 @@ ${lines.join("\n\n")}`;
15056
15144
  * `memoryDir` root, an exclusion list for `namespaces/*`).
15057
15145
  */
15058
15146
  async semanticDedupLookup(content, limit, targetStorage) {
15059
- if (!this.config.embeddingFallbackEnabled) {
15147
+ if (!resolveMemoryLifecycleCapabilities(this.config).embeddingFallback) {
15060
15148
  throw new Error("semantic dedup: embedding backend not configured");
15061
15149
  }
15062
15150
  if (!await this.embeddingFallback.isAvailable()) {
@@ -15106,7 +15194,7 @@ ${lines.join("\n\n")}`;
15106
15194
  return { pathPrefix: rel };
15107
15195
  }
15108
15196
  async searchEmbeddingFallback(query, limit) {
15109
- if (!this.config.embeddingFallbackEnabled) return [];
15197
+ if (!resolveMemoryLifecycleCapabilities(this.config).embeddingFallback) return [];
15110
15198
  if (!await this.embeddingFallback.isAvailable()) return [];
15111
15199
  const hits = await this.embeddingFallback.search(query, limit);
15112
15200
  if (hits.length === 0) return [];
@@ -15629,6 +15717,7 @@ ${lines.join("\n\n")}`;
15629
15717
  return { memoryByPath, checkedPaths, unreadablePaths, completed: true };
15630
15718
  }
15631
15719
  filterSearchResultsByRecallSafety(results, memoryByPath, options) {
15720
+ const lifecycleCaps = resolveMemoryLifecycleCapabilities(this.config);
15632
15721
  let lifecycleFilteredCount = 0;
15633
15722
  let temporalSupersededFilteredCount = 0;
15634
15723
  let biTemporalExpiredFilteredCount = 0;
@@ -15649,8 +15738,8 @@ ${lines.join("\n\n")}`;
15649
15738
  continue;
15650
15739
  }
15651
15740
  if (options?.allowLifecycleFiltered !== true && shouldFilterLifecycleRecallCandidate(memory.frontmatter, {
15652
- lifecyclePolicyEnabled: this.config.lifecyclePolicyEnabled,
15653
- lifecycleFilterStaleEnabled: this.config.lifecycleFilterStaleEnabled
15741
+ lifecyclePolicyEnabled: lifecycleCaps.lifecyclePolicy,
15742
+ lifecycleFilterStaleEnabled: lifecycleCaps.lifecycleFilterStale
15654
15743
  })) {
15655
15744
  lifecycleFilteredCount += 1;
15656
15745
  continue;
@@ -15673,7 +15762,7 @@ ${lines.join("\n\n")}`;
15673
15762
  // half-open `[valid_at, invalid_at)` evaluation in isValidAsOf
15674
15763
  // is the authoritative gate for historical recall.
15675
15764
  shouldFilterSupersededFromRecall(memory.frontmatter, {
15676
- enabled: this.config.temporalSupersessionEnabled,
15765
+ enabled: lifecycleCaps.temporalSupersession,
15677
15766
  includeInRecall: this.config.temporalSupersessionIncludeInRecall
15678
15767
  })
15679
15768
  ) {
@@ -15763,6 +15852,7 @@ ${lines.join("\n\n")}`;
15763
15852
  * Returns re-ranked results.
15764
15853
  */
15765
15854
  async boostSearchResults(results, _recallNamespaces, prompt, preloadedMemoryMap, options) {
15855
+ const lifecycleCaps = resolveMemoryLifecycleCapabilities(this.config);
15766
15856
  if (results.length === 0) return results;
15767
15857
  const safety = await this.filterSearchResultsForRecall(
15768
15858
  results,
@@ -15896,7 +15986,7 @@ ${lines.join("\n\n")}`;
15896
15986
  const lifecycleDelta = lifecycleRecallScoreAdjustment(
15897
15987
  memory.frontmatter,
15898
15988
  {
15899
- lifecyclePolicyEnabled: this.config.lifecyclePolicyEnabled
15989
+ lifecyclePolicyEnabled: lifecycleCaps.lifecyclePolicy
15900
15990
  }
15901
15991
  );
15902
15992
  score += applyUtilityRankingRuntimeDelta(
@@ -16232,4 +16322,4 @@ export {
16232
16322
  resolvePersistedMemoryRelativePath,
16233
16323
  Orchestrator
16234
16324
  };
16235
- //# sourceMappingURL=chunk-OAHOL3ZC.js.map
16325
+ //# sourceMappingURL=chunk-QNEUZIAH.js.map