@snoai/memory 1.5.1 → 1.6.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 (146) hide show
  1. package/README.md +1 -1
  2. package/dist/{access-tracker-D-riPZRY.d.ts → access-tracker-CFxRg7Bt.d.ts} +4 -4
  3. package/dist/{adapter-BM58hult.d.ts → adapter-BFtbOOw3.d.ts} +2 -2
  4. package/dist/{atomic-memory-extraction-BNBCB1XD.d.ts → atomic-memory-extraction-Bp7AWZqi.d.ts} +4 -4
  5. package/dist/{atomic-memory-extraction-BaBrfESt.js → atomic-memory-extraction-l65aofbl.js} +4 -4
  6. package/dist/{b-profile-section-dictionary-provider-D2kzg9Re.d.ts → b-profile-section-dictionary-provider-Buj_M-QA.d.ts} +1 -1
  7. package/dist/{capture-policy-detector-CoT-j_Ic.d.ts → capture-policy-detector-3tDQkBi9.d.ts} +1 -1
  8. package/dist/client.d.ts +1 -1
  9. package/dist/{config-BhlMin82.js → config-CByvnX3d.js} +49 -119
  10. package/dist/{derived-suppression-cache-BW52dq3w.d.ts → derived-suppression-cache-CcANI-p7.d.ts} +1 -1
  11. package/dist/diagnostic-encoder.js +1 -1
  12. package/dist/{index-BGu91bjB.d.ts → index-CJrMFlAU.d.ts} +12 -50
  13. package/dist/{index-GoYmsx8b.d.ts → index-Df9420Pl.d.ts} +2 -2
  14. package/dist/index.d.ts +9 -9
  15. package/dist/index.js +5 -5
  16. package/dist/internal/config/index.d.ts +2 -2
  17. package/dist/internal/config/index.js +13 -51
  18. package/dist/internal/config/plugin-config-schema.d.ts +1 -1
  19. package/dist/internal/config/plugin-config-schema.js +1 -1
  20. package/dist/internal/config/product-mode.d.ts +1 -1
  21. package/dist/internal/config/settings.d.ts +1 -1
  22. package/dist/internal/config/settings.js +16 -47
  23. package/dist/internal/config/skin-defaults.d.ts +1 -1
  24. package/dist/internal/contract/profile.d.ts +1 -1
  25. package/dist/internal/contract/routes.d.ts +1 -1
  26. package/dist/internal/engine/bindings/memory-cli-shared.d.ts +4 -4
  27. package/dist/internal/engine/bindings/memory-forget-tool.js +1 -1
  28. package/dist/internal/engine/bindings/memory-list-tool.js +1 -1
  29. package/dist/internal/engine/bindings/memory-recall-tool.js +1 -1
  30. package/dist/internal/engine/bindings/memory-reflection-resolve-tool.js +1 -1
  31. package/dist/internal/engine/bindings/memory-stats-tool.js +1 -1
  32. package/dist/internal/engine/bindings/memory-store-tool.js +3 -3
  33. package/dist/internal/engine/bindings/memory-tool-access.d.ts +1 -1
  34. package/dist/internal/engine/bindings/memory-tool-access.js +1 -1
  35. package/dist/internal/engine/bindings/memory-tool-results.d.ts +1 -1
  36. package/dist/internal/engine/bindings/memory-tool-results.js +1 -1
  37. package/dist/internal/engine/bindings/memory-tool-schemas.d.ts +5 -5
  38. package/dist/internal/engine/bindings/memory-tool-schemas.js +1 -1
  39. package/dist/internal/engine/bindings/memory-update-tool.js +2 -2
  40. package/dist/internal/engine/bindings/sno-station-mem-ambient-learning-hook.d.ts +4 -4
  41. package/dist/internal/engine/bindings/sno-station-mem-ambient-learning-hook.js +2 -2
  42. package/dist/internal/engine/bindings/sno-station-mem-auto-recall-hook.d.ts +4 -4
  43. package/dist/internal/engine/bindings/sno-station-mem-auto-recall-hook.js +1 -1
  44. package/dist/internal/engine/bindings/sno-station-mem-insight-distill-factory.d.ts +5 -5
  45. package/dist/internal/engine/bindings/sno-station-mem-insight-distill-factory.js +3 -2
  46. package/dist/internal/engine/bindings/sno-station-mem-message-transcript.js +2 -2
  47. package/dist/internal/engine/bindings/sno-station-mem-reset-hook.d.ts +3 -3
  48. package/dist/internal/engine/bindings/sno-station-mem-runtime-mode.d.ts +1 -1
  49. package/dist/internal/engine/eval/trace.js +3 -4
  50. package/dist/internal/engine/extraction/atomic-memory-extraction.d.ts +1 -1
  51. package/dist/internal/engine/extraction/atomic-memory-extraction.js +1 -1
  52. package/dist/internal/engine/extraction/b-profile-section-dictionary-provider.d.ts +1 -1
  53. package/dist/internal/engine/extraction/b-profile-section-rekey.d.ts +5 -5
  54. package/dist/internal/engine/extraction/capture-policy-detector.d.ts +1 -1
  55. package/dist/internal/engine/extraction/memory-metadata-codec.d.ts +2 -2
  56. package/dist/internal/engine/extraction/memory-temporality-classifier.d.ts +1 -1
  57. package/dist/internal/engine/extraction/memory-temporality-classifier.js +1 -1
  58. package/dist/internal/engine/observability/adapter.d.ts +1 -1
  59. package/dist/internal/engine/observability/memory-snapshot.d.ts +1 -1
  60. package/dist/internal/engine/observability/observable-embedder.d.ts +1 -1
  61. package/dist/internal/engine/observability/observable-llm-client.d.ts +1 -1
  62. package/dist/internal/engine/observability/observable-memory-store.d.ts +1 -1
  63. package/dist/internal/engine/observability/observable-memory-store.js +1 -1
  64. package/dist/internal/engine/observability/observable-retriever.d.ts +1 -1
  65. package/dist/internal/engine/observability/observable-retriever.js +1 -1
  66. package/dist/internal/engine/observability/runtime-diagnostics.d.ts +1 -1
  67. package/dist/internal/engine/observability/runtime-diagnostics.js +1 -1
  68. package/dist/internal/engine/operations/memory-tier-promoter.d.ts +1 -1
  69. package/dist/internal/engine/operations/runtime-audit-log.d.ts +2 -2
  70. package/dist/internal/engine/provider/provider-registration.d.ts +4 -4
  71. package/dist/internal/engine/provider/provider-row-renderer.d.ts +1 -1
  72. package/dist/internal/engine/reflection/reflection-command-hooks.d.ts +1 -1
  73. package/dist/internal/engine/reflection/reflection-command-hooks.js +1 -1
  74. package/dist/internal/engine/reflection/reflection-deps.d.ts +1 -1
  75. package/dist/internal/engine/reflection/reflection-embedded-generator.d.ts +1 -1
  76. package/dist/internal/engine/reflection/reflection-embedded-generator.js +1 -1
  77. package/dist/internal/engine/reflection/reflection-injection-hooks.d.ts +1 -1
  78. package/dist/internal/engine/reflection/reflection-injection-hooks.js +1 -1
  79. package/dist/internal/engine/reflection/reflection-lifecycle-hooks.d.ts +1 -1
  80. package/dist/internal/engine/reflection/reflection-lifecycle-hooks.js +1 -1
  81. package/dist/internal/engine/reflection/strategy-hook-runner.d.ts +3 -3
  82. package/dist/internal/engine/reflection/strategy-hook-runner.js +2 -2
  83. package/dist/internal/engine/retrieval/access-tracker.d.ts +1 -1
  84. package/dist/internal/engine/retrieval/retriever.d.ts +2 -2
  85. package/dist/internal/engine/retrieval/retriever.js +2 -2
  86. package/dist/internal/engine/shared/memory-kind-policy.d.ts +1 -1
  87. package/dist/internal/engine/shared/paths.d.ts +2 -2
  88. package/dist/internal/engine/shared/types.d.ts +2 -2
  89. package/dist/internal/engine/shared/types.js +1 -1
  90. package/dist/internal/engine/telemetry/observe-ledger.d.ts +1 -1
  91. package/dist/internal/model/llm-client.d.ts +2 -2
  92. package/dist/internal/model/llm-client.js +1 -1
  93. package/dist/internal/model/llm-mode-routing.d.ts +1 -1
  94. package/dist/internal/store/maintenance.d.ts +2 -2
  95. package/dist/internal/store/maintenance.js +3 -3
  96. package/dist/internal/store/store.d.ts +2 -2
  97. package/dist/internal/store/store.js +1 -1
  98. package/dist/{llm-client-Z_VkmTsW.js → llm-client-ByzZRemn.js} +7 -4
  99. package/dist/{llm-client-9XCsnmf0.d.ts → llm-client-nWW1o1F6.d.ts} +1 -1
  100. package/dist/{log-site-catalog.generated-lc-iJczN.js → log-site-catalog.generated-DsvDgHJa.js} +95 -165
  101. package/dist/log-site-catalog.json +1 -1
  102. package/dist/{memory-kind-policy-DcEvUTKl.d.ts → memory-kind-policy-BMebgugU.d.ts} +1 -1
  103. package/dist/{memory-metadata-codec-CLtCCf-b.d.ts → memory-metadata-codec-H8BniJM3.d.ts} +1 -1
  104. package/dist/{memory-runtime-De1T9jTv.js → memory-runtime-DXr1VO1p.js} +101 -168
  105. package/dist/{memory-snapshot-BXB2APN0.d.ts → memory-snapshot-CKnQovB5.d.ts} +2 -2
  106. package/dist/{memory-store-base-yOAD7Ff8.d.ts → memory-store-base-BHYXgsCq.d.ts} +3 -3
  107. package/dist/{memory-temporality-classifier-s7TjoKB-.js → memory-temporality-classifier-Bauwnls7.js} +1 -1
  108. package/dist/{memory-temporality-classifier-BxmM3FOb.d.ts → memory-temporality-classifier-Wi6WWeAj.d.ts} +1 -1
  109. package/dist/{memory-tier-promoter-DjJwYB4w.d.ts → memory-tier-promoter-m60-RlAj.d.ts} +1 -1
  110. package/dist/{memory-tool-dependencies-C8JSCWCz.js → memory-tool-dependencies-Cc4SJMtd.js} +1 -1
  111. package/dist/memory-tool-dependencies-D2fOC-KL.d.ts +14 -0
  112. package/dist/{observable-embedder-DCtHXucw.d.ts → observable-embedder-0FwxJMhJ.d.ts} +1 -1
  113. package/dist/{observable-llm-client-DykY0exK.d.ts → observable-llm-client-DY7w1Fj1.d.ts} +3 -3
  114. package/dist/{observable-memory-store-ZBTjMAHj.d.ts → observable-memory-store-C25Q_hoW.d.ts} +4 -4
  115. package/dist/{observable-retriever-f8ENkQnP.d.ts → observable-retriever-Cs9Bwzq6.d.ts} +5 -5
  116. package/dist/paths-obFSsJv3.d.ts +1 -0
  117. package/dist/{plugin-config-schema-D9riSXDg.js → plugin-config-schema-D-IoHmis.js} +22 -43
  118. package/dist/{plugin-config-schema-CsKKIHq9.d.ts → plugin-config-schema-DQh5njrS.d.ts} +8 -10
  119. package/dist/{profile-CxdMGvxU.d.ts → profile-CcvVR6K8.d.ts} +1 -1
  120. package/dist/{profile-section-writer-B54r7JN1.js → profile-section-writer-CR-WWIoB.js} +2 -2
  121. package/dist/{reflection-command-hooks-_B_XZBIz.d.ts → reflection-command-hooks-BRLqVNCi.d.ts} +4 -4
  122. package/dist/{reflection-command-hooks-a1kgC2cr.js → reflection-command-hooks-Der9aX0e.js} +4 -3
  123. package/dist/{reflection-deps-DQBHeGYK.d.ts → reflection-deps-C0TJ-gpU.d.ts} +2 -2
  124. package/dist/{reflection-embedded-generator-DEuTWrBh.js → reflection-embedded-generator-BEdDusPV.js} +2 -1
  125. package/dist/{reflection-embedded-generator-LmZQqGER.d.ts → reflection-embedded-generator-Cs59hWYr.d.ts} +3 -3
  126. package/dist/{reflection-injection-hooks-CTDCwu2_.d.ts → reflection-injection-hooks-Cy4bRemm.d.ts} +4 -4
  127. package/dist/{reflection-lifecycle-hooks-eFUc2mcd.d.ts → reflection-lifecycle-hooks-C-lf00DB.d.ts} +3 -3
  128. package/dist/{rem-batch-executor-D42YWCNg.js → rem-batch-executor-DiU8hSGc.js} +1 -1
  129. package/dist/{rem-trigger-BKr4Qmhn.js → rem-trigger-CBfyJVfh.js} +39 -432
  130. package/dist/{retriever-BsjtyINJ.d.ts → retriever-2RJYAvlD.d.ts} +10 -52
  131. package/dist/{retriever-CsBW6MZv.js → retriever-C54bXeDh.js} +30 -452
  132. package/dist/{runtime-audit-log-C-L0v2HU.d.ts → runtime-audit-log-D2Hqk_kl.d.ts} +1 -1
  133. package/dist/{server-BPOT66a_.js → server-BlbG5uOM.js} +4 -4
  134. package/dist/sidecar/main.js +2 -2
  135. package/dist/sno-station-mem-runtime-dependencies-ByI3b-wB.d.ts +31 -0
  136. package/dist/{sno-station-mem-runtime-dependencies-DES7ZvMt.js → sno-station-mem-runtime-dependencies-DsidkZi2.js} +6 -6
  137. package/dist/{store-DRwqWMTh.js → store-Bja1tVFw.js} +1 -1
  138. package/dist/{store-CukgAPqu.d.ts → store-Bz0y76cJ.d.ts} +1 -1
  139. package/dist/{strategy-hook-runner-s8dAEQ3P.js → strategy-hook-runner-F-ruiw48.js} +1 -1
  140. package/dist/{strategy-hook-runner-BlJxjMjC.d.ts → strategy-hook-runner-vbrWiDbK.d.ts} +7 -7
  141. package/dist/{types-C9Hngi-p.d.ts → types-El7jViCz.d.ts} +1 -1
  142. package/package.json +1 -1
  143. package/settings.default.json +2 -3
  144. package/dist/memory-tool-dependencies-BsaSVzC8.d.ts +0 -14
  145. package/dist/paths-m8yncZgm.d.ts +0 -1
  146. package/dist/sno-station-mem-runtime-dependencies-B47DIcei.d.ts +0 -31
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { a as selfImprovementConfigSchema, c as SESSION_STRATEGIES, i as memoryReflectionConfigSchema, n as retrievalConfigSchema, o as sessionMemoryConfigSchema, r as extractionConfigSchema, s as embeddingConfigSchema } from "./plugin-config-schema-D9riSXDg.js";
1
+ import { a as extractionConfigSchema, c as sessionMemoryConfigSchema, i as retrievalConfigSchema, l as embeddingConfigSchema, o as memoryReflectionConfigSchema, s as selfImprovementConfigSchema, u as SESSION_STRATEGIES } from "./plugin-config-schema-D-IoHmis.js";
2
2
  import { recallLifecycleSchema } from "./internal/config/index.js";
