@snoai/memory 1.6.0 → 1.7.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 (355) hide show
  1. package/README.md +1 -1
  2. package/dist/{_types-CUKHSRkS.d.ts → _types-CZDWRxyi.d.ts} +0 -2
  3. package/dist/{access-tracker-CFxRg7Bt.d.ts → access-tracker-CtqCTq9b.d.ts} +4 -6
  4. package/dist/{adapter-BFtbOOw3.d.ts → adapter-6irg6Ykg.d.ts} +3 -7
  5. package/dist/{adapter-CG-UbOjU.js → adapter-BVBeFvUc.js} +2 -4
  6. package/dist/{agent-llm-port-BlFrD2ro.d.ts → agent-llm-port-i_L33_v_.d.ts} +0 -2
  7. package/dist/{all-resources-Dij6l5h0.d.ts → all-resources-3zj0PED4.d.ts} +2 -4
  8. package/dist/{all-resources-BQK2ugjB.js → all-resources-BZc9QIAW.js} +41 -81
  9. package/dist/{ambient-learning-text-normalizer-_fH3LeuK.d.ts → ambient-learning-text-normalizer-H_idEjJi.d.ts} +0 -2
  10. package/dist/{ambient-learning-text-normalizer-CxjATmMp.js → ambient-learning-text-normalizer-dxAxf9oi.js} +3 -5
  11. package/dist/{atomic-extraction-reply-BJ9XV_9s.js → atomic-extraction-reply-CoxIGLmU.js} +12 -12
  12. package/dist/{atomic-extraction-skill-CcXmuCqL.js → atomic-extraction-skill-5lAqr8BM.js} +1 -2
  13. package/dist/{atomic-memory-extraction-l65aofbl.js → atomic-memory-extraction-CWMMWF2C.js} +67 -41
  14. package/dist/{atomic-memory-extraction-Bp7AWZqi.d.ts → atomic-memory-extraction-DcoaYWiS.d.ts} +6 -20
  15. package/dist/{b-profile-section-dictionary-provider-Buj_M-QA.d.ts → b-profile-section-dictionary-provider-BuzxMJtG.d.ts} +2 -6
  16. package/dist/{b-profile-section-dictionary-provider-BHkoNqgk.js → b-profile-section-dictionary-provider-DMGsJlYh.js} +3 -6
  17. package/dist/{best-effort-BPZSzKk0.d.ts → best-effort-DvyP9avp.d.ts} +0 -2
  18. package/dist/{calendar-instruction-CzqZbAPG.js → calendar-instruction-uK6xsrCt.js} +1 -2
  19. package/dist/{capture-policy-detector-3tDQkBi9.d.ts → capture-policy-detector-CEgDjHPq.d.ts} +1 -3
  20. package/dist/{capture-policy-detector-DaMfy9CZ.js → capture-policy-detector-DhNGhDw3.js} +5 -7
  21. package/dist/{classifier-CXQxJJPP.d.ts → classifier-DeFV9Zro.d.ts} +1 -5
  22. package/dist/client.d.ts +1 -3
  23. package/dist/client.js +4 -6
  24. package/dist/{coding-skin-azRXA51Z.js → coding-skin-BnFryVac.js} +11 -5
  25. package/dist/coding-skin.d.ts +8 -4
  26. package/dist/coding-skin.js +2 -2
  27. package/dist/{config-CByvnX3d.js → config-D6GJyMKz.js} +29 -41
  28. package/dist/{connection-D989FqGS.d.ts → connection-22Uywd-U.d.ts} +1 -6
  29. package/dist/{connection-BtK-3r-f.js → connection-H-_OZ-pP.js} +3 -5
  30. package/dist/{daily-log-generator-DEsiCs7o.js → daily-log-generator-DdzlaQYy.js} +8 -12
  31. package/dist/{daily-log-generator-CsQPHl4A.d.ts → daily-log-generator-IbaCpCH8.d.ts} +1 -5
  32. package/dist/{daily-spend-estimator-DiwzBlo1.d.ts → daily-spend-estimator-CKaQYiHB.d.ts} +0 -2
  33. package/dist/{data-bootstrap-Bl3lthzE.d.ts → data-bootstrap-Bf_VMTSc.d.ts} +0 -4
  34. package/dist/{data-bootstrap-P8sie9WA.js → data-bootstrap-Db6a7ASj.js} +1 -3
  35. package/dist/{data-paths-C7sNdqvP.d.ts → data-paths-CFwVskNd.d.ts} +0 -2
  36. package/dist/{derived-suppression-cache-CcANI-p7.d.ts → derived-suppression-cache-ByclOuKE.d.ts} +1 -7
  37. package/dist/diagnostic-encoder.d.ts +0 -2
  38. package/dist/diagnostic-encoder.js +2 -3
  39. package/dist/{embedding-provider-client-CELWtPgt.d.ts → embedding-provider-client-Bli3uXan.d.ts} +0 -4
  40. package/dist/{embedding-provider-client-CgpUK_1G.js → embedding-provider-client-ClgiYSD4.js} +4 -8
  41. package/dist/{entry-metadata-parser-BIVSMCIk.js → entry-metadata-parser-W53-Odqm.js} +1 -2
  42. package/dist/{error-D-wb-rZw.js → error-Dga5Ot1M.js} +1 -2
  43. package/dist/{error-signals-lMH2uAdV.js → error-signals-CqvwBBWn.js} +1 -2
  44. package/dist/{error-signals-D8_3vYu4.d.ts → error-signals-f0JhwtHI.d.ts} +0 -2
  45. package/dist/{errors-CeVRxf9V.d.ts → errors-Cqej5eCm.d.ts} +0 -2
  46. package/dist/{extraction-text-sanitizer-B_AhIecT.d.ts → extraction-text-sanitizer-D_7Ogceg.d.ts} +0 -2
  47. package/dist/{i18n-text-DbD6Qify.d.ts → i18n-text-CqS4mUit.d.ts} +0 -2
  48. package/dist/{index-Df9420Pl.d.ts → index-B0iQL0Kp.d.ts} +3 -15
  49. package/dist/{index-DPfJrOFD.d.ts → index-B3H1zNbk.d.ts} +2 -38
  50. package/dist/{index-CJrMFlAU.d.ts → index-oFJyQfvq.d.ts} +0 -2
  51. package/dist/index.d.ts +12 -14
  52. package/dist/index.js +18 -22
  53. package/dist/{intent-analyzer-B5XVrWwe.d.ts → intent-analyzer-DmeMSTrr.d.ts} +0 -2
  54. package/dist/internal/config/index.d.ts +1 -1
  55. package/dist/internal/config/index.js +1 -2
  56. package/dist/internal/config/plugin-config-schema.d.ts +1 -1
  57. package/dist/internal/config/plugin-config-schema.js +1 -2
  58. package/dist/internal/config/product-mode.d.ts +1 -1
  59. package/dist/internal/config/product-mode.js +1 -2
  60. package/dist/internal/config/settings.d.ts +1 -1
  61. package/dist/internal/config/settings.js +3 -4
  62. package/dist/internal/config/skill-categories.d.ts +1 -3
  63. package/dist/internal/config/skill-categories.js +1 -2
  64. package/dist/internal/config/skin-defaults.d.ts +1 -3
  65. package/dist/internal/config/skin-defaults.js +1 -2
  66. package/dist/internal/contract/discovery.d.ts +1 -3
  67. package/dist/internal/contract/discovery.js +2 -3
  68. package/dist/internal/contract/profile.d.ts +1 -1
  69. package/dist/internal/contract/profile.js +1 -2
  70. package/dist/internal/contract/routes.d.ts +1 -1
  71. package/dist/internal/contract/routes.js +1 -2
  72. package/dist/internal/engine/bindings/memory-cli-shared.d.ts +7 -9
  73. package/dist/internal/engine/bindings/memory-cli-shared.js +1 -2
  74. package/dist/internal/engine/bindings/memory-forget-tool.d.ts +1 -3
  75. package/dist/internal/engine/bindings/memory-forget-tool.js +2 -3
  76. package/dist/internal/engine/bindings/memory-list-tool.d.ts +1 -3
  77. package/dist/internal/engine/bindings/memory-list-tool.js +2 -3
  78. package/dist/internal/engine/bindings/memory-recall-tool.d.ts +1 -3
  79. package/dist/internal/engine/bindings/memory-recall-tool.js +3 -4
  80. package/dist/internal/engine/bindings/memory-reflection-resolve-tool.d.ts +1 -3
  81. package/dist/internal/engine/bindings/memory-reflection-resolve-tool.js +3 -4
  82. package/dist/internal/engine/bindings/memory-stats-tool.d.ts +1 -3
  83. package/dist/internal/engine/bindings/memory-stats-tool.js +3 -4
  84. package/dist/internal/engine/bindings/memory-store-tool.d.ts +1 -3
  85. package/dist/internal/engine/bindings/memory-store-tool.js +6 -7
  86. package/dist/internal/engine/bindings/memory-tool-access.d.ts +3 -5
  87. package/dist/internal/engine/bindings/memory-tool-access.js +2 -3
  88. package/dist/internal/engine/bindings/memory-tool-formatting.d.ts +1 -3
  89. package/dist/internal/engine/bindings/memory-tool-formatting.js +2 -3
  90. package/dist/internal/engine/bindings/memory-tool-results.d.ts +3 -5
  91. package/dist/internal/engine/bindings/memory-tool-results.js +2 -3
  92. package/dist/internal/engine/bindings/memory-tool-schemas.d.ts +9 -11
  93. package/dist/internal/engine/bindings/memory-tool-schemas.js +2 -3
  94. package/dist/internal/engine/bindings/memory-update-tool.d.ts +1 -3
  95. package/dist/internal/engine/bindings/memory-update-tool.js +5 -6
  96. package/dist/internal/engine/bindings/sno-station-mem-ambient-learning-hook.d.ts +7 -9
  97. package/dist/internal/engine/bindings/sno-station-mem-ambient-learning-hook.js +8 -9
  98. package/dist/internal/engine/bindings/sno-station-mem-auto-recall-hook.d.ts +7 -9
  99. package/dist/internal/engine/bindings/sno-station-mem-auto-recall-hook.js +6 -7
  100. package/dist/internal/engine/bindings/sno-station-mem-hook-types.d.ts +1 -3
  101. package/dist/internal/engine/bindings/sno-station-mem-insight-distill-factory.d.ts +8 -10
  102. package/dist/internal/engine/bindings/sno-station-mem-insight-distill-factory.js +4 -5
  103. package/dist/internal/engine/bindings/sno-station-mem-message-transcript.d.ts +2 -4
  104. package/dist/internal/engine/bindings/sno-station-mem-message-transcript.js +5 -6
  105. package/dist/internal/engine/bindings/sno-station-mem-reset-hook.d.ts +6 -8
  106. package/dist/internal/engine/bindings/sno-station-mem-reset-hook.js +1 -2
  107. package/dist/internal/engine/bindings/sno-station-mem-runtime-mode.d.ts +2 -4
  108. package/dist/internal/engine/bindings/sno-station-mem-runtime-mode.js +4 -5
  109. package/dist/internal/engine/bindings/sno-station-mem-session-state.d.ts +1 -3
  110. package/dist/internal/engine/bindings/sno-station-mem-session-state.js +1 -2
  111. package/dist/internal/engine/eval/trace.d.ts +1 -1
  112. package/dist/internal/engine/eval/trace.js +1 -2
  113. package/dist/internal/engine/extraction/ambient-learning-text-normalizer.d.ts +1 -1
  114. package/dist/internal/engine/extraction/ambient-learning-text-normalizer.js +1 -2
  115. package/dist/internal/engine/extraction/atomic-memory-extraction.d.ts +1 -1
  116. package/dist/internal/engine/extraction/atomic-memory-extraction.js +1 -2
  117. package/dist/internal/engine/extraction/b-profile-section-dictionary-provider.d.ts +1 -1
  118. package/dist/internal/engine/extraction/b-profile-section-dictionary-provider.js +1 -2
  119. package/dist/internal/engine/extraction/b-profile-section-rekey.d.ts +6 -8
  120. package/dist/internal/engine/extraction/b-profile-section-rekey.js +4 -5
  121. package/dist/internal/engine/extraction/capture-policy-detector.d.ts +1 -1
  122. package/dist/internal/engine/extraction/capture-policy-detector.js +1 -2
  123. package/dist/internal/engine/extraction/embedding-provider-client.d.ts +1 -1
  124. package/dist/internal/engine/extraction/embedding-provider-client.js +1 -2
  125. package/dist/internal/engine/extraction/extraction-text-sanitizer.d.ts +1 -1
  126. package/dist/internal/engine/extraction/extraction-text-sanitizer.js +3 -4
  127. package/dist/internal/engine/extraction/memory-metadata-codec.d.ts +2 -2
  128. package/dist/internal/engine/extraction/memory-metadata-codec.js +1 -2
  129. package/dist/internal/engine/extraction/memory-temporality-classifier.d.ts +1 -1
  130. package/dist/internal/engine/extraction/memory-temporality-classifier.js +1 -2
  131. package/dist/internal/engine/i18n/all-resources.d.ts +1 -1
  132. package/dist/internal/engine/i18n/all-resources.js +1 -2
  133. package/dist/internal/engine/i18n/locales.d.ts +1 -1
  134. package/dist/internal/engine/i18n/locales.js +1 -2
  135. package/dist/internal/engine/i18n/res/_types.d.ts +1 -1
  136. package/dist/internal/engine/i18n/res/_types.js +1 -2
  137. package/dist/internal/engine/observability/adapter.d.ts +1 -1
  138. package/dist/internal/engine/observability/adapter.js +1 -2
  139. package/dist/internal/engine/observability/best-effort.d.ts +1 -1
  140. package/dist/internal/engine/observability/best-effort.js +1 -2
  141. package/dist/internal/engine/observability/early-diagnostics.js +1 -2
  142. package/dist/internal/engine/observability/memory-snapshot.d.ts +1 -1
  143. package/dist/internal/engine/observability/memory-snapshot.js +1 -2
  144. package/dist/internal/engine/observability/observable-embedder.d.ts +1 -1
  145. package/dist/internal/engine/observability/observable-embedder.js +2 -3
  146. package/dist/internal/engine/observability/observable-llm-client.d.ts +1 -1
  147. package/dist/internal/engine/observability/observable-llm-client.js +2 -3
  148. package/dist/internal/engine/observability/observable-memory-store.d.ts +1 -1
  149. package/dist/internal/engine/observability/observable-memory-store.js +4 -5
  150. package/dist/internal/engine/observability/observable-retriever.d.ts +1 -1
  151. package/dist/internal/engine/observability/observable-retriever.js +4 -5
  152. package/dist/internal/engine/observability/runtime-diagnostics.d.ts +2 -4
  153. package/dist/internal/engine/observability/runtime-diagnostics.js +6 -7
  154. package/dist/internal/engine/observability/session-registry.d.ts +1 -1
  155. package/dist/internal/engine/observability/session-registry.js +1 -2
  156. package/dist/internal/engine/observability/version-metadata.d.ts +1 -3
  157. package/dist/internal/engine/observability/version-metadata.js +1 -2
  158. package/dist/internal/engine/operations/daily-spend-estimator.d.ts +1 -1
  159. package/dist/internal/engine/operations/daily-spend-estimator.js +2 -3
  160. package/dist/internal/engine/operations/learning-file-maintenance.d.ts +1 -1
  161. package/dist/internal/engine/operations/learning-file-maintenance.js +3 -4
  162. package/dist/internal/engine/operations/memory-tier-promoter.d.ts +1 -1
  163. package/dist/internal/engine/operations/memory-tier-promoter.js +1 -2
  164. package/dist/internal/engine/operations/runtime-audit-log.d.ts +2 -2
  165. package/dist/internal/engine/operations/runtime-audit-log.js +1 -1
  166. package/dist/internal/engine/provider/canonical-memory-corpus.d.ts +2 -4
  167. package/dist/internal/engine/provider/canonical-memory-corpus.js +2 -3
  168. package/dist/internal/engine/provider/provider-registration.d.ts +7 -9
  169. package/dist/internal/engine/provider/provider-registration.js +1 -2
  170. package/dist/internal/engine/provider/provider-row-renderer.d.ts +2 -4
  171. package/dist/internal/engine/provider/provider-row-renderer.js +2 -3
  172. package/dist/internal/engine/provider/provider-types.d.ts +1 -1
  173. package/dist/internal/engine/reflection/daily-log-generator.d.ts +1 -1
  174. package/dist/internal/engine/reflection/daily-log-generator.js +1 -2
  175. package/dist/internal/engine/reflection/reflection-command-hooks.d.ts +1 -1
  176. package/dist/internal/engine/reflection/reflection-command-hooks.js +1 -2
  177. package/dist/internal/engine/reflection/reflection-deps.d.ts +1 -1
  178. package/dist/internal/engine/reflection/reflection-embedded-generator.d.ts +1 -1
  179. package/dist/internal/engine/reflection/reflection-embedded-generator.js +1 -2
  180. package/dist/internal/engine/reflection/reflection-injection-hooks.d.ts +1 -1
  181. package/dist/internal/engine/reflection/reflection-injection-hooks.js +3 -4
  182. package/dist/internal/engine/reflection/reflection-lifecycle-hooks.d.ts +1 -1
  183. package/dist/internal/engine/reflection/reflection-lifecycle-hooks.js +3 -4
  184. package/dist/internal/engine/reflection/strategy-hook-runner.d.ts +3 -3
  185. package/dist/internal/engine/reflection/strategy-hook-runner.js +2 -2
  186. package/dist/internal/engine/rem/classifier.d.ts +1 -1
  187. package/dist/internal/engine/rem/classifier.js +1 -2
  188. package/dist/internal/engine/rem/index.d.ts +3 -3
  189. package/dist/internal/engine/rem/index.js +18 -36
  190. package/dist/internal/engine/rem/types.d.ts +1 -1
  191. package/dist/internal/engine/rem/types.js +1 -2
  192. package/dist/internal/engine/retrieval/access-tracker.d.ts +1 -1
  193. package/dist/internal/engine/retrieval/access-tracker.js +1 -2
  194. package/dist/internal/engine/retrieval/intent-analyzer.d.ts +1 -1
  195. package/dist/internal/engine/retrieval/intent-analyzer.js +1 -2
  196. package/dist/internal/engine/retrieval/retrieval-gate.d.ts +1 -1
  197. package/dist/internal/engine/retrieval/retrieval-gate.js +1 -2
  198. package/dist/internal/engine/retrieval/retriever.d.ts +1 -1
  199. package/dist/internal/engine/retrieval/retriever.js +1 -2
  200. package/dist/internal/engine/security/memory-scope-policy.d.ts +1 -1
  201. package/dist/internal/engine/security/memory-scope-policy.js +1 -2
  202. package/dist/internal/engine/security/redact.d.ts +1 -1
  203. package/dist/internal/engine/security/redact.js +1 -2
  204. package/dist/internal/engine/security/scopes.d.ts +2 -2
  205. package/dist/internal/engine/security/scopes.js +2 -2
  206. package/dist/internal/engine/shared/errors.d.ts +1 -1
  207. package/dist/internal/engine/shared/errors.js +1 -2
  208. package/dist/internal/engine/shared/i18n-text.d.ts +1 -1
  209. package/dist/internal/engine/shared/i18n-text.js +1 -2
  210. package/dist/internal/engine/shared/iso-date-time.d.ts +1 -3
  211. package/dist/internal/engine/shared/iso-date-time.js +1 -2
  212. package/dist/internal/engine/shared/lru.d.ts +1 -1
  213. package/dist/internal/engine/shared/lru.js +1 -2
  214. package/dist/internal/engine/shared/memory-kind-policy.d.ts +1 -1
  215. package/dist/internal/engine/shared/memory-kind-policy.js +1 -2
  216. package/dist/internal/engine/shared/paths.d.ts +2 -2
  217. package/dist/internal/engine/shared/paths.js +1 -2
  218. package/dist/internal/engine/shared/types.d.ts +2 -2
  219. package/dist/internal/engine/shared/types.js +2 -3
  220. package/dist/internal/engine/shared/utils.d.ts +1 -1
  221. package/dist/internal/engine/shared/utils.js +1 -2
  222. package/dist/internal/engine/telemetry/memory-telemetry-api.d.ts +5 -9
  223. package/dist/internal/engine/telemetry/memory-telemetry-api.js +6 -8
  224. package/dist/internal/engine/telemetry/memory-telemetry-observability.d.ts +2 -4
  225. package/dist/internal/engine/telemetry/memory-telemetry-observability.js +1 -2
  226. package/dist/internal/engine/telemetry/memory-telemetry-outbox.d.ts +1 -1
  227. package/dist/internal/engine/telemetry/memory-telemetry-outbox.js +4 -5
  228. package/dist/internal/engine/telemetry/memory-telemetry-types.d.ts +1 -1
  229. package/dist/internal/engine/telemetry/memory-telemetry-types.js +1 -2
  230. package/dist/internal/engine/telemetry/observe-ledger.d.ts +3 -5
  231. package/dist/internal/engine/telemetry/observe-ledger.js +2 -3
  232. package/dist/internal/model/agent-llm-port.d.ts +1 -1
  233. package/dist/internal/model/llm-client.d.ts +2 -2
  234. package/dist/internal/model/llm-client.js +2 -2
  235. package/dist/internal/model/llm-failure.d.ts +1 -3
  236. package/dist/internal/model/llm-failure.js +1 -2
  237. package/dist/internal/model/llm-mode-routing.d.ts +1 -3
  238. package/dist/internal/model/llm-mode-routing.js +2 -3
  239. package/dist/internal/store/atomic-memory-cutover-sql.d.ts +2 -4
  240. package/dist/internal/store/atomic-memory-cutover-sql.js +2 -3
  241. package/dist/internal/store/connection.d.ts +1 -1
  242. package/dist/internal/store/connection.js +1 -2
  243. package/dist/internal/store/data-bootstrap.d.ts +1 -1
  244. package/dist/internal/store/data-bootstrap.js +1 -2
  245. package/dist/internal/store/data-paths.d.ts +1 -1
  246. package/dist/internal/store/data-paths.js +1 -2
  247. package/dist/internal/store/maintenance.d.ts +4 -6
  248. package/dist/internal/store/maintenance.js +18 -25
  249. package/dist/internal/store/memory-kinds-cutover-migrator.d.ts +1 -3
  250. package/dist/internal/store/memory-kinds-cutover-migrator.js +4 -5
  251. package/dist/internal/store/migrations.d.ts +2 -4
  252. package/dist/internal/store/migrations.js +2 -3
  253. package/dist/internal/store/sqlite-runtime.d.ts +1 -1
  254. package/dist/internal/store/sqlite-runtime.js +2 -3
  255. package/dist/internal/store/store.d.ts +2 -2
  256. package/dist/internal/store/store.js +1 -2
  257. package/dist/{learning-file-maintenance-9b-Ut6Kv.d.ts → learning-file-maintenance-ZT6kHwb1.d.ts} +0 -2
  258. package/dist/{llm-client-nWW1o1F6.d.ts → llm-client-Bar23wPq.d.ts} +1 -5
  259. package/dist/{llm-client-ByzZRemn.js → llm-client-BtbX4af4.js} +43 -17
  260. package/dist/{locales-JxGmkG6t.d.ts → locales-CCZtQJq7.d.ts} +0 -2
  261. package/dist/{log-site-catalog.generated-DsvDgHJa.js → log-site-catalog.generated-Dtiih6m2.js} +92 -94
  262. package/dist/log-site-catalog.json +1 -1
  263. package/dist/{lru-DyoaTyIs.d.ts → lru-DYiuPJFA.d.ts} +0 -2
  264. package/dist/memdump.d.ts +1 -3
  265. package/dist/memdump.js +1 -2
  266. package/dist/{memory-entry-projector-B36Nwsi_.js → memory-entry-projector-CkoEuLv6.js} +17 -30
  267. package/dist/{memory-kind-policy-BMebgugU.d.ts → memory-kind-policy-BRjhwhSl.d.ts} +1 -3
  268. package/dist/{memory-metadata-codec-H8BniJM3.d.ts → memory-metadata-codec-CcYw0t6c.d.ts} +1 -7
  269. package/dist/{memory-metadata-codec-DL1sbJiN.js → memory-metadata-codec-Cglikqj8.js} +4 -8
  270. package/dist/{memory-runtime-DXr1VO1p.js → memory-runtime-B9fG-sNo.js} +240 -298
  271. package/dist/{memory-scope-policy-1gg5QlWZ.d.ts → memory-scope-policy-4WfFFs_H.d.ts} +0 -4
  272. package/dist/{memory-scope-policy--TiLZnrE.js → memory-scope-policy-Dg2LHZ25.js} +3 -6
  273. package/dist/{memory-snapshot-CKnQovB5.d.ts → memory-snapshot-8RxJpqig.d.ts} +3 -5
  274. package/dist/{memory-source-order-YMRoeDLd.js → memory-source-order-BTo_ix2y.js} +1 -2
  275. package/dist/{memory-store-base-BHYXgsCq.d.ts → memory-store-base-CHBfMmZb.d.ts} +11 -21
  276. package/dist/{memory-store-shared-pOb59ScU.js → memory-store-shared-B-zOxk_Q.js} +4 -6
  277. package/dist/{memory-store-write-validation-B_hDG2zf.js → memory-store-write-validation-BbvoN3Li.js} +4 -7
  278. package/dist/{memory-telemetry-incidents-BWA9kcZx.js → memory-telemetry-incidents-Dp8GVD2Q.js} +1 -2
  279. package/dist/{memory-telemetry-metadata-CA7W8tK6.js → memory-telemetry-metadata-PMKWCAbj.js} +1 -2
  280. package/dist/{memory-telemetry-outbox-ddTdImt7.d.ts → memory-telemetry-outbox-D-L9c3Nw.d.ts} +2 -4
  281. package/dist/{memory-telemetry-receipts-MAJecvXQ.d.ts → memory-telemetry-receipts-Boj2CE16.d.ts} +1 -5
  282. package/dist/{memory-telemetry-receipts-cjIQGwdp.js → memory-telemetry-receipts-ComlCOro.js} +2 -4
  283. package/dist/{memory-telemetry-types-CufVmrCs.d.ts → memory-telemetry-types-Bg8U0Drl.d.ts} +0 -2
  284. package/dist/{memory-temporality-classifier-Bauwnls7.js → memory-temporality-classifier-Bm0EiCN8.js} +7 -9
  285. package/dist/{memory-temporality-classifier-Wi6WWeAj.d.ts → memory-temporality-classifier-HI9KeEsM.d.ts} +1 -3
  286. package/dist/{memory-tier-promoter-m60-RlAj.d.ts → memory-tier-promoter-CqNT2qFj.d.ts} +1 -3
  287. package/dist/{memory-tool-dependencies-Cc4SJMtd.js → memory-tool-dependencies-BxVJ-bHs.js} +6 -6
  288. package/dist/memory-tool-dependencies-KsEWfLkV.d.ts +14 -0
  289. package/dist/{model-call-table-CPyQfBJ6.js → model-call-table-BxGwmwv0.js} +14 -10
  290. package/dist/{model-reply-text-CKopStP2.js → model-reply-text-C7jEWDXG.js} +2 -4
  291. package/dist/{observable-embedder-0FwxJMhJ.d.ts → observable-embedder-DunGMyQg.d.ts} +2 -4
  292. package/dist/{observable-llm-client-DY7w1Fj1.d.ts → observable-llm-client-D_mOM5Pn.d.ts} +3 -5
  293. package/dist/{observable-memory-store-C25Q_hoW.d.ts → observable-memory-store-DUhat-p3.d.ts} +5 -7
  294. package/dist/{observable-retriever-Cs9Bwzq6.d.ts → observable-retriever-7TmJk1HE.d.ts} +6 -8
  295. package/dist/{operation-cancellation-QcwC4mDX.js → operation-cancellation-mqfQz0ka.js} +1 -2
  296. package/dist/paths-BySyy_eq.d.ts +1 -0
  297. package/dist/{plugin-config-observe-schema-ue9XxUj_.js → plugin-config-observe-schema-CwHVuVhu.js} +2 -3
  298. package/dist/{plugin-config-schema-DQh5njrS.d.ts → plugin-config-schema-DO4FhsYc.d.ts} +4 -24
  299. package/dist/{plugin-config-schema-D-IoHmis.js → plugin-config-schema-sJbkVY0-.js} +8 -14
  300. package/dist/{profile-CcvVR6K8.d.ts → profile-nVQCcv-0.d.ts} +1 -3
  301. package/dist/{profile-section-writer-CR-WWIoB.js → profile-section-writer-DSX6R3GF.js} +10 -15
  302. package/dist/{provider-registration-qLSA9CQl.js → provider-registration-lujpiuef.js} +5 -8
  303. package/dist/{provider-runtime-types-DFhtdA6d.d.ts → provider-runtime-types-peajl6V-.d.ts} +0 -2
  304. package/dist/{provider-types-CZGm6v88.d.ts → provider-types-DIU9efEA.d.ts} +1 -3
  305. package/dist/{redact-BTIZcHQL.d.ts → redact-BnUxXQUE.d.ts} +0 -2
  306. package/dist/{reflection-command-hooks-BRLqVNCi.d.ts → reflection-command-hooks-CvkTlbOa.d.ts} +5 -7
  307. package/dist/{reflection-command-hooks-Der9aX0e.js → reflection-command-hooks-Dyckr_Ma.js} +11 -14
  308. package/dist/{reflection-deps-C0TJ-gpU.d.ts → reflection-deps-AqE-y4Ba.d.ts} +6 -8
  309. package/dist/{reflection-embedded-generator-Cs59hWYr.d.ts → reflection-embedded-generator-BJol6by2.d.ts} +6 -8
  310. package/dist/{reflection-embedded-generator-BEdDusPV.js → reflection-embedded-generator-i8KHqMpr.js} +5 -8
  311. package/dist/{reflection-injection-hooks-Cy4bRemm.d.ts → reflection-injection-hooks-C3PeK3QM.d.ts} +7 -11
  312. package/dist/{reflection-lifecycle-hooks-C-lf00DB.d.ts → reflection-lifecycle-hooks-Cjvwic3J.d.ts} +4 -6
  313. package/dist/{relation-dictionary-Cev1kyLe.js → relation-dictionary-QVBewRQ1.js} +3 -6
  314. package/dist/release-download.d.ts +1 -3
  315. package/dist/release-download.js +1 -2
  316. package/dist/{relevant-memories-context-m8nuFZcM.js → relevant-memories-context-CvMB_zj8.js} +1 -2
  317. package/dist/rem-batch-executor-BSWXFOLH.js +1 -0
  318. package/dist/{rem-consumer-retrieval-BhS1ivcd.js → rem-consumer-retrieval-DXeqknml.js} +3 -5
  319. package/dist/{rem-trigger-CBfyJVfh.js → rem-trigger-BaJa5FS0.js} +206 -345
  320. package/dist/{resolver-Dy-hnjCR.js → resolver-DQ47zbPS.js} +2 -4
  321. package/dist/{results-BkMsHy7M.js → results-DERE8r4S.js} +2 -3
  322. package/dist/{retrieval-gate-Bx2Zg7jD.d.ts → retrieval-gate-XvDp3HuK.d.ts} +0 -2
  323. package/dist/{retriever-2RJYAvlD.d.ts → retriever-Cv-hwHpH.d.ts} +10 -22
  324. package/dist/{retriever-C54bXeDh.js → retriever-DRtPp86k.js} +12 -22
  325. package/dist/{rolldown-runtime-D7D4PA-g.js → rolldown-runtime-D8jQpDG7.js} +1 -2
  326. package/dist/{runtime-audit-log-DK6xAYxh.js → runtime-audit-log-4NJsojEj.js} +2 -4
  327. package/dist/{runtime-audit-log-D2Hqk_kl.d.ts → runtime-audit-log-CJK9iVX9.d.ts} +1 -3
  328. package/dist/{scopes-CtrY-YQ3.d.ts → scopes-BcdyFdfw.d.ts} +1 -5
  329. package/dist/{scopes-a4Kly9n7.js → scopes-DQjbRC2q.js} +2 -3
  330. package/dist/{server-BlbG5uOM.js → server-DPd3Xef2.js} +10 -15
  331. package/dist/{session-registry-DBoE7AvZ.d.ts → session-registry-Dft8oCDg.d.ts} +0 -2
  332. package/dist/sidecar/main.js +3 -4
  333. package/dist/{signed-registry-constants-Bv0fgZ8Q.d.ts → signed-registry-constants-BfycrCI1.d.ts} +0 -2
  334. package/dist/{signed-registry-constants-yq3DlG3B.js → signed-registry-constants-CO2vv_QJ.js} +1 -2
  335. package/dist/{sno-station-mem-runtime-dependencies-DsidkZi2.js → sno-station-mem-runtime-dependencies-DITNvfkR.js} +14 -14
  336. package/dist/sno-station-mem-runtime-dependencies-DorPRtTM.d.ts +29 -0
  337. package/dist/{sqlite-runtime-L_ywirTm.d.ts → sqlite-runtime-Cea2knhj.d.ts} +0 -2
  338. package/dist/{store-Bz0y76cJ.d.ts → store-AGtE-n72.d.ts} +4 -14
  339. package/dist/{store-Bja1tVFw.js → store-YX1_c1NH.js} +44 -76
  340. package/dist/{strategy-hook-runner-F-ruiw48.js → strategy-hook-runner-CwqZ1orf.js} +5 -7
  341. package/dist/{strategy-hook-runner-vbrWiDbK.d.ts → strategy-hook-runner-DqJpzS9C.d.ts} +7 -9
  342. package/dist/{token-counter-BD1f48Km.js → token-counter-N9I9iWq1.js} +1 -2
  343. package/dist/{trace-C1JxMfs-.d.ts → trace-CX26YO5M.d.ts} +0 -2
  344. package/dist/{types-El7jViCz.d.ts → types-CMbBmMJB.d.ts} +1 -5
  345. package/dist/{types-pVomjzqR.d.ts → types-qOSF58Ck.d.ts} +0 -2
  346. package/dist/{unplaced-candidate-migration-BCcdQkcx.js → unplaced-candidate-migration-BFQqjIDP.js} +8 -14
  347. package/dist/{utils-CDw2ttQf.d.ts → utils-CdhxW1G9.d.ts} +0 -2
  348. package/package.json +1 -1
  349. package/settings.default.json +7 -7
  350. package/skills/extract-atomic-memory/SKILL.md +4 -3
  351. package/skills/extract-atomic-memory/references/capture.md +3 -2
  352. package/dist/memory-tool-dependencies-D2fOC-KL.d.ts +0 -14
  353. package/dist/paths-obFSsJv3.d.ts +0 -1
  354. package/dist/rem-batch-executor-DiU8hSGc.js +0 -2
  355. package/dist/sno-station-mem-runtime-dependencies-ByI3b-wB.d.ts +0 -31
