@remnic/core 9.69.32 → 9.69.34

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 (775) hide show
  1. package/dist/access-admin-ops-surface.d.ts +13 -11
  2. package/dist/access-admin-ops-surface.js +64 -59
  3. package/dist/access-authorization-probe.d.ts +13 -11
  4. package/dist/access-authorization-probe.js +65 -60
  5. package/dist/access-boundary.d.ts +13 -11
  6. package/dist/access-boundary.js +64 -59
  7. package/dist/access-cli.js +140 -136
  8. package/dist/access-cli.js.map +1 -1
  9. package/dist/access-coding-context-resolution.d.ts +2 -1
  10. package/dist/access-coding-context-resolution.js +3 -3
  11. package/dist/access-extraction-force-flush.d.ts +13 -11
  12. package/dist/access-extraction-force-flush.js +64 -59
  13. package/dist/access-health-types.d.ts +2 -1
  14. package/dist/access-http-briefing.d.ts +13 -11
  15. package/dist/access-http-briefing.js +65 -60
  16. package/dist/access-http-lcm-compaction.d.ts +13 -11
  17. package/dist/access-http-lifecycle-flush.d.ts +13 -11
  18. package/dist/access-http-offline-stream.d.ts +13 -11
  19. package/dist/access-http-query.d.ts +3 -2
  20. package/dist/access-http-query.js +66 -61
  21. package/dist/access-http.d.ts +14 -12
  22. package/dist/access-http.js +86 -82
  23. package/dist/access-identity-continuity-surface.d.ts +11 -9
  24. package/dist/access-identity-continuity-surface.js +64 -59
  25. package/dist/access-lcm-surface.d.ts +13 -11
  26. package/dist/access-lcm-surface.js +64 -59
  27. package/dist/access-mcp.d.ts +13 -11
  28. package/dist/access-mcp.js +73 -69
  29. package/dist/access-memory-search-fanout.d.ts +3 -2
  30. package/dist/{access-namespace-preflight-BsvmyENS.d.ts → access-namespace-preflight-kXG8MvYx.d.ts} +1 -1
  31. package/dist/access-namespace-preflight.d.ts +4 -3
  32. package/dist/access-namespace-preflight.js +64 -59
  33. package/dist/access-observe-transcript.d.ts +11 -9
  34. package/dist/access-observe-transcript.js +3 -3
  35. package/dist/access-observe-write-surface.d.ts +15 -13
  36. package/dist/access-observe-write-surface.js +64 -59
  37. package/dist/access-offline-manifest.d.ts +47 -11
  38. package/dist/access-offline-manifest.js +18 -16
  39. package/dist/access-operations-batch.js +67 -63
  40. package/dist/access-operations.d.ts +18 -16
  41. package/dist/access-operations.js +72 -68
  42. package/dist/access-recall-concurrency.d.ts +13 -11
  43. package/dist/access-recall-concurrency.js +64 -59
  44. package/dist/access-recall-response.d.ts +13 -11
  45. package/dist/access-recall-response.js +64 -59
  46. package/dist/access-recall-surface.d.ts +13 -11
  47. package/dist/access-recall-surface.js +64 -59
  48. package/dist/access-schema.d.ts +138 -96
  49. package/dist/access-schema.js +15 -1
  50. package/dist/{access-service-CCpOuS46.d.ts → access-service-WUm2LnXZ.d.ts} +110 -108
  51. package/dist/access-service-helpers.d.ts +13 -11
  52. package/dist/access-service.d.ts +13 -11
  53. package/dist/access-service.js +64 -59
  54. package/dist/access-surface-catalog.d.ts +13 -11
  55. package/dist/access-surface-catalog.js +66 -61
  56. package/dist/access-surface-catalog.js.map +1 -1
  57. package/dist/access-wearables-meetings-surface.d.ts +4 -3
  58. package/dist/action-confidence.d.ts +2 -1
  59. package/dist/active-memory-bridge.d.ts +2 -1
  60. package/dist/active-memory-bridge.js +2 -2
  61. package/dist/active-recall.d.ts +2 -1
  62. package/dist/active-recall.js +14 -12
  63. package/dist/active-recall.js.map +1 -1
  64. package/dist/activity/digest.d.ts +56 -0
  65. package/dist/activity/digest.js +32 -0
  66. package/dist/adapters/index.d.ts +46 -1
  67. package/dist/adapters/index.js +13 -9
  68. package/dist/adapters/registry.js +3 -3
  69. package/dist/ambient-provenance.d.ts +2 -1
  70. package/dist/artifact-search.d.ts +2 -1
  71. package/dist/{auto-sync-NSHLUAQI.js → auto-sync-4YFATLFQ.js} +10 -9
  72. package/dist/{auto-sync-NSHLUAQI.js.map → auto-sync-4YFATLFQ.js.map} +1 -1
  73. package/dist/behavior-learner.d.ts +2 -1
  74. package/dist/behavior-signals.d.ts +2 -1
  75. package/dist/bootstrap.d.ts +11 -9
  76. package/dist/briefing-window.d.ts +3 -2
  77. package/dist/briefing.d.ts +3 -2
  78. package/dist/briefing.js +28 -27
  79. package/dist/buffer-surprise-report.d.ts +2 -1
  80. package/dist/buffer-turn-helpers.d.ts +2 -1
  81. package/dist/buffer.d.ts +3 -2
  82. package/dist/buffer.js +12 -11
  83. package/dist/bulk-import/index.d.ts +4 -3
  84. package/dist/calibration.d.ts +2 -1
  85. package/dist/calibration.js +3 -2
  86. package/dist/calibration.js.map +1 -1
  87. package/dist/capabilities.d.ts +2 -1
  88. package/dist/{capsule-merge-IPG4IOFP.js → capsule-merge-ZCXUPLNJ.js} +2 -2
  89. package/dist/{catalog-CDZLyiXL.d.ts → catalog-BaCx29iv.d.ts} +1 -1
  90. package/dist/causal-behavior.d.ts +2 -1
  91. package/dist/causal-consolidation.d.ts +2 -1
  92. package/dist/causal-consolidation.js +29 -28
  93. package/dist/causal-consolidation.js.map +1 -1
  94. package/dist/causal-trajectory-graph.d.ts +2 -1
  95. package/dist/{chunk-CDKHKZL5.js → chunk-2524MOWK.js} +2 -2
  96. package/dist/{chunk-HVAEXYPL.js → chunk-255PC37A.js} +47 -25
  97. package/dist/chunk-255PC37A.js.map +1 -0
  98. package/dist/{chunk-IY2FVXM6.js → chunk-2AU4D4HQ.js} +3 -3
  99. package/dist/{chunk-QDY6KYTN.js → chunk-2JCA2PQT.js} +3 -3
  100. package/dist/{chunk-RSVEP77Y.js → chunk-2UZ5ZH6W.js} +3 -3
  101. package/dist/{chunk-XQ2Q43XD.js → chunk-326KUXIR.js} +15 -648
  102. package/dist/chunk-326KUXIR.js.map +1 -0
  103. package/dist/{chunk-NWWXSJX5.js → chunk-34QW2LK2.js} +2 -2
  104. package/dist/{chunk-S7DPKM5W.js → chunk-353C5UNV.js} +1 -1
  105. package/dist/{chunk-GQOMZ3MK.js → chunk-36UBSLFN.js} +2 -2
  106. package/dist/{chunk-DBQWVT2H.js → chunk-3CBI2ZSA.js} +2 -2
  107. package/dist/{chunk-NZXEK3UF.js → chunk-3Q3N35W7.js} +2 -2
  108. package/dist/{chunk-YYGZJPOK.js → chunk-42DJ235G.js} +2 -2
  109. package/dist/{chunk-7VJXIDOC.js → chunk-4JVQRFZD.js} +9 -9
  110. package/dist/{chunk-22FVR2KE.js → chunk-4MIS4CQW.js} +6 -2
  111. package/dist/chunk-4MIS4CQW.js.map +1 -0
  112. package/dist/{chunk-WHBVXTUI.js → chunk-4PB2MBY6.js} +9 -9
  113. package/dist/{chunk-TEYN7ZYF.js → chunk-4WCNPQQ5.js} +4 -4
  114. package/dist/{chunk-Z4PCVRTN.js → chunk-5A7ZUOBA.js} +217 -396
  115. package/dist/chunk-5A7ZUOBA.js.map +1 -0
  116. package/dist/chunk-5HYUUFMQ.js +1280 -0
  117. package/dist/chunk-5HYUUFMQ.js.map +1 -0
  118. package/dist/{chunk-RBGREYVJ.js → chunk-5QBDLMGG.js} +2 -2
  119. package/dist/{chunk-RKBLRTNT.js → chunk-5SDSVX7N.js} +2 -2
  120. package/dist/{chunk-LPECRQO4.js → chunk-5THU7NFP.js} +3 -3
  121. package/dist/{chunk-N7RWREIQ.js → chunk-65RENJGB.js} +6 -1
  122. package/dist/chunk-65RENJGB.js.map +1 -0
  123. package/dist/{chunk-LWA7MDVO.js → chunk-6CCRSQWT.js} +2 -2
  124. package/dist/{chunk-TIT2C6WX.js → chunk-6XYC7NM4.js} +2 -2
  125. package/dist/{chunk-FHQSPTPZ.js → chunk-6YAIN5XJ.js} +2 -2
  126. package/dist/{chunk-PV36INNL.js → chunk-757NP436.js} +3 -3
  127. package/dist/{chunk-WJBZMNNS.js → chunk-7CAY3YKP.js} +742 -29
  128. package/dist/chunk-7CAY3YKP.js.map +1 -0
  129. package/dist/{chunk-6H5JYDOM.js → chunk-7J2CGXG3.js} +2 -2
  130. package/dist/{chunk-FBMYGNOC.js → chunk-A2YQL2FF.js} +6 -6
  131. package/dist/chunk-A5UQ52YQ.js +211 -0
  132. package/dist/chunk-A5UQ52YQ.js.map +1 -0
  133. package/dist/{chunk-X2NFFBTO.js → chunk-A7GQBJP5.js} +4 -4
  134. package/dist/{chunk-MPYD657E.js → chunk-A7WOWDZK.js} +2 -2
  135. package/dist/{chunk-C4OTC6WY.js → chunk-AIKTQVV3.js} +3 -3
  136. package/dist/{chunk-CGC5UQCF.js → chunk-AKE4GGQ3.js} +2 -2
  137. package/dist/{chunk-VP67GZ7T.js → chunk-APFKZVJS.js} +2 -2
  138. package/dist/{chunk-M75RYSHS.js → chunk-AQIRQUCP.js} +2 -2
  139. package/dist/{chunk-S7T2TY65.js → chunk-AXFR2NQ5.js} +3 -3
  140. package/dist/{chunk-PSPABFN2.js → chunk-BD7JTBYP.js} +4 -4
  141. package/dist/{chunk-FCSZ4K2X.js → chunk-BJJWRWER.js} +3 -3
  142. package/dist/{chunk-JT3EB7ZL.js → chunk-BNGHPYZU.js} +5 -5
  143. package/dist/chunk-BRZWWUCJ.js +13 -0
  144. package/dist/{chunk-FYDW33ZB.js.map → chunk-BRZWWUCJ.js.map} +1 -1
  145. package/dist/{chunk-MFJBANPX.js → chunk-C2BFTYD7.js} +2 -2
  146. package/dist/{chunk-3JVLGJCY.js → chunk-C6KRO3SU.js} +2 -2
  147. package/dist/{chunk-Q3O3VKRB.js → chunk-CRUFVJOX.js} +16 -15
  148. package/dist/chunk-CRUFVJOX.js.map +1 -0
  149. package/dist/{chunk-AOCP6JA7.js → chunk-D3IZCN5P.js} +4 -4
  150. package/dist/{chunk-ROKKIMON.js → chunk-EJIEQOPB.js} +5 -5
  151. package/dist/{chunk-ET356KSB.js → chunk-F4TWWUMP.js} +2 -2
  152. package/dist/{chunk-CLLPJ6QT.js → chunk-FQXJAC3T.js} +2 -2
  153. package/dist/{chunk-DD5JFCWM.js → chunk-GCBIXUPT.js} +2 -2
  154. package/dist/{chunk-ROGRI25A.js → chunk-I3H5LFOI.js} +2 -2
  155. package/dist/{chunk-S65WXHNK.js → chunk-IFFLUCCU.js} +2 -2
  156. package/dist/{chunk-MYMNC6O5.js → chunk-ISYZ5DUI.js} +64 -60
  157. package/dist/{chunk-MYMNC6O5.js.map → chunk-ISYZ5DUI.js.map} +1 -1
  158. package/dist/{chunk-D5LORF7A.js → chunk-JZDH2ZZK.js} +3 -3
  159. package/dist/{chunk-2GPE5UCR.js → chunk-K6IPSW5B.js} +2 -2
  160. package/dist/{chunk-HG6HXVHQ.js → chunk-KDJHLOZP.js} +10 -10
  161. package/dist/{chunk-I27RSQRR.js → chunk-KYGOQV37.js} +2 -2
  162. package/dist/{chunk-JEIXTYVG.js → chunk-L2QLDZJC.js} +46 -17
  163. package/dist/chunk-L2QLDZJC.js.map +1 -0
  164. package/dist/{chunk-A7XEPMQ6.js → chunk-LAVJC57X.js} +3 -3
  165. package/dist/chunk-LAVJC57X.js.map +1 -0
  166. package/dist/{chunk-VZWXFXLX.js → chunk-LMCD5W5B.js} +2 -2
  167. package/dist/{chunk-3QQTXYZ6.js → chunk-LSLCFCCQ.js} +2 -1
  168. package/dist/chunk-LSLCFCCQ.js.map +1 -0
  169. package/dist/{chunk-MKD3OMPS.js → chunk-M3MYMWXG.js} +2 -2
  170. package/dist/{chunk-DITMGZOL.js → chunk-MMG5K6XJ.js} +2 -2
  171. package/dist/{chunk-VGXM5B4H.js → chunk-MNIPH6LD.js} +2 -2
  172. package/dist/{chunk-CZYYJZB6.js → chunk-ND2O2PVN.js} +1014 -1318
  173. package/dist/chunk-ND2O2PVN.js.map +1 -0
  174. package/dist/chunk-NPNSKE76.js +220 -0
  175. package/dist/chunk-NPNSKE76.js.map +1 -0
  176. package/dist/{chunk-MKWKYHXJ.js → chunk-OB3XMWX5.js} +4 -4
  177. package/dist/{chunk-XU6OEECT.js → chunk-OQQXGYMX.js} +3 -3
  178. package/dist/{chunk-GTWHVXPA.js → chunk-OZUXKUPD.js} +6 -4
  179. package/dist/{chunk-GTWHVXPA.js.map → chunk-OZUXKUPD.js.map} +1 -1
  180. package/dist/chunk-PCEYGOSL.js +66 -0
  181. package/dist/chunk-PCEYGOSL.js.map +1 -0
  182. package/dist/{chunk-47DEYNMR.js → chunk-PEXW2JCK.js} +2 -2
  183. package/dist/{chunk-EEOUMG3J.js → chunk-PWPIERBM.js} +38 -6
  184. package/dist/chunk-PWPIERBM.js.map +1 -0
  185. package/dist/chunk-Q4AUIFUA.js +111 -0
  186. package/dist/chunk-Q4AUIFUA.js.map +1 -0
  187. package/dist/{chunk-SO7SV523.js → chunk-Q6LCCIZN.js} +1 -1
  188. package/dist/chunk-Q6LCCIZN.js.map +1 -0
  189. package/dist/{chunk-42SDNZCU.js → chunk-QF4J3KMV.js} +19 -19
  190. package/dist/{chunk-SB6PSOP7.js → chunk-QLJ6762U.js} +2 -2
  191. package/dist/{chunk-XOVKXJEP.js → chunk-R3TLVTWW.js} +3 -3
  192. package/dist/{chunk-PHNAB54Q.js → chunk-RQO3J4MR.js} +2 -2
  193. package/dist/{chunk-5N53UBH2.js → chunk-RR7G2X7C.js} +5 -5
  194. package/dist/{chunk-DCJ3YFIC.js → chunk-S2ULTQZR.js} +2 -2
  195. package/dist/{chunk-GY5WZBA6.js → chunk-S76KRJDG.js} +3 -3
  196. package/dist/{chunk-H272ZPQ3.js → chunk-SHEHQBCG.js} +124 -23
  197. package/dist/chunk-SHEHQBCG.js.map +1 -0
  198. package/dist/{chunk-EEC4PCG5.js → chunk-SZDLX763.js} +2 -2
  199. package/dist/{chunk-SQJ3SDIW.js → chunk-SZWEDG3H.js} +13 -7
  200. package/dist/chunk-SZWEDG3H.js.map +1 -0
  201. package/dist/{chunk-E2ZHGBAK.js → chunk-T2JSUEH6.js} +2 -2
  202. package/dist/{chunk-QMGXMJ2O.js → chunk-T2YFZ27G.js} +9 -9
  203. package/dist/{chunk-LEPOP46W.js → chunk-TFA6HPOA.js} +4 -4
  204. package/dist/{chunk-BA6WOZOT.js → chunk-TK4FHQRN.js} +4 -4
  205. package/dist/chunk-TLHNF6GA.js +647 -0
  206. package/dist/chunk-TLHNF6GA.js.map +1 -0
  207. package/dist/{chunk-ZNJSBIP4.js → chunk-TNSCIPBQ.js} +4 -4
  208. package/dist/{chunk-YUMDFDUA.js → chunk-TWYTGIBR.js} +4 -4
  209. package/dist/{chunk-FDLDOEO6.js → chunk-UBG4GAEP.js} +51 -6
  210. package/dist/chunk-UBG4GAEP.js.map +1 -0
  211. package/dist/{chunk-EZZV7OQL.js → chunk-UEZKN6VR.js} +2 -2
  212. package/dist/{chunk-HY55QQD7.js → chunk-UJX4I26O.js} +2 -2
  213. package/dist/{chunk-BLUYQFRH.js → chunk-VELCIWJZ.js} +15 -11
  214. package/dist/chunk-VELCIWJZ.js.map +1 -0
  215. package/dist/{chunk-CBCNKKZD.js → chunk-VIZR45AN.js} +2 -2
  216. package/dist/{chunk-ZG74PWRW.js → chunk-VZAKYDMJ.js} +2 -2
  217. package/dist/{chunk-ITPS5DDH.js → chunk-W5BLTZZJ.js} +8 -8
  218. package/dist/chunk-W6IJMWTZ.js +72 -0
  219. package/dist/chunk-W6IJMWTZ.js.map +1 -0
  220. package/dist/{chunk-H3TKENU4.js → chunk-WIKO4SCR.js} +5 -5
  221. package/dist/{chunk-YFLLGRXO.js → chunk-X2QPKLPL.js} +2 -2
  222. package/dist/{chunk-FGGYSN4P.js → chunk-X424T5JQ.js} +2 -2
  223. package/dist/{chunk-NAXDPKVM.js → chunk-XPJNT6PI.js} +4 -4
  224. package/dist/{chunk-2JVJ7UHC.js → chunk-XQU3CPF2.js} +4 -2
  225. package/dist/chunk-XQU3CPF2.js.map +1 -0
  226. package/dist/chunk-XW2T4QAW.js +1 -0
  227. package/dist/{chunk-VED2YHUD.js → chunk-YEDVOYL2.js} +2 -2
  228. package/dist/{chunk-TLPZ6MKZ.js → chunk-YEN4TREG.js} +541 -5
  229. package/dist/chunk-YEN4TREG.js.map +1 -0
  230. package/dist/{chunk-RC5DXXWC.js → chunk-YM7YN37H.js} +2 -2
  231. package/dist/{chunk-VLXBE57O.js → chunk-YVGXH72Y.js} +2 -2
  232. package/dist/{chunk-YQAXP5AC.js → chunk-YXLUTALO.js} +5 -5
  233. package/dist/{chunk-565C6ZFO.js → chunk-Z7YDVHDI.js} +2 -2
  234. package/dist/{chunk-O75CRYGF.js → chunk-ZEFVK7XC.js} +1 -1
  235. package/dist/chunk-ZEFVK7XC.js.map +1 -0
  236. package/dist/{chunk-XUE46UYW.js → chunk-ZLN7AROH.js} +6 -6
  237. package/dist/{chunk-GVG3JYBI.js → chunk-ZMKYCFJ7.js} +640 -199
  238. package/dist/chunk-ZMKYCFJ7.js.map +1 -0
  239. package/dist/{chunk-HK32G473.js → chunk-ZWEZXVYH.js} +2 -2
  240. package/dist/{cli-NEEdq5Rt.d.ts → cli-5mTYh1Tn.d.ts} +5 -5
  241. package/dist/cli-fallback.d.ts +11 -4
  242. package/dist/cli-fallback.js +5 -1
  243. package/dist/cli.d.ts +15 -13
  244. package/dist/cli.js +110 -106
  245. package/dist/coding/export-okf-codegraph.d.ts +2 -1
  246. package/dist/coding/export-okf-codegraph.js +34 -32
  247. package/dist/coding/export-okf-codegraph.js.map +1 -1
  248. package/dist/coding/pre-action-gate.d.ts +2 -1
  249. package/dist/compat/checks.js +2 -2
  250. package/dist/compat/codex-cli-fallback.d.ts +1 -1
  251. package/dist/compat/codex-cli-fallback.js +5 -1
  252. package/dist/compat/codex-cli-fallback.js.map +1 -1
  253. package/dist/compounding/engine.d.ts +3 -2
  254. package/dist/compounding/engine.js +29 -28
  255. package/dist/compounding/preference-consolidator.d.ts +2 -1
  256. package/dist/compression-optimizer.d.ts +2 -1
  257. package/dist/config.d.ts +2 -1
  258. package/dist/config.js +14 -12
  259. package/dist/connectors/codex-materialize-runner.d.ts +2 -1
  260. package/dist/connectors/codex-materialize-runner.js +28 -27
  261. package/dist/connectors/codex-materialize.d.ts +2 -1
  262. package/dist/connectors/index.d.ts +2 -1
  263. package/dist/connectors/index.js +30 -29
  264. package/dist/consolidation-provenance-check.d.ts +3 -2
  265. package/dist/consolidation-undo.d.ts +3 -2
  266. package/dist/contradiction/index.d.ts +4 -3
  267. package/dist/contradiction/index.js +5 -5
  268. package/dist/{contradiction-scan-NOYMFG66.js → contradiction-scan-GVD4JJ7B.js} +3 -3
  269. package/dist/converge-config.d.ts +2 -1
  270. package/dist/convergence-refresh.d.ts +3 -2
  271. package/dist/convergence-refresh.js +30 -29
  272. package/dist/conversation-index/backend.d.ts +2 -1
  273. package/dist/conversation-index/backend.js +3 -3
  274. package/dist/conversation-index/chunker.d.ts +2 -1
  275. package/dist/conversation-index/faiss-adapter.d.ts +2 -1
  276. package/dist/conversation-index/faiss-adapter.js +2 -2
  277. package/dist/conversation-index/indexer.d.ts +2 -1
  278. package/dist/conversation-index/search.d.ts +2 -1
  279. package/dist/corpus-watermark.d.ts +2 -1
  280. package/dist/corpus-watermark.js +31 -30
  281. package/dist/cross-lingual-recall.d.ts +2 -1
  282. package/dist/day-summary.d.ts +2 -1
  283. package/dist/deep-recall-http-glue.d.ts +13 -11
  284. package/dist/deep-recall-http-glue.js +12 -2
  285. package/dist/deep-recall-mcp-tools.d.ts +13 -11
  286. package/dist/deep-recall-policy-llm.d.ts +2 -1
  287. package/dist/deep-recall-policy-llm.js +4 -3
  288. package/dist/deep-recall-seeds.d.ts +2 -1
  289. package/dist/delinearize.d.ts +2 -1
  290. package/dist/dependency-propagation-config.d.ts +2 -1
  291. package/dist/{dependency-propagation-delivery-CQPCu0o5.d.ts → dependency-propagation-delivery-CDQCxNll.d.ts} +1 -1
  292. package/dist/direct-answer-wiring.d.ts +2 -1
  293. package/dist/direct-answer.d.ts +2 -1
  294. package/dist/embedding-fallback.d.ts +2 -1
  295. package/dist/enrichment/index.d.ts +2 -1
  296. package/dist/entity-origin-fields.d.ts +2 -1
  297. package/dist/entity-retrieval.d.ts +3 -2
  298. package/dist/entity-retrieval.js +28 -27
  299. package/dist/entity-schema.d.ts +2 -1
  300. package/dist/episodic-context.d.ts +2 -1
  301. package/dist/eval-trajectory-contracts.d.ts +2 -1
  302. package/dist/eval-trajectory-store.d.ts +2 -1
  303. package/dist/eval-trajectory.d.ts +2 -1
  304. package/dist/explicit-capture.d.ts +11 -9
  305. package/dist/explicit-capture.js +6 -6
  306. package/dist/external-wiki-access.d.ts +13 -11
  307. package/dist/external-wiki-access.js +65 -60
  308. package/dist/external-wiki-collection-registration.d.ts +2 -1
  309. package/dist/external-wiki-collection.d.ts +2 -1
  310. package/dist/external-wiki-mcp-tools.d.ts +13 -11
  311. package/dist/extraction-error-classification.d.ts +2 -1
  312. package/dist/extraction-faithfulness.d.ts +2 -1
  313. package/dist/extraction-faithfulness.js +4 -3
  314. package/dist/extraction-judge-telemetry.d.ts +2 -1
  315. package/dist/extraction-judge-training.d.ts +2 -1
  316. package/dist/extraction-judge.d.ts +2 -1
  317. package/dist/extraction-judge.js +5 -4
  318. package/dist/extraction-liveness.d.ts +2 -1
  319. package/dist/extraction-normalization.d.ts +2 -1
  320. package/dist/extraction-prompt.d.ts +2 -1
  321. package/dist/extraction-source-grounding-rules.d.ts +2 -1
  322. package/dist/extraction-source-grounding.d.ts +2 -1
  323. package/dist/extraction.d.ts +2 -1
  324. package/dist/extraction.js +40 -38
  325. package/dist/fallback-llm.d.ts +2 -1
  326. package/dist/fallback-llm.js +3 -2
  327. package/dist/{first-start-migration-RC345GPL.js → first-start-migration-L3UFX5CU.js} +3 -3
  328. package/dist/generic-recall-paths-CqAZyXKX.d.ts +23 -0
  329. package/dist/graph-append-error.d.ts +2 -1
  330. package/dist/graph-dashboard-diff.d.ts +2 -1
  331. package/dist/graph-dashboard-key.d.ts +2 -1
  332. package/dist/graph-dashboard-parser.d.ts +2 -1
  333. package/dist/graph-edge-reinforcement.d.ts +2 -1
  334. package/dist/graph-jsonl.d.ts +2 -1
  335. package/dist/graph-path-reconstruction.d.ts +2 -1
  336. package/dist/graph-path-scoring.d.ts +2 -1
  337. package/dist/graph-snapshot.d.ts +2 -1
  338. package/dist/graph.d.ts +2 -1
  339. package/dist/harmonic-retrieval.js +2 -2
  340. package/dist/importance.d.ts +2 -1
  341. package/dist/importers/index.d.ts +2 -1
  342. package/dist/importers/test-utils.d.ts +2 -1
  343. package/dist/in-flight-reads.d.ts +2 -1
  344. package/dist/{index-C9VXenR8.d.ts → index-BNluTxBp.d.ts} +2 -2
  345. package/dist/index.d.ts +963 -945
  346. package/dist/index.js +323 -221
  347. package/dist/intent.d.ts +2 -1
  348. package/dist/lcm/engine.d.ts +2 -1
  349. package/dist/lcm/engine.js +2 -2
  350. package/dist/lcm/index.d.ts +2 -1
  351. package/dist/lcm/index.js +7 -7
  352. package/dist/lcm/tools.d.ts +2 -1
  353. package/dist/lifecycle.d.ts +2 -1
  354. package/dist/live-connectors-runner.d.ts +2 -1
  355. package/dist/local-llm.d.ts +4 -1
  356. package/dist/local-llm.js +2 -2
  357. package/dist/local-model-endpoint.d.ts +2 -1
  358. package/dist/location/index.d.ts +4 -3
  359. package/dist/location/index.js +33 -32
  360. package/dist/maintenance/memory-governance.d.ts +2 -1
  361. package/dist/maintenance/memory-governance.js +28 -27
  362. package/dist/maintenance/rebuild-memory-lifecycle-ledger.d.ts +3 -2
  363. package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +28 -27
  364. package/dist/maintenance/rebuild-memory-projection.d.ts +3 -2
  365. package/dist/maintenance/rebuild-memory-projection.js +29 -28
  366. package/dist/{maintenance-C14sorKa.d.ts → maintenance-8hmWOMY_.d.ts} +378 -4
  367. package/dist/mcp-memory-inspector-app.d.ts +13 -11
  368. package/dist/memory-action-policy.d.ts +2 -1
  369. package/dist/memory-cache.d.ts +2 -1
  370. package/dist/memory-controller.d.ts +2 -1
  371. package/dist/memory-lifecycle-ledger-utils.d.ts +2 -1
  372. package/dist/memory-projection-store.d.ts +2 -1
  373. package/dist/memory-provenance.d.ts +2 -1
  374. package/dist/memory-snapshot.d.ts +2 -1
  375. package/dist/memory-subject-cli.d.ts +13 -11
  376. package/dist/memory-subject.d.ts +13 -11
  377. package/dist/memory-worth-outcomes.d.ts +3 -2
  378. package/dist/migrate/from-engram.js +2 -2
  379. package/dist/models-json.d.ts +2 -1
  380. package/dist/namespaces/migrate.d.ts +4 -3
  381. package/dist/namespaces/migrate.js +29 -28
  382. package/dist/namespaces/principal.d.ts +2 -1
  383. package/dist/namespaces/search.d.ts +2 -1
  384. package/dist/namespaces/search.js +11 -11
  385. package/dist/namespaces/storage.d.ts +4 -3
  386. package/dist/namespaces/storage.js +28 -27
  387. package/dist/native-knowledge.d.ts +2 -1
  388. package/dist/network/tailscale.js +2 -2
  389. package/dist/offline-sync-impression-drain.d.ts +2 -1
  390. package/dist/offline-sync-impression-drain.js +6 -6
  391. package/dist/operator-doctor-corpus.d.ts +2 -1
  392. package/dist/operator-doctor-corpus.js +32 -31
  393. package/dist/operator-doctor-replica.d.ts +2 -1
  394. package/dist/operator-toolkit.d.ts +4 -3
  395. package/dist/operator-toolkit.js +48 -46
  396. package/dist/orchestration/compression-guideline-coordinator.d.ts +3 -2
  397. package/dist/orchestration/maintenance.d.ts +5 -4
  398. package/dist/orchestration/maintenance.js +47 -42
  399. package/dist/{orchestrator-kqSzGv7e.d.ts → orchestrator-BUd_3Q86.d.ts} +17 -29
  400. package/dist/orchestrator.d.ts +11 -9
  401. package/dist/orchestrator.js +144 -138
  402. package/dist/patterns-cli.d.ts +2 -1
  403. package/dist/{pipeline-DRUwHb1X.d.ts → pipeline-Dv1Bv0ma.d.ts} +1 -1
  404. package/dist/policy-runtime.d.ts +2 -1
  405. package/dist/proactive-contention.d.ts +2 -1
  406. package/dist/provenance.d.ts +2 -1
  407. package/dist/{public-http-CW3l0g3P.d.ts → public-http-L-IymRBN.d.ts} +1 -1
  408. package/dist/{qmd-BVWlg1YS.d.ts → qmd-Mj508lHA.d.ts} +1 -1
  409. package/dist/qmd-preflight.d.ts +3 -2
  410. package/dist/qmd-recall-cache.d.ts +2 -1
  411. package/dist/qmd.d.ts +3 -2
  412. package/dist/qmd.js +2 -2
  413. package/dist/recall-concurrency-config.d.ts +2 -1
  414. package/dist/recall-disclosure-escalation.d.ts +2 -1
  415. package/dist/recall-explain-renderer.d.ts +2 -1
  416. package/dist/recall-explain-renderer.js +3 -3
  417. package/dist/recall-memory-map.d.ts +2 -1
  418. package/dist/recall-navigate-access.d.ts +2 -1
  419. package/dist/recall-navigate-access.js +2 -2
  420. package/dist/recall-navigate-disclosure.d.ts +2 -1
  421. package/dist/recall-navigate-disclosure.js +1 -1
  422. package/dist/recall-navigate.d.ts +2 -1
  423. package/dist/recall-navigate.js +2 -2
  424. package/dist/recall-planner-llm.d.ts +2 -1
  425. package/dist/recall-planner-llm.js +3 -2
  426. package/dist/recall-planner-llm.js.map +1 -1
  427. package/dist/recall-state-view-admission.d.ts +56 -0
  428. package/dist/recall-state-view-admission.js +39 -0
  429. package/dist/recall-state-view-admission.js.map +1 -0
  430. package/dist/recall-state-view-inject.js +2 -2
  431. package/dist/recall-state-view-render.js +2 -2
  432. package/dist/recall-state-view-widen.d.ts +18 -1
  433. package/dist/recall-state-view-widen.js +2 -2
  434. package/dist/recall-state-view-wire.d.ts +1 -1
  435. package/dist/recall-state-view-wire.js +3 -3
  436. package/dist/recall-state-view.d.ts +1 -0
  437. package/dist/recall-state-view.js +1 -1
  438. package/dist/recall-state.d.ts +2 -1
  439. package/dist/recall-tag-filter.d.ts +2 -1
  440. package/dist/recall-timings.d.ts +2 -1
  441. package/dist/recall-xray-cli.d.ts +2 -1
  442. package/dist/recall-xray-cli.js +4 -4
  443. package/dist/recall-xray-renderer.d.ts +2 -1
  444. package/dist/recall-xray-renderer.js +3 -3
  445. package/dist/recall-xray.d.ts +9 -1
  446. package/dist/recall-xray.js +2 -2
  447. package/dist/reconcile/cursor.d.ts +11 -2
  448. package/dist/reconcile/cursor.js +6 -4
  449. package/dist/reconcile/cursor.js.map +1 -1
  450. package/dist/reconcile/manifest.d.ts +37 -2
  451. package/dist/reconcile/manifest.js +15 -5
  452. package/dist/reconcile/plan.d.ts +2 -1
  453. package/dist/replay/normalizers/chatgpt.d.ts +2 -1
  454. package/dist/replay/normalizers/claude.d.ts +2 -1
  455. package/dist/replay/normalizers/openclaw.d.ts +2 -1
  456. package/dist/replay/normalizers/shared.d.ts +2 -1
  457. package/dist/replay/runner.d.ts +2 -1
  458. package/dist/replay/types.d.ts +2 -1
  459. package/dist/replica-divergence.d.ts +2 -1
  460. package/dist/replica-peers-config.d.ts +2 -1
  461. package/dist/{resolution-VKATP2HT.js → resolution-OHJZG45O.js} +6 -6
  462. package/dist/resolution-OHJZG45O.js.map +1 -0
  463. package/dist/resolve-auth-token.d.ts +2 -1
  464. package/dist/resume-bundles.js +15 -13
  465. package/dist/retrieval-agents.d.ts +3 -2
  466. package/dist/retrieval-tiers.d.ts +2 -1
  467. package/dist/routing/engine.d.ts +2 -1
  468. package/dist/routing/store.d.ts +2 -1
  469. package/dist/runtime/child-process.d.ts +1 -1
  470. package/dist/runtime/child-process.js +1 -1
  471. package/dist/salvage-envelope.d.ts +2 -1
  472. package/dist/salvage-envelope.js +2 -2
  473. package/dist/schemas.d.ts +176 -176
  474. package/dist/{scope-profiles-Vl00B1KU.d.ts → scope-profiles-B6BGVbxm.d.ts} +1 -1
  475. package/dist/search/embed-helper.d.ts +2 -1
  476. package/dist/search/factory.d.ts +2 -1
  477. package/dist/search/factory.js +10 -10
  478. package/dist/search/index.d.ts +2 -1
  479. package/dist/search/index.js +14 -14
  480. package/dist/search/lancedb-backend.d.ts +2 -1
  481. package/dist/search/lancedb-backend.js +2 -2
  482. package/dist/search/meilisearch-backend.d.ts +2 -1
  483. package/dist/search/meilisearch-backend.js +2 -2
  484. package/dist/search/noop-backend.d.ts +2 -1
  485. package/dist/search/orama-backend.d.ts +2 -1
  486. package/dist/search/orama-backend.js +2 -2
  487. package/dist/search/port.d.ts +2 -1
  488. package/dist/search/remote-backend.d.ts +2 -1
  489. package/dist/{semantic-consolidation-BC9-GFuT.d.ts → semantic-consolidation-J-598F5M.d.ts} +1 -1
  490. package/dist/semantic-consolidation.d.ts +3 -2
  491. package/dist/semantic-consolidation.js +29 -28
  492. package/dist/semantic-rule-promotion.js +28 -27
  493. package/dist/semantic-rule-verifier.d.ts +2 -1
  494. package/dist/semantic-rule-verifier.js +28 -27
  495. package/dist/{service-BOy6dHfc.d.ts → service-ZQkJ52cz.d.ts} +2 -2
  496. package/dist/session-observer-bands.d.ts +2 -1
  497. package/dist/session-observer-state.d.ts +2 -1
  498. package/dist/shared-context/manager.d.ts +8 -7
  499. package/dist/signal.d.ts +2 -1
  500. package/dist/source-agent-qualifier.d.ts +2 -1
  501. package/dist/source-agent-qualifier.js +38 -36
  502. package/dist/standup/build.js +29 -28
  503. package/dist/{storage-BLJRnFi6.d.ts → storage-CU_hZUgP.d.ts} +67 -6
  504. package/dist/storage.d.ts +4 -3
  505. package/dist/storage.js +27 -26
  506. package/dist/subject-config.d.ts +2 -1
  507. package/dist/subject-config.js +2 -2
  508. package/dist/summarizer.d.ts +2 -1
  509. package/dist/summarizer.js +5 -5
  510. package/dist/summary-snapshot.d.ts +2 -1
  511. package/dist/support-passport/index.d.ts +49 -15
  512. package/dist/support-passport/index.js +72 -63
  513. package/dist/temporal-supersession.d.ts +3 -2
  514. package/dist/temporal-timeline-recall.d.ts +2 -1
  515. package/dist/temporal-validity.d.ts +2 -1
  516. package/dist/threading.d.ts +2 -1
  517. package/dist/tier-migration.d.ts +3 -2
  518. package/dist/tier-routing.d.ts +2 -1
  519. package/dist/tier-routing.js +2 -2
  520. package/dist/{tier-stats-KA6OZX2C.js → tier-stats-VK5PCO2L.js} +3 -3
  521. package/dist/topics.d.ts +2 -1
  522. package/dist/transcript.d.ts +2 -1
  523. package/dist/transfer/capsule-import.js +1 -1
  524. package/dist/transfer/export-okf.d.ts +2 -1
  525. package/dist/transfer/export-okf.js +29 -28
  526. package/dist/transfer/types.d.ts +102 -102
  527. package/dist/trust-score-stage.d.ts +2 -1
  528. package/dist/trust-score.d.ts +2 -1
  529. package/dist/{types-YY-eKKU7.d.ts → types-BGxTvLBO.d.ts} +58 -13
  530. package/dist/types.d.ts +2 -1
  531. package/dist/types.js +1 -1
  532. package/dist/utility-runtime.d.ts +2 -1
  533. package/dist/verified-recall.js +28 -27
  534. package/dist/who-knows-cli.d.ts +13 -11
  535. package/dist/who-knows-cli.js +29 -28
  536. package/dist/who-knows.d.ts +13 -11
  537. package/dist/who-knows.js +28 -27
  538. package/dist/write-envelope.d.ts +4 -2
  539. package/dist/write-envelope.js +3 -1
  540. package/package.json +12 -2
  541. package/src/access-category-alias.test.ts +216 -0
  542. package/src/access-mcp.test.ts +73 -0
  543. package/src/access-mcp.ts +6 -6
  544. package/src/access-observe-write-surface.ts +19 -4
  545. package/src/access-offline-manifest.ts +297 -16
  546. package/src/access-recall-surface.ts +5 -5
  547. package/src/access-schema.ts +76 -7
  548. package/src/access-service.ts +11 -2
  549. package/src/activity/config.test.ts +124 -1
  550. package/src/activity/config.ts +150 -18
  551. package/src/activity/index.ts +3 -0
  552. package/src/activity/journal-extract-storage.test.ts +129 -0
  553. package/src/activity/journal-extract.test.ts +314 -0
  554. package/src/activity/journal-extract.ts +247 -0
  555. package/src/activity/journal-heading.test.ts +24 -1
  556. package/src/activity/journal-heading.ts +36 -0
  557. package/src/activity/journal-read.test.ts +242 -0
  558. package/src/activity/journal-read.ts +183 -0
  559. package/src/activity/journal-source.test.ts +15 -15
  560. package/src/activity/journal-source.ts +21 -14
  561. package/src/activity/journal-state.lock-worker.ts +30 -0
  562. package/src/activity/journal-state.test.ts +144 -0
  563. package/src/activity/journal-state.ts +107 -0
  564. package/src/activity/journal-strip.test.ts +106 -52
  565. package/src/activity/journal-strip.ts +35 -10
  566. package/src/activity/journal-vault-integration.test.ts +230 -0
  567. package/src/activity/journal-vault-provenance.test.ts +9 -7
  568. package/src/activity/journal-vault-provenance.ts +4 -10
  569. package/src/activity/journal-vault-read.test.ts +3 -2
  570. package/src/activity/journal-vault-read.ts +9 -139
  571. package/src/activity/journal.test.ts +74 -23
  572. package/src/activity/runner.test.ts +116 -1
  573. package/src/activity/runner.ts +25 -0
  574. package/src/activity/scheduler.ts +4 -0
  575. package/src/activity/store.test.ts +18 -0
  576. package/src/activity/store.ts +14 -0
  577. package/src/activity/sync-registration.ts +4 -0
  578. package/src/activity/timeline/analysis-metadata.ts +2 -0
  579. package/src/activity/timeline/analysis-provider.ts +140 -0
  580. package/src/activity/timeline/analysis-run.test.ts +419 -0
  581. package/src/activity/timeline/analysis-run.ts +106 -0
  582. package/src/activity/timeline/analysis.ts +66 -37
  583. package/src/activity/timeline/corrections.ts +9 -0
  584. package/src/activity/timeline/index.ts +3 -0
  585. package/src/activity/timeline/query.test.ts +71 -0
  586. package/src/activity/timeline/query.ts +57 -8
  587. package/src/activity/timeline/regenerate.test.ts +505 -0
  588. package/src/activity/timeline/regenerate.ts +373 -0
  589. package/src/activity/types.ts +40 -5
  590. package/src/adapters/grok-opencode.test.ts +146 -0
  591. package/src/adapters/grok.ts +53 -0
  592. package/src/adapters/index.ts +2 -0
  593. package/src/adapters/opencode.ts +52 -0
  594. package/src/adapters/registry.ts +4 -0
  595. package/src/cli-fallback.ts +13 -4
  596. package/src/config.test.ts +3 -1
  597. package/src/config.ts +4 -0
  598. package/src/dedup/merge.test.ts +732 -25
  599. package/src/fallback-llm.test.ts +53 -0
  600. package/src/fallback-llm.ts +12 -0
  601. package/src/index.ts +2 -0
  602. package/src/local-llm.ts +3 -1
  603. package/src/orchestration/dependency-propagation-recovery-replay.ts +1 -1
  604. package/src/orchestration/extraction-persist-deps.ts +9 -0
  605. package/src/orchestration/extraction-persist-promotion.test.ts +265 -6
  606. package/src/orchestration/extraction-persist-promotion.ts +42 -3
  607. package/src/orchestration/extraction-persist.ts +3 -3
  608. package/src/orchestration/harmonic-construction-persist.test.ts +115 -4
  609. package/src/orchestration/harmonic-construction-persist.ts +34 -6
  610. package/src/orchestration/maintenance.ts +1 -0
  611. package/src/orchestration/orchestrator-helpers.ts +6 -0
  612. package/src/orchestration/recall-entry.ts +16 -0
  613. package/src/orchestration/recall-internal-deps.ts +14 -0
  614. package/src/orchestration/recall-internal.ts +41 -58
  615. package/src/orchestration/recall-result-formatter.ts +11 -1
  616. package/src/orchestration/recall-search-pipeline.ts +121 -11
  617. package/src/orchestration/recall-state-view-pipeline.test.ts +211 -0
  618. package/src/orchestration/semantic-merge-commit-effects.ts +76 -17
  619. package/src/orchestration/semantic-merge-persist.ts +121 -16
  620. package/src/orchestration/semantic-merge-promotion-payload.ts +133 -54
  621. package/src/orchestrator.ts +7 -35
  622. package/src/providers/codex-subscription.test.ts +666 -0
  623. package/src/providers/codex-subscription.ts +743 -0
  624. package/src/recall-disclosure.test.ts +20 -0
  625. package/src/recall-state-view-admission.ts +114 -0
  626. package/src/recall-state-view-asof.test.ts +176 -0
  627. package/src/recall-state-view-call.test.ts +175 -0
  628. package/src/recall-state-view-config.test.ts +16 -0
  629. package/src/recall-state-view-widen.test.ts +70 -0
  630. package/src/recall-state-view-widen.ts +28 -7
  631. package/src/recall-state-view-wire.ts +3 -1
  632. package/src/recall-state-view-zero-diff.test.ts +20 -11
  633. package/src/recall-state-view.test.ts +142 -0
  634. package/src/recall-state-view.ts +72 -24
  635. package/src/recall-xray-renderer.test.ts +27 -0
  636. package/src/recall-xray-renderer.ts +4 -0
  637. package/src/recall-xray.ts +13 -0
  638. package/src/reconcile/cursor.ts +23 -33
  639. package/src/reconcile/manifest.ts +96 -11
  640. package/src/reconcile-identity-cache.test.ts +378 -0
  641. package/src/runtime/child-process.ts +1 -1
  642. package/src/storage/cas-revision-host.ts +75 -0
  643. package/src/storage/cas-revision-store.test.ts +459 -0
  644. package/src/storage/cas-revision-store.ts +661 -0
  645. package/src/storage/deletion-revision-store.ts +80 -6
  646. package/src/storage/tombstone-blocked-capture-index.ts +15 -0
  647. package/src/storage/tombstone-blocked-capture-mutation.ts +67 -7
  648. package/src/storage/tombstone-blocked-capture-sync.ts +55 -20
  649. package/src/storage-contract/failure-semantics.test.ts +1 -1
  650. package/src/storage-frontmatter-cas.test.ts +698 -1
  651. package/src/storage-replay.test.ts +166 -3
  652. package/src/storage.ts +41 -41
  653. package/src/support-passport/card-projection.ts +82 -33
  654. package/src/temporal-supersession.test.ts +10 -10
  655. package/src/types.ts +7 -7
  656. package/src/write-envelope.ts +1 -1
  657. package/dist/chunk-22FVR2KE.js.map +0 -1
  658. package/dist/chunk-2JVJ7UHC.js.map +0 -1
  659. package/dist/chunk-3QQTXYZ6.js.map +0 -1
  660. package/dist/chunk-4UDQUPT5.js +0 -560
  661. package/dist/chunk-4UDQUPT5.js.map +0 -1
  662. package/dist/chunk-A7XEPMQ6.js.map +0 -1
  663. package/dist/chunk-AU7Q3LSC.js +0 -56
  664. package/dist/chunk-AU7Q3LSC.js.map +0 -1
  665. package/dist/chunk-BLUYQFRH.js.map +0 -1
  666. package/dist/chunk-CZYYJZB6.js.map +0 -1
  667. package/dist/chunk-EEOUMG3J.js.map +0 -1
  668. package/dist/chunk-FDLDOEO6.js.map +0 -1
  669. package/dist/chunk-FYDW33ZB.js +0 -13
  670. package/dist/chunk-GVG3JYBI.js.map +0 -1
  671. package/dist/chunk-H272ZPQ3.js.map +0 -1
  672. package/dist/chunk-HVAEXYPL.js.map +0 -1
  673. package/dist/chunk-JEIXTYVG.js.map +0 -1
  674. package/dist/chunk-LRICZIGN.js +0 -52
  675. package/dist/chunk-LRICZIGN.js.map +0 -1
  676. package/dist/chunk-N7RWREIQ.js.map +0 -1
  677. package/dist/chunk-O75CRYGF.js.map +0 -1
  678. package/dist/chunk-Q3O3VKRB.js.map +0 -1
  679. package/dist/chunk-SEDEKFYQ.js +0 -1
  680. package/dist/chunk-SO7SV523.js.map +0 -1
  681. package/dist/chunk-SQJ3SDIW.js.map +0 -1
  682. package/dist/chunk-TLPZ6MKZ.js.map +0 -1
  683. package/dist/chunk-WJBZMNNS.js.map +0 -1
  684. package/dist/chunk-XQ2Q43XD.js.map +0 -1
  685. package/dist/chunk-Z4PCVRTN.js.map +0 -1
  686. package/src/activity/journal-mode.test.ts +0 -32
  687. package/src/activity/journal-mode.ts +0 -20
  688. /package/dist/{chunk-SEDEKFYQ.js.map → activity/digest.js.map} +0 -0
  689. /package/dist/{capsule-merge-IPG4IOFP.js.map → capsule-merge-ZCXUPLNJ.js.map} +0 -0
  690. /package/dist/{chunk-CDKHKZL5.js.map → chunk-2524MOWK.js.map} +0 -0
  691. /package/dist/{chunk-IY2FVXM6.js.map → chunk-2AU4D4HQ.js.map} +0 -0
  692. /package/dist/{chunk-QDY6KYTN.js.map → chunk-2JCA2PQT.js.map} +0 -0
  693. /package/dist/{chunk-RSVEP77Y.js.map → chunk-2UZ5ZH6W.js.map} +0 -0
  694. /package/dist/{chunk-NWWXSJX5.js.map → chunk-34QW2LK2.js.map} +0 -0
  695. /package/dist/{chunk-S7DPKM5W.js.map → chunk-353C5UNV.js.map} +0 -0
  696. /package/dist/{chunk-GQOMZ3MK.js.map → chunk-36UBSLFN.js.map} +0 -0
  697. /package/dist/{chunk-DBQWVT2H.js.map → chunk-3CBI2ZSA.js.map} +0 -0
  698. /package/dist/{chunk-NZXEK3UF.js.map → chunk-3Q3N35W7.js.map} +0 -0
  699. /package/dist/{chunk-YYGZJPOK.js.map → chunk-42DJ235G.js.map} +0 -0
  700. /package/dist/{chunk-7VJXIDOC.js.map → chunk-4JVQRFZD.js.map} +0 -0
  701. /package/dist/{chunk-WHBVXTUI.js.map → chunk-4PB2MBY6.js.map} +0 -0
  702. /package/dist/{chunk-TEYN7ZYF.js.map → chunk-4WCNPQQ5.js.map} +0 -0
  703. /package/dist/{chunk-RBGREYVJ.js.map → chunk-5QBDLMGG.js.map} +0 -0
  704. /package/dist/{chunk-RKBLRTNT.js.map → chunk-5SDSVX7N.js.map} +0 -0
  705. /package/dist/{chunk-LPECRQO4.js.map → chunk-5THU7NFP.js.map} +0 -0
  706. /package/dist/{chunk-LWA7MDVO.js.map → chunk-6CCRSQWT.js.map} +0 -0
  707. /package/dist/{chunk-TIT2C6WX.js.map → chunk-6XYC7NM4.js.map} +0 -0
  708. /package/dist/{chunk-FHQSPTPZ.js.map → chunk-6YAIN5XJ.js.map} +0 -0
  709. /package/dist/{chunk-PV36INNL.js.map → chunk-757NP436.js.map} +0 -0
  710. /package/dist/{chunk-6H5JYDOM.js.map → chunk-7J2CGXG3.js.map} +0 -0
  711. /package/dist/{chunk-FBMYGNOC.js.map → chunk-A2YQL2FF.js.map} +0 -0
  712. /package/dist/{chunk-X2NFFBTO.js.map → chunk-A7GQBJP5.js.map} +0 -0
  713. /package/dist/{chunk-MPYD657E.js.map → chunk-A7WOWDZK.js.map} +0 -0
  714. /package/dist/{chunk-C4OTC6WY.js.map → chunk-AIKTQVV3.js.map} +0 -0
  715. /package/dist/{chunk-CGC5UQCF.js.map → chunk-AKE4GGQ3.js.map} +0 -0
  716. /package/dist/{chunk-VP67GZ7T.js.map → chunk-APFKZVJS.js.map} +0 -0
  717. /package/dist/{chunk-M75RYSHS.js.map → chunk-AQIRQUCP.js.map} +0 -0
  718. /package/dist/{chunk-S7T2TY65.js.map → chunk-AXFR2NQ5.js.map} +0 -0
  719. /package/dist/{chunk-PSPABFN2.js.map → chunk-BD7JTBYP.js.map} +0 -0
  720. /package/dist/{chunk-FCSZ4K2X.js.map → chunk-BJJWRWER.js.map} +0 -0
  721. /package/dist/{chunk-JT3EB7ZL.js.map → chunk-BNGHPYZU.js.map} +0 -0
  722. /package/dist/{chunk-MFJBANPX.js.map → chunk-C2BFTYD7.js.map} +0 -0
  723. /package/dist/{chunk-3JVLGJCY.js.map → chunk-C6KRO3SU.js.map} +0 -0
  724. /package/dist/{chunk-AOCP6JA7.js.map → chunk-D3IZCN5P.js.map} +0 -0
  725. /package/dist/{chunk-ROKKIMON.js.map → chunk-EJIEQOPB.js.map} +0 -0
  726. /package/dist/{chunk-ET356KSB.js.map → chunk-F4TWWUMP.js.map} +0 -0
  727. /package/dist/{chunk-CLLPJ6QT.js.map → chunk-FQXJAC3T.js.map} +0 -0
  728. /package/dist/{chunk-DD5JFCWM.js.map → chunk-GCBIXUPT.js.map} +0 -0
  729. /package/dist/{chunk-ROGRI25A.js.map → chunk-I3H5LFOI.js.map} +0 -0
  730. /package/dist/{chunk-S65WXHNK.js.map → chunk-IFFLUCCU.js.map} +0 -0
  731. /package/dist/{chunk-D5LORF7A.js.map → chunk-JZDH2ZZK.js.map} +0 -0
  732. /package/dist/{chunk-2GPE5UCR.js.map → chunk-K6IPSW5B.js.map} +0 -0
  733. /package/dist/{chunk-HG6HXVHQ.js.map → chunk-KDJHLOZP.js.map} +0 -0
  734. /package/dist/{chunk-I27RSQRR.js.map → chunk-KYGOQV37.js.map} +0 -0
  735. /package/dist/{chunk-VZWXFXLX.js.map → chunk-LMCD5W5B.js.map} +0 -0
  736. /package/dist/{chunk-MKD3OMPS.js.map → chunk-M3MYMWXG.js.map} +0 -0
  737. /package/dist/{chunk-DITMGZOL.js.map → chunk-MMG5K6XJ.js.map} +0 -0
  738. /package/dist/{chunk-VGXM5B4H.js.map → chunk-MNIPH6LD.js.map} +0 -0
  739. /package/dist/{chunk-MKWKYHXJ.js.map → chunk-OB3XMWX5.js.map} +0 -0
  740. /package/dist/{chunk-XU6OEECT.js.map → chunk-OQQXGYMX.js.map} +0 -0
  741. /package/dist/{chunk-47DEYNMR.js.map → chunk-PEXW2JCK.js.map} +0 -0
  742. /package/dist/{chunk-42SDNZCU.js.map → chunk-QF4J3KMV.js.map} +0 -0
  743. /package/dist/{chunk-SB6PSOP7.js.map → chunk-QLJ6762U.js.map} +0 -0
  744. /package/dist/{chunk-XOVKXJEP.js.map → chunk-R3TLVTWW.js.map} +0 -0
  745. /package/dist/{chunk-PHNAB54Q.js.map → chunk-RQO3J4MR.js.map} +0 -0
  746. /package/dist/{chunk-5N53UBH2.js.map → chunk-RR7G2X7C.js.map} +0 -0
  747. /package/dist/{chunk-DCJ3YFIC.js.map → chunk-S2ULTQZR.js.map} +0 -0
  748. /package/dist/{chunk-GY5WZBA6.js.map → chunk-S76KRJDG.js.map} +0 -0
  749. /package/dist/{chunk-EEC4PCG5.js.map → chunk-SZDLX763.js.map} +0 -0
  750. /package/dist/{chunk-E2ZHGBAK.js.map → chunk-T2JSUEH6.js.map} +0 -0
  751. /package/dist/{chunk-QMGXMJ2O.js.map → chunk-T2YFZ27G.js.map} +0 -0
  752. /package/dist/{chunk-LEPOP46W.js.map → chunk-TFA6HPOA.js.map} +0 -0
  753. /package/dist/{chunk-BA6WOZOT.js.map → chunk-TK4FHQRN.js.map} +0 -0
  754. /package/dist/{chunk-ZNJSBIP4.js.map → chunk-TNSCIPBQ.js.map} +0 -0
  755. /package/dist/{chunk-YUMDFDUA.js.map → chunk-TWYTGIBR.js.map} +0 -0
  756. /package/dist/{chunk-EZZV7OQL.js.map → chunk-UEZKN6VR.js.map} +0 -0
  757. /package/dist/{chunk-HY55QQD7.js.map → chunk-UJX4I26O.js.map} +0 -0
  758. /package/dist/{chunk-CBCNKKZD.js.map → chunk-VIZR45AN.js.map} +0 -0
  759. /package/dist/{chunk-ZG74PWRW.js.map → chunk-VZAKYDMJ.js.map} +0 -0
  760. /package/dist/{chunk-ITPS5DDH.js.map → chunk-W5BLTZZJ.js.map} +0 -0
  761. /package/dist/{chunk-H3TKENU4.js.map → chunk-WIKO4SCR.js.map} +0 -0
  762. /package/dist/{chunk-YFLLGRXO.js.map → chunk-X2QPKLPL.js.map} +0 -0
  763. /package/dist/{chunk-FGGYSN4P.js.map → chunk-X424T5JQ.js.map} +0 -0
  764. /package/dist/{chunk-NAXDPKVM.js.map → chunk-XPJNT6PI.js.map} +0 -0
  765. /package/dist/{contradiction-scan-NOYMFG66.js.map → chunk-XW2T4QAW.js.map} +0 -0
  766. /package/dist/{chunk-VED2YHUD.js.map → chunk-YEDVOYL2.js.map} +0 -0
  767. /package/dist/{chunk-RC5DXXWC.js.map → chunk-YM7YN37H.js.map} +0 -0
  768. /package/dist/{chunk-VLXBE57O.js.map → chunk-YVGXH72Y.js.map} +0 -0
  769. /package/dist/{chunk-YQAXP5AC.js.map → chunk-YXLUTALO.js.map} +0 -0
  770. /package/dist/{chunk-565C6ZFO.js.map → chunk-Z7YDVHDI.js.map} +0 -0
  771. /package/dist/{chunk-XUE46UYW.js.map → chunk-ZLN7AROH.js.map} +0 -0
  772. /package/dist/{chunk-HK32G473.js.map → chunk-ZWEZXVYH.js.map} +0 -0
  773. /package/dist/{resolution-VKATP2HT.js.map → contradiction-scan-GVD4JJ7B.js.map} +0 -0
  774. /package/dist/{first-start-migration-RC345GPL.js.map → first-start-migration-L3UFX5CU.js.map} +0 -0
  775. /package/dist/{tier-stats-KA6OZX2C.js.map → tier-stats-VK5PCO2L.js.map} +0 -0
