@remnic/core 9.65.7 → 9.65.8

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 (512) hide show
  1. package/dist/access-admin-ops-surface.d.ts +15 -13
  2. package/dist/access-admin-ops-surface.js +42 -42
  3. package/dist/access-authorization-probe.d.ts +15 -13
  4. package/dist/access-authorization-probe.js +43 -43
  5. package/dist/access-boundary.d.ts +15 -13
  6. package/dist/access-boundary.js +42 -42
  7. package/dist/access-cli.js +143 -140
  8. package/dist/access-cli.js.map +1 -1
  9. package/dist/access-coding-context-resolution.d.ts +2 -1
  10. package/dist/access-extraction-force-flush.d.ts +15 -13
  11. package/dist/access-extraction-force-flush.js +42 -42
  12. package/dist/access-health-types.d.ts +2 -1
  13. package/dist/access-http-lcm-compaction.d.ts +15 -13
  14. package/dist/access-http-lifecycle-flush.d.ts +15 -13
  15. package/dist/access-http-offline-stream.d.ts +15 -13
  16. package/dist/access-http-query.d.ts +3 -2
  17. package/dist/access-http-query.js +44 -44
  18. package/dist/access-http.d.ts +16 -14
  19. package/dist/access-http.js +59 -59
  20. package/dist/access-identity-continuity-surface.d.ts +13 -11
  21. package/dist/access-identity-continuity-surface.js +42 -42
  22. package/dist/access-lcm-surface.d.ts +15 -13
  23. package/dist/access-lcm-surface.js +42 -42
  24. package/dist/access-mcp.d.ts +15 -13
  25. package/dist/access-mcp.js +49 -49
  26. package/dist/access-memory-search-fanout.d.ts +3 -2
  27. package/dist/{access-namespace-preflight-8VYKmRX0.d.ts → access-namespace-preflight-CpAOrS-9.d.ts} +1 -1
  28. package/dist/access-namespace-preflight.d.ts +4 -3
  29. package/dist/access-namespace-preflight.js +42 -42
  30. package/dist/access-observe-write-surface.d.ts +15 -13
  31. package/dist/access-observe-write-surface.js +42 -42
  32. package/dist/access-offline-manifest.d.ts +13 -11
  33. package/dist/access-offline-manifest.js +6 -6
  34. package/dist/access-operations-batch.js +45 -45
  35. package/dist/access-operations.d.ts +20 -18
  36. package/dist/access-operations.js +48 -48
  37. package/dist/access-recall-concurrency.d.ts +15 -13
  38. package/dist/access-recall-concurrency.js +42 -42
  39. package/dist/access-recall-response.d.ts +15 -13
  40. package/dist/access-recall-response.js +42 -42
  41. package/dist/access-recall-surface.d.ts +15 -13
  42. package/dist/access-recall-surface.js +42 -42
  43. package/dist/access-schema.d.ts +83 -83
  44. package/dist/{access-service-Crk__Git.d.ts → access-service-Diu61Cfv.d.ts} +71 -71
  45. package/dist/access-service-helpers.d.ts +15 -13
  46. package/dist/access-service.d.ts +15 -13
  47. package/dist/access-service.js +42 -42
  48. package/dist/access-surface-catalog.d.ts +15 -13
  49. package/dist/access-surface-catalog.js +44 -44
  50. package/dist/access-wearables-meetings-surface.d.ts +6 -3
  51. package/dist/action-confidence.d.ts +2 -1
  52. package/dist/active-context-config.d.ts +27 -0
  53. package/dist/active-context-config.js +14 -0
  54. package/dist/active-context-transform.d.ts +267 -0
  55. package/dist/active-context-transform.js +31 -0
  56. package/dist/active-context-transform.js.map +1 -0
  57. package/dist/active-memory-bridge.d.ts +2 -1
  58. package/dist/active-recall.d.ts +2 -1
  59. package/dist/active-recall.js +10 -9
  60. package/dist/active-recall.js.map +1 -1
  61. package/dist/adapters/index.js +7 -7
  62. package/dist/adapters/registry.js +3 -3
  63. package/dist/ambient-provenance.d.ts +2 -1
  64. package/dist/artifact-search.d.ts +2 -1
  65. package/dist/{auto-sync-XVMLL2RH.js → auto-sync-2YPITIWN.js} +6 -6
  66. package/dist/behavior-learner.d.ts +2 -1
  67. package/dist/behavior-signals.d.ts +2 -1
  68. package/dist/bootstrap.d.ts +13 -11
  69. package/dist/briefing-window.d.ts +5 -2
  70. package/dist/briefing.d.ts +5 -2
  71. package/dist/briefing.js +23 -23
  72. package/dist/buffer-surprise-report.d.ts +2 -1
  73. package/dist/buffer-turn-helpers.d.ts +2 -1
  74. package/dist/buffer.d.ts +5 -2
  75. package/dist/buffer.js +6 -6
  76. package/dist/bulk-import/index.d.ts +4 -3
  77. package/dist/calibration.d.ts +2 -1
  78. package/dist/capabilities.d.ts +2 -1
  79. package/dist/{catalog-DybwVNW3.d.ts → catalog-9f-vEQLS.d.ts} +1 -1
  80. package/dist/causal-behavior.d.ts +4 -3
  81. package/dist/causal-consolidation.d.ts +2 -1
  82. package/dist/causal-consolidation.js +24 -24
  83. package/dist/causal-trajectory-graph.d.ts +2 -1
  84. package/dist/{chunk-JBPKEARU.js → chunk-2QSZNTDO.js} +7 -7
  85. package/dist/{chunk-S3K2CIK5.js → chunk-3A2NJP2U.js} +2 -2
  86. package/dist/{chunk-OPGL46PX.js → chunk-3PKAS6VL.js} +2 -2
  87. package/dist/{chunk-GTSVEEP3.js → chunk-3SZD4CYO.js} +3 -3
  88. package/dist/chunk-43HUVDTD.js +114 -0
  89. package/dist/chunk-43HUVDTD.js.map +1 -0
  90. package/dist/{chunk-YKWFK7XA.js → chunk-4F4AQFWL.js} +7 -7
  91. package/dist/{chunk-RGCF4XNH.js → chunk-4QEYREAV.js} +9 -9
  92. package/dist/{chunk-46WM6JX2.js → chunk-4ZWCQJNM.js} +5 -5
  93. package/dist/{chunk-DVYRD4HY.js → chunk-5ACCD4L7.js} +30 -1
  94. package/dist/chunk-5ACCD4L7.js.map +1 -0
  95. package/dist/{chunk-3RI5Y7KU.js → chunk-5DHKCO52.js} +2 -2
  96. package/dist/{chunk-VKCAHCBI.js → chunk-5RWZH6PH.js} +2 -2
  97. package/dist/{chunk-52II7PB6.js → chunk-645WOU5I.js} +4 -4
  98. package/dist/{chunk-A32YEQAM.js → chunk-76DIF5KT.js} +2 -2
  99. package/dist/{chunk-OPPBTPUU.js → chunk-7KQB4EBS.js} +4 -4
  100. package/dist/{chunk-I2HTKOOP.js → chunk-7VZFRUQU.js} +3 -3
  101. package/dist/{chunk-D4QVPP3G.js → chunk-7WOWGRAU.js} +10 -6
  102. package/dist/chunk-7WOWGRAU.js.map +1 -0
  103. package/dist/{chunk-JCWY73FK.js → chunk-AHPIFKNG.js} +2 -2
  104. package/dist/{chunk-IP4ZNT4U.js → chunk-AZMLH5UT.js} +2 -2
  105. package/dist/chunk-B32WYRXX.js +77 -0
  106. package/dist/chunk-B32WYRXX.js.map +1 -0
  107. package/dist/{chunk-JOEJG4SD.js → chunk-BEC4YBNA.js} +4 -4
  108. package/dist/{chunk-VXVZ2GM3.js → chunk-CAMNRAJF.js} +2 -2
  109. package/dist/{chunk-C24UZSFW.js → chunk-CEH2AFXG.js} +6 -6
  110. package/dist/{chunk-YOXVZJFM.js → chunk-CFVTRUR3.js} +2 -2
  111. package/dist/{chunk-SVSRPG6M.js → chunk-CPA5NBHN.js} +2 -2
  112. package/dist/{chunk-7BEPVIH3.js → chunk-CRML27CO.js} +3 -3
  113. package/dist/{chunk-IY7UXD3J.js → chunk-DA7ITC5Z.js} +2 -2
  114. package/dist/{chunk-AFR6AIM4.js → chunk-DEACDKE3.js} +3 -3
  115. package/dist/{chunk-NG3MBQV4.js → chunk-DPCXDG7G.js} +2 -2
  116. package/dist/{chunk-HZNYJN77.js → chunk-F3NVYTTA.js} +2 -2
  117. package/dist/{chunk-PDDSFELN.js → chunk-F7XUD3PL.js} +2 -2
  118. package/dist/{chunk-YWSQD2IB.js → chunk-GTO56JY5.js} +2 -2
  119. package/dist/{chunk-RAIUTAZZ.js → chunk-H2YSH3DG.js} +2 -2
  120. package/dist/{chunk-F6QHHRWP.js → chunk-HMZKGHMD.js} +2 -2
  121. package/dist/{chunk-ZIJDI4CP.js → chunk-HRHO3ZNG.js} +2 -2
  122. package/dist/{chunk-SDEPLF7V.js → chunk-IBJ6U753.js} +2 -2
  123. package/dist/{chunk-T3JQTCCO.js → chunk-JI7U6AS3.js} +4 -4
  124. package/dist/{chunk-TR7DGXGI.js → chunk-JOZUBF4A.js} +5 -5
  125. package/dist/{chunk-I7EX6KSH.js → chunk-JYSN42VN.js} +55 -55
  126. package/dist/{chunk-ZPUIRTIZ.js → chunk-KOLJJN5G.js} +12 -75
  127. package/dist/chunk-KOLJJN5G.js.map +1 -0
  128. package/dist/{chunk-FMQ4MOQO.js → chunk-KZIF6XHX.js} +14 -14
  129. package/dist/chunk-LB7WCZHY.js +553 -0
  130. package/dist/chunk-LB7WCZHY.js.map +1 -0
  131. package/dist/{chunk-RIAM7DND.js → chunk-LDKPDODJ.js} +2 -2
  132. package/dist/{chunk-227UFSEQ.js → chunk-LEPOP46W.js} +4 -4
  133. package/dist/{chunk-LLQCM2U2.js → chunk-LKYIOCWL.js} +101 -101
  134. package/dist/{chunk-5S4LQOPE.js → chunk-LOXHYCVS.js} +2 -2
  135. package/dist/{chunk-ANJXPFRS.js → chunk-LPNCR4QK.js} +8 -8
  136. package/dist/{chunk-GEPACVWN.js → chunk-MDD2RINF.js} +2 -2
  137. package/dist/{chunk-H63EDPFJ.js → chunk-MI2OTWV5.js} +15 -2
  138. package/dist/{chunk-H63EDPFJ.js.map → chunk-MI2OTWV5.js.map} +1 -1
  139. package/dist/{chunk-LBFFNDFM.js → chunk-MINHJ55X.js} +1 -1
  140. package/dist/chunk-MINHJ55X.js.map +1 -0
  141. package/dist/{chunk-6CPUQ5D6.js → chunk-MY2BC6UE.js} +13 -13
  142. package/dist/{chunk-CFGU52XJ.js → chunk-NPFUNWNX.js} +2 -2
  143. package/dist/{chunk-MFOSZUIT.js → chunk-NPIBN2VL.js} +2 -2
  144. package/dist/{chunk-5DH6PG4B.js → chunk-OA2O2GJ4.js} +3 -3
  145. package/dist/{chunk-JAQXUGLN.js → chunk-ODU2CNNX.js} +2 -2
  146. package/dist/{chunk-RQE4TITU.js → chunk-OXRRJXPR.js} +32 -32
  147. package/dist/{chunk-SEA6M7SS.js → chunk-P36Z4JRA.js} +2 -2
  148. package/dist/{chunk-Z4U3UN56.js → chunk-PU56CXZA.js} +6 -6
  149. package/dist/{chunk-5VPQSRQO.js → chunk-S5XOSTYM.js} +3 -3
  150. package/dist/{chunk-SVVIASVX.js → chunk-SEEJOGQX.js} +5 -5
  151. package/dist/{chunk-7TCGNUVP.js → chunk-SNOIKAHM.js} +2 -2
  152. package/dist/{chunk-7F27PCSN.js → chunk-T6ILXUAH.js} +2 -2
  153. package/dist/{chunk-EOHKUWXW.js → chunk-T7XP6IZE.js} +2 -2
  154. package/dist/{chunk-7WR462EM.js → chunk-TFR3HG4K.js} +3 -3
  155. package/dist/{chunk-YRVAKONL.js → chunk-TUHBYJXL.js} +1 -1
  156. package/dist/{chunk-F635GAL7.js → chunk-U7EW2W4W.js} +10 -10
  157. package/dist/{chunk-VFYRYFLL.js → chunk-UEBDCMOO.js} +2 -2
  158. package/dist/{chunk-WTOZBZNN.js → chunk-UENKPWCS.js} +4 -4
  159. package/dist/{chunk-AAXJNINV.js → chunk-UL4MKZHI.js} +2 -2
  160. package/dist/{chunk-R2MZCYA6.js → chunk-UNUMFURP.js} +3 -3
  161. package/dist/{chunk-ACOC27BB.js → chunk-UPFNQJC7.js} +2 -2
  162. package/dist/{chunk-W4BMEGQA.js → chunk-UTQUEHC7.js} +2 -2
  163. package/dist/{chunk-I32NKXE2.js → chunk-V4IDF3EZ.js} +2 -2
  164. package/dist/{chunk-BJTHRFFC.js → chunk-W2BAGGEW.js} +51 -19
  165. package/dist/chunk-W2BAGGEW.js.map +1 -0
  166. package/dist/{chunk-ZAOHJDKH.js → chunk-WNXYT4MK.js} +3 -3
  167. package/dist/{chunk-T42L3S6A.js → chunk-XBGHAAKR.js} +2 -2
  168. package/dist/{chunk-I4343FIA.js → chunk-XNWXSGHS.js} +4 -4
  169. package/dist/{chunk-THG4GYIE.js → chunk-YEUXERJ6.js} +5 -5
  170. package/dist/{chunk-EZ25VE3G.js → chunk-YNDLCWXS.js} +4 -4
  171. package/dist/{chunk-5HERQ5FX.js → chunk-Z3YEGSR4.js} +10 -10
  172. package/dist/{cli-B322UMvB.d.ts → cli-O3F-ht3i.d.ts} +5 -5
  173. package/dist/cli.d.ts +17 -15
  174. package/dist/cli.js +92 -91
  175. package/dist/coding/pre-action-gate.d.ts +2 -1
  176. package/dist/compounding/engine.d.ts +5 -2
  177. package/dist/compounding/engine.js +24 -24
  178. package/dist/compounding/preference-consolidator.d.ts +4 -3
  179. package/dist/compression-optimizer.d.ts +2 -1
  180. package/dist/config-security.js +2 -2
  181. package/dist/config.d.ts +2 -1
  182. package/dist/config.js +10 -9
  183. package/dist/connectors/codex-materialize-runner.d.ts +2 -1
  184. package/dist/connectors/codex-materialize-runner.js +23 -23
  185. package/dist/connectors/codex-materialize.d.ts +2 -1
  186. package/dist/connectors/index.d.ts +2 -1
  187. package/dist/connectors/index.js +23 -23
  188. package/dist/consolidation-provenance-check.d.ts +5 -2
  189. package/dist/consolidation-provenance-check.js +2 -2
  190. package/dist/consolidation-undo.d.ts +5 -2
  191. package/dist/context-summary.d.ts +43 -0
  192. package/dist/context-summary.js +14 -0
  193. package/dist/context-summary.js.map +1 -0
  194. package/dist/contradiction/index.d.ts +6 -3
  195. package/dist/contradiction/index.js +5 -5
  196. package/dist/converge-config.d.ts +2 -1
  197. package/dist/convergence-refresh.d.ts +5 -2
  198. package/dist/convergence-refresh.js +26 -26
  199. package/dist/conversation-index/backend.d.ts +2 -1
  200. package/dist/conversation-index/backend.js +2 -2
  201. package/dist/conversation-index/chunker.d.ts +2 -1
  202. package/dist/conversation-index/faiss-adapter.d.ts +2 -1
  203. package/dist/conversation-index/indexer.d.ts +2 -1
  204. package/dist/conversation-index/search.d.ts +2 -1
  205. package/dist/corpus-watermark.d.ts +2 -1
  206. package/dist/corpus-watermark.js +25 -25
  207. package/dist/cross-lingual-recall.d.ts +2 -1
  208. package/dist/dashboard-runtime.js +2 -2
  209. package/dist/day-summary.d.ts +2 -1
  210. package/dist/delinearize.d.ts +2 -1
  211. package/dist/dependency-propagation-config.d.ts +2 -1
  212. package/dist/{dependency-propagation-delivery-BGcNairQ.d.ts → dependency-propagation-delivery-CL6RWXTA.d.ts} +1 -1
  213. package/dist/direct-answer-wiring.d.ts +2 -1
  214. package/dist/direct-answer.d.ts +2 -1
  215. package/dist/embedding-fallback.d.ts +2 -1
  216. package/dist/enrichment/index.d.ts +2 -1
  217. package/dist/entity-origin-fields.d.ts +2 -1
  218. package/dist/entity-retrieval.d.ts +5 -2
  219. package/dist/entity-retrieval.js +24 -24
  220. package/dist/entity-schema.d.ts +2 -1
  221. package/dist/episodic-context.d.ts +2 -1
  222. package/dist/eval-trajectory-contracts.d.ts +2 -1
  223. package/dist/eval-trajectory-store.d.ts +2 -1
  224. package/dist/eval-trajectory.d.ts +2 -1
  225. package/dist/event-order-recall.js +3 -3
  226. package/dist/explicit-capture.d.ts +13 -11
  227. package/dist/explicit-capture.js +6 -6
  228. package/dist/external-wiki-access.d.ts +15 -13
  229. package/dist/external-wiki-access.js +43 -43
  230. package/dist/external-wiki-collection-registration.d.ts +2 -1
  231. package/dist/external-wiki-collection.d.ts +2 -1
  232. package/dist/external-wiki-mcp-tools.d.ts +15 -13
  233. package/dist/extraction-error-classification.d.ts +2 -1
  234. package/dist/extraction-faithfulness.d.ts +2 -1
  235. package/dist/extraction-judge-telemetry.d.ts +2 -1
  236. package/dist/extraction-judge-training.d.ts +2 -1
  237. package/dist/extraction-judge.d.ts +2 -1
  238. package/dist/extraction-liveness.d.ts +2 -1
  239. package/dist/extraction-normalization.d.ts +2 -1
  240. package/dist/extraction-prompt.d.ts +2 -1
  241. package/dist/extraction-source-grounding-rules.d.ts +2 -1
  242. package/dist/extraction-source-grounding.d.ts +2 -1
  243. package/dist/extraction.d.ts +2 -1
  244. package/dist/extraction.js +31 -31
  245. package/dist/fallback-llm.d.ts +2 -1
  246. package/dist/{forget-SZ2BXDGF.js → forget-2AE4MDK3.js} +3 -3
  247. package/dist/graph-dashboard-diff.d.ts +2 -1
  248. package/dist/graph-dashboard-key.d.ts +2 -1
  249. package/dist/graph-dashboard-parser.d.ts +2 -1
  250. package/dist/graph-edge-reinforcement.d.ts +2 -1
  251. package/dist/graph-path-reconstruction.d.ts +2 -1
  252. package/dist/graph-path-scoring.d.ts +2 -1
  253. package/dist/graph-snapshot.d.ts +2 -1
  254. package/dist/graph.d.ts +2 -1
  255. package/dist/harmonic-retrieval.js +1 -1
  256. package/dist/importance.d.ts +2 -1
  257. package/dist/importers/index.d.ts +2 -1
  258. package/dist/in-flight-reads.d.ts +2 -1
  259. package/dist/{index-By2QUAMh.d.ts → index-C7Xep6S9.d.ts} +2 -2
  260. package/dist/index.d.ts +703 -701
  261. package/dist/index.js +225 -196
  262. package/dist/intent.d.ts +2 -1
  263. package/dist/lcm/engine.d.ts +3 -2
  264. package/dist/lcm/engine.js +5 -4
  265. package/dist/lcm/index.d.ts +4 -2
  266. package/dist/lcm/index.js +12 -11
  267. package/dist/lcm/summarizer.d.ts +4 -6
  268. package/dist/lcm/summarizer.js +2 -1
  269. package/dist/lcm/tools.d.ts +4 -3
  270. package/dist/lifecycle.d.ts +2 -1
  271. package/dist/live-connectors-runner.d.ts +2 -1
  272. package/dist/local-llm.d.ts +2 -1
  273. package/dist/local-model-endpoint.d.ts +2 -1
  274. package/dist/maintenance/memory-governance.d.ts +2 -1
  275. package/dist/maintenance/memory-governance.js +24 -24
  276. package/dist/maintenance/rebuild-memory-lifecycle-ledger.d.ts +5 -2
  277. package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +23 -23
  278. package/dist/maintenance/rebuild-memory-projection.d.ts +5 -2
  279. package/dist/maintenance/rebuild-memory-projection.js +25 -25
  280. package/dist/{maintenance-Dm2McrIx.d.ts → maintenance-CJ-xqFp0.d.ts} +3 -3
  281. package/dist/mcp-memory-inspector-app.d.ts +15 -13
  282. package/dist/memory-action-policy.d.ts +18 -2
  283. package/dist/memory-action-policy.js +3 -1
  284. package/dist/memory-cache.d.ts +2 -1
  285. package/dist/memory-controller.d.ts +2 -1
  286. package/dist/memory-controller.js +2 -2
  287. package/dist/memory-lifecycle-ledger-utils.d.ts +2 -1
  288. package/dist/memory-projection-store.d.ts +2 -1
  289. package/dist/memory-provenance.d.ts +2 -1
  290. package/dist/memory-snapshot.d.ts +2 -1
  291. package/dist/memory-subject-cli.d.ts +15 -13
  292. package/dist/memory-subject.d.ts +15 -13
  293. package/dist/memory-subject.js +3 -3
  294. package/dist/memory-worth-outcomes.d.ts +5 -2
  295. package/dist/models-json.d.ts +2 -1
  296. package/dist/namespaces/migrate.d.ts +6 -3
  297. package/dist/namespaces/migrate.js +24 -24
  298. package/dist/namespaces/principal.d.ts +2 -1
  299. package/dist/namespaces/search.d.ts +2 -1
  300. package/dist/namespaces/search.js +9 -9
  301. package/dist/namespaces/storage.d.ts +6 -3
  302. package/dist/namespaces/storage.js +23 -23
  303. package/dist/native-knowledge.d.ts +2 -1
  304. package/dist/offline-sync-impression-drain.d.ts +2 -1
  305. package/dist/offline-sync-impression-drain.js +2 -2
  306. package/dist/operator-doctor-corpus.d.ts +2 -1
  307. package/dist/operator-doctor-corpus.js +26 -26
  308. package/dist/operator-doctor-replica.d.ts +2 -1
  309. package/dist/operator-toolkit.d.ts +6 -3
  310. package/dist/operator-toolkit.js +38 -37
  311. package/dist/orchestration/compression-guideline-coordinator.d.ts +5 -2
  312. package/dist/orchestration/maintenance.d.ts +7 -4
  313. package/dist/orchestration/maintenance.js +31 -31
  314. package/dist/{orchestrator-Co1DyfuP.d.ts → orchestrator-BsntWxLy.d.ts} +8 -8
  315. package/dist/orchestrator.d.ts +13 -11
  316. package/dist/orchestrator.js +143 -140
  317. package/dist/patterns-cli.d.ts +2 -1
  318. package/dist/{pipeline-DotMnb6y.d.ts → pipeline-CVoysPm2.d.ts} +1 -1
  319. package/dist/policy-runtime.d.ts +2 -1
  320. package/dist/proactive-contention.d.ts +2 -1
  321. package/dist/provenance.d.ts +2 -1
  322. package/dist/{public-http-PJRtnSi-.d.ts → public-http-CuOxlTC2.d.ts} +1 -1
  323. package/dist/{qmd-BP0n11fR.d.ts → qmd-DWMAGA5l.d.ts} +1 -1
  324. package/dist/qmd-preflight.d.ts +3 -2
  325. package/dist/qmd-recall-cache.d.ts +2 -1
  326. package/dist/qmd.d.ts +3 -2
  327. package/dist/qmd.js +4 -4
  328. package/dist/recall-concurrency-config.d.ts +2 -1
  329. package/dist/recall-disclosure-escalation.d.ts +2 -1
  330. package/dist/recall-explain-renderer.d.ts +2 -1
  331. package/dist/recall-explain-renderer.js +3 -3
  332. package/dist/recall-memory-map.d.ts +2 -1
  333. package/dist/recall-planner-llm.d.ts +2 -1
  334. package/dist/recall-state.d.ts +2 -1
  335. package/dist/recall-tag-filter.d.ts +2 -1
  336. package/dist/recall-timings.d.ts +2 -1
  337. package/dist/recall-xray-cli.d.ts +2 -1
  338. package/dist/recall-xray-cli.js +4 -4
  339. package/dist/recall-xray-renderer.d.ts +2 -1
  340. package/dist/recall-xray-renderer.js +3 -3
  341. package/dist/recall-xray.d.ts +2 -1
  342. package/dist/recall-xray.js +2 -2
  343. package/dist/reconcile/cursor.d.ts +2 -1
  344. package/dist/reconcile/manifest.d.ts +2 -1
  345. package/dist/reconcile/manifest.js +3 -3
  346. package/dist/reconcile/plan.d.ts +2 -1
  347. package/dist/replay/normalizers/chatgpt.d.ts +2 -1
  348. package/dist/replay/normalizers/claude.d.ts +2 -1
  349. package/dist/replay/normalizers/openclaw.d.ts +2 -1
  350. package/dist/replay/normalizers/shared.d.ts +2 -1
  351. package/dist/replay/runner.d.ts +2 -1
  352. package/dist/replay/types.d.ts +2 -1
  353. package/dist/replica-divergence.d.ts +2 -1
  354. package/dist/replica-peers-config.d.ts +2 -1
  355. package/dist/{resolution-4552BNRV.js → resolution-XWBPKYFB.js} +6 -6
  356. package/dist/resolution-XWBPKYFB.js.map +1 -0
  357. package/dist/resolve-auth-token.d.ts +2 -1
  358. package/dist/resume-bundles.js +11 -10
  359. package/dist/retrieval-agents.d.ts +3 -2
  360. package/dist/retrieval-tiers.d.ts +2 -1
  361. package/dist/routing/engine.d.ts +2 -1
  362. package/dist/routing/store.d.ts +2 -1
  363. package/dist/salvage-envelope.d.ts +2 -1
  364. package/dist/salvage-envelope.js +5 -5
  365. package/dist/schemas.d.ts +124 -124
  366. package/dist/{scope-profiles-6ChZKTy-.d.ts → scope-profiles-CPWkW_dI.d.ts} +1 -1
  367. package/dist/search/embed-helper.d.ts +2 -1
  368. package/dist/search/factory.d.ts +2 -1
  369. package/dist/search/factory.js +8 -8
  370. package/dist/search/index.d.ts +2 -1
  371. package/dist/search/index.js +14 -14
  372. package/dist/search/lancedb-backend.d.ts +2 -1
  373. package/dist/search/meilisearch-backend.d.ts +2 -1
  374. package/dist/search/noop-backend.d.ts +2 -1
  375. package/dist/search/orama-backend.d.ts +2 -1
  376. package/dist/search/port.d.ts +2 -1
  377. package/dist/search/remote-backend.d.ts +2 -1
  378. package/dist/{semantic-consolidation-DziYcW5J.d.ts → semantic-consolidation-CNFVBXFc.d.ts} +1 -1
  379. package/dist/semantic-consolidation.d.ts +3 -2
  380. package/dist/semantic-consolidation.js +29 -29
  381. package/dist/semantic-rule-promotion.js +23 -23
  382. package/dist/semantic-rule-verifier.d.ts +2 -1
  383. package/dist/semantic-rule-verifier.js +23 -23
  384. package/dist/{service-C7rIBuK_.d.ts → service-Bb-JIdQ0.d.ts} +2 -2
  385. package/dist/session-observer-bands.d.ts +2 -1
  386. package/dist/session-observer-state.d.ts +2 -1
  387. package/dist/shared-context/manager.d.ts +8 -7
  388. package/dist/signal.d.ts +2 -1
  389. package/dist/source-agent-qualifier.d.ts +2 -1
  390. package/dist/source-agent-qualifier.js +27 -27
  391. package/dist/{storage-B1hEx8Xg.d.ts → storage-CukrlNKk.d.ts} +4 -1
  392. package/dist/storage.d.ts +5 -2
  393. package/dist/storage.js +22 -22
  394. package/dist/subject-config.d.ts +2 -1
  395. package/dist/subject-config.js +4 -4
  396. package/dist/summarizer.d.ts +2 -1
  397. package/dist/summary-snapshot.d.ts +2 -1
  398. package/dist/support-passport/index.d.ts +18 -16
  399. package/dist/support-passport/index.js +45 -45
  400. package/dist/temporal-supersession.d.ts +3 -2
  401. package/dist/temporal-timeline-recall.d.ts +2 -1
  402. package/dist/temporal-validity.d.ts +2 -1
  403. package/dist/threading.d.ts +2 -1
  404. package/dist/tier-migration.d.ts +5 -2
  405. package/dist/tier-routing.d.ts +2 -1
  406. package/dist/topics.d.ts +2 -1
  407. package/dist/transcript.d.ts +2 -1
  408. package/dist/transfer/types.d.ts +78 -78
  409. package/dist/trust-score-stage.d.ts +2 -1
  410. package/dist/trust-score.d.ts +2 -1
  411. package/dist/{types-BHDNxGTT.d.ts → types-djxQlxJ7.d.ts} +2 -1
  412. package/dist/types.d.ts +2 -1
  413. package/dist/types.js +1 -1
  414. package/dist/utility-runtime.d.ts +2 -1
  415. package/dist/verified-recall.js +23 -23
  416. package/dist/who-knows-cli.d.ts +15 -13
  417. package/dist/who-knows-cli.js +24 -24
  418. package/dist/who-knows.d.ts +15 -13
  419. package/dist/who-knows.js +23 -23
  420. package/dist/write-envelope.d.ts +2 -1
  421. package/dist/write-envelope.js +4 -4
  422. package/package.json +22 -2
  423. package/src/active-context-config.ts +98 -0
  424. package/src/active-context-transform.test.ts +533 -0
  425. package/src/active-context-transform.ts +981 -0
  426. package/src/config.ts +3 -5
  427. package/src/context-summary.ts +182 -0
  428. package/src/index.ts +4 -11
  429. package/src/lcm/summarizer.ts +14 -93
  430. package/src/memory-action-policy.ts +28 -0
  431. package/src/storage/context-transform-ledger.ts +39 -0
  432. package/src/storage/secure-line-reader.ts +50 -1
  433. package/src/storage.ts +4 -1
  434. package/src/types.ts +2 -3
  435. package/dist/chunk-BJTHRFFC.js.map +0 -1
  436. package/dist/chunk-D4QVPP3G.js.map +0 -1
  437. package/dist/chunk-DVYRD4HY.js.map +0 -1
  438. package/dist/chunk-LBFFNDFM.js.map +0 -1
  439. package/dist/chunk-ZPUIRTIZ.js.map +0 -1
  440. /package/dist/{resolution-4552BNRV.js.map → active-context-config.js.map} +0 -0
  441. /package/dist/{auto-sync-XVMLL2RH.js.map → auto-sync-2YPITIWN.js.map} +0 -0
  442. /package/dist/{chunk-JBPKEARU.js.map → chunk-2QSZNTDO.js.map} +0 -0
  443. /package/dist/{chunk-S3K2CIK5.js.map → chunk-3A2NJP2U.js.map} +0 -0
  444. /package/dist/{chunk-OPGL46PX.js.map → chunk-3PKAS6VL.js.map} +0 -0
  445. /package/dist/{chunk-GTSVEEP3.js.map → chunk-3SZD4CYO.js.map} +0 -0
  446. /package/dist/{chunk-YKWFK7XA.js.map → chunk-4F4AQFWL.js.map} +0 -0
  447. /package/dist/{chunk-RGCF4XNH.js.map → chunk-4QEYREAV.js.map} +0 -0
  448. /package/dist/{chunk-46WM6JX2.js.map → chunk-4ZWCQJNM.js.map} +0 -0
  449. /package/dist/{chunk-3RI5Y7KU.js.map → chunk-5DHKCO52.js.map} +0 -0
  450. /package/dist/{chunk-VKCAHCBI.js.map → chunk-5RWZH6PH.js.map} +0 -0
  451. /package/dist/{chunk-52II7PB6.js.map → chunk-645WOU5I.js.map} +0 -0
  452. /package/dist/{chunk-A32YEQAM.js.map → chunk-76DIF5KT.js.map} +0 -0
  453. /package/dist/{chunk-OPPBTPUU.js.map → chunk-7KQB4EBS.js.map} +0 -0
  454. /package/dist/{chunk-I2HTKOOP.js.map → chunk-7VZFRUQU.js.map} +0 -0
  455. /package/dist/{chunk-JCWY73FK.js.map → chunk-AHPIFKNG.js.map} +0 -0
  456. /package/dist/{chunk-IP4ZNT4U.js.map → chunk-AZMLH5UT.js.map} +0 -0
  457. /package/dist/{chunk-JOEJG4SD.js.map → chunk-BEC4YBNA.js.map} +0 -0
  458. /package/dist/{chunk-VXVZ2GM3.js.map → chunk-CAMNRAJF.js.map} +0 -0
  459. /package/dist/{chunk-C24UZSFW.js.map → chunk-CEH2AFXG.js.map} +0 -0
  460. /package/dist/{chunk-YOXVZJFM.js.map → chunk-CFVTRUR3.js.map} +0 -0
  461. /package/dist/{chunk-SVSRPG6M.js.map → chunk-CPA5NBHN.js.map} +0 -0
  462. /package/dist/{chunk-7BEPVIH3.js.map → chunk-CRML27CO.js.map} +0 -0
  463. /package/dist/{chunk-IY7UXD3J.js.map → chunk-DA7ITC5Z.js.map} +0 -0
  464. /package/dist/{chunk-AFR6AIM4.js.map → chunk-DEACDKE3.js.map} +0 -0
  465. /package/dist/{chunk-NG3MBQV4.js.map → chunk-DPCXDG7G.js.map} +0 -0
  466. /package/dist/{chunk-HZNYJN77.js.map → chunk-F3NVYTTA.js.map} +0 -0
  467. /package/dist/{chunk-PDDSFELN.js.map → chunk-F7XUD3PL.js.map} +0 -0
  468. /package/dist/{chunk-YWSQD2IB.js.map → chunk-GTO56JY5.js.map} +0 -0
  469. /package/dist/{chunk-RAIUTAZZ.js.map → chunk-H2YSH3DG.js.map} +0 -0
  470. /package/dist/{chunk-F6QHHRWP.js.map → chunk-HMZKGHMD.js.map} +0 -0
  471. /package/dist/{chunk-ZIJDI4CP.js.map → chunk-HRHO3ZNG.js.map} +0 -0
  472. /package/dist/{chunk-SDEPLF7V.js.map → chunk-IBJ6U753.js.map} +0 -0
  473. /package/dist/{chunk-T3JQTCCO.js.map → chunk-JI7U6AS3.js.map} +0 -0
  474. /package/dist/{chunk-TR7DGXGI.js.map → chunk-JOZUBF4A.js.map} +0 -0
  475. /package/dist/{chunk-I7EX6KSH.js.map → chunk-JYSN42VN.js.map} +0 -0
  476. /package/dist/{chunk-FMQ4MOQO.js.map → chunk-KZIF6XHX.js.map} +0 -0
  477. /package/dist/{chunk-RIAM7DND.js.map → chunk-LDKPDODJ.js.map} +0 -0
  478. /package/dist/{chunk-227UFSEQ.js.map → chunk-LEPOP46W.js.map} +0 -0
  479. /package/dist/{chunk-LLQCM2U2.js.map → chunk-LKYIOCWL.js.map} +0 -0
  480. /package/dist/{chunk-5S4LQOPE.js.map → chunk-LOXHYCVS.js.map} +0 -0
  481. /package/dist/{chunk-ANJXPFRS.js.map → chunk-LPNCR4QK.js.map} +0 -0
  482. /package/dist/{chunk-GEPACVWN.js.map → chunk-MDD2RINF.js.map} +0 -0
  483. /package/dist/{chunk-6CPUQ5D6.js.map → chunk-MY2BC6UE.js.map} +0 -0
  484. /package/dist/{chunk-CFGU52XJ.js.map → chunk-NPFUNWNX.js.map} +0 -0
  485. /package/dist/{chunk-MFOSZUIT.js.map → chunk-NPIBN2VL.js.map} +0 -0
  486. /package/dist/{chunk-5DH6PG4B.js.map → chunk-OA2O2GJ4.js.map} +0 -0
  487. /package/dist/{chunk-JAQXUGLN.js.map → chunk-ODU2CNNX.js.map} +0 -0
  488. /package/dist/{chunk-RQE4TITU.js.map → chunk-OXRRJXPR.js.map} +0 -0
  489. /package/dist/{chunk-SEA6M7SS.js.map → chunk-P36Z4JRA.js.map} +0 -0
  490. /package/dist/{chunk-Z4U3UN56.js.map → chunk-PU56CXZA.js.map} +0 -0
  491. /package/dist/{chunk-5VPQSRQO.js.map → chunk-S5XOSTYM.js.map} +0 -0
  492. /package/dist/{chunk-SVVIASVX.js.map → chunk-SEEJOGQX.js.map} +0 -0
  493. /package/dist/{chunk-7TCGNUVP.js.map → chunk-SNOIKAHM.js.map} +0 -0
  494. /package/dist/{chunk-7F27PCSN.js.map → chunk-T6ILXUAH.js.map} +0 -0
  495. /package/dist/{chunk-EOHKUWXW.js.map → chunk-T7XP6IZE.js.map} +0 -0
  496. /package/dist/{chunk-7WR462EM.js.map → chunk-TFR3HG4K.js.map} +0 -0
  497. /package/dist/{chunk-YRVAKONL.js.map → chunk-TUHBYJXL.js.map} +0 -0
  498. /package/dist/{chunk-F635GAL7.js.map → chunk-U7EW2W4W.js.map} +0 -0
  499. /package/dist/{chunk-VFYRYFLL.js.map → chunk-UEBDCMOO.js.map} +0 -0
  500. /package/dist/{chunk-WTOZBZNN.js.map → chunk-UENKPWCS.js.map} +0 -0
  501. /package/dist/{chunk-AAXJNINV.js.map → chunk-UL4MKZHI.js.map} +0 -0
  502. /package/dist/{chunk-R2MZCYA6.js.map → chunk-UNUMFURP.js.map} +0 -0
  503. /package/dist/{chunk-ACOC27BB.js.map → chunk-UPFNQJC7.js.map} +0 -0
  504. /package/dist/{chunk-W4BMEGQA.js.map → chunk-UTQUEHC7.js.map} +0 -0
  505. /package/dist/{chunk-I32NKXE2.js.map → chunk-V4IDF3EZ.js.map} +0 -0
  506. /package/dist/{chunk-ZAOHJDKH.js.map → chunk-WNXYT4MK.js.map} +0 -0
  507. /package/dist/{chunk-T42L3S6A.js.map → chunk-XBGHAAKR.js.map} +0 -0
  508. /package/dist/{chunk-I4343FIA.js.map → chunk-XNWXSGHS.js.map} +0 -0
  509. /package/dist/{chunk-THG4GYIE.js.map → chunk-YEUXERJ6.js.map} +0 -0
  510. /package/dist/{chunk-EZ25VE3G.js.map → chunk-YNDLCWXS.js.map} +0 -0
  511. /package/dist/{chunk-5HERQ5FX.js.map → chunk-Z3YEGSR4.js.map} +0 -0
  512. /package/dist/{forget-SZ2BXDGF.js.map → forget-2AE4MDK3.js.map} +0 -0
