@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,23 @@
1
+ //#region src/contract/error.ts
2
+ const DEGRADED_REASONS = [
3
+ "sidecar-unreachable",
4
+ "sidecar-unresponsive",
5
+ "principal-mismatch",
6
+ "store-mismatch",
7
+ "no-agent-endpoint",
8
+ "invalid-input",
9
+ "timeout",
10
+ "storage-unavailable",
11
+ "engine-failed"
12
+ ];
13
+ var ContractError = class extends Error {
14
+ reason;
15
+ degraded = true;
16
+ constructor(reason, message = reason) {
17
+ super(message);
18
+ this.reason = reason;
19
+ this.name = "ContractError";
20
+ }
21
+ };
22
+ //#endregion
23
+ export { DEGRADED_REASONS as n, ContractError as t };
@@ -0,0 +1,28 @@
1
+ //#region src/engine/security/error-signals.d.ts
2
+ type ReflectionErrorSignal = {
3
+ at: number;
4
+ toolName: string;
5
+ summary: string;
6
+ source: "tool_error" | "tool_output";
7
+ signature: string;
8
+ signatureHash: string;
9
+ };
10
+ type ReflectionErrorState = {
11
+ entries: ReflectionErrorSignal[];
12
+ lastInjectedCount: number;
13
+ signatureSet: Set<string>;
14
+ updatedAt: number;
15
+ };
16
+ type CreateErrorSignalTrackerOptions = {
17
+ maxTrackedSessions?: number;
18
+ };
19
+ /** Creates the per-session tracker that batches runtime errors for reflection feedback. */
20
+ declare function createErrorSignalTracker(options?: CreateErrorSignalTrackerOptions): {
21
+ getState: (sessionKey: string) => ReflectionErrorState;
22
+ addSignal: (sessionKey: string, signal: ReflectionErrorSignal, dedupeEnabled: boolean) => void;
23
+ getPendingSignals: (sessionKey: string, maxEntries: number) => ReflectionErrorSignal[];
24
+ clearSession: (sessionKey: string) => void;
25
+ prune: (ttlMs: number, maxSessions: number) => void;
26
+ };
27
+ //#endregion
28
+ export { createErrorSignalTracker as n, ReflectionErrorSignal as t };
@@ -0,0 +1,134 @@
1
+ import "./internal/config/index.js";
2
+ import { redactSecrets } from "./internal/engine/security/redact.js";
3
+ import { createHash } from "node:crypto";
4
+ //#region src/engine/security/error-signals.ts
5
+ /** @file error-signals.ts
6
+ * @purpose Classifies error-like text patterns used by capture and retrieval heuristics.
7
+ * @boundary Multilingual runtime regexes and operational signal extraction.
8
+ * @see capture-policy-detector.ts, intent-analyzer.ts, memory-noise-classifier.ts.
9
+ */
10
+ const ERROR_SIGNAL_PATTERNS = [
11
+ /\[error\]|error:|exception:|fatal:|traceback|syntaxerror|typeerror|referenceerror|npm err!/,
12
+ /command not found|no such file|permission denied|non-zero|exit code/,
13
+ /"status"\s*:\s*"error"|"status"\s*:\s*"failed"|\biserror\b/,
14
+ /错误\s*[::]|异常\s*[::]|报错\s*[::]|失败\s*[::]/
15
+ ];
16
+ const SUMMARY_MAX_LEN = 220;
17
+ const SIGNATURE_MAX_LEN = 240;
18
+ const MAX_ENTRIES_PER_SESSION = 30;
19
+ /** Implements touch session state as the local runtime error signal extraction operation. */
20
+ function touchSessionState(sessions, key, state) {
21
+ sessions.delete(key);
22
+ sessions.set(key, state);
23
+ return state;
24
+ }
25
+ /** Filters oldest sessions before it affects runtime error signal extraction decisions. */
26
+ function pruneOldestSessions(sessions, maxSessions) {
27
+ const cappedMaxSessions = Math.max(0, maxSessions);
28
+ while (sessions.size > cappedMaxSessions) {
29
+ const oldestKey = sessions.keys().next().value;
30
+ if (oldestKey === void 0) break;
31
+ sessions.delete(oldestKey);
32
+ }
33
+ }
34
+ /** Implements contains error signal as the local runtime error signal extraction operation. */
35
+ function containsErrorSignal(text) {
36
+ const normalized = text.toLowerCase();
37
+ return ERROR_SIGNAL_PATTERNS.some((p) => p.test(normalized));
38
+ }
39
+ /**
40
+ * Normalizes error signature at the boundary before runtime error signal extraction uses it.
41
+ */
42
+ function normalizeErrorSignature(text) {
43
+ return redactSecrets(String(text || "")).toLowerCase().replace(/[a-z]:\\[^ \n\r\t]+/gi, "<path>").replace(/\/[^ \n\r\t]+/g, "<path>").replace(/\b0x[0-9a-f]+\b/gi, "<hex>").replace(/\b\d+\b/g, "<n>").replace(/\s+/g, " ").trim().slice(0, SIGNATURE_MAX_LEN);
44
+ }
45
+ /** Implements summarize error text as the local runtime error signal extraction operation. */
46
+ function summarizeErrorText(text, maxLen = SUMMARY_MAX_LEN) {
47
+ const oneLine = redactSecrets(text).replace(/\s+/g, " ").trim();
48
+ if (!oneLine) return "(empty tool error)";
49
+ return oneLine.length <= maxLen ? oneLine : `${oneLine.slice(0, maxLen - 3)}...`;
50
+ }
51
+ /** Implements sha256 hex as the local runtime error signal extraction operation. */
52
+ function sha256Hex(text) {
53
+ return createHash("sha256").update(text, "utf8").digest("hex");
54
+ }
55
+ /** Extracts text from tool result from raw inputs while tolerating partial data. */
56
+ function extractTextFromToolResult(result) {
57
+ if (result == null) return "";
58
+ if (typeof result === "string") return result;
59
+ if (typeof result !== "object") return "";
60
+ const obj = result;
61
+ const content = obj.content;
62
+ if (!Array.isArray(content)) return typeof obj.text === "string" ? obj.text : "";
63
+ const parts = [];
64
+ for (const item of content) {
65
+ if (!item || typeof item !== "object") continue;
66
+ const rec = item;
67
+ if (rec.type === "text" && typeof rec.text === "string") parts.push(rec.text);
68
+ }
69
+ return parts.join("\n");
70
+ }
71
+ /** Creates the per-session tracker that batches runtime errors for reflection feedback. */
72
+ function createErrorSignalTracker(options = {}) {
73
+ const sessions = /* @__PURE__ */ new Map();
74
+ const maxTrackedSessions = Math.max(0, options.maxTrackedSessions ?? 200);
75
+ /** Returns state from runtime error signal extraction state without side effects. */
76
+ const getState = (sessionKey) => {
77
+ const key = sessionKey.trim();
78
+ const current = sessions.get(key);
79
+ if (current) {
80
+ current.updatedAt = Date.now();
81
+ return touchSessionState(sessions, key, current);
82
+ }
83
+ pruneOldestSessions(sessions, Math.max(0, maxTrackedSessions - 1));
84
+ return touchSessionState(sessions, key, {
85
+ entries: [],
86
+ lastInjectedCount: 0,
87
+ signatureSet: /* @__PURE__ */ new Set(),
88
+ updatedAt: Date.now()
89
+ });
90
+ };
91
+ return {
92
+ getState,
93
+ /** Adds signal to the local runtime error signal extraction accumulator. */
94
+ addSignal(sessionKey, signal, dedupeEnabled) {
95
+ if (!sessionKey.trim()) return;
96
+ const state = getState(sessionKey);
97
+ if (dedupeEnabled && state.signatureSet.has(signal.signatureHash)) return;
98
+ state.entries.push(signal);
99
+ state.signatureSet.add(signal.signatureHash);
100
+ state.updatedAt = Date.now();
101
+ if (state.entries.length > MAX_ENTRIES_PER_SESSION) {
102
+ const removed = state.entries.length - MAX_ENTRIES_PER_SESSION;
103
+ state.entries.splice(0, removed);
104
+ state.lastInjectedCount = Math.max(0, state.lastInjectedCount - removed);
105
+ state.signatureSet = new Set(state.entries.map((e) => e.signatureHash));
106
+ }
107
+ },
108
+ /** Drains the not-yet-injected error signals, advancing the injection marker so callers never re-receive them. */
109
+ getPendingSignals(sessionKey, maxEntries) {
110
+ if (maxEntries <= 0) return [];
111
+ const key = sessionKey.trim();
112
+ const state = sessions.get(key);
113
+ if (!state) return [];
114
+ state.updatedAt = Date.now();
115
+ touchSessionState(sessions, key, state);
116
+ const start = Math.min(Math.max(0, state.lastInjectedCount), state.entries.length);
117
+ const pending = state.entries.slice(start);
118
+ state.lastInjectedCount = state.entries.length;
119
+ return pending.length > maxEntries ? pending.slice(-maxEntries) : pending;
120
+ },
121
+ /** Removes session while preserving runtime error signal extraction invariants. */
122
+ clearSession(sessionKey) {
123
+ sessions.delete(sessionKey.trim());
124
+ },
125
+ /** Implements prune as the local runtime error signal extraction operation. */
126
+ prune(ttlMs, maxSessions) {
127
+ const now = Date.now();
128
+ for (const [key, state] of sessions.entries()) if (now - state.updatedAt > ttlMs) sessions.delete(key);
129
+ pruneOldestSessions(sessions, maxSessions);
130
+ }
131
+ };
132
+ }
133
+ //#endregion
134
+ export { sha256Hex as a, normalizeErrorSignature as i, createErrorSignalTracker as n, summarizeErrorText as o, extractTextFromToolResult as r, containsErrorSignal as t };
@@ -0,0 +1,49 @@
1
+ //#region src/engine/shared/errors.d.ts
2
+ /** @file errors.ts
3
+ * @purpose Defines typed plugin errors and stable codes for callers and CLI output.
4
+ * @boundary Runtime boundaries, CLI error mapping, and test assertions.
5
+ * @see memory-management-cli.ts, sno-station-mem-plugin-runtime.ts, memory-tool-registration.ts.
6
+ */
7
+ declare class SnoStationMemError extends Error {
8
+ readonly code: string;
9
+ /**
10
+ * Initializes typed error reporting collaborators while keeping runtime work in explicit
11
+ * methods.
12
+ */
13
+ constructor(code: string, message: string, cause?: unknown);
14
+ }
15
+ declare class StorageError extends SnoStationMemError {
16
+ /**
17
+ * Initializes typed error reporting collaborators while keeping runtime work in explicit
18
+ * methods.
19
+ */
20
+ constructor(message: string, cause?: unknown);
21
+ }
22
+ declare class EmbeddingError extends SnoStationMemError {
23
+ /**
24
+ * Initializes typed error reporting collaborators while keeping runtime work in explicit
25
+ * methods.
26
+ */
27
+ constructor(message: string, cause?: unknown);
28
+ }
29
+ declare class RetrievalError extends SnoStationMemError {
30
+ /**
31
+ * Carries the cause's own message in `message`, not only in `cause`.
32
+ *
33
+ * Retrieval wraps every failure as "Failed to retrieve memories", and every consumer that
34
+ * reports one — a tool result, an eval harness, an HTTP boundary — reports `message` and drops
35
+ * the Error. Measured 2026-09-04: a whole evaluation round scored nothing and the only trace
36
+ * on disk was fifteen identical copies of that sentence, so the reason had to be re-derived by
37
+ * reproducing the run. The cause stays attached as well; this only makes it survive the trip.
38
+ */
39
+ constructor(message: string, cause?: unknown);
40
+ }
41
+ declare class ConfigError extends SnoStationMemError {
42
+ /**
43
+ * Initializes typed error reporting collaborators while keeping runtime work in explicit
44
+ * methods.
45
+ */
46
+ constructor(message: string, cause?: unknown);
47
+ }
48
+ //#endregion
49
+ export { StorageError as a, SnoStationMemError as i, EmbeddingError as n, RetrievalError as r, ConfigError as t };
@@ -0,0 +1,32 @@
1
+ //#region src/engine/extraction/extraction-text-sanitizer.d.ts
2
+ /**
3
+ * Keeps a section's clause list inside `DEFAULT_MAX_CONTEXT_TOKENS`, the repository-wide
4
+ * per-record ceiling the store refuses to write past.
5
+ *
6
+ * A profile section is one row by design (`getByFactKey` is singular), and merging appends, so
7
+ * a long-lived section grows without bound — measured 2026-09-14 on a real persona store, five
8
+ * successive versions of `preferences.general` ran 516 → 533 → 538 → 540 → 576 tokens. Past the
9
+ * ceiling the embedder and the reranker both truncate silently, so the tail of such a section is
10
+ * already invisible to retrieval; dropping it here is the same loss made honest, and it keeps the
11
+ * merge writing instead of throwing.
12
+ *
13
+ * Oldest clauses go first: `mergeProfileSection` seeds the map with the stored clauses and then
14
+ * the incoming ones, so insertion order runs oldest to newest. The abstract is kept whatever
15
+ * happens — it is the section's only summary and it leads the indexed text.
16
+ */
17
+ declare function boundSectionContent(content: string, abstract: string, countRecordTokens: (text: string) => number): string;
18
+ /**
19
+ * Build the string that goes into the `text` column of `nodix_memories`.
20
+ *
21
+ * The FTS5 BM25 index is derived from this column only (see
22
+ * drizzle/0001_virtual_tables.sql). Concatenating abstract and content gives
23
+ * BM25 the same source surface used for vector embedding.
24
+ */
25
+ declare function buildIndexedText(abstract: string, content: string): string;
26
+ /**
27
+ * Strip platform envelope metadata injected by SnoStationMem channels before the
28
+ * conversation text reaches the extraction LLM.
29
+ */
30
+ declare function stripEnvelopeMetadata(text: string): string;
31
+ //#endregion
32
+ export { buildIndexedText as n, stripEnvelopeMetadata as r, boundSectionContent as t };
@@ -0,0 +1,13 @@
1
+ //#region src/engine/shared/i18n-text.d.ts
2
+ declare const HTML_TAG_PATTERN: RegExp;
3
+ /** Builds a Unicode-aware left/right token-boundary regex around a regex body. */
4
+ declare function unicodeBoundaryRegex(body: string, flags?: string): RegExp;
5
+ /** Matches CJK terms by substring and alphabetic terms by Unicode token boundaries. */
6
+ declare function boundaryAwareRegex(term: string, flags?: string): RegExp;
7
+ declare function stripHtmlTags(text: string): string;
8
+ declare function stripRoleLabelPrefix(text: string): string;
9
+ declare function normalizeForCompare(text: string): string;
10
+ declare function truncateGraphemes(text: string, maxGraphemes: number, suffix?: string): string;
11
+ declare function tokenizeForFts(rawQuery: string): string[];
12
+ //#endregion
13
+ export { stripRoleLabelPrefix as a, unicodeBoundaryRegex as c, stripHtmlTags as i, boundaryAwareRegex as n, tokenizeForFts as o, normalizeForCompare as r, truncateGraphemes as s, HTML_TAG_PATTERN as t };
@@ -0,0 +1,351 @@
1
+ import { p as LlmRoutingConfig, t as PluginConfig } from "./plugin-config-schema-C0UUbOmG.js";
2
+ import { g as MemoryEntry, h as MemoryCategory, t as AGGREGATION_OPERATIONS, x as RetrievalResult } from "./types-CWdhXLxr.js";
3
+ import { r as SnoStationMemMemorySearchResult } from "./provider-runtime-types-DFhtdA6d.js";
4
+ import { z } from "zod";
5
+ //#region src/contract/error.d.ts
6
+ declare const DEGRADED_REASONS: readonly ["sidecar-unreachable", "sidecar-unresponsive", "principal-mismatch", "store-mismatch", "no-agent-endpoint", "invalid-input", "timeout", "storage-unavailable", "engine-failed"];
7
+ type DegradedReason = (typeof DEGRADED_REASONS)[number];
8
+ declare class ContractError extends Error {
9
+ readonly reason: DegradedReason;
10
+ readonly degraded = true;
11
+ constructor(reason: DegradedReason, message?: string);
12
+ }
13
+ //#endregion
14
+ //#region src/contract/inputs.d.ts
15
+ type JsonValue = z.infer<ReturnType<typeof z.json>>;
16
+ type HostContext = {
17
+ observeSessionUuid?: string;
18
+ agentId?: string;
19
+ sessionKey?: string;
20
+ sessionId?: string;
21
+ sessionTimezone?: string;
22
+ workspace?: string;
23
+ sessionFile?: string;
24
+ boundary?: "new" | "reset" | "session-end";
25
+ systemCaller?: boolean;
26
+ at?: number;
27
+ };
28
+ /** Every call reads `project` plus the shared global memory; writes land on `project`. */
29
+ type ScopeCtx = {
30
+ principal: string;
31
+ project: string;
32
+ session: string;
33
+ host?: HostContext;
34
+ };
35
+ type Message = {
36
+ role: "system" | "developer" | "user" | "assistant" | "tool";
37
+ content: JsonValue;
38
+ at: number;
39
+ };
40
+ type Turn = {
41
+ turnId: string;
42
+ rewindEpoch: number;
43
+ messages: Message[];
44
+ };
45
+ type AgentModelRegistration = {
46
+ baseUrl: string;
47
+ credential: string;
48
+ model: string;
49
+ };
50
+ type Registration = {
51
+ skinId: string;
52
+ model?: AgentModelRegistration;
53
+ };
54
+ type InitRegistration = Registration;
55
+ type RecallOptions = {
56
+ corpus?: "memory" | "wiki" | "all" | "sessions";
57
+ source?: "auto" | "manual" | "native";
58
+ injectionPhase?: "session-start" | "prompt" | "first-prompt";
59
+ maxChars?: number;
60
+ limit?: number;
61
+ minScore?: number;
62
+ category?: MemoryCategory;
63
+ includeMetadata?: boolean;
64
+ includeHistory?: boolean;
65
+ includeRefused?: boolean;
66
+ tokenBudget?: number;
67
+ externalReference?: string;
68
+ externalReferenceVisibility?: "public" | "private";
69
+ aggregation?: {
70
+ operation: (typeof AGGREGATION_OPERATIONS)[number];
71
+ terms: string[];
72
+ };
73
+ };
74
+ type Mutation = {
75
+ op: "correct";
76
+ id: string;
77
+ content: string;
78
+ } | {
79
+ op: "store";
80
+ content: string;
81
+ category?: MemoryCategory;
82
+ importance?: number;
83
+ metadata?: Record<string, JsonValue>;
84
+ } | {
85
+ op: "forget";
86
+ id?: string;
87
+ query?: string;
88
+ suppressKey?: {
89
+ subject: string;
90
+ attribute: string;
91
+ };
92
+ suppressContent?: string;
93
+ minScore?: number;
94
+ maxDelete?: number;
95
+ confirm?: boolean;
96
+ } | {
97
+ op: "update";
98
+ id: string;
99
+ text?: string;
100
+ category?: MemoryCategory;
101
+ importance?: number;
102
+ metadata?: Record<string, JsonValue>;
103
+ timestamp?: number;
104
+ } | {
105
+ op: "clear";
106
+ confirm: boolean;
107
+ all?: boolean;
108
+ } | {
109
+ op: "resolveReflection";
110
+ memoryId?: string;
111
+ query?: string;
112
+ dryRun?: boolean;
113
+ note?: string;
114
+ limit?: number;
115
+ };
116
+ type Inspection = {
117
+ op: "storage";
118
+ } | {
119
+ op: "stats";
120
+ scope?: string;
121
+ } | {
122
+ op: "list";
123
+ category?: MemoryCategory;
124
+ limit?: number;
125
+ offset?: number;
126
+ importanceMin?: number;
127
+ } | {
128
+ op: "get";
129
+ id?: string;
130
+ path?: string;
131
+ from?: number;
132
+ lines?: number;
133
+ } | {
134
+ op: "listReflection";
135
+ limit?: number;
136
+ unresolvedOnly?: boolean;
137
+ };
138
+ type UsageSignal = {
139
+ event: "inject" | "used" | "rejected" | "tool-error";
140
+ memoryIds: string[];
141
+ toolName?: string;
142
+ text?: string;
143
+ error?: JsonValue;
144
+ result?: JsonValue;
145
+ at: number;
146
+ };
147
+ /** What the host agent did, for the skin's observe session: a prompt, a host model call, a tool call, or a permission decision. */
148
+ type HostDecision = "allow" | "deny";
149
+ type HostEvent = {
150
+ kind: "prompt";
151
+ prompt: string;
152
+ } | {
153
+ kind: "llm";
154
+ model: string;
155
+ promptTokens: number;
156
+ completionTokens: number;
157
+ cacheReadTokens?: number;
158
+ cacheWriteTokens?: number;
159
+ latencyMs: number;
160
+ } | {
161
+ kind: "tool";
162
+ toolName: string;
163
+ decision: HostDecision;
164
+ input: string;
165
+ output: string;
166
+ latencyMs: number;
167
+ } | {
168
+ kind: "permission";
169
+ permissionKind: string;
170
+ decision: HostDecision;
171
+ target: string;
172
+ };
173
+ interface ContractInputs {
174
+ init: {
175
+ scope: ScopeCtx;
176
+ registration: InitRegistration;
177
+ };
178
+ hostEvent: {
179
+ scope: ScopeCtx;
180
+ event: HostEvent;
181
+ };
182
+ getRecall: {
183
+ query: string;
184
+ scope: ScopeCtx;
185
+ options: RecallOptions;
186
+ };
187
+ capture: {
188
+ turn: Turn;
189
+ scope: ScopeCtx;
190
+ };
191
+ mutate: {
192
+ op: Mutation;
193
+ scope: ScopeCtx;
194
+ };
195
+ inspect: {
196
+ op: Inspection;
197
+ scope: ScopeCtx;
198
+ };
199
+ recordUsage: {
200
+ recallId: string;
201
+ signal: UsageSignal;
202
+ scope: ScopeCtx;
203
+ };
204
+ onSessionEnd: {
205
+ messages: Message[];
206
+ scope: ScopeCtx;
207
+ };
208
+ staticBlock: {
209
+ scope: ScopeCtx;
210
+ };
211
+ }
212
+ declare const scopeSchema: z.ZodType<ScopeCtx, unknown>;
213
+ declare const messageSchema: z.ZodType<Message, unknown>;
214
+ declare const turnSchema: z.ZodType<Turn, unknown>;
215
+ declare const registrationSchema: z.ZodType<Registration, unknown>;
216
+ declare const initRegistrationSchema: z.ZodType<InitRegistration, unknown>;
217
+ declare const recallOptionsSchema: z.ZodType<RecallOptions, unknown>;
218
+ declare const mutationSchema: z.ZodType<Mutation, unknown>;
219
+ declare const inspectionSchema: z.ZodType<Inspection, unknown>;
220
+ declare const usageSignalSchema: z.ZodType<UsageSignal, unknown>;
221
+ declare const hostEventSchema: z.ZodType<HostEvent, unknown>;
222
+ declare const inputSchemas: { [K in keyof ContractInputs]: z.ZodType<ContractInputs[K], unknown>; };
223
+ //#endregion
224
+ //#region src/contract/results.d.ts
225
+ type Result<T> = T & ({
226
+ degraded: false;
227
+ } | {
228
+ degraded: true;
229
+ reason: DegradedReason;
230
+ error?: string;
231
+ });
232
+ type ToolResponse = {
233
+ isError?: boolean;
234
+ content: Array<{
235
+ type: "text";
236
+ text: string;
237
+ }>;
238
+ details: Record<string, JsonValue>;
239
+ };
240
+ type InspectData = {
241
+ op: "storage";
242
+ dimension: number | null;
243
+ failed: boolean;
244
+ reason?: string;
245
+ } | {
246
+ op: "stats";
247
+ total: number;
248
+ projectBreakdown: Record<string, number>;
249
+ categoryBreakdown: Record<string, number>;
250
+ } | {
251
+ op: "list" | "listReflection";
252
+ project: string;
253
+ entries: MemoryEntry[];
254
+ } | {
255
+ op: "get";
256
+ entry: MemoryEntry | null;
257
+ file?: {
258
+ text: string;
259
+ path: string;
260
+ truncated?: boolean;
261
+ from?: number;
262
+ lines?: number;
263
+ nextFrom?: number;
264
+ };
265
+ };
266
+ interface ContractOutputs {
267
+ init: Result<{
268
+ principal: string;
269
+ skinId: string;
270
+ }>;
271
+ hostEvent: Result<{
272
+ accepted: boolean;
273
+ }>;
274
+ getRecall: Result<{
275
+ recallId: string;
276
+ contextText: string;
277
+ hits?: RetrievalResult[];
278
+ memoryIds?: string[];
279
+ toolResult?: ToolResponse;
280
+ nativeHits?: SnoStationMemMemorySearchResult[];
281
+ unavailable?: string;
282
+ }>;
283
+ capture: Result<{
284
+ turnId: string;
285
+ committed: boolean;
286
+ accepted?: boolean;
287
+ skipped?: true;
288
+ partial?: true;
289
+ }>;
290
+ mutate: Result<{
291
+ result: ToolResponse;
292
+ }>;
293
+ inspect: Result<{
294
+ result: InspectData;
295
+ }>;
296
+ recordUsage: Result<{
297
+ accepted: boolean;
298
+ }>;
299
+ onSessionEnd: Result<{
300
+ completed: boolean;
301
+ }>;
302
+ staticBlock: Result<{
303
+ contextText: string;
304
+ }>;
305
+ }
306
+ declare const memoryEntrySchema: z.ZodType<MemoryEntry, unknown>;
307
+ declare const retrievalResultSchema: z.ZodType<RetrievalResult, unknown>;
308
+ declare const toolResponseSchema: z.ZodType<ToolResponse, unknown>;
309
+ declare const inspectDataSchema: z.ZodType<InspectData, unknown>;
310
+ declare const outputSchemas: { [K in keyof ContractOutputs]: z.ZodType<ContractOutputs[K], unknown>; };
311
+ //#endregion
312
+ //#region src/contract/settings.d.ts
313
+ type EngineSettings = Omit<PluginConfig, keyof LlmRoutingConfig | "remEnhanced">;
314
+ declare const engineSettingsSchema: z.ZodType<EngineSettings, unknown>;
315
+ //#endregion
316
+ //#region src/contract/routes.d.ts
317
+ declare const MEMORY_ROUTES: Readonly<Record<ContractMethod, {
318
+ path: string;
319
+ timeoutMs: number;
320
+ }>>;
321
+ declare const MEMORY_BODY_LIMIT_BYTES: number;
322
+ declare const MEMORY_SKIN_HEADER = "x-sno-station-mem-skin";
323
+ declare const REM_SIDECAR_TOKEN_HEADER = "x-sidecar-token";
324
+ declare const MEMORY_HEALTH_TIMEOUT_MS = 5e3;
325
+ declare const MEMORY_START_TIMEOUT_MS = 3e4;
326
+ declare function memoryMethod(pathname: string): ContractMethod | undefined;
327
+ declare const MEMORY_ERROR_STATUS: Readonly<Record<DegradedReason, number>>;
328
+ declare const MEMORY_RECONNECT_INTERVAL_MS = 1e3;
329
+ declare const MEMORY_DEFAULT_SKIN_ID = "default";
330
+ //#endregion
331
+ //#region src/contract/index.d.ts
332
+ type ContractMethod = keyof ContractInputs;
333
+ interface MemoryContract {
334
+ init(scope: ScopeCtx, registration: Registration): Promise<ContractOutputs["init"]>;
335
+ hostEvent(event: HostEvent, scope: ScopeCtx): Promise<ContractOutputs["hostEvent"]>;
336
+ getRecall(query: string, scope: ScopeCtx, options: RecallOptions): Promise<ContractOutputs["getRecall"]>;
337
+ capture(turn: Turn, scope: ScopeCtx): Promise<ContractOutputs["capture"]>;
338
+ mutate(op: Mutation, scope: ScopeCtx): Promise<ContractOutputs["mutate"]>;
339
+ inspect(op: Inspection, scope: ScopeCtx): Promise<ContractOutputs["inspect"]>;
340
+ recordUsage(recallId: string, signal: UsageSignal, scope: ScopeCtx): Promise<ContractOutputs["recordUsage"]>;
341
+ onSessionEnd(messages: Message[], scope: ScopeCtx): Promise<ContractOutputs["onSessionEnd"]>;
342
+ staticBlock(scope: ScopeCtx): Promise<ContractOutputs["staticBlock"]>;
343
+ }
344
+ declare function parseInput<K extends ContractMethod>(method: K, input: unknown): ContractInputs[K];
345
+ declare function parseOutput<K extends ContractMethod>(method: K, output: unknown): ContractOutputs[K];
346
+ declare function contractJsonSchemas(method: ContractMethod): {
347
+ input: z.core.JSONSchema.JSONSchema;
348
+ output: z.core.JSONSchema.JSONSchema;
349
+ };
350
+ //#endregion
351
+ export { ContractError as $, HostDecision as A, Turn as B, memoryEntrySchema as C, AgentModelRegistration as D, toolResponseSchema as E, Message as F, inspectionSchema as G, hostEventSchema as H, Mutation as I, recallOptionsSchema as J, messageSchema as K, RecallOptions as L, InitRegistration as M, Inspection as N, ContractInputs as O, JsonValue as P, usageSignalSchema as Q, Registration as R, inspectDataSchema as S, retrievalResultSchema as T, initRegistrationSchema as U, UsageSignal as V, inputSchemas as W, scopeSchema as X, registrationSchema as Y, turnSchema as Z, engineSettingsSchema as _, parseOutput as a, Result as b, MEMORY_ERROR_STATUS as c, MEMORY_ROUTES as d, DEGRADED_REASONS as et, MEMORY_SKIN_HEADER as f, EngineSettings as g, memoryMethod as h, parseInput as i, HostEvent as j, HostContext as k, MEMORY_HEALTH_TIMEOUT_MS as l, REM_SIDECAR_TOKEN_HEADER as m, MemoryContract as n, MEMORY_BODY_LIMIT_BYTES as o, MEMORY_START_TIMEOUT_MS as p, mutationSchema as q, contractJsonSchemas as r, MEMORY_DEFAULT_SKIN_ID as s, ContractMethod as t, DegradedReason as tt, MEMORY_RECONNECT_INTERVAL_MS as u, ContractOutputs as v, outputSchemas as w, ToolResponse as x, InspectData as y, ScopeCtx as z };