@remnic/core 9.6.0 → 9.6.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 (333) hide show
  1. package/dist/access-admin-ops-surface.d.ts +7 -8
  2. package/dist/access-admin-ops-surface.js +8 -8
  3. package/dist/access-boundary.d.ts +9 -8
  4. package/dist/access-boundary.js +9 -9
  5. package/dist/access-cli.js +40 -40
  6. package/dist/access-http.d.ts +47 -16
  7. package/dist/access-http.js +13 -13
  8. package/dist/access-identity-continuity-surface.d.ts +6 -7
  9. package/dist/access-identity-continuity-surface.js +8 -8
  10. package/dist/access-lcm-surface.d.ts +7 -8
  11. package/dist/access-lcm-surface.js +8 -8
  12. package/dist/access-mcp.d.ts +13 -8
  13. package/dist/access-mcp.js +12 -12
  14. package/dist/access-observe-write-surface.d.ts +7 -8
  15. package/dist/access-observe-write-surface.js +8 -8
  16. package/dist/access-operations-batch.js +10 -10
  17. package/dist/access-operations.d.ts +8 -9
  18. package/dist/access-operations.js +11 -11
  19. package/dist/access-recall-surface.d.ts +7 -8
  20. package/dist/access-recall-surface.js +8 -8
  21. package/dist/access-schema.d.ts +6 -6
  22. package/dist/{access-service-CXJaql3A.d.ts → access-service-B_sc1w_k.d.ts} +9 -9
  23. package/dist/access-service.d.ts +7 -8
  24. package/dist/access-service.js +8 -8
  25. package/dist/access-surface-catalog.d.ts +7 -8
  26. package/dist/action-confidence.d.ts +1 -2
  27. package/dist/active-memory-bridge.d.ts +1 -2
  28. package/dist/active-recall.d.ts +1 -2
  29. package/dist/behavior-learner.d.ts +1 -2
  30. package/dist/behavior-signals.d.ts +1 -2
  31. package/dist/bootstrap.d.ts +6 -7
  32. package/dist/briefing.d.ts +2 -3
  33. package/dist/briefing.js +3 -3
  34. package/dist/buffer-surprise-report.d.ts +1 -2
  35. package/dist/buffer.d.ts +2 -3
  36. package/dist/buffer.js +1 -1
  37. package/dist/bulk-import/index.d.ts +3 -3
  38. package/dist/bulk-import/index.js +2 -2
  39. package/dist/calibration.d.ts +1 -2
  40. package/dist/capabilities.d.ts +1 -2
  41. package/dist/{catalog-C9cu67Ig.d.ts → catalog-9WanSGtt.d.ts} +1 -1
  42. package/dist/causal-behavior.d.ts +1 -2
  43. package/dist/causal-consolidation.d.ts +1 -2
  44. package/dist/causal-consolidation.js +4 -4
  45. package/dist/causal-trajectory-graph.d.ts +1 -2
  46. package/dist/{chunk-PNLFN2PZ.js → chunk-23G3T2Q5.js} +2 -2
  47. package/dist/{chunk-SIRPLF54.js → chunk-2K3OSLHE.js} +2 -2
  48. package/dist/{chunk-JS2HKKOK.js → chunk-3AC5UYKI.js} +1 -1
  49. package/dist/{chunk-JS2HKKOK.js.map → chunk-3AC5UYKI.js.map} +1 -1
  50. package/dist/{chunk-FKCRGLRD.js → chunk-4WRKKRTD.js} +266 -160
  51. package/dist/chunk-4WRKKRTD.js.map +1 -0
  52. package/dist/{chunk-LQHDIS7L.js → chunk-54BGIBCR.js} +2 -2
  53. package/dist/{chunk-PVUJ6WVV.js → chunk-5MH5NF3U.js} +5 -5
  54. package/dist/{chunk-PCLIWBGD.js → chunk-7ARV32PI.js} +8 -6
  55. package/dist/chunk-7ARV32PI.js.map +1 -0
  56. package/dist/{chunk-Y7UNNAZD.js → chunk-7ZYBDQ7V.js} +2 -2
  57. package/dist/{chunk-2PRQG7PV.js → chunk-AJVLDJU6.js} +1 -1
  58. package/dist/chunk-AJVLDJU6.js.map +1 -0
  59. package/dist/{chunk-LR5DZ56F.js → chunk-AXALUFAH.js} +2 -2
  60. package/dist/{chunk-AYZJID4S.js → chunk-B5GBWBCZ.js} +2 -2
  61. package/dist/{chunk-TLUDFPZL.js → chunk-CAZ3Z5M6.js} +2 -2
  62. package/dist/{chunk-RGK27ELN.js → chunk-DEKIXXIG.js} +2 -2
  63. package/dist/{chunk-2KK5WNQB.js → chunk-DQ42IQSK.js} +2 -2
  64. package/dist/{chunk-UFUKHGZD.js → chunk-F4I5NYBI.js} +89 -33
  65. package/dist/chunk-F4I5NYBI.js.map +1 -0
  66. package/dist/{chunk-HOJZMQ4J.js → chunk-FGDKJJZS.js} +2 -2
  67. package/dist/{chunk-ABP6QMVM.js → chunk-FQ7HAWWC.js} +2 -2
  68. package/dist/{chunk-CYWA2CXR.js → chunk-FVTLSFWU.js} +2 -2
  69. package/dist/{chunk-JJEJJ7RK.js → chunk-FXZTL7F7.js} +2 -2
  70. package/dist/{chunk-LADFWYHY.js → chunk-GOEV7CYF.js} +6 -6
  71. package/dist/chunk-GOEV7CYF.js.map +1 -0
  72. package/dist/{chunk-DANV2HTH.js → chunk-GQGDRLDM.js} +3 -3
  73. package/dist/{chunk-7F7Z6MOS.js → chunk-H4CKS5B2.js} +2 -2
  74. package/dist/{chunk-SVOHGUMI.js → chunk-H4FHR4UM.js} +174 -197
  75. package/dist/chunk-H4FHR4UM.js.map +1 -0
  76. package/dist/{chunk-CKITWVWJ.js → chunk-HSSERO3E.js} +2 -2
  77. package/dist/{chunk-23JFRB73.js → chunk-JODHPNLN.js} +2 -2
  78. package/dist/{chunk-DS7MM2ES.js → chunk-JZKR6ZAV.js} +2 -2
  79. package/dist/{chunk-BEM4D2QG.js → chunk-KJIJNLXT.js} +3 -3
  80. package/dist/{chunk-JSNVWNGX.js → chunk-KVSVVKHA.js} +2 -2
  81. package/dist/{chunk-4GNEDXDI.js → chunk-M67TLMP6.js} +2 -2
  82. package/dist/chunk-M67TLMP6.js.map +1 -0
  83. package/dist/{chunk-MC4FJXPA.js → chunk-MMACM5G2.js} +2 -2
  84. package/dist/{chunk-OUELRE5E.js → chunk-NOUJNHWG.js} +1 -1
  85. package/dist/chunk-NOUJNHWG.js.map +1 -0
  86. package/dist/{chunk-3XIY7MDQ.js → chunk-O6YI4CVI.js} +2 -2
  87. package/dist/{chunk-F53UF7CI.js → chunk-QLVLW7UD.js} +6 -2
  88. package/dist/{chunk-F53UF7CI.js.map → chunk-QLVLW7UD.js.map} +1 -1
  89. package/dist/{chunk-XCL57M6Q.js → chunk-RRKPLLCC.js} +21 -20
  90. package/dist/chunk-RRKPLLCC.js.map +1 -0
  91. package/dist/{chunk-72WG5QKN.js → chunk-SDAXPXER.js} +2 -2
  92. package/dist/{chunk-4LV23CHK.js → chunk-VHJARF5R.js} +2 -2
  93. package/dist/{chunk-H2DXDQCQ.js → chunk-VRJG3HIZ.js} +46 -42
  94. package/dist/chunk-VRJG3HIZ.js.map +1 -0
  95. package/dist/{chunk-6MMONPHM.js → chunk-W2AHSCKY.js} +2 -2
  96. package/dist/{chunk-P454KXD6.js → chunk-YAWJMR3Y.js} +21 -21
  97. package/dist/{chunk-K5LLP4CY.js → chunk-ZGPDSEKG.js} +20 -9
  98. package/dist/chunk-ZGPDSEKG.js.map +1 -0
  99. package/dist/{cli-CqdPA6z9.d.ts → cli-CnRsWREp.d.ts} +4 -5
  100. package/dist/cli.d.ts +9 -10
  101. package/dist/cli.js +32 -32
  102. package/dist/compounding/engine.d.ts +2 -3
  103. package/dist/compounding/engine.js +3 -3
  104. package/dist/compounding/preference-consolidator.d.ts +1 -2
  105. package/dist/compression-optimizer.d.ts +1 -2
  106. package/dist/config.d.ts +1 -2
  107. package/dist/connectors/codex-materialize-runner.d.ts +1 -2
  108. package/dist/connectors/codex-materialize-runner.js +3 -3
  109. package/dist/connectors/codex-materialize.d.ts +1 -2
  110. package/dist/connectors/index.d.ts +1 -2
  111. package/dist/connectors/index.js +3 -3
  112. package/dist/consolidation-provenance-check.d.ts +2 -3
  113. package/dist/consolidation-undo.d.ts +2 -3
  114. package/dist/contradiction/index.d.ts +3 -4
  115. package/dist/conversation-index/backend.d.ts +1 -2
  116. package/dist/conversation-index/chunker.d.ts +1 -2
  117. package/dist/conversation-index/faiss-adapter.d.ts +1 -2
  118. package/dist/conversation-index/indexer.d.ts +1 -2
  119. package/dist/conversation-index/search.d.ts +1 -2
  120. package/dist/day-summary.d.ts +1 -2
  121. package/dist/delinearize.d.ts +1 -2
  122. package/dist/direct-answer-wiring.d.ts +1 -2
  123. package/dist/direct-answer.d.ts +1 -2
  124. package/dist/embedding-fallback.d.ts +1 -2
  125. package/dist/enrichment/index.d.ts +1 -2
  126. package/dist/entity-retrieval.d.ts +2 -3
  127. package/dist/entity-retrieval.js +3 -3
  128. package/dist/entity-schema.d.ts +1 -2
  129. package/dist/explicit-capture.d.ts +8 -7
  130. package/dist/explicit-capture.js +1 -1
  131. package/dist/extraction-faithfulness.d.ts +1 -2
  132. package/dist/extraction-judge-telemetry.d.ts +1 -2
  133. package/dist/extraction-judge-training.d.ts +1 -2
  134. package/dist/extraction-judge.d.ts +1 -2
  135. package/dist/extraction.d.ts +1 -2
  136. package/dist/fallback-llm.d.ts +1 -2
  137. package/dist/graph-dashboard-diff.d.ts +1 -2
  138. package/dist/graph-dashboard-key.d.ts +1 -2
  139. package/dist/graph-dashboard-parser.d.ts +1 -2
  140. package/dist/graph-edge-reinforcement.d.ts +1 -2
  141. package/dist/graph-snapshot.d.ts +1 -2
  142. package/dist/graph.d.ts +1 -2
  143. package/dist/identity-continuity.d.ts +1 -2
  144. package/dist/importance.d.ts +1 -2
  145. package/dist/importers/index.d.ts +1 -1
  146. package/dist/importers/index.js +2 -2
  147. package/dist/index.d.ts +14 -15
  148. package/dist/index.js +40 -40
  149. package/dist/intent.d.ts +1 -2
  150. package/dist/lcm/engine.d.ts +1 -2
  151. package/dist/lcm/index.d.ts +1 -2
  152. package/dist/lcm/tools.d.ts +1 -2
  153. package/dist/lifecycle.d.ts +1 -2
  154. package/dist/live-connectors-runner.d.ts +1 -2
  155. package/dist/local-llm.d.ts +1 -2
  156. package/dist/local-model-endpoint.d.ts +1 -2
  157. package/dist/maintenance/memory-governance.d.ts +1 -2
  158. package/dist/maintenance/memory-governance.js +3 -3
  159. package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +3 -3
  160. package/dist/maintenance/rebuild-memory-projection.js +4 -4
  161. package/dist/mcp-memory-inspector-app.d.ts +7 -8
  162. package/dist/memory-action-policy.d.ts +1 -2
  163. package/dist/memory-cache.d.ts +1 -2
  164. package/dist/memory-lifecycle-ledger-utils.d.ts +1 -2
  165. package/dist/memory-projection-store.d.ts +1 -2
  166. package/dist/memory-provenance.d.ts +1 -2
  167. package/dist/memory-worth-outcomes.d.ts +2 -3
  168. package/dist/models-json.d.ts +1 -2
  169. package/dist/namespaces/migrate.d.ts +3 -4
  170. package/dist/namespaces/migrate.js +4 -4
  171. package/dist/namespaces/principal.d.ts +1 -2
  172. package/dist/namespaces/search.d.ts +1 -2
  173. package/dist/namespaces/storage.d.ts +3 -4
  174. package/dist/namespaces/storage.js +3 -3
  175. package/dist/native-knowledge.d.ts +1 -2
  176. package/dist/operator-toolkit.d.ts +2 -3
  177. package/dist/operator-toolkit.js +7 -7
  178. package/dist/orchestration/compression-guideline-coordinator.d.ts +2 -3
  179. package/dist/orchestration/maintenance.d.ts +2 -3
  180. package/dist/orchestration/maintenance.js +5 -5
  181. package/dist/{orchestrator-CWFrT8AF.d.ts → orchestrator-NRLVXPpH.d.ts} +40 -15
  182. package/dist/orchestrator.d.ts +6 -7
  183. package/dist/orchestrator.js +40 -40
  184. package/dist/patterns-cli.d.ts +1 -2
  185. package/dist/{pipeline-DmqtvION.d.ts → pipeline-CiD86zIk.d.ts} +1 -1
  186. package/dist/policy-runtime.d.ts +1 -2
  187. package/dist/provenance.d.ts +1 -2
  188. package/dist/{qmd--fnPMK60.d.ts → qmd-Bef7DDuQ.d.ts} +1 -1
  189. package/dist/qmd-preflight.d.ts +2 -3
  190. package/dist/qmd-recall-cache.d.ts +1 -2
  191. package/dist/qmd.d.ts +2 -3
  192. package/dist/recall-disclosure-escalation.d.ts +1 -2
  193. package/dist/recall-explain-renderer.d.ts +1 -2
  194. package/dist/recall-explain-renderer.js +3 -3
  195. package/dist/recall-planner-llm.d.ts +1 -2
  196. package/dist/recall-state.d.ts +1 -2
  197. package/dist/recall-tag-filter.d.ts +1 -2
  198. package/dist/recall-timings.d.ts +1 -2
  199. package/dist/recall-xray-cli.d.ts +1 -2
  200. package/dist/recall-xray-cli.js +4 -4
  201. package/dist/recall-xray-renderer.d.ts +1 -2
  202. package/dist/recall-xray-renderer.js +3 -3
  203. package/dist/recall-xray.d.ts +1 -2
  204. package/dist/recall-xray.js +2 -2
  205. package/dist/replay/normalizers/chatgpt.d.ts +1 -0
  206. package/dist/replay/normalizers/chatgpt.js +3 -3
  207. package/dist/replay/normalizers/claude.d.ts +1 -0
  208. package/dist/replay/normalizers/claude.js +3 -3
  209. package/dist/replay/normalizers/openclaw.d.ts +1 -0
  210. package/dist/replay/normalizers/openclaw.js +3 -3
  211. package/dist/replay/normalizers/shared.d.ts +1 -0
  212. package/dist/replay/normalizers/shared.js +2 -2
  213. package/dist/replay/runner.d.ts +1 -0
  214. package/dist/replay/runner.js +2 -2
  215. package/dist/replay/types.d.ts +2 -1
  216. package/dist/replay/types.js +1 -1
  217. package/dist/resolve-auth-token.d.ts +1 -2
  218. package/dist/retrieval-agents.d.ts +2 -3
  219. package/dist/retrieval-tiers.d.ts +1 -2
  220. package/dist/routing/engine.d.ts +1 -2
  221. package/dist/routing/store.d.ts +1 -2
  222. package/dist/schemas.d.ts +44 -44
  223. package/dist/search/embed-helper.d.ts +1 -2
  224. package/dist/search/factory.d.ts +1 -2
  225. package/dist/search/index.d.ts +1 -2
  226. package/dist/search/lancedb-backend.d.ts +1 -2
  227. package/dist/search/meilisearch-backend.d.ts +1 -2
  228. package/dist/search/noop-backend.d.ts +1 -2
  229. package/dist/search/orama-backend.d.ts +1 -2
  230. package/dist/search/port.d.ts +1 -2
  231. package/dist/search/remote-backend.d.ts +1 -2
  232. package/dist/{semantic-DJR8_DMQ.d.ts → semantic-TddhF0y7.d.ts} +17 -1
  233. package/dist/{semantic-consolidation-O5lMZ4LG.d.ts → semantic-consolidation-BTShF2Fo.d.ts} +1 -1
  234. package/dist/semantic-consolidation.d.ts +2 -3
  235. package/dist/semantic-consolidation.js +4 -4
  236. package/dist/semantic-rule-promotion.js +3 -3
  237. package/dist/semantic-rule-verifier.d.ts +1 -2
  238. package/dist/semantic-rule-verifier.js +3 -3
  239. package/dist/session-observer-bands.d.ts +1 -2
  240. package/dist/session-observer-state.d.ts +1 -2
  241. package/dist/shared-context/manager.d.ts +3 -4
  242. package/dist/signal.d.ts +1 -2
  243. package/dist/{storage-C1maCNbc.d.ts → storage-DxPDAiU9.d.ts} +5 -1
  244. package/dist/storage.d.ts +2 -3
  245. package/dist/storage.js +2 -2
  246. package/dist/summarizer.d.ts +1 -2
  247. package/dist/summary-snapshot.d.ts +1 -2
  248. package/dist/temporal-supersession.d.ts +2 -3
  249. package/dist/temporal-validity.d.ts +1 -2
  250. package/dist/threading.d.ts +1 -2
  251. package/dist/tier-migration.d.ts +2 -3
  252. package/dist/tier-routing.d.ts +1 -2
  253. package/dist/topics.d.ts +1 -2
  254. package/dist/transcript.d.ts +1 -2
  255. package/dist/transfer/types.d.ts +12 -12
  256. package/dist/trust-score-stage.d.ts +1 -2
  257. package/dist/trust-score.d.ts +1 -2
  258. package/dist/{types-CGgcNWCG.d.ts → types-DDUDgd7T.d.ts} +93 -4
  259. package/dist/types.d.ts +1 -2
  260. package/dist/types.js +1 -1
  261. package/dist/utility-runtime.d.ts +1 -2
  262. package/dist/verified-recall.js +3 -3
  263. package/package.json +2 -2
  264. package/src/access-admin-ops-surface.ts +1 -0
  265. package/src/access-boundary.ts +2 -0
  266. package/src/access-http.test.ts +129 -0
  267. package/src/access-http.ts +92 -23
  268. package/src/access-mcp.ts +11 -2
  269. package/src/access-observe-write-surface.ts +87 -113
  270. package/src/access-operations-batch.ts +2 -2
  271. package/src/access-operations.ts +17 -16
  272. package/src/access-service.ts +11 -3
  273. package/src/admin/admin-surfaces.ts +2 -0
  274. package/src/buffer.ts +6 -1
  275. package/src/bulk-import/types.ts +2 -1
  276. package/src/coding/architecture-surfaces.test.ts +79 -5
  277. package/src/coding/architecture-surfaces.ts +7 -1
  278. package/src/coding/decision-surfaces.test.ts +1 -0
  279. package/src/coding/decision-surfaces.ts +4 -0
  280. package/src/connector-provenance-lifecycle.test.ts +618 -0
  281. package/src/connector-provenance.test.ts +219 -0
  282. package/src/dedup/semantic.test.ts +105 -0
  283. package/src/dedup/semantic.ts +69 -1
  284. package/src/explicit-capture.ts +21 -4
  285. package/src/orchestration/extraction-persist.ts +154 -6
  286. package/src/orchestration/extraction-run.ts +138 -228
  287. package/src/orchestration/persistence-index.ts +40 -5
  288. package/src/orchestration/turn-ingestion.ts +16 -9
  289. package/src/orchestrator-connector-dedup.test.ts +1082 -0
  290. package/src/orchestrator.ts +7 -11
  291. package/src/replay/types.ts +2 -1
  292. package/src/storage.ts +426 -553
  293. package/src/types.ts +11 -2
  294. package/src/utils/yaml-scalar.ts +20 -0
  295. package/dist/chunk-2PRQG7PV.js.map +0 -1
  296. package/dist/chunk-4GNEDXDI.js.map +0 -1
  297. package/dist/chunk-FKCRGLRD.js.map +0 -1
  298. package/dist/chunk-H2DXDQCQ.js.map +0 -1
  299. package/dist/chunk-K5LLP4CY.js.map +0 -1
  300. package/dist/chunk-LADFWYHY.js.map +0 -1
  301. package/dist/chunk-OUELRE5E.js.map +0 -1
  302. package/dist/chunk-PCLIWBGD.js.map +0 -1
  303. package/dist/chunk-SVOHGUMI.js.map +0 -1
  304. package/dist/chunk-UFUKHGZD.js.map +0 -1
  305. package/dist/chunk-XCL57M6Q.js.map +0 -1
  306. package/dist/types-gb_SNtjR.d.ts +0 -85
  307. /package/dist/{chunk-PNLFN2PZ.js.map → chunk-23G3T2Q5.js.map} +0 -0
  308. /package/dist/{chunk-SIRPLF54.js.map → chunk-2K3OSLHE.js.map} +0 -0
  309. /package/dist/{chunk-LQHDIS7L.js.map → chunk-54BGIBCR.js.map} +0 -0
  310. /package/dist/{chunk-PVUJ6WVV.js.map → chunk-5MH5NF3U.js.map} +0 -0
  311. /package/dist/{chunk-Y7UNNAZD.js.map → chunk-7ZYBDQ7V.js.map} +0 -0
  312. /package/dist/{chunk-LR5DZ56F.js.map → chunk-AXALUFAH.js.map} +0 -0
  313. /package/dist/{chunk-AYZJID4S.js.map → chunk-B5GBWBCZ.js.map} +0 -0
  314. /package/dist/{chunk-TLUDFPZL.js.map → chunk-CAZ3Z5M6.js.map} +0 -0
  315. /package/dist/{chunk-RGK27ELN.js.map → chunk-DEKIXXIG.js.map} +0 -0
  316. /package/dist/{chunk-2KK5WNQB.js.map → chunk-DQ42IQSK.js.map} +0 -0
  317. /package/dist/{chunk-HOJZMQ4J.js.map → chunk-FGDKJJZS.js.map} +0 -0
  318. /package/dist/{chunk-ABP6QMVM.js.map → chunk-FQ7HAWWC.js.map} +0 -0
  319. /package/dist/{chunk-CYWA2CXR.js.map → chunk-FVTLSFWU.js.map} +0 -0
  320. /package/dist/{chunk-JJEJJ7RK.js.map → chunk-FXZTL7F7.js.map} +0 -0
  321. /package/dist/{chunk-DANV2HTH.js.map → chunk-GQGDRLDM.js.map} +0 -0
  322. /package/dist/{chunk-7F7Z6MOS.js.map → chunk-H4CKS5B2.js.map} +0 -0
  323. /package/dist/{chunk-CKITWVWJ.js.map → chunk-HSSERO3E.js.map} +0 -0
  324. /package/dist/{chunk-23JFRB73.js.map → chunk-JODHPNLN.js.map} +0 -0
  325. /package/dist/{chunk-DS7MM2ES.js.map → chunk-JZKR6ZAV.js.map} +0 -0
  326. /package/dist/{chunk-BEM4D2QG.js.map → chunk-KJIJNLXT.js.map} +0 -0
  327. /package/dist/{chunk-JSNVWNGX.js.map → chunk-KVSVVKHA.js.map} +0 -0
  328. /package/dist/{chunk-MC4FJXPA.js.map → chunk-MMACM5G2.js.map} +0 -0
  329. /package/dist/{chunk-3XIY7MDQ.js.map → chunk-O6YI4CVI.js.map} +0 -0
  330. /package/dist/{chunk-72WG5QKN.js.map → chunk-SDAXPXER.js.map} +0 -0
  331. /package/dist/{chunk-4LV23CHK.js.map → chunk-VHJARF5R.js.map} +0 -0
  332. /package/dist/{chunk-6MMONPHM.js.map → chunk-W2AHSCKY.js.map} +0 -0
  333. /package/dist/{chunk-P454KXD6.js.map → chunk-YAWJMR3Y.js.map} +0 -0