package/dist/who-knows.js CHANGED
@@ -9,35 +9,36 @@ import {
9
9
  loadWhoKnowsEntities,
10
10
  tokenizeTopic,
11
11
  validateWhoKnowsInput
12
- } from "./chunk-EZZV7OQL.js";
13
- import "./chunk-GVG3JYBI.js";
14
- import "./chunk-UHVXE24Y.js";
12
+ } from "./chunk-UEZKN6VR.js";
13
+ import "./chunk-ZMKYCFJ7.js";
15
14
  import "./chunk-46WM6JX2.js";
15
+ import "./chunk-UHVXE24Y.js";
16
16
  import "./chunk-D5F7TKMH.js";
17
- import "./chunk-FHQSPTPZ.js";
18
- import "./chunk-7VJXIDOC.js";
17
+ import "./chunk-6YAIN5XJ.js";
18
+ import "./chunk-4JVQRFZD.js";
19
+ import "./chunk-TNSCIPBQ.js";
19
20
  import "./chunk-YQNNHLCG.js";
20
21
  import "./chunk-6KTXE6A3.js";
21
- import "./chunk-PSPABFN2.js";
22
- import "./chunk-MKWKYHXJ.js";
23
- import "./chunk-CYEPCZN5.js";
24
- import "./chunk-ZNJSBIP4.js";
25
- import "./chunk-GUMZC2BO.js";
22
+ import "./chunk-BD7JTBYP.js";
23
+ import "./chunk-OB3XMWX5.js";
26
24
  import "./chunk-4O6WRBGE.js";
