@remnic/core 10.0.68 → 10.0.70

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 (356) hide show
  1. package/dist/access-admin-ops-surface.js +80 -77
  2. package/dist/access-authorization-probe.js +81 -78
  3. package/dist/access-boundary.js +80 -77
  4. package/dist/access-cli.js +194 -191
  5. package/dist/access-cli.js.map +1 -1
  6. package/dist/access-extraction-force-flush.js +80 -77
  7. package/dist/access-http-briefing.js +81 -78
  8. package/dist/access-http-query.js +82 -79
  9. package/dist/access-http.js +104 -101
  10. package/dist/access-identity-continuity-surface.js +80 -77
  11. package/dist/access-lcm-surface.js +80 -77
  12. package/dist/access-mcp.js +93 -90
  13. package/dist/access-namespace-preflight.js +80 -77
  14. package/dist/access-observe-lcm-archive.d.ts +5 -0
  15. package/dist/access-observe-lcm-archive.d.ts.map +1 -0
  16. package/dist/access-observe-lcm-archive.js +9 -0
  17. package/dist/access-observe-objective-state.d.ts +8 -0
  18. package/dist/access-observe-objective-state.d.ts.map +1 -0
  19. package/dist/access-observe-objective-state.js +17 -0
  20. package/dist/access-observe-stage-timing.d.ts +11 -0
  21. package/dist/access-observe-stage-timing.d.ts.map +1 -0
  22. package/dist/access-observe-stage-timing.js +9 -0
  23. package/dist/access-observe-stage-timing.js.map +1 -0
  24. package/dist/access-observe-write-category.js +13 -13
  25. package/dist/access-observe-write-surface.d.ts.map +1 -1
  26. package/dist/access-observe-write-surface.js +80 -77
  27. package/dist/access-offline-manifest.js +8 -8
  28. package/dist/access-operations-batch.js +83 -80
  29. package/dist/access-operations.js +90 -87
  30. package/dist/access-recall-concurrency.js +80 -77
  31. package/dist/access-recall-response.js +80 -77
  32. package/dist/access-recall-surface.js +80 -77
  33. package/dist/access-schema.js +12 -12
  34. package/dist/access-service.d.ts +1 -0
  35. package/dist/access-service.d.ts.map +1 -1
  36. package/dist/access-service.js +80 -77
  37. package/dist/access-surface-catalog.js +82 -79
  38. package/dist/access-surface-catalog.js.map +1 -1
  39. package/dist/active-recall.js +24 -24
  40. package/dist/adapters/index.js +4 -4
  41. package/dist/adapters/registry.js +2 -2
  42. package/dist/briefing.js +15 -15
  43. package/dist/buffer.js +8 -8
  44. package/dist/calibration.js +4 -4
  45. package/dist/{capsule-crypto-GWVG7LGC.js → capsule-crypto-7FJQINUR.js} +2 -2
  46. package/dist/capsule-crypto-7FJQINUR.js.map +1 -0
  47. package/dist/causal-behavior.js +2 -2
  48. package/dist/causal-chain.js +2 -2
  49. package/dist/causal-consolidation.js +20 -20
  50. package/dist/causal-retrieval.js +2 -2
  51. package/dist/causal-trajectory-graph.js +3 -3
  52. package/dist/causal-trajectory.js +1 -1
  53. package/dist/{chunk-NCZGGGWI.js → chunk-2BBMCMJS.js} +12 -12
  54. package/dist/{chunk-UVVFPCPX.js → chunk-2GV24KFD.js} +2 -2
  55. package/dist/{chunk-OWHERGF2.js → chunk-2NLLXCJG.js} +2 -2
  56. package/dist/{chunk-QDZWQBLU.js → chunk-2R7OCBRR.js} +2 -2
  57. package/dist/{chunk-U2CAGMUD.js → chunk-2YPIFJHL.js} +2 -2
  58. package/dist/{chunk-4SOWMA55.js → chunk-3AASGFR4.js} +3 -3
  59. package/dist/{chunk-CI3MAAIY.js → chunk-3F7N4I5I.js} +2 -2
  60. package/dist/{chunk-PLCYKAWH.js → chunk-3ICAWZUU.js} +4 -4
  61. package/dist/{chunk-B4DXREWC.js → chunk-3W37NITP.js} +2 -2
  62. package/dist/{chunk-R4ZHF4K2.js → chunk-43FLJLT2.js} +4 -4
  63. package/dist/{chunk-RLVI2M5Q.js → chunk-4BOBW6H4.js} +2 -2
  64. package/dist/{chunk-HXFIILGF.js → chunk-4RASUAN3.js} +4 -4
  65. package/dist/{chunk-JLMOH5JA.js → chunk-5FMGPV34.js} +2 -2
  66. package/dist/{chunk-EI6M5NVK.js → chunk-5JBVPJCT.js} +2 -2
  67. package/dist/{chunk-74AY3S7U.js → chunk-5RW247F5.js} +10 -10
  68. package/dist/{chunk-P4TV3TQ2.js → chunk-5VQSKBNF.js} +5 -5
  69. package/dist/{chunk-H5DIRCZP.js → chunk-64U42JL5.js} +18 -18
  70. package/dist/{chunk-4XINO77L.js → chunk-66JOLMWS.js} +2 -2
  71. package/dist/{chunk-WHROVQ5Q.js → chunk-66PEACZP.js} +3 -3
  72. package/dist/{chunk-GKL6QYZO.js → chunk-6L63IN3M.js} +1 -1
  73. package/dist/{chunk-Y3XPSGNF.js → chunk-6QS5NQJH.js} +2 -2
  74. package/dist/{chunk-KOLJJN5G.js → chunk-AQNHEDXP.js} +11 -4
  75. package/dist/chunk-AQNHEDXP.js.map +1 -0
  76. package/dist/{chunk-6WKWL53V.js → chunk-B7YAIHAV.js} +127 -121
  77. package/dist/chunk-B7YAIHAV.js.map +1 -0
  78. package/dist/{chunk-M4IEZGCK.js → chunk-BFBS7OFQ.js} +7 -7
  79. package/dist/{chunk-4PG5R6BJ.js → chunk-BNU5TQLR.js} +2 -2
  80. package/dist/{chunk-B3MWELZ3.js → chunk-BW33YTF3.js} +2 -2
  81. package/dist/{chunk-H6VJSITJ.js → chunk-CIL4GHMD.js} +3 -3
  82. package/dist/{chunk-5UM4H64E.js → chunk-D3AGBN6G.js} +2 -2
  83. package/dist/{chunk-IG3EZ3TF.js → chunk-DM3UZUCN.js} +2 -2
  84. package/dist/{chunk-PMDOGXA2.js → chunk-EF3HNVL4.js} +2 -2
  85. package/dist/{chunk-TVE7W67N.js → chunk-EIZ4MK33.js} +2 -2
  86. package/dist/{chunk-AUFPPBC3.js → chunk-ENPJX3BB.js} +3 -3
  87. package/dist/{chunk-63A2BU2B.js → chunk-F4ZHKDBW.js} +5 -5
  88. package/dist/{chunk-3LBDEGQA.js → chunk-FDUCIUQ5.js} +2 -2
  89. package/dist/{chunk-CTH2CQCB.js → chunk-FM6UKZAE.js} +2 -2
  90. package/dist/{chunk-XVZA6VXC.js → chunk-FZVROZKC.js} +4 -4
  91. package/dist/{chunk-IAGVM7EY.js → chunk-GMSRLDVR.js} +2 -2
  92. package/dist/{chunk-HPB5TF55.js → chunk-GT4G2S2Y.js} +3 -3
  93. package/dist/{chunk-645WOU5I.js → chunk-H7BZBSP6.js} +4 -4
  94. package/dist/{chunk-5MGKGEL7.js → chunk-HNF7IMYQ.js} +2 -2
  95. package/dist/{chunk-W7K5BP3M.js → chunk-HQPFACXO.js} +2 -2
  96. package/dist/{chunk-TECK5IVY.js → chunk-HZNURRDS.js} +2 -2
  97. package/dist/{chunk-SXTVZ6JL.js → chunk-I6HRHJRA.js} +2 -2
  98. package/dist/{chunk-NHWDTOBN.js → chunk-ILD7N3XC.js} +20 -20
  99. package/dist/{chunk-4NV7O76Q.js → chunk-J5TVHCDG.js} +2 -2
  100. package/dist/{chunk-AL3TCNSJ.js → chunk-J6GZ2254.js} +4 -4
  101. package/dist/{chunk-OH55F76C.js → chunk-JEX2JL3U.js} +2 -2
  102. package/dist/{chunk-AVGDYYMA.js → chunk-JGQEF33K.js} +3 -3
  103. package/dist/{chunk-6P7U3HWG.js → chunk-K36RMINQ.js} +3 -3
  104. package/dist/{chunk-UW6LBFYN.js → chunk-K47G2CBP.js} +6 -6
  105. package/dist/{chunk-3RHU5MD7.js → chunk-K7LLGCPH.js} +2 -2
  106. package/dist/{chunk-BUKK5SWA.js → chunk-KQAFEZQX.js} +2 -2
  107. package/dist/chunk-L3E7MLMK.js +20 -0
  108. package/dist/chunk-L3E7MLMK.js.map +1 -0
  109. package/dist/{chunk-R2BIVU2Z.js → chunk-LTST4R7U.js} +2 -2
  110. package/dist/{chunk-IZBIDPMY.js → chunk-LYTKNK5O.js} +2 -2
  111. package/dist/{chunk-HH73M65H.js → chunk-MCFI6G7U.js} +3 -3
  112. package/dist/{chunk-V6SBA5O7.js → chunk-MFKBYXBY.js} +5 -5
  113. package/dist/{chunk-AYJQ644F.js → chunk-MK7HXGM6.js} +2 -2
  114. package/dist/{chunk-MOIJWWNA.js → chunk-MKMIY3E7.js} +13 -13
  115. package/dist/{chunk-EXQJMFRF.js → chunk-MRN2MKB7.js} +2 -2
  116. package/dist/{chunk-W26D2USW.js → chunk-MUH7RR6T.js} +6 -6
  117. package/dist/{chunk-64JLBFCQ.js → chunk-N7NAGECH.js} +2 -2
  118. package/dist/{chunk-75DCOS6I.js → chunk-OAKOAOEG.js} +67 -67
  119. package/dist/{chunk-FAF4A76Q.js → chunk-OAQO5AZJ.js} +512 -378
  120. package/dist/chunk-OAQO5AZJ.js.map +1 -0
  121. package/dist/{chunk-OPFVXM2D.js → chunk-OX6GY22Q.js} +2 -2
  122. package/dist/chunk-QCFZDYYG.js +34 -0
  123. package/dist/chunk-QCFZDYYG.js.map +1 -0
  124. package/dist/{chunk-MMCO4SRG.js → chunk-QNN4FYBD.js} +19 -11
  125. package/dist/chunk-QNN4FYBD.js.map +1 -0
  126. package/dist/{chunk-XWE3EOWX.js → chunk-RZED7FAU.js} +2 -2
  127. package/dist/{chunk-YSATDEBY.js → chunk-SBRUTD5O.js} +5 -5
  128. package/dist/{chunk-WVP2I6C5.js → chunk-SDL22RRW.js} +50 -11
  129. package/dist/chunk-SDL22RRW.js.map +1 -0
  130. package/dist/{chunk-ZORS5BG5.js → chunk-SQO5SEKA.js} +10 -10
  131. package/dist/{chunk-PRKNAIGZ.js → chunk-T6T2RMWW.js} +5 -5
  132. package/dist/{chunk-O5ZINWW3.js → chunk-THFSCUFC.js} +2 -2
  133. package/dist/{chunk-CIEEYVUB.js → chunk-TPX7XXY4.js} +2 -2
  134. package/dist/{chunk-OCK4D5PC.js → chunk-TSZP7GGJ.js} +2 -2
  135. package/dist/{chunk-L334PSLW.js → chunk-U2A56LLF.js} +8 -8
  136. package/dist/{chunk-TGQW3AMK.js → chunk-UIFWZMO7.js} +23 -23
  137. package/dist/{chunk-LN4X2NDA.js → chunk-UJ2FP2RV.js} +10 -10
  138. package/dist/{chunk-4MPAKYZU.js → chunk-VDYRXI3E.js} +5 -5
  139. package/dist/{chunk-IHCXMYSE.js → chunk-VPEIWMUT.js} +2 -2
  140. package/dist/{chunk-ELHJK7LM.js → chunk-WBN66HPI.js} +6 -6
  141. package/dist/{chunk-BJLCV2P3.js → chunk-WGRAB3KB.js} +2 -2
  142. package/dist/{chunk-IVUVQPTQ.js → chunk-WIW4LOZL.js} +2 -2
  143. package/dist/{chunk-5KDDAQ6K.js → chunk-WN2DASTS.js} +10 -10
  144. package/dist/chunk-WZU5AGO6.js +38 -0
  145. package/dist/chunk-WZU5AGO6.js.map +1 -0
  146. package/dist/{chunk-UVYI6VIX.js → chunk-X7Y7WX73.js} +1 -1
  147. package/dist/{chunk-5Y6VA6X2.js → chunk-XDUP6SWG.js} +2 -2
  148. package/dist/{chunk-GHHQLSSY.js → chunk-XR4QR3JT.js} +3 -3
  149. package/dist/{chunk-64S6X4IU.js → chunk-XTN54NML.js} +4 -4
  150. package/dist/{chunk-QGFR73SN.js → chunk-YIG4HPY4.js} +2 -2
  151. package/dist/{chunk-UYUFDTIX.js → chunk-YIXWY4OZ.js} +2 -2
  152. package/dist/{chunk-GJ4HU6LK.js → chunk-YLMTFRZR.js} +2 -2
  153. package/dist/{chunk-GGD2YDS6.js → chunk-YRMSHA7H.js} +2 -2
  154. package/dist/{chunk-Y7427SL7.js → chunk-ZG4GNPRE.js} +216 -50
  155. package/dist/chunk-ZG4GNPRE.js.map +1 -0
  156. package/dist/{chunk-KZZ5EZ7O.js → chunk-ZS5LREUZ.js} +2 -2
  157. package/dist/{chunk-JLGBJ4AX.js → chunk-ZYEWTVNQ.js} +10 -10
  158. package/dist/cli.js +131 -128
  159. package/dist/coding/export-okf-codegraph.js +14 -14
  160. package/dist/coding/pre-action-gate.js +2 -2
  161. package/dist/compounding/engine.js +16 -16
  162. package/dist/config.js +24 -24
  163. package/dist/connectors/codex-materialize-runner.js +17 -17
  164. package/dist/connectors/codex-materialize.js +2 -2
  165. package/dist/connectors/index.js +18 -18
  166. package/dist/consolidation-provenance-check.js +2 -2
  167. package/dist/convergence-refresh.js +18 -18
  168. package/dist/corpus-watermark.js +18 -18
  169. package/dist/deep-recall-http-glue.js +13 -13
  170. package/dist/deep-recall.js +2 -2
  171. package/dist/embedding-fallback.js +2 -2
  172. package/dist/entity-retrieval.js +18 -18
  173. package/dist/event-order-recall.js +2 -2
  174. package/dist/external-wiki-access.js +81 -78
  175. package/dist/extraction-span-materialize.js +2 -2
  176. package/dist/extraction.js +30 -30
  177. package/dist/{graph-edge-decay-OEX5OGMI.js → graph-edge-decay-CXTNJ7IQ.js} +6 -6
  178. package/dist/graph-edge-decay-CXTNJ7IQ.js.map +1 -0
  179. package/dist/graph-jsonl.js +4 -4
  180. package/dist/graph-snapshot.js +4 -4
  181. package/dist/graph.js +3 -3
  182. package/dist/harmonic-retrieval.js +15 -15
  183. package/dist/index.js +279 -276
  184. package/dist/lcm/archive.d.ts +12 -2
  185. package/dist/lcm/archive.d.ts.map +1 -1
  186. package/dist/lcm/archive.js +2 -2
  187. package/dist/lcm/engine.d.ts +59 -8
  188. package/dist/lcm/engine.d.ts.map +1 -1
  189. package/dist/lcm/engine.js +6 -6
  190. package/dist/lcm/index.js +16 -16
  191. package/dist/lcm/queue.d.ts +7 -3
  192. package/dist/lcm/queue.d.ts.map +1 -1
  193. package/dist/lcm/queue.js +1 -1
  194. package/dist/lcm/summarizer.d.ts +8 -1
  195. package/dist/lcm/summarizer.d.ts.map +1 -1
  196. package/dist/lcm/summarizer.js +3 -3
  197. package/dist/local-llm.js +4 -4
  198. package/dist/location/index.js +17 -17
  199. package/dist/maintenance/memory-governance.js +16 -16
  200. package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +15 -15
  201. package/dist/maintenance/rebuild-memory-projection-runner.js +18 -18
  202. package/dist/maintenance/rebuild-memory-projection.js +17 -17
  203. package/dist/memory-browse-operations.js +81 -78
  204. package/dist/memory-browse.js +6 -6
  205. package/dist/namespaces/migrate.js +16 -16
  206. package/dist/namespaces/search.js +7 -7
  207. package/dist/namespaces/storage.js +15 -15
  208. package/dist/offline-sync-changeset-generations.js +5 -5
  209. package/dist/offline-sync-embedding-generation.js +4 -4
  210. package/dist/offline-sync-snapshot-stream.js +7 -7
  211. package/dist/offline-sync.js +9 -9
  212. package/dist/operator-doctor-corpus.js +19 -19
  213. package/dist/operator-toolkit.js +39 -39
  214. package/dist/orchestration/buffer-drain-runner.js +194 -191
  215. package/dist/orchestration/buffer-drain-runner.js.map +1 -1
  216. package/dist/orchestration/extraction-persist.d.ts.map +1 -1
  217. package/dist/orchestration/maintenance.js +31 -31
  218. package/dist/orchestration/promotion-dedup-window.d.ts +118 -0
  219. package/dist/orchestration/promotion-dedup-window.d.ts.map +1 -0
  220. package/dist/orchestrator.js +195 -192
  221. package/dist/qmd.js +4 -4
  222. package/dist/recall-navigation-operations.js +81 -78
  223. package/dist/recall-navigation.js +80 -77
  224. package/dist/recall-state-view-admission.js +6 -6
  225. package/dist/recall-why-service.js +6 -6
  226. package/dist/resume-bundles.js +27 -27
  227. package/dist/search/factory.js +6 -6
  228. package/dist/search/index.js +12 -12
  229. package/dist/semantic-consolidation.js +23 -23
  230. package/dist/semantic-rule-promotion.js +15 -15
  231. package/dist/semantic-rule-verifier.js +15 -15
  232. package/dist/source-agent-qualifier.js +22 -22
  233. package/dist/standup/build.js +15 -15
  234. package/dist/storage.js +14 -14
  235. package/dist/summarizer.js +6 -6
  236. package/dist/support-passport/index.js +83 -80
  237. package/dist/transfer/backup.js +2 -2
  238. package/dist/transfer/capsule-export.js +2 -2
  239. package/dist/transfer/capsule-import.js +2 -2
  240. package/dist/transfer/export-okf.js +15 -15
  241. package/dist/verified-recall.js +15 -15
  242. package/dist/who-knows-cli.js +16 -16
  243. package/dist/who-knows.js +15 -15
  244. package/package.json +2 -2
  245. package/src/access-observe-lcm-archive.ts +30 -0
  246. package/src/access-observe-lcm-fail-closed.test.ts +118 -0
  247. package/src/access-observe-objective-state.ts +40 -0
  248. package/src/access-observe-stage-timing.test.ts +246 -0
  249. package/src/access-observe-stage-timing.ts +58 -0
  250. package/src/access-observe-write-surface.ts +45 -45
  251. package/src/access-service.ts +1 -0
  252. package/src/extraction-shared-promotion-parallel-dedup.test.ts +212 -0
  253. package/src/lcm/archive.ts +59 -7
  254. package/src/lcm/engine.ts +256 -53
  255. package/src/lcm/queue.test.ts +32 -14
  256. package/src/lcm/queue.ts +24 -16
  257. package/src/lcm/summarizer.ts +15 -2
  258. package/src/lcm-durability.test.ts +856 -0
  259. package/src/lcm-engine.test.ts +12 -3
  260. package/src/orchestration/extraction-persist.ts +40 -35
  261. package/src/orchestration/promotion-dedup-window.ts +319 -0
  262. package/dist/chunk-6WKWL53V.js.map +0 -1
  263. package/dist/chunk-FAF4A76Q.js.map +0 -1
  264. package/dist/chunk-KOLJJN5G.js.map +0 -1
  265. package/dist/chunk-MMCO4SRG.js.map +0 -1
  266. package/dist/chunk-WVP2I6C5.js.map +0 -1
  267. package/dist/chunk-Y7427SL7.js.map +0 -1
  268. /package/dist/{capsule-crypto-GWVG7LGC.js.map → access-observe-lcm-archive.js.map} +0 -0
  269. /package/dist/{graph-edge-decay-OEX5OGMI.js.map → access-observe-objective-state.js.map} +0 -0
  270. /package/dist/{chunk-NCZGGGWI.js.map → chunk-2BBMCMJS.js.map} +0 -0
  271. /package/dist/{chunk-UVVFPCPX.js.map → chunk-2GV24KFD.js.map} +0 -0
  272. /package/dist/{chunk-OWHERGF2.js.map → chunk-2NLLXCJG.js.map} +0 -0
  273. /package/dist/{chunk-QDZWQBLU.js.map → chunk-2R7OCBRR.js.map} +0 -0
  274. /package/dist/{chunk-U2CAGMUD.js.map → chunk-2YPIFJHL.js.map} +0 -0
  275. /package/dist/{chunk-4SOWMA55.js.map → chunk-3AASGFR4.js.map} +0 -0
  276. /package/dist/{chunk-CI3MAAIY.js.map → chunk-3F7N4I5I.js.map} +0 -0
  277. /package/dist/{chunk-PLCYKAWH.js.map → chunk-3ICAWZUU.js.map} +0 -0
  278. /package/dist/{chunk-B4DXREWC.js.map → chunk-3W37NITP.js.map} +0 -0
  279. /package/dist/{chunk-R4ZHF4K2.js.map → chunk-43FLJLT2.js.map} +0 -0
  280. /package/dist/{chunk-RLVI2M5Q.js.map → chunk-4BOBW6H4.js.map} +0 -0
  281. /package/dist/{chunk-HXFIILGF.js.map → chunk-4RASUAN3.js.map} +0 -0
  282. /package/dist/{chunk-JLMOH5JA.js.map → chunk-5FMGPV34.js.map} +0 -0
  283. /package/dist/{chunk-EI6M5NVK.js.map → chunk-5JBVPJCT.js.map} +0 -0
  284. /package/dist/{chunk-74AY3S7U.js.map → chunk-5RW247F5.js.map} +0 -0
  285. /package/dist/{chunk-P4TV3TQ2.js.map → chunk-5VQSKBNF.js.map} +0 -0
  286. /package/dist/{chunk-H5DIRCZP.js.map → chunk-64U42JL5.js.map} +0 -0
  287. /package/dist/{chunk-4XINO77L.js.map → chunk-66JOLMWS.js.map} +0 -0
  288. /package/dist/{chunk-WHROVQ5Q.js.map → chunk-66PEACZP.js.map} +0 -0
  289. /package/dist/{chunk-GKL6QYZO.js.map → chunk-6L63IN3M.js.map} +0 -0
  290. /package/dist/{chunk-Y3XPSGNF.js.map → chunk-6QS5NQJH.js.map} +0 -0
  291. /package/dist/{chunk-M4IEZGCK.js.map → chunk-BFBS7OFQ.js.map} +0 -0
  292. /package/dist/{chunk-4PG5R6BJ.js.map → chunk-BNU5TQLR.js.map} +0 -0
  293. /package/dist/{chunk-B3MWELZ3.js.map → chunk-BW33YTF3.js.map} +0 -0
  294. /package/dist/{chunk-H6VJSITJ.js.map → chunk-CIL4GHMD.js.map} +0 -0
  295. /package/dist/{chunk-5UM4H64E.js.map → chunk-D3AGBN6G.js.map} +0 -0
  296. /package/dist/{chunk-IG3EZ3TF.js.map → chunk-DM3UZUCN.js.map} +0 -0
  297. /package/dist/{chunk-PMDOGXA2.js.map → chunk-EF3HNVL4.js.map} +0 -0
  298. /package/dist/{chunk-TVE7W67N.js.map → chunk-EIZ4MK33.js.map} +0 -0
  299. /package/dist/{chunk-AUFPPBC3.js.map → chunk-ENPJX3BB.js.map} +0 -0
  300. /package/dist/{chunk-63A2BU2B.js.map → chunk-F4ZHKDBW.js.map} +0 -0
  301. /package/dist/{chunk-3LBDEGQA.js.map → chunk-FDUCIUQ5.js.map} +0 -0
  302. /package/dist/{chunk-CTH2CQCB.js.map → chunk-FM6UKZAE.js.map} +0 -0
  303. /package/dist/{chunk-XVZA6VXC.js.map → chunk-FZVROZKC.js.map} +0 -0
  304. /package/dist/{chunk-IAGVM7EY.js.map → chunk-GMSRLDVR.js.map} +0 -0
  305. /package/dist/{chunk-HPB5TF55.js.map → chunk-GT4G2S2Y.js.map} +0 -0
  306. /package/dist/{chunk-645WOU5I.js.map → chunk-H7BZBSP6.js.map} +0 -0
  307. /package/dist/{chunk-5MGKGEL7.js.map → chunk-HNF7IMYQ.js.map} +0 -0
  308. /package/dist/{chunk-W7K5BP3M.js.map → chunk-HQPFACXO.js.map} +0 -0
  309. /package/dist/{chunk-TECK5IVY.js.map → chunk-HZNURRDS.js.map} +0 -0
  310. /package/dist/{chunk-SXTVZ6JL.js.map → chunk-I6HRHJRA.js.map} +0 -0
  311. /package/dist/{chunk-NHWDTOBN.js.map → chunk-ILD7N3XC.js.map} +0 -0
  312. /package/dist/{chunk-4NV7O76Q.js.map → chunk-J5TVHCDG.js.map} +0 -0
  313. /package/dist/{chunk-AL3TCNSJ.js.map → chunk-J6GZ2254.js.map} +0 -0
  314. /package/dist/{chunk-OH55F76C.js.map → chunk-JEX2JL3U.js.map} +0 -0
  315. /package/dist/{chunk-AVGDYYMA.js.map → chunk-JGQEF33K.js.map} +0 -0
  316. /package/dist/{chunk-6P7U3HWG.js.map → chunk-K36RMINQ.js.map} +0 -0
  317. /package/dist/{chunk-UW6LBFYN.js.map → chunk-K47G2CBP.js.map} +0 -0
  318. /package/dist/{chunk-3RHU5MD7.js.map → chunk-K7LLGCPH.js.map} +0 -0
  319. /package/dist/{chunk-BUKK5SWA.js.map → chunk-KQAFEZQX.js.map} +0 -0
  320. /package/dist/{chunk-R2BIVU2Z.js.map → chunk-LTST4R7U.js.map} +0 -0
  321. /package/dist/{chunk-IZBIDPMY.js.map → chunk-LYTKNK5O.js.map} +0 -0
  322. /package/dist/{chunk-HH73M65H.js.map → chunk-MCFI6G7U.js.map} +0 -0
  323. /package/dist/{chunk-V6SBA5O7.js.map → chunk-MFKBYXBY.js.map} +0 -0
  324. /package/dist/{chunk-AYJQ644F.js.map → chunk-MK7HXGM6.js.map} +0 -0
  325. /package/dist/{chunk-MOIJWWNA.js.map → chunk-MKMIY3E7.js.map} +0 -0
  326. /package/dist/{chunk-EXQJMFRF.js.map → chunk-MRN2MKB7.js.map} +0 -0
  327. /package/dist/{chunk-W26D2USW.js.map → chunk-MUH7RR6T.js.map} +0 -0
  328. /package/dist/{chunk-64JLBFCQ.js.map → chunk-N7NAGECH.js.map} +0 -0
  329. /package/dist/{chunk-75DCOS6I.js.map → chunk-OAKOAOEG.js.map} +0 -0
  330. /package/dist/{chunk-OPFVXM2D.js.map → chunk-OX6GY22Q.js.map} +0 -0
  331. /package/dist/{chunk-XWE3EOWX.js.map → chunk-RZED7FAU.js.map} +0 -0
  332. /package/dist/{chunk-YSATDEBY.js.map → chunk-SBRUTD5O.js.map} +0 -0
  333. /package/dist/{chunk-ZORS5BG5.js.map → chunk-SQO5SEKA.js.map} +0 -0
  334. /package/dist/{chunk-PRKNAIGZ.js.map → chunk-T6T2RMWW.js.map} +0 -0
  335. /package/dist/{chunk-O5ZINWW3.js.map → chunk-THFSCUFC.js.map} +0 -0
  336. /package/dist/{chunk-CIEEYVUB.js.map → chunk-TPX7XXY4.js.map} +0 -0
  337. /package/dist/{chunk-OCK4D5PC.js.map → chunk-TSZP7GGJ.js.map} +0 -0
  338. /package/dist/{chunk-L334PSLW.js.map → chunk-U2A56LLF.js.map} +0 -0
  339. /package/dist/{chunk-TGQW3AMK.js.map → chunk-UIFWZMO7.js.map} +0 -0
  340. /package/dist/{chunk-LN4X2NDA.js.map → chunk-UJ2FP2RV.js.map} +0 -0
  341. /package/dist/{chunk-4MPAKYZU.js.map → chunk-VDYRXI3E.js.map} +0 -0
  342. /package/dist/{chunk-IHCXMYSE.js.map → chunk-VPEIWMUT.js.map} +0 -0
  343. /package/dist/{chunk-ELHJK7LM.js.map → chunk-WBN66HPI.js.map} +0 -0
  344. /package/dist/{chunk-BJLCV2P3.js.map → chunk-WGRAB3KB.js.map} +0 -0
  345. /package/dist/{chunk-IVUVQPTQ.js.map → chunk-WIW4LOZL.js.map} +0 -0
  346. /package/dist/{chunk-5KDDAQ6K.js.map → chunk-WN2DASTS.js.map} +0 -0
  347. /package/dist/{chunk-UVYI6VIX.js.map → chunk-X7Y7WX73.js.map} +0 -0
  348. /package/dist/{chunk-5Y6VA6X2.js.map → chunk-XDUP6SWG.js.map} +0 -0
  349. /package/dist/{chunk-GHHQLSSY.js.map → chunk-XR4QR3JT.js.map} +0 -0
  350. /package/dist/{chunk-64S6X4IU.js.map → chunk-XTN54NML.js.map} +0 -0
  351. /package/dist/{chunk-QGFR73SN.js.map → chunk-YIG4HPY4.js.map} +0 -0
  352. /package/dist/{chunk-UYUFDTIX.js.map → chunk-YIXWY4OZ.js.map} +0 -0
  353. /package/dist/{chunk-GJ4HU6LK.js.map → chunk-YLMTFRZR.js.map} +0 -0
  354. /package/dist/{chunk-GGD2YDS6.js.map → chunk-YRMSHA7H.js.map} +0 -0
  355. /package/dist/{chunk-KZZ5EZ7O.js.map → chunk-ZS5LREUZ.js.map} +0 -0
  356. /package/dist/{chunk-JLGBJ4AX.js.map → chunk-ZYEWTVNQ.js.map} +0 -0
