@remnic/core 9.3.712 → 9.3.714

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 (328) hide show
  1. package/dist/access-boundary.d.ts +6 -6
  2. package/dist/access-boundary.js +17 -16
  3. package/dist/access-cli.js +40 -39
  4. package/dist/access-cli.js.map +1 -1
  5. package/dist/access-http.d.ts +5 -5
  6. package/dist/access-http.js +24 -23
  7. package/dist/access-mcp.d.ts +18 -5
  8. package/dist/access-mcp.js +21 -20
  9. package/dist/access-operations-batch.js +18 -17
  10. package/dist/access-operations.d.ts +6 -5
  11. package/dist/access-operations.js +20 -19
  12. package/dist/access-schema.d.ts +10 -0
  13. package/dist/access-schema.js +1 -1
  14. package/dist/{access-service-Dx2rSJjH.d.ts → access-service-lddjZoRh.d.ts} +20 -5
  15. package/dist/access-service.d.ts +5 -5
  16. package/dist/access-service.js +16 -15
  17. package/dist/access-surface-catalog.d.ts +5 -5
  18. package/dist/access-surface-catalog.js +6 -1
  19. package/dist/access-surface-catalog.js.map +1 -1
  20. package/dist/action-confidence.d.ts +1 -1
  21. package/dist/active-memory-bridge.d.ts +3 -1
  22. package/dist/active-memory-bridge.js +2 -1
  23. package/dist/active-recall.d.ts +1 -1
  24. package/dist/active-recall.js +4 -3
  25. package/dist/active-recall.js.map +1 -1
  26. package/dist/adapters/index.js +4 -4
  27. package/dist/adapters/registry.js +2 -2
  28. package/dist/behavior-learner.d.ts +1 -1
  29. package/dist/behavior-signals.d.ts +1 -1
  30. package/dist/bootstrap.d.ts +4 -4
  31. package/dist/briefing.d.ts +1 -1
  32. package/dist/briefing.js +8 -7
  33. package/dist/buffer-surprise-report.d.ts +1 -1
  34. package/dist/buffer.d.ts +1 -1
  35. package/dist/calibration.d.ts +1 -1
  36. package/dist/capabilities.d.ts +1 -1
  37. package/dist/{catalog-CadPvH29.d.ts → catalog-CbR0CsUw.d.ts} +1 -1
  38. package/dist/causal-behavior.d.ts +1 -1
  39. package/dist/causal-consolidation.d.ts +1 -1
  40. package/dist/causal-consolidation.js +9 -8
  41. package/dist/causal-consolidation.js.map +1 -1
  42. package/dist/{chunk-OMSTU233.js → chunk-2KAYTPPT.js} +4 -4
  43. package/dist/{chunk-VYZNWH4J.js → chunk-2SXMCQEQ.js} +3 -3
  44. package/dist/{chunk-NXL5CVE7.js → chunk-2Y6LMOQQ.js} +2 -2
  45. package/dist/{chunk-AMXOCZHE.js → chunk-3VUPWDSE.js} +15 -3
  46. package/dist/{chunk-AMXOCZHE.js.map → chunk-3VUPWDSE.js.map} +1 -1
  47. package/dist/{chunk-FVQJYWH7.js → chunk-5GKPFL3S.js} +1 -1
  48. package/dist/{chunk-FVQJYWH7.js.map → chunk-5GKPFL3S.js.map} +1 -1
  49. package/dist/{chunk-LQ4J7ELC.js → chunk-67HG7KFE.js} +2 -2
  50. package/dist/{chunk-ZBG4K36I.js → chunk-6FUJ2VYY.js} +3 -3
  51. package/dist/{chunk-GMRNKPWO.js → chunk-6QUPUTT7.js} +2 -2
  52. package/dist/{chunk-Z56IHRVV.js → chunk-6UU43ZGD.js} +2 -2
  53. package/dist/{chunk-APJQ6UEA.js → chunk-AGNBY3VG.js} +4 -4
  54. package/dist/{chunk-OWOKOFXK.js → chunk-AJOIM6UR.js} +2 -2
  55. package/dist/{chunk-JBPKEARU.js → chunk-AU7Q3LSC.js} +4 -4
  56. package/dist/{chunk-YVWZW37D.js → chunk-BNOAB5HH.js} +62 -12
  57. package/dist/{chunk-YVWZW37D.js.map → chunk-BNOAB5HH.js.map} +1 -1
  58. package/dist/{chunk-A2R5NV6O.js → chunk-CTAHKIG6.js} +205 -29
  59. package/dist/chunk-CTAHKIG6.js.map +1 -0
  60. package/dist/{chunk-K22IJO4R.js → chunk-CTOQEZSN.js} +2 -2
  61. package/dist/{chunk-SINGJCUR.js → chunk-CX77GNMB.js} +14 -3
  62. package/dist/chunk-CX77GNMB.js.map +1 -0
  63. package/dist/{chunk-HSDJCT3V.js → chunk-DXGS5YOQ.js} +3 -3
  64. package/dist/{chunk-HV57RHMD.js → chunk-EH5ED3C6.js} +2 -2
  65. package/dist/{chunk-NUWZFSKC.js → chunk-FVZ2ISIX.js} +9 -1
  66. package/dist/chunk-FVZ2ISIX.js.map +1 -0
  67. package/dist/{chunk-GKPIY7EQ.js → chunk-FXZKXW7C.js} +117 -46
  68. package/dist/chunk-FXZKXW7C.js.map +1 -0
  69. package/dist/{chunk-7NDYFAJS.js → chunk-GM3BMWKR.js} +2 -2
  70. package/dist/{chunk-ZVDRL6SK.js → chunk-HHLWSWWF.js} +2 -2
  71. package/dist/chunk-HHLWSWWF.js.map +1 -0
  72. package/dist/{chunk-5QUS24F7.js → chunk-I56LKMF7.js} +2 -2
  73. package/dist/{chunk-Z3B2YW56.js → chunk-IHMT6XTY.js} +9 -5
  74. package/dist/chunk-IHMT6XTY.js.map +1 -0
  75. package/dist/chunk-JAKIDQB2.js +173 -0
  76. package/dist/chunk-JAKIDQB2.js.map +1 -0
  77. package/dist/{chunk-35YJ6KCV.js → chunk-JEIROMLX.js} +2 -2
  78. package/dist/{chunk-SKQCFAYU.js → chunk-JVEMUX6L.js} +2 -2
  79. package/dist/{chunk-CXMXAC5R.js → chunk-K44MIN6D.js} +3 -3
  80. package/dist/{chunk-5KQCOIPW.js → chunk-MECU6WSH.js} +188 -31
  81. package/dist/chunk-MECU6WSH.js.map +1 -0
  82. package/dist/{chunk-BQCFXAMN.js → chunk-MPHDVHIB.js} +2 -2
  83. package/dist/{chunk-BOGENF7P.js → chunk-MSVSP5VO.js} +1 -1
  84. package/dist/chunk-MSVSP5VO.js.map +1 -0
  85. package/dist/{chunk-QXNFQKWU.js → chunk-MTHNJCOJ.js} +2 -2
  86. package/dist/{chunk-3TCRU4JA.js → chunk-O62P2LFL.js} +2 -2
  87. package/dist/{chunk-JSDZMOT7.js → chunk-OC56UWV5.js} +11 -11
  88. package/dist/{chunk-7IBEWQLG.js → chunk-QOIONSOI.js} +2 -2
  89. package/dist/{chunk-4P5UAL3C.js → chunk-RBHANGVX.js} +6 -6
  90. package/dist/{chunk-SK2CR6MW.js → chunk-RVLB4E6N.js} +2 -2
  91. package/dist/{chunk-I3BT2IDW.js → chunk-SYDHFFAW.js} +1110 -28
  92. package/dist/chunk-SYDHFFAW.js.map +1 -0
  93. package/dist/{chunk-VILEUJXC.js → chunk-UC4YOAC2.js} +74 -2
  94. package/dist/{chunk-VILEUJXC.js.map → chunk-UC4YOAC2.js.map} +1 -1
  95. package/dist/{chunk-CNVIWMQI.js → chunk-UY4JMEAK.js} +2 -2
  96. package/dist/{chunk-S6FQLQGH.js → chunk-V7GDTQ6I.js} +2 -2
  97. package/dist/{chunk-JNOYYWCA.js → chunk-VO4UICII.js} +3 -3
  98. package/dist/{chunk-54TI5GLV.js → chunk-WI4QX7GH.js} +3 -3
  99. package/dist/{chunk-3XHD3XGK.js → chunk-XCTDHF7U.js} +30 -2
  100. package/dist/chunk-XCTDHF7U.js.map +1 -0
  101. package/dist/{chunk-XKU4YE6Z.js → chunk-XZTUMWKQ.js} +2 -2
  102. package/dist/{cli-DTWRoJEI.d.ts → cli-iAiVkbYJ.d.ts} +3 -3
  103. package/dist/cli.d.ts +6 -6
  104. package/dist/cli.js +43 -42
  105. package/dist/compounding/engine.d.ts +1 -1
  106. package/dist/compounding/engine.js +8 -7
  107. package/dist/compounding/preference-consolidator.d.ts +1 -1
  108. package/dist/compression-optimizer.d.ts +1 -1
  109. package/dist/config.d.ts +1 -1
  110. package/dist/config.js +4 -3
  111. package/dist/connectors/codex-materialize-runner.d.ts +1 -1
  112. package/dist/connectors/codex-materialize-runner.js +8 -7
  113. package/dist/connectors/codex-materialize.d.ts +1 -1
  114. package/dist/connectors/index.d.ts +1 -1
  115. package/dist/connectors/index.js +9 -8
  116. package/dist/consolidation-provenance-check.d.ts +1 -1
  117. package/dist/consolidation-undo.d.ts +1 -1
  118. package/dist/contradiction/index.d.ts +1 -1
  119. package/dist/conversation-index/backend.d.ts +1 -1
  120. package/dist/conversation-index/chunker.d.ts +1 -1
  121. package/dist/conversation-index/faiss-adapter.d.ts +1 -1
  122. package/dist/conversation-index/indexer.d.ts +1 -1
  123. package/dist/conversation-index/search.d.ts +1 -1
  124. package/dist/day-summary.d.ts +1 -1
  125. package/dist/delinearize.d.ts +1 -1
  126. package/dist/direct-answer-wiring.d.ts +1 -1
  127. package/dist/direct-answer.d.ts +1 -1
  128. package/dist/embedding-fallback.d.ts +1 -1
  129. package/dist/enrichment/index.d.ts +1 -1
  130. package/dist/entity-retrieval.d.ts +1 -1
  131. package/dist/entity-retrieval.js +8 -7
  132. package/dist/entity-schema.d.ts +1 -1
  133. package/dist/explicit-capture.d.ts +4 -4
  134. package/dist/explicit-capture.js +3 -2
  135. package/dist/extraction-faithfulness.d.ts +1 -1
  136. package/dist/extraction-judge-telemetry.d.ts +1 -1
  137. package/dist/extraction-judge-training.d.ts +1 -1
  138. package/dist/extraction-judge.d.ts +1 -1
  139. package/dist/extraction.d.ts +1 -1
  140. package/dist/extraction.js +4 -3
  141. package/dist/fallback-llm.d.ts +1 -1
  142. package/dist/identity-continuity.d.ts +1 -1
  143. package/dist/importance.d.ts +1 -1
  144. package/dist/index.d.ts +9 -9
  145. package/dist/index.js +62 -61
  146. package/dist/index.js.map +1 -1
  147. package/dist/intent.d.ts +1 -1
  148. package/dist/lcm/engine.d.ts +1 -1
  149. package/dist/lcm/index.d.ts +1 -1
  150. package/dist/lcm/index.js +3 -3
  151. package/dist/lcm/tools.d.ts +1 -1
  152. package/dist/lifecycle.d.ts +1 -1
  153. package/dist/live-connectors-runner.d.ts +1 -1
  154. package/dist/local-llm.d.ts +1 -1
  155. package/dist/maintenance/memory-governance.d.ts +1 -1
  156. package/dist/maintenance/memory-governance.js +8 -7
  157. package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +8 -7
  158. package/dist/maintenance/rebuild-memory-projection.js +9 -8
  159. package/dist/mcp-memory-inspector-app.d.ts +5 -5
  160. package/dist/memory-action-policy.d.ts +1 -1
  161. package/dist/memory-cache.d.ts +1 -1
  162. package/dist/memory-lifecycle-ledger-utils.d.ts +1 -1
  163. package/dist/memory-projection-store.d.ts +1 -1
  164. package/dist/memory-provenance.d.ts +1 -1
  165. package/dist/memory-worth-outcomes.d.ts +1 -1
  166. package/dist/models-json.d.ts +1 -1
  167. package/dist/namespaces/migrate.d.ts +2 -2
  168. package/dist/namespaces/migrate.js +12 -11
  169. package/dist/namespaces/principal.d.ts +1 -1
  170. package/dist/namespaces/search.d.ts +1 -1
  171. package/dist/namespaces/search.js +3 -3
  172. package/dist/namespaces/storage.d.ts +2 -2
  173. package/dist/namespaces/storage.js +8 -7
  174. package/dist/native-knowledge.d.ts +1 -1
  175. package/dist/operator-toolkit.d.ts +1 -1
  176. package/dist/operator-toolkit.js +17 -16
  177. package/dist/orchestration/maintenance.d.ts +2 -2
  178. package/dist/orchestration/maintenance.js +10 -9
  179. package/dist/{orchestrator-B1iVjEyc.d.ts → orchestrator-iVZWi8aW.d.ts} +21 -4
  180. package/dist/orchestrator.d.ts +4 -4
  181. package/dist/orchestrator.js +32 -31
  182. package/dist/patterns-cli.d.ts +1 -1
  183. package/dist/policy-runtime.d.ts +1 -1
  184. package/dist/provenance.d.ts +1 -1
  185. package/dist/provenance.js +3 -2
  186. package/dist/qmd-recall-cache.d.ts +1 -1
  187. package/dist/qmd.d.ts +1 -1
  188. package/dist/recall-disclosure-escalation.d.ts +1 -1
  189. package/dist/recall-explain-renderer.d.ts +1 -1
  190. package/dist/recall-explain-renderer.js +3 -3
  191. package/dist/recall-handles.d.ts +228 -0
  192. package/dist/recall-handles.js +42 -0
  193. package/dist/recall-handles.js.map +1 -0
  194. package/dist/recall-planner-llm.d.ts +1 -1
  195. package/dist/recall-state.d.ts +40 -2
  196. package/dist/recall-state.js +3 -1
  197. package/dist/recall-tag-filter.d.ts +1 -1
  198. package/dist/recall-xray-cli.d.ts +1 -1
  199. package/dist/recall-xray-cli.js +4 -4
  200. package/dist/recall-xray-renderer.d.ts +1 -1
  201. package/dist/recall-xray-renderer.js +3 -3
  202. package/dist/recall-xray.d.ts +1 -1
  203. package/dist/recall-xray.js +2 -2
  204. package/dist/resolve-auth-token.d.ts +1 -1
  205. package/dist/resume-bundles.js +5 -4
  206. package/dist/retrieval-agents.d.ts +1 -1
  207. package/dist/retrieval-tiers.d.ts +1 -1
  208. package/dist/routing/engine.d.ts +1 -1
  209. package/dist/routing/store.d.ts +1 -1
  210. package/dist/sanitize.d.ts +2 -0
  211. package/dist/sanitize.js +6 -2
  212. package/dist/search/embed-helper.d.ts +1 -1
  213. package/dist/search/factory.d.ts +1 -1
  214. package/dist/search/factory.js +2 -2
  215. package/dist/search/index.d.ts +1 -1
  216. package/dist/search/index.js +4 -4
  217. package/dist/search/lancedb-backend.d.ts +1 -1
  218. package/dist/search/meilisearch-backend.d.ts +1 -1
  219. package/dist/search/noop-backend.d.ts +1 -1
  220. package/dist/search/orama-backend.d.ts +1 -1
  221. package/dist/search/port.d.ts +1 -1
  222. package/dist/search/remote-backend.d.ts +1 -1
  223. package/dist/{semantic-consolidation-CY8uVRNJ.d.ts → semantic-consolidation-DSjMDZ1u.d.ts} +1 -1
  224. package/dist/semantic-consolidation.d.ts +2 -2
  225. package/dist/semantic-consolidation.js +9 -8
  226. package/dist/semantic-rule-promotion.js +8 -7
  227. package/dist/semantic-rule-verifier.d.ts +1 -1
  228. package/dist/semantic-rule-verifier.js +8 -7
  229. package/dist/session-observer-bands.d.ts +1 -1
  230. package/dist/session-observer-state.d.ts +1 -1
  231. package/dist/shared-context/manager.d.ts +3 -3
  232. package/dist/signal.d.ts +1 -1
  233. package/dist/storage.d.ts +1 -1
  234. package/dist/storage.js +7 -6
  235. package/dist/summarizer.d.ts +1 -1
  236. package/dist/summary-snapshot.d.ts +1 -1
  237. package/dist/temporal-supersession.d.ts +1 -1
  238. package/dist/temporal-validity.d.ts +1 -1
  239. package/dist/threading.d.ts +1 -1
  240. package/dist/tier-migration.d.ts +1 -1
  241. package/dist/tier-routing.d.ts +1 -1
  242. package/dist/topics.d.ts +1 -1
  243. package/dist/transcript.d.ts +1 -1
  244. package/dist/transfer/import-sqlite.js +2 -2
  245. package/dist/{types-Dr0Cw3L9.d.ts → types-D9dwzU_x.d.ts} +25 -1
  246. package/dist/types.d.ts +1 -1
  247. package/dist/types.js +1 -1
  248. package/dist/utility-runtime.d.ts +1 -1
  249. package/dist/verified-recall.js +8 -7
  250. package/package.json +2 -2
  251. package/src/access-boundary.ts +4 -1
  252. package/src/access-http.ts +78 -20
  253. package/src/access-mcp.test.ts +29 -0
  254. package/src/access-mcp.ts +99 -17
  255. package/src/access-operations-batch.ts +14 -0
  256. package/src/access-operations.ts +5 -0
  257. package/src/access-schema.ts +8 -0
  258. package/src/access-service-observe-idempotency.test.ts +308 -0
  259. package/src/access-service.ts +106 -5
  260. package/src/access-surface-catalog.test.ts +4 -2
  261. package/src/access-surface-catalog.ts +5 -0
  262. package/src/active-memory-bridge.test.ts +72 -0
  263. package/src/active-memory-bridge.ts +21 -2
  264. package/src/chat/chat-cli.test.ts +142 -0
  265. package/src/chat/chat-cli.ts +206 -0
  266. package/src/chat/chat-config.ts +57 -0
  267. package/src/chat/chat-engine.test.ts +272 -0
  268. package/src/chat/chat-engine.ts +518 -0
  269. package/src/chat/chat-executor.ts +133 -0
  270. package/src/chat/chat-factory.ts +161 -0
  271. package/src/chat/chat-http.test.ts +197 -0
  272. package/src/chat/chat-http.ts +222 -0
  273. package/src/chat/chat-llm.ts +229 -0
  274. package/src/chat/chat-mcp.test.ts +135 -0
  275. package/src/chat/chat-security.test.ts +491 -0
  276. package/src/chat/chat-session.ts +296 -0
  277. package/src/chat/chat-system-prompt.ts +76 -0
  278. package/src/chat/chat-tools.ts +255 -0
  279. package/src/chat/chat-types.ts +167 -0
  280. package/src/cli.ts +20 -0
  281. package/src/config.ts +9 -0
  282. package/src/orchestrator.ts +106 -5
  283. package/src/recall-handles-wiring.test.ts +477 -0
  284. package/src/recall-handles.test.ts +283 -0
  285. package/src/recall-handles.ts +414 -0
  286. package/src/recall-state.ts +99 -0
  287. package/src/sanitize.ts +6 -0
  288. package/src/types.ts +29 -0
  289. package/dist/chunk-3XHD3XGK.js.map +0 -1
  290. package/dist/chunk-5KQCOIPW.js.map +0 -1
  291. package/dist/chunk-A2R5NV6O.js.map +0 -1
  292. package/dist/chunk-BOGENF7P.js.map +0 -1
  293. package/dist/chunk-GKPIY7EQ.js.map +0 -1
  294. package/dist/chunk-I3BT2IDW.js.map +0 -1
  295. package/dist/chunk-NUWZFSKC.js.map +0 -1
  296. package/dist/chunk-SINGJCUR.js.map +0 -1
  297. package/dist/chunk-Z3B2YW56.js.map +0 -1
  298. package/dist/chunk-ZVDRL6SK.js.map +0 -1
  299. /package/dist/{chunk-OMSTU233.js.map → chunk-2KAYTPPT.js.map} +0 -0
  300. /package/dist/{chunk-VYZNWH4J.js.map → chunk-2SXMCQEQ.js.map} +0 -0
  301. /package/dist/{chunk-NXL5CVE7.js.map → chunk-2Y6LMOQQ.js.map} +0 -0
  302. /package/dist/{chunk-LQ4J7ELC.js.map → chunk-67HG7KFE.js.map} +0 -0
  303. /package/dist/{chunk-ZBG4K36I.js.map → chunk-6FUJ2VYY.js.map} +0 -0
  304. /package/dist/{chunk-GMRNKPWO.js.map → chunk-6QUPUTT7.js.map} +0 -0
  305. /package/dist/{chunk-Z56IHRVV.js.map → chunk-6UU43ZGD.js.map} +0 -0
  306. /package/dist/{chunk-APJQ6UEA.js.map → chunk-AGNBY3VG.js.map} +0 -0
  307. /package/dist/{chunk-OWOKOFXK.js.map → chunk-AJOIM6UR.js.map} +0 -0
  308. /package/dist/{chunk-JBPKEARU.js.map → chunk-AU7Q3LSC.js.map} +0 -0
  309. /package/dist/{chunk-K22IJO4R.js.map → chunk-CTOQEZSN.js.map} +0 -0
  310. /package/dist/{chunk-HSDJCT3V.js.map → chunk-DXGS5YOQ.js.map} +0 -0
  311. /package/dist/{chunk-HV57RHMD.js.map → chunk-EH5ED3C6.js.map} +0 -0
  312. /package/dist/{chunk-7NDYFAJS.js.map → chunk-GM3BMWKR.js.map} +0 -0
  313. /package/dist/{chunk-5QUS24F7.js.map → chunk-I56LKMF7.js.map} +0 -0
  314. /package/dist/{chunk-35YJ6KCV.js.map → chunk-JEIROMLX.js.map} +0 -0
  315. /package/dist/{chunk-SKQCFAYU.js.map → chunk-JVEMUX6L.js.map} +0 -0
  316. /package/dist/{chunk-CXMXAC5R.js.map → chunk-K44MIN6D.js.map} +0 -0
  317. /package/dist/{chunk-BQCFXAMN.js.map → chunk-MPHDVHIB.js.map} +0 -0
  318. /package/dist/{chunk-QXNFQKWU.js.map → chunk-MTHNJCOJ.js.map} +0 -0
  319. /package/dist/{chunk-3TCRU4JA.js.map → chunk-O62P2LFL.js.map} +0 -0
  320. /package/dist/{chunk-JSDZMOT7.js.map → chunk-OC56UWV5.js.map} +0 -0
  321. /package/dist/{chunk-7IBEWQLG.js.map → chunk-QOIONSOI.js.map} +0 -0
  322. /package/dist/{chunk-4P5UAL3C.js.map → chunk-RBHANGVX.js.map} +0 -0
  323. /package/dist/{chunk-SK2CR6MW.js.map → chunk-RVLB4E6N.js.map} +0 -0
  324. /package/dist/{chunk-CNVIWMQI.js.map → chunk-UY4JMEAK.js.map} +0 -0
  325. /package/dist/{chunk-S6FQLQGH.js.map → chunk-V7GDTQ6I.js.map} +0 -0
  326. /package/dist/{chunk-JNOYYWCA.js.map → chunk-VO4UICII.js.map} +0 -0
  327. /package/dist/{chunk-54TI5GLV.js.map → chunk-WI4QX7GH.js.map} +0 -0
  328. /package/dist/{chunk-XKU4YE6Z.js.map → chunk-XZTUMWKQ.js.map} +0 -0