@@ -7,7 +7,7 @@ import {
7
7
  } from "./chunk-J3XHPFEU.js";
8
8
  import {
9
9
  MaintenanceScheduler
10
- } from "./chunk-23JFRB73.js";
10
+ } from "./chunk-JODHPNLN.js";
11
11
  import {
12
12
  runPeerProfileReasoner
13
13
  } from "./chunk-I74SUMNI.js";
@@ -29,7 +29,7 @@ import {
29
29
  import {
30
30
  CompoundingEngine,
31
31
  defaultTierMigrationCycleBudget
32
- } from "./chunk-AYZJID4S.js";
32
+ } from "./chunk-B5GBWBCZ.js";
33
33
  import {
34
34
  SharedContextManager
35
35
  } from "./chunk-UI4FVU6T.js";
@@ -198,24 +198,24 @@ import {
198
198
  buildEntityRecallSection,
199
199
  entityRecentTranscriptLookbackHours,
200
200
  readRecentEntityTranscriptEntries
201
- } from "./chunk-CYWA2CXR.js";
201
+ } from "./chunk-FVTLSFWU.js";
202
202
  import {
203
203
  normalizeReplaySessionKey
204
- } from "./chunk-2PRQG7PV.js";
204
+ } from "./chunk-AJVLDJU6.js";
205
205
  import {
206
206
  RoutingRulesStore
207
207
  } from "./chunk-KQPJLK3X.js";
