@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,91 @@
1
+ import { createHmac, timingSafeEqual } from "node:crypto";
2
+ //#region src/engine/telemetry/memory-telemetry-config.ts
3
+ function loadMemoryTelemetryKeySet(options) {
4
+ if (!options.enabled) return {
5
+ enabled: false,
6
+ current: null,
7
+ historic: /* @__PURE__ */ new Map()
8
+ };
9
+ const key = options.key;
10
+ if (!key || key.trim().length === 0) throw new Error("telemetry.memoryUsage.key is required when memory telemetry is enabled");
11
+ const currentKeyVersion = options.currentKeyVersion ?? options.historicKeys.length + 1;
12
+ if (!Number.isInteger(currentKeyVersion) || currentKeyVersion <= 0) throw new Error("memory telemetry current key version must be a positive integer");
13
+ return {
14
+ enabled: true,
15
+ current: {
16
+ version: currentKeyVersion,
17
+ key
18
+ },
19
+ historic: new Map(options.historicKeys.map((value, index) => [index + 1, value]))
20
+ };
21
+ }
22
+ //#endregion
23
+ //#region src/engine/telemetry/memory-telemetry-receipts.ts
24
+ const CONTENT_HASH_PATTERN = /^[a-f0-9]{64}$/;
25
+ const TIMESTAMP_MS_PATTERN = /^[0-9]{13}$/;
26
+ const RECEIPT_HMAC_PATTERN = /^[a-f0-9]{64}$/;
27
+ function createMemoryTelemetryReceiptService(keySet, options = {}) {
28
+ const signHmac = options.signHmac ?? defaultSignHmac;
29
+ return {
30
+ sign(input) {
31
+ validateReceiptInput(input);
32
+ const current = requireCurrentKey(keySet);
33
+ const canonicalInput = canonicalReceiptInput(input);
34
+ return {
35
+ ...input,
36
+ keyVersion: current.version,
37
+ receiptHmac: signHmac(current.key, canonicalInput)
38
+ };
39
+ },
40
+ verify(receipt) {
41
+ validateReceipt(receipt);
42
+ const key = resolveVerificationKey(keySet, receipt.keyVersion);
43
+ if (!key) return verification("key_expired", receipt);
44
+ return verification(safeEqualHex(signHmac(key.key, canonicalReceiptInput(receipt)), receipt.receiptHmac) ? "valid" : "tampered", receipt);
45
+ }
46
+ };
47
+ }
48
+ function requireCurrentKey(keySet) {
49
+ if (!keySet.enabled || !keySet.current) throw new Error("memory telemetry receipt signing requires an enabled current key");
50
+ return keySet.current;
51
+ }
52
+ function resolveVerificationKey(keySet, keyVersion) {
53
+ if (keySet.current?.version === keyVersion) return keySet.current;
54
+ const historicKey = keySet.historic.get(keyVersion);
55
+ if (!historicKey) return null;
56
+ return {
57
+ version: keyVersion,
58
+ key: historicKey
59
+ };
60
+ }
61
+ function canonicalReceiptInput(input) {
62
+ return `${input.factId}${input.contentHash}${String(input.timestampMs)}`;
63
+ }
64
+ function validateReceiptInput(input) {
65
+ if (input.factId.length === 0) throw new Error("fact_id must be non-empty for receipt signing");
66
+ if (!CONTENT_HASH_PATTERN.test(input.contentHash)) throw new Error("content_hash must be a 64-character lowercase hex SHA-256");
67
+ if (!TIMESTAMP_MS_PATTERN.test(String(input.timestampMs))) throw new Error("timestamp_ms must serialize to exactly 13 decimal digits");
68
+ }
69
+ function validateReceipt(receipt) {
70
+ validateReceiptInput(receipt);
71
+ if (!Number.isInteger(receipt.keyVersion) || receipt.keyVersion <= 0) throw new Error("key_version must be a positive integer");
72
+ if (!RECEIPT_HMAC_PATTERN.test(receipt.receiptHmac)) throw new Error("receipt_hmac must be a 64-character lowercase hex HMAC-SHA256");
73
+ }
74
+ function defaultSignHmac(key, canonicalInput) {
75
+ return createHmac("sha256", key).update(canonicalInput, "utf8").digest("hex");
76
+ }
77
+ function safeEqualHex(left, right) {
78
+ const leftBuffer = Buffer.from(left, "hex");
79
+ const rightBuffer = Buffer.from(right, "hex");
80
+ return leftBuffer.length === rightBuffer.length && timingSafeEqual(leftBuffer, rightBuffer);
81
+ }
82
+ function verification(status, receipt) {
83
+ return {
84
+ status,
85
+ contentHash: receipt.contentHash,
86
+ timestampMs: receipt.timestampMs,
87
+ keyVersion: receipt.keyVersion
88
+ };
89
+ }
90
+ //#endregion
91
+ export { loadMemoryTelemetryKeySet as n, createMemoryTelemetryReceiptService as t };
@@ -0,0 +1,14 @@
1
+ //#region src/engine/telemetry/memory-telemetry-types.d.ts
2
+ declare const MEMORY_TELEMETRY_EVENT_TYPES: readonly ["create", "update", "recall", "supersede", "delete", "inject", "epoch_boundary", "purge"];
3
+ type MemoryTelemetryEventType = (typeof MEMORY_TELEMETRY_EVENT_TYPES)[number];
4
+ type MemoryTelemetryMetadata = Record<string, unknown>;
5
+ type MemoryTelemetryReceiptStatus = "valid" | "invalid" | "tampered" | "key_expired";
6
+ declare const MEMORY_TELEMETRY_DELETE_REASONS: {
7
+ readonly admin: "admin_delete";
8
+ readonly cli: "cli_delete";
9
+ readonly memoryForget: "memory_forget";
10
+ };
11
+ type MemoryTelemetryDeleteReason = (typeof MEMORY_TELEMETRY_DELETE_REASONS)[keyof typeof MEMORY_TELEMETRY_DELETE_REASONS];
12
+ declare function isMemoryTelemetryEventType(value: unknown): value is MemoryTelemetryEventType;
13
+ //#endregion
14
+ export { MemoryTelemetryMetadata as a, MemoryTelemetryEventType as i, MEMORY_TELEMETRY_EVENT_TYPES as n, MemoryTelemetryReceiptStatus as o, MemoryTelemetryDeleteReason as r, isMemoryTelemetryEventType as s, MEMORY_TELEMETRY_DELETE_REASONS as t };
@@ -0,0 +1,43 @@
1
+ import { h as MemoryCategory, w as InsightMetadata } from "./types-DxKqU60b.js";
2
+ //#region src/engine/extraction/memory-temporality-classifier.d.ts
3
+ type TemporalType = "static" | "dynamic";
4
+ type TemporalResolutionStatus = "resolved" | "unresolved" | "static";
5
+ interface SessionTemporalContext {
6
+ sessionTimestamp?: number;
7
+ sessionTimezone?: string;
8
+ }
9
+ type TemporalInterval = {
10
+ type: "static";
11
+ resolutionStatus: "static";
12
+ } | {
13
+ type: "unresolved";
14
+ resolutionStatus: "unresolved";
15
+ phrase: string;
16
+ } | {
17
+ type: "instant";
18
+ resolutionStatus: "resolved";
19
+ at: number;
20
+ phrase?: string;
21
+ } | {
22
+ type: "bounded";
23
+ resolutionStatus: "resolved";
24
+ from: number;
25
+ until: number;
26
+ phrase?: string;
27
+ date?: string;
28
+ precision?: "year" | "month" | "week" | "day" | "minute";
29
+ timezone?: string;
30
+ } | {
31
+ type: "ongoing";
32
+ resolutionStatus: "resolved";
33
+ from: number;
34
+ until?: number;
35
+ phrase?: string;
36
+ };
37
+ declare function parseSessionTimestamp(sessionDateTime?: string): number | undefined;
38
+ declare function inferTemporalInterval(text: string, locale?: string, context?: SessionTemporalContext): TemporalInterval;
39
+ declare function serializeIntervalMetadata(category: MemoryCategory, interval: TemporalInterval): Partial<InsightMetadata>;
40
+ declare function classifyTemporal(text: string): TemporalType;
41
+ declare function inferExpiry(text: string, now?: number): number | undefined;
42
+ //#endregion
43
+ export { classifyTemporal as a, parseSessionTimestamp as c, TemporalType as i, serializeIntervalMetadata as l, TemporalInterval as n, inferExpiry as o, TemporalResolutionStatus as r, inferTemporalInterval as s, SessionTemporalContext as t };
@@ -0,0 +1,184 @@
1
+ import { isSupportedLocale } from "./internal/engine/i18n/locales.js";
2
+ import { parseIsoDateTimeMs } from "./internal/engine/shared/iso-date-time.js";
3
+ import { n as modelCallDestination } from "./model-call-table-CspopkBg.js";
4
+ import { a as isTerminalLlmFailure } from "./llm-client-B7Xoxqou.js";
5
+ import { n as readModelReplyJson } from "./model-reply-text-CKopStP2.js";
6
+ import { n as RESOURCES_BY_LOCALE } from "./all-resources-BQK2ugjB.js";
7
+ import { a as sessionZoneCarriedBy, n as calendarInstructionSchema, r as calendarSessionTimestamp, t as calculateCalendarTime } from "./calendar-instruction-CzqZbAPG.js";
8
+ import { z } from "zod";
9
+ import { createLogger } from "@snoai/utils/logger";
10
+ import { Temporal } from "@js-temporal/polyfill";
11
+ //#region src/engine/extraction/date-resolution.ts
12
+ /** Model-only time interpretation followed by deterministic calendar arithmetic. */
13
+ const log = createLogger("sno-station-mem:date-resolution");
14
+ /** No model means no semantic decision. Preserve the text rather than interpreting it. */
15
+ function unresolvedMemoryDate(input) {
16
+ return {
17
+ interval: {
18
+ type: "unresolved",
19
+ resolutionStatus: "unresolved",
20
+ phrase: input.expression ?? input.text
21
+ },
22
+ timestamp: input.sessionTimestamp ?? calendarSessionTimestamp(input.sessionDateTime, input.sessionTimezone),
23
+ timezone: input.sessionTimezone ?? sessionZoneCarriedBy(input.sessionDateTime) ?? "UTC",
24
+ stage: {
25
+ modelCalled: false,
26
+ reason: "no-model-judgment"
27
+ }
28
+ };
29
+ }
30
+ const replySchema = z.object({
31
+ reason: z.string(),
32
+ time: calendarInstructionSchema
33
+ }).strict();
34
+ async function resolveMemoryDate(input) {
35
+ const unresolved = unresolvedMemoryDate(input);
36
+ if (!input.llm) return unresolved;
37
+ const modelCalls = input.routing?.modelCalls;
38
+ if (input.routing && !modelCalls) throw new Error("modelCalls unavailable");
39
+ if (input.routing && modelCalls && modelCallDestination("E11", input.routing.mode, modelCalls) === "off") return unresolved;
40
+ const anchor = input.sessionDateTime ?? (input.sessionTimestamp === void 0 ? void 0 : new Date(input.sessionTimestamp).toISOString());
41
+ const prompt = [RESOURCES_BY_LOCALE[input.locale ?? input.routing?.language ?? "en"].extractionPrompts.buildDateResolutionPrompt(), JSON.stringify({
42
+ schema: z.toJSONSchema(replySchema),
43
+ sentence: input.text,
44
+ expression: input.expression ?? null,
45
+ session_date_time: anchor ?? null,
46
+ session_timezone: unresolved.timezone
47
+ })].join("\n\n");
48
+ let raw = null;
49
+ try {
50
+ raw = await input.llm.completeText({
51
+ callId: "E11",
52
+ prompt,
53
+ enableThinking: true
54
+ });
55
+ } catch (error) {
56
+ if (isTerminalLlmFailure(error)) throw error;
57
+ }
58
+ const reply = raw ? readModelReplyJson(raw, (value) => {
59
+ const parsed = replySchema.safeParse(value);
60
+ return parsed.success ? parsed.data : void 0;
61
+ }) : void 0;
62
+ if (!reply) {
63
+ const reason = raw === null ? "model-unavailable" : "invalid-model-instruction";
64
+ log.warn("Memory time judgment failed; preserving unresolved time", {
65
+ model_called: true,
66
+ reason
67
+ }, {
68
+ event_name: "memory.date_resolution.unavailable",
69
+ file: "packages/memory/src/engine/extraction/date-resolution.ts",
70
+ function: "resolveMemoryDate",
71
+ site_id: "date-resolution.model_unavailable"
72
+ });
73
+ return {
74
+ ...unresolved,
75
+ stage: {
76
+ modelCalled: true,
77
+ reason
78
+ }
79
+ };
80
+ }
81
+ const stage = {
82
+ modelCalled: true,
83
+ reason: reply.reason
84
+ };
85
+ const calculated = calculateCalendarTime(reply.time, anchor, unresolved.timezone);
86
+ log.info("Memory date resolution completed", {
87
+ model_called: true,
88
+ resolved: calculated !== null
89
+ }, {
90
+ event_name: "sno_station_mem.date-resolution.date.resolution.stage",
91
+ file: "packages/memory/src/engine/extraction/date-resolution.ts",
92
+ function: "resolveMemoryDate",
93
+ site_id: "date-resolution.resolveMemoryDate.1224fa35b2"
94
+ });
95
+ if (reply.time.kind === "none") return {
96
+ ...unresolved,
97
+ interval: {
98
+ type: "static",
99
+ resolutionStatus: "static"
100
+ },
101
+ stage
102
+ };
103
+ if (!calculated) return {
104
+ ...unresolved,
105
+ stage
106
+ };
107
+ return {
108
+ interval: {
109
+ type: "bounded",
110
+ resolutionStatus: "resolved",
111
+ from: calculated.from,
112
+ until: calculated.until,
113
+ phrase: input.expression ?? input.text,
114
+ date: calculated.label,
115
+ precision: calculated.precision,
116
+ timezone: calculated.timezone
117
+ },
118
+ timestamp: unresolved.timestamp,
119
+ timezone: unresolved.timezone,
120
+ stage
121
+ };
122
+ }
123
+ //#endregion
124
+ //#region src/engine/extraction/memory-temporality-classifier.ts
125
+ /** @file memory-temporality-classifier.ts
126
+ * @purpose Resolves temporal intervals through the shared date resolver.
127
+ * @boundary Metadata writes and deterministic capture callers.
128
+ */
129
+ function parseSessionTimestamp(sessionDateTime) {
130
+ return parseIsoDateTimeMs(sessionDateTime);
131
+ }
132
+ function sessionDateTime(context) {
133
+ if (context.sessionTimestamp === void 0) return void 0;
134
+ const timezone = context.sessionTimezone ?? Intl.DateTimeFormat().resolvedOptions().timeZone;
135
+ return Temporal.Instant.fromEpochMilliseconds(context.sessionTimestamp).toZonedDateTimeISO(timezone).toString({
136
+ smallestUnit: "millisecond",
137
+ timeZoneName: "never"
138
+ });
139
+ }
140
+ function inferTemporalInterval(text, locale, context = {}) {
141
+ return unresolvedMemoryDate({
142
+ text,
143
+ sessionDateTime: sessionDateTime(context),
144
+ sessionTimezone: context.sessionTimezone,
145
+ locale: locale && isSupportedLocale(locale) ? locale : "en"
146
+ }).interval;
147
+ }
148
+ function serializeIntervalMetadata(category, interval) {
149
+ if (interval.type === "static") return {
150
+ memory_temporal_type: "static",
151
+ temporal_resolution_status: "static"
152
+ };
153
+ const base = {
154
+ memory_temporal_type: "dynamic",
155
+ temporal_resolution_status: interval.resolutionStatus
156
+ };
157
+ if ("phrase" in interval && interval.phrase) base.temporal_phrase = interval.phrase;
158
+ if (interval.type === "instant") {
159
+ if (category === "episodic") base.event_at = interval.at;
160
+ base.valid_from = interval.at;
161
+ } else if (interval.type === "bounded") {
162
+ base.valid_from = interval.from;
163
+ if (category === "episodic") base.valid_until = interval.until;
164
+ if (interval.date !== void 0) base.temporal_date = interval.date;
165
+ if (interval.precision !== void 0) base.temporal_precision = interval.precision;
166
+ if (interval.timezone !== void 0) base.temporal_timezone = interval.timezone;
167
+ } else if (interval.type === "ongoing") {
168
+ base.valid_from = interval.from;
169
+ if (interval.until !== void 0) base.valid_until = interval.until;
170
+ }
171
+ return base;
172
+ }
173
+ function classifyTemporal(text) {
174
+ return inferTemporalInterval(text).type === "static" ? "static" : "dynamic";
175
+ }
176
+ function inferExpiry(text, now = Date.now()) {
177
+ const interval = inferTemporalInterval(text, "en", {
178
+ sessionTimestamp: now,
179
+ sessionTimezone: Intl.DateTimeFormat().resolvedOptions().timeZone
180
+ });
181
+ return interval.type === "bounded" ? interval.until : void 0;
182
+ }
183
+ //#endregion
184
+ export { serializeIntervalMetadata as a, parseSessionTimestamp as i, inferExpiry as n, resolveMemoryDate as o, inferTemporalInterval as r, unresolvedMemoryDate as s, classifyTemporal as t };
@@ -0,0 +1,43 @@
1
+ import { b as MemoryTier, l as DecayScore } from "./types-DxKqU60b.js";
2
+ //#region src/engine/operations/memory-tier-promoter.d.ts
3
+ interface TierConfig {
4
+ /** Minimum access count for Core promotion (default: 10) */
5
+ coreAccessThreshold: number;
6
+ /** Minimum composite decay score for Core promotion (default: 0.7) */
7
+ coreCompositeThreshold: number;
8
+ /** Minimum importance for Core promotion (default: 0.8) */
9
+ coreImportanceThreshold: number;
10
+ /** Composite threshold below which to demote to Peripheral (default: 0.15) */
11
+ peripheralCompositeThreshold: number;
12
+ /** Age in days after which infrequent memories demote to Peripheral (default: 60) */
13
+ peripheralAgeDays: number;
14
+ /** Minimum access count for Working promotion from Peripheral (default: 3) */
15
+ workingAccessThreshold: number;
16
+ /** Minimum composite for Working promotion from Peripheral (default: 0.4) */
17
+ workingCompositeThreshold: number;
18
+ }
19
+ declare const DEFAULT_TIER_CONFIG: TierConfig;
20
+ interface TierTransition {
21
+ memoryId: string;
22
+ fromTier: MemoryTier;
23
+ toTier: MemoryTier;
24
+ reason: string;
25
+ }
26
+ /** Minimal memory fields needed for tier evaluation.
27
+ * Uses `timestamp` to align with sno-station-mem's MemoryEntry shape. */
28
+ interface TierableMemory {
29
+ id: string;
30
+ tier: MemoryTier;
31
+ importance: number;
32
+ accessCount: number;
33
+ timestamp: number;
34
+ }
35
+ interface TierPromoter {
36
+ evaluate(memory: TierableMemory, decayScore: DecayScore, now?: number): TierTransition | null;
37
+ evaluateAll(memories: TierableMemory[], decayScores: DecayScore[], now?: number): TierTransition[];
38
+ }
39
+ /** Creates the tier promoter that translates decay scores into promotion/demotion decisions.
40
+ * Promote is bidirectional here: Peripheral→Working→Core (up) and Core→Working→Peripheral (down). */
41
+ declare function createTierPromoter(config?: TierConfig): TierPromoter;
42
+ //#endregion
43
+ export { TierableMemory as a, TierTransition as i, TierConfig as n, createTierPromoter as o, TierPromoter as r, DEFAULT_TIER_CONFIG as t };
@@ -0,0 +1,19 @@
1
+ import "./internal/config/index.js";
2
+ import "./internal/engine/i18n/locales.js";
3
+ import "./internal/engine/shared/types.js";
4
+ import "./memory-metadata-codec-DL1sbJiN.js";
5
+ import "./internal/engine/shared/i18n-text.js";
6
+ import "./internal/engine/shared/utils.js";
7
+ import "./all-resources-BQK2ugjB.js";
8
+ import "./capture-policy-detector-DaMfy9CZ.js";
9
+ import "./internal/engine/extraction/extraction-text-sanitizer.js";
10
+ import "./memory-temporality-classifier-CKiTAHXe.js";
11
+ import "./runtime-audit-log-BCeujlEp.js";
12
+ import "./internal/engine/operations/daily-spend-estimator.js";
13
+ import "./internal/engine/operations/learning-file-maintenance.js";
14
+ import "./scopes-CSOn6zdd.js";
15
+ import { z as z$1 } from "zod";
16
+ import { countTokens as countTokens$1 } from "@snoai/chunking";
17
+ import "@sinclair/typebox";
18
+ import "async-mutex";
19
+ export { z$1 as n, countTokens$1 as t };
@@ -0,0 +1,14 @@
1
+ import "./types-DxKqU60b.js";
2
+ import "./index-DL8AVj0Z.js";
3
+ import "./embedding-provider-client-vynZMuit.js";
4
+ import "./retriever-Ruk3zp7_.js";
5
+ import "./memory-metadata-codec-C3oQd47V.js";
6
+ import "./store-2pM0-dZg.js";
7
+ import "./capture-policy-detector-CHz5GOPA.js";
8
+ import "./memory-temporality-classifier-CEdRTN5J.js";
9
+ import "./runtime-audit-log-zpQiR9HT.js";
10
+ import { z as z$1 } from "zod";
11
+ import "@snoai/chunking";
12
+ import "@sinclair/typebox";
13
+ import "async-mutex";
14
+ export { z$1 as t };