@@ -1,4 +1,4 @@
1
- import { k as MemoryFrontmatter } from './types-Dr0Cw3L9.js';
1
+ import { k as MemoryFrontmatter } from './types-D9dwzU_x.js';
2
2
  import { StorageManager } from './storage.js';
3
3
  import './types-gb_SNtjR.js';
4
4
  import './message-parts/index.js';
@@ -1,4 +1,4 @@
1
- import { k as MemoryFrontmatter } from './types-Dr0Cw3L9.js';
1
+ import { k as MemoryFrontmatter } from './types-D9dwzU_x.js';
2
2
  import './types-gb_SNtjR.js';
3
3
  import './message-parts/index.js';
4
4
 
@@ -1,4 +1,4 @@
1
- import { u as BufferTurn, am as ConversationThread } from './types-Dr0Cw3L9.js';
1
+ import { u as BufferTurn, am as ConversationThread } from './types-D9dwzU_x.js';
2
2
  import './types-gb_SNtjR.js';
3
3
  import './message-parts/index.js';
4
4
 
@@ -1,4 +1,4 @@
1
- import { g as MemoryFile } from './types-Dr0Cw3L9.js';
1
+ import { g as MemoryFile } from './types-D9dwzU_x.js';
2
2
  import { StorageManager } from './storage.js';