208
208
  import {
209
209
  compareVerifiedEpisodeResults,
210
210
  searchVerifiedEpisodes
211
- } from "./chunk-SIRPLF54.js";
211
+ } from "./chunk-2K3OSLHE.js";
212
212
  import {
213
213
  ThreadingManager
214
214
  } from "./chunk-DBRYEIGY.js";
215
215
  import {
216
216
  compareVerifiedSemanticRuleResults,
217
217
  searchVerifiedSemanticRules
218
- } from "./chunk-RGK27ELN.js";
218
+ } from "./chunk-DEKIXXIG.js";
219
219
  import {
220
220
  searchWorkProductLedgerEntries
221
221
  } from "./chunk-ZRWB5D4H.js";
@@ -228,14 +228,14 @@ import {
228
228
  import {
229
229
  runNamespaceMaintenanceFanout,
230
230
  summarizeNamespaceMaintenanceHealth
231
- } from "./chunk-PVUJ6WVV.js";
231
+ } from "./chunk-5MH5NF3U.js";
232
232
  import {
233
233
  NamespaceCatalog,
234
234
  planNamespaceMaintenance
235
- } from "./chunk-4LV23CHK.js";
235
+ } from "./chunk-VHJARF5R.js";
236
236
  import {
237
237
  NamespaceStorageRouter
238
- } from "./chunk-PNLFN2PZ.js";
238
+ } from "./chunk-23G3T2Q5.js";
239
239
  import {
240
240
  searchHarmonicRetrieval
241
241
  } from "./chunk-AV5ZEH4M.js";
@@ -270,7 +270,7 @@ import {
270
270
  materializeAfterSemanticConsolidation,
271
271
  parseConsolidationResponse,
272
272
  parseOperatorAwareConsolidationResponse
273
- } from "./chunk-LR5DZ56F.js";
273
+ } from "./chunk-AXALUFAH.js";
274
274
  import {
275
275
  buildRecallQueryPolicy
276
276
  } from "./chunk-LBJBNWS2.js";
@@ -292,7 +292,7 @@ import {
292
292
  } from "./chunk-UQ7RN5HK.js";
293
293
  import {
294
294
  SmartBuffer
295
- } from "./chunk-F53UF7CI.js";
295
+ } from "./chunk-QLVLW7UD.js";
296
296
  import {
297
297
  isDisagreementPrompt
298
298
  } from "./chunk-H3FZVNRN.js";
@@ -319,7 +319,7 @@ import {
319
319
  createCorrectionService,
320
320
  detectPassiveCorrections,
321
321
  qmdCollectionPathParts
322
- } from "./chunk-H2DXDQCQ.js";
322
+ } from "./chunk-VRJG3HIZ.js";
323
323
  import {
324
324
  importCapsule
325
325
  } from "./chunk-CYWCKFCL.js";
