@snoai/memory 1.2.13 → 1.2.14

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 (147) hide show
  1. package/README.md +1 -1
  2. package/dist/{access-tracker-CglGg8uS.d.ts → access-tracker-DT04huAG.d.ts} +4 -4
  3. package/dist/{adapter-Cxyzdq6H.d.ts → adapter-BMx-VcJy.d.ts} +2 -2
  4. package/dist/{agent-llm-port-DY2290EK.d.ts → agent-llm-port-BlFrD2ro.d.ts} +5 -0
  5. package/dist/{atomic-memory-extraction-DWhlXJT6.js → atomic-memory-extraction-De86y7O-.js} +4 -4
  6. package/dist/{atomic-memory-extraction-DO4yTfch.d.ts → atomic-memory-extraction-_OEsSJbC.d.ts} +4 -4
  7. package/dist/{b-profile-section-dictionary-provider-BkUdS1SY.d.ts → b-profile-section-dictionary-provider-DTE4uWyh.d.ts} +1 -1
  8. package/dist/{capture-policy-detector-C7MA4jSr.d.ts → capture-policy-detector-B8sqRTlB.d.ts} +1 -1
  9. package/dist/client.d.ts +1 -1
  10. package/dist/{config-D_KOwEyg.js → config-C1X5rsAx.js} +6 -52
  11. package/dist/{derived-suppression-cache-CmS4xAaN.d.ts → derived-suppression-cache-Cha_e2Cr.d.ts} +1 -1
  12. package/dist/diagnostic-encoder.js +1 -1
  13. package/dist/{index-Pb9LrHgL.d.ts → index-8CfO_-6T.d.ts} +7 -16
  14. package/dist/{index-CTi1R9T4.d.ts → index-C8tTzfrH.d.ts} +2 -2
  15. package/dist/index.d.ts +10 -10
  16. package/dist/index.js +5 -5
  17. package/dist/internal/config/index.d.ts +2 -2
  18. package/dist/internal/config/index.js +7 -16
  19. package/dist/internal/config/plugin-config-schema.d.ts +1 -1
  20. package/dist/internal/config/plugin-config-schema.js +1 -1
  21. package/dist/internal/config/product-mode.d.ts +1 -1
  22. package/dist/internal/config/settings.d.ts +1 -1
  23. package/dist/internal/config/settings.js +3 -30
  24. package/dist/internal/config/skin-defaults.d.ts +1 -1
  25. package/dist/internal/contract/profile.d.ts +1 -1
  26. package/dist/internal/contract/routes.d.ts +1 -1
  27. package/dist/internal/engine/bindings/memory-cli-shared.d.ts +4 -4
  28. package/dist/internal/engine/bindings/memory-forget-tool.js +1 -1
  29. package/dist/internal/engine/bindings/memory-list-tool.js +1 -1
  30. package/dist/internal/engine/bindings/memory-recall-tool.js +1 -1
  31. package/dist/internal/engine/bindings/memory-reflection-resolve-tool.js +1 -1
  32. package/dist/internal/engine/bindings/memory-stats-tool.js +1 -1
  33. package/dist/internal/engine/bindings/memory-store-tool.js +3 -3
  34. package/dist/internal/engine/bindings/memory-tool-access.d.ts +1 -1
  35. package/dist/internal/engine/bindings/memory-tool-access.js +1 -1
  36. package/dist/internal/engine/bindings/memory-tool-results.d.ts +1 -1
  37. package/dist/internal/engine/bindings/memory-tool-results.js +1 -1
  38. package/dist/internal/engine/bindings/memory-tool-schemas.d.ts +5 -5
  39. package/dist/internal/engine/bindings/memory-tool-schemas.js +1 -1
  40. package/dist/internal/engine/bindings/memory-update-tool.js +2 -2
  41. package/dist/internal/engine/bindings/sno-station-mem-ambient-learning-hook.d.ts +4 -4
  42. package/dist/internal/engine/bindings/sno-station-mem-ambient-learning-hook.js +2 -2
  43. package/dist/internal/engine/bindings/sno-station-mem-auto-recall-hook.d.ts +4 -4
  44. package/dist/internal/engine/bindings/sno-station-mem-auto-recall-hook.js +1 -1
  45. package/dist/internal/engine/bindings/sno-station-mem-insight-distill-factory.d.ts +6 -6
  46. package/dist/internal/engine/bindings/sno-station-mem-insight-distill-factory.js +2 -2
  47. package/dist/internal/engine/bindings/sno-station-mem-message-transcript.js +2 -2
  48. package/dist/internal/engine/bindings/sno-station-mem-reset-hook.d.ts +3 -3
  49. package/dist/internal/engine/bindings/sno-station-mem-runtime-mode.d.ts +1 -1
  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 +1 -1
  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/agent-llm-port.d.ts +1 -1
  92. package/dist/internal/model/llm-client.d.ts +2 -2
  93. package/dist/internal/model/llm-client.js +1 -1
  94. package/dist/internal/model/llm-mode-routing.d.ts +1 -1
  95. package/dist/internal/store/maintenance.d.ts +2 -2
  96. package/dist/internal/store/maintenance.js +3 -3
  97. package/dist/internal/store/store.d.ts +2 -2
  98. package/dist/internal/store/store.js +1 -1
  99. package/dist/{llm-client-B7LSFL_m.d.ts → llm-client-BoClMktv.d.ts} +1 -1
  100. package/dist/{llm-client-C7yyFWu-.js → llm-client-DDdUjYWS.js} +10 -3
  101. package/dist/{log-site-catalog.generated-BODn_6Kx.js → log-site-catalog.generated-DGia_6ZR.js} +66 -59
  102. package/dist/log-site-catalog.json +1 -1
  103. package/dist/{memory-kind-policy-B4IBMAlv.d.ts → memory-kind-policy-C7p4o8ru.d.ts} +1 -1
  104. package/dist/{memory-metadata-codec-BQ8tBY-g.d.ts → memory-metadata-codec-CFY8YtXf.d.ts} +1 -1
  105. package/dist/{memory-runtime-4iOpeP09.js → memory-runtime-CCPRiAk9.js} +89 -63
  106. package/dist/{memory-snapshot-B8mQbWR-.d.ts → memory-snapshot-DADY3InD.d.ts} +2 -2
  107. package/dist/{memory-store-base-CTAMKigD.d.ts → memory-store-base-D0bLwzyF.d.ts} +3 -3
  108. package/dist/{memory-temporality-classifier-epuZlfXa.js → memory-temporality-classifier-BwBKEQbL.js} +1 -1
  109. package/dist/{memory-temporality-classifier-LByFBiFJ.d.ts → memory-temporality-classifier-DL14kjtv.d.ts} +1 -1
  110. package/dist/{memory-tier-promoter-CSGa4LBH.d.ts → memory-tier-promoter-Cf1OdoZK.d.ts} +1 -1
  111. package/dist/memory-tool-dependencies-Bxdpvs3Z.d.ts +14 -0
  112. package/dist/{memory-tool-dependencies-xLaWzwpI.js → memory-tool-dependencies-aAr7Pkuj.js} +1 -1
  113. package/dist/{observable-embedder-Da0teBqx.d.ts → observable-embedder-CPyX9y7c.d.ts} +1 -1
  114. package/dist/{observable-llm-client-i0sp0veF.d.ts → observable-llm-client-C8ndPJck.d.ts} +3 -3
  115. package/dist/{observable-memory-store-CS87pitJ.d.ts → observable-memory-store-DhOfgjkU.d.ts} +4 -4
  116. package/dist/{observable-retriever-Bhfg9DsZ.d.ts → observable-retriever-CUlmCFy5.d.ts} +5 -5
  117. package/dist/paths-DnNN0G1t.d.ts +1 -0
  118. package/dist/{plugin-config-schema-CcEeAEdi.d.ts → plugin-config-schema-BPg-ppSt.d.ts} +2 -8
  119. package/dist/{plugin-config-schema-CvAGFPyE.js → plugin-config-schema-D9riSXDg.js} +3 -20
  120. package/dist/{profile-BMvnRqf5.d.ts → profile-BksZRjJ8.d.ts} +1 -1
  121. package/dist/{profile-section-writer-DeD9GPQJ.js → profile-section-writer-Dd4FKpt5.js} +2 -2
  122. package/dist/{reflection-command-hooks-S5L6ZWeh.js → reflection-command-hooks-B2P4zDr6.js} +3 -3
  123. package/dist/{reflection-command-hooks-CFXyoVvE.d.ts → reflection-command-hooks-mCOmD8b6.d.ts} +4 -4
  124. package/dist/{reflection-deps-BPMrDU0a.d.ts → reflection-deps-BYkAaKxD.d.ts} +3 -3
  125. package/dist/{reflection-embedded-generator-nmVrj4AZ.js → reflection-embedded-generator-DV-NkeU-.js} +1 -1
  126. package/dist/{reflection-embedded-generator-CF-NbuPS.d.ts → reflection-embedded-generator-ve1PhgUY.d.ts} +4 -4
  127. package/dist/{reflection-injection-hooks-BRIr3lJM.d.ts → reflection-injection-hooks-CphBCA9F.d.ts} +4 -4
  128. package/dist/{reflection-lifecycle-hooks-Ci8y4qHk.d.ts → reflection-lifecycle-hooks-CFGYh_8m.d.ts} +3 -3
  129. package/dist/{rem-batch-executor-CfWChDAk.js → rem-batch-executor-TSYG7oVi.js} +1 -1
  130. package/dist/{rem-trigger-B1P5_RqV.js → rem-trigger-i_E8I9lv.js} +93 -154
  131. package/dist/{retriever-DdikFSDC.d.ts → retriever-6ybsoVuY.d.ts} +14 -24
  132. package/dist/{retriever-CpyZs2ND.js → retriever-Dnjl_FHu.js} +87 -157
  133. package/dist/{runtime-audit-log-BVOxzkh7.d.ts → runtime-audit-log-DWpWmCx5.d.ts} +1 -1
  134. package/dist/{server-DOL3D6bb.js → server-DsaVeSaM.js} +4 -4
  135. package/dist/sidecar/main.js +2 -2
  136. package/dist/sno-station-mem-runtime-dependencies-DtKDYdsh.d.ts +31 -0
  137. package/dist/{sno-station-mem-runtime-dependencies-DZe3z4RY.js → sno-station-mem-runtime-dependencies-zzcjHD_N.js} +6 -6
  138. package/dist/{store-DY_rWx__.js → store-COwW7mIh.js} +1 -1
  139. package/dist/{store-DraRJ-HI.d.ts → store-HyzTUvwj.d.ts} +1 -1
  140. package/dist/{strategy-hook-runner-DH7OEQrH.d.ts → strategy-hook-runner-B_m1L5CB.d.ts} +7 -7
  141. package/dist/{strategy-hook-runner-CltVTtzk.js → strategy-hook-runner-CALbWcys.js} +1 -1
  142. package/dist/{types-DZGL4QXi.d.ts → types-Dm_XhSne.d.ts} +1 -1
  143. package/package.json +1 -1
  144. package/settings.default.json +0 -4
  145. package/dist/memory-tool-dependencies-Bl11T6Xm.d.ts +0 -14
  146. package/dist/paths-B5y-npWs.d.ts +0 -1
  147. package/dist/sno-station-mem-runtime-dependencies-DgAm7WqA.d.ts +0 -31
