@remnic/core 9.3.705 → 9.3.707

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 (261) hide show
  1. package/dist/access-boundary.d.ts +5 -5
  2. package/dist/access-boundary.js +10 -10
  3. package/dist/access-cli.js +26 -25
  4. package/dist/access-cli.js.map +1 -1
  5. package/dist/access-http.d.ts +5 -5
  6. package/dist/access-http.js +14 -14
  7. package/dist/access-mcp.d.ts +5 -5
  8. package/dist/access-mcp.js +13 -13
  9. package/dist/access-operations-batch.js +11 -11
  10. package/dist/access-operations.d.ts +5 -5
  11. package/dist/access-operations.js +12 -12
  12. package/dist/{access-service-C8hc8N2i.d.ts → access-service-j1c1gptF.d.ts} +3 -3
  13. package/dist/access-service.d.ts +5 -5
  14. package/dist/access-service.js +9 -9
  15. package/dist/access-surface-catalog.d.ts +5 -5
  16. package/dist/action-confidence.d.ts +1 -1
  17. package/dist/active-memory-bridge.d.ts +1 -1
  18. package/dist/active-recall.d.ts +1 -1
  19. package/dist/behavior-learner.d.ts +1 -1
  20. package/dist/behavior-signals.d.ts +1 -1
  21. package/dist/bootstrap.d.ts +4 -4
  22. package/dist/briefing.d.ts +1 -1
  23. package/dist/briefing.js +5 -5
  24. package/dist/buffer-surprise-report.d.ts +1 -1
  25. package/dist/buffer.d.ts +1 -1
  26. package/dist/calibration.d.ts +1 -1
  27. package/dist/capabilities.d.ts +1 -1
  28. package/dist/{catalog-CAeU0e1C.d.ts → catalog-CKxilpzS.d.ts} +1 -1
  29. package/dist/causal-behavior.d.ts +1 -1
  30. package/dist/causal-consolidation.d.ts +1 -1
  31. package/dist/causal-consolidation.js +6 -6
  32. package/dist/{chunk-JZCKDTAS.js → chunk-24FGNOQS.js} +3 -3
  33. package/dist/{chunk-C2EHWNP2.js → chunk-2VQYHHWB.js} +9 -3
  34. package/dist/chunk-2VQYHHWB.js.map +1 -0
  35. package/dist/{chunk-47LPHBIP.js → chunk-3PTOZJOI.js} +2 -2
  36. package/dist/{chunk-2SYPOX45.js → chunk-4DZATVK5.js} +3 -3
  37. package/dist/{chunk-S5APSA3U.js → chunk-4E2QCH46.js} +2 -2
  38. package/dist/{chunk-KKK7YTYN.js → chunk-5GSUBCZM.js} +6 -2
  39. package/dist/chunk-5GSUBCZM.js.map +1 -0
  40. package/dist/{chunk-5DTWZ66X.js → chunk-66TSLESZ.js} +2 -2
  41. package/dist/{chunk-IREVVFTM.js → chunk-6CIAGZ6X.js} +9 -1
  42. package/dist/chunk-6CIAGZ6X.js.map +1 -0
  43. package/dist/{chunk-Y4PMATX2.js → chunk-6HPJMR5I.js} +2 -2
  44. package/dist/{chunk-M5MWSG4S.js → chunk-BGAHTI4C.js} +5 -5
  45. package/dist/{chunk-OM6ETLLH.js → chunk-C63MK3WL.js} +2 -2
  46. package/dist/{chunk-GT4VBKM4.js → chunk-EJDAXR7O.js} +5 -5
  47. package/dist/{chunk-ULVM34NP.js → chunk-ESMY4RJ4.js} +2 -2
  48. package/dist/{chunk-MNH2OODZ.js → chunk-GKI6LX5L.js} +2 -2
  49. package/dist/{chunk-KZMMAVR2.js → chunk-HIV5E57C.js} +2 -2
  50. package/dist/{chunk-SFOAQQDJ.js → chunk-IONFO7UK.js} +3 -3
  51. package/dist/{chunk-BMKGG7GC.js → chunk-IVCQW4C4.js} +2 -2
  52. package/dist/chunk-M7R5R6OJ.js +355 -0
  53. package/dist/chunk-M7R5R6OJ.js.map +1 -0
  54. package/dist/{chunk-IX3UQT4H.js → chunk-MLLTU5FX.js} +1 -1
  55. package/dist/chunk-MLLTU5FX.js.map +1 -0
  56. package/dist/{chunk-NFGJBEPT.js → chunk-MRX6ZXHZ.js} +2 -2
  57. package/dist/{chunk-GI3MTYDU.js → chunk-N75N5SNX.js} +3 -3
  58. package/dist/{chunk-BKBSE3BU.js → chunk-NM6TSEGQ.js} +2 -2
  59. package/dist/{chunk-S3WYRPSA.js → chunk-PDJQVAGM.js} +68 -31
  60. package/dist/chunk-PDJQVAGM.js.map +1 -0
  61. package/dist/{chunk-SY6WG6DB.js → chunk-RH2OSRQY.js} +2 -2
  62. package/dist/{chunk-YTMDF6S7.js → chunk-SPETAWFE.js} +2 -2
  63. package/dist/{chunk-JHAYR2JY.js → chunk-STYMKPFT.js} +7 -7
  64. package/dist/{chunk-OMNTQPZO.js → chunk-TKZ3AL5V.js} +2 -2
  65. package/dist/{chunk-IFR23TC5.js → chunk-VYZNWH4J.js} +37 -6
  66. package/dist/chunk-VYZNWH4J.js.map +1 -0
  67. package/dist/{chunk-KFU2SKDD.js → chunk-W2S3Z5MT.js} +2 -2
  68. package/dist/{chunk-6GJ2WQRK.js → chunk-W2WQ4LE7.js} +2 -2
  69. package/dist/{chunk-7ARKLLCV.js → chunk-WDH3KUZU.js} +2 -2
  70. package/dist/{chunk-7L54YZUI.js → chunk-WQADZ3ZY.js} +17 -17
  71. package/dist/{chunk-HEHPVBWA.js → chunk-WSWYIKXX.js} +4 -4
  72. package/dist/{chunk-WN4GHSDH.js → chunk-XKMDDM7P.js} +2 -2
  73. package/dist/{chunk-LY4FJLPT.js → chunk-Y6YHAGQP.js} +2 -2
  74. package/dist/{cli-ChE0XlJY.d.ts → cli-CbT-pyM4.d.ts} +3 -3
  75. package/dist/cli.d.ts +6 -6
  76. package/dist/cli.js +26 -26
  77. package/dist/compounding/engine.d.ts +1 -1
  78. package/dist/compounding/engine.js +5 -5
  79. package/dist/compounding/preference-consolidator.d.ts +1 -1
  80. package/dist/compression-optimizer.d.ts +1 -1
  81. package/dist/config.d.ts +1 -1
  82. package/dist/connectors/codex-materialize-runner.d.ts +1 -1
  83. package/dist/connectors/codex-materialize-runner.js +5 -5
  84. package/dist/connectors/codex-materialize.d.ts +1 -1
  85. package/dist/connectors/index.d.ts +1 -1
  86. package/dist/connectors/index.js +5 -5
  87. package/dist/consolidation-provenance-check.d.ts +1 -1
  88. package/dist/consolidation-undo.d.ts +1 -1
  89. package/dist/contradiction/index.d.ts +1 -1
  90. package/dist/conversation-index/backend.d.ts +1 -1
  91. package/dist/conversation-index/chunker.d.ts +1 -1
  92. package/dist/conversation-index/faiss-adapter.d.ts +1 -1
  93. package/dist/conversation-index/indexer.d.ts +1 -1
  94. package/dist/conversation-index/search.d.ts +1 -1
  95. package/dist/day-summary.d.ts +1 -1
  96. package/dist/delinearize.d.ts +1 -1
  97. package/dist/direct-answer-wiring.d.ts +1 -1
  98. package/dist/direct-answer.d.ts +1 -1
  99. package/dist/embedding-fallback.d.ts +1 -1
  100. package/dist/enrichment/index.d.ts +1 -1
  101. package/dist/entity-retrieval.d.ts +1 -1
  102. package/dist/entity-retrieval.js +5 -5
  103. package/dist/entity-schema.d.ts +1 -1
  104. package/dist/event-time.d.ts +35 -1
  105. package/dist/event-time.js +6 -320
  106. package/dist/event-time.js.map +1 -1
  107. package/dist/explicit-capture.d.ts +4 -4
  108. package/dist/extraction-faithfulness.d.ts +1 -1
  109. package/dist/extraction-judge-telemetry.d.ts +1 -1
  110. package/dist/extraction-judge-training.d.ts +1 -1
  111. package/dist/extraction-judge.d.ts +1 -1
  112. package/dist/extraction.d.ts +10 -1
  113. package/dist/extraction.js +2 -2
  114. package/dist/fallback-llm.d.ts +1 -1
  115. package/dist/{forget-6SOIPUMQ.js → forget-U66KPDPY.js} +3 -3
  116. package/dist/identity-continuity.d.ts +1 -1
  117. package/dist/importance.d.ts +1 -1
  118. package/dist/index.d.ts +9 -9
  119. package/dist/index.js +35 -34
  120. package/dist/index.js.map +1 -1
  121. package/dist/intent.d.ts +1 -1
  122. package/dist/lcm/engine.d.ts +1 -1
  123. package/dist/lcm/index.d.ts +1 -1
  124. package/dist/lcm/tools.d.ts +1 -1
  125. package/dist/lifecycle.d.ts +1 -1
  126. package/dist/live-connectors-runner.d.ts +1 -1
  127. package/dist/local-llm.d.ts +1 -1
  128. package/dist/maintenance/memory-governance.d.ts +1 -1
  129. package/dist/maintenance/memory-governance.js +5 -5
  130. package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +5 -5
  131. package/dist/maintenance/rebuild-memory-projection.js +6 -6
  132. package/dist/mcp-memory-inspector-app.d.ts +5 -5
  133. package/dist/memory-action-policy.d.ts +1 -1
  134. package/dist/memory-cache.d.ts +1 -1
  135. package/dist/memory-lifecycle-ledger-utils.d.ts +1 -1
  136. package/dist/memory-projection-store.d.ts +1 -1
  137. package/dist/memory-provenance.d.ts +1 -1
  138. package/dist/memory-worth-outcomes.d.ts +1 -1
  139. package/dist/models-json.d.ts +1 -1
  140. package/dist/namespaces/migrate.d.ts +2 -2
  141. package/dist/namespaces/migrate.js +6 -6
  142. package/dist/namespaces/principal.d.ts +1 -1
  143. package/dist/namespaces/search.d.ts +1 -1
  144. package/dist/namespaces/storage.d.ts +2 -2
  145. package/dist/namespaces/storage.js +5 -5
  146. package/dist/native-knowledge.d.ts +1 -1
  147. package/dist/operator-toolkit.d.ts +1 -1
  148. package/dist/operator-toolkit.js +10 -10
  149. package/dist/orchestration/maintenance.d.ts +2 -2
  150. package/dist/orchestration/maintenance.js +7 -7
  151. package/dist/{orchestrator-m_PnhyHj.d.ts → orchestrator-D4ovYV3x.d.ts} +3 -3
  152. package/dist/orchestrator.d.ts +4 -4
  153. package/dist/orchestrator.js +20 -19
  154. package/dist/patterns-cli.d.ts +1 -1
  155. package/dist/policy-runtime.d.ts +1 -1
  156. package/dist/provenance.d.ts +1 -1
  157. package/dist/qmd-recall-cache.d.ts +1 -1
  158. package/dist/qmd.d.ts +1 -1
  159. package/dist/recall-disclosure-escalation.d.ts +1 -1
  160. package/dist/recall-explain-renderer.d.ts +1 -1
  161. package/dist/recall-explain-renderer.js +3 -3
  162. package/dist/recall-planner-llm.d.ts +1 -1
  163. package/dist/recall-state.d.ts +1 -1
  164. package/dist/recall-tag-filter.d.ts +1 -1
  165. package/dist/recall-xray-cli.d.ts +1 -1
  166. package/dist/recall-xray-cli.js +4 -4
  167. package/dist/recall-xray-renderer.d.ts +1 -1
  168. package/dist/recall-xray-renderer.js +3 -3
  169. package/dist/recall-xray.d.ts +1 -1
  170. package/dist/recall-xray.js +2 -2
  171. package/dist/resolve-auth-token.d.ts +1 -1
  172. package/dist/retrieval-agents.d.ts +1 -1
  173. package/dist/retrieval-tiers.d.ts +1 -1
  174. package/dist/routing/engine.d.ts +1 -1
  175. package/dist/routing/store.d.ts +1 -1
  176. package/dist/schemas.d.ts +60 -22
  177. package/dist/schemas.js +1 -1
  178. package/dist/search/embed-helper.d.ts +1 -1
  179. package/dist/search/factory.d.ts +1 -1
  180. package/dist/search/index.d.ts +1 -1
  181. package/dist/search/lancedb-backend.d.ts +1 -1
  182. package/dist/search/meilisearch-backend.d.ts +1 -1
  183. package/dist/search/noop-backend.d.ts +1 -1
  184. package/dist/search/orama-backend.d.ts +1 -1
  185. package/dist/search/port.d.ts +1 -1
  186. package/dist/search/remote-backend.d.ts +1 -1
  187. package/dist/{semantic-consolidation-DVBbq6Wr.d.ts → semantic-consolidation-DyMUCsfN.d.ts} +1 -1
  188. package/dist/semantic-consolidation.d.ts +2 -2
  189. package/dist/semantic-consolidation.js +6 -6
  190. package/dist/semantic-rule-promotion.js +5 -5
  191. package/dist/semantic-rule-verifier.d.ts +1 -1
  192. package/dist/semantic-rule-verifier.js +5 -5
  193. package/dist/session-observer-bands.d.ts +1 -1
  194. package/dist/session-observer-state.d.ts +1 -1
  195. package/dist/shared-context/manager.d.ts +1 -1
  196. package/dist/signal.d.ts +1 -1
  197. package/dist/storage.d.ts +5 -1
  198. package/dist/storage.js +4 -4
  199. package/dist/summarizer.d.ts +1 -1
  200. package/dist/summary-snapshot.d.ts +1 -1
  201. package/dist/temporal-supersession.d.ts +1 -1
  202. package/dist/temporal-supersession.js +2 -2
  203. package/dist/temporal-validity.d.ts +2 -2
  204. package/dist/temporal-validity.js +1 -1
  205. package/dist/threading.d.ts +1 -1
  206. package/dist/tier-migration.d.ts +1 -1
  207. package/dist/tier-routing.d.ts +1 -1
  208. package/dist/topics.d.ts +1 -1
  209. package/dist/transcript.d.ts +1 -1
  210. package/dist/transfer/types.d.ts +12 -12
  211. package/dist/{types-CJrvHJjx.d.ts → types-Couvz-L3.d.ts} +12 -2
  212. package/dist/types.d.ts +1 -1
  213. package/dist/types.js +1 -1
  214. package/dist/utility-runtime.d.ts +1 -1
  215. package/dist/verified-recall.js +5 -5
  216. package/package.json +2 -2
  217. package/src/event-time.ts +73 -0
  218. package/src/extraction-eventtime-wiring.test.ts +269 -0
  219. package/src/extraction.ts +50 -3
  220. package/src/issue-1492-coding-mode-consistency.test.ts +315 -0
  221. package/src/orchestrator.ts +71 -17
  222. package/src/schemas.ts +12 -0
  223. package/src/storage.ts +13 -2
  224. package/src/temporal-validity.test.ts +33 -0
  225. package/src/temporal-validity.ts +24 -1
  226. package/src/types.ts +12 -2
  227. package/dist/chunk-C2EHWNP2.js.map +0 -1
  228. package/dist/chunk-IFR23TC5.js.map +0 -1
  229. package/dist/chunk-IREVVFTM.js.map +0 -1
  230. package/dist/chunk-IX3UQT4H.js.map +0 -1
  231. package/dist/chunk-KKK7YTYN.js.map +0 -1
  232. package/dist/chunk-S3WYRPSA.js.map +0 -1
  233. /package/dist/{chunk-JZCKDTAS.js.map → chunk-24FGNOQS.js.map} +0 -0
  234. /package/dist/{chunk-47LPHBIP.js.map → chunk-3PTOZJOI.js.map} +0 -0
  235. /package/dist/{chunk-2SYPOX45.js.map → chunk-4DZATVK5.js.map} +0 -0
  236. /package/dist/{chunk-S5APSA3U.js.map → chunk-4E2QCH46.js.map} +0 -0
  237. /package/dist/{chunk-5DTWZ66X.js.map → chunk-66TSLESZ.js.map} +0 -0
  238. /package/dist/{chunk-Y4PMATX2.js.map → chunk-6HPJMR5I.js.map} +0 -0
  239. /package/dist/{chunk-M5MWSG4S.js.map → chunk-BGAHTI4C.js.map} +0 -0
  240. /package/dist/{chunk-OM6ETLLH.js.map → chunk-C63MK3WL.js.map} +0 -0
  241. /package/dist/{chunk-GT4VBKM4.js.map → chunk-EJDAXR7O.js.map} +0 -0
  242. /package/dist/{chunk-ULVM34NP.js.map → chunk-ESMY4RJ4.js.map} +0 -0
  243. /package/dist/{chunk-MNH2OODZ.js.map → chunk-GKI6LX5L.js.map} +0 -0
  244. /package/dist/{chunk-KZMMAVR2.js.map → chunk-HIV5E57C.js.map} +0 -0
  245. /package/dist/{chunk-SFOAQQDJ.js.map → chunk-IONFO7UK.js.map} +0 -0
  246. /package/dist/{chunk-BMKGG7GC.js.map → chunk-IVCQW4C4.js.map} +0 -0
  247. /package/dist/{chunk-NFGJBEPT.js.map → chunk-MRX6ZXHZ.js.map} +0 -0
  248. /package/dist/{chunk-GI3MTYDU.js.map → chunk-N75N5SNX.js.map} +0 -0
  249. /package/dist/{chunk-BKBSE3BU.js.map → chunk-NM6TSEGQ.js.map} +0 -0
  250. /package/dist/{chunk-SY6WG6DB.js.map → chunk-RH2OSRQY.js.map} +0 -0
  251. /package/dist/{chunk-YTMDF6S7.js.map → chunk-SPETAWFE.js.map} +0 -0
  252. /package/dist/{chunk-JHAYR2JY.js.map → chunk-STYMKPFT.js.map} +0 -0
  253. /package/dist/{chunk-OMNTQPZO.js.map → chunk-TKZ3AL5V.js.map} +0 -0
  254. /package/dist/{chunk-KFU2SKDD.js.map → chunk-W2S3Z5MT.js.map} +0 -0
  255. /package/dist/{chunk-6GJ2WQRK.js.map → chunk-W2WQ4LE7.js.map} +0 -0
  256. /package/dist/{chunk-7ARKLLCV.js.map → chunk-WDH3KUZU.js.map} +0 -0
  257. /package/dist/{chunk-7L54YZUI.js.map → chunk-WQADZ3ZY.js.map} +0 -0
  258. /package/dist/{chunk-HEHPVBWA.js.map → chunk-WSWYIKXX.js.map} +0 -0
  259. /package/dist/{chunk-WN4GHSDH.js.map → chunk-XKMDDM7P.js.map} +0 -0
  260. /package/dist/{chunk-LY4FJLPT.js.map → chunk-Y6YHAGQP.js.map} +0 -0
  261. /package/dist/{forget-6SOIPUMQ.js.map → forget-U66KPDPY.js.map} +0 -0
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  StorageManager
3
- } from "./chunk-C2EHWNP2.js";
3
+ } from "./chunk-2VQYHHWB.js";
4
4
 