3
3
  import { MemoryTier } from './tier-routing.js';
4
4
  import { SearchBackend } from './search/port.js';
@@ -1,4 +1,4 @@
1
- import { g as MemoryFile } from './types-Dr0Cw3L9.js';
1
+ import { g as MemoryFile } from './types-D9dwzU_x.js';
2
2
  import { LifecycleSignals } from './lifecycle.js';
3
3
  import './types-gb_SNtjR.js';
4
4
  import './message-parts/index.js';
package/dist/topics.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { g as MemoryFile, an as TopicScore } from './types-Dr0Cw3L9.js';
1
+ import { g as MemoryFile, an as TopicScore } from './types-D9dwzU_x.js';
2
2
  import './types-gb_SNtjR.js';
3
3
  import './message-parts/index.js';
4
4
 
@@ -1,4 +1,4 @@
1
- import { P as PluginConfig, T as TranscriptEntry, v as Checkpoint } from './types-Dr0Cw3L9.js';
1
+ import { P as PluginConfig, T as TranscriptEntry, v as Checkpoint } from './types-D9dwzU_x.js';
2
2
  import { SessionIntegrityReport } from './session-integrity.js';
3
3
  import './types-gb_SNtjR.js';
4
4
  import './message-parts/index.js';
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  importSqlite
3
- } from "../chunk-APJQ6UEA.js";
4
- import "../chunk-G4IAEX6D.js";
3
+ } from "../chunk-AGNBY3VG.js";
5
4
  import "../chunk-Z734BLO3.js";
5
+ import "../chunk-G4IAEX6D.js";
6
6
  import "../chunk-6KYMPV2O.js";
7
7
  import "../chunk-GCGJW34D.js";
