@snoai/memory 1.0.0 → 1.1.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 (175) hide show
  1. package/README.md +30 -4
  2. package/dist/{access-tracker-CSc21GtV.d.ts → access-tracker-BNqlgChq.d.ts} +3 -3
  3. package/dist/{adapter-DMEmCTKo.d.ts → adapter-CeQ7rViY.d.ts} +2 -2
  4. package/dist/{atomic-memory-extraction-BpOUWPJM.d.ts → atomic-memory-extraction-BT8lFE5t.d.ts} +5 -5
  5. package/dist/{atomic-memory-extraction-sdNf1-B1.js → atomic-memory-extraction-By0axKHc.js} +7 -7
  6. package/dist/{b-profile-section-dictionary-provider-BxbksLj3.d.ts → b-profile-section-dictionary-provider-DGtF4dB7.d.ts} +1 -1
  7. package/dist/{capture-policy-detector-CHz5GOPA.d.ts → capture-policy-detector-CN3vfdNU.d.ts} +1 -1
  8. package/dist/{classifier-C96uH9OF.d.ts → classifier-DnbbtwTS.d.ts} +2 -2
  9. package/dist/client.d.ts +11 -1
  10. package/dist/client.js +35 -5
  11. package/dist/coding-skin.d.ts +6 -0
  12. package/dist/coding-skin.js +18 -1
  13. package/dist/{config-tSrvLXgV.js → config-CyH1VuJc.js} +18 -13
  14. package/dist/{connection-DAbzki8K.d.ts → connection-3IVXpuPE.d.ts} +1 -1
  15. package/dist/{connection-DliCOBB2.js → connection-C9YD5sgm.js} +2 -2
  16. package/dist/{data-bootstrap-CcJUwkqf.d.ts → data-bootstrap-Bl3lthzE.d.ts} +2 -2
  17. package/dist/{data-bootstrap-CYniFp8b.js → data-bootstrap-P8sie9WA.js} +4 -4
  18. package/dist/{derived-suppression-cache-C7bGARc0.d.ts → derived-suppression-cache-BZdBZSdK.d.ts} +1 -1
  19. package/dist/diagnostic-encoder.js +1 -1
  20. package/dist/{index-BsMap4It.d.ts → index-BO4RU_mc.d.ts} +1 -1
  21. package/dist/{index-DQ7VL6d3.d.ts → index-DtqgCT8u.d.ts} +23 -3
  22. package/dist/index.d.ts +10 -10
  23. package/dist/index.js +19 -10
  24. package/dist/internal/config/plugin-config-schema.d.ts +1 -1
  25. package/dist/internal/config/plugin-config-schema.js +1 -1
  26. package/dist/internal/config/product-mode.d.ts +2 -2
  27. package/dist/internal/config/product-mode.js +7 -6
  28. package/dist/internal/config/settings.d.ts +1 -1
  29. package/dist/internal/config/settings.js +3 -3
  30. package/dist/internal/config/skin-defaults.d.ts +1 -1
  31. package/dist/internal/contract/profile.d.ts +1 -1
  32. package/dist/internal/contract/routes.d.ts +2 -2
  33. package/dist/internal/contract/routes.js +2 -1
  34. package/dist/internal/engine/bindings/memory-cli-shared.d.ts +4 -4
  35. package/dist/internal/engine/bindings/memory-forget-tool.js +1 -1
  36. package/dist/internal/engine/bindings/memory-list-tool.js +1 -1
  37. package/dist/internal/engine/bindings/memory-recall-tool.js +2 -2
  38. package/dist/internal/engine/bindings/memory-reflection-resolve-tool.js +1 -1
  39. package/dist/internal/engine/bindings/memory-stats-tool.js +1 -1
  40. package/dist/internal/engine/bindings/memory-store-tool.js +3 -3
  41. package/dist/internal/engine/bindings/memory-tool-access.d.ts +1 -1
  42. package/dist/internal/engine/bindings/memory-tool-access.js +1 -1
  43. package/dist/internal/engine/bindings/memory-tool-results.d.ts +1 -1
  44. package/dist/internal/engine/bindings/memory-tool-results.js +1 -1
  45. package/dist/internal/engine/bindings/memory-tool-schemas.d.ts +5 -5
  46. package/dist/internal/engine/bindings/memory-tool-schemas.js +1 -1
  47. package/dist/internal/engine/bindings/memory-update-tool.js +2 -2
  48. package/dist/internal/engine/bindings/sno-station-mem-ambient-learning-hook.d.ts +4 -4
  49. package/dist/internal/engine/bindings/sno-station-mem-ambient-learning-hook.js +3 -3
  50. package/dist/internal/engine/bindings/sno-station-mem-auto-recall-hook.d.ts +4 -4
  51. package/dist/internal/engine/bindings/sno-station-mem-auto-recall-hook.js +2 -2
  52. package/dist/internal/engine/bindings/sno-station-mem-insight-distill-factory.d.ts +5 -5
  53. package/dist/internal/engine/bindings/sno-station-mem-insight-distill-factory.js +2 -2
  54. package/dist/internal/engine/bindings/sno-station-mem-message-transcript.js +2 -2
  55. package/dist/internal/engine/bindings/sno-station-mem-reset-hook.d.ts +3 -3
  56. package/dist/internal/engine/bindings/sno-station-mem-runtime-mode.d.ts +2 -3
  57. package/dist/internal/engine/bindings/sno-station-mem-runtime-mode.js +1 -2
  58. package/dist/internal/engine/eval/trace.d.ts +1 -1
  59. package/dist/internal/engine/eval/trace.js +2 -2
  60. package/dist/internal/engine/extraction/atomic-memory-extraction.d.ts +1 -1
  61. package/dist/internal/engine/extraction/atomic-memory-extraction.js +1 -1
  62. package/dist/internal/engine/extraction/b-profile-section-dictionary-provider.d.ts +1 -1
  63. package/dist/internal/engine/extraction/b-profile-section-rekey.d.ts +5 -5
  64. package/dist/internal/engine/extraction/capture-policy-detector.d.ts +1 -1
  65. package/dist/internal/engine/extraction/memory-metadata-codec.d.ts +2 -2
  66. package/dist/internal/engine/extraction/memory-temporality-classifier.d.ts +1 -1
  67. package/dist/internal/engine/extraction/memory-temporality-classifier.js +1 -1
  68. package/dist/internal/engine/observability/adapter.d.ts +1 -1
  69. package/dist/internal/engine/observability/memory-snapshot.d.ts +1 -1
  70. package/dist/internal/engine/observability/observable-embedder.d.ts +1 -1
  71. package/dist/internal/engine/observability/observable-llm-client.d.ts +1 -1
  72. package/dist/internal/engine/observability/observable-memory-store.d.ts +1 -1
  73. package/dist/internal/engine/observability/observable-memory-store.js +1 -1
  74. package/dist/internal/engine/observability/observable-retriever.d.ts +1 -1
  75. package/dist/internal/engine/observability/observable-retriever.js +1 -1
  76. package/dist/internal/engine/observability/runtime-diagnostics.d.ts +1 -1
  77. package/dist/internal/engine/observability/runtime-diagnostics.js +2 -2
  78. package/dist/internal/engine/operations/memory-tier-promoter.d.ts +1 -1
  79. package/dist/internal/engine/operations/runtime-audit-log.d.ts +2 -2
  80. package/dist/internal/engine/provider/provider-registration.d.ts +4 -4
  81. package/dist/internal/engine/provider/provider-registration.js +1 -1
  82. package/dist/internal/engine/provider/provider-row-renderer.d.ts +1 -1
  83. package/dist/internal/engine/reflection/reflection-command-hooks.d.ts +1 -1
  84. package/dist/internal/engine/reflection/reflection-command-hooks.js +1 -1
  85. package/dist/internal/engine/reflection/reflection-deps.d.ts +1 -1
  86. package/dist/internal/engine/reflection/reflection-embedded-generator.d.ts +1 -1
  87. package/dist/internal/engine/reflection/reflection-embedded-generator.js +1 -1
  88. package/dist/internal/engine/reflection/reflection-injection-hooks.d.ts +1 -1
  89. package/dist/internal/engine/reflection/reflection-injection-hooks.js +1 -1
  90. package/dist/internal/engine/reflection/reflection-lifecycle-hooks.d.ts +1 -1
  91. package/dist/internal/engine/reflection/reflection-lifecycle-hooks.js +1 -1
  92. package/dist/internal/engine/reflection/strategy-hook-runner.d.ts +3 -3
  93. package/dist/internal/engine/reflection/strategy-hook-runner.js +2 -2
  94. package/dist/internal/engine/rem/classifier.d.ts +1 -1
  95. package/dist/internal/engine/rem/index.d.ts +2 -2
  96. package/dist/internal/engine/retrieval/access-tracker.d.ts +1 -1
  97. package/dist/internal/engine/retrieval/retriever.d.ts +1 -1
  98. package/dist/internal/engine/retrieval/retriever.js +1 -1
  99. package/dist/internal/engine/shared/memory-kind-policy.d.ts +1 -1
  100. package/dist/internal/engine/shared/paths.d.ts +2 -2
  101. package/dist/internal/engine/shared/types.d.ts +2 -2
  102. package/dist/internal/engine/shared/types.js +1 -1
  103. package/dist/internal/engine/telemetry/observe-ledger.d.ts +1 -1
  104. package/dist/internal/model/llm-client.d.ts +2 -2
  105. package/dist/internal/model/llm-client.js +1 -1
  106. package/dist/internal/model/llm-mode-routing.d.ts +1 -1
  107. package/dist/internal/model/llm-mode-routing.js +1 -1
  108. package/dist/internal/store/atomic-memory-cutover-sql.js +1 -1
  109. package/dist/internal/store/connection.d.ts +1 -1
  110. package/dist/internal/store/connection.js +1 -1
  111. package/dist/internal/store/data-bootstrap.d.ts +1 -1
  112. package/dist/internal/store/data-bootstrap.js +1 -1
  113. package/dist/internal/store/maintenance.d.ts +2 -2
  114. package/dist/internal/store/maintenance.js +6 -6
  115. package/dist/internal/store/store.d.ts +2 -2
  116. package/dist/internal/store/store.js +1 -1
  117. package/dist/{llm-client-B7Xoxqou.js → llm-client-BhkzlTnH.js} +2 -6
  118. package/dist/{llm-client-DOTSGzhe.d.ts → llm-client-PC0yQuCq.d.ts} +1 -1
  119. package/dist/{log-site-catalog.generated-B9WYdnAM.js → log-site-catalog.generated-CylmA5IF.js} +169 -169
  120. package/dist/log-site-catalog.json +1 -1
  121. package/dist/memdump.js +1 -1
  122. package/dist/{memory-kind-policy-LKt0u3gy.d.ts → memory-kind-policy-DnHY7l0n.d.ts} +1 -1
  123. package/dist/{memory-metadata-codec-C3oQd47V.d.ts → memory-metadata-codec-DbrRyhCg.d.ts} +1 -1
  124. package/dist/{memory-runtime-BZtREuwW.js → memory-runtime-DUzKtwlW.js} +273 -193
  125. package/dist/{memory-snapshot-3e44ND2i.d.ts → memory-snapshot-shzK-0C8.d.ts} +2 -2
  126. package/dist/{memory-source-order-BtrIxaIt.js → memory-source-order-YMRoeDLd.js} +1 -1
  127. package/dist/{memory-store-base-XRA4S9Xl.d.ts → memory-store-base-Dx6oSqiv.d.ts} +5 -6
  128. package/dist/{memory-store-shared-DeIDkhLj.js → memory-store-shared-DqpWJXZZ.js} +2 -2
  129. package/dist/{memory-temporality-classifier-CKiTAHXe.js → memory-temporality-classifier-AetVby94.js} +2 -2
  130. package/dist/{memory-temporality-classifier-CEdRTN5J.d.ts → memory-temporality-classifier-D91grvZ3.d.ts} +1 -1
  131. package/dist/{memory-tier-promoter-DbTpahkP.d.ts → memory-tier-promoter-DzX7GMZ2.d.ts} +1 -1
  132. package/dist/{memory-tool-dependencies-CLODycUw.js → memory-tool-dependencies-4Vl4QwBY.js} +1 -1
  133. package/dist/memory-tool-dependencies-BGFjBpkG.d.ts +14 -0
  134. package/dist/{model-call-table-CspopkBg.js → model-call-table-BZJQkbKX.js} +9 -0
  135. package/dist/{observable-embedder-DQnNgf9O.d.ts → observable-embedder-CbFylzsx.d.ts} +1 -1
  136. package/dist/{observable-llm-client-uwqPADpN.d.ts → observable-llm-client-BC6Bc8t3.d.ts} +3 -3
  137. package/dist/{observable-memory-store-BaZKbhgq.d.ts → observable-memory-store-BykVMQXt.d.ts} +4 -4
  138. package/dist/{observable-retriever-Dt_NUxAA.d.ts → observable-retriever-C-c9O83s.d.ts} +5 -5
  139. package/dist/paths-DHU342hf.d.ts +1 -0
  140. package/dist/{plugin-config-schema-C0UUbOmG.d.ts → plugin-config-schema-CCwv_K7R.d.ts} +3 -2
  141. package/dist/{plugin-config-schema-YJLyIIcJ.js → plugin-config-schema-CTLb-ChF.js} +2 -6
  142. package/dist/{profile-TWPJ_myr.d.ts → profile-DbIDAmnc.d.ts} +1 -1
  143. package/dist/{profile-section-writer-hIphqpUY.js → profile-section-writer-BV605K78.js} +4 -4
  144. package/dist/{provider-registration-CF1tg8Xy.js → provider-registration-qLSA9CQl.js} +32 -2
  145. package/dist/{reflection-command-hooks-BeQiJI9-.js → reflection-command-hooks-CTYkYqM3.js} +4 -4
  146. package/dist/{reflection-command-hooks-C1Vxgb-O.d.ts → reflection-command-hooks-h2CbYuXx.d.ts} +4 -4
  147. package/dist/{reflection-deps-RpLPFrSc.d.ts → reflection-deps-MWVeBZcs.d.ts} +2 -2
  148. package/dist/{reflection-embedded-generator-CDUhgV96.js → reflection-embedded-generator-D5OhLLVw.js} +1 -1
  149. package/dist/{reflection-embedded-generator-CxOex5xK.d.ts → reflection-embedded-generator-Dk7sL8uy.d.ts} +3 -3
  150. package/dist/{reflection-injection-hooks-DfUgqu8f.d.ts → reflection-injection-hooks-B0fGkENX.d.ts} +4 -4
  151. package/dist/{reflection-lifecycle-hooks-Ct5HBdSG.d.ts → reflection-lifecycle-hooks-Bg_JBS6c.d.ts} +3 -3
  152. package/dist/{rem-batch-executor-bc0IFlp2.js → rem-batch-executor-5IR3e-gG.js} +1 -1
  153. package/dist/{rem-batch-executor-Cbm5gfSe.js → rem-batch-executor-B4OoDBVK.js} +11 -15
  154. package/dist/{rem-consumer-retrieval-CRpvG8KS.js → rem-consumer-retrieval-CR0dtcHR.js} +1 -1
  155. package/dist/{rem-trigger-BTxkcjgT.js → rem-trigger-CYMupvFh.js} +3 -2
  156. package/dist/{results-C3ZLroMb.js → results-BkMsHy7M.js} +16 -0
  157. package/dist/{retriever-Ruk3zp7_.d.ts → retriever-CXeB7-A2.d.ts} +14 -14
  158. package/dist/{retriever-CygHBazG.js → retriever-ZoLvPRHq.js} +3 -3
  159. package/dist/{routes-Ce7SQKec.js → routes-DLHT__Ay.js} +2 -1
  160. package/dist/{runtime-audit-log-zpQiR9HT.d.ts → runtime-audit-log-CIYiNvwf.d.ts} +1 -1
  161. package/dist/{server-BPAY4NTG.js → server-WGLpvv3K.js} +13 -10
  162. package/dist/sidecar/main.js +3 -3
  163. package/dist/{sno-station-mem-runtime-dependencies-DjLOhB45.js → sno-station-mem-runtime-dependencies-Bzfg4hGZ.js} +8 -8
  164. package/dist/sno-station-mem-runtime-dependencies-cFPSMqDD.d.ts +31 -0
  165. package/dist/{store-DzpZBMEm.js → store-D3n1P7Xn.js} +4 -4
  166. package/dist/{store-2pM0-dZg.d.ts → store-Dbo7MIzt.d.ts} +1 -1
  167. package/dist/{strategy-hook-runner-gBtU47tX.d.ts → strategy-hook-runner-C6qUCnzY.d.ts} +7 -7
  168. package/dist/{strategy-hook-runner-zmdIYOmQ.js → strategy-hook-runner-CHpG8vXD.js} +1 -1
  169. package/dist/{trace-1t1n_wUm.d.ts → trace-C1JxMfs-.d.ts} +2 -2
  170. package/dist/{types-DxKqU60b.d.ts → types-DvQ6nTNC.d.ts} +8 -8
  171. package/package.json +8 -8
  172. package/settings.default.json +5 -0
  173. package/dist/memory-tool-dependencies-N69chrQc.d.ts +0 -14
  174. package/dist/paths-qVF-5uBq.d.ts +0 -1
  175. package/dist/sno-station-mem-runtime-dependencies-Bu-MiqPX.d.ts +0 -31