5
5
  // src/semantic-rule-promotion.ts
6
6
  import { createHash, randomUUID } from "crypto";
@@ -529,4 +529,4 @@ export {
529
529
  setSemanticRulePromotionTestHooks,
530
530
  promoteSemanticRuleFromMemory
531
531
  };
532
- //# sourceMappingURL=chunk-SY6WG6DB.js.map
532
+ //# sourceMappingURL=chunk-RH2OSRQY.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  isRecallDisclosure
3
- } from "./chunk-IX3UQT4H.js";
3
+ } from "./chunk-MLLTU5FX.js";
4
4
  import {
5
5
  normalizeRetrievedMemoryProvenance
6
6
  } from "./chunk-I4WBNM3M.js";
@@ -269,4 +269,4 @@ export {
269
269
  RecallXrayBuilder,
270
270
  summarizeDisclosureTokens
271
271
  };
272
- //# sourceMappingURL=chunk-YTMDF6S7.js.map
272
+ //# sourceMappingURL=chunk-SPETAWFE.js.map
@@ -22,7 +22,7 @@ import {
22
22
  } from "./chunk-H7XKCNR6.js";
23
23
  import {
24
24
  toRecallExplainJson
25
- } from "./chunk-WN4GHSDH.js";
25
+ } from "./chunk-XKMDDM7P.js";
26
26
  import {
27
27
  buildProposedActions,
28
28
  buildQualityScore,
@@ -30,7 +30,7 @@ import {
30
30
  listMemoryGovernanceRuns,
31
31
  readMemoryGovernanceRunArtifact,
32
32
  runMemoryGovernance
33
- } from "./chunk-ULVM34NP.js";
33
+ } from "./chunk-ESMY4RJ4.js";
34
34
  import {
35
35
  clusterByKey,
36
36
  combineNamespaces,
@@ -58,7 +58,7 @@ import {
58
58
  } from "./chunk-FF4KLI5W.js";
59
59
  import {
60
60
  estimateRecallTokens
61
- } from "./chunk-YTMDF6S7.js";
61
+ } from "./chunk-SPETAWFE.js";
62
62
  import {
63
63
  namespaceCollectionName
64
64
  } from "./chunk-K22IJO4R.js";