@@ -7,22 +7,22 @@ import {
7
7
  syncWearableSource,
8
8
  wearableSourceLabel
9
9
  } from "./chunk-5QV6CE6K.js";
10
- import {
11
- CompressionGuidelineCoordinator
12
- } from "./chunk-5PHOU5QI.js";
13
10
  import {
14
11
  ActivityStore,
15
12
  MaintenanceScheduler
16
- } from "./chunk-JLGBJ4AX.js";
13
+ } from "./chunk-ZYEWTVNQ.js";
17
14
  import {
18
15
  runPeerProfileReasoner
19
16
  } from "./chunk-I74SUMNI.js";
17
+ import {
18
+ CompressionGuidelineCoordinator
19
+ } from "./chunk-5PHOU5QI.js";
20
20
  import {
21
21
  migrateFromEngram
22
22
  } from "./chunk-VZAKYDMJ.js";
23
23
  import {
24
24
  LcmEngine
25
- } from "./chunk-Y7427SL7.js";
25
+ } from "./chunk-ZG4GNPRE.js";
26
26
  import {
27
27
  chunkTranscriptEntries
28
28
  } from "./chunk-TECVW3JP.js";
@@ -32,7 +32,7 @@ import {
32
32
  import {
33
33
  CompoundingEngine,
34
34
  defaultTierMigrationCycleBudget
35
- } from "./chunk-GHHQLSSY.js";
35
+ } from "./chunk-XR4QR3JT.js";
36
36
  import {
37
37
  SharedContextManager
38
38
  } from "./chunk-5KBIOI4G.js";
