@remnic/core 9.69.40 → 9.69.42

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 (688) hide show
  1. package/dist/access-admin-ops-surface.d.ts +14 -13
  2. package/dist/access-admin-ops-surface.js +79 -78
  3. package/dist/access-audit.js +2 -2
  4. package/dist/access-authorization-probe.d.ts +14 -13
  5. package/dist/access-authorization-probe.js +80 -79
  6. package/dist/access-boundary.d.ts +14 -13
  7. package/dist/access-boundary.js +79 -78
  8. package/dist/access-cli.js +170 -168
  9. package/dist/access-cli.js.map +1 -1
  10. package/dist/access-coding-context-resolution.d.ts +1 -1
  11. package/dist/access-extraction-force-flush.d.ts +14 -13
  12. package/dist/access-extraction-force-flush.js +79 -78
  13. package/dist/access-health-types.d.ts +1 -1
  14. package/dist/access-http-briefing.d.ts +14 -13
  15. package/dist/access-http-briefing.js +80 -79
  16. package/dist/access-http-lcm-compaction.d.ts +14 -13
  17. package/dist/access-http-lifecycle-flush.d.ts +14 -13
  18. package/dist/access-http-offline-stream.d.ts +14 -13
  19. package/dist/access-http-query.d.ts +2 -2
  20. package/dist/access-http-query.js +81 -80
  21. package/dist/access-http.d.ts +15 -14
  22. package/dist/access-http.js +100 -97
  23. package/dist/access-identity-continuity-surface.d.ts +11 -11
  24. package/dist/access-identity-continuity-surface.js +79 -78
  25. package/dist/access-lcm-surface.d.ts +14 -13
  26. package/dist/access-lcm-surface.js +79 -78
  27. package/dist/access-mcp-shared-context-tools.d.ts +157 -0
  28. package/dist/access-mcp-shared-context-tools.js +8 -0
  29. package/dist/access-mcp.d.ts +14 -13
  30. package/dist/access-mcp.js +91 -88
  31. package/dist/access-memory-search-fanout.d.ts +2 -2
  32. package/dist/{access-namespace-preflight-CKBumJ8W.d.ts → access-namespace-preflight-ShnAJ9uL.d.ts} +1 -1
  33. package/dist/access-namespace-preflight.d.ts +3 -3
  34. package/dist/access-namespace-preflight.js +79 -78
  35. package/dist/access-observe-transcript.d.ts +11 -11
  36. package/dist/access-observe-write-category.d.ts +17 -1
  37. package/dist/access-observe-write-category.js +21 -4
  38. package/dist/access-observe-write-surface.d.ts +14 -13
  39. package/dist/access-observe-write-surface.js +79 -78
  40. package/dist/access-offline-manifest.d.ts +11 -11
  41. package/dist/access-offline-manifest.js +14 -14
  42. package/dist/access-operations-batch.js +84 -82
  43. package/dist/access-operations.d.ts +14 -13
  44. package/dist/access-operations.js +89 -87
  45. package/dist/access-recall-concurrency.d.ts +14 -13
  46. package/dist/access-recall-concurrency.js +79 -78
  47. package/dist/access-recall-response.d.ts +14 -13
  48. package/dist/access-recall-response.js +79 -78
  49. package/dist/access-recall-surface.d.ts +14 -13
  50. package/dist/access-recall-surface.js +79 -78
  51. package/dist/access-schema.d.ts +117 -114
  52. package/dist/access-schema.js +3 -3
  53. package/dist/{access-service-DJ3qogNt.d.ts → access-service-DjG_e2cM.d.ts} +81 -75
  54. package/dist/access-service-helpers.d.ts +14 -13
  55. package/dist/access-service.d.ts +14 -13
  56. package/dist/access-service.js +79 -78
  57. package/dist/access-surface-catalog.d.ts +14 -13
  58. package/dist/access-surface-catalog.js +81 -80
  59. package/dist/access-surface-catalog.js.map +1 -1
  60. package/dist/access-wearables-meetings-surface.d.ts +4 -4
  61. package/dist/action-confidence.d.ts +1 -1
  62. package/dist/active-memory-bridge.d.ts +1 -1
  63. package/dist/active-memory-bridge.js +3 -3
  64. package/dist/active-recall.d.ts +1 -1
  65. package/dist/active-recall.js +10 -10
  66. package/dist/activity/digest.d.ts +1 -1
  67. package/dist/ambient-provenance.d.ts +1 -1
  68. package/dist/artifact-search.d.ts +1 -1
  69. package/dist/{auto-sync-D6BAPIJV.js → auto-sync-QZD4RD6H.js} +14 -10
  70. package/dist/{auto-sync-D6BAPIJV.js.map → auto-sync-QZD4RD6H.js.map} +1 -1
  71. package/dist/background-generation.d.ts +1 -1
  72. package/dist/behavior-learner.d.ts +1 -1
  73. package/dist/behavior-signals.d.ts +1 -1
  74. package/dist/bootstrap.d.ts +11 -11
  75. package/dist/briefing-window.d.ts +2 -2
  76. package/dist/briefing.d.ts +2 -2
  77. package/dist/briefing.js +22 -22
  78. package/dist/buffer-surprise-report.d.ts +1 -1
  79. package/dist/buffer-turn-helpers.d.ts +1 -1
  80. package/dist/buffer.d.ts +2 -2
  81. package/dist/buffer.js +9 -9
  82. package/dist/bulk-import/index.d.ts +3 -3
  83. package/dist/calibration.d.ts +1 -1
  84. package/dist/calibration.js +2 -2
  85. package/dist/capabilities.d.ts +1 -1
  86. package/dist/{capsule-crypto-7FJQINUR.js → capsule-crypto-YO5QJ6L3.js} +2 -2
  87. package/dist/{capsule-merge-IPG4IOFP.js → capsule-merge-3MNURAQ3.js} +2 -2
  88. package/dist/{catalog-BHXkBVhg.d.ts → catalog-BhuXaQHx.d.ts} +1 -1
  89. package/dist/causal-behavior.d.ts +1 -1
  90. package/dist/causal-consolidation.d.ts +1 -1
  91. package/dist/causal-consolidation.js +25 -25
  92. package/dist/causal-trajectory-graph.d.ts +1 -1
  93. package/dist/{chunk-M6RORUO5.js → chunk-2EYZ32LH.js} +24 -2
  94. package/dist/{chunk-M6RORUO5.js.map → chunk-2EYZ32LH.js.map} +1 -1
  95. package/dist/{chunk-JAJIMTFB.js → chunk-2PDMIPMP.js} +9 -9
  96. package/dist/{chunk-5LYSEZOF.js → chunk-2UINSKQC.js} +12 -11
  97. package/dist/chunk-2UINSKQC.js.map +1 -0
  98. package/dist/{chunk-6L2II3KS.js → chunk-3D75XIYO.js} +2 -2
  99. package/dist/{chunk-XCPNH2MG.js → chunk-3KJTSCSX.js} +5 -5
  100. package/dist/{chunk-YTZN2UZO.js → chunk-3RLWUW7G.js} +2 -2
  101. package/dist/{chunk-J272ODKJ.js → chunk-42DJ235G.js} +2 -2
  102. package/dist/{chunk-NVVZPBKI.js → chunk-46FVFU7S.js} +2 -2
  103. package/dist/{chunk-JUDT33RX.js → chunk-4AX5OYKC.js} +2 -2
  104. package/dist/{chunk-GSSDHAYH.js → chunk-4IGOLIWM.js} +2 -2
  105. package/dist/{chunk-23HFXQ5J.js → chunk-6EGIQEKC.js} +4 -4
  106. package/dist/{chunk-TVVEYCNW.js → chunk-7K5Q6COX.js} +4 -4
  107. package/dist/{chunk-GO5LOHCD.js → chunk-7L54ARML.js} +2 -2
  108. package/dist/{chunk-TEMKBSV6.js → chunk-7PSRCGWT.js} +3 -3
  109. package/dist/{chunk-ICNJ6J46.js → chunk-AAAFZW3U.js} +2 -2
  110. package/dist/{chunk-K4JKAXMO.js → chunk-AAX22E4K.js} +3 -3
  111. package/dist/{chunk-UZ6JYPJ6.js → chunk-ADARR5KF.js} +232 -171
  112. package/dist/chunk-ADARR5KF.js.map +1 -0
  113. package/dist/{chunk-KY236SP5.js → chunk-AHHFBJX7.js} +3 -3
  114. package/dist/{chunk-TZ44E732.js → chunk-AIVRD66I.js} +2 -2
  115. package/dist/{chunk-OEDW4ER7.js → chunk-AJBWVDRV.js} +2 -1
  116. package/dist/chunk-AJBWVDRV.js.map +1 -0
  117. package/dist/{chunk-YRIFXXMI.js → chunk-AOGICQMH.js} +6 -6
  118. package/dist/{chunk-KOTG3RXE.js → chunk-AUSRUOMQ.js} +2 -2
  119. package/dist/{chunk-C5R73BON.js → chunk-BIANISES.js} +2 -2
  120. package/dist/{chunk-IMBQFHRV.js → chunk-BPXJINHW.js} +8 -8
  121. package/dist/{chunk-2NLLXCJG.js → chunk-BXLOS5AJ.js} +2 -2
  122. package/dist/{chunk-2J3V5QEO.js → chunk-C3QXITIP.js} +4 -4
  123. package/dist/{chunk-2SNCQHJZ.js → chunk-CQ4BTPX6.js} +6 -6
  124. package/dist/{chunk-3QEVOQF5.js → chunk-CTETTVDN.js} +2 -2
  125. package/dist/{chunk-DFVSJFHK.js → chunk-DBB5JPSL.js} +2 -2
  126. package/dist/{chunk-W23JARAQ.js → chunk-DLPMOSNH.js} +2 -2
  127. package/dist/{chunk-BGRTZOJB.js → chunk-DMTSKY4W.js} +8 -8
  128. package/dist/{chunk-X7Y7WX73.js → chunk-DQEMWVMT.js} +1 -1
  129. package/dist/{chunk-QS5Q5RBV.js → chunk-E4FRR4MA.js} +8 -8
  130. package/dist/{chunk-NETQXOPY.js → chunk-EH3HNCAM.js} +12 -7
  131. package/dist/{chunk-NETQXOPY.js.map → chunk-EH3HNCAM.js.map} +1 -1
  132. package/dist/{chunk-RJQAP333.js → chunk-ETE3SGAH.js} +2 -2
  133. package/dist/{chunk-YNDLCWXS.js → chunk-EZ25VE3G.js} +4 -4
  134. package/dist/{chunk-RLU2Y5GV.js → chunk-F2FJTOV6.js} +4 -4
  135. package/dist/{chunk-V2ZA4YWE.js → chunk-F5H6YG5P.js} +2 -2
  136. package/dist/{chunk-K75A5XWU.js → chunk-F6PTJLEM.js} +4 -4
  137. package/dist/chunk-F6PTJLEM.js.map +1 -0
  138. package/dist/{chunk-4CMXI55L.js → chunk-FSUFKIFS.js} +2 -2
  139. package/dist/{chunk-ZAEPD4C2.js → chunk-G3NTZZWT.js} +2 -2
  140. package/dist/{chunk-ZMWSYUUL.js → chunk-GCBIXUPT.js} +2 -2
  141. package/dist/{chunk-WZYHPAG5.js → chunk-GIM2AGFL.js} +3 -3
  142. package/dist/{chunk-VKWFNPBH.js → chunk-GR76OKET.js} +14 -5
  143. package/dist/{chunk-VKWFNPBH.js.map → chunk-GR76OKET.js.map} +1 -1
  144. package/dist/{chunk-J7FVMLBR.js → chunk-GWEZNCGA.js} +2 -2
  145. package/dist/{chunk-LFVZD5EC.js → chunk-GWNSKQDA.js} +3 -3
  146. package/dist/{chunk-MJC7UKH7.js → chunk-H2N6SLTR.js} +2 -2
  147. package/dist/{chunk-J4WGTN2N.js → chunk-HK44SV6K.js} +4 -4
  148. package/dist/{chunk-JDX2OA4R.js → chunk-HNHIHXSD.js} +2 -2
  149. package/dist/{chunk-IS2IDFJP.js → chunk-HO2P3FAX.js} +22 -22
  150. package/dist/chunk-HO2P3FAX.js.map +1 -0
  151. package/dist/{chunk-VQYWKCDR.js → chunk-HPMCKAET.js} +3 -3
  152. package/dist/{chunk-ROEFLU37.js → chunk-HSJU6JFT.js} +16 -86
  153. package/dist/chunk-HSJU6JFT.js.map +1 -0
  154. package/dist/{chunk-MVG3KXON.js → chunk-I65KB36L.js} +25 -25
  155. package/dist/chunk-IFBSZGW3.js +42 -0
  156. package/dist/chunk-IFBSZGW3.js.map +1 -0
  157. package/dist/{chunk-SFHLQPBF.js → chunk-IUTYNDFS.js} +118 -112
  158. package/dist/chunk-IUTYNDFS.js.map +1 -0
  159. package/dist/{chunk-AEOOGXMQ.js → chunk-J2MGTGKC.js} +4 -4
  160. package/dist/chunk-JATHBCAV.js +94 -0
  161. package/dist/chunk-JATHBCAV.js.map +1 -0
  162. package/dist/{chunk-PKUJNICO.js → chunk-JC2OBYYD.js} +2 -2
  163. package/dist/{chunk-5U7K4W6K.js → chunk-JDOBQPJY.js} +3 -3
  164. package/dist/{chunk-TG3FAM2S.js → chunk-JL4TQYM5.js} +48 -1
  165. package/dist/{chunk-TG3FAM2S.js.map → chunk-JL4TQYM5.js.map} +1 -1
  166. package/dist/{chunk-VQWBUPSJ.js → chunk-JMAP6L6Q.js} +2 -2
  167. package/dist/{chunk-7Z54NXVS.js → chunk-K27INAPR.js} +2 -2
  168. package/dist/{chunk-YTK5MVNF.js → chunk-KCKXOS4Y.js} +14 -13
  169. package/dist/chunk-KCKXOS4Y.js.map +1 -0
  170. package/dist/{chunk-7D6SER6A.js → chunk-KJQ4Y2PY.js} +14 -14
  171. package/dist/{chunk-DAZANIYU.js → chunk-L732NBPR.js} +87 -88
  172. package/dist/{chunk-DAZANIYU.js.map → chunk-L732NBPR.js.map} +1 -1
  173. package/dist/{chunk-QPVNK2VE.js → chunk-LCVYO3ON.js} +2 -2
  174. package/dist/{chunk-HIP6DKJJ.js → chunk-LQVXSRAJ.js} +2 -2
  175. package/dist/{chunk-A7GQBJP5.js → chunk-LVFI5LG7.js} +7 -7
  176. package/dist/{chunk-TO36VPZI.js → chunk-LWF6GOII.js} +2 -2
  177. package/dist/{chunk-62HFZNCJ.js → chunk-N7B6V7SG.js} +13 -12
  178. package/dist/{chunk-62HFZNCJ.js.map → chunk-N7B6V7SG.js.map} +1 -1
  179. package/dist/{chunk-ES5BUPYB.js → chunk-OCWFKD5Q.js} +2 -2
  180. package/dist/{chunk-IOPIGX7Y.js → chunk-OP722LOG.js} +2 -2
  181. package/dist/{chunk-62D2PAAM.js → chunk-PAAJWQH5.js} +4 -4
  182. package/dist/{chunk-V6EGNVUT.js → chunk-PIWFNPQT.js} +4 -4
  183. package/dist/{chunk-JOP7W24J.js → chunk-PLJ2MQFT.js} +4 -4
  184. package/dist/{chunk-37CAEC7E.js → chunk-PWPIERBM.js} +4 -4
  185. package/dist/{chunk-BXIJSPCL.js → chunk-Q62GA5U2.js} +2 -2
  186. package/dist/{chunk-CC37E3QM.js → chunk-QKCXRS5A.js} +16 -1
  187. package/dist/chunk-QKCXRS5A.js.map +1 -0
  188. package/dist/{chunk-I3H5LFOI.js → chunk-QNJQCLI6.js} +4 -4
  189. package/dist/{chunk-BYQX4IOG.js → chunk-R45VFSEV.js} +2 -2
  190. package/dist/{chunk-XVDZFTN5.js → chunk-RFIJH2OE.js} +5 -5
  191. package/dist/{chunk-K4A6UVPB.js → chunk-RJ7Z7YXK.js} +11 -11
  192. package/dist/{chunk-ZZCR2QYL.js → chunk-RSSLDMFX.js} +2 -2
  193. package/dist/{chunk-ZZCR2QYL.js.map → chunk-RSSLDMFX.js.map} +1 -1
  194. package/dist/{chunk-QE6YVNP5.js → chunk-RTXHUVOD.js} +53 -19
  195. package/dist/chunk-RTXHUVOD.js.map +1 -0
  196. package/dist/{chunk-HJUP3K6L.js → chunk-RXYO6NA6.js} +2 -2
  197. package/dist/{chunk-TBXAY2SS.js → chunk-SGHGCFVV.js} +5 -5
  198. package/dist/{chunk-THTF2W7M.js → chunk-TRTLWUDD.js} +19 -18
  199. package/dist/chunk-TRTLWUDD.js.map +1 -0
  200. package/dist/{chunk-2SKMZUOW.js → chunk-U26LB4WA.js} +7 -7
  201. package/dist/{chunk-6P4REYKL.js → chunk-UDAUULK2.js} +28 -2
  202. package/dist/{chunk-6P4REYKL.js.map → chunk-UDAUULK2.js.map} +1 -1
  203. package/dist/{chunk-KTOXQMW3.js → chunk-UHSOPTNB.js} +14 -4
  204. package/dist/chunk-UHSOPTNB.js.map +1 -0
  205. package/dist/{chunk-VHKXRYQN.js → chunk-VBK6SRNE.js} +2 -2
  206. package/dist/{chunk-KQAFEZQX.js → chunk-VDX2J7OX.js} +2 -2
  207. package/dist/{chunk-Z4GUX2M6.js → chunk-VSN2DMQK.js} +2 -2
  208. package/dist/{chunk-ZHXSOMYH.js → chunk-VVX5PZFS.js} +2 -2
  209. package/dist/{chunk-G2XZFGYN.js → chunk-WGZHSQDV.js} +4 -4
  210. package/dist/{chunk-H3TKENU4.js → chunk-WIKO4SCR.js} +5 -5
  211. package/dist/{chunk-MDIEES23.js → chunk-WN2OXGGH.js} +1 -1
  212. package/dist/chunk-WN2OXGGH.js.map +1 -0
  213. package/dist/{chunk-LKFVVN7R.js → chunk-WNPRRBOE.js} +2 -2
  214. package/dist/{chunk-SV4Z2S67.js → chunk-WUUGE7QC.js} +54 -21
  215. package/dist/chunk-WUUGE7QC.js.map +1 -0
  216. package/dist/{chunk-ZZUVBZL2.js → chunk-X2QPKLPL.js} +2 -2
  217. package/dist/{chunk-RDLPFM7I.js → chunk-XJLTQTAO.js} +2 -2
  218. package/dist/{chunk-ZRMMXWYI.js → chunk-YR5QT4SR.js} +32 -9
  219. package/dist/chunk-YR5QT4SR.js.map +1 -0
  220. package/dist/{chunk-CARRTDKC.js → chunk-Z22M4JCY.js} +4 -3
  221. package/dist/chunk-Z22M4JCY.js.map +1 -0
  222. package/dist/{chunk-XM46Y66S.js → chunk-ZFU6QNRN.js} +7 -7
  223. package/dist/{chunk-SUEOG2S4.js → chunk-ZGXHTV5Y.js} +2 -2
  224. package/dist/{chunk-ZX3AYNNV.js → chunk-ZOGKZ2XT.js} +3 -2
  225. package/dist/chunk-ZOGKZ2XT.js.map +1 -0
  226. package/dist/{chunk-46Z3VGWF.js → chunk-ZYRAY5FL.js} +3 -3
  227. package/dist/{chunk-3XPN7AVY.js → chunk-ZYSOT6HD.js} +2 -2
  228. package/dist/{cli-BWri5-am.d.ts → cli-Cx9s_VRn.d.ts} +5 -5
  229. package/dist/cli.d.ts +16 -15
  230. package/dist/cli.js +129 -127
  231. package/dist/coding/export-okf-codegraph.d.ts +1 -1
  232. package/dist/coding/export-okf-codegraph.js +22 -22
  233. package/dist/coding/pre-action-gate.d.ts +1 -1
  234. package/dist/compounding/engine.d.ts +2 -2
  235. package/dist/compounding/engine.js +24 -24
  236. package/dist/compounding/preference-consolidator.d.ts +1 -1
  237. package/dist/compression-optimizer.d.ts +1 -1
  238. package/dist/config.d.ts +1 -1
  239. package/dist/config.js +10 -10
  240. package/dist/connectors/codex-materialize-runner.d.ts +1 -1
  241. package/dist/connectors/codex-materialize-runner.js +24 -24
  242. package/dist/connectors/codex-materialize.d.ts +1 -1
  243. package/dist/connectors/codex-materialize.js +2 -2
  244. package/dist/connectors/index.d.ts +1 -1
  245. package/dist/connectors/index.js +25 -25
  246. package/dist/consolidation-provenance-check.d.ts +2 -2
  247. package/dist/consolidation-undo.d.ts +2 -2
  248. package/dist/contradiction/index.d.ts +4 -4
  249. package/dist/contradiction/index.js +7 -7
  250. package/dist/{contradiction-scan-BSGKZHYJ.js → contradiction-scan-GVD4JJ7B.js} +4 -4
  251. package/dist/converge-config.d.ts +1 -1
  252. package/dist/convergence-refresh.d.ts +2 -2
  253. package/dist/convergence-refresh.js +26 -26
  254. package/dist/conversation-index/backend.d.ts +1 -1
  255. package/dist/conversation-index/chunker.d.ts +1 -1
  256. package/dist/conversation-index/faiss-adapter.d.ts +1 -1
  257. package/dist/conversation-index/indexer.d.ts +1 -1
  258. package/dist/conversation-index/search.d.ts +1 -1
  259. package/dist/corpus-watermark.d.ts +1 -1
  260. package/dist/corpus-watermark.js +25 -25
  261. package/dist/cross-lingual-recall.d.ts +1 -1
  262. package/dist/dashboard-runtime.js +2 -2
  263. package/dist/day-summary.d.ts +1 -1
  264. package/dist/deep-recall-config.d.ts +12 -1
  265. package/dist/deep-recall-config.js +5 -3
  266. package/dist/deep-recall-http-glue.d.ts +17 -14
  267. package/dist/deep-recall-http-glue.js +7 -4
  268. package/dist/deep-recall-mcp-tools.d.ts +14 -13
  269. package/dist/deep-recall-policy-llm.d.ts +12 -2
  270. package/dist/deep-recall-policy-llm.js +3 -3
  271. package/dist/deep-recall-seeds.d.ts +4 -1
  272. package/dist/deep-recall-seeds.js +1 -1
  273. package/dist/deep-recall.d.ts +12 -1
  274. package/dist/deep-recall.js +3 -2
  275. package/dist/delinearize.d.ts +1 -1
  276. package/dist/dependency-propagation-config.d.ts +1 -1
  277. package/dist/{dependency-propagation-delivery-ueZlKTQB.d.ts → dependency-propagation-delivery-C2QFQ97b.d.ts} +1 -1
  278. package/dist/direct-answer-wiring.d.ts +1 -1
  279. package/dist/direct-answer.d.ts +1 -1
  280. package/dist/embedding-fallback.d.ts +1 -1
  281. package/dist/enrichment/index.d.ts +1 -1
  282. package/dist/entity-origin-fields.d.ts +1 -1
  283. package/dist/entity-retrieval.d.ts +2 -2
  284. package/dist/entity-retrieval.js +23 -23
  285. package/dist/entity-schema.d.ts +1 -1
  286. package/dist/episodic-context.d.ts +1 -1
  287. package/dist/eval-trajectory-contracts.d.ts +1 -1
  288. package/dist/eval-trajectory-store.d.ts +1 -1
  289. package/dist/eval-trajectory.d.ts +1 -1
  290. package/dist/explicit-capture.d.ts +11 -11
  291. package/dist/explicit-capture.js +6 -6
  292. package/dist/external-wiki-access.d.ts +14 -13
  293. package/dist/external-wiki-access.js +80 -79
  294. package/dist/external-wiki-collection-registration.d.ts +1 -1
  295. package/dist/external-wiki-collection.d.ts +1 -1
  296. package/dist/external-wiki-mcp-tools.d.ts +14 -13
  297. package/dist/extraction-error-classification.d.ts +1 -1
  298. package/dist/extraction-faithfulness.d.ts +2 -2
  299. package/dist/extraction-faithfulness.js +3 -3
  300. package/dist/extraction-judge-telemetry.d.ts +2 -2
  301. package/dist/extraction-judge-training.d.ts +2 -2
  302. package/dist/extraction-judge.d.ts +2 -2
  303. package/dist/extraction-judge.js +3 -3
  304. package/dist/extraction-liveness.d.ts +1 -1
  305. package/dist/extraction-normalization.d.ts +1 -1
  306. package/dist/extraction-prompt.d.ts +1 -1
  307. package/dist/extraction-source-grounding-rules.d.ts +1 -1
  308. package/dist/extraction-source-grounding.d.ts +1 -1
  309. package/dist/extraction-span-config.d.ts +1 -1
  310. package/dist/extraction-span-materialize.d.ts +1 -1
  311. package/dist/extraction.d.ts +2 -2
  312. package/dist/extraction.js +38 -38
  313. package/dist/fallback-llm-codex-subscription.d.ts +15 -5
  314. package/dist/fallback-llm-codex-subscription.js +3 -1
  315. package/dist/fallback-llm.d.ts +1 -1
  316. package/dist/fallback-llm.js +2 -2
  317. package/dist/{first-start-migration-ZWMV5CX4.js → first-start-migration-L3UFX5CU.js} +4 -4
  318. package/dist/{generic-recall-paths-CpyVmA88.d.ts → generic-recall-paths-CeKQsQEn.d.ts} +1 -1
  319. package/dist/graph-append-error.d.ts +1 -1
  320. package/dist/graph-dashboard-diff.d.ts +1 -1
  321. package/dist/graph-dashboard-key.d.ts +1 -1
  322. package/dist/graph-dashboard-parser.d.ts +1 -1
  323. package/dist/graph-edge-reinforcement.d.ts +1 -1
  324. package/dist/graph-jsonl.d.ts +1 -1
  325. package/dist/graph-path-reconstruction.d.ts +1 -1
  326. package/dist/graph-path-scoring.d.ts +1 -1
  327. package/dist/graph-snapshot.d.ts +1 -1
  328. package/dist/graph.d.ts +1 -1
  329. package/dist/harmonic-retrieval.js +3 -3
  330. package/dist/importance.d.ts +1 -1
  331. package/dist/importers/index.d.ts +1 -1
  332. package/dist/importers/test-utils.d.ts +1 -1
  333. package/dist/in-flight-reads.d.ts +1 -1
  334. package/dist/{index-BvUA4S7M.d.ts → index-Bau-Wl0H.d.ts} +3 -3
  335. package/dist/index.d.ts +703 -702
  336. package/dist/index.js +331 -327
  337. package/dist/intent.d.ts +1 -1
  338. package/dist/lcm/engine.d.ts +1 -1
  339. package/dist/lcm/engine.js +3 -3
  340. package/dist/lcm/index.d.ts +1 -1
  341. package/dist/lcm/index.js +8 -8
  342. package/dist/lcm/tools.d.ts +1 -1
  343. package/dist/lifecycle.d.ts +1 -1
  344. package/dist/live-connectors-runner.d.ts +1 -1
  345. package/dist/{local-llm-BsJGulur.d.ts → local-llm-Bj-m01Ro.d.ts} +1 -1
  346. package/dist/local-llm-helpers.d.ts +2 -2
  347. package/dist/local-llm.d.ts +2 -2
  348. package/dist/local-llm.js +2 -2
  349. package/dist/local-model-endpoint.d.ts +1 -1
  350. package/dist/location/index.d.ts +6 -209
  351. package/dist/location/index.js +77 -71
  352. package/dist/maintenance/memory-governance.d.ts +1 -1
  353. package/dist/maintenance/memory-governance.js +23 -23
  354. package/dist/maintenance/rebuild-memory-lifecycle-ledger.d.ts +2 -2
  355. package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +23 -23
  356. package/dist/maintenance/rebuild-memory-projection.d.ts +2 -2
  357. package/dist/maintenance/rebuild-memory-projection.js +25 -25
  358. package/dist/{maintenance-CYubtIRr.d.ts → maintenance-Ye-y-c7f.d.ts} +7 -6
  359. package/dist/mcp-memory-inspector-app.d.ts +14 -13
  360. package/dist/memory-action-policy.d.ts +1 -1
  361. package/dist/memory-cache.d.ts +1 -1
  362. package/dist/memory-controller.d.ts +1 -1
  363. package/dist/memory-lifecycle-ledger-utils.d.ts +1 -1
  364. package/dist/memory-projection-store.d.ts +1 -1
  365. package/dist/memory-provenance.d.ts +1 -1
  366. package/dist/memory-snapshot.d.ts +1 -1
  367. package/dist/memory-subject-cli.d.ts +14 -13
  368. package/dist/memory-subject.d.ts +14 -13
  369. package/dist/memory-worth-outcomes.d.ts +2 -2
  370. package/dist/models-json.d.ts +1 -1
  371. package/dist/namespaces/migrate.d.ts +3 -3
  372. package/dist/namespaces/migrate.js +23 -23
  373. package/dist/namespaces/principal.d.ts +1 -1
  374. package/dist/namespaces/search.d.ts +1 -1
  375. package/dist/namespaces/search.js +3 -3
  376. package/dist/namespaces/storage.d.ts +3 -3
  377. package/dist/namespaces/storage.js +22 -22
  378. package/dist/native-knowledge.d.ts +1 -1
  379. package/dist/offline-sync-impression-drain.d.ts +1 -1
  380. package/dist/offline-sync-impression-drain.js +5 -5
  381. package/dist/operator-doctor-corpus.d.ts +1 -1
  382. package/dist/operator-doctor-corpus.js +26 -26
  383. package/dist/operator-doctor-replica.d.ts +1 -1
  384. package/dist/operator-toolkit.d.ts +3 -3
  385. package/dist/operator-toolkit.js +44 -44
  386. package/dist/orchestration/compression-guideline-coordinator.d.ts +2 -2
  387. package/dist/orchestration/maintenance.d.ts +4 -4
  388. package/dist/orchestration/maintenance.js +39 -39
  389. package/dist/{orchestrator-BWDRJ_0d.d.ts → orchestrator-fFDDYUUV.d.ts} +20 -10
  390. package/dist/orchestrator.d.ts +11 -11
  391. package/dist/orchestrator.js +170 -168
  392. package/dist/patterns-cli.d.ts +1 -1
  393. package/dist/{pipeline-7JMn2yMH.d.ts → pipeline-D_j5n_Ih.d.ts} +1 -1
  394. package/dist/policy-runtime.d.ts +1 -1
  395. package/dist/proactive-contention.d.ts +2 -2
  396. package/dist/provenance.d.ts +1 -1
  397. package/dist/{public-http-CJWs3mo9.d.ts → public-http-CjiSqxUx.d.ts} +1 -1
  398. package/dist/{qmd-CxCH9G9m.d.ts → qmd-CnxVjKrv.d.ts} +1 -1
  399. package/dist/qmd-preflight.d.ts +2 -2
  400. package/dist/qmd-recall-cache.d.ts +1 -1
  401. package/dist/qmd.d.ts +2 -2
  402. package/dist/recall-concurrency-config.d.ts +1 -1
  403. package/dist/recall-disclosure-escalation.d.ts +1 -1
  404. package/dist/recall-explain-renderer.d.ts +1 -1
  405. package/dist/recall-explain-renderer.js +3 -3
  406. package/dist/recall-memory-map.d.ts +1 -1
  407. package/dist/recall-navigate-access.d.ts +1 -1
  408. package/dist/recall-navigate-access.js +2 -2
  409. package/dist/recall-navigate-disclosure.d.ts +1 -1
  410. package/dist/recall-navigate-disclosure.js +1 -1
  411. package/dist/recall-navigate.d.ts +1 -1
  412. package/dist/recall-navigate.js +2 -2
  413. package/dist/recall-planner-llm.d.ts +1 -1
  414. package/dist/recall-planner-llm.js +2 -2
  415. package/dist/recall-state-view-admission.d.ts +2 -2
  416. package/dist/recall-state-view-admission.js +8 -8
  417. package/dist/recall-state-view-anchors.d.ts +1 -1
  418. package/dist/recall-state-view-anchors.js +2 -2
  419. package/dist/recall-state-view-inject.js +2 -2
  420. package/dist/recall-state-view-render.js +2 -2
  421. package/dist/recall-state-view-widen.js +2 -2
  422. package/dist/recall-state-view-wire.js +3 -3
  423. package/dist/recall-state-view.d.ts +9 -1
  424. package/dist/recall-state-view.js +5 -3
  425. package/dist/recall-state.d.ts +1 -1
  426. package/dist/recall-tag-filter.d.ts +1 -1
  427. package/dist/recall-timings.d.ts +1 -1
  428. package/dist/recall-xray-cli.d.ts +1 -1
  429. package/dist/recall-xray-cli.js +4 -4
  430. package/dist/recall-xray-renderer.d.ts +1 -1
  431. package/dist/recall-xray-renderer.js +3 -3
  432. package/dist/recall-xray.d.ts +1 -1
  433. package/dist/recall-xray.js +2 -2
  434. package/dist/reconcile/cursor.d.ts +1 -1
  435. package/dist/reconcile/cursor.js +2 -2
  436. package/dist/reconcile/manifest.d.ts +1 -1
  437. package/dist/reconcile/manifest.js +4 -4
  438. package/dist/reconcile/plan.d.ts +1 -1
  439. package/dist/reconcile/plan.js +2 -2
  440. package/dist/replay/normalizers/chatgpt.d.ts +1 -1
  441. package/dist/replay/normalizers/claude.d.ts +1 -1
  442. package/dist/replay/normalizers/openclaw.d.ts +1 -1
  443. package/dist/replay/normalizers/shared.d.ts +1 -1
  444. package/dist/replay/runner.d.ts +1 -1
  445. package/dist/replay/types.d.ts +1 -1
  446. package/dist/replica-divergence.d.ts +1 -1
  447. package/dist/replica-peers-config.d.ts +1 -1
  448. package/dist/{resolution-4GG3QZRJ.js → resolution-LXFQQ4AE.js} +8 -8
  449. package/dist/resolution-LXFQQ4AE.js.map +1 -0
  450. package/dist/resolve-auth-token.d.ts +1 -1
  451. package/dist/resume-bundles.js +12 -12
  452. package/dist/retrieval-agents.d.ts +2 -2
  453. package/dist/retrieval-tiers.d.ts +1 -1
  454. package/dist/routing/engine.d.ts +1 -1
  455. package/dist/routing/store.d.ts +1 -1
  456. package/dist/salvage-envelope.d.ts +1 -1
  457. package/dist/schemas.d.ts +160 -160
  458. package/dist/{scope-profiles-BGAUqhBR.d.ts → scope-profiles-BajH5zAT.d.ts} +1 -1
  459. package/dist/search/embed-helper.d.ts +1 -1
  460. package/dist/search/factory.d.ts +1 -1
  461. package/dist/search/factory.js +2 -2
  462. package/dist/search/index.d.ts +1 -1
  463. package/dist/search/index.js +4 -4
  464. package/dist/search/lancedb-backend.d.ts +1 -1
  465. package/dist/search/meilisearch-backend.d.ts +1 -1
  466. package/dist/search/noop-backend.d.ts +1 -1
  467. package/dist/search/orama-backend.d.ts +1 -1
  468. package/dist/search/port.d.ts +1 -1
  469. package/dist/search/remote-backend.d.ts +1 -1
  470. package/dist/{semantic-consolidation-CCeRD9pV.d.ts → semantic-consolidation-Bu6d3O7R.d.ts} +1 -1
  471. package/dist/semantic-consolidation.d.ts +2 -2
  472. package/dist/semantic-consolidation.js +25 -25
  473. package/dist/semantic-rule-promotion.js +22 -22
  474. package/dist/semantic-rule-verifier.d.ts +1 -1
  475. package/dist/semantic-rule-verifier.js +22 -22
  476. package/dist/{service-BwpzRduk.d.ts → service-ChFwWtLS.d.ts} +13 -2
  477. package/dist/session-observer-bands.d.ts +1 -1
  478. package/dist/session-observer-state.d.ts +1 -1
  479. package/dist/shared-context/manager.d.ts +7 -7
  480. package/dist/shared-context/manager.js +2 -2
  481. package/dist/shared-context/write-output-controls.d.ts +34 -0
  482. package/dist/shared-context/write-output-controls.js +10 -0
  483. package/dist/shared-context/write-output-controls.js.map +1 -0
  484. package/dist/signal.d.ts +1 -1
  485. package/dist/source-agent-qualifier.d.ts +1 -1
  486. package/dist/source-agent-qualifier.js +33 -33
  487. package/dist/source-attribution.d.ts +23 -1
  488. package/dist/source-attribution.js +13 -3
  489. package/dist/standup/build.js +23 -23
  490. package/dist/{storage-BprAGBG0.d.ts → storage-BDKQdsmB.d.ts} +1 -1
  491. package/dist/storage.d.ts +2 -2
  492. package/dist/storage.js +21 -21
  493. package/dist/subject-config.d.ts +1 -1
  494. package/dist/subject-config.js +2 -2
  495. package/dist/summarizer.d.ts +1 -1
  496. package/dist/summarizer.js +6 -6
  497. package/dist/summary-snapshot.d.ts +1 -1
  498. package/dist/support-passport/index.d.ts +17 -16
  499. package/dist/support-passport/index.js +82 -81
  500. package/dist/tagging-CwK6um2q.d.ts +240 -0
  501. package/dist/temporal-supersession.d.ts +2 -2
  502. package/dist/temporal-timeline-recall.d.ts +1 -1
  503. package/dist/temporal-validity.d.ts +1 -1
  504. package/dist/threading.d.ts +1 -1
  505. package/dist/tier-migration.d.ts +2 -2
  506. package/dist/tier-routing.d.ts +1 -1
  507. package/dist/tier-routing.js +3 -3
  508. package/dist/{tier-stats-LUSUUNU6.js → tier-stats-VK5PCO2L.js} +4 -4
  509. package/dist/topics.d.ts +1 -1
  510. package/dist/transcript.d.ts +1 -1
  511. package/dist/transfer/backup.js +2 -2
  512. package/dist/transfer/capsule-export.js +2 -2
  513. package/dist/transfer/capsule-import.js +3 -3
  514. package/dist/transfer/export-okf.d.ts +1 -1
  515. package/dist/transfer/export-okf.js +22 -22
  516. package/dist/transfer/types.d.ts +78 -78
  517. package/dist/trust-score-stage.d.ts +1 -1
  518. package/dist/trust-score.d.ts +1 -1
  519. package/dist/{types-nJV23pa3.d.ts → types-B65IoepH.d.ts} +6 -1
  520. package/dist/types.d.ts +1 -1
  521. package/dist/types.js +1 -1
  522. package/dist/utility-runtime.d.ts +1 -1
  523. package/dist/verified-recall.js +22 -22
  524. package/dist/who-knows-cli.d.ts +14 -13
  525. package/dist/who-knows-cli.js +23 -23
  526. package/dist/who-knows.d.ts +14 -13
  527. package/dist/who-knows.js +22 -22
  528. package/dist/write-envelope.d.ts +1 -1
  529. package/package.json +12 -2
  530. package/src/access-http.test.ts +1 -0
  531. package/src/access-http.ts +1 -1
  532. package/src/access-mcp-shared-context-tools.ts +103 -0
  533. package/src/access-mcp.ts +7 -80
  534. package/src/access-observe-write-category.ts +1 -0
  535. package/src/access-observe-write-surface.ts +3 -3
  536. package/src/access-operations-batch.ts +47 -4
  537. package/src/access-schema.ts +1 -0
  538. package/src/access-service.ts +18 -12
  539. package/src/activity/timeline/regenerate.test.ts +48 -0
  540. package/src/activity/timeline/regenerate.ts +7 -5
  541. package/src/cli/deep-recall-commands.ts +22 -10
  542. package/src/config.ts +5 -0
  543. package/src/dedup/merge.test.ts +283 -0
  544. package/src/deep-recall-boundary.test.ts +66 -0
  545. package/src/deep-recall-cli.test.ts +82 -0
  546. package/src/deep-recall-config.test.ts +56 -0
  547. package/src/deep-recall-config.ts +32 -0
  548. package/src/deep-recall-http-glue.ts +10 -10
  549. package/src/deep-recall-policy-llm.test.ts +242 -0
  550. package/src/deep-recall-policy-llm.ts +37 -7
  551. package/src/deep-recall-seeds.test.ts +53 -0
  552. package/src/deep-recall-seeds.ts +7 -1
  553. package/src/deep-recall-surface.test.ts +93 -0
  554. package/src/deep-recall.test.ts +121 -0
  555. package/src/deep-recall.ts +88 -28
  556. package/src/fallback-llm-codex-subscription.ts +27 -5
  557. package/src/fallback-llm.test.ts +120 -0
  558. package/src/fallback-llm.ts +17 -16
  559. package/src/location/phase5-wiring.test.ts +408 -0
  560. package/src/location/tagging.ts +58 -0
  561. package/src/meetings/config.test.ts +58 -0
  562. package/src/orchestration/extraction-persist.ts +1 -1
  563. package/src/orchestration/orchestrator-helpers.ts +2 -0
  564. package/src/orchestration/recall-entry.ts +15 -1
  565. package/src/orchestration/recall-internal.ts +1 -0
  566. package/src/orchestration/recall-section-coordinator.ts +65 -28
  567. package/src/orchestration/recall-state-view-pipeline.test.ts +8 -2
  568. package/src/orchestration/semantic-merge-commit-effects.ts +45 -16
  569. package/src/orchestration/semantic-merge-persist.ts +23 -36
  570. package/src/orchestration/workspace-ops.ts +14 -0
  571. package/src/providers/codex-subscription.test.ts +127 -0
  572. package/src/providers/codex-subscription.ts +1 -1
  573. package/src/recall-state-view-budget.test.ts +424 -0
  574. package/src/recall-state-view.ts +30 -16
  575. package/src/shared-context/envelope-io.ts +25 -0
  576. package/src/shared-context/envelope-wiring.test.ts +4 -2
  577. package/src/shared-context/manager.ts +1 -0
  578. package/src/shared-context/write-output-controls.test.ts +192 -0
  579. package/src/shared-context/write-output-controls.ts +72 -0
  580. package/src/source-attribution.test.ts +39 -0
  581. package/src/source-attribution.ts +72 -0
  582. package/src/types.ts +5 -0
  583. package/src/wearables/pipeline.ts +19 -0
  584. package/src/wearables/service.ts +8 -0
  585. package/dist/chunk-5LYSEZOF.js.map +0 -1
  586. package/dist/chunk-CARRTDKC.js.map +0 -1
  587. package/dist/chunk-CC37E3QM.js.map +0 -1
  588. package/dist/chunk-IS2IDFJP.js.map +0 -1
  589. package/dist/chunk-K75A5XWU.js.map +0 -1
  590. package/dist/chunk-KTOXQMW3.js.map +0 -1
  591. package/dist/chunk-MDIEES23.js.map +0 -1
  592. package/dist/chunk-OEDW4ER7.js.map +0 -1
  593. package/dist/chunk-QE6YVNP5.js.map +0 -1
  594. package/dist/chunk-ROEFLU37.js.map +0 -1
  595. package/dist/chunk-SFHLQPBF.js.map +0 -1
  596. package/dist/chunk-SV4Z2S67.js.map +0 -1
  597. package/dist/chunk-THTF2W7M.js.map +0 -1
  598. package/dist/chunk-UZ6JYPJ6.js.map +0 -1
  599. package/dist/chunk-YTK5MVNF.js.map +0 -1
  600. package/dist/chunk-ZRMMXWYI.js.map +0 -1
  601. package/dist/chunk-ZX3AYNNV.js.map +0 -1
  602. /package/dist/{capsule-crypto-7FJQINUR.js.map → access-mcp-shared-context-tools.js.map} +0 -0
  603. /package/dist/{contradiction-scan-BSGKZHYJ.js.map → capsule-crypto-YO5QJ6L3.js.map} +0 -0
  604. /package/dist/{capsule-merge-IPG4IOFP.js.map → capsule-merge-3MNURAQ3.js.map} +0 -0
  605. /package/dist/{chunk-JAJIMTFB.js.map → chunk-2PDMIPMP.js.map} +0 -0
  606. /package/dist/{chunk-6L2II3KS.js.map → chunk-3D75XIYO.js.map} +0 -0
  607. /package/dist/{chunk-XCPNH2MG.js.map → chunk-3KJTSCSX.js.map} +0 -0
  608. /package/dist/{chunk-YTZN2UZO.js.map → chunk-3RLWUW7G.js.map} +0 -0
  609. /package/dist/{chunk-J272ODKJ.js.map → chunk-42DJ235G.js.map} +0 -0
  610. /package/dist/{chunk-NVVZPBKI.js.map → chunk-46FVFU7S.js.map} +0 -0
  611. /package/dist/{chunk-JUDT33RX.js.map → chunk-4AX5OYKC.js.map} +0 -0
  612. /package/dist/{chunk-GSSDHAYH.js.map → chunk-4IGOLIWM.js.map} +0 -0
  613. /package/dist/{chunk-23HFXQ5J.js.map → chunk-6EGIQEKC.js.map} +0 -0
  614. /package/dist/{chunk-TVVEYCNW.js.map → chunk-7K5Q6COX.js.map} +0 -0
  615. /package/dist/{chunk-GO5LOHCD.js.map → chunk-7L54ARML.js.map} +0 -0
  616. /package/dist/{chunk-TEMKBSV6.js.map → chunk-7PSRCGWT.js.map} +0 -0
  617. /package/dist/{chunk-ICNJ6J46.js.map → chunk-AAAFZW3U.js.map} +0 -0
  618. /package/dist/{chunk-K4JKAXMO.js.map → chunk-AAX22E4K.js.map} +0 -0
  619. /package/dist/{chunk-KY236SP5.js.map → chunk-AHHFBJX7.js.map} +0 -0
  620. /package/dist/{chunk-TZ44E732.js.map → chunk-AIVRD66I.js.map} +0 -0
  621. /package/dist/{chunk-YRIFXXMI.js.map → chunk-AOGICQMH.js.map} +0 -0
  622. /package/dist/{chunk-KOTG3RXE.js.map → chunk-AUSRUOMQ.js.map} +0 -0
  623. /package/dist/{chunk-C5R73BON.js.map → chunk-BIANISES.js.map} +0 -0
  624. /package/dist/{chunk-IMBQFHRV.js.map → chunk-BPXJINHW.js.map} +0 -0
  625. /package/dist/{chunk-2NLLXCJG.js.map → chunk-BXLOS5AJ.js.map} +0 -0
  626. /package/dist/{chunk-2J3V5QEO.js.map → chunk-C3QXITIP.js.map} +0 -0
  627. /package/dist/{chunk-2SNCQHJZ.js.map → chunk-CQ4BTPX6.js.map} +0 -0
  628. /package/dist/{chunk-3QEVOQF5.js.map → chunk-CTETTVDN.js.map} +0 -0
  629. /package/dist/{chunk-DFVSJFHK.js.map → chunk-DBB5JPSL.js.map} +0 -0
  630. /package/dist/{chunk-W23JARAQ.js.map → chunk-DLPMOSNH.js.map} +0 -0
  631. /package/dist/{chunk-BGRTZOJB.js.map → chunk-DMTSKY4W.js.map} +0 -0
  632. /package/dist/{chunk-X7Y7WX73.js.map → chunk-DQEMWVMT.js.map} +0 -0
  633. /package/dist/{chunk-QS5Q5RBV.js.map → chunk-E4FRR4MA.js.map} +0 -0
  634. /package/dist/{chunk-RJQAP333.js.map → chunk-ETE3SGAH.js.map} +0 -0
  635. /package/dist/{chunk-YNDLCWXS.js.map → chunk-EZ25VE3G.js.map} +0 -0
  636. /package/dist/{chunk-RLU2Y5GV.js.map → chunk-F2FJTOV6.js.map} +0 -0
  637. /package/dist/{chunk-V2ZA4YWE.js.map → chunk-F5H6YG5P.js.map} +0 -0
  638. /package/dist/{chunk-4CMXI55L.js.map → chunk-FSUFKIFS.js.map} +0 -0
  639. /package/dist/{chunk-ZAEPD4C2.js.map → chunk-G3NTZZWT.js.map} +0 -0
  640. /package/dist/{chunk-ZMWSYUUL.js.map → chunk-GCBIXUPT.js.map} +0 -0
  641. /package/dist/{chunk-WZYHPAG5.js.map → chunk-GIM2AGFL.js.map} +0 -0
  642. /package/dist/{chunk-J7FVMLBR.js.map → chunk-GWEZNCGA.js.map} +0 -0
  643. /package/dist/{chunk-LFVZD5EC.js.map → chunk-GWNSKQDA.js.map} +0 -0
  644. /package/dist/{chunk-MJC7UKH7.js.map → chunk-H2N6SLTR.js.map} +0 -0
  645. /package/dist/{chunk-J4WGTN2N.js.map → chunk-HK44SV6K.js.map} +0 -0
  646. /package/dist/{chunk-JDX2OA4R.js.map → chunk-HNHIHXSD.js.map} +0 -0
  647. /package/dist/{chunk-VQYWKCDR.js.map → chunk-HPMCKAET.js.map} +0 -0
  648. /package/dist/{chunk-MVG3KXON.js.map → chunk-I65KB36L.js.map} +0 -0
  649. /package/dist/{chunk-AEOOGXMQ.js.map → chunk-J2MGTGKC.js.map} +0 -0
  650. /package/dist/{chunk-PKUJNICO.js.map → chunk-JC2OBYYD.js.map} +0 -0
  651. /package/dist/{chunk-5U7K4W6K.js.map → chunk-JDOBQPJY.js.map} +0 -0
  652. /package/dist/{chunk-VQWBUPSJ.js.map → chunk-JMAP6L6Q.js.map} +0 -0
  653. /package/dist/{chunk-7Z54NXVS.js.map → chunk-K27INAPR.js.map} +0 -0
  654. /package/dist/{chunk-7D6SER6A.js.map → chunk-KJQ4Y2PY.js.map} +0 -0
  655. /package/dist/{chunk-QPVNK2VE.js.map → chunk-LCVYO3ON.js.map} +0 -0
  656. /package/dist/{chunk-HIP6DKJJ.js.map → chunk-LQVXSRAJ.js.map} +0 -0
  657. /package/dist/{chunk-A7GQBJP5.js.map → chunk-LVFI5LG7.js.map} +0 -0
  658. /package/dist/{chunk-TO36VPZI.js.map → chunk-LWF6GOII.js.map} +0 -0
  659. /package/dist/{chunk-ES5BUPYB.js.map → chunk-OCWFKD5Q.js.map} +0 -0
  660. /package/dist/{chunk-IOPIGX7Y.js.map → chunk-OP722LOG.js.map} +0 -0
  661. /package/dist/{chunk-62D2PAAM.js.map → chunk-PAAJWQH5.js.map} +0 -0
  662. /package/dist/{chunk-V6EGNVUT.js.map → chunk-PIWFNPQT.js.map} +0 -0
  663. /package/dist/{chunk-JOP7W24J.js.map → chunk-PLJ2MQFT.js.map} +0 -0
  664. /package/dist/{chunk-37CAEC7E.js.map → chunk-PWPIERBM.js.map} +0 -0
  665. /package/dist/{chunk-BXIJSPCL.js.map → chunk-Q62GA5U2.js.map} +0 -0
  666. /package/dist/{chunk-I3H5LFOI.js.map → chunk-QNJQCLI6.js.map} +0 -0
  667. /package/dist/{chunk-BYQX4IOG.js.map → chunk-R45VFSEV.js.map} +0 -0
  668. /package/dist/{chunk-XVDZFTN5.js.map → chunk-RFIJH2OE.js.map} +0 -0
  669. /package/dist/{chunk-K4A6UVPB.js.map → chunk-RJ7Z7YXK.js.map} +0 -0
  670. /package/dist/{chunk-HJUP3K6L.js.map → chunk-RXYO6NA6.js.map} +0 -0
  671. /package/dist/{chunk-TBXAY2SS.js.map → chunk-SGHGCFVV.js.map} +0 -0
  672. /package/dist/{chunk-2SKMZUOW.js.map → chunk-U26LB4WA.js.map} +0 -0
  673. /package/dist/{chunk-VHKXRYQN.js.map → chunk-VBK6SRNE.js.map} +0 -0
  674. /package/dist/{chunk-KQAFEZQX.js.map → chunk-VDX2J7OX.js.map} +0 -0
  675. /package/dist/{chunk-Z4GUX2M6.js.map → chunk-VSN2DMQK.js.map} +0 -0
  676. /package/dist/{chunk-ZHXSOMYH.js.map → chunk-VVX5PZFS.js.map} +0 -0
  677. /package/dist/{chunk-G2XZFGYN.js.map → chunk-WGZHSQDV.js.map} +0 -0
  678. /package/dist/{chunk-H3TKENU4.js.map → chunk-WIKO4SCR.js.map} +0 -0
  679. /package/dist/{chunk-LKFVVN7R.js.map → chunk-WNPRRBOE.js.map} +0 -0
  680. /package/dist/{chunk-ZZUVBZL2.js.map → chunk-X2QPKLPL.js.map} +0 -0
  681. /package/dist/{chunk-RDLPFM7I.js.map → chunk-XJLTQTAO.js.map} +0 -0
  682. /package/dist/{chunk-XM46Y66S.js.map → chunk-ZFU6QNRN.js.map} +0 -0
  683. /package/dist/{chunk-SUEOG2S4.js.map → chunk-ZGXHTV5Y.js.map} +0 -0
  684. /package/dist/{chunk-46Z3VGWF.js.map → chunk-ZYRAY5FL.js.map} +0 -0
  685. /package/dist/{chunk-3XPN7AVY.js.map → chunk-ZYSOT6HD.js.map} +0 -0
  686. /package/dist/{resolution-4GG3QZRJ.js.map → contradiction-scan-GVD4JJ7B.js.map} +0 -0
  687. /package/dist/{first-start-migration-ZWMV5CX4.js.map → first-start-migration-L3UFX5CU.js.map} +0 -0
  688. /package/dist/{tier-stats-LUSUUNU6.js.map → tier-stats-VK5PCO2L.js.map} +0 -0
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  NamespaceStorageRouter
3
- } from "./chunk-2SNCQHJZ.js";
3
+ } from "./chunk-CQ4BTPX6.js";
4
4
  import {
5
5
  namespaceCollectionName
6
- } from "./chunk-TZ44E732.js";
6
+ } from "./chunk-AIVRD66I.js";
7
7
  import {
8
8
  isSafeRouteNamespace
9
9
  } from "./chunk-PCXDUHQH.js";