@@ -335,7 +335,7 @@ import {
335
335
  } from "./chunk-FF4KLI5W.js";
336
336
  import {
337
337
  buildXraySnapshot
338
- } from "./chunk-6MMONPHM.js";
338
+ } from "./chunk-W2AHSCKY.js";
339
339
  import {
340
340
  objectiveStateStoreOverrideForNamespace,
341
341
  searchObjectiveStateSnapshots
@@ -377,7 +377,7 @@ import {
377
377
  } from "./chunk-QDW3E4RD.js";
378
378
  import {
379
379
  shouldSkipImplicitExtraction
380
- } from "./chunk-K5LLP4CY.js";
380
+ } from "./chunk-ZGPDSEKG.js";
381
381
  import {
382
382
  searchCausalTrajectories
383
383
  } from "./chunk-7XGSIUP5.js";
@@ -390,7 +390,7 @@ import {
390
390
  } from "./chunk-TBBDFYXW.js";
391
391
  import {
392
392
  buildChainFollowupGenerator
393
- } from "./chunk-Y7UNNAZD.js";
393
+ } from "./chunk-7ZYBDQ7V.js";
394
394
  import {
395
395
  ContentHashIndex,
396
396
  StorageManager,
@@ -405,7 +405,7 @@ import {
405
405
  reconstructFusionInputs,
406
406
  selfDeps,
407
407
  serializeFusionDay
408
- } from "./chunk-SVOHGUMI.js";
408
+ } from "./chunk-H4FHR4UM.js";
409
409
  import {
410
410
  bodyIsEscaped,
411
411
  decodeTranscriptBody,
@@ -442,7 +442,7 @@ import {
442
442
  } from "./chunk-SVOZFLIQ.js";
443
443
  import {
444
444
  confidenceTier
445
- } from "./chunk-JS2HKKOK.js";
445
+ } from "./chunk-3AC5UYKI.js";
446
446
  import {
447
447
  buildQmdRecallCacheKey,
448
448
  getCachedQmdRecall,
@@ -3380,9 +3380,7 @@ ${normalized}`).digest("hex");
3380
3380
  this.recentExtractionFingerprints.set(fingerprint, now);
3381
3381
  }
3382
3382
  if (options.commit !== false && this.recentExtractionFingerprints.size > 200) {
3383
- const entries = Array.from(
3384
- this.recentExtractionFingerprints.entries()
3385
- ).sort((a, b) => a[1] - b[1]);
3383
+ const entries = Array.from(this.recentExtractionFingerprints.entries()).sort((a, b) => a[1] - b[1]);
3386
3384
  for (const [key] of entries.slice(0, entries.length - 200)) {
3387
3385
  this.recentExtractionFingerprints.delete(key);
3388
3386
  }
@@ -3396,10 +3394,7 @@ ${normalized}`).digest("hex");
3396
3394
  const meta = preloadedMeta ?? await storage.loadMeta();
3397
3395
  const observedAt = (/* @__PURE__ */ new Date()).toISOString();
3398
3396
  const seen = new Map(
3399
- (meta.processedExtractionFingerprints ?? []).map((entry) => [
3400
- entry.fingerprint,
3401
- entry.observedAt
3402
- ])
3397
+ (meta.processedExtractionFingerprints ?? []).map((entry) => [entry.fingerprint, entry.observedAt])
3403
3398
  );
3404
3399
  seen.set(fingerprint, observedAt);
3405
3400
  meta.processedExtractionFingerprints = Array.from(seen.entries()).map(([value, at]) => ({ fingerprint: value, observedAt: at })).sort((left, right) => left.observedAt.localeCompare(right.observedAt)).slice(-500);
@@ -3444,19 +3439,21 @@ ${normalized}`).digest("hex");
3444
3439
  durableOutputCount: 0
3445
3440
  };
3446
3441
  }
3447
- const normalizedTurns = turns.filter(
3448
- (t) => (t.role === "user" || t.role === "assistant") && typeof t.content === "string"
3449
- ).map((t) => ({
3442
+ const normalizedTurns = turns.filter((t) => (t.role === "user" || t.role === "assistant") && typeof t.content === "string").map((t) => ({
3450
3443
  ...t,
3451
3444
  content: t.content.trim().slice(0, this.config.extractionMaxTurnChars)
3452
3445
  })).filter((t) => t.content.length > 0);
3453
- const targetTurns = normalizedTurns.filter(
3454
- (turn) => turn.extractionContextOnly !== true
3455
- );
3446
+ const targetTurns = normalizedTurns.filter((turn) => turn.extractionContextOnly !== true);
3456
3447
  if (targetTurns.length === 0) {
3457
3448
  log.debug("skipping extraction: no non-context turns after normalization");
3458
3449
  if (normalizedTurns.length > 0) {
3459
- await this.deps.maybeCapturePassiveCorrections(normalizedTurns, { sessionKey, principal: resolvePrincipal(sessionKey, this.config), namespace: this.deps.resolveSelfNamespace(sessionKey), bufferKey, isLiveSession: clearBufferAfterExtraction });
3450
+ await this.deps.maybeCapturePassiveCorrections(normalizedTurns, {
3451
+ sessionKey,
3452
+ principal: resolvePrincipal(sessionKey, this.config),
3453
+ namespace: this.deps.resolveSelfNamespace(sessionKey),
3454
+ bufferKey,
3455
+ isLiveSession: clearBufferAfterExtraction
3456
+ });
3460
3457
  }
3461
3458
  await clearBuffer();
3462
3459
  return { status: "skipped", reason: "empty_normalized_turns", persistedCount: 0, durableOutputCount: 0 };
@@ -3465,23 +3462,27 @@ ${normalized}`).digest("hex");
3465
3462
  throwIfDeadlineExceeded("before_extract");
3466
3463
  throwIfAborted2("before_extract");
3467
3464
  const userTurns = targetTurns.filter((t) => t.role === "user");
3468
- const totalChars = targetTurns.reduce(
3469
- (sum, t) => sum + t.content.length,
3470
- 0
3471
- );
3465
+ const totalChars = targetTurns.reduce((sum, t) => sum + t.content.length, 0);
3472
3466
  const belowCharThreshold = totalChars < this.config.extractionMinChars;
3473
3467
  const belowUserTurnThreshold = !skipUserTurnThreshold && userTurns.length < this.config.extractionMinUserTurns;
3474
3468
  if (!skipCharThreshold && belowCharThreshold || belowUserTurnThreshold) {
3475
- log.debug(
3476
- `skipping extraction: below threshold (totalChars=${totalChars}, userTurns=${userTurns.length})`
3477
- );
3469
+ log.debug(`skipping extraction: below threshold (totalChars=${totalChars}, userTurns=${userTurns.length})`);
3478
3470
  await clearBuffer();
3479
3471
  {
3480
3472
  const capturePrincipal = typeof options.principalOverride === "string" && options.principalOverride.length > 0 ? options.principalOverride : resolvePrincipal(sessionKey, this.config);
3481
3473
  const captureWO = typeof options.writeNamespaceOverride === "string" && options.writeNamespaceOverride.length > 0 ? options.writeNamespaceOverride : void 0;
3482
3474
  const captureCodingCtx = sessionKey ? this.deps.getCodingContextForSession(sessionKey) : null;
3483
- const captureCodingOv = resolveCodingNamespaceOverlay(captureCodingCtx, this.config.codingMode, this.config.defaultNamespace);
3484
- const captureScopePlan = resolveScopeProfilePlan({ config: this.config, principal: capturePrincipal, codingContext: captureCodingCtx, codingOverlay: captureCodingOv });
3475
+ const captureCodingOv = resolveCodingNamespaceOverlay(
3476
+ captureCodingCtx,
3477
+ this.config.codingMode,
3478
+ this.config.defaultNamespace
3479
+ );
3480
+ const captureScopePlan = resolveScopeProfilePlan({
3481
+ config: this.config,
3482
+ principal: capturePrincipal,
3483
+ codingContext: captureCodingCtx,
3484
+ codingOverlay: captureCodingOv
3485
+ });
3485
3486
  const captureNamespace = captureWO ?? captureScopePlan?.writeNamespace ?? this.deps.resolveSelfNamespace(sessionKey);
3486
3487
  await this.deps.maybeCapturePassiveCorrections(normalizedTurns, {
3487
3488
  sessionKey,
@@ -3514,9 +3515,7 @@ ${normalized}`).digest("hex");
3514
3515
  });
3515
3516
  const scopeProfileWritePlan = explicitWriteNamespace ? null : scopeProfileGatePlan;
3516
3517
  if (scopeProfileWritePlan) {
3517
- const selectedLayer = scopeProfileWritePlan.layers.find(
3518
- (layer) => layer.id === scopeProfileWritePlan.writeLayer
3519
- );
3518
+ const selectedLayer = scopeProfileWritePlan.layers.find((layer) => layer.id === scopeProfileWritePlan.writeLayer);
3520
3519
  const writeNamespaceReadable = scopeProfileWritePlan.readNamespaces.includes(
3521
3520
  scopeProfileWritePlan.writeNamespace
3522
3521
  );
@@ -3533,25 +3532,13 @@ ${normalized}`).digest("hex");
3533
3532
  };
3534
3533
  }
3535
3534
  }
3536
- const selfNamespace = explicitWriteNamespace ?? scopeProfileWritePlan?.writeNamespace ?? this.deps.applyCodingNamespaceOverlay(
3537
- sessionKey,
3538
- defaultNamespaceForPrincipal(principal, this.config)
3539
- );
3535
+ const selfNamespace = explicitWriteNamespace ?? scopeProfileWritePlan?.writeNamespace ?? this.deps.applyCodingNamespaceOverlay(sessionKey, defaultNamespaceForPrincipal(principal, this.config));
3540
3536
  const storage = await this.deps.getStorageRouter().storageFor(selfNamespace);