@@ -44,9 +44,15 @@ import {
44
44
  applyUtilityRankingRuntimeDelta,
45
45
  loadUtilityRuntimeValues
46
46
  } from "./chunk-3Q3XD3NO.js";
47
+ import {
48
+ TmtBuilder
49
+ } from "./chunk-ECZU5BJH.js";
47
50
  import {
48
51
  extractTopics
49
52
  } from "./chunk-KVDUKH5E.js";
53
+ import {
54
+ buildTemporalTimelineRecallSection
55
+ } from "./chunk-VHF73MGU.js";
50
56
  import {
51
57
  CODEX_THREAD_KEY_PREFIX
52
58
  } from "./chunk-4EX5WZ4M.js";
@@ -56,16 +62,10 @@ import {
56
62
  import {
57
63
  decideTierTransition
58
64
  } from "./chunk-GCBIXUPT.js";
59
- import {
60
- TmtBuilder
61
- } from "./chunk-ECZU5BJH.js";
62
65
  import {
63
66
  buildTargetedFactRecallSection,
64
67
  shouldRecallTargetedFactEvidence
65
68
  } from "./chunk-T67LUYCR.js";
66
- import {
67
- buildTemporalTimelineRecallSection
68
- } from "./chunk-VHF73MGU.js";
69
69
  import {
70
70
  memoriesToStandingEntries,
71
71
  prefixStandingMemoryBlock,
@@ -74,14 +74,6 @@ import {
74
74
  import {
75
75
  SessionObserverState
76
76
  } from "./chunk-ODZKV2F7.js";
77
- import {
78
- applyRuntimeRetrievalPolicy
79
- } from "./chunk-5IZL4DCV.js";
80
- import {
81
- RerankCache,
82
- reorderByRankedKeys,
83
- rerankLocalOrNoop
84
- } from "./chunk-LUDXM7MD.js";
85
77
  import {
86
78
  buildResponseGuidanceRecallSection,
87
79
  shouldRecallResponseGuidance
@@ -108,15 +100,23 @@ import {
108
100
  resolvePromptTagPrefilterAsync
109
101
  } from "./chunk-ZOKZIR5K.js";
110
102
  import {
111
- findUnresolvedEntityRefs
112
- } from "./chunk-X7XN6YU4.js";
103
+ applyRuntimeRetrievalPolicy
104
+ } from "./chunk-5IZL4DCV.js";
113
105
  import {
114
106
  RelevanceStore
115
107
  } from "./chunk-X7J56GPG.js";
108
+ import {
109
+ RerankCache,
110
+ reorderByRankedKeys,
111
+ rerankLocalOrNoop
112
+ } from "./chunk-LUDXM7MD.js";
113
+ import {
114
+ findUnresolvedEntityRefs
115
+ } from "./chunk-X7XN6YU4.js";
116
116
  import {
117
117
  indexStateViewAnnotatedResults,
118
118
  resolveRecallStateViewActive
119
- } from "./chunk-64JLBFCQ.js";
119
+ } from "./chunk-N7NAGECH.js";
120
120
  import {
121
121
  applyRecallStateViews
122
122
  } from "./chunk-DBB5JPSL.js";
@@ -128,15 +128,15 @@ import {
128
128
  import {
129
129
  reorderRecallResultsWithMmr
130
130
  } from "./chunk-IIK2PD3F.js";
131
- import {
132
- applyReasoningTraceBoost
133
- } from "./chunk-EVWDNKQA.js";
134
131
  import {
135
132
  compactRecallContextFromBuckets,
136
133
  decideRecallContextComposition,
137
134
  notifyContextComposition,
138
135
  recallFailureComposition
139
136
  } from "./chunk-MGN2RQRG.js";
137
+ import {
138
+ applyReasoningTraceBoost
139
+ } from "./chunk-EVWDNKQA.js";
140
140
  import {
141
141
  installPrioritizedEmbedding
142
142
  } from "./chunk-ROI7BK7H.js";
@@ -154,12 +154,6 @@ import {
154
154
  import {
155
155
  runLiveConnectorsOnce
156
156
  } from "./chunk-APYY5CX3.js";
157
- import {
158
- classifyMemoryKind
159
- } from "./chunk-YAZNBMNF.js";
160
- import {
161
- scoreEvidencePathDetail
162
- } from "./chunk-XXSOVESA.js";
163
157
  import {
164
158
  deriveHarmonicRecords,
165
159
  harmonicEntityReferenceMatches,
@@ -167,6 +161,16 @@ import {
167
161
  normalizedHarmonicEntityIdentity,
168
162
  persistHarmonicRecords
169
163
  } from "./chunk-LQ5SS4OP.js";
164
+ import {
165
+ classifyMemoryKind
166
+ } from "./chunk-YAZNBMNF.js";
167
+ import {
168
+ scoreEvidencePathDetail
169
+ } from "./chunk-XXSOVESA.js";
170
+ import {
171
+ buildFocusedListRecallSection,
172
+ shouldRecallFocusedListEvidence
173
+ } from "./chunk-OH7QLI6W.js";
170
174
  import {
171
175
  chunkExtractionWindow,
172
176
  classifyDrainResult,
@@ -175,17 +179,10 @@ import {
175
179
  } from "./chunk-VA3GNAWQ.js";
176
180
  import {
177
181
  ExtractionEngine
178
- } from "./chunk-LN4X2NDA.js";
182
+ } from "./chunk-UJ2FP2RV.js";
179
183
  import {
180
184
  parseMemoryActionEligibilityContext
181
185
  } from "./chunk-JHU4EYDV.js";
182
- import {
183
- buildFocusedListRecallSection,
184
- shouldRecallFocusedListEvidence
185
- } from "./chunk-OH7QLI6W.js";
186
- import {
187
- recordJudgeTrainingPair
188
- } from "./chunk-PWFCHOB3.js";
189
186
  import {
190
187
  createDeferCountMap,
191
188
  createVerdictCache,
@@ -193,9 +190,15 @@ import {
193
190
  judgeFactDurability,
194
191
  validateProcedureExtraction
195
192
  } from "./chunk-TJ5YGCPV.js";
193
+ import {
194
+ recordJudgeTrainingPair
195
+ } from "./chunk-PWFCHOB3.js";
196
+ import {
197
+ buildExplicitCueRecallSection
198
+ } from "./chunk-TVIVY7KU.js";
196
199
  import {
197
200
  buildEventOrderRecallSection
198
- } from "./chunk-645WOU5I.js";
201
+ } from "./chunk-H7BZBSP6.js";
199
202
  import {
200
203
  shouldRecallEventOrderEvidence
201
204
  } from "./chunk-BUYVPUEM.js";
@@ -203,29 +206,26 @@ import {
203
206
  pickFactEventTimeAnchor,
204
207
  resolveFactEventTime
205
208
  } from "./chunk-IAIPNEHD.js";
206
- import {
207
- buildExplicitCueRecallSection
208
- } from "./chunk-TVIVY7KU.js";
209
209
  import {
210
210
  buildEntityRecallSection,
211
211
  entityRecentTranscriptLookbackHours,
212
212
  readRecentEntityTranscriptEntries
213
- } from "./chunk-NCZGGGWI.js";
213
+ } from "./chunk-2BBMCMJS.js";
214
214
  import {
215
215
  planEpisodeWindowsWithFallback
216
216
  } from "./chunk-T3GIETKV.js";
217
+ import {
218
+ EmbeddingFallback
219
+ } from "./chunk-SBRUTD5O.js";
217
220
  import {
218
221
  tryDirectAnswer
219
222
  } from "./chunk-5IIQU4JZ.js";
220
- import {
221
- EmbeddingFallback
222
- } from "./chunk-YSATDEBY.js";
223
223
  import {
224
224
  formatDaySummaryMemories
225
225
  } from "./chunk-7G5NTS7F.js";
226
226
  import {
227
227
  refreshConvergedNamespaces
228
- } from "./chunk-OCK4D5PC.js";
228
+ } from "./chunk-TSZP7GGJ.js";
229
229
  import {
230
230
  builtInConnectorPackageSpecifier,
231
231
  ensureBuiltInWearableConnectors,
@@ -234,24 +234,24 @@ import {
234
234
  runTimelinePublishCli,
235
235
  screenCandidateFact,
236
236
  summarizeVaultPublish
237
- } from "./chunk-75DCOS6I.js";
238
- import {
239
- normalizeReplaySessionKey
240
- } from "./chunk-AJVLDJU6.js";
237
+ } from "./chunk-OAKOAOEG.js";
241
238
  import {
242
239
  RoutingRulesStore
243
240
  } from "./chunk-TBUEE7XF.js";
241
+ import {
242
+ normalizeReplaySessionKey
243
+ } from "./chunk-AJVLDJU6.js";
244
244
  import {
245
245
  compareVerifiedEpisodeResults,
246
246
  searchVerifiedEpisodes
247
- } from "./chunk-KZZ5EZ7O.js";
247
+ } from "./chunk-ZS5LREUZ.js";
248
248
  import {
249
249
  ThreadingManager
250
250
  } from "./chunk-VHSQU3RO.js";
251
251
  import {
252
252
  compareVerifiedSemanticRuleResults,
253
253
  searchVerifiedSemanticRules
254
- } from "./chunk-TVE7W67N.js";
254
+ } from "./chunk-EIZ4MK33.js";
255
255
  import {
256
256
  searchWorkProductLedgerEntries
257
257
  } from "./chunk-B2NXOVZN.js";
@@ -264,10 +264,10 @@ import {
264
264
  import {
265
265
  runNamespaceMaintenanceFanout,
266
266
  summarizeNamespaceMaintenanceHealth
267
- } from "./chunk-MOIJWWNA.js";
267
+ } from "./chunk-MKMIY3E7.js";
268
268
  import {
269
269
  planNamespaceMaintenance
270
- } from "./chunk-HH73M65H.js";
270
+ } from "./chunk-MCFI6G7U.js";
271
271
  import {
272
272
  isAboveImportanceThreshold,
273
273
  scoreImportance
@@ -296,10 +296,7 @@ import {
296
296
  materializeAfterSemanticConsolidation,
297
297
  parseConsolidationResponse,
298
298
  parseOperatorAwareConsolidationResponse
299
- } from "./chunk-AYJQ644F.js";
300
- import {
301
- SmartBuffer
302
- } from "./chunk-4MPAKYZU.js";
299
+ } from "./chunk-MK7HXGM6.js";
303
300
  import {
304
301
  semanticChunkContent
305
302
  } from "./chunk-2GBFKHBZ.js";