@@ -213,4 +213,4 @@ export {
213
213
  verifyNamespaces,
214
214
  runNamespaceMigration
215
215
  };
216
- //# sourceMappingURL=chunk-KY236SP5.js.map
216
+ //# sourceMappingURL=chunk-AHHFBJX7.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  createSearchBackend
3
- } from "./chunk-JOP7W24J.js";
3
+ } from "./chunk-PLJ2MQFT.js";
4
4
  import {
5
5
  namespaceIdentityToken,
6
6
  normalizeNamespaceIdentity
@@ -508,4 +508,4 @@ export {
508
508
  NamespaceSearchRouter,
509
509
  normalizeQmdResultPath
510
510
  };
511
- //# sourceMappingURL=chunk-TZ44E732.js.map
511
+ //# sourceMappingURL=chunk-AIVRD66I.js.map
@@ -32,6 +32,7 @@ function createDeepRecallSeedSearch(deps) {
32
32
  namespaces: [deps.namespace],
33
33
  maxResults: limit,
34
34
  execution: {
35
+ ...deps.signal ? { signal: deps.signal } : {},
35
36
  onDegradation: (degradation) => {
36
37
  if (degradation.code === "backend_unavailable") unavailable.push(degradation);
37
38
  }
@@ -59,4 +60,4 @@ function createDeepRecallSeedSearch(deps) {
59
60
  export {
60
61
  createDeepRecallSeedSearch
61
62
  };
62
- //# sourceMappingURL=chunk-OEDW4ER7.js.map
63
+ //# sourceMappingURL=chunk-AJBWVDRV.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/deep-recall-seeds.ts"],"sourcesContent":["/**\n * Deep-recall seed retrieval (issue #2332 review).\n *\n * Seeds route through the SAME namespace search router the rest of the read\n * path uses, so a non-default caller searches its own suffixed collection\n * instead of the base (default-namespace) collection — read and write resolve\n * through one resolver, never two (§30).\n *\n * Each hit is resolved to a real memory id through the shared QMD result\n * resolver (`QmdResultResolver.readQmdResultMemory`), per hit and bounded by\n * the requested limit, instead of pre-scanning the whole namespace corpus to\n * build a path index. With namespaces disabled the fanout queries the QMD\n * backend directly, so hits keep the indexer's raw path forms; the resolver\n * decodes `qmd://<collection>/` URIs and `<collection>/`-prefixed relatives,\n * and the two forms it cannot decode (`qmd:///`, a leading `/`) are stripped\n * for one retry. A hit with no path is dropped: its namespace membership\n * cannot be verified, and a bare docid from a foreign collection must never\n * enter the working set as a resolved memory.\n *\n * An unavailable namespace backend (or a missing collection) contributes an\n * empty result set and reports itself only through `execution.onDegradation`,\n * so the observer is REQUIRED here: without it a dead index is indistinguishable\n * from a healthy empty one and deep recall would answer `ok: true` with zero\n * entries instead of the advertised `backend_unavailable` failure.\n */\n\nimport type { DeepRecallSeedHit } from \"./deep-recall.js\";\nimport type { SearchDegradation } from \"./search/port.js\";\n\n/** Namespace-scoped search entrypoint (satisfied by `Orchestrator.searchAcrossNamespaces`). */\nexport interface DeepRecallSeedRouter {\n searchAcrossNamespaces(options: {\n query: string;\n namespaces: string[];\n maxResults?: number;\n execution?: {\n signal?: AbortSignal;\n onDegradation?: (degradation: SearchDegradation) => void;\n };\n }): Promise<ReadonlyArray<{ path?: string; docid?: string; score?: number }>>;\n}\n\n/** Namespace-scoped storage read (satisfied by `StorageManager`). */\nexport interface DeepRecallSeedStorage {\n readonly dir: string;\n readMemoryByPath(filePath: string): Promise<{ frontmatter: { id?: string } } | null>;\n}\n\n/** Full QMD hit -> memory resolver (satisfied by `QmdResultResolver#readQmdResultMemory`). */\nexport interface DeepRecallSeedResultResolver {\n readQmdResultMemory(\n resultPath: string,\n fallbackStorage: DeepRecallSeedStorage,\n recallNamespaces?: readonly string[],\n preferredNamespace?: string,\n ): Promise<{ frontmatter: { id?: string } } | null>;\n}\n\n/**\n * Strip the collection-qualified forms the indexer can emit but\n * `readQmdResultMemory` cannot decode: the empty-hostname `qmd:///` URI and\n * the root-relative `/` path both reach its fallback probe still prefixed and\n * miss. Returns `null` when the path carries no such prefix — including a\n * decodable `qmd://<collection>/` or `<collection>/` form, which the resolver\n * owns, and a foreign collection prefix, which must stay a miss.\n */\nfunction collectionPrefixStrippedPath(resultPath: string): string | null {\n const trimmed = resultPath.trim();\n if (trimmed.startsWith(\"qmd:///\")) {\n const relative = trimmed.slice(\"qmd:///\".length).replace(/^\\/+/, \"\");\n return relative.length > 0 ? relative : null;\n }\n if (trimmed.startsWith(\"/\")) {\n const relative = trimmed.replace(/^\\/+/, \"\");\n return relative.length > 0 ? relative : null;\n }\n return null;\n}\n\nasync function resolveSeedMemoryId(\n resolver: DeepRecallSeedResultResolver,\n storage: DeepRecallSeedStorage,\n namespace: string,\n resultPath: string | undefined,\n): Promise<string | null> {\n if (typeof resultPath !== \"string\" || resultPath.length === 0) return null;\n const attempts = [resultPath];\n const stripped = collectionPrefixStrippedPath(resultPath);\n if (stripped !== null) attempts.push(stripped);\n for (const attempt of attempts) {\n const memory = await resolver.readQmdResultMemory(attempt, storage, [namespace]);\n const id = memory?.frontmatter?.id;\n if (typeof id === \"string\" && id.length > 0) return id;\n }\n return null;\n}\n\nexport function createDeepRecallSeedSearch(deps: {\n namespace: string;\n storage: DeepRecallSeedStorage;\n router: DeepRecallSeedRouter;\n resolver: DeepRecallSeedResultResolver;\n /** Transport cancellation (issue #2915); forwarded to the search router. */\n signal?: AbortSignal;\n}): (query: string, limit: number) => Promise<DeepRecallSeedHit[]> {\n return async (query, limit) => {\n if (limit <= 0) return [];\n const unavailable: SearchDegradation[] = [];\n const hits = await deps.router.searchAcrossNamespaces({\n query,\n namespaces: [deps.namespace],\n maxResults: limit,\n execution: {\n ...(deps.signal ? { signal: deps.signal } : {}),\n onDegradation: (degradation) => {\n if (degradation.code === \"backend_unavailable\") unavailable.push(degradation);\n },\n },\n });\n // The requested namespace has no usable index: a seed-search failure, which\n // is the one condition deep recall reports as `backend_unavailable`.\n if (unavailable.length > 0) {\n throw new Error(\n `deep recall seed search unavailable: ${unavailable.map((d) => d.detail ?? d.code).join(\"; \")}`,\n );\n }\n const seeds: DeepRecallSeedHit[] = [];\n for (const hit of hits) {\n if (typeof hit.path !== \"string\" || hit.path.length === 0) continue;\n const memoryId =\n (await resolveSeedMemoryId(deps.resolver, deps.storage, deps.namespace, hit.path)) ?? hit.docid;\n if (typeof memoryId !== \"string\" || memoryId.length === 0) continue;\n seeds.push({\n memoryId,\n score: typeof hit.score === \"number\" && Number.isFinite(hit.score) ? hit.score : 0,\n });\n }\n return seeds;\n };\n}\n"],"mappings":";AAkEA,SAAS,6BAA6B,YAAmC;AACvE,QAAM,UAAU,WAAW,KAAK;AAChC,MAAI,QAAQ,WAAW,SAAS,GAAG;AACjC,UAAM,WAAW,QAAQ,MAAM,UAAU,MAAM,EAAE,QAAQ,QAAQ,EAAE;AACnE,WAAO,SAAS,SAAS,IAAI,WAAW;AAAA,EAC1C;AACA,MAAI,QAAQ,WAAW,GAAG,GAAG;AAC3B,UAAM,WAAW,QAAQ,QAAQ,QAAQ,EAAE;AAC3C,WAAO,SAAS,SAAS,IAAI,WAAW;AAAA,EAC1C;AACA,SAAO;AACT;AAEA,eAAe,oBACb,UACA,SACA,WACA,YACwB;AACxB,MAAI,OAAO,eAAe,YAAY,WAAW,WAAW,EAAG,QAAO;AACtE,QAAM,WAAW,CAAC,UAAU;AAC5B,QAAM,WAAW,6BAA6B,UAAU;AACxD,MAAI,aAAa,KAAM,UAAS,KAAK,QAAQ;AAC7C,aAAW,WAAW,UAAU;AAC9B,UAAM,SAAS,MAAM,SAAS,oBAAoB,SAAS,SAAS,CAAC,SAAS,CAAC;AAC/E,UAAM,KAAK,QAAQ,aAAa;AAChC,QAAI,OAAO,OAAO,YAAY,GAAG,SAAS,EAAG,QAAO;AAAA,EACtD;AACA,SAAO;AACT;AAEO,SAAS,2BAA2B,MAOwB;AACjE,SAAO,OAAO,OAAO,UAAU;AAC7B,QAAI,SAAS,EAAG,QAAO,CAAC;AACxB,UAAM,cAAmC,CAAC;AAC1C,UAAM,OAAO,MAAM,KAAK,OAAO,uBAAuB;AAAA,MACpD;AAAA,MACA,YAAY,CAAC,KAAK,SAAS;AAAA,MAC3B,YAAY;AAAA,MACZ,WAAW;AAAA,QACT,GAAI,KAAK,SAAS,EAAE,QAAQ,KAAK,OAAO,IAAI,CAAC;AAAA,QAC7C,eAAe,CAAC,gBAAgB;AAC9B,cAAI,YAAY,SAAS,sBAAuB,aAAY,KAAK,WAAW;AAAA,QAC9E;AAAA,MACF;AAAA,IACF,CAAC;AAGD,QAAI,YAAY,SAAS,GAAG;AAC1B,YAAM,IAAI;AAAA,QACR,wCAAwC,YAAY,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC;AAAA,MAC/F;AAAA,IACF;AACA,UAAM,QAA6B,CAAC;AACpC,eAAW,OAAO,MAAM;AACtB,UAAI,OAAO,IAAI,SAAS,YAAY,IAAI,KAAK,WAAW,EAAG;AAC3D,YAAM,WACH,MAAM,oBAAoB,KAAK,UAAU,KAAK,SAAS,KAAK,WAAW,IAAI,IAAI,KAAM,IAAI;AAC5F,UAAI,OAAO,aAAa,YAAY,SAAS,WAAW,EAAG;AAC3D,YAAM,KAAK;AAAA,QACT;AAAA,QACA,OAAO,OAAO,IAAI,UAAU,YAAY,OAAO,SAAS,IAAI,KAAK,IAAI,IAAI,QAAQ;AAAA,MACnF,CAAC;AAAA,IACH;AACA,WAAO;AAAA,EACT;AACF;","names":[]}
@@ -1,6 +1,9 @@
1
1
  import {
2
2
  resolveDefaultNamespaceRoot
3
- } from "./chunk-2SNCQHJZ.js";
3
+ } from "./chunk-CQ4BTPX6.js";
4
+ import {
5
+ StorageManager
6
+ } from "./chunk-I65KB36L.js";
4
7
  import {
5
8
  composeLocationDayBody,
6
9
  composeLocationDayMeta,
@@ -20,10 +23,7 @@ import {
20
23
  serializeLocationDay,
21
24
  updateLocationSourceDay,
22
25
  writeLocationDay
23
- } from "./chunk-6P4REYKL.js";
24
- import {
25
- StorageManager
26
- } from "./chunk-MVG3KXON.js";
26
+ } from "./chunk-UDAUULK2.js";
27
27
  import {
28
28
  resolveNamespaceCapabilities
29
29
  } from "./chunk-JUOZ62Y7.js";
@@ -728,4 +728,4 @@ export {
728
728
  runLocationBackfill,
729
729
  runLocationCliCommand
730
730
  };
731
- //# sourceMappingURL=chunk-YRIFXXMI.js.map
731
+ //# sourceMappingURL=chunk-AOGICQMH.js.map
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-SOBJ6NEY.js";
4
4
  import {
5
5
  summarizeDisclosureTokens
6
- } from "./chunk-BXIJSPCL.js";
6
+ } from "./chunk-Q62GA5U2.js";
7
7
  import {
8
8
  summarizeRetrievedMemoryProvenance
9
9
  } from "./chunk-I4WBNM3M.js";
@@ -610,4 +610,4 @@ export {
610
610
  renderRecallExplain,
611
611
  parseRecallExplainFormat
612
612
  };
613
- //# sourceMappingURL=chunk-KOTG3RXE.js.map
613
+ //# sourceMappingURL=chunk-AUSRUOMQ.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  runLocationSync
3
- } from "./chunk-YRIFXXMI.js";
3
+ } from "./chunk-AOGICQMH.js";
4
4
  import {
5
5
  log
6
6
  } from "./chunk-3WCASNQZ.js";
