@remnic/core 10.0.83 → 10.0.85

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 (413) hide show
  1. package/dist/access-admin-ops-surface.js +67 -66
  2. package/dist/access-authorization-probe.js +68 -67
  3. package/dist/access-boundary.js +67 -66
  4. package/dist/access-cli.js +148 -146
  5. package/dist/access-cli.js.map +1 -1
  6. package/dist/access-extraction-force-flush.js +67 -66
  7. package/dist/access-http-briefing.js +68 -67
  8. package/dist/access-http-query.js +69 -68
  9. package/dist/access-http.js +91 -89
  10. package/dist/access-identity-continuity-surface.js +67 -66
  11. package/dist/access-lcm-surface.js +67 -66
  12. package/dist/access-mcp-frames.d.ts +29 -0
  13. package/dist/access-mcp-frames.d.ts.map +1 -0
  14. package/dist/access-mcp-frames.js +10 -0
  15. package/dist/access-mcp.d.ts +1 -1
  16. package/dist/access-mcp.d.ts.map +1 -1
  17. package/dist/access-mcp.js +82 -80
  18. package/dist/access-namespace-preflight.js +67 -66
  19. package/dist/access-observe-write-category.js +9 -9
  20. package/dist/access-observe-write-surface.d.ts.map +1 -1
  21. package/dist/access-observe-write-surface.js +67 -66
  22. package/dist/access-offline-manifest.js +3 -3
  23. package/dist/access-operations-batch.js +71 -70
  24. package/dist/access-operations.d.ts +1 -1
  25. package/dist/access-operations.js +78 -77
  26. package/dist/access-recall-concurrency.js +67 -66
  27. package/dist/access-recall-response.js +67 -66
  28. package/dist/access-recall-surface.js +67 -66
  29. package/dist/access-schema.js +4 -4
  30. package/dist/access-service.js +67 -66
  31. package/dist/access-surface-catalog.js +69 -68
  32. package/dist/access-surface-catalog.js.map +1 -1
  33. package/dist/active-recall.js +31 -31
  34. package/dist/{auto-sync-C7E6G7Y2.js → auto-sync-3AZW7MXI.js} +6 -6
  35. package/dist/briefing.js +25 -25
  36. package/dist/buffer-persistence.d.ts +8 -4
  37. package/dist/buffer-persistence.d.ts.map +1 -1
  38. package/dist/buffer-persistence.js +1 -1
  39. package/dist/buffer-turn-helpers.d.ts +5 -0
  40. package/dist/buffer-turn-helpers.d.ts.map +1 -1
  41. package/dist/buffer-turn-helpers.js +1 -1
  42. package/dist/buffer.d.ts +4 -1
  43. package/dist/buffer.d.ts.map +1 -1
  44. package/dist/buffer.js +9 -9
  45. package/dist/calibration.js +2 -2
  46. package/dist/{capsule-crypto-YO5QJ6L3.js → capsule-crypto-GWVG7LGC.js} +2 -2
  47. package/dist/capsule-gunzip-KGBDGF7P.js +11 -0
  48. package/dist/{capsule-merge-XVTQJJ6R.js → capsule-merge-2IIXFXN5.js} +5 -11
  49. package/dist/capsule-merge-2IIXFXN5.js.map +1 -0
  50. package/dist/causal-behavior.js +2 -2
  51. package/dist/causal-chain.js +2 -2
  52. package/dist/causal-consolidation.js +32 -32
  53. package/dist/causal-retrieval.js +2 -2
  54. package/dist/causal-trajectory-graph.js +2 -2
  55. package/dist/causal-trajectory.js +1 -1
  56. package/dist/{chunk-T6T2RMWW.js → chunk-23B4HLWG.js} +5 -5
  57. package/dist/{chunk-LECSS7EE.js → chunk-2ASEDFOA.js} +2 -2
  58. package/dist/{chunk-TPX7XXY4.js → chunk-2JAT4S7N.js} +2 -2
  59. package/dist/{chunk-XRBHIR7Q.js → chunk-2URKYLMK.js} +2 -2
  60. package/dist/{chunk-IN4OFAHX.js → chunk-2XYDL2FG.js} +2 -2
  61. package/dist/{chunk-HQGATKG2.js → chunk-3KGCHTTK.js} +2 -2
  62. package/dist/{chunk-YAUHSNPB.js → chunk-3LHPTBWG.js} +2 -2
  63. package/dist/{chunk-7PMOCQOL.js → chunk-3ODZLCHC.js} +192 -63
  64. package/dist/chunk-3ODZLCHC.js.map +1 -0
  65. package/dist/{chunk-XT45WCKX.js → chunk-3VU2FDTU.js} +8 -8
  66. package/dist/{chunk-CIIHIAJ2.js → chunk-433EXTC4.js} +3 -3
  67. package/dist/{chunk-QZSIDSB2.js → chunk-44FQCC5D.js} +2 -2
  68. package/dist/{chunk-YUTT4ZTI.js → chunk-45VUHDV2.js} +2 -2
  69. package/dist/{chunk-54FDG7K7.js → chunk-4DPLCYEK.js} +2 -2
  70. package/dist/{chunk-KO3YBHOV.js → chunk-4IWEPQEV.js} +2 -2
  71. package/dist/{chunk-H7BZBSP6.js → chunk-52II7PB6.js} +4 -4
  72. package/dist/{chunk-K6RTQZA4.js → chunk-6DANGCMO.js} +2 -2
  73. package/dist/{chunk-2IW5PT7U.js → chunk-6KFFRMPQ.js} +2 -2
  74. package/dist/{chunk-MSIRVXQ3.js → chunk-73YVMZ7D.js} +4 -4
  75. package/dist/{chunk-A7BM2JTH.js → chunk-AJHNXIQU.js} +2 -2
  76. package/dist/{chunk-2D7BTSDW.js → chunk-ANZZLRUX.js} +2 -2
  77. package/dist/{chunk-YOEYL6CH.js → chunk-AP3TSV6S.js} +2 -2
  78. package/dist/{chunk-GQZSGXR6.js → chunk-BATPQNRG.js} +2 -2
  79. package/dist/{chunk-D5SSBCYY.js → chunk-BLGQUZFB.js} +2 -2
  80. package/dist/{chunk-BDN3TDGV.js → chunk-BLMTOIBK.js} +2 -2
  81. package/dist/{chunk-B74NPUHT.js → chunk-BMIM6ESC.js} +43 -43
  82. package/dist/chunk-BMIM6ESC.js.map +1 -0
  83. package/dist/{chunk-R45L4TV6.js → chunk-BUKK5SWA.js} +6 -6
  84. package/dist/{chunk-TFLPDNQV.js → chunk-CCU7URRP.js} +2 -2
  85. package/dist/{chunk-2XJZLSXE.js → chunk-CMRHXPLQ.js} +20 -20
  86. package/dist/{chunk-BK4FBHZ3.js → chunk-D6THW7PA.js} +3 -3
  87. package/dist/{chunk-BFBS7OFQ.js → chunk-DC55RIEZ.js} +4 -4
  88. package/dist/{chunk-VKDAJJQP.js → chunk-DI5ET2IE.js} +5 -5
  89. package/dist/{chunk-QZBTIYKD.js → chunk-DM4RRTN7.js} +3 -3
  90. package/dist/{chunk-S57QBPTA.js → chunk-DPPLNZ3A.js} +4 -6
  91. package/dist/chunk-DPPLNZ3A.js.map +1 -0
  92. package/dist/{chunk-EBOHFZI4.js → chunk-E5QEF3JO.js} +2 -2
  93. package/dist/{chunk-DD6OIFDG.js → chunk-E7V5AK7I.js} +3 -3
  94. package/dist/{chunk-WAD32CZG.js → chunk-ELWI2R6H.js} +26 -13
  95. package/dist/chunk-ELWI2R6H.js.map +1 -0
  96. package/dist/{chunk-BV2BRHD4.js → chunk-FHGWKODN.js} +2 -2
  97. package/dist/{chunk-HPFVZPRH.js → chunk-FK4WC6VK.js} +3 -3
  98. package/dist/{chunk-VLMBSGQF.js → chunk-FRM4UTDR.js} +6 -6
  99. package/dist/{chunk-LTDLJCMQ.js → chunk-FZPDRCOB.js} +2 -2
  100. package/dist/{chunk-ZJJFUEPO.js → chunk-GBOYOL5L.js} +2 -2
  101. package/dist/{chunk-YUTG35M4.js → chunk-GJVGFKOU.js} +2 -2
  102. package/dist/{chunk-77R7BQZ2.js → chunk-GKYIRTNX.js} +33 -11
  103. package/dist/{chunk-77R7BQZ2.js.map → chunk-GKYIRTNX.js.map} +1 -1
  104. package/dist/{chunk-K36RMINQ.js → chunk-GOZXQNIM.js} +3 -3
  105. package/dist/{chunk-HWHNQVRV.js → chunk-GYNRNKMW.js} +2 -2
  106. package/dist/{chunk-LU66I56Q.js → chunk-H34INI3P.js} +29 -3
  107. package/dist/chunk-H34INI3P.js.map +1 -0
  108. package/dist/{chunk-AYTDCMEL.js → chunk-H4D5YURJ.js} +80 -94
  109. package/dist/chunk-H4D5YURJ.js.map +1 -0
  110. package/dist/{chunk-6LCWKS62.js → chunk-HVFX2N2G.js} +60 -59
  111. package/dist/chunk-HVFX2N2G.js.map +1 -0
  112. package/dist/chunk-IGLJNHOX.js +62 -0
  113. package/dist/chunk-IGLJNHOX.js.map +1 -0
  114. package/dist/{chunk-KFLD7ZZG.js → chunk-IUKYFTGW.js} +3 -3
  115. package/dist/{chunk-YK7GOPIE.js → chunk-JFH6JAGY.js} +6 -4
  116. package/dist/chunk-JFH6JAGY.js.map +1 -0
  117. package/dist/{chunk-BNQJKWWZ.js → chunk-K3FH3LAQ.js} +4 -4
  118. package/dist/{chunk-FJ2VJTGA.js → chunk-KHZVAISH.js} +2 -2
  119. package/dist/{chunk-WHQXWFH7.js → chunk-LT3CMO65.js} +2 -2
  120. package/dist/{chunk-NUSAAN75.js → chunk-MHSBOEH7.js} +2 -2
  121. package/dist/{chunk-KJCL2FZO.js → chunk-MNYQVYJ4.js} +2 -2
  122. package/dist/{chunk-RZH5RVJC.js → chunk-MTTYIXSU.js} +2 -2
  123. package/dist/{chunk-FVRTCYZ3.js → chunk-MVOJDLXS.js} +2 -2
  124. package/dist/{chunk-KESJ5XX3.js → chunk-MYCCO6AA.js} +2 -2
  125. package/dist/{chunk-66JOLMWS.js → chunk-MZCGHPIJ.js} +2 -2
  126. package/dist/{chunk-B4ZU34JQ.js → chunk-N6II66E5.js} +3 -3
  127. package/dist/{chunk-BK7AJUWB.js → chunk-NIV7RPWQ.js} +6 -6
  128. package/dist/{chunk-TLHF75OR.js → chunk-O55AGDTI.js} +10 -10
  129. package/dist/{chunk-GGJFRVRD.js → chunk-OMYRPMQC.js} +2 -2
  130. package/dist/{chunk-SVCHO337.js → chunk-ONN2E5QD.js} +32 -23
  131. package/dist/chunk-ONN2E5QD.js.map +1 -0
  132. package/dist/{chunk-XHGYZRVW.js → chunk-OSTFDWZJ.js} +4 -4
  133. package/dist/{chunk-BXLOS5AJ.js → chunk-OWHERGF2.js} +2 -2
  134. package/dist/{chunk-WC475JOG.js → chunk-P225W4RQ.js} +6 -6
  135. package/dist/{chunk-TFA6HPOA.js → chunk-QCP75JGO.js} +5 -5
  136. package/dist/{chunk-JRVMCZE3.js → chunk-QEYTRFR3.js} +2 -2
  137. package/dist/chunk-QV2VZKD5.js +31 -0
  138. package/dist/chunk-QV2VZKD5.js.map +1 -0
  139. package/dist/{chunk-IZJQNDGI.js → chunk-R6HMAIKM.js} +2 -2
  140. package/dist/{chunk-VUROWXFL.js → chunk-RNGDKFY2.js} +2 -2
  141. package/dist/{chunk-FF6N7BXC.js → chunk-S45INSV3.js} +4 -4
  142. package/dist/{chunk-2RUTN7PR.js → chunk-S7GJNA3K.js} +2 -2
  143. package/dist/{chunk-XYP5WBDO.js → chunk-SGHV6LZ7.js} +13 -13
  144. package/dist/chunk-SGHV6LZ7.js.map +1 -0
  145. package/dist/{chunk-RJWL3RHB.js → chunk-TFEHSPGQ.js} +2 -2
  146. package/dist/{chunk-T77AX6DG.js → chunk-TQVECGUQ.js} +4 -4
  147. package/dist/{chunk-OQSSQOKQ.js → chunk-TV65NR7L.js} +2 -2
  148. package/dist/{chunk-KQUSP6LB.js → chunk-UDKWFDV2.js} +1 -1
  149. package/dist/chunk-UDKWFDV2.js.map +1 -0
  150. package/dist/{chunk-HQPFACXO.js → chunk-UH3FPX3L.js} +2 -2
  151. package/dist/{chunk-4EACCIPO.js → chunk-UHPHH74F.js} +2 -2
  152. package/dist/{chunk-DQEMWVMT.js → chunk-UVYI6VIX.js} +1 -1
  153. package/dist/{chunk-6QYPL6NI.js → chunk-V45TEVDA.js} +3 -3
  154. package/dist/{chunk-GCAQ3VUJ.js → chunk-VCVEMQJK.js} +2 -2
  155. package/dist/{chunk-6L63IN3M.js → chunk-VEFGHRKV.js} +1 -1
  156. package/dist/{chunk-E33UJHY3.js → chunk-WFDWLWDK.js} +2 -2
  157. package/dist/{chunk-4KLQI3L2.js → chunk-WLNWFHX3.js} +1 -1
  158. package/dist/chunk-WLNWFHX3.js.map +1 -0
  159. package/dist/{chunk-KQLBXUUQ.js → chunk-WYG5UNDY.js} +2 -2
  160. package/dist/{chunk-MPGLM2VU.js → chunk-X7REO4CH.js} +2 -2
  161. package/dist/{chunk-MPDLLLOG.js → chunk-XO23OKMK.js} +9 -5
  162. package/dist/chunk-XO23OKMK.js.map +1 -0
  163. package/dist/{chunk-Z3DDQXM4.js → chunk-XSFQN7TP.js} +35 -36
  164. package/dist/chunk-XSFQN7TP.js.map +1 -0
  165. package/dist/{chunk-FZVROZKC.js → chunk-XVZA6VXC.js} +4 -4
  166. package/dist/{chunk-WV254W4V.js → chunk-Y3IYKNBY.js} +2 -2
  167. package/dist/{chunk-FUOAIJKQ.js → chunk-Y43X3E24.js} +2 -2
  168. package/dist/{chunk-3T3VHXUH.js → chunk-YAAKVTZA.js} +2 -2
  169. package/dist/{chunk-VPEIWMUT.js → chunk-YLTU2DC4.js} +2 -2
  170. package/dist/{chunk-65SKM4BF.js → chunk-YNBMBL4C.js} +2 -2
  171. package/dist/{chunk-PJYK7HH2.js → chunk-ZWTHVUT5.js} +2 -2
  172. package/dist/cli.js +110 -108
  173. package/dist/coding/export-okf-codegraph.js +25 -25
  174. package/dist/coding/pre-action-gate.js +2 -2
  175. package/dist/compounding/engine.js +27 -27
  176. package/dist/config.js +28 -28
  177. package/dist/connectors/codex-materialize-runner.js +25 -25
  178. package/dist/connectors/index.js +25 -25
  179. package/dist/contradiction/index.js +4 -4
  180. package/dist/convergence-refresh.js +27 -27
  181. package/dist/conversation-index/backend.js +2 -2
  182. package/dist/corpus-watermark.js +27 -27
  183. package/dist/deep-recall-http-glue.js +5 -5
  184. package/dist/entity-mention-index-cache.d.ts.map +1 -1
  185. package/dist/entity-mention-index-cache.js +2 -1
  186. package/dist/entity-retrieval.js +27 -26
  187. package/dist/event-order-recall.js +2 -2
  188. package/dist/explicit-capture.js +5 -5
  189. package/dist/external-wiki-access.js +68 -67
  190. package/dist/extraction-evidence-class.js +2 -2
  191. package/dist/extraction-quote-grounding.d.ts.map +1 -1
  192. package/dist/extraction-quote-grounding.js +1 -1
  193. package/dist/extraction-source-grounding-rules.js +2 -2
  194. package/dist/extraction-source-grounding.js +5 -5
  195. package/dist/extraction-span-materialize.js +2 -2
  196. package/dist/extraction.js +40 -40
  197. package/dist/{first-start-migration-QVD22WWS.js → first-start-migration-A6PHIBUQ.js} +4 -4
  198. package/dist/{graph-edge-decay-CXTNJ7IQ.js → graph-edge-decay-EKWXRBWF.js} +5 -5
  199. package/dist/graph-edge-decay-EKWXRBWF.js.map +1 -0
  200. package/dist/graph-jsonl.js +3 -3
  201. package/dist/graph-snapshot.js +3 -3
  202. package/dist/graph.js +2 -2
  203. package/dist/harmonic-retrieval.js +25 -25
  204. package/dist/index.js +205 -203
  205. package/dist/lcm/engine.js +2 -2
  206. package/dist/lcm/index.js +2 -2
  207. package/dist/local-llm.js +2 -2
  208. package/dist/location/index.js +28 -28
  209. package/dist/maintenance/memory-governance.js +25 -25
  210. package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +25 -25
  211. package/dist/maintenance/rebuild-memory-projection-runner.js +27 -27
  212. package/dist/maintenance/rebuild-memory-projection.js +26 -26
  213. package/dist/memory-browse-operations.js +68 -67
  214. package/dist/memory-subject.js +2 -2
  215. package/dist/namespaces/migrate.js +26 -26
  216. package/dist/namespaces/search.d.ts +8 -0
  217. package/dist/namespaces/search.d.ts.map +1 -1
  218. package/dist/namespaces/search.js +10 -6
  219. package/dist/namespaces/storage.js +25 -25
  220. package/dist/operator-doctor-corpus.js +28 -28
  221. package/dist/operator-toolkit.js +39 -39
  222. package/dist/orchestration/backlog-scheduler.d.ts +3 -2
  223. package/dist/orchestration/backlog-scheduler.d.ts.map +1 -1
  224. package/dist/orchestration/backlog-scheduler.js +159 -157
  225. package/dist/orchestration/backlog-scheduler.js.map +1 -1
  226. package/dist/orchestration/buffer-drain-runner.d.ts +6 -1
  227. package/dist/orchestration/buffer-drain-runner.d.ts.map +1 -1
  228. package/dist/orchestration/buffer-drain-runner.js +149 -147
  229. package/dist/orchestration/extraction-persist.d.ts.map +1 -1
  230. package/dist/orchestration/fact-dedup-window.d.ts +1 -4
  231. package/dist/orchestration/fact-dedup-window.d.ts.map +1 -1
  232. package/dist/orchestration/maintenance.js +39 -39
  233. package/dist/orchestrator.js +148 -146
  234. package/dist/provenance.js +2 -2
  235. package/dist/recall-navigation-operations.js +68 -67
  236. package/dist/recall-navigation.js +67 -66
  237. package/dist/reconcile/manifest.js +2 -2
  238. package/dist/{resolution-BNWE5Y25.js → resolution-23ZBDM6A.js} +5 -5
  239. package/dist/resolution-23ZBDM6A.js.map +1 -0
  240. package/dist/resume-bundles.js +29 -29
  241. package/dist/salvage-envelope.js +4 -4
  242. package/dist/search/factory.js +5 -5
  243. package/dist/search/index.js +9 -9
  244. package/dist/semantic-consolidation.js +26 -26
  245. package/dist/semantic-rule-promotion.js +25 -25
  246. package/dist/semantic-rule-verifier.js +25 -25
  247. package/dist/source-agent-qualifier.js +31 -31
  248. package/dist/standup/build.js +25 -25
  249. package/dist/storage/buffer-drain-claims.d.ts +18 -6
  250. package/dist/storage/buffer-drain-claims.d.ts.map +1 -1
  251. package/dist/storage/buffer-drain-claims.js +2 -2
  252. package/dist/storage/buffer-session-files.js +2 -2
  253. package/dist/storage/content-hash-index.d.ts +8 -0
  254. package/dist/storage/content-hash-index.d.ts.map +1 -1
  255. package/dist/storage.d.ts +10 -1
  256. package/dist/storage.d.ts.map +1 -1
  257. package/dist/storage.js +24 -24
  258. package/dist/subject-config.js +3 -3
  259. package/dist/summarizer.js +3 -3
  260. package/dist/support-passport/index.js +70 -69
  261. package/dist/transfer/autodetect.js +1 -1
  262. package/dist/transfer/backup.js +2 -2
  263. package/dist/transfer/capsule-export.js +3 -3
  264. package/dist/transfer/capsule-gunzip.d.ts +14 -0
  265. package/dist/transfer/capsule-gunzip.d.ts.map +1 -0
  266. package/dist/transfer/capsule-import.d.ts.map +1 -1
  267. package/dist/transfer/capsule-import.js +3 -2
  268. package/dist/transfer/capsule-merge.d.ts.map +1 -1
  269. package/dist/transfer/export-okf.js +25 -25
  270. package/dist/verified-recall.js +25 -25
  271. package/dist/who-knows-cli.js +26 -26
  272. package/dist/who-knows.js +25 -25
  273. package/dist/write-envelope.js +3 -3
  274. package/package.json +2 -2
  275. package/src/access-mcp-correction-tools.test.ts +45 -0
  276. package/src/access-mcp-frames.test.ts +47 -0
  277. package/src/access-mcp-frames.ts +74 -0
  278. package/src/access-mcp.test.ts +146 -0
  279. package/src/access-mcp.ts +30 -30
  280. package/src/access-observe-write-surface.ts +4 -4
  281. package/src/backlog-scheduler.test.ts +443 -3
  282. package/src/buffer-persistence.ts +15 -6
  283. package/src/buffer-turn-helpers.ts +6 -0
  284. package/src/buffer.ts +6 -6
  285. package/src/cli.ts +4 -4
  286. package/src/compounding/weekly-evidence.test.ts +237 -0
  287. package/src/entity-mention-index-cache.ts +1 -6
  288. package/src/extraction-quote-grounding.test.ts +49 -0
  289. package/src/extraction-quote-grounding.ts +50 -12
  290. package/src/fact-dedup-window.test.ts +103 -20
  291. package/src/maintenance/rebuild-memory-projection-runner.test.ts +90 -0
  292. package/src/namespaces/search.test.ts +339 -0
  293. package/src/namespaces/search.ts +54 -1
  294. package/src/orchestration/backlog-scheduler.ts +13 -12
  295. package/src/orchestration/buffer-drain-runner.ts +40 -16
  296. package/src/orchestration/extraction-persist.ts +2 -10
  297. package/src/orchestration/fact-dedup-window.ts +5 -12
  298. package/src/orchestration/full-corpus-heap-guard.test.ts +52 -0
  299. package/src/projection-rebuild-config.test.ts +79 -0
  300. package/src/storage/buffer-drain-claims.test.ts +330 -6
  301. package/src/storage/buffer-drain-claims.ts +226 -80
  302. package/src/storage/buffer-session-files.ts +2 -2
  303. package/src/storage/content-hash-index.ts +9 -0
  304. package/src/storage/entity-store-symlink.test.ts +44 -0
  305. package/src/storage.ts +15 -0
  306. package/src/transfer/capsule-gunzip.ts +39 -0
  307. package/src/transfer/capsule-import.test.ts +73 -0
  308. package/src/transfer/capsule-import.ts +2 -2
  309. package/src/transfer/capsule-merge.test.ts +34 -0
  310. package/src/transfer/capsule-merge.ts +2 -10
  311. package/src/utils/malformed-entity-record.test.ts +69 -0
  312. package/dist/capsule-merge-XVTQJJ6R.js.map +0 -1
  313. package/dist/chunk-4KLQI3L2.js.map +0 -1
  314. package/dist/chunk-6LCWKS62.js.map +0 -1
  315. package/dist/chunk-7PMOCQOL.js.map +0 -1
  316. package/dist/chunk-AYTDCMEL.js.map +0 -1
  317. package/dist/chunk-B74NPUHT.js.map +0 -1
  318. package/dist/chunk-KQUSP6LB.js.map +0 -1
  319. package/dist/chunk-LU66I56Q.js.map +0 -1
  320. package/dist/chunk-MPDLLLOG.js.map +0 -1
  321. package/dist/chunk-S57QBPTA.js.map +0 -1
  322. package/dist/chunk-SVCHO337.js.map +0 -1
  323. package/dist/chunk-WAD32CZG.js.map +0 -1
  324. package/dist/chunk-XYP5WBDO.js.map +0 -1
  325. package/dist/chunk-YK7GOPIE.js.map +0 -1
  326. package/dist/chunk-Z3DDQXM4.js.map +0 -1
  327. /package/dist/{capsule-crypto-YO5QJ6L3.js.map → access-mcp-frames.js.map} +0 -0
  328. /package/dist/{auto-sync-C7E6G7Y2.js.map → auto-sync-3AZW7MXI.js.map} +0 -0
  329. /package/dist/{graph-edge-decay-CXTNJ7IQ.js.map → capsule-crypto-GWVG7LGC.js.map} +0 -0
  330. /package/dist/{resolution-BNWE5Y25.js.map → capsule-gunzip-KGBDGF7P.js.map} +0 -0
  331. /package/dist/{chunk-T6T2RMWW.js.map → chunk-23B4HLWG.js.map} +0 -0
  332. /package/dist/{chunk-LECSS7EE.js.map → chunk-2ASEDFOA.js.map} +0 -0
  333. /package/dist/{chunk-TPX7XXY4.js.map → chunk-2JAT4S7N.js.map} +0 -0
  334. /package/dist/{chunk-XRBHIR7Q.js.map → chunk-2URKYLMK.js.map} +0 -0
  335. /package/dist/{chunk-IN4OFAHX.js.map → chunk-2XYDL2FG.js.map} +0 -0
  336. /package/dist/{chunk-HQGATKG2.js.map → chunk-3KGCHTTK.js.map} +0 -0
  337. /package/dist/{chunk-YAUHSNPB.js.map → chunk-3LHPTBWG.js.map} +0 -0
  338. /package/dist/{chunk-XT45WCKX.js.map → chunk-3VU2FDTU.js.map} +0 -0
  339. /package/dist/{chunk-CIIHIAJ2.js.map → chunk-433EXTC4.js.map} +0 -0
  340. /package/dist/{chunk-QZSIDSB2.js.map → chunk-44FQCC5D.js.map} +0 -0
  341. /package/dist/{chunk-YUTT4ZTI.js.map → chunk-45VUHDV2.js.map} +0 -0
  342. /package/dist/{chunk-54FDG7K7.js.map → chunk-4DPLCYEK.js.map} +0 -0
  343. /package/dist/{chunk-KO3YBHOV.js.map → chunk-4IWEPQEV.js.map} +0 -0
  344. /package/dist/{chunk-H7BZBSP6.js.map → chunk-52II7PB6.js.map} +0 -0
  345. /package/dist/{chunk-K6RTQZA4.js.map → chunk-6DANGCMO.js.map} +0 -0
  346. /package/dist/{chunk-2IW5PT7U.js.map → chunk-6KFFRMPQ.js.map} +0 -0
  347. /package/dist/{chunk-MSIRVXQ3.js.map → chunk-73YVMZ7D.js.map} +0 -0
  348. /package/dist/{chunk-A7BM2JTH.js.map → chunk-AJHNXIQU.js.map} +0 -0
  349. /package/dist/{chunk-2D7BTSDW.js.map → chunk-ANZZLRUX.js.map} +0 -0
  350. /package/dist/{chunk-YOEYL6CH.js.map → chunk-AP3TSV6S.js.map} +0 -0
  351. /package/dist/{chunk-GQZSGXR6.js.map → chunk-BATPQNRG.js.map} +0 -0
  352. /package/dist/{chunk-D5SSBCYY.js.map → chunk-BLGQUZFB.js.map} +0 -0
  353. /package/dist/{chunk-BDN3TDGV.js.map → chunk-BLMTOIBK.js.map} +0 -0
  354. /package/dist/{chunk-R45L4TV6.js.map → chunk-BUKK5SWA.js.map} +0 -0
  355. /package/dist/{chunk-TFLPDNQV.js.map → chunk-CCU7URRP.js.map} +0 -0
  356. /package/dist/{chunk-2XJZLSXE.js.map → chunk-CMRHXPLQ.js.map} +0 -0
  357. /package/dist/{chunk-BK4FBHZ3.js.map → chunk-D6THW7PA.js.map} +0 -0
  358. /package/dist/{chunk-BFBS7OFQ.js.map → chunk-DC55RIEZ.js.map} +0 -0
  359. /package/dist/{chunk-VKDAJJQP.js.map → chunk-DI5ET2IE.js.map} +0 -0
  360. /package/dist/{chunk-QZBTIYKD.js.map → chunk-DM4RRTN7.js.map} +0 -0
  361. /package/dist/{chunk-EBOHFZI4.js.map → chunk-E5QEF3JO.js.map} +0 -0
  362. /package/dist/{chunk-DD6OIFDG.js.map → chunk-E7V5AK7I.js.map} +0 -0
  363. /package/dist/{chunk-BV2BRHD4.js.map → chunk-FHGWKODN.js.map} +0 -0
  364. /package/dist/{chunk-HPFVZPRH.js.map → chunk-FK4WC6VK.js.map} +0 -0
  365. /package/dist/{chunk-VLMBSGQF.js.map → chunk-FRM4UTDR.js.map} +0 -0
  366. /package/dist/{chunk-LTDLJCMQ.js.map → chunk-FZPDRCOB.js.map} +0 -0
  367. /package/dist/{chunk-ZJJFUEPO.js.map → chunk-GBOYOL5L.js.map} +0 -0
  368. /package/dist/{chunk-YUTG35M4.js.map → chunk-GJVGFKOU.js.map} +0 -0
  369. /package/dist/{chunk-K36RMINQ.js.map → chunk-GOZXQNIM.js.map} +0 -0
  370. /package/dist/{chunk-HWHNQVRV.js.map → chunk-GYNRNKMW.js.map} +0 -0
  371. /package/dist/{chunk-KFLD7ZZG.js.map → chunk-IUKYFTGW.js.map} +0 -0
  372. /package/dist/{chunk-BNQJKWWZ.js.map → chunk-K3FH3LAQ.js.map} +0 -0
  373. /package/dist/{chunk-FJ2VJTGA.js.map → chunk-KHZVAISH.js.map} +0 -0
  374. /package/dist/{chunk-WHQXWFH7.js.map → chunk-LT3CMO65.js.map} +0 -0
  375. /package/dist/{chunk-NUSAAN75.js.map → chunk-MHSBOEH7.js.map} +0 -0
  376. /package/dist/{chunk-KJCL2FZO.js.map → chunk-MNYQVYJ4.js.map} +0 -0
  377. /package/dist/{chunk-RZH5RVJC.js.map → chunk-MTTYIXSU.js.map} +0 -0
  378. /package/dist/{chunk-FVRTCYZ3.js.map → chunk-MVOJDLXS.js.map} +0 -0
  379. /package/dist/{chunk-KESJ5XX3.js.map → chunk-MYCCO6AA.js.map} +0 -0
  380. /package/dist/{chunk-66JOLMWS.js.map → chunk-MZCGHPIJ.js.map} +0 -0
  381. /package/dist/{chunk-B4ZU34JQ.js.map → chunk-N6II66E5.js.map} +0 -0
  382. /package/dist/{chunk-BK7AJUWB.js.map → chunk-NIV7RPWQ.js.map} +0 -0
  383. /package/dist/{chunk-TLHF75OR.js.map → chunk-O55AGDTI.js.map} +0 -0
  384. /package/dist/{chunk-GGJFRVRD.js.map → chunk-OMYRPMQC.js.map} +0 -0
  385. /package/dist/{chunk-XHGYZRVW.js.map → chunk-OSTFDWZJ.js.map} +0 -0
  386. /package/dist/{chunk-BXLOS5AJ.js.map → chunk-OWHERGF2.js.map} +0 -0
  387. /package/dist/{chunk-WC475JOG.js.map → chunk-P225W4RQ.js.map} +0 -0
  388. /package/dist/{chunk-TFA6HPOA.js.map → chunk-QCP75JGO.js.map} +0 -0
  389. /package/dist/{chunk-JRVMCZE3.js.map → chunk-QEYTRFR3.js.map} +0 -0
  390. /package/dist/{chunk-IZJQNDGI.js.map → chunk-R6HMAIKM.js.map} +0 -0
  391. /package/dist/{chunk-VUROWXFL.js.map → chunk-RNGDKFY2.js.map} +0 -0
  392. /package/dist/{chunk-FF6N7BXC.js.map → chunk-S45INSV3.js.map} +0 -0
  393. /package/dist/{chunk-2RUTN7PR.js.map → chunk-S7GJNA3K.js.map} +0 -0
  394. /package/dist/{chunk-RJWL3RHB.js.map → chunk-TFEHSPGQ.js.map} +0 -0
  395. /package/dist/{chunk-T77AX6DG.js.map → chunk-TQVECGUQ.js.map} +0 -0
  396. /package/dist/{chunk-OQSSQOKQ.js.map → chunk-TV65NR7L.js.map} +0 -0
  397. /package/dist/{chunk-HQPFACXO.js.map → chunk-UH3FPX3L.js.map} +0 -0
  398. /package/dist/{chunk-4EACCIPO.js.map → chunk-UHPHH74F.js.map} +0 -0
  399. /package/dist/{chunk-DQEMWVMT.js.map → chunk-UVYI6VIX.js.map} +0 -0
  400. /package/dist/{chunk-6QYPL6NI.js.map → chunk-V45TEVDA.js.map} +0 -0
  401. /package/dist/{chunk-GCAQ3VUJ.js.map → chunk-VCVEMQJK.js.map} +0 -0
  402. /package/dist/{chunk-6L63IN3M.js.map → chunk-VEFGHRKV.js.map} +0 -0
  403. /package/dist/{chunk-E33UJHY3.js.map → chunk-WFDWLWDK.js.map} +0 -0
  404. /package/dist/{chunk-KQLBXUUQ.js.map → chunk-WYG5UNDY.js.map} +0 -0
  405. /package/dist/{chunk-MPGLM2VU.js.map → chunk-X7REO4CH.js.map} +0 -0
  406. /package/dist/{chunk-FZVROZKC.js.map → chunk-XVZA6VXC.js.map} +0 -0
  407. /package/dist/{chunk-WV254W4V.js.map → chunk-Y3IYKNBY.js.map} +0 -0
  408. /package/dist/{chunk-FUOAIJKQ.js.map → chunk-Y43X3E24.js.map} +0 -0
  409. /package/dist/{chunk-3T3VHXUH.js.map → chunk-YAAKVTZA.js.map} +0 -0
  410. /package/dist/{chunk-VPEIWMUT.js.map → chunk-YLTU2DC4.js.map} +0 -0
  411. /package/dist/{chunk-65SKM4BF.js.map → chunk-YNBMBL4C.js.map} +0 -0
  412. /package/dist/{chunk-PJYK7HH2.js.map → chunk-ZWTHVUT5.js.map} +0 -0
  413. /package/dist/{first-start-migration-QVD22WWS.js.map → first-start-migration-A6PHIBUQ.js.map} +0 -0
