@snoai/memory 1.7.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (357) 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/agent-state-osRgfRdR.js +928 -0
  8. package/dist/agent-state-view.d.ts +1 -0
  9. package/dist/agent-state-view.js +185 -0
  10. package/dist/{all-resources-Dij6l5h0.d.ts → all-resources-3zj0PED4.d.ts} +2 -4
  11. package/dist/{all-resources-BQK2ugjB.js → all-resources-BZc9QIAW.js} +41 -81
  12. package/dist/{ambient-learning-text-normalizer-_fH3LeuK.d.ts → ambient-learning-text-normalizer-H_idEjJi.d.ts} +0 -2
  13. package/dist/{ambient-learning-text-normalizer-CxjATmMp.js → ambient-learning-text-normalizer-dxAxf9oi.js} +3 -5
  14. package/dist/{atomic-extraction-reply-DF_S9ROg.js → atomic-extraction-reply-CoxIGLmU.js} +6 -9
  15. package/dist/{atomic-extraction-skill-CcXmuCqL.js → atomic-extraction-skill-5lAqr8BM.js} +1 -2
  16. package/dist/{atomic-memory-extraction-Bp7AWZqi.d.ts → atomic-memory-extraction-DcoaYWiS.d.ts} +6 -20
  17. package/dist/{atomic-memory-extraction-pL1_58Kw.js → atomic-memory-extraction-OusdO3Ig.js} +27 -40
  18. package/dist/{b-profile-section-dictionary-provider-Buj_M-QA.d.ts → b-profile-section-dictionary-provider-BuzxMJtG.d.ts} +2 -6
  19. package/dist/{b-profile-section-dictionary-provider-BHkoNqgk.js → b-profile-section-dictionary-provider-DMGsJlYh.js} +3 -6
  20. package/dist/{best-effort-BPZSzKk0.d.ts → best-effort-DvyP9avp.d.ts} +0 -2
  21. package/dist/{calendar-instruction-CzqZbAPG.js → calendar-instruction-uK6xsrCt.js} +1 -2
  22. package/dist/{capture-policy-detector-3tDQkBi9.d.ts → capture-policy-detector-CEgDjHPq.d.ts} +1 -3
  23. package/dist/{capture-policy-detector-DaMfy9CZ.js → capture-policy-detector-DhNGhDw3.js} +5 -7
  24. package/dist/{classifier-CXQxJJPP.d.ts → classifier-DeFV9Zro.d.ts} +1 -5
  25. package/dist/client.d.ts +1 -3
  26. package/dist/client.js +5 -7
  27. package/dist/coding-skin-D_2RbNDw.js +342 -0
  28. package/dist/coding-skin.d.ts +87 -5
  29. package/dist/coding-skin.js +3 -2
  30. package/dist/{config-BwUcq2zS.js → config-VPVf190N.js} +18 -35
  31. package/dist/{connection-D989FqGS.d.ts → connection-22Uywd-U.d.ts} +1 -6
  32. package/dist/{connection-BtK-3r-f.js → connection-H-_OZ-pP.js} +3 -5
  33. package/dist/{daily-log-generator-DEsiCs7o.js → daily-log-generator-DdzlaQYy.js} +8 -12
  34. package/dist/{daily-log-generator-CsQPHl4A.d.ts → daily-log-generator-IbaCpCH8.d.ts} +1 -5
  35. package/dist/{daily-spend-estimator-DiwzBlo1.d.ts → daily-spend-estimator-CKaQYiHB.d.ts} +0 -2
  36. package/dist/{data-bootstrap-Bl3lthzE.d.ts → data-bootstrap-Bf_VMTSc.d.ts} +0 -4
  37. package/dist/{data-bootstrap-P8sie9WA.js → data-bootstrap-Db6a7ASj.js} +1 -3
  38. package/dist/{data-paths-C7sNdqvP.d.ts → data-paths-CFwVskNd.d.ts} +0 -2
  39. package/dist/{derived-suppression-cache-CcANI-p7.d.ts → derived-suppression-cache-ByclOuKE.d.ts} +1 -7
  40. package/dist/diagnostic-encoder.d.ts +0 -2
  41. package/dist/diagnostic-encoder.js +2 -3
  42. package/dist/{embedding-provider-client-CELWtPgt.d.ts → embedding-provider-client-Bli3uXan.d.ts} +0 -4
  43. package/dist/{embedding-provider-client-CgpUK_1G.js → embedding-provider-client-ClgiYSD4.js} +4 -8
  44. package/dist/{entry-metadata-parser-BIVSMCIk.js → entry-metadata-parser-W53-Odqm.js} +1 -2
  45. package/dist/{error-D-wb-rZw.js → error-Dga5Ot1M.js} +1 -2
  46. package/dist/{error-signals-lMH2uAdV.js → error-signals-CqvwBBWn.js} +1 -2
  47. package/dist/{error-signals-D8_3vYu4.d.ts → error-signals-f0JhwtHI.d.ts} +0 -2
  48. package/dist/{errors-CeVRxf9V.d.ts → errors-Cqej5eCm.d.ts} +0 -2
  49. package/dist/{extraction-text-sanitizer-B_AhIecT.d.ts → extraction-text-sanitizer-D_7Ogceg.d.ts} +0 -2
  50. package/dist/{i18n-text-DbD6Qify.d.ts → i18n-text-CqS4mUit.d.ts} +0 -2
  51. package/dist/{index-Df9420Pl.d.ts → index-B0iQL0Kp.d.ts} +3 -15
  52. package/dist/{index-DPfJrOFD.d.ts → index-B3H1zNbk.d.ts} +2 -38
  53. package/dist/{index-CJrMFlAU.d.ts → index-oFJyQfvq.d.ts} +0 -2
  54. package/dist/index.d.ts +12 -14
  55. package/dist/index.js +18 -22
  56. package/dist/{intent-analyzer-B5XVrWwe.d.ts → intent-analyzer-DmeMSTrr.d.ts} +0 -2
  57. package/dist/internal/config/index.d.ts +1 -1
  58. package/dist/internal/config/index.js +1 -2
  59. package/dist/internal/config/plugin-config-schema.d.ts +1 -1
  60. package/dist/internal/config/plugin-config-schema.js +1 -2
  61. package/dist/internal/config/product-mode.d.ts +1 -1
  62. package/dist/internal/config/product-mode.js +1 -2
  63. package/dist/internal/config/settings.d.ts +1 -1
  64. package/dist/internal/config/settings.js +4 -5
  65. package/dist/internal/config/skill-categories.d.ts +1 -3
  66. package/dist/internal/config/skill-categories.js +1 -2
  67. package/dist/internal/config/skin-defaults.d.ts +1 -3
  68. package/dist/internal/config/skin-defaults.js +1 -2
  69. package/dist/internal/contract/discovery.d.ts +1 -3
  70. package/dist/internal/contract/discovery.js +2 -3
  71. package/dist/internal/contract/profile.d.ts +1 -1
  72. package/dist/internal/contract/profile.js +1 -2
  73. package/dist/internal/contract/routes.d.ts +1 -1
  74. package/dist/internal/contract/routes.js +1 -2
  75. package/dist/internal/engine/bindings/memory-cli-shared.d.ts +7 -9
  76. package/dist/internal/engine/bindings/memory-cli-shared.js +1 -2
  77. package/dist/internal/engine/bindings/memory-forget-tool.d.ts +1 -3
  78. package/dist/internal/engine/bindings/memory-forget-tool.js +2 -3
  79. package/dist/internal/engine/bindings/memory-list-tool.d.ts +1 -3
  80. package/dist/internal/engine/bindings/memory-list-tool.js +2 -3
  81. package/dist/internal/engine/bindings/memory-recall-tool.d.ts +1 -3
  82. package/dist/internal/engine/bindings/memory-recall-tool.js +3 -4
  83. package/dist/internal/engine/bindings/memory-reflection-resolve-tool.d.ts +1 -3
  84. package/dist/internal/engine/bindings/memory-reflection-resolve-tool.js +3 -4
  85. package/dist/internal/engine/bindings/memory-stats-tool.d.ts +1 -3
  86. package/dist/internal/engine/bindings/memory-stats-tool.js +3 -4
  87. package/dist/internal/engine/bindings/memory-store-tool.d.ts +1 -3
  88. package/dist/internal/engine/bindings/memory-store-tool.js +6 -7
  89. package/dist/internal/engine/bindings/memory-tool-access.d.ts +3 -5
  90. package/dist/internal/engine/bindings/memory-tool-access.js +2 -3
  91. package/dist/internal/engine/bindings/memory-tool-formatting.d.ts +1 -3
  92. package/dist/internal/engine/bindings/memory-tool-formatting.js +2 -3
  93. package/dist/internal/engine/bindings/memory-tool-results.d.ts +3 -5
  94. package/dist/internal/engine/bindings/memory-tool-results.js +2 -3
  95. package/dist/internal/engine/bindings/memory-tool-schemas.d.ts +9 -11
  96. package/dist/internal/engine/bindings/memory-tool-schemas.js +2 -3
  97. package/dist/internal/engine/bindings/memory-update-tool.d.ts +1 -3
  98. package/dist/internal/engine/bindings/memory-update-tool.js +5 -6
  99. package/dist/internal/engine/bindings/sno-station-mem-ambient-learning-hook.d.ts +7 -9
  100. package/dist/internal/engine/bindings/sno-station-mem-ambient-learning-hook.js +8 -9
  101. package/dist/internal/engine/bindings/sno-station-mem-auto-recall-hook.d.ts +7 -9
  102. package/dist/internal/engine/bindings/sno-station-mem-auto-recall-hook.js +6 -7
  103. package/dist/internal/engine/bindings/sno-station-mem-hook-types.d.ts +1 -3
  104. package/dist/internal/engine/bindings/sno-station-mem-insight-distill-factory.d.ts +8 -10
  105. package/dist/internal/engine/bindings/sno-station-mem-insight-distill-factory.js +4 -5
  106. package/dist/internal/engine/bindings/sno-station-mem-message-transcript.d.ts +2 -4
  107. package/dist/internal/engine/bindings/sno-station-mem-message-transcript.js +5 -6
  108. package/dist/internal/engine/bindings/sno-station-mem-reset-hook.d.ts +6 -8
  109. package/dist/internal/engine/bindings/sno-station-mem-reset-hook.js +1 -2
  110. package/dist/internal/engine/bindings/sno-station-mem-runtime-mode.d.ts +2 -4
  111. package/dist/internal/engine/bindings/sno-station-mem-runtime-mode.js +4 -5
  112. package/dist/internal/engine/bindings/sno-station-mem-session-state.d.ts +1 -3
  113. package/dist/internal/engine/bindings/sno-station-mem-session-state.js +1 -2
  114. package/dist/internal/engine/eval/trace.d.ts +1 -1
  115. package/dist/internal/engine/eval/trace.js +1 -2
  116. package/dist/internal/engine/extraction/ambient-learning-text-normalizer.d.ts +1 -1
  117. package/dist/internal/engine/extraction/ambient-learning-text-normalizer.js +1 -2
  118. package/dist/internal/engine/extraction/atomic-memory-extraction.d.ts +1 -1
  119. package/dist/internal/engine/extraction/atomic-memory-extraction.js +1 -2
  120. package/dist/internal/engine/extraction/b-profile-section-dictionary-provider.d.ts +1 -1
  121. package/dist/internal/engine/extraction/b-profile-section-dictionary-provider.js +1 -2
  122. package/dist/internal/engine/extraction/b-profile-section-rekey.d.ts +6 -8
  123. package/dist/internal/engine/extraction/b-profile-section-rekey.js +4 -5
  124. package/dist/internal/engine/extraction/capture-policy-detector.d.ts +1 -1
  125. package/dist/internal/engine/extraction/capture-policy-detector.js +1 -2
  126. package/dist/internal/engine/extraction/embedding-provider-client.d.ts +1 -1
  127. package/dist/internal/engine/extraction/embedding-provider-client.js +1 -2
  128. package/dist/internal/engine/extraction/extraction-text-sanitizer.d.ts +1 -1
  129. package/dist/internal/engine/extraction/extraction-text-sanitizer.js +3 -4
  130. package/dist/internal/engine/extraction/memory-metadata-codec.d.ts +2 -2
  131. package/dist/internal/engine/extraction/memory-metadata-codec.js +1 -2
  132. package/dist/internal/engine/extraction/memory-temporality-classifier.d.ts +1 -1
  133. package/dist/internal/engine/extraction/memory-temporality-classifier.js +1 -2
  134. package/dist/internal/engine/i18n/all-resources.d.ts +1 -1
  135. package/dist/internal/engine/i18n/all-resources.js +1 -2
  136. package/dist/internal/engine/i18n/locales.d.ts +1 -1
  137. package/dist/internal/engine/i18n/locales.js +1 -2
  138. package/dist/internal/engine/i18n/res/_types.d.ts +1 -1
  139. package/dist/internal/engine/i18n/res/_types.js +1 -2
  140. package/dist/internal/engine/observability/adapter.d.ts +1 -1
  141. package/dist/internal/engine/observability/adapter.js +1 -2
  142. package/dist/internal/engine/observability/best-effort.d.ts +1 -1
  143. package/dist/internal/engine/observability/best-effort.js +1 -2
  144. package/dist/internal/engine/observability/early-diagnostics.js +1 -2
  145. package/dist/internal/engine/observability/memory-snapshot.d.ts +1 -1
  146. package/dist/internal/engine/observability/memory-snapshot.js +1 -2
  147. package/dist/internal/engine/observability/observable-embedder.d.ts +1 -1
  148. package/dist/internal/engine/observability/observable-embedder.js +2 -3
  149. package/dist/internal/engine/observability/observable-llm-client.d.ts +1 -1
  150. package/dist/internal/engine/observability/observable-llm-client.js +2 -3
  151. package/dist/internal/engine/observability/observable-memory-store.d.ts +1 -1
  152. package/dist/internal/engine/observability/observable-memory-store.js +4 -5
  153. package/dist/internal/engine/observability/observable-retriever.d.ts +1 -1
  154. package/dist/internal/engine/observability/observable-retriever.js +4 -5
  155. package/dist/internal/engine/observability/runtime-diagnostics.d.ts +2 -4
  156. package/dist/internal/engine/observability/runtime-diagnostics.js +6 -7
  157. package/dist/internal/engine/observability/session-registry.d.ts +1 -1
  158. package/dist/internal/engine/observability/session-registry.js +1 -2
  159. package/dist/internal/engine/observability/version-metadata.d.ts +1 -3
  160. package/dist/internal/engine/observability/version-metadata.js +1 -2
  161. package/dist/internal/engine/operations/daily-spend-estimator.d.ts +1 -1
  162. package/dist/internal/engine/operations/daily-spend-estimator.js +2 -3
  163. package/dist/internal/engine/operations/learning-file-maintenance.d.ts +1 -1
  164. package/dist/internal/engine/operations/learning-file-maintenance.js +3 -4
  165. package/dist/internal/engine/operations/memory-tier-promoter.d.ts +1 -1
  166. package/dist/internal/engine/operations/memory-tier-promoter.js +1 -2
  167. package/dist/internal/engine/operations/runtime-audit-log.d.ts +2 -2
  168. package/dist/internal/engine/operations/runtime-audit-log.js +1 -1
  169. package/dist/internal/engine/provider/canonical-memory-corpus.d.ts +2 -4
  170. package/dist/internal/engine/provider/canonical-memory-corpus.js +2 -3
  171. package/dist/internal/engine/provider/provider-registration.d.ts +7 -9
  172. package/dist/internal/engine/provider/provider-registration.js +1 -2
  173. package/dist/internal/engine/provider/provider-row-renderer.d.ts +2 -4
  174. package/dist/internal/engine/provider/provider-row-renderer.js +2 -3
  175. package/dist/internal/engine/provider/provider-types.d.ts +1 -1
  176. package/dist/internal/engine/reflection/daily-log-generator.d.ts +1 -1
  177. package/dist/internal/engine/reflection/daily-log-generator.js +1 -2
  178. package/dist/internal/engine/reflection/reflection-command-hooks.d.ts +1 -1
  179. package/dist/internal/engine/reflection/reflection-command-hooks.js +1 -2
  180. package/dist/internal/engine/reflection/reflection-deps.d.ts +1 -1
  181. package/dist/internal/engine/reflection/reflection-embedded-generator.d.ts +1 -1
  182. package/dist/internal/engine/reflection/reflection-embedded-generator.js +1 -2
  183. package/dist/internal/engine/reflection/reflection-injection-hooks.d.ts +1 -1
  184. package/dist/internal/engine/reflection/reflection-injection-hooks.js +3 -4
  185. package/dist/internal/engine/reflection/reflection-lifecycle-hooks.d.ts +1 -1
  186. package/dist/internal/engine/reflection/reflection-lifecycle-hooks.js +3 -4
  187. package/dist/internal/engine/reflection/strategy-hook-runner.d.ts +3 -3
  188. package/dist/internal/engine/reflection/strategy-hook-runner.js +2 -2
  189. package/dist/internal/engine/rem/classifier.d.ts +1 -1
  190. package/dist/internal/engine/rem/classifier.js +1 -2
  191. package/dist/internal/engine/rem/index.d.ts +3 -3
  192. package/dist/internal/engine/rem/index.js +18 -36
  193. package/dist/internal/engine/rem/types.d.ts +1 -1
  194. package/dist/internal/engine/rem/types.js +1 -2
  195. package/dist/internal/engine/retrieval/access-tracker.d.ts +1 -1
  196. package/dist/internal/engine/retrieval/access-tracker.js +1 -2
  197. package/dist/internal/engine/retrieval/intent-analyzer.d.ts +1 -1
  198. package/dist/internal/engine/retrieval/intent-analyzer.js +1 -2
  199. package/dist/internal/engine/retrieval/retrieval-gate.d.ts +1 -1
  200. package/dist/internal/engine/retrieval/retrieval-gate.js +1 -2
  201. package/dist/internal/engine/retrieval/retriever.d.ts +1 -1
  202. package/dist/internal/engine/retrieval/retriever.js +1 -2
  203. package/dist/internal/engine/security/memory-scope-policy.d.ts +1 -1
  204. package/dist/internal/engine/security/memory-scope-policy.js +1 -2
  205. package/dist/internal/engine/security/redact.d.ts +1 -1
  206. package/dist/internal/engine/security/redact.js +1 -2
  207. package/dist/internal/engine/security/scopes.d.ts +2 -2
  208. package/dist/internal/engine/security/scopes.js +2 -2
  209. package/dist/internal/engine/shared/errors.d.ts +1 -1
  210. package/dist/internal/engine/shared/errors.js +1 -2
  211. package/dist/internal/engine/shared/i18n-text.d.ts +1 -1
  212. package/dist/internal/engine/shared/i18n-text.js +1 -2
  213. package/dist/internal/engine/shared/iso-date-time.d.ts +1 -3
  214. package/dist/internal/engine/shared/iso-date-time.js +1 -2
  215. package/dist/internal/engine/shared/lru.d.ts +1 -1
  216. package/dist/internal/engine/shared/lru.js +1 -2
  217. package/dist/internal/engine/shared/memory-kind-policy.d.ts +1 -1
  218. package/dist/internal/engine/shared/memory-kind-policy.js +1 -2
  219. package/dist/internal/engine/shared/paths.d.ts +2 -2
  220. package/dist/internal/engine/shared/paths.js +1 -2
  221. package/dist/internal/engine/shared/types.d.ts +2 -2
  222. package/dist/internal/engine/shared/types.js +2 -3
  223. package/dist/internal/engine/shared/utils.d.ts +1 -1
  224. package/dist/internal/engine/shared/utils.js +1 -2
  225. package/dist/internal/engine/telemetry/memory-telemetry-api.d.ts +5 -9
  226. package/dist/internal/engine/telemetry/memory-telemetry-api.js +6 -8
  227. package/dist/internal/engine/telemetry/memory-telemetry-observability.d.ts +2 -4
  228. package/dist/internal/engine/telemetry/memory-telemetry-observability.js +1 -2
  229. package/dist/internal/engine/telemetry/memory-telemetry-outbox.d.ts +1 -1
  230. package/dist/internal/engine/telemetry/memory-telemetry-outbox.js +4 -5
  231. package/dist/internal/engine/telemetry/memory-telemetry-types.d.ts +1 -1
  232. package/dist/internal/engine/telemetry/memory-telemetry-types.js +1 -2
  233. package/dist/internal/engine/telemetry/observe-ledger.d.ts +3 -5
  234. package/dist/internal/engine/telemetry/observe-ledger.js +2 -3
  235. package/dist/internal/model/agent-llm-port.d.ts +1 -1
  236. package/dist/internal/model/llm-client.d.ts +2 -2
  237. package/dist/internal/model/llm-client.js +2 -2
  238. package/dist/internal/model/llm-failure.d.ts +1 -3
  239. package/dist/internal/model/llm-failure.js +1 -2
  240. package/dist/internal/model/llm-mode-routing.d.ts +1 -3
  241. package/dist/internal/model/llm-mode-routing.js +2 -3
  242. package/dist/internal/store/atomic-memory-cutover-sql.d.ts +2 -4
  243. package/dist/internal/store/atomic-memory-cutover-sql.js +2 -3
  244. package/dist/internal/store/connection.d.ts +1 -1
  245. package/dist/internal/store/connection.js +1 -2
  246. package/dist/internal/store/data-bootstrap.d.ts +1 -1
  247. package/dist/internal/store/data-bootstrap.js +1 -2
  248. package/dist/internal/store/data-paths.d.ts +1 -1
  249. package/dist/internal/store/data-paths.js +1 -2
  250. package/dist/internal/store/maintenance.d.ts +4 -6
  251. package/dist/internal/store/maintenance.js +18 -25
  252. package/dist/internal/store/memory-kinds-cutover-migrator.d.ts +1 -3
  253. package/dist/internal/store/memory-kinds-cutover-migrator.js +4 -5
  254. package/dist/internal/store/migrations.d.ts +2 -4
  255. package/dist/internal/store/migrations.js +2 -3
  256. package/dist/internal/store/sqlite-runtime.d.ts +1 -1
  257. package/dist/internal/store/sqlite-runtime.js +2 -3
  258. package/dist/internal/store/store.d.ts +2 -2
  259. package/dist/internal/store/store.js +1 -2
  260. package/dist/{learning-file-maintenance-9b-Ut6Kv.d.ts → learning-file-maintenance-ZT6kHwb1.d.ts} +0 -2
  261. package/dist/{llm-client-nWW1o1F6.d.ts → llm-client-Bar23wPq.d.ts} +1 -5
  262. package/dist/{llm-client-Dq9FZPdC.js → llm-client-DhBvu-U_.js} +9 -13
  263. package/dist/{locales-JxGmkG6t.d.ts → locales-CCZtQJq7.d.ts} +0 -2
  264. package/dist/{log-site-catalog.generated-Wze-GrOG.js → log-site-catalog.generated-3zYckrtz.js} +4 -6
  265. package/dist/log-site-catalog.json +1 -1
  266. package/dist/{lru-DyoaTyIs.d.ts → lru-DYiuPJFA.d.ts} +0 -2
  267. package/dist/memdump.d.ts +1 -3
  268. package/dist/memdump.js +2 -3
  269. package/dist/{memory-entry-projector-B36Nwsi_.js → memory-entry-projector-CkoEuLv6.js} +17 -30
  270. package/dist/{memory-kind-policy-BMebgugU.d.ts → memory-kind-policy-BRjhwhSl.d.ts} +1 -3
  271. package/dist/{memory-metadata-codec-H8BniJM3.d.ts → memory-metadata-codec-CcYw0t6c.d.ts} +1 -7
  272. package/dist/{memory-metadata-codec-DL1sbJiN.js → memory-metadata-codec-Cglikqj8.js} +4 -8
  273. package/dist/{memory-runtime-B4A1t5DO.js → memory-runtime-CKIBXN_r.js} +105 -205
  274. package/dist/{memory-scope-policy-1gg5QlWZ.d.ts → memory-scope-policy-4WfFFs_H.d.ts} +0 -4
  275. package/dist/{memory-scope-policy--TiLZnrE.js → memory-scope-policy-Dg2LHZ25.js} +3 -6
  276. package/dist/{memory-snapshot-CKnQovB5.d.ts → memory-snapshot-8RxJpqig.d.ts} +3 -5
  277. package/dist/{memory-source-order-YMRoeDLd.js → memory-source-order-BTo_ix2y.js} +1 -2
  278. package/dist/{memory-store-base-BHYXgsCq.d.ts → memory-store-base-CHBfMmZb.d.ts} +11 -21
  279. package/dist/{memory-store-shared-pOb59ScU.js → memory-store-shared-B-zOxk_Q.js} +4 -6
  280. package/dist/{memory-store-write-validation-B_hDG2zf.js → memory-store-write-validation-BbvoN3Li.js} +4 -7
  281. package/dist/{memory-telemetry-incidents-BWA9kcZx.js → memory-telemetry-incidents-Dp8GVD2Q.js} +1 -2
  282. package/dist/{memory-telemetry-metadata-CA7W8tK6.js → memory-telemetry-metadata-PMKWCAbj.js} +1 -2
  283. package/dist/{memory-telemetry-outbox-ddTdImt7.d.ts → memory-telemetry-outbox-D-L9c3Nw.d.ts} +2 -4
  284. package/dist/{memory-telemetry-receipts-MAJecvXQ.d.ts → memory-telemetry-receipts-Boj2CE16.d.ts} +1 -5
  285. package/dist/{memory-telemetry-receipts-cjIQGwdp.js → memory-telemetry-receipts-ComlCOro.js} +2 -4
  286. package/dist/{memory-telemetry-types-CufVmrCs.d.ts → memory-telemetry-types-Bg8U0Drl.d.ts} +0 -2
  287. package/dist/{memory-temporality-classifier-CHcnOT5T.js → memory-temporality-classifier-DTRhzXmG.js} +7 -9
  288. package/dist/{memory-temporality-classifier-Wi6WWeAj.d.ts → memory-temporality-classifier-HI9KeEsM.d.ts} +1 -3
  289. package/dist/{memory-tier-promoter-m60-RlAj.d.ts → memory-tier-promoter-CqNT2qFj.d.ts} +1 -3
  290. package/dist/{memory-tool-dependencies-CAVm0Sy4.js → memory-tool-dependencies-BQHE4kMD.js} +6 -6
  291. package/dist/memory-tool-dependencies-KsEWfLkV.d.ts +14 -0
  292. package/dist/{model-call-table-DjfbmUDl.js → model-call-table-BxGwmwv0.js} +2 -3
  293. package/dist/{model-reply-text-CKopStP2.js → model-reply-text-C7jEWDXG.js} +2 -4
  294. package/dist/{observable-embedder-0FwxJMhJ.d.ts → observable-embedder-DunGMyQg.d.ts} +2 -4
  295. package/dist/{observable-llm-client-DY7w1Fj1.d.ts → observable-llm-client-D_mOM5Pn.d.ts} +3 -5
  296. package/dist/{observable-memory-store-C25Q_hoW.d.ts → observable-memory-store-DUhat-p3.d.ts} +5 -7
  297. package/dist/{observable-retriever-Cs9Bwzq6.d.ts → observable-retriever-7TmJk1HE.d.ts} +6 -8
  298. package/dist/{operation-cancellation-QcwC4mDX.js → operation-cancellation-mqfQz0ka.js} +1 -2
  299. package/dist/paths-BySyy_eq.d.ts +1 -0
  300. package/dist/{plugin-config-observe-schema-ue9XxUj_.js → plugin-config-observe-schema-CwHVuVhu.js} +2 -3
  301. package/dist/{plugin-config-schema-DQh5njrS.d.ts → plugin-config-schema-DO4FhsYc.d.ts} +4 -24
  302. package/dist/{plugin-config-schema-D-IoHmis.js → plugin-config-schema-sJbkVY0-.js} +8 -14
  303. package/dist/{profile-CcvVR6K8.d.ts → profile-nVQCcv-0.d.ts} +1 -3
  304. package/dist/{profile-section-writer-3apndAJu.js → profile-section-writer-QiB0MMtt.js} +10 -15
  305. package/dist/{provider-registration-qLSA9CQl.js → provider-registration-lujpiuef.js} +5 -8
  306. package/dist/{provider-runtime-types-DFhtdA6d.d.ts → provider-runtime-types-peajl6V-.d.ts} +0 -2
  307. package/dist/{provider-types-CZGm6v88.d.ts → provider-types-DIU9efEA.d.ts} +1 -3
  308. package/dist/{redact-BTIZcHQL.d.ts → redact-BnUxXQUE.d.ts} +0 -2
  309. package/dist/{reflection-command-hooks-BRLqVNCi.d.ts → reflection-command-hooks-CvkTlbOa.d.ts} +5 -7
  310. package/dist/{reflection-command-hooks-B9UENMGV.js → reflection-command-hooks-DBpqpF7A.js} +11 -14
  311. package/dist/{reflection-deps-C0TJ-gpU.d.ts → reflection-deps-AqE-y4Ba.d.ts} +6 -8
  312. package/dist/{reflection-embedded-generator-Cs59hWYr.d.ts → reflection-embedded-generator-BJol6by2.d.ts} +6 -8
  313. package/dist/{reflection-embedded-generator-Do_r_LbU.js → reflection-embedded-generator-DNFMQNsv.js} +5 -8
  314. package/dist/{reflection-injection-hooks-Cy4bRemm.d.ts → reflection-injection-hooks-C3PeK3QM.d.ts} +7 -11
  315. package/dist/{reflection-lifecycle-hooks-C-lf00DB.d.ts → reflection-lifecycle-hooks-Cjvwic3J.d.ts} +4 -6
  316. package/dist/{relation-dictionary-Cev1kyLe.js → relation-dictionary-QVBewRQ1.js} +3 -6
  317. package/dist/release-download.d.ts +1 -3
  318. package/dist/release-download.js +1 -2
  319. package/dist/{relevant-memories-context-m8nuFZcM.js → relevant-memories-context-CvMB_zj8.js} +1 -2
  320. package/dist/rem-batch-executor-BHItPFZ8.js +1 -0
  321. package/dist/{rem-consumer-retrieval-BhS1ivcd.js → rem-consumer-retrieval-DXeqknml.js} +3 -5
  322. package/dist/{rem-trigger-pg_cCp5U.js → rem-trigger-BN6GCcnE.js} +197 -344
  323. package/dist/{resolver-Dy-hnjCR.js → resolver-DQ47zbPS.js} +2 -4
  324. package/dist/{results-BkMsHy7M.js → results-DERE8r4S.js} +2 -3
  325. package/dist/{retrieval-gate-Bx2Zg7jD.d.ts → retrieval-gate-XvDp3HuK.d.ts} +0 -2
  326. package/dist/{retriever-2RJYAvlD.d.ts → retriever-Cv-hwHpH.d.ts} +10 -22
  327. package/dist/{retriever-C54bXeDh.js → retriever-DRtPp86k.js} +12 -22
  328. package/dist/{rolldown-runtime-D7D4PA-g.js → rolldown-runtime-D8jQpDG7.js} +1 -2
  329. package/dist/{runtime-audit-log-DK6xAYxh.js → runtime-audit-log-4NJsojEj.js} +2 -4
  330. package/dist/{runtime-audit-log-D2Hqk_kl.d.ts → runtime-audit-log-CJK9iVX9.d.ts} +1 -3
  331. package/dist/{scopes-CtrY-YQ3.d.ts → scopes-BcdyFdfw.d.ts} +1 -5
  332. package/dist/{scopes-a4Kly9n7.js → scopes-DQjbRC2q.js} +2 -3
  333. package/dist/{server-CByyXSvp.js → server-BvEOkYis.js} +10 -15
  334. package/dist/{session-registry-DBoE7AvZ.d.ts → session-registry-Dft8oCDg.d.ts} +0 -2
  335. package/dist/sidecar/main.js +3 -4
  336. package/dist/{signed-registry-constants-Bv0fgZ8Q.d.ts → signed-registry-constants-BfycrCI1.d.ts} +0 -2
  337. package/dist/{signed-registry-constants-yq3DlG3B.js → signed-registry-constants-CO2vv_QJ.js} +1 -2
  338. package/dist/sno-station-mem-runtime-dependencies-DorPRtTM.d.ts +29 -0
  339. package/dist/{sno-station-mem-runtime-dependencies-CgNS1dIM.js → sno-station-mem-runtime-dependencies-Fq6yRstU.js} +14 -14
  340. package/dist/{sqlite-runtime-L_ywirTm.d.ts → sqlite-runtime-Cea2knhj.d.ts} +0 -2
  341. package/dist/{store-Bz0y76cJ.d.ts → store-AGtE-n72.d.ts} +4 -14
  342. package/dist/{store-DNgKOGWP.js → store-cu7Qq2OW.js} +44 -76
  343. package/dist/{strategy-hook-runner-Bg6rBY71.js → strategy-hook-runner-CvdsVcwR.js} +5 -7
  344. package/dist/{strategy-hook-runner-vbrWiDbK.d.ts → strategy-hook-runner-DqJpzS9C.d.ts} +7 -9
  345. package/dist/{token-counter-BD1f48Km.js → token-counter-N9I9iWq1.js} +1 -2
  346. package/dist/{trace-C1JxMfs-.d.ts → trace-CX26YO5M.d.ts} +0 -2
  347. package/dist/{types-El7jViCz.d.ts → types-CMbBmMJB.d.ts} +1 -5
  348. package/dist/{types-pVomjzqR.d.ts → types-qOSF58Ck.d.ts} +0 -2
  349. package/dist/{unplaced-candidate-migration-BCcdQkcx.js → unplaced-candidate-migration-BFQqjIDP.js} +8 -14
  350. package/dist/{utils-CDw2ttQf.d.ts → utils-CdhxW1G9.d.ts} +0 -2
  351. package/package.json +1 -1
  352. package/settings.default.json +1 -1
  353. package/dist/coding-skin-AW1UPUPY.js +0 -267
  354. package/dist/memory-tool-dependencies-D2fOC-KL.d.ts +0 -14
  355. package/dist/paths-obFSsJv3.d.ts +0 -1
  356. package/dist/rem-batch-executor-BUgNyYLv.js +0 -2
  357. package/dist/sno-station-mem-runtime-dependencies-ByI3b-wB.d.ts +0 -31