@@ -58,4 +58,4 @@ export {
58
58
  LOCATION_SYNC_DEFAULT_INTERVAL_MS,
59
59
  startLocationAutoSync
60
60
  };
61
- //# sourceMappingURL=chunk-C5R73BON.js.map
61
+ //# sourceMappingURL=chunk-BIANISES.js.map
@@ -1,16 +1,19 @@
1
- import {
2
- tagPersistedMemories
3
- } from "./chunk-6P4REYKL.js";
4
1
  import {
5
2
  raceRecallAbort,
6
3
  throwIfRecallAborted
7
- } from "./chunk-K75A5XWU.js";
4
+ } from "./chunk-F6PTJLEM.js";
8
5
  import {
9
6
  classifyOrigin
10
7
  } from "./chunk-6Q3ZTEF6.js";
8
+ import {
9
+ tagPersistedMemories
10
+ } from "./chunk-UDAUULK2.js";
11
11
  import {
12
12
  resolveScopeProfilePlan
13
13
  } from "./chunk-MNIPH6LD.js";
14
+ import {
15
+ parseFlexibleIsoTimestamp
16
+ } from "./chunk-P7FMDTKL.js";
14
17
  import {
15
18
  defaultNamespaceForPrincipal,
16
19
  resolvePrincipal
@@ -19,9 +22,6 @@ import {
19
22
  resolveMemoryLifecycleCapabilities,
20
23
  resolvePresentationCapabilities
21
24
  } from "./chunk-JUOZ62Y7.js";
22
- import {
23
- parseFlexibleIsoTimestamp
24
- } from "./chunk-P7FMDTKL.js";
25
25
  import {
26
26
  resolveCodingNamespaceOverlay
27
27
  } from "./chunk-3Q3N35W7.js";
@@ -1081,4 +1081,4 @@ export {
1081
1081
  ExtractionDeadlineError,
1082
1082
  ExtractionRunCoordinator
1083
1083
  };
1084
- //# sourceMappingURL=chunk-IMBQFHRV.js.map
1084
+ //# sourceMappingURL=chunk-BPXJINHW.js.map
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-765K3SAT.js";
4
4
  import {
5
5
  encryptCapsuleFile
6
- } from "./chunk-X7Y7WX73.js";
6
+ } from "./chunk-DQEMWVMT.js";
7
7
  import {
8
8
  computeTransferOutputRel,
9
9
  isTransferPathExcluded
@@ -109,4 +109,4 @@ async function enforceRetention(outDirAbs, retentionDays) {
109
109
  export {
110
110
  backupMemoryDir
111
111
  };
112
- //# sourceMappingURL=chunk-2NLLXCJG.js.map
112
+ //# sourceMappingURL=chunk-BXLOS5AJ.js.map
@@ -2,12 +2,12 @@ import {
2
2
  buildCodingGraphInstallHint,
3
3
  tryLoadCodingGraphModule
4
4
  } from "./chunk-VQ7B2Q6M.js";
5
- import {
6
- composeMemoryEnvelope
7
- } from "./chunk-GDYU6VF4.js";
8
5
  import {
9
6
  isCodingKnowledgeFeatureEnabled
10
7
  } from "./chunk-FEHIOYML.js";
8
+ import {
9
+ composeMemoryEnvelope
10
+ } from "./chunk-GDYU6VF4.js";
11
11
  import {
12
12
  displayErrorDetail
13
13
  } from "./chunk-RL6NEVXT.js";
@@ -1463,4 +1463,4 @@ export {
1463
1463
  serializeDecisionRecord,
1464
1464
  parseDecisionRecord
1465
1465
  };
1466
- //# sourceMappingURL=chunk-2J3V5QEO.js.map
1466
+ //# sourceMappingURL=chunk-C3QXITIP.js.map
@@ -1,6 +1,10 @@
1
1
  import {
2
2
  StorageManager
3
- } from "./chunk-MVG3KXON.js";
3
+ } from "./chunk-I65KB36L.js";
4
+ import {
5
+ keyring_exports,
6
+ secureStoreDir
7
+ } from "./chunk-BJMBJZ2Y.js";
4
8
  import {
5
9
  MutationSerializer
6
10
  } from "./chunk-FFAZ2XFU.js";
@@ -16,10 +20,6 @@ import {
16
20
  resolveNamespaceCapabilities,
17
21
  resolveRecallAuxiliaryCapabilities
18
22
  } from "./chunk-JUOZ62Y7.js";
19
- import {
20
- keyring_exports,
21
- secureStoreDir
22
- } from "./chunk-BJMBJZ2Y.js";
23
23
  import {
24
24
  ALL_CATEGORY_DIRS
25
25
  } from "./chunk-VS2IYZRU.js";
@@ -412,4 +412,4 @@ export {
412
412
  resolveNamespaceStorageRoot,
413
413
  NamespaceStorageRouter
414
414
  };
415
- //# sourceMappingURL=chunk-2SNCQHJZ.js.map
415
+ //# sourceMappingURL=chunk-CQ4BTPX6.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  isNamespaceKind
3
- } from "./chunk-W23JARAQ.js";
3
+ } from "./chunk-DLPMOSNH.js";
4
4
  import {
5
5
  EngramAccessInputError
6
6
  } from "./chunk-2Z24E5W2.js";