3
3
  import { n as observeConfigSchema } from "./plugin-config-observe-schema-ue9XxUj_.js";
4
4
  import { AGGREGATION_OPERATIONS, MEMORY_CATEGORIES } from "./internal/engine/shared/types.js";
@@ -12,21 +12,21 @@ import { pruneOldestEntries, setLruEntry } from "./internal/engine/shared/lru.js
12
12
  import { m as CODING_SKIN_SESSION_QUERY, o as CODING_SKIN_LEDGER_MAX_CHARS } from "./coding-skin-azRXA51Z.js";
13
13
  import { defaultSettings } from "./internal/config/settings.js";
14
14
  import { t as appendAuditEntry } from "./runtime-audit-log-DK6xAYxh.js";
15
- import { i as createLlmClient } from "./llm-client-Z_VkmTsW.js";
15
+ import { i as createLlmClient } from "./llm-client-ByzZRemn.js";
16
16
  import { pickLlmRoutingConfig } from "./internal/model/llm-mode-routing.js";
17
17
  import { a as parseAgentIdFromSessionKey, n as createScopePolicy, t as MemoryScopePolicy } from "./memory-scope-policy--TiLZnrE.js";
18
- import { a as serializeIntervalMetadata, o as resolveMemoryDate } from "./memory-temporality-classifier-s7TjoKB-.js";
18
+ import { a as serializeIntervalMetadata, o as resolveMemoryDate } from "./memory-temporality-classifier-Bauwnls7.js";
19
19
  import { resolveAgentAccess, resolveAgentId } from "./internal/engine/bindings/memory-tool-access.js";
20
20
  import { r as retrieveForAutoRecall, t as isOpenRecallMetadata } from "./rem-consumer-retrieval-BhS1ivcd.js";
21
21
  import { executeMemoryRecallTool } from "./internal/engine/bindings/memory-recall-tool.js";
22
- import { t as createReflectionStrategyState } from "./strategy-hook-runner-s8dAEQ3P.js";
22
+ import { t as createReflectionStrategyState } from "./strategy-hook-runner-F-ruiw48.js";
23
23
  import { buildInsightDistiller } from "./internal/engine/bindings/sno-station-mem-insight-distill-factory.js";
24
24
  import { onAgentEnd } from "./internal/engine/bindings/sno-station-mem-ambient-learning-hook.js";
25
25
  import { executeMemoryStoreTool } from "./internal/engine/bindings/memory-store-tool.js";
26
26
  import { executeMemoryForgetTool } from "./internal/engine/bindings/memory-forget-tool.js";
27
27
  import { executeMemoryUpdateTool } from "./internal/engine/bindings/memory-update-tool.js";
28
28
  import { executeMemoryReflectionResolveTool } from "./internal/engine/bindings/memory-reflection-resolve-tool.js";
29
- import { t as createRunMemoryReflection } from "./reflection-command-hooks-a1kgC2cr.js";
29
+ import { t as createRunMemoryReflection } from "./reflection-command-hooks-Der9aX0e.js";
30
30
  import { createReflectionLifecycleHandler1, createReflectionLifecycleHandler2 } from "./internal/engine/reflection/reflection-lifecycle-hooks.js";
31
31
  import { createReflectionInjectionHandler1, createReflectionInjectionHandler2, createReflectionInjectionHandler3 } from "./internal/engine/reflection/reflection-injection-hooks.js";
32
32
  import { z } from "zod";