@@ -307,12 +304,8 @@ import {
307
304
  chunkContent
308
305
  } from "./chunk-6TBIWIAG.js";
309
306
  import {
310
- buildRecallQueryPolicy
311
- } from "./chunk-C6WMSXCJ.js";
312
- import {
313
- buildBehaviorSignalsForMemory,
314
- dedupeBehaviorSignalsByMemoryAndHash
315
- } from "./chunk-KD3QD3A5.js";
307
+ SmartBuffer
308
+ } from "./chunk-VDYRXI3E.js";
316
309
  import {
317
310
  BootstrapEngine
318
311
  } from "./chunk-MYVPLJOO.js";
@@ -322,9 +315,6 @@ import {
322
315
  import {
323
316
  BoxBuilder
324
317
  } from "./chunk-B7RWBZXW.js";
325
- import {
326
- evaluateMemoryActionPolicy
327
- } from "./chunk-MI2OTWV5.js";
328
318
  import {
329
319
  REFUSED_MERGE_CATEGORIES,
330
320
  applyNoveltyGate,
@@ -335,7 +325,7 @@ import {
335
325
  embeddingsFromCosineHits,
336
326
  normalizeConnectorScope,
337
327
  runSeedGraduationPass
338
- } from "./chunk-PRKNAIGZ.js";
328
+ } from "./chunk-T6T2RMWW.js";
339
329
  import {
340
330
  compileCorrectionRule,
341
331
  correctionsFilePath,
@@ -371,9 +361,19 @@ import {
371
361
  AMBIENT_CAPTURE_PROMPT_RULE,
372
362
  isHighImpactPersonalFact
373
363
  } from "./chunk-QW27DOHG.js";
364
+ import {
365
+ buildRecallQueryPolicy
366
+ } from "./chunk-C6WMSXCJ.js";
367
+ import {
368
+ buildBehaviorSignalsForMemory,
369
+ dedupeBehaviorSignalsByMemoryAndHash
370
+ } from "./chunk-KD3QD3A5.js";
371
+ import {
372
+ evaluateMemoryActionPolicy
373
+ } from "./chunk-MI2OTWV5.js";
374
374
  import {
375
375
  MeetingsInputError
376
- } from "./chunk-H5DIRCZP.js";
376
+ } from "./chunk-64U42JL5.js";
377
377
  import {
378
378
  WearablesInputError,
379
379
  describeErrorForOperator
@@ -388,10 +388,10 @@ import {
388
388
  import {
389
389
  removeNodeEdgesForRewrite,
390
390
  rollbackNodeEdgeRewrite
391
- } from "./chunk-W7K5BP3M.js";
391
+ } from "./chunk-HQPFACXO.js";
392
392
  import {
393
393
  NamespaceCatalog
394
- } from "./chunk-CI3MAAIY.js";
394
+ } from "./chunk-3F7N4I5I.js";
395
395
  import {
396
396
  RecallResultFormatter,
397
397
  SessionContextCoordinator,
@@ -400,13 +400,17 @@ import {
400
400
  detectPassiveCorrections,
401
401
  renderSessionExperiencePreview,
402
402
  scoreSessionExperienceForPrompt
403
- } from "./chunk-6WKWL53V.js";
403
+ } from "./chunk-B7YAIHAV.js";
404
404
  import {
405
405
  importCapsule
406
- } from "./chunk-QDZWQBLU.js";
406
+ } from "./chunk-2R7OCBRR.js";
407
407
  import {
408
408
  isCodingGraphInstalled
409
409
  } from "./chunk-VQ7B2Q6M.js";