@@ -0,0 +1,267 @@
1
+ import { ActiveContextCapabilitySet } from './active-context-config.js';
2
+ import { SummarizeFn } from './context-summary.js';
3
+
4
+ declare const ACTIVE_CONTEXT_ALGORITHM_VERSION = "active-context-transform/1";
5
+ declare const ACTIVE_CONTEXT_SNAPSHOT_SCHEMA_VERSION = 1;
6
+ declare const ACTIVE_CONTEXT_PLAN_SCHEMA_VERSION = 1;
7
+ declare const ACTIVE_CONTEXT_RECEIPT_SCHEMA_VERSION = 1;
8
+ declare const ACTIVE_CONTEXT_RECORD_SCHEMA_VERSION = 1;
9
+ type ActiveContextOperation = "SUMMARY" | "FILTER";
10
+ type ActiveContextPhase = "plan" | "prepare";
11
+ type ActiveContextMessageRole = "system" | "developer" | "user" | "assistant" | "tool";
12
+ type ActiveContextErrorCode = "feature_disabled" | "scope_mismatch" | "invalid_request" | "stale_context" | "plan_conflict" | "preserve_conflict" | "filter_unavailable" | "summary_unavailable" | "unsupported" | "retention_unavailable" | "retention_expired" | "invalid_receipt" | "host_error";
13
+ interface ActiveContextMessage {
14
+ id: string;
15
+ /** Snapshot order; plans sort by it and never reorder sources. */
16
+ ordinal: number;
17
+ role: ActiveContextMessageRole;
18
+ content: string;
19
+ /** Caller-marked protection; equivalent to a preserve-listed ID. */
20
+ protected?: boolean;
21
+ }
22
+ interface ActiveContextSnapshot {
23
+ schemaVersion: 1;
24
+ sessionKey: string;
25
+ /** Data routing only — never authorization. */
26
+ namespace: string;
27
+ /** Host revision/turn identifier the plan binds as a precondition. */
28
+ revision: string | number;
29
+ messages: ActiveContextMessage[];
30
+ }
31
+ /**
32
+ * Trusted scope resolved by the access layer BEFORE any plan work
33
+ * (mirrors `ResolvedIdentity` from adapters/types.ts). Core never treats
34
+ * `snapshot.namespace` as auth.
35
+ */
36
+ interface ActiveContextResolvedScope {
37
+ sessionKey: string;
38
+ namespace: string;
39
+ principal: string;
40
+ adapterId: string;
41
+ }
42
+ /** Fixed, caller-supplied score rule. Must return a finite score in [0,1]. */
43
+ type ActiveContextScoreMessageFn = (message: ActiveContextMessage) => number | undefined;
44
+ interface ActiveContextTransformDeps {
45
+ resolvedScope: ActiveContextResolvedScope;
46
+ /** Filter score rule — required for FILTER plans. */
47
+ scoreMessage?: ActiveContextScoreMessageFn;
48
+ /** Model seam for SUMMARY; the same pure seam LCM uses. */
49
+ summarize?: SummarizeFn;
50
+ /** Config-projected caps; defaults are conservative (see capabilities.ts). */
51
+ caps?: ActiveContextCapabilitySet;
52
+ /** Gate override; defaults to `caps.activeContextTransforms`. */
53
+ actionsEnabled?: boolean;
54
+ /** Clock seam for deterministic expiry tests. */
55
+ now?: () => Date;
56
+ }
57
+ interface ActiveContextSpanSelector {
58
+ /** Closed span: inclusive start (by snapshot order). */
59
+ startMessageId: string;
60
+ /** Closed span: inclusive end (by snapshot order). */
61
+ endMessageId: string;
62
+ }
63
+ interface ActiveContextTransformRequest {
64
+ schemaVersion: 1;
65
+ operation: ActiveContextOperation;
66
+ phase: ActiveContextPhase;
67
+ snapshot: ActiveContextSnapshot;
68
+ /** Exactly one of `messageIds` or `span`. */
69
+ selector: {
70
+ messageIds?: string[];
71
+ span?: ActiveContextSpanSelector;
72
+ };
73
+ preserve?: {
74
+ messageIds?: string[];
75
+ roles?: ActiveContextMessageRole[];
76
+ minRetainedMessages?: number;
77
+ };
78
+ summary?: {
79
+ method: "deterministic" | "llm" | "auto";
80
+ targetTokens?: number;
81
+ };
82
+ filter?: {
83
+ keepCriterion: string;
84
+ threshold: number;
85
+ };
86
+ expectedRevision?: string | number;
87
+ requestId?: string;
88
+ sourcePromptHash?: string;
89
+ }
90
+ interface ActiveContextScoreRow {
91
+ messageId: string;
92
+ score: number;
93
+ decision: "keep" | "drop";
94
+ }
95
+ interface ActiveContextPlanReplacement {
96
+ messageId: string;
97
+ /** Filled by prepare — plans never carry raw text. */
98
+ contentHash?: string;
99
+ sourceMessageIds: string[];
100
+ method: "deterministic" | "llm";
101
+ /** Whether prepare may degrade to deterministic output (auto mode only). */
102
+ fallbackPolicy: "allowed" | "none";
103
+ targetTokens: number;
104
+ modelUsed?: string;
105
+ fallback?: boolean;
106
+ }
107
+ interface ActiveContextTransformPlan {
108
+ schemaVersion: 1;
109
+ planId: string;
110
+ planHash: string;
111
+ operation: ActiveContextOperation;
112
+ status: "ready" | "rejected";
113
+ errorCode?: ActiveContextErrorCode;
114
+ precondition: {
115
+ principal: string;
116
+ sessionKey: string;
117
+ namespace: string;
118
+ adapterId: string;
119
+ snapshotRevision: string | number;
120
+ expiresAt: string;
121
+ };
122
+ /** Selected sources in snapshot order. */
123
+ selectedMessageIds: string[];
124
+ /** Messages that stay after the plan applies. */
125
+ retainedMessageIds: string[];
126
+ /** Removable IDs the plan proposes to drop or fold into a replacement. */
127
+ proposedRemovalIds: string[];
128
+ scoreRows?: ActiveContextScoreRow[];
129
+ replacement?: ActiveContextPlanReplacement;
130
+ preserve: {
131
+ protectedMessageIds: string[];
132
+ minimumRetainedMessages: number;
133
+ };
134
+ inverse: {
135
+ kind: "restore-source-message-ids";
136
+ sourceMessageIds: string[];
137
+ removeReplacementMessageId?: string;
138
+ expectedAppliedPlanHash?: string;
139
+ };
140
+ retention: {
141
+ planId: string;
142
+ mode: "adapter-local";
143
+ expiresAt: string;
144
+ maxBytes: number;
145
+ snapshotContentHash: string;
146
+ };
147
+ provenance: {
148
+ algorithmVersion: string;
149
+ selectorHash: string;
150
+ snapshotContentHash: string;
151
+ criterionHash?: string;
152
+ sourcePromptHash?: string;
153
+ generatedAt: string;
154
+ };
155
+ policy: {
156
+ decision: "allow" | "deny";
157
+ rationale: string;
158
+ };
159
+ }
160
+ interface ActiveContextHostCapability {
161
+ capabilityId: string;
162
+ trustedScope: ActiveContextResolvedScope;
163
+ hostRevision: string | number;
164
+ operations: ActiveContextOperation[];
165
+ expiresAt: string;
166
+ }
167
+ interface ActiveContextApplyReceipt {
168
+ schemaVersion: 1;
169
+ planId: string;
170
+ planHash: string;
171
+ adapterId: string;
172
+ outcome: "applied" | "skipped" | "failed";
173
+ errorCode?: ActiveContextErrorCode;
174
+ hostRevisionBefore?: string | number;
175
+ hostRevisionAfter?: string | number;
176
+ appliedMessageIds?: string[];
177
+ removedMessageIds?: string[];
178
+ replacementMessageId?: string;
179
+ retentionExpiresAt?: string;
180
+ appliedAt: string;
181
+ }
182
+ /** Discriminated ledger record appended to `state/memory-actions.jsonl`. */
183
+ interface ContextTransformTelemetryRecord {
184
+ recordKind: "context_transform";
185
+ schemaVersion: 1;
186
+ timestamp: string;
187
+ /** Plan ID doubles as the record action ID. */
188
+ actionId: string;
189
+ action: "summarize_context" | "filter_context";
190
+ outcome: "applied" | "skipped" | "failed";
191
+ status: "validated" | "applied" | "rejected";
192
+ actor?: string;
193
+ subsystem: string;
194
+ namespace: string;
195
+ sourceSessionKey: string;
196
+ planHash: string;
197
+ snapshotRevision: string | number;
198
+ adapterId?: string;
199
+ algorithmVersion?: string;
200
+ selectedCount: number;
201
+ retainedCount: number;
202
+ proposedRemovalCount: number;
203
+ receiptOutcome?: "applied" | "skipped" | "failed";
204
+ selectorHash: string;
205
+ snapshotContentHash: string;
206
+ criterionHash?: string;
207
+ sourcePromptHash?: string;
208
+ replacementContentHash?: string;
209
+ policyDecision?: "allow" | "defer" | "deny";
210
+ policyRationale?: string;
211
+ telemetryRecorded?: boolean;
212
+ }
213
+ interface ActiveContextPreparedReplacement {
214
+ messageId: string;
215
+ text: string;
216
+ contentHash: string;
217
+ method: "deterministic" | "llm";
218
+ modelUsed?: string;
219
+ fallback: boolean;
220
+ sourceMessageIds: string[];
221
+ }
222
+ interface ActiveContextPreparedTransform {
223
+ status: "ready" | "rejected" | "failed";
224
+ plan: ActiveContextTransformPlan;
225
+ replacement?: ActiveContextPreparedReplacement;
226
+ errorCode?: ActiveContextErrorCode;
227
+ }
228
+ /**
229
+ * Build one bounded, content-addressed SUMMARY or FILTER plan. Returns a
230
+ * rejected plan (with a stable error code) instead of throwing on bad
231
+ * input — bad input is never hidden behind a no-op. `planHash` binds the
232
+ * scope, revision, and every selected/removal/replacement ID; replay
233
+ * across principal, session, namespace, adapter, or revision therefore
234
+ * fails the adapter's comparisons before retain, apply, or undo.
235
+ */
236
+ declare function planActiveContextTransform(request: ActiveContextTransformRequest, deps: ActiveContextTransformDeps): ActiveContextTransformPlan;
237
+ /**
238
+ * Produce the SUMMARY replacement text for a ready plan through the pure
239
+ * summary seam (context-summary.ts). Never calls `LcmSummarizer`. FILTER
240
+ * plans pass through unchanged after revalidation. The caller must supply
241
+ * the same snapshot the plan was built from; a changed transcript fence
242
+ * rejects with `plan_conflict`.
243
+ */
244
+ declare function prepareActiveContextTransform(plan: ActiveContextTransformPlan, deps: ActiveContextTransformDeps & {
245
+ snapshot: ActiveContextSnapshot;
246
+ }): Promise<ActiveContextPreparedTransform>;
247
+ /**
248
+ * Validate a host receipt against the plan's bindings and append one
249
+ * context record to the ledger. Order of checks: scope → hash → revision →
250
+ * shape. One-time use is enforced by the adapter's persisted apply/undo
251
+ * markers (retention store); this recorder appends only. A ledger write
252
+ * failure returns `recorded: false` and never fabricates an apply.
253
+ */
254
+ declare function recordActiveContextApplyReceipt(plan: ActiveContextTransformPlan, receipt: ActiveContextApplyReceipt, trustedScope: ActiveContextResolvedScope, recorder: {
255
+ append(record: ContextTransformTelemetryRecord): Promise<boolean>;
256
+ }): Promise<{
257
+ recorded: boolean;
258
+ event: ContextTransformTelemetryRecord;
259
+ }>;
260
+ /**
261
+ * Build a plan-stage ledger record (plan produced, rejected, skipped, or
262
+ * failed before host apply). Receipt-backed applies use
263
+ * {@link recordActiveContextApplyReceipt} instead.
264
+ */
265
+ declare function buildContextTransformPlanEvent(plan: ActiveContextTransformPlan, outcome: "skipped" | "failed"): ContextTransformTelemetryRecord;
266
+
267
+ export { ACTIVE_CONTEXT_ALGORITHM_VERSION, ACTIVE_CONTEXT_PLAN_SCHEMA_VERSION, ACTIVE_CONTEXT_RECEIPT_SCHEMA_VERSION, ACTIVE_CONTEXT_RECORD_SCHEMA_VERSION, ACTIVE_CONTEXT_SNAPSHOT_SCHEMA_VERSION, type ActiveContextApplyReceipt, type ActiveContextErrorCode, type ActiveContextHostCapability, type ActiveContextMessage, type ActiveContextMessageRole, type ActiveContextOperation, type ActiveContextPhase, type ActiveContextPlanReplacement, type ActiveContextPreparedReplacement, type ActiveContextPreparedTransform, type ActiveContextResolvedScope, type ActiveContextScoreMessageFn, type ActiveContextScoreRow, type ActiveContextSnapshot, type ActiveContextSpanSelector, type ActiveContextTransformDeps, type ActiveContextTransformPlan, type ActiveContextTransformRequest, type ContextTransformTelemetryRecord, buildContextTransformPlanEvent, planActiveContextTransform, prepareActiveContextTransform, recordActiveContextApplyReceipt };
@@ -0,0 +1,31 @@
1
+ import {
2
+ ACTIVE_CONTEXT_ALGORITHM_VERSION,
3
+ ACTIVE_CONTEXT_PLAN_SCHEMA_VERSION,
4
+ ACTIVE_CONTEXT_RECEIPT_SCHEMA_VERSION,
5
+ ACTIVE_CONTEXT_RECORD_SCHEMA_VERSION,
6
+ ACTIVE_CONTEXT_SNAPSHOT_SCHEMA_VERSION,
7
+ buildContextTransformPlanEvent,
8
+ planActiveContextTransform,
9
+ prepareActiveContextTransform,
10
+ recordActiveContextApplyReceipt
11
+ } from "./chunk-LB7WCZHY.js";
12
+ import "./chunk-MI2OTWV5.js";
13
+ import "./chunk-43HUVDTD.js";
14
+ import "./chunk-4RA3C3EV.js";
15
+ import "./chunk-B32WYRXX.js";
16
+ import "./chunk-TOTT6S2V.js";
17
+ import "./chunk-PQVCH2AE.js";
18
+ import "./chunk-3WCASNQZ.js";
19
+ import "./chunk-PZ5AY32C.js";
20
+ export {
21
+ ACTIVE_CONTEXT_ALGORITHM_VERSION,
22
+ ACTIVE_CONTEXT_PLAN_SCHEMA_VERSION,
23
+ ACTIVE_CONTEXT_RECEIPT_SCHEMA_VERSION,
24
+ ACTIVE_CONTEXT_RECORD_SCHEMA_VERSION,
25
+ ACTIVE_CONTEXT_SNAPSHOT_SCHEMA_VERSION,
26
+ buildContextTransformPlanEvent,
27
+ planActiveContextTransform,
28
+ prepareActiveContextTransform,
29
+ recordActiveContextApplyReceipt
30
+ };
31
+ //# sourceMappingURL=active-context-transform.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -1,4 +1,4 @@
1
- import { P as PluginConfig, M as MemoryFile, Q as QmdSearchResult } from './types-BHDNxGTT.js';
1
+ import { P as PluginConfig, M as MemoryFile, Q as QmdSearchResult } from './types-djxQlxJ7.js';
2
2
  import './message-parts/index.js';