27
- import "./chunk-LEPOP46W.js";
25
+ import "./chunk-GUMZC2BO.js";
26
+ import "./chunk-CYEPCZN5.js";
27
+ import "./chunk-TFA6HPOA.js";
28
+ import "./chunk-F4TWWUMP.js";
28
29
  import "./chunk-72A4L5JJ.js";
29
30
  import "./chunk-A7Q43EUZ.js";
30
- import "./chunk-ET356KSB.js";
31
31
  import "./chunk-S2V7RUCL.js";
32
- import "./chunk-SO7SV523.js";
32
+ import "./chunk-PCEYGOSL.js";
33
+ import "./chunk-Q6LCCIZN.js";
33
34
  import "./chunk-SCU65EZI.js";
34
35
  import "./chunk-MRPOZBJC.js";
35
36
  import "./chunk-S2HLHAZ4.js";
36
37
  import "./chunk-DM2T26WE.js";
37
38
  import "./chunk-LDXUBPMO.js";
38
- import "./chunk-DCJ3YFIC.js";
39
+ import "./chunk-S2ULTQZR.js";
39
40
  import "./chunk-AAD2ZS6P.js";
40
- import "./chunk-H272ZPQ3.js";
41
+ import "./chunk-SHEHQBCG.js";
41
42
  import "./chunk-3ONXXHQO.js";