@@ -1,2 +1,2 @@
1
- import { $ as EMBEDDER_DIM, $t as REFLECTION_MAX_INVARIANTS, A as DEFAULT_BM25_WEIGHT, At as MAX_RECALLED_TODO_TOKENS, B as DEFAULT_REFLECTION_ERROR_SCAN_MAX_CHARS, Bt as PLANNER_STATISTICS_INTERVAL_MS, C as CHUNK_MAX_TOKENS, Cn as experimentCandidatePoolOverride, Ct as MAX_AGGREGATION_RESULT_TOKENS, D as CHUNK_TOKENIZER_MODE, Dt as MAX_CHUNK_FETCH_LIMIT, E as CHUNK_TARGET_TOKENS, Et as MAX_CHUNKS_PER_PARENT, F as DEFAULT_MAX_LINES_PER_CHUNK, Ft as MIN_RECALL_TOKEN_BUDGET, G as DEFAULT_REFLECTION_TIMEOUT_MS, Gt as RECENCY_WEIGHT, H as DEFAULT_REFLECTION_MAX_TRACKED_SESSIONS, Ht as PRECISION_RECALL_POOL_SIZE_FACTOR, I as DEFAULT_MIN_SCORE, It as MMR_LAMBDA, J as DEFAULT_SCOPE, Jt as REFLECTION_DEDUP_THRESHOLD, K as DEFAULT_RERANK_BATCH_CONCURRENCY, Kt as RECENCY_WEIGHT_MAX, L as DEFAULT_RECALL_LIFECYCLE, Lt as MULTI_HIT_BONUS_CAP, M as DEFAULT_IMPORTANCE, Mt as MAX_SESSION_RECALL_ENTRIES, N as DEFAULT_LIST_LIMIT, Nt as MAX_TRACKED_SESSIONS, O as COST_ESTIMATE_CACHE_TTL_MS, Ot as MAX_LIST_LIMIT, P as DEFAULT_MAX_CONTEXT_TOKENS, Pt as MEMORY_SHUTDOWN_TIMEOUT_MS, Q as DELETE_BATCH_SIZE, Qt as REFLECTION_MAX_FILENAME_ATTEMPTS, R as DEFAULT_RECALL_TOKEN_BUDGET, Rt as MULTI_HIT_BONUS_PER_HIT, S as CHUNKING_VERSION, Sn as VECTOR_DIMENSION_DEFAULT, St as MAINTENANCE_TICK_MS, T as CHUNK_OVERLAP_TOKENS, Tn as recallLifecycleSchema, Tt as MAX_CANDIDATE_POOL_SIZE, U as DEFAULT_REFLECTION_MESSAGE_COUNT, Ut as PROFILE_MERGE_THRESHOLD, V as DEFAULT_REFLECTION_MAX_INPUT_CHARS, Vt as PLUGIN_VERSION, W as DEFAULT_REFLECTION_SESSION_TTL_MS, Wt as RECENCY_HALF_LIFE_DAYS, X as DEFAULT_TOP_K, Xt as REFLECTION_IMPORTANCE, Y as DEFAULT_SESSION_MESSAGE_COUNT, Yt as REFLECTION_DERIVED_MAX_AGE_MS, Z as DEFAULT_VECTOR_WEIGHT, Zt as REFLECTION_MAX_DERIVED, _ as CACHE_TTL_MS, _n as TEMPORAL_WEIGHTING_DEFAULT, _t as LENGTH_NORM_ANCHOR, a as ARRIVAL_RETIREMENT_JUDGED_CANDIDATE_CAP, an as RERANK_TEXTS_PER_REQUEST, at as FORGET_QUERY_DEFAULT_LIMIT, b as CAPTURE_MIN_LENGTH_CJK, bn as USAGE_EVENT_RETENTION_INTERVAL_MS, bt as LIGHTWEIGHT_RERANK_PENALTY, c as ATOMIC_ENRICHMENT_OUTPUT_TOKEN_BUDGET, cn as SESSION_SUMMARY_CHUNK_TOKENS, ct as FTS_QUERY_TOKEN_CAP, d as AUTO_RECALL_LEAN_TOP_K, dn as SNIPPET_NEIGHBOR_AFTER, dt as HEAD_EXTRACT_TOKEN_BUDGET, en as REFLECTION_SLICE_CACHE_TTL_MS, et as EMBEDDER_MODEL_DEFAULT, f as BACKUP_INTERVAL_MS, fn as SNIPPET_NEIGHBOR_BEFORE, ft as IMPORTANCE_WEIGHT_BASE, g as CACHE_SIZE, gn as TEMPORAL_DYNAMIC_HALF_LIFE_DIVISOR, gt as LAST_JSON_LINE_CHUNK_BYTES, h as BONUS_TOTAL_INVARIANT, hn as SNO_OBSERVE_FLUSH_TIMEOUT_MS, ht as KILL_SWITCH_CACHE_TTL_MS, i as ARRIVAL_RETIREMENT_CANDIDATE_CAP, in as RERANK_PROMPT_TEMPLATE_TOKENS, it as EVAL_TRACE_ENABLED, j as DEFAULT_HARD_MIN_SCORE, jt as MAX_RECALL_TOOL_CANDIDATES, k as DEFAULT_AUTO_RECALL_MAX_QUERY_LENGTH, kt as MAX_RECALLED_TODOS, l as ATOMIC_EXTRACTION_MAX_INPUT_TOKENS, ln as SESSION_SUMMARY_MAX_CHUNKS, lt as HEAD_EXTRACT_MIN_CONTENT_TOKENS, m as BACKUP_RETENTION_COUNT, mn as SNO_OBSERVE_DEFAULT_BASE_URL, mt as INTRA_MEMORY_COSINE_THRESHOLD, n as ADJACENCY_BONUS_PER_PAIR, nn as RERANK_BLEND_CROSS, nt as EVAL_CONFIG_SNAPSHOT_FILENAME, o as ATOMIC_CAPTURE_OUTPUT_TOKEN_BUDGET, on as RETRIEVAL_STORAGE_CHUNK_PROFILE, ot as FORGET_QUERY_MIN_SCORE, p as BACKUP_MIN_FREE_DISK_RATIO, pn as SNO_OBSERVE_DEFAULT_AGENT_ID, pt as INTEGRITY_CHECK_INTERVAL_MS, q as DEFAULT_RERANK_TIMEOUT_MS, qt as REFLECTION_DEDUP_MIN_SCORE, r as AMBIENT_LEARNING_REQUIRE_TRIGGER_MATCH, rn as RERANK_BLEND_VECTOR, rt as EVAL_QA_TRACES_FILENAME, s as ATOMIC_CAPTURE_TIMEOUT_MS, sn as RecallLifecycleConfig, st as FTS_MERGE_INTERVAL_MS, t as ADJACENCY_BONUS_CAP, tn as REM_TRIGGER_CHECK_INTERVAL_MS, tt as EMBEDDER_PROVIDER_DEFAULT, u as AUTO_RECALL_INJECTION_TOP_K, un as SESSION_SUMMARY_MAX_INPUT_TOKENS, ut as HEAD_EXTRACT_OVERLAP_DROP_RATIO, v as CANDIDATE_POOL_SIZE, vn as TIME_DECAY_FLOOR, vt as LIGHTWEIGHT_COSINE_WEIGHT, w as CHUNK_MIN_TOKENS, wn as experimentMmrDisabled, wt as MAX_AGGREGATION_ROWS, x as CAPTURE_MIN_LENGTH_STANDARD, xn as USAGE_OUTBOX_INTERVAL_MS, xt as LOCAL_RERANK_CANDIDATES, y as CAPTURE_MAX_EMOJI_COUNT, yn as TIME_DECAY_HALF_LIFE_DAYS, yt as LIGHTWEIGHT_FUSION_WEIGHT, z as DEFAULT_REFLECTION_ERROR_REMINDER_MAX_ENTRIES, zt as NOISE_MIN_TEXT_LENGTH } from "../../index-BGu91bjB.js";
2
- export { ADJACENCY_BONUS_CAP, ADJACENCY_BONUS_PER_PAIR, AMBIENT_LEARNING_REQUIRE_TRIGGER_MATCH, ARRIVAL_RETIREMENT_CANDIDATE_CAP, ARRIVAL_RETIREMENT_JUDGED_CANDIDATE_CAP, ATOMIC_CAPTURE_OUTPUT_TOKEN_BUDGET, ATOMIC_CAPTURE_TIMEOUT_MS, ATOMIC_ENRICHMENT_OUTPUT_TOKEN_BUDGET, ATOMIC_EXTRACTION_MAX_INPUT_TOKENS, AUTO_RECALL_INJECTION_TOP_K, AUTO_RECALL_LEAN_TOP_K, BACKUP_INTERVAL_MS, BACKUP_MIN_FREE_DISK_RATIO, BACKUP_RETENTION_COUNT, BONUS_TOTAL_INVARIANT, CACHE_SIZE, CACHE_TTL_MS, CANDIDATE_POOL_SIZE, CAPTURE_MAX_EMOJI_COUNT, CAPTURE_MIN_LENGTH_CJK, CAPTURE_MIN_LENGTH_STANDARD, CHUNKING_VERSION, CHUNK_MAX_TOKENS, CHUNK_MIN_TOKENS, CHUNK_OVERLAP_TOKENS, CHUNK_TARGET_TOKENS, CHUNK_TOKENIZER_MODE, COST_ESTIMATE_CACHE_TTL_MS, DEFAULT_AUTO_RECALL_MAX_QUERY_LENGTH, DEFAULT_BM25_WEIGHT, DEFAULT_HARD_MIN_SCORE, DEFAULT_IMPORTANCE, DEFAULT_LIST_LIMIT, DEFAULT_MAX_CONTEXT_TOKENS, DEFAULT_MAX_LINES_PER_CHUNK, DEFAULT_MIN_SCORE, DEFAULT_RECALL_LIFECYCLE, DEFAULT_RECALL_TOKEN_BUDGET, DEFAULT_REFLECTION_ERROR_REMINDER_MAX_ENTRIES, DEFAULT_REFLECTION_ERROR_SCAN_MAX_CHARS, DEFAULT_REFLECTION_MAX_INPUT_CHARS, DEFAULT_REFLECTION_MAX_TRACKED_SESSIONS, DEFAULT_REFLECTION_MESSAGE_COUNT, DEFAULT_REFLECTION_SESSION_TTL_MS, DEFAULT_REFLECTION_TIMEOUT_MS, DEFAULT_RERANK_BATCH_CONCURRENCY, DEFAULT_RERANK_TIMEOUT_MS, DEFAULT_SCOPE, DEFAULT_SESSION_MESSAGE_COUNT, DEFAULT_TOP_K, DEFAULT_VECTOR_WEIGHT, DELETE_BATCH_SIZE, EMBEDDER_DIM, EMBEDDER_MODEL_DEFAULT, EMBEDDER_PROVIDER_DEFAULT, EVAL_CONFIG_SNAPSHOT_FILENAME, EVAL_QA_TRACES_FILENAME, EVAL_TRACE_ENABLED, FORGET_QUERY_DEFAULT_LIMIT, FORGET_QUERY_MIN_SCORE, FTS_MERGE_INTERVAL_MS, FTS_QUERY_TOKEN_CAP, HEAD_EXTRACT_MIN_CONTENT_TOKENS, HEAD_EXTRACT_OVERLAP_DROP_RATIO, HEAD_EXTRACT_TOKEN_BUDGET, IMPORTANCE_WEIGHT_BASE, INTEGRITY_CHECK_INTERVAL_MS, INTRA_MEMORY_COSINE_THRESHOLD, KILL_SWITCH_CACHE_TTL_MS, LAST_JSON_LINE_CHUNK_BYTES, LENGTH_NORM_ANCHOR, LIGHTWEIGHT_COSINE_WEIGHT, LIGHTWEIGHT_FUSION_WEIGHT, LIGHTWEIGHT_RERANK_PENALTY, LOCAL_RERANK_CANDIDATES, MAINTENANCE_TICK_MS, MAX_AGGREGATION_RESULT_TOKENS, MAX_AGGREGATION_ROWS, MAX_CANDIDATE_POOL_SIZE, MAX_CHUNKS_PER_PARENT, MAX_CHUNK_FETCH_LIMIT, MAX_LIST_LIMIT, MAX_RECALLED_TODOS, MAX_RECALLED_TODO_TOKENS, MAX_RECALL_TOOL_CANDIDATES, MAX_SESSION_RECALL_ENTRIES, MAX_TRACKED_SESSIONS, MEMORY_SHUTDOWN_TIMEOUT_MS, MIN_RECALL_TOKEN_BUDGET, MMR_LAMBDA, MULTI_HIT_BONUS_CAP, MULTI_HIT_BONUS_PER_HIT, NOISE_MIN_TEXT_LENGTH, PLANNER_STATISTICS_INTERVAL_MS, PLUGIN_VERSION, PRECISION_RECALL_POOL_SIZE_FACTOR, PROFILE_MERGE_THRESHOLD, RECENCY_HALF_LIFE_DAYS, RECENCY_WEIGHT, RECENCY_WEIGHT_MAX, REFLECTION_DEDUP_MIN_SCORE, REFLECTION_DEDUP_THRESHOLD, REFLECTION_DERIVED_MAX_AGE_MS, REFLECTION_IMPORTANCE, REFLECTION_MAX_DERIVED, REFLECTION_MAX_FILENAME_ATTEMPTS, REFLECTION_MAX_INVARIANTS, REFLECTION_SLICE_CACHE_TTL_MS, REM_TRIGGER_CHECK_INTERVAL_MS, RERANK_BLEND_CROSS, RERANK_BLEND_VECTOR, RERANK_PROMPT_TEMPLATE_TOKENS, RERANK_TEXTS_PER_REQUEST, RETRIEVAL_STORAGE_CHUNK_PROFILE, RecallLifecycleConfig, SESSION_SUMMARY_CHUNK_TOKENS, SESSION_SUMMARY_MAX_CHUNKS, SESSION_SUMMARY_MAX_INPUT_TOKENS, SNIPPET_NEIGHBOR_AFTER, SNIPPET_NEIGHBOR_BEFORE, SNO_OBSERVE_DEFAULT_AGENT_ID, SNO_OBSERVE_DEFAULT_BASE_URL, SNO_OBSERVE_FLUSH_TIMEOUT_MS, TEMPORAL_DYNAMIC_HALF_LIFE_DIVISOR, TEMPORAL_WEIGHTING_DEFAULT, TIME_DECAY_FLOOR, TIME_DECAY_HALF_LIFE_DAYS, USAGE_EVENT_RETENTION_INTERVAL_MS, USAGE_OUTBOX_INTERVAL_MS, VECTOR_DIMENSION_DEFAULT, experimentCandidatePoolOverride, experimentMmrDisabled, recallLifecycleSchema };
1
+ import { $ as EMBEDDER_MODEL_DEFAULT, $t as REM_TRIGGER_CHECK_INTERVAL_MS, A as DEFAULT_BM25_WEIGHT, At as MAX_SESSION_RECALL_ENTRIES, B as DEFAULT_REFLECTION_ERROR_SCAN_MAX_CHARS, Bt as PRECISION_RECALL_POOL_SIZE_FACTOR, C as CHUNK_MAX_TOKENS, Ct as MAX_CANDIDATE_POOL_SIZE, D as CHUNK_TOKENIZER_MODE, Dt as MAX_RECALLED_TODOS, E as CHUNK_TARGET_TOKENS, Et as MAX_LIST_LIMIT, F as DEFAULT_MAX_LINES_PER_CHUNK, Ft as MULTI_HIT_BONUS_CAP, G as DEFAULT_REFLECTION_TIMEOUT_MS, Gt as REFLECTION_DEDUP_MIN_SCORE, H as DEFAULT_REFLECTION_MAX_TRACKED_SESSIONS, Ht as RECENCY_HALF_LIFE_DAYS, I as DEFAULT_MIN_SCORE, It as MULTI_HIT_BONUS_PER_HIT, J as DEFAULT_SESSION_MESSAGE_COUNT, Jt as REFLECTION_IMPORTANCE, K as DEFAULT_RERANK_TIMEOUT_MS, Kt as REFLECTION_DEDUP_THRESHOLD, L as DEFAULT_RECALL_LIFECYCLE, Lt as NOISE_MIN_TEXT_LENGTH, M as DEFAULT_IMPORTANCE, Mt as MEMORY_SHUTDOWN_TIMEOUT_MS, N as DEFAULT_LIST_LIMIT, Nt as MIN_RECALL_TOKEN_BUDGET, O as COST_ESTIMATE_CACHE_TTL_MS, Ot as MAX_RECALLED_TODO_TOKENS, P as DEFAULT_MAX_CONTEXT_TOKENS, Pt as MMR_LAMBDA, Q as EMBEDDER_DIM, Qt as REFLECTION_SLICE_CACHE_TTL_MS, R as DEFAULT_RECALL_TOKEN_BUDGET, Rt as PLANNER_STATISTICS_INTERVAL_MS, S as CHUNKING_VERSION, St as MAX_AGGREGATION_ROWS, T as CHUNK_OVERLAP_TOKENS, Tt as MAX_CHUNK_FETCH_LIMIT, U as DEFAULT_REFLECTION_MESSAGE_COUNT, Ut as RECENCY_WEIGHT, V as DEFAULT_REFLECTION_MAX_INPUT_CHARS, Vt as PROFILE_MERGE_THRESHOLD, W as DEFAULT_REFLECTION_SESSION_TTL_MS, Wt as RECENCY_WEIGHT_MAX, X as DEFAULT_VECTOR_WEIGHT, Xt as REFLECTION_MAX_FILENAME_ATTEMPTS, Y as DEFAULT_TOP_K, Yt as REFLECTION_MAX_DERIVED, Z as DELETE_BATCH_SIZE, Zt as REFLECTION_MAX_INVARIANTS, _ as CACHE_TTL_MS, _n as experimentCandidatePoolOverride, _t as LIGHTWEIGHT_COSINE_WEIGHT, a as ARRIVAL_RETIREMENT_JUDGED_CANDIDATE_CAP, an as SNIPPET_NEIGHBOR_AFTER, at as FORGET_QUERY_MIN_SCORE, b as CAPTURE_MIN_LENGTH_CJK, bt as MAINTENANCE_TICK_MS, c as ATOMIC_ENRICHMENT_OUTPUT_TOKEN_BUDGET, cn as SNO_OBSERVE_DEFAULT_BASE_URL, ct as HEAD_EXTRACT_MIN_CONTENT_TOKENS, d as AUTO_RECALL_LEAN_TOP_K, dn as TEMPORAL_WEIGHTING_DEFAULT, dt as IMPORTANCE_WEIGHT_BASE, en as RETRIEVAL_STORAGE_CHUNK_PROFILE, et as EMBEDDER_PROVIDER_DEFAULT, f as BACKUP_INTERVAL_MS, fn as TIME_DECAY_FLOOR, ft as INTEGRITY_CHECK_INTERVAL_MS, g as CACHE_SIZE, gn as VECTOR_DIMENSION_DEFAULT, gt as LENGTH_NORM_ANCHOR, h as BONUS_TOTAL_INVARIANT, hn as USAGE_OUTBOX_INTERVAL_MS, ht as LAST_JSON_LINE_CHUNK_BYTES, i as ARRIVAL_RETIREMENT_CANDIDATE_CAP, in as SESSION_SUMMARY_MAX_INPUT_TOKENS, it as FORGET_QUERY_DEFAULT_LIMIT, j as DEFAULT_HARD_MIN_SCORE, jt as MAX_TRACKED_SESSIONS, k as DEFAULT_AUTO_RECALL_MAX_QUERY_LENGTH, kt as MAX_RECALL_TOOL_CANDIDATES, l as ATOMIC_EXTRACTION_MAX_INPUT_TOKENS, ln as SNO_OBSERVE_FLUSH_TIMEOUT_MS, lt as HEAD_EXTRACT_OVERLAP_DROP_RATIO, m as BACKUP_RETENTION_COUNT, mn as USAGE_EVENT_RETENTION_INTERVAL_MS, mt as KILL_SWITCH_CACHE_TTL_MS, n as ADJACENCY_BONUS_PER_PAIR, nn as SESSION_SUMMARY_CHUNK_TOKENS, nt as EVAL_QA_TRACES_FILENAME, o as ATOMIC_CAPTURE_OUTPUT_TOKEN_BUDGET, on as SNIPPET_NEIGHBOR_BEFORE, ot as FTS_MERGE_INTERVAL_MS, p as BACKUP_MIN_FREE_DISK_RATIO, pn as TIME_DECAY_HALF_LIFE_DAYS, pt as INTRA_MEMORY_COSINE_THRESHOLD, q as DEFAULT_SCOPE, qt as REFLECTION_DERIVED_MAX_AGE_MS, r as AMBIENT_LEARNING_REQUIRE_TRIGGER_MATCH, rn as SESSION_SUMMARY_MAX_CHUNKS, rt as EVAL_TRACE_ENABLED, s as ATOMIC_CAPTURE_TIMEOUT_MS, sn as SNO_OBSERVE_DEFAULT_AGENT_ID, st as FTS_QUERY_TOKEN_CAP, t as ADJACENCY_BONUS_CAP, tn as RecallLifecycleConfig, tt as EVAL_CONFIG_SNAPSHOT_FILENAME, u as AUTO_RECALL_INJECTION_TOP_K, un as TEMPORAL_DYNAMIC_HALF_LIFE_DIVISOR, ut as HEAD_EXTRACT_TOKEN_BUDGET, v as CANDIDATE_POOL_SIZE, vn as experimentMmrDisabled, vt as LIGHTWEIGHT_FUSION_WEIGHT, w as CHUNK_MIN_TOKENS, wt as MAX_CHUNKS_PER_PARENT, x as CAPTURE_MIN_LENGTH_STANDARD, xt as MAX_AGGREGATION_RESULT_TOKENS, y as CAPTURE_MAX_EMOJI_COUNT, yn as recallLifecycleSchema, yt as LOCAL_RERANK_CANDIDATES, z as DEFAULT_REFLECTION_ERROR_REMINDER_MAX_ENTRIES, zt as PLUGIN_VERSION } from "../../index-CJrMFlAU.js";
2
+ export { ADJACENCY_BONUS_CAP, ADJACENCY_BONUS_PER_PAIR, AMBIENT_LEARNING_REQUIRE_TRIGGER_MATCH, ARRIVAL_RETIREMENT_CANDIDATE_CAP, ARRIVAL_RETIREMENT_JUDGED_CANDIDATE_CAP, ATOMIC_CAPTURE_OUTPUT_TOKEN_BUDGET, ATOMIC_CAPTURE_TIMEOUT_MS, ATOMIC_ENRICHMENT_OUTPUT_TOKEN_BUDGET, ATOMIC_EXTRACTION_MAX_INPUT_TOKENS, AUTO_RECALL_INJECTION_TOP_K, AUTO_RECALL_LEAN_TOP_K, BACKUP_INTERVAL_MS, BACKUP_MIN_FREE_DISK_RATIO, BACKUP_RETENTION_COUNT, BONUS_TOTAL_INVARIANT, CACHE_SIZE, CACHE_TTL_MS, CANDIDATE_POOL_SIZE, CAPTURE_MAX_EMOJI_COUNT, CAPTURE_MIN_LENGTH_CJK, CAPTURE_MIN_LENGTH_STANDARD, CHUNKING_VERSION, CHUNK_MAX_TOKENS, CHUNK_MIN_TOKENS, CHUNK_OVERLAP_TOKENS, CHUNK_TARGET_TOKENS, CHUNK_TOKENIZER_MODE, COST_ESTIMATE_CACHE_TTL_MS, DEFAULT_AUTO_RECALL_MAX_QUERY_LENGTH, DEFAULT_BM25_WEIGHT, DEFAULT_HARD_MIN_SCORE, DEFAULT_IMPORTANCE, DEFAULT_LIST_LIMIT, DEFAULT_MAX_CONTEXT_TOKENS, DEFAULT_MAX_LINES_PER_CHUNK, DEFAULT_MIN_SCORE, DEFAULT_RECALL_LIFECYCLE, DEFAULT_RECALL_TOKEN_BUDGET, DEFAULT_REFLECTION_ERROR_REMINDER_MAX_ENTRIES, DEFAULT_REFLECTION_ERROR_SCAN_MAX_CHARS, DEFAULT_REFLECTION_MAX_INPUT_CHARS, DEFAULT_REFLECTION_MAX_TRACKED_SESSIONS, DEFAULT_REFLECTION_MESSAGE_COUNT, DEFAULT_REFLECTION_SESSION_TTL_MS, DEFAULT_REFLECTION_TIMEOUT_MS, DEFAULT_RERANK_TIMEOUT_MS, DEFAULT_SCOPE, DEFAULT_SESSION_MESSAGE_COUNT, DEFAULT_TOP_K, DEFAULT_VECTOR_WEIGHT, DELETE_BATCH_SIZE, EMBEDDER_DIM, EMBEDDER_MODEL_DEFAULT, EMBEDDER_PROVIDER_DEFAULT, EVAL_CONFIG_SNAPSHOT_FILENAME, EVAL_QA_TRACES_FILENAME, EVAL_TRACE_ENABLED, FORGET_QUERY_DEFAULT_LIMIT, FORGET_QUERY_MIN_SCORE, FTS_MERGE_INTERVAL_MS, FTS_QUERY_TOKEN_CAP, HEAD_EXTRACT_MIN_CONTENT_TOKENS, HEAD_EXTRACT_OVERLAP_DROP_RATIO, HEAD_EXTRACT_TOKEN_BUDGET, IMPORTANCE_WEIGHT_BASE, INTEGRITY_CHECK_INTERVAL_MS, INTRA_MEMORY_COSINE_THRESHOLD, KILL_SWITCH_CACHE_TTL_MS, LAST_JSON_LINE_CHUNK_BYTES, LENGTH_NORM_ANCHOR, LIGHTWEIGHT_COSINE_WEIGHT, LIGHTWEIGHT_FUSION_WEIGHT, LOCAL_RERANK_CANDIDATES, MAINTENANCE_TICK_MS, MAX_AGGREGATION_RESULT_TOKENS, MAX_AGGREGATION_ROWS, MAX_CANDIDATE_POOL_SIZE, MAX_CHUNKS_PER_PARENT, MAX_CHUNK_FETCH_LIMIT, MAX_LIST_LIMIT, MAX_RECALLED_TODOS, MAX_RECALLED_TODO_TOKENS, MAX_RECALL_TOOL_CANDIDATES, MAX_SESSION_RECALL_ENTRIES, MAX_TRACKED_SESSIONS, MEMORY_SHUTDOWN_TIMEOUT_MS, MIN_RECALL_TOKEN_BUDGET, MMR_LAMBDA, MULTI_HIT_BONUS_CAP, MULTI_HIT_BONUS_PER_HIT, NOISE_MIN_TEXT_LENGTH, PLANNER_STATISTICS_INTERVAL_MS, PLUGIN_VERSION, PRECISION_RECALL_POOL_SIZE_FACTOR, PROFILE_MERGE_THRESHOLD, RECENCY_HALF_LIFE_DAYS, RECENCY_WEIGHT, RECENCY_WEIGHT_MAX, REFLECTION_DEDUP_MIN_SCORE, REFLECTION_DEDUP_THRESHOLD, REFLECTION_DERIVED_MAX_AGE_MS, REFLECTION_IMPORTANCE, REFLECTION_MAX_DERIVED, REFLECTION_MAX_FILENAME_ATTEMPTS, REFLECTION_MAX_INVARIANTS, REFLECTION_SLICE_CACHE_TTL_MS, REM_TRIGGER_CHECK_INTERVAL_MS, RETRIEVAL_STORAGE_CHUNK_PROFILE, RecallLifecycleConfig, SESSION_SUMMARY_CHUNK_TOKENS, SESSION_SUMMARY_MAX_CHUNKS, SESSION_SUMMARY_MAX_INPUT_TOKENS, SNIPPET_NEIGHBOR_AFTER, SNIPPET_NEIGHBOR_BEFORE, SNO_OBSERVE_DEFAULT_AGENT_ID, SNO_OBSERVE_DEFAULT_BASE_URL, SNO_OBSERVE_FLUSH_TIMEOUT_MS, TEMPORAL_DYNAMIC_HALF_LIFE_DIVISOR, TEMPORAL_WEIGHTING_DEFAULT, TIME_DECAY_FLOOR, TIME_DECAY_HALF_LIFE_DAYS, USAGE_EVENT_RETENTION_INTERVAL_MS, USAGE_OUTBOX_INTERVAL_MS, VECTOR_DIMENSION_DEFAULT, experimentCandidatePoolOverride, experimentMmrDisabled, recallLifecycleSchema };
@@ -184,57 +184,27 @@ const TIME_DECAY_FLOOR = .6;
184
184
  /** Dynamic memories use a shorter half-life when temporal decay is enabled */
