@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,650 @@
1
+ import { c as RemConfig, d as RemEnableGateArtifact, g as RemOperationType, o as RemBuiltOperationType, u as RemDatabaseLike } from "./types-pVomjzqR.js";
2
+ import { g as JournalEntry } from "./classifier-DnbbtwTS.js";
3
+ //#region src/engine/rem/adapter-a-conflict-adjudicator.d.ts
4
+ type AdapterAVerdict = "replacement" | "keep" | "uncertain";
5
+ interface AdapterAMemoryView {
6
+ text: string;
7
+ subject?: string | null;
8
+ kind: "profile" | "episodic" | "state";
9
+ validFrom: string;
10
+ assertedAt: string;
11
+ contentHash: string;
12
+ }
13
+ interface AdapterAMemoryRecord {
14
+ text: string;
15
+ subject?: string | null;
16
+ kind: string;
17
+ validFrom: number;
18
+ assertedAt: number;
19
+ contentHash: string;
20
+ }
21
+ interface OrderedAdapterAPair {
22
+ older: AdapterAMemoryView;
23
+ newer: AdapterAMemoryView;
24
+ candidateRole: "older" | "newer";
25
+ }
26
+ declare function adapterAViewFromRecord(record: AdapterAMemoryRecord): AdapterAMemoryView;
27
+ declare function prospectiveProfileView(text: string, at: number): AdapterAMemoryView;
28
+ declare function orderAdapterAPair(existing: AdapterAMemoryView, candidate: AdapterAMemoryView): OrderedAdapterAPair;
29
+ declare function renderAdapterAPrompt(older: AdapterAMemoryView, newer: AdapterAMemoryView): string;
30
+ declare function renderAdapterAChatPrompt(pair: Pick<OrderedAdapterAPair, "older" | "newer">): string;
31
+ declare function parseAdapterAChatVerdict(raw: string): AdapterAVerdict;
32
+ /**
33
+ * Whether a reply is a verdict at all: a bare verdict token, or a JSON object carrying one, read
34
+ * the way `parseAdapterAChatVerdict` reads it (a fenced object counts).
35
+ */
36
+ declare function isAdapterAVerdictReply(value: string): boolean;
37
+ declare function extractJsonFromResponse(text: string): string | null;
38
+ //#endregion
39
+ //#region src/engine/rem/operational-config.d.ts
40
+ interface RemOperationalConfiguration {
41
+ profileId: string;
42
+ operations: {
43
+ "rem-update": boolean;
44
+ "rem-replace": boolean;
45
+ "rem-distill": boolean;
46
+ "rem-retire": boolean;
47
+ };
48
+ budgets: {
49
+ maxPairs: number;
50
+ };
51
+ retrieval: {
52
+ neighborLimit: number;
53
+ similarityThreshold: number;
54
+ };
55
+ coverage: {
56
+ accuracyFloor: number | null;
57
+ };
58
+ retries: {
59
+ liveContentionRetries: number;
60
+ };
61
+ facetPolicy: {
62
+ aggregationGrammar: string;
63
+ historyGrammar: string;
64
+ };
65
+ calibration: {
66
+ minimumPublishableScoreEffect: number | null;
67
+ minimumTargetCount: number | null;
68
+ minimumTargetPercent: number | null;
69
+ };
70
+ enableGateDigests: {
71
+ "p5-production-config": string;
72
+ "p6-monthly-non-regression": string;
73
+ "p7-detector-gate-verdict": string;
74
+ "population-routing": string;
75
+ "rem-update": string;
76
+ "rem-replace": string;
77
+ "p5-immutable-profile"?: string | undefined;
78
+ };
79
+ }
80
+ type RemConfigurationDecision = {
81
+ decision: "allow";
82
+ reasonCode: null;
83
+ } | {
84
+ decision: "refuse";
85
+ reasonCode: string;
86
+ };
87
+ declare function parseRemOperationalConfiguration(input: unknown): RemOperationalConfiguration;
88
+ declare function canonicalizeRemConfiguration(input: RemOperationalConfiguration): string;
89
+ declare function deriveRemConfigurationSha256(input: RemOperationalConfiguration): string;
90
+ declare function validateRemEnableGateDigestKeys(input: {
91
+ configuration: RemOperationalConfiguration;
92
+ p5ReadbackSource: "wrapper" | "immutable-profile";
93
+ }): RemConfigurationDecision;
94
+ declare function requireRemCoverageAccuracyFloor(input: {
95
+ configuration: RemOperationalConfiguration;
96
+ }): RemConfigurationDecision;
97
+ declare function requireRemOwnerDecisions(input: {
98
+ configuration: RemOperationalConfiguration;
99
+ }): RemConfigurationDecision;
100
+ declare function declareRemCalibrationThreshold(input: {
101
+ configuration: RemOperationalConfiguration;
102
+ derivationStatement?: string;
103
+ }): RemConfigurationDecision;
104
+ declare function validateRemGrammarChange(input: {
105
+ beforeConfigurationSha256: string;
106
+ before: RemOperationalConfiguration;
107
+ beforeCorpusSha256: string;
108
+ afterConfigurationSha256: string;
109
+ after: RemOperationalConfiguration;
110
+ abArtifact?: {
111
+ beforeConfigurationSha256: string;
112
+ afterConfigurationSha256: string;
113
+ corpusSha256: string;
114
+ metricDefinitions: readonly string[];
115
+ result: "pass" | "fail";
116
+ };
117
+ }): RemConfigurationDecision;
118
+ //#endregion
119
+ //#region src/engine/rem/census.d.ts
120
+ type Decision = {
121
+ decision: "allow";
122
+ reasonCode: null;
123
+ } | {
124
+ decision: "refuse";
125
+ reasonCode: string;
126
+ };
127
+ declare function validateRemProspectiveIdentity(input: {
128
+ writeIdentitySha256: string;
129
+ candidateSetSha256: string;
130
+ }): Decision;
131
+ declare function deriveRemWriteIdentity(input: {
132
+ rowId: string;
133
+ text: string;
134
+ contentHash: string;
135
+ timestamp: number;
136
+ }): string;
137
+ declare function deriveRemReplayArtifactIdentity(input: {
138
+ corpusPath: string;
139
+ embedderPath: string;
140
+ toolPath: string;
141
+ configuration: RemOperationalConfiguration;
142
+ callerLabel?: string;
143
+ }): {
144
+ replayIdentitySha256: string;
145
+ corpusSha256: string;
146
+ embedderSha256: string;
147
+ toolSha256: string;
148
+ configurationSha256: string;
149
+ };
150
+ declare function validateRemReplayIdentityTuple(input: {
151
+ corpusSha256: string;
152
+ embedderSha256: string;
153
+ configurationSha256: string;
154
+ }): Decision;
155
+ declare function classifyRemCensusLabel(input: {
156
+ label: string;
157
+ observations: Record<string, unknown>;
158
+ }): string;
159
+ declare function classifyAllRemCensusLabels(input: {
160
+ reachability: Record<string, unknown>;
161
+ contradiction: Record<string, unknown>;
162
+ coverageEligibility: Record<string, unknown>;
163
+ }): Record<string, string>;
164
+ declare function validateRemCensusOracleProvenance(input: {
165
+ authoredBy?: string;
166
+ }): Decision;
167
+ declare function validateRemCensusLabelTuple(input: {
168
+ reachability: string;
169
+ contradiction: string;
170
+ coverageEligibility: string;
171
+ }): Decision;
172
+ declare function readRetainedRemCensusArtifact(input: {
173
+ artifactPath: string;
174
+ generationId: string;
175
+ }): Decision & {
176
+ artifactSha256?: string;
177
+ };
178
+ declare function produceRemCensusArtifact(input: {
179
+ producer: string;
180
+ outputPath: string;
181
+ }): void;
182
+ declare function validateRemCensusRouteCoverage(input: readonly {
183
+ route: string;
184
+ }[]): Decision;
185
+ declare function journalRemGenerationTransition(input: {
186
+ database: RemDatabaseLike;
187
+ outgoingGenerationId: string;
188
+ incomingGenerationId: string;
189
+ }): Decision;
190
+ interface BatchEvent {
191
+ calls?: number;
192
+ tokens?: number;
193
+ verdict?: string;
194
+ close?: number;
195
+ refusal?: string | null;
196
+ }
197
+ declare function summarizeRemBatchEvents(input: {
198
+ database: RemDatabaseLike;
199
+ batchId: string;
200
+ generationId?: string;
201
+ events: readonly BatchEvent[];
202
+ }): void;
203
+ declare function recordRemObservedVerdict(input: {
204
+ database: RemDatabaseLike;
205
+ pairId: string;
206
+ observed: string;
207
+ }): void;
208
+ declare function recordRemCandidateCapCounts(input: {
209
+ database: RemDatabaseLike;
210
+ generationId: string;
211
+ total: number;
212
+ cap: number;
213
+ }): void;
214
+ declare function reportRemSimilarityCalibration(input: {
215
+ retainedArtifactPath: string;
216
+ emittedPairIds: readonly string[];
217
+ targetPairIds: readonly string[];
218
+ rankedPairIds: readonly string[];
219
+ modelCallBudget: number;
220
+ }): Record<string, unknown>;
221
+ declare function validateRemCalibrationCrossCheck(input: {
222
+ independent: unknown;
223
+ }): Decision;
224
+ //#endregion
225
+ //#region src/engine/rem/update-locale-resources.d.ts
226
+ declare const REM_UPDATE_LOCALES: readonly ["en", "de", "es", "fr", "zh", "zh-Hant", "ja", "ko", "ru"];
227
+ type RemUpdateLocale = (typeof REM_UPDATE_LOCALES)[number];
228
+ interface RemUpdateLocaleResource {
229
+ valuePrefix: string;
230
+ listPrefix: string;
231
+ listSeparator: string;
232
+ spanSeparator: string;
233
+ anchorMode: "capitalized-sequence" | "explicit-script";
234
+ }
235
+ declare function getRemUpdateLocaleResource(locale: RemUpdateLocale): RemUpdateLocaleResource;
236
+ //#endregion
237
+ //#region src/engine/rem/update-rewrite.d.ts
238
+ type RemUpdateTier = "list" | "prose";
239
+ interface RemUpdateSpan {
240
+ start: number;
241
+ end: number;
242
+ }
243
+ interface RemUpdateReferenceUnit extends RemUpdateSpan {
244
+ id: string;
245
+ atomId: string;
246
+ kind: "clause" | "anchor" | "structured-member" | "structured-field";
247
+ value: string;
248
+ text: string;
249
+ sourceTextSha256: string;
250
+ startByte: number;
251
+ endByte: number;
252
+ }
253
+ declare function composeRemNegatedCurrent(input: {
254
+ topic: string;
255
+ priorRowId: string;
256
+ retractionText: string;
257
+ }): {
258
+ shape: "negated-current";
259
+ topic: string;
260
+ assertions: Array<{
261
+ polarity: "negative";
262
+ provenance: string;
263
+ }>;
264
+ generatedRowId: string;
265
+ consumedRowIds: string[];
266
+ };
267
+ declare function enumerateRemUpdateMembers(source: string): string[];
268
+ declare function buildRemUpdateReferenceSet(input: {
269
+ source: string;
270
+ tier: RemUpdateTier;
271
+ locale: RemUpdateLocale;
272
+ enumeratedMembers?: readonly string[];
273
+ }): RemUpdateReferenceUnit[];
274
+ //#endregion
275
+ //#region src/engine/rem/coverage-contract.d.ts
276
+ type RemCoverageAtom = Pick<RemUpdateReferenceUnit, "atomId" | "kind" | "sourceTextSha256" | "startByte" | "endByte" | "text">;
277
+ type RemCoverageBuildResult = {
278
+ outcome: "accept";
279
+ atoms: RemCoverageAtom[];
280
+ } | {
281
+ outcome: "refuse";
282
+ reason: "empty_reference_set" | "unsegmentable_reference_set";
283
+ };
284
+ declare function buildRemCoverageAtoms(input: {
285
+ source: string;
286
+ format: "structured" | "prose" | "flattened-clauses";
287
+ }): RemCoverageBuildResult;
288
+ interface RemClauseCoverageGateResult {
289
+ decision: "allow" | "refuse";
290
+ reason: string | null;
291
+ arms: Record<string, "pass" | "fail" | "owner-unset">;
292
+ }
293
+ declare function validateRemClauseCoverageArtifacts(input: {
294
+ accuracyFloor: number | null;
295
+ measuredAccuracy: number | null;
296
+ expectedGoldSetSha256: string;
297
+ measuredGoldSetSha256: string;
298
+ confidenceSatisfied: boolean;
299
+ declarationSequence: number;
300
+ firstScoredSequence: number;
301
+ measurementPresent: boolean;
302
+ artifactDigestMatches: boolean;
303
+ }): Promise<RemClauseCoverageGateResult>;
304
+ //#endregion
305
+ //#region src/engine/rem/clause-splitter.d.ts
306
+ interface RemExactClause {
307
+ value: string;
308
+ start: number;
309
+ end: number;
310
+ separatorAfter: string;
311
+ }
312
+ /**
313
+ * Produces the fixed, lossless clause list used by REM judgments. The text itself
314
+ * remains the authority: clause values are exact source slices and separators are retained.
315
+ */
316
+ declare function splitExactClauses(text: string): RemExactClause[];
317
+ //#endregion
318
+ //#region src/engine/rem/enable-gate.d.ts
319
+ declare class RemEnableGateError extends Error {
320
+ readonly code: string;
321
+ constructor(code: string);
322
+ }
323
+ interface LoadRemEnableGateInput {
324
+ stateDir: string;
325
+ jobType: RemBuiltOperationType;
326
+ implementationVersion: string;
327
+ corpusSha256: string;
328
+ baselineSha256: string;
329
+ artifactSha256: string;
330
+ now: string;
331
+ }
332
+ declare const REM_ENABLE_GATE_BINDINGS: {
333
+ readonly implementationVersion: "edge-rem-wave-20260806";
334
+ readonly corpusSha256: "67d1acbe4451cccc0199a9b670b2b8df17b79ba7c3d6d431b4e0e303d73869e2";
335
+ readonly baselineSha256: "87413c08883fddc81d479fe6dcb9d7a537ee156d2fb73716ab0603860caa64c1";
336
+ };
337
+ declare function loadRemEnableGate(input: LoadRemEnableGateInput): RemEnableGateArtifact;
338
+ //#endregion
339
+ //#region src/engine/rem/entry-governance.d.ts
340
+ type RemEntryDecision = {
341
+ decision: "allow";
342
+ reasonCode: null;
343
+ } | {
344
+ decision: "refuse";
345
+ reasonCode: string;
346
+ };
347
+ declare function recordNonRefusePairDecision(input: {
348
+ database: RemDatabaseLike;
349
+ attemptIdentity: string;
350
+ waveId: string;
351
+ operation: "rem-replace" | "rem-update";
352
+ decision: "allow" | "refuse";
353
+ source: "arbitration" | "coverage";
354
+ reason: string | null;
355
+ throughRefusePair: boolean;
356
+ }): Promise<void>;
357
+ declare function validateRemSubstantiveWaveEffects(input: {
358
+ database: RemDatabaseLike;
359
+ waveId: string;
360
+ }): RemEntryDecision;
361
+ declare function defineRemSafetyGuard<TInput, TResult>(_metadata: {
362
+ guardId: string;
363
+ }, guard: (input: TInput) => TResult): (input: TInput) => TResult;
364
+ declare function validateRemGuardCensus(input: {
365
+ manifestPath: string;
366
+ requiredGuardsPath: string;
367
+ sourceRoots: readonly string[];
368
+ productionRoots: readonly string[];
369
+ }): RemEntryDecision;
370
+ //#endregion
371
+ //#region src/engine/rem/facet-policy.d.ts
372
+ /**
373
+ * The facet a row carries — whether it is the current value or one that has been superseded.
374
+ *
375
+ * There is deliberately NO function here that reads the user's question and picks one. Whether a
376
+ * question needs a retired value is a question of meaning, and this repo's law is that keyword
377
+ * rules filter while models score. `resolveRemFacetPolicy` used to answer it from three regexes:
378
+ * measured 2026-08-19, that sent 372 of 540 real benchmark questions down the current-only path,
379
+ * and 6 of 8 plausible "what did I used to..." probes had their history hidden because only the
380
+ * literal phrase "used to" was listed. The option survives on `SearchOptions` for a caller that
381
+ * knows what it wants; nothing derives it from query text.
382
+ */
383
+ type RemFacetPolicy = "current-only" | "include-history";
384
+ //#endregion
385
+ //#region src/engine/rem/facet-persistence.d.ts
386
+ interface RemCurrentFacetChunk {
387
+ chunkId: string;
388
+ chunkIndex: number;
389
+ chunkText: string;
390
+ densePayload: string;
391
+ summary?: string | undefined;
392
+ startOffset: number;
393
+ endOffset: number;
394
+ tokenCount: number;
395
+ contentType: "conversation" | "prose" | "structured";
396
+ chunkingVersion: string;
397
+ embedderProvider: string;
398
+ embedderModel: string;
399
+ embedderDim: number;
400
+ vectorBytes: Uint8Array;
401
+ }
402
+ declare function writeRemTwoFacetTransaction(input: {
403
+ database: RemDatabaseLike;
404
+ memoryId: string;
405
+ current: string;
406
+ history: string;
407
+ currentChunks: readonly RemCurrentFacetChunk[];
408
+ timestamp?: string;
409
+ metadata?: string;
410
+ contentHash?: string;
411
+ reason?: string;
412
+ jobId: string;
413
+ jobType: RemOperationType;
414
+ /**
415
+ * The verified-write attempt this transaction belongs to. Supplied by the mutation executor,
416
+ * never by a caller, exactly as `jobId` and `jobType` are. The post-write content hash is
417
+ * stamped onto that attempt row INSIDE this transaction so a crash between commit and the
418
+ * attempt being closed still leaves the two agreeing; recovery then reads the stamp instead of
419
+ * comparing a text hash against a content hash, which can never match once REM update metadata
420
+ * is written.
421
+ */
422
+ attemptId?: string;
423
+ }): Promise<{
424
+ contentHash: string;
425
+ recoveryHandle: string;
426
+ }>;
427
+ //#endregion
428
+ //#region src/engine/rem/replace-clause-verdict.d.ts
429
+ type ReplaceClauseVerdict = "replacement" | "keep" | "uncertain";
430
+ interface ReplaceEligibleClause {
431
+ origin: "older" | "newer";
432
+ value: string;
433
+ start: number;
434
+ end: number;
435
+ separatorAfter: string;
436
+ }
437
+ interface UsableReplaceClauseVerdict {
438
+ parseState: "valid" | "invalid";
439
+ verdict: ReplaceClauseVerdict;
440
+ retiringClauseIndices: number[];
441
+ }
442
+ type ReplaceArbitration = {
443
+ outcome: "proceed";
444
+ retiringClauseIndices: number[];
445
+ } | {
446
+ outcome: "no-action";
447
+ } | {
448
+ outcome: "refused";
449
+ reason: "clause_keep" | "clause_parse_failed" | "clause_uncertain" | "empty_retiring_set";
450
+ };
451
+ declare function buildReplaceEligibleClauses(older: string, newer: string): ReplaceEligibleClause[];
452
+ declare function renderReplaceClauseVerdictPrompt(clauses: readonly ReplaceEligibleClause[]): string;
453
+ declare function parseReplaceClauseVerdict(response: unknown, clauses: readonly ReplaceEligibleClause[]): UsableReplaceClauseVerdict;
454
+ declare function arbitrateReplaceVerdicts(pairVerdict: ReplaceClauseVerdict, clauseVerdict: UsableReplaceClauseVerdict): ReplaceArbitration;
455
+ //#endregion
456
+ //#region src/engine/rem/replace-coverage.d.ts
457
+ type ReplaceCoverageClass = "current-fact" | "retired-fact" | "event-fact";
458
+ type ReplaceCoverageStatus = "covered" | "uncovered" | "undetermined";
459
+ interface ReplaceCoverageAtom {
460
+ clauseIndex: number;
461
+ class: ReplaceCoverageClass;
462
+ status: ReplaceCoverageStatus;
463
+ }
464
+ interface ReplaceCoverageObservation {
465
+ code: string;
466
+ detail?: string;
467
+ }
468
+ type ReplaceCoverageDecision = {
469
+ decision: "allow";
470
+ atoms: ReplaceCoverageAtom[];
471
+ observations?: ReplaceCoverageObservation[];
472
+ uncertifiedClauses?: string[];
473
+ } | {
474
+ decision: "refuse";
475
+ reason: string;
476
+ detail?: string;
477
+ atoms: ReplaceCoverageAtom[];
478
+ observations?: ReplaceCoverageObservation[];
479
+ };
480
+ /** Why the surviving row would stop answering a counting question once the close lands. */
481
+ type RemReplaceCarrierFault = "carrier_missing" | "carrier_inactive" | "carrier_superseded" | "carrier_not_on_current_facet" | "carrier_out_of_aggregation_scope";
482
+ type RemReplaceCarrierState = {
483
+ retained: true;
484
+ } | {
485
+ retained: false;
486
+ fault: RemReplaceCarrierFault;
487
+ };
488
+ /**
489
+ * 40-rem-replace-prd.md:566 defines retrievable as "still returned by the paths that ANSWER a
490
+ * counting question" AFTER the close. Whether the surviving row still carries the event is
491
+ * already decided upstream, by the coverage model that is shown both texts and whose per-atom
492
+ * `status` this file gates on. What only the store knows is whether that carrier itself is still
493
+ * on the aggregation path once this close lands — a row already parked, already closed by an
494
+ * earlier pair in the same batch, demoted to the history facet, or filtered out by the
495
+ * aggregation query's own scope and category predicates.
496
+ */
497
+ interface RemReplaceCarrierPort {
498
+ carrierState(): Promise<RemReplaceCarrierState>;
499
+ }
500
+ declare function renderReplaceCoveragePrompt(input: {
501
+ older: string;
502
+ newer: string;
503
+ retiringClauseIndices: readonly number[];
504
+ }): string;
505
+ declare function parseReplaceCoverageAtoms(value: unknown): ReplaceCoverageAtom[] | undefined;
506
+ declare function decideReplaceCoverage(input: {
507
+ older: string;
508
+ newer: string;
509
+ retiringClauseIndices: readonly number[];
510
+ atoms: readonly ReplaceCoverageAtom[];
511
+ carrier?: RemReplaceCarrierPort;
512
+ rawCandidateEvidence?: string;
513
+ }): ReplaceCoverageDecision | Promise<ReplaceCoverageDecision>;
514
+ //#endregion
515
+ //#region src/engine/rem/row-hash.d.ts
516
+ /**
517
+ * The one definition of a REM whole-row hash.
518
+ *
519
+ * A recovery record stores `expected_post_hash` before the write; the verified-write guard
520
+ * recomputes it after the write and refuses the mutation when the two disagree. Those two
521
+ * computations lived in different packages and drifted: this package hashed `SELECT *` while
522
+ * `rem-sqlite-adapter` hashed a projected row, so adding the `timezone` column to the projection
523
+ * made every text-version write refuse AFTER its transaction had already committed. One function,
524
+ * imported by both sides, is what stops that happening again.
525
+ *
526
+ * `REM_ROW_HASH_FIELDS` IS the hash — reordering it, adding to it, or removing from it changes
527
+ * every value this function produces. That is why it is versioned rather than edited in place.
528
+ */
529
+ declare const REM_ROW_HASH_FIELDS: readonly ["id", "text", "category", "project_id", "importance", "timestamp", "timezone", "metadata", "content_hash", "fact_id", "derived_from", "consolidation_epoch_id", "confidence_source", "lane", "raw_candidate_json", "disposition_reason", "dispositioned_at_ms"];
530
+ /**
531
+ * Stamped on every recovery record this build writes. Version 1 means "written before the field
532
+ * list was pinned", and a version-1 hash cannot be reproduced — the two producers of that era
533
+ * covered different columns. Readers must branch on the stored version rather than assume.
534
+ */
535
+ declare const REM_ROW_HASH_VERSION = 2;
536
+ /** Version 1 records predate the pinned field list and carry a hash nothing can recompute. */
537
+ declare const REM_ROW_HASH_VERSION_LEGACY = 1;
538
+ declare function hashRemMemoryRow(row: Record<string, unknown>): string;
539
+ //#endregion
540
+ //#region src/engine/rem/rem-update-judgment.d.ts
541
+ type RemUpdateJudgmentRefusalReason = "model_response_invalid" | "no_retired_fact" | "no_surviving_remainder";
542
+ type RemUpdateJudgmentDecision = {
543
+ outcome: "verify";
544
+ proposedCurrent: string;
545
+ retiredValues: string[];
546
+ } | {
547
+ outcome: "refuse";
548
+ reason: RemUpdateJudgmentRefusalReason;
549
+ };
550
+ type RemUpdateVerificationDecision = {
551
+ outcome: "apply";
552
+ } | {
553
+ outcome: "refuse";
554
+ reason: "model_response_invalid" | "proposal_not_faithful" | "retired_value_survives" | "surviving_fact_lost";
555
+ };
556
+ type RemClauseCarryDecision = {
557
+ outcome: "decided";
558
+ alreadyCurrent: boolean[];
559
+ } | {
560
+ outcome: "refuse";
561
+ reason: "model_response_invalid";
562
+ };
563
+ declare function renderRemUpdateJudgmentPrompt(input: {
564
+ judgmentSkill: string;
565
+ source: string;
566
+ enumeratedMembers?: readonly string[];
567
+ supersedingText?: string;
568
+ }): string;
569
+ declare function renderRemUpdateRelationJudgmentPrompt(input: {
570
+ judgmentSkill: string;
571
+ rowText: string;
572
+ predecessorTexts: readonly string[];
573
+ successorTexts: readonly string[];
574
+ }): string;
575
+ declare function renderRemRetirementTargetPrompt(input: {
576
+ judgmentSkill: string;
577
+ nominatedRow: {
578
+ id: string;
579
+ text: string;
580
+ };
581
+ candidateRows: ReadonlyArray<{
582
+ id: string;
583
+ text: string;
584
+ }>;
585
+ }): string;
586
+ declare function renderRemUpdateVerificationPrompt(input: {
587
+ judgmentSkill: string;
588
+ source: string;
589
+ proposedCurrent: string;
590
+ retiredValues: readonly string[];
591
+ retractionText?: string;
592
+ supersedingText?: string;
593
+ }): string;
594
+ declare function renderRemClauseCarryPrompt(input: {
595
+ judgmentSkill: string;
596
+ survivorText: string;
597
+ clauses: readonly string[];
598
+ }): string;
599
+ declare function decideRemUpdateRelationFromReply(reply: string): {
600
+ outcome: "allow";
601
+ supersedesEverything: boolean;
602
+ } | {
603
+ outcome: "refuse";
604
+ reason: "no_retired_fact" | "model_response_invalid";
605
+ };
606
+ declare function decideRemRetirementTargetFromReply(reply: string, offeredRowIds: ReadonlySet<string>): {
607
+ outcome: "allow";
608
+ targetRowIds: string[];
609
+ } | {
610
+ outcome: "refuse";
611
+ reason: "model_response_invalid" | "row_id_not_offered";
612
+ };
613
+ declare function decideRemUpdateFromReply(reply: string): RemUpdateJudgmentDecision;
614
+ declare function decideRemUpdateVerification(reply: string): RemUpdateVerificationDecision;
615
+ declare function decideRemClauseCarry(reply: string, clauseCount: number): RemClauseCarryDecision;
616
+ //#endregion
617
+ //#region src/engine/rem/runner.d.ts
618
+ interface RemJournalWriter {
619
+ appendJournal(jobId: string, jobType: RemOperationType, entry: JournalEntry): void | Promise<void>;
620
+ }
621
+ interface RemStage {
622
+ name: string;
623
+ run(): Promise<Partial<JournalEntry>> | Partial<JournalEntry>;
624
+ }
625
+ declare function runRemStages(input: {
626
+ repository: RemJournalWriter;
627
+ jobId: string;
628
+ jobType: RemOperationType;
629
+ config: RemConfig;
630
+ stages: readonly RemStage[];
631
+ onStageError?: (event: {
632
+ stage: string;
633
+ error: unknown;
634
+ }) => void;
635
+ }): Promise<Record<string, "done" | "failed" | "disabled">>;
636
+ //#endregion
637
+ //#region src/engine/rem/schema.d.ts
638
+ declare function installRemSchema(database: RemDatabaseLike): void;
639
+ //#endregion
640
+ //#region src/engine/rem/writer-census.d.ts
641
+ interface RemDiscoveredWriter {
642
+ writer: string;
643
+ }
644
+ declare function discoverRemWritersFromCallGraph(input: {
645
+ entryPoints: readonly string[];
646
+ }): {
647
+ writers: RemDiscoveredWriter[];
648
+ };
649
+ //#endregion
650
+ export { REM_ENABLE_GATE_BINDINGS as $, orderAdapterAPair as $t, ReplaceCoverageDecision as A, validateRemCalibrationCrossCheck as At, arbitrateReplaceVerdicts as B, deriveRemConfigurationSha256 as Bt, REM_ROW_HASH_VERSION_LEGACY as C, journalRemGenerationTransition as Ct, RemReplaceCarrierState as D, recordRemObservedVerdict as Dt, RemReplaceCarrierPort as E, recordRemCandidateCapCounts as Et, renderReplaceCoveragePrompt as F, validateRemReplayIdentityTuple as Ft, writeRemTwoFacetTransaction as G, validateRemGrammarChange as Gt, parseReplaceClauseVerdict as H, requireRemCoverageAccuracyFloor as Ht, ReplaceArbitration as I, RemConfigurationDecision as It, defineRemSafetyGuard as J, AdapterAVerdict as Jt, RemFacetPolicy as K, AdapterAMemoryRecord as Kt, ReplaceClauseVerdict as L, RemOperationalConfiguration as Lt, ReplaceCoverageStatus as M, validateRemCensusOracleProvenance as Mt, decideReplaceCoverage as N, validateRemCensusRouteCoverage as Nt, ReplaceCoverageAtom as O, reportRemSimilarityCalibration as Ot, parseReplaceCoverageAtoms as P, validateRemProspectiveIdentity as Pt, LoadRemEnableGateInput as Q, isAdapterAVerdictReply as Qt, ReplaceEligibleClause as R, canonicalizeRemConfiguration as Rt, REM_ROW_HASH_VERSION as S, deriveRemWriteIdentity as St, RemReplaceCarrierFault as T, readRetainedRemCensusArtifact as Tt, renderReplaceClauseVerdictPrompt as U, requireRemOwnerDecisions as Ut, buildReplaceEligibleClauses as V, parseRemOperationalConfiguration as Vt, RemCurrentFacetChunk as W, validateRemEnableGateDigestKeys as Wt, validateRemGuardCensus as X, adapterAViewFromRecord as Xt, recordNonRefusePairDecision as Y, OrderedAdapterAPair as Yt, validateRemSubstantiveWaveEffects as Z, extractJsonFromResponse as Zt, renderRemRetirementTargetPrompt as _, RemUpdateLocaleResource as _t, RemStage as a, RemCoverageAtom as at, renderRemUpdateVerificationPrompt as b, classifyRemCensusLabel as bt, RemUpdateJudgmentDecision as c, validateRemClauseCoverageArtifacts as ct, decideRemClauseCarry as d, RemUpdateTier as dt, parseAdapterAChatVerdict as en, RemEnableGateError as et, decideRemRetirementTargetFromReply as f, buildRemUpdateReferenceSet as ft, renderRemClauseCarryPrompt as g, RemUpdateLocale as gt, decideRemUpdateVerification as h, REM_UPDATE_LOCALES as ht, RemJournalWriter as i, RemClauseCoverageGateResult as it, ReplaceCoverageObservation as j, validateRemCensusLabelTuple as jt, ReplaceCoverageClass as k, summarizeRemBatchEvents as kt, RemUpdateJudgmentRefusalReason as l, RemUpdateReferenceUnit as lt, decideRemUpdateRelationFromReply as m, enumerateRemUpdateMembers as mt, discoverRemWritersFromCallGraph as n, renderAdapterAChatPrompt as nn, RemExactClause as nt, runRemStages as o, RemCoverageBuildResult as ot, decideRemUpdateFromReply as p, composeRemNegatedCurrent as pt, RemEntryDecision as q, AdapterAMemoryView as qt, installRemSchema as r, renderAdapterAPrompt as rn, splitExactClauses as rt, RemClauseCarryDecision as s, buildRemCoverageAtoms as st, RemDiscoveredWriter as t, prospectiveProfileView as tn, loadRemEnableGate as tt, RemUpdateVerificationDecision as u, RemUpdateSpan as ut, renderRemUpdateJudgmentPrompt as v, getRemUpdateLocaleResource as vt, hashRemMemoryRow as w, produceRemCensusArtifact as wt, REM_ROW_HASH_FIELDS as x, deriveRemReplayArtifactIdentity as xt, renderRemUpdateRelationJudgmentPrompt as y, classifyAllRemCensusLabels as yt, UsableReplaceClauseVerdict as z, declareRemCalibrationThreshold as zt };