@@ -0,0 +1,342 @@
1
+ import { a as readAgentView, n as compactAgentView } from "./agent-state-osRgfRdR.js";
2
+ import "./internal/engine/telemetry/observe-ledger.js";
3
+ import "./internal/config/skill-categories.js";
4
+ import "./internal/config/skin-defaults.js";
5
+ import { basename, dirname, join } from "node:path";
6
+ import { getSnoProfileDir } from "@snoai/observability";
7
+ import { mkdir, readFile } from "node:fs/promises";
8
+ import { execFile, spawn } from "node:child_process";
9
+ import { homedir } from "node:os";
10
+ // config/agent-statusline.ts
11
+ function record(value) {
12
+ return value !== null && typeof value === "object" && !Array.isArray(value) ? value : void 0;
13
+ }
14
+ function originalStatusLine(command, harness) {
15
+ if (typeof command !== "string" || !command.includes(`/mem-${harness}/dist/cli.js' status-line `)) return void 0;
16
+ const encoded = / --sno-original '([A-Za-z0-9+/=]+)'$/.exec(command)?.[1];
17
+ if (!encoded) return void 0;
18
+ const values = JSON.parse(Buffer.from(encoded, "base64").toString("utf8"));
19
+ if (!Array.isArray(values)) throw new Error("invalid original status-line configuration");
20
+ return { value: values[0] };
21
+ }
22
+ /** The owned command carries the original configuration; no separate settings backup is needed. */
23
+ function composeAgentStatusLine(config, entryPath, harness, installing) {
24
+ const previous = originalStatusLine(record(config.statusLine)?.command, harness);
25
+ if (!installing && !previous) return;
26
+ const original = previous ? previous.value : config.statusLine;
27
+ if (!installing) {
28
+ if (original === void 0) delete config.statusLine;
29
+ else config.statusLine = original;
30
+ return;
31
+ }
32
+ const encoded = Buffer.from(JSON.stringify(original === void 0 ? [] : [original])).toString("base64");
33
+ config.statusLine = {
34
+ ...record(original),
35
+ type: "command",
36
+ command: `${shellQuote(process.execPath)} ${shellQuote(entryPath)} status-line --sno-original '${encoded}'`
37
+ };
38
+ }
39
+ async function userOutput(command, input) {
40
+ return new Promise((resolve, reject) => {
41
+ const child = spawn("sh", ["-c", command], { stdio: [
42
+ "pipe",
43
+ "pipe",
44
+ "inherit"
45
+ ] });
46
+ const chunks = [];
47
+ child.stdout.on("data", (chunk) => chunks.push(Buffer.from(chunk)));
48
+ child.on("error", reject);
49
+ child.on("close", (code) => resolve({
50
+ output: Buffer.concat(chunks),
51
+ code: code ?? 1
52
+ }));
53
+ child.stdin.on("error", (error) => {
54
+ if (!("code" in error) || error.code !== "EPIPE") reject(error);
55
+ });
56
+ child.stdin.end(input);
57
+ });
58
+ }
59
+ async function renderAgentStatusLine(harness, originalEncoded, input) {
60
+ const originals = JSON.parse(Buffer.from(originalEncoded, "base64").toString("utf8"));
61
+ const command = Array.isArray(originals) ? record(originals[0])?.command : void 0;
62
+ const user = typeof command === "string" ? await userOutput(command, input) : {
63
+ output: Buffer.alloc(0),
64
+ code: 0
65
+ };
66
+ const newlineLength = user.output.at(-1) === 10 ? user.output.at(-2) === 13 ? 2 : 1 : 0;
67
+ process.stdout.write(user.output.subarray(0, user.output.length - newlineLength));
68
+ try {
69
+ const sessionId = record(JSON.parse(input))?.session_id;
70
+ if (typeof sessionId !== "string" || !sessionId) throw new Error("current client session identity unavailable");
71
+ const view = await readAgentView({ recent: true });
72
+ const segment = compactAgentView(view, {
73
+ harness,
74
+ sessionId
75
+ });
76
+ const color = /\bneed you\b/.test(segment) ? "\x1B[1;33m" : "\x1B[2m";
77
+ const displayed = process.env.NO_COLOR === void 0 ? `${color}${segment}\x1b[0m` : segment;
78
+ process.stdout.write(`${user.output.length > newlineLength ? " | " : ""}${displayed}\n`);
79
+ } catch (error) {
80
+ process.stdout.write(user.output.subarray(user.output.length - newlineLength));
81
+ process.stderr.write(`${JSON.stringify({
82
+ operation: "agent-state-status-line",
83
+ target: harness,
84
+ error: String(error),
85
+ impact: "Sno segment unavailable; original output retained"
86
+ })}\n`);
87
+ }
88
+ return user.code;
89
+ }
90
+ // config/work-continuity.ts
91
+ function object(value) {
92
+ return typeof value === "object" && value !== null && !Array.isArray(value);
93
+ }
94
+ function failure(operation, target, error, impact) {
95
+ console.error(JSON.stringify({
96
+ operation,
97
+ target,
98
+ error: String(error),
99
+ impact
100
+ }));
101
+ }
102
+ function continuityBriefPath(sessionId) {
103
+ return join(getSnoProfileDir(), "station", "handoff", `${sessionId}.md`);
104
+ }
105
+ function context(output, target) {
106
+ if (!output.trim()) return "";
107
+ try {
108
+ const envelope = JSON.parse(output);
109
+ if (object(envelope) && object(envelope["hookSpecificOutput"])) {
110
+ const text = envelope["hookSpecificOutput"]["additionalContext"];
111
+ if (typeof text === "string") return text;
112
+ }
113
+ throw new Error("no hookSpecificOutput.additionalContext");
114
+ } catch (error) {
115
+ failure("read hook context", target, error, "this context was not delivered; other task context remains available");
116
+ return "";
117
+ }
118
+ }
119
+ async function sno(args, input, timeoutMs, env = process.env) {
120
+ return new Promise((resolve) => {
121
+ const child = execFile(env["SNO_EXECUTABLE"] ?? "sno", args, {
122
+ encoding: "utf8",
123
+ timeout: timeoutMs,
124
+ maxBuffer: Number.POSITIVE_INFINITY,
125
+ env
126
+ }, (error, stdout, stderr) => {
127
+ if (stderr) process.stderr.write(stderr);
128
+ if (error) failure(args.slice(0, 2).join(" "), String(input["session_id"]), error, "this operation failed; the saved brief and other available context remain usable");
129
+ resolve(error ? "" : stdout);
130
+ });
131
+ child.stdin?.on("error", (error) => failure("write hook input", args.join(" "), error, "this command did not receive its hook input"));
132
+ child.stdin?.end(JSON.stringify(input));
133
+ });
134
+ }
135
+ /** Reuse the memory hook's own deadline for the parallel lesson lookup. */
136
+ async function recallDeadline(event) {
137
+ const hook = event === "UserPromptSubmit" ? CODING_SKIN_HOOKS.UserPromptSubmit : CODING_SKIN_HOOKS.SessionStart;
138
+ try {
139
+ const settings = JSON.parse(await readFile(join(getSnoProfileDir(), "settings.json"), "utf8"));
140
+ const key = event === "UserPromptSubmit" ? "prompt" : "sessionStart";
141
+ if (object(settings) && object(settings["recall"]) && object(settings["recall"][key])) {
142
+ const timeoutMs = settings["recall"][key]["timeoutMs"];
143
+ if (typeof timeoutMs === "number" && timeoutMs > 0) return timeoutMs;
144
+ }
145
+ } catch (error) {
146
+ failure("read recall deadline", join(getSnoProfileDir(), "settings.json"), error, "using the installed hook deadline; local continuity remains enabled");
147
+ }
148
+ return hook.timeout * 1e3;
149
+ }
150
+ /** The same envelope carries durable task state, memory recall and locally approved lessons. */
151
+ async function composeContinuityContext(harness, event, input, memory) {
152
+ if (!object(input) || typeof input["session_id"] !== "string" || typeof input["cwd"] !== "string" || input["agent_id"] !== void 0) return JSON.stringify({ hookSpecificOutput: {
153
+ hookEventName: event,
154
+ additionalContext: ""
155
+ } });
156
+ const path = continuityBriefPath(input["session_id"]);
157
+ const lessons = recallDeadline(event).then((timeoutMs) => sno([
158
+ "rem-reflect",
159
+ "recall",
160
+ "--agent",
161
+ harness === "claude" ? "claude-code" : "codex",
162
+ "--first-message"
163
+ ], {
164
+ ...input,
165
+ hook_event_name: event
166
+ }, timeoutMs));
167
+ const recalled = memory();
168
+ const readBrief = () => readFile(path, "utf8").catch((error) => {
169
+ if (!(error instanceof Error && "code" in error && error.code === "ENOENT")) failure("read handoff brief", path, error, "task restoration from this brief failed; other context remains available");
170
+ return "";
171
+ });
172
+ const brief = event !== "SessionStart" ? readBrief() : (async () => {
173
+ const sessionId = String(input["session_id"]);
174
+ try {
175
+ await mkdir(dirname(path), {
176
+ recursive: true,
177
+ mode: 448
178
+ });
179
+ if (await readFile(path, "utf8").then(() => true, () => false)) return readBrief();
180
+ await sno([
181
+ "handoff-checkpoint",
182
+ "--repo",
183
+ String(input["cwd"]),
184
+ path
185
+ ], input, await recallDeadline(event), checkpointEnvironment(harness, sessionId));
186
+ } catch (error) {
187
+ failure("prepare handoff brief", path, error, "the agent has no brief template; available context is still delivered");
188
+ }
189
+ return "";
190
+ })();
191
+ const [saved, memoryRecall, approved] = await Promise.allSettled([
192
+ brief,
193
+ recalled,
194
+ lessons
195
+ ]);
196
+ const parts = [];
197
+ if (event === "SessionStart") parts.push(`Keep the current task in the readable handoff brief at ${path}; its template already exists. Start the user's task first: do not read or edit the brief before your first action on the task. Update the brief only when there is real progress to record (a finished step, a decision, a failure, or before an orderly interruption), and only with your ${harness === "claude" ? "Edit or Write tool" : "apply_patch tool"}, never through a shell command. Keep its readable sections accurate: Objective and authorization, decisions and exclusions, Done/current files, Next with the exact next action and its expected observable result, Known failure with operation/target/error, Reach card/recipient when present, and Report destination. Do not ask the owner to reconstruct lost work.`);
198
+ if (saved.status === "fulfilled" && saved.value) parts.push(`Current task handoff brief (complete file: ${path}). If the host reports context overflow, read that complete file before task action; do not infer the missing text. Reconcile actual file/tool results before repeating an unfinished action.\n\n${saved.value}`);
199
+ if (memoryRecall.status === "fulfilled") parts.push(context(memoryRecall.value, "memory recall"));
200
+ else failure("memory recall", input["session_id"], memoryRecall.reason, "memory recall failed; the saved brief and approved lessons remain available");
201
+ if (approved.status === "fulfilled") parts.push(context(approved.value, join(process.env["REM_REFLECT_STORE"] ?? join(homedir(), ".sno", "experience"), "wiki", "lessons.jsonl")));
202
+ else failure("read approved lessons", input["session_id"], approved.reason, "lesson delivery failed; task context remains available");
203
+ return JSON.stringify({ hookSpecificOutput: {
204
+ hookEventName: event,
205
+ additionalContext: parts.filter(Boolean).join("\n\n")
206
+ } });
207
+ }
208
+ /** Refresh the existing readable brief before compaction; never manufacture task facts. */
209
+ async function refreshContinuityBrief(harness, input) {
210
+ if (!object(input) || typeof input["session_id"] !== "string" || typeof input["cwd"] !== "string" || input["agent_id"] !== void 0) return;
211
+ const path = continuityBriefPath(input["session_id"]);
212
+ try {
213
+ await readFile(path, "utf8");
214
+ } catch (error) {
215
+ failure("save before compaction", path, error, "no readable current brief was saved; recovery can use only previously durable records");
216
+ return;
217
+ }
218
+ await sno([
219
+ "handoff-checkpoint",
220
+ "--repo",
221
+ input["cwd"],
222
+ path
223
+ ], input, CODING_SKIN_HOOKS.Stop.timeout * 1e3, checkpointEnvironment(harness, input["session_id"]));
224
+ }
225
+ function checkpointEnvironment(harness, sessionId) {
226
+ return {
227
+ ...process.env,
228
+ CLAUDE_SESSION_ID: harness === "claude" ? sessionId : void 0,
229
+ CODEX_THREAD_ID: harness === "codex" ? sessionId : void 0
230
+ };
231
+ }
232
+ // config/coding-skin.ts
233
+ const CODING_SKIN_CHILD_DEADLINE_MS = 11e4;
234
+ const CODING_SKIN_WORKER_LIFETIME_MS = 54e4;
235
+ const CODING_SKIN_RETRY_DELAYS_MS = [2e3, 1e4];
236
+ const CODING_SKIN_MAX_ATTEMPTS = 3;
237
+ const CODING_SKIN_MAX_PENDING_CAPTURES = 1e3;
238
+ /** A session's turns wait in the spool until the session ends or has had no new turn for this long, then go together. */
239
+ const CODING_SKIN_CAPTURE_QUIET_MS = 18e5;
240
+ /**
241
+ * Input per capture, estimated as UTF-8 bytes / 3 (at or above the sidecar's CJK-aware count). It keeps one capture to
242
+ * about one 4,096-token extraction window, so a capture ends well inside its route deadline and a failed one retries
243
+ * a small part; the rest is room for the window's JSON framing.
244
+ */
245
+ const CODING_SKIN_CAPTURE_MAX_INPUT_TOKENS = 3500;
246
+ const CODING_SKIN_IMPORT_INTERVAL_MS = 2010;
247
+ const CODING_SKIN_CHILD_MAX_BUFFER_BYTES = 8388608;
248
+ const CODING_SKIN_MANUAL_SESSION_ID = "manual";
249
+ const CODING_SKIN_SESSION_QUERY = "standing decisions, open tasks, conventions and known pitfalls for this repository";
250
+ const CODING_SKIN_LEDGER_MAX_CHARS = 12e3;
251
+ const CODING_SKIN_RECALL_SENTENCE_MAX_CHARS = 200;
252
+ const CODING_SKIN_RECALL_ITEM_MAX_CHARS = 240;
253
+ const CODING_SKIN_HOOKS = {
254
+ SessionStart: {
255
+ eventName: "session_start",
256
+ subcommand: "session-start",
257
+ timeout: 15
258
+ },
259
+ UserPromptSubmit: {
260
+ eventName: "user_prompt_submit",
261
+ subcommand: "user-prompt-submit",
262
+ timeout: 8
263
+ },
264
+ Stop: {
265
+ eventName: "stop",
266
+ subcommand: "stop",
267
+ timeout: 5
268
+ },
269
+ SessionEnd: {
270
+ eventName: "session_end",
271
+ subcommand: "session-end",
272
+ timeout: 8
273
+ },
274
+ PreToolUse: {
275
+ eventName: "pre_tool_use",
276
+ subcommand: "pre-tool-use",
277
+ timeout: 5
278
+ },
279
+ PostToolUse: {
280
+ eventName: "post_tool_use",
281
+ subcommand: "post-tool-use",
282
+ timeout: 8
283
+ }
284
+ };
285
+ /** Cursor's hook events (`hooks.json` names); timeouts match the Claude/Codex event each one stands in for. */
286
+ const CODING_SKIN_CURSOR_HOOKS = {
287
+ sessionStart: {
288
+ subcommand: "session-start",
289
+ timeout: 15
290
+ },
291
+ beforeSubmitPrompt: {
292
+ subcommand: "user-prompt-submit",
293
+ timeout: 8
294
+ },
295
+ afterAgentResponse: {
296
+ subcommand: "after-agent-response",
297
+ timeout: 5
298
+ },
299
+ afterAgentThought: {
300
+ subcommand: "after-agent-thought",
301
+ timeout: 5
302
+ },
303
+ stop: {
304
+ subcommand: "stop",
305
+ timeout: 5
306
+ },
307
+ preCompact: {
308
+ subcommand: "pre-compact",
309
+ timeout: 5
310
+ },
311
+ sessionEnd: {
312
+ subcommand: "session-end",
313
+ timeout: 8
314
+ }
315
+ };
316
+ const CODING_SKIN_MODEL_COMMANDS = [
317
+ "recall",
318
+ "get",
319
+ "remember",
320
+ "correct"
321
+ ];
322
+ function shellQuote(value) {
323
+ return `'${value.replaceAll("'", "'\\''")}'`;
324
+ }
325
+ /** Linux reports a running binary that was replaced on disk as "<path> (deleted)"; the path itself is still the right one. */
326
+ function snoProgramPath(path) {
327
+ return path.endsWith(" (deleted)") ? path.slice(0, -10) : path;
328
+ }
329
+ /** The command an agent hook runs: the `sno` binary that ran setup, then `memory hook <event> --harness <name>`. */
330
+ function codingSkinHookCommand(snoPath, subcommand, harness) {
331
+ return `${shellQuote(snoPath)} memory hook ${subcommand} --harness ${harness}`;
332
+ }
333
+ /** True for a hook command of that shape, whatever the path to `sno` is. */
334
+ function isCodingSkinHookCommand(command, subcommand, harness) {
335
+ const suffix = ` memory hook ${subcommand} --harness ${harness}`;
336
+ const trimmed = command.trim();
337
+ if (!trimmed.endsWith(suffix)) return false;
338
+ const encoded = trimmed.slice(0, -suffix.length);
339
+ const program = encoded.startsWith("'") && encoded.endsWith("'") ? encoded.slice(1, -1).replaceAll("'\\''", "'") : encoded;
340
+ return basename(snoProgramPath(program)) === "sno";
341
+ }
342
+ export { continuityBriefPath as C, renderAgentStatusLine as E, composeContinuityContext as S, composeAgentStatusLine as T, CODING_SKIN_WORKER_LIFETIME_MS as _, CODING_SKIN_CURSOR_HOOKS as a, shellQuote as b, CODING_SKIN_LEDGER_MAX_CHARS as c, CODING_SKIN_MAX_PENDING_CAPTURES as d, CODING_SKIN_MODEL_COMMANDS as f, CODING_SKIN_SESSION_QUERY as g, CODING_SKIN_RETRY_DELAYS_MS as h, CODING_SKIN_CHILD_MAX_BUFFER_BYTES as i, CODING_SKIN_MANUAL_SESSION_ID as l, CODING_SKIN_RECALL_SENTENCE_MAX_CHARS as m, CODING_SKIN_CAPTURE_QUIET_MS as n, CODING_SKIN_HOOKS as o, CODING_SKIN_RECALL_ITEM_MAX_CHARS as p, CODING_SKIN_CHILD_DEADLINE_MS as r, CODING_SKIN_IMPORT_INTERVAL_MS as s, CODING_SKIN_CAPTURE_MAX_INPUT_TOKENS as t, CODING_SKIN_MAX_ATTEMPTS as u, codingSkinHookCommand as v, refreshContinuityBrief as w, snoProgramPath as x, isCodingSkinHookCommand as y };
@@ -2,7 +2,92 @@ import { ObserveLedgerRow, appendObserveLedgerRows } from "./internal/engine/tel
2
2
  import { SKILL_CATEGORIES, skillVersionFor } from "./internal/config/skill-categories.js";