42
43
  import "./chunk-YXZG5TVN.js";
43
44
  import "./chunk-5GINB5LC.js";
@@ -49,24 +50,21 @@ import "./chunk-RBOJCG4T.js";
49
50
  import "./chunk-R7QY5ZVB.js";
50
51
  import "./chunk-5WITETWU.js";
51
52
  import "./chunk-6CIAGZ6X.js";
52
- import "./chunk-DBQWVT2H.js";
53
+ import "./chunk-3CBI2ZSA.js";
53
54
  import "./chunk-JXN77SGO.js";
54
55
  import "./chunk-ZLQ37WJX.js";
55
56
  import "./chunk-IUM3VSHI.js";
56
- import "./chunk-3QQTXYZ6.js";
57
- import "./chunk-BT7NVCML.js";
58
57
  import "./chunk-C64XATK7.js";
59
58
  import "./chunk-42JKGUFJ.js";
60
- import "./chunk-TLPZ6MKZ.js";
59
+ import "./chunk-YEN4TREG.js";
61
60
  import "./chunk-I55KAVET.js";
62
61
  import "./chunk-L2EXJQJP.js";
63
62
  import "./chunk-45GF7Y3V.js";
64
- import "./chunk-RGMVMVMF.js";
65
- import "./chunk-N7RWREIQ.js";
63
+ import "./chunk-65RENJGB.js";
66
64
  import "./chunk-353KGBKY.js";