@@ -40,4 +40,4 @@ export {
40
40
  positiveIntQueryParam,
41
41
  optionalNamespaceKindQueryParam
42
42
  };
43
- //# sourceMappingURL=chunk-3QEVOQF5.js.map
43
+ //# sourceMappingURL=chunk-CTETTVDN.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  widenRecallStateViews
3
- } from "./chunk-6L2II3KS.js";
3
+ } from "./chunk-3D75XIYO.js";
4
4
 
5
5
  // src/recall-state-view-wire.ts
6
6
  function applyRecallStateViews(results, query, config, stateViewActive, asOfMs) {
@@ -10,4 +10,4 @@ function applyRecallStateViews(results, query, config, stateViewActive, asOfMs)
10
10
  export {
11
11
  applyRecallStateViews
12
12
  };
13
- //# sourceMappingURL=chunk-DFVSJFHK.js.map
13
+ //# sourceMappingURL=chunk-DBB5JPSL.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  resolveDefaultNamespaceRoot,
3
3
  resolveNamespaceStorageRoot
4
- } from "./chunk-2SNCQHJZ.js";
4
+ } from "./chunk-CQ4BTPX6.js";
5
5
  import {
6
6
  MutationSerializer,
7
7
  withHeldFileLock
@@ -1473,4 +1473,4 @@ export {
1473
1473
  isNamespaceKind,
1474
1474
  NamespaceCatalog
1475
1475
  };
1476
- //# sourceMappingURL=chunk-W23JARAQ.js.map
1476
+ //# sourceMappingURL=chunk-DLPMOSNH.js.map
@@ -7,24 +7,21 @@ import {
7
7
  import {
8
8
  listMemoryGovernanceRuns,
9
9
  readMemoryGovernanceRunArtifact
10
- } from "./chunk-2SKMZUOW.js";
10
+ } from "./chunk-U26LB4WA.js";
11
11
  import {
12
12
  StorageManager
13
- } from "./chunk-MVG3KXON.js";
13
+ } from "./chunk-I65KB36L.js";
14
14
  import {
15
15
  normalizeProjectionPreview,
16
16
  normalizeProjectionTags
17
17
  } from "./chunk-SCU65EZI.js";