3
3
  import { HOST_MODEL_CALLBACK_HOST, HOST_MODEL_CALLBACK_PATH, HOST_MODEL_DEADLINE_HEADER } from "./internal/config/skin-defaults.js";
4
4
  import { z } from "zod";
5
- //#region config/session-activity.d.ts
5
+ type AgentHarness = "claude" | "codex" | "cursor" | "hermes" | "openclaw" | "unknown";
6
+ interface AgentObservation {
7
+ harness: AgentHarness;
8
+ sessionId: string;
9
+ at: string;
10
+ event: string;
11
+ input: Record<string, unknown>;
12
+ pid?: number;
13
+ processStart?: string;
14
+ reachAddress?: string;
15
+ cwd?: string;
16
+ }
17
+ interface AgentOperationError {
18
+ operation: string;
19
+ target: string;
20
+ error: string;
21
+ impact: string;
22
+ }
23
+ interface AgentRow {
24
+ harness: AgentHarness;
25
+ sessionId: string;
26
+ reachAddress: string;
27
+ cwd: string;
28
+ description: string;
29
+ doing: "working" | "idle at prompt" | "unknown";
30
+ process: "present" | "detached" | "exited" | "absent" | "unknown";
31
+ resumable: "live" | "resumable" | "context full" | "unknown";
32
+ waitingForHuman: "yes" | "no" | "unknown";
33
+ waitingReason: string;
34
+ group: "Needs you" | "Working" | "Finished" | "unknown";
35
+ subgroup: string;
36
+ lastEvent: {
37
+ at: string;
38
+ event: string;
39
+ source: string;
40
+ } | "unknown";
41
+ ageSeconds: number | "unknown";
42
+ resultId: string;
43
+ humanSeen: boolean | "unknown";
44
+ finalReply: string;
45
+ work: Record<string, unknown>[];
46
+ delivery: string;
47
+ resumeEvidence: string;
48
+ missingReasons: string[];
49
+ }
50
+ interface AgentView {
51
+ observedAt: string;
52
+ agents: AgentRow[];
53
+ work: Record<string, unknown>[];
54
+ quota: Record<string, unknown>[];
55
+ errors: AgentOperationError[];
56
+ }
57
+ interface AgentViewOptions {
58
+ profileDir?: string;
59
+ reachRoot?: string;
60
+ now?: number;
61
+ reachProgram?: string;
62
+ /** Status-line and tmux redraws: only observations inside the freshness horizon, and no Reach work scan. */
63
+ recent?: boolean;
64
+ }
65
+ interface AgentIdentity {
66
+ harness?: string;
67
+ sessionId?: string;
68
+ reachAddress?: string;
69
+ }
70
+ /** Linux start ticks identify one process lifetime, including across PID reuse. */
71
+ export declare function agentProcessIdentity(pid: number): Promise<{
72
+ pid: number;
73
+ processStart: string;
74
+ }>;
75
+ /** Observational failures are logged; they never prevent an agent's ordinary hook. */
76
+ export declare function observeAgentEvent(harness: AgentHarness, event: string, raw: unknown): Promise<void>;
77
+ export declare function readAgentView(options?: AgentViewOptions): Promise<AgentView>;
78
+ export declare function compactAgentView(view: AgentView, current?: AgentIdentity): string;
79
+ export declare function markAgentResultSeen(row: AgentRow, profile?: string): Promise<void>;
80
+ type StatusHarness = "claude" | "cursor";
81
+ /** The owned command carries the original configuration; no separate settings backup is needed. */
82
+ export declare function composeAgentStatusLine(config: Record<string, unknown>, entryPath: string, harness: StatusHarness, installing: boolean): void;
83
+ export declare function renderAgentStatusLine(harness: StatusHarness, originalEncoded: string, input: string): Promise<number>;
84
+ type ContinuityHarness = "claude" | "codex";
85
+ type ContinuityEvent = "SessionStart" | "UserPromptSubmit";
86
+ export declare function continuityBriefPath(sessionId: string): string;
87
+ /** The same envelope carries durable task state, memory recall and locally approved lessons. */
88
+ export declare function composeContinuityContext(harness: ContinuityHarness, event: ContinuityEvent, input: unknown, memory: () => Promise<string>): Promise<string>;
89
+ /** Refresh the existing readable brief before compaction; never manufacture task facts. */
90
+ export declare function refreshContinuityBrief(harness: ContinuityHarness, input: unknown): Promise<void>;
6
91
  /** True when the text of a user message came from another agent's tooling: a Reach ring or seat start, or a heartbeat wake. */