3
3
  import './bounded-jsonl-state.js';
4
4
  import './types-CM86alG1.js';
@@ -8,6 +8,7 @@ import './contradiction-config.js';
8
8
  import './graph-path-scoring-config.js';
9
9
  import './causal-trajectory.js';
10
10
  import './objective-state.js';
11
+ import './active-context-config.js';
11
12
  import './types-continuity.js';
12
13
 
13
14
  interface ActiveMemoryMetadata {
@@ -1,4 +1,4 @@
1
- import { a3 as ActiveRecallChatType, a4 as ActiveRecallQueryMode, a5 as ActiveRecallPromptStyle, a6 as ActiveRecallThinking, a7 as ActiveRecallModelFallbackPolicy } from './types-BHDNxGTT.js';
1
+ import { a3 as ActiveRecallChatType, a4 as ActiveRecallQueryMode, a5 as ActiveRecallPromptStyle, a6 as ActiveRecallThinking, a7 as ActiveRecallModelFallbackPolicy } from './types-djxQlxJ7.js';
2
2
  import './message-parts/index.js';
3
3
  import './bounded-jsonl-state.js';
4
4
  import './types-CM86alG1.js';
@@ -8,6 +8,7 @@ import './contradiction-config.js';
8
8
  import './graph-path-scoring-config.js';
9
9
  import './causal-trajectory.js';
10
10
  import './objective-state.js';
11
+ import './active-context-config.js';
11
12
  import './types-continuity.js';
12
13
 
13
14
  interface ActiveRecallTurn {
@@ -1,23 +1,24 @@
1
1
  import {
2
2
  DEFAULT_REASONING_MODEL
3
- } from "./chunk-D4QVPP3G.js";
3
+ } from "./chunk-7WOWGRAU.js";
4
4
  import "./chunk-ZKOPY4WW.js";
5
5
  import "./chunk-62OKGIJA.js";
6
6
  import "./chunk-XAB6STPO.js";
7
7
  import "./chunk-7PHI6GUI.js";
8
8
  import "./chunk-KWIGDKM2.js";
9
- import "./chunk-AAXJNINV.js";
9
+ import "./chunk-UL4MKZHI.js";
10
10
  import "./chunk-Z5LAYHGJ.js";
11
11
  import "./chunk-6ZMAMSHS.js";
12
12
  import "./chunk-6ZN34ISG.js";
13
13
  import "./chunk-H4WG3UQZ.js";
14
14
  import "./chunk-NLDVVWCL.js";
15
- import "./chunk-OO42R444.js";
16
15
  import "./chunk-VUDMT5CP.js";
16
+ import "./chunk-OO42R444.js";
17
17
  import "./chunk-FC67T4E6.js";
18
18
  import "./chunk-PIG4WJFQ.js";
19
- import "./chunk-T3JQTCCO.js";
19
+ import "./chunk-JI7U6AS3.js";
20
20
  import "./chunk-KFZY2OFH.js";
21
+ import "./chunk-B32WYRXX.js";
21
22
  import "./chunk-M6L7HI7R.js";
22
23
  import "./chunk-FEHIOYML.js";
23
24
  import "./chunk-P32IDSHD.js";
@@ -31,19 +32,19 @@ import "./chunk-ZCUTSMR2.js";
31
32
  import "./chunk-QDW3E4RD.js";
32
33
  import "./chunk-GPFZFCRN.js";
33
34
  import "./chunk-NXH34IPL.js";
34
- import "./chunk-RIAM7DND.js";
35
+ import "./chunk-LDKPDODJ.js";
35
36
  import "./chunk-ZIKENA2C.js";
36
- import "./chunk-PQVCH2AE.js";
37
37
  import "./chunk-6Q3ZTEF6.js";
38
+ import "./chunk-YCVB7X56.js";
39
+ import "./chunk-PQVCH2AE.js";
38
40
  import {
39
41
  collapseWhitespace,
40
42
  truncateCodePointSafe
41
43
  } from "./chunk-PJKTFXE2.js";
42
- import "./chunk-YCVB7X56.js";
43
44
  import "./chunk-HBVPYRDW.js";
44
- import "./chunk-JOEJG4SD.js";
45
- import "./chunk-5FVVY2EB.js";
45
+ import "./chunk-BEC4YBNA.js";
46
46
  import "./chunk-FFAZ2XFU.js";
47
+ import "./chunk-5FVVY2EB.js";
47
48
  import "./chunk-JDSVLVCG.js";
48
49
  import "./chunk-5GKPFL3S.js";
49
50
  import "./chunk-JAKIDQB2.js";
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/active-recall.ts"],"sourcesContent":["import { appendFile, mkdir } from \"node:fs/promises\";\nimport path from \"node:path\";\nimport { DEFAULT_REASONING_MODEL } from \"./config.js\";\nimport { collapseWhitespace, truncateCodePointSafe } from \"./whitespace.js\";\nimport type {\n ActiveRecallChatType,\n ActiveRecallModelFallbackPolicy,\n ActiveRecallPromptStyle,\n ActiveRecallQueryMode,\n ActiveRecallThinking,\n} from \"./types.js\";\n\nexport interface ActiveRecallTurn {\n role: \"user\" | \"assistant\";\n content: string;\n}\n\nexport interface ActiveRecallInput {\n sessionKey: string;\n agentId: string;\n chatType: ActiveRecallChatType;\n recentTurns: ActiveRecallTurn[];\n currentMessage: string;\n}\n\nexport interface ActiveRecallConfig {\n enabled: boolean;\n agents: string[] | null;\n allowedChatTypes: ActiveRecallChatType[];\n queryMode: ActiveRecallQueryMode;\n promptStyle: ActiveRecallPromptStyle;\n customInstruction: string | null;\n promptReplacement: string | null;\n promptAppend: string | null;\n maxSummaryChars: number;\n recentUserTurns: number;\n recentAssistantTurns: number;\n recentUserChars: number;\n recentAssistantChars: number;\n thinking: ActiveRecallThinking;\n timeoutMs: number;\n cacheTtlMs: number;\n persistTranscripts: boolean;\n transcriptDir: string;\n entityGraphDepth: number;\n includeCausalTrajectories: boolean;\n includeDaySummary: boolean;\n attachRecallExplain: boolean;\n modelOverride: string | null;\n modelFallbackPolicy: ActiveRecallModelFallbackPolicy;\n}\n\nexport interface ActiveRecallResult {\n summary: string | null;\n citations: Array<{ memoryId: string; relevance: number }>;\n latencyMs: number;\n cacheHit: boolean;\n modelUsed: string;\n transcriptPath: string | null;\n}\n\nexport interface ActiveRecallDependencies {\n recall(query: string, sessionKey: string): Promise<string | null>;\n getLastRecallSnapshot?(sessionKey: string): { memoryIds?: string[] } | null;\n walkEntityGraph?(params: {\n sessionKey: string;\n query: string;\n depth: number;\n }): Promise<string[]>;\n loadCausalTrajectories?(params: {\n sessionKey: string;\n query: string;\n }): Promise<string[]>;\n loadDaySummary?(sessionKey: string): Promise<string | null>;\n explainLastRecall?(sessionKey: string): Promise<string | null>;\n generateSummary?(params: {\n prompt: string;\n sessionKey: string;\n agentId: string;\n model: string;\n timeoutMs: number;\n thinking: ActiveRecallThinking;\n fallbackPolicy: ActiveRecallModelFallbackPolicy;\n }): Promise<{ text: string | null; modelUsed?: string; cacheHit?: boolean }>;\n now?: () => number;\n}\n\ninterface CachedRecallResult {\n expiresAt: number;\n value: ActiveRecallResult;\n}\n\ninterface ActiveRecallTurnWithIndex {\n index: number;\n role: ActiveRecallTurn[\"role\"];\n content: string;\n}\n\nconst ACTIVE_RECALL_CACHE_MAX_ENTRIES = 256;\n\nconst NONE_SET = new Set([\n \"\",\n \"none\",\n \"no_reply\",\n \"nothing useful\",\n \"no relevant memory\",\n \"timeout\",\n \"[]\",\n \"{}\",\n \"null\",\n \"n/a\",\n]);\n\nconst STYLE_INSTRUCTIONS: Record<ActiveRecallPromptStyle, string> = {\n balanced: \"Summarize the most relevant memory context in a compact, neutral way.\",\n strict: \"Only include memory that is directly supported by the retrieved context.\",\n contextual: \"Prefer concise context that helps the next reply stay grounded in recent work.\",\n \"recall-heavy\": \"Bias toward richer recall coverage when multiple retrieved items reinforce each other.\",\n \"precision-heavy\": \"Bias toward precision. Omit anything uncertain or weakly supported.\",\n \"preference-only\": \"Only surface user preference or operating-style memory when present.\",\n};\n\nfunction cloneRecallResult(value: ActiveRecallResult): ActiveRecallResult {\n return {\n ...value,\n citations: [...value.citations],\n };\n}\n\nfunction buildCacheKey(input: ActiveRecallInput, config: ActiveRecallConfig, queryBundle: string): string {\n return JSON.stringify({\n sessionKey: input.sessionKey,\n agentId: input.agentId,\n queryMode: config.queryMode,\n promptStyle: config.promptStyle,\n customInstruction: config.customInstruction,\n promptReplacement: config.promptReplacement,\n promptAppend: config.promptAppend,\n maxSummaryChars: config.maxSummaryChars,\n entityGraphDepth: config.entityGraphDepth,\n includeCausalTrajectories: config.includeCausalTrajectories,\n includeDaySummary: config.includeDaySummary,\n attachRecallExplain: config.attachRecallExplain,\n modelOverride: config.modelOverride,\n modelFallbackPolicy: config.modelFallbackPolicy,\n thinking: config.thinking,\n queryBundle,\n });\n}\n\nfunction pruneExpiredCache(\n cache: Map<string, CachedRecallResult>,\n currentTime: number,\n): void {\n for (const [key, entry] of cache.entries()) {\n if (entry.expiresAt <= currentTime) {\n cache.delete(key);\n }\n }\n}\n\nfunction enforceCacheLimit(cache: Map<string, CachedRecallResult>): void {\n while (cache.size > ACTIVE_RECALL_CACHE_MAX_ENTRIES) {\n const oldestKey = cache.keys().next().value;\n if (typeof oldestKey !== \"string\") {\n break;\n }\n cache.delete(oldestKey);\n }\n}\n\nfunction cropTurns(\n turns: ActiveRecallTurn[],\n role: \"user\" | \"assistant\",\n maxTurns: number,\n maxChars: number,\n): ActiveRecallTurnWithIndex[] {\n if (maxTurns <= 0) {\n return [];\n }\n\n const selected: ActiveRecallTurnWithIndex[] = [];\n for (let index = turns.length - 1; index >= 0 && selected.length < maxTurns; index -= 1) {\n const turn = turns[index];\n if (turn?.role === role) {\n selected.push({\n index,\n role: turn.role,\n content: collapseWhitespace(truncateCodePointSafe(turn.content, maxChars)),\n });\n }\n }\n\n return selected.reverse();\n}\n\nfunction mergeChronologicalTurns(\n userTurns: ActiveRecallTurnWithIndex[],\n assistantTurns: ActiveRecallTurnWithIndex[],\n): ActiveRecallTurnWithIndex[] {\n return [...userTurns, ...assistantTurns]\n .sort((left, right) => left.index - right.index)\n .filter((value) => value.content.length > 0);\n}\n\nexport function buildActiveRecallQueryBundle(\n input: ActiveRecallInput,\n config: ActiveRecallConfig,\n): string {\n if (config.queryMode === \"message\") {\n return collapseWhitespace(input.currentMessage);\n }\n\n const userTurns = cropTurns(\n input.recentTurns,\n \"user\",\n config.recentUserTurns,\n config.recentUserChars,\n );\n const assistantTurns = cropTurns(\n input.recentTurns,\n \"assistant\",\n config.recentAssistantTurns,\n config.recentAssistantChars,\n );\n const mergedTurns = mergeChronologicalTurns(userTurns, assistantTurns);\n\n const parts = [\n ...mergedTurns.map((turn) => `${turn.role}: ${turn.content}`),\n ];\n\n if (config.queryMode === \"full\") {\n return [...parts, `current: ${collapseWhitespace(input.currentMessage)}`]\n .filter((value) => value.trim().length > 0)\n .join(\"\\n\");\n }\n\n return [`current: ${collapseWhitespace(input.currentMessage)}`, ...parts]\n .filter((value) => value.trim().length > 0)\n .join(\"\\n\");\n}\n\nexport function normalizeActiveRecallSummary(value: string | null, maxChars: number): string | null {\n if (value == null) return null;\n const compact = collapseWhitespace(value);\n if (NONE_SET.has(compact.toLowerCase())) return null;\n return truncateCodePointSafe(compact, maxChars);\n}\n\nfunction sanitizeTranscriptPathSegment(value: string): string {\n const normalized = collapseWhitespace(value);\n return encodeURIComponent(normalized.length > 0 ? normalized : \"unknown\").replaceAll(\n \".\",\n \"%2E\",\n );\n}\n\nexport function buildActiveRecallPrompt(params: {\n config: ActiveRecallConfig;\n queryBundle: string;\n recallContext: string | null;\n graphContext: string[];\n causalContext: string[];\n daySummary: string | null;\n recallExplain: string | null;\n}): string {\n const promptReplacement = params.config.promptReplacement?.trim();\n if (promptReplacement) {\n return promptReplacement;\n }\n\n const sections = [\n params.config.customInstruction?.trim() || STYLE_INSTRUCTIONS[params.config.promptStyle],\n `Query bundle:\\n${params.queryBundle}`,\n params.recallContext ? `Retrieved memory:\\n${params.recallContext}` : null,\n params.graphContext.length > 0 ? `Entity graph:\\n${params.graphContext.join(\"\\n\")}` : null,\n params.causalContext.length > 0 ? `Causal trajectories:\\n${params.causalContext.join(\"\\n\")}` : null,\n params.daySummary ? `Day summary:\\n${params.daySummary}` : null,\n params.recallExplain ? `Recall explain:\\n${params.recallExplain}` : null,\n params.config.promptAppend?.trim() || null,\n \"Return either NONE or a compact summary grounded only in the supplied context.\",\n ];\n return sections.filter((value): value is string => !!value && value.trim().length > 0).join(\"\\n\\n\");\n}\n\nasync function appendActiveRecallTranscript(\n transcriptRoot: string,\n input: ActiveRecallInput,\n config: ActiveRecallConfig,\n result: ActiveRecallResult,\n queryBundle: string,\n): Promise<string> {\n const date = new Date().toISOString().slice(0, 10);\n const filePath = path.join(\n transcriptRoot,\n \"agents\",\n sanitizeTranscriptPathSegment(input.agentId),\n date,\n `${sanitizeTranscriptPathSegment(input.sessionKey)}.jsonl`,\n );\n await mkdir(path.dirname(filePath), { recursive: true });\n await appendFile(\n filePath,\n `${JSON.stringify({\n ts: new Date().toISOString(),\n sessionKey: input.sessionKey,\n agentId: input.agentId,\n queryMode: config.queryMode,\n promptStyle: config.promptStyle,\n queryBundle,\n summary: result.summary,\n citations: result.citations,\n latencyMs: result.latencyMs,\n cacheHit: result.cacheHit,\n modelUsed: result.modelUsed,\n })}\\n`,\n \"utf8\",\n );\n return filePath;\n}\n\nexport function createActiveRecallEngine(\n deps: ActiveRecallDependencies,\n config: ActiveRecallConfig,\n) {\n const cache = new Map<string, CachedRecallResult>();\n const now = deps.now ?? (() => Date.now());\n\n return {\n async run(input: ActiveRecallInput): Promise<ActiveRecallResult> {\n if (!config.enabled) {\n return {\n summary: null,\n citations: [],\n latencyMs: 0,\n cacheHit: false,\n modelUsed: config.modelOverride ?? \"disabled\",\n transcriptPath: null,\n };\n }\n if (config.agents && !config.agents.includes(input.agentId)) {\n return {\n summary: null,\n citations: [],\n latencyMs: 0,\n cacheHit: false,\n modelUsed: config.modelOverride ?? \"filtered\",\n transcriptPath: null,\n };\n }\n if (!config.allowedChatTypes.includes(input.chatType)) {\n return {\n summary: null,\n citations: [],\n latencyMs: 0,\n cacheHit: false,\n modelUsed: config.modelOverride ?? \"filtered\",\n transcriptPath: null,\n };\n }\n\n const queryBundle = buildActiveRecallQueryBundle(input, config);\n const cacheKey = buildCacheKey(input, config, queryBundle);\n const currentTime = now();\n const cacheEnabled = config.cacheTtlMs > 0;\n if (cacheEnabled) {\n pruneExpiredCache(cache, currentTime);\n }\n const cached = cache.get(cacheKey);\n if (cacheEnabled && cached) {\n const result: ActiveRecallResult = {\n ...cloneRecallResult(cached.value),\n latencyMs: Math.max(0, now() - currentTime),\n cacheHit: true,\n };\n result.transcriptPath = null;\n if (config.persistTranscripts) {\n try {\n result.transcriptPath = await appendActiveRecallTranscript(\n config.transcriptDir,\n input,\n config,\n result,\n queryBundle,\n );\n } catch {\n result.transcriptPath = null;\n }\n }\n return result;\n }\n\n const start = currentTime;\n const recallContext = await deps.recall(queryBundle, input.sessionKey);\n const graphContext =\n config.entityGraphDepth > 0 && deps.walkEntityGraph\n ? await deps.walkEntityGraph({\n sessionKey: input.sessionKey,\n query: queryBundle,\n depth: config.entityGraphDepth,\n })\n : [];\n const causalContext =\n config.includeCausalTrajectories && deps.loadCausalTrajectories\n ? await deps.loadCausalTrajectories({\n sessionKey: input.sessionKey,\n query: queryBundle,\n })\n : [];\n const daySummary =\n config.includeDaySummary && deps.loadDaySummary\n ? await deps.loadDaySummary(input.sessionKey)\n : null;\n const recallExplain =\n config.attachRecallExplain && deps.explainLastRecall\n ? await deps.explainLastRecall(input.sessionKey)\n : null;\n const prompt = buildActiveRecallPrompt({\n config,\n queryBundle,\n recallContext,\n graphContext,\n causalContext,\n daySummary,\n recallExplain,\n });\n\n const generated = deps.generateSummary\n ? await deps.generateSummary({\n prompt,\n sessionKey: input.sessionKey,\n agentId: input.agentId,\n model: config.modelOverride ?? DEFAULT_REASONING_MODEL,\n timeoutMs: config.timeoutMs,\n thinking: config.thinking,\n fallbackPolicy: config.modelFallbackPolicy,\n })\n : {\n text: recallContext,\n modelUsed: config.modelOverride ?? DEFAULT_REASONING_MODEL,\n cacheHit: false,\n };\n const summary = normalizeActiveRecallSummary(\n generated.text,\n config.maxSummaryChars,\n );\n const snapshot = deps.getLastRecallSnapshot?.(input.sessionKey);\n const citations = (snapshot?.memoryIds ?? []).map((memoryId, index) => ({\n memoryId,\n relevance: Number((1 / (index + 1)).toFixed(3)),\n }));\n const result: ActiveRecallResult = {\n summary,\n citations,\n latencyMs: Math.max(0, now() - start),\n cacheHit: generated.cacheHit === true,\n modelUsed: generated.modelUsed ?? config.modelOverride ?? DEFAULT_REASONING_MODEL,\n transcriptPath: null,\n };\n if (config.persistTranscripts) {\n try {\n result.transcriptPath = await appendActiveRecallTranscript(\n config.transcriptDir,\n input,\n config,\n result,\n queryBundle,\n );\n } catch {\n result.transcriptPath = null;\n }\n }\n\n if (cacheEnabled) {\n const completedAt = now();\n const cachedValue = cloneRecallResult(result);\n cachedValue.transcriptPath = null;\n cache.set(cacheKey, {\n expiresAt: completedAt + config.cacheTtlMs,\n value: cachedValue,\n });\n enforceCacheLimit(cache);\n }\n return result;\n },\n };\n}\n"],"mappings":"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","names":["result"]}
1
+ {"version":3,"sources":["../src/active-recall.ts"],"sourcesContent":["import { appendFile, mkdir } from \"node:fs/promises\";\nimport path from \"node:path\";\nimport { DEFAULT_REASONING_MODEL } from \"./config.js\";\nimport { collapseWhitespace, truncateCodePointSafe } from \"./whitespace.js\";\nimport type {\n ActiveRecallChatType,\n ActiveRecallModelFallbackPolicy,\n ActiveRecallPromptStyle,\n ActiveRecallQueryMode,\n ActiveRecallThinking,\n} from \"./types.js\";\n\nexport interface ActiveRecallTurn {\n role: \"user\" | \"assistant\";\n content: string;\n}\n\nexport interface ActiveRecallInput {\n sessionKey: string;\n agentId: string;\n chatType: ActiveRecallChatType;\n recentTurns: ActiveRecallTurn[];\n currentMessage: string;\n}\n\nexport interface ActiveRecallConfig {\n enabled: boolean;\n agents: string[] | null;\n allowedChatTypes: ActiveRecallChatType[];\n queryMode: ActiveRecallQueryMode;\n promptStyle: ActiveRecallPromptStyle;\n customInstruction: string | null;\n promptReplacement: string | null;\n promptAppend: string | null;\n maxSummaryChars: number;\n recentUserTurns: number;\n recentAssistantTurns: number;\n recentUserChars: number;\n recentAssistantChars: number;\n thinking: ActiveRecallThinking;\n timeoutMs: number;\n cacheTtlMs: number;\n persistTranscripts: boolean;\n transcriptDir: string;\n entityGraphDepth: number;\n includeCausalTrajectories: boolean;\n includeDaySummary: boolean;\n attachRecallExplain: boolean;\n modelOverride: string | null;\n modelFallbackPolicy: ActiveRecallModelFallbackPolicy;\n}\n\nexport interface ActiveRecallResult {\n summary: string | null;\n citations: Array<{ memoryId: string; relevance: number }>;\n latencyMs: number;\n cacheHit: boolean;\n modelUsed: string;\n transcriptPath: string | null;\n}\n\nexport interface ActiveRecallDependencies {\n recall(query: string, sessionKey: string): Promise<string | null>;\n getLastRecallSnapshot?(sessionKey: string): { memoryIds?: string[] } | null;\n walkEntityGraph?(params: {\n sessionKey: string;\n query: string;\n depth: number;\n }): Promise<string[]>;\n loadCausalTrajectories?(params: {\n sessionKey: string;\n query: string;\n }): Promise<string[]>;\n loadDaySummary?(sessionKey: string): Promise<string | null>;\n explainLastRecall?(sessionKey: string): Promise<string | null>;\n generateSummary?(params: {\n prompt: string;\n sessionKey: string;\n agentId: string;\n model: string;\n timeoutMs: number;\n thinking: ActiveRecallThinking;\n fallbackPolicy: ActiveRecallModelFallbackPolicy;\n }): Promise<{ text: string | null; modelUsed?: string; cacheHit?: boolean }>;\n now?: () => number;\n}\n\ninterface CachedRecallResult {\n expiresAt: number;\n value: ActiveRecallResult;\n}\n\ninterface ActiveRecallTurnWithIndex {\n index: number;\n role: ActiveRecallTurn[\"role\"];\n content: string;\n}\n\nconst ACTIVE_RECALL_CACHE_MAX_ENTRIES = 256;\n\nconst NONE_SET = new Set([\n \"\",\n \"none\",\n \"no_reply\",\n \"nothing useful\",\n \"no relevant memory\",\n \"timeout\",\n \"[]\",\n \"{}\",\n \"null\",\n \"n/a\",\n]);\n\nconst STYLE_INSTRUCTIONS: Record<ActiveRecallPromptStyle, string> = {\n balanced: \"Summarize the most relevant memory context in a compact, neutral way.\",\n strict: \"Only include memory that is directly supported by the retrieved context.\",\n contextual: \"Prefer concise context that helps the next reply stay grounded in recent work.\",\n \"recall-heavy\": \"Bias toward richer recall coverage when multiple retrieved items reinforce each other.\",\n \"precision-heavy\": \"Bias toward precision. Omit anything uncertain or weakly supported.\",\n \"preference-only\": \"Only surface user preference or operating-style memory when present.\",\n};\n\nfunction cloneRecallResult(value: ActiveRecallResult): ActiveRecallResult {\n return {\n ...value,\n citations: [...value.citations],\n };\n}\n\nfunction buildCacheKey(input: ActiveRecallInput, config: ActiveRecallConfig, queryBundle: string): string {\n return JSON.stringify({\n sessionKey: input.sessionKey,\n agentId: input.agentId,\n queryMode: config.queryMode,\n promptStyle: config.promptStyle,\n customInstruction: config.customInstruction,\n promptReplacement: config.promptReplacement,\n promptAppend: config.promptAppend,\n maxSummaryChars: config.maxSummaryChars,\n entityGraphDepth: config.entityGraphDepth,\n includeCausalTrajectories: config.includeCausalTrajectories,\n includeDaySummary: config.includeDaySummary,\n attachRecallExplain: config.attachRecallExplain,\n modelOverride: config.modelOverride,\n modelFallbackPolicy: config.modelFallbackPolicy,\n thinking: config.thinking,\n queryBundle,\n });\n}\n\nfunction pruneExpiredCache(\n cache: Map<string, CachedRecallResult>,\n currentTime: number,\n): void {\n for (const [key, entry] of cache.entries()) {\n if (entry.expiresAt <= currentTime) {\n cache.delete(key);\n }\n }\n}\n\nfunction enforceCacheLimit(cache: Map<string, CachedRecallResult>): void {\n while (cache.size > ACTIVE_RECALL_CACHE_MAX_ENTRIES) {\n const oldestKey = cache.keys().next().value;\n if (typeof oldestKey !== \"string\") {\n break;\n }\n cache.delete(oldestKey);\n }\n}\n\nfunction cropTurns(\n turns: ActiveRecallTurn[],\n role: \"user\" | \"assistant\",\n maxTurns: number,\n maxChars: number,\n): ActiveRecallTurnWithIndex[] {\n if (maxTurns <= 0) {\n return [];\n }\n\n const selected: ActiveRecallTurnWithIndex[] = [];\n for (let index = turns.length - 1; index >= 0 && selected.length < maxTurns; index -= 1) {\n const turn = turns[index];\n if (turn?.role === role) {\n selected.push({\n index,\n role: turn.role,\n content: collapseWhitespace(truncateCodePointSafe(turn.content, maxChars)),\n });\n }\n }\n\n return selected.reverse();\n}\n\nfunction mergeChronologicalTurns(\n userTurns: ActiveRecallTurnWithIndex[],\n assistantTurns: ActiveRecallTurnWithIndex[],\n): ActiveRecallTurnWithIndex[] {\n return [...userTurns, ...assistantTurns]\n .sort((left, right) => left.index - right.index)\n .filter((value) => value.content.length > 0);\n}\n\nexport function buildActiveRecallQueryBundle(\n input: ActiveRecallInput,\n config: ActiveRecallConfig,\n): string {\n if (config.queryMode === \"message\") {\n return collapseWhitespace(input.currentMessage);\n }\n\n const userTurns = cropTurns(\n input.recentTurns,\n \"user\",\n config.recentUserTurns,\n config.recentUserChars,\n );\n const assistantTurns = cropTurns(\n input.recentTurns,\n \"assistant\",\n config.recentAssistantTurns,\n config.recentAssistantChars,\n );\n const mergedTurns = mergeChronologicalTurns(userTurns, assistantTurns);\n\n const parts = [\n ...mergedTurns.map((turn) => `${turn.role}: ${turn.content}`),\n ];\n\n if (config.queryMode === \"full\") {\n return [...parts, `current: ${collapseWhitespace(input.currentMessage)}`]\n .filter((value) => value.trim().length > 0)\n .join(\"\\n\");\n }\n\n return [`current: ${collapseWhitespace(input.currentMessage)}`, ...parts]\n .filter((value) => value.trim().length > 0)\n .join(\"\\n\");\n}\n\nexport function normalizeActiveRecallSummary(value: string | null, maxChars: number): string | null {\n if (value == null) return null;\n const compact = collapseWhitespace(value);\n if (NONE_SET.has(compact.toLowerCase())) return null;\n return truncateCodePointSafe(compact, maxChars);\n}\n\nfunction sanitizeTranscriptPathSegment(value: string): string {\n const normalized = collapseWhitespace(value);\n return encodeURIComponent(normalized.length > 0 ? normalized : \"unknown\").replaceAll(\n \".\",\n \"%2E\",\n );\n}\n\nexport function buildActiveRecallPrompt(params: {\n config: ActiveRecallConfig;\n queryBundle: string;\n recallContext: string | null;\n graphContext: string[];\n causalContext: string[];\n daySummary: string | null;\n recallExplain: string | null;\n}): string {\n const promptReplacement = params.config.promptReplacement?.trim();\n if (promptReplacement) {\n return promptReplacement;\n }\n\n const sections = [\n params.config.customInstruction?.trim() || STYLE_INSTRUCTIONS[params.config.promptStyle],\n `Query bundle:\\n${params.queryBundle}`,\n params.recallContext ? `Retrieved memory:\\n${params.recallContext}` : null,\n params.graphContext.length > 0 ? `Entity graph:\\n${params.graphContext.join(\"\\n\")}` : null,\n params.causalContext.length > 0 ? `Causal trajectories:\\n${params.causalContext.join(\"\\n\")}` : null,\n params.daySummary ? `Day summary:\\n${params.daySummary}` : null,\n params.recallExplain ? `Recall explain:\\n${params.recallExplain}` : null,\n params.config.promptAppend?.trim() || null,\n \"Return either NONE or a compact summary grounded only in the supplied context.\",\n ];\n return sections.filter((value): value is string => !!value && value.trim().length > 0).join(\"\\n\\n\");\n}\n\nasync function appendActiveRecallTranscript(\n transcriptRoot: string,\n input: ActiveRecallInput,\n config: ActiveRecallConfig,\n result: ActiveRecallResult,\n queryBundle: string,\n): Promise<string> {\n const date = new Date().toISOString().slice(0, 10);\n const filePath = path.join(\n transcriptRoot,\n \"agents\",\n sanitizeTranscriptPathSegment(input.agentId),\n date,\n `${sanitizeTranscriptPathSegment(input.sessionKey)}.jsonl`,\n );\n await mkdir(path.dirname(filePath), { recursive: true });\n await appendFile(\n filePath,\n `${JSON.stringify({\n ts: new Date().toISOString(),\n sessionKey: input.sessionKey,\n agentId: input.agentId,\n queryMode: config.queryMode,\n promptStyle: config.promptStyle,\n queryBundle,\n summary: result.summary,\n citations: result.citations,\n latencyMs: result.latencyMs,\n cacheHit: result.cacheHit,\n modelUsed: result.modelUsed,\n })}\\n`,\n \"utf8\",\n );\n return filePath;\n}\n\nexport function createActiveRecallEngine(\n deps: ActiveRecallDependencies,\n config: ActiveRecallConfig,\n) {\n const cache = new Map<string, CachedRecallResult>();\n const now = deps.now ?? (() => Date.now());\n\n return {\n async run(input: ActiveRecallInput): Promise<ActiveRecallResult> {\n if (!config.enabled) {\n return {\n summary: null,\n citations: [],\n latencyMs: 0,\n cacheHit: false,\n modelUsed: config.modelOverride ?? \"disabled\",\n transcriptPath: null,\n };\n }\n if (config.agents && !config.agents.includes(input.agentId)) {\n return {\n summary: null,\n citations: [],\n latencyMs: 0,\n cacheHit: false,\n modelUsed: config.modelOverride ?? \"filtered\",\n transcriptPath: null,\n };\n }\n if (!config.allowedChatTypes.includes(input.chatType)) {\n return {\n summary: null,\n citations: [],\n latencyMs: 0,\n cacheHit: false,\n modelUsed: config.modelOverride ?? \"filtered\",\n transcriptPath: null,\n };\n }\n\n const queryBundle = buildActiveRecallQueryBundle(input, config);\n const cacheKey = buildCacheKey(input, config, queryBundle);\n const currentTime = now();\n const cacheEnabled = config.cacheTtlMs > 0;\n if (cacheEnabled) {\n pruneExpiredCache(cache, currentTime);\n }\n const cached = cache.get(cacheKey);\n if (cacheEnabled && cached) {\n const result: ActiveRecallResult = {\n ...cloneRecallResult(cached.value),\n latencyMs: Math.max(0, now() - currentTime),\n cacheHit: true,\n };\n result.transcriptPath = null;\n if (config.persistTranscripts) {\n try {\n result.transcriptPath = await appendActiveRecallTranscript(\n config.transcriptDir,\n input,\n config,\n result,\n queryBundle,\n );\n } catch {\n result.transcriptPath = null;\n }\n }\n return result;\n }\n\n const start = currentTime;\n const recallContext = await deps.recall(queryBundle, input.sessionKey);\n const graphContext =\n config.entityGraphDepth > 0 && deps.walkEntityGraph\n ? await deps.walkEntityGraph({\n sessionKey: input.sessionKey,\n query: queryBundle,\n depth: config.entityGraphDepth,\n })\n : [];\n const causalContext =\n config.includeCausalTrajectories && deps.loadCausalTrajectories\n ? await deps.loadCausalTrajectories({\n sessionKey: input.sessionKey,\n query: queryBundle,\n })\n : [];\n const daySummary =\n config.includeDaySummary && deps.loadDaySummary\n ? await deps.loadDaySummary(input.sessionKey)\n : null;\n const recallExplain =\n config.attachRecallExplain && deps.explainLastRecall\n ? await deps.explainLastRecall(input.sessionKey)\n : null;\n const prompt = buildActiveRecallPrompt({\n config,\n queryBundle,\n recallContext,\n graphContext,\n causalContext,\n daySummary,\n recallExplain,\n });\n\n const generated = deps.generateSummary\n ? await deps.generateSummary({\n prompt,\n sessionKey: input.sessionKey,\n agentId: input.agentId,\n model: config.modelOverride ?? DEFAULT_REASONING_MODEL,\n timeoutMs: config.timeoutMs,\n thinking: config.thinking,\n fallbackPolicy: config.modelFallbackPolicy,\n })\n : {\n text: recallContext,\n modelUsed: config.modelOverride ?? DEFAULT_REASONING_MODEL,\n cacheHit: false,\n };\n const summary = normalizeActiveRecallSummary(\n generated.text,\n config.maxSummaryChars,\n );\n const snapshot = deps.getLastRecallSnapshot?.(input.sessionKey);\n const citations = (snapshot?.memoryIds ?? []).map((memoryId, index) => ({\n memoryId,\n relevance: Number((1 / (index + 1)).toFixed(3)),\n }));\n const result: ActiveRecallResult = {\n summary,\n citations,\n latencyMs: Math.max(0, now() - start),\n cacheHit: generated.cacheHit === true,\n modelUsed: generated.modelUsed ?? config.modelOverride ?? DEFAULT_REASONING_MODEL,\n transcriptPath: null,\n };\n if (config.persistTranscripts) {\n try {\n result.transcriptPath = await appendActiveRecallTranscript(\n config.transcriptDir,\n input,\n config,\n result,\n queryBundle,\n );\n } catch {\n result.transcriptPath = null;\n }\n }\n\n if (cacheEnabled) {\n const completedAt = now();\n const cachedValue = cloneRecallResult(result);\n cachedValue.transcriptPath = null;\n cache.set(cacheKey, {\n expiresAt: completedAt + config.cacheTtlMs,\n value: cachedValue,\n });\n enforceCacheLimit(cache);\n }\n return result;\n },\n };\n}\n"],"mappings":"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","names":["result"]}
@@ -1,19 +1,19 @@
1
1
  import "../chunk-SEDEKFYQ.js";