67
65
  import "./chunk-ZIKENA2C.js";
68
- import "./chunk-VYCOJKSX.js";
69
66
  import "./chunk-6Q3ZTEF6.js";
67
+ import "./chunk-RGMVMVMF.js";
70
68
  import "./chunk-W5BIQOAJ.js";
71
69
  import "./chunk-Z7L72ZHL.js";
72
70
  import "./chunk-4O4TKIXQ.js";
@@ -80,20 +78,23 @@ import "./chunk-AL3UYZ5N.js";
80
78
  import "./chunk-RL6NEVXT.js";
81
79
  import "./chunk-C7HJ3NEI.js";
82
80
  import "./chunk-7RJUVTVF.js";
81
+ import "./chunk-PWPIERBM.js";
82
+ import "./chunk-BJMBJZ2Y.js";
83
+ import "./chunk-UKJAGEXH.js";
84
+ import "./chunk-FP2373TW.js";
85
+ import "./chunk-LSLCFCCQ.js";
86
+ import "./chunk-BT7NVCML.js";
87
+ import "./chunk-VYCOJKSX.js";
83
88
  import "./chunk-NB3LRY4T.js";
84
89
  import "./chunk-5FVVY2EB.js";
85
90
  import "./chunk-FFAZ2XFU.js";