@@ -107,17 +107,17 @@ import {
107
107
  buildBriefing,
108
108
  parseBriefingFocus,
109
109
  parseBriefingWindow
110
- } from "./chunk-6GJ2WQRK.js";
110
+ } from "./chunk-W2WQ4LE7.js";
111
111
  import {
112
112
  parseEntityFile
113
- } from "./chunk-C2EHWNP2.js";
113
+ } from "./chunk-2VQYHHWB.js";
114
114
  import {
115
115
  stripAttributesSuffix
116
116
  } from "./chunk-SVOZFLIQ.js";
117
117
  import {
118
118
  DEFAULT_RECALL_DISCLOSURE,
119
119
  isRecallDisclosure
120
- } from "./chunk-IX3UQT4H.js";
120
+ } from "./chunk-MLLTU5FX.js";
121
121
  import {
122
122
  inferMemoryStatus,
123
123
  toMemoryPathRel
@@ -8263,4 +8263,4 @@ export {
8263
8263
  shapeMemorySummary,
8264
8264
  EngramAccessService
8265
8265
  };
8266
- //# sourceMappingURL=chunk-JHAYR2JY.js.map
8266
+ //# sourceMappingURL=chunk-STYMKPFT.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  effectiveValidAt
3
- } from "./chunk-IREVVFTM.js";
3
+ } from "./chunk-6CIAGZ6X.js";
4
4
  import {
5
5
  log
6
6
  } from "./chunk-NU3CSQ4H.js";