410
+ import {
411
+ listTrustZoneRecords,
412
+ searchTrustZoneRecords
413
+ } from "./chunk-JWX2Q6HS.js";
410
414
  import {
411
415
  applyTrustScoreStage,
412
416
  buildTrustSignalsForRerank,
@@ -414,13 +418,9 @@ import {
414
418
  trustResultFor,
415
419
  trustResultKey
416
420
  } from "./chunk-GNVZQ5JN.js";
417
- import {
418
- listTrustZoneRecords,
419
- searchTrustZoneRecords
420
- } from "./chunk-JWX2Q6HS.js";
421
421
  import {
422
422
  HourlySummarizer
423
- } from "./chunk-W26D2USW.js";
423
+ } from "./chunk-MUH7RR6T.js";
424
424
  import {
425
425
  LastRecallStore,
426
426
  RecallHandleHistoryStore,
@@ -430,20 +430,16 @@ import {
430
430
  import {
431
431
  buildXraySnapshot
432
432
  } from "./chunk-7O2MC42R.js";
433
- import {
434
- objectiveStateStoreOverrideForNamespace,
435
- searchObjectiveStateSnapshots
436
- } from "./chunk-4RNBLLZR.js";
437
433
  import {
438
434
  filterRecallCandidates,
439
435
  isGenericRecallExcludedPath,
440
436
  isTopLevelArchivePath,
441
437
  journalPath,
442
438
  writeJournalFile
443
- } from "./chunk-BJLCV2P3.js";
439
+ } from "./chunk-WGRAB3KB.js";
444
440
  import {
445
441
  searchHarmonicRetrieval
446
- } from "./chunk-EXQJMFRF.js";
442
+ } from "./chunk-MRN2MKB7.js";
447
443
  import {
448
444
  ProfilingCollector
449
445
  } from "./chunk-DOWACHYO.js";
@@ -464,15 +460,15 @@ import {
464
460
  renderAuthorityBoundContent,
465
461
  selectCuriosityQuestion
466
462
  } from "./chunk-NVKO5YKP.js";
467
- import {
468
- NamespaceStorageRouter
469
- } from "./chunk-5UM4H64E.js";
470
463
  import {
471
464
  pruneOrphanCueAnchors
472
465
  } from "./chunk-LXATZLSC.js";
466
+ import {
467
+ NamespaceStorageRouter
468
+ } from "./chunk-D3AGBN6G.js";
473
469
  import {
474
470
  GraphIndex
475
- } from "./chunk-M4IEZGCK.js";
471
+ } from "./chunk-BFBS7OFQ.js";
476
472
  import {
477
473
  GraphEdgeAppendError
478
474
  } from "./chunk-GKCXTSFF.js";
@@ -480,7 +476,7 @@ import {
480
476
  ExtractionDeadlineError,
481
477
  ExtractionRunCoordinator,
482
478
  classifyExtractionOrigin
483
- } from "./chunk-R2BIVU2Z.js";
479
+ } from "./chunk-LTST4R7U.js";
484
480
  import {
485
481
  ARTIFACT_STATUS_CACHE_TTL_MS,
486
482
  BulkImportBatchPartialFailureError,
@@ -520,7 +516,7 @@ import {
520
516
  throwIfRecallAborted,
521
517
  tokenizeRecallQuery,
522
518
  utcDateKeysForLocalDay
523
- } from "./chunk-R4ZHF4K2.js";
519
+ } from "./chunk-43FLJLT2.js";
524
520
  import {
525
521
  inferIntentFromText,
526
522
  intentCompatibilityScore,
@@ -529,17 +525,10 @@ import {
529
525
  } from "./chunk-CSAKJVXW.js";
530
526
  import {
531
527
  LocalLlmClient
532
- } from "./chunk-74AY3S7U.js";
528
+ } from "./chunk-5RW247F5.js";
533
529
  import {
534
530
  buildChainFollowupGenerator
535
- } from "./chunk-IAGVM7EY.js";
536
- import {
537
- decideLifecycleTransition,
538
- resolveLifecycleState
539
- } from "./chunk-TBBDFYXW.js";
540
- import {
541
- estimateTokenCount
542
- } from "./chunk-TOTT6S2V.js";
531
+ } from "./chunk-GMSRLDVR.js";
543
532
  import {
544
533
  capStateViewPackets,
545
534
  reconcileStateViewPairs,
@@ -557,7 +546,7 @@ import {
557
546
  } from "./chunk-QDW3E4RD.js";
558
547
  import {
559
548
  searchCausalTrajectories
560
- } from "./chunk-GKL6QYZO.js";
549
+ } from "./chunk-6L63IN3M.js";
561
550
  import {
562
551
  QmdResultResolver,
563
552
  StorageManager,
@@ -577,7 +566,10 @@ import {
577
566
  reconstructFusionInputs,
578
567
  selfDeps,
579
568
  serializeFusionDay
580
- } from "./chunk-NHWDTOBN.js";
569
+ } from "./chunk-ILD7N3XC.js";
570
+ import {
571
+ buildRetiredFactTombstoneInputs
572
+ } from "./chunk-QGVCFVX6.js";
581
573
  import {
582
574
  bodyIsEscaped,
583
575
  decodeTranscriptBody,
@@ -588,18 +580,15 @@ import {
588
580
  saveSpeakerRegistry,
589
581
  speakerRegistryKey
590
582
  } from "./chunk-UHVXE24Y.js";
591
- import {
592
- buildRetiredFactTombstoneInputs
593
- } from "./chunk-QGVCFVX6.js";
594
583
  import {
595
584
  NamespaceSearchRouter,
596
585
  namespaceCollectionName
597
- } from "./chunk-OH55F76C.js";
586
+ } from "./chunk-JEX2JL3U.js";
598
587
  import {
599
588
  createConversationIndexRuntime,
600
589
  createSearchBackend,
601
590
  isSearchBackendEnabled
602
- } from "./chunk-L334PSLW.js";
591
+ } from "./chunk-U2A56LLF.js";
603
592
  import {
604
593
  NoopSearchBackend
605
594
  } from "./chunk-CYEPCZN5.js";
@@ -629,14 +618,14 @@ import {
629
618
  isDirectorySidecarsEnabledForDir,
630
619
  setDirectorySidecarsEnabledForDir
631
620
  } from "./chunk-3OUGSOJP.js";
621
+ import {
622
+ checkCorpusReadAbort
623
+ } from "./chunk-P4GUQSK3.js";
632
624
  import {
633
625
  detectLanguageHint,
634
626
  dominantCorpusLanguage,
635
627
  planCrossScript
636
628
  } from "./chunk-3WU7XOFN.js";