18
- import {
19
- commitPreparedFileAtomically
20
- } from "./chunk-AW4QUFQF.js";
21
18
  import {
22
19
  assertInjectedStorageRooted,
23
20
  readProjectedEntityMentionRows,
24
21
  readProjectedGovernanceRows,
25
22
  readProjectedNativeKnowledgeRows,
26
23
  writeProjectionMetaHighWater
27
- } from "./chunk-TBXAY2SS.js";
24
+ } from "./chunk-SGHGCFVV.js";
28
25
  import {
29
26
  MEMORY_PROJECTION_SCHEMA_VERSION,
30
27
  getMemoryProjectionPath,
@@ -39,7 +36,7 @@ import {
39
36
  } from "./chunk-RL6NEVXT.js";
40
37
  import {
41
38
  isSupportPassportPrivateMemory
42
- } from "./chunk-37CAEC7E.js";
39
+ } from "./chunk-PWPIERBM.js";
43
40
  import {
44
41
  MEMORY_LIFECYCLE_EVENT_SORT_ORDER,
45
42
  buildLifecycleEventsForMemory,
@@ -48,6 +45,9 @@ import {
48
45
  sortMemoryLifecycleEvents,
49
46
  toMemoryPathRel
50
47
  } from "./chunk-7RJUVTVF.js";
48
+ import {
49
+ commitPreparedFileAtomically
50
+ } from "./chunk-AW4QUFQF.js";
51
51
  import {
52
52
  isErrnoCode
53
53
  } from "./chunk-KNA3BXXL.js";
@@ -1005,4 +1005,4 @@ export {
1005
1005
  verifyMemoryProjection,
1006
1006
  repairMemoryProjection
1007
1007
  };
1008
- //# sourceMappingURL=chunk-BGRTZOJB.js.map
1008
+ //# sourceMappingURL=chunk-DMTSKY4W.js.map
@@ -246,4 +246,4 @@ export {
246
246
  decryptCapsuleFile,
247
247
  decryptCapsuleFileInMemory
248
248
  };
249
- //# sourceMappingURL=chunk-X7Y7WX73.js.map
249
+ //# sourceMappingURL=chunk-DQEMWVMT.js.map
@@ -1,3 +1,9 @@
1
+ import {
2
+ checkEntityRecallAbort,
3
+ entityRecallSectionAbsent,
4
+ yieldEntityRecallScan,
5
+ yieldEntityRecallScanEvery
6
+ } from "./chunk-5AUY5Z5E.js";
1
7
  import {
2
8
  containsPhrase
3
9
  } from "./chunk-SVH57F5Z.js";
@@ -9,12 +15,6 @@ import {
9
15
  buildOriginStructuredSections,
10
16
  sanitizeOriginatedFacts
11
17
  } from "./chunk-GKUA4MGB.js";
12
- import {
13
- checkEntityRecallAbort,
14
- entityRecallSectionAbsent,
15
- yieldEntityRecallScan,
16
- yieldEntityRecallScanEvery
17
- } from "./chunk-5AUY5Z5E.js";
18
18
  import {
19
19
  collectNativeKnowledgeChunks
20
20
  } from "./chunk-2DQ2XREU.js";
@@ -23,7 +23,7 @@ import {
23
23
  } from "./chunk-7ZNJN5WZ.js";
24
24
  import {
25
25
  compareEntityTimestamps
26
- } from "./chunk-MVG3KXON.js";
26
+ } from "./chunk-I65KB36L.js";
27
27
  import {
28
28
  normalizeEntityName
29
29
  } from "./chunk-YXZG5TVN.js";