2
2
  import {
3
3
  AdapterRegistry
4
- } from "../chunk-JBPKEARU.js";
5
- import {
6
- ReplitAdapter
7
- } from "../chunk-TMSXWOBZ.js";
8
- import {
9
- ClaudeCodeAdapter
10
- } from "../chunk-J64TK33U.js";
4
+ } from "../chunk-2QSZNTDO.js";
11
5
  import {
12
6
  CodexAdapter
13
7
  } from "../chunk-RSUYKGGZ.js";
14
8
  import {
15
9
  HermesAdapter
16
10
  } from "../chunk-42NQ7AVG.js";
11
+ import {
12
+ ReplitAdapter
13
+ } from "../chunk-TMSXWOBZ.js";
14
+ import {
15
+ ClaudeCodeAdapter
16
+ } from "../chunk-J64TK33U.js";
17
17
  import "../chunk-7RXCMVFQ.js";
18
18
  import "../chunk-PZ5AY32C.js";
19
19
  export {
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  AdapterRegistry
3
- } from "../chunk-JBPKEARU.js";
4
- import "../chunk-TMSXWOBZ.js";
5
- import "../chunk-J64TK33U.js";
3
+ } from "../chunk-2QSZNTDO.js";
6
4
  import "../chunk-RSUYKGGZ.js";