8
8
  import "../chunk-PZ5AY32C.js";
@@ -806,6 +806,16 @@ interface CodingKnowledgeConfig {
806
806
  */
807
807
  codegraphDbDir: string;
808
808
  }
809
+ interface ChatConfig {
810
+ /** Master gate. Off = no tools/endpoints/CLI registered (byte-identical, rule 39). */
811
+ enabled: boolean;
812
+ /** Routing override for the chat LLM (empty = use the default chain). */
813
+ model: string;
814
+ /** Max tool calls per user turn before partial-reply fallback (rule 34). */
815
+ maxToolCallsPerTurn: number;
816
+ /** Hours after which idle chat session state is cleaned up. */
817
+ sessionTtlHours: number;
818
+ }
809
819
  /**
810
820
  * Session-scoped coding context. Produced by `resolveGitContext()` in the
811
821
  * connector layer and attached to a session so that recall + write paths can
@@ -1348,6 +1358,7 @@ interface PluginConfig {
1348
1358
  codingMode: CodingModeConfig;
1349
1359
  codingKnowledge: CodingKnowledgeConfig;
1350
1360
  heartbeat: HeartbeatConfig;
1361
+ chat: ChatConfig;
1351
1362
  slotBehavior: SlotBehaviorConfig;
1352
1363
  codexCompat: CodexCompatConfig;
1353
1364
  /**
@@ -1868,6 +1879,19 @@ interface PluginConfig {
1868
1879
  * benchmarking (issue #564 PR 3).
1869
1880
  */
1870
1881
  recallReasoningTraceBoostEnabled: boolean;
1882
+ /**
1883
+ * Issue #1582 — append stable short handles (`[m:4f2a]`) to injected memory
1884
+ * lines at recall render time. Default false: off = byte-identical injection
1885
+ * (rule 39). Token cost ~9 chars/memory; flip the default only with #1574
1886
+ * evidence that answer quality is unaffected (rule 55).
1887
+ */
1888
+ recallMemoryHandles: boolean;
1889
+ /**
1890
+ * Issue #1582 — how many recent per-session recall snapshots (newest first)
1891
+ * handle resolution searches. Older-than-N snapshots are not searched and a
1892
+ * miss is tagged rather than widening the window.
1893
+ */
1894
+ recallHandleSnapshotDepth: number;
1871
1895
  qmdRecallCacheTtlMs: number;
1872
1896
  qmdRecallCacheStaleTtlMs: number;
1873
1897
  qmdRecallCacheMaxEntries: number;
@@ -3516,4 +3540,4 @@ interface HourlySummary {
3516
3540
  generatedAt: string;
3517
3541
  }
3518
3542
 