@@ -1,7 +1,3 @@
1
- import {
2
- CAPSULE_SCHEMA_VERSION,
3
- EXPORT_FORMAT
4
- } from "./chunk-J4EB7DNW.js";
5
1
  import {
6
2
  CAPSULE_ID_PATTERN,
7
3
  CapsuleBlockSchema,
@@ -10,7 +6,11 @@ import {
10
6
  } from "./chunk-WEHSQBFR.js";
11
7
  import {
12
8
  encryptCapsuleFile
13
- } from "./chunk-DQEMWVMT.js";
9
+ } from "./chunk-UVYI6VIX.js";
10
+ import {
11
+ CAPSULE_SCHEMA_VERSION,
12
+ EXPORT_FORMAT
13
+ } from "./chunk-J4EB7DNW.js";
14
14
  import {
15
15
  DEFAULT_TRANSFER_EXCLUDE_DIRS,
16
16
  computeTransferOutputRel
@@ -261,4 +261,4 @@ export {
261
261
  exportCapsule,
262
262
  isValidCapsuleSince
263
263
  };
264
- //# sourceMappingURL=chunk-R45L4TV6.js.map
264
+ //# sourceMappingURL=chunk-BUKK5SWA.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  listNamespaces
3
- } from "./chunk-HPFVZPRH.js";
3
+ } from "./chunk-FK4WC6VK.js";
4
4
  import {
5
5
  corpusScanWorker
6
6
  } from "./chunk-4LZ7SVKM.js";
