@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.
- package/README.md +1 -1
- package/dist/{access-tracker-CglGg8uS.d.ts → access-tracker-DT04huAG.d.ts} +4 -4
- package/dist/{adapter-Cxyzdq6H.d.ts → adapter-BMx-VcJy.d.ts} +2 -2
- package/dist/{agent-llm-port-DY2290EK.d.ts → agent-llm-port-BlFrD2ro.d.ts} +5 -0
- package/dist/{atomic-memory-extraction-DWhlXJT6.js → atomic-memory-extraction-De86y7O-.js} +4 -4
- package/dist/{atomic-memory-extraction-DO4yTfch.d.ts → atomic-memory-extraction-_OEsSJbC.d.ts} +4 -4
- package/dist/{b-profile-section-dictionary-provider-BkUdS1SY.d.ts → b-profile-section-dictionary-provider-DTE4uWyh.d.ts} +1 -1
- package/dist/{capture-policy-detector-C7MA4jSr.d.ts → capture-policy-detector-B8sqRTlB.d.ts} +1 -1
- package/dist/client.d.ts +1 -1
- package/dist/{config-D_KOwEyg.js → config-C1X5rsAx.js} +6 -52
- package/dist/{derived-suppression-cache-CmS4xAaN.d.ts → derived-suppression-cache-Cha_e2Cr.d.ts} +1 -1
- package/dist/diagnostic-encoder.js +1 -1
- package/dist/{index-Pb9LrHgL.d.ts → index-8CfO_-6T.d.ts} +7 -16
- package/dist/{index-CTi1R9T4.d.ts → index-C8tTzfrH.d.ts} +2 -2
- package/dist/index.d.ts +10 -10
- package/dist/index.js +5 -5
- package/dist/internal/config/index.d.ts +2 -2
- package/dist/internal/config/index.js +7 -16
- package/dist/internal/config/plugin-config-schema.d.ts +1 -1
- package/dist/internal/config/plugin-config-schema.js +1 -1
- package/dist/internal/config/product-mode.d.ts +1 -1
- package/dist/internal/config/settings.d.ts +1 -1
- package/dist/internal/config/settings.js +3 -30
- package/dist/internal/config/skin-defaults.d.ts +1 -1
- package/dist/internal/contract/profile.d.ts +1 -1
- package/dist/internal/contract/routes.d.ts +1 -1
- package/dist/internal/engine/bindings/memory-cli-shared.d.ts +4 -4
- package/dist/internal/engine/bindings/memory-forget-tool.js +1 -1
- package/dist/internal/engine/bindings/memory-list-tool.js +1 -1
- package/dist/internal/engine/bindings/memory-recall-tool.js +1 -1
- package/dist/internal/engine/bindings/memory-reflection-resolve-tool.js +1 -1
- package/dist/internal/engine/bindings/memory-stats-tool.js +1 -1
- package/dist/internal/engine/bindings/memory-store-tool.js +3 -3
- package/dist/internal/engine/bindings/memory-tool-access.d.ts +1 -1
- package/dist/internal/engine/bindings/memory-tool-access.js +1 -1
- package/dist/internal/engine/bindings/memory-tool-results.d.ts +1 -1
- package/dist/internal/engine/bindings/memory-tool-results.js +1 -1
- package/dist/internal/engine/bindings/memory-tool-schemas.d.ts +5 -5
- package/dist/internal/engine/bindings/memory-tool-schemas.js +1 -1
- package/dist/internal/engine/bindings/memory-update-tool.js +2 -2
- package/dist/internal/engine/bindings/sno-station-mem-ambient-learning-hook.d.ts +4 -4
- package/dist/internal/engine/bindings/sno-station-mem-ambient-learning-hook.js +2 -2
- package/dist/internal/engine/bindings/sno-station-mem-auto-recall-hook.d.ts +4 -4
- package/dist/internal/engine/bindings/sno-station-mem-auto-recall-hook.js +1 -1
- package/dist/internal/engine/bindings/sno-station-mem-insight-distill-factory.d.ts +6 -6
- package/dist/internal/engine/bindings/sno-station-mem-insight-distill-factory.js +2 -2
- package/dist/internal/engine/bindings/sno-station-mem-message-transcript.js +2 -2
- package/dist/internal/engine/bindings/sno-station-mem-reset-hook.d.ts +3 -3
- package/dist/internal/engine/bindings/sno-station-mem-runtime-mode.d.ts +1 -1
- package/dist/internal/engine/extraction/atomic-memory-extraction.d.ts +1 -1
- package/dist/internal/engine/extraction/atomic-memory-extraction.js +1 -1
- package/dist/internal/engine/extraction/b-profile-section-dictionary-provider.d.ts +1 -1
- package/dist/internal/engine/extraction/b-profile-section-rekey.d.ts +5 -5
- package/dist/internal/engine/extraction/capture-policy-detector.d.ts +1 -1
- package/dist/internal/engine/extraction/memory-metadata-codec.d.ts +2 -2
- package/dist/internal/engine/extraction/memory-temporality-classifier.d.ts +1 -1
- package/dist/internal/engine/extraction/memory-temporality-classifier.js +1 -1
- package/dist/internal/engine/observability/adapter.d.ts +1 -1
- package/dist/internal/engine/observability/memory-snapshot.d.ts +1 -1
- package/dist/internal/engine/observability/observable-embedder.d.ts +1 -1
- package/dist/internal/engine/observability/observable-llm-client.d.ts +1 -1
- package/dist/internal/engine/observability/observable-memory-store.d.ts +1 -1
- package/dist/internal/engine/observability/observable-memory-store.js +1 -1
- package/dist/internal/engine/observability/observable-retriever.d.ts +1 -1
- package/dist/internal/engine/observability/observable-retriever.js +1 -1
- package/dist/internal/engine/observability/runtime-diagnostics.d.ts +1 -1
- package/dist/internal/engine/observability/runtime-diagnostics.js +1 -1
- package/dist/internal/engine/operations/memory-tier-promoter.d.ts +1 -1
- package/dist/internal/engine/operations/runtime-audit-log.d.ts +2 -2
- package/dist/internal/engine/provider/provider-registration.d.ts +4 -4
- package/dist/internal/engine/provider/provider-row-renderer.d.ts +1 -1
- package/dist/internal/engine/reflection/reflection-command-hooks.d.ts +1 -1
- package/dist/internal/engine/reflection/reflection-command-hooks.js +1 -1
- package/dist/internal/engine/reflection/reflection-deps.d.ts +1 -1
- package/dist/internal/engine/reflection/reflection-embedded-generator.d.ts +1 -1
- package/dist/internal/engine/reflection/reflection-embedded-generator.js +1 -1
- package/dist/internal/engine/reflection/reflection-injection-hooks.d.ts +1 -1
- package/dist/internal/engine/reflection/reflection-injection-hooks.js +1 -1
- package/dist/internal/engine/reflection/reflection-lifecycle-hooks.d.ts +1 -1
- package/dist/internal/engine/reflection/reflection-lifecycle-hooks.js +1 -1
- package/dist/internal/engine/reflection/strategy-hook-runner.d.ts +3 -3
- package/dist/internal/engine/reflection/strategy-hook-runner.js +2 -2
- package/dist/internal/engine/retrieval/access-tracker.d.ts +1 -1
- package/dist/internal/engine/retrieval/retriever.d.ts +2 -2
- package/dist/internal/engine/retrieval/retriever.js +1 -1
- package/dist/internal/engine/shared/memory-kind-policy.d.ts +1 -1
- package/dist/internal/engine/shared/paths.d.ts +2 -2
- package/dist/internal/engine/shared/types.d.ts +2 -2
- package/dist/internal/engine/shared/types.js +1 -1
- package/dist/internal/engine/telemetry/observe-ledger.d.ts +1 -1
- package/dist/internal/model/agent-llm-port.d.ts +1 -1
- package/dist/internal/model/llm-client.d.ts +2 -2
- package/dist/internal/model/llm-client.js +1 -1
- package/dist/internal/model/llm-mode-routing.d.ts +1 -1
- package/dist/internal/store/maintenance.d.ts +2 -2
- package/dist/internal/store/maintenance.js +3 -3
- package/dist/internal/store/store.d.ts +2 -2
- package/dist/internal/store/store.js +1 -1
- package/dist/{llm-client-B7LSFL_m.d.ts → llm-client-BoClMktv.d.ts} +1 -1
- package/dist/{llm-client-C7yyFWu-.js → llm-client-DDdUjYWS.js} +10 -3
- package/dist/{log-site-catalog.generated-BODn_6Kx.js → log-site-catalog.generated-DGia_6ZR.js} +66 -59
- package/dist/log-site-catalog.json +1 -1
- package/dist/{memory-kind-policy-B4IBMAlv.d.ts → memory-kind-policy-C7p4o8ru.d.ts} +1 -1
- package/dist/{memory-metadata-codec-BQ8tBY-g.d.ts → memory-metadata-codec-CFY8YtXf.d.ts} +1 -1
- package/dist/{memory-runtime-4iOpeP09.js → memory-runtime-CCPRiAk9.js} +89 -63
- package/dist/{memory-snapshot-B8mQbWR-.d.ts → memory-snapshot-DADY3InD.d.ts} +2 -2
- package/dist/{memory-store-base-CTAMKigD.d.ts → memory-store-base-D0bLwzyF.d.ts} +3 -3
- package/dist/{memory-temporality-classifier-epuZlfXa.js → memory-temporality-classifier-BwBKEQbL.js} +1 -1
- package/dist/{memory-temporality-classifier-LByFBiFJ.d.ts → memory-temporality-classifier-DL14kjtv.d.ts} +1 -1
- package/dist/{memory-tier-promoter-CSGa4LBH.d.ts → memory-tier-promoter-Cf1OdoZK.d.ts} +1 -1
- package/dist/memory-tool-dependencies-Bxdpvs3Z.d.ts +14 -0
- package/dist/{memory-tool-dependencies-xLaWzwpI.js → memory-tool-dependencies-aAr7Pkuj.js} +1 -1
- package/dist/{observable-embedder-Da0teBqx.d.ts → observable-embedder-CPyX9y7c.d.ts} +1 -1
- package/dist/{observable-llm-client-i0sp0veF.d.ts → observable-llm-client-C8ndPJck.d.ts} +3 -3
- package/dist/{observable-memory-store-CS87pitJ.d.ts → observable-memory-store-DhOfgjkU.d.ts} +4 -4
- package/dist/{observable-retriever-Bhfg9DsZ.d.ts → observable-retriever-CUlmCFy5.d.ts} +5 -5
- package/dist/paths-DnNN0G1t.d.ts +1 -0
- package/dist/{plugin-config-schema-CcEeAEdi.d.ts → plugin-config-schema-BPg-ppSt.d.ts} +2 -8
- package/dist/{plugin-config-schema-CvAGFPyE.js → plugin-config-schema-D9riSXDg.js} +3 -20
- package/dist/{profile-BMvnRqf5.d.ts → profile-BksZRjJ8.d.ts} +1 -1
- package/dist/{profile-section-writer-DeD9GPQJ.js → profile-section-writer-Dd4FKpt5.js} +2 -2
- package/dist/{reflection-command-hooks-S5L6ZWeh.js → reflection-command-hooks-B2P4zDr6.js} +3 -3
- package/dist/{reflection-command-hooks-CFXyoVvE.d.ts → reflection-command-hooks-mCOmD8b6.d.ts} +4 -4
- package/dist/{reflection-deps-BPMrDU0a.d.ts → reflection-deps-BYkAaKxD.d.ts} +3 -3
- package/dist/{reflection-embedded-generator-nmVrj4AZ.js → reflection-embedded-generator-DV-NkeU-.js} +1 -1
- package/dist/{reflection-embedded-generator-CF-NbuPS.d.ts → reflection-embedded-generator-ve1PhgUY.d.ts} +4 -4
- package/dist/{reflection-injection-hooks-BRIr3lJM.d.ts → reflection-injection-hooks-CphBCA9F.d.ts} +4 -4
- package/dist/{reflection-lifecycle-hooks-Ci8y4qHk.d.ts → reflection-lifecycle-hooks-CFGYh_8m.d.ts} +3 -3
- package/dist/{rem-batch-executor-CfWChDAk.js → rem-batch-executor-TSYG7oVi.js} +1 -1
- package/dist/{rem-trigger-B1P5_RqV.js → rem-trigger-i_E8I9lv.js} +93 -154
- package/dist/{retriever-DdikFSDC.d.ts → retriever-6ybsoVuY.d.ts} +14 -24
- package/dist/{retriever-CpyZs2ND.js → retriever-Dnjl_FHu.js} +87 -157
- package/dist/{runtime-audit-log-BVOxzkh7.d.ts → runtime-audit-log-DWpWmCx5.d.ts} +1 -1
- package/dist/{server-DOL3D6bb.js → server-DsaVeSaM.js} +4 -4
- package/dist/sidecar/main.js +2 -2
- package/dist/sno-station-mem-runtime-dependencies-DtKDYdsh.d.ts +31 -0
- package/dist/{sno-station-mem-runtime-dependencies-DZe3z4RY.js → sno-station-mem-runtime-dependencies-zzcjHD_N.js} +6 -6
- package/dist/{store-DY_rWx__.js → store-COwW7mIh.js} +1 -1
- package/dist/{store-DraRJ-HI.d.ts → store-HyzTUvwj.d.ts} +1 -1
- package/dist/{strategy-hook-runner-DH7OEQrH.d.ts → strategy-hook-runner-B_m1L5CB.d.ts} +7 -7
- package/dist/{strategy-hook-runner-CltVTtzk.js → strategy-hook-runner-CALbWcys.js} +1 -1
- package/dist/{types-DZGL4QXi.d.ts → types-Dm_XhSne.d.ts} +1 -1
- package/package.json +1 -1
- package/settings.default.json +0 -4
- package/dist/memory-tool-dependencies-Bl11T6Xm.d.ts +0 -14
- package/dist/paths-B5y-npWs.d.ts +0 -1
- 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-
|
|
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-
|
|
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-
|
|
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";
|
package/dist/{reflection-command-hooks-CFXyoVvE.d.ts → reflection-command-hooks-mCOmD8b6.d.ts}
RENAMED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { t as PluginConfig } from "./plugin-config-schema-
|
|
2
|
-
import "./types-
|
|
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-
|
|
5
|
-
import { t as ReflectionDeps } from "./reflection-deps-
|
|
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-
|
|
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-
|
|
4
|
-
import "./store-
|
|
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
|
package/dist/{reflection-embedded-generator-nmVrj4AZ.js → reflection-embedded-generator-DV-NkeU-.js}
RENAMED
|
@@ -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-
|
|
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-
|
|
2
|
-
import "./types-
|
|
3
|
-
import { n as AgentLlmPort } from "./agent-llm-port-
|
|
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-
|
|
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;
|
package/dist/{reflection-injection-hooks-BRIr3lJM.d.ts → reflection-injection-hooks-CphBCA9F.d.ts}
RENAMED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { t as PluginConfig } from "./plugin-config-schema-
|
|
2
|
-
import "./types-
|
|
3
|
-
import "./store-
|
|
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-
|
|
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>;
|
package/dist/{reflection-lifecycle-hooks-Ci8y4qHk.d.ts → reflection-lifecycle-hooks-CFGYh_8m.d.ts}
RENAMED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { t as PluginConfig } from "./plugin-config-schema-
|
|
2
|
-
import "./types-
|
|
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-
|
|
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-
|
|
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
|
|
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:
|
|
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
|
-
|
|
27578
|
-
|
|
27579
|
-
|
|
27580
|
-
|
|
27581
|
-
|
|
27582
|
-
|
|
27583
|
-
|
|
27584
|
-
|
|
27585
|
-
|
|
27586
|
-
|
|
27587
|
-
|
|
27588
|
-
|
|
27589
|
-
}
|
|
27590
|
-
|
|
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
|
-
|
|
27662
|
-
|
|
27663
|
-
const parseItems = (items
|
|
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
|
|
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
|
-
|
|
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
|
|
27767
|
-
|
|
27768
|
-
|
|
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
|
|
27803
|
-
|
|
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
|
|
27727
|
+
const rerankEndpoint = this.config.rerankEndpoint;
|
|
27807
27728
|
if (!rerankEndpoint) {
|
|
27808
|
-
log$4.warn("rerank skipped: no
|
|
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
|
|
27824
|
-
const stepStop =
|
|
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(
|
|
27873
|
-
const
|
|
27874
|
-
|
|
27875
|
-
|
|
27876
|
-
|
|
27877
|
-
|
|
27878
|
-
|
|
27879
|
-
|
|
27880
|
-
|
|
27881
|
-
|
|
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(
|
|
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
|
-
|
|
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-
|
|
2
|
-
import {
|
|
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-
|
|
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-
|
|
8
|
-
import "./store-
|
|
9
|
-
import { n as AccessTracker } from "./access-tracker-
|
|
10
|
-
import { r as TierPromoter } from "./memory-tier-promoter-
|
|
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
|
-
/**
|
|
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
|
-
*
|
|
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`:
|
|
365
|
-
*
|
|
366
|
-
* - `
|
|
367
|
-
*
|
|
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,
|
|
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 };
|