3541
- const shouldPersistProcessedFingerprint = targetTurns.some(
3542
- (turn) => turn.persistProcessedFingerprint === true
3543
- );
3544
- const extractionFingerprint = this.buildExtractionFingerprint(
3545
- targetTurns,
3546
- bufferKey
3547
- );
3537
+ const shouldPersistProcessedFingerprint = targetTurns.some((turn) => turn.persistProcessedFingerprint === true);
3538
+ const extractionFingerprint = this.buildExtractionFingerprint(targetTurns, bufferKey);
3548
3539
  let meta = extractionFingerprint && shouldPersistProcessedFingerprint ? await storage.loadMeta() : null;
3549
- if (extractionFingerprint && shouldPersistProcessedFingerprint && (meta?.processedExtractionFingerprints ?? []).some(
3550
- (entry) => entry.fingerprint === extractionFingerprint
3551
- )) {
3552
- log.debug(
3553
- `runExtraction: skipping already-processed extraction fingerprint for ${bufferKey}`
3554
- );
3540
+ if (extractionFingerprint && shouldPersistProcessedFingerprint && (meta?.processedExtractionFingerprints ?? []).some((entry) => entry.fingerprint === extractionFingerprint)) {
3541
+ log.debug(`runExtraction: skipping already-processed extraction fingerprint for ${bufferKey}`);
3555
3542
  await clearBuffer();
3556
3543
  return {
3557
3544
  status: "skipped",
@@ -3562,10 +3549,7 @@ ${normalized}`).digest("hex");
3562
3549
  }
3563
3550
  const existingEntities = await storage.listEntityNames();
3564
3551
  const result = await raceRecallAbort(
3565
- this.deps.getExtraction().extract(
3566
- normalizedTurns,
3567
- existingEntities
3568
- ),
3552
+ this.deps.getExtraction().extract(normalizedTurns, existingEntities),
3569
3553
  options.abortSignal,
3570
3554
  "extraction aborted (during_extract)"
3571
3555
  );
@@ -3591,13 +3575,10 @@ ${normalized}`).digest("hex");
3591
3575
  ["profileUpdates", result.profileUpdates]
3592
3576
  ].filter(([, value]) => !Array.isArray(value)).map(([field]) => field);
3593
3577
  if (invalidExtractionResultFields.length > 0) {
3594
- log.warn(
3595
- "runExtraction: extraction returned invalid collection fields",
3596
- {
3597
- invalidFields: invalidExtractionResultFields,
3598
- resultKeys: typeof result === "object" && result !== null ? Object.keys(result) : []
3599
- }
3600
- );
3578
+ log.warn("runExtraction: extraction returned invalid collection fields", {
3579
+ invalidFields: invalidExtractionResultFields,
3580
+ resultKeys: typeof result === "object" && result !== null ? Object.keys(result) : []
3581
+ });
3601
3582
  if (options.failOnExtractionFailure) {
3602
3583
  throw new Error("extraction failed: invalid_extraction_result");
3603
3584
  }
@@ -3614,9 +3595,7 @@ ${normalized}`).digest("hex");
3614
3595
  throw new Error(`extraction failed: ${extractionFailure}`);
3615
3596
  }
3616
3597
  if (result.facts.length === 0 && result.entities.length === 0 && result.questions.length === 0 && result.profileUpdates.length === 0) {
3617
- log.debug(
3618
- "runExtraction: extraction produced no durable outputs; skipping persistence"
3619
- );
3598
+ log.debug("runExtraction: extraction produced no durable outputs; skipping persistence");
3620
3599
  if (extractionFailure) {
3621
3600
  log.warn(
3622
3601
  "runExtraction: extraction reported failure with no durable outputs; not marking fingerprint processed",
@@ -3625,16 +3604,18 @@ ${normalized}`).digest("hex");
3625
3604
  }
3626
3605
  if (extractionFingerprint && shouldPersistProcessedFingerprint && !extractionFailure) {
3627
3606
  meta ??= await storage.loadMeta();
3628
- await this.deps.recordProcessedExtractionFingerprint(
3629
- storage,
3630
- extractionFingerprint,
3631
- meta
3632
- );
3607
+ await this.deps.recordProcessedExtractionFingerprint(storage, extractionFingerprint, meta);
3633
3608
  meta.extractionCount += 1;
3634
3609
  meta.lastExtractionAt = (/* @__PURE__ */ new Date()).toISOString();
3635
3610
  await storage.saveMeta(meta);
3636
3611
  }
3637
- await this.deps.maybeCapturePassiveCorrections(normalizedTurns, { sessionKey, principal, namespace: selfNamespace, bufferKey, isLiveSession: clearBufferAfterExtraction });
3612
+ await this.deps.maybeCapturePassiveCorrections(normalizedTurns, {
3613
+ sessionKey,
3614
+ principal,
3615
+ namespace: selfNamespace,
3616
+ bufferKey,
3617
+ isLiveSession: clearBufferAfterExtraction
3618
+ });
3638
3619
  await clearBuffer();
3639
3620
  return { status: "skipped", reason: "empty_extraction_result", persistedCount: 0, durableOutputCount: 0 };
3640
3621
  }
@@ -3644,17 +3625,14 @@ ${normalized}`).digest("hex");
3644
3625
  try {
3645
3626
  threadIdForExtraction = await this.deps.getThreading().processTurn(lastTurn, []);
3646
3627
  } catch (err) {
3647
- log.warn(
3648
- "[threading] processTurn failed before persistence (non-fatal)",
3649
- err
3650
- );
3628
+ log.warn("[threading] processTurn failed before persistence (non-fatal)", err);
3651
3629
  }
3652
3630
  }
3653
3631
  const persistedIds = await this.deps.persistExtraction(
3654
3632
  result,
3655
3633
  storage,
3656
3634
  threadIdForExtraction,
3657
- { sessionKey, principal, validAt: sourceValidAt },
3635
+ { sessionKey, principal, validAt: sourceValidAt, sourceConnector: deriveSourceConnector(targetTurns) },
3658
3636
  // Pass the KNOWN base namespace (NHIdx) so the catalog write touch records the
3659
3637
  // real namespace rather than a guess decoded from the storage dir.
3660
3638
  selfNamespace,
@@ -3667,11 +3645,7 @@ ${normalized}`).digest("hex");
3667
3645
  meta ??= await storage.loadMeta();
3668
3646
  if (extractionFingerprint && shouldPersistProcessedFingerprint) {
3669
3647
  try {
3670
- await this.deps.recordProcessedExtractionFingerprint(
3671
- storage,
3672
- extractionFingerprint,
3673
- meta
3674
- );
3648
+ await this.deps.recordProcessedExtractionFingerprint(storage, extractionFingerprint, meta);
3675
3649
  } catch (error) {
3676
3650
  log.warn(
3677
3651
  "runExtraction: failed to persist processed extraction fingerprint; continuing with buffer clear",
@@ -3698,11 +3672,7 @@ ${normalized}`).digest("hex");
3698
3672
  if (clearBufferAfterExtraction && !this.config.extractionJudgeShadow) {
3699
3673
  const deferredCount = this.deps.getLastPersistExtractionDeferredCount();
3700
3674
  if (deferredCount > 0 && normalizedTurns.length > 0) {
3701
- await this.deps.getBuffer().retainDeferredTurns(
3702
- bufferKey,
3703
- normalizedTurns,
3704
- 10
3705
- );
3675
+ await this.deps.getBuffer().retainDeferredTurns(bufferKey, normalizedTurns, 10);
3706
3676
  } else {
3707
3677
  await this.deps.getBuffer().retainDeferredTurns(bufferKey, [], 0);
3708
3678
  }
@@ -3729,54 +3699,34 @@ ${normalized}`).digest("hex");
3729
3699
  memoryIds: persistedIds,
3730
3700
  timestamp: (/* @__PURE__ */ new Date()).toISOString(),
3731
3701
  goal: boxGoal
3732
- }).catch(
3733
- (err) => log.warn("[boxes] onExtraction failed (non-fatal)", err)
3734
- );
3702
+ }).catch((err) => log.warn("[boxes] onExtraction failed (non-fatal)", err));
3735
3703
  }
3736
3704
  if (resolvePresentationCapabilities(this.config).threading && threadIdForExtraction && persistedIds.length > 0) {
3737
- await this.deps.appendPersistedThreadEpisodes(
3738
- threadIdForExtraction,
3739
- persistedIds
3740
- );
3705
+ await this.deps.appendPersistedThreadEpisodes(threadIdForExtraction, persistedIds);
3741
3706
  }
3742
3707
  if (resolvePresentationCapabilities(this.config).threading && threadIdForExtraction) {
3743
3708
  const conversationContent = turns.map((t) => t.content).join(" ");
3744
3709
  try {
3745
- await this.deps.getThreading().updateThreadTitle(
3746
- threadIdForExtraction,
3747
- conversationContent
3748
- );
3710
+ await this.deps.getThreading().updateThreadTitle(threadIdForExtraction, conversationContent);
3749
3711
  } catch (err) {
3750
- log.warn(
3751
- "[threading] updateThreadTitle failed after persistence (non-fatal)",
3752
- err
3753
- );
3712
+ log.warn("[threading] updateThreadTitle failed after persistence (non-fatal)", err);
3754
3713
  }
3755
3714
  }
3756
3715
  const nonZeroExtraction = durableOutputCount > 0;