3519
- export { type EntityStructuredSection as $, type ActiveRecallChatType as A, type BehaviorSignalEvent as B, type CalendarSource as C, type SecretRef as D, type EntityFile as E, type FaithfulnessFrontmatter as F, type GatewayConfig as G, type HourlySummary as H, type IdentityInjectionMode as I, type AgentAccessAuthToken as J, type CompressionGuidelineOptimizerEventCounts as K, type LiveConnectorsConfig as L, type MemoryCategory as M, type CompressionGuidelineOptimizerActionSummary as N, type CompressionGuidelineOptimizerRuleUpdate as O, type PluginConfig as P, type QmdSearchResult as Q, type RecallTierExplain as R, type SessionObserverBandConfig as S, type TranscriptEntry as T, type MemoryActionType as U, type VerificationState as V, type MemoryActionEvent as W, type CompressionGuidelineOptimizerState as X, type EntityMention as Y, type EntitySchemaDefinition as Z, type EntitySchemaSectionDefinition as _, type ActiveRecallQueryMode as a, type MemoryObservation as a$, type ExtractionResult as a0, type ConsolidationResult as a1, type DaySummaryResult as a2, type ContinuityIncidentRecord as a3, type ContinuityIncidentCloseInput as a4, type ContinuityIncidentOpenInput as a5, type ContinuityImprovementLoop as a6, type ContinuityLoopReviewInput as a7, type ContinuityLoopUpsertInput as a8, type ImportanceScore as a9, type WearableSourceConnector as aA, type WearablesConfig as aB, type WearableSyncSummary as aC, type WearableSourceStatus as aD, type WearableDayTranscript as aE, type WearableCorrectionRule as aF, type CodingContext as aG, type BootstrapOptions as aH, type BootstrapResult as aI, type ConsolidationObservation as aJ, type EntityTimelineEntry as aK, type ScopeProfileLayerId as aL, type ScopeProfilePromotionTarget as aM, type ScopeProfileConfig as aN, type DreamsStatusResult as aO, type DreamsPhase as aP, type DreamsRunResult as aQ, type CodingModeConfig as aR, type WearableCleanupSettings as aS, type WearableDayTranscriptMeta as aT, type BriefingConfig as aU, type BriefingOpenCommitment as aV, type BriefingWindow as aW, type CodexCompatConfig as aX, DEFAULT_RECALL_DISCLOSURE as aY, type ExtractedFact as aZ, type MemoryActionEligibilitySource as a_, type MemoryIntent as aa, type QmdSearchExplain as ab, type MemoryActionEligibilityContext as ac, type MemoryActionPolicyResult as ad, type MemoryLifecycleEventType as ae, type MemoryLifecycleStateSummary as af, type ModelProviderConfig as ag, type NativeKnowledgeConfig as ah, type ProvenanceSource as ai, type ProvenanceConfig as aj, type RetrievalTier as ak, type SignalScanResult as al, type ConversationThread as am, type TopicScore as an, type MemoryLink as ao, type BufferState as ap, type MetaState as aq, type FileHygieneConfig as ar, type EntityRelationship as as, type EntityActivityEntry as at, type AccessTrackingEntry as au, type MemorySummary as av, type WearableConversation as aw, type WearableSourceSettings as ax, type WearableNativeMemory as ay, type WearableMemoryMode as az, type ActiveRecallPromptStyle as b, type NativeKnowledgeObsidianVaultConfig as b$, type MemoryScope as b0, RECALL_DISCLOSURE_LEVELS as b1, type WearableAuthCheck as b2, type WearableFetchOptions as b3, type WearableFetchPage as b4, type WearableNativeMemoryPage as b5, type WearableTranscriptSegment as b6, isRecallDisclosure as b7, type AgentAccessHttpConfig as b8, type AgentDefaultsConfig as b9, type DreamsPhaseStatus as bA, type DreamsPhasesConfig as bB, type DreamsRemConfig as bC, type EngramTraceEvent as bD, type ExtractedProcedureStep as bE, type ExtractedQuestion as bF, type ExtractedReasoningTrace as bG, type ExtractedReasoningTraceStep as bH, type ExtractedRelationship as bI, type ExtractionPassSource as bJ, type GitHubLiveConnectorConfig as bK, type GmailLiveConnectorConfig as bL, type GoogleDriveLiveConnectorConfig as bM, type HeartbeatConfig as bN, type HeartbeatDetectionMode as bO, type LlmTraceCallback as bP, type LlmTraceEvent as bQ, type MemoryActionOutcome as bR, type MemoryActionPolicyDecision as bS, type MemoryActionStatus as bT, type MemoryLinkType as bU, type MemoryOsPresetName as bV, type ModelApi as bW, type ModelDefinitionConfig as bX, type ModelProviderAuthMode as bY, type NamespacePolicy as bZ, type NativeKnowledgeFolderRuleConfig as b_, type AgentPersona as ba, type BehaviorLoopAdjustment as bb, type BehaviorSignalDirection as bc, type BehaviorSignalType as bd, type BriefingCalendarSourceError as be, type BufferEntryState as bf, type CaptureMode as bg, type CodexCliReasoningEffort as bh, type CodexCompactionFlushMode as bi, type CodexConnectorConfig as bj, type CodingKnowledgeConfig as bk, type CompressionGuidelineActivationState as bl, type CompressionGuidelineOptimizerSourceWindow as bm, type ConfidenceTier as bn, type ConsolidationAction as bo, type ConsolidationItem as bp, type ContinuityIncidentState as bq, type ContinuityLoopCadence as br, type ContinuityLoopStatus as bs, type ContradictionScanConfig as bt, type CronConversationRecallMode as bu, type CronRecallMode as bv, type DreamingConfig as bw, type DreamingNarrativePromptStyle as bx, type DreamsDeepSleepConfig as by, type DreamsLightSleepConfig as bz, type ActiveRecallThinking as c, type NativeKnowledgeOpenClawWorkspaceConfig as c0, type NotionLiveConnectorConfig as c1, type PrincipalFromSessionKeyMode as c2, type PrincipalRule as c3, type ProceduralConfig as c4, type QuestionEntry as c5, type ReasoningEffort as c6, type RecallPipelineConfig as c7, type RecallSectionConfig as c8, type RecallTraceEvent as c9, type RelevanceFeedback as ca, SPECULATIVE_TTL_DAYS as cb, type ScopeProfileAutoPromoteConfig as cc, type ScopeProfileTeamProjectConfig as cd, type ScopeTeamConfig as ce, type ScoredEntity as cf, type SemanticChunkingConfigShape as cg, type SignalLevel as ch, type SlotBehaviorConfig as ci, type SlotMismatchMode as cj, type TriggerMode as ck, confidenceTier as cl, type ActiveRecallModelFallbackPolicy as d, type BehaviorLoopPolicyState as e, type MemoryStatus as f, type MemoryFile as g, type RecallPlanMode as h, type RecallDisclosure as i, type AgentPersonaModelConfig as j, type MemoryFrontmatter as k, type MemoryProjectionCurrentState as l, type MemoryLifecycleEvent as m, type BriefingSections as n, type BriefingFollowup as o, type BriefingFocus as p, type CalendarEvent as q, type BriefingActiveThread as r, type BriefingResult as s, type BriefingRecentEntity as t, type BufferTurn as u, type Checkpoint as v, type LifecycleState as w, type PolicyClass as x, type ImportanceLevel as y, type BufferSurpriseEvent as z };
3543
+ export { type EntityStructuredSection as $, type ActiveRecallChatType as A, type BehaviorSignalEvent as B, type CalendarSource as C, type SecretRef as D, type EntityFile as E, type FaithfulnessFrontmatter as F, type GatewayConfig as G, type HourlySummary as H, type IdentityInjectionMode as I, type AgentAccessAuthToken as J, type CompressionGuidelineOptimizerEventCounts as K, type LiveConnectorsConfig as L, type MemoryCategory as M, type CompressionGuidelineOptimizerActionSummary as N, type CompressionGuidelineOptimizerRuleUpdate as O, type PluginConfig as P, type QmdSearchResult as Q, type RecallTierExplain as R, type SessionObserverBandConfig as S, type TranscriptEntry as T, type MemoryActionType as U, type VerificationState as V, type MemoryActionEvent as W, type CompressionGuidelineOptimizerState as X, type EntityMention as Y, type EntitySchemaDefinition as Z, type EntitySchemaSectionDefinition as _, type ActiveRecallQueryMode as a, type MemoryObservation as a$, type ExtractionResult as a0, type ConsolidationResult as a1, type DaySummaryResult as a2, type ContinuityIncidentRecord as a3, type ContinuityIncidentCloseInput as a4, type ContinuityIncidentOpenInput as a5, type ContinuityImprovementLoop as a6, type ContinuityLoopReviewInput as a7, type ContinuityLoopUpsertInput as a8, type ImportanceScore as a9, type WearableSourceConnector as aA, type WearablesConfig as aB, type WearableSyncSummary as aC, type WearableSourceStatus as aD, type WearableDayTranscript as aE, type WearableCorrectionRule as aF, type CodingContext as aG, type BootstrapOptions as aH, type BootstrapResult as aI, type ConsolidationObservation as aJ, type EntityTimelineEntry as aK, type ScopeProfileLayerId as aL, type ScopeProfilePromotionTarget as aM, type ScopeProfileConfig as aN, type DreamsStatusResult as aO, type DreamsPhase as aP, type DreamsRunResult as aQ, type CodingModeConfig as aR, type WearableCleanupSettings as aS, type WearableDayTranscriptMeta as aT, type BriefingConfig as aU, type BriefingOpenCommitment as aV, type BriefingWindow as aW, type CodexCompatConfig as aX, DEFAULT_RECALL_DISCLOSURE as aY, type ExtractedFact as aZ, type MemoryActionEligibilitySource as a_, type MemoryIntent as aa, type QmdSearchExplain as ab, type MemoryActionEligibilityContext as ac, type MemoryActionPolicyResult as ad, type MemoryLifecycleEventType as ae, type MemoryLifecycleStateSummary as af, type ModelProviderConfig as ag, type NativeKnowledgeConfig as ah, type ProvenanceSource as ai, type ProvenanceConfig as aj, type RetrievalTier as ak, type SignalScanResult as al, type ConversationThread as am, type TopicScore as an, type MemoryLink as ao, type BufferState as ap, type MetaState as aq, type FileHygieneConfig as ar, type EntityRelationship as as, type EntityActivityEntry as at, type AccessTrackingEntry as au, type MemorySummary as av, type WearableConversation as aw, type WearableSourceSettings as ax, type WearableNativeMemory as ay, type WearableMemoryMode as az, type ActiveRecallPromptStyle as b, type NativeKnowledgeFolderRuleConfig as b$, type MemoryScope as b0, RECALL_DISCLOSURE_LEVELS as b1, type WearableAuthCheck as b2, type WearableFetchOptions as b3, type WearableFetchPage as b4, type WearableNativeMemoryPage as b5, type WearableTranscriptSegment as b6, isRecallDisclosure as b7, type AgentAccessHttpConfig as b8, type AgentDefaultsConfig as b9, type DreamsLightSleepConfig as bA, type DreamsPhaseStatus as bB, type DreamsPhasesConfig as bC, type DreamsRemConfig as bD, type EngramTraceEvent as bE, type ExtractedProcedureStep as bF, type ExtractedQuestion as bG, type ExtractedReasoningTrace as bH, type ExtractedReasoningTraceStep as bI, type ExtractedRelationship as bJ, type ExtractionPassSource as bK, type GitHubLiveConnectorConfig as bL, type GmailLiveConnectorConfig as bM, type GoogleDriveLiveConnectorConfig as bN, type HeartbeatConfig as bO, type HeartbeatDetectionMode as bP, type LlmTraceCallback as bQ, type LlmTraceEvent as bR, type MemoryActionOutcome as bS, type MemoryActionPolicyDecision as bT, type MemoryActionStatus as bU, type MemoryLinkType as bV, type MemoryOsPresetName as bW, type ModelApi as bX, type ModelDefinitionConfig as bY, type ModelProviderAuthMode as bZ, type NamespacePolicy as b_, type AgentPersona as ba, type BehaviorLoopAdjustment as bb, type BehaviorSignalDirection as bc, type BehaviorSignalType as bd, type BriefingCalendarSourceError as be, type BufferEntryState as bf, type CaptureMode as bg, type ChatConfig as bh, type CodexCliReasoningEffort as bi, type CodexCompactionFlushMode as bj, type CodexConnectorConfig as bk, type CodingKnowledgeConfig as bl, type CompressionGuidelineActivationState as bm, type CompressionGuidelineOptimizerSourceWindow as bn, type ConfidenceTier as bo, type ConsolidationAction as bp, type ConsolidationItem as bq, type ContinuityIncidentState as br, type ContinuityLoopCadence as bs, type ContinuityLoopStatus as bt, type ContradictionScanConfig as bu, type CronConversationRecallMode as bv, type CronRecallMode as bw, type DreamingConfig as bx, type DreamingNarrativePromptStyle as by, type DreamsDeepSleepConfig as bz, type ActiveRecallThinking as c, type NativeKnowledgeObsidianVaultConfig as c0, type NativeKnowledgeOpenClawWorkspaceConfig as c1, type NotionLiveConnectorConfig as c2, type PrincipalFromSessionKeyMode as c3, type PrincipalRule as c4, type ProceduralConfig as c5, type QuestionEntry as c6, type ReasoningEffort as c7, type RecallPipelineConfig as c8, type RecallSectionConfig as c9, type RecallTraceEvent as ca, type RelevanceFeedback as cb, SPECULATIVE_TTL_DAYS as cc, type ScopeProfileAutoPromoteConfig as cd, type ScopeProfileTeamProjectConfig as ce, type ScopeTeamConfig as cf, type ScoredEntity as cg, type SemanticChunkingConfigShape as ch, type SignalLevel as ci, type SlotBehaviorConfig as cj, type SlotMismatchMode as ck, type TriggerMode as cl, confidenceTier as cm, type ActiveRecallModelFallbackPolicy as d, type BehaviorLoopPolicyState as e, type MemoryStatus as f, type MemoryFile as g, type RecallPlanMode as h, type RecallDisclosure as i, type AgentPersonaModelConfig as j, type MemoryFrontmatter as k, type MemoryProjectionCurrentState as l, type MemoryLifecycleEvent as m, type BriefingSections as n, type BriefingFollowup as o, type BriefingFocus as p, type CalendarEvent as q, type BriefingActiveThread as r, type BriefingResult as s, type BriefingRecentEntity as t, type BufferTurn as u, type Checkpoint as v, type LifecycleState as w, type PolicyClass as x, type ImportanceLevel as y, type BufferSurpriseEvent as z };
package/dist/types.d.ts CHANGED
@@ -1,3 +1,3 @@
1
1
  import './types-gb_SNtjR.js';
2
2
  import './message-parts/index.js';