86
- import "./chunk-EEOUMG3J.js";
87
91
  import "./chunk-JDSVLVCG.js";
88
92
  import "./chunk-5GKPFL3S.js";
89
93
  import "./chunk-JAKIDQB2.js";
90
- import "./chunk-BJMBJZ2Y.js";
91
- import "./chunk-UKJAGEXH.js";
92
- import "./chunk-FP2373TW.js";
93
94
  import "./chunk-P7FMDTKL.js";
94
95
  import "./chunk-VUFL7X3H.js";
95
96
  import "./chunk-JUOZ62Y7.js";
96
- import "./chunk-O75CRYGF.js";
97
+ import "./chunk-ZEFVK7XC.js";
97
98
  import "./chunk-6KH5NLQS.js";
98
99
  import "./chunk-P2QRMMVQ.js";
99
100
  import "./chunk-2Z24E5W2.js";
@@ -1,8 +1,9 @@
1
- import { y as MemoryCategory, N as MemorySubject } from './types-YY-eKKU7.js';
1
+ import { u as MemoryCategory, N as MemorySubject } from './types-BGxTvLBO.js';
2
2
  import './message-parts/index.js';
3
3
  import './bounded-jsonl-state.js';
4
4
  import './operator-doctor-types.js';
5
5
  import './external-wiki-config.js';
6
+ import './recall-state-view.js';
6
7
  import './contradiction-config.js';
7
8
  import './graph-path-scoring-config.js';
8
9
  import './deep-recall-config.js';
@@ -100,6 +101,7 @@ declare const STRUCTURED_ATTRIBUTE_LIMITS: Readonly<{
100
101
  /** Maximum length of one attribute value. */
101
102
  maxValueLength: 1024;
102
103
  }>;
104
+ declare const MEMORY_CATEGORY_NAMES: string[];
103
105
  declare function isMemoryCategory(value: string): value is MemoryCategory;
104
106
  declare const sealed: unique symbol;
105
107
  /**
@@ -294,4 +296,4 @@ interface ObserveFingerprintParts {
294
296
  */
295
297
  declare function buildObserveRequestFingerprint(parts: ObserveFingerprintParts): Record<string, unknown>;
296
298
 
297
- export { type AccessWriteFingerprintParts, type ComposeEnvelopeOptions, FINGERPRINT_EXEMPT_FIELDS, FINGERPRINT_SCOPE_FIELDS, type FingerprintScope, type MemoryWriteInput, type ObserveFingerprintParts, STRUCTURED_ATTRIBUTE_LIMITS, type SealedMemoryEnvelope, TAG_LIMITS, WRITE_FINGERPRINT_FIELDS, type WriteContext, buildAccessWriteRequestFingerprint, buildObserveRequestFingerprint, buildWriteIdempotencyPayload, composeMemoryEnvelope, isMemoryCategory, isSealedMemoryEnvelope, sealedWriteToLegacyArgs };
299
+ export { type AccessWriteFingerprintParts, type ComposeEnvelopeOptions, FINGERPRINT_EXEMPT_FIELDS, FINGERPRINT_SCOPE_FIELDS, type FingerprintScope, MEMORY_CATEGORY_NAMES, type MemoryWriteInput, type ObserveFingerprintParts, STRUCTURED_ATTRIBUTE_LIMITS, type SealedMemoryEnvelope, TAG_LIMITS, WRITE_FINGERPRINT_FIELDS, type WriteContext, buildAccessWriteRequestFingerprint, buildObserveRequestFingerprint, buildWriteIdempotencyPayload, composeMemoryEnvelope, isMemoryCategory, isSealedMemoryEnvelope, sealedWriteToLegacyArgs };
@@ -1,6 +1,7 @@
1
1
  import {
2
2
  FINGERPRINT_EXEMPT_FIELDS,
3
3
  FINGERPRINT_SCOPE_FIELDS,
4
+ MEMORY_CATEGORY_NAMES,
4
5
  STRUCTURED_ATTRIBUTE_LIMITS,
5
6
  TAG_LIMITS,
6
7
  WRITE_FINGERPRINT_FIELDS,
@@ -11,7 +12,7 @@ import {
11
12
  isMemoryCategory,
12
13
  isSealedMemoryEnvelope,
13
14
  sealedWriteToLegacyArgs
14
- } from "./chunk-3QQTXYZ6.js";
15
+ } from "./chunk-LSLCFCCQ.js";
15
16
  import "./chunk-BT7NVCML.js";