3757
3716
  try {
3758
3717
  this.deps.maybeScheduleConsolidation(nonZeroExtraction);
3759
3718
  } catch (err) {
3760
- log.warn(
3761
- "runExtraction: consolidation scheduling failed after persistence (non-fatal)",
3762
- err
3763
- );
3719
+ log.warn("runExtraction: consolidation scheduling failed after persistence (non-fatal)", err);
3764
3720
  }
3765
3721
  try {
3766
3722
  this.deps.requestQmdMaintenance();
3767
3723
  } catch (err) {
3768
- log.warn(
3769
- "runExtraction: QMD maintenance scheduling failed after persistence (non-fatal)",
3770
- err
3771
- );
3724
+ log.warn("runExtraction: QMD maintenance scheduling failed after persistence (non-fatal)", err);
3772
3725
  }
3773
3726
  try {
3774
3727
  await this.deps.runTierMigrationCycle(storage, "extraction");
3775
3728
  } catch (err) {
3776
- log.warn(
3777
- "runExtraction: tier migration failed after persistence (non-fatal)",
3778
- err
3779
- );
3729
+ log.warn("runExtraction: tier migration failed after persistence (non-fatal)", err);
3780
3730
  }
3781
3731
  return {
3782
3732
  status: "completed",
@@ -3786,6 +3736,20 @@ ${normalized}`).digest("hex");
3786
3736
  };
3787
3737
  }
3788
3738
  };
3739
+ function deriveSourceConnector(turns) {
3740
+ if (turns.length === 0) return void 0;
3741
+ const connectors = /* @__PURE__ */ new Set();
3742
+ let untaggedCount = 0;
3743
+ for (const turn of turns) {
3744
+ if (typeof turn.sourceConnector === "string" && turn.sourceConnector.length > 0) {
3745
+ connectors.add(turn.sourceConnector);
3746
+ } else {
3747
+ untaggedCount += 1;
3748
+ }
3749
+ }
3750
+ if (untaggedCount > 0) return void 0;
3751
+ return connectors.size === 1 ? [...connectors][0] : void 0;
3752
+ }
3789
3753
 
3790
3754
  // src/orchestration/consolidation-run.ts
3791
3755
  import path5 from "path";
@@ -4228,7 +4192,9 @@ async function decideSemanticDedup(content, lookup, options) {
4228
4192
  if (!Array.isArray(hits) || hits.length === 0) {
4229
4193
  return { action: "keep", reason: "no_candidates" };
4230
4194
  }
4195
+ const candidateConnector = typeof options.sourceConnector === "string" && options.sourceConnector.trim().length > 0 ? options.sourceConnector.trim() : void 0;
4231
4196
  let top;
4197
+ let sameConnectorTop;
4232
4198
  for (const hit of hits) {
4233
4199
  if (!hit || typeof hit.id !== "string" || hit.id.trim().length === 0 || typeof hit.score !== "number" || !Number.isFinite(hit.score)) {
4234
4200
  continue;
@@ -4236,11 +4202,32 @@ async function decideSemanticDedup(content, lookup, options) {
4236
4202
  if (!top || hit.score > top.score) {
4237
4203
  top = hit;
4238
4204
  }
4205
+ if (candidateConnector !== void 0 && typeof hit.sourceConnector === "string" && hit.sourceConnector.trim() === candidateConnector && (!sameConnectorTop || hit.score > sameConnectorTop.score)) {
4206
+ sameConnectorTop = hit;
4207
+ }
4239
4208
  }
4240
4209
  if (!top) {
4241
4210
  return { action: "keep", reason: "no_near_duplicate" };
4242
4211
  }
4243
4212
  if (top.score >= threshold) {
4213
+ if (candidateConnector !== void 0) {
4214
+ const match = sameConnectorTop !== void 0 && sameConnectorTop.score >= threshold ? sameConnectorTop : void 0;
4215
+ if (match) {
4216
+ return {
4217
+ action: "skip",
4218
+ reason: "near_duplicate",
4219
+ topScore: match.score,
4220
+ topId: match.id,
4221
+ topPath: match.path
4222
+ };
4223
+ }
4224
+ return {
4225
+ action: "keep",
4226
+ reason: "connector_mismatch",
4227
+ topScore: top.score,
4228
+ topId: top.id
4229
+ };
4230
+ }
4244
4231
  return {
4245
4232
  action: "skip",
4246
4233
  reason: "near_duplicate",
@@ -4269,6 +4256,11 @@ var ExtractionPersistCoordinator = class {
4269
4256
  async persistExtraction(result, storage, threadIdForExtraction, sourceContext, baseNamespace, scopeProfileWritePlan, sourceText, graphCaps = resolveGraphConstructionCapabilities(this.deps.config), lifecycleCaps = resolveMemoryLifecycleCapabilities(this.deps.config)) {
4270
4257
  const citationEnabled = resolvePipelineProcessingCapabilities(this.deps.config).inlineSourceAttribution === true;
4271
4258
  const citationTemplate = this.deps.config.inlineSourceAttributionFormat;
4259
+ const normalizeStoredHashSource = (raw) => ContentHashIndex.normalizeContent(
4260
+ sanitizeMemoryContent(
4261
+ citationEnabled && hasCitationForTemplate(raw, citationTemplate) ? stripCitationForTemplate(raw, citationTemplate) : raw
4262
+ ).text
4263
+ );
4272
4264
  const citationContextBase = citationEnabled ? {
4273
4265
  agent: sourceContext?.principal,
4274
4266
  session: sourceContext?.sessionKey
@@ -4400,21 +4392,40 @@ var ExtractionPersistCoordinator = class {
4400
4392
  const targetStorage = await this.deps.getStorageRouter().storageFor(target.namespace);
4401
4393
  if (targetStorage.dir === options.sourceStorage.dir) continue;
4402
4394
  if (options.category === "fact" && await targetStorage.hasFactContentHash(dedupContent)) {
4403
- if (options.invalidAt || options.validAt) {
4404
- await this.deps.backfillTemporalBoundsOnDedupHit(
4405
- targetStorage,
4406
- dedupContent,
4407
- {
4408
- invalidAt: options.invalidAt,
4409
- // #1707 thread 2 carry the corrected start bound.
4410
- validFrom: options.validAt,
4411
- ...options.observedAt ? { observedAt: options.observedAt } : {},
4412
- ...options.eventTimeSource ? { eventTimeSource: options.eventTimeSource } : {}
4413
- },
4414
- options.entityRef
4395
+ let skipPromotion = true;
4396
+ try {
4397
+ const allMems = await targetStorage.readAllMemories();
4398
+ const nc = sourceContext?.sourceConnector?.trim() || void 0;
4399
+ skipPromotion = allMems.some((m) => {
4400
+ if (m.frontmatter.category !== options.category) return false;
4401
+ if ((m.frontmatter.status ?? "active") !== "active") return false;
4402
+ if (normalizeStoredHashSource(m.content ?? "") !== ContentHashIndex.normalizeContent(dedupContent)) return false;
4403
+ return (m.frontmatter.sourceConnector?.trim() || void 0) === nc;
4404
+ });
4405
+ } catch (err) {
4406
+ log.warn(
4407
+ `connector-aware promotion dedup scan failed; writing fail-open: ${err instanceof Error ? err.message : String(err)}`
4415
4408
  );
4409
+ skipPromotion = false;
4410
+ }
4411
+ if (skipPromotion) {
4412
+ if (options.invalidAt || options.validAt) {
4413
+ await this.deps.backfillTemporalBoundsOnDedupHit(
4414
+ targetStorage,
4415
+ dedupContent,
4416
+ {
4417
+ invalidAt: options.invalidAt,
4418
+ // #1707 thread 2 — carry the corrected start bound.
4419
+ validFrom: options.validAt,
4420
+ ...options.observedAt ? { observedAt: options.observedAt } : {},
4421
+ ...options.eventTimeSource ? { eventTimeSource: options.eventTimeSource } : {}
4422
+ },
4423
+ options.entityRef,
4424
+ sourceContext?.sourceConnector
4425
+ );
4426
+ }
4427
+ continue;
4416
4428
  }
4417
- continue;
4418
4429
  }
4419
4430
  const targetPromotion = await targetStorage.writeMemory(
4420
4431
  options.category,
@@ -4439,7 +4450,8 @@ var ExtractionPersistCoordinator = class {
4439
4450
  ...options.eventTimeSource ? { eventTimeSource: options.eventTimeSource } : {},
4440
4451
  contentHashSource: options.category === "fact" ? dedupContent : rawContent,
4441
4452
  ...options.sources && options.sources.length > 0 ? { sources: options.sources } : {},
4442
- ...options.provenance ? { provenance: options.provenance } : {}
4453
+ ...options.provenance ? { provenance: options.provenance } : {},
4454
+ ...sourceContext?.sourceConnector ? { sourceConnector: sourceContext.sourceConnector } : {}
4443
4455
  }
4444
4456
  );
4445
4457
  const promotedId = targetPromotion.id;
@@ -4499,7 +4511,25 @@ var ExtractionPersistCoordinator = class {
4499
4511
  const dedupContent = options.category === "fact" && options.structuredAttributes && Object.keys(options.structuredAttributes).length > 0 ? `${sanitizedBase.text}
4500
4512
  [Attributes: ${normalizeAttributePairs(options.structuredAttributes)}]` : sanitizedBase.text;
4501
4513
  if (options.category === "fact" && await sharedStorage.hasFactContentHash(dedupContent)) {
4514
+ let sharedSameConnector = true;
4502
4515
  if (options.invalidAt || options.validAt) {
4516
+ try {
4517
+ const sharedMems = await sharedStorage.readAllMemories();
4518
+ const snc = sourceContext?.sourceConnector?.trim() || void 0;
4519
+ sharedSameConnector = sharedMems.some((m) => {
4520
+ if (m.frontmatter.category !== "fact") return false;
4521
+ if ((m.frontmatter.status ?? "active") !== "active") return false;
4522
+ if (normalizeStoredHashSource(m.content ?? "") !== ContentHashIndex.normalizeContent(dedupContent)) return false;
4523
+ return (m.frontmatter.sourceConnector?.trim() || void 0) === snc;
4524
+ });
4525
+ } catch (scanErr) {
4526
+ sharedSameConnector = false;
4527
+ log.warn(
4528
+ `connector-aware shared backfill scan failed; skipping backfill to avoid cross-connector mutation: ${scanErr instanceof Error ? scanErr.message : String(scanErr)}`
4529
+ );
4530
+ }
4531
+ }
4532
+ if (sharedSameConnector && (options.invalidAt || options.validAt)) {
4503
4533
  await this.deps.backfillTemporalBoundsOnDedupHit(
4504
4534
  sharedStorage,
4505
4535
  dedupContent,
@@ -4510,7 +4540,8 @@ var ExtractionPersistCoordinator = class {
4510
4540
  ...options.observedAt ? { observedAt: options.observedAt } : {},
4511
4541
  ...options.eventTimeSource ? { eventTimeSource: options.eventTimeSource } : {}
4512
4542
  },
4513
- options.entityRef
4543
+ options.entityRef,
4544
+ sourceContext?.sourceConnector
4514
4545
  );
4515
4546
  }
4516
4547
  if (lifecycleCaps.temporalSupersession && options.entityRef && options.structuredAttributes && Object.keys(options.structuredAttributes).length > 0) {
@@ -4530,7 +4561,11 @@ var ExtractionPersistCoordinator = class {
4530
4561
  );
4531
4562
  return false;
4532
4563
  }
4533
- return ContentHashIndex.normalizeContent(m.content ?? "") === normalizedIncoming;
4564
+ if (normalizeStoredHashSource(m.content ?? "") !== normalizedIncoming) return false;
4565
+ const existingConnector = m.frontmatter.sourceConnector?.trim() || void 0;
4566
+ const newConnector = sourceContext?.sourceConnector?.trim() || void 0;
4567
+ if (existingConnector !== newConnector) return false;
4568
+ return true;
4534
4569
  });
4535
4570
  hashDedupLookupComplete = true;
4536
4571
  if (hashDedupMatchingFact) {
@@ -4562,7 +4597,26 @@ var ExtractionPersistCoordinator = class {
4562
4597
  );
4563
4598
  }
4564
4599
  } else {
4565
- return;
4600
+ let skipSharedPromotion = true;
4601
+ try {
4602
+ const allSharedMems = await sharedStorage.readAllMemories();
4603
+ const snc = sourceContext?.sourceConnector?.trim() || void 0;
4604
+ const sharedNormalized = ContentHashIndex.normalizeContent(dedupContent);
4605
+ skipSharedPromotion = allSharedMems.some((m) => {
4606
+ if (m.frontmatter.category !== "fact") return false;
4607
+ if ((m.frontmatter.status ?? "active") !== "active") return false;
4608
+ if (normalizeStoredHashSource(m.content ?? "") !== sharedNormalized) return false;
4609
+ return (m.frontmatter.sourceConnector?.trim() || void 0) === snc;
4610
+ });
4611
+ } catch (err) {
4612
+ log.warn(
4613
+ `connector-aware shared promotion dedup scan failed; writing fail-open: ${err instanceof Error ? err.message : String(err)}`
4614
+ );
4615
+ skipSharedPromotion = false;
4616
+ }
4617
+ if (skipSharedPromotion) {
4618
+ return;
4619
+ }
4566
4620
  }
4567
4621
  }
4568
4622
  const sharedPromotion = await sharedStorage.writeMemory(
@@ -4589,7 +4643,8 @@ var ExtractionPersistCoordinator = class {
4589
4643
  contentHashSource: options.category === "fact" ? dedupContent : rawContent,
4590
4644
  // Claim-level provenance spans (issue #1575 PR 2).
4591
4645
  ...options.sources && options.sources.length > 0 ? { sources: options.sources } : {},
4592
- ...options.provenance ? { provenance: options.provenance } : {}
4646
+ ...options.provenance ? { provenance: options.provenance } : {},
4647
+ ...sourceContext?.sourceConnector ? { sourceConnector: sourceContext.sourceConnector } : {}
4593
4648
  }
4594
4649
  );
4595
4650
  const promotedId = sharedPromotion.id;
@@ -4657,7 +4712,8 @@ var ExtractionPersistCoordinator = class {
4657
4712
  targetStorage,
4658
4713
  dedupContent,
4659
4714
  args.bounds,
4660
- args.entityRef
4715
+ args.entityRef,
4716
+ args.sourceConnector
4661
4717
  );
4662
4718
  } catch (err) {
4663
4719
  log.warn(
@@ -4676,7 +4732,8 @@ var ExtractionPersistCoordinator = class {
4676
4732
  sharedStorage,
4677
4733
  dedupContent,
4678
4734
  args.bounds,
4679
- args.entityRef
4735
+ args.entityRef,
4736
+ args.sourceConnector
4680
4737
  );
4681
4738
  }
4682
4739
  } catch (err) {
@@ -5012,6 +5069,23 @@ var ExtractionPersistCoordinator = class {
5012
5069
  `content-hash dedup lookup failed for storage ${targetStorage.dir}; writing fact fail-open: ${err}`
5013
5070
  );
5014
5071
  }
5072
+ if (exactDuplicate) {
5073
+ try {
5074
+ const allMems = await targetStorage.readAllMemories();
5075
+ const nc = sourceContext?.sourceConnector?.trim() || void 0;
5076
+ exactDuplicate = allMems.some((m) => {
5077
+ if (m.frontmatter.category !== writeCategory) return false;
5078
+ if ((m.frontmatter.status ?? "active") !== "active") return false;
5079
+ if (normalizeStoredHashSource(stripAttributesSuffix(m.content ?? "")) !== ContentHashIndex.normalizeContent(contentHashDedupKey)) return false;
5080
+ return (m.frontmatter.sourceConnector?.trim() || void 0) === nc;
5081
+ });
5082
+ } catch (err) {
5083
+ log.warn(
5084
+ `connector-aware dedup scan failed for storage ${targetStorage.dir}; writing fail-open: ${err instanceof Error ? err.message : String(err)}`
5085
+ );
5086
+ exactDuplicate = false;
5087
+ }
5088
+ }
5015
5089
  if (exactDuplicate) {
5016
5090
  if (biTemporal && writeCategory === "fact" && (biTemporal.validUntil || biTemporal.validFrom)) {
5017
5091
  const fr = faithfulnessResultsByFactIndex?.get(factLoopIndex);
@@ -5030,7 +5104,8 @@ var ExtractionPersistCoordinator = class {
5030
5104
  observedAt: biTemporal.observedAt,
5031
5105
  eventTimeSource: biTemporal.eventTimeSource
5032
5106
  },
5033
- fact.entityRef
5107
+ fact.entityRef,
5108
+ sourceContext?.sourceConnector
5034
5109
  );
5035
5110
  await backfillTemporalBoundsOnPromotionCopies({
5036
5111
  sourceStorage: targetStorage,
@@ -5039,6 +5114,7 @@ var ExtractionPersistCoordinator = class {
5039
5114
  confidence: fact.confidence,
5040
5115
  entityRef: fact.entityRef,
5041
5116
  structuredAttributes: fact.structuredAttributes,
5117
+ sourceConnector: sourceContext?.sourceConnector,
5042
5118
  bounds: {
5043
5119
  invalidAt: biTemporal.validUntil,
5044
5120
  validFrom: biTemporal.validFrom,
@@ -5128,7 +5204,8 @@ var ExtractionPersistCoordinator = class {
5128
5204
  {
5129
5205
  enabled: true,
5130
5206
  threshold: this.deps.config.semanticDedupThreshold,
5131
- candidates: this.deps.config.semanticDedupCandidates
5207
+ candidates: this.deps.config.semanticDedupCandidates,
5208
+ sourceConnector: sourceContext?.sourceConnector
5132
5209
  }
5133
5210
  );
5134
5211
  } catch (err) {
@@ -5152,6 +5229,7 @@ var ExtractionPersistCoordinator = class {
5152
5229
  `${writeCategory} ${fact.tags.join(" ")} ${fact.content}`
5153
5230
  ) : null;
5154
5231
  const extractionWriteSource = fact.source === "proactive" ? "extraction-proactive" : "extraction";
5232
+ const extractionSourceConnector = sourceContext?.sourceConnector;
5155
5233
  let supersedes;
5156
5234
  let links = [];
5157
5235
  let contradictionDetected = false;
@@ -5221,6 +5299,7 @@ var ExtractionPersistCoordinator = class {
5221
5299
  tags: [...fact.tags, "chunked"],
5222
5300
  entityRef: fact.entityRef,
5223
5301
  source: extractionWriteSource,
5302
+ ...extractionSourceConnector ? { sourceConnector: extractionSourceConnector } : {},
5224
5303
  importance,
5225
5304
  supersedes,
5226
5305
  links: links.length > 0 ? links : void 0,
@@ -5294,7 +5373,8 @@ var ExtractionPersistCoordinator = class {
5294
5373
  // independently (memory_get/x-ray on a chunk ID) preserves
5295
5374
  // the verified span (chatgpt-codex-connector thread Ocvmo).
5296
5375
  ...fact.sources && fact.sources.length > 0 ? { sources: fact.sources } : {},
5297
- ...fact.provenance ? { provenance: fact.provenance } : {}
5376
+ ...fact.provenance ? { provenance: fact.provenance } : {},
5377
+ ...extractionSourceConnector ? { sourceConnector: extractionSourceConnector } : {}
5298
5378
  }
5299
5379
  );
5300
5380
  }
@@ -5356,6 +5436,7 @@ var ExtractionPersistCoordinator = class {
5356
5436
  ...biTemporal.validUntil ? { invalidAt: biTemporal.validUntil } : {}
5357
5437
  } : {},
5358
5438
  source: extractionWriteSource,
5439
+ ...extractionSourceConnector ? { sourceConnector: extractionSourceConnector } : {},
5359
5440
  ...fact.sources && fact.sources.length > 0 ? { sources: fact.sources } : {},
5360
5441
  ...fact.provenance ? { provenance: fact.provenance } : {}
5361
5442
  });
@@ -5384,7 +5465,8 @@ var ExtractionPersistCoordinator = class {
5384
5465
  sourceMemoryId: parentId,
5385
5466
  intentGoal: inferredIntent?.goal,
5386
5467
  intentActionType: inferredIntent?.actionType,
5387
- intentEntityTypes: inferredIntent?.entityTypes
5468
+ intentEntityTypes: inferredIntent?.entityTypes,
5469
+ ...extractionSourceConnector ? { sourceConnector: extractionSourceConnector } : {}
5388
5470
  });
5389
5471
  }
5390
5472
  if (graphCaps.multiGraphMemory && !postWriteGuard2) {
@@ -5461,6 +5543,7 @@ var ExtractionPersistCoordinator = class {
5461
5543
  tags: fact.tags,
5462
5544
  entityRef: typeof fact.entityRef === "string" ? fact.entityRef : void 0,
5463
5545
  source: extractionWriteSource,
5546
+ ...extractionSourceConnector ? { sourceConnector: extractionSourceConnector } : {},
5464
5547
  importance,
5465
5548
  supersedes,
5466
5549
  links: links.length > 0 ? links : void 0,
@@ -5553,6 +5636,7 @@ var ExtractionPersistCoordinator = class {
5553
5636
  ...biTemporal.validUntil ? { invalidAt: biTemporal.validUntil } : {}
5554
5637
  } : {},
5555
5638
  source: extractionWriteSource,
5639
+ ...extractionSourceConnector ? { sourceConnector: extractionSourceConnector } : {},
5556
5640
  ...fact.sources && fact.sources.length > 0 ? { sources: fact.sources } : {},
5557
5641
  ...fact.provenance ? { provenance: fact.provenance } : {}
5558
5642
  });
@@ -5600,7 +5684,8 @@ var ExtractionPersistCoordinator = class {
5600
5684
  sourceMemoryId: memoryId,
5601
5685
  intentGoal: inferredIntent?.goal,
5602
5686
  intentActionType: inferredIntent?.actionType,
5603
- intentEntityTypes: inferredIntent?.entityTypes
5687
+ intentEntityTypes: inferredIntent?.entityTypes,
5688
+ ...extractionSourceConnector ? { sourceConnector: extractionSourceConnector } : {}
5604
5689
  });
5605
5690
  }
5606
5691
  try {
@@ -11371,7 +11456,7 @@ var TurnIngestionCoordinator = class {
11371
11456
  logicalSessionKey: options.logicalSessionKey ?? bufferKey,
11372
11457
  providerThreadId: options.providerThreadId ?? null,
11373
11458
  turnFingerprint: options.turnFingerprint,
11374
- persistProcessedFingerprint: options.persistProcessedFingerprint === true
11459
+ ...options.sourceConnector ? { sourceConnector: options.sourceConnector } : {}
11375
11460
  };
11376
11461
  const outcome = typeof this.deps.buffer.addTurnWithOutcome === "function" ? await this.deps.buffer.addTurnWithOutcome(bufferKey, turn) : { decision: await this.deps.buffer.addTurn(bufferKey, turn) };
11377
11462
  if (outcome.decision === "keep_buffering") return;
@@ -11405,7 +11490,8 @@ var TurnIngestionCoordinator = class {
11405
11490
  sessionKey: key,
11406
11491
  parts: turn.parts,
11407
11492
  rawContent: turn.rawContent,
11408
- sourceFormat: turn.sourceFormat
11493
+ sourceFormat: turn.sourceFormat,
11494
+ sourceConnector: turn.sourceConnector
11409
11495
  });
11410
11496
  bySession.set(key, list);
11411
11497
  }
@@ -11545,7 +11631,8 @@ var TurnIngestionCoordinator = class {
11545
11631
  sourceFormat: turn.sourceFormat,
11546
11632
  importProvenance: turn.importProvenance,
11547
11633
  turnFingerprint: turn.turnFingerprint,
11548
- persistProcessedFingerprint: turn.persistProcessedFingerprint === true
11634
+ persistProcessedFingerprint: turn.persistProcessedFingerprint === true,
11635
+ ...turn.sourceConnector ? { sourceConnector: turn.sourceConnector } : {}
11549
11636
  });
11550
11637
  }
11551
11638
  if (sessionTurns.length === 0) {
@@ -13045,7 +13132,7 @@ var PersistenceIndexCoordinator = class {
13045
13132
  * Only patches fields the existing copy LACKS — never overwrites a bound the
13046
13133
  * copy already carries.
13047
13134
  */
13048
- async backfillTemporalBoundsOnDedupHit(targetStorage, dedupContent, bounds, entityRef) {
13135
+ async backfillTemporalBoundsOnDedupHit(targetStorage, dedupContent, bounds, entityRef, sourceConnector) {
13049
13136
  const hasExtractedStart = bounds.validFrom !== void 0 && bounds.eventTimeSource === "extracted";
13050
13137
  if (!bounds.invalidAt && !hasExtractedStart) return;
13051
13138
  try {
@@ -13059,6 +13146,11 @@ var PersistenceIndexCoordinator = class {
13059
13146
  if (incomingEntityNorm && m.frontmatter.entityRef && normalizeSupersessionKey(m.frontmatter.entityRef) !== incomingEntityNorm) {
13060
13147
  return false;
13061
13148
  }
13149
+ const incomingConnector = sourceConnector?.trim() || void 0;
13150
+ const candidateConnector = m.frontmatter.sourceConnector?.trim() || void 0;
13151
+ if (incomingConnector !== candidateConnector) {
13152
+ return false;
13153
+ }
13062
13154
  if (m.frontmatter.contentHash) {
13063
13155
  return m.frontmatter.contentHash === incomingHash;
13064
13156
  }
@@ -13251,11 +13343,24 @@ var PersistenceIndexCoordinator = class {
13251
13343
  const scope = this.deps.semanticDedupScopeFor(targetStorage);
13252
13344
  const hits = await this.deps.embeddingFallback.search(content, limit, { ...scope, throwOnTimeout: true });
13253
13345
  if (!Array.isArray(hits) || hits.length === 0) return [];
13254
- return hits.map((hit) => ({
13255
- id: hit.id,
13256
- score: hit.score,
13257
- path: hit.path
13258
- }));
13346
+ const enriched = await Promise.all(
13347
+ hits.map(async (hit) => {
13348
+ let sourceConnector;
13349
+ try {
13350
+ const memory = await targetStorage.getMemoryById(hit.id);
13351
+ sourceConnector = typeof memory?.frontmatter.sourceConnector === "string" ? memory.frontmatter.sourceConnector.trim() || void 0 : void 0;
13352
+ } catch {
13353
+ sourceConnector = void 0;
13354
+ }
13355
+ return {
13356
+ id: hit.id,
13357
+ score: hit.score,
13358
+ path: hit.path,
13359
+ ...sourceConnector !== void 0 ? { sourceConnector } : {}
13360
+ };
13361
+ })
13362
+ );
13363
+ return enriched;
13259
13364
  }
13260
13365
  };
13261
13366
 
@@ -15605,7 +15710,7 @@ var Orchestrator = class {
15605
15710
  },
15606
15711
  addContentHashDedup: (targetStorage, content) => this.addContentHashDedup(targetStorage, content),
15607
15712
  hasContentHashDedup: (targetStorage, content) => this.hasContentHashDedup(targetStorage, content),
15608
- backfillTemporalBoundsOnDedupHit: (targetStorage, dedupContent, bounds, entityRef) => this.backfillTemporalBoundsOnDedupHit(targetStorage, dedupContent, bounds, entityRef),
15713
+ backfillTemporalBoundsOnDedupHit: (targetStorage, dedupContent, bounds, entityRef, sourceConnector) => this.backfillTemporalBoundsOnDedupHit(targetStorage, dedupContent, bounds, entityRef, sourceConnector),
15609
15714
  saveContentHashIndexes: () => this.saveContentHashIndexes(),
15610
15715
  artifactTypeForCategory: (category) => this.artifactTypeForCategory(category),
15611
15716
  loadRoutingRules: () => this.loadRoutingRules(),
@@ -15970,12 +16075,13 @@ var Orchestrator = class {
15970
16075
  context
15971
16076
  );
15972
16077
  }
15973
- async backfillTemporalBoundsOnDedupHit(targetStorage, dedupContent, bounds, entityRef) {
16078
+ async backfillTemporalBoundsOnDedupHit(targetStorage, dedupContent, bounds, entityRef, sourceConnector) {
15974
16079
  return this.persistenceIndexCoordinator.backfillTemporalBoundsOnDedupHit(
15975
16080
  targetStorage,
15976
16081
  dedupContent,
15977
16082
  bounds,
15978
- entityRef
16083
+ entityRef,
16084
+ sourceConnector
15979
16085
  );
15980
16086
  }
15981
16087
  async saveContentHashIndexes() {
@@ -22868,4 +22974,4 @@ export {
22868
22974
  blendGraphExpandedRecallScore,
22869
22975
  Orchestrator
22870
22976
  };
22871
- //# sourceMappingURL=chunk-FKCRGLRD.js.map
22977
+ //# sourceMappingURL=chunk-4WRKKRTD.js.map