@@ -292,4 +292,4 @@ export {
292
292
  computeServiceCorpusWatermarks,
293
293
  computeServiceCorpusCensus
294
294
  };
295
- //# sourceMappingURL=chunk-TFLPDNQV.js.map
295
+ //# sourceMappingURL=chunk-CCU7URRP.js.map
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  WearablesInputError
3
3
  } from "./chunk-V7IZKJI3.js";
4
- import {
5
- WriteRateLimiter
6
- } from "./chunk-TB6CBZ5V.js";
7
4
  import {
8
5
  AdapterRegistry
9
6
  } from "./chunk-G3T6YMBO.js";
7
+ import {
8
+ WriteRateLimiter
9
+ } from "./chunk-TB6CBZ5V.js";
10
10
  import {
11
11
  maybeRespondRecallNavigation
12
12
  } from "./chunk-2TGIKMMZ.js";
@@ -18,13 +18,13 @@ import {
18
18
  } from "./chunk-3HSRWJTC.js";
19
19
  import {
20
20
  respondDeepRecall
21
- } from "./chunk-E33UJHY3.js";
21
+ } from "./chunk-WFDWLWDK.js";
22
22
  import {
23
23
  handleSupportPassportOwnerHttp
24
- } from "./chunk-GGJFRVRD.js";
24
+ } from "./chunk-OMYRPMQC.js";
25
25
  import {
26
26
  buildSupportPassportPublicRequestHandler
27
- } from "./chunk-GQZSGXR6.js";
27
+ } from "./chunk-BATPQNRG.js";
28
28
  import {
29
29
  handleMcpGetSse
30
30
  } from "./chunk-SRT6SHVZ.js";