@@ -3,14 +3,14 @@ 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-C7yyFWu-.js";
6
+ import { i as createLlmClient } from "./llm-client-DDdUjYWS.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-DeD9GPQJ.js";
11
+ import { n as createRetireByNameRunBudget, r as runProfileSectionUpdate } from "./profile-section-writer-Dd4FKpt5.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-nmVrj4AZ.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
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";
15
15
  import { createLogger, currentLogContext, privateLogReference, withLogContext } from "@snoai/utils/logger";
16
16
  import { basename, join } from "node:path";
@@ -1,8 +1,8 @@
1
- import { t as PluginConfig } from "./plugin-config-schema-CcEeAEdi.js";
2
- import "./types-DZGL4QXi.js";
1
+ import { t as PluginConfig } from "./plugin-config-schema-BPg-ppSt.js";
2
+ import "./types-Dm_XhSne.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-CmS4xAaN.js";
5
- import { t as ReflectionDeps } from "./reflection-deps-BPMrDU0a.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";
6
6
  //#region src/engine/reflection/reflection-command-hooks.d.ts
7
7
  declare function createRunMemoryReflection(params: ReflectionCommandParams): (event: {
8
8
  sessionKey: string;
@@ -1,7 +1,7 @@
1
- import { n as AgentLlmPort } from "./agent-llm-port-DY2290EK.js";
1
+ import { n as AgentLlmPort } from "./agent-llm-port-BlFrD2ro.js";
2
2
  import { n as createEmbedder } from "./embedding-provider-client-vynZMuit.js";
3
- import { C as MemoryStore } from "./memory-store-base-CTAMKigD.js";
4
- import "./store-DraRJ-HI.js";
3
+ import { C as MemoryStore } from "./memory-store-base-D0bLwzyF.js";
4
+ import "./store-HyzTUvwj.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-C7yyFWu-.js";
2
+ import { i as createLlmClient } from "./llm-client-DDdUjYWS.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-CcEeAEdi.js";
2
- import "./types-DZGL4QXi.js";
3
- import { n as AgentLlmPort } from "./agent-llm-port-DY2290EK.js";
1
+ import { p as LlmRoutingConfig, t as PluginConfig } from "./plugin-config-schema-BPg-ppSt.js";
2
+ import "./types-Dm_XhSne.js";
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-CmS4xAaN.js";
6
+ import { n as ReflectionDerivedCache, t as ReflectionDerivedSuppressionCache } from "./derived-suppression-cache-Cha_e2Cr.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-CcEeAEdi.js";
2
- import "./types-DZGL4QXi.js";
3
- import "./store-DraRJ-HI.js";
1
+ import { t as PluginConfig } from "./plugin-config-schema-BPg-ppSt.js";
2
+ import "./types-Dm_XhSne.js";
3
+ import "./store-HyzTUvwj.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-CmS4xAaN.js";
7
+ import { n as ReflectionDerivedCache, r as LoadedReflectionSlices, t as ReflectionDerivedSuppressionCache } from "./derived-suppression-cache-Cha_e2Cr.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-CcEeAEdi.js";
2
- import "./types-DZGL4QXi.js";
1
+ import { t as PluginConfig } from "./plugin-config-schema-BPg-ppSt.js";
2
+ import "./types-Dm_XhSne.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-CmS4xAaN.js";
4
+ import { n as ReflectionDerivedCache, t as ReflectionDerivedSuppressionCache } from "./derived-suppression-cache-Cha_e2Cr.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-B1P5_RqV.js";
1
+ import { c as runRemProductionOrderedWave } from "./rem-trigger-i_E8I9lv.js";
2
2
  export { runRemProductionOrderedWave };
@@ -1,4 +1,4 @@
1
- import { $ as FIXED_IDX_MEMORY_ACTIVE_TASK_CURRENT_REVISION, 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 CachedEmbeddingProvider, Ct as FIXED_MEMORY_CHUNKS_MEM_FACET_IDX, D as settingsToPluginConfig, Dn as DEFAULT_IMPORTANCE, Dr as LocalEmbedProvider, Dt as FIXED_MEMORY_MEMORIES_FACT_ID_INSERT_GUARD, En as DEFAULT_BM25_WEIGHT, Et as FIXED_MEMORY_MEMORIES, Fn as DEFAULT_VECTOR_WEIGHT, G as FIXED_EXTERNAL_VALUE_55, Gn as IMPORTANCE_WEIGHT_BASE, H as FIXED_EXTERNAL_VALUE_52, Hn as HEAD_EXTRACT_MIN_CONTENT_TOKENS, In as EMBEDDER_DIM, Ir as REM_SIDECAR_TOKEN_HEADER, It as FIXED_MEMORY_SNO_EXTRACT_CHAT, J as FIXED_EXTERNAL_VALUE_58, Jn as LIGHTWEIGHT_COSINE_WEIGHT, K as FIXED_EXTERNAL_VALUE_56, Kt as FIXED_PROTOCOL_VALUE_69, Ln as EMBEDDER_MODEL_DEFAULT, Mn as DEFAULT_RERANK_MODEL, Mt as FIXED_MEMORY_PROVIDER_PROJECT_AGENTS, Nn as DEFAULT_RERANK_TIMEOUT_MS, 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, Q as FIXED_IDX_MEMORY, Rn as EMBEDDER_PROVIDER_DEFAULT, Rt as FIXED_MEMORY_TASK_LIFECYCLE_COMMANDS, Sn as CHUNK_MIN_TOKENS, St as FIXED_MEMORY_CHUNKS_MEMORY_ID_IDX, T as readSettings, Tn as CHUNK_TOKENIZER_MODE, Tr as LOCAL_EMBEDDING_MODEL, Tt as FIXED_MEMORY_EXTRACTION_TIMESTAMPS, U as FIXED_EXTERNAL_VALUE_53, Un as HEAD_EXTRACT_OVERLAP_DROP_RATIO, V as FIXED_EXTERNAL_VALUE_51, W as FIXED_EXTERNAL_VALUE_54, Wn as HEAD_EXTRACT_TOKEN_BUDGET, X as FIXED_EXTERNAL_VALUE_8, Xn as LIGHTWEIGHT_RERANK_PENALTY, Y as FIXED_EXTERNAL_VALUE_62, Yn as LIGHTWEIGHT_FUSION_WEIGHT, 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 MMR_LAMBDA, at as FIXED_IDX_MEMORY_MEMORIES_LANE_PROJECT, bn as CHUNKING_VERSION$1, br as experimentCandidatePoolOverride, bt as FIXED_MEMORY_CHUNKS_AU, cn as SUPPORTED_LOCALES, ct as FIXED_IDX_MEMORY_MEMORIES_PROJECT_FACT_KEY_ACTIVE, d as getRemDiscoveryPath, dn as ADJACENCY_BONUS_PER_PAIR, dt as FIXED_MEMORY_ACTIVE_TASK_EVIDENCE, en as FIXED_VEC_MEMORY, er as MAX_CHUNK_FETCH_LIMIT, et as FIXED_IDX_MEMORY_ACTIVE_TASK_EVIDENCE_INSTANCE, fr as RERANK_BLEND_CROSS, ft as FIXED_MEMORY_ACTIVE_TASK_INSTANCES, g as readRemOperationalConfig, gr as TIME_DECAY_FLOOR, gt as FIXED_MEMORY_ACTIVE_TASK_TRANSITIONS, ht as FIXED_MEMORY_ACTIVE_TASK_REVISIONS, in as PERSISTED_CONTENT_HASH_V3, 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, lr as RECENCY_WEIGHT, lt as FIXED_IDX_MEMORY_MEMORIES_PROJECT_TIMESTAMP, mr as RETRIEVAL_STORAGE_CHUNK_PROFILE, 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_CAP, ot as FIXED_IDX_MEMORY_MEMORIES_PROJECT, pr as RERANK_BLEND_VECTOR, pt as FIXED_MEMORY_ACTIVE_TASK_MIGRATION_EVIDENCE, q as FIXED_EXTERNAL_VALUE_57, qn as INTRA_MEMORY_COSINE_THRESHOLD, 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, sr as MULTI_HIT_BONUS_PER_HIT, st as FIXED_IDX_MEMORY_MEMORIES_PROJECT_CONTENT_HASH, tn as FIXED_VEC_MEMORY_CHUNKS, tr as MAX_LIST_LIMIT, 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_CACHE_DIR_DEFAULT, wt as FIXED_MEMORY_CHUNKS_MEM_IDX, xn as CHUNK_MAX_TOKENS, xr as experimentMmrDisabled, xt as FIXED_MEMORY_CHUNKS_FTS, yn as CACHE_TTL_MS, yt as FIXED_MEMORY_CHUNKS_AI, zn as EVAL_QA_TRACES_FILENAME, zt as FIXED_MEMORY_UNPLACED_CANDIDATES } from "./config-D_KOwEyg.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 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";
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";
@@ -7413,6 +7413,7 @@ function createLlmClient(config) {
7413
7413
  const hostInFlight = ++hostRequestsInFlight;
7414
7414
  const result = await withLogContext({ attempt_id: randomUUID() }, async () => {
7415
7415
  let outcome = "failed";
7416
+ let hostReport = {};
7416
7417
  try {
7417
7418
  const completion = await agentPort.complete({
7418
7419
  system: systemContent,
@@ -7423,6 +7424,7 @@ function createLlmClient(config) {
7423
7424
  ...request.signal ? { signal: request.signal } : {}
7424
7425
  });
7425
7426
  outcome = completion.kind;
7427
+ if (completion.kind === "ok") hostReport = completion;
7426
7428
  return completion;
7427
7429
  } finally {
7428
7430
  hostRequestsInFlight -= 1;
@@ -7434,8 +7436,13 @@ function createLlmClient(config) {
7434
7436
  duration_ms: performance.now() - hostStarted,
7435
7437
  in_flight_at_dispatch: hostInFlight,
7436
7438
  requested_model: "unavailable",
7437
- returned_model: "unavailable",
7438
- usage: { source: "unavailable" },
7439
+ returned_model: hostReport.model ?? "unavailable",
7440
+ usage: hostReport.usage ? {
7441
+ source: "provider_reported",
7442
+ inputTokens: hostReport.usage.inputTokens,
7443
+ outputTokens: hostReport.usage.outputTokens,
7444
+ totalTokens: hostReport.usage.inputTokens + hostReport.usage.outputTokens
7445
+ } : { source: "unavailable" },
7439
7446
  prompt_template_hash: request.promptTemplateHash ?? "unavailable",
7440
7447
  extraction_skill_hash: request.extractionSkillHash ?? "unavailable",
7441
7448
  prompt_template_unavailable_reason: request.promptTemplateHash ? void 0 : "caller_does_not_provide_template_identity",
@@ -7454,7 +7461,7 @@ function createLlmClient(config) {
7454
7461
  dispatch_to_headers_ms: "unavailable",
7455
7462
  headers_to_body_ms: "unavailable",
7456
7463
  first_token_ms: "unavailable",
7457
- provider_unavailable_reason: "host_port_does_not_report_provider_fields"
7464
+ ...hostReport.usage || hostReport.model ? {} : { provider_unavailable_reason: "host_port_does_not_report_provider_fields" }
7458
7465
  }, {
7459
7466
  event_name: "llm.request.completed",
7460
7467
  file: "packages/memory/src/model/llm-client.ts",
@@ -27194,9 +27201,7 @@ const DEFAULT_RETRIEVAL_CONFIG = {
27194
27201
  recencyWeight: RECENCY_WEIGHT,
27195
27202
  temporalExpiry: false,
27196
27203
  temporalDecay: true,
27197
- rerankModel: DEFAULT_RERANK_MODEL,
27198
27204
  rerankTimeoutMs: DEFAULT_RERANK_TIMEOUT_MS,
27199
- rerankProvider: "voyage",
27200
27205
  lengthNormAnchor: 0,
27201
27206
  hardMinScore: 0,
27202
27207
  timeDecayHalfLifeDays: 60,
@@ -27501,8 +27506,7 @@ Object.assign(MemoryRetriever.prototype, {
27501
27506
  this.throwIfAborted(context);
27502
27507
  const rerankStageMetadata = rerankOutcome.fallback ? {
27503
27508
  ...rerankOutcome.stats,
27504
- rerankFallbackReason: rerankOutcome.fallback.reason,
27505
- rerankFallbackProvider: rerankOutcome.fallback.provider
27509
+ rerankFallbackReason: rerankOutcome.fallback.reason
27506
27510
  } : rerankOutcome.stats;
27507
27511
  trace?.endStage(fused.map((r) => r.entry.id), fused.map((r) => r.score), rerankStageMetadata);
27508
27512
  fused = this.applyScoringPipeline(fused, trace, context.limit);
@@ -27574,100 +27578,31 @@ Object.assign(MemoryRetriever.prototype, {
27574
27578
  });
27575
27579
  //#endregion
27576
27580
  //#region src/engine/retrieval/retrieval-rerank-provider.ts
27577
- /** @file retrieval-rerank-provider.ts
27578
- * @purpose Adapts external rerank provider request and response formats.
27579
- * @boundary HTTP payload shaping and response parsing only.
27580
- */
27581
- const RERANK_DEFAULT_ENDPOINTS = {
27582
- voyage: "https://api.voyageai.com/v1/rerank",
27583
- jina: "https://api.jina.ai/v1/rerank",
27584
- pinecone: "https://api.pinecone.io/rerank",
27585
- dashscope: "https://dashscope.aliyuncs.com/api/v1/services/rerank"
27586
- };
27587
- function buildRerankHttpError(status) {
27588
- if (classifyLlmFailure({ status }).category === "auth") return new RetrievalError(`Rerank API failed with status ${status}`);
27589
- }
27590
- function buildRerankRequest(provider, apiKey, model, query, candidates, topN) {
27591
- switch (provider) {
27592
- case "tei":
27593
- case "sno-gpu": return {
27594
- headers: {
27595
- "Content-Type": "application/json",
27596
- Authorization: `Bearer ${apiKey}`,
27597
- ...provider === "sno-gpu" ? {
27598
- "X-Sno-Source": "sno-station",
27599
- "X-Sno-Workload": "station-rerank"
27600
- } : {}
27601
- },
27602
- body: {
27603
- query,
27604
- texts: candidates,
27605
- raw_scores: true
27606
- }
27607
- };
27608
- case "dashscope": return {
27609
- headers: {
27610
- "Content-Type": "application/json",
27611
- Authorization: `Bearer ${apiKey}`
27612
- },
27613
- body: {
27614
- model,
27615
- input: {
27616
- query,
27617
- documents: candidates
27618
- }
27619
- }
27620
- };
27621
- case "pinecone": return {
27622
- headers: {
27623
- "Content-Type": "application/json",
27624
- "Api-Key": apiKey,
27625
- "X-Pinecone-API-Version": "2024-10"
27626
- },
27627
- body: {
27628
- model,
27629
- query,
27630
- documents: candidates.map((text) => ({ text })),
27631
- top_n: topN,
27632
- rank_fields: ["text"]
27633
- }
27634
- };
27635
- case "voyage": return {
27636
- headers: {
27637
- "Content-Type": "application/json",
27638
- Authorization: `Bearer ${apiKey}`
27639
- },
27640
- body: {
27641
- model,
27642
- query,
27643
- documents: candidates,
27644
- top_k: topN
27645
- }
27646
- };
27647
- default: return {
27648
- headers: {
27649
- "Content-Type": "application/json",
27650
- Authorization: `Bearer ${apiKey}`
27651
- },
27652
- body: {
27653
- model,
27654
- query,
27655
- documents: candidates,
27656
- top_n: topN
27657
- }
27658
- };
27659
- }
27581
+ function buildRerankRequest(apiKey, query, candidates) {
27582
+ return {
27583
+ headers: {
27584
+ "Content-Type": "application/json",
27585
+ Authorization: `Bearer ${apiKey}`,
27586
+ "X-Sno-Source": "sno-station",
27587
+ "X-Sno-Workload": "station-rerank"
27588
+ },
27589
+ body: {
27590
+ query,
27591
+ texts: candidates,
27592
+ raw_scores: true
27593
+ }
27594
+ };
27660
27595
  }
27661
- function parseRerankResponse(provider, data) {
27662
- /** Parses items into the normalized shape used by precision recall retrieval ranking. */
27663
- const parseItems = (items, scoreKeys) => {
27596
+ /** Sno's reranker answers a list of `{index, score}`, bare or under `results` / `data`. */
27597
+ function parseRerankResponse(data) {
27598
+ const parseItems = (items) => {
27664
27599
  if (!Array.isArray(items)) return void 0;
27665
27600
  const parsed = [];
27666
27601
  for (const raw of items) {
27667
27602
  const index = typeof raw?.index === "number" ? raw.index : Number(raw?.index);
27668
27603
  if (!Number.isFinite(index)) continue;
27669
27604
  let score;
27670
- for (const key of scoreKeys) {
27605
+ for (const key of ["score", "relevance_score"]) {
27671
27606
  const value = raw?.[key];
27672
27607
  const n = typeof value === "number" ? value : Number(value);
27673
27608
  if (Number.isFinite(n)) {
@@ -27684,18 +27619,7 @@ function parseRerankResponse(provider, data) {
27684
27619
  return parsed.length > 0 ? parsed : void 0;
27685
27620
  };
27686
27621
  const objectData = data && typeof data === "object" && !Array.isArray(data) ? data : void 0;
27687
- switch (provider) {
27688
- case "tei":
27689
- case "sno-gpu": return parseItems(data, ["score", "relevance_score"]) ?? parseItems(objectData?.results, ["score", "relevance_score"]) ?? parseItems(objectData?.data, ["score", "relevance_score"]);
27690
- case "dashscope": {
27691
- const output = objectData?.output;
27692
- if (output) return parseItems(output.results, ["relevance_score", "score"]);
27693
- return parseItems(objectData?.results, ["relevance_score", "score"]);
27694
- }
27695
- case "pinecone": return parseItems(objectData?.data, ["score", "relevance_score"]) ?? parseItems(objectData?.results, ["score", "relevance_score"]);
27696
- case "voyage": return parseItems(objectData?.data, ["relevance_score", "score"]) ?? parseItems(objectData?.results, ["relevance_score", "score"]);
27697
- default: return parseItems(objectData?.results, ["relevance_score", "score"]) ?? parseItems(objectData?.data, ["relevance_score", "score"]);
27698
- }
27622
+ return parseItems(data) ?? parseItems(objectData?.results) ?? parseItems(objectData?.data);
27699
27623
  }
27700
27624
  //#endregion
27701
27625
  //#region src/engine/retrieval/retriever-rerank.ts
@@ -27763,11 +27687,9 @@ async function fetchRerankWithRetry(send, stop) {
27763
27687
  for (let attempt = 1; attempt <= RERANK_TRANSIENT_ATTEMPTS; attempt += 1) {
27764
27688
  let retryDelayMs = RERANK_TRANSIENT_BACKOFF_MS * attempt;
27765
27689
  try {
27766
- const response = await send();
27767
- if (response.ok) return {
27768
- response,
27769
- data: await response.json()
27770
- };
27690
+ const reply = await send();
27691
+ const { response } = reply;
27692
+ if (response.ok) return reply;
27771
27693
  if (!RERANK_TRANSIENT_STATUSES.has(response.status) || attempt === RERANK_TRANSIENT_ATTEMPTS) return { response };
27772
27694
  if (response.status === 429) {
27773
27695
  const retryAfter = response.headers.get("retry-after");
@@ -27799,13 +27721,12 @@ Object.assign(MemoryRetriever.prototype, {
27799
27721
  async rerank(query, candidates, queryVector, options) {
27800
27722
  if (candidates.length === 0) return { candidates };
27801
27723
  if (this.config.rerank === "none") return { candidates };
27802
- const provider = this.config.rerankProvider ?? "none";
27803
- const unranked = () => provider === "sno-gpu" ? this.rerankLightweight(candidates, queryVector) : candidates;
27804
- if (this.config.rerank === "cross-encoder" && !this.config.rerankApiKey) throw new RetrievalError(`rerank "cross-encoder" requires retrieval.rerankApiKey (provider: ${provider}); set the key, or set retrieval.rerank to "lightweight" to choose the local ranker`);
27724
+ const unranked = () => this.rerankLightweight(candidates, queryVector);
27725
+ 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");
27805
27726
  if (this.config.rerank === "lightweight" || !this.config.rerankApiKey) return { candidates: this.rerankLightweight(candidates, queryVector) };
27806
- const rerankEndpoint = this.config.rerankEndpoint ?? RERANK_DEFAULT_ENDPOINTS[provider];
27727
+ const rerankEndpoint = this.config.rerankEndpoint;
27807
27728
  if (!rerankEndpoint) {
27808
- log$4.warn("rerank skipped: no endpoint for provider", { provider }, {
27729
+ log$4.warn("rerank skipped: no reranker address", {}, {
27809
27730
  event_name: "memory.retriever_rerank.diagnostic",
27810
27731
  file: "packages/memory/src/engine/retrieval/retriever-rerank.ts",
27811
27732
  function: "rerank",
@@ -27813,15 +27734,12 @@ Object.assign(MemoryRetriever.prototype, {
27813
27734
  });
27814
27735
  return {
27815
27736
  candidates: unranked(),
27816
- fallback: {
27817
- reason: "no_endpoint",
27818
- provider
27819
- }
27737
+ fallback: { reason: "no_endpoint" }
27820
27738
  };
27821
27739
  }
27822
27740
  const rerankTimeoutMs = this.config.rerankTimeoutMs ?? 15e3;
27823
- const stepEnds = [options?.signal, provider === "sno-gpu" ? AbortSignal.timeout(Math.max(0, Math.floor(options?.deadlineAt === void 0 ? rerankTimeoutMs : options.deadlineAt - Date.now()))) : void 0].filter((each) => each !== void 0);
27824
- const stepStop = stepEnds.length > 0 ? AbortSignal.any(stepEnds) : void 0;
27741
+ const stepBudget = AbortSignal.timeout(Math.max(0, Math.floor(options?.deadlineAt === void 0 ? rerankTimeoutMs : options.deadlineAt - Date.now())));
27742
+ const stepStop = options?.signal ? AbortSignal.any([options.signal, stepBudget]) : stepBudget;
27825
27743
  const rerankApiKey = this.config.rerankApiKey;
27826
27744
  const maxCandidates = this.config.rerankMaxCandidates;
27827
27745
  const overCap = maxCandidates !== void 0 && candidates.length > maxCandidates;
@@ -27843,10 +27761,7 @@ Object.assign(MemoryRetriever.prototype, {
27843
27761
  });
27844
27762
  return {
27845
27763
  candidates: unranked(),
27846
- fallback: {
27847
- reason: "query_over_window",
27848
- provider
27849
- }
27764
+ fallback: { reason: "query_over_window" }
27850
27765
  };
27851
27766
  }
27852
27767
  let truncatedCandidates = 0;
@@ -27869,20 +27784,54 @@ Object.assign(MemoryRetriever.prototype, {
27869
27784
  const runBatch = async (start) => {
27870
27785
  let batchTexts = rerankTexts.slice(start, start + batchSize);
27871
27786
  for (let pass = 0;; pass += 1) {
27872
- const { headers, body } = buildRerankRequest(provider, rerankApiKey, this.config.rerankModel ?? "rerank-2", query, batchTexts, batchTexts.length);
27873
- const { response, data } = await fetchRerankWithRetry(() => fetch(rerankEndpoint, {
27874
- method: "POST",
27875
- headers: provider === "sno-gpu" ? {
27876
- ...headers,
27877
- "X-Request-ID": randomUUID()
27878
- } : headers,
27879
- body: JSON.stringify(body),
27880
- signal: stepStop ? AbortSignal.any([AbortSignal.timeout(rerankTimeoutMs), stepStop]) : AbortSignal.timeout(rerankTimeoutMs)
27881
- }), stepStop);
27787
+ const { headers, body } = buildRerankRequest(rerankApiKey, query, batchTexts);
27788
+ const sendAttempt = async () => {
27789
+ const clientRequestId = randomUUID();
27790
+ const attemptStarted = performance.now();
27791
+ let outcome = "failed";
27792
+ let statusCode;
27793
+ try {
27794
+ const attempt = await fetch(rerankEndpoint, {
27795
+ method: "POST",
27796
+ headers: {
27797
+ ...headers,
27798
+ "X-Request-ID": clientRequestId
27799
+ },
27800
+ body: JSON.stringify(body),
27801
+ signal: AbortSignal.any([AbortSignal.timeout(rerankTimeoutMs), stepStop])
27802
+ });
27803
+ statusCode = attempt.status;
27804
+ if (!attempt.ok) {
27805
+ outcome = "http_error";
27806
+ return { response: attempt };
27807
+ }
27808
+ const data = await attempt.json();
27809
+ outcome = "success";
27810
+ return {
27811
+ response: attempt,
27812
+ data
27813
+ };
27814
+ } catch (error) {
27815
+ outcome = isRerankTimeout(error) ? "timeout" : "failed";
27816
+ throw error;
27817
+ } finally {
27818
+ log$4.info("Rerank request completed", {
27819
+ outcome,
27820
+ status_code: statusCode ?? "unavailable",
27821
+ duration_ms: performance.now() - attemptStarted,
27822
+ texts_sent: batchTexts.length,
27823
+ client_request_id: clientRequestId
27824
+ }, {
27825
+ event_name: "rerank.request.completed",
27826
+ file: "packages/memory/src/engine/retrieval/retriever-rerank.ts",
27827
+ function: "runBatch",
27828
+ site_id: "rerank.request.completed"
27829
+ });
27830
+ }
27831
+ };
27832
+ const { response, data } = await fetchRerankWithRetry(sendAttempt, stepStop);
27882
27833
  if (!response.ok) {
27883
27834
  const retryAfter = response.headers.get("retry-after");
27884
- const fatalError = buildRerankHttpError(response.status);
27885
- if (fatalError && provider !== "sno-gpu") throw fatalError;
27886
27835
  const errorBody = await response.text().catch(() => "<unreadable body>");
27887
27836
  const refusal = pass === 0 ? parseOverWindowRefusal(errorBody) : void 0;
27888
27837
  if (refusal) {
@@ -27924,10 +27873,9 @@ Object.assign(MemoryRetriever.prototype, {
27924
27873
  });
27925
27874
  return "http_error";
27926
27875
  }
27927
- const parsed = parseRerankResponse(provider, data);
27876
+ const parsed = parseRerankResponse(data);
27928
27877
  if (!parsed) {
27929
27878
  log$4.warn("rerank API returned unparseable response", {
27930
- provider,
27931
27879
  endpoint_hash: createHash("sha256").update(rerankEndpoint).digest("hex"),
27932
27880
  batchStart: start
27933
27881
  }, {
@@ -27959,10 +27907,7 @@ Object.assign(MemoryRetriever.prototype, {
27959
27907
  for (const outcome of settled) if (outcome.status === "rejected") throw outcome.reason;
27960
27908
  for (const outcome of settled) if (outcome.status === "fulfilled" && typeof outcome.value === "string") return {
27961
27909
  candidates: unranked(),
27962
- fallback: {
27963
- reason: outcome.value,
27964
- provider
27965
- }
27910
+ fallback: { reason: outcome.value }
27966
27911
  };
27967
27912
  for (const outcome of settled) if (outcome.status === "fulfilled" && typeof outcome.value !== "string") items.push(...outcome.value);
27968
27913
  }
@@ -27977,9 +27922,7 @@ Object.assign(MemoryRetriever.prototype, {
27977
27922
  const candidate = toRerank[item.index];
27978
27923
  if (!candidate) continue;
27979
27924
  const sourceScore = this.getRerankSourceScore(candidate);
27980
- let crossScore = item.score;
27981
- if (provider === "tei" || provider === "sno-gpu") crossScore = 1 / (1 + Math.exp(-item.score));
27982
- const blendedScore = clamp01(crossScore * blendCross + sourceScore * blendVector, 0);
27925
+ const blendedScore = clamp01(1 / (1 + Math.exp(-item.score)) * blendCross + sourceScore * blendVector, 0);
27983
27926
  reranked.push({
27984
27927
  ...candidate,
27985
27928
  score: blendedScore,
@@ -27997,8 +27940,7 @@ Object.assign(MemoryRetriever.prototype, {
27997
27940
  log$4.debug("reranked", {
27998
27941
  totalCandidateCount: candidates.length,
27999
27942
  sentToRerankCount: toRerank.length,
28000
- returnedCount: reranked.length,
28001
- provider
27943
+ returnedCount: reranked.length
28002
27944
  }, {
28003
27945
  event_name: "memory.retriever_rerank.diagnostic",
28004
27946
  file: "packages/memory/src/engine/retrieval/retriever-rerank.ts",
@@ -28041,10 +27983,7 @@ Object.assign(MemoryRetriever.prototype, {
28041
27983
  }
28042
27984
  return {
28043
27985
  candidates: unranked(),
28044
- fallback: {
28045
- reason,
28046
- provider
28047
- }
27986
+ fallback: { reason }
28048
27987
  };
28049
27988
  }
28050
27989
  },
@@ -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-DZGL4QXi.js";
2
- import { sn as RecallLifecycleConfig } from "./index-Pb9LrHgL.js";
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
3
  import { t as Embedder } from "./embedding-provider-client-vynZMuit.js";
4
4
  import "./trace-C1JxMfs-.js";
5
- import "./memory-metadata-codec-BQ8tBY-g.js";
5
+ import "./memory-metadata-codec-CFY8YtXf.js";
6
6
  import { K as RemFacetPolicy } from "./index-DPfJrOFD.js";
7
- import { C as MemoryStore } from "./memory-store-base-CTAMKigD.js";
8
- import "./store-DraRJ-HI.js";
9
- import { n as AccessTracker } from "./access-tracker-CglGg8uS.js";
10
- import { r as TierPromoter } from "./memory-tier-promoter-CSGa4LBH.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";
11
11
  import "@snoai/utils/logger";
12
12
  //#region src/engine/retrieval/retrieval-trace.d.ts
13
13
  /** @file retrieval-trace.ts
@@ -209,7 +209,6 @@ declare class RetrievalStatsCollector {
209
209
  }
210
210
  //#endregion
211
211
  //#region src/engine/retrieval/retrieval-config.d.ts
212
- type RerankProvider = "jina" | "siliconflow" | "voyage" | "pinecone" | "dashscope" | "tei" | "sno-gpu";
213
212
  interface RetrievalConfig {
214
213
  /** Enable the historical recency, decay, and retention score transforms. */
215
214
  temporalWeighting: boolean;
@@ -228,7 +227,6 @@ interface RetrievalConfig {
228
227
  /** Dynamic memories decay 3× faster in time-decay scoring (default ON) */
229
228
  temporalDecay: boolean;
230
229
  rerankApiKey?: string;
231
- rerankModel?: string;
232
230
  rerankTimeoutMs?: number;
233
231
  lengthNormAnchor: number;
234
232
  hardMinScore: number;
@@ -247,15 +245,10 @@ interface RetrievalConfig {
247
245
  timeDecayFloor?: number;
248
246
  /** Relevance vs diversity tradeoff (default: 0.7) */
249
247
  mmrLambda?: number;
250
- /** Custom rerank API endpoint URL */
248
+ /** Address of Sno's reranker (the Sno GPU address plus `/rerank`) */
251
249
  rerankEndpoint?: string;
252
- /** Rerank provider name */
253
- rerankProvider?: RerankProvider | string;
254
250
  /**
255
- * Hard cap on how many candidates are sent to the cross-encoder rerank API
256
- * in one request. Some rerank deployments (e.g. this repo's Sno TEI
257
- * reranker) reject a batch above a fixed size instead of truncating it, so
258
- * an unset value here must never silently violate that limit. Candidates
251
+ * Cap on how many candidates are sent to Sno's reranker in total. Candidates
259
252
  * beyond the cap are NOT dropped — they still flow through the standard
260
253
  * `unreturned` preservation-floor path, same as a real reranker choosing
261
254
  * not to return them.
@@ -361,12 +354,10 @@ interface RetentionScorer {
361
354
  *
362
355
  * - `missing_api_key`: cross-encoder configured but no rerankApiKey set;
363
356
  * call routes through the lightweight cosine path instead.
364
- * - `no_endpoint`: provider has no known endpoint in `RERANK_DEFAULT_ENDPOINTS`
365
- * and `rerankEndpoint` was not overridden; rerank was skipped.
366
- * - `http_error`: provider responded with a non-OK status that did not map
367
- * to a fatal RetrievalError (i.e. degraded but not propagated).
368
- * - `invalid_response`: provider HTTP 2xx but response shape did not parse.
369
- * - `timeout`: the per-call AbortSignal fired before the provider responded.
357
+ * - `no_endpoint`: no reranker address (`rerankEndpoint`) was set; rerank was skipped.
358
+ * - `http_error`: the reranker responded with a non-OK status.
359
+ * - `invalid_response`: the reranker answered HTTP 2xx but the response shape did not parse.
360
+ * - `timeout`: the per-call AbortSignal fired before the reranker responded.
370
361
  * - `request_error`: any other thrown error inside the fetch path.
371
362
  * - `query_over_window`: the query alone fills the reranker's per-pair token window, so no
372
363
  * document could be sent with it. Nothing was requested.
@@ -375,7 +366,6 @@ declare const RERANK_FALLBACK_REASONS: readonly ["missing_api_key", "no_endpoint
375
366
  type RerankFallbackReason = (typeof RERANK_FALLBACK_REASONS)[number];
376
367
  interface RerankFallbackSignal {
377
368
  reason: RerankFallbackReason;
378
- provider: string;
379
369
  }
380
370
  interface RerankOutcome {
381
371
  candidates: RetrievalResult[];
@@ -473,4 +463,4 @@ declare function createRetriever(store: MemoryStore, embedder: Embedder, logger?
473
463
  warn: (message: string, fields?: Record<string, unknown>) => void;
474
464
  }, config?: RetrievalConfig): MemoryRetriever;
475
465
  //#endregion
476
- export { RerankFallbackSignal as a, collectParallelStage as c, RetrievalConfig as d, RetrievalContext as f, RerankFallbackReason as i, DEFAULT_RETRIEVAL_CONFIG as l, MemoryRetrieverInternals as n, RerankOutcome as o, withServingValidityDefault as p, RERANK_FALLBACK_REASONS as r, createRetriever as s, MemoryRetriever as t, RerankProvider as u };
466
+ export { RerankFallbackSignal as a, collectParallelStage as c, RetrievalContext as d, withServingValidityDefault as f, RerankFallbackReason as i, DEFAULT_RETRIEVAL_CONFIG as l, MemoryRetrieverInternals as n, RerankOutcome as o, RERANK_FALLBACK_REASONS as r, createRetriever as s, MemoryRetriever as t, RetrievalConfig as u };