3
- export { au as AccessTrackingEntry, A as ActiveRecallChatType, d as ActiveRecallModelFallbackPolicy, b as ActiveRecallPromptStyle, a as ActiveRecallQueryMode, c as ActiveRecallThinking, J as AgentAccessAuthToken, b8 as AgentAccessHttpConfig, b9 as AgentDefaultsConfig, ba as AgentPersona, j as AgentPersonaModelConfig, bb as BehaviorLoopAdjustment, e as BehaviorLoopPolicyState, bc as BehaviorSignalDirection, B as BehaviorSignalEvent, bd as BehaviorSignalType, aH as BootstrapOptions, aI as BootstrapResult, r as BriefingActiveThread, be as BriefingCalendarSourceError, aU as BriefingConfig, p as BriefingFocus, o as BriefingFollowup, aV as BriefingOpenCommitment, t as BriefingRecentEntity, s as BriefingResult, n as BriefingSections, aW as BriefingWindow, bf as BufferEntryState, ap as BufferState, z as BufferSurpriseEvent, u as BufferTurn, q as CalendarEvent, C as CalendarSource, bg as CaptureMode, v as Checkpoint, bh as CodexCliReasoningEffort, bi as CodexCompactionFlushMode, aX as CodexCompatConfig, bj as CodexConnectorConfig, aG as CodingContext, bk as CodingKnowledgeConfig, aR as CodingModeConfig, bl as CompressionGuidelineActivationState, N as CompressionGuidelineOptimizerActionSummary, K as CompressionGuidelineOptimizerEventCounts, O as CompressionGuidelineOptimizerRuleUpdate, bm as CompressionGuidelineOptimizerSourceWindow, X as CompressionGuidelineOptimizerState, bn as ConfidenceTier, bo as ConsolidationAction, bp as ConsolidationItem, aJ as ConsolidationObservation, a1 as ConsolidationResult, a6 as ContinuityImprovementLoop, a4 as ContinuityIncidentCloseInput, a5 as ContinuityIncidentOpenInput, a3 as ContinuityIncidentRecord, bq as ContinuityIncidentState, br as ContinuityLoopCadence, a7 as ContinuityLoopReviewInput, bs as ContinuityLoopStatus, a8 as ContinuityLoopUpsertInput, bt as ContradictionScanConfig, am as ConversationThread, bu as CronConversationRecallMode, bv as CronRecallMode, aY as DEFAULT_RECALL_DISCLOSURE, a2 as DaySummaryResult, bw as DreamingConfig, bx as DreamingNarrativePromptStyle, by as DreamsDeepSleepConfig, bz as DreamsLightSleepConfig, aP as DreamsPhase, bA as DreamsPhaseStatus, bB as DreamsPhasesConfig, bC as DreamsRemConfig, aQ as DreamsRunResult, aO as DreamsStatusResult, bD as EngramTraceEvent, at as EntityActivityEntry, E as EntityFile, Y as EntityMention, as as EntityRelationship, Z as EntitySchemaDefinition, _ as EntitySchemaSectionDefinition, $ as EntityStructuredSection, aK as EntityTimelineEntry, aZ as ExtractedFact, bE as ExtractedProcedureStep, bF as ExtractedQuestion, bG as ExtractedReasoningTrace, bH as ExtractedReasoningTraceStep, bI as ExtractedRelationship, bJ as ExtractionPassSource, a0 as ExtractionResult, F as FaithfulnessFrontmatter, ar as FileHygieneConfig, G as GatewayConfig, bK as GitHubLiveConnectorConfig, bL as GmailLiveConnectorConfig, bM as GoogleDriveLiveConnectorConfig, bN as HeartbeatConfig, bO as HeartbeatDetectionMode, H as HourlySummary, I as IdentityInjectionMode, y as ImportanceLevel, a9 as ImportanceScore, w as LifecycleState, L as LiveConnectorsConfig, bP as LlmTraceCallback, bQ as LlmTraceEvent, ac as MemoryActionEligibilityContext, a_ as MemoryActionEligibilitySource, W as MemoryActionEvent, bR as MemoryActionOutcome, bS as MemoryActionPolicyDecision, ad as MemoryActionPolicyResult, bT as MemoryActionStatus, U as MemoryActionType, M as MemoryCategory, g as MemoryFile, k as MemoryFrontmatter, aa as MemoryIntent, m as MemoryLifecycleEvent, ae as MemoryLifecycleEventType, af as MemoryLifecycleStateSummary, ao as MemoryLink, bU as MemoryLinkType, a$ as MemoryObservation, bV as MemoryOsPresetName, l as MemoryProjectionCurrentState, b0 as MemoryScope, f as MemoryStatus, av as MemorySummary, aq as MetaState, bW as ModelApi, bX as ModelDefinitionConfig, bY as ModelProviderAuthMode, ag as ModelProviderConfig, bZ as NamespacePolicy, ah as NativeKnowledgeConfig, b_ as NativeKnowledgeFolderRuleConfig, b$ as NativeKnowledgeObsidianVaultConfig, c0 as NativeKnowledgeOpenClawWorkspaceConfig, c1 as NotionLiveConnectorConfig, P as PluginConfig, x as PolicyClass, c2 as PrincipalFromSessionKeyMode, c3 as PrincipalRule, c4 as ProceduralConfig, aj as ProvenanceConfig, ai as ProvenanceSource, ab as QmdSearchExplain, Q as QmdSearchResult, c5 as QuestionEntry, b1 as RECALL_DISCLOSURE_LEVELS, c6 as ReasoningEffort, i as RecallDisclosure, c7 as RecallPipelineConfig, h as RecallPlanMode, c8 as RecallSectionConfig, R as RecallTierExplain, c9 as RecallTraceEvent, ca as RelevanceFeedback, ak as RetrievalTier, cb as SPECULATIVE_TTL_DAYS, cc as ScopeProfileAutoPromoteConfig, aN as ScopeProfileConfig, aL as ScopeProfileLayerId, aM as ScopeProfilePromotionTarget, cd as ScopeProfileTeamProjectConfig, ce as ScopeTeamConfig, cf as ScoredEntity, D as SecretRef, cg as SemanticChunkingConfigShape, S as SessionObserverBandConfig, ch as SignalLevel, al as SignalScanResult, ci as SlotBehaviorConfig, cj as SlotMismatchMode, an as TopicScore, T as TranscriptEntry, ck as TriggerMode, V as VerificationState, cl as confidenceTier, b7 as isRecallDisclosure } from './types-Dr0Cw3L9.js';
3
+ export { au as AccessTrackingEntry, A as ActiveRecallChatType, d as ActiveRecallModelFallbackPolicy, b as ActiveRecallPromptStyle, a as ActiveRecallQueryMode, c as ActiveRecallThinking, J as AgentAccessAuthToken, b8 as AgentAccessHttpConfig, b9 as AgentDefaultsConfig, ba as AgentPersona, j as AgentPersonaModelConfig, bb as BehaviorLoopAdjustment, e as BehaviorLoopPolicyState, bc as BehaviorSignalDirection, B as BehaviorSignalEvent, bd as BehaviorSignalType, aH as BootstrapOptions, aI as BootstrapResult, r as BriefingActiveThread, be as BriefingCalendarSourceError, aU as BriefingConfig, p as BriefingFocus, o as BriefingFollowup, aV as BriefingOpenCommitment, t as BriefingRecentEntity, s as BriefingResult, n as BriefingSections, aW as BriefingWindow, bf as BufferEntryState, ap as BufferState, z as BufferSurpriseEvent, u as BufferTurn, q as CalendarEvent, C as CalendarSource, bg as CaptureMode, bh as ChatConfig, v as Checkpoint, bi as CodexCliReasoningEffort, bj as CodexCompactionFlushMode, aX as CodexCompatConfig, bk as CodexConnectorConfig, aG as CodingContext, bl as CodingKnowledgeConfig, aR as CodingModeConfig, bm as CompressionGuidelineActivationState, N as CompressionGuidelineOptimizerActionSummary, K as CompressionGuidelineOptimizerEventCounts, O as CompressionGuidelineOptimizerRuleUpdate, bn as CompressionGuidelineOptimizerSourceWindow, X as CompressionGuidelineOptimizerState, bo as ConfidenceTier, bp as ConsolidationAction, bq as ConsolidationItem, aJ as ConsolidationObservation, a1 as ConsolidationResult, a6 as ContinuityImprovementLoop, a4 as ContinuityIncidentCloseInput, a5 as ContinuityIncidentOpenInput, a3 as ContinuityIncidentRecord, br as ContinuityIncidentState, bs as ContinuityLoopCadence, a7 as ContinuityLoopReviewInput, bt as ContinuityLoopStatus, a8 as ContinuityLoopUpsertInput, bu as ContradictionScanConfig, am as ConversationThread, bv as CronConversationRecallMode, bw as CronRecallMode, aY as DEFAULT_RECALL_DISCLOSURE, a2 as DaySummaryResult, bx as DreamingConfig, by as DreamingNarrativePromptStyle, bz as DreamsDeepSleepConfig, bA as DreamsLightSleepConfig, aP as DreamsPhase, bB as DreamsPhaseStatus, bC as DreamsPhasesConfig, bD as DreamsRemConfig, aQ as DreamsRunResult, aO as DreamsStatusResult, bE as EngramTraceEvent, at as EntityActivityEntry, E as EntityFile, Y as EntityMention, as as EntityRelationship, Z as EntitySchemaDefinition, _ as EntitySchemaSectionDefinition, $ as EntityStructuredSection, aK as EntityTimelineEntry, aZ as ExtractedFact, bF as ExtractedProcedureStep, bG as ExtractedQuestion, bH as ExtractedReasoningTrace, bI as ExtractedReasoningTraceStep, bJ as ExtractedRelationship, bK as ExtractionPassSource, a0 as ExtractionResult, F as FaithfulnessFrontmatter, ar as FileHygieneConfig, G as GatewayConfig, bL as GitHubLiveConnectorConfig, bM as GmailLiveConnectorConfig, bN as GoogleDriveLiveConnectorConfig, bO as HeartbeatConfig, bP as HeartbeatDetectionMode, H as HourlySummary, I as IdentityInjectionMode, y as ImportanceLevel, a9 as ImportanceScore, w as LifecycleState, L as LiveConnectorsConfig, bQ as LlmTraceCallback, bR as LlmTraceEvent, ac as MemoryActionEligibilityContext, a_ as MemoryActionEligibilitySource, W as MemoryActionEvent, bS as MemoryActionOutcome, bT as MemoryActionPolicyDecision, ad as MemoryActionPolicyResult, bU as MemoryActionStatus, U as MemoryActionType, M as MemoryCategory, g as MemoryFile, k as MemoryFrontmatter, aa as MemoryIntent, m as MemoryLifecycleEvent, ae as MemoryLifecycleEventType, af as MemoryLifecycleStateSummary, ao as MemoryLink, bV as MemoryLinkType, a$ as MemoryObservation, bW as MemoryOsPresetName, l as MemoryProjectionCurrentState, b0 as MemoryScope, f as MemoryStatus, av as MemorySummary, aq as MetaState, bX as ModelApi, bY as ModelDefinitionConfig, bZ as ModelProviderAuthMode, ag as ModelProviderConfig, b_ as NamespacePolicy, ah as NativeKnowledgeConfig, b$ as NativeKnowledgeFolderRuleConfig, c0 as NativeKnowledgeObsidianVaultConfig, c1 as NativeKnowledgeOpenClawWorkspaceConfig, c2 as NotionLiveConnectorConfig, P as PluginConfig, x as PolicyClass, c3 as PrincipalFromSessionKeyMode, c4 as PrincipalRule, c5 as ProceduralConfig, aj as ProvenanceConfig, ai as ProvenanceSource, ab as QmdSearchExplain, Q as QmdSearchResult, c6 as QuestionEntry, b1 as RECALL_DISCLOSURE_LEVELS, c7 as ReasoningEffort, i as RecallDisclosure, c8 as RecallPipelineConfig, h as RecallPlanMode, c9 as RecallSectionConfig, R as RecallTierExplain, ca as RecallTraceEvent, cb as RelevanceFeedback, ak as RetrievalTier, cc as SPECULATIVE_TTL_DAYS, cd as ScopeProfileAutoPromoteConfig, aN as ScopeProfileConfig, aL as ScopeProfileLayerId, aM as ScopeProfilePromotionTarget, ce as ScopeProfileTeamProjectConfig, cf as ScopeTeamConfig, cg as ScoredEntity, D as SecretRef, ch as SemanticChunkingConfigShape, S as SessionObserverBandConfig, ci as SignalLevel, al as SignalScanResult, cj as SlotBehaviorConfig, ck as SlotMismatchMode, an as TopicScore, T as TranscriptEntry, cl as TriggerMode, V as VerificationState, cm as confidenceTier, b7 as isRecallDisclosure } from './types-D9dwzU_x.js';
package/dist/types.js CHANGED
@@ -4,7 +4,7 @@ import {
4
4
  SPECULATIVE_TTL_DAYS,
5
5
  confidenceTier,
6
6
  isRecallDisclosure
7
- } from "./chunk-BOGENF7P.js";
7
+ } from "./chunk-MSVSP5VO.js";
8
8
  import "./chunk-PZ5AY32C.js";