7
92
  export declare function isAgentText(text: string): boolean;
8
93
  /** One transcript record: its time, and who sent the incoming message it carries, if it carries one. */
@@ -55,8 +140,6 @@ export declare function readNewLines(path: string, offset: number, budgetMs: num
55
140
  offset: number;
56
141
  done: boolean;
57
142
  }>;
58
- //#endregion
59
- //#region config/coding-skin.d.ts
60
143
  export declare const CODING_SKIN_CHILD_DEADLINE_MS = 11e4;
61
144
  export declare const CODING_SKIN_WORKER_LIFETIME_MS: number;
62
145
  export declare const CODING_SKIN_RETRY_DELAYS_MS: readonly [2_000, 10_000];
@@ -151,5 +234,4 @@ export declare function snoProgramPath(path: string): string;
151
234
  export declare function codingSkinHookCommand(snoPath: string, subcommand: string, harness: CodingSkinHarness): string;
152
235
  /** True for a hook command of that shape, whatever the path to `sno` is. */
153
236
  export declare function isCodingSkinHookCommand(command: string, subcommand: string, harness: CodingSkinHarness): boolean;
154
- //#endregion
155
- export { type ActivityCursor, type ActivityRecord, HOST_MODEL_CALLBACK_HOST, HOST_MODEL_CALLBACK_PATH, HOST_MODEL_DEADLINE_HEADER, type ObserveLedgerRow, SKILL_CATEGORIES, type SessionActivityPayload, appendObserveLedgerRows, skillVersionFor };
237
+ export { type ActivityCursor, type ActivityRecord, type AgentHarness, type AgentIdentity, type AgentObservation, type AgentOperationError, type AgentRow, type AgentView, type AgentViewOptions, HOST_MODEL_CALLBACK_HOST, HOST_MODEL_CALLBACK_PATH, HOST_MODEL_DEADLINE_HEADER, type ObserveLedgerRow, SKILL_CATEGORIES, type SessionActivityPayload, appendObserveLedgerRows, skillVersionFor };
@@ -1,5 +1,6 @@
1
+ import { a as readAgentView, d as foldActivity, f as isAgentText, i as observeAgentEvent, l as EMPTY_ACTIVITY_CURSOR, n as compactAgentView, p as readNewLines, r as markAgentResultSeen, t as agentProcessIdentity, u as activityCursorSchema } from "./agent-state-osRgfRdR.js";
2
+ import { C as continuityBriefPath, E as renderAgentStatusLine, S as composeContinuityContext, T as composeAgentStatusLine, _ as CODING_SKIN_WORKER_LIFETIME_MS, a as CODING_SKIN_CURSOR_HOOKS, b as shellQuote, c as CODING_SKIN_LEDGER_MAX_CHARS, d as CODING_SKIN_MAX_PENDING_CAPTURES, f as CODING_SKIN_MODEL_COMMANDS, g as CODING_SKIN_SESSION_QUERY, h as CODING_SKIN_RETRY_DELAYS_MS, i as CODING_SKIN_CHILD_MAX_BUFFER_BYTES, l as CODING_SKIN_MANUAL_SESSION_ID, m as CODING_SKIN_RECALL_SENTENCE_MAX_CHARS, n as CODING_SKIN_CAPTURE_QUIET_MS, o as CODING_SKIN_HOOKS, p as CODING_SKIN_RECALL_ITEM_MAX_CHARS, r as CODING_SKIN_CHILD_DEADLINE_MS, s as CODING_SKIN_IMPORT_INTERVAL_MS, t as CODING_SKIN_CAPTURE_MAX_INPUT_TOKENS, u as CODING_SKIN_MAX_ATTEMPTS, v as codingSkinHookCommand, w as refreshContinuityBrief, x as snoProgramPath, y as isCodingSkinHookCommand } from "./coding-skin-D_2RbNDw.js";
1
3
  import { appendObserveLedgerRows } from "./internal/engine/telemetry/observe-ledger.js";