16
17
  import "./chunk-VYCOJKSX.js";
17
18
  import "./chunk-NB3LRY4T.js";
@@ -30,6 +31,7 @@ import "./chunk-PZ5AY32C.js";
30
31
  export {
31
32
  FINGERPRINT_EXEMPT_FIELDS,
32
33
  FINGERPRINT_SCOPE_FIELDS,
34
+ MEMORY_CATEGORY_NAMES,
33
35
  STRUCTURED_ATTRIBUTE_LIMITS,
34
36
  TAG_LIMITS,
35
37
  WRITE_FINGERPRINT_FIELDS,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@remnic/core",
3
- "version": "9.69.32",
3
+ "version": "9.69.34",
4
4
  "description": "Framework-agnostic Remnic memory engine — orchestrator, storage, extraction, search, trust zones",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -11,6 +11,16 @@
11
11
  "remnic-source": "./src/index.ts",
12
12
  "import": "./dist/index.js"
13
13
  },
14
+ "./activity/digest": {
15
+ "types": "./dist/activity/digest.d.ts",
16
+ "remnic-source": "./src/activity/digest.ts",
17
+ "import": "./dist/activity/digest.js"
18
+ },
19
+ "./activity/digest.js": {
20
+ "types": "./dist/activity/digest.d.ts",
21
+ "remnic-source": "./src/activity/digest.ts",
22
+ "import": "./dist/activity/digest.js"
23
+ },
14
24
  "./maintenance/atomic-file": {
15
25
  "types": "./dist/maintenance/atomic-file.d.ts",
16
26
  "remnic-source": "./src/maintenance/atomic-file.ts",
@@ -3247,7 +3257,7 @@
3247
3257
  "core"
3248
3258
  ],
3249
3259
  "peerDependencies": {
3250
- "@remnic/coding-graph": "^9.69.32"
3260
+ "@remnic/coding-graph": "^9.69.34"
3251
3261
  },
3252
3262
  "peerDependenciesMeta": {
3253
3263
  "@remnic/coding-graph": {
@@ -0,0 +1,216 @@
1
+ /**
2
+ * #2780: remnic_memory_store category ergonomics.
3
+ *
4
+ * Fleet callers repeatedly guess project-shaped categories; the valid
5
+ * category set contains no project-shaped name. The boundary schema admits
6
+ * exactly the four spellings telemetry shows (project, project_state,
7
+ * project-state, project_update); the write-surface funnel coerces them to
8
+ * the canonical "fact" and the response reports the coercion so callers
9
+ * learn. Every other spelling — including near-misses like projection or
10
+ * project_typo — rejects with the full valid list plus a "use fact" hint.
11
+ * An idempotent replay of an aliased write recomputes the coercion note
12
+ * from the CURRENT request's spelling while the stored result is reused.
13
+ *
14
+ * All fixtures are synthetic — no real user data.
15
+ */
16
+ import assert from "node:assert/strict";
17
+ import { mkdtemp, rm } from "node:fs/promises";
18
+ import { tmpdir } from "node:os";
19
+ import path from "node:path";
20
+ import test from "node:test";
21
+
22
+ import { memoryStoreRequestSchema, type MemoryStoreRequest, type SuggestionSubmitRequest } from "./access-schema.js";
23
+ import { EngramAccessService } from "./access-service.js";
24
+ import { Orchestrator } from "./orchestrator.js";
25
+ import type { SealedMemoryEnvelope } from "./write-envelope.js";
26
+ import { MEMORY_CATEGORY_NAMES } from "./write-envelope.js";
27
+ import type { CodingContext, PluginConfig } from "./types.js";
28
+
29
+ const PROJECT_ALIASES = ["project", "project_state", "project-state", "project_update"] as const;
30
+ function makeService(persisted: { category?: string; writes?: number }, memoryDir?: string): EngramAccessService {
31
+ const orch = Object.create(Orchestrator.prototype) as Orchestrator;
32
+ const internals = orch as unknown as {
33
+ config: PluginConfig;
34
+ _codingContextBySession: Map<string, CodingContext>;
35
+ };
36
+ internals.config = {
37
+ namespacesEnabled: false,
38
+ defaultNamespace: "default",
39
+ memoryDir: memoryDir ?? "/synthetic/remnic-2780",
40
+ } as unknown as PluginConfig;
41
+ internals._codingContextBySession = new Map();
42
+ orch.getStorage = async () =>
43
+ ({
44
+ readAllMemories: async () => [],
45
+ writeSealedMemory: async (envelope: SealedMemoryEnvelope) => {
46
+ persisted.category = envelope.category;
47
+ persisted.writes = (persisted.writes ?? 0) + 1;
48
+ return { id: "mem-2780", tombstoneBlocked: false };
49
+ },
50
+ appendMemoryLifecycleEvents: async () => {},
51
+ }) as never;
52
+ return new EngramAccessService(orch);
53
+ }
54
+
55
+ test("project-shaped category aliases store as fact and the response reports the coercion (#2780)", async () => {
56
+ const dir = await mkdtemp(path.join(tmpdir(), "remnic-2780-"));
57
+ try {
58
+ const persisted: { category?: string } = {};
59
+ const service = makeService(persisted);
60
+ for (const alias of PROJECT_ALIASES) {
61
+ const request = memoryStoreRequestSchema.parse({
62
+ sessionKey: "s-2780",
63
+ content: "durable synthetic memory content for alias tests",
64
+ category: alias,
65
+ confidence: 0.9,
66
+ });
67
+ const response = await service.memoryStore(request);
68
+ assert.equal(response.status, "stored", `${alias} must store, not queue`);
69
+ assert.equal(response.memoryId, "mem-2780");
70
+ assert.equal(persisted.category, "fact", `${alias} must persist as the canonical "fact"`);
71
+ assert.deepEqual(
72
+ response.categoryCoercion,
73
+ { from: alias, to: "fact" },
74
+ `${alias} response must name the original value and the canonical category`,
75
+ );
76
+ }
77
+ } finally {
78
+ await rm(dir, { recursive: true, force: true });
79
+ }
80
+ });
81
+
82
+ test("dryRun reports the coercion without persisting (#2780)", async () => {
83
+ const persisted: { category?: string } = {};
84
+ const service = makeService(persisted);
85
+ const request = memoryStoreRequestSchema.parse({
86
+ sessionKey: "s-2780-dry",
87
+ content: "durable synthetic memory content for alias tests",
88
+ category: "project_state",
89
+ dryRun: true,
90
+ });
91
+ const response = await service.memoryStore(request);
92
+ assert.equal(response.status, "validated");
93
+ assert.deepEqual(response.categoryCoercion, { from: "project_state", to: "fact" });
94
+ assert.equal(persisted.category, undefined, "dryRun must not persist");
95
+ });
96
+
97
+ test("valid categories pass through unchanged with no coercion note (#2780)", async () => {
98
+ const persisted: { category?: string } = {};
99
+ const service = makeService(persisted);
100
+ for (const category of MEMORY_CATEGORY_NAMES) {
101
+ const parsed = memoryStoreRequestSchema.parse({
102
+ sessionKey: "s-2780-valid",
103
+ content: "durable synthetic memory content for alias tests",
104
+ category,
105
+ dryRun: true,
106
+ });
107
+ assert.equal(parsed.category, category);
108
+ const response = await service.memoryStore(parsed);
109
+ assert.equal(response.status, "validated");
110
+ assert.equal(
111
+ response.categoryCoercion,
112
+ undefined,
113
+ `${category} is canonical and must never carry a coercion note`,
114
+ );
115
+ }
116
+ });
117
+
118
+ test("near-miss project spellings reject naming the valid set and the fact hint (#2780 fix A)", () => {
119
+ // Only the four telemetry-attested spellings coerce; everything else —
120
+ // including regex-shaped near-misses — must reject with the full list.
121
+ for (const bad of [
122
+ "vibe",
123
+ "Project_State",
124
+ "project state",
125
+ "",
126
+ "projection",
127
+ "projectile",
128
+ "project_typo",
129
+ "projections",
130
+ ]) {
131
+ assert.throws(
132
+ () =>
133
+ memoryStoreRequestSchema.parse({
134
+ sessionKey: "s-2780-bad",
135
+ content: "durable synthetic memory content for alias tests",
136
+ category: bad,
137
+ dryRun: true,
138
+ }),
139
+ (err: unknown) => {
140
+ assert.ok(err instanceof Error, `${JSON.stringify(bad)} must reject with an error`);
141
+ assert.match(err.message, /must be one of: /, "error must name the valid categories");
142
+ for (const valid of MEMORY_CATEGORY_NAMES) {
143
+ assert.match(err.message, new RegExp(`\\b${valid}\\b`), `error must list ${valid}`);
144
+ }
145
+ assert.match(err.message, /for project state\/facts use/, "error must carry the hint");
146
+ return true;
147
+ },
148
+ `${JSON.stringify(bad)} must be rejected, not coerced`,
149
+ );
150
+ }
151
+ });
152
+
153
+ test("suggestion_submit coerces project-shaped aliases the same way (#2780)", async () => {
154
+ const persisted: { category?: string } = {};
155
+ const service = makeService(persisted);
156
+ const request = memoryStoreRequestSchema.parse({
157
+ sessionKey: "s-2780-sug",
158
+ content: "durable synthetic suggestion content for alias tests",
159
+ category: "project_update",
160
+ dryRun: true,
161
+ });
162
+ const response = await service.suggestionSubmit(request);
163
+ assert.equal(response.status, "validated");
164
+ assert.deepEqual(response.categoryCoercion, { from: "project_update", to: "fact" });
165
+ });
166
+
167
+ test("idempotent replay recomputes the coercion note from the current request's spelling (#2780 fix B)", async () => {
168
+ const dir = await mkdtemp(path.join(tmpdir(), "remnic-2780-replay-"));
169
+ try {
170
+ const persisted: { category?: string; writes?: number } = {};
171
+ const service = makeService(persisted, dir);
172
+ const base = {
173
+ sessionKey: "s-2780-replay",
174
+ content: "durable synthetic memory content for alias tests",
175
+ confidence: 0.9,
176
+ idempotencyKey: "idem-2780",
177
+ };
178
+ const first = await service.memoryStore(memoryStoreRequestSchema.parse({ ...base, category: "project_state" }));
179
+ assert.equal(first.status, "stored");
180
+ assert.deepEqual(first.categoryCoercion, { from: "project_state", to: "fact" });
181
+ assert.equal(persisted.writes, 1);
182
+
183
+ const second = await service.memoryStore(memoryStoreRequestSchema.parse({ ...base, category: "project-state" }));
184
+ assert.equal(second.idempotencyReplay, true, "same key + equivalent alias must replay, not re-store");
185
+ assert.deepEqual(
186
+ second.categoryCoercion,
187
+ { from: "project-state", to: "fact" },
188
+ "replay must name THIS request's spelling, not the stored one",
189
+ );
190
+ assert.equal(second.memoryId, first.memoryId, "replay must reuse the stored result id");
191
+ assert.equal(persisted.writes, 1, "replay must not persist again");
192
+ } finally {
193
+ await rm(dir, { recursive: true, force: true });
194
+ }
195
+ });
196
+ test("MemoryStoreRequest and SuggestionSubmitRequest category are finite canonical unions (compile-time)", () => {
197
+ const invalidMemoryStore: MemoryStoreRequest = {
198
+ content: "durable synthetic content for type test",
199
+ // @ts-expect-error "projection" near-miss is rejected at compile time
200
+ category: "projection",
201
+ };
202
+ void invalidMemoryStore;
203
+
204
+ const invalidSuggestion: SuggestionSubmitRequest = {
205
+ content: "durable synthetic content for type test",
206
+ // @ts-expect-error "projection" near-miss is rejected at compile time
207
+ category: "projection",
208
+ };
209
+ void invalidSuggestion;
210
+
211
+ const validMemoryStore: MemoryStoreRequest = {
212
+ content: "durable synthetic content for type test",
213
+ category: "fact",
214
+ };
215
+ assert.equal(validMemoryStore.category, "fact");
216
+ });
@@ -263,6 +263,79 @@ test("MCP memory write tools reject malformed arguments before dispatch", async
263
263
  }
264
264
  });