@@ -1,6 +1,6 @@
1
- import { $ as renderAdapterAChatPrompt, $t as MEMORY_CATEGORIES, A as journalAtomicArrivalRetirementRefusal, B as StaleSupersedeTargetError, Bt as debugContentPreview, C as buildTaskLifecycleCommandClaim, Cn as withMemoryOperation, Ct as withProviderResponses, D as normalizeEntityName, E as listAtomicMemoryEntityCandidates, Et as appendAuditEntry, F as normalizeTopicToSectionName, Ft as CODING_SKIN_LEDGER_MAX_CHARS, G as loadSqliteVecExtension, Gt as redactSecrets, H as validateMemoryTelemetryMetadata, Ht as stripHtmlTags, I as getSnoStationMemDataDir, It as CODING_SKIN_SESSION_QUERY, J as adapterAViewFromRecord, Jt as stringifyInsightMetadata, Kt as buildInsightMetadata, L as AtomicExtractionCompletedElsewhere, Lt as HOST_MODEL_DEADLINE_HEADER, M as recordTokenCounter, Mt as runWithMemoryAuditSync, N as canExtractorWrite, Nt as runWithMutationAttempt, O as recordAtomicEntityIdentityJournal, P as canonicalizeProfileSectionName, Q as prospectiveProfileView, Qt as AGGREGATION_OPERATIONS, R as normalizeMemoryRelationPredicate, Rt as clamp01, S as admitTaskLifecycleAssertion, Sn as memoryOperationSignal, St as isTerminalLlmFailure, T as resolveHookAgentId, Tt as isTerminalLlmFailure$1, U as randomUUID$1, Ut as stripRoleLabelPrefix, V as TaskLifecycleStaleResolutionError, Vt as stableHash, W as readChunkVecTableState, Wt as truncateGraphemes, X as orderAdapterAPair, Xt as parseIsoDateTimeMs, Y as isAdapterAVerdictReply, Yt as normalizeIsoDateTimeString, Z as parseAdapterAChatVerdict, Zt as deriveFactKey, _ as acceptsTaskLifecycleJudgment, _n as initSqliteRuntime, _t as createScopePolicy, an as atomicExtractionSkillReference, at as resolveMemoryDate, b as resolveTaskLifecycle, bn as checkMemoryOperation, cn as state_vocabulary_default, ct as buildIndexedText, dn as calendarInstructionSchema, dt as ALL_RESOURCES, en as normalizeCategory, et as renderAdapterAPrompt, fn as isCalendarLabel, ft as RESOURCES_BY_LOCALE, g as Embedder, gn as isMemoryTelemetryEventType, gt as MemoryScopePolicy, h as AccessTracker, hn as MEMORY_TELEMETRY_DELETE_REASONS, ht as StorageError, in as ATOMIC_EXTRACTION_SKILL_HASH, it as serializeIntervalMetadata, j as readAtomicArrivalRetirementCandidateSet, jt as runWithMemoryAudit, k as closeAtomicArrivalRetirementTargets, kt as currentMutationAttemptId, ln as relations, lt as stripEnvelopeMetadata, m as DEFAULT_RETRIEVAL_CONFIG, mn as attribute_dictionary_default, mt as SnoStationMemError, nn as resolveLlmRoute, nt as readMemorySourceOrderOrOldest, on as modelReplyJsonCandidates, ot as unresolvedMemoryDate, p as MemoryRetriever, pn as sessionZoneCarriedBy, pt as RetrievalError, qt as parseInsightMetadata, rn as ATOMIC_EXTRACTION_SKILL, rt as parseSessionTimestamp, sn as readModelReplyJson, st as boundSectionContent, t as evaluateRemAutomaticTriggers, tn as pickLlmRoutingConfig, tt as compareMemorySourceOrder, un as calculateCalendarTime, ut as normalizeAmbientLearningText, v as buildTaskLifecycleCandidateSet, vn as openSqliteDatabase, vt as parseAgentIdFromSessionKey, w as resolveTaskLifecycleEffectiveTime, wn as forwardObserveLedgerUntilIdle, wt as classifyLlmFailure, x as taskLifecycleCandidateSetVersion, xn as memoryFileWrite, xt as createLlmClient, y as findUniqueActiveTaskByDescription, yn as openSqliteDatabaseReadonly, yt as LlmClientTerminalError, z as MemoryStore, zt as clampInt } from "./rem-trigger-CBfyJVfh.js";
2
- import { $t as FIXED_PROTOCOL_VALUE_79, A as modelCallDestination, An as DEFAULT_REFLECTION_ERROR_SCAN_MAX_CHARS, Bn as FTS_MERGE_INTERVAL_MS, Bt as FIXED_PROTOCOL_VALUE_63, C as getSnoStationMemStateDir, D as settingsToPluginConfig, Dn as DEFAULT_IMPORTANCE, E as defaultSettings, F as observeConfigSchema, Ft as FIXED_MEMORY_SNO_AI_EXTRACT, Gn as INTEGRITY_CHECK_INTERVAL_MS, Gt as FIXED_PROTOCOL_VALUE_68, Ht as FIXED_PROTOCOL_VALUE_65, I as extractionConfigSchema, It as FIXED_MEMORY_SNO_EXTRACT_CHAT, Jn as MAX_AGGREGATION_RESULT_TOKENS, Jt as FIXED_PROTOCOL_VALUE_74, L as memoryReflectionConfigSchema, Lt as FIXED_MEMORY_SNO_EXTRACT_PROFILE, M as retrievalConfigSchema, N as isObserveAgentId, O as MODEL_CALLS, P as observeAgentId, Pt as FIXED_MEMORY_ROW_PATH_PATTERN, Qt as FIXED_PROTOCOL_VALUE_78, R as selfImprovementConfigSchema, T as readSettings, Ut as FIXED_PROTOCOL_VALUE_66, Vt as FIXED_PROTOCOL_VALUE_64, Wt as FIXED_PROTOCOL_VALUE_67, Xt as FIXED_PROTOCOL_VALUE_76, Yn as MAX_CANDIDATE_POOL_SIZE, Zn as MAX_LIST_LIMIT, Zt as FIXED_PROTOCOL_VALUE_77, _n as BACKUP_MIN_FREE_DISK_RATIO, an as PERSISTED_PROVIDER_SYSTEM, b as getPrincipal, dr as USAGE_EVENT_RETENTION_INTERVAL_MS, er as MIN_RECALL_TOKEN_BUDGET, fn as ATOMIC_CAPTURE_OUTPUT_TOKEN_BUDGET, fr as USAGE_OUTBOX_INTERVAL_MS, gn as BACKUP_INTERVAL_MS, gr as recallLifecycleSchema, h as readMaintenanceOverrides, hn as ATOMIC_EXTRACTION_MAX_INPUT_TOKENS, ir as PLANNER_STATISTICS_INTERVAL_MS, j as SESSION_STRATEGIES, jn as DEFAULT_REFLECTION_SESSION_TTL_MS, kn as DEFAULT_RECALL_TOKEN_BUDGET, ln as isSupportedLocale, lr as SNO_OBSERVE_FLUSH_TIMEOUT_MS, n as MEMORY_USAGE_FLUSH_INTERVAL_MS, on as embeddingConfigSchema, pn as ATOMIC_CAPTURE_TIMEOUT_MS, qn as MAINTENANCE_TICK_MS, sr as REM_TRIGGER_CHECK_INTERVAL_MS, w as getStateDir, x as getSettingsPath, z as sessionMemoryConfigSchema, zn as FORGET_QUERY_MIN_SCORE } from "./config-CByvnX3d.js";
3
- import { n as DEGRADED_REASONS, t as ContractError } from "./error-D-wb-rZw.js";
1
+ import { $ as renderAdapterAChatPrompt, $t as MEMORY_CATEGORIES, A as journalAtomicArrivalRetirementRefusal, B as StaleSupersedeTargetError, Bt as debugContentPreview, C as buildTaskLifecycleCommandClaim, Cn as withMemoryOperation, Ct as withProviderResponses, D as normalizeEntityName, E as listAtomicMemoryEntityCandidates, Et as appendAuditEntry, F as normalizeTopicToSectionName, Ft as CODING_SKIN_LEDGER_MAX_CHARS, G as loadSqliteVecExtension, Gt as redactSecrets, H as validateMemoryTelemetryMetadata, Ht as stripHtmlTags, I as getSnoStationMemDataDir, It as CODING_SKIN_SESSION_QUERY, J as adapterAViewFromRecord, Jt as stringifyInsightMetadata, Kt as buildInsightMetadata, L as AtomicExtractionCompletedElsewhere, Lt as HOST_MODEL_DEADLINE_HEADER, M as recordTokenCounter, Mt as runWithMemoryAuditSync, N as canExtractorWrite, Nt as runWithMutationAttempt, O as recordAtomicEntityIdentityJournal, P as canonicalizeProfileSectionName, Q as prospectiveProfileView, Qt as AGGREGATION_OPERATIONS, R as normalizeMemoryRelationPredicate, Rt as clamp01, S as admitTaskLifecycleAssertion, Sn as memoryOperationSignal, St as isTerminalLlmFailure, T as resolveHookAgentId, Tt as isTerminalLlmFailure$1, U as randomUUID$1, Ut as stripRoleLabelPrefix, V as TaskLifecycleStaleResolutionError, Vt as stableHash, W as readChunkVecTableState, Wt as truncateGraphemes, X as orderAdapterAPair, Xt as parseIsoDateTimeMs, Y as isAdapterAVerdictReply, Yt as normalizeIsoDateTimeString, Z as parseAdapterAChatVerdict, Zt as deriveFactKey, _ as acceptsTaskLifecycleJudgment, _n as initSqliteRuntime, _t as createScopePolicy, an as atomicExtractionSkillReference, at as resolveMemoryDate, b as resolveTaskLifecycle, bn as checkMemoryOperation, cn as state_vocabulary_default, ct as buildIndexedText, dn as calendarInstructionSchema, dt as ALL_RESOURCES, en as normalizeCategory, et as renderAdapterAPrompt, fn as isCalendarLabel, ft as RESOURCES_BY_LOCALE, g as Embedder, gn as isMemoryTelemetryEventType, gt as MemoryScopePolicy, h as AccessTracker, hn as MEMORY_TELEMETRY_DELETE_REASONS, ht as StorageError, in as ATOMIC_EXTRACTION_SKILL_HASH, it as serializeIntervalMetadata, j as readAtomicArrivalRetirementCandidateSet, jt as runWithMemoryAudit, k as closeAtomicArrivalRetirementTargets, kt as currentMutationAttemptId, ln as relations, lt as stripEnvelopeMetadata, m as DEFAULT_RETRIEVAL_CONFIG, mn as attribute_dictionary_default, mt as SnoStationMemError, nn as resolveLlmRoute, nt as readMemorySourceOrderOrOldest, on as modelReplyJsonCandidates, ot as unresolvedMemoryDate, p as MemoryRetriever, pn as sessionZoneCarriedBy, pt as RetrievalError, qt as parseInsightMetadata, rn as ATOMIC_EXTRACTION_SKILL, rt as parseSessionTimestamp, sn as readModelReplyJson, st as boundSectionContent, t as evaluateRemAutomaticTriggers, tn as pickLlmRoutingConfig, tt as compareMemorySourceOrder, un as calculateCalendarTime, ut as normalizeAmbientLearningText, v as buildTaskLifecycleCandidateSet, vn as openSqliteDatabase, vt as parseAgentIdFromSessionKey, w as resolveTaskLifecycleEffectiveTime, wn as forwardObserveLedgerUntilIdle, wt as classifyLlmFailure, x as taskLifecycleCandidateSetVersion, xn as memoryFileWrite, xt as createLlmClient, y as findUniqueActiveTaskByDescription, yn as openSqliteDatabaseReadonly, yt as LlmClientTerminalError, z as MemoryStore, zt as clampInt } from "./rem-trigger-BaJa5FS0.js";
2
+ import { $t as FIXED_PROTOCOL_VALUE_79, A as modelCallDestination, An as DEFAULT_REFLECTION_ERROR_SCAN_MAX_CHARS, Bn as FTS_MERGE_INTERVAL_MS, Bt as FIXED_PROTOCOL_VALUE_63, C as getSnoStationMemStateDir, D as settingsToPluginConfig, Dn as DEFAULT_IMPORTANCE, E as defaultSettings, F as observeConfigSchema, Ft as FIXED_MEMORY_SNO_AI_EXTRACT, Gn as INTEGRITY_CHECK_INTERVAL_MS, Gt as FIXED_PROTOCOL_VALUE_68, Ht as FIXED_PROTOCOL_VALUE_65, I as extractionConfigSchema, It as FIXED_MEMORY_SNO_EXTRACT_CHAT, Jn as MAX_AGGREGATION_RESULT_TOKENS, Jt as FIXED_PROTOCOL_VALUE_74, L as memoryReflectionConfigSchema, Lt as FIXED_MEMORY_SNO_EXTRACT_PROFILE, M as retrievalConfigSchema, N as isObserveAgentId, O as MODEL_CALLS, P as observeAgentId, Pt as FIXED_MEMORY_ROW_PATH_PATTERN, Qt as FIXED_PROTOCOL_VALUE_78, R as selfImprovementConfigSchema, T as readSettings, Ut as FIXED_PROTOCOL_VALUE_66, Vt as FIXED_PROTOCOL_VALUE_64, Wt as FIXED_PROTOCOL_VALUE_67, Xt as FIXED_PROTOCOL_VALUE_76, Yn as MAX_CANDIDATE_POOL_SIZE, Zn as MAX_LIST_LIMIT, Zt as FIXED_PROTOCOL_VALUE_77, _n as BACKUP_MIN_FREE_DISK_RATIO, an as PERSISTED_PROVIDER_SYSTEM, b as getPrincipal, dr as USAGE_EVENT_RETENTION_INTERVAL_MS, er as MIN_RECALL_TOKEN_BUDGET, fn as ATOMIC_CAPTURE_OUTPUT_TOKEN_BUDGET, fr as USAGE_OUTBOX_INTERVAL_MS, gn as BACKUP_INTERVAL_MS, gr as recallLifecycleSchema, h as readMaintenanceOverrides, hn as ATOMIC_EXTRACTION_MAX_INPUT_TOKENS, ir as PLANNER_STATISTICS_INTERVAL_MS, j as SESSION_STRATEGIES, jn as DEFAULT_REFLECTION_SESSION_TTL_MS, kn as DEFAULT_RECALL_TOKEN_BUDGET, ln as isSupportedLocale, lr as SNO_OBSERVE_FLUSH_TIMEOUT_MS, n as MEMORY_USAGE_FLUSH_INTERVAL_MS, on as embeddingConfigSchema, pn as ATOMIC_CAPTURE_TIMEOUT_MS, qn as MAINTENANCE_TICK_MS, sr as REM_TRIGGER_CHECK_INTERVAL_MS, w as getStateDir, x as getSettingsPath, z as sessionMemoryConfigSchema, zn as FORGET_QUERY_MIN_SCORE } from "./config-D6GJyMKz.js";
3
+ import { n as DEGRADED_REASONS, t as ContractError } from "./error-Dga5Ot1M.js";
4
4
  import { configureLogger, createLogger, currentLogContext, effectiveLogLevel, loggerFileStatus, privateLogReference, withLogContext } from "@snoai/utils/logger";