@@ -257,4 +257,4 @@ export {
257
257
  applyTemporalSupersession,
258
258
  shouldFilterSupersededFromRecall
259
259
  };
260
- //# sourceMappingURL=chunk-OMNTQPZO.js.map
260
+ //# sourceMappingURL=chunk-TKZ3AL5V.js.map
@@ -9,7 +9,7 @@ import {
9
9
  ProactiveExtractionResultSchema,
10
10
  ProactiveQuestionsResultSchema,
11
11
  buildProfileConsolidationResultSchema
12
- } from "./chunk-KKK7YTYN.js";
12
+ } from "./chunk-5GSUBCZM.js";
13
13
  import {
14
14
  normalizeReasoningTrace
15
15
  } from "./chunk-54V4BZWP.js";
@@ -215,7 +215,8 @@ var ExtractionEngine = class {
215
215
  // API emits null for absent optional fields). The post-parse
216
216
  // validator (buildFactProvenance) locates this quote in the
217
217
  // buffered turns and builds verified ProvenanceSource[] entries.
218
- quote: typeof f?.quote === "string" && f.quote.trim().length > 0 ? f.quote : void 0
218
+ quote: typeof f?.quote === "string" && f.quote.trim().length > 0 ? f.quote : void 0,
219
+ eventTime: typeof f?.eventTime === "string" && f.eventTime.trim().length > 0 ? f.eventTime.trim() : typeof f?.event_time === "string" && f.event_time.trim().length > 0 ? f.event_time.trim() : void 0
219
220
  })).filter((f) => f.content.length > 0) : [];