@@ -918,4 +918,4 @@ export {
918
918
  entityIndexVersion,
919
919
  entityRecentTranscriptLookbackHours
920
920
  };
921
- //# sourceMappingURL=chunk-QS5Q5RBV.js.map
921
+ //# sourceMappingURL=chunk-E4FRR4MA.js.map
@@ -157,10 +157,7 @@ function reconcileStateViewPairs(results) {
157
157
  }
158
158
  return kept;
159
159
  }
160
- function capStateViewPackets(ordered, limit) {
161
- const safeLimit = typeof limit === "number" && Number.isFinite(limit) ? Math.max(0, Math.floor(limit)) : 0;
162
- if (safeLimit === 0) return [];
163
- if (ordered.length === 0) return [];
160
+ function stateViewPacketKeys(ordered) {
164
161
  const byPred = buildSuccessorMap(ordered, []);
165
162
  const parent = /* @__PURE__ */ new Map();
166
163
  const root = (key) => {
@@ -194,13 +191,20 @@ function capStateViewPackets(ordered, limit) {
194
191
  const succIdx = keyToIndex.get(succKey);
195
192
  if (predIdx !== void 0 && succIdx !== void 0) union(keys[predIdx], keys[succIdx]);
196
193
  }
194
+ return keys.map((key) => root(key));
195
+ }
196
+ function capStateViewPackets(ordered, limit) {
197
+ const safeLimit = typeof limit === "number" && Number.isFinite(limit) ? Math.max(0, Math.floor(limit)) : 0;
198
+ if (safeLimit === 0) return [];
199
+ if (ordered.length === 0) return [];
200
+ const keys = stateViewPacketKeys(ordered);
197
201
  const selectedRoots = /* @__PURE__ */ new Set();
198
202
  for (let i = 0; i < ordered.length && selectedRoots.size < safeLimit; i += 1) {
199
- selectedRoots.add(root(keys[i]));
203
+ selectedRoots.add(keys[i]);
200
204
  }
201
205
  const selected = [];
202
206
  for (let i = 0; i < ordered.length; i += 1) {
203
- if (selectedRoots.has(root(keys[i]))) selected.push(ordered[i]);
207
+ if (selectedRoots.has(keys[i])) selected.push(ordered[i]);
204
208
  }
205
209
  return selected;
206
210
  }
@@ -216,6 +220,7 @@ export {
216
220
  resultStateViewKey,
217
221
  annotateStateView,
218
222
  reconcileStateViewPairs,
223
+ stateViewPacketKeys,
219
224
  capStateViewPackets
220
225
  };
221
- //# sourceMappingURL=chunk-NETQXOPY.js.map
226
+ //# sourceMappingURL=chunk-EH3HNCAM.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/recall-state-view.ts"],"sourcesContent":["/**\n * Recall state views (issue #1952).\n *\n * Config key: `recallStateViews` (default false). When false, annotateStateView\n * is identity: same array reference, no `stateLabel`. config.ts is at its\n * fileSizeGrandfather ceiling, so parseConfig wiring waits for a later PR.\n * Call `parseRecallStateViews` at the recall seam when that lands.\n *\n * Change-intent morphology lives here (do not grow intent.ts). A superseded\n * memory is admitted only when its successor is also in the candidate set.\n *\n * #2859 — chain identities are namespace-qualified (`namespace\\0id`): the\n * same id in two namespaces never cross-anchors. The reverse chain derives\n * from the successor's `supersedes` back-pointer when a predecessor lacks\n * `supersededBy`, and asOf snapshot labels use the temporal validity\n * boundary (predecessor `invalidAt` / successor `validAt`), not the\n * `supersededAt` write time.\n */\nimport { coerceBooleanLike } from \"./connectors/coerce.js\";\n\nexport type StateLabel = \"current\" | \"historical\" | \"transition\";\n\nexport interface StateViewChain {\n predecessorId: string;\n successorId: string;\n supersededAt?: string;\n /** #2859 — namespace scope; a chain link never crosses namespaces. */\n namespace?: string;\n}\n\nexport interface StateViewResult {\n id?: string;\n docid?: string;\n status?: string;\n /** #2859 — namespace that owns this row; qualifies every chain identity. */\n namespace?: string;\n /** #2859 — back-pointer: id of the row this one replaced. */\n supersedes?: string;\n supersededBy?: string;\n supersededAt?: string;\n /** #2859 — fact validity start (frontmatter `valid_at`). */\n validAt?: string;\n /** #2859 — fact validity end (frontmatter `invalid_at`). */\n invalidAt?: string;\n stateLabel?: StateLabel;\n}\n\nexport const DEFAULT_RECALL_STATE_VIEWS = false;\n\nconst CHANGE_WORDS = [\"switch\", \"switches\", \"switched\", \"switching\", \"change\", \"changes\", \"changed\", \"changing\"];\n\n// Phrase matches are token-bounded: \"when Didi\" must not fire the\n// \"when did\" phrase, and \"confused to\" must not fire \"used to\".\nconst CHANGE_PHRASE_RE = /\\bwhen\\s+did\\b|\\bused\\s+to\\b/;\nconst CHANGE_WORD_RE = new RegExp(`\\\\b(?:${CHANGE_WORDS.join(\"|\")})\\\\b`);\n// Bare \"before\"/\"after\" are ordinary sequencing (\"before lunch\",\n// \"after install\"). They carry change intent only when they point at a\n// specific event through a determiner (\"before the move\", \"after the\n// cutover\").\nconst EVENT_POINTER_RE = /\\b(?:before|after)\\s+(?:the|a|an|this|that|these|those)\\b/;\n\nexport function parseRecallStateViews(raw: unknown): boolean {\n return coerceBooleanLike(raw, \"recallStateViews\") === true;\n}\n\nexport function isChangeOrientedQuery(query: string): boolean {\n const lower = query.toLowerCase();\n return CHANGE_PHRASE_RE.test(lower) || CHANGE_WORD_RE.test(lower) || EVENT_POINTER_RE.test(lower);\n}\n\nexport function shouldWidenSuperseded(\n successorId: string | undefined,\n candidateIds: ReadonlySet<string>,\n): boolean {\n return typeof successorId === \"string\" && successorId.length > 0 && candidateIds.has(successorId);\n}\n\nexport function formatSupersededPrefix(date: string, successorId: string): string {\n return `[superseded ${date} by ${successorId}]`;\n}\n\nexport function resultStateViewId(result: StateViewResult): string {\n return result.id ?? result.docid ?? \"\";\n}\n\n/**\n * #2859 — namespace-qualified chain identity. Namespace fanout can surface\n * the same id from two namespaces; every successor/admission match runs on\n * `namespace\\0id` keys so a row in one namespace can never anchor (or be\n * anchored by) an identically-named row in another.\n */\nexport function stateViewKey(namespace: string | undefined, id: string): string {\n return `${typeof namespace === \"string\" ? namespace : \"\"}\\u0000${id}`;\n}\n\nexport function resultStateViewKey(result: StateViewResult): string {\n const id = resultStateViewId(result);\n return id ? stateViewKey(result.namespace, id) : \"\";\n}\n\n/** Inverse of {@link stateViewKey}: the id after the namespace separator. */\nfunction stateViewIdFromKey(key: string): string {\n const sep = key.indexOf(\"\\u0000\");\n return sep === -1 ? key : key.slice(sep + 1);\n}\n\n/**\n * predecessorKey → successorKey, namespace-qualified. Precedence: explicit\n * chains, then successor rows' `supersedes` back-pointers (#2859 — derives\n * the reverse chain when the predecessor lacks `supersededBy`), then the\n * predecessor's own `supersededBy` (authoritative when present).\n */\nfunction buildSuccessorMap(\n results: readonly StateViewResult[],\n chains: readonly StateViewChain[],\n): Map<string, string> {\n const byPred = new Map<string, string>();\n const link = (predKey: string, succKey: string, overwrite: boolean): void => {\n if (!predKey || !succKey) return;\n if (overwrite || !byPred.has(predKey)) byPred.set(predKey, succKey);\n };\n for (const chain of chains) {\n if (chain.predecessorId && chain.successorId) {\n link(\n stateViewKey(chain.namespace, chain.predecessorId),\n stateViewKey(chain.namespace, chain.successorId),\n false,\n );\n }\n }\n for (const result of results) {\n const key = resultStateViewKey(result);\n if (key && result.supersedes) {\n link(stateViewKey(result.namespace, result.supersedes), key, false);\n }\n }\n for (const result of results) {\n const key = resultStateViewKey(result);\n if (key && result.supersededBy) {\n link(key, stateViewKey(result.namespace, result.supersededBy), true);\n }\n }\n return byPred;\n}\n\nfunction successorLinkOf(\n result: StateViewResult,\n byPred: ReadonlyMap<string, string>,\n): { superseded: boolean; successorKey: string | undefined } {\n const key = resultStateViewKey(result);\n return {\n superseded:\n result.status === \"superseded\" ||\n Boolean(result.supersededBy) ||\n byPred.has(key),\n successorKey: result.supersededBy\n ? stateViewKey(result.namespace, result.supersededBy)\n : byPred.get(key),\n };\n}\n\nfunction labelFor(\n key: string,\n result: StateViewResult,\n byPred: Map<string, string>,\n admittedIds: ReadonlySet<string>,\n asOfMs: number | null,\n): StateLabel {\n const { successorKey } = successorLinkOf(result, byPred);\n const isPred = shouldWidenSuperseded(successorKey, admittedIds);\n let isSucc = false;\n for (const [predId, succId] of byPred) {\n if (succId === key && admittedIds.has(predId)) {\n isSucc = true;\n break;\n }\n }\n if (isPred && isSucc) return \"transition\";\n if (isPred) return \"historical\";\n if (isSucc) return \"current\";\n if (result.status === \"superseded\") {\n // #1952 asOf mode: the successor is legitimately absent under the\n // historical pin (a linked successor takes the pair branches above).\n // The row was the live fact at the snapshot when the temporal\n // validity boundary postdates the pin (\"current\" relative to the\n // snapshot); already replaced at the pin is \"historical\". #2859: the\n // boundary is the fact's validity flip — `invalidAt` (the supersession\n // pipeline sets it to the successor's valid_at) — not the\n // `supersededAt` write time; legacy rows without a window fall back\n // to supersededAt.\n return asOfMs === null ? \"historical\" : snapshotStateLabel(result, asOfMs);\n }\n return \"current\";\n}\n\nfunction snapshotStateLabel(result: StateViewResult, asOfMs: number): StateLabel {\n const invalidAtMs = Date.parse(result.invalidAt ?? \"\");\n const boundaryMs = Number.isFinite(invalidAtMs)\n ? invalidAtMs\n : Date.parse(result.supersededAt ?? \"\");\n return Number.isFinite(boundaryMs) && boundaryMs <= asOfMs ? \"historical\" : \"current\";\n}\n\nexport function annotateStateView<T extends StateViewResult>(\n results: T[],\n query: string,\n chains: readonly StateViewChain[],\n options: { enabled?: boolean; asOfMs?: number; changeIntent?: boolean } = {},\n): T[] {\n const enabled = options.enabled === true;\n // #2893 — changeIntent:true marks intent as already classified from the\n // ORIGINAL prompt; `query` may be cron-normalized (intent signal\n // truncated or stop-worded away) and must not be re-checked then.\n if (!enabled || (options.changeIntent !== true && !isChangeOrientedQuery(query))) return results;\n // #1952 asOf mode: under a historical pin the pipeline's isValidAsOf\n // gate already decided validity at the pinned instant, so a predecessor\n // must not be discarded merely because its successor is absent under\n // the same filter. A valid asOf result is never emptied here.\n const asOfMs =\n typeof options.asOfMs === \"number\" && Number.isFinite(options.asOfMs)\n ? options.asOfMs\n : null;\n\n const byPred = buildSuccessorMap(results, chains);\n const candidateIds = new Set<string>();\n for (const result of results) {\n const key = resultStateViewKey(result);\n if (key) candidateIds.add(key);\n }\n let admitted: T[];\n if (asOfMs !== null) {\n admitted = results.slice();\n } else {\n admitted = [];\n for (const result of results) {\n const { superseded, successorKey } = successorLinkOf(result, byPred);\n if (!superseded || shouldWidenSuperseded(successorKey, candidateIds)) {\n admitted.push(result);\n }\n }\n\n // #1952 contract: superseded never appears without its successor. A\n // successor can itself be dropped (filtered elsewhere, or transitively\n // orphaned), so reconcile to a fixpoint instead of trusting the first pass.\n let admittedIds = new Set(admitted.map(resultStateViewKey).filter(Boolean));\n for (let changed = true; changed; ) {\n changed = false;\n for (let i = admitted.length - 1; i >= 0; i -= 1) {\n const row = admitted[i]!;\n const { superseded, successorKey } = successorLinkOf(row, byPred);\n if (superseded && !shouldWidenSuperseded(successorKey, admittedIds)) {\n admitted.splice(i, 1);\n changed = true;\n }\n }\n if (changed) admittedIds = new Set(admitted.map(resultStateViewKey).filter(Boolean));\n }\n }\n\n const admittedIds = new Set(admitted.map(resultStateViewKey).filter(Boolean));\n return admitted.map((result) => {\n const key = resultStateViewKey(result);\n const { successorKey } = successorLinkOf(result, byPred);\n const stateLabel = labelFor(key, result, byPred, admittedIds, asOfMs);\n if (result.supersededBy || !successorKey) return { ...result, stateLabel };\n return { ...result, stateLabel, supersededBy: stateViewIdFromKey(successorKey) };\n });\n}\n\n/**\n * #2859 — drop superseded rows whose successor is not in the pool BEFORE\n * the user cap/MMR runs, so post-cap orphan removal can never underfill\n * the result set. Reconciles to a fixpoint (a dropped successor orphans\n * its own predecessors). Rows with no successor links pass through in\n * order. ponytail: repeated full-pool passes are O(n²) on one long chain;\n * recall pools stay small, memoize per-key if pools ever grow.\n */\nexport function reconcileStateViewPairs<T extends StateViewResult>(results: readonly T[]): T[] {\n const byPred = buildSuccessorMap(results, []);\n let kept = results.slice();\n for (let changed = true; changed; ) {\n changed = false;\n const keptKeys = new Set(kept.map(resultStateViewKey).filter(Boolean));\n const next: T[] = [];\n for (const row of kept) {\n const { superseded, successorKey } = successorLinkOf(row, byPred);\n if (superseded && !shouldWidenSuperseded(successorKey, keptKeys)) {\n changed = true;\n continue;\n }\n next.push(row);\n }\n if (changed) kept = next;\n }\n return kept;\n}\n\n/**\n * #2859 — packet-counting cap. A predecessor/successor chain admitted\n * together is ONE complete evidence packet: it consumes a single slot of\n * the user cap, and the slice never splits a packet at the boundary (no\n * underfill from post-cap orphan removal). Rows keep their incoming\n * (MMR) order; packets are ordered by first appearance. Call\n * reconcileStateViewPairs first so orphans never consume a slot.\n */\nexport function capStateViewPackets<T extends StateViewResult>(\n ordered: readonly T[],\n limit: number,\n): T[] {\n const safeLimit =\n typeof limit === \"number\" && Number.isFinite(limit) ? Math.max(0, Math.floor(limit)) : 0;\n if (safeLimit === 0) return [];\n if (ordered.length === 0) return [];\n\n const byPred = buildSuccessorMap(ordered, []);\n // Union-find over row keys; blank-key rows become per-index singletons.\n const parent = new Map<string, string>();\n const root = (key: string): string => {\n let current = key;\n for (;;) {\n const up = parent.get(current);\n if (up === undefined || up === current) {\n parent.set(current, current);\n return current;\n }\n current = up;\n }\n };\n const union = (a: string, b: string): void => {\n const ra = root(a);\n const rb = root(b);\n if (ra !== rb) parent.set(ra, rb);\n };\n const keys: string[] = [];\n const keyToIndex = new Map<string, number>();\n for (let i = 0; i < ordered.length; i += 1) {\n // ponytail: blank-key rows must stay distinct singletons; index-keyed.\n const key = resultStateViewKey(ordered[i]!) || `#idx${i}`;\n keys.push(key);\n if (!parent.has(key)) parent.set(key, key);\n const first = keyToIndex.get(key);\n if (first !== undefined) union(keys[first]!, key);\n else keyToIndex.set(key, i);\n }\n for (const [predKey, succKey] of byPred) {\n const predIdx = keyToIndex.get(predKey);\n const succIdx = keyToIndex.get(succKey);\n if (predIdx !== undefined && succIdx !== undefined) union(keys[predIdx]!, keys[succIdx]!);\n }\n // Packets ordered by first appearance; admit whole packets until the cap.\n const selectedRoots = new Set<string>();\n for (let i = 0; i < ordered.length && selectedRoots.size < safeLimit; i += 1) {\n selectedRoots.add(root(keys[i]!));\n }\n const selected: T[] = [];\n for (let i = 0; i < ordered.length; i += 1) {\n if (selectedRoots.has(root(keys[i]!))) selected.push(ordered[i]!);\n }\n return selected;\n}\n"],"mappings":"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","names":["admittedIds"]}
1
+ {"version":3,"sources":["../src/recall-state-view.ts"],"sourcesContent":["/**\n * Recall state views (issue #1952).\n *\n * Config key: `recallStateViews` (default false). When false, annotateStateView\n * is identity: same array reference, no `stateLabel`. config.ts is at its\n * fileSizeGrandfather ceiling, so parseConfig wiring waits for a later PR.\n * Call `parseRecallStateViews` at the recall seam when that lands.\n *\n * Change-intent morphology lives here (do not grow intent.ts). A superseded\n * memory is admitted only when its successor is also in the candidate set.\n *\n * #2859 — chain identities are namespace-qualified (`namespace\\0id`): the\n * same id in two namespaces never cross-anchors. The reverse chain derives\n * from the successor's `supersedes` back-pointer when a predecessor lacks\n * `supersededBy`, and asOf snapshot labels use the temporal validity\n * boundary (predecessor `invalidAt` / successor `validAt`), not the\n * `supersededAt` write time.\n */\nimport { coerceBooleanLike } from \"./connectors/coerce.js\";\n\nexport type StateLabel = \"current\" | \"historical\" | \"transition\";\n\nexport interface StateViewChain {\n predecessorId: string;\n successorId: string;\n supersededAt?: string;\n /** #2859 — namespace scope; a chain link never crosses namespaces. */\n namespace?: string;\n}\n\nexport interface StateViewResult {\n id?: string;\n docid?: string;\n status?: string;\n /** #2859 — namespace that owns this row; qualifies every chain identity. */\n namespace?: string;\n /** #2859 — back-pointer: id of the row this one replaced. */\n supersedes?: string;\n supersededBy?: string;\n supersededAt?: string;\n /** #2859 — fact validity start (frontmatter `valid_at`). */\n validAt?: string;\n /** #2859 — fact validity end (frontmatter `invalid_at`). */\n invalidAt?: string;\n stateLabel?: StateLabel;\n}\n\nexport const DEFAULT_RECALL_STATE_VIEWS = false;\n\nconst CHANGE_WORDS = [\"switch\", \"switches\", \"switched\", \"switching\", \"change\", \"changes\", \"changed\", \"changing\"];\n\n// Phrase matches are token-bounded: \"when Didi\" must not fire the\n// \"when did\" phrase, and \"confused to\" must not fire \"used to\".\nconst CHANGE_PHRASE_RE = /\\bwhen\\s+did\\b|\\bused\\s+to\\b/;\nconst CHANGE_WORD_RE = new RegExp(`\\\\b(?:${CHANGE_WORDS.join(\"|\")})\\\\b`);\n// Bare \"before\"/\"after\" are ordinary sequencing (\"before lunch\",\n// \"after install\"). They carry change intent only when they point at a\n// specific event through a determiner (\"before the move\", \"after the\n// cutover\").\nconst EVENT_POINTER_RE = /\\b(?:before|after)\\s+(?:the|a|an|this|that|these|those)\\b/;\n\nexport function parseRecallStateViews(raw: unknown): boolean {\n return coerceBooleanLike(raw, \"recallStateViews\") === true;\n}\n\nexport function isChangeOrientedQuery(query: string): boolean {\n const lower = query.toLowerCase();\n return CHANGE_PHRASE_RE.test(lower) || CHANGE_WORD_RE.test(lower) || EVENT_POINTER_RE.test(lower);\n}\n\nexport function shouldWidenSuperseded(\n successorId: string | undefined,\n candidateIds: ReadonlySet<string>,\n): boolean {\n return typeof successorId === \"string\" && successorId.length > 0 && candidateIds.has(successorId);\n}\n\nexport function formatSupersededPrefix(date: string, successorId: string): string {\n return `[superseded ${date} by ${successorId}]`;\n}\n\nexport function resultStateViewId(result: StateViewResult): string {\n return result.id ?? result.docid ?? \"\";\n}\n\n/**\n * #2859 — namespace-qualified chain identity. Namespace fanout can surface\n * the same id from two namespaces; every successor/admission match runs on\n * `namespace\\0id` keys so a row in one namespace can never anchor (or be\n * anchored by) an identically-named row in another.\n */\nexport function stateViewKey(namespace: string | undefined, id: string): string {\n return `${typeof namespace === \"string\" ? namespace : \"\"}\\u0000${id}`;\n}\n\nexport function resultStateViewKey(result: StateViewResult): string {\n const id = resultStateViewId(result);\n return id ? stateViewKey(result.namespace, id) : \"\";\n}\n\n/** Inverse of {@link stateViewKey}: the id after the namespace separator. */\nfunction stateViewIdFromKey(key: string): string {\n const sep = key.indexOf(\"\\u0000\");\n return sep === -1 ? key : key.slice(sep + 1);\n}\n\n/**\n * predecessorKey → successorKey, namespace-qualified. Precedence: explicit\n * chains, then successor rows' `supersedes` back-pointers (#2859 — derives\n * the reverse chain when the predecessor lacks `supersededBy`), then the\n * predecessor's own `supersededBy` (authoritative when present).\n */\nfunction buildSuccessorMap(\n results: readonly StateViewResult[],\n chains: readonly StateViewChain[],\n): Map<string, string> {\n const byPred = new Map<string, string>();\n const link = (predKey: string, succKey: string, overwrite: boolean): void => {\n if (!predKey || !succKey) return;\n if (overwrite || !byPred.has(predKey)) byPred.set(predKey, succKey);\n };\n for (const chain of chains) {\n if (chain.predecessorId && chain.successorId) {\n link(\n stateViewKey(chain.namespace, chain.predecessorId),\n stateViewKey(chain.namespace, chain.successorId),\n false,\n );\n }\n }\n for (const result of results) {\n const key = resultStateViewKey(result);\n if (key && result.supersedes) {\n link(stateViewKey(result.namespace, result.supersedes), key, false);\n }\n }\n for (const result of results) {\n const key = resultStateViewKey(result);\n if (key && result.supersededBy) {\n link(key, stateViewKey(result.namespace, result.supersededBy), true);\n }\n }\n return byPred;\n}\n\nfunction successorLinkOf(\n result: StateViewResult,\n byPred: ReadonlyMap<string, string>,\n): { superseded: boolean; successorKey: string | undefined } {\n const key = resultStateViewKey(result);\n return {\n superseded:\n result.status === \"superseded\" ||\n Boolean(result.supersededBy) ||\n byPred.has(key),\n successorKey: result.supersededBy\n ? stateViewKey(result.namespace, result.supersededBy)\n : byPred.get(key),\n };\n}\n\nfunction labelFor(\n key: string,\n result: StateViewResult,\n byPred: Map<string, string>,\n admittedIds: ReadonlySet<string>,\n asOfMs: number | null,\n): StateLabel {\n const { successorKey } = successorLinkOf(result, byPred);\n const isPred = shouldWidenSuperseded(successorKey, admittedIds);\n let isSucc = false;\n for (const [predId, succId] of byPred) {\n if (succId === key && admittedIds.has(predId)) {\n isSucc = true;\n break;\n }\n }\n if (isPred && isSucc) return \"transition\";\n if (isPred) return \"historical\";\n if (isSucc) return \"current\";\n if (result.status === \"superseded\") {\n // #1952 asOf mode: the successor is legitimately absent under the\n // historical pin (a linked successor takes the pair branches above).\n // The row was the live fact at the snapshot when the temporal\n // validity boundary postdates the pin (\"current\" relative to the\n // snapshot); already replaced at the pin is \"historical\". #2859: the\n // boundary is the fact's validity flip — `invalidAt` (the supersession\n // pipeline sets it to the successor's valid_at) — not the\n // `supersededAt` write time; legacy rows without a window fall back\n // to supersededAt.\n return asOfMs === null ? \"historical\" : snapshotStateLabel(result, asOfMs);\n }\n return \"current\";\n}\n\nfunction snapshotStateLabel(result: StateViewResult, asOfMs: number): StateLabel {\n const invalidAtMs = Date.parse(result.invalidAt ?? \"\");\n const boundaryMs = Number.isFinite(invalidAtMs)\n ? invalidAtMs\n : Date.parse(result.supersededAt ?? \"\");\n return Number.isFinite(boundaryMs) && boundaryMs <= asOfMs ? \"historical\" : \"current\";\n}\n\nexport function annotateStateView<T extends StateViewResult>(\n results: T[],\n query: string,\n chains: readonly StateViewChain[],\n options: { enabled?: boolean; asOfMs?: number; changeIntent?: boolean } = {},\n): T[] {\n const enabled = options.enabled === true;\n // #2893 — changeIntent:true marks intent as already classified from the\n // ORIGINAL prompt; `query` may be cron-normalized (intent signal\n // truncated or stop-worded away) and must not be re-checked then.\n if (!enabled || (options.changeIntent !== true && !isChangeOrientedQuery(query))) return results;\n // #1952 asOf mode: under a historical pin the pipeline's isValidAsOf\n // gate already decided validity at the pinned instant, so a predecessor\n // must not be discarded merely because its successor is absent under\n // the same filter. A valid asOf result is never emptied here.\n const asOfMs =\n typeof options.asOfMs === \"number\" && Number.isFinite(options.asOfMs)\n ? options.asOfMs\n : null;\n\n const byPred = buildSuccessorMap(results, chains);\n const candidateIds = new Set<string>();\n for (const result of results) {\n const key = resultStateViewKey(result);\n if (key) candidateIds.add(key);\n }\n let admitted: T[];\n if (asOfMs !== null) {\n admitted = results.slice();\n } else {\n admitted = [];\n for (const result of results) {\n const { superseded, successorKey } = successorLinkOf(result, byPred);\n if (!superseded || shouldWidenSuperseded(successorKey, candidateIds)) {\n admitted.push(result);\n }\n }\n\n // #1952 contract: superseded never appears without its successor. A\n // successor can itself be dropped (filtered elsewhere, or transitively\n // orphaned), so reconcile to a fixpoint instead of trusting the first pass.\n let admittedIds = new Set(admitted.map(resultStateViewKey).filter(Boolean));\n for (let changed = true; changed; ) {\n changed = false;\n for (let i = admitted.length - 1; i >= 0; i -= 1) {\n const row = admitted[i]!;\n const { superseded, successorKey } = successorLinkOf(row, byPred);\n if (superseded && !shouldWidenSuperseded(successorKey, admittedIds)) {\n admitted.splice(i, 1);\n changed = true;\n }\n }\n if (changed) admittedIds = new Set(admitted.map(resultStateViewKey).filter(Boolean));\n }\n }\n\n const admittedIds = new Set(admitted.map(resultStateViewKey).filter(Boolean));\n return admitted.map((result) => {\n const key = resultStateViewKey(result);\n const { successorKey } = successorLinkOf(result, byPred);\n const stateLabel = labelFor(key, result, byPred, admittedIds, asOfMs);\n if (result.supersededBy || !successorKey) return { ...result, stateLabel };\n return { ...result, stateLabel, supersededBy: stateViewIdFromKey(successorKey) };\n });\n}\n\n/**\n * #2859 — drop superseded rows whose successor is not in the pool BEFORE\n * the user cap/MMR runs, so post-cap orphan removal can never underfill\n * the result set. Reconciles to a fixpoint (a dropped successor orphans\n * its own predecessors). Rows with no successor links pass through in\n * order. ponytail: repeated full-pool passes are O(n²) on one long chain;\n * recall pools stay small, memoize per-key if pools ever grow.\n */\nexport function reconcileStateViewPairs<T extends StateViewResult>(results: readonly T[]): T[] {\n const byPred = buildSuccessorMap(results, []);\n let kept = results.slice();\n for (let changed = true; changed; ) {\n changed = false;\n const keptKeys = new Set(kept.map(resultStateViewKey).filter(Boolean));\n const next: T[] = [];\n for (const row of kept) {\n const { superseded, successorKey } = successorLinkOf(row, byPred);\n if (superseded && !shouldWidenSuperseded(successorKey, keptKeys)) {\n changed = true;\n continue;\n }\n next.push(row);\n }\n if (changed) kept = next;\n }\n return kept;\n}\n\n/**\n * #2928 — per-row packet root keys for the final output budget. Runs the\n * same namespace-qualified union-find as {@link capStateViewPackets}:\n * every row of one evidence packet shares the root key, so a downstream\n * budget that admits one row of the packet can admit them all or none.\n * Blank-key rows get unique per-index roots (distinct singletons).\n */\nexport function stateViewPacketKeys<T extends StateViewResult>(\n ordered: readonly T[],\n): string[] {\n const byPred = buildSuccessorMap(ordered, []);\n // Union-find over row keys; blank-key rows become per-index singletons.\n const parent = new Map<string, string>();\n const root = (key: string): string => {\n let current = key;\n for (;;) {\n const up = parent.get(current);\n if (up === undefined || up === current) {\n parent.set(current, current);\n return current;\n }\n current = up;\n }\n };\n const union = (a: string, b: string): void => {\n const ra = root(a);\n const rb = root(b);\n if (ra !== rb) parent.set(ra, rb);\n };\n const keys: string[] = [];\n const keyToIndex = new Map<string, number>();\n for (let i = 0; i < ordered.length; i += 1) {\n // ponytail: blank-key rows must stay distinct singletons; index-keyed.\n const key = resultStateViewKey(ordered[i]!) || `#idx${i}`;\n keys.push(key);\n if (!parent.has(key)) parent.set(key, key);\n const first = keyToIndex.get(key);\n if (first !== undefined) union(keys[first]!, key);\n else keyToIndex.set(key, i);\n }\n for (const [predKey, succKey] of byPred) {\n const predIdx = keyToIndex.get(predKey);\n const succIdx = keyToIndex.get(succKey);\n if (predIdx !== undefined && succIdx !== undefined) union(keys[predIdx]!, keys[succIdx]!);\n }\n return keys.map((key) => root(key));\n}\n\n/**\n * #2859 — packet-counting cap. A predecessor/successor chain admitted\n * together is ONE complete evidence packet: it consumes a single slot of\n * the user cap, and the slice never splits a packet at the boundary (no\n * underfill from post-cap orphan removal). Rows keep their incoming\n * (MMR) order; packets are ordered by first appearance. Call\n * reconcileStateViewPairs first so orphans never consume a slot.\n */\nexport function capStateViewPackets<T extends StateViewResult>(\n ordered: readonly T[],\n limit: number,\n): T[] {\n const safeLimit =\n typeof limit === \"number\" && Number.isFinite(limit) ? Math.max(0, Math.floor(limit)) : 0;\n if (safeLimit === 0) return [];\n if (ordered.length === 0) return [];\n\n const keys = stateViewPacketKeys(ordered);\n // Packets ordered by first appearance; admit whole packets until the cap.\n const selectedRoots = new Set<string>();\n for (let i = 0; i < ordered.length && selectedRoots.size < safeLimit; i += 1) {\n selectedRoots.add(keys[i]!);\n }\n const selected: T[] = [];\n for (let i = 0; i < ordered.length; i += 1) {\n if (selectedRoots.has(keys[i]!)) selected.push(ordered[i]!);\n }\n return selected;\n}\n"],"mappings":"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","names":["admittedIds"]}
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-7T4TOGMS.js";
4
4
  import {
5
5
  defineOperation
6
- } from "./chunk-SFHLQPBF.js";
6
+ } from "./chunk-IUTYNDFS.js";
7
7
 
8
8
  // src/external-wiki-access.ts
9
9
  import { z } from "zod";
@@ -26,4 +26,4 @@ var externalWikiSearchOperation = defineOperation({
26
26
  export {
27
27
  externalWikiSearchOperation
28
28
  };
29
- //# sourceMappingURL=chunk-RJQAP333.js.map
29
+ //# sourceMappingURL=chunk-ETE3SGAH.js.map
@@ -1,9 +1,9 @@
1
- import {
2
- diffGraphSnapshots
3
- } from "./chunk-AUDJPF4N.js";
4
1
  import {
5
2
  graphSnapshotFromMemoryDir
6
3
  } from "./chunk-44442YCH.js";
4
+ import {
5
+ diffGraphSnapshots
6
+ } from "./chunk-AUDJPF4N.js";
7
7
 
8
8
  // src/dashboard-runtime.ts
9
9
  import { createHash, timingSafeEqual } from "crypto";
@@ -370,4 +370,4 @@ var GraphDashboardServer = class {
370
370
  export {
371
371
  GraphDashboardServer
372
372
  };
373
- //# sourceMappingURL=chunk-YNDLCWXS.js.map
373
+ //# sourceMappingURL=chunk-EZ25VE3G.js.map
@@ -1,15 +1,15 @@
1
1
  import {
2
2
  applyRecallStateViews
3
- } from "./chunk-DFVSJFHK.js";
3
+ } from "./chunk-DBB5JPSL.js";
4
4
  import {
5
5
  isGenericRecallExcludedPath
6
- } from "./chunk-NVVZPBKI.js";
6
+ } from "./chunk-46FVFU7S.js";
7
7
  import {
8
8
  shouldFilterSupersededFromRecall
9
9
  } from "./chunk-5WITETWU.js";
10
10
  import {
11
11
  isChangeOrientedQuery
12
- } from "./chunk-NETQXOPY.js";
12
+ } from "./chunk-EH3HNCAM.js";
13
13
 
14
14
  // src/recall-state-view-admission.ts
15
15
  function resolveRecallStateViewActive(options, config, query) {
@@ -69,4 +69,4 @@ export {
69
69
  filterRecentScanMemoriesForStateView,
70
70
  indexStateViewAnnotatedResults
71
71
  };
72
- //# sourceMappingURL=chunk-RLU2Y5GV.js.map
72
+ //# sourceMappingURL=chunk-F2FJTOV6.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  formatSupersededPrefix
3
- } from "./chunk-NETQXOPY.js";
3
+ } from "./chunk-EH3HNCAM.js";
4
4
 