5
5
  import path, { basename, dirname, isAbsolute, join, posix, relative, resolve } from "node:path";
6
6
  import { existsSync, mkdirSync, readFileSync, readdirSync, realpathSync, renameSync, rmSync, statSync, statfsSync } from "node:fs";
@@ -23,7 +23,7 @@ import { eld } from "eld/medium";
23
23
  import { channel } from "node:diagnostics_channel";
24
24
  import "js-tiktoken";
25
25
  import { connect } from "node:net";
26
- //#region src/engine/observability/memory-snapshot.ts
26
+ // src/engine/observability/memory-snapshot.ts
27
27
  /** @file memory-snapshot.ts
28
28
  * @purpose Reads aggregate memory-store metadata for memory.snapshot events.
29
29
  * @boundary Read-only SQLite inspection for observability.
@@ -63,8 +63,7 @@ async function readMemorySnapshotPayload(dbPath, _config, snapshotUuid, reason,
63
63
  }
64
64
  return payload;
65
65
  }
66
- //#endregion
67
- //#region src/engine/telemetry/memory-telemetry-observability.ts
66
+ // src/engine/telemetry/memory-telemetry-observability.ts
68
67
  const DEFAULT_SINK = "sno-observe";
69
68
  const MAX_BATCH_SIZE = 50;
70
69
  async function forwardMemoryTelemetryToObserve(options) {
@@ -194,11 +193,9 @@ function addString(target, key, value) {
194
193
  function addNumber(target, key, value) {
195
194
  if (typeof value === "number" && Number.isFinite(value)) target[key] = value;
196
195
  }
197
- //#endregion
198
- //#region package.json
199
- var version = "1.6.0";
200
- //#endregion
201
- //#region config/atomic-extraction-response.schema.json
196
+ // package.json
197
+ var version = "1.7.1";
198
+ // config/atomic-extraction-response.schema.json
202
199
  var atomic_extraction_response_schema_default = {
203
200
  $schema: "https://json-schema.org/draft/2020-12/schema",
204
201
  $id: "https://www.sno.ai/schemas/mem-claw/atomic-extraction-response-v1.json",
@@ -209,8 +206,11 @@ var atomic_extraction_response_schema_default = {
209
206
  properties: {
210
207
  "claims_found": {
211
208
  "type": "array",
212
- "items": { "type": "string" },
213
- "description": "One short string for each claim the turns this call owns state, in the order they appear; empty when they state none. Written before records so the list is read before the array is opened."
209
+ "items": {
210
+ "type": "integer",
211
+ "minimum": 0
212
+ },
213
+ "description": "For each claim the turns this call owns state, in the order they appear, the turn_index it came from: a number, never the claim's words; empty when they state none. Written before records so the list is read before the array is opened."
214
214
  },
215
215
  "records": {
216
216
  "type": "array",
@@ -693,8 +693,7 @@ var atomic_extraction_response_schema_default = {
693
693
  }
694
694
  ] } }
695
695
  };
696
- //#endregion
697
- //#region src/engine/extraction/atomic-progress-boundary.ts
696
+ // src/engine/extraction/atomic-progress-boundary.ts
698
697
  const log$17 = createLogger("sno-station-mem:atomic-progress-boundary");
699
698
  const classificationSchema = z.object({ decisions: z.array(z.object({
700
699
  turn_index: z.number().int().nonnegative(),
@@ -727,8 +726,7 @@ function excludeProgressRecords(records, excluded) {
727
726
  return index === void 0 || !excluded.has(index);
728
727
  });
729
728
  }
730
- //#endregion
731
- //#region src/engine/extraction/atomic-extraction-reply.ts
729
+ // src/engine/extraction/atomic-extraction-reply.ts
732
730
  /** @file atomic-extraction-reply.ts
733
731
  * @purpose Defines and recovers the one atomic extraction reply shape.
734
732
  * @boundary Reply validation only; no model calls, persistence, or post-processing judgment.
@@ -915,7 +913,7 @@ const captureFactSchema = wireRecordSchema.pick({
915
913
  ended_at_phrase: wireRecordSchema.shape.ended_at_phrase.unwrap()
916
914
  });
917
915
  const captureReplySchema = z.object({
918
- claims_found: z.array(z.string().min(1)),
916
+ claims_found: z.array(z.number().int().nonnegative()),
919
917
  decisions: z.array(z.object({
920
918
  turn_index: z.number().int().nonnegative(),
921
919
  progress_only: z.boolean()
@@ -1054,10 +1052,9 @@ function fallbackAtomicCapturedFact(fact) {
1054
1052
  ended_time: { kind: "none" }
1055
1053
  });
1056
1054
  }
1057
- //#endregion
1058
- //#region src/engine/observability/log-site-catalog.generated.ts
1055
+ // src/engine/observability/log-site-catalog.generated.ts
1059
1056
  const logSiteCatalog = {
1060
- "build_id": "e19cc255ce05970a5fa88efbbcede55cc9bbdf9eb349e39cc93a9daebd4f8985",
1057
+ "build_id": "adc3f82ce64373cc97694ab820cb8be47d6786fb3a73a9048b88607316796a38",
1061
1058
  "sites": {
1062
1059
  "memory.recall.budget.checked": {
1063
1060
  "file": "packages/memory/src/engine/bindings/memory-recall-tool.ts",
@@ -1218,56 +1215,56 @@ const logSiteCatalog = {
1218
1215
  "function": "wireTimeSchema",
1219
1216
  "line": 90,
1220
1217
  "column": 2,
1221
- "file_hash": "090ab63c76950a7f85119c50ba2486b686609ff0ae09fceaa10c22a4c1a48ad8"
1218
+ "file_hash": "f67c8fce474fc8cd1bc945ed4c941a8bad627faabafde35bc4600de914de97b2"
1222
1219
  },
1223
1220
  "extraction.atomic-extraction-reply.projectRecord.327508ac5f": {
1224
1221
  "file": "packages/memory/src/engine/extraction/atomic-extraction-reply.ts",
1225
1222
  "function": "projectRecord",
1226
1223
  "line": 145,
1227
1224
  "column": 3,
1228
- "file_hash": "090ab63c76950a7f85119c50ba2486b686609ff0ae09fceaa10c22a4c1a48ad8"
1225
+ "file_hash": "f67c8fce474fc8cd1bc945ed4c941a8bad627faabafde35bc4600de914de97b2"
1229
1226
  },
1230
1227
  "extraction.atomic-extraction-reply.omitted_time": {
1231
1228
  "file": "packages/memory/src/engine/extraction/atomic-extraction-reply.ts",
1232
1229
  "function": "projectRecord",
1233
1230
  "line": 152,
1234
1231
  "column": 3,
1235
- "file_hash": "090ab63c76950a7f85119c50ba2486b686609ff0ae09fceaa10c22a4c1a48ad8"
1232
+ "file_hash": "f67c8fce474fc8cd1bc945ed4c941a8bad627faabafde35bc4600de914de97b2"
1236
1233
  },
1237
1234
  "extraction.atomic-extraction-reply.projectRecord.aac5440fc2": {
1238
1235
  "file": "packages/memory/src/engine/extraction/atomic-extraction-reply.ts",
1239
1236
  "function": "projectRecord",
1240
1237
  "line": 157,
1241
1238
  "column": 3,
1242
- "file_hash": "090ab63c76950a7f85119c50ba2486b686609ff0ae09fceaa10c22a4c1a48ad8"
1239
+ "file_hash": "f67c8fce474fc8cd1bc945ed4c941a8bad627faabafde35bc4600de914de97b2"
1243
1240
  },
1244
1241
  "extraction.atomic-extraction-reply.projectRecord.b92c90f285": {
1245
1242
  "file": "packages/memory/src/engine/extraction/atomic-extraction-reply.ts",
1246
1243
  "function": "projectRecord",
1247
1244
  "line": 164,
1248
1245
  "column": 3,
1249
- "file_hash": "090ab63c76950a7f85119c50ba2486b686609ff0ae09fceaa10c22a4c1a48ad8"
1246
+ "file_hash": "f67c8fce474fc8cd1bc945ed4c941a8bad627faabafde35bc4600de914de97b2"
1250
1247
  },
1251
1248
  "extraction.atomic-extraction-reply.salvage_ids": {
1252
1249
  "file": "packages/memory/src/engine/extraction/atomic-extraction-reply.ts",
1253
1250
  "function": "parseAtomicCaptureReply",
1254
- "line": 318,
1251
+ "line": 319,
1255
1252
  "column": 4,
1256
- "file_hash": "090ab63c76950a7f85119c50ba2486b686609ff0ae09fceaa10c22a4c1a48ad8"
1253
+ "file_hash": "f67c8fce474fc8cd1bc945ed4c941a8bad627faabafde35bc4600de914de97b2"
1257
1254
  },
1258
1255
  "extraction.atomic-extraction-reply.salvage_spans": {
1259
1256
  "file": "packages/memory/src/engine/extraction/atomic-extraction-reply.ts",
1260
1257
  "function": "parseAtomicCaptureReply",
1261
- "line": 323,
1258
+ "line": 324,
1262
1259
  "column": 4,
1263
- "file_hash": "090ab63c76950a7f85119c50ba2486b686609ff0ae09fceaa10c22a4c1a48ad8"
1260
+ "file_hash": "f67c8fce474fc8cd1bc945ed4c941a8bad627faabafde35bc4600de914de97b2"
1264
1261
  },
1265
1262
  "extraction.atomic-extraction-reply.unresolved_enrichment_time": {
1266
1263
  "file": "packages/memory/src/engine/extraction/atomic-extraction-reply.ts",
1267
1264
  "function": "warnUnresolvedEnrichmentTime",
1268
- "line": 349,
1265
+ "line": 350,
1269
1266
  "column": 3,
1270
- "file_hash": "090ab63c76950a7f85119c50ba2486b686609ff0ae09fceaa10c22a4c1a48ad8"
1267
+ "file_hash": "f67c8fce474fc8cd1bc945ed4c941a8bad627faabafde35bc4600de914de97b2"
1271
1268
  },
1272
1269
  "extraction.atomic-generic-extractor.enrichAtomicBatch": {
1273
1270
  "file": "packages/memory/src/engine/extraction/atomic-generic-extractor.ts",
@@ -1335,79 +1332,79 @@ const logSiteCatalog = {
1335
1332
  "extraction.atomic-memory-extraction.extractAndPersist.7e1c9d2660": {
1336
1333
  "file": "packages/memory/src/engine/extraction/atomic-memory-extraction.ts",
1337
1334
  "function": "extractAndPersist",
1338
- "line": 720,
1335
+ "line": 754,
1339
1336
  "column": 4,
1340
- "file_hash": "155293bf20505f110c69df5e852c49e67411c80b8b9fb3b8c5390b82e2fc47cc"
1337
+ "file_hash": "5f221e7113dda2bdc416f439d1e225fb46765e185d078f6d3062bc0075fe892e"
1341
1338
  },
1342
1339
  "memory.capture.completed": {
1343
1340
  "file": "packages/memory/src/engine/extraction/atomic-memory-extraction.ts",
1344
1341
  "function": "extractAndPersist",
1345
- "line": 877,
1342
+ "line": 911,
1346
1343
  "column": 4,
1347
- "file_hash": "155293bf20505f110c69df5e852c49e67411c80b8b9fb3b8c5390b82e2fc47cc"
1344
+ "file_hash": "5f221e7113dda2bdc416f439d1e225fb46765e185d078f6d3062bc0075fe892e"
1348
1345
  },
1349
1346
  "extraction.atomic-memory-extraction.readStandingSubjectCandidates.b88c6fb3aa": {
1350
1347
  "file": "packages/memory/src/engine/extraction/atomic-memory-extraction.ts",
1351
1348
  "function": "readStandingSubjectCandidates",
1352
- "line": 1015,
1349
+ "line": 1049,
1353
1350
  "column": 5,
1354
- "file_hash": "155293bf20505f110c69df5e852c49e67411c80b8b9fb3b8c5390b82e2fc47cc"
1351
+ "file_hash": "5f221e7113dda2bdc416f439d1e225fb46765e185d078f6d3062bc0075fe892e"
1355
1352
  },
1356
1353
  "extraction.atomic-memory-extraction.reaskStandingSubjects.1288498dec": {
1357
1354
  "file": "packages/memory/src/engine/extraction/atomic-memory-extraction.ts",
1358
1355
  "function": "reaskStandingSubjects",
1359
- "line": 1269,
1356
+ "line": 1303,
1360
1357
  "column": 4,
1361
- "file_hash": "155293bf20505f110c69df5e852c49e67411c80b8b9fb3b8c5390b82e2fc47cc"
1358
+ "file_hash": "5f221e7113dda2bdc416f439d1e225fb46765e185d078f6d3062bc0075fe892e"
1362
1359
  },
1363
1360
  "extraction.atomic-memory-extraction.reaskStandingSubjects.2b8785b171": {
1364
1361
  "file": "packages/memory/src/engine/extraction/atomic-memory-extraction.ts",
1365
1362
  "function": "reaskStandingSubjects",
1366
- "line": 1278,
1363
+ "line": 1312,
1367
1364
  "column": 2,
1368
- "file_hash": "155293bf20505f110c69df5e852c49e67411c80b8b9fb3b8c5390b82e2fc47cc"
1365
+ "file_hash": "5f221e7113dda2bdc416f439d1e225fb46765e185d078f6d3062bc0075fe892e"
1369
1366
  },
1370
1367
  "extraction.atomic-memory-extraction.runAtomicMemoryExtraction.304a5a8d5c": {
1371
1368
  "file": "packages/memory/src/engine/extraction/atomic-memory-extraction.ts",
1372
1369
  "function": "runAtomicMemoryExtraction",
1373
- "line": 1548,
1370
+ "line": 1582,
1374
1371
  "column": 3,
1375
- "file_hash": "155293bf20505f110c69df5e852c49e67411c80b8b9fb3b8c5390b82e2fc47cc"
1372
+ "file_hash": "5f221e7113dda2bdc416f439d1e225fb46765e185d078f6d3062bc0075fe892e"
1376
1373
  },
1377
1374
  "extraction.atomic-memory-extraction.over_token_ceiling": {
1378
1375
  "file": "packages/memory/src/engine/extraction/atomic-memory-extraction.ts",
1379
1376
  "function": "runAtomicMemoryExtraction",
1380
- "line": 1630,
1377
+ "line": 1664,
1381
1378
  "column": 3,
1382
- "file_hash": "155293bf20505f110c69df5e852c49e67411c80b8b9fb3b8c5390b82e2fc47cc"
1379
+ "file_hash": "5f221e7113dda2bdc416f439d1e225fb46765e185d078f6d3062bc0075fe892e"
1383
1380
  },
1384
1381
  "extraction.atomic-memory-extraction.runAtomicMemoryExtraction.0d9673d494": {
1385
1382
  "file": "packages/memory/src/engine/extraction/atomic-memory-extraction.ts",
1386
1383
  "function": "runAtomicMemoryExtraction",
1387
- "line": 1704,
1384
+ "line": 1738,
1388
1385
  "column": 4,
1389
- "file_hash": "155293bf20505f110c69df5e852c49e67411c80b8b9fb3b8c5390b82e2fc47cc"
1386
+ "file_hash": "5f221e7113dda2bdc416f439d1e225fb46765e185d078f6d3062bc0075fe892e"
1390
1387
  },
1391
1388
  "memory.extraction.window.completed": {
1392
1389
  "file": "packages/memory/src/engine/extraction/atomic-memory-extraction.ts",
1393
1390
  "function": "runAtomicMemoryExtraction",
1394
- "line": 1730,
1391
+ "line": 1764,
1395
1392
  "column": 3,
1396
- "file_hash": "155293bf20505f110c69df5e852c49e67411c80b8b9fb3b8c5390b82e2fc47cc"
1393
+ "file_hash": "5f221e7113dda2bdc416f439d1e225fb46765e185d078f6d3062bc0075fe892e"
1397
1394
  },
1398
1395
  "extraction.atomic-memory-extraction.judgeArrivalRetirementPair.call_failed": {
1399
1396
  "file": "packages/memory/src/engine/extraction/atomic-memory-extraction.ts",
1400
1397
  "function": "judgeArrivalRetirementPair",
1401
- "line": 1767,
1398
+ "line": 1801,
1402
1399
  "column": 3,
1403
- "file_hash": "155293bf20505f110c69df5e852c49e67411c80b8b9fb3b8c5390b82e2fc47cc"
1400
+ "file_hash": "5f221e7113dda2bdc416f439d1e225fb46765e185d078f6d3062bc0075fe892e"
1404
1401
  },
1405
1402
  "extraction.atomic-memory-extraction.judgeArrivalRetirementPair.reply_invalid": {
1406
1403
  "file": "packages/memory/src/engine/extraction/atomic-memory-extraction.ts",
1407
1404
  "function": "judgeArrivalRetirementPair",
1408
- "line": 1775,
1405
+ "line": 1809,
1409
1406
  "column": 3,
1410
- "file_hash": "155293bf20505f110c69df5e852c49e67411c80b8b9fb3b8c5390b82e2fc47cc"
1407
+ "file_hash": "5f221e7113dda2bdc416f439d1e225fb46765e185d078f6d3062bc0075fe892e"
1411
1408
  },
1412
1409
  "extraction.atomic-progress-boundary.salvage_decisions": {
1413
1410
  "file": "packages/memory/src/engine/extraction/atomic-progress-boundary.ts",
@@ -2455,121 +2452,121 @@ const logSiteCatalog = {
2455
2452
  "shared.llm-client.resolveRequestTransport.8f631601af": {
2456
2453
  "file": "packages/memory/src/model/llm-client.ts",
2457
2454
  "function": "resolveRequestTransport",
2458
- "line": 411,
2455
+ "line": 413,
2459
2456
  "column": 4,
2460
- "file_hash": "d9d56c4cbf4aa62794b80e977ce914700f23fd3faaa2ddafa6d7e4e2ce05a6c7"
2457
+ "file_hash": "edf46e9d2b7aec1e71c7630f6d7b55d3fd4a1328fd82ecff0bf864fe8ec51d71"
2461
2458
  },
2462
2459
  "shared.llm-client.resolveRequestTransport.ffa933b519": {
2463
2460
  "file": "packages/memory/src/model/llm-client.ts",
2464
2461
  "function": "resolveRequestTransport",
2465
- "line": 417,
2462
+ "line": 419,
2466
2463
  "column": 4,
2467
- "file_hash": "d9d56c4cbf4aa62794b80e977ce914700f23fd3faaa2ddafa6d7e4e2ce05a6c7"
2464
+ "file_hash": "edf46e9d2b7aec1e71c7630f6d7b55d3fd4a1328fd82ecff0bf864fe8ec51d71"
2468
2465
  },
2469
2466
  "llm.host.request.completed": {
2470
2467
  "file": "packages/memory/src/model/llm-client.ts",
2471
2468
  "function": "requestContent",
2472
- "line": 470,
2469
+ "line": 472,
2473
2470
  "column": 6,
2474
- "file_hash": "d9d56c4cbf4aa62794b80e977ce914700f23fd3faaa2ddafa6d7e4e2ce05a6c7"
2471
+ "file_hash": "edf46e9d2b7aec1e71c7630f6d7b55d3fd4a1328fd82ecff0bf864fe8ec51d71"
2475
2472
  },
2476
2473
  "llm.client.host_cancelled": {
2477
2474
  "file": "packages/memory/src/model/llm-client.ts",
2478
2475
  "function": "requestContent",
2479
- "line": 492,
2476
+ "line": 494,
2480
2477
  "column": 5,
2481
- "file_hash": "d9d56c4cbf4aa62794b80e977ce914700f23fd3faaa2ddafa6d7e4e2ce05a6c7"
2478
+ "file_hash": "edf46e9d2b7aec1e71c7630f6d7b55d3fd4a1328fd82ecff0bf864fe8ec51d71"
2482
2479
  },
2483
2480
  "llm.client.host_error": {
2484
2481
  "file": "packages/memory/src/model/llm-client.ts",
2485
2482
  "function": "requestContent",
2486
- "line": 507,
2483
+ "line": 509,
2487
2484
  "column": 5,
2488
- "file_hash": "d9d56c4cbf4aa62794b80e977ce914700f23fd3faaa2ddafa6d7e4e2ce05a6c7"
2485
+ "file_hash": "edf46e9d2b7aec1e71c7630f6d7b55d3fd4a1328fd82ecff0bf864fe8ec51d71"
2489
2486
  },
2490
2487
  "shared.llm-client.requestContent.ff17976562": {
2491
2488
  "file": "packages/memory/src/model/llm-client.ts",
2492
2489
  "function": "requestContent",
2493
- "line": 545,
2490
+ "line": 547,
2494
2491
  "column": 5,
2495
- "file_hash": "d9d56c4cbf4aa62794b80e977ce914700f23fd3faaa2ddafa6d7e4e2ce05a6c7"
2492
+ "file_hash": "edf46e9d2b7aec1e71c7630f6d7b55d3fd4a1328fd82ecff0bf864fe8ec51d71"
2496
2493
  },
2497
2494
  "llm.client.raw_pipeline_failed": {
2498
2495
  "file": "packages/memory/src/model/llm-client.ts",
2499
2496
  "function": "requestContent",
2500
- "line": 568,
2497
+ "line": 570,
2501
2498
  "column": 5,
2502
- "file_hash": "d9d56c4cbf4aa62794b80e977ce914700f23fd3faaa2ddafa6d7e4e2ce05a6c7"
2499
+ "file_hash": "edf46e9d2b7aec1e71c7630f6d7b55d3fd4a1328fd82ecff0bf864fe8ec51d71"
2503
2500
  },
2504
2501
  "llm.client.chat_pipeline_failed": {
2505
2502
  "file": "packages/memory/src/model/llm-client.ts",
2506
2503
  "function": "requestContent",
2507
- "line": 596,
2504
+ "line": 598,
2508
2505
  "column": 4,
2509
- "file_hash": "d9d56c4cbf4aa62794b80e977ce914700f23fd3faaa2ddafa6d7e4e2ce05a6c7"
2506
+ "file_hash": "edf46e9d2b7aec1e71c7630f6d7b55d3fd4a1328fd82ecff0bf864fe8ec51d71"
2510
2507
  },
2511
2508
  "llm.client.empty_reply": {
2512
2509
  "file": "packages/memory/src/model/llm-client.ts",
2513
2510
  "function": "requestContent",
2514
- "line": 610,
2511
+ "line": 612,
2515
2512
  "column": 4,
2516
- "file_hash": "d9d56c4cbf4aa62794b80e977ce914700f23fd3faaa2ddafa6d7e4e2ce05a6c7"
2513
+ "file_hash": "edf46e9d2b7aec1e71c7630f6d7b55d3fd4a1328fd82ecff0bf864fe8ec51d71"
2517
2514
  },
2518
2515
  "shared.llm-client.requestContentRetryingEmpty.cd874fefff": {
2519
2516
  "file": "packages/memory/src/model/llm-client.ts",
2520
2517
  "function": "requestContentRetryingEmpty",
2521
- "line": 653,
2518
+ "line": 655,
2522
2519
  "column": 5,
2523
- "file_hash": "d9d56c4cbf4aa62794b80e977ce914700f23fd3faaa2ddafa6d7e4e2ce05a6c7"
2520
+ "file_hash": "edf46e9d2b7aec1e71c7630f6d7b55d3fd4a1328fd82ecff0bf864fe8ec51d71"
2524
2521
  },
2525
2522
  "llm.client.fallback.answered": {
2526
2523
  "file": "packages/memory/src/model/llm-client.ts",
2527
2524
  "function": "requestContentWithHostFallback",
2528
- "line": 709,
2525
+ "line": 711,
2529
2526
  "column": 6,
2530
- "file_hash": "d9d56c4cbf4aa62794b80e977ce914700f23fd3faaa2ddafa6d7e4e2ce05a6c7"
2527
+ "file_hash": "edf46e9d2b7aec1e71c7630f6d7b55d3fd4a1328fd82ecff0bf864fe8ec51d71"
2531
2528
  },
2532
2529
  "llm.client.fallback.failed": {
2533
2530
  "file": "packages/memory/src/model/llm-client.ts",
2534
2531
  "function": "requestContentWithHostFallback",
2535
- "line": 726,
2532
+ "line": 728,
2536
2533
  "column": 3,
2537
- "file_hash": "d9d56c4cbf4aa62794b80e977ce914700f23fd3faaa2ddafa6d7e4e2ce05a6c7"
2534
+ "file_hash": "edf46e9d2b7aec1e71c7630f6d7b55d3fd4a1328fd82ecff0bf864fe8ec51d71"
2538
2535
  },
2539
2536
  "llm.client.json.deadline_exhausted": {
2540
2537
  "file": "packages/memory/src/model/llm-client.ts",
2541
2538
  "function": "completeJson",
2542
- "line": 755,
2539
+ "line": 757,
2543
2540
  "column": 7,
2544
- "file_hash": "d9d56c4cbf4aa62794b80e977ce914700f23fd3faaa2ddafa6d7e4e2ce05a6c7"
2541
+ "file_hash": "edf46e9d2b7aec1e71c7630f6d7b55d3fd4a1328fd82ecff0bf864fe8ec51d71"
2545
2542
  },
2546
2543
  "shared.llm-client.completeJson.e04c8e7e82": {
2547
2544
  "file": "packages/memory/src/model/llm-client.ts",
2548
2545
  "function": "completeJson",
2549
- "line": 771,
2546
+ "line": 773,
2550
2547
  "column": 5,
2551
- "file_hash": "d9d56c4cbf4aa62794b80e977ce914700f23fd3faaa2ddafa6d7e4e2ce05a6c7"
2548
+ "file_hash": "edf46e9d2b7aec1e71c7630f6d7b55d3fd4a1328fd82ecff0bf864fe8ec51d71"
2552
2549
  },
2553
2550
  "llm.client.json.request_failed": {
2554
2551
  "file": "packages/memory/src/model/llm-client.ts",
2555
2552
  "function": "completeJson",
2556
- "line": 777,
2553
+ "line": 779,
2557
2554
  "column": 5,
2558
- "file_hash": "d9d56c4cbf4aa62794b80e977ce914700f23fd3faaa2ddafa6d7e4e2ce05a6c7"
2555
+ "file_hash": "edf46e9d2b7aec1e71c7630f6d7b55d3fd4a1328fd82ecff0bf864fe8ec51d71"
2559
2556
  },
2560
2557
  "shared.llm-client.completeText.ffa933b519": {
2561
2558
  "file": "packages/memory/src/model/llm-client.ts",
2562
2559
  "function": "completeText",
2563
- "line": 801,
2560
+ "line": 803,
2564
2561
  "column": 5,
2565
- "file_hash": "d9d56c4cbf4aa62794b80e977ce914700f23fd3faaa2ddafa6d7e4e2ce05a6c7"
2562
+ "file_hash": "edf46e9d2b7aec1e71c7630f6d7b55d3fd4a1328fd82ecff0bf864fe8ec51d71"
2566
2563
  },
2567
2564
  "llm.transport.request.completed": {
2568
2565
  "file": "packages/memory/src/model/llm-provider-transport.ts",
2569
2566
  "function": "observeRequest",
2570
2567
  "line": 84,
2571
2568
  "column": 4,
2572
- "file_hash": "860dc857386796ceee42e10d7f118e3701543f6413e89a85f54fb5caff6863eb"
2569
+ "file_hash": "fb6b7573a0391e630d315f0797908c89c850381d12cd5382d3312ce99d0f3460"
2573
2570
  },
2574
2571
  "memory.host.degraded": {
2575
2572
  "file": "packages/memory/src/model/registered-agent-port.ts",
@@ -2604,140 +2601,140 @@ const logSiteCatalog = {
2604
2601
  "function": "engineLog",
2605
2602
  "line": 62,
2606
2603
  "column": 2,
2607
- "file_hash": "20eee889d95043ec22e9e8129aa8a57107e1ed4b8a7c0ee27fe2e5bbb5697b40"
2604
+ "file_hash": "91ed13824d55b8f09b1e3095dacf1484c189b58ac8938cb522509fe2535c59a5"
2608
2605
  },
2609
2606
  "memory.sidecar.pending_capture.pruned": {
2610
2607
  "file": "packages/memory/src/sidecar/memory-runtime.ts",
2611
2608
  "function": "constructor",
2612
2609
  "line": 115,
2613
2610
  "column": 15,
2614
- "file_hash": "20eee889d95043ec22e9e8129aa8a57107e1ed4b8a7c0ee27fe2e5bbb5697b40"
2611
+ "file_hash": "91ed13824d55b8f09b1e3095dacf1484c189b58ac8938cb522509fe2535c59a5"
2615
2612
  },
2616
2613
  "memory.sidecar.model.prepare.failed": {
2617
2614
  "file": "packages/memory/src/sidecar/memory-runtime.ts",
2618
2615
  "function": "prepareModel",
2619
2616
  "line": 129,
2620
2617
  "column": 4,
2621
- "file_hash": "20eee889d95043ec22e9e8129aa8a57107e1ed4b8a7c0ee27fe2e5bbb5697b40"
2618
+ "file_hash": "91ed13824d55b8f09b1e3095dacf1484c189b58ac8938cb522509fe2535c59a5"
2622
2619
  },
2623
2620
  "memory.sidecar.pending_capture.replay.failed": {
2624
2621
  "file": "packages/memory/src/sidecar/memory-runtime.ts",
2625
2622
  "function": "invoke",
2626
- "line": 340,
2623
+ "line": 341,
2627
2624
  "column": 65,
2628
- "file_hash": "20eee889d95043ec22e9e8129aa8a57107e1ed4b8a7c0ee27fe2e5bbb5697b40"
2625
+ "file_hash": "91ed13824d55b8f09b1e3095dacf1484c189b58ac8938cb522509fe2535c59a5"
2629
2626
  },
2630
2627
  "memory.sidecar.usage.failed": {
2631
2628
  "file": "packages/memory/src/sidecar/memory-runtime.ts",
2632
2629
  "function": "<anonymous callback>",
2633
- "line": 460,
2630
+ "line": 461,
2634
2631
  "column": 5,
2635
- "file_hash": "20eee889d95043ec22e9e8129aa8a57107e1ed4b8a7c0ee27fe2e5bbb5697b40"
2632
+ "file_hash": "91ed13824d55b8f09b1e3095dacf1484c189b58ac8938cb522509fe2535c59a5"
2636
2633
  },
2637
2634
  "rem-batch-executor.onStageError.d5f24d50d3": {
2638
2635
  "file": "packages/memory/src/sidecar/rem-batch-executor.ts",
2639
2636
  "function": "onStageError",
2640
2637
  "line": 374,
2641
2638
  "column": 6,
2642
- "file_hash": "cbd7a38e31659fd8fec98475eb99aec72dd80b5345bcf008a53939f1844bf3c2"
2639
+ "file_hash": "95c82d4fa8fff7b00ec0c2e8e5ba6398be530ad806bd243d473c36bd0e6a3f89"
2643
2640
  },
2644
2641
  "rem-batch-executor.runRemBatchJobUnlocked.55c52b91cf": {
2645
2642
  "file": "packages/memory/src/sidecar/rem-batch-executor.ts",
2646
2643
  "function": "runRemBatchJobUnlocked",
2647
2644
  "line": 521,
2648
2645
  "column": 5,
2649
- "file_hash": "cbd7a38e31659fd8fec98475eb99aec72dd80b5345bcf008a53939f1844bf3c2"
2646
+ "file_hash": "95c82d4fa8fff7b00ec0c2e8e5ba6398be530ad806bd243d473c36bd0e6a3f89"
2650
2647
  },
2651
2648
  "sidecar.batch.completed": {
2652
2649
  "file": "packages/memory/src/sidecar/rem-batch-executor.ts",
2653
2650
  "function": "runRemBatchJobUnlocked",
2654
2651
  "line": 592,
2655
2652
  "column": 4,
2656
- "file_hash": "cbd7a38e31659fd8fec98475eb99aec72dd80b5345bcf008a53939f1844bf3c2"
2653
+ "file_hash": "95c82d4fa8fff7b00ec0c2e8e5ba6398be530ad806bd243d473c36bd0e6a3f89"
2657
2654
  },
2658
2655
  "rem-batch-executor.openBatchRuntime.86fa720e8f": {
2659
2656
  "file": "packages/memory/src/sidecar/rem-batch-executor.ts",
2660
2657
  "function": "openBatchRuntime",
2661
2658
  "line": 658,
2662
2659
  "column": 3,
2663
- "file_hash": "cbd7a38e31659fd8fec98475eb99aec72dd80b5345bcf008a53939f1844bf3c2"
2660
+ "file_hash": "95c82d4fa8fff7b00ec0c2e8e5ba6398be530ad806bd243d473c36bd0e6a3f89"
2664
2661
  },
2665
2662
  "rem-batch-executor.onProviderResponse.df4f2d4fa1": {
2666
2663
  "file": "packages/memory/src/sidecar/rem-batch-executor.ts",
2667
2664
  "function": "onProviderResponse",
2668
2665
  "line": 682,
2669
2666
  "column": 5,
2670
- "file_hash": "cbd7a38e31659fd8fec98475eb99aec72dd80b5345bcf008a53939f1844bf3c2"
2667
+ "file_hash": "95c82d4fa8fff7b00ec0c2e8e5ba6398be530ad806bd243d473c36bd0e6a3f89"
2671
2668
  },
2672
2669
  "rem-batch-executor.runUpdate.dbf2a836db": {
2673
2670
  "file": "packages/memory/src/sidecar/rem-batch-executor.ts",
2674
2671
  "function": "runUpdate",
2675
2672
  "line": 940,
2676
2673
  "column": 3,
2677
- "file_hash": "cbd7a38e31659fd8fec98475eb99aec72dd80b5345bcf008a53939f1844bf3c2"
2674
+ "file_hash": "95c82d4fa8fff7b00ec0c2e8e5ba6398be530ad806bd243d473c36bd0e6a3f89"
2678
2675
  },
2679
2676
  "rem-batch-executor.runUpdate.7dfc387204": {
2680
2677
  "file": "packages/memory/src/sidecar/rem-batch-executor.ts",
2681
2678
  "function": "runUpdate",
2682
2679
  "line": 1018,
2683
2680
  "column": 4,
2684
- "file_hash": "cbd7a38e31659fd8fec98475eb99aec72dd80b5345bcf008a53939f1844bf3c2"
2681
+ "file_hash": "95c82d4fa8fff7b00ec0c2e8e5ba6398be530ad806bd243d473c36bd0e6a3f89"
2685
2682
  },
2686
2683
  "rem-batch-executor.runUpdate.7ffc737c24": {
2687
2684
  "file": "packages/memory/src/sidecar/rem-batch-executor.ts",
2688
2685
  "function": "runUpdate",
2689
2686
  "line": 1065,
2690
2687
  "column": 4,
2691
- "file_hash": "cbd7a38e31659fd8fec98475eb99aec72dd80b5345bcf008a53939f1844bf3c2"
2688
+ "file_hash": "95c82d4fa8fff7b00ec0c2e8e5ba6398be530ad806bd243d473c36bd0e6a3f89"
2692
2689
  },
2693
2690
  "rem-batch-executor.runReplace.e1e35e40e9": {
2694
2691
  "file": "packages/memory/src/sidecar/rem-batch-executor.ts",
2695
2692
  "function": "runReplace",
2696
2693
  "line": 2414,
2697
2694
  "column": 3,
2698
- "file_hash": "cbd7a38e31659fd8fec98475eb99aec72dd80b5345bcf008a53939f1844bf3c2"
2695
+ "file_hash": "95c82d4fa8fff7b00ec0c2e8e5ba6398be530ad806bd243d473c36bd0e6a3f89"
2699
2696
  },
2700
2697
  "rem-batch-executor.runReplace.de3a5f3ce3": {
2701
2698
  "file": "packages/memory/src/sidecar/rem-batch-executor.ts",
2702
2699
  "function": "runReplace",
2703
2700
  "line": 2622,
2704
2701
  "column": 4,
2705
- "file_hash": "cbd7a38e31659fd8fec98475eb99aec72dd80b5345bcf008a53939f1844bf3c2"
2702
+ "file_hash": "95c82d4fa8fff7b00ec0c2e8e5ba6398be530ad806bd243d473c36bd0e6a3f89"
2706
2703
  },
2707
2704
  "rem-batch-executor.runReplace.e4be8cfe8f": {
2708
2705
  "file": "packages/memory/src/sidecar/rem-batch-executor.ts",
2709
2706
  "function": "runReplace",
2710
2707
  "line": 2868,
2711
2708
  "column": 4,
2712
- "file_hash": "cbd7a38e31659fd8fec98475eb99aec72dd80b5345bcf008a53939f1844bf3c2"
2709
+ "file_hash": "95c82d4fa8fff7b00ec0c2e8e5ba6398be530ad806bd243d473c36bd0e6a3f89"
2713
2710
  },
2714
2711
  "memory.rem.refusal.release_failed": {
2715
2712
  "file": "packages/memory/src/sidecar/rem-batch-executor.ts",
2716
2713
  "function": "runReplace",
2717
2714
  "line": 2993,
2718
2715
  "column": 6,
2719
- "file_hash": "cbd7a38e31659fd8fec98475eb99aec72dd80b5345bcf008a53939f1844bf3c2"
2716
+ "file_hash": "95c82d4fa8fff7b00ec0c2e8e5ba6398be530ad806bd243d473c36bd0e6a3f89"
2720
2717
  },
2721
2718
  "rem-batch-executor.buildRemReplaceCandidateQueue.25aa1a67a6": {
2722
2719
  "file": "packages/memory/src/sidecar/rem-batch-executor.ts",
2723
2720
  "function": "buildRemReplaceCandidateQueue",
2724
2721
  "line": 3222,
2725
2722
  "column": 3,
2726
- "file_hash": "cbd7a38e31659fd8fec98475eb99aec72dd80b5345bcf008a53939f1844bf3c2"
2723
+ "file_hash": "95c82d4fa8fff7b00ec0c2e8e5ba6398be530ad806bd243d473c36bd0e6a3f89"
2727
2724
  },
2728
2725
  "rem-batch-executor.buildRemReplaceCandidateQueue.lookup_failed": {
2729
2726
  "file": "packages/memory/src/sidecar/rem-batch-executor.ts",
2730
2727
  "function": "buildRemReplaceCandidateQueue",
2731
2728
  "line": 3304,
2732
2729
  "column": 3,
2733
- "file_hash": "cbd7a38e31659fd8fec98475eb99aec72dd80b5345bcf008a53939f1844bf3c2"
2730
+ "file_hash": "95c82d4fa8fff7b00ec0c2e8e5ba6398be530ad806bd243d473c36bd0e6a3f89"
2734
2731
  },
2735
2732
  "rem-batch-executor.reserveReplaceStage.4e67e45fd5": {
2736
2733
  "file": "packages/memory/src/sidecar/rem-batch-executor.ts",
2737
2734
  "function": "reserveReplaceStage",
2738
2735
  "line": 3751,
2739
2736
  "column": 2,
2740
- "file_hash": "cbd7a38e31659fd8fec98475eb99aec72dd80b5345bcf008a53939f1844bf3c2"
2737
+ "file_hash": "95c82d4fa8fff7b00ec0c2e8e5ba6398be530ad806bd243d473c36bd0e6a3f89"
2741
2738
  },
2742
2739
  "rem-job-store.readCompletedJobs.invalid-line": {
2743
2740
  "file": "packages/memory/src/sidecar/rem-job-store.ts",
@@ -3357,8 +3354,7 @@ const logSiteCatalog = {
3357
3354
  }
3358
3355
  }
3359
3356
  };
3360
- //#endregion
3361
- //#region src/engine/observability/runtime-diagnostics.ts
3357
+ // src/engine/observability/runtime-diagnostics.ts
3362
3358
  const APPLICATION_NAME = "sno-station-mem";
3363
3359
  const log$15 = createLogger("sno-station-mem:runtime");
3364
3360
  let snapshotEmitted = false;
@@ -3443,8 +3439,7 @@ function emitRuntimeStartSnapshot(input) {
3443
3439
  site_id: "runtime.process.started"
3444
3440
  });
3445
3441
  }
3446
- //#endregion
3447
- //#region src/contract/inputs.ts
3442
+ // src/contract/inputs.ts
3448
3443
  const nonempty = z.string().min(1).refine((value) => value.trim().length > 0);
3449
3444
  const timestamp = z.number().finite().nonnegative();
3450
3445
  const category = z.enum(MEMORY_CATEGORIES);
@@ -3692,8 +3687,7 @@ const inputSchemas = {
3692
3687
  }),
3693
3688
  staticBlock: z.object({ scope: scopeSchema })
3694
3689
  };
3695
- //#endregion
3696
- //#region src/contract/results.ts
3690
+ // src/contract/results.ts
3697
3691
  const memoryEntrySchema = z.strictObject({
3698
3692
  id: z.string().min(1),
3699
3693
  factId: z.string().optional(),
@@ -3894,8 +3888,7 @@ z.object({
3894
3888
  ])
3895
3889
  }).optional()
3896
3890
  });
3897
- //#endregion
3898
- //#region src/contract/index.ts
3891
+ // src/contract/index.ts
3899
3892
  function parseInput(method, input) {
3900
3893
  const parsed = inputSchemas[method].safeParse(input);
3901
3894
  if (!parsed.success) throw new ContractError("invalid-input");
@@ -3906,8 +3899,7 @@ function parseOutput(method, output) {
3906
3899
  if (!parsed.success) throw new ContractError("engine-failed");
3907
3900
  return parsed.data;
3908
3901
  }
3909
- //#endregion
3910
- //#region src/engine/provider/canonical-memory-corpus.ts
3902
+ // src/engine/provider/canonical-memory-corpus.ts
3911
3903
  /** @file canonical-memory-corpus.ts
3912
3904
  * @purpose Searches and reads the built-in SnoStationMem canonical memory Markdown corpus.
3913
3905
  * @boundary Only exposes root MEMORY.md and ordinary Markdown files under memory/ in one workspace.
@@ -4150,8 +4142,7 @@ async function readCanonicalMemoryFile(params) {
4150
4142
  lines: requested
4151
4143
  };
4152
4144
  }
4153
- //#endregion
4154
- //#region src/engine/provider/provider-row-renderer.ts
4145
+ // src/engine/provider/provider-row-renderer.ts
4155
4146
  const PROVIDER_ROW_ID_RE = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/;
4156
4147
  function sortJson(value) {
4157
4148
  if (Array.isArray(value)) return value.map(sortJson);
@@ -4197,8 +4188,7 @@ function renderProviderRowMemory(entry) {
4197
4188
  ""
4198
4189
  ].join("\n");
4199
4190
  }
4200
- //#endregion
4201
- //#region src/engine/provider/provider-search-manager.ts
4191
+ // src/engine/provider/provider-search-manager.ts
4202
4192
  const diagnosticLog$11 = createLogger("sno-station-mem:provider-search-manager");
4203
4193
  const ROW_PATH_RE = FIXED_MEMORY_ROW_PATH_PATTERN;
4204
4194
  const DEFAULT_SEARCH_LIMIT = 10;
@@ -4607,8 +4597,7 @@ var SnoStationMemProviderSearchManager = class {
4607
4597
  }
4608
4598
  }
4609
4599
  };
4610
- //#endregion
4611
- //#region src/engine/shared/lru.ts
4600
+ // src/engine/shared/lru.ts
4612
4601
  /** @file lru.ts
4613
4602
  * @purpose Provides a small bounded cache primitive for hot-path runtime state.
4614
4603
  * @boundary In-memory capacity limits and deterministic eviction behavior.
@@ -4636,8 +4625,7 @@ function setLruEntry(map, key, value, maxEntries) {
4636
4625
  map.set(key, value);
4637
4626
  pruneOldestEntries(map, maxEntries);
4638
4627
  }
4639
- //#endregion
4640
- //#region src/engine/provider/provider-authority.ts
4628
+ // src/engine/provider/provider-authority.ts
4641
4629
  /** @file provider-authority.ts
4642
4630
  * @purpose Resolves SnoStationMem external project/agent keys to internal provider authority.
4643
4631
  * @boundary SQLite mapping tables and project-agent membership checks.
@@ -4780,8 +4768,7 @@ async function resolveProviderIdentity(params) {
4780
4768
  workspaceDir
4781
4769
  };
4782
4770
  }
4783
- //#endregion
4784
- //#region src/engine/i18n/detector.ts
4771
+ // src/engine/i18n/detector.ts
4785
4772
  const log$14 = createLogger("sno-station-mem:i18n-detector");
4786
4773
  const HAS_HAN = /[一-鿿]/u;
4787
4774
  const HANT_DISTINCT_CHARS = "說講識讀譯長寫關類體聖貝謊議證讓訊為";
@@ -4844,8 +4831,7 @@ function detectLocale(text) {
4844
4831
  return;
4845
4832
  }
4846
4833
  }
4847
- //#endregion
4848
- //#region src/engine/i18n/resolver.ts
4834
+ // src/engine/i18n/resolver.ts
4849
4835
  const SHORT_TEXT_BYPASS_CHARS = 8;
4850
4836
  const SESSION_ID_MAX_CHARS = 256;
4851
4837
  const sessionCache = new LRUCache({
@@ -4878,8 +4864,7 @@ function resolveLocale({ text, sessionId, explicitLocale }) {
4878
4864
  if (cacheKey) sessionCache.set(cacheKey, { locale: detected });
4879
4865
  return detected;
4880
4866
  }
4881
- //#endregion
4882
- //#region src/engine/retrieval/retrieval-gate.ts
4867
+ // src/engine/retrieval/retrieval-gate.ts
4883
4868
  /** @file retrieval-gate.ts
4884
4869
  * @purpose Decides whether a query needs memory retrieval at all (skip vs proceed).
4885
4870
  * @boundary Intent analysis, temporal classification, and retrieval configuration.
@@ -4902,8 +4887,7 @@ function normalizeQuery(raw) {
4902
4887
  q = q.replace(/\[\w{3}\s+\d{4}-\d{2}-\d{2}\s+\d{2}:\d{2}(?:\s+[\w/+-]+)?\]\s*/g, "");
