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