185
185
  const TEMPORAL_DYNAMIC_HALF_LIFE_DIVISOR = 3;
186
186
  /**
187
- * Relevance vs diversity tradeoff for MMR (0.7 = 70% relevance, 30% diversity).
187
+ * Relevance vs diversity tradeoff for MMR (0.9 = 90% relevance, 10% diversity).
188
188
  * `applyMmrDiversity` normalizes the relevance term to [0,1] (batch-max) before
189
189
  * applying this weight — without that normalization, the shrinker chain above
190
190
  * compresses relevance so far below the [0,1] cosine-similarity diversity term
191
191
  * that this ratio was moot (diversity always won). Fixed 2026-07-05.
192
192
  */
193
- const MMR_LAMBDA = .7;
194
- /** Weight for fusion score in rerank blend */
195
- const RERANK_BLEND_VECTOR = .3;
196
- /** Weight for cross-encoder score in rerank blend */
197
- const RERANK_BLEND_CROSS = .7;
193
+ const MMR_LAMBDA = .9;
198
194
  /**
199
- * Fusion-score weight in local cosine-blend rerank.
200
- *
201
- * The fused score keeps a keyword-only hit at its full keyword score, so a memory sharing one word with the query
202
- * outranks the one that answers it; at 0.7 the local ranking passed that order through almost unchanged. Measured
203
- * 2026-10-15 on LoCoMo (1,540 questions, the product store and retriever, weights fitted on half the conversations
204
- * and checked on the other half): the right memory in the first five went from 27% to 68% in English and from 9% to
205
- * 58% in a Chinese translation at 0.1 / 0.9. A candidate with no stored vector keeps its fused score and would now
206
- * rank high; none of 27,064 candidates in 299 real local rankings lacked one.
207
- */
208
- const LIGHTWEIGHT_FUSION_WEIGHT = .1;
209
- /** Cosine-similarity weight in local cosine-blend rerank */
210
- const LIGHTWEIGHT_COSINE_WEIGHT = .9;
211
- /**
212
- * How many of the local ranking's first candidates the local reranker model reorders. The model puts the memory that
213
- * answers above near misses the cosine order keeps on top, in English and Chinese alike; scoring more candidates than
214
- * this found no more answers and took longer.
215
- */
216
- const LOCAL_RERANK_CANDIDATES = 15;
217
- /** Default timeout for rerank API calls in milliseconds */
218
- const DEFAULT_RERANK_TIMEOUT_MS = 15e3;
219
- /**
220
- * How many rerank batches may be in flight at once. A candidate pool of
221
- * `MAX_CANDIDATE_POOL_SIZE` divided by the reranker's per-request batch limit is 11 requests, and sending them one after another put `DEFAULT_RERANK_TIMEOUT_MS` on the clock 11 times
222
- * over. Four is what the Sno GPU serves concurrently at near-linear 4x (owner-measured
223
- * 2026-08-17); the first failing wave still ends the whole rerank, so a wedged reranker costs one
224
- * timeout rather than one per batch.
195
+ * Fusion-score weight in the initial ranking. The local model uses the
196
+ * cosine ordering evaluated in evals/rerank-optimized-2026-10-21.
225
197
  */