4903
4888
  return q.trim();
4904
4889
  }
4905
- //#endregion
4906
- //#region src/engine/extraction/confusable-skeleton.ts
4890
+ // src/engine/extraction/confusable-skeleton.ts
4907
4891
  /** @file confusable-skeleton.ts
4908
4892
  * @purpose Normalizes common Unicode confusables before prompt-injection checks.
4909
4893
  */
@@ -4955,8 +4939,7 @@ const CONFUSABLES = {
4955
4939
  function buildConfusableSkeleton(text) {
4956
4940
  return Array.from(text.normalize("NFKC"), (char) => CONFUSABLES[char] ?? char).join("");
4957
4941
  }
4958
- //#endregion
4959
- //#region src/engine/extraction/capture-policy-detector.ts
4942
+ // src/engine/extraction/capture-policy-detector.ts
4960
4943
  const PROMPT_INJECTION_PATTERNS = [
4961
4944
  /\bignore\b.{0,30}\b(all|any|previous|above|prior)\b.{0,30}\binstructions?\b/,
4962
4945
  /\b(forget|disregard|discard|override|bypass)\b.{0,30}\b(previous|prior|above|system|developer)\b.{0,30}\b(instructions?|directions?|messages?|rules?)\b/,
@@ -5170,8 +5153,7 @@ function detectCategory(text, options = {}) {
5170
5153
  return detectCategoryVote(text, options).category;
5171
5154
  }
5172
5155
  createLogger("sno-station-mem:daily-spend-estimator");
5173
- //#endregion
5174
- //#region src/engine/operations/learning-file-maintenance.ts
5156
+ // src/engine/operations/learning-file-maintenance.ts
5175
5157
  /** @file learning-file-maintenance.ts
5176
5158
  * @purpose Manages learning files and skill extraction artifacts for improvement loops.
5177
5159
  * @boundary Filesystem layout, markdown records, and promotion state.
@@ -5419,8 +5401,7 @@ async function appendSelfImprovementEntry(params) {
5419
5401
  filePath
5420
5402
  };
5421
5403
  }
5422
- //#endregion
5423
- //#region src/engine/retrieval/intent-analyzer.ts
5404
+ // src/engine/retrieval/intent-analyzer.ts
5424
5405
  /** @file intent-analyzer.ts
5425
5406
  * @purpose Renders a recalled memory as one line of text for context injection.
5426
5407
  * @boundary Pure formatting; no query parsing, no pattern banks, no locale rules.
@@ -5445,8 +5426,7 @@ function formatAtDepth(entry, score, _index, extra) {
5445
5426
  const datePrefix = extra?.eventDate ? `[${extra.eventDate}] ` : "";
5446
5427
  return `- [${entry.category}] ${datePrefix}${safe} (${scoreStr}${sourceTag})`;
5447
5428
  }
5448
- //#endregion
5449
- //#region src/engine/bindings/memory-tool-access.ts
5429
+ // src/engine/bindings/memory-tool-access.ts
5450
5430
  function assertAccessibleScope(scopePolicy, scope, agentId) {
5451
5431
  const normalized = scope.trim();
5452
5432
  if (!scopePolicy.validateScope(normalized) || !scopePolicy.isAccessible(normalized, agentId)) throw new SnoStationMemError("invalid_scope", `Scope not accessible: ${normalized}`);
@@ -5484,8 +5464,7 @@ function getDefaultScopeForTool(scopePolicy, access) {
5484
5464
  if (hasMissingToolIdentity(access)) throw new SnoStationMemError("invalid_scope", "No accessible scope available for memory_store.");
5485
5465
  return assertAccessibleScope(scopePolicy, scopePolicy.getDefaultScope(access.agentId), access.agentId);
5486
5466
  }
5487
- //#endregion
5488
- //#region src/engine/bindings/memory-tool-formatting.ts
5467
+ // src/engine/bindings/memory-tool-formatting.ts
5489
5468
  /** @file memory-tool-formatting.ts
5490
5469
  * @purpose Converts memory entries into safe user-visible tool output.
5491
5470
  * @boundary Metadata parsing, recalled-text sanitization, and serialization only.
@@ -5555,8 +5534,7 @@ function serializeMemory(entry) {
5555
5534
  timestamp: new Date(entry.timestamp).toISOString()
5556
5535
  };
5557
5536
  }
5558
- //#endregion
5559
- //#region src/engine/bindings/memory-tool-results.ts
5537
+ // src/engine/bindings/memory-tool-results.ts
5560
5538
  /** @file memory-tool-results.ts
5561
5539
  * @purpose Normalizes tool success, audit, and error envelopes.
5562
5540
  * @boundary Result construction and error conversion only.
@@ -5592,8 +5570,7 @@ async function runWithAudit(_ctx, _tool, _scope, run) {
5592
5570
  return makeResult(normalized.message, { errorCode: normalized.code }, true);
5593
5571
  }
5594
5572
  }
5595
- //#endregion
5596
- //#region src/engine/bindings/memory-tool-schemas.ts
5573
+ // src/engine/bindings/memory-tool-schemas.ts
5597
5574
  const TOOL_CATEGORY_INPUTS = [...MEMORY_CATEGORIES];
5598
5575
  const toolCategoryInputSchema = z$1.enum(TOOL_CATEGORY_INPUTS);
5599
5576
  const recallParamsSchema = z$1.object({
@@ -5664,8 +5641,7 @@ z$1.object({
5664
5641
  offset: z$1.number().int().optional(),
5665
5642
  importance_min: z$1.number().optional()
5666
5643
  });
5667
- //#endregion
5668
- //#region src/engine/retrieval/recall-token-packer.ts
5644
+ // src/engine/retrieval/recall-token-packer.ts
5669
5645
  /** @file recall-token-packer.ts
5670
5646
  * @purpose Packs recall rows into a character-estimated token budget without changing rank order.
5671
5647
  * @boundary Pure row selection and budget accounting; no retrieval or rendering.
@@ -5700,8 +5676,7 @@ function packRecallRows(rows, rowText, tokenBudget = DEFAULT_RECALL_TOKEN_BUDGET
5700
5676
  dropped_count: droppedCount
5701
5677
  };
5702
5678
  }
5703
- //#endregion
5704
- //#region src/engine/retrieval/rem-consumer-retrieval.ts
5679
+ // src/engine/retrieval/rem-consumer-retrieval.ts
5705
5680
  const GROUP_CRUD_MAINTENANCE_RECEIPT = "group-crud-maintenance-v1";
5706
5681
  function parseRecallMetadata(metadata) {
5707
5682
  if (typeof metadata === "string") try {
@@ -5909,8 +5884,7 @@ async function retrieveForMemoryRecallOrEval(retriever, input) {
5909
5884
  function packManualRecallRows(rows, tokenBudget) {
5910
5885
  return packRecallRows(rows, (row) => row.snippet?.trim() || row.entry.text, tokenBudget, (row) => row.recallGroupKey);
5911
5886
  }
5912
- //#endregion
5913
- //#region src/engine/bindings/memory-recall-tool.ts
5887
+ // src/engine/bindings/memory-recall-tool.ts
5914
5888
  const log$12 = createLogger("sno-station-mem:memory-recall-tool");
5915
5889
  function appendStructuredRecallContent(result) {
5916
5890
  const count = result.details["count"];
@@ -6178,8 +6152,7 @@ async function executeMemoryRecallTool(ctx, access, _toolCallId, params, options
6178
6152
  }
6179
6153
  });
6180
6154
  }
6181
- //#endregion
6182
- //#region src/engine/extraction/atomic-temporal-normalization.ts
6155
+ // src/engine/extraction/atomic-temporal-normalization.ts
6183
6156
  function normalizeAtomicTemporalRecord(input) {
6184
6157
  const { record, sessionDateTime, sessionTimezone } = input;
6185
6158
  return {
@@ -6188,8 +6161,7 @@ function normalizeAtomicTemporalRecord(input) {
6188
6161
  endedAt: record.endsCurrent ? calculateCalendarTime(record.endedTime, sessionDateTime, sessionTimezone) : null
6189
6162
  };
6190
6163
  }
6191
- //#endregion
6192
- //#region src/engine/extraction/atomic-replacement-sanitizer.ts
6164
+ // src/engine/extraction/atomic-replacement-sanitizer.ts
6193
6165
  /** @file atomic-replacement-sanitizer.ts
6194
6166
  * @purpose Replaces injection-shaped spans without removing their containing text.
6195
6167
  * @boundary Atomic extraction model inputs, model outputs, and stored-memory prompt rendering.
@@ -6414,8 +6386,7 @@ function renderAtomicPromptData(value, locale = "en") {
6414
6386
  matched: sanitized.matched
6415
6387
  };
6416
6388
  }
6417
- //#endregion
6418
- //#region src/engine/extraction/atomic-extraction-gauntlet.ts
6389
+ // src/engine/extraction/atomic-extraction-gauntlet.ts
6419
6390
  /** @file atomic-extraction-gauntlet.ts
6420
6391
  * @purpose Applies deterministic addressing, attribution, atomicity, and span checks.
6421
6392
  * @boundary Dark post-processing before profile keying, subject guard, suppression, and persistence.
@@ -6517,8 +6488,7 @@ async function runAtomicExtractionGauntlet(input) {
6517
6488
  ...suspects.map((record) => normalizeTemporal(processRecord(record, input.turns, locale, true, true)))
6518
6489
  ];
6519
6490
  }
6520
- //#endregion
6521
- //#region src/engine/extraction/attribute-slug-matcher.ts
6491
+ // src/engine/extraction/attribute-slug-matcher.ts
6522
6492
  /** @file attribute-slug-matcher.ts
6523
6493
  * @purpose Resolves an emitted attribute name to a canonical dictionary slug.
6524
6494
  * @boundary Pure resolution over the committed dictionary artifact; no model call, no storage.
@@ -6633,8 +6603,7 @@ function resolveAttributeSlug(index, emitted) {
6633
6603
  if (family.length === 0 || familyOf(match.slug) === family) return match;
6634
6604
  }
6635
6605
  }
6636
- //#endregion
6637
- //#region src/engine/extraction/retired-position-judgment-skill.ts
6606
+ // src/engine/extraction/retired-position-judgment-skill.ts
6638
6607
  /** @file retired-position-judgment-skill.ts
6639
6608
  * @purpose Loads the model-readable retired-position judgment method shipped with the plugin.
6640
6609
  * @boundary Package-relative read of one trusted bundled skill.
@@ -6665,8 +6634,7 @@ const RETIRED_POSITION_JUDGMENT_SKILL = {
6665
6634
  currentPositionMatch: readSection$1("Current Position Match"),
6666
6635
  retirementRecheck: readSection$1("Retirement Recheck")
6667
6636
  };
6668
- //#endregion
6669
- //#region src/engine/extraction/retire-by-name.ts
6637
+ // src/engine/extraction/retire-by-name.ts
6670
6638
  /** @file retire-by-name.ts
6671
6639
  * @purpose Extends one profile-owned retirement to model-named current-position rows.
6672
6640
  * @boundary Extraction-triggered shortlist, judgment, and metadata-only invalidation writes.
@@ -6861,8 +6829,7 @@ async function retireRowsByName(params) {
6861
6829
  completed
6862
6830
  };
6863
6831
  }
6864
- //#endregion
6865
- //#region src/engine/extraction/task-lifecycle-judgment-skill.ts
6832
+ // src/engine/extraction/task-lifecycle-judgment-skill.ts
6866
6833
  /** @file task-lifecycle-judgment-skill.ts
6867
6834
  * @purpose Loads the model-readable active-task judgment method shipped with the plugin.
6868
6835
  * @boundary Package-relative read of one trusted bundled skill.
@@ -6895,8 +6862,7 @@ const TASK_LIFECYCLE_JUDGMENT_SKILL = {
6895
6862
  activeTaskState: [readSection(atomicSkillText, "To-do Boundary"), readSection(taskSkillText, "Active Task State")].join("\n\n"),
6896
6863
  existingTaskRelation: readSection(taskSkillText, "Existing Task Relation")
6897
6864
  };
6898
- //#endregion
6899
- //#region src/engine/extraction/task-lifecycle-route.ts
6865
+ // src/engine/extraction/task-lifecycle-route.ts
6900
6866
  /** @file task-lifecycle-route.ts
6901
6867
  * @purpose Routes one typed task assertion through admission, bounded judgment, and atomic storage.
6902
6868
  * @boundary The only production task mutation ingress; models may select only an admitted identifier.
@@ -7227,8 +7193,7 @@ async function routeTaskLifecycleAssertion(input) {
7227
7193
  conflictRetries: 0
7228
7194
  };
7229
7195
  }
7230
- //#endregion
7231
- //#region src/engine/extraction/profile-section-writer.ts
7196
+ // src/engine/extraction/profile-section-writer.ts
7232
7197
  /** @file profile-section-writer.ts
7233
7198
  * @purpose Mutation-native profile section writer for current-state memory.
7234
7199
  * @boundary Owns profile rows only; no retrieval injection or conflict scan.
@@ -8763,8 +8728,7 @@ function normalizeExactAssertionText(text) {
8763
8728
  function firstSentence$1(text) {
8764
8729
  return text.split(/(?<=[.!?])\s+/)[0]?.trim() || text;
8765
8730
  }
8766
- //#endregion
8767
- //#region src/engine/extraction/b-profile-projection.ts
8731
+ // src/engine/extraction/b-profile-projection.ts
8768
8732
  /** @file b-profile-projection.ts
8769
8733
  * @purpose Projects B-profile model candidates without destroying content-bearing records.
8770
8734
  * @boundary Pure validation and projection only; no transport, persistence, or pipeline wiring.
@@ -9053,8 +9017,7 @@ function codePointLength(value) {
9053
9017
  function takeCodePoints(value, max) {
9054
9018
  return [...value].slice(0, max).join("");
9055
9019
  }
9056
- //#endregion
9057
- //#region src/engine/shared/transcript-role-codec.ts
9020
+ // src/engine/shared/transcript-role-codec.ts
9058
9021
  const TRANSCRIPT_ROLES = [
9059
9022
  "system",
9060
9023
  "user",
@@ -9078,8 +9041,7 @@ function unescapeTranscriptRoleContinuation(line) {
9078
9041
  const escaped = line.slice(1);
9079
9042
  return line.startsWith(ROLE_ESCAPE) && startsWithRoleLabel(escaped) ? escaped : line;
9080
9043
  }
9081
- //#endregion
9082
- //#region src/engine/extraction/b-profile-extraction.ts
9044
+ // src/engine/extraction/b-profile-extraction.ts
9083
9045
  /** @file b-profile-extraction.ts
9084
9046
  * @purpose Runs the REM B-profile extraction lane, one user turn per call.
9085
9047
  * @boundary Turn selection, contract-shaped rendering, reply classification, and retry only.
@@ -9340,8 +9302,7 @@ async function extractBProfileCandidatesFromChunk(input) {
9340
9302
  cleanEmptyModelResult: answeredTurns > 0 && emptyModelResults === answeredTurns
9341
9303
  };
9342
9304
  }
9343
- //#endregion
9344
- //#region src/engine/extraction/atomic-profile-keying.ts
9305
+ // src/engine/extraction/atomic-profile-keying.ts
9345
9306
  /** @file atomic-profile-keying.ts
9346
9307
  * @purpose Runs the profile adapter once per user turn and lets it fill a base record's missing key.
9347
9308
  * @boundary Dark call-2 flow only; no storage writes or live extraction routing.
@@ -9578,8 +9539,7 @@ async function runAtomicProfileKeying(input) {
9578
9539
  }
9579
9540
  return output;
9580
9541
  }
9581
- //#endregion
9582
- //#region src/engine/extraction/atomic-generic-extractor.ts
9542
+ // src/engine/extraction/atomic-generic-extractor.ts
9583
9543
  /** @file atomic-generic-extractor.ts
9584
9544
  * @purpose Runs the dark generic atomic extraction pass over complete transcript windows.
9585
9545
  * @boundary Capture and serial enrichment batches with retries; no writes or gauntlet stages.
@@ -10231,8 +10191,7 @@ async function captureAtomicWindow(input, outputTokenBudget, attempts) {
10231
10191
  failedReply: lastReply
10232
10192
  };
10233
10193
  }
10234
- //#endregion
10235
- //#region src/engine/extraction/entity-identity-judgment.ts
10194
+ // src/engine/extraction/entity-identity-judgment.ts
10236
10195
  /** @file entity-identity-judgment.ts
10237
10196
  * @purpose Resolves unseen entity names through the shipped identity judgment skill.
10238
10197
  * @boundary The model judges; this module selects candidates, validates, journals, and applies.
@@ -10362,8 +10321,7 @@ async function resolveAtomicEntityIdentity(input) {
10362
10321
  }
10363
10322
  };
10364
10323
  }
10365
- //#endregion
10366
- //#region src/engine/extraction/atomic-subject-guard.ts
10324
+ // src/engine/extraction/atomic-subject-guard.ts
10367
10325
  /** @file atomic-subject-guard.ts
10368
10326
  * @purpose Repairs missing profile halves, then guards every user-subject profile in one batch.
10369
10327
  * @boundary Dark flow after profile keying only; no storage writes or live extraction routing.
@@ -10657,8 +10615,7 @@ function buildAtomicWriteCards(input) {
10657
10615
  };
10658
10616
  });
10659
10617
  }
10660
- //#endregion
10661
- //#region src/store/todo-store.ts
10618
+ // src/store/todo-store.ts
10662
10619
  function countTodoTransitionsWithoutSource(database) {
10663
10620
  const row = database.prepare(`SELECT COUNT(*) AS count
10664
10621
  FROM nodix_active_task_transitions AS transition_row
@@ -10673,8 +10630,7 @@ function countTodoTransitionsWithoutSource(database) {
10673
10630
  ) IS NULL`).get();
10674
10631
  return Number(row.count);
10675
10632
  }
10676
- //#endregion
10677
- //#region src/engine/extraction/atomic-memory-extraction.ts
10633
+ // src/engine/extraction/atomic-memory-extraction.ts
10678
10634
  /** @file atomic-memory-extraction.ts
10679
10635
  * @purpose Runs the complete dark atomic extraction path through its one storage door.
10680
10636
  * @boundary Product entrypoint; callers supply chunk identity, routing snapshot, and idempotency.
@@ -10885,10 +10841,49 @@ function parseAtomicConversationTurns(conversationText) {
10885
10841
  if (current) turns.push(current);
10886
10842
  return turns;
10887
10843
  }
10844
+ /**
10845
+ * A capture carries a whole session, so one window over the input budget would be left pending
10846
+ * unextracted: cut it into consecutive windows of whole user-started groups that each fit. A single
10847
+ * group over the budget stays alone.
10848
+ */
10849
+ function captureBatchWindows(turns, userIndexes) {
10850
+ const window = (from, until) => ({
10851
+ turns: turns.slice(from, until),
10852
+ contextTurns: [],
10853
+ followingTurns: [],
10854
+ startIndex: from,
10855
+ ownedTurnIndexes: Array.from({ length: until - from }, (_, offset) => from + offset)
10856
+ });
10857
+ const fits = (from, until) => {
10858
+ const slice = turns.slice(from, until);
10859
+ return Math.ceil(JSON.stringify({
10860
+ context: [],
10861
+ following: [],
10862
+ turns: slice
10863
+ }).length / 4) <= 4096 && countTokens(JSON.stringify({
10864
+ turns: numberAtomicTurns(slice),
10865
+ preceding: [],
10866
+ following: []
10867
+ })) <= 4096;
10868
+ };
10869
+ const starts = [0, ...userIndexes.filter((index) => index > 0)];
10870
+ const windows = [];
10871
+ let from = 0;
10872
+ for (let group = 1; group < starts.length; group += 1) {
10873
+ const start = starts[group] ?? turns.length;
10874
+ if (!fits(from, starts[group + 1] ?? turns.length)) {
10875
+ windows.push(window(from, start));
10876
+ from = start;
10877
+ }
10878
+ }
10879
+ windows.push(window(from, turns.length));
10880
+ return windows;
10881
+ }
10888
10882
  function atomicConversationWindows(turns, captureBatch = false) {
10889
10883
  const userIndexes = turns.flatMap((turn, index) => turn.role === "user" ? [index] : []);
10890
10884
  if (userIndexes.length === 0) return [];
10891
- if (captureBatch || userIndexes.length <= 2) return [{
10885
+ if (captureBatch) return captureBatchWindows(turns, userIndexes);
10886
+ if (userIndexes.length <= 2) return [{
10892
10887
  turns: [...turns],
10893
10888
  contextTurns: [],
10894
10889
  followingTurns: [],
@@ -11955,8 +11950,7 @@ async function runAtomicArrivalRetirementJudgment(input) {
11955
11950
  supersededAt: input.nowMs
11956
11951
  });
11957
11952
  }
11958
- //#endregion
11959
- //#region src/engine/observability/best-effort.ts
11953
+ // src/engine/observability/best-effort.ts
11960
11954
  /** @file best-effort.ts
11961
11955
  * @purpose Keeps cloud observability failures out of plugin control flow.
11962
11956
  * @boundary Telemetry-only error handling.
@@ -11994,8 +11988,7 @@ function bestEffortSync(label, fn, _logger) {
11994
11988
  return;
11995
11989
  }
11996
11990
  }
11997
- //#endregion
11998
- //#region src/engine/observability/cost-aggregator.ts
11991
+ // src/engine/observability/cost-aggregator.ts
11999
11992
  function emptyCounters() {
12000
11993
  return {
12001
11994
  hostAgentPromptTokens: 0,
@@ -12077,8 +12070,7 @@ var CostAggregator = class {
12077
12070
  this.sessions.clear();
12078
12071
  }
12079
12072
  };
12080
- //#endregion
12081
- //#region src/engine/observability/version-metadata.ts
12073
+ // src/engine/observability/version-metadata.ts
12082
12074
  /** @file version-metadata.ts
12083
12075
  * @purpose Resolves SNO Station Core workspace and sno-station-mem package version metadata.
12084
12076
  * @boundary Reads local version files/build-time env only; does not fetch release metadata.
@@ -12128,8 +12120,7 @@ function readPackageVersionUpward(startDir, expectedName) {
12128
12120
  dir = parent;
12129
12121
  }
12130
12122
  }
12131
- //#endregion
12132
- //#region src/engine/observability/adapter.ts
12123
+ // src/engine/observability/adapter.ts
12133
12124
  /** @file adapter.ts
12134
12125
  * @purpose Adapts plugin events to the public @snoai/observability SDK.
12135
12126
  * @boundary Plugin emits only public SDK events; the SDK owns buffering and HTTP delivery.
@@ -12374,8 +12365,7 @@ var PluginObservability = class {
12374
12365
  }, this.logger);
12375
12366
  }
12376
12367
  };
12377
- //#endregion
12378
- //#region src/engine/observability/observable-embedder.ts
12368
+ // src/engine/observability/observable-embedder.ts
12379
12369
  /** @file observable-embedding-provider-client.ts
12380
12370
  * @purpose Emits best-effort observe metadata around embedding calls.
12381
12371
  * @boundary Preserves Embedder behavior; observability failures never affect embedding.
@@ -12413,8 +12403,7 @@ var ObservableEmbedder = class extends Embedder {
12413
12403
  });
12414
12404
  }
12415
12405
  };
12416
- //#endregion
12417
- //#region src/engine/observability/token-counter.ts
12406
+ // src/engine/observability/token-counter.ts
12418
12407
  /** @file token-counter.ts
12419
12408
  * @purpose Selects the token counter labels accepted by sno.ai analytics.
12420
12409
  * @boundary Counts metadata only; never affects embedding or retrieval behavior.
@@ -12466,8 +12455,7 @@ async function countManyEmbeddingTokens(values, config) {
12466
12455
  method: counts[0]?.method ?? "char_approximation"
12467
12456
  };
12468
12457
  }
12469
- //#endregion
12470
- //#region src/engine/observability/observable-memory-store.ts
12458
+ // src/engine/observability/observable-memory-store.ts
12471
12459
  /** @file observable-memory-store.ts
12472
12460
  * @purpose Emits strict runtime audits and best-effort telemetry around memory operations.
12473
12461
  * @boundary Runtime audits fail closed; process telemetry never affects storage.
@@ -13159,8 +13147,7 @@ function writeDetails(entry) {
13159
13147
  existing_count: entry.storeWriteOutcome === "existing" ? 1 : 0
13160
13148
  };
13161
13149
  }
13162
- //#endregion
13163
- //#region src/engine/observability/observable-retriever.ts
13150
+ // src/engine/observability/observable-retriever.ts
13164
13151
  var ObservableMemoryRetriever = class extends MemoryRetriever {
13165
13152
  observability;
13166
13153
  sessionUuidProvider;
@@ -13249,8 +13236,7 @@ function retrievalResults(result) {
13249
13236
  if (typeof result === "object" && result !== null && "results" in result && Array.isArray(result.results)) return result.results;
13250
13237
  return [];
13251
13238
  }
13252
- //#endregion
13253
- //#region src/engine/operations/memory-tier-promoter.ts
13239
+ // src/engine/operations/memory-tier-promoter.ts
13254
13240
  const DEFAULT_TIER_CONFIG = {
13255
13241
  coreAccessThreshold: 10,
13256
13242
  coreCompositeThreshold: .7,
@@ -13343,8 +13329,7 @@ function createTierPromoter(config = DEFAULT_TIER_CONFIG) {
13343
13329
  }
13344
13330
  };
13345
13331
  }
13346
- //#endregion
13347
- //#region src/engine/operations/session-summary-storage.ts
13332
+ // src/engine/operations/session-summary-storage.ts
13348
13333
  const diagnosticLog$6 = createLogger("sno-station-mem:session-summary-storage");
13349
13334
  /** Implements sort file names by mtime desc as the local session summary storage operation. */
13350
13335
  async function sortFileNamesByMtimeDesc(dir, fileNames) {
@@ -13381,8 +13366,7 @@ function extractTextContent(content) {
13381
13366
  }
13382
13367
  return parts.length > 0 ? parts.join("\n") : null;
13383
13368
  }
13384
- //#endregion
13385
- //#region src/engine/reflection/reflection-prompt-input.ts
13369
+ // src/engine/reflection/reflection-prompt-input.ts
13386
13370
  function prepareReflectionPromptInputs(conversation, maxInputChars) {
13387
13371
  const trimmed = conversation.trim();
13388
13372
  if (!trimmed) return [];
@@ -13394,8 +13378,7 @@ function prepareReflectionPromptInputs(conversation, maxInputChars) {
13394
13378
  maxTokens
13395
13379
  }).map((draft) => draft.chunkText);
13396
13380
  }
13397
- //#endregion
13398
- //#region src/engine/reflection/transient-generation-retry.ts
13381
+ // src/engine/reflection/transient-generation-retry.ts
13399
13382
  const TRANSIENT_POLICIES = {
13400
13383
  transportReset: [
13401
13384
  /unexpected eof/i,
@@ -13573,8 +13556,7 @@ async function runWithReflectionTransientRetryOnce(params) {
13573
13556
  }
13574
13557
  }
13575
13558
  }
13576
- //#endregion
13577
- //#region src/engine/security/error-signals.ts
13559
+ // src/engine/security/error-signals.ts
13578
13560
  /** @file error-signals.ts
13579
13561
  * @purpose Classifies error-like text patterns used by capture and retrieval heuristics.
13580
13562
  * @boundary Multilingual runtime regexes and operational signal extraction.
@@ -13703,8 +13685,7 @@ function createErrorSignalTracker(options = {}) {
13703
13685
  }
13704
13686
  };
13705
13687
  }
13706
- //#endregion
13707
- //#region src/engine/reflection/daily-log-generator.ts
13688
+ // src/engine/reflection/daily-log-generator.ts
13708
13689
  /** @file daily-log-generator.ts
13709
13690
  * @purpose Runs reflection analysis and writes durable improvement-oriented records.
13710
13691
  * @boundary LLM prompts, reflection stores, retry handling, and learning extraction.
@@ -13927,8 +13908,7 @@ async function writeReflectionToFilesystem(params) {
13927
13908
  }
13928
13909
  throw new Error(`Failed to allocate unique reflection file for ${dateStr} ${timeCompact}`);
13929
13910
  }
13930
- //#endregion
13931
- //#region src/engine/reflection/derived-line-cache.ts
13911
+ // src/engine/reflection/derived-line-cache.ts
13932
13912
  /**
13933
13913
  * Returns reflection derived cache entry from reflection cache keys state without side effects.
13934
13914
  */
@@ -13959,8 +13939,7 @@ function pruneReflectionDerivedCache(derivedCache, ttlMs, maxSessions, now = Dat
13959
13939
  derivedCache.delete(oldest);
13960
13940
  }
13961
13941
  }
13962
- //#endregion
13963
- //#region src/engine/reflection/derived-suppression-cache.ts
13942
+ // src/engine/reflection/derived-suppression-cache.ts
13964
13943
  /** @file derived-suppression-cache.ts
13965
13944
  * @purpose Tracks short-lived derived-injection suppression after session
13966
13945
  * boundary reflections (`/new`, `/reset`). The just-closed session may have
@@ -14020,8 +13999,7 @@ function isSessionBoundaryReflectionAction(action) {
14020
13999
  const last = normalized.split(":").pop() ?? normalized;
14021
14000
  return last === "new" || last === "reset";
14022
14001
  }
14023
- //#endregion
14024
- //#region src/engine/reflection/reflection-embedded-generator.ts
14002
+ // src/engine/reflection/reflection-embedded-generator.ts
14025
14003
  const DEFAULT_MEMORY_LLM_CONFIG = {
14026
14004
  preset: FIXED_MEMORY_SNO_AI_EXTRACT,
14027
14005
  timeoutMs: 3e4
@@ -14055,13 +14033,11 @@ function pruneReflectionState(errorTracker, derivedCache, suppressionCache, ttlM
14055
14033
  pruneReflectionDerivedCache(derivedCache, ttlMs, maxSessions);
14056
14034
  pruneReflectionDerivedSuppression(suppressionCache, ttlMs, maxSessions);
14057
14035
  }
14058
- //#endregion
14059
- //#region src/engine/reflection/reflection-entry-projector-types.ts
14036
+ // src/engine/reflection/reflection-entry-projector-types.ts
14060
14037
  const REFLECTION_DERIVE_LOGISTIC_K = 1.2;
14061
14038
  const REFLECTION_DERIVE_FALLBACK_BASE_WEIGHT = .35;
14062
14039
  const DEFAULT_REFLECTION_DERIVED_MAX_AGE_MS = 12096e5;
14063
- //#endregion
14064
- //#region src/engine/reflection/entry-metadata-parser.ts
14040
+ // src/engine/reflection/entry-metadata-parser.ts
14065
14041
  /** @file entry-metadata-parser.ts
14066
14042
  * @purpose Defines metadata helpers for reflection provenance, severity, and grouping.
14067
14043
  * @boundary Reflection item storage, retry handling, and reporting surfaces.
@@ -14079,8 +14055,7 @@ function parseReflectionMetadata(metadataRaw) {
14079
14055
  return {};
14080
14056
  }
14081
14057
  }
14082
- //#endregion
14083
- //#region src/engine/reflection/line-quality-ranker.ts
14058
+ // src/engine/reflection/line-quality-ranker.ts
14084
14059
  /** @file line-quality-ranker.ts
14085
14060
  * @purpose Ranks reflection candidates by usefulness, severity, and recency signals.
14086
14061
  * @boundary Reflection metadata, cache state, and retrieval-style scoring rules.
@@ -14124,8 +14099,7 @@ function computeReflectionScore(input) {
14124
14099
  function normalizeReflectionLineForAggregation(line) {
14125
14100
  return String(line).trim().replace(/\s+/g, " ").toLowerCase();
14126
14101
  }
14127
- //#endregion
14128
- //#region src/engine/reflection/reflection-markdown-sections.ts
14102
+ // src/engine/reflection/reflection-markdown-sections.ts
14129
14103
  /** @file reflection-markdown-sections.ts
14130
14104
  * @purpose Extracts named markdown sections and bullet lists from reflection payloads.
14131
14105
  * @boundary Raw markdown parsing only; no reflection-domain classification.
@@ -14161,8 +14135,7 @@ function parseSectionBullets(markdown, heading) {
14161
14135
  }
14162
14136
  return collected;
14163
14137
  }
14164
- //#endregion
14165
- //#region src/engine/reflection/reflection-markdown-types.ts
14138
+ // src/engine/reflection/reflection-markdown-types.ts
14166
14139
  const PARSER_HEADINGS = {
14167
14140
  context: "Context",
14168
14141
  decisionsDurable: "Decisions (durable)",
@@ -14175,8 +14148,7 @@ const PARSER_HEADINGS = {
14175
14148
  lessonsAndPitfalls: "Lessons & pitfalls (symptom / cause / fix / prevention)",
14176
14149
  learningGovernance: "Learning governance candidates (.learnings / promotion / skill extraction)"
14177
14150
  };
14178
- //#endregion
14179
- //#region src/engine/reflection/reflection-slice-sanitizer.ts
14151
+ // src/engine/reflection/reflection-slice-sanitizer.ts
14180
14152
  /** @file reflection-slice-sanitizer.ts
14181
14153
  * @purpose Normalizes reflection slice lines and filters unsafe injectable text.
14182
14154
  * @boundary Line-level sanitization and injection detection only.
@@ -14232,8 +14204,7 @@ function isUnsafeInjectableReflectionLine(line) {
14232
14204
  function sanitizeInjectableReflectionLines(lines) {
14233
14205
  return sanitizeReflectionSliceLines(lines).filter((line) => !isUnsafeInjectableReflectionLine(line));
14234
14206
  }
14235
- //#endregion
14236
- //#region src/engine/reflection/reflection-governance-parser.ts
14207
+ // src/engine/reflection/reflection-governance-parser.ts
14237
14208
  /** @file reflection-governance-parser.ts
14238
14209
  * @purpose Parses reflection lessons and learning-governance candidates.
14239
14210
  * @boundary Governance markdown extraction only; storage and promotion are out of scope.
@@ -14287,8 +14258,7 @@ function parseReflectionGovernanceEntry(block) {
14287
14258
  suggestedAction: readSection("Suggested Action")
14288
14259
  };
14289
14260
  }
14290
- //#endregion
14291
- //#region src/engine/reflection/reflection-mapped-memory-parser.ts
14261
+ // src/engine/reflection/reflection-mapped-memory-parser.ts
14292
14262
  /** @file reflection-mapped-memory-parser.ts
14293
14263
  * @purpose Extracts mapped memory rows from reflection markdown sections.
14294
14264
  * @boundary Reflection markdown to mapped-memory DTOs only.
@@ -14339,8 +14309,7 @@ function extractReflectionMappedMemoryItemsWithSanitizer(reflectionText, sanitiz
14339
14309
  function extractInjectableReflectionMappedMemoryItems(reflectionText) {
14340
14310
  return extractReflectionMappedMemoryItemsWithSanitizer(reflectionText, sanitizeInjectableReflectionLines);
14341
14311
  }
14342
- //#endregion
14343
- //#region src/engine/reflection/reflection-slice-extractor.ts
14312
+ // src/engine/reflection/reflection-slice-extractor.ts
14344
14313
  /** @file reflection-slice-extractor.ts
14345
14314
  * @purpose Classifies reflection markdown into invariant and derived slice items.
14346
14315
  * @boundary Slice extraction only; mapped-memory parsing lives separately.
@@ -14489,8 +14458,7 @@ function buildReflectionItemPayloads(params) {
14489
14458
  };
14490
14459
  });
14491
14460
  }
14492
- //#endregion
14493
- //#region src/engine/reflection/reflection-entry-utils.ts
14461
+ // src/engine/reflection/reflection-entry-utils.ts
14494
14462
  function isReflectionMetadataType(type) {
14495
14463
  return type === "memory-reflection-item" || type === "memory-reflection";
14496
14464
  }
@@ -14525,8 +14493,7 @@ function readClampedNumber(value, fallback, min, max) {
14525
14493
  const num = Number(value);
14526
14494
  return Math.max(min, Math.min(max, Number.isFinite(num) ? num : fallback));
14527
14495
  }
14528
- //#endregion
14529
- //#region src/engine/reflection/reflection-line-loader.ts
14496
+ // src/engine/reflection/reflection-line-loader.ts
14530
14497
  /** @file reflection-line-loader.ts
14531
14498
  * @purpose Load, score, and rank invariant and derived reflection lines.
14532
14499
  * @boundary Reads in-memory entries only; no persistence or I/O.
@@ -14731,8 +14698,7 @@ function resolveLegacyDeriveBaseWeight(metadata) {
14731
14698
  if (metadata.usedFallback === true) return REFLECTION_DERIVE_FALLBACK_BASE_WEIGHT;
14732
14699
  return 1;
14733
14700
  }
14734
- //#endregion
14735
- //#region src/engine/reflection/mapped-memory-metadata-builder.ts
14701
+ // src/engine/reflection/mapped-memory-metadata-builder.ts
14736
14702
  /** @file mapped-memory-metadata-builder.ts
14737
14703
  * @purpose Maps raw reflection metadata into typed fields used by ranking and storage.
14738
14704
  * @boundary Reflection extraction output and schema-compatible persistence.
@@ -14900,8 +14866,7 @@ function buildReflectionEventPayload(params) {
14900
14866
  metadata
14901
14867
  };
14902
14868
  }
14903
- //#endregion
14904
- //#region src/engine/reflection/reflection-store-payload-builder.ts
14869
+ // src/engine/reflection/reflection-store-payload-builder.ts
14905
14870
  /** @file reflection-store-payload-builder.ts
14906
14871
  * @purpose Build reflection event, item, and legacy payloads for storage.
14907
14872
  * @boundary Pure payload assembly from parsed reflection text and caller context.
@@ -14998,8 +14963,7 @@ function buildLegacyCombinedPayload(params) {
14998
14963
  }
14999
14964
  };
15000
14965
  }
15001
- //#endregion
15002
- //#region src/engine/reflection/reflection-store-writer.ts
14966
+ // src/engine/reflection/reflection-store-writer.ts
15003
14967
  /** @file reflection-store-writer.ts
15004
14968
  * @purpose Persist reflection payloads with semantic duplicate protection.
15005
14969
  * @boundary Store embedding, duplicate search, and write orchestration.
@@ -15083,8 +15047,7 @@ function hasDuplicateReflectionPayload(payload, matches) {
15083
15047
  return existingMetadata.type === "memory-reflection-item" && existingMetadata.sessionId === itemMetadata.sessionId && existingMetadata.agentId === itemMetadata.agentId && existingMetadata.itemKind === itemMetadata.itemKind && match.entry.text === payload.text;
15084
15048
  });
15085
15049
  }
15086
- //#endregion
15087
- //#region src/engine/reflection/reflection-slice-loader.ts
15050
+ // src/engine/reflection/reflection-slice-loader.ts
15088
15051
  /** @file reflection-slice-loader.ts
15089
15052
  * @purpose Loads and caches reflection slices for prompt injection.
15090
15053
  */
@@ -15132,8 +15095,7 @@ function createReflectionSliceLoader(params) {
15132
15095
  function limitSources(sources, limit) {
15133
15096
  return sources.filter((source) => source.rank <= limit);
15134
15097
  }
15135
- //#endregion
15136
- //#region src/engine/reflection/strategy-hook-runner.ts
15098
+ // src/engine/reflection/strategy-hook-runner.ts
15137
15099
  /** @file strategy-hook-runner.ts
15138
15100
  * @purpose Connects runtime events to reflection storage and learning workflows.
15139
15101
  * @boundary Plugin hooks, reflection analysis, and self-improvement integration.
@@ -15194,8 +15156,7 @@ z.object({
15194
15156
  dbPath: z.string().min(1)
15195
15157
  });
15196
15158
  createLogger("sno-station-mem:data-bootstrap");
15197
- //#endregion
15198
- //#region src/engine/bindings/sno-station-mem-insight-distill-factory.ts
15159
+ // src/engine/bindings/sno-station-mem-insight-distill-factory.ts
15199
15160
  /** @file sno-station-mem-insight-distill-factory.ts
15200
15161
  * @purpose Builds the optional Insight Distill LLM extractor from validated plugin runtime config.
15201
15162
  * @boundary Extractor construction only; capture execution lives in the Ambient Learning hook.
@@ -15310,8 +15271,7 @@ function buildInsightDistiller(api, config, store, _embedder, _observability, _s
15310
15271
  throw new Error(`sno-station-mem insight-distill init failed: ${err instanceof Error ? err.message : String(err)}`);
15311
15272
  }
15312
15273
  }
15313
- //#endregion
15314
- //#region src/engine/bindings/sno-station-mem-message-transcript.ts
15274
+ // src/engine/bindings/sno-station-mem-message-transcript.ts
15315
15275
  /** @file sno-station-mem-message-transcript.ts
15316
15276
  * @purpose Normalizes SDK message records into capture transcripts and session timestamps.
15317
15277
  * @boundary Message-shape parsing and redaction for transcript construction only.
@@ -15447,8 +15407,7 @@ function buildConversationText(messages, captureAssistant) {
15447
15407
  latestUserMemorySourceText
15448
15408
  };
15449
15409
  }
15450
- //#endregion
15451
- //#region src/engine/bindings/sno-station-mem-ambient-learning-hook.ts
15410
+ // src/engine/bindings/sno-station-mem-ambient-learning-hook.ts
15452
15411
  /** @file sno-station-mem-ambient-learning-hook.ts
15453
15412
  * @purpose Routes successful agent conversations through atomic memory extraction.
15454
15413
  * @boundary The agent_end hook path only; registration and service lifecycle are elsewhere.
@@ -15681,8 +15640,7 @@ async function onAgentEnd(api, config, store, _embedder, scopePolicy, insightDis
15681
15640
  return outcome;
15682
15641
  });
15683
15642
  }
15684
- //#endregion
15685
- //#region src/engine/bindings/memory-store-tool.ts
15643
+ // src/engine/bindings/memory-store-tool.ts
15686
15644
  /** @file memory-store-tool.ts
15687
15645
  * @purpose Registers the memory_store tool.
15688
15646
  * @boundary One host tool registration and its handler logic.
@@ -15832,8 +15790,7 @@ async function executeMemoryStore(ctx, access, params) {
15832
15790
  async function executeMemoryStoreTool(ctx, access, _toolCallId, params) {
15833
15791
  return runWithAudit(ctx, "memory_store", void 0, () => executeMemoryStore(ctx, access, params));
15834
15792
  }
15835
- //#endregion
15836
- //#region src/engine/bindings/memory-forget-tool.ts
15793
+ // src/engine/bindings/memory-forget-tool.ts
15837
15794
  /** @file memory-forget-tool.ts
15838
15795
  * @purpose Registers the memory_forget tool.
15839
15796
  * @boundary One host tool registration and its handler logic.
@@ -15889,8 +15846,7 @@ async function executeMemoryForgetTool(ctx, access, _toolCallId, params) {
15889
15846
  });
15890
15847
  });
15891
15848
  }
15892
- //#endregion
15893
- //#region src/engine/bindings/memory-update-tool.ts
15849
+ // src/engine/bindings/memory-update-tool.ts
15894
15850
  async function executeMemoryUpdateTool(ctx, _access, _toolCallId, params) {
15895
15851
  return runWithAudit(ctx, "memory_update", void 0, async () => {
15896
15852
  const parsed = updateParamsSchema.parse(params);
@@ -16003,8 +15959,7 @@ async function executeMemoryUpdateTool(ctx, _access, _toolCallId, params) {
16003
15959
  return makeResult(`Updated memory: ${parsed.id}`, { id: updated.id });
16004
15960
  });
16005
15961
  }
16006
- //#endregion
16007
- //#region src/engine/bindings/memory-reflection-resolve-tool.ts
15962
+ // src/engine/bindings/memory-reflection-resolve-tool.ts
16008
15963
  /** @file memory-reflection-resolve-tool.ts
16009
15964
  * @purpose Registers the memory_reflection_resolve tool.
16010
15965
  * @boundary Marks reflection items resolved so they stop participating in reflection recall.
@@ -16146,8 +16101,7 @@ async function executeMemoryReflectionResolveTool(ctx, access, _toolCallId, para
16146
16101
  });
16147
16102
  });
16148
16103
  }
16149
- //#endregion
16150
- //#region src/engine/reflection/reflection-mapped-memory-loop.ts
16104
+ // src/engine/reflection/reflection-mapped-memory-loop.ts
16151
16105
  const diagnosticLog$3 = createLogger("sno-station-mem:reflection-mapped-memory-loop");
16152
16106
  const MAX_MAPPED_ENTRIES = 100;
16153
16107
  const MAPPED_DEDUP_THRESHOLD = .95;
@@ -16346,8 +16300,7 @@ function governanceEntryType(area) {
16346
16300
  if (a === "feature" || a === "features" || a.includes("feat")) return "feature";
16347
16301
  return "learning";
16348
16302
  }
16349
- //#endregion
16350
- //#region src/engine/reflection/session-serial-guard.ts
16303
+ // src/engine/reflection/session-serial-guard.ts
16351
16304
  /** @file session-serial-guard.ts
16352
16305
  * @purpose Serializes reflection runs per session via in-flight lock + post-completion debounce.
16353
16306
  * @boundary Reflection hook entry - called once per command:new / command:reset.
@@ -16470,8 +16423,7 @@ async function runWithSerialGuard(sessionKey, work, logger = { info: () => {} })
16470
16423
  }
16471
16424
  return true;
16472
16425
  }
16473
- //#endregion
16474
- //#region src/engine/reflection/reflection-command-hooks.ts
16426
+ // src/engine/reflection/reflection-command-hooks.ts
16475
16427
  /** @file reflection-command-hooks.ts
16476
16428
  * @purpose Registers command hooks that write reflection logs and memories.
16477
16429
  */
@@ -16772,8 +16724,7 @@ async function appendGovernanceEntries(params, eventId) {
16772
16724
  });
16773
16725
  }
16774
16726
  }
16775
- //#endregion
16776
- //#region src/engine/reflection/reflection-lifecycle-hooks.ts
16727
+ // src/engine/reflection/reflection-lifecycle-hooks.ts
16777
16728
  /** @file reflection-lifecycle-hooks.ts
16778
16729
  * @purpose Tracks reflection error signals and clears per-session state.
16779
16730
  */
@@ -16831,8 +16782,7 @@ function createReflectionLifecycleHandler2(params) {
16831
16782
  params.doPrune();
16832
16783
  };
16833
16784
  }