@@ -37,18 +37,18 @@ import {
37
37
  processChatMessage,
38
38
  sessionBelongsToPrincipal,
39
39
  subscribeChatTranscript
40
- } from "./chunk-Z3DDQXM4.js";
40
+ } from "./chunk-XSFQN7TP.js";
41
41
  import {
42
42
  RelayMissionStoreError
43
- } from "./chunk-BK7AJUWB.js";
43
+ } from "./chunk-NIV7RPWQ.js";
44
+ import {
45
+ executeResolution,
46
+ isValidResolutionVerb
47
+ } from "./chunk-S7GJNA3K.js";
44
48
  import {
45
49
  handleRecallWhyHttpQuery,
46
50
  handleRecallXrayHttpQuery
47
51
  } from "./chunk-ZXF3O7P4.js";
48
- import {
49
- executeResolution,
50
- isValidResolutionVerb
51
- } from "./chunk-2RUTN7PR.js";
52
52
  import {
53
53
  toDottedRemnicName
54
54
  } from "./chunk-ZQUVBZI4.js";
@@ -61,10 +61,10 @@ import {
61
61
  optionalNamespaceKindQueryParam,
62
62
  optionalQueryString,
63
63
  positiveIntQueryParam
64
- } from "./chunk-54FDG7K7.js";
64
+ } from "./chunk-4DPLCYEK.js";
65
65
  import {
66
66
  respondBriefingHttp
67
- } from "./chunk-LECSS7EE.js";
67
+ } from "./chunk-2ASEDFOA.js";
68
68
  import {
69
69
  maybeHandleLifecycleFlush
70
70
  } from "./chunk-2BPPGNAQ.js";
@@ -75,14 +75,14 @@ import {
75
75
  authorizationProbeNamespaces,
76
76
  authorizationProbeRequiresPrincipalNamespace,
77
77
  probeOperationAuthorization
78
- } from "./chunk-LTDLJCMQ.js";
78
+ } from "./chunk-FZPDRCOB.js";
79
79
  import {
80
80
  getOperation,
81
81
  resolveQueryNamespaceWritablePreflight
82
- } from "./chunk-6LCWKS62.js";
82
+ } from "./chunk-HVFX2N2G.js";
83
83
  import {
84
84
  handleWhoKnowsHttpQuery
85
- } from "./chunk-FUOAIJKQ.js";
85
+ } from "./chunk-Y43X3E24.js";
86
86
  import {
87
87
  isTrustZoneName
88
88
  } from "./chunk-JWX2Q6HS.js";
@@ -105,10 +105,10 @@ import {
105
105
  } from "./chunk-V4XE263I.js";
106
106
  import {
107
107
  validateRequest
108
- } from "./chunk-HWHNQVRV.js";
108
+ } from "./chunk-GYNRNKMW.js";
109
109
  import {
110
110
  peerManifestRevision
111
- } from "./chunk-A7BM2JTH.js";
111
+ } from "./chunk-AJHNXIQU.js";
112
112
  import {
113
113
  assertOperationAllowed,
114
114
  capabilityAllowsOp,
@@ -3573,4 +3573,4 @@ export {
3573
3573
  resolveDefaultAdminConsolePublicDir,
3574
3574
  EngramAccessHttpServer
3575
3575
  };
3576
- //# sourceMappingURL=chunk-2XJZLSXE.js.map
3576
+ //# sourceMappingURL=chunk-CMRHXPLQ.js.map
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  StorageManager
3
- } from "./chunk-WAD32CZG.js";
3
+ } from "./chunk-ELWI2R6H.js";
4
4
  import {
5
5
  composeMemoryEnvelope
6
- } from "./chunk-JRVMCZE3.js";
6
+ } from "./chunk-QEYTRFR3.js";
7
7
  import {
8
8
  isErrnoCode
9
9
  } from "./chunk-KNA3BXXL.js";
@@ -546,4 +546,4 @@ export {
546
546
  setSemanticRulePromotionTestHooks,
547
547
  promoteSemanticRuleFromMemory
548
548
  };
549
- //# sourceMappingURL=chunk-BK4FBHZ3.js.map
549
+ //# sourceMappingURL=chunk-D6THW7PA.js.map
@@ -3,6 +3,9 @@ import {
3
3
  withGraphWriteLock,
4
4
  yieldForLockHeartbeat
5
5
  } from "./chunk-QGJSBU4R.js";
6
+ import {
7
+ readEdgeConfidence
8
+ } from "./chunk-2LSZVONP.js";
6
9
  import {
7
10
  emitGraphEvent
8
11
  } from "./chunk-DEUNUKTD.js";
@@ -14,9 +17,6 @@ import {
14
17
  import {
15
18
  GraphEdgeAppendError
16
19
  } from "./chunk-GKCXTSFF.js";
17
- import {
18
- readEdgeConfidence
19
- } from "./chunk-2LSZVONP.js";
20
20
  import {
21
21
  isErrnoCode
22
22
  } from "./chunk-KNA3BXXL.js";
@@ -758,4 +758,4 @@ export {
758
758
  applyPageRankRefinement,
759
759
  applyLateralInhibition
760
760
  };
761
- //# sourceMappingURL=chunk-BFBS7OFQ.js.map
761
+ //# sourceMappingURL=chunk-DC55RIEZ.js.map
@@ -1,3 +1,6 @@
1
+ import {
2
+ OramaBackend
3
+ } from "./chunk-DLZGSZVC.js";
1
4
  import {
2
5
  RemoteSearchBackend
3
6
  } from "./chunk-OVZIYLBZ.js";
@@ -13,12 +16,9 @@ import {
13
16
  import {
14
17
  NoopSearchBackend
15
18
  } from "./chunk-CYEPCZN5.js";
16
- import {
17
- OramaBackend
18
- } from "./chunk-DLZGSZVC.js";
19
19
  import {
20
20
  createConversationIndexBackend
21
- } from "./chunk-TFA6HPOA.js";
21
+ } from "./chunk-QCP75JGO.js";
22
22
  import {
23
23
  FaissConversationIndexAdapter
24
24
  } from "./chunk-F4TWWUMP.js";
@@ -179,4 +179,4 @@ export {
179
179
  createConversationSearchBackend,
180
180
  createConversationIndexRuntime
181
181
  };
182
- //# sourceMappingURL=chunk-VKDAJJQP.js.map
182
+ //# sourceMappingURL=chunk-DI5ET2IE.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  applyExtractionSourceGrounding
3
- } from "./chunk-CIIHIAJ2.js";
3
+ } from "./chunk-433EXTC4.js";
4
4
  import {
5
5
  CONNECTOR_LABEL_MAX_LENGTH,
6
6
  knownConnectorIds
@@ -10,7 +10,7 @@ import {
10
10
  } from "./chunk-QA3Y2O6H.js";
11
11
  import {
12
12
  deriveSourceConnector
13
- } from "./chunk-KO3YBHOV.js";
13
+ } from "./chunk-4IWEPQEV.js";
14
14
  import {
15
15
  resolvePipelineProcessingCapabilities
16
16
  } from "./chunk-C5LWPYS3.js";