226
- const DEFAULT_RERANK_BATCH_CONCURRENCY = 4;
198
+ const LIGHTWEIGHT_FUSION_WEIGHT = 0;
199
+ /** Cosine-similarity weight in local cosine-blend rerank */
200
+ const LIGHTWEIGHT_COSINE_WEIGHT = 1;
227
201
  /**
228
- * Texts per HTTP request, applied whatever `rerankMaxCandidates` allows out in total: that one
229
- * is the operator's budget, this one is the transport's own per-request limit.
230
- *
231
- * Confirmed 2026-09-14 against Sno's reranker, which answers a 51-text request
232
- * with `{"error":"too many texts: max 50, got 51"}`. It rejects an over-limit
233
- * batch outright rather than truncating it, and the retriever files that HTTP 400 as "reranker
234
- * unavailable" — so getting this wrong degrades every call to local ranking with no visible
235
- * error.
202
+ * How many of the initial ranking's candidates the local model reorders.
203
+ * Evaluation and the owner-selected default are recorded in evals/rerank-optimized-2026-10-21.
236
204
  */
237
- const RERANK_TEXTS_PER_REQUEST = 50;
205
+ const LOCAL_RERANK_CANDIDATES = 32;
206
+ /** Maximum wait for the local reranker in milliseconds; caller deadlines may be earlier. */
207
+ const DEFAULT_RERANK_TIMEOUT_MS = 2e3;
238
208
  /**
239
209
  * THE per-record token ceiling, and the only number of its kind in this repository (owner
240
210
  * ruling 2026-09-14). One stored memory record, one embedder input, one rerank candidate,
@@ -256,12 +226,6 @@ const RERANK_TEXTS_PER_REQUEST = 50;
256
226
  * a literal anywhere else.
257
227
  */
258
228
  const DEFAULT_MAX_CONTEXT_TOKENS = 512;
259
- /**
260
- * Tokens the ranking model's own prompt template adds to a pair, on top of the query and the
261
- * document. Measured against the deployed endpoint 2026-09-14: a 509-token pair is accepted
262
- * and reported back as 512 input tokens, and a 510-token pair is refused as 513.
263
- */
264
- const RERANK_PROMPT_TEMPLATE_TOKENS = 3;
265
229
  /** Maximum lines per chunk before forcing an earlier split at a line boundary */
266
230
  const DEFAULT_MAX_LINES_PER_CHUNK = 50;
267
231
  /** Default list query page size */
@@ -556,8 +520,6 @@ const EVAL_TRACE_ENABLED = false;
556
520
  const EVAL_CONFIG_SNAPSHOT_FILENAME = "config-snapshot.json";
557
521
  /** Filename for per-QA retrieval traces emitted during eval runs. */
558
522
  const EVAL_QA_TRACES_FILENAME = "qa_traces.jsonl";
559
- /** Multiplicative penalty applied to unreturned candidates after rerank. */
560
- const LIGHTWEIGHT_RERANK_PENALTY = .8;
561
523
  /** Maximum tokens kept in a sanitized FTS5 MATCH expression. */
562
524
  const FTS_QUERY_TOKEN_CAP = 50;
563
525
  /**
@@ -583,4 +545,4 @@ const recallLifecycleSchema = z.object({
583
545
  */
584
546
  const DEFAULT_RECALL_LIFECYCLE = recallLifecycleSchema.parse(void 0);
585
547
  //#endregion
586
- export { ADJACENCY_BONUS_CAP, ADJACENCY_BONUS_PER_PAIR, AMBIENT_LEARNING_REQUIRE_TRIGGER_MATCH, ARRIVAL_RETIREMENT_CANDIDATE_CAP, ARRIVAL_RETIREMENT_JUDGED_CANDIDATE_CAP, ATOMIC_CAPTURE_OUTPUT_TOKEN_BUDGET, ATOMIC_CAPTURE_TIMEOUT_MS, ATOMIC_ENRICHMENT_OUTPUT_TOKEN_BUDGET, ATOMIC_EXTRACTION_MAX_INPUT_TOKENS, AUTO_RECALL_INJECTION_TOP_K, AUTO_RECALL_LEAN_TOP_K, BACKUP_INTERVAL_MS, BACKUP_MIN_FREE_DISK_RATIO, BACKUP_RETENTION_COUNT, BONUS_TOTAL_INVARIANT, CACHE_SIZE, CACHE_TTL_MS, CANDIDATE_POOL_SIZE, CAPTURE_MAX_EMOJI_COUNT, CAPTURE_MIN_LENGTH_CJK, CAPTURE_MIN_LENGTH_STANDARD, CHUNKING_VERSION, CHUNK_MAX_TOKENS, CHUNK_MIN_TOKENS, CHUNK_OVERLAP_TOKENS, CHUNK_TARGET_TOKENS, CHUNK_TOKENIZER_MODE, COST_ESTIMATE_CACHE_TTL_MS, DEFAULT_AUTO_RECALL_MAX_QUERY_LENGTH, DEFAULT_BM25_WEIGHT, DEFAULT_HARD_MIN_SCORE, DEFAULT_IMPORTANCE, DEFAULT_LIST_LIMIT, DEFAULT_MAX_CONTEXT_TOKENS, DEFAULT_MAX_LINES_PER_CHUNK, DEFAULT_MIN_SCORE, DEFAULT_RECALL_LIFECYCLE, DEFAULT_RECALL_TOKEN_BUDGET, DEFAULT_REFLECTION_ERROR_REMINDER_MAX_ENTRIES, DEFAULT_REFLECTION_ERROR_SCAN_MAX_CHARS, DEFAULT_REFLECTION_MAX_INPUT_CHARS, DEFAULT_REFLECTION_MAX_TRACKED_SESSIONS, DEFAULT_REFLECTION_MESSAGE_COUNT, DEFAULT_REFLECTION_SESSION_TTL_MS, DEFAULT_REFLECTION_TIMEOUT_MS, DEFAULT_RERANK_BATCH_CONCURRENCY, DEFAULT_RERANK_TIMEOUT_MS, DEFAULT_SCOPE, DEFAULT_SESSION_MESSAGE_COUNT, DEFAULT_TOP_K, DEFAULT_VECTOR_WEIGHT, DELETE_BATCH_SIZE, EMBEDDER_DIM, EMBEDDER_MODEL_DEFAULT, EMBEDDER_PROVIDER_DEFAULT, EVAL_CONFIG_SNAPSHOT_FILENAME, EVAL_QA_TRACES_FILENAME, EVAL_TRACE_ENABLED, FORGET_QUERY_DEFAULT_LIMIT, FORGET_QUERY_MIN_SCORE, FTS_MERGE_INTERVAL_MS, FTS_QUERY_TOKEN_CAP, HEAD_EXTRACT_MIN_CONTENT_TOKENS, HEAD_EXTRACT_OVERLAP_DROP_RATIO, HEAD_EXTRACT_TOKEN_BUDGET, IMPORTANCE_WEIGHT_BASE, INTEGRITY_CHECK_INTERVAL_MS, INTRA_MEMORY_COSINE_THRESHOLD, KILL_SWITCH_CACHE_TTL_MS, LAST_JSON_LINE_CHUNK_BYTES, LENGTH_NORM_ANCHOR, LIGHTWEIGHT_COSINE_WEIGHT, LIGHTWEIGHT_FUSION_WEIGHT, LIGHTWEIGHT_RERANK_PENALTY, LOCAL_RERANK_CANDIDATES, MAINTENANCE_TICK_MS, MAX_AGGREGATION_RESULT_TOKENS, MAX_AGGREGATION_ROWS, MAX_CANDIDATE_POOL_SIZE, MAX_CHUNKS_PER_PARENT, MAX_CHUNK_FETCH_LIMIT, MAX_LIST_LIMIT, MAX_RECALLED_TODOS, MAX_RECALLED_TODO_TOKENS, MAX_RECALL_TOOL_CANDIDATES, MAX_SESSION_RECALL_ENTRIES, MAX_TRACKED_SESSIONS, MEMORY_SHUTDOWN_TIMEOUT_MS, MIN_RECALL_TOKEN_BUDGET, MMR_LAMBDA, MULTI_HIT_BONUS_CAP, MULTI_HIT_BONUS_PER_HIT, NOISE_MIN_TEXT_LENGTH, PLANNER_STATISTICS_INTERVAL_MS, PLUGIN_VERSION, PRECISION_RECALL_POOL_SIZE_FACTOR, PROFILE_MERGE_THRESHOLD, RECENCY_HALF_LIFE_DAYS, RECENCY_WEIGHT, RECENCY_WEIGHT_MAX, REFLECTION_DEDUP_MIN_SCORE, REFLECTION_DEDUP_THRESHOLD, REFLECTION_DERIVED_MAX_AGE_MS, REFLECTION_IMPORTANCE, REFLECTION_MAX_DERIVED, REFLECTION_MAX_FILENAME_ATTEMPTS, REFLECTION_MAX_INVARIANTS, REFLECTION_SLICE_CACHE_TTL_MS, REM_TRIGGER_CHECK_INTERVAL_MS, RERANK_BLEND_CROSS, RERANK_BLEND_VECTOR, RERANK_PROMPT_TEMPLATE_TOKENS, RERANK_TEXTS_PER_REQUEST, RETRIEVAL_STORAGE_CHUNK_PROFILE, SESSION_SUMMARY_CHUNK_TOKENS, SESSION_SUMMARY_MAX_CHUNKS, SESSION_SUMMARY_MAX_INPUT_TOKENS, SNIPPET_NEIGHBOR_AFTER, SNIPPET_NEIGHBOR_BEFORE, SNO_OBSERVE_DEFAULT_AGENT_ID, SNO_OBSERVE_DEFAULT_BASE_URL, SNO_OBSERVE_FLUSH_TIMEOUT_MS, TEMPORAL_DYNAMIC_HALF_LIFE_DIVISOR, TEMPORAL_WEIGHTING_DEFAULT, TIME_DECAY_FLOOR, TIME_DECAY_HALF_LIFE_DAYS, USAGE_EVENT_RETENTION_INTERVAL_MS, USAGE_OUTBOX_INTERVAL_MS, VECTOR_DIMENSION_DEFAULT, experimentCandidatePoolOverride, experimentMmrDisabled, recallLifecycleSchema };
548
+ export { ADJACENCY_BONUS_CAP, ADJACENCY_BONUS_PER_PAIR, AMBIENT_LEARNING_REQUIRE_TRIGGER_MATCH, ARRIVAL_RETIREMENT_CANDIDATE_CAP, ARRIVAL_RETIREMENT_JUDGED_CANDIDATE_CAP, ATOMIC_CAPTURE_OUTPUT_TOKEN_BUDGET, ATOMIC_CAPTURE_TIMEOUT_MS, ATOMIC_ENRICHMENT_OUTPUT_TOKEN_BUDGET, ATOMIC_EXTRACTION_MAX_INPUT_TOKENS, AUTO_RECALL_INJECTION_TOP_K, AUTO_RECALL_LEAN_TOP_K, BACKUP_INTERVAL_MS, BACKUP_MIN_FREE_DISK_RATIO, BACKUP_RETENTION_COUNT, BONUS_TOTAL_INVARIANT, CACHE_SIZE, CACHE_TTL_MS, CANDIDATE_POOL_SIZE, CAPTURE_MAX_EMOJI_COUNT, CAPTURE_MIN_LENGTH_CJK, CAPTURE_MIN_LENGTH_STANDARD, CHUNKING_VERSION, CHUNK_MAX_TOKENS, CHUNK_MIN_TOKENS, CHUNK_OVERLAP_TOKENS, CHUNK_TARGET_TOKENS, CHUNK_TOKENIZER_MODE, COST_ESTIMATE_CACHE_TTL_MS, DEFAULT_AUTO_RECALL_MAX_QUERY_LENGTH, DEFAULT_BM25_WEIGHT, DEFAULT_HARD_MIN_SCORE, DEFAULT_IMPORTANCE, DEFAULT_LIST_LIMIT, DEFAULT_MAX_CONTEXT_TOKENS, DEFAULT_MAX_LINES_PER_CHUNK, DEFAULT_MIN_SCORE, DEFAULT_RECALL_LIFECYCLE, DEFAULT_RECALL_TOKEN_BUDGET, DEFAULT_REFLECTION_ERROR_REMINDER_MAX_ENTRIES, DEFAULT_REFLECTION_ERROR_SCAN_MAX_CHARS, DEFAULT_REFLECTION_MAX_INPUT_CHARS, DEFAULT_REFLECTION_MAX_TRACKED_SESSIONS, DEFAULT_REFLECTION_MESSAGE_COUNT, DEFAULT_REFLECTION_SESSION_TTL_MS, DEFAULT_REFLECTION_TIMEOUT_MS, DEFAULT_RERANK_TIMEOUT_MS, DEFAULT_SCOPE, DEFAULT_SESSION_MESSAGE_COUNT, DEFAULT_TOP_K, DEFAULT_VECTOR_WEIGHT, DELETE_BATCH_SIZE, EMBEDDER_DIM, EMBEDDER_MODEL_DEFAULT, EMBEDDER_PROVIDER_DEFAULT, EVAL_CONFIG_SNAPSHOT_FILENAME, EVAL_QA_TRACES_FILENAME, EVAL_TRACE_ENABLED, FORGET_QUERY_DEFAULT_LIMIT, FORGET_QUERY_MIN_SCORE, FTS_MERGE_INTERVAL_MS, FTS_QUERY_TOKEN_CAP, HEAD_EXTRACT_MIN_CONTENT_TOKENS, HEAD_EXTRACT_OVERLAP_DROP_RATIO, HEAD_EXTRACT_TOKEN_BUDGET, IMPORTANCE_WEIGHT_BASE, INTEGRITY_CHECK_INTERVAL_MS, INTRA_MEMORY_COSINE_THRESHOLD, KILL_SWITCH_CACHE_TTL_MS, LAST_JSON_LINE_CHUNK_BYTES, LENGTH_NORM_ANCHOR, LIGHTWEIGHT_COSINE_WEIGHT, LIGHTWEIGHT_FUSION_WEIGHT, LOCAL_RERANK_CANDIDATES, MAINTENANCE_TICK_MS, MAX_AGGREGATION_RESULT_TOKENS, MAX_AGGREGATION_ROWS, MAX_CANDIDATE_POOL_SIZE, MAX_CHUNKS_PER_PARENT, MAX_CHUNK_FETCH_LIMIT, MAX_LIST_LIMIT, MAX_RECALLED_TODOS, MAX_RECALLED_TODO_TOKENS, MAX_RECALL_TOOL_CANDIDATES, MAX_SESSION_RECALL_ENTRIES, MAX_TRACKED_SESSIONS, MEMORY_SHUTDOWN_TIMEOUT_MS, MIN_RECALL_TOKEN_BUDGET, MMR_LAMBDA, MULTI_HIT_BONUS_CAP, MULTI_HIT_BONUS_PER_HIT, NOISE_MIN_TEXT_LENGTH, PLANNER_STATISTICS_INTERVAL_MS, PLUGIN_VERSION, PRECISION_RECALL_POOL_SIZE_FACTOR, PROFILE_MERGE_THRESHOLD, RECENCY_HALF_LIFE_DAYS, RECENCY_WEIGHT, RECENCY_WEIGHT_MAX, REFLECTION_DEDUP_MIN_SCORE, REFLECTION_DEDUP_THRESHOLD, REFLECTION_DERIVED_MAX_AGE_MS, REFLECTION_IMPORTANCE, REFLECTION_MAX_DERIVED, REFLECTION_MAX_FILENAME_ATTEMPTS, REFLECTION_MAX_INVARIANTS, REFLECTION_SLICE_CACHE_TTL_MS, REM_TRIGGER_CHECK_INTERVAL_MS, RETRIEVAL_STORAGE_CHUNK_PROFILE, SESSION_SUMMARY_CHUNK_TOKENS, SESSION_SUMMARY_MAX_CHUNKS, SESSION_SUMMARY_MAX_INPUT_TOKENS, SNIPPET_NEIGHBOR_AFTER, SNIPPET_NEIGHBOR_BEFORE, SNO_OBSERVE_DEFAULT_AGENT_ID, SNO_OBSERVE_DEFAULT_BASE_URL, SNO_OBSERVE_FLUSH_TIMEOUT_MS, TEMPORAL_DYNAMIC_HALF_LIFE_DIVISOR, TEMPORAL_WEIGHTING_DEFAULT, TIME_DECAY_FLOOR, TIME_DECAY_HALF_LIFE_DAYS, USAGE_EVENT_RETENTION_INTERVAL_MS, USAGE_OUTBOX_INTERVAL_MS, VECTOR_DIMENSION_DEFAULT, experimentCandidatePoolOverride, experimentMmrDisabled, recallLifecycleSchema };
@@ -1,2 +1,2 @@
1
- import { n as pluginConfigSchema, t as PluginConfig } from "../../plugin-config-schema-CsKKIHq9.js";
1
+ import { n as pluginConfigSchema, t as PluginConfig } from "../../plugin-config-schema-DQh5njrS.js";
2
2
  export { PluginConfig, pluginConfigSchema };