9
9
  export {
10
10
  DEFAULT_RECALL_DISCLOSURE,
@@ -1,5 +1,5 @@
1
1
  import { TierRoutingPolicy } from './tier-routing.js';
2
- import './types-Dr0Cw3L9.js';
2
+ import './types-D9dwzU_x.js';
3
3
  import './types-gb_SNtjR.js';
4
4
  import './message-parts/index.js';
5
5
  import './lifecycle.js';
@@ -1,20 +1,20 @@
1
1
  import {
2
2
  compareVerifiedEpisodeResults,
3
3
  searchVerifiedEpisodes
4
- } from "./chunk-S6FQLQGH.js";
4
+ } from "./chunk-V7GDTQ6I.js";
5
5
  import "./chunk-7FL4CNPV.js";
6
6
  import "./chunk-ZBJMUXZH.js";
7
- import "./chunk-JSDZMOT7.js";
8
- import "./chunk-M7XQSUBB.js";
7
+ import "./chunk-OC56UWV5.js";
9
8
  import "./chunk-3JJWNZTT.js";
9
+ import "./chunk-M7XQSUBB.js";
10
10
  import "./chunk-5UZXUTVO.js";
11
11
  import "./chunk-5GPPACXK.js";
12
12
  import "./chunk-TKZ3AL5V.js";
13
13
  import "./chunk-6CIAGZ6X.js";
14
+ import "./chunk-J6A3CX5N.js";
14
15
  import "./chunk-SVOZFLIQ.js";
15
16
  import "./chunk-LTJAMRGI.js";
16
- import "./chunk-J6A3CX5N.js";
17
- import "./chunk-BOGENF7P.js";
17
+ import "./chunk-MSVSP5VO.js";
18
18
  import "./chunk-RULE4VG5.js";
19
19
  import "./chunk-SCU65EZI.js";
20
20
  import "./chunk-MB5RSUW6.js";
@@ -36,13 +36,14 @@ import "./chunk-J2HSAU72.js";
36
36
  import "./chunk-A6XUJE5D.js";
37
37
  import "./chunk-P7FMDTKL.js";
38
38
  import "./chunk-VS2IYZRU.js";
39
- import "./chunk-SK2CR6MW.js";
40
- import "./chunk-FVQJYWH7.js";
39
+ import "./chunk-RVLB4E6N.js";
40
+ import "./chunk-5GKPFL3S.js";
41
41
  import "./chunk-4DJQYKMN.js";
42
42
  import "./chunk-EYIEWJNI.js";
43
43
  import "./chunk-JUC24CTX.js";
44
44
  import "./chunk-NU3CSQ4H.js";
45
45
  import "./chunk-6MKAMLQL.js";
46
+ import "./chunk-JAKIDQB2.js";
46
47
  import "./chunk-PZ5AY32C.js";
47
48
  export {
48
49
  compareVerifiedEpisodeResults,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@remnic/core",
3
- "version": "9.3.712",
3
+ "version": "9.3.714",
4
4
  "description": "Framework-agnostic Remnic memory engine — orchestrator, storage, extraction, search, trust zones",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -2966,7 +2966,7 @@
2966
2966
  "core"
2967
2967
  ],
2968
2968
  "peerDependencies": {
2969
- "@remnic/coding-graph": "^9.3.712"
2969
+ "@remnic/coding-graph": "^9.3.714"
2970
2970
  },