5
5
  // src/recall-state-view-render.ts
6
6
  function renderStateViewLine(result, options = {}) {
@@ -17,4 +17,4 @@ function renderStateViewLine(result, options = {}) {
17
17
  export {
18
18
  renderStateViewLine
19
19
  };
20
- //# sourceMappingURL=chunk-V2ZA4YWE.js.map
20
+ //# sourceMappingURL=chunk-F5H6YG5P.js.map
@@ -5,12 +5,12 @@ import {
5
5
  import {
6
6
  buildCompressionGuidelinesMarkdown
7
7
  } from "./chunk-OD4FM2U7.js";
8
- import {
9
- parseQmdExplain
10
- } from "./chunk-KG2OOAFF.js";
11
8
  import {
12
9
  resolveLifecycleState
13
10
  } from "./chunk-TBBDFYXW.js";
11
+ import {
12
+ parseQmdExplain
13
+ } from "./chunk-KG2OOAFF.js";
14
14
  import {
15
15
  parseFlexibleIsoTimestamp
16
16
  } from "./chunk-P7FMDTKL.js";
@@ -645,4 +645,4 @@ export {
645
645
  appendMemoryToGraphContext,
646
646
  resolvePersistedMemoryRelativePath
647
647
  };
648
- //# sourceMappingURL=chunk-K75A5XWU.js.map
648
+ //# sourceMappingURL=chunk-F6PTJLEM.js.map