@@ -66,6 +66,12 @@ const toolResponseSchema = z.strictObject({
66
66
  })),
67
67
  details: z.record(z.string(), z.json())
68
68
  });
69
+ const projectSummarySchema = z.strictObject({
70
+ projectId: z.string().min(1),
71
+ workspace: z.string().nullable(),
72
+ memoryCount: z.number().int().nonnegative(),
73
+ kind: z.enum(["general", "project"])
74
+ });
69
75
  const inspectDataSchema = z.discriminatedUnion("op", [
70
76
  z.strictObject({
71
77
  op: z.literal("storage"),
@@ -95,6 +101,16 @@ const inspectDataSchema = z.discriminatedUnion("op", [
95
101
  lines: z.number().int().optional(),
96
102
  nextFrom: z.number().int().optional()
97
103
  }).optional()
104
+ }),
105
+ z.strictObject({
106
+ op: z.literal("projects"),
107
+ projects: z.array(projectSummarySchema)
108
+ }),
109
+ z.strictObject({
110
+ op: z.literal("currentProject"),
111
+ workspace: z.string(),
112
+ status: z.enum(["known", "unknown"]),
113
+ project: projectSummarySchema.nullable()
98
114
  })
99
115
  ]);
100
116
  function resultSchema(shape) {
@@ -1,13 +1,13 @@
1
- import { h as MemoryCategory, l as DecayScore, r as AggregationQuery, u as DecayableMemory, x as RetrievalResult, y as MemorySearchResult } from "./types-DxKqU60b.js";
1
+ import { h as MemoryCategory, l as DecayScore, r as AggregationQuery, u as DecayableMemory, x as RetrievalResult, y as MemorySearchResult } from "./types-DvQ6nTNC.js";
2
2
  import { sn as RecallLifecycleConfig } from "./index-DL8AVj0Z.js";
3
3
  import { t as Embedder } from "./embedding-provider-client-vynZMuit.js";
4
- import "./trace-1t1n_wUm.js";
5
- import "./memory-metadata-codec-C3oQd47V.js";
6
- import { K as RemFacetPolicy } from "./index-BsMap4It.js";
7
- import { C as MemoryStore } from "./memory-store-base-XRA4S9Xl.js";
8
- import "./store-2pM0-dZg.js";
9
- import { n as AccessTracker } from "./access-tracker-CSc21GtV.js";
10
- import { r as TierPromoter } from "./memory-tier-promoter-DbTpahkP.js";
4
+ import "./trace-C1JxMfs-.js";
5
+ import "./memory-metadata-codec-DbrRyhCg.js";
6
+ import { K as RemFacetPolicy } from "./index-BO4RU_mc.js";
7
+ import { C as MemoryStore } from "./memory-store-base-Dx6oSqiv.js";
8
+ import "./store-Dbo7MIzt.js";
9
+ import { n as AccessTracker } from "./access-tracker-BNqlgChq.js";
10
+ import { r as TierPromoter } from "./memory-tier-promoter-DzX7GMZ2.js";
11
11
  import "@snoai/utils/logger";
12
12
  //#region src/engine/retrieval/retrieval-trace.d.ts
13
13
  /** @file retrieval-trace.ts
@@ -266,7 +266,7 @@ interface RetrievalConfig {
266
266
  /** Hard cap: effective half-life <= baseHalfLife * maxHalfLifeMultiplier (default: 3) */
267
267
  maxHalfLifeMultiplier?: number;
268
268
  /**
269
- * Phase 0 retention-loop knobs (openspec/changes/mem-lifecycle PRD §6.1).
269
+ * Phase 0 retention-loop knobs.
270
270
  * Optional so legacy `RetrievalConfig` literals keep parsing; resolved
271
271
  * default in `DEFAULT_RETRIEVAL_CONFIG` is `DEFAULT_RECALL_LIFECYCLE`
272
272
  * (all booleans `false`), making the new wire sites pass-through.
@@ -284,7 +284,7 @@ interface RetrievalContext {
284
284
  /**
285
285
  * Refused fallback rows carry the user's own words and are served by default; product
286
286
  * entrypoints pass true, and only an explicit false hides them (owner ruling 2026-09-01,
287
- * reversing PRD 130 DEC-2). Omitted low-level/internal reads preserve all rows.
287
+ * reversing an earlier default). Omitted low-level/internal reads preserve all rows.
288
288
  */
289
289
  includeRefused?: boolean;
290
290
  signal?: AbortSignal;
@@ -299,12 +299,12 @@ interface RetrievalContext {
299
299
  /** Selects current chunks only unless a non-user consumer explicitly requests history. */
300
300
  facetPolicy?: RemFacetPolicy;
301
301
  /**
302
- * Tombstone exclusion (PRD memora-fama W1.3). When set, the store search
302
+ * Tombstone exclusion. When set, the store search
303
303
  * drops candidates whose `metadata.invalidated_at <= excludeInvalidatedBefore`.
304
304
  * A superseded fact is obsolete regardless of recall mode (OD-3, FAA binary),
305
305
  * so omitting it on a serving path does not mean "serve everything": both
306
306
  * retriever entrypoints run the context through `withServingValidityDefault`
307
- * first (PRD 205). Pass `0` for a deliberate history read.
307
+ * first. Pass `0` for a deliberate history read.
308
308
  */
309
309
  excludeInvalidatedBefore?: number;
310
310
  includeRetired?: boolean;
@@ -316,7 +316,7 @@ interface RetrievalContext {
316
316
  excludeSuperseded?: boolean;
317
317
  }
318
318
  /**
319
- * The serving-path validity default (PRD 205, REQ-1). This is the one named code
319
+ * The serving-path validity default. This is the one named code
320
320
  * point that supplies it: reading the default here is what makes the
321
321
  * invalidated-row filter a property of the serving path rather than a parameter
322
322
  * every caller has to remember, and the omission is no longer silent.
@@ -326,7 +326,7 @@ interface RetrievalContext {
326
326
  *
327
327
  * Scope is the retriever, never the store layer: six write-side consumers (dedup,
328
328
  * reflection loops, observability, the REM batch executor) call the store search
329
- * APIs directly and legitimately read invalidated rows. DEC-1 — do not move this
329
+ * APIs directly and legitimately read invalidated rows. Do not move this
330
330
  * down a layer.
331
331
  */
332
332
  declare function withServingValidityDefault(context: RetrievalContext): RetrievalContext;
@@ -185,7 +185,7 @@ var TraceCollector = class {
185
185
  * @boundary Types and defaults only; no ranking execution.
186
186
  */
187
187
  /**
188
- * The serving-path validity default (PRD 205, REQ-1). This is the one named code
188
+ * The serving-path validity default. This is the one named code
189
189
  * point that supplies it: reading the default here is what makes the
190
190
  * invalidated-row filter a property of the serving path rather than a parameter
191
191
  * every caller has to remember, and the omission is no longer silent.
@@ -195,7 +195,7 @@ var TraceCollector = class {
195
195
  *
196
196
  * Scope is the retriever, never the store layer: six write-side consumers (dedup,
197
197
  * reflection loops, observability, the REM batch executor) call the store search
198
- * APIs directly and legitimately read invalidated rows. DEC-1 — do not move this
198
+ * APIs directly and legitimately read invalidated rows. Do not move this
199
199
  * down a layer.
200
200
  */
201
201
  function withServingValidityDefault(context) {
@@ -1256,7 +1256,7 @@ function getTierFloor(tier) {
1256
1256
  }
1257
1257
  }
1258
1258
  /**
1259
- * Multiplier formula from openspec/changes/mem-lifecycle PRD §4.1 + retention-
1259
+ * Multiplier formula + retention-
1260
1260
  * scoring spec §62. Bounded to `[SEARCH_BOOST_MIN, 1.0]`; never amplifies,
1261
1261
  * only suppresses, so existing scores are an upper bound after the stage.
1262
1262
  *
@@ -39,6 +39,7 @@ const MEMORY_ROUTES = {
39
39
  };
40
40
  const MEMORY_BODY_LIMIT_BYTES = 8388608;
41
41
  const MEMORY_SKIN_HEADER = "x-sno-station-mem-skin";
42
+ const REM_SIDECAR_TOKEN_HEADER = "x-sidecar-token";
42
43
  function memoryMethod(pathname) {
43
44
  return Object.keys(MEMORY_ROUTES).find((method) => MEMORY_ROUTES[method].path === pathname);
44
45
  }
@@ -56,4 +57,4 @@ const MEMORY_ERROR_STATUS = {
56
57
  const MEMORY_RECONNECT_INTERVAL_MS = 1e3;
57
58
  const MEMORY_DEFAULT_SKIN_ID = "default";
58
59
  //#endregion
59
- export { MEMORY_ROUTES as a, MEMORY_RECONNECT_INTERVAL_MS as i, MEMORY_DEFAULT_SKIN_ID as n, MEMORY_SKIN_HEADER as o, MEMORY_ERROR_STATUS as r, memoryMethod as s, MEMORY_BODY_LIMIT_BYTES as t };
60
+ export { MEMORY_ROUTES as a, memoryMethod as c, MEMORY_RECONNECT_INTERVAL_MS as i, MEMORY_DEFAULT_SKIN_ID as n, MEMORY_SKIN_HEADER as o, MEMORY_ERROR_STATUS as r, REM_SIDECAR_TOKEN_HEADER as s, MEMORY_BODY_LIMIT_BYTES as t };
@@ -1,4 +1,4 @@
1
- import "./paths-qVF-5uBq.js";
1
+ import "./paths-DHU342hf.js";
2
2
  //#region src/engine/operations/runtime-audit-log.d.ts
3
3
  type AuditEvent = "tool_call" | "hook_trigger" | "kill_switch" | "startup" | "error" | "auto_recall" | "ambient_learning" | "session_summary" | "envelope_strip" | "storage_integrity" | "memory_injected" | "memory_searched" | "memory_read" | "memory_updated" | "memory_superseded" | "memory_deleted" | "memory_purged" | "rem_trigger_evaluated" | "rem_triggered" | "rem_completed" | "rem_failed";
4
4
  type AuditStatus = "ok" | "error" | "skipped" | "partial";
@@ -1,7 +1,7 @@
1
- import { $ as appendAuditEntryStrict, Ct as ModelCallRefusedError, H as parseRemOperationType, V as REM_BUILT_OPERATION_TYPES, at as readJsonlLines, tt as getAuditPath } from "./rem-batch-executor-Cbm5gfSe.js";
2
- import { a as MEMORY_ROUTES, n as MEMORY_DEFAULT_SKIN_ID, o as MEMORY_SKIN_HEADER, r as MEMORY_ERROR_STATUS, s as memoryMethod } from "./routes-Ce7SQKec.js";
3
- import { C as getSidecarSocketPath, _ as readRemOperationalConfig, b as getDiscoveryPath, c as REM_SIDECAR_ORIGIN, d as getRemChassisJournalPath, f as getRemDiscoveryPath, i as REM_JOBS_PATH_PREFIX, p as getRemJobJournalPath, r as REM_CORRELATION_ID_HEADER, rr as MEMORY_SHUTDOWN_TIMEOUT_MS, s as REM_SIDECAR_HOST, u as REM_SOURCE, v as readRemTestHoldMs, w as getSnoStationMemStateDir, x as getPrincipal, y as SettingsUnavailableError } from "./config-tSrvLXgV.js";
4
- import { n as remNeedsHost, r as ContractError } from "./rem-trigger-BTxkcjgT.js";
1
+ import { $ as appendAuditEntryStrict, Ct as ModelCallRefusedError, H as parseRemOperationType, V as REM_BUILT_OPERATION_TYPES, at as readJsonlLines, tt as getAuditPath } from "./rem-batch-executor-B4OoDBVK.js";
2
+ import { a as MEMORY_ROUTES, c as memoryMethod, n as MEMORY_DEFAULT_SKIN_ID, o as MEMORY_SKIN_HEADER, r as MEMORY_ERROR_STATUS } from "./routes-DLHT__Ay.js";
3
+ import { C as getSnoStationMemStateDir, S as getSidecarSocketPath, _ as readRemTestHoldMs, c as REM_SIDECAR_ORIGIN, d as getRemDiscoveryPath, f as getRemJobJournalPath, g as readRemOperationalConfig, i as REM_JOBS_PATH_PREFIX, l as REM_SOURCE, nr as MEMORY_SHUTDOWN_TIMEOUT_MS, r as REM_CORRELATION_ID_HEADER, s as REM_SIDECAR_HOST, u as getRemChassisJournalPath, v as SettingsUnavailableError, y as getDiscoveryPath } from "./config-CyH1VuJc.js";
4
+ import { n as remNeedsHost, r as ContractError } from "./rem-trigger-CYMupvFh.js";
5
5
  import { setImmediate } from "node:timers/promises";
6
6
  import { createLogger, currentLogContext, effectiveLogLevel, emitDiagnostic } from "@snoai/utils/logger";
7
7
  import path from "node:path";
@@ -650,7 +650,7 @@ async function startOwnedRemSidecar() {
650
650
  async open() {
651
651
  if (currentMemory) return currentMemory;
652
652
  if (settingsError) throw settingsError;
653
- openingMemory ??= import("./memory-runtime-BZtREuwW.js").then((module) => module.MemoryRuntimePool.open()).then((pool) => {
653
+ openingMemory ??= import("./memory-runtime-DUzKtwlW.js").then((module) => module.MemoryRuntimePool.open()).then((pool) => {
654
654
  currentMemory = pool;
655
655
  if (stopping) pool.stopTimers();
656
656
  return pool;
@@ -724,7 +724,7 @@ async function startOwnedRemSidecar() {
724
724
  };
725
725
  response.once("finish", () => recordRequest());
726
726
  response.once("close", () => recordRequest(!response.writableFinished));
727
- withLogContext$1({ operation_id: operationId }, () => routeRequest(request, response, store, chassisJournal, holdMs, pendingTimers, activeTasks, context, memory, () => stopping).catch((error) => {
727
+ withLogContext$1({ operation_id: operationId }, () => routeRequest(request, response, store, chassisJournal, holdMs, pendingTimers, activeTasks, context, memory, () => stopping, token).catch((error) => {
728
728
  if (error instanceof SettingsUnavailableError) {
729
729
  context.error_code = error.message;
730
730
  if (!response.headersSent) sendJson(response, 503, { error: error.message });
@@ -882,7 +882,7 @@ async function startOwnedRemSidecar() {
882
882
  }
883
883
  };
884
884
  }
885
- async function routeRequest(request, response, pendingStore, chassisJournal, holdMs, pendingTimers, activeTasks, context, memory, isStopping) {
885
+ async function routeRequest(request, response, pendingStore, chassisJournal, holdMs, pendingTimers, activeTasks, context, memory, isStopping, token) {
886
886
  const url = new URL(request.url ?? "/healthz", REM_SIDECAR_ORIGIN);
887
887
  if (request.method === "GET" && url.pathname === "/healthz") {
888
888
  try {
@@ -891,8 +891,6 @@ async function routeRequest(request, response, pendingStore, chassisJournal, hol
891
891
  status: runtime.modelPreparationError ? "degraded" : "ok",
892
892
  ...runtime.modelPreparationError && { error: runtime.modelPreparationError },
893
893
  log_level: effectiveLogLevel(),
894
- principal: getPrincipal(),
895
- storePath: runtime.storePath,
896
894
  accessCounters: runtime.counters
897
895
  });
898
896
  } catch (error) {
@@ -904,6 +902,10 @@ async function routeRequest(request, response, pendingStore, chassisJournal, hol
904
902
  }
905
903
  return;
906
904
  }
905
+ if (request.headers["x-sidecar-token"] !== token) {
906
+ sendJson(response, 401, {});
907
+ return;
908
+ }
907
909
  if (url.pathname.startsWith("/v1/")) {
908
910
  if (await serveMemoryRoute(request, response, url.pathname, () => memory.open(), activeTasks)) return;
909
911
  }
@@ -1021,6 +1023,7 @@ async function runChassisJob(store, journal, waveId, holdMs, runtime) {
1021
1023
  await skipNonTerminalJob(store, queued.job_id, "no host model connected");
1022
1024
  return;
1023
1025
  }
1026
+ runtime.startWork();
1024
1027
  const running = resuming ? queued : await store.transition(queued.job_id, {
1025
1028
  state: "running",
1026
1029
  started_at: (/* @__PURE__ */ new Date()).toISOString()
@@ -1041,7 +1044,7 @@ async function runChassisJob(store, journal, waveId, holdMs, runtime) {
1041
1044
  cleanRefusalReasons.push(reason);
1042
1045
  await appendChassisRefusal(journal, queued, operation, "refused", reason);
1043
1046
  }
1044
- const { runRemProductionOrderedWave } = await import("./rem-batch-executor-bc0IFlp2.js");
1047
+ const { runRemProductionOrderedWave } = await import("./rem-batch-executor-5IR3e-gG.js");
1045
1048
  const result = enabledOperations.length === 0 ? {
1046
1049
  decision: "allow",
1047
1050
  reasonCode: null,
@@ -1,5 +1,5 @@
1
- import { i as MEMORY_RECONNECT_INTERVAL_MS } from "../routes-Ce7SQKec.js";
2
- import { h as isRemTraceEnabled, m as getRemTraceLogPath, y as SettingsUnavailableError } from "../config-tSrvLXgV.js";
1
+ import { i as MEMORY_RECONNECT_INTERVAL_MS } from "../routes-DLHT__Ay.js";
2
+ import { m as isRemTraceEnabled, p as getRemTraceLogPath, v as SettingsUnavailableError } from "../config-CyH1VuJc.js";
3
3
  import { setTimeout } from "node:timers/promises";
4
4
  import { addLogFileTarget, closeLogger, createLogger } from "@snoai/utils/logger";
5
5
  //#region src/sidecar/main.ts
@@ -7,7 +7,7 @@ import { addLogFileTarget, closeLogger, createLogger } from "@snoai/utils/logger
7
7
  * @purpose Boots the standalone local REM sidecar process.
8
8
  * @boundary Process environment, sidecar lifecycle, and local request-log destination.
9
9
  */
10
- const { startRemSidecar, DuplicateSidecarError } = await import("../server-BPAY4NTG.js");
10
+ const { startRemSidecar, DuplicateSidecarError } = await import("../server-WGLpvv3K.js");
11
11
  let sidecar;
12
12
  while (!sidecar) try {
13
13
  sidecar = await startRemSidecar();
@@ -3,15 +3,15 @@ import "./internal/engine/i18n/locales.js";
3
3
  import "./internal/engine/shared/types.js";
4
4
  import "./internal/engine/security/redact.js";
5
5
  import "./internal/engine/shared/utils.js";
6
- import "./llm-client-B7Xoxqou.js";
6
+ import "./llm-client-BhkzlTnH.js";
7
7
  import "./capture-policy-detector-DaMfy9CZ.js";
8
8
  import "./ambient-learning-text-normalizer-CxjATmMp.js";
9
- import "./memory-temporality-classifier-CKiTAHXe.js";
9
+ import "./memory-temporality-classifier-AetVby94.js";
10
10
  import "./runtime-audit-log-BCeujlEp.js";
11
11
  import "./scopes-CSOn6zdd.js";
12
- import "./atomic-memory-extraction-sdNf1-B1.js";
12
+ import "./atomic-memory-extraction-By0axKHc.js";
13
13
  import "./internal/store/sqlite-runtime.js";
14
- import "./connection-DliCOBB2.js";
14
+ import "./connection-C9YD5sgm.js";
15
15
  import "./internal/store/data-paths.js";
16
16
  import "./adapter-XaRHZWZ2.js";
17
17
  import "./internal/engine/observability/memory-snapshot.js";
@@ -19,12 +19,12 @@ import "./internal/engine/observability/observable-embedder.js";
19
19
  import "./internal/engine/observability/observable-llm-client.js";
20
20
  import "./internal/engine/observability/observable-memory-store.js";
21
21
  import "./internal/engine/retrieval/access-tracker.js";
22
- import "./retriever-CygHBazG.js";
22
+ import "./retriever-ZoLvPRHq.js";
23
23
  import "./internal/engine/observability/observable-retriever.js";
24
24
  import "./internal/engine/observability/session-registry.js";
25
25
  import "./daily-log-generator-CH_KuWHs.js";
26
- import "./reflection-embedded-generator-CDUhgV96.js";
27
- import "./strategy-hook-runner-zmdIYOmQ.js";
28
- import "./data-bootstrap-CYniFp8b.js";
26
+ import "./reflection-embedded-generator-D5OhLLVw.js";
27
+ import "./strategy-hook-runner-CHpG8vXD.js";
28
+ import "./data-bootstrap-P8sie9WA.js";
29
29
  import "@snoai/sqlite-crypto";
30
30
  export {};
@@ -0,0 +1,31 @@
1
+ import "./types-DvQ6nTNC.js";
2
+ import "./index-DL8AVj0Z.js";
3
+ import "./adapter-CeQ7rViY.js";
4
+ import "./embedding-provider-client-vynZMuit.js";
5
+ import "./retriever-CXeB7-A2.js";
6
+ import "./connection-3IVXpuPE.js";
7
+ import "./sqlite-runtime-L_ywirTm.js";
8
+ import "./store-Dbo7MIzt.js";
9
+ import "./access-tracker-BNqlgChq.js";
10
+ import "./memory-tier-promoter-DzX7GMZ2.js";
11
+ import "./capture-policy-detector-CN3vfdNU.js";
12
+ import "./memory-temporality-classifier-D91grvZ3.js";
13
+ import "./runtime-audit-log-CIYiNvwf.js";
14
+ import "./atomic-memory-extraction-BT8lFE5t.js";
15
+ import "./llm-client-PC0yQuCq.js";
16
+ import "./memory-snapshot-shzK-0C8.js";
17
+ import "./observable-embedder-CbFylzsx.js";
18
+ import "./observable-llm-client-BC6Bc8t3.js";
19
+ import "./observable-memory-store-BykVMQXt.js";
20
+ import "./observable-retriever-C-c9O83s.js";
21
+ import "./reflection-embedded-generator-Dk7sL8uy.js";
22
+ import "./strategy-hook-runner-C6qUCnzY.js";
23
+ import "./data-bootstrap-Bl3lthzE.js";
24
+ import "@snoai/sqlite-crypto";
25
+ //#region src/engine/bindings/sno-station-mem-runtime-dependencies.d.ts
26
+ /** Legacy parameters carry only an unused logger slot; no host operations are exposed. */
27
+ type SnoStationMemPluginApi = {
28
+ logger: unknown;
29
+ };
30
+ //#endregion
31
+ export { SnoStationMemPluginApi as t };
@@ -8,14 +8,14 @@ import { normalizeForCompare, tokenizeForFts } from "./internal/engine/shared/i1
8
8
  import { bytesToF32, clamp01, clampInt, f32ToBytes, sanitizeFtsConjunctiveQuery, sanitizeFtsQuery, stableHash } from "./internal/engine/shared/utils.js";
9
9
  import { t as checkMemoryOperation } from "./operation-cancellation-CTKWwNHk.js";
10
10
  import "./internal/engine/extraction/extraction-text-sanitizer.js";
11
- import "./memory-temporality-classifier-CKiTAHXe.js";
11
+ import "./memory-temporality-classifier-AetVby94.js";
12
12
  import { l as runWithMemoryAudit } from "./runtime-audit-log-BCeujlEp.js";
13
13
  import { getSnoStationMemStateDir } from "./internal/contract/profile.js";
14
- import { a as readMemorySourceOrder, i as readCorrectionMoment, n as compareMemoryRetirementOrder, o as readMemorySourceOrderOrOldest, r as compareMemorySourceOrder, s as sameSourceTurn, t as closeMemoryRow } from "./memory-source-order-BtrIxaIt.js";
14
+ import { a as readMemorySourceOrder, i as readCorrectionMoment, n as compareMemoryRetirementOrder, o as readMemorySourceOrderOrOldest, r as compareMemorySourceOrder, s as sameSourceTurn, t as closeMemoryRow } from "./memory-source-order-YMRoeDLd.js";
15
15
  import { REM_UPDATE_LOCALES, deriveRemWriteIdentity, getRemUpdateLocaleResource, writeRemTwoFacetTransaction } from "./internal/engine/rem/index.js";
16
16
  import { n as state_vocabulary_default, r as attribute_dictionary_default, t as relations } from "./relation-dictionary-Cev1kyLe.js";
17
- import { _ as shouldDropSummary, a as Mutex, c as buildChunkId, d as expandSnippetWindow, f as extractMetadataHeader, g as randomUUID$1, h as log$3, i as JSON_ID_BATCH_SIZE, l as buildDensePayload, m as headExtract, o as aggregateChunksToMemories, p as hashInputForEntry, r as CHUNK_BACKFILL_RETRY_BASE_MS, s as assertMetadataOnlyUpdatePreservesHashInput, t as CHUNKING_VERSION, u as chunk, v as withStoreWriteOutcome } from "./memory-store-shared-DeIDkhLj.js";
18
- import { r as initDb } from "./connection-DliCOBB2.js";
17
+ import { _ as shouldDropSummary, a as Mutex, c as buildChunkId, d as expandSnippetWindow, f as extractMetadataHeader, g as randomUUID$1, h as log$3, i as JSON_ID_BATCH_SIZE, l as buildDensePayload, m as headExtract, o as aggregateChunksToMemories, p as hashInputForEntry, r as CHUNK_BACKFILL_RETRY_BASE_MS, s as assertMetadataOnlyUpdatePreservesHashInput, t as CHUNKING_VERSION, u as chunk, v as withStoreWriteOutcome } from "./memory-store-shared-DqpWJXZZ.js";
18
+ import { r as initDb } from "./connection-C9YD5sgm.js";
19
19
  import { n as loadMemoryTelemetryKeySet, t as createMemoryTelemetryReceiptService } from "./memory-telemetry-receipts-YsxbwOAf.js";
20
20
  import { MEMORY_TELEMETRY_DELETE_REASONS } from "./internal/engine/telemetry/memory-telemetry-types.js";
21
21
  import { t as validateMemoryTelemetryMetadata } from "./memory-telemetry-metadata-CA7W8tK6.js";
@@ -1,5 +1,5 @@
1
1
  import "./embedding-provider-client-vynZMuit.js";
2
- import { B as TaskLifecycleMigrationManifest, H as TaskLifecycleMigrationSourceRow, a as AtomicExtractionRepairStrategy, c as AtomicExtractionRunParameters, o as AtomicExtractionReprocessBounds, s as AtomicExtractionReprocessReason, x as MemoryRelationPredicate, z as TaskLifecycleMigrationCensusRow } from "./memory-store-base-XRA4S9Xl.js";
2
+ import { B as TaskLifecycleMigrationManifest, H as TaskLifecycleMigrationSourceRow, a as AtomicExtractionRepairStrategy, c as AtomicExtractionRunParameters, o as AtomicExtractionReprocessBounds, s as AtomicExtractionReprocessReason, x as MemoryRelationPredicate, z as TaskLifecycleMigrationCensusRow } from "./memory-store-base-Dx6oSqiv.js";
3
3
  import "./sqlite-runtime-L_ywirTm.js";
4
4
  //#region src/store/memory-store-relation-api.d.ts
5
5
  declare function normalizeMemoryRelationPredicate(predicate: string): MemoryRelationPredicate;
@@ -1,10 +1,10 @@
1
- import { t as PluginConfig } from "./plugin-config-schema-C0UUbOmG.js";
2
- import "./types-DxKqU60b.js";
3
- import "./reflection-embedded-generator-CxOex5xK.js";
4
- import { t as ReflectionLifecycleParams } from "./reflection-lifecycle-hooks-Ct5HBdSG.js";
5
- import { t as ReflectionInjectionParams } from "./reflection-injection-hooks-DfUgqu8f.js";
6
- import { t as ReflectionDeps } from "./reflection-deps-RpLPFrSc.js";
7
- import { t as ReflectionCommandParams } from "./reflection-command-hooks-C1Vxgb-O.js";
1
+ import { t as PluginConfig } from "./plugin-config-schema-CCwv_K7R.js";
2
+ import "./types-DvQ6nTNC.js";
3
+ import "./reflection-embedded-generator-Dk7sL8uy.js";
4
+ import { t as ReflectionLifecycleParams } from "./reflection-lifecycle-hooks-Bg_JBS6c.js";
5
+ import { t as ReflectionInjectionParams } from "./reflection-injection-hooks-B0fGkENX.js";
6
+ import { t as ReflectionDeps } from "./reflection-deps-MWVeBZcs.js";
7
+ import { t as ReflectionCommandParams } from "./reflection-command-hooks-h2CbYuXx.js";
8
8
  //#region src/engine/reflection/strategy-hook-runner.d.ts
9
9
  declare function createReflectionStrategyState(config: PluginConfig, deps: ReflectionDeps): ReflectionStrategyState;
10
10
  type ReflectionStrategyState = {
@@ -1,7 +1,7 @@
1
1
  import { DEFAULT_REFLECTION_SESSION_TTL_MS } from "./internal/config/index.js";
2
2
  import { setLruEntry, touchLruEntry } from "./internal/engine/shared/lru.js";
3
3
  import { n as createErrorSignalTracker } from "./error-signals-lMH2uAdV.js";
4
- import { i as pruneReflectionState } from "./reflection-embedded-generator-CDUhgV96.js";
4
+ import { i as pruneReflectionState } from "./reflection-embedded-generator-D5OhLLVw.js";
5
5
  import { a as loadAgentReflectionSlicesFromEntries } from "./memory-entry-projector-DHo8jH10.js";
6
6
  import { createLogger } from "@snoai/utils/logger";
7
7
  //#region src/engine/reflection/reflection-slice-loader.ts
@@ -20,7 +20,7 @@ interface QaTrace {
20
20
  timestampMs: number;
21
21
  latencyMs?: number | undefined;
22
22
  /**
23
- * Diagnostic side-channel for partial-population stages (PRD §4 trace
23
+ * Diagnostic side-channel for partial-population stages (trace
24
24
  * population rule + F4 host finding). When a per-stage score array is
25
25
  * incomplete (some results have the value, others don't), the array is
26
26
  * omitted from the top-level fields and the missing-result chunk ids are
@@ -77,7 +77,7 @@ declare function buildConfigSnapshot(): Record<string, unknown>;
77
77
  * Writes `config-snapshot.json` to `traceDir` and returns the SHA-256 hex
78
78
  * digest of its content for join with `config_hash` in `qa_traces.jsonl`.
79
79
  * Idempotent; overwrites on each call. Throws on filesystem failure because
80
- * a missing snapshot invalidates the eval run per PRD §11.2.1.
80
+ * a missing snapshot invalidates the eval run.
81
81
  */
82
82
  declare function writeConfigSnapshot(traceDir: string): string;
83
83
  /** Computes the SHA-256 hex digest of the current config snapshot in-memory. */
@@ -1,4 +1,4 @@
1
- import "./plugin-config-schema-C0UUbOmG.js";
1
+ import "./plugin-config-schema-CCwv_K7R.js";
2
2
  import { z } from "zod";
3
3
  import { ContentType } from "@snoai/chunking";
4
4
  //#region src/engine/extraction/memory-metadata-types.d.ts
@@ -227,22 +227,22 @@ interface MemorySearchResult {
227
227
  * Per-branch winning chunk id (the chunk that produced the highest score
228
228
  * within the branch that emitted this result), populated by chunk-aware
229
229
  * search wrappers (`searchSemantic` / `searchKeyword`). Required by the
230
- * chunk-level reranker (PRD §6.0.1) to fetch `bestChunkVector` and by
231
- * snippet expansion (PRD §6.M2) to anchor the neighbor window.
230
+ * chunk-level reranker to fetch `bestChunkVector` and by
231
+ * snippet expansion to anchor the neighbor window.
232
232
  */
233
233
  chunkId?: string;
234
234
  /** Chunk index of the winning chunk within its parent memory. */
235
235
  chunkIndex?: number;
236
236
  /**
237
237
  * Chunk-level score of the winning chunk before any fusion or rerank
238
- * blending. Survives RRF fusion so the snippet anchor rule (PRD §4) can
238
+ * blending. Survives RRF fusion so the snippet anchor rule can
239
239
  * pick a deterministic winner when both branches surface the same parent
240
240
  * with different best chunks.
241
241
  */
242
242
  bestChunkScore?: number;
243
243
  /**
244
- * Winning-chunk + neighbor snippet assembled by snippet expansion
245
- * (PRD §M2). Empty string is treated as no-snippet; consumers must fall
244
+ * Winning-chunk + neighbor snippet assembled by snippet expansion.
245
+ * Empty string is treated as no-snippet; consumers must fall
246
246
  * back to `entry.text` when undefined or empty.
247
247
  */
248
248
  snippet?: string;
@@ -456,7 +456,7 @@ interface RetrievalResult {
456
456
  /** Per-branch winning chunk metadata, propagated from `MemorySearchResult`. */
457
457
  chunkId?: string;
458
458
  chunkIndex?: number;
459
- /** Survives RRF fusion via the anchor rule (PRD §4): higher branch wins, semantic tie-break. */
459
+ /** Survives RRF fusion via the anchor rule: higher branch wins, semantic tie-break. */
460
460
  bestChunkScore?: number;
461
461
  /** Winning-chunk + neighbor snippet from M2 snippet expansion. */
462
462
  snippet?: string;
@@ -466,7 +466,7 @@ interface RetrievalResult {
466
466
  * it rather than serving an older sibling alone.
467
467
  */
468
468
  recallGroupKey?: string;
469
- /** Per-stage scores (PRD §5.2). Each pipeline stage populates the field it owns. */
469
+ /** Per-stage scores. Each pipeline stage populates the field it owns. */
470
470
  denseScore?: number;
471
471
  bm25Score?: number;
472
472
  fusedScore?: number;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@snoai/memory",
3
- "version": "1.0.0",
3
+ "version": "1.1.0",
4
4
  "license": "Apache-2.0",
5
5
  "publishConfig": { "access": "public" },
6
6
  "repository": {
@@ -86,15 +86,15 @@
86
86
  "@js-temporal/polyfill": "0.5.1",
87
87
  "@napi-rs/keyring": "^2.0.0",
88
88
  "@sinclair/typebox": "^0.34.49",
89
- "@snoai/chunking": "1.0.1",
90
- "@snoai/common-core": "^1.0.0",
91
- "@snoai/content-sanitizer": "^0.99.3",
92
- "@snoai/embedder": "^1.0.0",
89
+ "@snoai/chunking": "^1.0.1",
90
+ "@snoai/common-core": "^1.1.0",
91
+ "@snoai/content-sanitizer": "^0.99.3 || ^1.1.0",
92
+ "@snoai/embedder": "^1.1.0",
93
93
  "@snoai/llmix": "2.2.0",
94
94
  "@snoai/mda-config": "^1.1.2",
95
- "@snoai/observability": "^1.0.0",
96
- "@snoai/sqlite-crypto": "^1.0.0",
97
- "@snoai/utils": "^1.0.0",
95
+ "@snoai/observability": "^1.1.0",
96
+ "@snoai/sqlite-crypto": "^1.1.0",
97
+ "@snoai/utils": "^1.1.0",
98
98
  "argon2": "^0.45.1",
99
99
  "async-mutex": "^0.5.0",
100
100
  "better-sqlite3": "^13.0.3",
@@ -116,6 +116,11 @@
116
116
  "agent-native": "sno-gpu",
117
117
  "rem-enhanced": "sno-gpu"
118
118
  },
119
+ "R5": {
120
+ "local-first": "host",
121
+ "agent-native": "off",
122
+ "rem-enhanced": "off"
123
+ },
119
124
  "REM1": {
120
125
  "local-first": "host",
121
126
  "agent-native": "host",
@@ -1,14 +0,0 @@
1
- import "./types-DxKqU60b.js";
2
- import "./index-DL8AVj0Z.js";
3
- import "./embedding-provider-client-vynZMuit.js";
4
- import "./retriever-Ruk3zp7_.js";
5
- import "./memory-metadata-codec-C3oQd47V.js";
6
- import "./store-2pM0-dZg.js";
7
- import "./capture-policy-detector-CHz5GOPA.js";
8
- import "./memory-temporality-classifier-CEdRTN5J.js";
9
- import "./runtime-audit-log-zpQiR9HT.js";
10
- import { z as z$1 } from "zod";
11
- import "@snoai/chunking";
12
- import "@sinclair/typebox";
13
- import "async-mutex";
14
- export { z$1 as t };
@@ -1 +0,0 @@
1
- import "./profile-TWPJ_myr.js";
@@ -1,31 +0,0 @@
1
- import "./types-DxKqU60b.js";
2
- import "./index-DL8AVj0Z.js";
3
- import "./adapter-DMEmCTKo.js";
4
- import "./embedding-provider-client-vynZMuit.js";
5
- import "./retriever-Ruk3zp7_.js";
6
- import "./connection-DAbzki8K.js";
7
- import "./sqlite-runtime-L_ywirTm.js";
8
- import "./store-2pM0-dZg.js";
9
- import "./access-tracker-CSc21GtV.js";
10
- import "./memory-tier-promoter-DbTpahkP.js";
11
- import "./capture-policy-detector-CHz5GOPA.js";
12
- import "./memory-temporality-classifier-CEdRTN5J.js";
13
- import "./runtime-audit-log-zpQiR9HT.js";
14
- import "./atomic-memory-extraction-BpOUWPJM.js";
15
- import "./llm-client-DOTSGzhe.js";
16
- import "./memory-snapshot-3e44ND2i.js";
17
- import "./observable-embedder-DQnNgf9O.js";
18
- import "./observable-llm-client-uwqPADpN.js";
19
- import "./observable-memory-store-BaZKbhgq.js";
20
- import "./observable-retriever-Dt_NUxAA.js";
21
- import "./reflection-embedded-generator-CxOex5xK.js";
22
- import "./strategy-hook-runner-gBtU47tX.js";
23
- import "./data-bootstrap-CcJUwkqf.js";
24
- import "@snoai/sqlite-crypto";
25
- //#region src/engine/bindings/sno-station-mem-runtime-dependencies.d.ts
26
- /** Legacy parameters carry only an unused logger slot; no host operations are exposed. */
27
- type SnoStationMemPluginApi = {
28
- logger: unknown;
29
- };
30
- //#endregion
31
- export { SnoStationMemPluginApi as t };