2971
2971
  "peerDependenciesMeta": {
2972
2972
  "@remnic/coding-graph": {
@@ -156,7 +156,10 @@ export type OperationName =
156
156
  | "trust_zones_demo_seed"
157
157
  | "citations_observed"
158
158
  | "contradiction_detail"
159
- | "graph_events";
159
+ | "graph_events"
160
+ // Chat surface — conversational memory inspection/correction (issue #1583).
161
+ | "chat_message"
162
+ | "chat_events";
160
163
 
161
164
  // ---------------------------------------------------------------------------
162
165
  // Operation context — what every handler receives
@@ -33,6 +33,7 @@ import { getOperation } from "./access-boundary.js";
33
33
  // (memory_get / memory_store) as a side effect; the HTTP handlers below
34
34
  // dispatch the migrated routes through the registry (issue #1525).
35
35
  import "./access-operations.js";
36
+ import { handleChatMessage, handleChatEventsSSE } from "./chat/chat-http.js";
36
37
 
37
38
  export interface EngramAccessHttpServerOptions {
38
39
  service: EngramAccessService;
@@ -320,6 +321,7 @@ export class EngramAccessHttpServer {
320
321
  architectureCardVisible: this.service.architectureCardSurfaceVisible,
321
322
  codegraphVisible: this.service.codegraphSurfaceVisible,
322
323
  sessionDeltaVisible: this.service.sessionDeltaSurfaceVisible,
324
+ chatVisible: this.service.configRef?.chat?.enabled === true,
323
325
  correctionVisible: this.service.correctionSurfaceVisible,
324
326
  });
325
327
  }
@@ -1257,24 +1259,39 @@ export class EngramAccessHttpServer {
1257
1259
  if (req.method === "POST" && pathname === "/engram/v1/observe") {
1258
1260
  void getOperation("observe"); // boundary dispatch (issue #1525)
1259
1261
  const body = await this.readValidatedBody(req, "observe");
1260
- this.ensureWriteRateLimitAvailable();
1261
- const response = await this.service.observe({
1262
- sessionKey: body.sessionKey,
1263
- messages: body.messages.map((message) => ({
1264
- role: message.role,
1265
- content: message.content,
1266
- sourceFormat: message.sourceFormat ?? undefined,
1267
- rawContent: message.rawContent ?? undefined,
1268
- parts: message.parts ?? undefined,
1269
- })),
1270
- namespace: this.resolveNamespace(req, body.namespace),
1271
- authenticatedPrincipal: this.resolveRequestPrincipal(req),
1272
- skipExtraction: body.skipExtraction === true,
1273
- // Forward cwd/projectTag for auto git-context resolution (issue #569).
1274
- cwd: body.cwd,
1275
- projectTag: body.projectTag,
1276
- });
1277
- this.recordWriteRateLimitHit();
1262
+ const response = await this.service.observe(
1263
+ {
1264
+ sessionKey: body.sessionKey,
1265
+ messages: body.messages.map((message) => ({
1266
+ role: message.role,
1267
+ content: message.content,
1268
+ sourceFormat: message.sourceFormat ?? undefined,
1269
+ rawContent: message.rawContent ?? undefined,
1270
+ parts: message.parts ?? undefined,
1271
+ })),
1272
+ namespace: this.resolveNamespace(req, body.namespace),
1273
+ authenticatedPrincipal: this.resolveRequestPrincipal(req),
1274
+ skipExtraction: body.skipExtraction === true,
1275
+ // Issue #1649: optional server-side dedup key for retried POSTs.
1276
+ idempotencyKey: body.idempotencyKey,
1277
+ // Forward cwd/projectTag for auto git-context resolution (issue #569).
1278
+ cwd: body.cwd,
1279
+ projectTag: body.projectTag,
1280
+ },
1281
+ // Enforce the write-quota INSIDE the service's idempotency lock
1282
+ // (beforeExecute, only on a real miss). A retried observe that hits the
1283
+ // replay path must NOT be rejected with 429 — that is exactly the
1284
+ // response-lost-after-process case the dedup exists for. The original
1285
+ // attempt may have consumed the last quota slot; the retry returns the
1286
+ // cached response without requiring another. Matches memory_store's
1287
+ // hook-in-the-lock pattern (#1434 invariant).
1288
+ { enforceWriteQuota: () => this.ensureWriteRateLimitAvailable() },
1289
+ );
1290
+ // A replayed (deduplicated) observe must not consume a second write-quota
1291
+ // slot — same invariant as memory_store/suggestion_submit (#1434).
1292
+ if (this.shouldCountWriteRateLimit(response as { dryRun?: boolean; idempotencyReplay?: boolean })) {
1293
+ this.recordWriteRateLimitHit();
1294
+ }
1278
1295
  this.respondJson(res, 202, response);
1279
1296
  return;
1280
1297
  }
@@ -1546,6 +1563,14 @@ export class EngramAccessHttpServer {
1546
1563
  if (req.method === "GET" && memoryMatch) {
1547
1564
  const memoryId = decodeURIComponent(memoryMatch[1] ?? "");
1548
1565
  const namespace = parsed.searchParams.get("namespace") ?? undefined;
1566
+ // Issue #1582 — thread the transport session key so a `[m:xxxx]` handle in
1567
+ // the path resolves against this session's recall history (codex review).
1568
+ // resolveRequestIdentity reads it from adapter identity / request headers.
1569
+ const sessionKey =
1570
+ this.resolveRequestIdentity(req).sessionKey
1571
+ ?? parsed.searchParams.get("session")
1572
+ ?? parsed.searchParams.get("sessionKey")
1573
+ ?? undefined;
1549
1574
  // Migrated through the access boundary (issue #1525): the registry
1550
1575
  // entry owns memoryId presence/shape validation (rule 51: reject empty
1551
1576
  // ids loudly instead of silently passing "" into the service) and the
@@ -1555,7 +1580,7 @@ export class EngramAccessHttpServer {
1555
1580
  throw new EngramAccessInputError("access-boundary: operation not registered: memory_get");
1556
1581
  }
1557
1582
  const output = (await op.run(
1558
- { memoryId, namespace: namespace ?? null },
1583
+ { memoryId, namespace: namespace ?? null, sessionKey: sessionKey ?? null },
1559
1584
  { service: this.service, authenticatedPrincipal: this.resolveRequestPrincipal(req) },
1560
1585
  )) as { result: EngramAccessMemoryResponse };
1561
1586
  const response = output.result;
@@ -2033,6 +2058,28 @@ export class EngramAccessHttpServer {
2033
2058
  return;
2034
2059
  }
2035
2060
 
2061
+ // ── Chat endpoints (issue #1583) ────────────────────────────────────────
2062
+ if (req.method === "POST" && pathname === "/engram/v1/chat/message") {
2063
+ void getOperation("chat_message"); // boundary dispatch (issue #1525)
2064
+ const body = await this.readJsonBody(req) as Record<string, unknown>;
2065
+ await handleChatMessage(
2066
+ req, res, body,
2067
+ { service: this.service, config: this.service.configRef?.chat, memoryDir: this.service.memoryDir },
2068
+ this.resolveRequestPrincipal(req),
2069
+ );
2070
+ return;
2071
+ }
2072
+ const chatEventsMatch = /^\/engram\/v1\/chat\/events\/([^/]+)$/.exec(pathname);
2073
+ if (req.method === "GET" && chatEventsMatch) {
2074
+ void getOperation("chat_events"); // boundary dispatch (issue #1525)
2075
+ await handleChatEventsSSE(
2076
+ req, res, chatEventsMatch[1] ?? "",
2077
+ { service: this.service, config: this.service.configRef?.chat, memoryDir: this.service.memoryDir },
2078
+ this.resolveRequestPrincipal(req),
2079
+ );
2080
+ return;
2081
+ }
2082
+
2036
2083
  // ── Peer Registry endpoints (issue #679) ─────────────────────────────────
2037
2084
  // GET /engram/v1/console/state — operator console engine-state snapshot (issue #688 PR 2/3).
2038
2085
  // Read-only; namespace-aware via resolveRequestPrincipal so cross-tenant
@@ -2595,7 +2642,15 @@ export class EngramAccessHttpServer {
2595
2642
  codingArchitectureWrite ||
2596
2643
  codegraphWrite
2597
2644
  );
2598
- if (isMcpWrite) {
2645
+ // observe self-enforces quota INSIDE its idempotency lock via the
2646
+ // enforceWriteQuota hook (issue #1649) — mirroring the direct
2647
+ // /engram/v1/observe route — so it must NOT be pre-checked here: a
2648
+ // pre-check would 429 a response-lost replay. It still counts as a write
2649
+ // for post-recording (the replay guard in shouldCountWriteRateLimit skips
2650
+ // the record). Other write tools keep the coarse pre-check.
2651
+ const observeSelfEnforcesQuota =
2652
+ toolName === "engram.observe" || toolName === "remnic.observe";
2653
+ if (isMcpWrite && !observeSelfEnforcesQuota) {
2599
2654
  this.ensureWriteRateLimitAvailable();
2600
2655
  }
2601
2656
 
@@ -2611,6 +2666,9 @@ export class EngramAccessHttpServer {
2611
2666
  sessionKeyOverride: requestIdentity.sessionKey,
2612
2667
  sessionId,
2613
2668
  correlationId: mcpCorrelationId,
2669
+ enforceWriteQuota: observeSelfEnforcesQuota
2670
+ ? () => this.ensureWriteRateLimitAvailable()
2671
+ : undefined,
2614
2672
  });
2615
2673
 
2616
2674
  if (isMcpWrite && response !== null) {
@@ -477,6 +477,7 @@ test("MCP session override is injected only into tools that accept sessionKey",
477
477
  namespace: undefined,
478
478
  authenticatedPrincipal: undefined,
479
479
  skipExtraction: false,
480
+ idempotencyKey: undefined,
480
481
  cwd: undefined,
481
482
  projectTag: undefined,
482
483
  });
@@ -484,6 +485,34 @@ test("MCP session override is injected only into tools that accept sessionKey",
484
485
  assert.equal((observeResponse as Record<string, unknown> & { result?: { isError?: boolean } }).result?.isError, false);
485
486
  });
486
487
 
488
+ test("MCP memory_get advertises sessionKey so the override reaches the resolver (#1582)", async () => {
489
+ // The engram.memory_get inputSchema must advertise sessionKey, otherwise
490
+ // toolAcceptsArgument skips the override injection and an MCP caller citing a
491
+ // [m:xxxx] handle gets "cannot be resolved without a session key" (codex
492
+ // review). With the field advertised, the transport session key flows through
493
+ // the registry op into service.memoryGet as the 4th positional arg.
494
+ let receivedSessionKey: string | undefined;
495
+ const service = {
496
+ ...makeMockService(),
497
+ memoryGet: (_id: string, _ns?: string, _principal?: string, sessionKey?: string) => {
498
+ receivedSessionKey = sessionKey;
499
+ return Promise.resolve({ found: false, namespace: "default" });
500
+ },
501
+ } as unknown as EngramAccessService;
502
+ const server = new EngramMcpServer(service);
503
+
504
+ const response = await server.handleRequest(
505
+ makeToolRequest("engram.memory_get", { memoryId: "[m:4f2a]" }),
506
+ { sessionKeyOverride: "adapter-session" },
507
+ );
508
+
509
+ assert.equal(receivedSessionKey, "adapter-session");
510
+ assert.equal(
511
+ (response as Record<string, unknown> & { result?: { isError?: boolean } }).result?.isError,
512
+ false,
513
+ );
514
+ });
515
+
487
516
  test("MCP capsule import forwards encrypted archive passphrase", async () => {
488
517
  let received: Record<string, unknown> | undefined;
489
518
  const service = {