@snoai/memory 0.0.0-stage → 1.0.1

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 +33 -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-BbEvEocb.d.ts +110 -0
  64. package/dist/adapter-B7Jox9-6.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-C5rmogoY.js +3605 -0
  74. package/dist/atomic-memory-extraction-d9EG-4ti.d.ts +327 -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-CxbHPkMX.d.ts +53 -0
  80. package/dist/capture-policy-detector-DaMfy9CZ.js +357 -0
  81. package/dist/classifier-DnbbtwTS.d.ts +272 -0
  82. package/dist/client.d.ts +34 -0
  83. package/dist/client.js +306 -0
  84. package/dist/coding-skin.d.ts +51 -0
  85. package/dist/coding-skin.js +55 -0
  86. package/dist/config-CL90qYva.js +2576 -0
  87. package/dist/connection-3IVXpuPE.d.ts +391 -0
  88. package/dist/connection-C9YD5sgm.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-Bl3lthzE.d.ts +30 -0
  93. package/dist/data-bootstrap-P8sie9WA.js +172 -0
  94. package/dist/data-paths-C7sNdqvP.d.ts +22 -0
  95. package/dist/derived-suppression-cache-CI0durYx.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-0aqS8pVF.d.ts +351 -0
  108. package/dist/index-BO4RU_mc.d.ts +650 -0
  109. package/dist/index-DL8AVj0Z.d.ts +571 -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 +62 -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 +36 -0
  168. package/dist/internal/engine/bindings/sno-station-mem-runtime-mode.js +104 -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-BSYUAcUb.js +1374 -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-BMKWj-Nx.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-BiuRjSJc.d.ts +23 -0
  331. package/dist/memory-metadata-codec-DL1sbJiN.js +577 -0
  332. package/dist/memory-metadata-codec-DUvsYe_X.d.ts +68 -0
  333. package/dist/memory-runtime-DqUS4cWi.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-CqY1BUUA.d.ts +16 -0
  337. package/dist/memory-source-order-YMRoeDLd.js +134 -0
  338. package/dist/memory-store-base-CQ_bHlYA.d.ts +1094 -0
  339. package/dist/memory-store-shared-DqpWJXZZ.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-BUjXG5o7.js +184 -0
  348. package/dist/memory-temporality-classifier-Brht5jyK.d.ts +43 -0
  349. package/dist/memory-tier-promoter-CqGxCkue.d.ts +43 -0
  350. package/dist/memory-tool-dependencies-CatGzI9R.d.ts +14 -0
  351. package/dist/memory-tool-dependencies-DjUoelnm.js +19 -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-CNNe9gkg.d.ts +17 -0
  355. package/dist/observable-llm-client-CRuKlefQ.d.ts +21 -0
  356. package/dist/observable-memory-store-CnGDpOY5.d.ts +73 -0
  357. package/dist/observable-retriever-Cooc62Qw.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-BhGKPBjw.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-ClUl-iv6.js +644 -0
  369. package/dist/reflection-command-hooks-G1-dI2Av.d.ts +32 -0
  370. package/dist/reflection-deps-Ccm2Jf5W.d.ts +19 -0
  371. package/dist/reflection-embedded-generator-BRvqV5N-.js +130 -0
  372. package/dist/reflection-embedded-generator-kfQfKEYV.d.ts +14 -0
  373. package/dist/reflection-injection-hooks-CS_uhjoD.d.ts +43 -0
  374. package/dist/reflection-lifecycle-hooks-CRSpUdLi.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-Dg2HgROM.js +2 -0
  380. package/dist/rem-batch-executor-DuC4nYyf.js +31640 -0
  381. package/dist/rem-consumer-retrieval-CR0dtcHR.js +246 -0
  382. package/dist/rem-trigger-Hn6od8IV.js +730 -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-Dxss5fRv.d.ts +469 -0
  387. package/dist/retriever-ZoLvPRHq.js +1757 -0
  388. package/dist/rolldown-runtime-D7D4PA-g.js +13 -0
  389. package/dist/routes-DLHT__Ay.js +60 -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-CSvxchqg.js +1412 -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-CoWqUMbK.js +30 -0
  401. package/dist/sno-station-mem-runtime-dependencies-DHESIuPn.d.ts +31 -0
  402. package/dist/sqlite-runtime-L_ywirTm.d.ts +58 -0
  403. package/dist/store-C8sUTssE.d.ts +27 -0
  404. package/dist/store-nPql26YM.js +5830 -0
  405. package/dist/strategy-hook-runner-Bxy851Xx.d.ts +16 -0
  406. package/dist/strategy-hook-runner-Djify5Rw.js +110 -0
  407. package/dist/token-counter-BD1f48Km.js +73 -0
  408. package/dist/trace-C1JxMfs-.d.ts +86 -0
  409. package/dist/types-CWdhXLxr.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,361 @@
