@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,16 @@
1
+ //#region src/engine/shared/iso-date-time.d.ts
2
+ /**
3
+ * Accepts `2023-05-07`, `2023-05-07T12:30:00`, or `2023-05-07T12:30:00Z`.
4
+ * Returns the trimmed input unchanged when valid; otherwise undefined.
5
+ */
6
+ export declare function normalizeIsoDateTimeString(value: unknown): string | undefined;
7
+ /** Parses a validated ISO date/date-time string into epoch milliseconds. */
8
+ export declare function parseIsoDateTimeMs(value: unknown): number | undefined;
9
+ /**
10
+ * Formats epoch milliseconds as an ISO calendar date (`YYYY-MM-DD`, UTC).
11
+ * The result validates as an ISO date string, so it round-trips through
12
+ * `normalizeIsoDateTimeString`. Used to give episodic memories a concrete
13
+ * event date when only a millisecond anchor (e.g. `valid_from`) is known.
14
+ */
15
+ export declare function isoDateFromMs(ms: number): string;
16
+ //#endregion
@@ -0,0 +1,40 @@
1
+ import { z } from "zod";
2
+ //#region src/engine/shared/iso-date-time.ts
3
+ /** @file iso-date-time.ts
4
+ * @purpose Validates persisted ISO date/date-time strings without JavaScript Date rollover.
5
+ * @boundary ISO string normalization and epoch parsing only; no relative date parsing.
6
+ */
7
+ const ISO_DATE_STRING_SCHEMA = z.string().date();
8
+ const ISO_DATE_TIME_STRING_SCHEMA = z.string().datetime({
9
+ offset: true,
10
+ local: true
11
+ });
12
+ /**
13
+ * Accepts `2023-05-07`, `2023-05-07T12:30:00`, or `2023-05-07T12:30:00Z`.
14
+ * Returns the trimmed input unchanged when valid; otherwise undefined.
15
+ */
16
+ function normalizeIsoDateTimeString(value) {
17
+ if (typeof value !== "string") return void 0;
18
+ const trimmed = value.trim();
19
+ if (!trimmed) return void 0;
20
+ if (!ISO_DATE_STRING_SCHEMA.safeParse(trimmed).success && !ISO_DATE_TIME_STRING_SCHEMA.safeParse(trimmed).success) return;
21
+ return trimmed;
22
+ }
23
+ /** Parses a validated ISO date/date-time string into epoch milliseconds. */
24
+ function parseIsoDateTimeMs(value) {
25
+ const normalized = normalizeIsoDateTimeString(value);
26
+ if (normalized === void 0) return void 0;
27
+ const parsed = Date.parse(normalized);
28
+ return Number.isNaN(parsed) ? void 0 : parsed;
29
+ }
30
+ /**
31
+ * Formats epoch milliseconds as an ISO calendar date (`YYYY-MM-DD`, UTC).
32
+ * The result validates as an ISO date string, so it round-trips through
33
+ * `normalizeIsoDateTimeString`. Used to give episodic memories a concrete
34
+ * event date when only a millisecond anchor (e.g. `valid_from`) is known.
35
+ */
36
+ function isoDateFromMs(ms) {
37
+ return new Date(ms).toISOString().slice(0, 10);
38
+ }
39
+ //#endregion
40
+ export { isoDateFromMs, normalizeIsoDateTimeString, parseIsoDateTimeMs };
@@ -0,0 +1,2 @@
1
+ import { n as setLruEntry, r as touchLruEntry, t as pruneOldestEntries } from "../../../lru-DyoaTyIs.js";
2
+ export { pruneOldestEntries, setLruEntry, touchLruEntry };
@@ -0,0 +1,30 @@
1
+ //#region src/engine/shared/lru.ts
2
+ /** @file lru.ts
3
+ * @purpose Provides a small bounded cache primitive for hot-path runtime state.
4
+ * @boundary In-memory capacity limits and deterministic eviction behavior.
5
+ * @see derived-line-cache.ts, retrieval-stats.ts, sno-station-mem-plugin-runtime.ts.
6
+ */
7
+ /** Generic LRU helpers for bounded Map caches. */
8
+ function pruneOldestEntries(map, maxEntries) {
9
+ while (map.size > maxEntries) {
10
+ const oldestKey = map.keys().next().value;
11
+ if (oldestKey === void 0) return;
12
+ map.delete(oldestKey);
13
+ }
14
+ }
15
+ /** Implements touch lru entry as the local bounded session cache operation. */
16
+ function touchLruEntry(map, key) {
17
+ const value = map.get(key);
18
+ if (value === void 0) return void 0;
19
+ map.delete(key);
20
+ map.set(key, value);
21
+ return value;
22
+ }
23
+ /** Updates lru entry while preserving bounded session cache invariants. */
24
+ function setLruEntry(map, key, value, maxEntries) {
25
+ if (map.has(key)) map.delete(key);
26
+ map.set(key, value);
27
+ pruneOldestEntries(map, maxEntries);
28
+ }
29
+ //#endregion
30
+ export { pruneOldestEntries, setLruEntry, touchLruEntry };
@@ -0,0 +1,2 @@
1
+ import { a as canExtractorWrite, c as canToolWrite, d as isAppendOnly, f as isDerivedOnly, i as allowedWriters, l as canTrustedWrite, m as writePolicy, n as WritePolicy, o as canOfflineFamilyWrite, p as isMutationNative, r as WriterAuthority, s as canProfileWriterWrite, t as DedupePolicy, u as dedupePolicy } from "../../../memory-kind-policy-BiuRjSJc.js";
2
+ export { DedupePolicy, WritePolicy, WriterAuthority, allowedWriters, canExtractorWrite, canOfflineFamilyWrite, canProfileWriterWrite, canToolWrite, canTrustedWrite, dedupePolicy, isAppendOnly, isDerivedOnly, isMutationNative, writePolicy };
@@ -0,0 +1,64 @@
1
+ //#region src/engine/shared/memory-kind-policy.ts
2
+ const WRITE_POLICY = {
3
+ episodic: "append-only",
4
+ lesson: "append-only",
5
+ profile: "mutation-native",
6
+ persona: "mutation-native",
7
+ summary: "derived-only",
8
+ state: "mutation-native"
9
+ };
10
+ const DEDUPE_POLICY = {
11
+ episodic: { mode: "none" },
12
+ lesson: {
13
+ mode: "signature",
14
+ field: "anti_pattern_signature"
15
+ },
16
+ profile: { mode: "none" },
17
+ persona: { mode: "none" },
18
+ summary: { mode: "none" },
19
+ state: { mode: "none" }
20
+ };
21
+ const ALLOWED_WRITERS = {
22
+ episodic: ["extraction", "offline-family"],
23
+ lesson: ["offline-family"],
24
+ profile: ["profile-writer", "offline-family"],
25
+ persona: ["offline-family"],
26
+ summary: ["offline-family"],
27
+ state: ["extraction", "offline-family"]
28
+ };
29
+ function isAppendOnly(kind) {
30
+ return WRITE_POLICY[kind] === "append-only";
31
+ }
32
+ function isMutationNative(kind) {
33
+ return WRITE_POLICY[kind] === "mutation-native";
34
+ }
35
+ function isDerivedOnly(kind) {
36
+ return WRITE_POLICY[kind] === "derived-only";
37
+ }
38
+ function writePolicy(kind) {
39
+ return WRITE_POLICY[kind];
40
+ }
41
+ function dedupePolicy(kind) {
42
+ return DEDUPE_POLICY[kind];
43
+ }
44
+ function allowedWriters(kind) {
45
+ return ALLOWED_WRITERS[kind];
46
+ }
47
+ function canExtractorWrite(kind) {
48
+ return ALLOWED_WRITERS[kind].includes("extraction");
49
+ }
50
+ function canProfileWriterWrite(kind) {
51
+ return ALLOWED_WRITERS[kind].includes("profile-writer");
52
+ }
53
+ function canToolWrite(kind) {
54
+ return ALLOWED_WRITERS[kind].includes("extraction");
55
+ }
56
+ function canTrustedWrite(kind) {
57
+ const writers = ALLOWED_WRITERS[kind];
58
+ return writers.includes("extraction") || writers.includes("profile-writer");
59
+ }
60
+ function canOfflineFamilyWrite(kind) {
61
+ return ALLOWED_WRITERS[kind].includes("offline-family");
62
+ }
63
+ //#endregion
64
+ export { allowedWriters, canExtractorWrite, canOfflineFamilyWrite, canProfileWriterWrite, canToolWrite, canTrustedWrite, dedupePolicy, isAppendOnly, isDerivedOnly, isMutationNative, writePolicy };
@@ -0,0 +1,3 @@
1
+ import { c as getStateDir, o as getSnoStationMemStateDir, r as getPrincipal } from "../../../profile-TWPJ_myr.js";
2
+ import "../../../paths-qVF-5uBq.js";
3
+ export { getPrincipal, getSnoStationMemStateDir, getStateDir };
@@ -0,0 +1,2 @@
1
+ import { getPrincipal, getSnoStationMemStateDir, getStateDir } from "../../contract/profile.js";
2
+ export { getPrincipal, getSnoStationMemStateDir, getStateDir };
@@ -0,0 +1,3 @@
1
+ import { C as SESSION_STRATEGIES, n as pluginConfigSchema, t as PluginConfig, w as SessionStrategy } from "../../../plugin-config-schema-C0UUbOmG.js";
2
+ import { S as normalizeCategory, _ as MemoryLane, a as CandidateExtractionTrace, b as MemoryTier, c as DEFAULT_MEMORY_TIER, d as DedupDecision, f as DedupResult, g as MemoryEntry, h as MemoryCategory, i as CANDIDATE_EXTRACTION_TRACE_VERSION, l as DecayScore, m as MEMORY_CATEGORIES, n as AggregationOperation, o as CandidateMemory, p as ExtractionStats, r as AggregationQuery, s as CandidateRelation, t as AGGREGATION_OPERATIONS, u as DecayableMemory, v as MemoryMetadata, x as RetrievalResult, y as MemorySearchResult } from "../../../types-CWdhXLxr.js";
3
+ export { AGGREGATION_OPERATIONS, AggregationOperation, AggregationQuery, CANDIDATE_EXTRACTION_TRACE_VERSION, CandidateExtractionTrace, CandidateMemory, CandidateRelation, DEFAULT_MEMORY_TIER, DecayScore, DecayableMemory, DedupDecision, DedupResult, ExtractionStats, MEMORY_CATEGORIES, MemoryCategory, MemoryEntry, MemoryLane, MemoryMetadata, MemorySearchResult, MemoryTier, type PluginConfig, RetrievalResult, SESSION_STRATEGIES, type SessionStrategy, normalizeCategory, pluginConfigSchema };
@@ -0,0 +1,25 @@
1
+ import { l as SESSION_STRATEGIES, t as pluginConfigSchema } from "../../../plugin-config-schema-YJLyIIcJ.js";
2
+ //#region src/engine/shared/types.ts
3
+ const MEMORY_CATEGORIES = [
4
+ "episodic",
5
+ "profile",
6
+ "persona",
7
+ "lesson",
8
+ "summary",
9
+ "state"
10
+ ];
11
+ const CANDIDATE_EXTRACTION_TRACE_VERSION = "insight-distill-2026-06-27";
12
+ const AGGREGATION_OPERATIONS = [
13
+ "count",
14
+ "first",
15
+ "last",
16
+ "evidence"
17
+ ];
18
+ const DEFAULT_MEMORY_TIER = "peripheral";
19
+ /** Validate and normalize a category string to a foundation kind. */
20
+ function normalizeCategory(raw) {
21
+ const lower = raw.toLowerCase().trim();
22
+ if (MEMORY_CATEGORIES.includes(lower)) return lower;
23
+ }
24
+ //#endregion
25
+ export { AGGREGATION_OPERATIONS, CANDIDATE_EXTRACTION_TRACE_VERSION, DEFAULT_MEMORY_TIER, MEMORY_CATEGORIES, SESSION_STRATEGIES, normalizeCategory, pluginConfigSchema };
@@ -0,0 +1,2 @@
1
+ import { a as f32ToBytes, c as sanitizeFtsConjunctiveQuery, i as debugContentPreview, l as sanitizeFtsQuery, n as clamp01, o as readFileTail, r as clampInt, s as sanitizeForContext, t as bytesToF32, u as stableHash } from "../../../utils-Ctb9aevJ.js";
2
+ export { bytesToF32, clamp01, clampInt, debugContentPreview, f32ToBytes, readFileTail, sanitizeForContext, sanitizeFtsConjunctiveQuery, sanitizeFtsQuery, stableHash };
@@ -0,0 +1,175 @@
1
+ import { DEFAULT_IMPORTANCE } from "../../config/index.js";
2
+ import { redactSecrets } from "../security/redact.js";
3
+ import { stripHtmlTags, tokenizeForFts, truncateGraphemes } from "./i18n-text.js";
4
+ import { open, stat } from "node:fs/promises";
5
+ import { createHash } from "node:crypto";
6
+ import { sanitizeContentIngress } from "@snoai/content-sanitizer";
7
+ //#region src/engine/shared/utils.ts
8
+ /** @file utils.ts
9
+ * @purpose Provides shared utility functions used across plugin runtime modules.
10
+ * @boundary Text normalization, hashing, filesystem helpers, and small conversions.
11
+ * @see store.ts, capture-policy-detector.ts, memory-management-cli.ts.
12
+ */
13
+ /**
14
+ * Clamps integer options into the configured range before they reach storage or ranking code.
15
+ */
16
+ function clampInt(value, min, max) {
17
+ if (!Number.isFinite(value)) return min;
18
+ return Math.min(max, Math.max(min, Math.floor(value)));
19
+ }
20
+ /** Clamps score-like values to the 0..1 range while honoring a caller-provided fallback. */
21
+ function clamp01(value, fallback = DEFAULT_IMPORTANCE) {
22
+ if (!Number.isFinite(value)) return fallback;
23
+ return Math.min(1, Math.max(0, value));
24
+ }
25
+ /** Redacts markup-sensitive characters before memory text is embedded in prompt context. */
26
+ function sanitizeForContext(text, maxChars = 500, newlineReplacement = " ") {
27
+ const storageSafe = sanitizeContentIngress({
28
+ source: "generic-text",
29
+ content: text
30
+ }).projections.plainText;
31
+ const sanitized = stripHtmlTags(storageSafe).replace(/[\r\n]+/g, newlineReplacement).replace(/</g, "<").replace(/>/g, ">").replace(/\s+/g, " ").trim();
32
+ return truncateGraphemes(sanitized, maxChars);
33
+ }
34
+ const FTS5_RESERVED_TOKENS = /* @__PURE__ */ new Set([
35
+ "AND",
36
+ "OR",
37
+ "NOT",
38
+ "NEAR"
39
+ ]);
40
+ const MAX_FTS_QUERY_TOKENS = 50;
41
+ const FTS_STOPWORDS = /* @__PURE__ */ new Set([
42
+ "a",
43
+ "an",
44
+ "the",
45
+ "and",
46
+ "or",
47
+ "but",
48
+ "of",
49
+ "to",
50
+ "in",
51
+ "on",
52
+ "at",
53
+ "for",
54
+ "is",
55
+ "are",
56
+ "was",
57
+ "were",
58
+ "be",
59
+ "been",
60
+ "being",
61
+ "do",
62
+ "does",
63
+ "did",
64
+ "has",
65
+ "have",
66
+ "had",
67
+ "what",
68
+ "which",
69
+ "who",
70
+ "whom",
71
+ "when",
72
+ "where",
73
+ "how",
74
+ "why",
75
+ "this",
76
+ "that",
77
+ "these",
78
+ "those",
79
+ "with",
80
+ "as",
81
+ "by",
82
+ "from",
83
+ "it",
84
+ "its",
85
+ "i",
86
+ "you",
87
+ "he",
88
+ "she",
89
+ "we",
90
+ "they",
91
+ "them",
92
+ "his",
93
+ "her",
94
+ "their",
95
+ "our",
96
+ "your",
97
+ "my"
98
+ ]);
99
+ /** Escapes SQLite FTS operators so user queries cannot break MATCH syntax. */
100
+ function sanitizeFtsQuery(rawQuery) {
101
+ const tokens = tokenizeForFts(rawQuery).filter((token) => token.length > 0).filter((token) => !FTS5_RESERVED_TOKENS.has(token.toUpperCase())).filter((token) => !FTS_STOPWORDS.has(token.toLowerCase())).slice(0, MAX_FTS_QUERY_TOKENS);
102
+ if (tokens.length === 0) return "";
103
+ return tokens.map((token) => `"${token}"`).join(" OR ");
104
+ }
105
+ /** Builds a conjunctive FTS predicate from validated structured aggregation terms. */
106
+ function sanitizeFtsConjunctiveQuery(terms) {
107
+ let remainingTokens = MAX_FTS_QUERY_TOKENS;
108
+ return terms.flatMap((term) => {
109
+ const tokens = tokenizeForFts(term).filter((token) => token.length > 0).filter((token) => !FTS5_RESERVED_TOKENS.has(token.toUpperCase())).slice(0, remainingTokens);
110
+ remainingTokens -= tokens.length;
111
+ return tokens.length > 0 ? [`(${tokens.map((token) => `"${token}"`).join(" OR ")})`] : [];
112
+ }).join(" AND ");
113
+ }
114
+ /** Serializes Float32 vectors into little-endian bytes for SQLite vector storage. */
115
+ function f32ToBytes(f32) {
116
+ return new Uint8Array(f32.buffer, f32.byteOffset, f32.byteLength);
117
+ }
118
+ /** Rehydrates SQLite vector bytes into Float32 values and rejects malformed payloads. */
119
+ function bytesToF32(bytes) {
120
+ if (bytes.byteLength % 4 !== 0) throw new Error(`bytesToF32: byteLength ${bytes.byteLength} not a multiple of 4`);
121
+ const aligned = new Uint8Array(bytes.byteLength);
122
+ aligned.set(bytes);
123
+ return new Float32Array(aligned.buffer);
124
+ }
125
+ /** Produces the stable content hash used for deduplication and idempotent writes. */
126
+ function stableHash(text) {
127
+ return createHash("sha256").update(text).digest("hex");
128
+ }
129
+ /**
130
+ * Return a short, secret-redacted, whitespace-collapsed preview of `text` for
131
+ * debug audit logs when explicitly enabled. Off-by-default
132
+ * and passes the text through `redactSecrets` first because previews persist
133
+ * in audit.jsonl on disk. Enable for bench investigations only.
134
+ */
135
+ function debugContentPreview(text, enabled, maxChars = 80) {
136
+ if (!enabled) return void 0;
137
+ if (!text) return void 0;
138
+ const collapsed = redactSecrets(text).replace(/\s+/g, " ").trim();
139
+ if (collapsed.length === 0) return void 0;
140
+ return collapsed.length > maxChars ? `${collapsed.slice(0, maxChars)}...` : collapsed;
141
+ }
142
+ /** Max bytes to read from the tail of a session JSONL file (512 KB). */
143
+ const SESSION_TAIL_MAX_BYTES = 524288;
144
+ /**
145
+ * Read the tail of a text file (up to `maxBytes`).
146
+ * Returns the file content from the tail. If the file is smaller than `maxBytes`,
147
+ * returns the entire file. The first partial line is dropped (it was likely truncated).
148
+ */
149
+ async function readFileTail(filePath, maxBytes = SESSION_TAIL_MAX_BYTES) {
150
+ const fileStat = await stat(filePath);
151
+ if (fileStat.size <= maxBytes) {
152
+ const handle = await open(filePath, "r");
153
+ try {
154
+ const buf = Buffer.alloc(fileStat.size);
155
+ await handle.read(buf, 0, fileStat.size, 0);
156
+ return buf.toString("utf-8");
157
+ } finally {
158
+ await handle.close();
159
+ }
160
+ }
161
+ const handle = await open(filePath, "r");
162
+ try {
163
+ const startPos = fileStat.size - maxBytes;
164
+ const buf = Buffer.alloc(maxBytes);
165
+ await handle.read(buf, 0, maxBytes, startPos);
166
+ const raw = buf.toString("utf-8");
167
+ const firstNewline = raw.indexOf("\n");
168
+ if (firstNewline === -1) return "";
169
+ return raw.slice(firstNewline + 1);
170
+ } finally {
171
+ await handle.close();
172
+ }
173
+ }
174
+ //#endregion
175
+ export { bytesToF32, clamp01, clampInt, debugContentPreview, f32ToBytes, readFileTail, sanitizeForContext, sanitizeFtsConjunctiveQuery, sanitizeFtsQuery, stableHash };
@@ -0,0 +1,134 @@
1
+ import { r as SqliteDatabaseLike } from "../../../sqlite-runtime-L_ywirTm.js";
2
+ import { n as MemoryTelemetryKeySet, t as MemoryTelemetryReceiptService } from "../../../memory-telemetry-receipts-MAJecvXQ.js";
3
+ import { i as MemoryTelemetryEventType, o as MemoryTelemetryReceiptStatus } from "../../../memory-telemetry-types-CufVmrCs.js";
4
+ import { r as MemoryTelemetryUsageOutbox } from "../../../memory-telemetry-outbox-ddTdImt7.js";
5
+ //#region src/engine/telemetry/memory-telemetry-purge.d.ts
6
+ type MemoryTelemetryPurgeActor = "agent" | "operator";
7
+ type MemoryTelemetryPurgeStatus = "complete" | "partial" | "blocked";
8
+ interface MemoryTelemetryPurgePreviewOptions {
9
+ actor?: MemoryTelemetryPurgeActor;
10
+ }
11
+ interface MemoryTelemetryPurgePreview {
12
+ targetFactId: string;
13
+ affectedFactIds: string[];
14
+ downstreamFactIds: string[];
15
+ affectedFactCount: number;
16
+ recentRecallCount: number;
17
+ affectedEpochIds: string[];
18
+ blocked: boolean;
19
+ blockedReason?: "cycle_detected";
20
+ }
21
+ interface MemoryTelemetryConfirmPurgeInput {
22
+ factId: string;
23
+ actor: MemoryTelemetryPurgeActor;
24
+ confirmationToken: string;
25
+ }
26
+ interface MemoryTelemetryPurgeResult {
27
+ targetFactId: string;
28
+ status: MemoryTelemetryPurgeStatus;
29
+ purgedFactIds: string[];
30
+ failedFactIds: string[];
31
+ blockedReason?: "cycle_detected" | "recent_recall";
32
+ }
33
+ //#endregion
34
+ //#region src/engine/telemetry/memory-telemetry-api.d.ts
35
+ export interface CreateMemoryTelemetryApiOptions {
36
+ sqlite: SqliteDatabaseLike;
37
+ usageOutbox?: MemoryTelemetryUsageOutbox;
38
+ keySet?: MemoryTelemetryKeySet;
39
+ key?: string;
40
+ historicKeys?: readonly string[];
41
+ receiptService?: MemoryTelemetryReceiptService;
42
+ agentId?: string;
43
+ }
44
+ export interface MemoryTelemetryLatestReceipt {
45
+ eventId: number;
46
+ factId: string;
47
+ memoryRowId: string | null;
48
+ contentHash: string;
49
+ timestampMs: number;
50
+ receiptHmac: string;
51
+ keyVersion: number;
52
+ status: MemoryTelemetryReceiptStatus;
53
+ }
54
+ export interface MemoryTelemetryVerifyReceiptResult {
55
+ status: MemoryTelemetryReceiptStatus;
56
+ requestedFactId: string;
57
+ terminalFactId: string;
58
+ latestReceipt: MemoryTelemetryLatestReceipt;
59
+ historicalReceipts: MemoryTelemetryLatestReceipt[];
60
+ }
61
+ export interface MemoryTelemetryProvenanceNode {
62
+ eventId: number;
63
+ eventType: MemoryTelemetryEventType;
64
+ factId: string | null;
65
+ timestampMs: number;
66
+ sourceEventId: number | null;
67
+ derivedFrom: string[];
68
+ }
69
+ export interface MemoryTelemetryProvenanceChain {
70
+ factId: string;
71
+ currentState: "active" | "superseded" | "deleted" | "purged" | "missing";
72
+ nodes: MemoryTelemetryProvenanceNode[];
73
+ }
74
+ export interface MemoryTelemetryUsageSummaryInput {
75
+ factId?: string;
76
+ agentId?: string;
77
+ projectId?: string;
78
+ window?: {
79
+ sinceMs?: number;
80
+ untilMs?: number;
81
+ };
82
+ }
83
+ export interface MemoryTelemetryUsageSummaryResult {
84
+ factId?: string;
85
+ agentId?: string;
86
+ recallCount: number;
87
+ injectionCount: number;
88
+ lastRecalledAt: number | null;
89
+ lastInjectedAt: number | null;
90
+ source: "local";
91
+ cloudForwarding: "ignored";
92
+ tenantBoundary: {
93
+ status: "unavailable";
94
+ queryTenantId: null;
95
+ resultTenantId: null;
96
+ };
97
+ }
98
+ export interface MemoryTelemetryRecallTraceInput {
99
+ sessionUuid?: string;
100
+ turnId?: string;
101
+ }
102
+ export interface MemoryTelemetryRecallTraceEvent {
103
+ eventId: number | null;
104
+ factId: string;
105
+ timestampMs: number;
106
+ rank: number | null;
107
+ score: number | null;
108
+ agentId: string | null;
109
+ projectId: string | null;
110
+ source: "nodix_memory_events" | "nodix_memory_usage_outbox";
111
+ }
112
+ export interface MemoryTelemetryRecallTrace {
113
+ sessionUuid: string;
114
+ turnId: string;
115
+ events: MemoryTelemetryRecallTraceEvent[];
116
+ }
117
+ export interface MemoryTelemetryEpochReport {
118
+ epochId: string;
119
+ status: "synthetic" | "real" | "unavailable";
120
+ boundaryEvents: number[];
121
+ createdFactIds: string[];
122
+ supersededFactIds: string[];
123
+ }
124
+ export interface MemoryTelemetryApi {
125
+ verifyReceipt(factId: string): MemoryTelemetryVerifyReceiptResult;
126
+ provenanceChain(factId: string, depth?: number): MemoryTelemetryProvenanceChain;
127
+ editImpactPreview(factId: string, options?: MemoryTelemetryPurgePreviewOptions): MemoryTelemetryPurgePreview;
128
+ confirmPurge(input: MemoryTelemetryConfirmPurgeInput): MemoryTelemetryPurgeResult;
129
+ usageSummary(input: MemoryTelemetryUsageSummaryInput): MemoryTelemetryUsageSummaryResult;
130
+ recallTrace(input: MemoryTelemetryRecallTraceInput): MemoryTelemetryRecallTrace;
131
+ epochReport(epochId: string): MemoryTelemetryEpochReport;
132
+ }
133
+ export declare function createMemoryTelemetryApi(options: CreateMemoryTelemetryApiOptions): MemoryTelemetryApi;
134
+ //#endregion