16834
- //#endregion
16835
- //#region src/engine/reflection/reflection-injection-hooks.ts
16785
+ // src/engine/reflection/reflection-injection-hooks.ts
16836
16786
  const diagnosticLog = createLogger("sno-station-mem:reflection-injection-hooks");
16837
16787
  function appendPendingErrorBlock(params, sessionKey, blocks) {
16838
16788
  if (!sessionKey) return;
@@ -17046,8 +16996,7 @@ function createReflectionInjectionHandler3(params) {
17046
16996
  }
17047
16997
  };
17048
16998
  }
17049
- //#endregion
17050
- //#region src/engine/contract-runtime.ts
16999
+ // src/engine/contract-runtime.ts
17051
17000
  /**
17052
17001
  * A logical scope is a configured or built-in scope name the installed policy grants this agent;
17053
17002
  * a path is never one. A system caller (host operator) may name any valid scope.
@@ -17956,15 +17905,13 @@ var MemoryContractRuntime = class {
17956
17905
  };
17957
17906
  }
17958
17907
  };
17959
- //#endregion
17960
- //#region src/engine/telemetry/memory-telemetry-incidents.ts
17908
+ // src/engine/telemetry/memory-telemetry-incidents.ts
17961
17909
  function recordMemoryTelemetryIncident(sqlite, input) {
17962
17910
  sqlite.prepare(`INSERT INTO nodix_memory_telemetry_incidents
17963
17911
  (incident_type, severity, message, payload_json, created_at_ms)
17964
17912
  VALUES (?, ?, ?, ?, ?)`).run(input.incidentType, input.severity, input.message, input.payload ? JSON.stringify(input.payload) : null, input.createdAtMs ?? Date.now());
17965
17913
  }
17966
- //#endregion
17967
- //#region src/engine/telemetry/memory-telemetry-outbox.ts
17914
+ // src/engine/telemetry/memory-telemetry-outbox.ts
17968
17915
  const DEFAULT_USAGE_OUTBOX_BATCH_SIZE = 50;
17969
17916
  const USAGE_OUTBOX_CLAIM_LEASE_MS = 6e4;
17970
17917
  const activeFlushes = /* @__PURE__ */ new Map();