@@ -1,2 +1,2 @@
1
- import { t as pluginConfigSchema } from "../../plugin-config-schema-D9riSXDg.js";
1
+ import { t as pluginConfigSchema } from "../../plugin-config-schema-D-IoHmis.js";
2
2
  export { pluginConfigSchema };
@@ -1,2 +1,2 @@
1
- import { _ as llmRoutingConfigSchema, d as LLM_OCCASIONS, f as LlmOccasion, g as ProductMode, h as PRODUCT_MODES, m as LlmRoutingConfigInput, p as LlmRoutingConfig, u as DEFAULT_MODEL_MODE, v as modelCallsConfigSchema, y as remEnhancedConfigSchema } from "../../plugin-config-schema-CsKKIHq9.js";
1
+ import { _ as llmRoutingConfigSchema, d as LLM_OCCASIONS, f as LlmOccasion, g as ProductMode, h as PRODUCT_MODES, m as LlmRoutingConfigInput, p as LlmRoutingConfig, u as DEFAULT_MODEL_MODE, v as modelCallsConfigSchema, y as remEnhancedConfigSchema } from "../../plugin-config-schema-DQh5njrS.js";
2
2
  export { DEFAULT_MODEL_MODE, LLM_OCCASIONS, LlmOccasion, LlmRoutingConfig, LlmRoutingConfigInput, PRODUCT_MODES, ProductMode, llmRoutingConfigSchema, modelCallsConfigSchema, remEnhancedConfigSchema };
@@ -1,2 +1,2 @@
1
- import { C as settingsToPluginConfig, S as settingsSchema, b as Settings, x as defaultSettings } from "../../plugin-config-schema-CsKKIHq9.js";
1
+ import { C as settingsToPluginConfig, S as settingsSchema, b as Settings, x as defaultSettings } from "../../plugin-config-schema-DQh5njrS.js";
2
2
  export { Settings, defaultSettings, settingsSchema, settingsToPluginConfig };
@@ -1,14 +1,12 @@
1
- import { c as SESSION_STRATEGIES, t as pluginConfigSchema } from "../../plugin-config-schema-D9riSXDg.js";
1
+ import { n as rerankModeSchema, r as rerankTimeoutSchema, t as pluginConfigSchema, u as SESSION_STRATEGIES } from "../../plugin-config-schema-D-IoHmis.js";
2
2
  import { EMBEDDER_MODEL_DEFAULT } from "./index.js";
3
3
  import { SUPPORTED_LOCALES } from "../engine/i18n/locales.js";
4
4
  import { PRODUCT_MODES } from "./product-mode.js";
5
5
  import { t as MODEL_CALLS } from "../../model-call-table-CPyQfBJ6.js";
6
6
  import { z } from "zod";
7
7
  import { LOCAL_EMBEDDING_MODEL_REVISION } from "@snoai/embedder";
8
- import { createLogger } from "@snoai/utils/logger";
9
8
  import { isLowercaseCanonicalUUIDv7 } from "@snoai/common-core";
10
9
  //#region config/settings.ts