7
5
  import "../chunk-42NQ7AVG.js";
6
+ import "../chunk-TMSXWOBZ.js";
7
+ import "../chunk-J64TK33U.js";
8
8
  import "../chunk-7RXCMVFQ.js";
9
9
  import "../chunk-PZ5AY32C.js";
10
10
  export {
@@ -1,4 +1,4 @@
1
- import { a8 as ExtractionResult } from './types-BHDNxGTT.js';
1
+ import { a8 as ExtractionResult } from './types-djxQlxJ7.js';
2
2
  import './message-parts/index.js';
3
3
  import './bounded-jsonl-state.js';
4
4
  import './types-CM86alG1.js';
@@ -8,6 +8,7 @@ import './contradiction-config.js';
8
8
  import './graph-path-scoring-config.js';
9
9
  import './causal-trajectory.js';
10
10
  import './objective-state.js';
11
+ import './active-context-config.js';
11
12
  import './types-continuity.js';
12
13
 
13
14
  /**
@@ -1,4 +1,4 @@
1
- import { M as MemoryFile } from './types-BHDNxGTT.js';
1
+ import { M as MemoryFile } from './types-djxQlxJ7.js';
2
2
  import './message-parts/index.js';
3
3
  import './bounded-jsonl-state.js';
4
4
  import './types-CM86alG1.js';
@@ -8,6 +8,7 @@ import './contradiction-config.js';
8
8
  import './graph-path-scoring-config.js';
9
9
  import './causal-trajectory.js';
10
10
  import './objective-state.js';
11
+ import './active-context-config.js';
11
12
  import './types-continuity.js';
12
13
 
13
14
  /**
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  dateInTimezone,
3
3
  defaultTimezone
4
- } from "./chunk-VFYRYFLL.js";
4
+ } from "./chunk-UEBDCMOO.js";
5
5
  import "./chunk-HSZMX3ZJ.js";
6
6
  import "./chunk-UOBPK2OS.js";
7
7
  import "./chunk-CIO7GCWE.js";
@@ -12,7 +12,7 @@ import {
12
12
  describeErrorForOperator
13
13
  } from "./chunk-V7IZKJI3.js";
14
14
  import "./chunk-UHVXE24Y.js";
15
- import "./chunk-RAIUTAZZ.js";
15
+ import "./chunk-H2YSH3DG.js";
16
16
  import "./chunk-BT7NVCML.js";
17
17
  import "./chunk-UW5NPZJ2.js";
18
18
  import "./chunk-QIEUU4UK.js";
@@ -21,12 +21,12 @@ import "./chunk-45GF7Y3V.js";
21
21
  import "./chunk-RGMVMVMF.js";
22
22
  import "./chunk-N7RWREIQ.js";
23
23
  import "./chunk-QDW3E4RD.js";
24
- import "./chunk-RIAM7DND.js";
24
+ import "./chunk-LDKPDODJ.js";
25
25
  import "./chunk-YCVB7X56.js";
26
26
  import "./chunk-RL6NEVXT.js";
27
- import "./chunk-JOEJG4SD.js";
28
- import "./chunk-5FVVY2EB.js";
27
+ import "./chunk-BEC4YBNA.js";
29
28
  import "./chunk-FFAZ2XFU.js";
29
+ import "./chunk-5FVVY2EB.js";
30
30
  import "./chunk-JDSVLVCG.js";
31
31
  import "./chunk-5GKPFL3S.js";
32
32
  import "./chunk-JAKIDQB2.js";
@@ -90,4 +90,4 @@ function startWearablesAutoSync(settings, deps) {
90
90
  export {
91
91
  startWearablesAutoSync
92
92
  };
93
- //# sourceMappingURL=auto-sync-XVMLL2RH.js.map
93
+ //# sourceMappingURL=auto-sync-2YPITIWN.js.map
@@ -1,4 +1,4 @@
1
- import { a9 as BehaviorSignalEvent, P as PluginConfig, t as BehaviorLoopPolicyState } from './types-BHDNxGTT.js';
1
+ import { a9 as BehaviorSignalEvent, P as PluginConfig, t as BehaviorLoopPolicyState } from './types-djxQlxJ7.js';
2
2
  import './message-parts/index.js';
3
3
  import './bounded-jsonl-state.js';
4
4
  import './types-CM86alG1.js';
@@ -8,6 +8,7 @@ import './contradiction-config.js';
8
8
  import './graph-path-scoring-config.js';
9
9
  import './causal-trajectory.js';
10
10
  import './objective-state.js';
11
+ import './active-context-config.js';
11
12
  import './types-continuity.js';
12
13
 
13
14
  declare const TUNABLE_BEHAVIOR_PARAMETERS: readonly ["recencyWeight", "lifecyclePromoteHeatThreshold", "lifecycleStaleDecayThreshold", "cronRecallInstructionHeavyTokenCap"];
@@ -1,4 +1,4 @@
1
- import { y as MemoryCategory, a9 as BehaviorSignalEvent } from './types-BHDNxGTT.js';
1
+ import { y as MemoryCategory, a9 as BehaviorSignalEvent } from './types-djxQlxJ7.js';
2
2
  import './message-parts/index.js';
3
3
  import './bounded-jsonl-state.js';
4
4
  import './types-CM86alG1.js';
@@ -8,6 +8,7 @@ import './contradiction-config.js';
8
8
  import './graph-path-scoring-config.js';
9
9
  import './causal-trajectory.js';
10
10
  import './objective-state.js';
11
+ import './active-context-config.js';
11
12
  import './types-continuity.js';
12
13
 
13
14
  declare function buildBehaviorSignalHash(category: MemoryCategory, content: string): string;