@@ -112,4 +112,4 @@ export {
112
112
  renderExtractionConversation,
113
113
  applyGroundingWithConnector
114
114
  };
115
- //# sourceMappingURL=chunk-QZBTIYKD.js.map
115
+ //# sourceMappingURL=chunk-DM4RRTN7.js.map
@@ -1,3 +1,6 @@
1
+ import {
2
+ compareStrings
3
+ } from "./chunk-ULM7JCDH.js";
1
4
  import {
2
5
  entityMentionEpoch
3
6
  } from "./chunk-7CT3AI52.js";
@@ -88,11 +91,6 @@ function throwIfMentionAborted(signal) {
88
91
  const reason = signal.reason;
89
92
  throw reason instanceof Error ? reason : new Error("entity mention rebuild aborted");
90
93
  }
91
- function compareStrings(left, right) {
92
- if (left < right) return -1;
93
- if (left > right) return 1;
94
- return 0;
95
- }
96
94
  function deduped(values) {
97
95
  const seen = /* @__PURE__ */ new Set();
98
96
  const out = [];
@@ -327,4 +325,4 @@ export {
327
325
  settleEntityMentionIndex,
328
326
  resolveEntityMentionIndex
329
327
  };
330
- //# sourceMappingURL=chunk-S57QBPTA.js.map
328
+ //# sourceMappingURL=chunk-DPPLNZ3A.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/entity-mention-index-cache.ts"],"sourcesContent":["import path from \"node:path\";\nimport { mkdir, readFile, rm, writeFile } from \"node:fs/promises\";\nimport { raceAbort } from \"./abort-error.js\";\nimport { entityMentionEpoch } from \"./entity-mention-epoch.js\";\nimport { log } from \"./logger.js\";\nimport { compareStrings } from \"./eval-trajectory-contracts.js\";\n\n/**\n * In-memory entity mention index.\n *\n * Scope (namespaces, dirs, secure-store key, alias map, native revision) is\n * the cache key. Mention epoch and entity-file mutation are identity inside\n * the slot, not part of the key:\n *\n * - metadata-only corpus bumps do not move the epoch, so the next recall hits\n * - entity-file changes rebuild from entity files before the recall returns,\n * reusing memory snippets (no fact scan). A new entity is visible on that\n * recall; its memory snippets arrive with the next full reconcile. A new\n * canonical id schedules that reconcile. Callers share one scan. One\n * caller's abort stops that caller waiting and leaves the scan running\n * for the others\n * - memory create/edit/delete moves the epoch. The recall serves the last\n * index immediately and one background reconcile runs, plus at most one\n * follow-up if that scan overlaps a later write. A recall during either\n * scan does not grant another follow-up. Further rescans wait for the\n * next recall. After writes quiesce and `settleEntityMentionIndex`\n * finishes, the index matches a full rebuild\n * - secure-store key, alias map, and native revision stay in the key, so a\n * change is a miss and awaits a full rebuild. A locked store never reads\n * another key's plaintext. Evicting that older scope also stops its scan\n * from publishing the persisted index\n * - a persisted index is readable per storage root. A process-wide cache\n * clear blocks every root until that root's own post-clear build publishes.\n * One root publishing does not reopen another root's file\n */\n\nconst MAX_SLOTS = 32;\nconst SETTLE_ROUNDS = 8;\n\nexport type EntityMentionIdentity = {\n mentionEpoch: string;\n entityMutation: string;\n};\n\ntype ScopedStorage = {\n dir: string;\n hotCacheKeyId?(): string;\n entityAliases?: Readonly<Record<string, string>> | null;\n getEntityMutationVersion?(): number;\n};\n\ntype Slot = {\n scopeKey: string;\n index: unknown;\n identity: EntityMentionIdentity;\n token: number;\n rebuild: Promise<void> | null;\n entityJob: Promise<void> | null;\n again: boolean;\n followUps: number;\n currentIdentity: () => EntityMentionIdentity;\n buildFull: (abortSignal?: AbortSignal) => Promise<unknown>;\n};\n\nconst slots = new Map<string, Slot>();\nconst rebuildsByScope = new Map<string, number>();\nconst GENERATION_STRIDE = 1_000_000_000;\nlet clearEpoch = 0;\nconst localGenerationByDir = new Map<string, number>();\nconst publishedGenerationByDir = new Map<string, number>();\nconst persistTailByDir = new Map<string, Promise<void>>();\n\nfunction resolveMentionDir(dir: string): string {\n return path.resolve(dir);\n}\n\nexport function entityMentionCacheGeneration(dir: string): number {\n const resolved = resolveMentionDir(dir);\n return clearEpoch * GENERATION_STRIDE + (localGenerationByDir.get(resolved) ?? 0);\n}\n\nexport function entityMentionPersistedIndexReadable(dir: string): boolean {\n const resolved = resolveMentionDir(dir);\n const local = localGenerationByDir.get(resolved) ?? 0;\n if (clearEpoch === 0 && local === 0) return true;\n return publishedGenerationByDir.get(resolved) === entityMentionCacheGeneration(resolved);\n}\n\nfunction dirsInScope(scopeKey: string): string[] {\n const nsEnd = scopeKey.indexOf(\"\\u001e\");\n const storageEnd = nsEnd === -1 ? -1 : scopeKey.indexOf(\"\\u001e\", nsEnd + 1);\n if (nsEnd === -1 || storageEnd === -1) return [];\n return scopeKey\n .slice(nsEnd + 1, storageEnd)\n .split(\"\\u001f\")\n .map((part) => part.split(\"\\u001d\")[0] ?? \"\")\n .filter((dir) => dir.length > 0)\n .map((dir) => resolveMentionDir(dir));\n}\n\nfunction persistedMentionIndexFiles(scopeKey: string): string[] {\n return dirsInScope(scopeKey).map((dir) => path.join(dir, \"state\", \"entity-mention-index.json\"));\n}\n\nfunction bumpScopeDirs(scopeKey: string): void {\n for (const dir of dirsInScope(scopeKey)) {\n localGenerationByDir.set(dir, (localGenerationByDir.get(dir) ?? 0) + 1);\n }\n}\n\nfunction captureDirGenerations(scopeKey: string): Map<string, number> {\n const captured = new Map<string, number>();\n for (const dir of dirsInScope(scopeKey)) captured.set(dir, entityMentionCacheGeneration(dir));\n return captured;\n}\n\nfunction generationsCurrent(captured: Map<string, number>): boolean {\n for (const [dir, generation] of captured) {\n if (entityMentionCacheGeneration(dir) !== generation) return false;\n }\n return true;\n}\n\nfunction publishDirGenerations(captured: Map<string, number>): void {\n for (const [dir, generation] of captured) {\n if (entityMentionCacheGeneration(dir) === generation) publishedGenerationByDir.set(dir, generation);\n }\n}\n\nexport async function writePersistedEntityMentionIndex(\n dir: string,\n generation: number,\n content: string,\n): Promise<void> {\n const resolved = resolveMentionDir(dir);\n const previous = persistTailByDir.get(resolved) ?? Promise.resolve();\n const run = previous.catch(() => undefined).then(async () => {\n if (entityMentionCacheGeneration(resolved) !== generation) return;\n const file = path.join(resolved, \"state\", \"entity-mention-index.json\");\n await mkdir(path.dirname(file), { recursive: true });\n const current = await readFile(file, \"utf-8\").catch(() => \"\");\n if (current === content) return;\n if (entityMentionCacheGeneration(resolved) !== generation) return;\n await writeFile(file, content, \"utf-8\");\n });\n persistTailByDir.set(resolved, run.then(() => undefined, () => undefined));\n await run;\n}\n\nfunction discardPersistedMentionIndex(scopeKey: string): void {\n for (const file of persistedMentionIndexFiles(scopeKey)) {\n void rm(file, { force: true }).catch(() => undefined);\n }\n}\n\nfunction throwIfMentionAborted(signal?: AbortSignal): void {\n if (!signal?.aborted) return;\n const reason = signal.reason;\n throw reason instanceof Error ? reason : new Error(\"entity mention rebuild aborted\");\n}\n\nfunction deduped(values: readonly string[]): string[] {\n const seen = new Set<string>();\n const out: string[] = [];\n for (const value of values) {\n const trimmed = value.trim();\n if (trimmed.length === 0 || seen.has(trimmed)) continue;\n seen.add(trimmed);\n out.push(trimmed);\n }\n return out;\n}\n\nfunction sameIdentity(left: EntityMentionIdentity, right: EntityMentionIdentity): boolean {\n return left.mentionEpoch === right.mentionEpoch && left.entityMutation === right.entityMutation;\n}\n\nfunction noteRebuild(scopeKey: string): void {\n rebuildsByScope.set(scopeKey, (rebuildsByScope.get(scopeKey) ?? 0) + 1);\n}\n\nfunction scopeFamily(scopeKey: string): string {\n const nsEnd = scopeKey.indexOf(\"\\u001e\");\n const storageEnd = nsEnd === -1 ? -1 : scopeKey.indexOf(\"\\u001e\", nsEnd + 1);\n const namespaceKey = nsEnd === -1 ? scopeKey : scopeKey.slice(0, nsEnd);\n const storageKey = nsEnd === -1 || storageEnd === -1 ? \"\" : scopeKey.slice(nsEnd + 1, storageEnd);\n const dirs = storageKey\n .split(\"\\u001f\")\n .map((part) => part.split(\"\\u001d\")[0] ?? \"\")\n .join(\"\\u001f\");\n return `${namespaceKey}\\u001e${dirs}`;\n}\n\nfunction forgetScope(scopeKey: string, bumpPersisted = false): void {\n const slot = slots.get(scopeKey);\n if (slot) {\n slot.token += 1;\n slot.again = false;\n }\n if (bumpPersisted) bumpScopeDirs(scopeKey);\n slots.delete(scopeKey);\n rebuildsByScope.delete(scopeKey);\n}\n\nfunction evictOldest(scopeKey: string): void {\n if (slots.size < MAX_SLOTS || slots.has(scopeKey)) return;\n const oldest = slots.keys().next().value;\n if (typeof oldest === \"string\") forgetScope(oldest);\n}\n\nfunction evictSameFamily(scopeKey: string): void {\n const family = scopeFamily(scopeKey);\n for (const key of [...slots.keys()]) {\n if (key !== scopeKey && scopeFamily(key) === family) forgetScope(key, true);\n }\n}\n\nfunction wantsSnippetReconcile(index: unknown): boolean {\n return (\n !!index &&\n typeof index === \"object\" &&\n (index as { pendingSnippetReconcile?: boolean }).pendingSnippetReconcile === true\n );\n}\n\nfunction armRebuild(slot: Slot): void {\n // A recall that arrives while a scan is already running must not grant\n // another follow-up. The chain stops after the one already armed.\n if (!slot.rebuild) slot.followUps = 1;\n startRebuild(slot);\n}\n\nfunction startRebuild(slot: Slot): void {\n // A recall that arrives during a scan is not a write. The follow-up is\n // armed only when the scan's end identity differs from the identity it\n // started with. Setting `again` here made every concurrent recall pay a\n // second full corpus scan after a stable rebuild.\n if (slot.rebuild) return;\n const token = slot.token;\n const captured = captureDirGenerations(slot.scopeKey);\n noteRebuild(slot.scopeKey);\n const started = slot.currentIdentity();\n slot.again = false;\n const handle: { pending: Promise<void> | null } = { pending: null };\n handle.pending = slot\n .buildFull(undefined)\n .then((index) => {\n if (slot.token !== token || !generationsCurrent(captured)) return;\n publishDirGenerations(captured);\n const ended = slot.currentIdentity();\n slot.index = index;\n if (sameIdentity(started, ended)) {\n slot.identity = ended;\n return;\n }\n // Scan overlapped later writes. Keep the start identity so the next\n // recall stays stale and exactly one follow-up reconcile runs.\n slot.identity = started;\n slot.again = true;\n })\n .catch((err: unknown) => {\n const message = err instanceof Error ? err.message : String(err);\n log.warn(`entity mention index rebuild failed: ${message}`);\n })\n .finally(() => {\n if (slot.rebuild === handle.pending) slot.rebuild = null;\n // One automatic follow-up per caller-started rebuild. A store that keeps\n // changing during every scan waits for the next recall (or settle) instead\n // of chaining full scans with nobody waiting.\n if (!slot.again || slot.followUps <= 0) return;\n slot.again = false;\n slot.followUps -= 1;\n startRebuild(slot);\n });\n slot.rebuild = handle.pending;\n}\n\nexport function entityMentionScopeKey(\n namespaces: readonly string[] | undefined,\n storages: readonly ScopedStorage[],\n nativeRevision: string,\n): string {\n const namespaceKey = deduped(namespaces ?? []).join(\"\\u001f\");\n const storageKey = storages\n .map((storage) => {\n const aliases = Object.entries(storage.entityAliases ?? {}).sort(([left], [right]) =>\n compareStrings(left, right),\n );\n return `${path.resolve(storage.dir)}\\u001d${storage.hotCacheKeyId?.() ?? \"\"}\\u001d${JSON.stringify(aliases)}`;\n })\n .join(\"\\u001f\");\n return `${namespaceKey}\\u001e${storageKey}\\u001e${nativeRevision}`;\n}\n\nexport function entityMentionIdentity(storages: readonly ScopedStorage[]): EntityMentionIdentity {\n return {\n mentionEpoch: storages.map((storage) => String(entityMentionEpoch.current(storage.dir))).join(\"\\u001f\"),\n entityMutation: storages.map((storage) => String(storage.getEntityMutationVersion?.() ?? 0)).join(\"\\u001f\"),\n };\n}\n\nexport function entityMentionFullRebuildsStarted(scopeKey: string): number {\n return rebuildsByScope.get(scopeKey) ?? 0;\n}\n\nexport function entityMentionIndexScopeKeys(): string[] {\n return [...slots.keys()];\n}\n\nexport function dropEntityMentionIndexCache(scopeKey?: string): void {\n if (scopeKey === undefined) {\n clearEpoch += 1;\n for (const key of [...slots.keys()]) {\n discardPersistedMentionIndex(key);\n forgetScope(key);\n }\n return;\n }\n discardPersistedMentionIndex(scopeKey);\n forgetScope(scopeKey, true);\n}\n\nexport async function settleEntityMentionIndex(scopeKey?: string): Promise<void> {\n const matches = (slot: Slot) => scopeKey === undefined || slot.scopeKey === scopeKey;\n for (let round = 0; round < SETTLE_ROUNDS; round += 1) {\n for (const slot of slots.values()) {\n if (!matches(slot)) continue;\n if (!slot.rebuild && slot.again) {\n slot.again = false;\n startRebuild(slot);\n }\n }\n const pending = [...slots.values()].filter((slot) => matches(slot) && slot.rebuild).map((slot) => slot.rebuild!);\n if (pending.length === 0) return;\n await Promise.all(pending);\n }\n}\n\nexport async function resolveEntityMentionIndex<T>(options: {\n scopeKey: string;\n currentIdentity: () => EntityMentionIdentity;\n buildFull: (abortSignal?: AbortSignal) => Promise<T>;\n rebuildEntities: (previous: T, abortSignal?: AbortSignal) => Promise<T>;\n abortSignal?: AbortSignal;\n}): Promise<T> {\n const live = options.currentIdentity();\n const existing = slots.get(options.scopeKey);\n if (!existing) {\n evictSameFamily(options.scopeKey);\n evictOldest(options.scopeKey);\n noteRebuild(options.scopeKey);\n const captured = captureDirGenerations(options.scopeKey);\n const started = options.currentIdentity();\n const index = await options.buildFull(options.abortSignal);\n // A clear or family eviction during this first scan must not publish it.\n if (!generationsCurrent(captured)) return index;\n publishDirGenerations(captured);\n const ended = options.currentIdentity();\n evictSameFamily(options.scopeKey);\n evictOldest(options.scopeKey);\n const slot: Slot = {\n scopeKey: options.scopeKey,\n index,\n identity: sameIdentity(started, ended) ? ended : started,\n token: 0,\n rebuild: null,\n entityJob: null,\n again: false,\n followUps: 0,\n currentIdentity: options.currentIdentity,\n buildFull: options.buildFull,\n };\n slots.set(options.scopeKey, slot);\n if (!sameIdentity(started, ended)) armRebuild(slot);\n return index;\n }\n existing.currentIdentity = options.currentIdentity;\n existing.buildFull = options.buildFull;\n while (existing.identity.entityMutation !== options.currentIdentity().entityMutation) {\n throwIfMentionAborted(options.abortSignal);\n const pending = existing.entityJob;\n if (pending) {\n await raceAbort(pending, options.abortSignal, \"entity mention rebuild aborted\");\n continue;\n }\n const liveNow = options.currentIdentity();\n const epochBefore = existing.identity.mentionEpoch;\n const mutationBefore = liveNow.entityMutation;\n let release = (): void => {};\n const gate = new Promise<void>((resolve) => {\n release = resolve;\n });\n existing.entityJob = gate;\n existing.token += 1;\n existing.again = false;\n const token = existing.token;\n const captured = captureDirGenerations(existing.scopeKey);\n // Shared scan. This caller's abort stops its wait and leaves the scan\n // running. Publish when the scan settles, even if this caller has left.\n // A family eviction bumps the token and the root generation; this scan\n // must not install its result or start a follow-up that would republish.\n const scan = options.rebuildEntities(existing.index as T, undefined);\n void scan\n .then(\n (rebuilt) => {\n if (existing.token !== token || !generationsCurrent(captured)) return;\n const now = options.currentIdentity();\n existing.index = rebuilt;\n const epochStable = epochBefore === liveNow.mentionEpoch && epochBefore === now.mentionEpoch;\n const mutationStable = mutationBefore === now.entityMutation;\n existing.identity = {\n entityMutation: mutationStable ? now.entityMutation : mutationBefore,\n mentionEpoch: epochStable ? now.mentionEpoch : epochBefore,\n };\n if (existing.identity.mentionEpoch !== now.mentionEpoch || wantsSnippetReconcile(rebuilt)) {\n armRebuild(existing);\n }\n },\n () => {},\n )\n .finally(() => {\n if (existing.entityJob === gate) existing.entityJob = null;\n release();\n });\n const rebuilt = await raceAbort(scan, options.abortSignal, \"entity mention rebuild aborted\");\n throwIfMentionAborted(options.abortSignal);\n return rebuilt;\n }\n if (existing.identity.mentionEpoch !== live.mentionEpoch) {\n armRebuild(existing);\n return existing.index as T;\n }\n return existing.index as T;\n}\n\nentityMentionEpoch.registerReset(() => {\n dropEntityMentionIndexCache();\n});\n"],"mappings":";;;;;;;;;;;;;;AAAA,OAAO,UAAU;AACjB,SAAS,OAAO,UAAU,IAAI,iBAAiB;AAmC/C,IAAM,YAAY;AAClB,IAAM,gBAAgB;AA2BtB,IAAM,QAAQ,oBAAI,IAAkB;AACpC,IAAM,kBAAkB,oBAAI,IAAoB;AAChD,IAAM,oBAAoB;AAC1B,IAAI,aAAa;AACjB,IAAM,uBAAuB,oBAAI,IAAoB;AACrD,IAAM,2BAA2B,oBAAI,IAAoB;AACzD,IAAM,mBAAmB,oBAAI,IAA2B;AAExD,SAAS,kBAAkB,KAAqB;AAC9C,SAAO,KAAK,QAAQ,GAAG;AACzB;AAEO,SAAS,6BAA6B,KAAqB;AAChE,QAAM,WAAW,kBAAkB,GAAG;AACtC,SAAO,aAAa,qBAAqB,qBAAqB,IAAI,QAAQ,KAAK;AACjF;AAEO,SAAS,oCAAoC,KAAsB;AACxE,QAAM,WAAW,kBAAkB,GAAG;AACtC,QAAM,QAAQ,qBAAqB,IAAI,QAAQ,KAAK;AACpD,MAAI,eAAe,KAAK,UAAU,EAAG,QAAO;AAC5C,SAAO,yBAAyB,IAAI,QAAQ,MAAM,6BAA6B,QAAQ;AACzF;AAEA,SAAS,YAAY,UAA4B;AAC/C,QAAM,QAAQ,SAAS,QAAQ,GAAQ;AACvC,QAAM,aAAa,UAAU,KAAK,KAAK,SAAS,QAAQ,KAAU,QAAQ,CAAC;AAC3E,MAAI,UAAU,MAAM,eAAe,GAAI,QAAO,CAAC;AAC/C,SAAO,SACJ,MAAM,QAAQ,GAAG,UAAU,EAC3B,MAAM,GAAQ,EACd,IAAI,CAAC,SAAS,KAAK,MAAM,GAAQ,EAAE,CAAC,KAAK,EAAE,EAC3C,OAAO,CAAC,QAAQ,IAAI,SAAS,CAAC,EAC9B,IAAI,CAAC,QAAQ,kBAAkB,GAAG,CAAC;AACxC;AAEA,SAAS,2BAA2B,UAA4B;AAC9D,SAAO,YAAY,QAAQ,EAAE,IAAI,CAAC,QAAQ,KAAK,KAAK,KAAK,SAAS,2BAA2B,CAAC;AAChG;AAEA,SAAS,cAAc,UAAwB;AAC7C,aAAW,OAAO,YAAY,QAAQ,GAAG;AACvC,yBAAqB,IAAI,MAAM,qBAAqB,IAAI,GAAG,KAAK,KAAK,CAAC;AAAA,EACxE;AACF;AAEA,SAAS,sBAAsB,UAAuC;AACpE,QAAM,WAAW,oBAAI,IAAoB;AACzC,aAAW,OAAO,YAAY,QAAQ,EAAG,UAAS,IAAI,KAAK,6BAA6B,GAAG,CAAC;AAC5F,SAAO;AACT;AAEA,SAAS,mBAAmB,UAAwC;AAClE,aAAW,CAAC,KAAK,UAAU,KAAK,UAAU;AACxC,QAAI,6BAA6B,GAAG,MAAM,WAAY,QAAO;AAAA,EAC/D;AACA,SAAO;AACT;AAEA,SAAS,sBAAsB,UAAqC;AAClE,aAAW,CAAC,KAAK,UAAU,KAAK,UAAU;AACxC,QAAI,6BAA6B,GAAG,MAAM,WAAY,0BAAyB,IAAI,KAAK,UAAU;AAAA,EACpG;AACF;AAEA,eAAsB,iCACpB,KACA,YACA,SACe;AACf,QAAM,WAAW,kBAAkB,GAAG;AACtC,QAAM,WAAW,iBAAiB,IAAI,QAAQ,KAAK,QAAQ,QAAQ;AACnE,QAAM,MAAM,SAAS,MAAM,MAAM,MAAS,EAAE,KAAK,YAAY;AAC3D,QAAI,6BAA6B,QAAQ,MAAM,WAAY;AAC3D,UAAM,OAAO,KAAK,KAAK,UAAU,SAAS,2BAA2B;AACrE,UAAM,MAAM,KAAK,QAAQ,IAAI,GAAG,EAAE,WAAW,KAAK,CAAC;AACnD,UAAM,UAAU,MAAM,SAAS,MAAM,OAAO,EAAE,MAAM,MAAM,EAAE;AAC5D,QAAI,YAAY,QAAS;AACzB,QAAI,6BAA6B,QAAQ,MAAM,WAAY;AAC3D,UAAM,UAAU,MAAM,SAAS,OAAO;AAAA,EACxC,CAAC;AACD,mBAAiB,IAAI,UAAU,IAAI,KAAK,MAAM,QAAW,MAAM,MAAS,CAAC;AACzE,QAAM;AACR;AAEA,SAAS,6BAA6B,UAAwB;AAC5D,aAAW,QAAQ,2BAA2B,QAAQ,GAAG;AACvD,SAAK,GAAG,MAAM,EAAE,OAAO,KAAK,CAAC,EAAE,MAAM,MAAM,MAAS;AAAA,EACtD;AACF;AAEA,SAAS,sBAAsB,QAA4B;AACzD,MAAI,CAAC,QAAQ,QAAS;AACtB,QAAM,SAAS,OAAO;AACtB,QAAM,kBAAkB,QAAQ,SAAS,IAAI,MAAM,gCAAgC;AACrF;AAEA,SAAS,QAAQ,QAAqC;AACpD,QAAM,OAAO,oBAAI,IAAY;AAC7B,QAAM,MAAgB,CAAC;AACvB,aAAW,SAAS,QAAQ;AAC1B,UAAM,UAAU,MAAM,KAAK;AAC3B,QAAI,QAAQ,WAAW,KAAK,KAAK,IAAI,OAAO,EAAG;AAC/C,SAAK,IAAI,OAAO;AAChB,QAAI,KAAK,OAAO;AAAA,EAClB;AACA,SAAO;AACT;AAEA,SAAS,aAAa,MAA6B,OAAuC;AACxF,SAAO,KAAK,iBAAiB,MAAM,gBAAgB,KAAK,mBAAmB,MAAM;AACnF;AAEA,SAAS,YAAY,UAAwB;AAC3C,kBAAgB,IAAI,WAAW,gBAAgB,IAAI,QAAQ,KAAK,KAAK,CAAC;AACxE;AAEA,SAAS,YAAY,UAA0B;AAC7C,QAAM,QAAQ,SAAS,QAAQ,GAAQ;AACvC,QAAM,aAAa,UAAU,KAAK,KAAK,SAAS,QAAQ,KAAU,QAAQ,CAAC;AAC3E,QAAM,eAAe,UAAU,KAAK,WAAW,SAAS,MAAM,GAAG,KAAK;AACtE,QAAM,aAAa,UAAU,MAAM,eAAe,KAAK,KAAK,SAAS,MAAM,QAAQ,GAAG,UAAU;AAChG,QAAM,OAAO,WACV,MAAM,GAAQ,EACd,IAAI,CAAC,SAAS,KAAK,MAAM,GAAQ,EAAE,CAAC,KAAK,EAAE,EAC3C,KAAK,GAAQ;AAChB,SAAO,GAAG,YAAY,IAAS,IAAI;AACrC;AAEA,SAAS,YAAY,UAAkB,gBAAgB,OAAa;AAClE,QAAM,OAAO,MAAM,IAAI,QAAQ;AAC/B,MAAI,MAAM;AACR,SAAK,SAAS;AACd,SAAK,QAAQ;AAAA,EACf;AACA,MAAI,cAAe,eAAc,QAAQ;AACzC,QAAM,OAAO,QAAQ;AACrB,kBAAgB,OAAO,QAAQ;AACjC;AAEA,SAAS,YAAY,UAAwB;AAC3C,MAAI,MAAM,OAAO,aAAa,MAAM,IAAI,QAAQ,EAAG;AACnD,QAAM,SAAS,MAAM,KAAK,EAAE,KAAK,EAAE;AACnC,MAAI,OAAO,WAAW,SAAU,aAAY,MAAM;AACpD;AAEA,SAAS,gBAAgB,UAAwB;AAC/C,QAAM,SAAS,YAAY,QAAQ;AACnC,aAAW,OAAO,CAAC,GAAG,MAAM,KAAK,CAAC,GAAG;AACnC,QAAI,QAAQ,YAAY,YAAY,GAAG,MAAM,OAAQ,aAAY,KAAK,IAAI;AAAA,EAC5E;AACF;AAEA,SAAS,sBAAsB,OAAyB;AACtD,SACE,CAAC,CAAC,SACF,OAAO,UAAU,YAChB,MAAgD,4BAA4B;AAEjF;AAEA,SAAS,WAAW,MAAkB;AAGpC,MAAI,CAAC,KAAK,QAAS,MAAK,YAAY;AACpC,eAAa,IAAI;AACnB;AAEA,SAAS,aAAa,MAAkB;AAKtC,MAAI,KAAK,QAAS;AAClB,QAAM,QAAQ,KAAK;AACnB,QAAM,WAAW,sBAAsB,KAAK,QAAQ;AACpD,cAAY,KAAK,QAAQ;AACzB,QAAM,UAAU,KAAK,gBAAgB;AACrC,OAAK,QAAQ;AACb,QAAM,SAA4C,EAAE,SAAS,KAAK;AAClE,SAAO,UAAU,KACd,UAAU,MAAS,EACnB,KAAK,CAAC,UAAU;AACf,QAAI,KAAK,UAAU,SAAS,CAAC,mBAAmB,QAAQ,EAAG;AAC3D,0BAAsB,QAAQ;AAC9B,UAAM,QAAQ,KAAK,gBAAgB;AACnC,SAAK,QAAQ;AACb,QAAI,aAAa,SAAS,KAAK,GAAG;AAChC,WAAK,WAAW;AAChB;AAAA,IACF;AAGA,SAAK,WAAW;AAChB,SAAK,QAAQ;AAAA,EACf,CAAC,EACA,MAAM,CAAC,QAAiB;AACvB,UAAM,UAAU,eAAe,QAAQ,IAAI,UAAU,OAAO,GAAG;AAC/D,QAAI,KAAK,wCAAwC,OAAO,EAAE;AAAA,EAC5D,CAAC,EACA,QAAQ,MAAM;AACb,QAAI,KAAK,YAAY,OAAO,QAAS,MAAK,UAAU;AAIpD,QAAI,CAAC,KAAK,SAAS,KAAK,aAAa,EAAG;AACxC,SAAK,QAAQ;AACb,SAAK,aAAa;AAClB,iBAAa,IAAI;AAAA,EACnB,CAAC;AACH,OAAK,UAAU,OAAO;AACxB;AAEO,SAAS,sBACd,YACA,UACA,gBACQ;AACR,QAAM,eAAe,QAAQ,cAAc,CAAC,CAAC,EAAE,KAAK,GAAQ;AAC5D,QAAM,aAAa,SAChB,IAAI,CAAC,YAAY;AAChB,UAAM,UAAU,OAAO,QAAQ,QAAQ,iBAAiB,CAAC,CAAC,EAAE;AAAA,MAAK,CAAC,CAAC,IAAI,GAAG,CAAC,KAAK,MAC9E,eAAe,MAAM,KAAK;AAAA,IAC5B;AACA,WAAO,GAAG,KAAK,QAAQ,QAAQ,GAAG,CAAC,IAAS,QAAQ,gBAAgB,KAAK,EAAE,IAAS,KAAK,UAAU,OAAO,CAAC;AAAA,EAC7G,CAAC,EACA,KAAK,GAAQ;AAChB,SAAO,GAAG,YAAY,IAAS,UAAU,IAAS,cAAc;AAClE;AAEO,SAAS,sBAAsB,UAA2D;AAC/F,SAAO;AAAA,IACL,cAAc,SAAS,IAAI,CAAC,YAAY,OAAO,mBAAmB,QAAQ,QAAQ,GAAG,CAAC,CAAC,EAAE,KAAK,GAAQ;AAAA,IACtG,gBAAgB,SAAS,IAAI,CAAC,YAAY,OAAO,QAAQ,2BAA2B,KAAK,CAAC,CAAC,EAAE,KAAK,GAAQ;AAAA,EAC5G;AACF;AAEO,SAAS,iCAAiC,UAA0B;AACzE,SAAO,gBAAgB,IAAI,QAAQ,KAAK;AAC1C;AAEO,SAAS,8BAAwC;AACtD,SAAO,CAAC,GAAG,MAAM,KAAK,CAAC;AACzB;AAEO,SAAS,4BAA4B,UAAyB;AACnE,MAAI,aAAa,QAAW;AAC1B,kBAAc;AACd,eAAW,OAAO,CAAC,GAAG,MAAM,KAAK,CAAC,GAAG;AACnC,mCAA6B,GAAG;AAChC,kBAAY,GAAG;AAAA,IACjB;AACA;AAAA,EACF;AACA,+BAA6B,QAAQ;AACrC,cAAY,UAAU,IAAI;AAC5B;AAEA,eAAsB,yBAAyB,UAAkC;AAC/E,QAAM,UAAU,CAAC,SAAe,aAAa,UAAa,KAAK,aAAa;AAC5E,WAAS,QAAQ,GAAG,QAAQ,eAAe,SAAS,GAAG;AACrD,eAAW,QAAQ,MAAM,OAAO,GAAG;AACjC,UAAI,CAAC,QAAQ,IAAI,EAAG;AACpB,UAAI,CAAC,KAAK,WAAW,KAAK,OAAO;AAC/B,aAAK,QAAQ;AACb,qBAAa,IAAI;AAAA,MACnB;AAAA,IACF;AACA,UAAM,UAAU,CAAC,GAAG,MAAM,OAAO,CAAC,EAAE,OAAO,CAAC,SAAS,QAAQ,IAAI,KAAK,KAAK,OAAO,EAAE,IAAI,CAAC,SAAS,KAAK,OAAQ;AAC/G,QAAI,QAAQ,WAAW,EAAG;AAC1B,UAAM,QAAQ,IAAI,OAAO;AAAA,EAC3B;AACF;AAEA,eAAsB,0BAA6B,SAMpC;AACb,QAAM,OAAO,QAAQ,gBAAgB;AACrC,QAAM,WAAW,MAAM,IAAI,QAAQ,QAAQ;AAC3C,MAAI,CAAC,UAAU;AACb,oBAAgB,QAAQ,QAAQ;AAChC,gBAAY,QAAQ,QAAQ;AAC5B,gBAAY,QAAQ,QAAQ;AAC5B,UAAM,WAAW,sBAAsB,QAAQ,QAAQ;AACvD,UAAM,UAAU,QAAQ,gBAAgB;AACxC,UAAM,QAAQ,MAAM,QAAQ,UAAU,QAAQ,WAAW;AAEzD,QAAI,CAAC,mBAAmB,QAAQ,EAAG,QAAO;AAC1C,0BAAsB,QAAQ;AAC9B,UAAM,QAAQ,QAAQ,gBAAgB;AACtC,oBAAgB,QAAQ,QAAQ;AAChC,gBAAY,QAAQ,QAAQ;AAC5B,UAAM,OAAa;AAAA,MACjB,UAAU,QAAQ;AAAA,MAClB;AAAA,MACA,UAAU,aAAa,SAAS,KAAK,IAAI,QAAQ;AAAA,MACjD,OAAO;AAAA,MACP,SAAS;AAAA,MACT,WAAW;AAAA,MACX,OAAO;AAAA,MACP,WAAW;AAAA,MACX,iBAAiB,QAAQ;AAAA,MACzB,WAAW,QAAQ;AAAA,IACrB;AACA,UAAM,IAAI,QAAQ,UAAU,IAAI;AAChC,QAAI,CAAC,aAAa,SAAS,KAAK,EAAG,YAAW,IAAI;AAClD,WAAO;AAAA,EACT;AACA,WAAS,kBAAkB,QAAQ;AACnC,WAAS,YAAY,QAAQ;AAC7B,SAAO,SAAS,SAAS,mBAAmB,QAAQ,gBAAgB,EAAE,gBAAgB;AACpF,0BAAsB,QAAQ,WAAW;AACzC,UAAM,UAAU,SAAS;AACzB,QAAI,SAAS;AACX,YAAM,UAAU,SAAS,QAAQ,aAAa,gCAAgC;AAC9E;AAAA,IACF;AACA,UAAM,UAAU,QAAQ,gBAAgB;AACxC,UAAM,cAAc,SAAS,SAAS;AACtC,UAAM,iBAAiB,QAAQ;AAC/B,QAAI,UAAU,MAAY;AAAA,IAAC;AAC3B,UAAM,OAAO,IAAI,QAAc,CAAC,YAAY;AAC1C,gBAAU;AAAA,IACZ,CAAC;AACD,aAAS,YAAY;AACrB,aAAS,SAAS;AAClB,aAAS,QAAQ;AACjB,UAAM,QAAQ,SAAS;AACvB,UAAM,WAAW,sBAAsB,SAAS,QAAQ;AAKxD,UAAM,OAAO,QAAQ,gBAAgB,SAAS,OAAY,MAAS;AACnE,SAAK,KACF;AAAA,MACC,CAACA,aAAY;AACX,YAAI,SAAS,UAAU,SAAS,CAAC,mBAAmB,QAAQ,EAAG;AAC/D,cAAM,MAAM,QAAQ,gBAAgB;AACpC,iBAAS,QAAQA;AACjB,cAAM,cAAc,gBAAgB,QAAQ,gBAAgB,gBAAgB,IAAI;AAChF,cAAM,iBAAiB,mBAAmB,IAAI;AAC9C,iBAAS,WAAW;AAAA,UAClB,gBAAgB,iBAAiB,IAAI,iBAAiB;AAAA,UACtD,cAAc,cAAc,IAAI,eAAe;AAAA,QACjD;AACA,YAAI,SAAS,SAAS,iBAAiB,IAAI,gBAAgB,sBAAsBA,QAAO,GAAG;AACzF,qBAAW,QAAQ;AAAA,QACrB;AAAA,MACF;AAAA,MACA,MAAM;AAAA,MAAC;AAAA,IACT,EACC,QAAQ,MAAM;AACb,UAAI,SAAS,cAAc,KAAM,UAAS,YAAY;AACtD,cAAQ;AAAA,IACV,CAAC;AACH,UAAM,UAAU,MAAM,UAAU,MAAM,QAAQ,aAAa,gCAAgC;AAC3F,0BAAsB,QAAQ,WAAW;AACzC,WAAO;AAAA,EACT;AACA,MAAI,SAAS,SAAS,iBAAiB,KAAK,cAAc;AACxD,eAAW,QAAQ;AACnB,WAAO,SAAS;AAAA,EAClB;AACA,SAAO,SAAS;AAClB;AAEA,mBAAmB,cAAc,MAAM;AACrC,8BAA4B;AAC9B,CAAC;","names":["rebuilt"]}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  resolveCorpusNamespaceRoots
3
- } from "./chunk-TFLPDNQV.js";
3
+ } from "./chunk-CCU7URRP.js";
4
4
  import {
5
5
  capabilityAllowsNamespace
6
6
  } from "./chunk-YO2JEX2Z.js";