220
221
  const questions = Array.isArray(parsed?.questions) ? parsed.questions.map((q) => {
221
222
  if (typeof q === "string") return { question: q, context: "", priority: 0.5 };
@@ -491,6 +492,11 @@ var ExtractionEngine = class {
491
492
  "Return only valid JSON with this shape:",
492
493
  '{"facts":[{"category":"fact","content":"...","confidence":0.0,"tags":["..."],"entityRef":"optional","promptedByQuestion":"optional","quote":"optional verbatim span from a single turn"}],"profileUpdates":["..."],"entities":[{"name":"...","type":"person","facts":["..."],"structuredSections":[{"key":"beliefs","title":"Beliefs","facts":["..."]}],"promptedByQuestion":"optional"}],"relationships":[{"source":"...","target":"...","label":"...","promptedByQuestion":"optional"}]}',
493
494
  this.config.provenance?.enabled ? '- Source quotes: For each fact, include a "quote" field with the EXACT verbatim words from the conversation that support the fact (a contiguous span from a single turn, not a paraphrase). Cap at ~300 chars.' : "",
495
+ // #1578: emit the same event-time guidance as the primary extraction
496
+ // paths so proactive-recovered facts also carry an optional eventTime
497
+ // (chatgpt-codex thread on extraction.ts:1607). Returns "" when the
498
+ // bi-temporal gate is off, keeping the prompt unchanged by default.
499
+ this.eventTimePromptInstruction(),
494
500
  "",
495
501
  "Base extracted facts (do not repeat):",
496
502
  factsPreview || "(none)",
@@ -926,10 +932,13 @@ var ExtractionEngine = class {
926
932
  `extracted ${result.facts.length} facts, ${result.entities.length} entities, ${(result.questions ?? []).length} questions via fallback (${detailed.modelUsed})`
927
933
  );
928
934
  const normalizedFacts = result.facts.map((f) => {
929
- if (!f?.reasoningTrace) return f;
935
+ if (!f) return f;
936
+ const eventTime = typeof f.eventTime === "string" && f.eventTime.trim().length > 0 ? f.eventTime.trim() : typeof f.event_time === "string" && f.event_time.trim().length > 0 ? f.event_time.trim() : void 0;
937
+ if (!f.reasoningTrace && eventTime === void 0) return f;
930
938
  return {
931
939
  ...f,
932
- reasoningTrace: normalizeReasoningTrace(f.reasoningTrace) ?? void 0
940
+ ...f.reasoningTrace ? { reasoningTrace: normalizeReasoningTrace(f.reasoningTrace) ?? void 0 } : {},
941
+ ...eventTime !== void 0 ? { eventTime } : {}
933
942
  };
934
943
  });
935
944
  const sanitized = this.sanitizeExtractionResult({
@@ -1071,7 +1080,7 @@ Examples of when to add structuredAttributes:
1071
1080
  - Decisions: {"chosen": "PostgreSQL", "rejected": "MongoDB", "reason": "ACID compliance"}
1072
1081
  - Quantities/measurements: {"budget": "50000", "team_size": "5", "deadline": "2024-06-01"}
1073
1082
  Only add structuredAttributes when there are concrete values. Skip for abstract or narrative facts.
1074
-
1083
+ ${this.eventTimePromptInstruction()}
1075
1084
  Also generate:
1076
1085
  1. 1-3 genuine questions you're curious about from this conversation
1077
1086
  2. Profile updates about user patterns/behaviors (if any)
@@ -1240,6 +1249,27 @@ Respond with valid JSON matching this schema:
1240
1249
  }
1241
1250
  return { facts, entities, profileUpdates: [], questions: [] };
1242
1251
  }
1252
+ /**
1253
+ * Bi-temporal event-time extraction instruction (#1578 PR2). Emitted on
1254
+ * every extraction entry path when `temporal.biTemporal` is on so the LLM
1255
+ * emits an optional per-fact `eventTime` expression. The expression is
1256
+ * resolved against the source turn timestamp at write time — never
1257
+ * wall-clock — so replay/import of old transcripts anchors correctly.
1258
+ * Returns an empty string when the gate is off (byte-identical prompt).
1259
+ */
1260
+ eventTimePromptInstruction() {
1261
+ if (!this.config.temporalBiTemporal) return "";
1262
+ return `
1263
+ === Event Time (bi-temporal) ===
1264
+ When a fact has an explicit temporal anchor \u2014 a date, month, season, or relative time expression stating WHEN the fact became (or stopped being) true \u2014 capture it verbatim in an "eventTime" field on that fact. Examples:
1265
+ - "We moved offices in March" \u2192 "eventTime": "last March"
1266
+ - "The API has been rate-limited since 2024" \u2192 "eventTime": "since 2024"
1267
+ - "I switched to PostgreSQL on 2025-01-15" \u2192 "eventTime": "2025-01-15"
1268
+ - "We used MongoDB until June 2025" \u2192 "eventTime": "until 2025-06"
1269
+ Accepted forms: ISO dates ("2025-03-01"), year-month ("2025-03"), month/season + year ("March 2025", "summer 2024"), relative ("yesterday", "last week", "this month", "next year", "last December"), and open-ended ("since 2024", "until 2025-06").
1270
+ Omit "eventTime" when the fact has no explicit temporal anchor \u2014 do NOT guess or infer dates. The system resolves the expression against the conversation's own timestamp, not today's date.
1271
+ `;
1272
+ }
1243
1273
  /**
1244
1274
  * Build extraction instructions shared between local and cloud LLM.
1245
1275
  */
@@ -1308,6 +1338,7 @@ ${existingEntities.join(", ")}
1308
1338
 
1309
1339
  When you see something that matches a known entity, use THAT name exactly. Only create a NEW entity if nothing in this list represents it.
1310
1340
  ` : ""}
1341
+ ${this.eventTimePromptInstruction()}
1311
1342
  Also extract relationships between entities mentioned in the conversation.
1312
1343
  - Format: {source: "entity-name", target: "entity-name", label: "relationship description"}
1313
1344
  - Max 5 relationships per extraction
@@ -2391,4 +2422,4 @@ ${memoryList}` }
2391
2422
  export {
2392
2423
  ExtractionEngine
2393
2424
  };
2394
- //# sourceMappingURL=chunk-IFR23TC5.js.map
2425
+ //# sourceMappingURL=chunk-VYZNWH4J.js.map