@remnic/core 9.60.1 → 9.60.2

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 (427) hide show
  1. package/dist/access-admin-ops-surface.d.ts +11 -11
  2. package/dist/access-admin-ops-surface.js +25 -25
  3. package/dist/access-authorization-probe.d.ts +11 -11
  4. package/dist/access-authorization-probe.js +26 -26
  5. package/dist/access-boundary.d.ts +11 -11
  6. package/dist/access-boundary.js +25 -25
  7. package/dist/access-cli.js +75 -74
  8. package/dist/access-cli.js.map +1 -1
  9. package/dist/access-coding-context-resolution.d.ts +1 -1
  10. package/dist/access-extraction-force-flush.d.ts +11 -11
  11. package/dist/access-extraction-force-flush.js +25 -25
  12. package/dist/access-health-types.d.ts +1 -1
  13. package/dist/access-http-lcm-compaction.d.ts +11 -11
  14. package/dist/access-http-lifecycle-flush.d.ts +11 -11
  15. package/dist/access-http-offline-stream.d.ts +11 -11
  16. package/dist/access-http-query.js +25 -25
  17. package/dist/access-http.d.ts +12 -12
  18. package/dist/access-http.js +38 -38
  19. package/dist/access-identity-continuity-surface.d.ts +9 -9
  20. package/dist/access-identity-continuity-surface.js +25 -25
  21. package/dist/access-lcm-surface.d.ts +11 -11
  22. package/dist/access-lcm-surface.js +25 -25
  23. package/dist/access-mcp.d.ts +11 -11
  24. package/dist/access-mcp.js +32 -32
  25. package/dist/access-memory-search-fanout.d.ts +2 -2
  26. package/dist/{access-namespace-preflight-TBXz-8s_.d.ts → access-namespace-preflight-EMvicnrb.d.ts} +1 -1
  27. package/dist/access-namespace-preflight.d.ts +3 -3
  28. package/dist/access-namespace-preflight.js +25 -25
  29. package/dist/access-observe-write-surface.d.ts +11 -11
  30. package/dist/access-observe-write-surface.js +25 -25
  31. package/dist/access-offline-manifest.d.ts +9 -9
  32. package/dist/access-operations-batch.js +27 -27
  33. package/dist/access-operations.d.ts +14 -14
  34. package/dist/access-operations.js +31 -31
  35. package/dist/access-recall-concurrency.d.ts +11 -11
  36. package/dist/access-recall-concurrency.js +25 -25
  37. package/dist/access-recall-response.d.ts +11 -11
  38. package/dist/access-recall-response.js +25 -25
  39. package/dist/access-recall-surface.d.ts +11 -11
  40. package/dist/access-recall-surface.js +25 -25
  41. package/dist/access-schema.d.ts +88 -88
  42. package/dist/access-schema.js +3 -3
  43. package/dist/{access-service-BogiG4Dy.d.ts → access-service-BeDYQQ62.d.ts} +71 -71
  44. package/dist/access-service-helpers.d.ts +11 -11
  45. package/dist/access-service.d.ts +11 -11
  46. package/dist/access-service.js +25 -25
  47. package/dist/access-surface-catalog.d.ts +11 -11
  48. package/dist/access-surface-catalog.js +27 -27
  49. package/dist/access-wearables-meetings-surface.d.ts +3 -3
  50. package/dist/action-confidence.d.ts +1 -1
  51. package/dist/active-memory-bridge.d.ts +1 -1
  52. package/dist/active-recall.d.ts +1 -1
  53. package/dist/adapters/index.js +4 -4
  54. package/dist/adapters/registry.js +2 -2
  55. package/dist/ambient-provenance.d.ts +1 -1
  56. package/dist/artifact-search.d.ts +1 -1
  57. package/dist/behavior-learner.d.ts +1 -1
  58. package/dist/behavior-signals.d.ts +1 -1
  59. package/dist/bootstrap.d.ts +9 -9
  60. package/dist/briefing-window.d.ts +2 -2
  61. package/dist/briefing.d.ts +2 -2
  62. package/dist/briefing.js +11 -11
  63. package/dist/buffer-surprise-report.d.ts +1 -1
  64. package/dist/buffer-turn-helpers.d.ts +1 -1
  65. package/dist/buffer.d.ts +2 -2
  66. package/dist/buffer.js +4 -4
  67. package/dist/bulk-import/index.d.ts +3 -3
  68. package/dist/calibration.d.ts +1 -1
  69. package/dist/capabilities.d.ts +1 -1
  70. package/dist/{capsule-crypto-GWVG7LGC.js → capsule-crypto-7FJQINUR.js} +2 -2
  71. package/dist/{catalog-z1UerMbh.d.ts → catalog-B2SxZ6LU.d.ts} +1 -1
  72. package/dist/causal-behavior.d.ts +1 -1
  73. package/dist/causal-consolidation.d.ts +1 -1
  74. package/dist/causal-consolidation.js +12 -12
  75. package/dist/causal-trajectory-graph.d.ts +1 -1
  76. package/dist/{chunk-7DHFB5SG.js → chunk-2GRLJMKJ.js} +3 -3
  77. package/dist/{chunk-OWHERGF2.js → chunk-2NLLXCJG.js} +2 -2
  78. package/dist/{chunk-VUJN44CT.js → chunk-2RIDW23Y.js} +7 -7
  79. package/dist/{chunk-VOKK4WCG.js → chunk-3GPBFDXH.js} +2 -2
  80. package/dist/{chunk-KXYMU4IN.js → chunk-4JGSG7QN.js} +3 -3
  81. package/dist/{chunk-A7266TRJ.js → chunk-4XAVQLBR.js} +2 -2
  82. package/dist/{chunk-LLZKOSGM.js → chunk-5WVUO6QT.js} +1 -1
  83. package/dist/{chunk-LLZKOSGM.js.map → chunk-5WVUO6QT.js.map} +1 -1
  84. package/dist/{chunk-UBSM6TZP.js → chunk-76YNCJ5H.js} +2 -2
  85. package/dist/{chunk-JNWISMYG.js → chunk-7N7DB4L5.js} +5 -5
  86. package/dist/{chunk-6C7Q6NG3.js → chunk-AWRJBAIH.js} +16 -16
  87. package/dist/{chunk-GKHMV2KK.js → chunk-C3R732UY.js} +51 -32
  88. package/dist/chunk-C3R732UY.js.map +1 -0
  89. package/dist/{chunk-DE6YCZEE.js → chunk-CIA6ZUBA.js} +2 -2
  90. package/dist/{chunk-PEDYKCJI.js → chunk-CK3NQUSQ.js} +2 -2
  91. package/dist/{chunk-OU7RWWW6.js → chunk-CM4SZZBN.js} +2 -2
  92. package/dist/{chunk-ODAE36PG.js → chunk-D5HDJWNN.js} +2 -2
  93. package/dist/{chunk-4CLE2LXB.js → chunk-EGW4O32Z.js} +75 -38
  94. package/dist/chunk-EGW4O32Z.js.map +1 -0
  95. package/dist/{chunk-KF75ANST.js → chunk-EHMMRZOZ.js} +2 -2
  96. package/dist/{chunk-7G34CBKS.js → chunk-EIQFIJDM.js} +2 -2
  97. package/dist/{chunk-YNDLCWXS.js → chunk-EZ25VE3G.js} +4 -4
  98. package/dist/{chunk-G3JFFUKR.js → chunk-FW73HN33.js} +2 -2
  99. package/dist/{chunk-MMZK2DWN.js → chunk-G3YBWFUC.js} +1 -1
  100. package/dist/chunk-GKUA4MGB.js +40 -0
  101. package/dist/chunk-GKUA4MGB.js.map +1 -0
  102. package/dist/{chunk-I4BLRM7X.js → chunk-GN7HO2LA.js} +10 -10
  103. package/dist/{chunk-ZOGOOSB3.js → chunk-H32ANIFP.js} +2 -2
  104. package/dist/{chunk-AH2NX6S7.js → chunk-HEEEMJ26.js} +3 -3
  105. package/dist/{chunk-J65AKOD6.js → chunk-HQBVQICL.js} +2 -2
  106. package/dist/{chunk-VJXSAJFW.js → chunk-I67HKRBF.js} +2 -2
  107. package/dist/{chunk-RKNJBZ55.js → chunk-JBPKEARU.js} +4 -4
  108. package/dist/{chunk-R7IV3EUJ.js → chunk-JKW663ZN.js} +2 -2
  109. package/dist/{chunk-YBCZTBN2.js → chunk-KAB7TZN3.js} +2 -2
  110. package/dist/{chunk-4UUF2EX3.js → chunk-KPML4Q3M.js} +2 -2
  111. package/dist/{chunk-5W7CTZ2E.js → chunk-KQAFEZQX.js} +4 -4
  112. package/dist/{chunk-YKZFX2HQ.js → chunk-L33N3BCA.js} +2 -2
  113. package/dist/{chunk-PYHOAXTI.js → chunk-LRGSLV7M.js} +4 -4
  114. package/dist/{chunk-FI5EAP4N.js → chunk-MJ4UGUR6.js} +2 -2
  115. package/dist/{chunk-KBIIE57I.js → chunk-MU3TPZOV.js} +2 -2
  116. package/dist/{chunk-77DAFTUU.js → chunk-MYZ4NA43.js} +2 -2
  117. package/dist/{chunk-T2VJ2EO5.js → chunk-N4EPIKSY.js} +6 -6
  118. package/dist/{chunk-EZXGJJXM.js → chunk-N4OYPGZS.js} +2 -2
  119. package/dist/{chunk-L3JVAM5Q.js → chunk-PA5OPZX2.js} +2 -2
  120. package/dist/{chunk-RVO6TCTU.js → chunk-QCECHYZL.js} +6 -6
  121. package/dist/{chunk-2HGV44MM.js → chunk-QRKYABS6.js} +2 -2
  122. package/dist/{chunk-P6GOYLHN.js → chunk-QWPAQLYV.js} +2 -2
  123. package/dist/{chunk-BTHDQOF4.js → chunk-QYN5PXDZ.js} +5 -5
  124. package/dist/{chunk-MG7GI4TT.js → chunk-S3B3UIQ3.js} +2 -2
  125. package/dist/{chunk-6W2ISYUV.js → chunk-TE4MKFT2.js} +4 -4
  126. package/dist/{chunk-QUJC22CT.js → chunk-URN7XWGC.js} +2 -2
  127. package/dist/{chunk-G5OB4XZX.js → chunk-VANZKHTN.js} +4 -4
  128. package/dist/{chunk-BPM6UHUL.js → chunk-VWDTV6SH.js} +2 -2
  129. package/dist/{chunk-P5OYNV7B.js → chunk-W3Y6FYRK.js} +2 -2
  130. package/dist/{chunk-VIM6QH4D.js → chunk-W4Q54HM3.js} +2 -2
  131. package/dist/{chunk-UVYI6VIX.js → chunk-X7Y7WX73.js} +1 -1
  132. package/dist/{chunk-FUWS2MNJ.js → chunk-XBR5BAKW.js} +4 -4
  133. package/dist/{chunk-XU4OLEYW.js → chunk-XD4VGLDL.js} +45 -45
  134. package/dist/{chunk-OV36CROW.js → chunk-XDK6ZFLL.js} +3 -3
  135. package/dist/{chunk-JHMAYABJ.js → chunk-XL3TATMJ.js} +4 -4
  136. package/dist/{chunk-OLX2HJFW.js → chunk-YLHM5BQQ.js} +4 -4
  137. package/dist/{chunk-2VHCLHZ5.js → chunk-YUIBXMZY.js} +147 -40
  138. package/dist/chunk-YUIBXMZY.js.map +1 -0
  139. package/dist/{cli-CTgFjmDs.d.ts → cli-DB_uakTc.d.ts} +5 -5
  140. package/dist/cli.d.ts +13 -13
  141. package/dist/cli.js +58 -58
  142. package/dist/coding/pre-action-gate.d.ts +1 -1
  143. package/dist/compounding/engine.d.ts +2 -2
  144. package/dist/compounding/engine.js +11 -11
  145. package/dist/compounding/preference-consolidator.d.ts +1 -1
  146. package/dist/compression-optimizer.d.ts +1 -1
  147. package/dist/config.d.ts +1 -1
  148. package/dist/connectors/codex-materialize-runner.d.ts +1 -1
  149. package/dist/connectors/codex-materialize-runner.js +11 -11
  150. package/dist/connectors/codex-materialize.d.ts +1 -1
  151. package/dist/connectors/index.d.ts +1 -1
  152. package/dist/connectors/index.js +11 -11
  153. package/dist/consolidation-provenance-check.d.ts +2 -2
  154. package/dist/consolidation-undo.d.ts +2 -2
  155. package/dist/contradiction/index.d.ts +2 -2
  156. package/dist/contradiction/index.js +4 -4
  157. package/dist/converge-config.d.ts +1 -1
  158. package/dist/convergence-refresh.d.ts +2 -2
  159. package/dist/convergence-refresh.js +13 -13
  160. package/dist/conversation-index/backend.d.ts +1 -1
  161. package/dist/conversation-index/chunker.d.ts +1 -1
  162. package/dist/conversation-index/faiss-adapter.d.ts +1 -1
  163. package/dist/conversation-index/indexer.d.ts +1 -1
  164. package/dist/conversation-index/search.d.ts +1 -1
  165. package/dist/corpus-watermark.d.ts +1 -1
  166. package/dist/corpus-watermark.js +13 -13
  167. package/dist/dashboard-runtime.js +2 -2
  168. package/dist/day-summary.d.ts +1 -1
  169. package/dist/delinearize.d.ts +1 -1
  170. package/dist/dependency-propagation-config.d.ts +1 -1
  171. package/dist/{dependency-propagation-delivery-DdwSc1qh.d.ts → dependency-propagation-delivery-DcOVpK3y.d.ts} +1 -1
  172. package/dist/direct-answer-wiring.d.ts +1 -1
  173. package/dist/direct-answer.d.ts +1 -1
  174. package/dist/embedding-fallback.d.ts +1 -1
  175. package/dist/enrichment/index.d.ts +1 -1
  176. package/dist/entity-origin-fields.d.ts +28 -0
  177. package/dist/entity-origin-fields.js +10 -0
  178. package/dist/entity-origin-fields.js.map +1 -0
  179. package/dist/entity-retrieval.d.ts +2 -2
  180. package/dist/entity-retrieval.js +12 -11
  181. package/dist/entity-schema.d.ts +1 -1
  182. package/dist/explicit-capture.d.ts +9 -9
  183. package/dist/external-wiki-access.d.ts +11 -11
  184. package/dist/external-wiki-access.js +26 -26
  185. package/dist/external-wiki-collection-registration.d.ts +1 -1
  186. package/dist/external-wiki-collection.d.ts +1 -1
  187. package/dist/external-wiki-mcp-tools.d.ts +11 -11
  188. package/dist/extraction-error-classification.d.ts +1 -1
  189. package/dist/extraction-faithfulness.d.ts +1 -1
  190. package/dist/extraction-judge-telemetry.d.ts +1 -1
  191. package/dist/extraction-judge-training.d.ts +1 -1
  192. package/dist/extraction-judge.d.ts +1 -1
  193. package/dist/extraction-liveness.d.ts +1 -1
  194. package/dist/extraction-normalization.d.ts +1 -1
  195. package/dist/extraction-prompt.d.ts +1 -1
  196. package/dist/extraction-source-grounding-rules.d.ts +1 -1
  197. package/dist/extraction-source-grounding.d.ts +1 -1
  198. package/dist/extraction.d.ts +1 -1
  199. package/dist/extraction.js +15 -15
  200. package/dist/fallback-llm.d.ts +1 -1
  201. package/dist/graph-dashboard-diff.d.ts +1 -1
  202. package/dist/graph-dashboard-key.d.ts +1 -1
  203. package/dist/graph-dashboard-parser.d.ts +1 -1
  204. package/dist/graph-edge-reinforcement.d.ts +1 -1
  205. package/dist/graph-path-reconstruction.d.ts +1 -1
  206. package/dist/graph-path-scoring.d.ts +1 -1
  207. package/dist/graph-snapshot.d.ts +1 -1
  208. package/dist/graph.d.ts +1 -1
  209. package/dist/harmonic-retrieval.js +1 -1
  210. package/dist/importance.d.ts +1 -1
  211. package/dist/importers/index.d.ts +1 -1
  212. package/dist/in-flight-reads.d.ts +1 -1
  213. package/dist/index.d.ts +697 -697
  214. package/dist/index.js +85 -84
  215. package/dist/intent.d.ts +1 -1
  216. package/dist/lcm/engine.d.ts +1 -1
  217. package/dist/lcm/index.d.ts +1 -1
  218. package/dist/lcm/index.js +3 -3
  219. package/dist/lcm/tools.d.ts +1 -1
  220. package/dist/lifecycle.d.ts +1 -1
  221. package/dist/live-connectors-runner.d.ts +1 -1
  222. package/dist/local-llm.d.ts +1 -1
  223. package/dist/local-model-endpoint.d.ts +1 -1
  224. package/dist/maintenance/memory-governance.d.ts +1 -1
  225. package/dist/maintenance/memory-governance.js +11 -11
  226. package/dist/maintenance/rebuild-memory-lifecycle-ledger.d.ts +2 -2
  227. package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +11 -11
  228. package/dist/maintenance/rebuild-memory-projection.d.ts +2 -2
  229. package/dist/maintenance/rebuild-memory-projection.js +12 -12
  230. package/dist/{maintenance-DvkiF7fm.d.ts → maintenance-5c1olVtB.d.ts} +3 -3
  231. package/dist/mcp-memory-inspector-app.d.ts +11 -11
  232. package/dist/memory-action-policy.d.ts +1 -1
  233. package/dist/memory-cache.d.ts +1 -1
  234. package/dist/memory-lifecycle-ledger-utils.d.ts +1 -1
  235. package/dist/memory-projection-store.d.ts +1 -1
  236. package/dist/memory-provenance.d.ts +1 -1
  237. package/dist/memory-snapshot.d.ts +1 -1
  238. package/dist/memory-worth-outcomes.d.ts +2 -2
  239. package/dist/models-json.d.ts +1 -1
  240. package/dist/namespaces/migrate.d.ts +3 -3
  241. package/dist/namespaces/migrate.js +12 -12
  242. package/dist/namespaces/principal.d.ts +1 -1
  243. package/dist/namespaces/search.d.ts +1 -1
  244. package/dist/namespaces/search.js +8 -8
  245. package/dist/namespaces/storage.d.ts +3 -3
  246. package/dist/namespaces/storage.js +11 -11
  247. package/dist/native-knowledge.d.ts +1 -1
  248. package/dist/offline-sync-impression-drain.d.ts +1 -1
  249. package/dist/operator-doctor-corpus.d.ts +1 -1
  250. package/dist/operator-doctor-corpus.js +14 -14
  251. package/dist/operator-doctor-replica.d.ts +1 -1
  252. package/dist/operator-toolkit.d.ts +3 -3
  253. package/dist/operator-toolkit.js +18 -18
  254. package/dist/orchestration/compression-guideline-coordinator.d.ts +2 -2
  255. package/dist/orchestration/maintenance.d.ts +4 -4
  256. package/dist/orchestration/maintenance.js +16 -16
  257. package/dist/{orchestrator-CXPIzs3D.d.ts → orchestrator-HPuY6I4i.d.ts} +8 -8
  258. package/dist/orchestrator.d.ts +9 -9
  259. package/dist/orchestrator.js +75 -74
  260. package/dist/patterns-cli.d.ts +1 -1
  261. package/dist/{pipeline-BuYWU9rt.d.ts → pipeline-CvVe1Q2_.d.ts} +1 -1
  262. package/dist/policy-runtime.d.ts +1 -1
  263. package/dist/proactive-contention.d.ts +1 -1
  264. package/dist/provenance.d.ts +1 -1
  265. package/dist/{public-http-CEwDOGO7.d.ts → public-http-D0JKFkyf.d.ts} +1 -1
  266. package/dist/{qmd-DYnrPw-m.d.ts → qmd-Bd0Tp76_.d.ts} +1 -1
  267. package/dist/qmd-preflight.d.ts +2 -2
  268. package/dist/qmd-recall-cache.d.ts +1 -1
  269. package/dist/qmd.d.ts +2 -2
  270. package/dist/qmd.js +4 -4
  271. package/dist/recall-concurrency-config.d.ts +1 -1
  272. package/dist/recall-disclosure-escalation.d.ts +1 -1
  273. package/dist/recall-explain-renderer.d.ts +1 -1
  274. package/dist/recall-explain-renderer.js +3 -3
  275. package/dist/recall-memory-map.d.ts +1 -1
  276. package/dist/recall-planner-llm.d.ts +1 -1
  277. package/dist/recall-state.d.ts +1 -1
  278. package/dist/recall-tag-filter.d.ts +1 -1
  279. package/dist/recall-timings.d.ts +1 -1
  280. package/dist/recall-xray-cli.d.ts +1 -1
  281. package/dist/recall-xray-cli.js +4 -4
  282. package/dist/recall-xray-renderer.d.ts +1 -1
  283. package/dist/recall-xray-renderer.js +3 -3
  284. package/dist/recall-xray.d.ts +1 -1
  285. package/dist/recall-xray.js +2 -2
  286. package/dist/reconcile/cursor.d.ts +1 -1
  287. package/dist/reconcile/manifest.d.ts +1 -1
  288. package/dist/reconcile/plan.d.ts +1 -1
  289. package/dist/replay/normalizers/chatgpt.d.ts +1 -1
  290. package/dist/replay/normalizers/claude.d.ts +1 -1
  291. package/dist/replay/normalizers/openclaw.d.ts +1 -1
  292. package/dist/replay/normalizers/shared.d.ts +1 -1
  293. package/dist/replay/runner.d.ts +1 -1
  294. package/dist/replay/types.d.ts +1 -1
  295. package/dist/replica-divergence.d.ts +1 -1
  296. package/dist/replica-peers-config.d.ts +1 -1
  297. package/dist/resolve-auth-token.d.ts +1 -1
  298. package/dist/retrieval-agents.d.ts +2 -2
  299. package/dist/retrieval-tiers.d.ts +1 -1
  300. package/dist/routing/engine.d.ts +1 -1
  301. package/dist/routing/store.d.ts +1 -1
  302. package/dist/salvage-envelope.d.ts +1 -1
  303. package/dist/schemas.d.ts +138 -138
  304. package/dist/{scope-profiles-C1QG4Cmv.d.ts → scope-profiles-ClLtm9gK.d.ts} +1 -1
  305. package/dist/search/embed-helper.d.ts +1 -1
  306. package/dist/search/factory.d.ts +1 -1
  307. package/dist/search/factory.js +7 -7
  308. package/dist/search/index.d.ts +1 -1
  309. package/dist/search/index.js +7 -7
  310. package/dist/search/lancedb-backend.d.ts +1 -1
  311. package/dist/search/lancedb-backend.js +2 -2
  312. package/dist/search/meilisearch-backend.d.ts +1 -1
  313. package/dist/search/meilisearch-backend.js +2 -2
  314. package/dist/search/noop-backend.d.ts +1 -1
  315. package/dist/search/orama-backend.d.ts +1 -1
  316. package/dist/search/orama-backend.js +2 -2
  317. package/dist/search/port.d.ts +1 -1
  318. package/dist/search/remote-backend.d.ts +1 -1
  319. package/dist/{semantic-consolidation-DMeX8XS0.d.ts → semantic-consolidation-B1EkeEDj.d.ts} +1 -1
  320. package/dist/semantic-consolidation.d.ts +2 -2
  321. package/dist/semantic-consolidation.js +12 -12
  322. package/dist/semantic-rule-promotion.js +11 -11
  323. package/dist/semantic-rule-verifier.d.ts +1 -1
  324. package/dist/semantic-rule-verifier.js +11 -11
  325. package/dist/{service-CT3ENiTO.d.ts → service-Cf3ANQj9.d.ts} +2 -2
  326. package/dist/session-observer-bands.d.ts +1 -1
  327. package/dist/session-observer-state.d.ts +1 -1
  328. package/dist/shared-context/manager.d.ts +9 -9
  329. package/dist/signal.d.ts +1 -1
  330. package/dist/source-agent-qualifier.d.ts +1 -1
  331. package/dist/source-agent-qualifier.js +13 -13
  332. package/dist/{storage-B0L76y7N.d.ts → storage-DS2O_6Qt.d.ts} +4 -2
  333. package/dist/storage.d.ts +2 -2
  334. package/dist/storage.js +12 -10
  335. package/dist/summarizer.d.ts +1 -1
  336. package/dist/summary-snapshot.d.ts +1 -1
  337. package/dist/support-passport/index.d.ts +14 -14
  338. package/dist/support-passport/index.js +28 -28
  339. package/dist/temporal-supersession.d.ts +2 -2
  340. package/dist/temporal-timeline-recall.d.ts +1 -1
  341. package/dist/temporal-validity.d.ts +1 -1
  342. package/dist/threading.d.ts +1 -1
  343. package/dist/tier-migration.d.ts +2 -2
  344. package/dist/tier-routing.d.ts +1 -1
  345. package/dist/topics.d.ts +1 -1
  346. package/dist/transcript.d.ts +1 -1
  347. package/dist/transfer/backup.js +2 -2
  348. package/dist/transfer/capsule-export.js +2 -2
  349. package/dist/transfer/capsule-import.js +2 -2
  350. package/dist/transfer/import-sqlite.js +2 -2
  351. package/dist/transfer/types.d.ts +66 -66
  352. package/dist/trust-score-stage.d.ts +1 -1
  353. package/dist/trust-score.d.ts +1 -1
  354. package/dist/{types-D7pB0QwO.d.ts → types-BOANGhCJ.d.ts} +3 -1
  355. package/dist/types.d.ts +1 -1
  356. package/dist/types.js +1 -1
  357. package/dist/utility-runtime.d.ts +1 -1
  358. package/dist/verified-recall.js +11 -11
  359. package/dist/write-envelope.d.ts +1 -1
  360. package/package.json +2 -2
  361. package/src/entity-origin-fields.ts +56 -0
  362. package/src/entity-retrieval.ts +84 -84
  363. package/src/orchestration/extraction-injection-gate.ts +17 -5
  364. package/src/orchestration/extraction-persist.ts +1 -1
  365. package/src/recall-authority-fence.test.ts +40 -0
  366. package/src/security/audit-memory.test.ts +24 -1
  367. package/src/storage/entity-store.ts +52 -17
  368. package/src/storage/entity-timeline.ts +96 -16
  369. package/src/storage.ts +18 -18
  370. package/src/types.ts +2 -2
  371. package/dist/chunk-2VHCLHZ5.js.map +0 -1
  372. package/dist/chunk-4CLE2LXB.js.map +0 -1
  373. package/dist/chunk-GKHMV2KK.js.map +0 -1
  374. /package/dist/{capsule-crypto-GWVG7LGC.js.map → capsule-crypto-7FJQINUR.js.map} +0 -0
  375. /package/dist/{chunk-7DHFB5SG.js.map → chunk-2GRLJMKJ.js.map} +0 -0
  376. /package/dist/{chunk-OWHERGF2.js.map → chunk-2NLLXCJG.js.map} +0 -0
  377. /package/dist/{chunk-VUJN44CT.js.map → chunk-2RIDW23Y.js.map} +0 -0
  378. /package/dist/{chunk-VOKK4WCG.js.map → chunk-3GPBFDXH.js.map} +0 -0
  379. /package/dist/{chunk-KXYMU4IN.js.map → chunk-4JGSG7QN.js.map} +0 -0
  380. /package/dist/{chunk-A7266TRJ.js.map → chunk-4XAVQLBR.js.map} +0 -0
  381. /package/dist/{chunk-UBSM6TZP.js.map → chunk-76YNCJ5H.js.map} +0 -0
  382. /package/dist/{chunk-JNWISMYG.js.map → chunk-7N7DB4L5.js.map} +0 -0
  383. /package/dist/{chunk-6C7Q6NG3.js.map → chunk-AWRJBAIH.js.map} +0 -0
  384. /package/dist/{chunk-DE6YCZEE.js.map → chunk-CIA6ZUBA.js.map} +0 -0
  385. /package/dist/{chunk-PEDYKCJI.js.map → chunk-CK3NQUSQ.js.map} +0 -0
  386. /package/dist/{chunk-OU7RWWW6.js.map → chunk-CM4SZZBN.js.map} +0 -0
  387. /package/dist/{chunk-ODAE36PG.js.map → chunk-D5HDJWNN.js.map} +0 -0
  388. /package/dist/{chunk-KF75ANST.js.map → chunk-EHMMRZOZ.js.map} +0 -0
  389. /package/dist/{chunk-7G34CBKS.js.map → chunk-EIQFIJDM.js.map} +0 -0
  390. /package/dist/{chunk-YNDLCWXS.js.map → chunk-EZ25VE3G.js.map} +0 -0
  391. /package/dist/{chunk-G3JFFUKR.js.map → chunk-FW73HN33.js.map} +0 -0
  392. /package/dist/{chunk-MMZK2DWN.js.map → chunk-G3YBWFUC.js.map} +0 -0
  393. /package/dist/{chunk-I4BLRM7X.js.map → chunk-GN7HO2LA.js.map} +0 -0
  394. /package/dist/{chunk-ZOGOOSB3.js.map → chunk-H32ANIFP.js.map} +0 -0
  395. /package/dist/{chunk-AH2NX6S7.js.map → chunk-HEEEMJ26.js.map} +0 -0
  396. /package/dist/{chunk-J65AKOD6.js.map → chunk-HQBVQICL.js.map} +0 -0
  397. /package/dist/{chunk-VJXSAJFW.js.map → chunk-I67HKRBF.js.map} +0 -0
  398. /package/dist/{chunk-RKNJBZ55.js.map → chunk-JBPKEARU.js.map} +0 -0
  399. /package/dist/{chunk-R7IV3EUJ.js.map → chunk-JKW663ZN.js.map} +0 -0
  400. /package/dist/{chunk-YBCZTBN2.js.map → chunk-KAB7TZN3.js.map} +0 -0
  401. /package/dist/{chunk-4UUF2EX3.js.map → chunk-KPML4Q3M.js.map} +0 -0
  402. /package/dist/{chunk-5W7CTZ2E.js.map → chunk-KQAFEZQX.js.map} +0 -0
  403. /package/dist/{chunk-YKZFX2HQ.js.map → chunk-L33N3BCA.js.map} +0 -0
  404. /package/dist/{chunk-PYHOAXTI.js.map → chunk-LRGSLV7M.js.map} +0 -0
  405. /package/dist/{chunk-FI5EAP4N.js.map → chunk-MJ4UGUR6.js.map} +0 -0
  406. /package/dist/{chunk-KBIIE57I.js.map → chunk-MU3TPZOV.js.map} +0 -0
  407. /package/dist/{chunk-77DAFTUU.js.map → chunk-MYZ4NA43.js.map} +0 -0
  408. /package/dist/{chunk-T2VJ2EO5.js.map → chunk-N4EPIKSY.js.map} +0 -0
  409. /package/dist/{chunk-EZXGJJXM.js.map → chunk-N4OYPGZS.js.map} +0 -0
  410. /package/dist/{chunk-L3JVAM5Q.js.map → chunk-PA5OPZX2.js.map} +0 -0
  411. /package/dist/{chunk-RVO6TCTU.js.map → chunk-QCECHYZL.js.map} +0 -0
  412. /package/dist/{chunk-2HGV44MM.js.map → chunk-QRKYABS6.js.map} +0 -0
  413. /package/dist/{chunk-P6GOYLHN.js.map → chunk-QWPAQLYV.js.map} +0 -0
  414. /package/dist/{chunk-BTHDQOF4.js.map → chunk-QYN5PXDZ.js.map} +0 -0
  415. /package/dist/{chunk-MG7GI4TT.js.map → chunk-S3B3UIQ3.js.map} +0 -0
  416. /package/dist/{chunk-6W2ISYUV.js.map → chunk-TE4MKFT2.js.map} +0 -0
  417. /package/dist/{chunk-QUJC22CT.js.map → chunk-URN7XWGC.js.map} +0 -0
  418. /package/dist/{chunk-G5OB4XZX.js.map → chunk-VANZKHTN.js.map} +0 -0
  419. /package/dist/{chunk-BPM6UHUL.js.map → chunk-VWDTV6SH.js.map} +0 -0
  420. /package/dist/{chunk-P5OYNV7B.js.map → chunk-W3Y6FYRK.js.map} +0 -0
  421. /package/dist/{chunk-VIM6QH4D.js.map → chunk-W4Q54HM3.js.map} +0 -0
  422. /package/dist/{chunk-UVYI6VIX.js.map → chunk-X7Y7WX73.js.map} +0 -0
  423. /package/dist/{chunk-FUWS2MNJ.js.map → chunk-XBR5BAKW.js.map} +0 -0
  424. /package/dist/{chunk-XU4OLEYW.js.map → chunk-XD4VGLDL.js.map} +0 -0
  425. /package/dist/{chunk-OV36CROW.js.map → chunk-XDK6ZFLL.js.map} +0 -0
  426. /package/dist/{chunk-JHMAYABJ.js.map → chunk-XL3TATMJ.js.map} +0 -0
  427. /package/dist/{chunk-OLX2HJFW.js.map → chunk-YLHM5BQQ.js.map} +0 -0
