@snoai/memory 1.2.14 → 1.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (157) hide show
  1. package/README.md +1 -1
  2. package/dist/{access-tracker-DT04huAG.d.ts → access-tracker-D-riPZRY.d.ts} +4 -4
  3. package/dist/{adapter-BMx-VcJy.d.ts → adapter-BM58hult.d.ts} +2 -2
  4. package/dist/{atomic-memory-extraction-_OEsSJbC.d.ts → atomic-memory-extraction-BNBCB1XD.d.ts} +4 -4
  5. package/dist/{atomic-memory-extraction-De86y7O-.js → atomic-memory-extraction-BaBrfESt.js} +5 -5
  6. package/dist/{b-profile-section-dictionary-provider-DTE4uWyh.d.ts → b-profile-section-dictionary-provider-D2kzg9Re.d.ts} +1 -1
  7. package/dist/{capture-policy-detector-B8sqRTlB.d.ts → capture-policy-detector-CoT-j_Ic.d.ts} +1 -1
  8. package/dist/client.d.ts +1 -1
  9. package/dist/{config-C1X5rsAx.js → config-BhlMin82.js} +743 -412
  10. package/dist/{connection-PQcq3TPO.js → connection-BtK-3r-f.js} +1 -20
  11. package/dist/{connection-3IVXpuPE.d.ts → connection-D989FqGS.d.ts} +1 -17
  12. package/dist/{derived-suppression-cache-Cha_e2Cr.d.ts → derived-suppression-cache-BW52dq3w.d.ts} +1 -1
  13. package/dist/diagnostic-encoder.js +1 -1
  14. package/dist/{embedding-provider-client-vynZMuit.d.ts → embedding-provider-client-CELWtPgt.d.ts} +6 -0
  15. package/dist/{embedding-provider-client-40tpzKou.js → embedding-provider-client-CgpUK_1G.js} +16 -1
  16. package/dist/{index-8CfO_-6T.d.ts → index-BGu91bjB.d.ts} +19 -4
  17. package/dist/{index-C8tTzfrH.d.ts → index-GoYmsx8b.d.ts} +2 -2
  18. package/dist/index.d.ts +10 -10
  19. package/dist/index.js +4 -4
  20. package/dist/internal/config/index.d.ts +2 -2
  21. package/dist/internal/config/index.js +19 -4
  22. package/dist/internal/config/plugin-config-schema.d.ts +1 -1
  23. package/dist/internal/config/product-mode.d.ts +1 -1
  24. package/dist/internal/config/settings.d.ts +1 -1
  25. package/dist/internal/config/settings.js +1 -1
  26. package/dist/internal/config/skin-defaults.d.ts +1 -1
  27. package/dist/internal/contract/profile.d.ts +1 -1
  28. package/dist/internal/contract/routes.d.ts +1 -1
  29. package/dist/internal/engine/bindings/memory-cli-shared.d.ts +5 -5
  30. package/dist/internal/engine/bindings/memory-forget-tool.js +1 -1
  31. package/dist/internal/engine/bindings/memory-list-tool.js +1 -1
  32. package/dist/internal/engine/bindings/memory-recall-tool.js +1 -1
  33. package/dist/internal/engine/bindings/memory-reflection-resolve-tool.js +1 -1
  34. package/dist/internal/engine/bindings/memory-stats-tool.js +1 -1
  35. package/dist/internal/engine/bindings/memory-store-tool.js +3 -3
  36. package/dist/internal/engine/bindings/memory-tool-access.d.ts +1 -1
  37. package/dist/internal/engine/bindings/memory-tool-access.js +1 -1
  38. package/dist/internal/engine/bindings/memory-tool-results.d.ts +1 -1
  39. package/dist/internal/engine/bindings/memory-tool-results.js +1 -1
  40. package/dist/internal/engine/bindings/memory-tool-schemas.d.ts +6 -6
  41. package/dist/internal/engine/bindings/memory-tool-schemas.js +1 -1
  42. package/dist/internal/engine/bindings/memory-update-tool.js +2 -2
  43. package/dist/internal/engine/bindings/sno-station-mem-ambient-learning-hook.d.ts +5 -5
  44. package/dist/internal/engine/bindings/sno-station-mem-ambient-learning-hook.js +3 -3
  45. package/dist/internal/engine/bindings/sno-station-mem-auto-recall-hook.d.ts +4 -4
  46. package/dist/internal/engine/bindings/sno-station-mem-auto-recall-hook.js +1 -1
  47. package/dist/internal/engine/bindings/sno-station-mem-insight-distill-factory.d.ts +6 -6
  48. package/dist/internal/engine/bindings/sno-station-mem-insight-distill-factory.js +2 -2
  49. package/dist/internal/engine/bindings/sno-station-mem-message-transcript.js +2 -2
  50. package/dist/internal/engine/bindings/sno-station-mem-reset-hook.d.ts +4 -4
  51. package/dist/internal/engine/bindings/sno-station-mem-runtime-mode.d.ts +1 -1
  52. package/dist/internal/engine/extraction/atomic-memory-extraction.d.ts +1 -1
  53. package/dist/internal/engine/extraction/atomic-memory-extraction.js +1 -1
  54. package/dist/internal/engine/extraction/b-profile-section-dictionary-provider.d.ts +1 -1
  55. package/dist/internal/engine/extraction/b-profile-section-rekey.d.ts +5 -5
  56. package/dist/internal/engine/extraction/capture-policy-detector.d.ts +1 -1
  57. package/dist/internal/engine/extraction/embedding-provider-client.d.ts +1 -1
  58. package/dist/internal/engine/extraction/embedding-provider-client.js +1 -1
  59. package/dist/internal/engine/extraction/memory-metadata-codec.d.ts +2 -2
  60. package/dist/internal/engine/extraction/memory-temporality-classifier.d.ts +1 -1
  61. package/dist/internal/engine/extraction/memory-temporality-classifier.js +1 -1
  62. package/dist/internal/engine/observability/adapter.d.ts +1 -1
  63. package/dist/internal/engine/observability/memory-snapshot.d.ts +1 -1
  64. package/dist/internal/engine/observability/observable-embedder.d.ts +1 -1
  65. package/dist/internal/engine/observability/observable-embedder.js +1 -1
  66. package/dist/internal/engine/observability/observable-llm-client.d.ts +1 -1
  67. package/dist/internal/engine/observability/observable-memory-store.d.ts +1 -1
  68. package/dist/internal/engine/observability/observable-memory-store.js +1 -1
  69. package/dist/internal/engine/observability/observable-retriever.d.ts +1 -1
  70. package/dist/internal/engine/observability/observable-retriever.js +1 -1
  71. package/dist/internal/engine/observability/runtime-diagnostics.d.ts +1 -1
  72. package/dist/internal/engine/observability/runtime-diagnostics.js +2 -2
  73. package/dist/internal/engine/operations/memory-tier-promoter.d.ts +1 -1
  74. package/dist/internal/engine/operations/runtime-audit-log.d.ts +2 -2
  75. package/dist/internal/engine/provider/provider-registration.d.ts +4 -4
  76. package/dist/internal/engine/provider/provider-row-renderer.d.ts +1 -1
  77. package/dist/internal/engine/reflection/reflection-command-hooks.d.ts +1 -1
  78. package/dist/internal/engine/reflection/reflection-command-hooks.js +1 -1
  79. package/dist/internal/engine/reflection/reflection-deps.d.ts +1 -1
  80. package/dist/internal/engine/reflection/reflection-embedded-generator.d.ts +1 -1
  81. package/dist/internal/engine/reflection/reflection-embedded-generator.js +1 -1
  82. package/dist/internal/engine/reflection/reflection-injection-hooks.d.ts +1 -1
  83. package/dist/internal/engine/reflection/reflection-injection-hooks.js +1 -1
  84. package/dist/internal/engine/reflection/reflection-lifecycle-hooks.d.ts +1 -1
  85. package/dist/internal/engine/reflection/reflection-lifecycle-hooks.js +1 -1
  86. package/dist/internal/engine/reflection/strategy-hook-runner.d.ts +3 -3
  87. package/dist/internal/engine/reflection/strategy-hook-runner.js +2 -2
  88. package/dist/internal/engine/retrieval/access-tracker.d.ts +1 -1
  89. package/dist/internal/engine/retrieval/retriever.d.ts +1 -1
  90. package/dist/internal/engine/retrieval/retriever.js +1 -1
  91. package/dist/internal/engine/shared/memory-kind-policy.d.ts +1 -1
  92. package/dist/internal/engine/shared/paths.d.ts +2 -2
  93. package/dist/internal/engine/shared/types.d.ts +2 -2
  94. package/dist/internal/engine/telemetry/observe-ledger.d.ts +1 -1
  95. package/dist/internal/model/llm-client.d.ts +2 -2
  96. package/dist/internal/model/llm-client.js +1 -1
  97. package/dist/internal/model/llm-mode-routing.d.ts +1 -1
  98. package/dist/internal/model/llm-mode-routing.js +1 -1
  99. package/dist/internal/store/atomic-memory-cutover-sql.js +1 -1
  100. package/dist/internal/store/connection.d.ts +2 -2
  101. package/dist/internal/store/connection.js +2 -2
  102. package/dist/internal/store/maintenance.d.ts +2 -2
  103. package/dist/internal/store/maintenance.js +6 -6
  104. package/dist/internal/store/memory-kinds-cutover-migrator.d.ts +0 -2
  105. package/dist/internal/store/memory-kinds-cutover-migrator.js +1 -10
  106. package/dist/internal/store/store.d.ts +2 -2
  107. package/dist/internal/store/store.js +1 -1
  108. package/dist/{llm-client-BoClMktv.d.ts → llm-client-9XCsnmf0.d.ts} +1 -1
  109. package/dist/{llm-client-DDdUjYWS.js → llm-client-Z_VkmTsW.js} +1 -1
  110. package/dist/{log-site-catalog.generated-DGia_6ZR.js → log-site-catalog.generated-lc-iJczN.js} +70 -56
  111. package/dist/log-site-catalog.json +1 -1
  112. package/dist/{memory-entry-projector-DHo8jH10.js → memory-entry-projector-B36Nwsi_.js} +2 -1
  113. package/dist/{memory-kind-policy-C7p4o8ru.d.ts → memory-kind-policy-DcEvUTKl.d.ts} +1 -1
  114. package/dist/{memory-metadata-codec-CFY8YtXf.d.ts → memory-metadata-codec-CLtCCf-b.d.ts} +1 -1
  115. package/dist/{memory-runtime-CCPRiAk9.js → memory-runtime-De1T9jTv.js} +76 -60
  116. package/dist/{memory-snapshot-DADY3InD.d.ts → memory-snapshot-BXB2APN0.d.ts} +2 -2
  117. package/dist/{memory-store-base-D0bLwzyF.d.ts → memory-store-base-yOAD7Ff8.d.ts} +5 -5
  118. package/dist/{memory-store-shared-CURizQIy.js → memory-store-shared-pOb59ScU.js} +1 -1
  119. package/dist/{memory-temporality-classifier-DL14kjtv.d.ts → memory-temporality-classifier-BxmM3FOb.d.ts} +1 -1
  120. package/dist/{memory-temporality-classifier-BwBKEQbL.js → memory-temporality-classifier-s7TjoKB-.js} +2 -2
  121. package/dist/{memory-tier-promoter-Cf1OdoZK.d.ts → memory-tier-promoter-DjJwYB4w.d.ts} +1 -1
  122. package/dist/memory-tool-dependencies-BsaSVzC8.d.ts +14 -0
  123. package/dist/{memory-tool-dependencies-aAr7Pkuj.js → memory-tool-dependencies-C8JSCWCz.js} +1 -1
  124. package/dist/{model-call-table-DoIl2S0P.js → model-call-table-CPyQfBJ6.js} +7 -7
  125. package/dist/{observable-embedder-CPyX9y7c.d.ts → observable-embedder-DCtHXucw.d.ts} +2 -2
  126. package/dist/{observable-llm-client-C8ndPJck.d.ts → observable-llm-client-DykY0exK.d.ts} +3 -3
  127. package/dist/{observable-memory-store-DhOfgjkU.d.ts → observable-memory-store-ZBTjMAHj.d.ts} +5 -5
  128. package/dist/{observable-retriever-CUlmCFy5.d.ts → observable-retriever-f8ENkQnP.d.ts} +6 -6
  129. package/dist/paths-m8yncZgm.d.ts +1 -0
  130. package/dist/{plugin-config-schema-BPg-ppSt.d.ts → plugin-config-schema-CsKKIHq9.d.ts} +2 -2
  131. package/dist/{profile-BksZRjJ8.d.ts → profile-CxdMGvxU.d.ts} +1 -1
  132. package/dist/{profile-section-writer-Dd4FKpt5.js → profile-section-writer-B54r7JN1.js} +2 -2
  133. package/dist/{reflection-command-hooks-mCOmD8b6.d.ts → reflection-command-hooks-_B_XZBIz.d.ts} +4 -4
  134. package/dist/{reflection-command-hooks-B2P4zDr6.js → reflection-command-hooks-a1kgC2cr.js} +5 -4
  135. package/dist/{reflection-deps-BYkAaKxD.d.ts → reflection-deps-DQBHeGYK.d.ts} +3 -3
  136. package/dist/{reflection-embedded-generator-DV-NkeU-.js → reflection-embedded-generator-DEuTWrBh.js} +1 -1
  137. package/dist/{reflection-embedded-generator-ve1PhgUY.d.ts → reflection-embedded-generator-LmZQqGER.d.ts} +3 -3
  138. package/dist/{reflection-injection-hooks-CphBCA9F.d.ts → reflection-injection-hooks-CTDCwu2_.d.ts} +4 -4
  139. package/dist/{reflection-lifecycle-hooks-CFGYh_8m.d.ts → reflection-lifecycle-hooks-eFUc2mcd.d.ts} +3 -3
  140. package/dist/{rem-batch-executor-TSYG7oVi.js → rem-batch-executor-D42YWCNg.js} +1 -1
  141. package/dist/{rem-trigger-i_E8I9lv.js → rem-trigger-BKr4Qmhn.js} +97 -7
  142. package/dist/{retriever-6ybsoVuY.d.ts → retriever-BsjtyINJ.d.ts} +12 -9
  143. package/dist/{retriever-Dnjl_FHu.js → retriever-CsBW6MZv.js} +71 -5
  144. package/dist/{runtime-audit-log-DWpWmCx5.d.ts → runtime-audit-log-C-L0v2HU.d.ts} +1 -1
  145. package/dist/{server-DsaVeSaM.js → server-BPOT66a_.js} +9 -9
  146. package/dist/sidecar/main.js +2 -2
  147. package/dist/sno-station-mem-runtime-dependencies-B47DIcei.d.ts +31 -0
  148. package/dist/{sno-station-mem-runtime-dependencies-zzcjHD_N.js → sno-station-mem-runtime-dependencies-DES7ZvMt.js} +7 -7
  149. package/dist/{store-HyzTUvwj.d.ts → store-CukgAPqu.d.ts} +2 -2
  150. package/dist/{store-COwW7mIh.js → store-DRwqWMTh.js} +3 -3
  151. package/dist/{strategy-hook-runner-B_m1L5CB.d.ts → strategy-hook-runner-BlJxjMjC.d.ts} +7 -7
  152. package/dist/{strategy-hook-runner-CALbWcys.js → strategy-hook-runner-s8dAEQ3P.js} +2 -2
  153. package/dist/{types-Dm_XhSne.d.ts → types-C9Hngi-p.d.ts} +1 -1
  154. package/package.json +2 -2
  155. package/dist/memory-tool-dependencies-Bxdpvs3Z.d.ts +0 -14
  156. package/dist/paths-DnNN0G1t.d.ts +0 -1
  157. package/dist/sno-station-mem-runtime-dependencies-DtKDYdsh.d.ts +0 -31