265
265
 
266
+ test("MCP memory write tools admit project-shaped category aliases (#2780)", async () => {
267
+ for (const toolName of ["engram.memory_store", "engram.suggestion_submit"]) {
268
+ let received: Record<string, unknown> | undefined;
269
+ const service = {
270
+ ...makeMockService(),
271
+ memoryStore: async (req: Record<string, unknown>) => {
272
+ received = req;
273
+ return {
274
+ schemaVersion: 1,
275
+ operation: "memory_store",
276
+ namespace: "default",
277
+ dryRun: true,
278
+ accepted: true,
279
+ queued: false,
280
+ status: "validated",
281
+ };
282
+ },
283
+ suggestionSubmit: async (req: Record<string, unknown>) => {
284
+ received = req;
285
+ return {
286
+ schemaVersion: 1,
287
+ operation: "suggestion_submit",
288
+ namespace: "default",
289
+ dryRun: true,
290
+ accepted: true,
291
+ queued: false,
292
+ status: "validated",
293
+ };
294
+ },
295
+ } as unknown as EngramAccessService;
296
+ const server = new EngramMcpServer(service);
297
+
298
+ const response = await server.handleRequest(
299
+ makeToolRequest(toolName, {
300
+ content: "valid durable content",
301
+ category: "project_state",
302
+ dryRun: true,
303
+ })
304
+ );
305
+ const result = (response as Record<string, unknown> & { result?: { isError?: boolean } }).result;
306
+
307
+ assert.equal(result?.isError, false, `${toolName} must admit project-shaped category aliases`);
308
+ assert.equal(
309
+ received?.category,
310
+ "project_state",
311
+ `${toolName} must forward the alias; the write surface coerces it to "fact"`
312
+ );
313
+ }
314
+ });
315
+
316
+ test("MCP memory_store invalid category error names valid categories and the fact hint (#2780)", async () => {
317
+ const server = new EngramMcpServer(makeMockService());
318
+
319
+ for (const bad of ["vibe", "projection", "project_typo"]) {
320
+ const response = await server.handleRequest(
321
+ makeToolRequest("engram.memory_store", {
322
+ content: "valid durable content",
323
+ category: bad,
324
+ dryRun: true,
325
+ })
326
+ );
327
+ const result = (response as Record<string, unknown> & {
328
+ result?: { isError?: boolean; content?: Array<{ text?: string }> };
329
+ }).result;
330
+
331
+ assert.equal(result?.isError, true, `${bad} must reject, not coerce`);
332
+ const text = (result?.content ?? []).map((part) => part.text ?? "").join("\n");
333
+ assert.match(text, /must be one of: /, "error must name the valid categories");
334
+ assert.match(text, /reasoning_trace/, "the full valid list must be present");
335
+ assert.match(text, /for project state\/facts use "fact"/, "error must carry the fact hint");
336
+ }
337
+ });
338
+
266
339
  test("MCP write tools accept and forward client-injected cwd/projectTag (#1434)", async () => {
267
340
  for (const toolName of ["engram.memory_store", "engram.suggestion_submit"]) {
268
341
  let received: Record<string, unknown> | undefined;
package/src/access-mcp.ts CHANGED
@@ -543,10 +543,7 @@ export class EngramMcpServer {
543
543
  topK: { type: "number" },
544
544
  mode: { type: "string", enum: ["auto", "no_recall", "minimal", "full", "graph_mode"] },
545
545
  includeDebug: { type: "boolean" },
546
- // Recall disclosure depth (issue #677). Default `chunk` when
547
- // omitted. Section/raw payload shaping ships in PR 2; this PR
548
- // wires the field end-to-end so clients can already pass it
549
- // without it being silently dropped.
546
+ // Disclosure depth (issue #677); default `chunk` when omitted.
550
547
  disclosure: { type: "string", enum: ["chunk", "section", "raw"] },
551
548
  cwd: { type: "string", description: "Working directory for auto git-context resolution." },
552
549
  projectTag: {
@@ -566,8 +563,11 @@ export class EngramMcpServer {
566
563
  tagMatch: {
567
564
  type: "string",
568
565
  enum: ["any", "all"],
569
- description:
570
- "Tag-filter match mode. 'any' (default) admits results with at least one filter tag; 'all' requires every filter tag.",
566
+ description: "Tag-filter match mode; 'any' (default) or 'all'.",
567
+ },
568
+ stateView: {
569
+ type: "boolean",
570
+ description: "Opt in to state-aware recall views (issue #1952); ORs with the recallStateViews config flag.",
571
571
  },
572
572
  },
573
573
  required: ["query"],
@@ -30,6 +30,7 @@ import {
30
30
  NamespaceNotWritableError,
31
31
  } from "./access-service.js";
32
32
  import { extractionForceFlush } from "./access-extraction-force-flush.js";
33
+ import { coerceProjectCategoryAlias, reapplyCategoryCoercion } from "./access-schema.js";
33
34
  import { ObserveTranscriptPersister, observeTranscriptSessionKey } from "./access-observe-transcript.js";
34
35
  import { FileCalendarSource, buildBriefing, parseBriefingFocus, parseBriefingWindow } from "./briefing.js";
35
36
  import {
@@ -482,9 +483,13 @@ export class AccessObserveWriteSurface {
482
483
  }
483
484
 
484
485
  async memoryStore(
485
- request: EngramAccessMemoryStoreRequest,
486
+ rawRequest: EngramAccessMemoryStoreRequest,
486
487
  hooks?: { enforceWriteQuota?: () => void | Promise<void> }
487
488
  ): Promise<EngramAccessWriteResponse> {
489
+ // #2780: the boundary schema admits project-shaped category guesses;
490
+ // this funnel (MCP/HTTP/CLI all dispatch here) coerces them to the
491
+ // canonical "fact" once and reports the coercion on the response.
492
+ const { request, categoryCoercion } = coerceProjectCategoryAlias(rawRequest);
488
493
  let namespace: string;
489
494
  try {
490
495
  namespace = await this.deps.resolveCodingScopedWriteNamespace(request);
@@ -513,6 +518,7 @@ export class AccessObserveWriteSurface {
513
518
  queued: false,
514
519
  status: "validated",
515
520
  idempotencyKey: request.idempotencyKey?.trim() || undefined,
521
+ ...(categoryCoercion ? { categoryCoercion } : {}),
516
522
  };
517
523
  }
518
524
  const result = await persistExplicitCapture(this.deps.orchestrator, candidate, "memory_store");
@@ -539,13 +545,14 @@ export class AccessObserveWriteSurface {
539
545
  memoryId: result.id,
540
546
  duplicateOf: result.duplicateOf,
541
547
  idempotencyKey: request.idempotencyKey?.trim() || undefined,
548
+ ...(categoryCoercion ? { categoryCoercion } : {}),
542
549
  };
543
550
  log.info(
544
551
  `access-write op=memory_store namespace=${namespace} dryRun=false status=${response.status} memoryId=${response.memoryId ?? "-"} idempotency=${response.idempotencyKey ? "yes" : "no"}`
545
552
  );
546
553
  return response;
547
554
  };
548
- return this.deps.handleIdempotentWrite({
555
+ const response = await this.deps.handleIdempotentWrite({
549
556
  operation: "memory_store",
550
557
  idempotencyKey: request.idempotencyKey,
551
558
  // Shared builder (issue #1989 PR3): byte-parity with the historical
@@ -566,12 +573,16 @@ export class AccessObserveWriteSurface {
566
573
  beforeExecute: hooks?.enforceWriteQuota,
567
574
  execute,
568
575
  });
576
+ // #2780 fix B: rewrite a replayed coercion note from THIS request's raw category.
577
+ return reapplyCategoryCoercion(response, categoryCoercion);
569
578
  }
570
579
 
571
580
  async suggestionSubmit(
572
- request: EngramAccessSuggestionSubmitRequest,
581
+ rawRequest: EngramAccessSuggestionSubmitRequest,
573
582
  hooks?: { enforceWriteQuota?: () => void | Promise<void> }
574
583
  ): Promise<EngramAccessWriteResponse> {
584
+ // #2780: same alias funnel as memory_store — one shared coercion point.
585
+ const { request, categoryCoercion } = coerceProjectCategoryAlias(rawRequest);
575
586
  let namespace: string;
576
587
  try {
577
588
  namespace = await this.deps.resolveCodingScopedWriteNamespace(request);
@@ -599,6 +610,7 @@ export class AccessObserveWriteSurface {
599
610
  queued: true,
600
611
  status: "validated",
601
612
  idempotencyKey: request.idempotencyKey?.trim() || undefined,
613
+ ...(categoryCoercion ? { categoryCoercion } : {}),
602
614
  };
603
615
  }
604
616
  const result = await queueExplicitCaptureForReview(
@@ -622,13 +634,14 @@ export class AccessObserveWriteSurface {
622
634
  memoryId: result.id,
623
635
  duplicateOf: result.duplicateOf,
624
636
  idempotencyKey: request.idempotencyKey?.trim() || undefined,
637
+ ...(categoryCoercion ? { categoryCoercion } : {}),
625
638
  };
626
639
  log.info(
627
640
  `access-write op=suggestion_submit namespace=${namespace} dryRun=false status=${response.status} memoryId=${response.memoryId ?? "-"} idempotency=${response.idempotencyKey ? "yes" : "no"}`
628
641
  );
629
642
  return response;
630
643
  };
631
- return this.deps.handleIdempotentWrite({
644
+ const replayed = await this.deps.handleIdempotentWrite({
632
645
  operation: "suggestion_submit",
633
646
  idempotencyKey: request.idempotencyKey,
634
647
  // Shared builder (issue #1989 PR3): byte-parity with the historical
@@ -649,6 +662,8 @@ export class AccessObserveWriteSurface {
649
662
  beforeExecute: hooks?.enforceWriteQuota,
650
663
  execute,
651
664
  });
665
+ // #2780 fix B: rewrite a replayed coercion note from THIS request's raw category.
666
+ return reapplyCategoryCoercion(replayed, categoryCoercion);
652
667
  }
653
668
 
654
669
  async runObserve(request: EngramAccessObserveRequest): Promise<EngramAccessObserveResponse> {