2
4
  import { SKILL_CATEGORIES, skillVersionFor } from "./internal/config/skill-categories.js";
3
5
  import { HOST_MODEL_CALLBACK_HOST, HOST_MODEL_CALLBACK_PATH, HOST_MODEL_DEADLINE_HEADER } from "./internal/config/skin-defaults.js";
4
- import { C as activityCursorSchema, E as readNewLines, S as EMPTY_ACTIVITY_CURSOR, T as isAgentText, _ as CODING_SKIN_WORKER_LIFETIME_MS, a as CODING_SKIN_CURSOR_HOOKS, b as shellQuote, c as CODING_SKIN_LEDGER_MAX_CHARS, d as CODING_SKIN_MAX_PENDING_CAPTURES, f as CODING_SKIN_MODEL_COMMANDS, g as CODING_SKIN_SESSION_QUERY, h as CODING_SKIN_RETRY_DELAYS_MS, i as CODING_SKIN_CHILD_MAX_BUFFER_BYTES, l as CODING_SKIN_MANUAL_SESSION_ID, m as CODING_SKIN_RECALL_SENTENCE_MAX_CHARS, n as CODING_SKIN_CAPTURE_QUIET_MS, o as CODING_SKIN_HOOKS, p as CODING_SKIN_RECALL_ITEM_MAX_CHARS, r as CODING_SKIN_CHILD_DEADLINE_MS, s as CODING_SKIN_IMPORT_INTERVAL_MS, t as CODING_SKIN_CAPTURE_MAX_INPUT_TOKENS, u as CODING_SKIN_MAX_ATTEMPTS, v as codingSkinHookCommand, w as foldActivity, x as snoProgramPath, y as isCodingSkinHookCommand } from "./coding-skin-AW1UPUPY.js";
5
- export { CODING_SKIN_CAPTURE_MAX_INPUT_TOKENS, CODING_SKIN_CAPTURE_QUIET_MS, CODING_SKIN_CHILD_DEADLINE_MS, CODING_SKIN_CHILD_MAX_BUFFER_BYTES, CODING_SKIN_CURSOR_HOOKS, CODING_SKIN_HOOKS, CODING_SKIN_IMPORT_INTERVAL_MS, CODING_SKIN_LEDGER_MAX_CHARS, CODING_SKIN_MANUAL_SESSION_ID, CODING_SKIN_MAX_ATTEMPTS, CODING_SKIN_MAX_PENDING_CAPTURES, CODING_SKIN_MODEL_COMMANDS, CODING_SKIN_RECALL_ITEM_MAX_CHARS, CODING_SKIN_RECALL_SENTENCE_MAX_CHARS, CODING_SKIN_RETRY_DELAYS_MS, CODING_SKIN_SESSION_QUERY, CODING_SKIN_WORKER_LIFETIME_MS, EMPTY_ACTIVITY_CURSOR, HOST_MODEL_CALLBACK_HOST, HOST_MODEL_CALLBACK_PATH, HOST_MODEL_DEADLINE_HEADER, SKILL_CATEGORIES, activityCursorSchema, appendObserveLedgerRows, codingSkinHookCommand, foldActivity, isAgentText, isCodingSkinHookCommand, readNewLines, shellQuote, skillVersionFor, snoProgramPath };
6
+ export { CODING_SKIN_CAPTURE_MAX_INPUT_TOKENS, CODING_SKIN_CAPTURE_QUIET_MS, CODING_SKIN_CHILD_DEADLINE_MS, CODING_SKIN_CHILD_MAX_BUFFER_BYTES, CODING_SKIN_CURSOR_HOOKS, CODING_SKIN_HOOKS, CODING_SKIN_IMPORT_INTERVAL_MS, CODING_SKIN_LEDGER_MAX_CHARS, CODING_SKIN_MANUAL_SESSION_ID, CODING_SKIN_MAX_ATTEMPTS, CODING_SKIN_MAX_PENDING_CAPTURES, CODING_SKIN_MODEL_COMMANDS, CODING_SKIN_RECALL_ITEM_MAX_CHARS, CODING_SKIN_RECALL_SENTENCE_MAX_CHARS, CODING_SKIN_RETRY_DELAYS_MS, CODING_SKIN_SESSION_QUERY, CODING_SKIN_WORKER_LIFETIME_MS, EMPTY_ACTIVITY_CURSOR, HOST_MODEL_CALLBACK_HOST, HOST_MODEL_CALLBACK_PATH, HOST_MODEL_DEADLINE_HEADER, SKILL_CATEGORIES, activityCursorSchema, agentProcessIdentity, appendObserveLedgerRows, codingSkinHookCommand, compactAgentView, composeAgentStatusLine, composeContinuityContext, continuityBriefPath, foldActivity, isAgentText, isCodingSkinHookCommand, markAgentResultSeen, observeAgentEvent, readAgentView, readNewLines, refreshContinuityBrief, renderAgentStatusLine, shellQuote, skillVersionFor, snoProgramPath };
@@ -11,7 +11,7 @@ import { LRUCache } from "lru-cache";
11
11
  import { isLowercaseCanonicalUUIDv7 } from "@snoai/common-core";