11
- const log = createLogger("sno-station-mem:config:settings");
12
10
  const destination = z.enum([
13
11
  "off",
14
12
  "host",
@@ -31,15 +29,14 @@ const settingsSchema = z.strictObject({
31
29
  baseUrl: z.string(),
32
30
  apiKey: z.string()
33
31
  }),
34
- rerank: z.strictObject({
35
- mode: z.enum([
36
- "lightweight",
37
- "cross-encoder",
38
- "none"
39
- ]),
40
- timeoutMs: z.number().int().min(1e3).max(12e4),
41
- maxCandidates: z.number().int().min(1).max(2e3)
42
- }),
32
+ rerank: z.preprocess((value) => {
33
+ if (typeof value !== "object" || value === null || Array.isArray(value) || !("maxCandidates" in value)) return value;
34
+ const { maxCandidates: _retired, ...current } = value;
35
+ return current;
36
+ }, z.strictObject({
37
+ mode: rerankModeSchema,
38
+ timeoutMs: rerankTimeoutSchema
39
+ })),
43
40
  store: z.strictObject({
44
41
  path: z.string(),
45
42
  encryptionKey: z.string().min(1).regex(/^[0-9a-f]{64}$/u)
@@ -128,9 +125,8 @@ function defaultSettings() {
128
125
  apiKey: ""
129
126
  },
130
127
  rerank: {
131
- mode: "cross-encoder",
132
- timeoutMs: engine.retrieval.rerankTimeoutMs,
133
- maxCandidates: 64
128
+ mode: "lightweight",
129
+ timeoutMs: engine.retrieval.rerankTimeoutMs
134
130
  },
135
131
  store: {
136
132
  path: "",
@@ -197,32 +193,7 @@ function defaultSettings() {
197
193
  }
198
194
  };
199
195
  }
200
- /**
201
- * Recall ranking is local, or Sno's reranker: its address is the Sno GPU address and its key is the Sno GPU key. Only
202
- * REM Enhanced calls Sno GPU; any other mode, or no key yet, ranks locally, which is the configured strategy, not an error.
203
- */
204
- function rerankSettings(settings) {
205
- const { rerank, snoGpu } = settings;
206
- let endpoint;
207
- try {
208
- endpoint = new URL("rerank", snoGpu.baseUrl.endsWith("/") ? snoGpu.baseUrl : `${snoGpu.baseUrl}/`).toString();
209
- } catch {
210
- log.warn("memory.rerank.sno_gpu_address.invalid", { cause: "snoGpu.baseUrl is not a valid address; recall ranks locally" }, {
211
- event_name: "memory.rerank.sno_gpu_address.invalid",
212
- file: "packages/memory/config/settings.ts",
213
- function: "rerankSettings",
214
- site_id: "memory.rerank.sno_gpu_address.invalid"
215
- });
216
- }
217
- const local = rerank.mode !== "cross-encoder" || settings.mode !== "rem-enhanced" || !snoGpu.apiKey || endpoint === void 0;
218
- return {
219
- rerank: local && rerank.mode === "cross-encoder" ? "lightweight" : rerank.mode,
220
- endpoint: local ? void 0 : endpoint,
221
- apiKey: local ? "" : snoGpu.apiKey
222
- };
223
- }
224
- function settingsToPluginConfig(settings) {
225
- const sno = rerankSettings(settings);
196
+ function settingsToPluginConfig(settings, usageClass) {
226
197
  return pluginConfigSchema.parse({
227
198
  mode: settings.mode,
228
199
  modelCalls: settings.modelCalls,
@@ -239,13 +210,10 @@ function settingsToPluginConfig(settings) {
239
210
  sessionOptions: { intraOpNumThreads: settings.embedding.threads || void 0 }
240
211
  },
241
212
  retrieval: {
242
- rerank: sno.rerank,
213
+ rerank: settings.rerank.mode,
243
214
  recallTopK: settings.recall.prompt.limit,
244
215
  minScore: settings.recall.prompt.minScore,
245
- rerankEndpoint: sno.endpoint,
246
- rerankApiKey: sno.apiKey,
247
- rerankTimeoutMs: settings.rerank.timeoutMs,
248
- rerankMaxCandidates: settings.rerank.maxCandidates
216
+ rerankTimeoutMs: settings.rerank.timeoutMs
249
217
  },
250
218
  autoRecall: settings.recall.auto,
251
219
  autoRecallTimeoutMs: settings.recall.prompt.timeoutMs,
@@ -266,7 +234,8 @@ function settingsToPluginConfig(settings) {
266
234
  observe: settings.telemetry.observe,
267
235
  extraction: { llm: {
268
236
  baseURL: settings.snoGpu.baseUrl,
269
- apiKey: settings.snoGpu.apiKey
237
+ apiKey: settings.snoGpu.apiKey,
238
+ usageClass
270
239
  } }
271
240
  });
272
241
  }
@@ -1,4 +1,4 @@
1
- import { g as ProductMode, h as PRODUCT_MODES, u as DEFAULT_MODEL_MODE } from "../../plugin-config-schema-CsKKIHq9.js";
1
+ import { g as ProductMode, h as PRODUCT_MODES, u as DEFAULT_MODEL_MODE } from "../../plugin-config-schema-DQh5njrS.js";
2
2
  //#region config/skin-defaults.d.ts
3
3
  export declare const HOST_MODEL_CALLBACK_HOST = "127.0.0.1";
4
4
  export declare const HOST_MODEL_CALLBACK_PATH = "/v1/chat/completions";
@@ -1,2 +1,2 @@
1
- import { a as getSidecarSocketPath, c as getStateDir, i as getSettingsPath, l as readSettings, n as getDiscoveryPath, o as getSnoStationMemStateDir, r as getPrincipal, s as getStartupLogPath, t as SettingsUnavailableError } from "../../profile-CxdMGvxU.js";
1
+ import { a as getSidecarSocketPath, c as getStateDir, i as getSettingsPath, l as readSettings, n as getDiscoveryPath, o as getSnoStationMemStateDir, r as getPrincipal, s as getStartupLogPath, t as SettingsUnavailableError } from "../../profile-CcvVR6K8.js";
2
2
  export { SettingsUnavailableError, getDiscoveryPath, getPrincipal, getSettingsPath, getSidecarSocketPath, getSnoStationMemStateDir, getStartupLogPath, getStateDir, readSettings };
@@ -1,2 +1,2 @@
1
- import { c as MEMORY_DEFAULT_SKIN_ID, d as MEMORY_RECONNECT_INTERVAL_MS, f as MEMORY_ROUTES, g as memoryMethod, h as REM_SIDECAR_TOKEN_HEADER, l as MEMORY_ERROR_STATUS, m as MEMORY_START_TIMEOUT_MS, o as MEMORY_BODY_LIMIT_BYTES, p as MEMORY_SKIN_HEADER, s as MEMORY_CANCEL_ON_DISCONNECT_HEADER, u as MEMORY_HEALTH_TIMEOUT_MS } from "../../index-GoYmsx8b.js";
1
+ import { c as MEMORY_DEFAULT_SKIN_ID, d as MEMORY_RECONNECT_INTERVAL_MS, f as MEMORY_ROUTES, g as memoryMethod, h as REM_SIDECAR_TOKEN_HEADER, l as MEMORY_ERROR_STATUS, m as MEMORY_START_TIMEOUT_MS, o as MEMORY_BODY_LIMIT_BYTES, p as MEMORY_SKIN_HEADER, s as MEMORY_CANCEL_ON_DISCONNECT_HEADER, u as MEMORY_HEALTH_TIMEOUT_MS } from "../../index-Df9420Pl.js";
2
2
  export { MEMORY_BODY_LIMIT_BYTES, MEMORY_CANCEL_ON_DISCONNECT_HEADER, MEMORY_DEFAULT_SKIN_ID, MEMORY_ERROR_STATUS, MEMORY_HEALTH_TIMEOUT_MS, MEMORY_RECONNECT_INTERVAL_MS, MEMORY_ROUTES, MEMORY_SKIN_HEADER, MEMORY_START_TIMEOUT_MS, REM_SIDECAR_TOKEN_HEADER, memoryMethod };
@@ -1,8 +1,8 @@
1
- import { h as MemoryCategory } from "../../../types-C9Hngi-p.js";
1
+ import { h as MemoryCategory } from "../../../types-El7jViCz.js";
2
2
  import { t as Embedder } from "../../../embedding-provider-client-CELWtPgt.js";
3
- import { t as MemoryRetriever } from "../../../retriever-BsjtyINJ.js";
4
- import { C as MemoryStore } from "../../../memory-store-base-yOAD7Ff8.js";
5
- import "../../../store-CukgAPqu.js";
3
+ import { t as MemoryRetriever } from "../../../retriever-2RJYAvlD.js";
4
+ import { C as MemoryStore } from "../../../memory-store-base-BHYXgsCq.js";
5
+ import "../../../store-Bz0y76cJ.js";
6
6
  import { r as MemoryTelemetryUsageOutbox } from "../../../memory-telemetry-outbox-ddTdImt7.js";
7
7
  import { Writable } from "node:stream";
8
8
  //#region src/engine/bindings/memory-cli-shared.d.ts
@@ -1,7 +1,7 @@
1
1
  import { FORGET_QUERY_MIN_SCORE, MAX_CANDIDATE_POOL_SIZE } from "../../config/index.js";
2
2
  import { SnoStationMemError } from "../shared/errors.js";
3
3
  import { clamp01, clampInt } from "../shared/utils.js";
4
- import "../../../memory-tool-dependencies-C8JSCWCz.js";
4
+ import "../../../memory-tool-dependencies-Cc4SJMtd.js";
5
5
  import { assertAccessibleScopeForTool, isScopeAccessibleForTool, resolveReadableScopesForTool } from "./memory-tool-access.js";
6
6
  import { makeResult, runWithAudit } from "./memory-tool-results.js";
7
7
  import { forgetParamsSchema } from "./memory-tool-schemas.js";
@@ -3,7 +3,7 @@ import { normalizeCategory } from "../shared/types.js";
3
3
  import { SnoStationMemError } from "../shared/errors.js";
4
4
  import { clampInt } from "../shared/utils.js";
5
5
  import { readEstimatedSpendToday } from "../operations/daily-spend-estimator.js";
6
- import "../../../memory-tool-dependencies-C8JSCWCz.js";
6
+ import "../../../memory-tool-dependencies-Cc4SJMtd.js";
7
7
  import { assertAccessibleScopeForTool, resolveReadableScopesForTool } from "./memory-tool-access.js";
8
8
  import { serializeMemory } from "./memory-tool-formatting.js";
9
9
  import { makeResult, runWithAudit } from "./memory-tool-results.js";
@@ -3,7 +3,7 @@ import { normalizeCategory } from "../shared/types.js";
3
3
  import { truncateGraphemes } from "../shared/i18n-text.js";
4
4
  import { clamp01, clampInt } from "../shared/utils.js";
5
5
  import { formatAtDepth } from "../retrieval/intent-analyzer.js";
6
- import { t as countTokens } from "../../../memory-tool-dependencies-C8JSCWCz.js";
6
+ import { t as countTokens } from "../../../memory-tool-dependencies-Cc4SJMtd.js";
7
7
  import { assertAccessibleScopeForTool, resolveReadableScopesForTool } from "./memory-tool-access.js";
8
8
  import { episodicEventDate, safeParseMetadata, sanitizeRecalledText, serializeMemory } from "./memory-tool-formatting.js";
9
9
  import { makeResult, runWithAudit } from "./memory-tool-results.js";
@@ -1,5 +1,5 @@
1
1
  import { clampInt } from "../shared/utils.js";
2
- import "../../../memory-tool-dependencies-C8JSCWCz.js";
2
+ import "../../../memory-tool-dependencies-Cc4SJMtd.js";
3
3
  import { assertAccessibleScopeForTool, isScopeAccessibleForTool, resolveReadableScopesForTool } from "./memory-tool-access.js";
4
4
  import { makeResult, runWithAudit } from "./memory-tool-results.js";
5
5
  import { t as parseReflectionMetadata } from "../../../entry-metadata-parser-BIVSMCIk.js";
@@ -1,6 +1,6 @@
1
1
  import { i as isSystemBypassId } from "../../../memory-scope-policy--TiLZnrE.js";
2
2
  import { readEstimatedSpendToday } from "../operations/daily-spend-estimator.js";
3
- import "../../../memory-tool-dependencies-C8JSCWCz.js";
3
+ import "../../../memory-tool-dependencies-Cc4SJMtd.js";
4
4
  import { assertAccessibleScopeForTool, getStoreScopeFilterForTool, resolveReadableScopesForTool } from "./memory-tool-access.js";
5
5
  import { makeResult, runWithAudit } from "./memory-tool-results.js";
6
6
  import { statsParamsSchema } from "./memory-tool-schemas.js";
@@ -5,12 +5,12 @@ import { clamp01, stableHash } from "../shared/utils.js";
5
5
  import { t as appendAuditEntry } from "../../../runtime-audit-log-DK6xAYxh.js";
6
6
  import { a as detectCategory } from "../../../capture-policy-detector-DaMfy9CZ.js";
7
7
  import { stripEnvelopeMetadata } from "../extraction/extraction-text-sanitizer.js";
8
- import { a as serializeIntervalMetadata, o as resolveMemoryDate } from "../../../memory-temporality-classifier-s7TjoKB-.js";
9
- import "../../../memory-tool-dependencies-C8JSCWCz.js";
8
+ import { a as serializeIntervalMetadata, o as resolveMemoryDate } from "../../../memory-temporality-classifier-Bauwnls7.js";
9
+ import "../../../memory-tool-dependencies-Cc4SJMtd.js";
10
10
  import { assertAccessibleScopeForTool, getDefaultScopeForTool } from "./memory-tool-access.js";
11
11
  import { makeResult, runWithAudit } from "./memory-tool-results.js";
12
12
  import { storeParamsSchema } from "./memory-tool-schemas.js";
13
- import { n as createRetireByNameRunBudget, r as runProfileSectionUpdate } from "../../../profile-section-writer-B54r7JN1.js";
13
+ import { n as createRetireByNameRunBudget, r as runProfileSectionUpdate } from "../../../profile-section-writer-CR-WWIoB.js";
14
14
  //#region src/engine/bindings/memory-store-tool.ts
15
15
  /** @file memory-store-tool.ts
16
16
  * @purpose Registers the memory_store tool.
@@ -1,5 +1,5 @@
1
1
  import { t as MemoryScopePolicy } from "../../../memory-scope-policy-1gg5QlWZ.js";
2
- import "../../../memory-tool-dependencies-BsaSVzC8.js";
2
+ import "../../../memory-tool-dependencies-D2fOC-KL.js";
3
3
  //#region src/engine/bindings/memory-tool-access.d.ts
4
4
  export declare function assertAccessibleScope(scopePolicy: MemoryScopePolicy, scope: string, agentId?: string): string;
5
5
  export declare function resolveAgentId(runtimeAgentId: unknown, fallback?: string): string | undefined;
@@ -1,5 +1,5 @@
1
1
  import { SnoStationMemError } from "../shared/errors.js";
2
- import "../../../memory-tool-dependencies-C8JSCWCz.js";
2
+ import "../../../memory-tool-dependencies-Cc4SJMtd.js";
3
3
  //#region src/engine/bindings/memory-tool-access.ts
4
4
  function assertAccessibleScope(scopePolicy, scope, agentId) {
5
5
  const normalized = scope.trim();
@@ -1,5 +1,5 @@
1
1
  import { i as SnoStationMemError } from "../../../errors-CeVRxf9V.js";
2
- import "../../../memory-tool-dependencies-BsaSVzC8.js";
2
+ import "../../../memory-tool-dependencies-D2fOC-KL.js";
3
3
  import { ToolContext, ToolResult } from "./memory-tool-schemas.js";
4
4
  //#region src/engine/bindings/memory-tool-results.d.ts
5
5
  export declare function makeResult(text: string, details: Record<string, unknown>, isError?: boolean): ToolResult;
@@ -1,5 +1,5 @@
1
1
  import { RetrievalError, SnoStationMemError } from "../shared/errors.js";
2
- import { n as z } from "../../../memory-tool-dependencies-C8JSCWCz.js";
2
+ import { n as z } from "../../../memory-tool-dependencies-Cc4SJMtd.js";
3
3
  import { createLogger } from "@snoai/utils/logger";
4
4
  //#region src/engine/bindings/memory-tool-results.ts
5
5
  /** @file memory-tool-results.ts
@@ -1,11 +1,11 @@
1
- import { p as LlmRoutingConfig, r as LlmClient } from "../../../plugin-config-schema-CsKKIHq9.js";
2
- import { h as MemoryCategory, r as AggregationQuery } from "../../../types-C9Hngi-p.js";
1
+ import { p as LlmRoutingConfig, r as LlmClient } from "../../../plugin-config-schema-DQh5njrS.js";
2
+ import { h as MemoryCategory, r as AggregationQuery } from "../../../types-El7jViCz.js";
3
3
  import { n as Locale } from "../../../locales-JxGmkG6t.js";
4
4
  import { t as Embedder } from "../../../embedding-provider-client-CELWtPgt.js";
5
- import { t as MemoryRetriever } from "../../../retriever-BsjtyINJ.js";
6
- import { C as MemoryStore } from "../../../memory-store-base-yOAD7Ff8.js";
5
+ import { t as MemoryRetriever } from "../../../retriever-2RJYAvlD.js";
6
+ import { C as MemoryStore } from "../../../memory-store-base-BHYXgsCq.js";
7
7
  import { t as MemoryScopePolicy } from "../../../memory-scope-policy-1gg5QlWZ.js";
8
- import { t as z } from "../../../memory-tool-dependencies-BsaSVzC8.js";
8
+ import { t as z } from "../../../memory-tool-dependencies-D2fOC-KL.js";
9
9
  //#region src/engine/bindings/memory-tool-schemas.d.ts
10
10
  export declare const recallParamsSchema: z.ZodType<{
11
11
  query: string;
@@ -1,5 +1,5 @@
1
1
  import { AGGREGATION_OPERATIONS, MEMORY_CATEGORIES } from "../shared/types.js";
2
- import { n as z } from "../../../memory-tool-dependencies-C8JSCWCz.js";
2
+ import { n as z } from "../../../memory-tool-dependencies-Cc4SJMtd.js";
3
3
  //#region src/engine/bindings/memory-tool-schemas.ts
4
4
  const TOOL_CATEGORY_INPUTS = [...MEMORY_CATEGORIES];
5
5
  const toolCategoryInputSchema = z.enum(TOOL_CATEGORY_INPUTS);
@@ -5,8 +5,8 @@ import { h as deriveFactKey } from "../../../memory-metadata-codec-DL1sbJiN.js";
5
5
  import { clamp01 } from "../shared/utils.js";
6
6
  import { t as appendAuditEntry } from "../../../runtime-audit-log-DK6xAYxh.js";
7
7
  import { stripEnvelopeMetadata } from "../extraction/extraction-text-sanitizer.js";
8
- import { a as serializeIntervalMetadata, o as resolveMemoryDate } from "../../../memory-temporality-classifier-s7TjoKB-.js";
9
- import "../../../memory-tool-dependencies-C8JSCWCz.js";
8
+ import { a as serializeIntervalMetadata, o as resolveMemoryDate } from "../../../memory-temporality-classifier-Bauwnls7.js";
9
+ import "../../../memory-tool-dependencies-Cc4SJMtd.js";
10
10
  import { parseEntryMetadata } from "./memory-tool-formatting.js";
11
11
  import { makeResult, runWithAudit } from "./memory-tool-results.js";
12
12
  import { updateParamsSchema } from "./memory-tool-schemas.js";
@@ -1,10 +1,10 @@
1
- import { t as PluginConfig } from "../../../plugin-config-schema-CsKKIHq9.js";
1
+ import { t as PluginConfig } from "../../../plugin-config-schema-DQh5njrS.js";
2
2
  import { t as Embedder } from "../../../embedding-provider-client-CELWtPgt.js";
3
- import { C as MemoryStore } from "../../../memory-store-base-yOAD7Ff8.js";
3
+ import { C as MemoryStore } from "../../../memory-store-base-BHYXgsCq.js";
4
4
  import { n as createScopePolicy } from "../../../memory-scope-policy-1gg5QlWZ.js";
5
5
  import { PluginHookAgentContext, PluginHookAgentEndEvent } from "./sno-station-mem-hook-types.js";
6
- import { r as AtomicInsightDistiller } from "../../../atomic-memory-extraction-BNBCB1XD.js";
7
- import { t as SnoStationMemPluginApi } from "../../../sno-station-mem-runtime-dependencies-B47DIcei.js";
6
+ import { r as AtomicInsightDistiller } from "../../../atomic-memory-extraction-Bp7AWZqi.js";
7
+ import { t as SnoStationMemPluginApi } from "../../../sno-station-mem-runtime-dependencies-ByI3b-wB.js";
8
8
  //#region src/engine/bindings/sno-station-mem-ambient-learning-hook.d.ts
9
9
  /** Runs atomic extraction after a successful top-level agent conversation. */
10
10
  export type AmbientCaptureOutcome = "skipped" | "success" | "partial" | "failed";
@@ -4,10 +4,10 @@ import { t as checkMemoryOperation } from "../../../operation-cancellation-QcwC4
4
4
  import { r as modelCallDestination } from "../../../model-call-table-CPyQfBJ6.js";
5
5
  import { t as appendAuditEntry } from "../../../runtime-audit-log-DK6xAYxh.js";
6
6
  import { t as normalizeAmbientLearningText } from "../../../ambient-learning-text-normalizer-CxjATmMp.js";
7
- import { a as serializeIntervalMetadata, i as parseSessionTimestamp, s as unresolvedMemoryDate } from "../../../memory-temporality-classifier-s7TjoKB-.js";
7
+ import { a as serializeIntervalMetadata, i as parseSessionTimestamp, s as unresolvedMemoryDate } from "../../../memory-temporality-classifier-Bauwnls7.js";
8
8
  import { resolveHookAgentId } from "./sno-station-mem-runtime-mode.js";
9
9
  import { c as shouldSkipReflectionMessage } from "../../../daily-log-generator-DEsiCs7o.js";
10
- import "../../../sno-station-mem-runtime-dependencies-DES7ZvMt.js";
10
+ import "../../../sno-station-mem-runtime-dependencies-DsidkZi2.js";
11
11
  import { buildConversationText, deriveSessionDateTime, extractAllMessageTexts, isAmbientLearningMessage, transcriptSessionDateTime } from "./sno-station-mem-message-transcript.js";
12
12
  import { createLogger, currentLogContext, withLogContext } from "@snoai/utils/logger";
13
13
  import { randomUUID } from "node:crypto";
@@ -1,10 +1,10 @@
1
- import { t as PluginConfig } from "../../../plugin-config-schema-CsKKIHq9.js";
2
- import { t as MemoryRetriever } from "../../../retriever-BsjtyINJ.js";
3
- import { C as MemoryStore } from "../../../memory-store-base-yOAD7Ff8.js";
1
+ import { t as PluginConfig } from "../../../plugin-config-schema-DQh5njrS.js";
2
+ import { t as MemoryRetriever } from "../../../retriever-2RJYAvlD.js";
3
+ import { C as MemoryStore } from "../../../memory-store-base-BHYXgsCq.js";
4
4
  import { r as MemoryTelemetryUsageOutbox } from "../../../memory-telemetry-outbox-ddTdImt7.js";
5
5
  import { n as createScopePolicy } from "../../../memory-scope-policy-1gg5QlWZ.js";
6
6
  import { PluginHookAgentContext, PluginHookBeforeAgentStartEvent, PluginHookBeforeAgentStartResult } from "./sno-station-mem-hook-types.js";
7
- import { t as SnoStationMemPluginApi } from "../../../sno-station-mem-runtime-dependencies-B47DIcei.js";
7
+ import { t as SnoStationMemPluginApi } from "../../../sno-station-mem-runtime-dependencies-ByI3b-wB.js";
8
8
  //#region src/engine/bindings/sno-station-mem-auto-recall-hook.d.ts
9
9
  export declare function extractAutoRecallQuery(prompt: string): string;
10
10
  /** Injects relevant memories into the next agent turn after scope and cache checks. */
@@ -8,7 +8,7 @@ import { episodicEventDate, saidOnDate, sourceQuote } from "./memory-tool-format
8
8
  import { r as retrieveForAutoRecall } from "../../../rem-consumer-retrieval-BhS1ivcd.js";
9
9
  import { isChatIdBasedAgentId, resolveHookAgentId } from "./sno-station-mem-runtime-mode.js";
10
10
  import { t as parseReflectionMetadata } from "../../../entry-metadata-parser-BIVSMCIk.js";
11
- import "../../../sno-station-mem-runtime-dependencies-DES7ZvMt.js";
11
+ import "../../../sno-station-mem-runtime-dependencies-DsidkZi2.js";
12
12
  import { resolveRuntimeSessionId } from "./sno-station-mem-session-state.js";
13
13
  import { createLogger, currentLogContext, withLogContext } from "@snoai/utils/logger";
14
14
  import { randomUUID } from "node:crypto";
@@ -1,10 +1,10 @@
1
- import { t as PluginConfig } from "../../../plugin-config-schema-CsKKIHq9.js";
1
+ import { t as PluginConfig } from "../../../plugin-config-schema-DQh5njrS.js";
2
2
  import { n as AgentLlmPort } from "../../../agent-llm-port-BlFrD2ro.js";
3
- import { n as PluginObservability } from "../../../adapter-BM58hult.js";
3
+ import { n as PluginObservability } from "../../../adapter-BFtbOOw3.js";
4
4
  import { t as Embedder } from "../../../embedding-provider-client-CELWtPgt.js";
5
- import { C as MemoryStore } from "../../../memory-store-base-yOAD7Ff8.js";
6
- import { r as AtomicInsightDistiller } from "../../../atomic-memory-extraction-BNBCB1XD.js";
7
- import { t as SnoStationMemPluginApi } from "../../../sno-station-mem-runtime-dependencies-B47DIcei.js";
5
+ import { C as MemoryStore } from "../../../memory-store-base-BHYXgsCq.js";
6
+ import { r as AtomicInsightDistiller } from "../../../atomic-memory-extraction-Bp7AWZqi.js";
7
+ import { t as SnoStationMemPluginApi } from "../../../sno-station-mem-runtime-dependencies-ByI3b-wB.js";
8
8
  //#region src/engine/bindings/sno-station-mem-insight-distill-factory.d.ts
9
9
  /**
10
10
  * Assembles Insight Distill from validated inputs for deterministic plugin lifecycle
@@ -1,7 +1,7 @@
1
1
  import { t as appendAuditEntry } from "../../../runtime-audit-log-DK6xAYxh.js";
2
2
  import { pickLlmRoutingConfig, resolveLlmRoute } from "../../model/llm-mode-routing.js";
3
- import { r as createSignedAtomicMemoryExtractionTransports, t as AtomicInsightDistiller } from "../../../atomic-memory-extraction-BaBrfESt.js";
4
- import "../../../sno-station-mem-runtime-dependencies-DES7ZvMt.js";
3
+ import { r as createSignedAtomicMemoryExtractionTransports, t as AtomicInsightDistiller } from "../../../atomic-memory-extraction-l65aofbl.js";
4
+ import "../../../sno-station-mem-runtime-dependencies-DsidkZi2.js";
5
5
  import { createLogger } from "@snoai/utils/logger";
6
6
  //#region src/engine/bindings/sno-station-mem-insight-distill-factory.ts
7
7
  /** @file sno-station-mem-insight-distill-factory.ts
@@ -58,6 +58,7 @@ function buildInsightDistiller(api, config, store, _embedder, _observability, _s
58
58
  try {
59
59
  const transports = createSignedAtomicMemoryExtractionTransports({
60
60
  preset: llmCfg.preset,
61
+ usageClass: llmCfg.usageClass,
61
62
  ...llmCfg.apiKey ? { apiKey: llmCfg.apiKey } : {},
62
63
  ...llmCfg.baseURL ? { baseURL: llmCfg.baseURL } : {},
63
64
  timeoutMs: llmCfg.timeoutMs,