637
- import {
638
- checkCorpusReadAbort
639
- } from "./chunk-P4GUQSK3.js";
640
629
  import {
641
630
  createVersion,
642
631
  pruneVersions,
@@ -669,15 +658,15 @@ import {
669
658
  isValidAsOf,
670
659
  isValidityExpiredNow
671
660
  } from "./chunk-6CIAGZ6X.js";
672
- import {
673
- isUntrustedOrigin,
674
- parseOriginClass
675
- } from "./chunk-23G5P7TA.js";
676
661
  import {
677
662
  buildQmdRecallCacheKey,
678
663
  getCachedQmdRecall,
679
664
  setCachedQmdRecall
680
665
  } from "./chunk-42JKGUFJ.js";
666
+ import {
667
+ isUntrustedOrigin,
668
+ parseOriginClass
669
+ } from "./chunk-23G5P7TA.js";
681
670
  import {
682
671
  bufferTurnsEqual,
683
672
  describeError,
@@ -696,6 +685,13 @@ import {
696
685
  resolveRecallCoreSectionDeadlineMs,
697
686
  runRecallSectionWithinDeadline
698
687
  } from "./chunk-RNFMFC37.js";
688
+ import {
689
+ decideLifecycleTransition,
690
+ resolveLifecycleState
691
+ } from "./chunk-TBBDFYXW.js";
692
+ import {
693
+ estimateTokenCount
694
+ } from "./chunk-TOTT6S2V.js";
699
695
  import {
700
696
  coerceBool,
701
697
  coerceBooleanLike,
@@ -711,6 +707,10 @@ import {
711
707
  import {
712
708
  extractJsonCandidates
713
709
  } from "./chunk-YBA52OKG.js";
710
+ import {
711
+ objectiveStateStoreOverrideForNamespace,
712
+ searchObjectiveStateSnapshots
713
+ } from "./chunk-4RNBLLZR.js";
714
714
  import {
715
715
  localDayKey,
716
716
  renderDayLocationContext
@@ -738,13 +738,13 @@ import {
738
738
  import {
739
739
  CAPSULE_ID_PATTERN
740
740
  } from "./chunk-WEHSQBFR.js";
741
- import {
742
- buildRetrievedMemoryProvenance
743
- } from "./chunk-I4WBNM3M.js";
744
741
  import {
745
742
  keyring_exports,
746
743
  secureStoreDir
747
744
  } from "./chunk-BJMBJZ2Y.js";
745
+ import {
746
+ buildRetrievedMemoryProvenance
747
+ } from "./chunk-I4WBNM3M.js";
748
748
  import {
749
749
  getConfiguredNamespaces,
750
750
  resolveNamespaceFromStorageDir,
@@ -790,7 +790,7 @@ import {
790
790
  } from "./chunk-JAKIDQB2.js";
791
791
  import {
792
792
  storageBackedIndexStoreIo
793
- } from "./chunk-5KDDAQ6K.js";
793
+ } from "./chunk-WN2DASTS.js";
794
794
  import {
795
795
  assertIsDirectoryNotSymlink,
796
796
  assertRealpathInsideRoot
@@ -5042,230 +5042,15 @@ async function persistUnderFactDedupWindow(storageDir, recheck, write) {
5042
5042
  );
5043
5043
  }
5044
5044
 
5045
- // src/orchestration/extraction-injection-gate.ts
5046
- function serializeInjectionScreenCandidate(candidate) {
5047
- const body = candidate.category === "procedure" ? buildProcedurePersistBody(candidate.content, candidate.procedureSteps) : candidate.content;
5048
- const attrs = Object.fromEntries(
5049
- Object.entries(candidate.structuredAttributes ?? {}).flatMap(([key, value]) => {
5050
- if (typeof value === "string") return [[key, value]];
5051
- if (typeof value === "number" || typeof value === "boolean") return [[key, String(value)]];
5052
- return [];
5053
- })
5054
- );
5055
- return Object.keys(attrs).length > 0 ? `${body}
5056
- [Attributes: ${normalizeAttributePairs(attrs)}]` : body;
5057
- }
5058
- function evaluateInjectionScreen(candidate, enabled, profile = "default") {
5059
- if (!enabled) return { tags: [] };
5060
- const content = typeof candidate === "string" ? candidate : serializeInjectionScreenCandidate(candidate);
5061
- const result = screenCandidateFact(content, profile);
5062
- return {
5063
- status: result.quarantine === true ? "pending_review" : void 0,
5064
- tags: result.quarantine === true ? result.findings.map((finding) => `injection-screen:${finding.rule}`) : []
5065
- };
5066
- }
5067
- function withholdScreenedStrings(values, enabled, profile = "default") {
5068
- const kept = [];
5069
- const withheldRules = [];
5070
- for (const value of values) {
5071
- if (typeof value !== "string") continue;
5072
- if (!enabled) {
5073
- kept.push(value);
5074
- continue;
5075
- }
5076
- const screened = screenCandidateFact(value, profile);
5077
- if (screened.quarantine) {
5078
- withheldRules.push(...screened.findings.map((finding) => `injection-screen:${finding.rule}`));
5079
- } else {
5080
- kept.push(value);
5081
- }
5082
- }
5083
- return { kept, withheldRules };
5084
- }
5085
- function screenEntityForIndex(entity, enabled, profile = "default") {
5086
- const record = entity;
5087
- const name = record?.name;
5088
- const type = record?.type;
5089
- if (typeof name !== "string" || !name.trim() || typeof type !== "string" || !type.trim()) return null;
5090
- const nameScreen = withholdScreenedStrings([name], enabled, profile);
5091
- const factScreen = withholdScreenedStrings(Array.isArray(record?.facts) ? record.facts : [], enabled, profile);
5092
- const rawSections = Array.isArray(record?.structuredSections) ? record.structuredSections : void 0;
5093
- const sectionScreens = enabled && rawSections ? rawSections.map((section) => ({ section, screen: withholdScreenedStrings(section?.facts ?? [], true, profile) })) : void 0;
5094
- return {
5095
- name,
5096
- type,
5097
- source: typeof record?.source === "string" ? record.source : "extraction",
5098
- facts: factScreen.kept,
5099
- ...sectionScreens ? {
5100
- structuredSections: sectionScreens.map(({ section, screen }) => {
5101
- let nextFactIndex = 0;
5102
- const factOrigins = screen.kept.map((fact) => {
5103
- const factIndex = section.facts.indexOf(fact, nextFactIndex);
5104
- nextFactIndex = factIndex + 1;
5105
- const origin = section.factOrigins?.[factIndex];
5106
- return origin === void 0 ? void 0 : parseOriginClass(origin);
5107
- });
5108
- return {
5109
- ...section,
5110
- facts: screen.kept,
5111
- ...factOrigins.some((origin) => origin !== void 0) ? { factOrigins } : {}
5112
- };
5113
- })
5114
- } : rawSections ? { structuredSections: rawSections } : {},
5115
- withheldRules: [
5116
- ...nameScreen.withheldRules,
5117
- ...factScreen.withheldRules,
5118
- ...(sectionScreens ?? []).flatMap(({ screen }) => screen.withheldRules)
5119
- ],
5120
- withheld: nameScreen.withheldRules.length > 0
5121
- };
5122
- }
5123
- function screenPersistStrings(values, enabled, profile = "default") {
5124
- const screen = withholdScreenedStrings(values, enabled, profile);
5125
- return {
5126
- kept: screen.kept,
5127
- ...screen.withheldRules.length > 0 ? { warning: `injection screen withheld ${values.length - screen.kept.length} candidate(s) [${screen.withheldRules.join(", ")}]` } : {}
5128
- };
5129
- }
5130
-
5131
- // src/orchestration/extraction-envelope.ts
5132
- function composeSalvagedExtractionEnvelope(input, ctx) {
5133
- const envelope = composeMemoryEnvelope(input, ctx, { salvage: true });
5134
- if (envelope.salvageNotes.length > 0) {
5135
- log.warn(`extraction write salvaged invalid fields: ${envelope.salvageNotes.join("; ")}`);
5136
- }
5137
- return envelope;
5138
- }
5139
- function withReservedMarkerTag(sourceTags, marker) {
5140
- const usable = sourceTags.filter(
5141
- (tag) => typeof tag !== "string" || tag.trim().length <= TAG_LIMITS.maxTagLength
5142
- );
5143
- const normalized = normalizeTags(usable) ?? [];
5144
- const budget = TAG_LIMITS.maxTags - 1;
5145
- if (normalized.length > budget) {
5146
- log.warn(
5147
- `extraction tags exceed ${budget}+marker cap; keeping the first ${budget} of ${normalized.length} and the ${JSON.stringify(marker)} marker`
5148
- );
5149
- }
5150
- const capped = normalized.length > budget ? normalized.slice(0, budget) : normalized;
5151
- return [...capped, marker];
5152
- }
5153
- function probeSalvageSurvivingFields(input) {
5154
- try {
5155
- const probe = composeSalvagedExtractionEnvelope(
5156
- {
5157
- content: input.content,
5158
- category: input.category,
5159
- structuredAttributes: input.structuredAttributes,
5160
- entityRef: input.entityRef
5161
- },
5162
- { source: "bitemporal-backfill-probe" }
5163
- );
5164
- return {
5165
- entityRef: probe.entityRef,
5166
- structuredAttributes: probe.rawStructuredAttributes ? { ...probe.rawStructuredAttributes } : void 0
5167
- };
5168
- } catch {
5169
- return null;
5170
- }
5171
- }
5172
-
5173
- // src/dedup/semantic.ts
5174
- var DEFAULT_SEMANTIC_THRESHOLD = 0.92;
5175
- var DEFAULT_SEMANTIC_CANDIDATES = 5;
5176
- function normalizeSemanticThreshold(value) {
5177
- return Number.isFinite(value) ? Math.min(1, Math.max(0, value)) : DEFAULT_SEMANTIC_THRESHOLD;
5178
- }
5179
- function normalizeSemanticCandidates(value) {
5180
- if (!Number.isFinite(value) || value < 0) {
5181
- return DEFAULT_SEMANTIC_CANDIDATES;
5182
- }
5183
- const normalized = Math.floor(value);
5184
- return value > 0 && normalized === 0 ? 1 : normalized;
5185
- }
5186
- async function decideSemanticDedup(content, lookup, options) {
5187
- if (!options.enabled) {
5188
- return { action: "keep", reason: "disabled" };
5189
- }
5190
- const threshold = normalizeSemanticThreshold(options.threshold);
5191
- const candidates = normalizeSemanticCandidates(options.candidates);
5192
- if (candidates === 0) {
5193
- return { action: "keep", reason: "disabled" };
5194
- }
5195
- const trimmed = typeof content === "string" ? content.trim() : "";
5196
- if (!trimmed) {
5197
- return { action: "keep", reason: "no_near_duplicate" };
5198
- }
5199
- let hits = [];
5200
- try {
5201
- hits = await lookup(trimmed, candidates);
5202
- } catch {
5203
- return { action: "keep", reason: "backend_unavailable" };
5204
- }
5205
- if (!Array.isArray(hits) || hits.length === 0) {
5206
- return { action: "keep", reason: "no_candidates" };
5207
- }
5208
- const candidateConnector = normalizeConnectorScope(options.sourceConnector);
5209
- let top;
5210
- let sameConnectorTop;
5211
- for (const hit of hits) {
5212
- if (!hit || typeof hit.id !== "string" || hit.id.trim().length === 0 || typeof hit.score !== "number" || !Number.isFinite(hit.score)) {
5213
- continue;
5214
- }
5215
- if (!top || hit.score > top.score) {
5216
- top = hit;
5217
- }
5218
- if (candidateConnector !== void 0 && connectorMatchesScope(hit.sourceConnector, candidateConnector) && (!sameConnectorTop || hit.score > sameConnectorTop.score)) {
5219
- sameConnectorTop = hit;
5220
- }
5221
- }
5222
- if (!top) {
5223
- return { action: "keep", reason: "no_near_duplicate" };
5224
- }
5225
- if (top.score >= threshold) {
5226
- if (candidateConnector !== void 0) {
5227
- const match = sameConnectorTop !== void 0 && sameConnectorTop.score >= threshold ? sameConnectorTop : void 0;
5228
- if (match) {
5229
- return {
5230
- action: "skip",
5231
- reason: "near_duplicate",
5232
- topScore: match.score,
5233
- topId: match.id,
5234
- topPath: match.path
5235
- };
5236
- }
5237
- return {
5238
- action: "keep",
5239
- reason: "connector_mismatch",
5240
- topScore: top.score,
5241
- topId: top.id
5242
- };
5243
- }
5244
- return {
5245
- action: "skip",
5246
- reason: "near_duplicate",
5247
- topScore: top.score,
5248
- topId: top.id,
5249
- topPath: top.path
5250
- };
5251
- }
5252
- return {
5253
- action: "keep",
5254
- reason: "no_near_duplicate",
5255
- topScore: top.score,
5256
- topId: top.id
5257
- };
5258
- }
5259
-
5260
- // src/orchestration/semantic-merge-promotion-payload.ts
5261
- import { createHash as createHash3 } from "crypto";
5262
- import { readFile as readFile2 } from "fs/promises";
5263
- async function buildMergedTargetPromotionPayload(storage, merge) {
5264
- if (!merge.provenancePatched) {
5265
- log.warn(
5266
- `semantic-merge: skipping merged-target promotion for ${merge.targetId} \u2014 provenance patch did not land; the record still holds pre-merge trust metadata`
5267
- );
5268
- return { payload: null, readFailed: false };
5045
+ // src/orchestration/semantic-merge-promotion-payload.ts
5046
+ import { createHash as createHash3 } from "crypto";
5047
+ import { readFile as readFile2 } from "fs/promises";
5048
+ async function buildMergedTargetPromotionPayload(storage, merge) {
5049
+ if (!merge.provenancePatched) {
5050
+ log.warn(
5051
+ `semantic-merge: skipping merged-target promotion for ${merge.targetId} \u2014 provenance patch did not land; the record still holds pre-merge trust metadata`
5052
+ );
5053
+ return { payload: null, readFailed: false };
5269
5054
  }
5270
5055
  let committed;
5271
5056
  try {
@@ -5717,6 +5502,356 @@ async function retireStaleMergedTargetPromotionCopies(args) {
5717
5502
  return retired;
5718
5503
  }
5719
5504
 
5505
+ // src/orchestration/promotion-dedup-window.ts
5506
+ async function findPromotionRaceDuplicate(args) {
5507
+ try {
5508
+ const allMems = await readActiveMemoriesBothTiers(args.storage);
5509
+ const nc = args.connector?.trim() || void 0;
5510
+ const incomingNormalized = ContentHashIndex.normalizeContent(args.dedupContent);
5511
+ return allMems.find((m) => {
5512
+ if (m.frontmatter.category !== args.category) return false;
5513
+ if ((m.frontmatter.status ?? "active") !== "active") return false;
5514
+ if (normalizeStoredHashSource(m.content ?? "", args.citationEnabled, args.citationTemplate) !== incomingNormalized)
5515
+ return false;
5516
+ if (args.entityKeyNorm !== void 0) {
5517
+ if (!m.frontmatter.entityRef) return false;
5518
+ if (normalizeSupersessionKey(m.frontmatter.entityRef) !== args.entityKeyNorm) return false;
5519
+ }
5520
+ return (m.frontmatter.sourceConnector?.trim() || void 0) === nc;
5521
+ });
5522
+ } catch (err) {
5523
+ log.warn(
5524
+ `promotion race recheck scan failed for ${args.storage.dir}; writing fail-open: ${err instanceof Error ? err.message : String(err)}`
5525
+ );
5526
+ return void 0;
5527
+ }
5528
+ }
5529
+ async function confirmPromotionRaceDuplicate(args) {
5530
+ try {
5531
+ if (await args.storage.isFactContentHashAuthoritative()) {
5532
+ if (!await args.storage.hasFactContentHash(args.dedupContent)) return false;
5533
+ }
5534
+ } catch (probeErr) {
5535
+ log.warn(
5536
+ `promotion race recheck authoritative probe failed for ${args.storage.dir}; confirming against corpus: ${probeErr instanceof Error ? probeErr.message : String(probeErr)}`
5537
+ );
5538
+ }
5539
+ return await findPromotionRaceDuplicate(args) !== void 0;
5540
+ }
5541
+ function buildPromotionWriteOptions(args) {
5542
+ const { promotion } = args;
5543
+ const writeOptions = {
5544
+ importance: promotion.importance,
5545
+ lineage: [promotion.sourceMemoryId],
5546
+ sourceMemoryId: promotion.sourceMemoryId,
5547
+ intentGoal: promotion.intentGoal,
5548
+ intentActionType: promotion.intentActionType,
5549
+ intentEntityTypes: promotion.intentEntityTypes,
5550
+ memoryKind: promotion.memoryKind,
5551
+ contentHashSource: promotion.category === "fact" ? args.dedupContent : args.rawContent
5552
+ };
5553
+ if (promotion.invalidAt) writeOptions.invalidAt = promotion.invalidAt;
5554
+ if (promotion.observedAt) writeOptions.observedAt = promotion.observedAt;
5555
+ if (promotion.eventTimeSource) writeOptions.eventTimeSource = promotion.eventTimeSource;
5556
+ if (promotion.sources && promotion.sources.length > 0) writeOptions.sources = promotion.sources;
5557
+ if (promotion.provenance) writeOptions.provenance = promotion.provenance;
5558
+ if (args.toolScoped) writeOptions.toolScoped = true;
5559
+ return writeOptions;
5560
+ }
5561
+ async function writePromotionUnderFactDedupWindow(args) {
5562
+ const { destination, envelope, promotion } = args;
5563
+ if (promotion.category !== "fact") {
5564
+ return {
5565
+ suppressed: false,
5566
+ result: await destination.writeSealedMemory(envelope, buildPromotionWriteOptions(args))
5567
+ };
5568
+ }
5569
+ const entityKeyNorm = args.sameEntityGuardEnabled && envelope.entityRef && args.survivingAttrs && Object.keys(args.survivingAttrs).length > 0 ? normalizeSupersessionKey(envelope.entityRef) : void 0;
5570
+ const outcome = await persistUnderFactDedupWindow(
5571
+ destination.dir,
5572
+ () => promotion.category === "fact" ? confirmPromotionRaceDuplicate({
5573
+ storage: destination,
5574
+ dedupContent: args.dedupContent,
5575
+ category: promotion.category,
5576
+ connector: args.connector,
5577
+ citationEnabled: args.citationEnabled,
5578
+ citationTemplate: args.citationTemplate,
5579
+ entityKeyNorm
5580
+ }) : Promise.resolve(false),
5581
+ () => destination.writeSealedMemory(envelope, buildPromotionWriteOptions(args))
5582
+ );
5583
+ if (outcome.suppressed) {
5584
+ log.info(`dedup: raced promotion duplicate suppressed in fact-dedup window for ${destination.dir}`);
5585
+ if (promotion.invalidAt || promotion.validAt) {
5586
+ await args.backfillTemporalBoundsOnDedupHit(
5587
+ destination,
5588
+ args.dedupContent,
5589
+ {
5590
+ invalidAt: promotion.invalidAt,
5591
+ // #1707 thread 2 — carry the corrected start bound.
5592
+ validFrom: promotion.validAt,
5593
+ observedAt: promotion.observedAt,
5594
+ eventTimeSource: promotion.eventTimeSource
5595
+ },
5596
+ envelope.entityRef,
5597
+ args.connector
5598
+ );
5599
+ }
5600
+ if (args.supersession?.supersessionEnabled && promotion.category === "fact" && envelope.entityRef && args.survivingAttrs && Object.keys(args.survivingAttrs).length > 0) {
5601
+ try {
5602
+ const winning = await findPromotionRaceDuplicate({
5603
+ storage: destination,
5604
+ dedupContent: args.dedupContent,
5605
+ category: promotion.category,
5606
+ connector: args.connector,
5607
+ citationEnabled: args.citationEnabled,
5608
+ citationTemplate: args.citationTemplate,
5609
+ // PRRT_kwDORJXyws6z2o11: the winner ANCHORS the pass, so the lookup
5610
+ // is always entity-guarded — without it (profile path) it could
5611
+ // match another entity's equal-content fact and combine that fact's
5612
+ // id with the incoming entity's attributes (PR #402 Uybg hazard).
5613
+ entityKeyNorm: normalizeSupersessionKey(envelope.entityRef)
5614
+ });
5615
+ if (winning) {
5616
+ await applyTemporalSupersession({
5617
+ storage: destination,
5618
+ newMemoryId: winning.frontmatter.id,
5619
+ entityRef: envelope.entityRef,
5620
+ structuredAttributes: { ...args.survivingAttrs },
5621
+ // Ordering anchor mirrors the gate's supersessionOrderingAt: an
5622
+ // incoming event date orders the pass, wall clock otherwise.
5623
+ createdAt: promotion.validAt && promotion.validAt.length > 0 ? promotion.validAt : (/* @__PURE__ */ new Date()).toISOString(),
5624
+ useCallerTimestamp: true,
5625
+ enabled: !(promotion.eventTimeSource === "extracted" && !promotion.validAt),
5626
+ namespaceScope: args.supersession.namespaceScope,
5627
+ dependencyPropagationDelivery: args.supersession.dependencyPropagationDelivery
5628
+ });
5629
+ }
5630
+ } catch (supersessionErr) {
5631
+ log.warn(
5632
+ `promotion window supersession failed open for ${destination.dir}: ${supersessionErr instanceof Error ? supersessionErr.message : String(supersessionErr)}`
5633
+ );
5634
+ }
5635
+ }
5636
+ }
5637
+ return outcome;
5638
+ }
5639
+
5640
+ // src/orchestration/extraction-injection-gate.ts
5641
+ function serializeInjectionScreenCandidate(candidate) {
5642
+ const body = candidate.category === "procedure" ? buildProcedurePersistBody(candidate.content, candidate.procedureSteps) : candidate.content;
5643
+ const attrs = Object.fromEntries(
5644
+ Object.entries(candidate.structuredAttributes ?? {}).flatMap(([key, value]) => {
5645
+ if (typeof value === "string") return [[key, value]];
5646
+ if (typeof value === "number" || typeof value === "boolean") return [[key, String(value)]];
5647
+ return [];
5648
+ })
5649
+ );
5650
+ return Object.keys(attrs).length > 0 ? `${body}
5651
+ [Attributes: ${normalizeAttributePairs(attrs)}]` : body;
5652
+ }
5653
+ function evaluateInjectionScreen(candidate, enabled, profile = "default") {
5654
+ if (!enabled) return { tags: [] };
5655
+ const content = typeof candidate === "string" ? candidate : serializeInjectionScreenCandidate(candidate);
5656
+ const result = screenCandidateFact(content, profile);
5657
+ return {
5658
+ status: result.quarantine === true ? "pending_review" : void 0,
5659
+ tags: result.quarantine === true ? result.findings.map((finding) => `injection-screen:${finding.rule}`) : []
5660
+ };
5661
+ }
5662
+ function withholdScreenedStrings(values, enabled, profile = "default") {
5663
+ const kept = [];
5664
+ const withheldRules = [];
5665
+ for (const value of values) {
5666
+ if (typeof value !== "string") continue;
5667
+ if (!enabled) {
5668
+ kept.push(value);
5669
+ continue;
5670
+ }
5671
+ const screened = screenCandidateFact(value, profile);
5672
+ if (screened.quarantine) {
5673
+ withheldRules.push(...screened.findings.map((finding) => `injection-screen:${finding.rule}`));
5674
+ } else {
5675
+ kept.push(value);
5676
+ }
5677
+ }
5678
+ return { kept, withheldRules };
5679
+ }
5680
+ function screenEntityForIndex(entity, enabled, profile = "default") {
5681
+ const record = entity;
5682
+ const name = record?.name;
5683
+ const type = record?.type;
5684
+ if (typeof name !== "string" || !name.trim() || typeof type !== "string" || !type.trim()) return null;
5685
+ const nameScreen = withholdScreenedStrings([name], enabled, profile);
5686
+ const factScreen = withholdScreenedStrings(Array.isArray(record?.facts) ? record.facts : [], enabled, profile);
5687
+ const rawSections = Array.isArray(record?.structuredSections) ? record.structuredSections : void 0;
5688
+ const sectionScreens = enabled && rawSections ? rawSections.map((section) => ({ section, screen: withholdScreenedStrings(section?.facts ?? [], true, profile) })) : void 0;
5689
+ return {
5690
+ name,
5691
+ type,
5692
+ source: typeof record?.source === "string" ? record.source : "extraction",
5693
+ facts: factScreen.kept,
5694
+ ...sectionScreens ? {
5695
+ structuredSections: sectionScreens.map(({ section, screen }) => {
5696
+ let nextFactIndex = 0;
5697
+ const factOrigins = screen.kept.map((fact) => {
5698
+ const factIndex = section.facts.indexOf(fact, nextFactIndex);
5699
+ nextFactIndex = factIndex + 1;
5700
+ const origin = section.factOrigins?.[factIndex];
5701
+ return origin === void 0 ? void 0 : parseOriginClass(origin);
5702
+ });
5703
+ return {
5704
+ ...section,
5705
+ facts: screen.kept,
5706
+ ...factOrigins.some((origin) => origin !== void 0) ? { factOrigins } : {}
5707
+ };
5708
+ })
5709
+ } : rawSections ? { structuredSections: rawSections } : {},
5710
+ withheldRules: [
5711
+ ...nameScreen.withheldRules,
5712
+ ...factScreen.withheldRules,
5713
+ ...(sectionScreens ?? []).flatMap(({ screen }) => screen.withheldRules)
5714
+ ],
5715
+ withheld: nameScreen.withheldRules.length > 0
5716
+ };
5717
+ }
5718
+ function screenPersistStrings(values, enabled, profile = "default") {
5719
+ const screen = withholdScreenedStrings(values, enabled, profile);
5720
+ return {
5721
+ kept: screen.kept,
5722
+ ...screen.withheldRules.length > 0 ? { warning: `injection screen withheld ${values.length - screen.kept.length} candidate(s) [${screen.withheldRules.join(", ")}]` } : {}
5723
+ };
5724
+ }
5725
+
5726
+ // src/orchestration/extraction-envelope.ts
5727
+ function composeSalvagedExtractionEnvelope(input, ctx) {
5728
+ const envelope = composeMemoryEnvelope(input, ctx, { salvage: true });
5729
+ if (envelope.salvageNotes.length > 0) {
5730
+ log.warn(`extraction write salvaged invalid fields: ${envelope.salvageNotes.join("; ")}`);
5731
+ }
5732
+ return envelope;
5733
+ }
5734
+ function withReservedMarkerTag(sourceTags, marker) {
5735
+ const usable = sourceTags.filter(
5736
+ (tag) => typeof tag !== "string" || tag.trim().length <= TAG_LIMITS.maxTagLength
5737
+ );
5738
+ const normalized = normalizeTags(usable) ?? [];
5739
+ const budget = TAG_LIMITS.maxTags - 1;
5740
+ if (normalized.length > budget) {
5741
+ log.warn(
5742
+ `extraction tags exceed ${budget}+marker cap; keeping the first ${budget} of ${normalized.length} and the ${JSON.stringify(marker)} marker`
5743
+ );
5744
+ }
5745
+ const capped = normalized.length > budget ? normalized.slice(0, budget) : normalized;
5746
+ return [...capped, marker];
5747
+ }
5748
+ function probeSalvageSurvivingFields(input) {
5749
+ try {
5750
+ const probe = composeSalvagedExtractionEnvelope(
5751
+ {
5752
+ content: input.content,
5753
+ category: input.category,
5754
+ structuredAttributes: input.structuredAttributes,
5755
+ entityRef: input.entityRef
5756
+ },
5757
+ { source: "bitemporal-backfill-probe" }
5758
+ );
5759
+ return {
5760
+ entityRef: probe.entityRef,
5761
+ structuredAttributes: probe.rawStructuredAttributes ? { ...probe.rawStructuredAttributes } : void 0
5762
+ };
5763
+ } catch {
5764
+ return null;
5765
+ }
5766
+ }
5767
+
5768
+ // src/dedup/semantic.ts
5769
+ var DEFAULT_SEMANTIC_THRESHOLD = 0.92;
5770
+ var DEFAULT_SEMANTIC_CANDIDATES = 5;
5771
+ function normalizeSemanticThreshold(value) {
5772
+ return Number.isFinite(value) ? Math.min(1, Math.max(0, value)) : DEFAULT_SEMANTIC_THRESHOLD;
5773
+ }
5774
+ function normalizeSemanticCandidates(value) {
5775
+ if (!Number.isFinite(value) || value < 0) {
5776
+ return DEFAULT_SEMANTIC_CANDIDATES;
5777
+ }
5778
+ const normalized = Math.floor(value);
5779
+ return value > 0 && normalized === 0 ? 1 : normalized;
5780
+ }
5781
+ async function decideSemanticDedup(content, lookup, options) {
5782
+ if (!options.enabled) {
5783
+ return { action: "keep", reason: "disabled" };
5784
+ }
5785
+ const threshold = normalizeSemanticThreshold(options.threshold);
5786
+ const candidates = normalizeSemanticCandidates(options.candidates);
5787
+ if (candidates === 0) {
5788
+ return { action: "keep", reason: "disabled" };
5789
+ }
5790
+ const trimmed = typeof content === "string" ? content.trim() : "";
5791
+ if (!trimmed) {
5792
+ return { action: "keep", reason: "no_near_duplicate" };
5793
+ }
5794
+ let hits = [];
5795
+ try {
5796
+ hits = await lookup(trimmed, candidates);
5797
+ } catch {
5798
+ return { action: "keep", reason: "backend_unavailable" };
5799
+ }
5800
+ if (!Array.isArray(hits) || hits.length === 0) {
5801
+ return { action: "keep", reason: "no_candidates" };
5802
+ }
5803
+ const candidateConnector = normalizeConnectorScope(options.sourceConnector);
5804
+ let top;
5805
+ let sameConnectorTop;
5806
+ for (const hit of hits) {
5807
+ if (!hit || typeof hit.id !== "string" || hit.id.trim().length === 0 || typeof hit.score !== "number" || !Number.isFinite(hit.score)) {
5808
+ continue;
5809
+ }
5810
+ if (!top || hit.score > top.score) {
5811
+ top = hit;
5812
+ }
5813
+ if (candidateConnector !== void 0 && connectorMatchesScope(hit.sourceConnector, candidateConnector) && (!sameConnectorTop || hit.score > sameConnectorTop.score)) {
5814
+ sameConnectorTop = hit;
5815
+ }
5816
+ }
5817
+ if (!top) {
5818
+ return { action: "keep", reason: "no_near_duplicate" };
5819
+ }
5820
+ if (top.score >= threshold) {
5821
+ if (candidateConnector !== void 0) {
5822
+ const match = sameConnectorTop !== void 0 && sameConnectorTop.score >= threshold ? sameConnectorTop : void 0;
5823
+ if (match) {
5824
+ return {
5825
+ action: "skip",
5826
+ reason: "near_duplicate",
5827
+ topScore: match.score,
5828
+ topId: match.id,
5829
+ topPath: match.path
5830
+ };
5831
+ }
5832
+ return {
5833
+ action: "keep",
5834
+ reason: "connector_mismatch",
5835
+ topScore: top.score,
5836
+ topId: top.id
5837
+ };
5838
+ }
5839
+ return {
5840
+ action: "skip",
5841
+ reason: "near_duplicate",
5842
+ topScore: top.score,
5843
+ topId: top.id,
5844
+ topPath: top.path
5845
+ };
5846
+ }
5847
+ return {
5848
+ action: "keep",
5849
+ reason: "no_near_duplicate",
5850
+ topScore: top.score,
5851
+ topId: top.id
5852
+ };
5853
+ }
5854
+
5720
5855
  // src/orchestration/semantic-merge-persist.ts
5721
5856
  import path6 from "path";
5722
5857
 
@@ -6736,23 +6871,23 @@ var ExtractionPersistCoordinator = class {
6736
6871
  continue;
6737
6872
  }
6738
6873
  }
6739
- const targetPromotion = await targetStorage.writeSealedMemory(targetPromotionEnvelope, {
6740
- importance: options.importance,
6741
- lineage: [options.sourceMemoryId],
6742
- sourceMemoryId: options.sourceMemoryId,
6743
- intentGoal: options.intentGoal,
6744
- intentActionType: options.intentActionType,
6745
- intentEntityTypes: options.intentEntityTypes,
6746
- memoryKind: options.memoryKind,
6747
- // #1578 — forward bi-temporal bounds + ingestion provenance.
6748
- ...options.invalidAt ? { invalidAt: options.invalidAt } : {},
6749
- ...options.observedAt ? { observedAt: options.observedAt } : {},
6750
- ...options.eventTimeSource ? { eventTimeSource: options.eventTimeSource } : {},
6751
- contentHashSource: options.category === "fact" ? dedupContent : rawContent,
6752
- ...options.sources && options.sources.length > 0 ? { sources: options.sources } : {},
6753
- ...options.provenance ? { provenance: options.provenance } : {},
6754
- ...options.toolScoped ? { toolScoped: true } : {}
6874
+ const promotionWrite = await writePromotionUnderFactDedupWindow({
6875
+ destination: targetStorage,
6876
+ envelope: targetPromotionEnvelope,
6877
+ promotion: options,
6878
+ dedupContent,
6879
+ rawContent,
6880
+ toolScoped: options.toolScoped === true,
6881
+ connector: sourceContext?.sourceConnector,
6882
+ citationEnabled,
6883
+ citationTemplate,
6884
+ sameEntityGuardEnabled: false,
6885
+ survivingAttrs: targetSurvivingAttrs,
6886
+ supersession: { supersessionEnabled: lifecycleCaps.temporalSupersession, dependencyPropagationDelivery: this.dependencyPropagationDelivery, namespaceScope: this.deps.storageDirNamespace(targetStorage.dir) },
6887
+ backfillTemporalBoundsOnDedupHit: this.deps.backfillTemporalBoundsOnDedupHit
6755
6888
  });
6889
+ if (promotionWrite.suppressed) continue;
6890
+ const targetPromotion = promotionWrite.result;
6756
6891
  const promotedId = targetPromotion.id;
6757
6892
  if (!targetPromotion.tombstoneBlocked && lifecycleCaps.temporalSupersession && options.category === "fact" && targetPromotionEnvelope.entityRef && targetSurvivingAttrs && Object.keys(targetSurvivingAttrs).length > 0) {
6758
6893
  try {
@@ -6956,24 +7091,23 @@ var ExtractionPersistCoordinator = class {
6956
7091
  }
6957
7092
  }
6958
7093
  }
6959
- const sharedPromotion = await sharedStorage.writeSealedMemory(sharedPromotionEnvelope, {
6960
- importance: options.importance,
6961
- lineage: [options.sourceMemoryId],
6962
- sourceMemoryId: options.sourceMemoryId,
6963
- intentGoal: options.intentGoal,
6964
- intentActionType: options.intentActionType,
6965
- intentEntityTypes: options.intentEntityTypes,
6966
- memoryKind: options.memoryKind,
6967
- // #1578 — forward bi-temporal bounds + ingestion provenance.
6968
- ...options.invalidAt ? { invalidAt: options.invalidAt } : {},
6969
- ...options.observedAt ? { observedAt: options.observedAt } : {},
6970
- ...options.eventTimeSource ? { eventTimeSource: options.eventTimeSource } : {},
6971
- contentHashSource: options.category === "fact" ? dedupContent : rawContent,
6972
- // Claim-level provenance spans (issue #1575 PR 2).
6973
- ...options.sources && options.sources.length > 0 ? { sources: options.sources } : {},
6974
- ...options.provenance ? { provenance: options.provenance } : {},
6975
- ...toolScoped ? { toolScoped: true } : {}
7094
+ const sharedWrite = await writePromotionUnderFactDedupWindow({
7095
+ destination: sharedStorage,
7096
+ envelope: sharedPromotionEnvelope,
7097
+ promotion: options,
7098
+ dedupContent,
7099
+ rawContent,
7100
+ toolScoped,
7101
+ connector: sourceContext?.sourceConnector,
7102
+ citationEnabled,
7103
+ citationTemplate,
7104
+ sameEntityGuardEnabled: lifecycleCaps.temporalSupersession,
7105
+ survivingAttrs: sharedSurvivingAttrs,
7106
+ supersession: { supersessionEnabled: lifecycleCaps.temporalSupersession, dependencyPropagationDelivery: this.dependencyPropagationDelivery, namespaceScope: this.deps.storageDirNamespace(sharedStorage.dir) },
7107
+ backfillTemporalBoundsOnDedupHit: this.deps.backfillTemporalBoundsOnDedupHit
6976
7108
  });
7109
+ if (sharedWrite.suppressed) return promotedCopyId;
7110
+ const sharedPromotion = sharedWrite.result;
6977
7111
  const promotedId = sharedPromotion.id;
6978
7112
  if (!sharedPromotion.tombstoneBlocked && lifecycleCaps.temporalSupersession && sharedPromotionEnvelope.entityRef && sharedSurvivingAttrs && Object.keys(sharedSurvivingAttrs).length > 0) {
6979
7113
  try {
@@ -31776,4 +31910,4 @@ export {
31776
31910
  qmdStartupCollectionChecksWithTimeout,
31777
31911
  Orchestrator
31778
31912
  };
31779
- //# sourceMappingURL=chunk-FAF4A76Q.js.map
31913
+ //# sourceMappingURL=chunk-OAQO5AZJ.js.map