1
+ import { DEFAULT_AUTO_RECALL_MAX_QUERY_LENGTH, DEFAULT_BM25_WEIGHT, DEFAULT_REFLECTION_MAX_INPUT_CHARS, DEFAULT_REFLECTION_TIMEOUT_MS, DEFAULT_RERANK_MODEL, DEFAULT_RERANK_TIMEOUT_MS, DEFAULT_SCOPE, DEFAULT_VECTOR_WEIGHT, RECENCY_WEIGHT, RECENCY_WEIGHT_MAX, SNO_OBSERVE_DEFAULT_AGENT_ID, SNO_OBSERVE_DEFAULT_BASE_URL, VECTOR_DIMENSION_DEFAULT, recallLifecycleSchema } from "./internal/config/index.js";
2
+ import { SUPPORTED_LOCALES } from "./internal/engine/i18n/locales.js";
3
+ import { $ as FIXED_MEMORY_SNO_EXTRACT_PROFILE, Q as FIXED_MEMORY_SNO_EXTRACT_CHAT, X as FIXED_MEMORY_SNO_AI_EXTRACT, Z as FIXED_MEMORY_SNO_CONFLICT_VERDICT, dt as FIXED_PROTOCOL_VALUE_72, lt as FIXED_PROTOCOL_VALUE_70, ut as FIXED_PROTOCOL_VALUE_71, wt as PERSISTED_PROVIDER_SYSTEM } from "./signed-registry-constants-yq3DlG3B.js";
4
+ import { DEFAULT_MODEL_MODE, PRODUCT_MODES, remEnhancedConfigSchema } from "./internal/config/product-mode.js";
5
+ import { z } from "zod";
6
+ import { createLogger } from "@snoai/utils/logger";
7
+ //#region config/session-strategy.ts
8
+ /** @file session-strategy.ts
9
+ * @purpose Defines session-memory strategy constants without importing plugin config schemas.
10
+ * @boundary Shared literal values only; no schema or runtime registration dependencies.
11
+ */
12
+ const SESSION_STRATEGIES = [
13
+ "memoryReflection",
14
+ "systemSessionMemory",
15
+ "none"
16
+ ];
17
+ //#endregion
18
+ //#region config/plugin-config-embedding-schema.ts
19
+ const localEmbedSessionOptionsSchema = z.object({
20
+ graphOptimizationLevel: z.enum([
21
+ "disabled",
22
+ "basic",
23
+ "extended",
24
+ "all"
25
+ ]).default("extended"),
26
+ enableMemPattern: z.boolean().default(false),
27
+ enableCpuMemArena: z.boolean().default(false),
28
+ executionMode: z.enum(["sequential", "parallel"]).optional(),
29
+ interOpNumThreads: z.number().int().positive().optional(),
30
+ intraOpNumThreads: z.number().int().positive().optional()
31
+ }).strict().prefault({});
32
+ const embeddingConfigSchema = z.object({
33
+ provider: z.enum(["local-onnx"]).default("local-onnx"),
34
+ /** Hugging Face model id. Defaults to the bundled PPLX INT8 model. */
35
+ model: z.string().optional(),
36
+ /** Output dimension after optional truncation and re-normalization. */
37
+ dimensions: z.number().int().positive().default(VECTOR_DIMENSION_DEFAULT),
38
+ /** Native dimension produced by the local model. */
39
+ nativeDim: z.number().int().positive().optional(),
40
+ /** Pinned HuggingFace revision (commit SHA) for local-onnx supply-chain integrity. */
41
+ revision: z.string().optional(),
42
+ /**
43
+ * Pooling strategy for local-onnx. Read from the model's
44
+ * `1_Pooling/config.json`. Omit to use the provider default; the bundled
45
+ * PPLX model uses `mean`.
46
+ */
47
+ pooling: z.enum([
48
+ "last_token",
49
+ "mean",
50
+ "cls"
51
+ ]).optional(),
52
+ normalized: z.boolean().optional(),
53
+ /** Local ONNX model cache directory */
54
+ cacheDir: z.string().optional(),
55
+ offline: z.boolean().optional(),
56
+ mirror: z.string().optional(),
57
+ /** Quantization dtype: q4 | q8 | fp16 | fp32 */
58
+ dtype: z.enum([
59
+ "q4",
60
+ "q8",
61
+ "fp16",
62
+ "fp32"
63
+ ]).default("q8"),
64
+ /** ONNX Runtime session options for local low-memory operation. */
65
+ sessionOptions: localEmbedSessionOptionsSchema,
66
+ /** Enable text chunking for long passages (default: true) */
67
+ chunking: z.boolean().default(true)
68
+ }).prefault({});
69
+ //#endregion
70
+ //#region src/model/llm-client-types.ts
71
+ const LLM_PRESETS = [
72
+ FIXED_MEMORY_SNO_AI_EXTRACT,
73
+ FIXED_MEMORY_SNO_EXTRACT_CHAT,
74
+ FIXED_MEMORY_SNO_EXTRACT_PROFILE,
75
+ FIXED_MEMORY_SNO_CONFLICT_VERDICT
76
+ ];
77
+ //#endregion
78
+ //#region config/plugin-config-feature-schema.ts
79
+ const sessionMemoryConfigSchema = z.object({
80
+ enabled: z.boolean().default(true),
81
+ messageCount: z.number().int().min(1).max(100).default(15)
82
+ }).prefault({});
83
+ const selfImprovementConfigSchema = z.object({
84
+ enabled: z.boolean().default(true),
85
+ beforeResetNote: z.boolean().default(true),
86
+ skipSubagentBootstrap: z.boolean().default(true),
87
+ ensureLearningFiles: z.boolean().default(true)
88
+ }).prefault({});
89
+ const extractionConfigSchema = z.object({ llm: z.object({
90
+ preset: z.enum(LLM_PRESETS).default(FIXED_MEMORY_SNO_AI_EXTRACT),
91
+ /** Overrides provider default / env baseURL if set. */
92
+ baseURL: z.string().optional(),
93
+ /** Overrides provider-native env if set. */
94
+ apiKey: z.string().optional(),
95
+ timeoutMs: z.number().int().min(1e3).max(3e5).default(3e4)
96
+ }).strict().prefault({}) }).strict().prefault({});
97
+ const memoryReflectionConfigSchema = z.object({
98
+ messageCount: z.number().int().min(1).max(500).default(120),
99
+ maxInputChars: z.number().int().min(1e3).max(2e5).default(DEFAULT_REFLECTION_MAX_INPUT_CHARS),
100
+ timeoutMs: z.number().int().min(5e3).max(3e5).default(DEFAULT_REFLECTION_TIMEOUT_MS),
101
+ errorReminderMaxEntries: z.number().int().min(0).max(50).default(3),
102
+ dedupeErrorSignals: z.boolean().default(true),
103
+ injectMode: z.enum([
104
+ "inheritance+derived",
105
+ "inheritance-only",
106
+ "none"
107
+ ]).default("inheritance+derived"),
108
+ storeToDb: z.boolean().default(true),
109
+ /**
110
+ * Inject reflection invariants/derived slices into agent prompts at recall
111
+ * time. Default `false` until the LoCoMo paired-arm gate validates eval-
112
+ * neutrality (PRD §4.4.1, §5 eval gate). Permanent kill switch even after
113
+ * the default flips.
114
+ */
115
+ injectIntoPrompt: z.boolean().default(false),
116
+ agentId: z.string().optional()
117
+ }).prefault({});
118
+ //#endregion
119
+ //#region config/plugin-config-observe-schema.ts
120
+ const AGENT_IDS = [
121
+ PERSISTED_PROVIDER_SYSTEM,
122
+ FIXED_PROTOCOL_VALUE_70,
123
+ FIXED_PROTOCOL_VALUE_71,
124
+ FIXED_PROTOCOL_VALUE_72
125
+ ];
126
+ const observeAgentIdSchema = z.enum(AGENT_IDS, { error: () => `observe.agentId must be one of ${AGENT_IDS.join(", ")}` });
127
+ function isLoopbackUrl(url) {
128
+ return url.hostname === "localhost" || url.hostname === "127.0.0.1" || url.hostname === "::1" || url.hostname === "[::1]";
129
+ }
130
+ function validateObserveBaseUrl(value, ctx) {
131
+ let parsed;
132
+ try {
133
+ parsed = new URL(value);
134
+ } catch {
135
+ ctx.addIssue({
136
+ code: z.ZodIssueCode.custom,
137
+ path: ["baseUrl"],
138
+ message: `Invalid observe.baseUrl: "${value}"`
139
+ });
140
+ return;
141
+ }
142
+ const normalized = parsed.origin;
143
+ if (process.env.SNO_STATION_MEM_NODE_ENV === "test" && isLoopbackUrl(parsed)) {
144
+ if (parsed.protocol !== "http:" && parsed.protocol !== "https:") ctx.addIssue({
145
+ code: z.ZodIssueCode.custom,
146
+ path: ["baseUrl"],
147
+ message: "observe.baseUrl test fixture must use http or https"
148
+ });
149
+ return;
150
+ }
151
+ if (normalized !== "https://www.sno.ai") ctx.addIssue({
152
+ code: z.ZodIssueCode.custom,
153
+ path: ["baseUrl"],
154
+ message: `observe.baseUrl must be ${SNO_OBSERVE_DEFAULT_BASE_URL} outside loopback tests`
155
+ });
156
+ }
157
+ const observeConfigSchema = z.object({
158
+ enabled: z.boolean().default(true),
159
+ baseUrl: z.string().default(SNO_OBSERVE_DEFAULT_BASE_URL),
160
+ agentId: observeAgentIdSchema.default(SNO_OBSERVE_DEFAULT_AGENT_ID)
161
+ }).prefault({}).superRefine((value, ctx) => {
162
+ if (value.enabled) validateObserveBaseUrl(value.baseUrl, ctx);
163
+ });
164
+ //#endregion
165
+ //#region config/plugin-config-retrieval-schema.ts
166
+ const log = createLogger("sno-station-mem:config:retrieval");
167
+ const retrievalConfigSchema = z.object({
168
+ mode: z.enum(["precision-recall", "vector"]).default("precision-recall"),
169
+ /**
170
+ * Top-K memories injected per turn during auto-recall. Source of truth
171
+ * for the runtime retriever `limit`; AC5 drift test pins this default
172
+ * to AUTO_RECALL_INJECTION_TOP_K (currently 20). Lower (15) trades
173
+ * ~5pp accuracy for ~25% fewer prompt tokens.
174
+ */
175
+ recallTopK: z.number().int().min(0).max(2e3).default(20),
176
+ vectorWeight: z.number().min(0).max(1).default(DEFAULT_VECTOR_WEIGHT),
177
+ bm25Weight: z.number().min(0).max(1).default(DEFAULT_BM25_WEIGHT),
178
+ minScore: z.number().min(0).max(1).default(0),
179
+ rerank: z.enum([
180
+ "cross-encoder",
181
+ "lightweight",
182
+ "none"
183
+ ]).default("lightweight"),
184
+ candidatePoolSize: z.number().int().min(10).max(2e3).default(64),
185
+ rerankApiKey: z.string().optional(),
186
+ rerankModel: z.string().default(DEFAULT_RERANK_MODEL),
187
+ rerankTimeoutMs: z.number().int().min(1e3).max(12e4).default(DEFAULT_RERANK_TIMEOUT_MS),
188
+ recencyHalfLifeDays: z.number().min(0).max(365).default(14),
189
+ recencyWeight: z.number().min(0).max(RECENCY_WEIGHT_MAX).default(RECENCY_WEIGHT),
190
+ /** Drop memories past their valid_until timestamp (default OFF — needs A/B eval) */
191
+ temporalWeighting: z.boolean().default(false),
192
+ mmrWindowOnly: z.boolean().default(false),
193
+ temporalExpiry: z.boolean().default(false),
194
+ /** Dynamic memories decay 3× faster in time-decay scoring (default ON — low risk) */
195
+ temporalDecay: z.boolean().default(true),
196
+ lengthNormAnchor: z.number().int().min(0).max(5e3).default(0),
197
+ hardMinScore: z.number().min(0).max(1).default(0),
198
+ timeDecayHalfLifeDays: z.number().min(0).max(365).default(60),
199
+ /** Weight for fusion score in rerank blend */
200
+ rerankBlendVector: z.number().min(0).max(1).optional(),
201
+ /** Weight for cross-encoder score in rerank blend */
202
+ rerankBlendCross: z.number().min(0).max(1).optional(),
203
+ /** Fusion-score weight when rerank="lightweight" (local cosine blend) */
204
+ lightweightFusionWeight: z.number().min(0).max(1).optional(),
205
+ /** Cosine-score weight when rerank="lightweight" (local cosine blend) */
206
+ lightweightCosineWeight: z.number().min(0).max(1).optional(),
207
+ /** Base multiplier for importance weighting */
208
+ importanceWeightBase: z.number().min(0).max(1).optional(),
209
+ /** Minimum multiplier for old entries */
210
+ timeDecayFloor: z.number().min(0).max(1).optional(),
211
+ /** Relevance vs diversity tradeoff (default: 0.7) */
212
+ mmrLambda: z.number().min(0).max(1).optional(),
213
+ /** Custom rerank API endpoint URL. */
214
+ rerankEndpoint: z.string().optional(),
215
+ /** Rerank provider name */
216
+ rerankProvider: z.enum([
217
+ "jina",
218
+ "siliconflow",
219
+ "pinecone",
220
+ "voyage",
221
+ "dashscope",
222
+ "tei",
223
+ "custom"
224
+ ]).optional(),
225
+ /** Hard cap on candidates sent per rerank API request (some deployments reject over-limit batches) */
226
+ rerankMaxCandidates: z.number().int().min(1).max(2e3).optional(),
227
+ /** Scaling factor for access-based reinforcement (0 = disabled, default: 0.5) */
228
+ reinforcementFactor: z.number().min(0).max(5).default(.5),
229
+ /** Hard cap: effective half-life <= baseHalfLife * maxHalfLifeMultiplier (default: 3) */
230
+ maxHalfLifeMultiplier: z.number().min(1).max(10).default(3)
231
+ }).prefault({}).transform((ret, ctx) => {
232
+ if (ret.rerank === "none") return ret;
233
+ if ((ret.rerank === "cross-encoder" || ret.rerankEndpoint !== void 0) && ret.rerankProvider === void 0) ctx.addIssue({
234
+ code: z.ZodIssueCode.custom,
235
+ path: ["rerankProvider"],
236
+ message: "retrieval.rerankProvider is required when retrieval.rerank is \"cross-encoder\" or retrieval.rerankEndpoint is set: the provider decides the request shape and the per-request batch limit"
237
+ });
238
+ if (ret.rerankEndpoint !== void 0) try {
239
+ new URL(ret.rerankEndpoint);
240
+ } catch {
241
+ ctx.addIssue({
242
+ code: z.ZodIssueCode.custom,
243
+ path: ["rerankEndpoint"],
244
+ message: `Invalid rerankEndpoint URL: "${ret.rerankEndpoint}"`
245
+ });
246
+ }
247
+ const rerankApiKey = ret.rerankApiKey;
248
+ if (ret.rerank === "cross-encoder" && !rerankApiKey?.trim()) {
249
+ log.error("memory.rerank.key.missing", { cause: "missing-rerank-key" }, {
250
+ event_name: "memory.rerank.key.missing",
251
+ file: "packages/memory/config/plugin-config-retrieval-schema.ts",
252
+ function: "retrievalConfigSchema",
253
+ site_id: "memory.rerank.key.missing"
254
+ });
255
+ ctx.addIssue({
256
+ code: z.ZodIssueCode.custom,
257
+ path: ["rerankApiKey"],
258
+ message: "retrieval.rerankApiKey is required for cross-encoder reranking"
259
+ });
260
+ }
261
+ return ret;
262
+ });
263
+ //#endregion
264
+ //#region config/plugin-config-schema.ts
265
+ const scopesConfigSchema = z.object({
266
+ default: z.string().default(DEFAULT_SCOPE),
267
+ definitions: z.record(z.string(), z.object({
268
+ description: z.string().optional(),
269
+ metadata: z.record(z.string(), z.unknown()).optional()
270
+ })).prefault({ global: { description: "Shared knowledge across all agents" } }),
271
+ agentAccess: z.record(z.string(), z.array(z.string())).default({})
272
+ }).prefault({});
273
+ const providerConfigSchema = z.object({ userId: z.string().trim().optional() }).strict().prefault({});
274
+ const ONBOARDING_PROFILES = [
275
+ "local-active",
276
+ "capture-only",
277
+ "manual-only",
278
+ "custom"
279
+ ];
280
+ const REM_OPERATIONS = ["rem-replace", "rem-update"];
281
+ const pluginConfigSchema = z.object({
282
+ embedding: embeddingConfigSchema,
283
+ observe: observeConfigSchema,
284
+ dbPath: z.string().optional(),
285
+ provider: providerConfigSchema,
286
+ ambientLearning: z.boolean().default(true),
287
+ autoRecall: z.boolean().default(false),
288
+ /** Minimum query length for auto-recall to fire (default: 15) */
289
+ autoRecallMinLength: z.number().int().min(0).max(200).default(2),
290
+ /** Skip re-injecting a memory if it was shown within the last N turns (0 = no dedup) */
291
+ autoRecallMinRepeated: z.number().int().min(0).max(100).default(0),
292
+ /** Maximum character length of auto-recall query before truncation */
293
+ autoRecallMaxQueryLength: z.number().int().min(100).max(1e4).default(DEFAULT_AUTO_RECALL_MAX_QUERY_LENGTH),
294
+ /** Timeout in ms for the entire auto-recall pipeline (embed + search + rerank) */
295
+ autoRecallTimeoutMs: z.number().int().min(500).max(6e4).default(5e3),
296
+ /**
297
+ * Whitelist: if non-empty, ONLY these agentIds receive auto-recall injection.
298
+ * Takes precedence over autoRecallExcludeAgents when both are set. Entries
299
+ * are trimmed; empty strings are dropped.
300
+ */
301
+ autoRecallIncludeAgents: z.array(z.string().transform((s) => s.trim())).transform((arr) => arr.filter((s) => s.length > 0)).default([]),
302
+ /**
303
+ * Blocklist: agentIds excluded from auto-recall injection. The implicit
304
+ * "main" fallback used when hook context lacks a parseable agent identity
305
+ * is evaluated against this blocklist too.
306
+ */
307
+ autoRecallExcludeAgents: z.array(z.string().transform((s) => s.trim())).transform((arr) => arr.filter((s) => s.length > 0)).default([]),
308
+ captureAssistant: z.boolean().default(false),
309
+ retrieval: retrievalConfigSchema,
310
+ scopes: scopesConfigSchema,
311
+ enableManagementTools: z.boolean().default(false),
312
+ /**
313
+ * Optional user-facing language for tool descriptions and other static
314
+ * locale-bound surface that cannot be derived from query text.
315
+ */
316
+ language: z.enum(SUPPORTED_LOCALES).optional(),
317
+ sessionStrategy: z.enum(SESSION_STRATEGIES).default("systemSessionMemory"),
318
+ sessionMemory: sessionMemoryConfigSchema,
319
+ compression: z.object({ enabled: z.boolean().default(false) }).optional(),
320
+ selfImprovement: selfImprovementConfigSchema,
321
+ extraction: extractionConfigSchema,
322
+ memoryReflection: memoryReflectionConfigSchema,
323
+ /**
324
+ * Phase 0 lifecycle stub channel. All flags default false; enabling any
325
+ * lights up its dedicated wire site without altering the others.
326
+ */
327
+ recallLifecycle: recallLifecycleSchema,
328
+ memoryTelemetry: z.object({
329
+ enabled: z.boolean().default(true),
330
+ currentKeyVersion: z.number().int().positive().default(1),
331
+ key: z.string().default(""),
332
+ historicKeys: z.array(z.string()).default([])
333
+ }).prefault({}),
334
+ debugContent: z.boolean().default(false),
335
+ /**
336
+ * Product LLM mode, tier-ordered: local-first → agent-native →
337
+ * rem-enhanced. A true bare config defaults to agent-native; model route
338
+ * config requires an explicit product mode.
339
+ */
340
+ mode: z.enum(PRODUCT_MODES).default(DEFAULT_MODEL_MODE),
341
+ modelCalls: z.record(z.string(), z.record(z.enum(PRODUCT_MODES), z.enum([
342
+ "off",
343
+ "host",
344
+ "sno-gpu"
345
+ ]))).optional(),
346
+ remOperations: z.array(z.enum(REM_OPERATIONS)).min(1).max(2).default([...REM_OPERATIONS]),
347
+ remEnhanced: remEnhancedConfigSchema,
348
+ /**
349
+ * Installer completion marker (bin/_onboarding-core.js writes it into
350
+ * this same config block). The runtime never reads it, but the strict
351
+ * schema must accept it or every installer-onboarded config fails to
352
+ * load.
353
+ */
354
+ onboarding: z.object({
355
+ version: z.number().int().positive(),
356
+ completedAt: z.string(),
357
+ profile: z.enum(ONBOARDING_PROFILES)
358
+ }).strict().optional()
359
+ }).strict();
360
+ //#endregion
361
+ export { memoryReflectionConfigSchema as a, embeddingConfigSchema as c, extractionConfigSchema as i, SESSION_STRATEGIES as l, retrievalConfigSchema as n, selfImprovementConfigSchema as o, observeConfigSchema as r, sessionMemoryConfigSchema as s, pluginConfigSchema as t };
@@ -0,0 +1,13 @@
1
+ import { y as Settings } from "./plugin-config-schema-C0UUbOmG.js";
2
+ //#region src/contract/profile.d.ts
3
+ declare function getStateDir(defaultStateDir?: string): string;
4
+ declare function getSettingsPath(): string;
5
+ declare class SettingsUnavailableError extends Error {}
6
+ declare function readSettings(): Settings;
7
+ declare function getSnoStationMemStateDir(): string;
8
+ declare function getPrincipal(): string;
9
+ declare function getDiscoveryPath(): string;
10
+ declare function getSidecarSocketPath(): string;
11
+ declare function getStartupLogPath(): string;
12
+ //#endregion
13
+ export { getSidecarSocketPath as a, getStateDir as c, getSettingsPath as i, readSettings as l, getDiscoveryPath as n, getSnoStationMemStateDir as o, getPrincipal as r, getStartupLogPath as s, SettingsUnavailableError as t };