@@ -200,4 +200,4 @@ async function readAggregateExtractionWatermark(options) {
200
200
  export {
201
201
  readAggregateExtractionWatermark
202
202
  };
203
- //# sourceMappingURL=chunk-EBOHFZI4.js.map
203
+ //# sourceMappingURL=chunk-E5QEF3JO.js.map
@@ -5,7 +5,7 @@ import {
5
5
  entityMentionScopeKey,
6
6
  resolveEntityMentionIndex,
7
7
  writePersistedEntityMentionIndex
8
- } from "./chunk-S57QBPTA.js";
8
+ } from "./chunk-DPPLNZ3A.js";
9
9
  import {
10
10
  buildOriginStructuredSections,
11
11
  sanitizeOriginatedFacts
@@ -34,7 +34,7 @@ import {
34
34
  } from "./chunk-NVKO5YKP.js";
35
35
  import {
36
36
  compareEntityTimestamps
37
- } from "./chunk-WAD32CZG.js";
37
+ } from "./chunk-ELWI2R6H.js";
38
38
  import {
39
39
  normalizeEntityText,
40
40
  resolveRequestedEntitySectionKeys
@@ -927,4 +927,4 @@ export {
927
927
  entityIndexVersion,
928
928
  entityRecentTranscriptLookbackHours
929
929
  };
930
- //# sourceMappingURL=chunk-DD6OIFDG.js.map
930
+ //# sourceMappingURL=chunk-E7V5AK7I.js.map
@@ -22,11 +22,11 @@ import {
22
22
  } from "./chunk-IGOW4TJE.js";
23
23
  import {
24
24
  BufferSessionFiles
25
- } from "./chunk-7PMOCQOL.js";
25
+ } from "./chunk-3ODZLCHC.js";
26
26
  import {
27
27
  normalizeQmdResultPath,
28
28
  resolveNamespaceResultPath
29
- } from "./chunk-LU66I56Q.js";
29
+ } from "./chunk-H34INI3P.js";
30
30
  import {
31
31
  withholdToolScopedFromSharedNamespace
32
32
  } from "./chunk-S2V7RUCL.js";