@@ -1,8 +1,8 @@
1
- import { t as PluginConfig } from "./plugin-config-schema-BPg-ppSt.js";
2
- import "./types-Dm_XhSne.js";
1
+ import { t as PluginConfig } from "./plugin-config-schema-CsKKIHq9.js";
2
+ import "./types-C9Hngi-p.js";
3
3
  import { n as createErrorSignalTracker } from "./error-signals-D8_3vYu4.js";
4
- import { n as ReflectionDerivedCache, t as ReflectionDerivedSuppressionCache } from "./derived-suppression-cache-Cha_e2Cr.js";
5
- import { t as ReflectionDeps } from "./reflection-deps-BYkAaKxD.js";
4
+ import { n as ReflectionDerivedCache, t as ReflectionDerivedSuppressionCache } from "./derived-suppression-cache-BW52dq3w.js";
5
+ import { t as ReflectionDeps } from "./reflection-deps-DQBHeGYK.js";
6
6
  //#region src/engine/reflection/reflection-command-hooks.d.ts
7
7
  declare function createRunMemoryReflection(params: ReflectionCommandParams): (event: {
8
8
  sessionKey: string;
@@ -3,15 +3,15 @@ import { a as buildInsightMetadata, c as stringifyInsightMetadata } from "./memo
3
3
  import { redactSecrets } from "./internal/engine/security/redact.js";
4
4
  import { t as checkMemoryOperation } from "./operation-cancellation-QcwC4mDX.js";
5
5
  import { setLruEntry } from "./internal/engine/shared/lru.js";
6
- import { i as createLlmClient } from "./llm-client-DDdUjYWS.js";
6
+ import { i as createLlmClient } from "./llm-client-Z_VkmTsW.js";
7
7
  import { pickLlmRoutingConfig } from "./internal/model/llm-mode-routing.js";
8
8
  import { appendSelfImprovementEntry } from "./internal/engine/operations/learning-file-maintenance.js";
9
9
  import { getSnoStationMemDataDir } from "./internal/store/data-paths.js";
10
10
  import { resolveHookAgentId } from "./internal/engine/bindings/sno-station-mem-runtime-mode.js";
11
- import { n as createRetireByNameRunBudget, r as runProfileSectionUpdate } from "./profile-section-writer-Dd4FKpt5.js";
11
+ import { n as createRetireByNameRunBudget, r as runProfileSectionUpdate } from "./profile-section-writer-B54r7JN1.js";
12
12
  import { a as generateReflectionText, c as shouldSkipReflectionMessage, l as writeReflectionToFilesystem, s as readSessionConversationWithResetFallback, u as extractTextContent } from "./daily-log-generator-DEsiCs7o.js";
13
- import { a as resolveWorkspaceDirFromEvent, f as setReflectionDerivedCacheEntry, l as isSessionBoundaryReflectionAction, n as createReflectionGenerator, o as DEFAULT_REFLECTION_BOUNDARY_DERIVED_SUPPRESSION_MS, t as DEFAULT_MEMORY_LLM_CONFIG, u as setReflectionDerivedSuppression } from "./reflection-embedded-generator-DV-NkeU-.js";
14
- import { i as buildReflectionMappedMetadata, n as createReflectionEventId, o as extractInjectableReflectionMappedMemoryItems, r as buildReflectionAntiPatternSignature, s as extractReflectionLearningGovernanceCandidates, t as storeReflectionEntries } from "./memory-entry-projector-DHo8jH10.js";
13
+ import { a as resolveWorkspaceDirFromEvent, f as setReflectionDerivedCacheEntry, l as isSessionBoundaryReflectionAction, n as createReflectionGenerator, o as DEFAULT_REFLECTION_BOUNDARY_DERIVED_SUPPRESSION_MS, t as DEFAULT_MEMORY_LLM_CONFIG, u as setReflectionDerivedSuppression } from "./reflection-embedded-generator-DEuTWrBh.js";
14
+ import { i as buildReflectionMappedMetadata, n as createReflectionEventId, o as extractInjectableReflectionMappedMemoryItems, r as buildReflectionAntiPatternSignature, s as extractReflectionLearningGovernanceCandidates, t as storeReflectionEntries } from "./memory-entry-projector-B36Nwsi_.js";
15
15
  import { createLogger, currentLogContext, privateLogReference, withLogContext } from "@snoai/utils/logger";
16
16
  import { basename, join } from "node:path";
17
17
  import { getSnoProfileDir } from "@snoai/observability";
@@ -552,6 +552,7 @@ async function maybeStoreReflection(params, diagnostics) {
552
552
  sessionKey: params.sessionKey,
553
553
  sessionId: params.sessionId,
554
554
  agentId: params.sourceAgentId,
555
+ derivedAgentId: params.writerAgentId ?? params.sourceAgentId,
555
556
  writerAgentId: params.writerAgentId,
556
557
  command: params.command,
557
558
  scope: targetScope,
@@ -1,7 +1,7 @@
1
1
  import { n as AgentLlmPort } from "./agent-llm-port-BlFrD2ro.js";
2
- import { n as createEmbedder } from "./embedding-provider-client-vynZMuit.js";
3
- import { C as MemoryStore } from "./memory-store-base-D0bLwzyF.js";
4
- import "./store-HyzTUvwj.js";
2
+ import { n as createEmbedder } from "./embedding-provider-client-CELWtPgt.js";
3
+ import { C as MemoryStore } from "./memory-store-base-yOAD7Ff8.js";
4
+ import "./store-CukgAPqu.js";
5
5
  import { r as MemoryTelemetryUsageOutbox } from "./memory-telemetry-outbox-ddTdImt7.js";
6
6
  import { n as createScopePolicy } from "./memory-scope-policy-1gg5QlWZ.js";
7
7
  //#region src/engine/reflection/reflection-deps.d.ts
@@ -1,5 +1,5 @@
1
1
  import { X as FIXED_MEMORY_SNO_AI_EXTRACT } from "./signed-registry-constants-yq3DlG3B.js";
2
- import { i as createLlmClient } from "./llm-client-DDdUjYWS.js";
2
+ import { i as createLlmClient } from "./llm-client-Z_VkmTsW.js";
3
3
  //#region src/engine/reflection/derived-line-cache.ts
4
4
  /**
5
5
  * Returns reflection derived cache entry from reflection cache keys state without side effects.
@@ -1,9 +1,9 @@
1
- import { p as LlmRoutingConfig, t as PluginConfig } from "./plugin-config-schema-BPg-ppSt.js";
2
- import "./types-Dm_XhSne.js";
1
+ import { p as LlmRoutingConfig, t as PluginConfig } from "./plugin-config-schema-CsKKIHq9.js";
2
+ import "./types-C9Hngi-p.js";
3
3
  import { n as AgentLlmPort } from "./agent-llm-port-BlFrD2ro.js";
4
4
  import { n as ReflectionGenerator } from "./daily-log-generator-CsQPHl4A.js";
5
5
  import { n as createErrorSignalTracker } from "./error-signals-D8_3vYu4.js";
6
- import { n as ReflectionDerivedCache, t as ReflectionDerivedSuppressionCache } from "./derived-suppression-cache-Cha_e2Cr.js";
6
+ import { n as ReflectionDerivedCache, t as ReflectionDerivedSuppressionCache } from "./derived-suppression-cache-BW52dq3w.js";
7
7
  //#region src/engine/reflection/reflection-embedded-generator.d.ts
8
8
  declare const DEFAULT_MEMORY_LLM_CONFIG: NonNullable<PluginConfig["extraction"]["llm"]>;
9
9
  declare function isInternalReflectionSessionKey(sessionKey: unknown): boolean;
@@ -1,10 +1,10 @@
1
- import { t as PluginConfig } from "./plugin-config-schema-BPg-ppSt.js";
2
- import "./types-Dm_XhSne.js";
3
- import "./store-HyzTUvwj.js";
1
+ import { t as PluginConfig } from "./plugin-config-schema-CsKKIHq9.js";
2
+ import "./types-C9Hngi-p.js";
3
+ import "./store-CukgAPqu.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 { n as createErrorSignalTracker } from "./error-signals-D8_3vYu4.js";
7
- import { n as ReflectionDerivedCache, r as LoadedReflectionSlices, t as ReflectionDerivedSuppressionCache } from "./derived-suppression-cache-Cha_e2Cr.js";
7
+ import { n as ReflectionDerivedCache, r as LoadedReflectionSlices, t as ReflectionDerivedSuppressionCache } from "./derived-suppression-cache-BW52dq3w.js";
8
8
  //#region src/engine/reflection/reflection-slice-loader.d.ts
9
9
  interface ReflectionSliceLoader {
10
10
  loadAgentReflectionSlices: (agentId: string, projectIdFilter: string[]) => Promise<LoadedReflectionSlices>;
@@ -1,7 +1,7 @@
1
- import { t as PluginConfig } from "./plugin-config-schema-BPg-ppSt.js";
2
- import "./types-Dm_XhSne.js";
1
+ import { t as PluginConfig } from "./plugin-config-schema-CsKKIHq9.js";
2
+ import "./types-C9Hngi-p.js";
3
3
  import { n as createErrorSignalTracker } from "./error-signals-D8_3vYu4.js";
4
- import { n as ReflectionDerivedCache, t as ReflectionDerivedSuppressionCache } from "./derived-suppression-cache-Cha_e2Cr.js";
4
+ import { n as ReflectionDerivedCache, t as ReflectionDerivedSuppressionCache } from "./derived-suppression-cache-BW52dq3w.js";
5
5
  //#region src/engine/reflection/reflection-lifecycle-hooks.d.ts
6
6
  type ReflectionLifecycleParams = {
7
7
  reflectionCfg: PluginConfig["memoryReflection"];
@@ -1,2 +1,2 @@
1
- import { c as runRemProductionOrderedWave } from "./rem-trigger-i_E8I9lv.js";
1
+ import { c as runRemProductionOrderedWave } from "./rem-trigger-BKr4Qmhn.js";
2
2
  export { runRemProductionOrderedWave };
@@ -1,14 +1,14 @@
1
- import { $ as FIXED_IDX_MEMORY_ACTIVE_TASK_CURRENT_REVISION, $n as MAX_CHUNK_FETCH_LIMIT, A as modelCallDestination, At as FIXED_MEMORY_PROFILE_RECOVERY_ENTRIES, B as FIXED_EXTERNAL_VALUE_49, C as getSnoStationMemStateDir, Cn as CHUNK_OVERLAP_TOKENS, Cr as LOCAL_EMBEDDING_CACHE_DIR_DEFAULT, Ct as FIXED_MEMORY_CHUNKS_MEM_FACET_IDX, D as settingsToPluginConfig, Dn as DEFAULT_IMPORTANCE, Dr as ensureModelDownloaded, Dt as FIXED_MEMORY_MEMORIES_FACT_ID_INSERT_GUARD, En as DEFAULT_BM25_WEIGHT, Er as LocalEmbedProvider, Et as FIXED_MEMORY_MEMORIES, Fn as EMBEDDER_DIM, Fr as REM_SIDECAR_TOKEN_HEADER, G as FIXED_EXTERNAL_VALUE_55, H as FIXED_EXTERNAL_VALUE_52, Hn as HEAD_EXTRACT_OVERLAP_DROP_RATIO, In as EMBEDDER_MODEL_DEFAULT, It as FIXED_MEMORY_SNO_EXTRACT_CHAT, J as FIXED_EXTERNAL_VALUE_58, Jn as LIGHTWEIGHT_FUSION_WEIGHT, K as FIXED_EXTERNAL_VALUE_56, Kn as INTRA_MEMORY_COSINE_THRESHOLD, Kt as FIXED_PROTOCOL_VALUE_69, Ln as EMBEDDER_PROVIDER_DEFAULT, Mn as DEFAULT_RERANK_TIMEOUT_MS, Mt as FIXED_MEMORY_PROVIDER_PROJECT_AGENTS, Nt as FIXED_MEMORY_PROVIDER_PROJECT_MAPPINGS, O as MODEL_CALLS, On as DEFAULT_RECALL_LIFECYCLE, Ot as FIXED_MEMORY_MEMORIES_FACT_ID_UPDATE_GUARD, P as observeAgentId, Pn as DEFAULT_VECTOR_WEIGHT, Q as FIXED_IDX_MEMORY, Rn as EVAL_QA_TRACES_FILENAME, Rt as FIXED_MEMORY_TASK_LIFECYCLE_COMMANDS, Sn as CHUNK_MIN_TOKENS, Sr as CachedEmbeddingProvider, St as FIXED_MEMORY_CHUNKS_MEMORY_ID_IDX, T as readSettings, Tn as CHUNK_TOKENIZER_MODE, Tt as FIXED_MEMORY_EXTRACTION_TIMESTAMPS, U as FIXED_EXTERNAL_VALUE_53, Un as HEAD_EXTRACT_TOKEN_BUDGET, V as FIXED_EXTERNAL_VALUE_51, Vn as HEAD_EXTRACT_MIN_CONTENT_TOKENS, W as FIXED_EXTERNAL_VALUE_54, Wn as IMPORTANCE_WEIGHT_BASE, X as FIXED_EXTERNAL_VALUE_8, Y as FIXED_EXTERNAL_VALUE_62, Yn as LIGHTWEIGHT_RERANK_PENALTY, Z as FIXED_EXTERNAL_VALUE_9, _t as FIXED_MEMORY_CHUNKS, a as REM_MODEL_OUTPUT_TOKEN_CAP, an as PERSISTED_PROVIDER_SYSTEM, ar as MULTI_HIT_BONUS_CAP, at as FIXED_IDX_MEMORY_MEMORIES_LANE_PROJECT, bn as CHUNKING_VERSION$1, br as experimentMmrDisabled, bt as FIXED_MEMORY_CHUNKS_AU, cn as SUPPORTED_LOCALES, cr as RECENCY_WEIGHT, ct as FIXED_IDX_MEMORY_MEMORIES_PROJECT_FACT_KEY_ACTIVE, d as getRemDiscoveryPath, dn as ADJACENCY_BONUS_PER_PAIR, dr as RERANK_BLEND_CROSS, dt as FIXED_MEMORY_ACTIVE_TASK_EVIDENCE, en as FIXED_VEC_MEMORY, er as MAX_LIST_LIMIT, et as FIXED_IDX_MEMORY_ACTIVE_TASK_EVIDENCE_INSTANCE, fr as RERANK_BLEND_VECTOR, ft as FIXED_MEMORY_ACTIVE_TASK_INSTANCES, g as readRemOperationalConfig, gt as FIXED_MEMORY_ACTIVE_TASK_TRANSITIONS, hr as TIME_DECAY_FLOOR, ht as FIXED_MEMORY_ACTIVE_TASK_REVISIONS, in as PERSISTED_CONTENT_HASH_V3, ir as MMR_LAMBDA, it as FIXED_IDX_MEMORY_MEMORIES_FACT_ID, jt as FIXED_MEMORY_PROVIDER_AGENT_MAPPINGS, k as MODEL_CALL_WORKLOAD, kt as FIXED_MEMORY_MIGRATION_MARKERS, lt as FIXED_IDX_MEMORY_MEMORIES_PROJECT_TIMESTAMP, mt as FIXED_MEMORY_ACTIVE_TASK_MIGRATION_MANIFESTS, nn as PERSISTED_CANDIDATE_HASH_V1, nt as FIXED_IDX_MEMORY_MEMORIES_CATEGORY, o as REM_RUN_PATH, or as MULTI_HIT_BONUS_PER_HIT, ot as FIXED_IDX_MEMORY_MEMORIES_PROJECT, pr as RETRIEVAL_STORAGE_CHUNK_PROFILE, pt as FIXED_MEMORY_ACTIVE_TASK_MIGRATION_EVIDENCE, q as FIXED_EXTERNAL_VALUE_57, qn as LIGHTWEIGHT_COSINE_WEIGHT, qt as FIXED_PROTOCOL_VALUE_73, r as REM_CORRELATION_ID_HEADER, rn as PERSISTED_CONTENT_HASH_V1, rt as FIXED_IDX_MEMORY_MEMORIES_CONTENT_HASH, s as REM_SIDECAR_HOST, sn as llmRoutingConfigSchema, st as FIXED_IDX_MEMORY_MEMORIES_PROJECT_CONTENT_HASH, tn as FIXED_VEC_MEMORY_CHUNKS, tt as FIXED_IDX_MEMORY_ACTIVE_TASK_INSTANCES_PROJECTION, un as ADJACENCY_BONUS_CAP, ut as FIXED_MEMORY, vn as BONUS_TOTAL_INVARIANT, vt as FIXED_MEMORY_CHUNKS_AD, wn as CHUNK_TARGET_TOKENS, wr as LOCAL_EMBEDDING_MODEL, wt as FIXED_MEMORY_CHUNKS_MEM_IDX, xn as CHUNK_MAX_TOKENS, xt as FIXED_MEMORY_CHUNKS_FTS, yn as CACHE_TTL_MS, yr as experimentCandidatePoolOverride, yt as FIXED_MEMORY_CHUNKS_AI, zt as FIXED_MEMORY_UNPLACED_CANDIDATES } from "./config-C1X5rsAx.js";
1
+ import { $ as FIXED_IDX_MEMORY_ACTIVE_TASK_CURRENT_REVISION, $n as MAX_CHUNK_FETCH_LIMIT, A as modelCallDestination, At as FIXED_MEMORY_PROFILE_RECOVERY_ENTRIES, B as FIXED_EXTERNAL_VALUE_49, C as getSnoStationMemStateDir, Cn as CHUNK_OVERLAP_TOKENS, Cr as LOCAL_EMBEDDING_CACHE_DIR_DEFAULT, Ct as FIXED_MEMORY_CHUNKS_MEM_FACET_IDX, D as settingsToPluginConfig, Dn as DEFAULT_IMPORTANCE, Dr as LocalReranker, Dt as FIXED_MEMORY_MEMORIES_FACT_ID_INSERT_GUARD, En as DEFAULT_BM25_WEIGHT, Er as LocalEmbedProvider, Et as FIXED_MEMORY_MEMORIES, Fn as EMBEDDER_DIM, G as FIXED_EXTERNAL_VALUE_55, H as FIXED_EXTERNAL_VALUE_52, Hn as HEAD_EXTRACT_OVERLAP_DROP_RATIO, In as EMBEDDER_MODEL_DEFAULT, Ir as REM_SIDECAR_TOKEN_HEADER, It as FIXED_MEMORY_SNO_EXTRACT_CHAT, J as FIXED_EXTERNAL_VALUE_58, Jn as LIGHTWEIGHT_FUSION_WEIGHT, K as FIXED_EXTERNAL_VALUE_56, Kn as INTRA_MEMORY_COSINE_THRESHOLD, Kt as FIXED_PROTOCOL_VALUE_69, Ln as EMBEDDER_PROVIDER_DEFAULT, Mn as DEFAULT_RERANK_TIMEOUT_MS, Mt as FIXED_MEMORY_PROVIDER_PROJECT_AGENTS, Nt as FIXED_MEMORY_PROVIDER_PROJECT_MAPPINGS, O as MODEL_CALLS, On as DEFAULT_RECALL_LIFECYCLE, Or as ensureModelDownloaded, Ot as FIXED_MEMORY_MEMORIES_FACT_ID_UPDATE_GUARD, P as observeAgentId, Pn as DEFAULT_VECTOR_WEIGHT, Q as FIXED_IDX_MEMORY, Rn as EVAL_QA_TRACES_FILENAME, Rt as FIXED_MEMORY_TASK_LIFECYCLE_COMMANDS, Sn as CHUNK_MIN_TOKENS, Sr as CachedEmbeddingProvider, St as FIXED_MEMORY_CHUNKS_MEMORY_ID_IDX, T as readSettings, Tn as CHUNK_TOKENIZER_MODE, Tt as FIXED_MEMORY_EXTRACTION_TIMESTAMPS, U as FIXED_EXTERNAL_VALUE_53, Un as HEAD_EXTRACT_TOKEN_BUDGET, V as FIXED_EXTERNAL_VALUE_51, Vn as HEAD_EXTRACT_MIN_CONTENT_TOKENS, W as FIXED_EXTERNAL_VALUE_54, Wn as IMPORTANCE_WEIGHT_BASE, X as FIXED_EXTERNAL_VALUE_8, Y as FIXED_EXTERNAL_VALUE_62, Yn as LIGHTWEIGHT_RERANK_PENALTY, Z as FIXED_EXTERNAL_VALUE_9, _t as FIXED_MEMORY_CHUNKS, a as REM_MODEL_OUTPUT_TOKEN_CAP, an as PERSISTED_PROVIDER_SYSTEM, ar as MULTI_HIT_BONUS_CAP, at as FIXED_IDX_MEMORY_MEMORIES_LANE_PROJECT, bn as CHUNKING_VERSION$1, br as experimentMmrDisabled, bt as FIXED_MEMORY_CHUNKS_AU, cn as SUPPORTED_LOCALES, cr as RECENCY_WEIGHT, ct as FIXED_IDX_MEMORY_MEMORIES_PROJECT_FACT_KEY_ACTIVE, d as getRemDiscoveryPath, dn as ADJACENCY_BONUS_PER_PAIR, dr as RERANK_BLEND_CROSS, dt as FIXED_MEMORY_ACTIVE_TASK_EVIDENCE, en as FIXED_VEC_MEMORY, er as MAX_LIST_LIMIT, et as FIXED_IDX_MEMORY_ACTIVE_TASK_EVIDENCE_INSTANCE, fr as RERANK_BLEND_VECTOR, ft as FIXED_MEMORY_ACTIVE_TASK_INSTANCES, g as readRemOperationalConfig, gt as FIXED_MEMORY_ACTIVE_TASK_TRANSITIONS, hr as TIME_DECAY_FLOOR, ht as FIXED_MEMORY_ACTIVE_TASK_REVISIONS, in as PERSISTED_CONTENT_HASH_V3, ir as MMR_LAMBDA, it as FIXED_IDX_MEMORY_MEMORIES_FACT_ID, jt as FIXED_MEMORY_PROVIDER_AGENT_MAPPINGS, k as MODEL_CALL_WORKLOAD, kt as FIXED_MEMORY_MIGRATION_MARKERS, lt as FIXED_IDX_MEMORY_MEMORIES_PROJECT_TIMESTAMP, mt as FIXED_MEMORY_ACTIVE_TASK_MIGRATION_MANIFESTS, nn as PERSISTED_CANDIDATE_HASH_V1, nt as FIXED_IDX_MEMORY_MEMORIES_CATEGORY, o as REM_RUN_PATH, or as MULTI_HIT_BONUS_PER_HIT, ot as FIXED_IDX_MEMORY_MEMORIES_PROJECT, pr as RETRIEVAL_STORAGE_CHUNK_PROFILE, pt as FIXED_MEMORY_ACTIVE_TASK_MIGRATION_EVIDENCE, q as FIXED_EXTERNAL_VALUE_57, qn as LIGHTWEIGHT_COSINE_WEIGHT, qt as FIXED_PROTOCOL_VALUE_73, r as REM_CORRELATION_ID_HEADER, rn as PERSISTED_CONTENT_HASH_V1, rt as FIXED_IDX_MEMORY_MEMORIES_CONTENT_HASH, s as REM_SIDECAR_HOST, sn as llmRoutingConfigSchema, st as FIXED_IDX_MEMORY_MEMORIES_PROJECT_CONTENT_HASH, tn as FIXED_VEC_MEMORY_CHUNKS, tt as FIXED_IDX_MEMORY_ACTIVE_TASK_INSTANCES_PROJECTION, un as ADJACENCY_BONUS_CAP, ut as FIXED_MEMORY, vn as BONUS_TOTAL_INVARIANT, vt as FIXED_MEMORY_CHUNKS_AD, wn as CHUNK_TARGET_TOKENS, wr as LOCAL_EMBEDDING_MODEL, wt as FIXED_MEMORY_CHUNKS_MEM_IDX, xn as CHUNK_MAX_TOKENS, xt as FIXED_MEMORY_CHUNKS_FTS, yn as CACHE_TTL_MS, yr as experimentCandidatePoolOverride, yt as FIXED_MEMORY_CHUNKS_AI, zt as FIXED_MEMORY_UNPLACED_CANDIDATES } from "./config-BhlMin82.js";
2
2
  import { createLogger, createLogger as createLogger$1, currentLogContext, privateLogReference, withLogContext } from "@snoai/utils/logger";
3
3
  import path, { dirname, join, resolve } from "node:path";
4
4
  import { appendFileSync, closeSync, createReadStream, existsSync, fstatSync, fsyncSync, ftruncateSync, mkdirSync, openSync, readFileSync, readSync, realpathSync, renameSync, rmSync, statSync, writeFileSync, writeSync } from "node:fs";
5
5
  import { arch, availableParallelism, platform } from "node:os";
6
6
  import { fileURLToPath } from "node:url";
7
+ import { createHash, createHmac, createPublicKey, randomUUID, randomUUID as randomUUID$1, timingSafeEqual, verify } from "node:crypto";
7
8
  import { LRUCache } from "lru-cache";
8
9
  import { z } from "zod";
9
10
  import { CHUNKING_VERSION, aggregateChunksToMemories, buildChunkId, buildDensePayload, chunk, chunk as chunk$1, countTokens, expandSnippetWindow, extractMetadataHeader, headExtract, shouldDropSummary } from "@snoai/chunking";
10
11
  import { AsyncLocalStorage } from "node:async_hooks";
11
- import { createHash, createHmac, createPublicKey, randomUUID, randomUUID as randomUUID$1, timingSafeEqual, verify } from "node:crypto";
12
12
  import { getDek, openEncryptedDb, openEncryptedDbReadonly } from "@snoai/sqlite-crypto";
13
13
  import { appendFile, mkdir, open, readFile, rename, rm } from "node:fs/promises";
14
14
  import { Temporal } from "@js-temporal/polyfill";
@@ -18209,6 +18209,15 @@ function loadStorageExtensions(sqlite) {
18209
18209
  loadSqliteVecExtension(sqlite.raw);
18210
18210
  loadSimpleTokenizer(sqlite.db);
18211
18211
  }
18212
+ /**
18213
+ * Startup invariant: the persisted DDL
18214
+ * for `nodix_memory_chunks_fts` must declare `tokenize='simple ...'`. Catches DBs
18215
+ * created against an older plugin build (still on `unicode61`) so a stale
18216
+ * DB plus a fresh plugin doesn't silently degrade CJK recall to char-level.
18217
+ *
18218
+ * Mirrors the regex pattern used by `parseVecTableDimension` for
18219
+ * `nodix_memory_chunk_vectors` — single SELECT against `sqlite_master`, regex match.
18220
+ */
18212
18221
  function ensureMemoryKindIndexes(db) {
18213
18222
  db.exec("CREATE INDEX IF NOT EXISTS nodix_idx_memories_project_fact_key_active ON nodix_memories(project_id, json_extract(metadata, '$.fact_key')) WHERE json_valid(metadata) AND json_extract(metadata, '$.fact_key') IS NOT NULL AND json_extract(metadata, '$.invalidated_at') IS NULL;");
18214
18223
  }
@@ -26400,6 +26409,7 @@ var Embedder = class {
26400
26409
  model;
26401
26410
  warmupPromise = null;
26402
26411
  modelDownload;
26412
+ reranker;
26403
26413
  /**
26404
26414
  * Initializes embedding generation collaborators while keeping runtime work in explicit
26405
26415
  * methods.
@@ -26417,6 +26427,12 @@ var Embedder = class {
26417
26427
  this.dimensions = inner.dimension;
26418
26428
  this.providerKind = providerKind;
26419
26429
  this.model = config.model && config.model.trim().length > 0 ? config.model : LOCAL_EMBEDDING_MODEL;
26430
+ this.reranker = new LocalReranker({
26431
+ cacheDir: resolveEmbeddingCacheDir(config),
26432
+ offline: config.offline === true,
26433
+ ...config.mirror ? { mirror: config.mirror } : {},
26434
+ intraOpNumThreads: config.sessionOptions?.intraOpNumThreads ?? Math.max(1, Math.min(4, Math.floor(availableParallelism() / 2)))
26435
+ });
26420
26436
  this.provider = new CachedEmbeddingProvider(inner, {
26421
26437
  maxSize: 256,
26422
26438
  ttlMs: CACHE_TTL_MS
@@ -26586,11 +26602,19 @@ var Embedder = class {
26586
26602
  });
26587
26603
  return this.warmupPromise;
26588
26604
  }
26605
+ /**
26606
+ * Local relevance scores (raw logits, higher is more relevant) for each text against the query, or undefined while
26607
+ * the local reranker is not loaded; the first call starts loading it in the background.
26608
+ */
26609
+ scoreRelevance(query, texts, signal) {
26610
+ return this.reranker.score(query, texts, signal);
26611
+ }
26589
26612
  /** Implements dispose as the local embedding generation operation. */
26590
26613
  async dispose() {
26591
26614
  const warmup = this.warmupPromise;
26592
26615
  if (warmup) await warmup.catch(() => void 0);
26593
26616
  await this.provider.dispose();
26617
+ await this.reranker.dispose();
26594
26618
  }
26595
26619
  };
26596
26620
  /** Creates the embedder facade around the local ONNX provider. */
@@ -27509,7 +27533,7 @@ Object.assign(MemoryRetriever.prototype, {
27509
27533
  rerankFallbackReason: rerankOutcome.fallback.reason
27510
27534
  } : rerankOutcome.stats;
27511
27535
  trace?.endStage(fused.map((r) => r.entry.id), fused.map((r) => r.score), rerankStageMetadata);
27512
- fused = this.applyScoringPipeline(fused, trace, context.limit);
27536
+ fused = this.applyScoringPipeline(fused, trace, context.limit, rerankOutcome.modelOrder);
27513
27537
  trace?.startStage("min_score_filter", fused.map((result) => result.entry.id));
27514
27538
  fused = fused.filter((result) => result.score >= (context.minScore ?? this.config.minScore));
27515
27539
  trace?.endStage(fused.map((result) => result.entry.id), fused.map((result) => result.score));
@@ -27723,7 +27747,7 @@ Object.assign(MemoryRetriever.prototype, {
27723
27747
  if (this.config.rerank === "none") return { candidates };
27724
27748
  const unranked = () => this.rerankLightweight(candidates, queryVector);
27725
27749
  if (this.config.rerank === "cross-encoder" && !this.config.rerankApiKey) throw new RetrievalError("rerank \"cross-encoder\" requires retrieval.rerankApiKey; set the key, or set retrieval.rerank to \"lightweight\" to choose the local ranker");
27726
- if (this.config.rerank === "lightweight" || !this.config.rerankApiKey) return { candidates: this.rerankLightweight(candidates, queryVector) };
27750
+ if (this.config.rerank === "lightweight" || !this.config.rerankApiKey) return await this.rerankLocalModel(query, this.rerankLightweight(candidates, queryVector), options?.deadlineAt, options?.signal);
27727
27751
  const rerankEndpoint = this.config.rerankEndpoint;
27728
27752
  if (!rerankEndpoint) {
27729
27753
  log$4.warn("rerank skipped: no reranker address", {}, {
@@ -27992,8 +28016,8 @@ Object.assign(MemoryRetriever.prototype, {
27992
28016
  if (candidates.length === 0) return candidates;
27993
28017
  const chunkIds = candidates.map((c) => c.chunkId).filter((id) => id !== void 0);
27994
28018
  const vectorMap = chunkIds.length > 0 ? this.store.getVectorsByIds(chunkIds) : /* @__PURE__ */ new Map();
27995
- const wF = this.config.lightweightFusionWeight ?? .7;
27996
- const wC = this.config.lightweightCosineWeight ?? .3;
28019
+ const wF = this.config.lightweightFusionWeight ?? .1;
28020
+ const wC = this.config.lightweightCosineWeight ?? .9;
27997
28021
  let blendedCount = 0;
27998
28022
  let dimMismatchCount = 0;
27999
28023
  const reranked = candidates.map((candidate) => {
@@ -28053,6 +28077,58 @@ Object.assign(MemoryRetriever.prototype, {
28053
28077
  return a.entry.id.localeCompare(b.entry.id);
28054
28078
  });
28055
28079
  },
28080
+ /**
28081
+ * The local reranker model reorders the first candidates of the local ranking. Their order is unchanged while the
28082
+ * model is not loaded yet (the first call starts loading it), past the caller's deadline, and after a cancel.
28083
+ */
28084
+ async rerankLocalModel(query, ordered, deadlineAt, signal) {
28085
+ if (ordered.length < 2 || signal?.aborted || deadlineAt !== void 0 && Date.now() >= deadlineAt) return { candidates: ordered };
28086
+ const head = ordered.slice(0, 15);
28087
+ const started = performance.now();
28088
+ const budgetMs = deadlineAt === void 0 ? this.config.rerankTimeoutMs ?? 15e3 : Math.max(0, Math.floor(deadlineAt - Date.now()));
28089
+ const stop = signal ? AbortSignal.any([signal, AbortSignal.timeout(budgetMs)]) : AbortSignal.timeout(budgetMs);
28090
+ const scoring = this.embedder.scoreRelevance(query, head.map((r) => r.entry.text), stop).catch((error) => {
28091
+ log$4.warn("local reranker failed; recall keeps the local ranking order", { error }, {
28092
+ event_name: "memory.retriever_rerank.diagnostic",
28093
+ file: "packages/memory/src/engine/retrieval/retriever-rerank.ts",
28094
+ function: "rerankLocalModel",
28095
+ site_id: "retrieval.retriever-rerank.rerankLocalModel.failed"
28096
+ });
28097
+ });
28098
+ const logits = await Promise.race([scoring, new Promise((resolve) => stop.addEventListener("abort", () => resolve(void 0), { once: true }))]);
28099
+ if (!logits || signal?.aborted) return { candidates: ordered };
28100
+ const blended = head.map((candidate, index) => ({
28101
+ candidate,
28102
+ value: logits[index] ?? Number.NEGATIVE_INFINITY
28103
+ }));
28104
+ blended.sort((a, b) => b.value - a.value || a.candidate.entry.id.localeCompare(b.candidate.entry.id));
28105
+ const slots = head.map((candidate) => candidate.score).sort((a, b) => b - a);
28106
+ const rescored = blended.map(({ candidate }, index) => {
28107
+ const score = slots[index] ?? candidate.score;
28108
+ return {
28109
+ ...candidate,
28110
+ score,
28111
+ rerankScore: score,
28112
+ sources: {
28113
+ ...candidate.sources,
28114
+ reranked: { score }
28115
+ }
28116
+ };
28117
+ });
28118
+ log$4.debug("local reranker applied", {
28119
+ scored: head.length,
28120
+ duration_ms: performance.now() - started
28121
+ }, {
28122
+ event_name: "memory.retriever_rerank.diagnostic",
28123
+ file: "packages/memory/src/engine/retrieval/retriever-rerank.ts",
28124
+ function: "rerankLocalModel",
28125
+ site_id: "retrieval.retriever-rerank.rerankLocalModel.applied"
28126
+ });
28127
+ return {
28128
+ candidates: [...rescored, ...ordered.slice(head.length)],
28129
+ modelOrder: blended.map(({ candidate }) => candidate.entry.id)
28130
+ };
28131
+ },
28056
28132
  getRerankSourceScore(result) {
28057
28133
  return clamp01(Math.max(result.sources.bm25?.score ?? 0, result.sources.vector?.score ?? 0), 0);
28058
28134
  }
@@ -28244,8 +28320,21 @@ function tracedStage(trace, name, skipReason, run, input) {
28244
28320
  trace.endStage(output.map((result) => result.entry.id), output.map((result) => result.score), skipReason === void 0 ? void 0 : { skipped: skipReason });
28245
28321
  return output;
28246
28322
  }
28323
+ /** The candidates the local reranker model scored take their own scores, highest first, in its order. */
28324
+ function orderByLocalModel(results, modelOrder) {
28325
+ const present = new Set(results.map((result) => result.entry.id));
28326
+ const order = modelOrder.filter((id) => present.has(id));
28327
+ if (order.length < 2) return results;
28328
+ const judged = new Set(order);
28329
+ const slots = results.filter((result) => judged.has(result.entry.id)).map((result) => result.score).sort((a, b) => b - a);
28330
+ const scores = new Map(order.map((id, index) => [id, slots[index] ?? 0]));
28331
+ return results.map((result) => ({
28332
+ ...result,
28333
+ score: scores.get(result.entry.id) ?? result.score
28334
+ })).sort((a, b) => b.score - a.score);
28335
+ }
28247
28336
  Object.assign(MemoryRetriever.prototype, {
28248
- applyScoringPipeline(results, trace, limit = results.length) {
28337
+ applyScoringPipeline(results, trace, limit = results.length, modelOrder) {
28249
28338
  const stage = (name, skipReason, run, input) => tracedStage(trace, name, skipReason, run, input);
28250
28339
  const temporalOff = !this.config.temporalWeighting;
28251
28340
  let scored = stage("recency_boost", temporalOff ? "temporalWeighting" : this.config.recencyHalfLifeDays <= 0 ? "recencyHalfLifeDays" : this.config.recencyWeight <= 0 ? "recencyWeight" : void 0, (input) => temporalOff ? input : this.applyRecencyBoost(input), results);
@@ -28253,6 +28342,7 @@ Object.assign(MemoryRetriever.prototype, {
28253
28342
  scored = stage("length_normalization", this.config.lengthNormAnchor <= 0 ? "lengthNormAnchor" : void 0, (input) => this.applyLengthNormalization(input), scored);
28254
28343
  scored = stage("time_decay", temporalOff ? "temporalWeighting" : this.config.timeDecayHalfLifeDays <= 0 ? "timeDecayHalfLifeDays" : void 0, (input) => temporalOff ? input : this.applyTimeDecay(input), scored);
28255
28344
  scored = stage("retention_boost", temporalOff ? "temporalWeighting" : this.config.recallLifecycle?.retentionScorer === true ? void 0 : "recallLifecycle.retentionScorer", (input) => temporalOff ? input : this.applyRetentionBoost(input), scored);
28345
+ scored = stage("local_model_order", modelOrder ? void 0 : "modelOrder", (input) => modelOrder ? orderByLocalModel(input, modelOrder) : input, scored);
28256
28346
  scored = stage("hard_min_score", void 0, (input) => input.filter((result) => result.score >= this.config.hardMinScore), scored);
28257
28347
  const mmrOff = experimentMmrDisabled();
28258
28348
  scored = stage("mmr_diversity", mmrOff ? "experiment.disableMmr" : void 0, (input) => {
@@ -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-Dm_XhSne.js";
2
- import { on as RecallLifecycleConfig } from "./index-8CfO_-6T.js";
3
- import { t as Embedder } from "./embedding-provider-client-vynZMuit.js";
1
+ import { h as MemoryCategory, l as DecayScore, r as AggregationQuery, u as DecayableMemory, x as RetrievalResult, y as MemorySearchResult } from "./types-C9Hngi-p.js";
2
+ import { sn as RecallLifecycleConfig } from "./index-BGu91bjB.js";
3
+ import { t as Embedder } from "./embedding-provider-client-CELWtPgt.js";
4
4
  import "./trace-C1JxMfs-.js";
5
- import "./memory-metadata-codec-CFY8YtXf.js";
5
+ import "./memory-metadata-codec-CLtCCf-b.js";
6
6
  import { K as RemFacetPolicy } from "./index-DPfJrOFD.js";
7
- import { C as MemoryStore } from "./memory-store-base-D0bLwzyF.js";
8
- import "./store-HyzTUvwj.js";
9
- import { n as AccessTracker } from "./access-tracker-DT04huAG.js";
10
- import { r as TierPromoter } from "./memory-tier-promoter-Cf1OdoZK.js";
7
+ import { C as MemoryStore } from "./memory-store-base-yOAD7Ff8.js";
8
+ import "./store-CukgAPqu.js";
9
+ import { n as AccessTracker } from "./access-tracker-D-riPZRY.js";
10
+ import { r as TierPromoter } from "./memory-tier-promoter-DjJwYB4w.js";
11
11
  import "@snoai/utils/logger";
12
12
  //#region src/engine/retrieval/retrieval-trace.d.ts
13
13
  /** @file retrieval-trace.ts
@@ -369,6 +369,8 @@ interface RerankFallbackSignal {
369
369
  }
370
370
  interface RerankOutcome {
371
371
  candidates: RetrievalResult[];
372
+ /** Ids of the candidates the local reranker model scored, in its order; the scoring pipeline restores it last. */
373
+ modelOrder?: string[];
372
374
  fallback?: RerankFallbackSignal;
373
375
  stats?: {
374
376
  rerankSentCount: number;
@@ -449,8 +451,9 @@ interface MemoryRetrieverInternals {
449
451
  deadlineAt?: number;
450
452
  }): Promise<RerankOutcome>;
451
453
  rerankLightweight(candidates: RetrievalResult[], queryVector: Float32Array): RetrievalResult[];
454
+ rerankLocalModel(query: string, ordered: RetrievalResult[], deadlineAt?: number, signal?: AbortSignal): Promise<RerankOutcome>;
452
455
  getRerankSourceScore(result: RetrievalResult): number;
453
- applyScoringPipeline(results: RetrievalResult[], trace?: TraceCollector, limit?: number): RetrievalResult[];
456
+ applyScoringPipeline(results: RetrievalResult[], trace?: TraceCollector, limit?: number, modelOrder?: readonly string[]): RetrievalResult[];
454
457
  applyRecencyBoost(results: RetrievalResult[]): RetrievalResult[];
455
458
  applyImportanceWeight(results: RetrievalResult[]): RetrievalResult[];
456
459
  applyLengthNormalization(results: RetrievalResult[]): RetrievalResult[];
@@ -552,7 +552,7 @@ Object.assign(MemoryRetriever.prototype, {
552
552
  rerankFallbackReason: rerankOutcome.fallback.reason
553
553
  } : rerankOutcome.stats;
554
554
  trace?.endStage(fused.map((r) => r.entry.id), fused.map((r) => r.score), rerankStageMetadata);
555
- fused = this.applyScoringPipeline(fused, trace, context.limit);
555
+ fused = this.applyScoringPipeline(fused, trace, context.limit, rerankOutcome.modelOrder);
556
556
  trace?.startStage("min_score_filter", fused.map((result) => result.entry.id));
557
557
  fused = fused.filter((result) => result.score >= (context.minScore ?? this.config.minScore));
558
558
  trace?.endStage(fused.map((result) => result.entry.id), fused.map((result) => result.score));
@@ -766,7 +766,7 @@ Object.assign(MemoryRetriever.prototype, {
766
766
  if (this.config.rerank === "none") return { candidates };
767
767
  const unranked = () => this.rerankLightweight(candidates, queryVector);
768
768
  if (this.config.rerank === "cross-encoder" && !this.config.rerankApiKey) throw new RetrievalError("rerank \"cross-encoder\" requires retrieval.rerankApiKey; set the key, or set retrieval.rerank to \"lightweight\" to choose the local ranker");
769
- if (this.config.rerank === "lightweight" || !this.config.rerankApiKey) return { candidates: this.rerankLightweight(candidates, queryVector) };
769
+ if (this.config.rerank === "lightweight" || !this.config.rerankApiKey) return await this.rerankLocalModel(query, this.rerankLightweight(candidates, queryVector), options?.deadlineAt, options?.signal);
770
770
  const rerankEndpoint = this.config.rerankEndpoint;
771
771
  if (!rerankEndpoint) {
772
772
  log.warn("rerank skipped: no reranker address", {}, {
@@ -1036,8 +1036,8 @@ Object.assign(MemoryRetriever.prototype, {
1036
1036
  if (candidates.length === 0) return candidates;
1037
1037
  const chunkIds = candidates.map((c) => c.chunkId).filter((id) => id !== void 0);
1038
1038
  const vectorMap = chunkIds.length > 0 ? this.store.getVectorsByIds(chunkIds) : /* @__PURE__ */ new Map();
1039
- const wF = this.config.lightweightFusionWeight ?? .7;
1040
- const wC = this.config.lightweightCosineWeight ?? .3;
1039
+ const wF = this.config.lightweightFusionWeight ?? .1;
1040
+ const wC = this.config.lightweightCosineWeight ?? .9;
1041
1041
  let blendedCount = 0;
1042
1042
  let dimMismatchCount = 0;
1043
1043
  const reranked = candidates.map((candidate) => {
@@ -1098,6 +1098,58 @@ Object.assign(MemoryRetriever.prototype, {
1098
1098
  return a.entry.id.localeCompare(b.entry.id);
1099
1099
  });
1100
1100
  },
1101
+ /**
1102
+ * The local reranker model reorders the first candidates of the local ranking. Their order is unchanged while the
1103
+ * model is not loaded yet (the first call starts loading it), past the caller's deadline, and after a cancel.
1104
+ */
1105
+ async rerankLocalModel(query, ordered, deadlineAt, signal) {
1106
+ if (ordered.length < 2 || signal?.aborted || deadlineAt !== void 0 && Date.now() >= deadlineAt) return { candidates: ordered };
1107
+ const head = ordered.slice(0, 15);
1108
+ const started = performance.now();
1109
+ const budgetMs = deadlineAt === void 0 ? this.config.rerankTimeoutMs ?? 15e3 : Math.max(0, Math.floor(deadlineAt - Date.now()));
1110
+ const stop = signal ? AbortSignal.any([signal, AbortSignal.timeout(budgetMs)]) : AbortSignal.timeout(budgetMs);
1111
+ const scoring = this.embedder.scoreRelevance(query, head.map((r) => r.entry.text), stop).catch((error) => {
1112
+ log.warn("local reranker failed; recall keeps the local ranking order", { error }, {
1113
+ event_name: "memory.retriever_rerank.diagnostic",
1114
+ file: "packages/memory/src/engine/retrieval/retriever-rerank.ts",
1115
+ function: "rerankLocalModel",
1116
+ site_id: "retrieval.retriever-rerank.rerankLocalModel.failed"
1117
+ });
1118
+ });
1119
+ const logits = await Promise.race([scoring, new Promise((resolve) => stop.addEventListener("abort", () => resolve(void 0), { once: true }))]);
1120
+ if (!logits || signal?.aborted) return { candidates: ordered };
1121
+ const blended = head.map((candidate, index) => ({
1122
+ candidate,
1123
+ value: logits[index] ?? Number.NEGATIVE_INFINITY
1124
+ }));
1125
+ blended.sort((a, b) => b.value - a.value || a.candidate.entry.id.localeCompare(b.candidate.entry.id));
1126
+ const slots = head.map((candidate) => candidate.score).sort((a, b) => b - a);
1127
+ const rescored = blended.map(({ candidate }, index) => {
1128
+ const score = slots[index] ?? candidate.score;
1129
+ return {
1130
+ ...candidate,
1131
+ score,
1132
+ rerankScore: score,
1133
+ sources: {
1134
+ ...candidate.sources,
1135
+ reranked: { score }
1136
+ }
1137
+ };
1138
+ });
1139
+ log.debug("local reranker applied", {
1140
+ scored: head.length,
1141
+ duration_ms: performance.now() - started
1142
+ }, {
1143
+ event_name: "memory.retriever_rerank.diagnostic",
1144
+ file: "packages/memory/src/engine/retrieval/retriever-rerank.ts",
1145
+ function: "rerankLocalModel",
1146
+ site_id: "retrieval.retriever-rerank.rerankLocalModel.applied"
1147
+ });
1148
+ return {
1149
+ candidates: [...rescored, ...ordered.slice(head.length)],
1150
+ modelOrder: blended.map(({ candidate }) => candidate.entry.id)
1151
+ };
1152
+ },
1101
1153
  getRerankSourceScore(result) {
1102
1154
  return clamp01(Math.max(result.sources.bm25?.score ?? 0, result.sources.vector?.score ?? 0), 0);
1103
1155
  }
@@ -1289,8 +1341,21 @@ function tracedStage(trace, name, skipReason, run, input) {
1289
1341
  trace.endStage(output.map((result) => result.entry.id), output.map((result) => result.score), skipReason === void 0 ? void 0 : { skipped: skipReason });
1290
1342
  return output;
1291
1343
  }
1344
+ /** The candidates the local reranker model scored take their own scores, highest first, in its order. */
1345
+ function orderByLocalModel(results, modelOrder) {
1346
+ const present = new Set(results.map((result) => result.entry.id));
1347
+ const order = modelOrder.filter((id) => present.has(id));
1348
+ if (order.length < 2) return results;
1349
+ const judged = new Set(order);
1350
+ const slots = results.filter((result) => judged.has(result.entry.id)).map((result) => result.score).sort((a, b) => b - a);
1351
+ const scores = new Map(order.map((id, index) => [id, slots[index] ?? 0]));
1352
+ return results.map((result) => ({
1353
+ ...result,
1354
+ score: scores.get(result.entry.id) ?? result.score
1355
+ })).sort((a, b) => b.score - a.score);
1356
+ }
1292
1357
  Object.assign(MemoryRetriever.prototype, {
1293
- applyScoringPipeline(results, trace, limit = results.length) {
1358
+ applyScoringPipeline(results, trace, limit = results.length, modelOrder) {
1294
1359
  const stage = (name, skipReason, run, input) => tracedStage(trace, name, skipReason, run, input);
1295
1360
  const temporalOff = !this.config.temporalWeighting;
1296
1361
  let scored = stage("recency_boost", temporalOff ? "temporalWeighting" : this.config.recencyHalfLifeDays <= 0 ? "recencyHalfLifeDays" : this.config.recencyWeight <= 0 ? "recencyWeight" : void 0, (input) => temporalOff ? input : this.applyRecencyBoost(input), results);
@@ -1298,6 +1363,7 @@ Object.assign(MemoryRetriever.prototype, {
1298
1363
  scored = stage("length_normalization", this.config.lengthNormAnchor <= 0 ? "lengthNormAnchor" : void 0, (input) => this.applyLengthNormalization(input), scored);
1299
1364
  scored = stage("time_decay", temporalOff ? "temporalWeighting" : this.config.timeDecayHalfLifeDays <= 0 ? "timeDecayHalfLifeDays" : void 0, (input) => temporalOff ? input : this.applyTimeDecay(input), scored);
1300
1365
  scored = stage("retention_boost", temporalOff ? "temporalWeighting" : this.config.recallLifecycle?.retentionScorer === true ? void 0 : "recallLifecycle.retentionScorer", (input) => temporalOff ? input : this.applyRetentionBoost(input), scored);
1366
+ scored = stage("local_model_order", modelOrder ? void 0 : "modelOrder", (input) => modelOrder ? orderByLocalModel(input, modelOrder) : input, scored);
1301
1367
  scored = stage("hard_min_score", void 0, (input) => input.filter((result) => result.score >= this.config.hardMinScore), scored);
1302
1368
  const mmrOff = experimentMmrDisabled();
1303
1369
  scored = stage("mmr_diversity", mmrOff ? "experiment.disableMmr" : void 0, (input) => {
@@ -1,4 +1,4 @@
1
- import "./paths-DnNN0G1t.js";
1
+ import "./paths-m8yncZgm.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,16 +1,16 @@
1
- import { At as getAuditPath, Dt as appendAuditEntryStrict, K as REM_BUILT_OPERATION_TYPES, Ot as compactAuditLog, Pt as readJsonlLines, bt as ModelCallRefusedError, d as RemJobStore, f as parseRemJobStats, n as remNeedsHost, q as parseRemOperationType } from "./rem-trigger-i_E8I9lv.js";
2
- import { Ar as MEMORY_DEFAULT_SKIN_ID, C as getSnoStationMemStateDir, Ir as memoryMethod, Nr as MEMORY_ROUTES, Pr as MEMORY_SKIN_HEADER, 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, jr as MEMORY_ERROR_STATUS, 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-C1X5rsAx.js";
1
+ import { At as getAuditPath, Dt as appendAuditEntryStrict, K as REM_BUILT_OPERATION_TYPES, Ot as compactAuditLog, Pt as readJsonlLines, bt as ModelCallRefusedError, d as RemJobStore, f as parseRemJobStats, n as remNeedsHost, q as parseRemOperationType } from "./rem-trigger-BKr4Qmhn.js";
2
+ import { C as getSnoStationMemStateDir, Fr as MEMORY_SKIN_HEADER, Lr as memoryMethod, Mr as MEMORY_ERROR_STATUS, Pr as MEMORY_ROUTES, 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, jr as MEMORY_DEFAULT_SKIN_ID, 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-BhlMin82.js";
3
3
  import { t as ContractError } from "./error-D-wb-rZw.js";
4
4
  import { setImmediate } from "node:timers/promises";
5
5
  import { createLogger, currentLogContext, effectiveLogLevel, emitDiagnostic } from "@snoai/utils/logger";
6
6
  import path from "node:path";
7
7
  import { constants, existsSync, readFileSync, rmSync } from "node:fs";
8
- import { z } from "zod";
9
8
  import { randomBytes, randomUUID } from "node:crypto";
9
+ import { createServer } from "node:http";
10
+ import { z } from "zod";
10
11
  import { mkdir, open, readFile, rename, rm } from "node:fs/promises";
11
12
  import { withLogContext as withLogContext$1 } from "@snoai/utils/log-context";
12
- import { createConnection, createServer } from "node:net";
13
- import { createServer as createServer$1 } from "node:http";
13
+ import { createConnection, createServer as createServer$1 } from "node:net";
14
14
  import { tryLock } from "fs-native-extensions";
15
15
  //#region src/contract/discovery.ts
16
16
  const discoverySchema = z.strictObject({
@@ -268,7 +268,7 @@ async function bindSidecarSocket() {
268
268
  const lock = await open(`${socketPath}.lock`, constants.O_RDWR | constants.O_CREAT | constants.O_NOFOLLOW, 384);
269
269
  try {
270
270
  while (!tryLock(lock.fd)) await setImmediate();
271
- const guard = createServer((socket) => socket.destroy());
271
+ const guard = createServer$1((socket) => socket.destroy());
272
272
  for (;;) try {
273
273
  await new Promise((resolve, reject) => {
274
274
  guard.once("error", reject);
@@ -335,7 +335,7 @@ async function startOwnedRemSidecar() {
335
335
  async open() {
336
336
  if (currentMemory) return currentMemory;
337
337
  if (settingsError) throw settingsError;
338
- openingMemory ??= import("./memory-runtime-CCPRiAk9.js").then((module) => module.MemoryRuntimePool.open()).then((pool) => {
338
+ openingMemory ??= import("./memory-runtime-De1T9jTv.js").then((module) => module.MemoryRuntimePool.open()).then((pool) => {
339
339
  currentMemory = pool;
340
340
  if (stopping) pool.stopTimers();
341
341
  return pool;
@@ -372,7 +372,7 @@ async function startOwnedRemSidecar() {
372
372
  };
373
373
  const activeTasks = /* @__PURE__ */ new Set();
374
374
  const pendingRequests = /* @__PURE__ */ new Set();
375
- const server = createServer$1((request, response) => {
375
+ const server = createServer((request, response) => {
376
376
  const started = performance.now();
377
377
  const operationId = `rem-http-${randomUUID()}`;
378
378
  const context = {};
@@ -730,7 +730,7 @@ async function runChassisJob(store, journal, waveId, holdMs, runtime) {
730
730
  cleanRefusalReasons.push(reason);
731
731
  await appendChassisRefusal(journal, queued, operation, "refused", reason);
732
732
  }
733
- const { runRemProductionOrderedWave } = await import("./rem-batch-executor-TSYG7oVi.js");
733
+ const { runRemProductionOrderedWave } = await import("./rem-batch-executor-D42YWCNg.js");
734
734
  const result = enabledOperations.length === 0 ? {
735
735
  decision: "allow",
736
736
  reasonCode: null,
@@ -1,4 +1,4 @@
1
- import { Mr as MEMORY_RECONNECT_INTERVAL_MS, m as isRemTraceEnabled, p as getRemTraceLogPath, v as SettingsUnavailableError } from "../config-C1X5rsAx.js";
1
+ import { Nr as MEMORY_RECONNECT_INTERVAL_MS, m as isRemTraceEnabled, p as getRemTraceLogPath, v as SettingsUnavailableError } from "../config-BhlMin82.js";
2
2
  import { setTimeout } from "node:timers/promises";
3
3
  import { addLogFileTarget, closeLogger, createLogger } from "@snoai/utils/logger";
4
4
  //#region src/sidecar/main.ts
@@ -6,7 +6,7 @@ import { addLogFileTarget, closeLogger, createLogger } from "@snoai/utils/logger
6
6
  * @purpose Boots the standalone local REM sidecar process.
7
7
  * @boundary Process environment, sidecar lifecycle, and local request-log destination.
8
8
  */
9
- const { startRemSidecar, DuplicateSidecarError } = await import("../server-DsaVeSaM.js");
9
+ const { startRemSidecar, DuplicateSidecarError } = await import("../server-BPOT66a_.js");
10
10
  let sidecar;
11
11
  for (let attempt = 1; !sidecar; attempt++) try {
12
12
  sidecar = await startRemSidecar();
@@ -0,0 +1,31 @@
1
+ import "./types-C9Hngi-p.js";
2
+ import "./index-BGu91bjB.js";
3
+ import "./adapter-BM58hult.js";
4
+ import "./embedding-provider-client-CELWtPgt.js";
5
+ import "./retriever-BsjtyINJ.js";
6
+ import "./connection-D989FqGS.js";
7
+ import "./sqlite-runtime-L_ywirTm.js";
8
+ import "./store-CukgAPqu.js";
9
+ import "./access-tracker-D-riPZRY.js";
10
+ import "./memory-tier-promoter-DjJwYB4w.js";
11
+ import "./capture-policy-detector-CoT-j_Ic.js";
12
+ import "./memory-temporality-classifier-BxmM3FOb.js";
13
+ import "./runtime-audit-log-C-L0v2HU.js";
14
+ import "./atomic-memory-extraction-BNBCB1XD.js";
15
+ import "./llm-client-9XCsnmf0.js";
16
+ import "./memory-snapshot-BXB2APN0.js";
17
+ import "./observable-embedder-DCtHXucw.js";
18
+ import "./observable-llm-client-DykY0exK.js";
19
+ import "./observable-memory-store-ZBTjMAHj.js";
20
+ import "./observable-retriever-f8ENkQnP.js";
21
+ import "./reflection-embedded-generator-LmZQqGER.js";
22
+ import "./strategy-hook-runner-BlJxjMjC.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 };