@snoai/memory 0.0.0-stage → 1.0.0

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 (478) hide show
  1. package/LICENSE +176 -0
  2. package/README.md +7 -2
  3. package/config/b-profile-section-registry.json +118 -0
  4. package/config/llm/compiled/2026-05-19T230932Z/manifest.json +25 -0
  5. package/config/llm/compiled/2026-05-19T230932Z/registry-root.json +67 -0
  6. package/config/llm/compiled/2026-05-19T230932Z/resolved/mem_claw/openai_gpt_5_nano.json +5 -0
  7. package/config/llm/compiled/2026-05-19T230932Z/resolved/mem_claw/openrouter_auto.json +5 -0
  8. package/config/llm/compiled/2026-05-19T230932Z/resolved/mem_claw/sno_ai_extract.json +5 -0
  9. package/config/llm/compiled/2026-05-19T230932Z/source/mem_claw/openai_gpt_5_nano.mda +24 -0
  10. package/config/llm/compiled/2026-05-19T230932Z/source/mem_claw/openrouter_auto.mda +24 -0
  11. package/config/llm/compiled/2026-05-19T230932Z/source/mem_claw/sno_ai_extract.mda +24 -0
  12. package/config/llm/compiled/2026-07-21T001311Z/manifest.json +43 -0
  13. package/config/llm/compiled/2026-07-21T001311Z/registry-root.json +97 -0
  14. package/config/llm/compiled/2026-07-21T001311Z/resolved/mem_claw/openai_gpt_5_nano.json +5 -0
  15. package/config/llm/compiled/2026-07-21T001311Z/resolved/mem_claw/openrouter_auto.json +5 -0
  16. package/config/llm/compiled/2026-07-21T001311Z/resolved/mem_claw/sno_ai_extract.json +5 -0
  17. package/config/llm/compiled/2026-07-21T001311Z/resolved/mem_claw/sno_conflict_verdict.json +10 -0
  18. package/config/llm/compiled/2026-07-21T001311Z/resolved/mem_claw/sno_extract_chat.json +10 -0
  19. package/config/llm/compiled/2026-07-21T001311Z/resolved/mem_claw/sno_extract_profile.json +10 -0
  20. package/config/llm/compiled/2026-07-21T001311Z/source/mem_claw/openai_gpt_5_nano.mda +24 -0
  21. package/config/llm/compiled/2026-07-21T001311Z/source/mem_claw/openrouter_auto.mda +24 -0
  22. package/config/llm/compiled/2026-07-21T001311Z/source/mem_claw/sno_ai_extract.mda +24 -0
  23. package/config/llm/compiled/2026-07-21T001311Z/source/mem_claw/sno_conflict_verdict.mda +27 -0
  24. package/config/llm/compiled/2026-07-21T001311Z/source/mem_claw/sno_extract_chat.mda +27 -0
  25. package/config/llm/compiled/2026-07-21T001311Z/source/mem_claw/sno_extract_profile.mda +27 -0
  26. package/config/llm/compiled/2026-08-29T060335Z/manifest.json +43 -0
  27. package/config/llm/compiled/2026-08-29T060335Z/registry-root.json +97 -0
  28. package/config/llm/compiled/2026-08-29T060335Z/resolved/mem_claw/openai_gpt_5_nano.json +5 -0
  29. package/config/llm/compiled/2026-08-29T060335Z/resolved/mem_claw/openrouter_auto.json +5 -0
  30. package/config/llm/compiled/2026-08-29T060335Z/resolved/mem_claw/sno_ai_extract.json +5 -0
  31. package/config/llm/compiled/2026-08-29T060335Z/resolved/mem_claw/sno_conflict_verdict.json +10 -0
  32. package/config/llm/compiled/2026-08-29T060335Z/resolved/mem_claw/sno_extract_chat.json +10 -0
  33. package/config/llm/compiled/2026-08-29T060335Z/resolved/mem_claw/sno_extract_profile.json +10 -0
  34. package/config/llm/compiled/2026-08-29T060335Z/source/mem_claw/openai_gpt_5_nano.mda +24 -0
  35. package/config/llm/compiled/2026-08-29T060335Z/source/mem_claw/openrouter_auto.mda +24 -0
  36. package/config/llm/compiled/2026-08-29T060335Z/source/mem_claw/sno_ai_extract.mda +24 -0
  37. package/config/llm/compiled/2026-08-29T060335Z/source/mem_claw/sno_conflict_verdict.mda +27 -0
  38. package/config/llm/compiled/2026-08-29T060335Z/source/mem_claw/sno_extract_chat.mda +27 -0
  39. package/config/llm/compiled/2026-08-29T060335Z/source/mem_claw/sno_extract_profile.mda +27 -0
  40. package/config/llm/compiled/2026-09-04T004828Z/manifest.json +43 -0
  41. package/config/llm/compiled/2026-09-04T004828Z/registry-root.json +97 -0
  42. package/config/llm/compiled/2026-09-04T004828Z/resolved/mem_claw/openai_gpt_5_nano.json +5 -0
  43. package/config/llm/compiled/2026-09-04T004828Z/resolved/mem_claw/openrouter_auto.json +5 -0
  44. package/config/llm/compiled/2026-09-04T004828Z/resolved/mem_claw/sno_ai_extract.json +5 -0
  45. package/config/llm/compiled/2026-09-04T004828Z/resolved/mem_claw/sno_conflict_verdict.json +10 -0
  46. package/config/llm/compiled/2026-09-04T004828Z/resolved/mem_claw/sno_extract_chat.json +10 -0
  47. package/config/llm/compiled/2026-09-04T004828Z/resolved/mem_claw/sno_extract_profile.json +10 -0
  48. package/config/llm/compiled/2026-09-04T004828Z/source/mem_claw/openai_gpt_5_nano.mda +24 -0
  49. package/config/llm/compiled/2026-09-04T004828Z/source/mem_claw/openrouter_auto.mda +24 -0
  50. package/config/llm/compiled/2026-09-04T004828Z/source/mem_claw/sno_ai_extract.mda +24 -0
  51. package/config/llm/compiled/2026-09-04T004828Z/source/mem_claw/sno_conflict_verdict.mda +27 -0
  52. package/config/llm/compiled/2026-09-04T004828Z/source/mem_claw/sno_extract_chat.mda +27 -0
  53. package/config/llm/compiled/2026-09-04T004828Z/source/mem_claw/sno_extract_profile.mda +27 -0
  54. package/config/llm/current.json +4 -0
  55. package/config/llm/source/mem_claw/openai_gpt_5_nano.mda +24 -0
  56. package/config/llm/source/mem_claw/openrouter_auto.mda +24 -0
  57. package/config/llm/source/mem_claw/sno_ai_extract.mda +24 -0
  58. package/config/llm/source/mem_claw/sno_conflict_verdict.mda +27 -0
  59. package/config/llm/source/mem_claw/sno_extract_chat.mda +27 -0
  60. package/config/llm/source/mem_claw/sno_extract_profile.mda +27 -0
  61. package/config/llm.trust.json +37 -0
  62. package/dist/_types-CUKHSRkS.d.ts +103 -0
  63. package/dist/access-tracker-CSc21GtV.d.ts +110 -0
  64. package/dist/adapter-DMEmCTKo.d.ts +69 -0
  65. package/dist/adapter-XaRHZWZ2.js +333 -0
  66. package/dist/agent-llm-port-5oXgBpzJ.d.ts +53 -0
  67. package/dist/all-resources-BQK2ugjB.js +6379 -0
  68. package/dist/all-resources-Dij6l5h0.d.ts +18 -0
  69. package/dist/ambient-learning-text-normalizer-CxjATmMp.js +170 -0
  70. package/dist/ambient-learning-text-normalizer-_fH3LeuK.d.ts +10 -0
  71. package/dist/atomic-extraction-reply-BJ9XV_9s.js +863 -0
  72. package/dist/atomic-extraction-skill-CcXmuCqL.js +56 -0
  73. package/dist/atomic-memory-extraction-BpOUWPJM.d.ts +327 -0
  74. package/dist/atomic-memory-extraction-sdNf1-B1.js +3605 -0
  75. package/dist/b-profile-section-dictionary-provider-BHkoNqgk.js +1812 -0
  76. package/dist/b-profile-section-dictionary-provider-BxbksLj3.d.ts +62 -0
  77. package/dist/best-effort-BPZSzKk0.d.ts +9 -0
  78. package/dist/calendar-instruction-CzqZbAPG.js +194 -0
  79. package/dist/capture-policy-detector-CHz5GOPA.d.ts +53 -0
  80. package/dist/capture-policy-detector-DaMfy9CZ.js +357 -0
  81. package/dist/classifier-C96uH9OF.d.ts +272 -0
  82. package/dist/client.d.ts +34 -0
  83. package/dist/client.js +305 -0
  84. package/dist/coding-skin.d.ts +51 -0
  85. package/dist/coding-skin.js +55 -0
  86. package/dist/config-tSrvLXgV.js +2577 -0
  87. package/dist/connection-DAbzki8K.d.ts +391 -0
  88. package/dist/connection-DliCOBB2.js +297 -0
  89. package/dist/daily-log-generator-CH_KuWHs.js +469 -0
  90. package/dist/daily-log-generator-CsQPHl4A.d.ts +73 -0
  91. package/dist/daily-spend-estimator-DiwzBlo1.d.ts +8 -0
  92. package/dist/data-bootstrap-CYniFp8b.js +172 -0
  93. package/dist/data-bootstrap-CcJUwkqf.d.ts +30 -0
  94. package/dist/data-paths-C7sNdqvP.d.ts +22 -0
  95. package/dist/derived-suppression-cache-C7bGARc0.d.ts +36 -0
  96. package/dist/diagnostic-encoder.d.ts +6 -0
  97. package/dist/diagnostic-encoder.js +29 -0
  98. package/dist/embedding-provider-client-Q_hJonK9.js +294 -0
  99. package/dist/embedding-provider-client-vynZMuit.d.ts +94 -0
  100. package/dist/entry-metadata-parser-BIVSMCIk.js +20 -0
  101. package/dist/error-D-wb-rZw.js +23 -0
  102. package/dist/error-signals-D8_3vYu4.d.ts +28 -0
  103. package/dist/error-signals-lMH2uAdV.js +134 -0
  104. package/dist/errors-CeVRxf9V.d.ts +49 -0
  105. package/dist/extraction-text-sanitizer-B_AhIecT.d.ts +32 -0
  106. package/dist/i18n-text-DbD6Qify.d.ts +13 -0
  107. package/dist/index-BsMap4It.d.ts +650 -0
  108. package/dist/index-DL8AVj0Z.d.ts +571 -0
  109. package/dist/index-DQ7VL6d3.d.ts +350 -0
  110. package/dist/index.d.ts +65 -0
  111. package/dist/index.js +1201 -0
  112. package/dist/intent-analyzer-B5XVrWwe.d.ts +28 -0
  113. package/dist/internal/config/index.d.ts +2 -0
  114. package/dist/internal/config/index.js +581 -0
  115. package/dist/internal/config/plugin-config-schema.d.ts +2 -0
  116. package/dist/internal/config/plugin-config-schema.js +2 -0
  117. package/dist/internal/config/product-mode.d.ts +2 -0
  118. package/dist/internal/config/product-mode.js +36 -0
  119. package/dist/internal/config/settings.d.ts +2 -0
  120. package/dist/internal/config/settings.js +265 -0
  121. package/dist/internal/config/skill-categories.d.ts +4 -0
  122. package/dist/internal/config/skill-categories.js +68 -0
  123. package/dist/internal/config/skin-defaults.d.ts +6 -0
  124. package/dist/internal/config/skin-defaults.js +6 -0
  125. package/dist/internal/contract/discovery.d.ts +10 -0
  126. package/dist/internal/contract/discovery.js +53 -0
  127. package/dist/internal/contract/profile.d.ts +2 -0
  128. package/dist/internal/contract/profile.js +44 -0
  129. package/dist/internal/contract/routes.d.ts +2 -0
  130. package/dist/internal/contract/routes.js +61 -0
  131. package/dist/internal/engine/bindings/memory-cli-shared.d.ts +47 -0
  132. package/dist/internal/engine/bindings/memory-cli-shared.js +84 -0
  133. package/dist/internal/engine/bindings/memory-forget-tool.d.ts +5 -0
  134. package/dist/internal/engine/bindings/memory-forget-tool.js +66 -0
  135. package/dist/internal/engine/bindings/memory-list-tool.d.ts +5 -0
  136. package/dist/internal/engine/bindings/memory-list-tool.js +57 -0
  137. package/dist/internal/engine/bindings/memory-recall-tool.d.ts +10 -0
  138. package/dist/internal/engine/bindings/memory-recall-tool.js +283 -0
  139. package/dist/internal/engine/bindings/memory-reflection-resolve-tool.d.ts +5 -0
  140. package/dist/internal/engine/bindings/memory-reflection-resolve-tool.js +150 -0
  141. package/dist/internal/engine/bindings/memory-stats-tool.d.ts +5 -0
  142. package/dist/internal/engine/bindings/memory-stats-tool.js +43 -0
  143. package/dist/internal/engine/bindings/memory-store-tool.d.ts +5 -0
  144. package/dist/internal/engine/bindings/memory-store-tool.js +165 -0
  145. package/dist/internal/engine/bindings/memory-tool-access.d.ts +16 -0
  146. package/dist/internal/engine/bindings/memory-tool-access.js +46 -0
  147. package/dist/internal/engine/bindings/memory-tool-formatting.d.ts +62 -0
  148. package/dist/internal/engine/bindings/memory-tool-formatting.js +106 -0
  149. package/dist/internal/engine/bindings/memory-tool-results.d.ts +8 -0
  150. package/dist/internal/engine/bindings/memory-tool-results.js +41 -0
  151. package/dist/internal/engine/bindings/memory-tool-schemas.d.ts +109 -0
  152. package/dist/internal/engine/bindings/memory-tool-schemas.js +75 -0
  153. package/dist/internal/engine/bindings/memory-update-tool.d.ts +5 -0
  154. package/dist/internal/engine/bindings/memory-update-tool.js +127 -0
  155. package/dist/internal/engine/bindings/sno-station-mem-ambient-learning-hook.d.ts +14 -0
  156. package/dist/internal/engine/bindings/sno-station-mem-ambient-learning-hook.js +248 -0
  157. package/dist/internal/engine/bindings/sno-station-mem-auto-recall-hook.d.ts +12 -0
  158. package/dist/internal/engine/bindings/sno-station-mem-auto-recall-hook.js +324 -0
  159. package/dist/internal/engine/bindings/sno-station-mem-hook-types.d.ts +56 -0
  160. package/dist/internal/engine/bindings/sno-station-mem-hook-types.js +1 -0
  161. package/dist/internal/engine/bindings/sno-station-mem-insight-distill-factory.d.ts +14 -0
  162. package/dist/internal/engine/bindings/sno-station-mem-insight-distill-factory.js +119 -0
  163. package/dist/internal/engine/bindings/sno-station-mem-message-transcript.d.ts +52 -0
  164. package/dist/internal/engine/bindings/sno-station-mem-message-transcript.js +145 -0
  165. package/dist/internal/engine/bindings/sno-station-mem-reset-hook.d.ts +10 -0
  166. package/dist/internal/engine/bindings/sno-station-mem-reset-hook.js +9 -0
  167. package/dist/internal/engine/bindings/sno-station-mem-runtime-mode.d.ts +37 -0
  168. package/dist/internal/engine/bindings/sno-station-mem-runtime-mode.js +105 -0
  169. package/dist/internal/engine/bindings/sno-station-mem-session-state.d.ts +10 -0
  170. package/dist/internal/engine/bindings/sno-station-mem-session-state.js +27 -0
  171. package/dist/internal/engine/eval/trace.d.ts +2 -0
  172. package/dist/internal/engine/eval/trace.js +151 -0
  173. package/dist/internal/engine/extraction/ambient-learning-text-normalizer.d.ts +2 -0
  174. package/dist/internal/engine/extraction/ambient-learning-text-normalizer.js +2 -0
  175. package/dist/internal/engine/extraction/atomic-memory-extraction.d.ts +2 -0
  176. package/dist/internal/engine/extraction/atomic-memory-extraction.js +2 -0
  177. package/dist/internal/engine/extraction/b-profile-section-dictionary-provider.d.ts +2 -0
  178. package/dist/internal/engine/extraction/b-profile-section-dictionary-provider.js +2 -0
  179. package/dist/internal/engine/extraction/b-profile-section-rekey.d.ts +49 -0
  180. package/dist/internal/engine/extraction/b-profile-section-rekey.js +730 -0
  181. package/dist/internal/engine/extraction/capture-policy-detector.d.ts +2 -0
  182. package/dist/internal/engine/extraction/capture-policy-detector.js +2 -0
  183. package/dist/internal/engine/extraction/embedding-provider-client.d.ts +2 -0
  184. package/dist/internal/engine/extraction/embedding-provider-client.js +2 -0
  185. package/dist/internal/engine/extraction/extraction-text-sanitizer.d.ts +2 -0
  186. package/dist/internal/engine/extraction/extraction-text-sanitizer.js +114 -0
  187. package/dist/internal/engine/extraction/memory-metadata-codec.d.ts +3 -0
  188. package/dist/internal/engine/extraction/memory-metadata-codec.js +2 -0
  189. package/dist/internal/engine/extraction/memory-temporality-classifier.d.ts +2 -0
  190. package/dist/internal/engine/extraction/memory-temporality-classifier.js +2 -0
  191. package/dist/internal/engine/i18n/all-resources.d.ts +2 -0
  192. package/dist/internal/engine/i18n/all-resources.js +2 -0
  193. package/dist/internal/engine/i18n/locales.d.ts +2 -0
  194. package/dist/internal/engine/i18n/locales.js +19 -0
  195. package/dist/internal/engine/i18n/res/_types.d.ts +2 -0
  196. package/dist/internal/engine/i18n/res/_types.js +11 -0
  197. package/dist/internal/engine/observability/adapter.d.ts +2 -0
  198. package/dist/internal/engine/observability/adapter.js +2 -0
  199. package/dist/internal/engine/observability/best-effort.d.ts +2 -0
  200. package/dist/internal/engine/observability/best-effort.js +41 -0
  201. package/dist/internal/engine/observability/early-diagnostics.js +2 -0
  202. package/dist/internal/engine/observability/memory-snapshot.d.ts +2 -0
  203. package/dist/internal/engine/observability/memory-snapshot.js +44 -0
  204. package/dist/internal/engine/observability/observable-embedder.d.ts +2 -0
  205. package/dist/internal/engine/observability/observable-embedder.js +43 -0
  206. package/dist/internal/engine/observability/observable-llm-client.d.ts +2 -0
  207. package/dist/internal/engine/observability/observable-llm-client.js +98 -0
  208. package/dist/internal/engine/observability/observable-memory-store.d.ts +2 -0
  209. package/dist/internal/engine/observability/observable-memory-store.js +701 -0
  210. package/dist/internal/engine/observability/observable-retriever.d.ts +2 -0
  211. package/dist/internal/engine/observability/observable-retriever.js +95 -0
  212. package/dist/internal/engine/observability/runtime-diagnostics.d.ts +13 -0
  213. package/dist/internal/engine/observability/runtime-diagnostics.js +96 -0
  214. package/dist/internal/engine/observability/session-registry.d.ts +2 -0
  215. package/dist/internal/engine/observability/session-registry.js +58 -0
  216. package/dist/internal/engine/observability/version-metadata.d.ts +7 -0
  217. package/dist/internal/engine/observability/version-metadata.js +59 -0
  218. package/dist/internal/engine/operations/daily-spend-estimator.d.ts +2 -0
  219. package/dist/internal/engine/operations/daily-spend-estimator.js +97 -0
  220. package/dist/internal/engine/operations/learning-file-maintenance.d.ts +2 -0
  221. package/dist/internal/engine/operations/learning-file-maintenance.js +255 -0
  222. package/dist/internal/engine/operations/memory-tier-promoter.d.ts +2 -0
  223. package/dist/internal/engine/operations/memory-tier-promoter.js +95 -0
  224. package/dist/internal/engine/operations/runtime-audit-log.d.ts +3 -0
  225. package/dist/internal/engine/operations/runtime-audit-log.js +3 -0
  226. package/dist/internal/engine/provider/canonical-memory-corpus.d.ts +38 -0
  227. package/dist/internal/engine/provider/canonical-memory-corpus.js +253 -0
  228. package/dist/internal/engine/provider/provider-registration.d.ts +39 -0
  229. package/dist/internal/engine/provider/provider-registration.js +2 -0
  230. package/dist/internal/engine/provider/provider-row-renderer.d.ts +7 -0
  231. package/dist/internal/engine/provider/provider-row-renderer.js +53 -0
  232. package/dist/internal/engine/provider/provider-types.d.ts +2 -0
  233. package/dist/internal/engine/provider/provider-types.js +1 -0
  234. package/dist/internal/engine/reflection/daily-log-generator.d.ts +2 -0
  235. package/dist/internal/engine/reflection/daily-log-generator.js +2 -0
  236. package/dist/internal/engine/reflection/reflection-command-hooks.d.ts +2 -0
  237. package/dist/internal/engine/reflection/reflection-command-hooks.js +2 -0
  238. package/dist/internal/engine/reflection/reflection-deps.d.ts +2 -0
  239. package/dist/internal/engine/reflection/reflection-deps.js +1 -0
  240. package/dist/internal/engine/reflection/reflection-embedded-generator.d.ts +2 -0
  241. package/dist/internal/engine/reflection/reflection-embedded-generator.js +2 -0
  242. package/dist/internal/engine/reflection/reflection-injection-hooks.d.ts +2 -0
  243. package/dist/internal/engine/reflection/reflection-injection-hooks.js +219 -0
  244. package/dist/internal/engine/reflection/reflection-lifecycle-hooks.d.ts +2 -0
  245. package/dist/internal/engine/reflection/reflection-lifecycle-hooks.js +63 -0
  246. package/dist/internal/engine/reflection/strategy-hook-runner.d.ts +4 -0
  247. package/dist/internal/engine/reflection/strategy-hook-runner.js +3 -0
  248. package/dist/internal/engine/rem/classifier.d.ts +2 -0
  249. package/dist/internal/engine/rem/classifier.js +180 -0
  250. package/dist/internal/engine/rem/index.d.ts +4 -0
  251. package/dist/internal/engine/rem/index.js +2551 -0
  252. package/dist/internal/engine/rem/types.d.ts +2 -0
  253. package/dist/internal/engine/rem/types.js +40 -0
  254. package/dist/internal/engine/retrieval/access-tracker.d.ts +2 -0
  255. package/dist/internal/engine/retrieval/access-tracker.js +314 -0
  256. package/dist/internal/engine/retrieval/intent-analyzer.d.ts +2 -0
  257. package/dist/internal/engine/retrieval/intent-analyzer.js +27 -0
  258. package/dist/internal/engine/retrieval/retrieval-gate.d.ts +2 -0
  259. package/dist/internal/engine/retrieval/retrieval-gate.js +47 -0
  260. package/dist/internal/engine/retrieval/retriever.d.ts +2 -0
  261. package/dist/internal/engine/retrieval/retriever.js +2 -0
  262. package/dist/internal/engine/security/memory-scope-policy.d.ts +2 -0
  263. package/dist/internal/engine/security/memory-scope-policy.js +2 -0
  264. package/dist/internal/engine/security/redact.d.ts +2 -0
  265. package/dist/internal/engine/security/redact.js +34 -0
  266. package/dist/internal/engine/security/scopes.d.ts +3 -0
  267. package/dist/internal/engine/security/scopes.js +3 -0
  268. package/dist/internal/engine/shared/errors.d.ts +2 -0
  269. package/dist/internal/engine/shared/errors.js +66 -0
  270. package/dist/internal/engine/shared/i18n-text.d.ts +2 -0
  271. package/dist/internal/engine/shared/i18n-text.js +58 -0
  272. package/dist/internal/engine/shared/iso-date-time.d.ts +16 -0
  273. package/dist/internal/engine/shared/iso-date-time.js +40 -0
  274. package/dist/internal/engine/shared/lru.d.ts +2 -0
  275. package/dist/internal/engine/shared/lru.js +30 -0
  276. package/dist/internal/engine/shared/memory-kind-policy.d.ts +2 -0
  277. package/dist/internal/engine/shared/memory-kind-policy.js +64 -0
  278. package/dist/internal/engine/shared/paths.d.ts +3 -0
  279. package/dist/internal/engine/shared/paths.js +2 -0
  280. package/dist/internal/engine/shared/types.d.ts +3 -0
  281. package/dist/internal/engine/shared/types.js +25 -0
  282. package/dist/internal/engine/shared/utils.d.ts +2 -0
  283. package/dist/internal/engine/shared/utils.js +175 -0
  284. package/dist/internal/engine/telemetry/memory-telemetry-api.d.ts +134 -0
  285. package/dist/internal/engine/telemetry/memory-telemetry-api.js +730 -0
  286. package/dist/internal/engine/telemetry/memory-telemetry-observability.d.ts +24 -0
  287. package/dist/internal/engine/telemetry/memory-telemetry-observability.js +133 -0
  288. package/dist/internal/engine/telemetry/memory-telemetry-outbox.d.ts +2 -0
  289. package/dist/internal/engine/telemetry/memory-telemetry-outbox.js +443 -0
  290. package/dist/internal/engine/telemetry/memory-telemetry-types.d.ts +2 -0
  291. package/dist/internal/engine/telemetry/memory-telemetry-types.js +21 -0
  292. package/dist/internal/engine/telemetry/observe-ledger.d.ts +30 -0
  293. package/dist/internal/engine/telemetry/observe-ledger.js +111 -0
  294. package/dist/internal/model/agent-llm-port.d.ts +2 -0
  295. package/dist/internal/model/agent-llm-port.js +1 -0
  296. package/dist/internal/model/llm-client.d.ts +3 -0
  297. package/dist/internal/model/llm-client.js +3 -0
  298. package/dist/internal/model/llm-failure.d.ts +26 -0
  299. package/dist/internal/model/llm-failure.js +63 -0
  300. package/dist/internal/model/llm-mode-routing.d.ts +22 -0
  301. package/dist/internal/model/llm-mode-routing.js +37 -0
  302. package/dist/internal/store/atomic-memory-cutover-sql.d.ts +13 -0
  303. package/dist/internal/store/atomic-memory-cutover-sql.js +237 -0
  304. package/dist/internal/store/connection.d.ts +2 -0
  305. package/dist/internal/store/connection.js +2 -0
  306. package/dist/internal/store/data-bootstrap.d.ts +2 -0
  307. package/dist/internal/store/data-bootstrap.js +2 -0
  308. package/dist/internal/store/data-paths.d.ts +2 -0
  309. package/dist/internal/store/data-paths.js +65 -0
  310. package/dist/internal/store/maintenance.d.ts +75 -0
  311. package/dist/internal/store/maintenance.js +1401 -0
  312. package/dist/internal/store/memory-kinds-cutover-migrator.d.ts +28 -0
  313. package/dist/internal/store/memory-kinds-cutover-migrator.js +415 -0
  314. package/dist/internal/store/migrations.d.ts +27 -0
  315. package/dist/internal/store/migrations.js +201 -0
  316. package/dist/internal/store/sqlite-runtime.d.ts +2 -0
  317. package/dist/internal/store/sqlite-runtime.js +109 -0
  318. package/dist/internal/store/store.d.ts +3 -0
  319. package/dist/internal/store/store.js +2 -0
  320. package/dist/learning-file-maintenance-9b-Ut6Kv.d.ts +30 -0
  321. package/dist/llm-client-B7Xoxqou.js +1378 -0
  322. package/dist/llm-client-DOTSGzhe.d.ts +51 -0
  323. package/dist/locales-JxGmkG6t.d.ts +7 -0
  324. package/dist/log-site-catalog.generated-B9WYdnAM.js +2321 -0
  325. package/dist/log-site-catalog.json +1 -0
  326. package/dist/lru-DyoaTyIs.d.ts +14 -0
  327. package/dist/memdump.d.ts +52 -0
  328. package/dist/memdump.js +163 -0
  329. package/dist/memory-entry-projector-DHo8jH10.js +1015 -0
  330. package/dist/memory-kind-policy-LKt0u3gy.d.ts +23 -0
  331. package/dist/memory-metadata-codec-C3oQd47V.d.ts +68 -0
  332. package/dist/memory-metadata-codec-DL1sbJiN.js +577 -0
  333. package/dist/memory-runtime-BZtREuwW.js +19459 -0
  334. package/dist/memory-scope-policy-1gg5QlWZ.d.ts +67 -0
  335. package/dist/memory-scope-policy-DICSCURA.js +283 -0
  336. package/dist/memory-snapshot-3e44ND2i.d.ts +16 -0
  337. package/dist/memory-source-order-BtrIxaIt.js +134 -0
  338. package/dist/memory-store-base-XRA4S9Xl.d.ts +1095 -0
  339. package/dist/memory-store-shared-DeIDkhLj.js +158 -0
  340. package/dist/memory-store-write-validation-B_hDG2zf.js +243 -0
  341. package/dist/memory-telemetry-incidents-BWA9kcZx.js +8 -0
  342. package/dist/memory-telemetry-metadata-CA7W8tK6.js +77 -0
  343. package/dist/memory-telemetry-outbox-ddTdImt7.d.ts +74 -0
  344. package/dist/memory-telemetry-receipts-MAJecvXQ.d.ts +34 -0
  345. package/dist/memory-telemetry-receipts-YsxbwOAf.js +91 -0
  346. package/dist/memory-telemetry-types-CufVmrCs.d.ts +14 -0
  347. package/dist/memory-temporality-classifier-CEdRTN5J.d.ts +43 -0
  348. package/dist/memory-temporality-classifier-CKiTAHXe.js +184 -0
  349. package/dist/memory-tier-promoter-DbTpahkP.d.ts +43 -0
  350. package/dist/memory-tool-dependencies-CLODycUw.js +19 -0
  351. package/dist/memory-tool-dependencies-N69chrQc.d.ts +14 -0
  352. package/dist/model-call-table-CspopkBg.js +563 -0
  353. package/dist/model-reply-text-CKopStP2.js +334 -0
  354. package/dist/observable-embedder-DQnNgf9O.d.ts +17 -0
  355. package/dist/observable-llm-client-uwqPADpN.d.ts +21 -0
  356. package/dist/observable-memory-store-BaZKbhgq.d.ts +73 -0
  357. package/dist/observable-retriever-Dt_NUxAA.d.ts +23 -0
  358. package/dist/operation-cancellation-CTKWwNHk.js +81 -0
  359. package/dist/paths-qVF-5uBq.d.ts +1 -0
  360. package/dist/plugin-config-schema-C0UUbOmG.d.ts +413 -0
  361. package/dist/plugin-config-schema-YJLyIIcJ.js +361 -0
  362. package/dist/profile-TWPJ_myr.d.ts +13 -0
  363. package/dist/profile-section-writer-hIphqpUY.js +2149 -0
  364. package/dist/provider-registration-CF1tg8Xy.js +721 -0
  365. package/dist/provider-runtime-types-DFhtdA6d.d.ts +134 -0
  366. package/dist/provider-types-CZGm6v88.d.ts +23 -0
  367. package/dist/redact-BTIZcHQL.d.ts +5 -0
  368. package/dist/reflection-command-hooks-BeQiJI9-.js +644 -0
  369. package/dist/reflection-command-hooks-C1Vxgb-O.d.ts +32 -0
  370. package/dist/reflection-deps-RpLPFrSc.d.ts +19 -0
  371. package/dist/reflection-embedded-generator-CDUhgV96.js +130 -0
  372. package/dist/reflection-embedded-generator-CxOex5xK.d.ts +14 -0
  373. package/dist/reflection-injection-hooks-DfUgqu8f.d.ts +43 -0
  374. package/dist/reflection-lifecycle-hooks-Ct5HBdSG.d.ts +27 -0
  375. package/dist/relation-dictionary-Cev1kyLe.js +4248 -0
  376. package/dist/release-download.d.ts +8 -0
  377. package/dist/release-download.js +32 -0
  378. package/dist/relevant-memories-context-m8nuFZcM.js +23 -0
  379. package/dist/rem-batch-executor-Cbm5gfSe.js +31644 -0
  380. package/dist/rem-batch-executor-bc0IFlp2.js +2 -0
  381. package/dist/rem-consumer-retrieval-CRpvG8KS.js +246 -0
  382. package/dist/rem-trigger-BTxkcjgT.js +729 -0
  383. package/dist/resolver-Dy-hnjCR.js +103 -0
  384. package/dist/results-C3ZLroMb.js +140 -0
  385. package/dist/retrieval-gate-Bx2Zg7jD.d.ts +31 -0
  386. package/dist/retriever-CygHBazG.js +1757 -0
  387. package/dist/retriever-Ruk3zp7_.d.ts +469 -0
  388. package/dist/rolldown-runtime-D7D4PA-g.js +13 -0
  389. package/dist/routes-Ce7SQKec.js +59 -0
  390. package/dist/runtime-audit-log-BCeujlEp.js +430 -0
  391. package/dist/runtime-audit-log-zpQiR9HT.d.ts +149 -0
  392. package/dist/scopes-CSOn6zdd.js +71 -0
  393. package/dist/scopes-CtrY-YQ3.d.ts +23 -0
  394. package/dist/server-BPAY4NTG.js +1410 -0
  395. package/dist/session-registry-DBoE7AvZ.d.ts +14 -0
  396. package/dist/sidecar/main.d.ts +1 -0
  397. package/dist/sidecar/main.js +56 -0
  398. package/dist/signed-registry-constants-Bv0fgZ8Q.d.ts +12 -0
  399. package/dist/signed-registry-constants-yq3DlG3B.js +82 -0
  400. package/dist/sno-station-mem-runtime-dependencies-Bu-MiqPX.d.ts +31 -0
  401. package/dist/sno-station-mem-runtime-dependencies-DjLOhB45.js +30 -0
  402. package/dist/sqlite-runtime-L_ywirTm.d.ts +58 -0
  403. package/dist/store-2pM0-dZg.d.ts +27 -0
  404. package/dist/store-DzpZBMEm.js +5830 -0
  405. package/dist/strategy-hook-runner-gBtU47tX.d.ts +16 -0
  406. package/dist/strategy-hook-runner-zmdIYOmQ.js +110 -0
  407. package/dist/token-counter-BD1f48Km.js +73 -0
  408. package/dist/trace-1t1n_wUm.d.ts +86 -0
  409. package/dist/types-DxKqU60b.d.ts +477 -0
  410. package/dist/types-pVomjzqR.d.ts +132 -0
  411. package/dist/unplaced-candidate-migration-CbQHzcEM.js +940 -0
  412. package/dist/utils-Ctb9aevJ.d.ts +34 -0
  413. package/drizzle/0000_initial.sql +10 -0
  414. package/drizzle/0001_virtual_tables.sql +34 -0
  415. package/drizzle/0002_add_indexes.sql +11 -0
  416. package/drizzle/0003_content_hash_lookup_index.sql +2 -0
  417. package/drizzle/0004_chunk_swap.sql +60 -0
  418. package/drizzle/0005_drop_legacy_vec_fts.sql +10 -0
  419. package/drizzle/0006_fts_simple.sql +45 -0
  420. package/drizzle/0007_restore_simple_fts.sql +40 -0
  421. package/drizzle/0008_widen_memory_hash_unique_index.sql +4 -0
  422. package/drizzle/0009_memory_telemetry.sql +109 -0
  423. package/drizzle/0010_provider_mappings.sql +27 -0
  424. package/drizzle/0011_db_optimization.sql +82 -0
  425. package/drizzle/0012_b_profile_lanes.sql +9 -0
  426. package/drizzle/0013_extraction_timestamps.sql +6 -0
  427. package/drizzle/0014_extraction_timestamp_source.sql +3 -0
  428. package/drizzle/0015_task_lifecycle_state.sql +101 -0
  429. package/drizzle/0016_task_lifecycle_legacy_migration.sql +144 -0
  430. package/drizzle/0017_unplaced_candidates.sql +15 -0
  431. package/drizzle/0018_rem_batch_chassis.sql +71 -0
  432. package/drizzle/0019_profile_recovery_entries.sql +17 -0
  433. package/drizzle/0020_rem_scan_retry_progress.down.sql +14 -0
  434. package/drizzle/0020_rem_scan_retry_progress.sql +24 -0
  435. package/drizzle/0021_rem_two_facet_storage.down.sql +14 -0
  436. package/drizzle/0021_rem_two_facet_storage.sql +42 -0
  437. package/drizzle/0022_rem_facet_chunk_versions.down.sql +4 -0
  438. package/drizzle/0022_rem_facet_chunk_versions.sql +4 -0
  439. package/drizzle/0023_rem_defect_ledger.sql +40 -0
  440. package/drizzle/0024_rem_unbuilt_foundations.down.sql +13 -0
  441. package/drizzle/0024_rem_unbuilt_foundations.sql +65 -0
  442. package/drizzle/0025_rem_journal_operation_constraint.sql +28 -0
  443. package/drizzle/0026_rem_journal_detail.sql +1 -0
  444. package/drizzle/0027_legacy_nodix_namespace.sql +3 -0
  445. package/drizzle/0028_memory_timezone.sql +23 -0
  446. package/drizzle/0029_rem_write_hash_symmetry.sql +17 -0
  447. package/drizzle/0030_atomic_memory_additive.sql +105 -0
  448. package/drizzle/0031_atomic_extraction_ledger.sql +23 -0
  449. package/drizzle/0032_atomic_memory_entities.sql +12 -0
  450. package/drizzle/0033_todo_own_store.sql +99 -0
  451. package/drizzle/meta/0000_snapshot.json +87 -0
  452. package/drizzle/meta/_journal.json +244 -0
  453. package/generated/rem-operations.json +1 -0
  454. package/package.json +126 -4
  455. package/scripts/download-simple-tokenizer.mjs +254 -0
  456. package/settings.default.json +243 -0
  457. package/skills/extract-atomic-memory/SKILL.md +298 -0
  458. package/skills/extract-atomic-memory/references/account-for-turns.md +9 -0
  459. package/skills/extract-atomic-memory/references/calendar-meaning.md +64 -0
  460. package/skills/extract-atomic-memory/references/capture.md +120 -0
  461. package/skills/extract-atomic-memory/references/enrichment.md +92 -0
  462. package/skills/extract-atomic-memory/references/missing-durable-half.md +6 -0
  463. package/skills/extract-atomic-memory/references/progress-classification.md +21 -0
  464. package/skills/extract-atomic-memory/references/resolve-subject.md +19 -0
  465. package/skills/extract-atomic-memory/references/surrounding-context.md +10 -0
  466. package/skills/extract-atomic-memory/references/user-subject-guard.md +29 -0
  467. package/skills/judge-group-closure/SKILL.md +25 -0
  468. package/skills/judge-rem-memory-updates/SKILL.md +56 -0
  469. package/skills/judge-rem-memory-updates/agents/openai.yaml +4 -0
  470. package/skills/judge-retired-position/SKILL.md +25 -0
  471. package/skills/judge-task-lifecycle/SKILL.md +45 -0
  472. package/skills/key-state-attribute/SKILL.md +16 -0
  473. package/skills/resolve-entity-identity/SKILL.md +24 -0
  474. package/skills/resolve-relative-time/SKILL.md +22 -0
  475. package/sqlite-extensions/LICENSE-simple-tokenizer +28 -0
  476. package/sqlite-extensions/LICENSE-sqlite-vec +21 -0
  477. package/sqlite-extensions/linux-arm64/vec0.so +0 -0
  478. package/sqlite-extensions/linux-x64/vec0.so +0 -0