@@ -37,13 +37,13 @@ import {
37
37
  import {
38
38
  parseOfflineSyncDigestCache
39
39
  } from "./chunk-X3724WL4.js";
40
+ import {
41
+ createMemorySnapshot
42
+ } from "./chunk-S2HLHAZ4.js";
40
43
  import {
41
44
  rewriteProjectedEntityReferences,
42
45
  rewriteProjectedMemoryEntityReference
43
46
  } from "./chunk-MRPOZBJC.js";
44
- import {
45
- createMemorySnapshot
46
- } from "./chunk-S2HLHAZ4.js";
47
47
  import {
48
48
  rotateMarkdownFileToArchive
49
49
  } from "./chunk-DM2T26WE.js";
@@ -61,7 +61,7 @@ import {
61
61
  parseProvenanceTag,
62
62
  reconcileProvenanceRead,
63
63
  serializeProvenanceFields
64
- } from "./chunk-FF6N7BXC.js";
64
+ } from "./chunk-S45INSV3.js";
65
65
  import {
66
66
  parseFaithfulnessField,
67
67
  serializeFaithfulnessFields
@@ -73,15 +73,12 @@ import {
73
73
  invalidationCommitFingerprint,
74
74
  parseTombstoneBlockedOfflineSyncMemory,
75
75
  withCasCommitReceipt
76
- } from "./chunk-BV2BRHD4.js";
76
+ } from "./chunk-FHGWKODN.js";
77
77
  import {
78
78
  matchEntitySchemaSection,
79
79
  normalizeEntityStructuredSection,
80
80
  sortStructuredSectionsBySchema
81
81
  } from "./chunk-ZIKENA2C.js";