@@ -17,14 +17,14 @@ import {
17
17
  } from "./chunk-KHQ57QLJ.js";
18
18
  import {
19
19
  normalizeQmdResultPath
20
- } from "./chunk-P6GOYLHN.js";
20
+ } from "./chunk-QWPAQLYV.js";
21
21
  import {
22
22
  withholdToolScopedFromSharedNamespace
23
23
  } from "./chunk-S2V7RUCL.js";
24
24
  import {
25
25
  SPECULATIVE_TTL_DAYS,
26
26
  confidenceTier
27
- } from "./chunk-LLZKOSGM.js";
27
+ } from "./chunk-5WVUO6QT.js";
28
28
  import {
29
29
  createMemorySnapshot
30
30
  } from "./chunk-S2HLHAZ4.js";
@@ -1700,26 +1700,35 @@ var EntityStore = class {
1700
1700
  const source = options.source?.trim() || void 0;
1701
1701
  const sessionKey = options.sessionKey?.trim() || void 0;
1702
1702
  const principal = options.principal?.trim() || void 0;
1703
+ const origin = options.origin?.trim() ? parseOriginClass(options.origin) : void 0;
1703
1704
  const structuredSectionMap = new Map(
1704
1705
  (entity.structuredSections ?? []).map((section) => [section.key, {
1705
1706
  ...section,
1706
- facts: [...section.facts]
1707
+ facts: [...section.facts],
1708
+ ...section.factOrigins ? { factOrigins: [...section.factOrigins] } : {}
1707
1709
  }])
1708
1710
  );
1709
1711
  for (const section of options.structuredSections ?? []) {
1710
1712
  const normalizedSection = normalizeEntityStructuredSection(type, section, this.deps.entitySchemas);
1711
- const normalizedFacts = normalizeStructuredSectionFacts(section.facts);
1712
- if (normalizedFacts.length === 0) continue;
1713
+ const normalized2 = normalizeStructuredSectionFactsWithOrigins(section.facts, section.factOrigins, origin);
1714
+ if (normalized2.facts.length === 0) continue;
1713
1715
  const existingSection = structuredSectionMap.get(normalizedSection.key);
1714
1716
  if (!existingSection) {
1715
1717
  structuredSectionMap.set(normalizedSection.key, {
1716
1718
  key: normalizedSection.key,
1717
1719
  title: normalizedSection.title,
1718
- facts: normalizedFacts
1720
+ ...normalized2
1719
1721
  });
1720
1722
  continue;
1721
1723
  }
1722
- existingSection.facts = normalizeStructuredSectionFacts([...existingSection.facts, ...normalizedFacts]);
1724
+ const existingOrigins = existingSection.facts.map((_, index) => existingSection.factOrigins?.[index]);
1725
+ const incomingOrigins = normalized2.facts.map((_, index) => normalized2.factOrigins?.[index]);
1726
+ const merged = normalizeStructuredSectionFactsWithOrigins(
1727
+ [...existingSection.facts, ...normalized2.facts],
1728
+ [...existingOrigins, ...incomingOrigins]
1729
+ );
1730
+ existingSection.facts = merged.facts;
1731
+ existingSection.factOrigins = merged.factOrigins;
1723
1732
  if (!existingSection.title.trim() && normalizedSection.title.trim()) {
1724
1733
  existingSection.title = normalizedSection.title;
1725
1734
  }
@@ -1730,10 +1739,11 @@ var EntityStore = class {
1730
1739
  text: fact,
1731
1740
  ...source ? { source } : {},
1732
1741
  ...sessionKey ? { sessionKey } : {},
1733
- ...principal ? { principal } : {}
1742
+ ...principal ? { principal } : {},
1743
+ ...origin ? { origin } : {}
1734
1744
  };
1735
1745
  const alreadyPresent = entity.timeline.some(
1736
- (entry) => entry.timestamp === nextEntry.timestamp && entry.text === nextEntry.text && entry.source === nextEntry.source && entry.sessionKey === nextEntry.sessionKey && entry.principal === nextEntry.principal
1746
+ (entry) => entry.timestamp === nextEntry.timestamp && entry.text === nextEntry.text && entry.source === nextEntry.source && entry.sessionKey === nextEntry.sessionKey && entry.principal === nextEntry.principal && entry.origin === nextEntry.origin
1737
1747
  );
1738
1748
  if (alreadyPresent) continue;
1739
1749
  entity.timeline.push(nextEntry);
@@ -2040,26 +2050,44 @@ ${rows.join("\n")}
2040
2050
  const mergedStructuredSectionMap = new Map(
2041
2051
  (mergedEntity.structuredSections ?? []).map((section) => [section.key, {
2042
2052
  ...section,
2043
- facts: [...section.facts]
2053
+ facts: [...section.facts],
2054
+ factOrigins: section.factOrigins ? [...section.factOrigins] : void 0
2044
2055
  }])
2045
2056
  );
2046
2057
  for (const section of parsed.structuredSections ?? []) {
2047
2058
  const existingSection = mergedStructuredSectionMap.get(section.key);
2048
2059
  if (!existingSection) {
2060
+ const facts = [];
2061
+ const factOrigins = [];
2062
+ for (const [index, fact] of section.facts.entries()) {
2063
+ const trimmed = fact.trim();
2064
+ if (!trimmed || facts.includes(trimmed)) continue;
2065
+ facts.push(trimmed);
2066
+ factOrigins.push(section.factOrigins?.[index]);
2067
+ }
2049
2068
  mergedStructuredSectionMap.set(section.key, {
2050
2069
  key: section.key,
2051
2070
  title: section.title,
2052
- facts: [...new Set(section.facts.map((fact) => fact.trim()).filter((fact) => fact.length > 0))]
2071
+ facts,
2072
+ factOrigins: section.factOrigins ? factOrigins : void 0
2053
2073
  });
2054
2074
  continue;
2055
2075
  }
2056
- const mergedFacts = new Set(existingSection.facts.map((fact) => fact.trim()));
2057
- for (const fact of section.facts) {
2076
+ if (section.factOrigins && !existingSection.factOrigins) {
2077
+ existingSection.factOrigins = existingSection.facts.map(() => void 0);
2078
+ }
2079
+ for (const [index, fact] of section.facts.entries()) {
2058
2080
  const trimmed = fact.trim();
2059
2081
  if (!trimmed) continue;
2060
- mergedFacts.add(trimmed);
2082
+ const existingIndex = existingSection.facts.indexOf(trimmed);
2083
+ const origin = section.factOrigins?.[index];
2084
+ if (existingIndex === -1) {
2085
+ existingSection.facts.push(trimmed);
2086
+ existingSection.factOrigins?.push(origin);
2087
+ } else if (existingSection.factOrigins?.[existingIndex] !== origin) {
2088
+ existingSection.factOrigins?.splice(existingIndex, 1, void 0);
2089
+ }
2061
2090
  }
2062
- existingSection.facts = Array.from(mergedFacts);
2063
2091
  if (!existingSection.title.trim() && section.title.trim()) {
2064
2092
  existingSection.title = section.title;
2065
2093
  }
@@ -2076,8 +2104,8 @@ ${rows.join("\n")}
2076
2104
  if (!isErrnoCode(err, "ENOENT")) throw err;
2077
2105
  }
2078
2106
  }
2079
- const timelineKeys = /* @__PURE__ */ new Set();
2080
- mergedEntity.timeline = mergedEntity.timeline.filter((entry) => {
2107
+ const timelineByKey = /* @__PURE__ */ new Map();
2108
+ for (const entry of mergedEntity.timeline) {
2081
2109
  const key = JSON.stringify([
2082
2110
  entry.timestamp,
2083
2111
  entry.source ?? "",
@@ -2085,10 +2113,14 @@ ${rows.join("\n")}
2085
2113
  entry.principal ?? "",
2086
2114
  entry.text
2087
2115
  ]);
2088
- if (timelineKeys.has(key)) return false;
2089
- timelineKeys.add(key);
2090
- return true;
2091
- });
2116
+ const existing = timelineByKey.get(key);
2117
+ if (!existing) {
2118
+ timelineByKey.set(key, entry);
2119
+ } else if (existing.origin !== entry.origin) {
2120
+ existing.origin = void 0;
2121
+ }
2122
+ }
2123
+ mergedEntity.timeline = [...timelineByKey.values()];
2092
2124
  const relKeys = /* @__PURE__ */ new Set();
2093
2125
  mergedEntity.relationships = mergedEntity.relationships.filter((r) => {
2094
2126
  const key = `${r.target}::${r.label}`;
@@ -5237,6 +5269,7 @@ Reason: ${reason}`;
5237
5269
 
5238
5270
  // src/storage/entity-timeline.ts
5239
5271
  import { createHash as createHash5 } from "crypto";
5272
+ var ENTITY_TIMELINE_METADATA_MARKER = "remnic-meta-v1";
5240
5273
  function parseEntityTimelineBullet(bullet, fallbackTimestamp) {
5241
5274
  const trimmed = bullet.trim();
5242
5275
  if (!trimmed) return null;
@@ -5246,9 +5279,10 @@ function parseEntityTimelineBullet(bullet, fallbackTimestamp) {
5246
5279
  text: ""
5247
5280
  };
5248
5281
  const consumedMetadataSegments = [];
5282
+ let metadataMarkerSeen = false;
5249
5283
  let literalSingleSourceSegment;
5250
5284
  if (!trimmed.startsWith("[")) {
5251
- entry.text = trimmed;
5285
+ entry.text = unescapeEntityTimelineText(trimmed);
5252
5286
  return entry.text ? entry : null;
5253
5287
  }
5254
5288
  const firstEnd = trimmed.indexOf("]");
@@ -5267,6 +5301,13 @@ function parseEntityTimelineBullet(bullet, fallbackTimestamp) {
5267
5301
  if (end === -1) break;
5268
5302
  const rawSegment = rest.slice(0, end + 1);
5269
5303
  const token = rest.slice(1, end).trim();
5304
+ const nextRest = rest.slice(end + 1).trimStart();
5305
+ if (token === ENTITY_TIMELINE_METADATA_MARKER) {
5306
+ metadataMarkerSeen = true;
5307
+ consumedMetadataSegments.push(rawSegment);
5308
+ rest = nextRest;
5309
+ continue;
5310
+ }
5270
5311
  const equalsIdx = token.indexOf("=");
5271
5312
  if (equalsIdx === -1) {
5272
5313
  if (rest === trimmed) {
@@ -5278,7 +5319,10 @@ function parseEntityTimelineBullet(bullet, fallbackTimestamp) {
5278
5319
  const key = token.slice(0, equalsIdx).trim().toLowerCase();
5279
5320
  const value = unescapeEntityTimelineMetadataValue(token.slice(equalsIdx + 1).trim());
5280
5321
  if (!value) break;
5281
- const nextRest = rest.slice(end + 1).trimStart();
5322
+ if (key === "remnic-origin" && !metadataMarkerSeen) {
5323
+ entry.text = rest.trim();
5324
+ return entry.text ? entry : null;
5325
+ }
5282
5326
  switch (key) {
5283
5327
  case "source_meta":
5284
5328
  entry.source = value;
@@ -5298,6 +5342,9 @@ function parseEntityTimelineBullet(bullet, fallbackTimestamp) {
5298
5342
  case "principal":
5299
5343
  entry.principal = value;
5300
5344
  break;
5345
+ case "remnic-origin":
5346
+ entry.origin = value;
5347
+ break;
5301
5348
  default:
5302
5349
  entry.text = rest.trim();
5303
5350
  return entry.text ? entry : null;
@@ -5312,7 +5359,7 @@ function parseEntityTimelineBullet(bullet, fallbackTimestamp) {
5312
5359
  text: `${literalSingleSourceSegment} ${rest}`.trim()
5313
5360
  };
5314
5361
  }
5315
- entry.text = rest.trim();
5362
+ entry.text = unescapeEntityTimelineText(rest.trim());
5316
5363
  if (!entry.text) return null;
5317
5364
  return entry;
5318
5365
  }
@@ -5448,6 +5495,12 @@ function unescapeEntityTimelineMetadataValue(value) {
5448
5495
  }
5449
5496
  return result;
5450
5497
  }
5498
+ function escapeEntityTimelineText(value) {
5499
+ return /^\\*\[(?:remnic-origin=|remnic-meta-v1\])/i.test(value) ? `\\${value}` : value;
5500
+ }
5501
+ function unescapeEntityTimelineText(value) {
5502
+ return /^\\+\[(?:remnic-origin=|remnic-meta-v1\])/i.test(value) ? value.slice(1) : value;
5503
+ }
5451
5504
  function serializeEntityTimelineEntry(entry) {
5452
5505
  const tokens = [];
5453
5506
  if (entry.timestamp.trim().length > 0) {
@@ -5463,8 +5516,12 @@ function serializeEntityTimelineEntry(entry) {
5463
5516
  if (entry.principal) {
5464
5517
  tokens.push(`[principal=${escapeEntityTimelineMetadataValue(entry.principal)}]`);
5465
5518
  }
5519
+ if (entry.origin) {
5520
+ tokens.push(`[${ENTITY_TIMELINE_METADATA_MARKER}]`);
5521
+ tokens.push(`[remnic-origin=${escapeEntityTimelineMetadataValue(entry.origin)}]`);
5522
+ }
5466
5523
  const serializedMetadata = tokens.length > 0 ? `${tokens.join(" ")} ` : "";
5467
- return `- ${serializedMetadata}${entry.text}`.trimEnd();
5524
+ return `- ${serializedMetadata}${escapeEntityTimelineText(entry.text)}`.trimEnd();
5468
5525
  }
5469
5526
  function dedupeEntityTimelineFacts(timeline) {
5470
5527
  return [...new Set(timeline.map((entry) => entry.text.trim()).filter((entry) => entry.length > 0))];
@@ -5472,6 +5529,28 @@ function dedupeEntityTimelineFacts(timeline) {
5472
5529
  function normalizeEntitySectionFact(value) {
5473
5530
  return value.replace(/\s+/g, " ").trim();
5474
5531
  }
5532
+ function normalizeStructuredSectionFactsWithOrigins(facts, factOrigins, defaultOrigin) {
5533
+ const normalizedFacts = [];
5534
+ const origins = [];
5535
+ const seen = /* @__PURE__ */ new Map();
5536
+ for (const [index, fact] of facts.entries()) {
5537
+ const normalized = normalizeEntitySectionFact(fact);
5538
+ if (!normalized) continue;
5539
+ const existingIndex = seen.get(normalized) ?? -1;
5540
+ const origin = factOrigins?.[index] ?? defaultOrigin;
5541
+ if (existingIndex >= 0) {
5542
+ if (origins[existingIndex] !== origin) origins[existingIndex] = void 0;
5543
+ continue;
5544
+ }
5545
+ seen.set(normalized, normalizedFacts.length);
5546
+ normalizedFacts.push(normalized);
5547
+ origins.push(origin);
5548
+ }
5549
+ return {
5550
+ facts: normalizedFacts,
5551
+ ...origins.some((origin) => origin !== void 0) ? { factOrigins: origins } : {}
5552
+ };
5553
+ }
5475
5554
  function normalizeStructuredSectionFacts(facts) {
5476
5555
  return [...new Set(facts.map((fact) => normalizeEntitySectionFact(fact)).filter((fact) => fact.length > 0))];
5477
5556
  }
@@ -5503,11 +5582,17 @@ function compileEntityFacts(timeline, structuredSections) {
5503
5582
  }
5504
5583
  function parseEntityStructuredSectionFacts(lines) {
5505
5584
  const facts = [];
5585
+ const factOrigins = [];
5506
5586
  let currentBlock = [];
5587
+ let currentOrigin;
5507
5588
  const flushCurrentBlock = () => {
5508
5589
  const normalized = normalizeEntitySectionFact(currentBlock.join(" "));
5509
- if (normalized.length > 0) facts.push(normalized);
5590
+ if (normalized.length > 0) {
5591
+ facts.push(normalized);
5592
+ factOrigins.push(currentOrigin);
5593
+ }
5510
5594
  currentBlock = [];
5595
+ currentOrigin = void 0;
5511
5596
  };
5512
5597
  for (const rawLine of lines) {
5513
5598
  const line = rawLine.trim();
@@ -5517,13 +5602,22 @@ function parseEntityStructuredSectionFacts(lines) {
5517
5602
  }
5518
5603
  if (line.startsWith("- ")) {
5519
5604
  flushCurrentBlock();
5520
- currentBlock = [line.slice(2).trim()];
5605
+ const bullet = line.slice(2).trim();
5606
+ const metadataPrefix = `[${ENTITY_TIMELINE_METADATA_MARKER}] `;
5607
+ const hasMarker = bullet.startsWith(metadataPrefix);
5608
+ const originStart = metadataPrefix.length;
5609
+ const originPrefix = hasMarker && bullet.startsWith("[remnic-origin=", originStart);
5610
+ const originEndOffset = originPrefix ? findEntityTimelineTokenEnd(bullet.slice(originStart)) : -1;
5611
+ const originEnd = originEndOffset >= 0 ? originEndOffset + originStart : -1;
5612
+ const token = originEnd >= 0 ? bullet.slice(originStart + 15, originEnd) : "";
5613
+ currentBlock = [originEnd >= 0 ? unescapeEntityTimelineText(bullet.slice(originEnd + 1).trimStart()) : unescapeEntityTimelineText(hasMarker ? bullet.slice(metadataPrefix.length) : bullet)];
5614
+ currentOrigin = originEnd >= 0 ? unescapeEntityTimelineMetadataValue(token) : void 0;
5521
5615
  continue;
5522
5616
  }
5523
5617
  currentBlock.push(line);
5524
5618
  }
5525
5619
  flushCurrentBlock();
5526
- return [...new Set(facts)];
5620
+ return normalizeStructuredSectionFactsWithOrigins(facts, factOrigins);
5527
5621
  }
5528
5622
  function looksLikeStructuredSectionFactList(lines) {
5529
5623
  const firstNonBlank = lines.find((line) => line.trim().length > 0)?.trim() ?? "";
@@ -5539,25 +5633,33 @@ function partitionEntityStructuredSections(entityType, extraSections, entitySche
5539
5633
  remainingExtraSections.push(section);
5540
5634
  continue;
5541
5635
  }
5542
- const facts = parseEntityStructuredSectionFacts(section.lines);
5543
- if (!matchedSection && facts.length === 0) {
5636
+ const parsedFacts = parseEntityStructuredSectionFacts(section.lines);
5637
+ if (!matchedSection && parsedFacts.facts.length === 0) {
5544
5638
  remainingExtraSections.push(section);
5545
5639
  continue;
5546
5640
  }
5547
5641
  const normalizedSection = matchedSection ? { key: matchedSection.key, title: matchedSection.title } : normalizeEntityStructuredSection(entityType, { key: section.title, title: section.title }, entitySchemas);
5548
- if (facts.length === 0) {
5642
+ if (parsedFacts.facts.length === 0) {
5549
5643
  remainingExtraSections.push(section);
5550
5644
  continue;
5551
5645
  }
5552
5646
  const existing = structuredSectionIndex.get(normalizedSection.key);
5553
5647
  if (existing) {
5554
- existing.facts = normalizeStructuredSectionFacts([...existing.facts, ...facts]);
5648
+ const existingOrigins = existing.facts.map((_, index) => existing.factOrigins?.[index]);
5649
+ const incomingOrigins = parsedFacts.facts.map((_, index) => parsedFacts.factOrigins?.[index]);
5650
+ const merged = normalizeStructuredSectionFactsWithOrigins(
5651
+ [...existing.facts, ...parsedFacts.facts],
5652
+ [...existingOrigins, ...incomingOrigins]
5653
+ );
5654
+ existing.facts = merged.facts;
5655
+ existing.factOrigins = merged.factOrigins;
5555
5656
  continue;
5556
5657
  }
5557
5658
  const structuredSection = {
5558
5659
  key: normalizedSection.key,
5559
5660
  title: normalizedSection.title,
5560
- facts: normalizeStructuredSectionFacts(facts)
5661
+ facts: parsedFacts.facts,
5662
+ ...parsedFacts.factOrigins ? { factOrigins: parsedFacts.factOrigins } : {}
5561
5663
  };
5562
5664
  structuredSections.push(structuredSection);
5563
5665
  structuredSectionIndex.set(normalizedSection.key, structuredSection);
@@ -6471,10 +6573,12 @@ function serializeEntityFile(entity, entitySchemas) {
6471
6573
  const timeline = entity.timeline;
6472
6574
  const structuredSections = sortStructuredSectionsBySchema(
6473
6575
  entity.type,
6474
- (entity.structuredSections ?? []).map((section) => ({
6475
- ...section,
6476
- facts: normalizeStructuredSectionFacts(section.facts)
6477
- })).filter((section) => section.facts.length > 0),
6576
+ (entity.structuredSections ?? []).map((section) => {
6577
+ const normalized = normalizeStructuredSectionFactsWithOrigins(section.facts, section.factOrigins);
6578
+ const result = { ...section, ...normalized };
6579
+ if (normalized.factOrigins === void 0) delete result.factOrigins;
6580
+ return result;
6581
+ }).filter((section) => section.facts.length > 0),
6478
6582
  entitySchemas
6479
6583
  );
6480
6584
  const sectionFacts = new Set(collectStructuredSectionFacts(structuredSections));
@@ -6533,8 +6637,10 @@ function serializeEntityFile(entity, entitySchemas) {
6533
6637
  }
6534
6638
  for (const section of structuredSections) {
6535
6639
  lines.push(`## ${section.title}`, "");
6536
- for (const fact of section.facts) {
6537
- lines.push(`- ${fact}`);
6640
+ for (const [index, fact] of section.facts.entries()) {
6641
+ const origin = section.factOrigins?.[index];
6642
+ const prefix = origin ? `[${ENTITY_TIMELINE_METADATA_MARKER}] [remnic-origin=${escapeEntityTimelineMetadataValue(origin)}] ` : "";
6643
+ lines.push(`- ${prefix}${escapeEntityTimelineText(fact)}`);
6538
6644
  }
6539
6645
  lines.push("");
6540
6646
  }
@@ -11019,6 +11125,7 @@ export {
11019
11125
  serializeMeetingRecord,
11020
11126
  parseMeetingRecordSummary,
11021
11127
  MeetingRecordStore,
11128
+ normalizeStructuredSectionFactsWithOrigins,
11022
11129
  normalizeStructuredSectionFacts,
11023
11130
  compileEntityFacts,
11024
11131
  compareEntityTimestamps,
@@ -11034,4 +11141,4 @@ export {
11034
11141
  isValidBufferSurpriseEvent,
11035
11142
  StorageManager3 as StorageManager
11036
11143
  };
11037
- //# sourceMappingURL=chunk-2VHCLHZ5.js.map
11144
+ //# sourceMappingURL=chunk-YUIBXMZY.js.map