@@ -0,0 +1,469 @@
1
+ import { h as MemoryCategory, l as DecayScore, r as AggregationQuery, u as DecayableMemory, x as RetrievalResult, y as MemorySearchResult } from "./types-DxKqU60b.js";
2
+ import { sn as RecallLifecycleConfig } from "./index-DL8AVj0Z.js";
3
+ import { t as Embedder } from "./embedding-provider-client-vynZMuit.js";
4
+ import "./trace-1t1n_wUm.js";
5
+ import "./memory-metadata-codec-C3oQd47V.js";
6
+ import { K as RemFacetPolicy } from "./index-BsMap4It.js";
7
+ import { C as MemoryStore } from "./memory-store-base-XRA4S9Xl.js";
8
+ import "./store-2pM0-dZg.js";
9
+ import { n as AccessTracker } from "./access-tracker-CSc21GtV.js";
10
+ import { r as TierPromoter } from "./memory-tier-promoter-DbTpahkP.js";
11
+ import "@snoai/utils/logger";
12
+ //#region src/engine/retrieval/retrieval-trace.d.ts
13
+ /** @file retrieval-trace.ts
14
+ * @purpose Captures per-query retrieval trace details for debugging ranking decisions.
15
+ * @boundary Candidate scoring, filters, and retriever observability.
16
+ * @see retriever.ts, retrieval-stats.ts, store.ts.
17
+ */
18
+ /**
19
+ * Retrieval Trace — Observable pipeline diagnostics
20
+ *
21
+ * Tracks entry IDs through each retrieval stage, computes drops,
22
+ * score ranges, and timing. Zero overhead when not used.
23
+ */
24
+ /**
25
+ * Per-stage structured annotations. Keyed strings only — must survive
26
+ * JSON serialization and downstream aggregation. Used today for the
27
+ * rerank fallback reason; not a freeform diagnostic bag.
28
+ */
29
+ type RetrievalStageMetadata = Readonly<Record<string, string | number | boolean>>;
30
+ interface RetrievalStageResult {
31
+ /** Stage name, e.g. "vector_search", "bm25_search", "rrf_fusion" */
32
+ name: string;
33
+ /** Number of entries entering this stage */
34
+ inputCount: number;
35
+ /** Number of entries surviving this stage */
36
+ outputCount: number;
37
+ /** IDs that were present in input but not in output */
38
+ droppedIds: string[];
39
+ /**
40
+ * IDs that survived this stage, in the order the stage passed them on.
41
+ *
42
+ * `droppedIds` alone cannot place a memory at a stage it never entered, so a stage record
43
+ * fabricated by copying the final served ids backward reads as valid. This is the field
44
+ * that makes such a record fail.
45
+ */
46
+ outputIds: string[];
47
+ /** [min, max] score range of surviving entries, null if no scores */
48
+ scoreRange: [number, number] | null;
49
+ /** Wall-clock duration of this stage in milliseconds */
50
+ durationMs: number;
51
+ /** Optional structured stage annotations (e.g. rerank fallback reason). */
52
+ metadata?: RetrievalStageMetadata;
53
+ }
54
+ interface RetrievalTrace {
55
+ /** The original search query */
56
+ query: string;
57
+ /** Retrieval mode used */
58
+ mode: "precision-recall" | "vector" | "aggregation";
59
+ /** Timestamp when retrieval started (epoch ms) */
60
+ startedAt: number;
61
+ /** Per-stage results in pipeline order */
62
+ stages: RetrievalStageResult[];
63
+ /** Number of results after all stages */
64
+ finalCount: number;
65
+ /** Total wall-clock time in milliseconds */
66
+ totalMs: number;
67
+ /**
68
+ * Phase 0 §9 lifecycle event stream. Absent when `recallLifecycle.traceEnabled`
69
+ * is off so the trace shape stays bit-exact for existing consumers.
70
+ */
71
+ lifecycleEvents?: LifecycleTraceEvent[];
72
+ }
73
+ type RetrievalMode = RetrievalTrace["mode"];
74
+ /** Retention scorer output for a single memory at scoring time. */
75
+ interface RetentionScoreEvent {
76
+ kind: "retention-score-computed";
77
+ at: number;
78
+ memoryId: string;
79
+ tier: string;
80
+ composite: number;
81
+ multiplier: number;
82
+ }
83
+ /** Tier-transition evaluation outcome. `to === from` means "no change". */
84
+ interface TierPromotionEvent {
85
+ kind: "tier-promotion-evaluated";
86
+ at: number;
87
+ memoryId: string;
88
+ from: string;
89
+ to: string;
90
+ promoted: boolean;
91
+ }
92
+ /** Access-tracker update event. `skipped` reflects rate-limit / ceiling gates. */
93
+ interface AccessTrackerEvent {
94
+ kind: "access-tracker-update";
95
+ at: number;
96
+ memoryId: string;
97
+ accessCount: number;
98
+ skipped: boolean;
99
+ reason?: "rate-limited" | "ceiling" | "ok";
100
+ }
101
+ type LifecycleTraceEvent = RetentionScoreEvent | TierPromotionEvent | AccessTrackerEvent;
102
+ interface TraceCollectorOptions {
103
+ /**
104
+ * Phase 0 §9 toggle — when false (the default) `writeRetentionTrace`,
105
+ * `writeAccessTrace`, and `writeTierTrace` are no-ops and the finalized
106
+ * trace omits `lifecycleEvents` entirely (existing format preserved).
107
+ */
108
+ lifecycleEnabled?: boolean;
109
+ }
110
+ declare class TraceCollector {
111
+ private readonly startedAtMs;
112
+ private readonly startedMonotonicMs;
113
+ private readonly results;
114
+ private readonly lifecycle;
115
+ private readonly lifecycleEnabled;
116
+ private activeStage;
117
+ /**
118
+ * Initializes retrieval tracing collaborators while keeping runtime work in explicit methods.
119
+ */
120
+ constructor(options?: TraceCollectorOptions);
121
+ /**
122
+ * Begin tracking a pipeline stage.
123
+ * @param name - Stage identifier (e.g. "vector_search")
124
+ * @param entryIds - IDs of entries entering this stage
125
+ */
126
+ startStage(name: string, entryIds: string[]): void;
127
+ /**
128
+ * End the current stage.
129
+ * @param survivingIds - IDs of entries that survived this stage
130
+ * @param scores - Optional scores for surviving entries (parallel to survivingIds)
131
+ * @param metadata - Optional structured annotations attached to this stage
132
+ */
133
+ endStage(survivingIds: string[], scores?: number[], metadata?: RetrievalStageMetadata): void;
134
+ /**
135
+ * Finalize the trace and produce the complete RetrievalTrace object.
136
+ */
137
+ finalize(query: string, mode: RetrievalMode): RetrievalTrace;
138
+ /** Append a retention-scorer outcome to the lifecycle stream. */
139
+ writeRetentionTrace(event: Omit<RetentionScoreEvent, "kind" | "at">): void;
140
+ /** Append an access-tracker update to the lifecycle stream. */
141
+ writeAccessTrace(event: Omit<AccessTrackerEvent, "kind" | "at">): void;
142
+ /** Append a tier-promotion evaluation outcome to the lifecycle stream. */
143
+ writeTierTrace(event: Omit<TierPromotionEvent, "kind" | "at">): void;
144
+ /** Access collected lifecycle events (read-only). */
145
+ get lifecycleEvents(): readonly LifecycleTraceEvent[];
146
+ /**
147
+ * Produce a human-readable summary of the trace.
148
+ */
149
+ summarize(): string;
150
+ /** Access collected stages (read-only). */
151
+ get stages(): readonly RetrievalStageResult[];
152
+ private closeActiveStageAsUnchanged;
153
+ }
154
+ //#endregion
155
+ //#region src/engine/retrieval/retrieval-stats.d.ts
156
+ interface AggregateStats {
157
+ /** Total number of queries recorded */
158
+ totalQueries: number;
159
+ /** Number of queries that returned zero results */
160
+ zeroResultQueries: number;
161
+ /** Average latency across all queries (ms) */
162
+ avgLatencyMs: number;
163
+ /** 95th percentile latency (ms) */
164
+ p95LatencyMs: number;
165
+ /** Average number of results returned */
166
+ avgResultCount: number;
167
+ /** Number of queries where reranking was applied */
168
+ rerankUsed: number;
169
+ /** Number of queries where noise filter removed results */
170
+ noiseFiltered: number;
171
+ /** Query counts broken down by source */
172
+ queriesBySource: Record<string, number>;
173
+ /** Stages that drop the most entries across all queries */
174
+ topDropStages: {
175
+ name: string;
176
+ totalDropped: number;
177
+ }[];
178
+ /**
179
+ * Counts of rerank stages that degraded to the pre-rerank ordering,
180
+ * keyed by the {@link RerankFallbackReason} that fired. Absent reasons
181
+ * are not enumerated — read consumers should treat a missing key as zero.
182
+ */
183
+ rerankFallbacksByReason: Record<string, number>;
184
+ }
185
+ declare class RetrievalStatsCollector {
186
+ private readonly _records;
187
+ private readonly _maxRecords;
188
+ /**
189
+ * Initializes retrieval telemetry collaborators while keeping runtime work in explicit
190
+ * methods.
191
+ */
192
+ constructor(maxRecords?: number);
193
+ /**
194
+ * Record a completed query trace.
195
+ * @param trace - The finalized retrieval trace
196
+ * @param source - Query source identifier (e.g. "manual", "auto-recall")
197
+ */
198
+ recordQuery(trace: RetrievalTrace, source: string): void;
199
+ /**
200
+ * Compute aggregate statistics from all recorded queries.
201
+ */
202
+ getStats(): AggregateStats;
203
+ /**
204
+ * Reset all collected statistics.
205
+ */
206
+ reset(): void;
207
+ /** Number of recorded queries. */
208
+ get count(): number;
209
+ }
210
+ //#endregion
211
+ //#region src/engine/retrieval/retrieval-config.d.ts
212
+ type RerankProvider = "jina" | "siliconflow" | "voyage" | "pinecone" | "dashscope" | "tei";
213
+ interface RetrievalConfig {
214
+ /** Enable the historical recency, decay, and retention score transforms. */
215
+ temporalWeighting: boolean;
216
+ /** Diversify only within the request limit, preserving reranked window membership. */
217
+ mmrWindowOnly: boolean;
218
+ mode: "precision-recall" | "vector";
219
+ vectorWeight: number;
220
+ bm25Weight: number;
221
+ minScore: number;
222
+ rerank: "cross-encoder" | "lightweight" | "none";
223
+ candidatePoolSize: number;
224
+ recencyHalfLifeDays: number;
225
+ recencyWeight: number;
226
+ /** Drop memories past their valid_until timestamp (default OFF) */
227
+ temporalExpiry: boolean;
228
+ /** Dynamic memories decay 3× faster in time-decay scoring (default ON) */
229
+ temporalDecay: boolean;
230
+ rerankApiKey?: string;
231
+ rerankModel?: string;
232
+ rerankTimeoutMs?: number;
233
+ lengthNormAnchor: number;
234
+ hardMinScore: number;
235
+ timeDecayHalfLifeDays: number;
236
+ /** Weight for fusion score in rerank blend */
237
+ rerankBlendVector?: number;
238
+ /** Weight for cross-encoder score in rerank blend */
239
+ rerankBlendCross?: number;
240
+ /** Fusion-score weight when rerank="lightweight" (local cosine blend) */
241
+ lightweightFusionWeight?: number;
242
+ /** Cosine-score weight when rerank="lightweight" (local cosine blend) */
243
+ lightweightCosineWeight?: number;
244
+ /** Base multiplier for importance weighting */
245
+ importanceWeightBase?: number;
246
+ /** Minimum multiplier for old entries */
247
+ timeDecayFloor?: number;
248
+ /** Relevance vs diversity tradeoff (default: 0.7) */
249
+ mmrLambda?: number;
250
+ /** Custom rerank API endpoint URL */
251
+ rerankEndpoint?: string;
252
+ /** Rerank provider name */
253
+ rerankProvider?: RerankProvider | string;
254
+ /**
255
+ * Hard cap on how many candidates are sent to the cross-encoder rerank API
256
+ * in one request. Some rerank deployments (e.g. this repo's Sno TEI
257
+ * reranker) reject a batch above a fixed size instead of truncating it, so
258
+ * an unset value here must never silently violate that limit. Candidates
259
+ * beyond the cap are NOT dropped — they still flow through the standard
260
+ * `unreturned` preservation-floor path, same as a real reranker choosing
261
+ * not to return them.
262
+ */
263
+ rerankMaxCandidates?: number;
264
+ /** Scaling factor for access-based reinforcement (0 = disabled, default: 0.5) */
265
+ reinforcementFactor?: number;
266
+ /** Hard cap: effective half-life <= baseHalfLife * maxHalfLifeMultiplier (default: 3) */
267
+ maxHalfLifeMultiplier?: number;
268
+ /**
269
+ * Phase 0 retention-loop knobs (openspec/changes/mem-lifecycle PRD §6.1).
270
+ * Optional so legacy `RetrievalConfig` literals keep parsing; resolved
271
+ * default in `DEFAULT_RETRIEVAL_CONFIG` is `DEFAULT_RECALL_LIFECYCLE`
272
+ * (all booleans `false`), making the new wire sites pass-through.
273
+ */
274
+ recallLifecycle?: RecallLifecycleConfig;
275
+ }
276
+ interface RetrievalContext {
277
+ external_reference?: string;
278
+ external_reference_visibility?: "public" | "private";
279
+ query: string;
280
+ limit: number;
281
+ minScore?: number;
282
+ scopeFilter?: string[];
283
+ category?: MemoryCategory;
284
+ /**
285
+ * Refused fallback rows carry the user's own words and are served by default; product
286
+ * entrypoints pass true, and only an explicit false hides them (owner ruling 2026-09-01,
287
+ * reversing PRD 130 DEC-2). Omitted low-level/internal reads preserve all rows.
288
+ */
289
+ includeRefused?: boolean;
290
+ signal?: AbortSignal;
291
+ sessionId?: string;
292
+ explicitLocale?: string;
293
+ /** Retrieval source: "manual" for user-triggered, "auto-recall" for system-initiated, "cli" for CLI commands */
294
+ source?: "manual" | "auto-recall" | "cli";
295
+ /** Allows the recall tool to use complete-population aggregation routing. */
296
+ allowAggregation?: boolean;
297
+ /** Structured predicate and reduction for bounded, query-complete aggregation. */
298
+ aggregation?: AggregationQuery;
299
+ /** Selects current chunks only unless a non-user consumer explicitly requests history. */
300
+ facetPolicy?: RemFacetPolicy;
301
+ /**
302
+ * Tombstone exclusion (PRD memora-fama W1.3). When set, the store search
303
+ * drops candidates whose `metadata.invalidated_at <= excludeInvalidatedBefore`.
304
+ * A superseded fact is obsolete regardless of recall mode (OD-3, FAA binary),
305
+ * so omitting it on a serving path does not mean "serve everything": both
306
+ * retriever entrypoints run the context through `withServingValidityDefault`
307
+ * first (PRD 205). Pass `0` for a deliberate history read.
308
+ */
309
+ excludeInvalidatedBefore?: number;
310
+ includeRetired?: boolean;
311
+ /**
312
+ * Drops rows a group-CRUD close retired. Set by the two serving entries in
313
+ * `rem-consumer-retrieval.ts`; it has to reach the store because the candidate list is cut
314
+ * to `limit` before anything downstream can filter it.
315
+ */
316
+ excludeSuperseded?: boolean;
317
+ }
318
+ /**
319
+ * The serving-path validity default (PRD 205, REQ-1). This is the one named code
320
+ * point that supplies it: reading the default here is what makes the
321
+ * invalidated-row filter a property of the serving path rather than a parameter
322
+ * every caller has to remember, and the omission is no longer silent.
323
+ *
324
+ * An explicit value always wins — including `0`, the deliberate history read,
325
+ * where the store predicate becomes `invalidated_at > 0` and drops nothing.
326
+ *
327
+ * Scope is the retriever, never the store layer: six write-side consumers (dedup,
328
+ * reflection loops, observability, the REM batch executor) call the store search
329
+ * APIs directly and legitimately read invalidated rows. DEC-1 — do not move this
330
+ * down a layer.
331
+ */
332
+ declare function withServingValidityDefault(context: RetrievalContext): RetrievalContext;
333
+ declare const DEFAULT_RETRIEVAL_CONFIG: RetrievalConfig;
334
+ //#endregion
335
+ //#region src/engine/retrieval/retrieval-scoring-utils.d.ts
336
+ declare function collectParallelStage(results: RetrievalResult[], key: "denseScore" | "bm25Score" | "fusedScore" | "rerankScore" | "mmrScore", fallbackIds: string[]): {
337
+ values: number[] | null;
338
+ omitted: string[];
339
+ };
340
+ //#endregion
341
+ //#region src/engine/operations/selective-forgetting-scorer.d.ts
342
+ interface RetentionScorer {
343
+ /** Calculate decay score for a single memory */
344
+ score(memory: DecayableMemory, now?: number): DecayScore;
345
+ /** Calculate decay scores for multiple memories */
346
+ scoreAll(memories: DecayableMemory[], now?: number): DecayScore[];
347
+ /** Find stale memories (composite below threshold) */
348
+ getStaleMemories(memories: DecayableMemory[], now?: number): DecayScore[];
349
+ }
350
+ //#endregion
351
+ //#region src/engine/retrieval/retriever-core.d.ts
352
+ /**
353
+ * Enumerates every branch in `rerank()` that fell back to the pre-rerank
354
+ * candidate ordering instead of applying the cross-encoder score. Aggregated
355
+ * via {@link RetrievalStatsCollector} and surfaced as trace stage metadata
356
+ * so callers can attribute degraded ranking without parsing log lines.
357
+ *
358
+ * - `missing_api_key`: cross-encoder configured but no rerankApiKey set;
359
+ * call routes through the lightweight cosine path instead.
360
+ * - `no_endpoint`: provider has no known endpoint in `RERANK_DEFAULT_ENDPOINTS`
361
+ * and `rerankEndpoint` was not overridden; rerank was skipped.
362
+ * - `http_error`: provider responded with a non-OK status that did not map
363
+ * to a fatal RetrievalError (i.e. degraded but not propagated).
364
+ * - `invalid_response`: provider HTTP 2xx but response shape did not parse.
365
+ * - `timeout`: the per-call AbortSignal fired before the provider responded.
366
+ * - `request_error`: any other thrown error inside the fetch path.
367
+ * - `query_over_window`: the query alone fills the reranker's per-pair token window, so no
368
+ * document could be sent with it. Nothing was requested.
369
+ */
370
+ declare const RERANK_FALLBACK_REASONS: readonly ["missing_api_key", "no_endpoint", "http_error", "invalid_response", "timeout", "request_error", "query_over_window"];
371
+ type RerankFallbackReason = (typeof RERANK_FALLBACK_REASONS)[number];
372
+ interface RerankFallbackSignal {
373
+ reason: RerankFallbackReason;
374
+ provider: string;
375
+ }
376
+ interface RerankOutcome {
377
+ candidates: RetrievalResult[];
378
+ fallback?: RerankFallbackSignal;
379
+ stats?: {
380
+ rerankSentCount: number;
381
+ rerankReturnedCount: number;
382
+ rerankBeyondCapCount: number;
383
+ };
384
+ }
385
+ declare class MemoryRetriever {
386
+ readonly store: MemoryStore;
387
+ readonly embedder: Embedder;
388
+ private readonly config;
389
+ private _statsCollector;
390
+ _accessTracker: AccessTracker | undefined;
391
+ _cachedConfigHash: string | undefined;
392
+ _retentionScorer: RetentionScorer | undefined;
393
+ _tierPromoter: TierPromoter | undefined;
394
+ _recallLifecycle: RecallLifecycleConfig | undefined;
395
+ retrieve(_context: RetrievalContext): Promise<RetrievalResult[]>;
396
+ retrieveWithTrace(_context: RetrievalContext): Promise<{
397
+ results: RetrievalResult[];
398
+ trace: RetrievalTrace;
399
+ }>;
400
+ /**
401
+ * Initializes precision recall retrieval ranking collaborators while keeping runtime work in explicit
402
+ * methods.
403
+ */
404
+ constructor(store: MemoryStore, embedder: Embedder, _logger?: {
405
+ warn: (message: string, fields?: Record<string, unknown>) => void;
406
+ }, config?: RetrievalConfig);
407
+ /** Enable aggregate retrieval statistics collection. */
408
+ setStatsCollector(collector: RetrievalStatsCollector): void;
409
+ /** Get the stats collector (if set). */
410
+ getStatsCollector(): RetrievalStatsCollector | undefined;
411
+ /** Set the access tracker for recording manual retrieval accesses. */
412
+ setAccessTracker(tracker: AccessTracker): void;
413
+ /**
414
+ * Install the Phase 0 §5 tier-promoter dependency. Pure dependency injection;
415
+ * the post-retrieval evaluation hook only fires when both this setter has
416
+ * been called and `recallLifecycle.tierPromoter` is true.
417
+ */
418
+ setTierPromoter(promoter: TierPromoter): void;
419
+ /**
420
+ * Resolve the `recallLifecycle` block once at composition time so the hot
421
+ * retrieval path reads it without re-parsing config. All gates default
422
+ * false in `recallLifecycleSchema`, preserving the no-behavior-change
423
+ * Phase 0 contract for callers that never call this setter.
424
+ */
425
+ setRecallLifecycle(config: RecallLifecycleConfig): void;
426
+ /** Returns the immutable retrieval config for diagnostics and tests. */
427
+ getConfig(): RetrievalConfig;
428
+ }
429
+ interface MemoryRetrieverInternals {
430
+ store: MemoryStore;
431
+ embedder: Embedder;
432
+ config: RetrievalConfig;
433
+ _statsCollector: RetrievalStatsCollector | undefined;
434
+ _accessTracker: AccessTracker | undefined;
435
+ _cachedConfigHash: string | undefined;
436
+ _retentionScorer: RetentionScorer | undefined;
437
+ _tierPromoter: TierPromoter | undefined;
438
+ _recallLifecycle: RecallLifecycleConfig | undefined;
439
+ evaluateTopKTierTransitions(results: RetrievalResult[]): Promise<void>;
440
+ retrieve(context: RetrievalContext): Promise<RetrievalResult[]>;
441
+ retrieveWithTrace(context: RetrievalContext): Promise<{
442
+ results: RetrievalResult[];
443
+ trace: RetrievalTrace;
444
+ }>;
445
+ throwIfAborted(context: RetrievalContext): void;
446
+ filterExpired(results: RetrievalResult[]): RetrievalResult[];
447
+ filterExpiredCandidates(results: MemorySearchResult[]): MemorySearchResult[];
448
+ isEntryExpired(entry: MemorySearchResult["entry"] | RetrievalResult["entry"]): boolean;
449
+ vectorOnly(context: RetrievalContext, trace?: TraceCollector): Promise<RetrievalResult[]>;
450
+ precisionRecall(context: RetrievalContext, trace?: TraceCollector): Promise<RetrievalResult[]>;
451
+ aggregationComplete(context: RetrievalContext, trace?: TraceCollector): Promise<RetrievalResult[]>;
452
+ rrfFuse(vector: MemorySearchResult[], keyword: MemorySearchResult[]): RetrievalResult[];
453
+ rerank(query: string, candidates: RetrievalResult[], queryVector: Float32Array): Promise<RerankOutcome>;
454
+ rerankLightweight(candidates: RetrievalResult[], queryVector: Float32Array): RetrievalResult[];
455
+ getRerankSourceScore(result: RetrievalResult): number;
456
+ applyScoringPipeline(results: RetrievalResult[], trace?: TraceCollector, limit?: number): RetrievalResult[];
457
+ applyRecencyBoost(results: RetrievalResult[]): RetrievalResult[];
458
+ applyImportanceWeight(results: RetrievalResult[]): RetrievalResult[];
459
+ applyLengthNormalization(results: RetrievalResult[]): RetrievalResult[];
460
+ applyTimeDecay(results: RetrievalResult[]): RetrievalResult[];
461
+ applyRetentionBoost(results: RetrievalResult[]): RetrievalResult[];
462
+ applyMmrDiversity(results: RetrievalResult[]): RetrievalResult[];
463
+ }
464
+ /** Creates the retriever with store, embedding, ranking config, and optional caller logger slot. */
465
+ declare function createRetriever(store: MemoryStore, embedder: Embedder, logger?: {
466
+ warn: (message: string, fields?: Record<string, unknown>) => void;
467
+ }, config?: RetrievalConfig): MemoryRetriever;
468
+ //#endregion
469
+ export { RerankFallbackSignal as a, collectParallelStage as c, RetrievalConfig as d, RetrievalContext as f, RerankFallbackReason as i, DEFAULT_RETRIEVAL_CONFIG as l, MemoryRetrieverInternals as n, RerankOutcome as o, withServingValidityDefault as p, RERANK_FALLBACK_REASONS as r, createRetriever as s, MemoryRetriever as t, RerankProvider as u };
@@ -0,0 +1,13 @@
1
+ //#region \0rolldown/runtime.js
2
+ var __defProp = Object.defineProperty;
3
+ var __exportAll = (all, no_symbols) => {
4
+ let target = {};
5
+ for (var name in all) __defProp(target, name, {
6
+ get: all[name],
7
+ enumerable: true
8
+ });
9
+ if (!no_symbols) __defProp(target, Symbol.toStringTag, { value: "Module" });
10
+ return target;
11
+ };
12
+ //#endregion
13
+ export { __exportAll as t };
@@ -0,0 +1,59 @@
1
+ //#region src/contract/routes.ts
2
+ const MEMORY_ROUTES = {
3
+ init: {
4
+ path: "/v1/init",
5
+ timeoutMs: 3e4
6
+ },
7
+ hostEvent: {
8
+ path: "/v1/host-event",
9
+ timeoutMs: 3e4
10
+ },
11
+ getRecall: {
12
+ path: "/v1/get-recall",
13
+ timeoutMs: 12e4
14
+ },
15
+ capture: {
16
+ path: "/v1/capture",
17
+ timeoutMs: 9e5
18
+ },
19
+ mutate: {
20
+ path: "/v1/mutate",
21
+ timeoutMs: 9e5
22
+ },
23
+ inspect: {
24
+ path: "/v1/inspect",
25
+ timeoutMs: 3e4
26
+ },
27
+ recordUsage: {
28
+ path: "/v1/record-usage",
29
+ timeoutMs: 3e4
30
+ },
31
+ onSessionEnd: {
32
+ path: "/v1/on-session-end",
33
+ timeoutMs: 9e5
34
+ },
35
+ staticBlock: {
36
+ path: "/v1/static-block",
37
+ timeoutMs: 3e4
38
+ }
39
+ };
40
+ const MEMORY_BODY_LIMIT_BYTES = 8388608;
41
+ const MEMORY_SKIN_HEADER = "x-sno-station-mem-skin";
42
+ function memoryMethod(pathname) {
43
+ return Object.keys(MEMORY_ROUTES).find((method) => MEMORY_ROUTES[method].path === pathname);
44
+ }
45
+ const MEMORY_ERROR_STATUS = {
46
+ "sidecar-unreachable": 503,
47
+ "sidecar-unresponsive": 503,
48
+ "principal-mismatch": 403,
49
+ "store-mismatch": 409,
50
+ "no-agent-endpoint": 503,
51
+ "invalid-input": 400,
52
+ timeout: 504,
53
+ "storage-unavailable": 503,
54
+ "engine-failed": 500
55
+ };
56
+ const MEMORY_RECONNECT_INTERVAL_MS = 1e3;
57
+ const MEMORY_DEFAULT_SKIN_ID = "default";
58
+ //#endregion
59
+ export { MEMORY_ROUTES as a, MEMORY_RECONNECT_INTERVAL_MS as i, MEMORY_DEFAULT_SKIN_ID as n, MEMORY_SKIN_HEADER as o, MEMORY_ERROR_STATUS as r, memoryMethod as s, MEMORY_BODY_LIMIT_BYTES as t };