82
- import {
83
- normalizeEntityName
84
- } from "./chunk-YXZG5TVN.js";
85
82
  import {
86
83
  OKF_QUESTION_TYPE,
87
84
  assertNotOkfReservedBasename,
@@ -94,6 +91,9 @@ import {
94
91
  normalizeProjectionPreview,
95
92
  normalizeProjectionTags
96
93
  } from "./chunk-SCU65EZI.js";
94
+ import {
95
+ normalizeEntityName
96
+ } from "./chunk-YXZG5TVN.js";
97
97
  import {
98
98
  checkCorpusReadAbort
99
99
  } from "./chunk-P4GUQSK3.js";
@@ -182,7 +182,7 @@ import {
182
182
  composeMemoryEnvelope,
183
183
  isSealedMemoryEnvelope,
184
184
  sealedWriteToLegacyArgs
185
- } from "./chunk-JRVMCZE3.js";
185
+ } from "./chunk-QEYTRFR3.js";
186
186
  import {
187
187
  DEFAULT_CITATION_FORMAT,
188
188
  hasCitationForTemplate,
@@ -228,7 +228,7 @@ import {
228
228
  CONTENT_HASH_INDEX_RETRY_MAX_DELAY_MS,
229
229
  ContentHashIndex,
230
230
  FactHashIndexNotAuthoritativeError
231
- } from "./chunk-KQUSP6LB.js";
231
+ } from "./chunk-UDKWFDV2.js";
232
232
  import {
233
233
  computeLegacyContentHash
234
234
  } from "./chunk-5FVVY2EB.js";
@@ -8584,6 +8584,19 @@ ${sanitized.text}
8584
8584
  async isFactContentHashAuthoritative() {
8585
8585
  return await this.ensureFactHashIndexAuthoritative();
8586
8586
  }
8587
+ /**
8588
+ * Shared-index membership of `content` plus the authority of that answer,
8589
+ * read in one synchronous step after the freshness check or locked rebuild.
8590
+ * A separate probe and `isFactContentHashAuthoritative()` call can pair a
8591
+ * stale MISS with authority from another moment, because each one may rebuild
8592
+ * the index (#3312). Trust a MISS only when `authoritative`; otherwise
8593
+ * confirm against the corpus.
8594
+ */
8595
+ async lookupContentHash(content) {
8596
+ const index = await this.getFactHashIndex();
8597
+ await this.ensureFactHashIndexAuthoritative();
8598
+ return { present: index.has(content), authoritative: this.factHashIndexAuthoritative === true };
8599
+ }
8587
8600
  async writeArtifact(quote, options = {}) {
8588
8601
  await this.ensureDirectories();
8589
8602
  const now = /* @__PURE__ */ new Date();
@@ -11039,4 +11052,4 @@ export {
11039
11052
  isValidBufferSurpriseEvent,
11040
11053
  StorageManager3 as StorageManager
11041
11054
  };
11042
- //# sourceMappingURL=chunk-WAD32CZG.js.map
11055
+ //# sourceMappingURL=chunk-ELWI2R6H.js.map