@@ -18401,8 +18348,7 @@ function safeErrorMessage(error) {
18401
18348
  if (error instanceof Error && error.message.trim().length > 0) return error.message.slice(0, 500);
18402
18349
  return "memory telemetry usage flush failed";
18403
18350
  }
18404
- //#endregion
18405
- //#region src/store/backup.ts
18351
+ // src/store/backup.ts
18406
18352
  /** @file backup.ts
18407
18353
  * @purpose Exports, imports, and validates persisted memory data for backup workflows.
18408
18354
  * @boundary Memory store serialization, schema compatibility, and CLI operations.
@@ -18538,8 +18484,7 @@ function runBackup(dbPath, stateDir, options = {}) {
18538
18484
  });
18539
18485
  return safeBackupPath;
18540
18486
  }
18541
- //#endregion
18542
- //#region src/store/maintenance.ts
18487
+ // src/store/maintenance.ts
18543
18488
  /** @file maintenance.ts
18544
18489
  * @purpose Ordered maintenance pass: integrity check, outbox drain, usage-event retention, FTS
18545
18490
  * merge, planner statistics, backup, REM trigger check. Each job runs on its own interval.
@@ -18926,8 +18871,7 @@ function startMaintenanceTimer(deps, tickMs = MAINTENANCE_TICK_MS, firstTickDela
18926
18871
  });
18927
18872
  return { stop };
18928
18873
  }
18929
- //#endregion
18930
- //#region src/model/registered-agent-port.ts
18874
+ // src/model/registered-agent-port.ts
18931
18875
  const CALLBACK_TIMEOUT_MS = 12e4;
18932
18876
  const relayedFailureSchema = z.object({ error: z.discriminatedUnion("kind", [z.object({
18933
18877
  kind: z.literal("cancelled"),
@@ -19147,8 +19091,7 @@ function hostChain(hosts) {
19147
19091
  }
19148
19092
  };
19149
19093
  }
19150
- //#endregion
19151
- //#region src/sidecar/memory-runtime.ts
19094
+ // src/sidecar/memory-runtime.ts
19152
19095
  /** The skin and observe session of the request in flight; store, embedder and retriever events carry both. */
19153
19096
  const observeSession = new AsyncLocalStorage();
19154
19097
  const observeSessionUuid = () => observeSession.getStore()?.uuid;
@@ -19277,7 +19220,7 @@ var MemoryRuntimePool = class MemoryRuntimePool {
19277
19220
  static async open() {
19278
19221
  const settings = readSettings();
19279
19222
  const storePath = settings.store.path;
19280
- const config = settingsToPluginConfig(settings, "product");
19223
+ const config = settingsToPluginConfig(settings, process.env.SNO_USAGE_CLASS === "research" ? "research" : "product");
19281
19224
  try {
19282
19225
  emitRuntimeStartSnapshot({
19283
19226
  runtimeMode: "sidecar",
@@ -19775,5 +19718,4 @@ var MemoryRuntimePool = class MemoryRuntimePool {
19775
19718
  await this.observability.shutdown();
19776
19719
  }
19777
19720
  };
19778
- //#endregion
19779
19721
  export { MemoryRuntimePool };