12
12
  import { z } from "zod";
13
13
  import { CHUNKING_VERSION, DEFAULT_AGGREGATION_CONFIG, DEFAULT_CHUNK_CONFIG, HEAD_EXTRACT_MIN_CONTENT_TOKENS, HEAD_EXTRACT_OVERLAP_DROP_RATIO, HEAD_EXTRACT_TOKEN_BUDGET } from "@snoai/chunking";
14
- //#region src/contract/routes.ts
14
+ // src/contract/routes.ts
15
15
  const MEMORY_ROUTES = {
16
16
  init: {
17
17
  path: "/v1/init",
@@ -70,8 +70,7 @@ const MEMORY_ERROR_STATUS = {
70
70
  };
71
71
  const MEMORY_RECONNECT_INTERVAL_MS = 1e3;
72
72
  const MEMORY_DEFAULT_SKIN_ID = "default";
73
- //#endregion
74
- //#region ../embedder/dist/index.mjs
73
+ // ../embedder/dist/index.mjs
75
74
  /**
76
75
  * Shared embedding constants — single source of truth for all apps.
77
76
  * 1024-d is the ONLY supported dimension.
@@ -1215,8 +1214,7 @@ var LocalReranker = class {
1215
1214
  }
1216
1215
  }
1217
1216
  };
1218
- //#endregion
1219
- //#region config/index.ts
1217
+ // config/index.ts
1220
1218
  /**
1221
1219
  * Sno Station Memory centralized configuration.
1222
1220
  * Shared tunable constants for every memory skin.
@@ -1487,8 +1485,7 @@ const recallLifecycleSchema = z.object({
1487
1485
  * literal default object instead of re-parsing the schema each time.
1488
1486
  */
1489
1487
  const DEFAULT_RECALL_LIFECYCLE = recallLifecycleSchema.parse(void 0);
1490
- //#endregion
1491
- //#region src/engine/i18n/locales.ts
1488
+ // src/engine/i18n/locales.ts
1492
1489
  const SUPPORTED_LOCALES = [
1493
1490
  "en",
1494
1491
  "de",
@@ -1504,8 +1501,7 @@ const SUPPORTED_SET = new Set(SUPPORTED_LOCALES);
1504
1501
  function isSupportedLocale(value) {
1505
1502
  return SUPPORTED_SET.has(value);
1506
1503
  }
1507
- //#endregion
1508
- //#region config/plugin-config-mode-schema.ts
1504
+ // config/plugin-config-mode-schema.ts
1509
1505
  /**
1510
1506
  * Product LLM modes, tier-ordered: Local First (selected calls on host) → Agent
1511
1507
  * Native (every call borrows the host agent's model) → REM Enhanced (top
@@ -1529,8 +1525,7 @@ const llmRoutingConfigSchema = z.object({
1529
1525
  language: z.enum(SUPPORTED_LOCALES).default("en"),
1530
1526
  modelCalls: modelCallsConfigSchema
1531
1527
  }).strict();
1532
- //#endregion
1533
- //#region config/plugin-config-embedding-schema.ts
1528
+ // config/plugin-config-embedding-schema.ts
1534
1529
  const localEmbedSessionOptionsSchema = z.object({
1535
1530
  graphOptimizationLevel: z.enum([
1536
1531
  "disabled",
@@ -1581,8 +1576,7 @@ const embeddingConfigSchema = z.object({
1581
1576
  /** Enable text chunking for long passages (default: true) */
1582
1577
  chunking: z.boolean().default(true)
1583
1578
  }).prefault({});
1584
- //#endregion
1585
- //#region src/model/signed-registry-constants.ts
1579
+ // src/model/signed-registry-constants.ts
1586
1580
  /** Fixed signed, persisted, and host protocol values. Change only with their external authority. */
1587
1581
  const FIXED_EXTERNAL_VALUE_49 = "database contains both mem_claw_memories and nodix_memories";
1588
1582
  const FIXED_EXTERNAL_VALUE_51 = "PRAGMA table_info(mem_claw_memories)";
@@ -1662,16 +1656,14 @@ const PERSISTED_CANDIDATE_HASH_V1 = "mem-claw:unplaced-candidate:legacy:v1";
1662
1656
  const PERSISTED_CONTENT_HASH_V1 = "mem-claw:hash:v1";
1663
1657
  const PERSISTED_CONTENT_HASH_V3 = "mem-claw:hash:v3";
1664
1658
  const PERSISTED_PROVIDER_SYSTEM = "openclaw";
1665
- //#endregion
1666
- //#region src/model/llm-client-types.ts
1659
+ // src/model/llm-client-types.ts
1667
1660
  const LLM_PRESETS = [
1668
1661
  FIXED_MEMORY_SNO_AI_EXTRACT,
1669
1662
  FIXED_MEMORY_SNO_EXTRACT_CHAT,
1670
1663
  FIXED_MEMORY_SNO_EXTRACT_PROFILE,
1671
1664
  FIXED_MEMORY_SNO_CONFLICT_VERDICT
1672
1665
  ];
1673
- //#endregion
1674
- //#region config/plugin-config-feature-schema.ts
1666
+ // config/plugin-config-feature-schema.ts
1675
1667
  const sessionMemoryConfigSchema = z.object({
1676
1668
  enabled: z.boolean().default(true),
1677
1669
  messageCount: z.number().int().min(1).max(100).default(15)
@@ -1716,8 +1708,7 @@ const memoryReflectionConfigSchema = z.object({
1716
1708
  injectIntoPrompt: z.boolean().default(false),
1717
1709
  agentId: z.string().optional()
1718
1710
  }).prefault({});
1719
- //#endregion
1720
- //#region config/plugin-config-observe-schema.ts
1711
+ // config/plugin-config-observe-schema.ts
1721
1712
  const AGENT_IDS = [
1722
1713
  PERSISTED_PROVIDER_SYSTEM,
1723
1714
  FIXED_PROTOCOL_VALUE_70,
@@ -1770,8 +1761,7 @@ const observeConfigSchema = z.object({
1770
1761
  }).prefault({}).superRefine((value, ctx) => {
1771
1762
  if (value.enabled) validateObserveBaseUrl(value.baseUrl, ctx);
1772
1763
  });
1773
- //#endregion
1774
- //#region config/plugin-config-retrieval-schema.ts
1764
+ // config/plugin-config-retrieval-schema.ts
1775
1765
  const log = createLogger("sno-station-mem:config:retrieval");
1776
1766
  /** Published remote selections now run the existing local pipeline. */
1777
1767
  const rerankModeSchema = z.preprocess((value) => {
@@ -1827,8 +1817,7 @@ const retrievalConfigSchema = z.object({
1827
1817
  /** Hard cap: effective half-life <= baseHalfLife * maxHalfLifeMultiplier (default: 3) */
1828
1818
  maxHalfLifeMultiplier: z.number().min(1).max(10).default(3)
1829
1819
  }).prefault({});
1830
- //#endregion
1831
- //#region config/session-strategy.ts
1820
+ // config/session-strategy.ts
1832
1821
  /** @file session-strategy.ts
1833
1822
  * @purpose Defines session-memory strategy constants without importing plugin config schemas.
1834
1823
  * @boundary Shared literal values only; no schema or runtime registration dependencies.
@@ -1838,8 +1827,7 @@ const SESSION_STRATEGIES = [
1838
1827
  "systemSessionMemory",
1839
1828
  "none"
1840
1829
  ];
1841
- //#endregion
1842
- //#region config/plugin-config-schema.ts
1830
+ // config/plugin-config-schema.ts
1843
1831
  const scopesConfigSchema = z.object({
1844
1832
  default: z.string().default(DEFAULT_SCOPE),
1845
1833
  definitions: z.record(z.string(), z.object({
@@ -1931,8 +1919,7 @@ const pluginConfigSchema = z.object({
1931
1919
  profile: z.enum(ONBOARDING_PROFILES)
1932
1920
  }).strict().optional()
1933
1921
  }).strict();
1934
- //#endregion
1935
- //#region src/model/model-call-table.ts
1922
+ // src/model/model-call-table.ts
1936
1923
  const extract = {
1937
1924
  "local-first": "off",
1938
1925
  "agent-native": "host",
@@ -2542,8 +2529,7 @@ const MODEL_CALL_WORKLOAD = {
2542
2529
  function modelCallDestination(callId, mode, modelCalls) {
2543
2530
  return modelCalls[callId][mode];
2544
2531
  }
2545
- //#endregion
2546
- //#region config/settings.ts
2532
+ // config/settings.ts
2547
2533
  const destination = z.enum([
2548
2534
  "off",
2549
2535
  "host",
@@ -2658,7 +2644,7 @@ function defaultSettings() {
2658
2644
  language: "en"
2659
2645
  },
2660
2646
  snoGpu: {
2661
- baseUrl: "https://rt3-llm.sno.ai",
2647
+ baseUrl: "https://gpu.sno.ai",
2662
2648
  apiKey: ""
2663
2649
  },
2664
2650
  rerank: {
@@ -2776,8 +2762,7 @@ function settingsToPluginConfig(settings, usageClass) {
2776
2762
  } }
2777
2763
  });
2778
2764
  }
2779
- //#endregion
2780
- //#region src/contract/profile.ts
2765
+ // src/contract/profile.ts
2781
2766
  function getStateDir(defaultStateDir) {
2782
2767
  return path.resolve(process.env.SNO_PROFILE_DIR ?? defaultStateDir ?? path.join(homedir(), ".sno"));
2783
2768
  }
@@ -2812,8 +2797,7 @@ function getDiscoveryPath() {
2812
2797
  function getSidecarSocketPath() {
2813
2798
  return path.join(getStateDir(), "station", "sidecar.sock");
2814
2799
  }
2815
- //#endregion
2816
- //#region src/sidecar/config.ts
2800
+ // src/sidecar/config.ts
2817
2801
  /** @file config.ts
2818
2802
  * @purpose Centralizes the standalone REM sidecar's paths, protocol constants, and boot settings.
2819
2803
  * @boundary Environment and filesystem configuration for CLI discovery and local REM state.
@@ -2931,5 +2915,4 @@ function readMaintenanceOverrides() {
2931
2915
  volumeThreshold: positive(REM_VOLUME_THRESHOLD_ENV)
2932
2916
  };
2933
2917
  }
2934
- //#endregion
2935
2918
  export { FIXED_IDX_MEMORY_ACTIVE_TASK_CURRENT_REVISION as $, MEMORY_SHUTDOWN_TIMEOUT_MS as $n, FIXED_PROTOCOL_VALUE_79 as $t, modelCallDestination as A, DEFAULT_REFLECTION_ERROR_SCAN_MAX_CHARS as An, MEMORY_SKIN_HEADER as Ar, FIXED_MEMORY_PROFILE_RECOVERY_ENTRIES as At, FIXED_EXTERNAL_VALUE_49 as B, FTS_MERGE_INTERVAL_MS as Bn, FIXED_PROTOCOL_VALUE_63 as Bt, getSnoStationMemStateDir as C, CHUNK_OVERLAP_TOKENS as Cn, ensureModelDownloaded as Cr, FIXED_MEMORY_CHUNKS_MEM_FACET_IDX as Ct, settingsToPluginConfig as D, DEFAULT_IMPORTANCE as Dn, MEMORY_ERROR_STATUS as Dr, FIXED_MEMORY_MEMORIES_FACT_ID_INSERT_GUARD as Dt, defaultSettings as E, DEFAULT_BM25_WEIGHT as En, MEMORY_DEFAULT_SKIN_ID as Er, FIXED_MEMORY_MEMORIES as Et, observeConfigSchema as F, EMBEDDER_DIM as Fn, FIXED_MEMORY_SNO_AI_EXTRACT as Ft, FIXED_EXTERNAL_VALUE_55 as G, INTEGRITY_CHECK_INTERVAL_MS as Gn, FIXED_PROTOCOL_VALUE_68 as Gt, FIXED_EXTERNAL_VALUE_52 as H, HEAD_EXTRACT_OVERLAP_DROP_RATIO as Hn, FIXED_PROTOCOL_VALUE_65 as Ht, extractionConfigSchema as I, EMBEDDER_MODEL_DEFAULT as In, FIXED_MEMORY_SNO_EXTRACT_CHAT as It, FIXED_EXTERNAL_VALUE_58 as J, MAX_AGGREGATION_RESULT_TOKENS as Jn, FIXED_PROTOCOL_VALUE_74 as Jt, FIXED_EXTERNAL_VALUE_56 as K, INTRA_MEMORY_COSINE_THRESHOLD as Kn, FIXED_PROTOCOL_VALUE_69 as Kt, memoryReflectionConfigSchema as L, EMBEDDER_PROVIDER_DEFAULT as Ln, FIXED_MEMORY_SNO_EXTRACT_PROFILE as Lt, retrievalConfigSchema as M, DEFAULT_RERANK_TIMEOUT_MS as Mn, memoryMethod as Mr, FIXED_MEMORY_PROVIDER_PROJECT_AGENTS as Mt, isObserveAgentId as N, DEFAULT_SCOPE as Nn, FIXED_MEMORY_PROVIDER_PROJECT_MAPPINGS as Nt, MODEL_CALLS as O, DEFAULT_RECALL_LIFECYCLE as On, MEMORY_RECONNECT_INTERVAL_MS as Or, FIXED_MEMORY_MEMORIES_FACT_ID_UPDATE_GUARD as Ot, observeAgentId as P, DEFAULT_VECTOR_WEIGHT as Pn, FIXED_MEMORY_ROW_PATH_PATTERN as Pt, FIXED_IDX_MEMORY as Q, MAX_RECALLED_TODO_TOKENS as Qn, FIXED_PROTOCOL_VALUE_78 as Qt, selfImprovementConfigSchema as R, EVAL_QA_TRACES_FILENAME as Rn, FIXED_MEMORY_TASK_LIFECYCLE_COMMANDS as Rt, getSidecarSocketPath as S, CHUNK_MIN_TOKENS as Sn, LocalReranker as Sr, FIXED_MEMORY_CHUNKS_MEMORY_ID_IDX as St, readSettings as T, CHUNK_TOKENIZER_MODE as Tn, MEMORY_CANCEL_ON_DISCONNECT_HEADER as Tr, FIXED_MEMORY_EXTRACTION_TIMESTAMPS as Tt, FIXED_EXTERNAL_VALUE_53 as U, HEAD_EXTRACT_TOKEN_BUDGET as Un, FIXED_PROTOCOL_VALUE_66 as Ut, FIXED_EXTERNAL_VALUE_51 as V, HEAD_EXTRACT_MIN_CONTENT_TOKENS as Vn, FIXED_PROTOCOL_VALUE_64 as Vt, FIXED_EXTERNAL_VALUE_54 as W, IMPORTANCE_WEIGHT_BASE as Wn, FIXED_PROTOCOL_VALUE_67 as Wt, FIXED_EXTERNAL_VALUE_8 as X, MAX_CHUNK_FETCH_LIMIT as Xn, FIXED_PROTOCOL_VALUE_76 as Xt, FIXED_EXTERNAL_VALUE_62 as Y, MAX_CANDIDATE_POOL_SIZE as Yn, FIXED_PROTOCOL_VALUE_75 as Yt, FIXED_EXTERNAL_VALUE_9 as Z, MAX_LIST_LIMIT as Zn, FIXED_PROTOCOL_VALUE_77 as Zt, readRemTestHoldMs as _, BACKUP_MIN_FREE_DISK_RATIO as _n, CachedEmbeddingProvider as _r, FIXED_MEMORY_CHUNKS as _t, REM_MODEL_OUTPUT_TOKEN_CAP as a, PERSISTED_PROVIDER_SYSTEM as an, RECENCY_WEIGHT as ar, FIXED_IDX_MEMORY_MEMORIES_LANE_PROJECT as at, getPrincipal as b, CHUNKING_VERSION as bn, LOCAL_EMBEDDING_MODEL_REVISION as br, FIXED_MEMORY_CHUNKS_AU as bt, REM_SIDECAR_ORIGIN as c, SUPPORTED_LOCALES as cn, RETRIEVAL_STORAGE_CHUNK_PROFILE as cr, FIXED_IDX_MEMORY_MEMORIES_PROJECT_FACT_KEY_ACTIVE as ct, getRemDiscoveryPath as d, ADJACENCY_BONUS_PER_PAIR as dn, USAGE_EVENT_RETENTION_INTERVAL_MS as dr, FIXED_MEMORY_ACTIVE_TASK_EVIDENCE as dt, FIXED_VEC_MEMORY as en, MIN_RECALL_TOKEN_BUDGET as er, FIXED_IDX_MEMORY_ACTIVE_TASK_EVIDENCE_INSTANCE as et, getRemJobJournalPath as f, ATOMIC_CAPTURE_OUTPUT_TOKEN_BUDGET as fn, USAGE_OUTBOX_INTERVAL_MS as fr, FIXED_MEMORY_ACTIVE_TASK_INSTANCES as ft, readRemOperationalConfig as g, BACKUP_INTERVAL_MS as gn, recallLifecycleSchema as gr, FIXED_MEMORY_ACTIVE_TASK_TRANSITIONS as gt, readMaintenanceOverrides as h, ATOMIC_EXTRACTION_MAX_INPUT_TOKENS as hn, experimentMmrDisabled as hr, FIXED_MEMORY_ACTIVE_TASK_REVISIONS as ht, REM_JOBS_PATH_PREFIX as i, PERSISTED_CONTENT_HASH_V3 as in, PLANNER_STATISTICS_INTERVAL_MS as ir, FIXED_IDX_MEMORY_MEMORIES_FACT_ID as it, SESSION_STRATEGIES as j, DEFAULT_REFLECTION_SESSION_TTL_MS as jn, REM_SIDECAR_TOKEN_HEADER as jr, FIXED_MEMORY_PROVIDER_AGENT_MAPPINGS as jt, MODEL_CALL_WORKLOAD as k, DEFAULT_RECALL_TOKEN_BUDGET as kn, MEMORY_ROUTES as kr, FIXED_MEMORY_MIGRATION_MARKERS as kt, REM_SOURCE as l, isSupportedLocale as ln, SNO_OBSERVE_FLUSH_TIMEOUT_MS as lr, FIXED_IDX_MEMORY_MEMORIES_PROJECT_TIMESTAMP as lt, isRemTraceEnabled as m, ATOMIC_ENRICHMENT_OUTPUT_TOKEN_BUDGET as mn, experimentCandidatePoolOverride as mr, FIXED_MEMORY_ACTIVE_TASK_MIGRATION_MANIFESTS as mt, MEMORY_USAGE_FLUSH_INTERVAL_MS as n, PERSISTED_CANDIDATE_HASH_V1 as nn, MULTI_HIT_BONUS_CAP as nr, FIXED_IDX_MEMORY_MEMORIES_CATEGORY as nt, REM_RUN_PATH as o, embeddingConfigSchema as on, REFLECTION_SLICE_CACHE_TTL_MS as or, FIXED_IDX_MEMORY_MEMORIES_PROJECT as ot, getRemTraceLogPath as p, ATOMIC_CAPTURE_TIMEOUT_MS as pn, VECTOR_DIMENSION_DEFAULT as pr, FIXED_MEMORY_ACTIVE_TASK_MIGRATION_EVIDENCE as pt, FIXED_EXTERNAL_VALUE_57 as q, MAINTENANCE_TICK_MS as qn, FIXED_PROTOCOL_VALUE_73 as qt, REM_CORRELATION_ID_HEADER as r, PERSISTED_CONTENT_HASH_V1 as rn, MULTI_HIT_BONUS_PER_HIT as rr, FIXED_IDX_MEMORY_MEMORIES_CONTENT_HASH as rt, REM_SIDECAR_HOST as s, llmRoutingConfigSchema as sn, REM_TRIGGER_CHECK_INTERVAL_MS as sr, FIXED_IDX_MEMORY_MEMORIES_PROJECT_CONTENT_HASH as st, HEALTH_PATH as t, FIXED_VEC_MEMORY_CHUNKS as tn, MMR_LAMBDA as tr, FIXED_IDX_MEMORY_ACTIVE_TASK_INSTANCES_PROJECTION as tt, getRemChassisJournalPath as u, ADJACENCY_BONUS_CAP as un, TIME_DECAY_FLOOR as ur, FIXED_MEMORY as ut, SettingsUnavailableError as v, BONUS_TOTAL_INVARIANT as vn, LOCAL_EMBEDDING_CACHE_DIR_DEFAULT as vr, FIXED_MEMORY_CHUNKS_AD as vt, getStateDir as w, CHUNK_TARGET_TOKENS as wn, MEMORY_BODY_LIMIT_BYTES as wr, FIXED_MEMORY_CHUNKS_MEM_IDX as wt, getSettingsPath as x, CHUNK_MAX_TOKENS as xn, LocalEmbedProvider as xr, FIXED_MEMORY_CHUNKS_FTS as xt, getDiscoveryPath as y, CACHE_TTL_MS as yn, LOCAL_EMBEDDING_MODEL as yr, FIXED_MEMORY_CHUNKS_AI as yt, sessionMemoryConfigSchema as z, FORGET_QUERY_MIN_SCORE as zn, FIXED_MEMORY_UNPLACED_CANDIDATES as zt };