@snoai/memory 1.5.1 → 1.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/{access-tracker-D-riPZRY.d.ts → access-tracker-CFxRg7Bt.d.ts} +4 -4
- package/dist/{adapter-BM58hult.d.ts → adapter-BFtbOOw3.d.ts} +2 -2
- package/dist/{atomic-extraction-reply-BJ9XV_9s.js → atomic-extraction-reply-DF_S9ROg.js} +6 -3
- package/dist/{atomic-memory-extraction-BNBCB1XD.d.ts → atomic-memory-extraction-Bp7AWZqi.d.ts} +4 -4
- package/dist/{atomic-memory-extraction-BaBrfESt.js → atomic-memory-extraction-pL1_58Kw.js} +45 -6
- package/dist/{b-profile-section-dictionary-provider-D2kzg9Re.d.ts → b-profile-section-dictionary-provider-Buj_M-QA.d.ts} +1 -1
- package/dist/{capture-policy-detector-CoT-j_Ic.d.ts → capture-policy-detector-3tDQkBi9.d.ts} +1 -1
- package/dist/client.d.ts +1 -1
- package/dist/{coding-skin-azRXA51Z.js → coding-skin-AW1UPUPY.js} +9 -1
- package/dist/coding-skin.d.ts +8 -0
- package/dist/coding-skin.js +2 -2
- package/dist/{config-BhlMin82.js → config-BwUcq2zS.js} +61 -126
- package/dist/{derived-suppression-cache-BW52dq3w.d.ts → derived-suppression-cache-CcANI-p7.d.ts} +1 -1
- package/dist/diagnostic-encoder.js +1 -1
- package/dist/{index-BGu91bjB.d.ts → index-CJrMFlAU.d.ts} +12 -50
- package/dist/{index-GoYmsx8b.d.ts → index-Df9420Pl.d.ts} +2 -2
- package/dist/index.d.ts +9 -9
- package/dist/index.js +6 -6
- package/dist/internal/config/index.d.ts +2 -2
- package/dist/internal/config/index.js +13 -51
- 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 +17 -48
- 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 +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 +5 -5
- package/dist/internal/engine/bindings/sno-station-mem-insight-distill-factory.js +3 -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/eval/trace.js +3 -4
- 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 +3 -3
- 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 +2 -2
- 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/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/maintenance.d.ts +2 -2
- package/dist/internal/store/maintenance.js +4 -4
- package/dist/internal/store/store.d.ts +2 -2
- package/dist/internal/store/store.js +1 -1
- package/dist/{llm-client-Z_VkmTsW.js → llm-client-Dq9FZPdC.js} +43 -10
- package/dist/{llm-client-9XCsnmf0.d.ts → llm-client-nWW1o1F6.d.ts} +1 -1
- package/dist/{log-site-catalog.generated-lc-iJczN.js → log-site-catalog.generated-Wze-GrOG.js} +130 -200
- package/dist/log-site-catalog.json +1 -1
- package/dist/{memory-kind-policy-DcEvUTKl.d.ts → memory-kind-policy-BMebgugU.d.ts} +1 -1
- package/dist/{memory-metadata-codec-CLtCCf-b.d.ts → memory-metadata-codec-H8BniJM3.d.ts} +1 -1
- package/dist/{memory-runtime-De1T9jTv.js → memory-runtime-B4A1t5DO.js} +182 -207
- package/dist/{memory-snapshot-BXB2APN0.d.ts → memory-snapshot-CKnQovB5.d.ts} +2 -2
- package/dist/{memory-store-base-yOAD7Ff8.d.ts → memory-store-base-BHYXgsCq.d.ts} +3 -3
- package/dist/{memory-temporality-classifier-s7TjoKB-.js → memory-temporality-classifier-CHcnOT5T.js} +2 -2
- package/dist/{memory-temporality-classifier-BxmM3FOb.d.ts → memory-temporality-classifier-Wi6WWeAj.d.ts} +1 -1
- package/dist/{memory-tier-promoter-DjJwYB4w.d.ts → memory-tier-promoter-m60-RlAj.d.ts} +1 -1
- package/dist/{memory-tool-dependencies-C8JSCWCz.js → memory-tool-dependencies-CAVm0Sy4.js} +1 -1
- package/dist/memory-tool-dependencies-D2fOC-KL.d.ts +14 -0
- package/dist/{model-call-table-CPyQfBJ6.js → model-call-table-DjfbmUDl.js} +12 -7
- package/dist/{observable-embedder-DCtHXucw.d.ts → observable-embedder-0FwxJMhJ.d.ts} +1 -1
- package/dist/{observable-llm-client-DykY0exK.d.ts → observable-llm-client-DY7w1Fj1.d.ts} +3 -3
- package/dist/{observable-memory-store-ZBTjMAHj.d.ts → observable-memory-store-C25Q_hoW.d.ts} +4 -4
- package/dist/{observable-retriever-f8ENkQnP.d.ts → observable-retriever-Cs9Bwzq6.d.ts} +5 -5
- package/dist/paths-obFSsJv3.d.ts +1 -0
- package/dist/{plugin-config-schema-D9riSXDg.js → plugin-config-schema-D-IoHmis.js} +22 -43
- package/dist/{plugin-config-schema-CsKKIHq9.d.ts → plugin-config-schema-DQh5njrS.d.ts} +8 -10
- package/dist/{profile-CxdMGvxU.d.ts → profile-CcvVR6K8.d.ts} +1 -1
- package/dist/{profile-section-writer-B54r7JN1.js → profile-section-writer-3apndAJu.js} +2 -2
- package/dist/{reflection-command-hooks-a1kgC2cr.js → reflection-command-hooks-B9UENMGV.js} +4 -3
- package/dist/{reflection-command-hooks-_B_XZBIz.d.ts → reflection-command-hooks-BRLqVNCi.d.ts} +4 -4
- package/dist/{reflection-deps-DQBHeGYK.d.ts → reflection-deps-C0TJ-gpU.d.ts} +2 -2
- package/dist/{reflection-embedded-generator-LmZQqGER.d.ts → reflection-embedded-generator-Cs59hWYr.d.ts} +3 -3
- package/dist/{reflection-embedded-generator-DEuTWrBh.js → reflection-embedded-generator-Do_r_LbU.js} +2 -1
- package/dist/{reflection-injection-hooks-CTDCwu2_.d.ts → reflection-injection-hooks-Cy4bRemm.d.ts} +4 -4
- package/dist/{reflection-lifecycle-hooks-eFUc2mcd.d.ts → reflection-lifecycle-hooks-C-lf00DB.d.ts} +3 -3
- package/dist/{rem-batch-executor-D42YWCNg.js → rem-batch-executor-BUgNyYLv.js} +1 -1
- package/dist/{rem-trigger-BKr4Qmhn.js → rem-trigger-pg_cCp5U.js} +74 -437
- package/dist/{retriever-BsjtyINJ.d.ts → retriever-2RJYAvlD.d.ts} +10 -52
- package/dist/{retriever-CsBW6MZv.js → retriever-C54bXeDh.js} +30 -452
- package/dist/{runtime-audit-log-C-L0v2HU.d.ts → runtime-audit-log-D2Hqk_kl.d.ts} +1 -1
- package/dist/{server-BPOT66a_.js → server-CByyXSvp.js} +4 -4
- package/dist/sidecar/main.js +2 -2
- package/dist/sno-station-mem-runtime-dependencies-ByI3b-wB.d.ts +31 -0
- package/dist/{sno-station-mem-runtime-dependencies-DES7ZvMt.js → sno-station-mem-runtime-dependencies-CgNS1dIM.js} +6 -6
- package/dist/{store-CukgAPqu.d.ts → store-Bz0y76cJ.d.ts} +1 -1
- package/dist/{store-DRwqWMTh.js → store-DNgKOGWP.js} +1 -1
- package/dist/{strategy-hook-runner-s8dAEQ3P.js → strategy-hook-runner-Bg6rBY71.js} +1 -1
- package/dist/{strategy-hook-runner-BlJxjMjC.d.ts → strategy-hook-runner-vbrWiDbK.d.ts} +7 -7
- package/dist/{types-C9Hngi-p.d.ts → types-El7jViCz.d.ts} +1 -1
- package/package.json +1 -1
- package/settings.default.json +9 -10
- package/skills/extract-atomic-memory/SKILL.md +4 -3
- package/skills/extract-atomic-memory/references/capture.md +3 -2
- package/dist/memory-tool-dependencies-BsaSVzC8.d.ts +0 -14
- package/dist/paths-m8yncZgm.d.ts +0 -1
- package/dist/sno-station-mem-runtime-dependencies-B47DIcei.d.ts +0 -31
package/README.md
CHANGED
|
@@ -28,7 +28,7 @@ Who it is for: you do not use this package directly. Follow the
|
|
|
28
28
|
plugins use to reach the service.
|
|
29
29
|
|
|
30
30
|
```bash
|
|
31
|
-
npm install @snoai/memory@1.
|
|
31
|
+
npm install @snoai/memory@1.7.0
|
|
32
32
|
```
|
|
33
33
|
|
|
34
34
|
Needs Node.js 22.22.3+, 24.15.0+ or 25.9.0+. Licensed under Apache-2.0.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { v as MemoryMetadata } from "./types-
|
|
2
|
-
import {
|
|
3
|
-
import { C as MemoryStore } from "./memory-store-base-
|
|
4
|
-
import "./store-
|
|
1
|
+
import { v as MemoryMetadata } from "./types-El7jViCz.js";
|
|
2
|
+
import { tn as RecallLifecycleConfig } from "./index-CJrMFlAU.js";
|
|
3
|
+
import { C as MemoryStore } from "./memory-store-base-BHYXgsCq.js";
|
|
4
|
+
import "./store-Bz0y76cJ.js";
|
|
5
5
|
//#region src/engine/retrieval/access-tracker.d.ts
|
|
6
6
|
interface AccessMetadata {
|
|
7
7
|
readonly accessCount: number;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { t as PluginConfig } from "./plugin-config-schema-
|
|
2
|
-
import "./types-
|
|
1
|
+
import { t as PluginConfig } from "./plugin-config-schema-DQh5njrS.js";
|
|
2
|
+
import "./types-El7jViCz.js";
|
|
3
3
|
import { t as ObserveLogger } from "./best-effort-BPZSzKk0.js";
|
|
4
4
|
import { AgentId, EventType, JsonObject } from "@snoai/observability";
|
|
5
5
|
//#region src/engine/observability/cost-aggregator.d.ts
|
|
@@ -48,8 +48,11 @@ var atomic_extraction_response_schema_default = {
|
|
|
48
48
|
properties: {
|
|
49
49
|
"claims_found": {
|
|
50
50
|
"type": "array",
|
|
51
|
-
"items": {
|
|
52
|
-
|
|
51
|
+
"items": {
|
|
52
|
+
"type": "integer",
|
|
53
|
+
"minimum": 0
|
|
54
|
+
},
|
|
55
|
+
"description": "For each claim the turns this call owns state, in the order they appear, the turn_index it came from: a number, never the claim's words; empty when they state none. Written before records so the list is read before the array is opened."
|
|
53
56
|
},
|
|
54
57
|
"records": {
|
|
55
58
|
"type": "array",
|
|
@@ -720,7 +723,7 @@ const captureFactSchema = wireRecordSchema.pick({
|
|
|
720
723
|
ended_at_phrase: wireRecordSchema.shape.ended_at_phrase.unwrap()
|
|
721
724
|
});
|
|
722
725
|
const captureReplySchema = z.object({
|
|
723
|
-
claims_found: z.array(z.
|
|
726
|
+
claims_found: z.array(z.number().int().nonnegative()),
|
|
724
727
|
decisions: z.array(z.object({
|
|
725
728
|
turn_index: z.number().int().nonnegative(),
|
|
726
729
|
progress_only: z.boolean()
|
package/dist/{atomic-memory-extraction-BNBCB1XD.d.ts → atomic-memory-extraction-Bp7AWZqi.d.ts}
RENAMED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { i as LlmClientConfig, l as ModelCallId, p as LlmRoutingConfig, r as LlmClient } from "./plugin-config-schema-
|
|
1
|
+
import { i as LlmClientConfig, l as ModelCallId, p as LlmRoutingConfig, r as LlmClient } from "./plugin-config-schema-DQh5njrS.js";
|
|
2
2
|
import { n as Locale } from "./locales-JxGmkG6t.js";
|
|
3
3
|
import { qt as AdapterAMemoryView } from "./index-DPfJrOFD.js";
|
|
4
|
-
import { C as MemoryStore, c as AtomicExtractionRunParameters, f as AtomicExtractionWriteResult, g as BeginAtomicExtractionChunkResult, r as AtomicExtractionLedgerKey, s as AtomicExtractionReprocessReason, x as MemoryRelationPredicate } from "./memory-store-base-
|
|
5
|
-
import "./store-
|
|
6
|
-
import "./llm-client-
|
|
4
|
+
import { C as MemoryStore, c as AtomicExtractionRunParameters, f as AtomicExtractionWriteResult, g as BeginAtomicExtractionChunkResult, r as AtomicExtractionLedgerKey, s as AtomicExtractionReprocessReason, x as MemoryRelationPredicate } from "./memory-store-base-BHYXgsCq.js";
|
|
5
|
+
import "./store-Bz0y76cJ.js";
|
|
6
|
+
import "./llm-client-nWW1o1F6.js";
|
|
7
7
|
import { z } from "zod";
|
|
8
8
|
//#region src/engine/extraction/calendar-instruction.d.ts
|
|
9
9
|
type CalendarPrecision = "year" | "month" | "week" | "day" | "minute";
|
|
@@ -3,21 +3,21 @@ import "./internal/engine/i18n/locales.js";
|
|
|
3
3
|
import { $ as FIXED_MEMORY_SNO_EXTRACT_PROFILE, Q as FIXED_MEMORY_SNO_EXTRACT_CHAT } from "./signed-registry-constants-yq3DlG3B.js";
|
|
4
4
|
import { redactSecrets } from "./internal/engine/security/redact.js";
|
|
5
5
|
import { t as appendAuditEntry } from "./runtime-audit-log-DK6xAYxh.js";
|
|
6
|
-
import { a as isTerminalLlmFailure, i as createLlmClient, n as LlmClientTerminalError } from "./llm-client-
|
|
6
|
+
import { a as isTerminalLlmFailure, i as createLlmClient, n as LlmClientTerminalError } from "./llm-client-Dq9FZPdC.js";
|
|
7
7
|
import { n as readModelReplyJson } from "./model-reply-text-CKopStP2.js";
|
|
8
8
|
import { resolveLlmRoute } from "./internal/model/llm-mode-routing.js";
|
|
9
9
|
import { n as ATOMIC_EXTRACTION_SKILL_HASH, r as atomicExtractionSkillReference, t as ATOMIC_EXTRACTION_SKILL } from "./atomic-extraction-skill-CcXmuCqL.js";
|
|
10
10
|
import { stripEnvelopeMetadata } from "./internal/engine/extraction/extraction-text-sanitizer.js";
|
|
11
11
|
import { a as sessionZoneCarriedBy, t as calculateCalendarTime } from "./calendar-instruction-CzqZbAPG.js";
|
|
12
|
-
import "./memory-temporality-classifier-
|
|
13
|
-
import { a as parseAtomicCaptureReply, c as atomic_extraction_response_schema_default, i as fallbackAtomicCapturedFact, l as excludeProgressRecords, n as ATOMIC_ENRICHMENT_RESPONSE_JSON_SCHEMA, o as parseAtomicEnrichmentReply, r as ATOMIC_EXTRACTION_RESPONSE_JSON_SCHEMA, s as parseAtomicExtractionReply, t as ATOMIC_CAPTURE_RESPONSE_JSON_SCHEMA } from "./atomic-extraction-reply-
|
|
12
|
+
import "./memory-temporality-classifier-CHcnOT5T.js";
|
|
13
|
+
import { a as parseAtomicCaptureReply, c as atomic_extraction_response_schema_default, i as fallbackAtomicCapturedFact, l as excludeProgressRecords, n as ATOMIC_ENRICHMENT_RESPONSE_JSON_SCHEMA, o as parseAtomicEnrichmentReply, r as ATOMIC_EXTRACTION_RESPONSE_JSON_SCHEMA, s as parseAtomicExtractionReply, t as ATOMIC_CAPTURE_RESPONSE_JSON_SCHEMA } from "./atomic-extraction-reply-DF_S9ROg.js";
|
|
14
14
|
import { adapterAViewFromRecord, isAdapterAVerdictReply, parseAdapterAChatVerdict, renderAdapterAChatPrompt, renderAdapterAPrompt } from "./internal/engine/rem/index.js";
|
|
15
15
|
import { n as state_vocabulary_default, r as attribute_dictionary_default, t as relations } from "./relation-dictionary-Cev1kyLe.js";
|
|
16
16
|
import { g as randomUUID$1 } from "./memory-store-shared-pOb59ScU.js";
|
|
17
|
-
import { b as normalizeMemoryRelationPredicate, d as normalizeEntityName, f as recordAtomicEntityIdentityJournal, g as readAtomicArrivalRetirementCandidateSet, h as journalAtomicArrivalRetirementRefusal, m as closeAtomicArrivalRetirementTargets, u as listAtomicMemoryEntityCandidates, v as AtomicExtractionCompletedElsewhere } from "./store-
|
|
17
|
+
import { b as normalizeMemoryRelationPredicate, d as normalizeEntityName, f as recordAtomicEntityIdentityJournal, g as readAtomicArrivalRetirementCandidateSet, h as journalAtomicArrivalRetirementRefusal, m as closeAtomicArrivalRetirementTargets, u as listAtomicMemoryEntityCandidates, v as AtomicExtractionCompletedElsewhere } from "./store-DNgKOGWP.js";
|
|
18
18
|
import { o as normalizeTopicToSectionName } from "./b-profile-section-dictionary-provider-BHkoNqgk.js";
|
|
19
19
|
import { r as recordTokenCounter } from "./memory-store-write-validation-B_hDG2zf.js";
|
|
20
|
-
import { i as prepareDeterministicTaskLifecycleWrite, t as PROFILE_IDENTITY_SECTION } from "./profile-section-writer-
|
|
20
|
+
import { i as prepareDeterministicTaskLifecycleWrite, t as PROFILE_IDENTITY_SECTION } from "./profile-section-writer-3apndAJu.js";
|
|
21
21
|
import { z } from "zod";
|
|
22
22
|
import { countTokens } from "@snoai/chunking";
|
|
23
23
|
import { createLogger, currentLogContext, privateLogReference, withLogContext } from "@snoai/utils/logger";
|
|
@@ -2604,10 +2604,49 @@ function parseAtomicConversationTurns(conversationText) {
|
|
|
2604
2604
|
if (current) turns.push(current);
|
|
2605
2605
|
return turns;
|
|
2606
2606
|
}
|
|
2607
|
+
/**
|
|
2608
|
+
* A capture carries a whole session, so one window over the input budget would be left pending
|
|
2609
|
+
* unextracted: cut it into consecutive windows of whole user-started groups that each fit. A single
|
|
2610
|
+
* group over the budget stays alone.
|
|
2611
|
+
*/
|
|
2612
|
+
function captureBatchWindows(turns, userIndexes) {
|
|
2613
|
+
const window = (from, until) => ({
|
|
2614
|
+
turns: turns.slice(from, until),
|
|
2615
|
+
contextTurns: [],
|
|
2616
|
+
followingTurns: [],
|
|
2617
|
+
startIndex: from,
|
|
2618
|
+
ownedTurnIndexes: Array.from({ length: until - from }, (_, offset) => from + offset)
|
|
2619
|
+
});
|
|
2620
|
+
const fits = (from, until) => {
|
|
2621
|
+
const slice = turns.slice(from, until);
|
|
2622
|
+
return Math.ceil(JSON.stringify({
|
|
2623
|
+
context: [],
|
|
2624
|
+
following: [],
|
|
2625
|
+
turns: slice
|
|
2626
|
+
}).length / 4) <= 4096 && countTokens(JSON.stringify({
|
|
2627
|
+
turns: numberAtomicTurns(slice),
|
|
2628
|
+
preceding: [],
|
|
2629
|
+
following: []
|
|
2630
|
+
})) <= 4096;
|
|
2631
|
+
};
|
|
2632
|
+
const starts = [0, ...userIndexes.filter((index) => index > 0)];
|
|
2633
|
+
const windows = [];
|
|
2634
|
+
let from = 0;
|
|
2635
|
+
for (let group = 1; group < starts.length; group += 1) {
|
|
2636
|
+
const start = starts[group] ?? turns.length;
|
|
2637
|
+
if (!fits(from, starts[group + 1] ?? turns.length)) {
|
|
2638
|
+
windows.push(window(from, start));
|
|
2639
|
+
from = start;
|
|
2640
|
+
}
|
|
2641
|
+
}
|
|
2642
|
+
windows.push(window(from, turns.length));
|
|
2643
|
+
return windows;
|
|
2644
|
+
}
|
|
2607
2645
|
function atomicConversationWindows(turns, captureBatch = false) {
|
|
2608
2646
|
const userIndexes = turns.flatMap((turn, index) => turn.role === "user" ? [index] : []);
|
|
2609
2647
|
if (userIndexes.length === 0) return [];
|
|
2610
|
-
if (captureBatch
|
|
2648
|
+
if (captureBatch) return captureBatchWindows(turns, userIndexes);
|
|
2649
|
+
if (userIndexes.length <= 2) return [{
|
|
2611
2650
|
turns: [...turns],
|
|
2612
2651
|
contextTurns: [],
|
|
2613
2652
|
followingTurns: [],
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { g as ProductMode } from "./plugin-config-schema-
|
|
1
|
+
import { g as ProductMode } from "./plugin-config-schema-DQh5njrS.js";
|
|
2
2
|
import { n as Locale } from "./locales-JxGmkG6t.js";
|
|
3
3
|
import { z } from "zod";
|
|
4
4
|
//#region src/engine/extraction/b-profile-section-registry.d.ts
|
package/dist/{capture-policy-detector-CoT-j_Ic.d.ts → capture-policy-detector-3tDQkBi9.d.ts}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { h as MemoryCategory } from "./types-
|
|
1
|
+
import { h as MemoryCategory } from "./types-El7jViCz.js";
|
|
2
2
|
//#region src/engine/extraction/capture-policy-detector.d.ts
|
|
3
3
|
declare const PROMPT_INJECTION_PATTERNS: RegExp[];
|
|
4
4
|
/** Implements looks like prompt injection as the local memory capture policy operation. */
|
package/dist/client.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Discovery } from "./internal/contract/discovery.js";
|
|
2
|
-
import { B as Registration, F as Inspection, H as Turn, I as JsonValue, L as Message, N as HostEvent, P as InitRegistration, R as Mutation, U as UsageSignal, V as ScopeCtx, n as MemoryContract, rt as DegradedReason, tt as ContractError, y as ContractOutputs, z as RecallOptions } from "./index-
|
|
2
|
+
import { B as Registration, F as Inspection, H as Turn, I as JsonValue, L as Message, N as HostEvent, P as InitRegistration, R as Mutation, U as UsageSignal, V as ScopeCtx, n as MemoryContract, rt as DegradedReason, tt as ContractError, y as ContractOutputs, z as RecallOptions } from "./index-Df9420Pl.js";
|
|
3
3
|
//#region src/contract/client.d.ts
|
|
4
4
|
export interface ConnectOptions {
|
|
5
5
|
skinId: string;
|
|
@@ -159,6 +159,14 @@ const CODING_SKIN_WORKER_LIFETIME_MS = 54e4;
|
|
|
159
159
|
const CODING_SKIN_RETRY_DELAYS_MS = [2e3, 1e4];
|
|
160
160
|
const CODING_SKIN_MAX_ATTEMPTS = 3;
|
|
161
161
|
const CODING_SKIN_MAX_PENDING_CAPTURES = 1e3;
|
|
162
|
+
/** A session's turns wait in the spool until the session ends or has had no new turn for this long, then go together. */
|
|
163
|
+
const CODING_SKIN_CAPTURE_QUIET_MS = 18e5;
|
|
164
|
+
/**
|
|
165
|
+
* Input per capture, estimated as UTF-8 bytes / 3 (at or above the sidecar's CJK-aware count). It keeps one capture to
|
|
166
|
+
* about one 4,096-token extraction window, so a capture ends well inside its route deadline and a failed one retries
|
|
167
|
+
* a small part; the rest is room for the window's JSON framing.
|
|
168
|
+
*/
|
|
169
|
+
const CODING_SKIN_CAPTURE_MAX_INPUT_TOKENS = 3500;
|
|
162
170
|
const CODING_SKIN_IMPORT_INTERVAL_MS = 2010;
|
|
163
171
|
const CODING_SKIN_CHILD_MAX_BUFFER_BYTES = 8388608;
|
|
164
172
|
const CODING_SKIN_MANUAL_SESSION_ID = "manual";
|
|
@@ -256,4 +264,4 @@ function isCodingSkinHookCommand(command, subcommand, harness) {
|
|
|
256
264
|
return basename(snoProgramPath(program)) === "sno";
|
|
257
265
|
}
|
|
258
266
|
//#endregion
|
|
259
|
-
export {
|
|
267
|
+
export { activityCursorSchema as C, readNewLines as E, EMPTY_ACTIVITY_CURSOR as S, isAgentText as T, CODING_SKIN_WORKER_LIFETIME_MS as _, CODING_SKIN_CURSOR_HOOKS as a, shellQuote as b, CODING_SKIN_LEDGER_MAX_CHARS as c, CODING_SKIN_MAX_PENDING_CAPTURES as d, CODING_SKIN_MODEL_COMMANDS as f, CODING_SKIN_SESSION_QUERY as g, CODING_SKIN_RETRY_DELAYS_MS as h, CODING_SKIN_CHILD_MAX_BUFFER_BYTES as i, CODING_SKIN_MANUAL_SESSION_ID as l, CODING_SKIN_RECALL_SENTENCE_MAX_CHARS as m, CODING_SKIN_CAPTURE_QUIET_MS as n, CODING_SKIN_HOOKS as o, CODING_SKIN_RECALL_ITEM_MAX_CHARS as p, CODING_SKIN_CHILD_DEADLINE_MS as r, CODING_SKIN_IMPORT_INTERVAL_MS as s, CODING_SKIN_CAPTURE_MAX_INPUT_TOKENS as t, CODING_SKIN_MAX_ATTEMPTS as u, codingSkinHookCommand as v, foldActivity as w, snoProgramPath as x, isCodingSkinHookCommand as y };
|
package/dist/coding-skin.d.ts
CHANGED
|
@@ -62,6 +62,14 @@ export declare const CODING_SKIN_WORKER_LIFETIME_MS: number;
|
|
|
62
62
|
export declare const CODING_SKIN_RETRY_DELAYS_MS: readonly [2_000, 10_000];
|
|
63
63
|
export declare const CODING_SKIN_MAX_ATTEMPTS = 3;
|
|
64
64
|
export declare const CODING_SKIN_MAX_PENDING_CAPTURES = 1e3;
|
|
65
|
+
/** A session's turns wait in the spool until the session ends or has had no new turn for this long, then go together. */
|
|
66
|
+
export declare const CODING_SKIN_CAPTURE_QUIET_MS: number;
|
|
67
|
+
/**
|
|
68
|
+
* Input per capture, estimated as UTF-8 bytes / 3 (at or above the sidecar's CJK-aware count). It keeps one capture to
|
|
69
|
+
* about one 4,096-token extraction window, so a capture ends well inside its route deadline and a failed one retries
|
|
70
|
+
* a small part; the rest is room for the window's JSON framing.
|
|
71
|
+
*/
|
|
72
|
+
export declare const CODING_SKIN_CAPTURE_MAX_INPUT_TOKENS = 3500;
|
|
65
73
|
export declare const CODING_SKIN_IMPORT_INTERVAL_MS = 2010;
|
|
66
74
|
export declare const CODING_SKIN_CHILD_MAX_BUFFER_BYTES: number;
|
|
67
75
|
export declare const CODING_SKIN_MANUAL_SESSION_ID = "manual";
|
package/dist/coding-skin.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { appendObserveLedgerRows } from "./internal/engine/telemetry/observe-ledger.js";
|
|
2
2
|
import { SKILL_CATEGORIES, skillVersionFor } from "./internal/config/skill-categories.js";
|
|
3
3
|
import { HOST_MODEL_CALLBACK_HOST, HOST_MODEL_CALLBACK_PATH, HOST_MODEL_DEADLINE_HEADER } from "./internal/config/skin-defaults.js";
|
|
4
|
-
import { C as
|
|
5
|
-
export { CODING_SKIN_CHILD_DEADLINE_MS, CODING_SKIN_CHILD_MAX_BUFFER_BYTES, CODING_SKIN_CURSOR_HOOKS, CODING_SKIN_HOOKS, CODING_SKIN_IMPORT_INTERVAL_MS, CODING_SKIN_LEDGER_MAX_CHARS, CODING_SKIN_MANUAL_SESSION_ID, CODING_SKIN_MAX_ATTEMPTS, CODING_SKIN_MAX_PENDING_CAPTURES, CODING_SKIN_MODEL_COMMANDS, CODING_SKIN_RECALL_ITEM_MAX_CHARS, CODING_SKIN_RECALL_SENTENCE_MAX_CHARS, CODING_SKIN_RETRY_DELAYS_MS, CODING_SKIN_SESSION_QUERY, CODING_SKIN_WORKER_LIFETIME_MS, EMPTY_ACTIVITY_CURSOR, HOST_MODEL_CALLBACK_HOST, HOST_MODEL_CALLBACK_PATH, HOST_MODEL_DEADLINE_HEADER, SKILL_CATEGORIES, activityCursorSchema, appendObserveLedgerRows, codingSkinHookCommand, foldActivity, isAgentText, isCodingSkinHookCommand, readNewLines, shellQuote, skillVersionFor, snoProgramPath };
|
|
4
|
+
import { C as activityCursorSchema, E as readNewLines, S as EMPTY_ACTIVITY_CURSOR, T as isAgentText, _ as CODING_SKIN_WORKER_LIFETIME_MS, a as CODING_SKIN_CURSOR_HOOKS, b as shellQuote, c as CODING_SKIN_LEDGER_MAX_CHARS, d as CODING_SKIN_MAX_PENDING_CAPTURES, f as CODING_SKIN_MODEL_COMMANDS, g as CODING_SKIN_SESSION_QUERY, h as CODING_SKIN_RETRY_DELAYS_MS, i as CODING_SKIN_CHILD_MAX_BUFFER_BYTES, l as CODING_SKIN_MANUAL_SESSION_ID, m as CODING_SKIN_RECALL_SENTENCE_MAX_CHARS, n as CODING_SKIN_CAPTURE_QUIET_MS, o as CODING_SKIN_HOOKS, p as CODING_SKIN_RECALL_ITEM_MAX_CHARS, r as CODING_SKIN_CHILD_DEADLINE_MS, s as CODING_SKIN_IMPORT_INTERVAL_MS, t as CODING_SKIN_CAPTURE_MAX_INPUT_TOKENS, u as CODING_SKIN_MAX_ATTEMPTS, v as codingSkinHookCommand, w as foldActivity, x as snoProgramPath, y as isCodingSkinHookCommand } from "./coding-skin-AW1UPUPY.js";
|
|
5
|
+
export { CODING_SKIN_CAPTURE_MAX_INPUT_TOKENS, CODING_SKIN_CAPTURE_QUIET_MS, CODING_SKIN_CHILD_DEADLINE_MS, CODING_SKIN_CHILD_MAX_BUFFER_BYTES, CODING_SKIN_CURSOR_HOOKS, CODING_SKIN_HOOKS, CODING_SKIN_IMPORT_INTERVAL_MS, CODING_SKIN_LEDGER_MAX_CHARS, CODING_SKIN_MANUAL_SESSION_ID, CODING_SKIN_MAX_ATTEMPTS, CODING_SKIN_MAX_PENDING_CAPTURES, CODING_SKIN_MODEL_COMMANDS, CODING_SKIN_RECALL_ITEM_MAX_CHARS, CODING_SKIN_RECALL_SENTENCE_MAX_CHARS, CODING_SKIN_RETRY_DELAYS_MS, CODING_SKIN_SESSION_QUERY, CODING_SKIN_WORKER_LIFETIME_MS, EMPTY_ACTIVITY_CURSOR, HOST_MODEL_CALLBACK_HOST, HOST_MODEL_CALLBACK_PATH, HOST_MODEL_DEADLINE_HEADER, SKILL_CATEGORIES, activityCursorSchema, appendObserveLedgerRows, codingSkinHookCommand, foldActivity, isAgentText, isCodingSkinHookCommand, readNewLines, shellQuote, skillVersionFor, snoProgramPath };
|
|
@@ -641,7 +641,7 @@ async function ensureModelDownloaded(opts) {
|
|
|
641
641
|
*
|
|
642
642
|
* Self-contained: all params via constructor; no app-level config dependency.
|
|
643
643
|
*/
|
|
644
|
-
const log$1
|
|
644
|
+
const log$1 = createLogger("embedder:local");
|
|
645
645
|
let sharedExtractor;
|
|
646
646
|
let sharedLoading$1;
|
|
647
647
|
let sharedRefCount = 0;
|
|
@@ -761,7 +761,7 @@ var LocalEmbedProvider = class {
|
|
|
761
761
|
}
|
|
762
762
|
async initPipeline() {
|
|
763
763
|
const { pipeline } = await import("@huggingface/transformers");
|
|
764
|
-
log$1
|
|
764
|
+
log$1.info("loading ONNX model", {
|
|
765
765
|
model: this.modelId,
|
|
766
766
|
cacheDir: this.cacheDir,
|
|
767
767
|
dtype: this.dtype,
|
|
@@ -793,7 +793,7 @@ var LocalEmbedProvider = class {
|
|
|
793
793
|
throw error;
|
|
794
794
|
});
|
|
795
795
|
const durationMs = Math.round(performance.now() - t0);
|
|
796
|
-
log$1
|
|
796
|
+
log$1.info("ONNX model loaded", {
|
|
797
797
|
durationMs,
|
|
798
798
|
model: this.modelId
|
|
799
799
|
}, {
|
|
@@ -806,7 +806,7 @@ var LocalEmbedProvider = class {
|
|
|
806
806
|
} catch (error) {
|
|
807
807
|
const msg = error instanceof Error ? error.message : String(error);
|
|
808
808
|
if (msg.includes("no such file") || msg.includes("ENOENT") || msg.includes("not found") || msg.includes("Could not locate file")) {
|
|
809
|
-
log$1
|
|
809
|
+
log$1.error("ONNX model not found", {
|
|
810
810
|
cacheDir: this.cacheDir,
|
|
811
811
|
model: this.modelId
|
|
812
812
|
}, {
|
|
@@ -817,7 +817,7 @@ var LocalEmbedProvider = class {
|
|
|
817
817
|
});
|
|
818
818
|
throw new ModelNotFoundError(this.modelId);
|
|
819
819
|
}
|
|
820
|
-
log$1
|
|
820
|
+
log$1.error("ONNX model init failed", { error }, {
|
|
821
821
|
event_name: "embedder.local.provider.initpipeline",
|
|
822
822
|
file: "packages/embedder/src/local-provider.ts",
|
|
823
823
|
function: "initPipeline",
|
|
@@ -849,7 +849,7 @@ var LocalEmbedProvider = class {
|
|
|
849
849
|
}
|
|
850
850
|
async embedDocuments(texts) {
|
|
851
851
|
if (texts.length === 0) return [];
|
|
852
|
-
log$1
|
|
852
|
+
log$1.debug("batch local embedding", { count: texts.length }, {
|
|
853
853
|
event_name: "embedder.local.provider.embeddocuments",
|
|
854
854
|
file: "packages/embedder/src/local-provider.ts",
|
|
855
855
|
function: "embedDocuments",
|
|
@@ -865,7 +865,7 @@ var LocalEmbedProvider = class {
|
|
|
865
865
|
}
|
|
866
866
|
async dispose() {
|
|
867
867
|
if (this._disposed) return;
|
|
868
|
-
log$1
|
|
868
|
+
log$1.debug("disposing local embedding provider", {}, {
|
|
869
869
|
event_name: "embedder.local.provider.dispose",
|
|
870
870
|
file: "packages/embedder/src/local-provider.ts",
|
|
871
871
|
function: "dispose",
|
|
@@ -1326,32 +1326,15 @@ const IMPORTANCE_WEIGHT_BASE = .7;
|
|
|
1326
1326
|
/** Minimum time decay multiplier (floor for very old entries) */
|
|
1327
1327
|
const TIME_DECAY_FLOOR = .6;
|
|
1328
1328
|
/**
|
|
1329
|
-
* Relevance vs diversity tradeoff for MMR (0.
|
|
1329
|
+
* Relevance vs diversity tradeoff for MMR (0.9 = 90% relevance, 10% diversity).
|
|
1330
1330
|
* `applyMmrDiversity` normalizes the relevance term to [0,1] (batch-max) before
|
|
1331
1331
|
* applying this weight — without that normalization, the shrinker chain above
|
|
1332
1332
|
* compresses relevance so far below the [0,1] cosine-similarity diversity term
|
|
1333
1333
|
* that this ratio was moot (diversity always won). Fixed 2026-07-05.
|
|
1334
1334
|
*/
|
|
1335
|
-
const MMR_LAMBDA = .
|
|
1336
|
-
/**
|
|
1337
|
-
const
|
|
1338
|
-
/** Weight for cross-encoder score in rerank blend */
|
|
1339
|
-
const RERANK_BLEND_CROSS = .7;
|
|
1340
|
-
/**
|
|
1341
|
-
* Fusion-score weight in local cosine-blend rerank.
|
|
1342
|
-
*
|
|
1343
|
-
* The fused score keeps a keyword-only hit at its full keyword score, so a memory sharing one word with the query
|
|
1344
|
-
* outranks the one that answers it; at 0.7 the local ranking passed that order through almost unchanged. Measured
|
|
1345
|
-
* 2026-10-15 on LoCoMo (1,540 questions, the product store and retriever, weights fitted on half the conversations
|
|
1346
|
-
* and checked on the other half): the right memory in the first five went from 27% to 68% in English and from 9% to
|
|
1347
|
-
* 58% in a Chinese translation at 0.1 / 0.9. A candidate with no stored vector keeps its fused score and would now
|
|
1348
|
-
* rank high; none of 27,064 candidates in 299 real local rankings lacked one.
|
|
1349
|
-
*/
|
|
1350
|
-
const LIGHTWEIGHT_FUSION_WEIGHT = .1;
|
|
1351
|
-
/** Cosine-similarity weight in local cosine-blend rerank */
|
|
1352
|
-
const LIGHTWEIGHT_COSINE_WEIGHT = .9;
|
|
1353
|
-
/** Default timeout for rerank API calls in milliseconds */
|
|
1354
|
-
const DEFAULT_RERANK_TIMEOUT_MS = 15e3;
|
|
1335
|
+
const MMR_LAMBDA = .9;
|
|
1336
|
+
/** Maximum wait for the local reranker in milliseconds; caller deadlines may be earlier. */
|
|
1337
|
+
const DEFAULT_RERANK_TIMEOUT_MS = 2e3;
|
|
1355
1338
|
/**
|
|
1356
1339
|
* Maximum allowed list query page size; also caps each search branch
|
|
1357
1340
|
* (`memory-store-search-api.ts` clamps both the semantic and the keyword branch to it), so it
|
|
@@ -1482,8 +1465,6 @@ const ADJACENCY_BONUS_CAP = DEFAULT_AGGREGATION_CONFIG.adjacencyBonusCap;
|
|
|
1482
1465
|
const BONUS_TOTAL_INVARIANT = DEFAULT_AGGREGATION_CONFIG.bonusTotalInvariant;
|
|
1483
1466
|
/** Filename for per-QA retrieval traces emitted during eval runs. */
|
|
1484
1467
|
const EVAL_QA_TRACES_FILENAME = "qa_traces.jsonl";
|
|
1485
|
-
/** Multiplicative penalty applied to unreturned candidates after rerank. */
|
|
1486
|
-
const LIGHTWEIGHT_RERANK_PENALTY = .8;
|
|
1487
1468
|
/**
|
|
1488
1469
|
* Zod schema for the `recallLifecycle` config block. The whole block defaults
|
|
1489
1470
|
* to `{}` so existing configs without it continue to parse and behave
|
|
@@ -1707,6 +1688,11 @@ const extractionConfigSchema = z.object({ llm: z.object({
|
|
|
1707
1688
|
baseURL: z.string().optional(),
|
|
1708
1689
|
/** Overrides provider-native env if set. */
|
|
1709
1690
|
apiKey: z.string().optional(),
|
|
1691
|
+
usageClass: z.enum([
|
|
1692
|
+
"product",
|
|
1693
|
+
"research",
|
|
1694
|
+
"ops"
|
|
1695
|
+
]).optional(),
|
|
1710
1696
|
timeoutMs: z.number().int().min(1e3).max(3e5).default(3e4)
|
|
1711
1697
|
}).strict().prefault({}) }).strict().prefault({});
|
|
1712
1698
|
const memoryReflectionConfigSchema = z.object({
|
|
@@ -1786,7 +1772,20 @@ const observeConfigSchema = z.object({
|
|
|
1786
1772
|
});
|
|
1787
1773
|
//#endregion
|
|
1788
1774
|
//#region config/plugin-config-retrieval-schema.ts
|
|
1789
|
-
const log
|
|
1775
|
+
const log = createLogger("sno-station-mem:config:retrieval");
|
|
1776
|
+
/** Published remote selections now run the existing local pipeline. */
|
|
1777
|
+
const rerankModeSchema = z.preprocess((value) => {
|
|
1778
|
+
if (value !== "cross-encoder") return value;
|
|
1779
|
+
log.info("remote reranking retired; using the local reranker", { cause: "remote-rerank-retired" }, {
|
|
1780
|
+
event_name: "memory.rerank.retired",
|
|
1781
|
+
file: "packages/memory/config/plugin-config-retrieval-schema.ts",
|
|
1782
|
+
function: "rerankModeSchema",
|
|
1783
|
+
site_id: "memory.rerank.retired"
|
|
1784
|
+
});
|
|
1785
|
+
return "lightweight";
|
|
1786
|
+
}, z.enum(["lightweight", "none"]));
|
|
1787
|
+
/** Accept published wait settings, but use no more than the local search budget. */
|
|
1788
|
+
const rerankTimeoutSchema = z.number().int().min(1e3).max(12e4).transform((value) => Math.min(value, DEFAULT_RERANK_TIMEOUT_MS));
|
|
1790
1789
|
const retrievalConfigSchema = z.object({
|
|
1791
1790
|
mode: z.enum(["precision-recall", "vector"]).default("precision-recall"),
|
|
1792
1791
|
/**
|
|
@@ -1799,14 +1798,9 @@ const retrievalConfigSchema = z.object({
|
|
|
1799
1798
|
vectorWeight: z.number().min(0).max(1).default(DEFAULT_VECTOR_WEIGHT),
|
|
1800
1799
|
bm25Weight: z.number().min(0).max(1).default(DEFAULT_BM25_WEIGHT),
|
|
1801
1800
|
minScore: z.number().min(0).max(1).default(0),
|
|
1802
|
-
rerank:
|
|
1803
|
-
"cross-encoder",
|
|
1804
|
-
"lightweight",
|
|
1805
|
-
"none"
|
|
1806
|
-
]).default("lightweight"),
|
|
1801
|
+
rerank: rerankModeSchema.default("lightweight"),
|
|
1807
1802
|
candidatePoolSize: z.number().int().min(10).max(2e3).default(64),
|
|
1808
|
-
|
|
1809
|
-
rerankTimeoutMs: z.number().int().min(1e3).max(12e4).default(DEFAULT_RERANK_TIMEOUT_MS),
|
|
1803
|
+
rerankTimeoutMs: rerankTimeoutSchema.default(DEFAULT_RERANK_TIMEOUT_MS),
|
|
1810
1804
|
recencyHalfLifeDays: z.number().min(0).max(365).default(14),
|
|
1811
1805
|
recencyWeight: z.number().min(0).max(RECENCY_WEIGHT_MAX).default(RECENCY_WEIGHT),
|
|
1812
1806
|
/** Drop memories past their valid_until timestamp (default OFF — needs A/B eval) */
|
|
@@ -1818,10 +1812,6 @@ const retrievalConfigSchema = z.object({
|
|
|
1818
1812
|
lengthNormAnchor: z.number().int().min(0).max(5e3).default(0),
|
|
1819
1813
|
hardMinScore: z.number().min(0).max(1).default(0),
|
|
1820
1814
|
timeDecayHalfLifeDays: z.number().min(0).max(365).default(60),
|
|
1821
|
-
/** Weight for fusion score in rerank blend */
|
|
1822
|
-
rerankBlendVector: z.number().min(0).max(1).optional(),
|
|
1823
|
-
/** Weight for cross-encoder score in rerank blend */
|
|
1824
|
-
rerankBlendCross: z.number().min(0).max(1).optional(),
|
|
1825
1815
|
/** Fusion-score weight when rerank="lightweight" (local cosine blend) */
|
|
1826
1816
|
lightweightFusionWeight: z.number().min(0).max(1).optional(),
|
|
1827
1817
|
/** Cosine-score weight when rerank="lightweight" (local cosine blend) */
|
|
@@ -1832,41 +1822,11 @@ const retrievalConfigSchema = z.object({
|
|
|
1832
1822
|
timeDecayFloor: z.number().min(0).max(1).optional(),
|
|
1833
1823
|
/** Relevance vs diversity tradeoff (default: 0.7) */
|
|
1834
1824
|
mmrLambda: z.number().min(0).max(1).optional(),
|
|
1835
|
-
/** Address of Sno's reranker (the Sno GPU address plus `/rerank`). */
|
|
1836
|
-
rerankEndpoint: z.string().optional(),
|
|
1837
|
-
/** Cap on candidates sent to Sno's reranker in total */
|
|
1838
|
-
rerankMaxCandidates: z.number().int().min(1).max(2e3).optional(),
|
|
1839
1825
|
/** Scaling factor for access-based reinforcement (0 = disabled, default: 0.5) */
|
|
1840
1826
|
reinforcementFactor: z.number().min(0).max(5).default(.5),
|
|
1841
1827
|
/** Hard cap: effective half-life <= baseHalfLife * maxHalfLifeMultiplier (default: 3) */
|
|
1842
1828
|
maxHalfLifeMultiplier: z.number().min(1).max(10).default(3)
|
|
1843
|
-
}).prefault({})
|
|
1844
|
-
if (ret.rerank === "none") return ret;
|
|
1845
|
-
if (ret.rerankEndpoint !== void 0) try {
|
|
1846
|
-
new URL(ret.rerankEndpoint);
|
|
1847
|
-
} catch {
|
|
1848
|
-
ctx.addIssue({
|
|
1849
|
-
code: z.ZodIssueCode.custom,
|
|
1850
|
-
path: ["rerankEndpoint"],
|
|
1851
|
-
message: `Invalid rerankEndpoint URL: "${ret.rerankEndpoint}"`
|
|
1852
|
-
});
|
|
1853
|
-
}
|
|
1854
|
-
const rerankApiKey = ret.rerankApiKey;
|
|
1855
|
-
if (ret.rerank === "cross-encoder" && !rerankApiKey?.trim()) {
|
|
1856
|
-
log$1.error("memory.rerank.key.missing", { cause: "missing-rerank-key" }, {
|
|
1857
|
-
event_name: "memory.rerank.key.missing",
|
|
1858
|
-
file: "packages/memory/config/plugin-config-retrieval-schema.ts",
|
|
1859
|
-
function: "retrievalConfigSchema",
|
|
1860
|
-
site_id: "memory.rerank.key.missing"
|
|
1861
|
-
});
|
|
1862
|
-
ctx.addIssue({
|
|
1863
|
-
code: z.ZodIssueCode.custom,
|
|
1864
|
-
path: ["rerankApiKey"],
|
|
1865
|
-
message: "retrieval.rerankApiKey is required for cross-encoder reranking"
|
|
1866
|
-
});
|
|
1867
|
-
}
|
|
1868
|
-
return ret;
|
|
1869
|
-
});
|
|
1829
|
+
}).prefault({});
|
|
1870
1830
|
//#endregion
|
|
1871
1831
|
//#region config/session-strategy.ts
|
|
1872
1832
|
/** @file session-strategy.ts
|
|
@@ -1978,6 +1938,11 @@ const extract = {
|
|
|
1978
1938
|
"agent-native": "host",
|
|
1979
1939
|
"rem-enhanced": "sno-gpu"
|
|
1980
1940
|
};
|
|
1941
|
+
const extractHost = {
|
|
1942
|
+
"local-first": "off",
|
|
1943
|
+
"agent-native": "host",
|
|
1944
|
+
"rem-enhanced": "host"
|
|
1945
|
+
};
|
|
1981
1946
|
const host = {
|
|
1982
1947
|
"local-first": "off",
|
|
1983
1948
|
"agent-native": "host",
|
|
@@ -2027,7 +1992,7 @@ const MODEL_CALLS = {
|
|
|
2027
1992
|
E2: {
|
|
2028
1993
|
description: "fact enrichment",
|
|
2029
1994
|
occasion: "memoryExtract",
|
|
2030
|
-
destinations:
|
|
1995
|
+
destinations: extractHost,
|
|
2031
1996
|
snoPreset: chat,
|
|
2032
1997
|
transport: {
|
|
2033
1998
|
host: "agent-host-seam",
|
|
@@ -2063,7 +2028,7 @@ const MODEL_CALLS = {
|
|
|
2063
2028
|
E4: {
|
|
2064
2029
|
description: "compound record split",
|
|
2065
2030
|
occasion: "memoryExtract",
|
|
2066
|
-
destinations:
|
|
2031
|
+
destinations: extractHost,
|
|
2067
2032
|
snoPreset: chat,
|
|
2068
2033
|
transport: {
|
|
2069
2034
|
host: "agent-host-seam",
|
|
@@ -2081,7 +2046,7 @@ const MODEL_CALLS = {
|
|
|
2081
2046
|
E5: {
|
|
2082
2047
|
description: "missing half recovery",
|
|
2083
2048
|
occasion: "memoryExtract",
|
|
2084
|
-
destinations:
|
|
2049
|
+
destinations: extractHost,
|
|
2085
2050
|
snoPreset: chat,
|
|
2086
2051
|
transport: {
|
|
2087
2052
|
host: "agent-host-seam",
|
|
@@ -2099,7 +2064,7 @@ const MODEL_CALLS = {
|
|
|
2099
2064
|
E6: {
|
|
2100
2065
|
description: "subject check",
|
|
2101
2066
|
occasion: "memoryExtract",
|
|
2102
|
-
destinations:
|
|
2067
|
+
destinations: extractHost,
|
|
2103
2068
|
snoPreset: chat,
|
|
2104
2069
|
transport: {
|
|
2105
2070
|
host: "agent-host-seam",
|
|
@@ -2117,7 +2082,7 @@ const MODEL_CALLS = {
|
|
|
2117
2082
|
E7: {
|
|
2118
2083
|
description: "unresolved subject recovery",
|
|
2119
2084
|
occasion: "memoryExtract",
|
|
2120
|
-
destinations:
|
|
2085
|
+
destinations: extractHost,
|
|
2121
2086
|
snoPreset: chat,
|
|
2122
2087
|
transport: {
|
|
2123
2088
|
host: "agent-host-seam",
|
|
@@ -2135,7 +2100,7 @@ const MODEL_CALLS = {
|
|
|
2135
2100
|
E8: {
|
|
2136
2101
|
description: "same entity judgment",
|
|
2137
2102
|
occasion: "memoryExtract",
|
|
2138
|
-
destinations:
|
|
2103
|
+
destinations: extractHost,
|
|
2139
2104
|
snoPreset: chat,
|
|
2140
2105
|
transport: {
|
|
2141
2106
|
host: "agent-host-seam",
|
|
@@ -2207,7 +2172,7 @@ const MODEL_CALLS = {
|
|
|
2207
2172
|
E12: {
|
|
2208
2173
|
description: "background state keying",
|
|
2209
2174
|
occasion: "memoryExtract",
|
|
2210
|
-
destinations:
|
|
2175
|
+
destinations: extractHost,
|
|
2211
2176
|
snoPreset: chat,
|
|
2212
2177
|
transport: {
|
|
2213
2178
|
host: "agent-host-seam",
|
|
@@ -2579,7 +2544,6 @@ function modelCallDestination(callId, mode, modelCalls) {
|
|
|
2579
2544
|
}
|
|
2580
2545
|
//#endregion
|
|
2581
2546
|
//#region config/settings.ts
|
|
2582
|
-
const log = createLogger("sno-station-mem:config:settings");
|
|
2583
2547
|
const destination = z.enum([
|
|
2584
2548
|
"off",
|
|
2585
2549
|
"host",
|
|
@@ -2602,15 +2566,14 @@ const settingsSchema = z.strictObject({
|
|
|
2602
2566
|
baseUrl: z.string(),
|
|
2603
2567
|
apiKey: z.string()
|
|
2604
2568
|
}),
|
|
2605
|
-
rerank: z.
|
|
2606
|
-
|
|
2607
|
-
|
|
2608
|
-
|
|
2609
|
-
|
|
2610
|
-
|
|
2611
|
-
timeoutMs:
|
|
2612
|
-
|
|
2613
|
-
}),
|
|
2569
|
+
rerank: z.preprocess((value) => {
|
|
2570
|
+
if (typeof value !== "object" || value === null || Array.isArray(value) || !("maxCandidates" in value)) return value;
|
|
2571
|
+
const { maxCandidates: _retired, ...current } = value;
|
|
2572
|
+
return current;
|
|
2573
|
+
}, z.strictObject({
|
|
2574
|
+
mode: rerankModeSchema,
|
|
2575
|
+
timeoutMs: rerankTimeoutSchema
|
|
2576
|
+
})),
|
|
2614
2577
|
store: z.strictObject({
|
|
2615
2578
|
path: z.string(),
|
|
2616
2579
|
encryptionKey: z.string().min(1).regex(/^[0-9a-f]{64}$/u)
|
|
@@ -2699,9 +2662,8 @@ function defaultSettings() {
|
|
|
2699
2662
|
apiKey: ""
|
|
2700
2663
|
},
|
|
2701
2664
|
rerank: {
|
|
2702
|
-
mode: "
|
|
2703
|
-
timeoutMs: engine.retrieval.rerankTimeoutMs
|
|
2704
|
-
maxCandidates: 64
|
|
2665
|
+
mode: "lightweight",
|
|
2666
|
+
timeoutMs: engine.retrieval.rerankTimeoutMs
|
|
2705
2667
|
},
|
|
2706
2668
|
store: {
|
|
2707
2669
|
path: "",
|
|
@@ -2768,32 +2730,7 @@ function defaultSettings() {
|
|
|
2768
2730
|
}
|
|
2769
2731
|
};
|
|
2770
2732
|
}
|
|
2771
|
-
|
|
2772
|
-
* Recall ranking is local, or Sno's reranker: its address is the Sno GPU address and its key is the Sno GPU key. Only
|
|
2773
|
-
* REM Enhanced calls Sno GPU; any other mode, or no key yet, ranks locally, which is the configured strategy, not an error.
|
|
2774
|
-
*/
|
|
2775
|
-
function rerankSettings(settings) {
|
|
2776
|
-
const { rerank, snoGpu } = settings;
|
|
2777
|
-
let endpoint;
|
|
2778
|
-
try {
|
|
2779
|
-
endpoint = new URL("rerank", snoGpu.baseUrl.endsWith("/") ? snoGpu.baseUrl : `${snoGpu.baseUrl}/`).toString();
|
|
2780
|
-
} catch {
|
|
2781
|
-
log.warn("memory.rerank.sno_gpu_address.invalid", { cause: "snoGpu.baseUrl is not a valid address; recall ranks locally" }, {
|
|
2782
|
-
event_name: "memory.rerank.sno_gpu_address.invalid",
|
|
2783
|
-
file: "packages/memory/config/settings.ts",
|
|
2784
|
-
function: "rerankSettings",
|
|
2785
|
-
site_id: "memory.rerank.sno_gpu_address.invalid"
|
|
2786
|
-
});
|
|
2787
|
-
}
|
|
2788
|
-
const local = rerank.mode !== "cross-encoder" || settings.mode !== "rem-enhanced" || !snoGpu.apiKey || endpoint === void 0;
|
|
2789
|
-
return {
|
|
2790
|
-
rerank: local && rerank.mode === "cross-encoder" ? "lightweight" : rerank.mode,
|
|
2791
|
-
endpoint: local ? void 0 : endpoint,
|
|
2792
|
-
apiKey: local ? "" : snoGpu.apiKey
|
|
2793
|
-
};
|
|
2794
|
-
}
|
|
2795
|
-
function settingsToPluginConfig(settings) {
|
|
2796
|
-
const sno = rerankSettings(settings);
|
|
2733
|
+
function settingsToPluginConfig(settings, usageClass) {
|
|
2797
2734
|
return pluginConfigSchema.parse({
|
|
2798
2735
|
mode: settings.mode,
|
|
2799
2736
|
modelCalls: settings.modelCalls,
|
|
@@ -2810,13 +2747,10 @@ function settingsToPluginConfig(settings) {
|
|
|
2810
2747
|
sessionOptions: { intraOpNumThreads: settings.embedding.threads || void 0 }
|
|
2811
2748
|
},
|
|
2812
2749
|
retrieval: {
|
|
2813
|
-
rerank:
|
|
2750
|
+
rerank: settings.rerank.mode,
|
|
2814
2751
|
recallTopK: settings.recall.prompt.limit,
|
|
2815
2752
|
minScore: settings.recall.prompt.minScore,
|
|
2816
|
-
|
|
2817
|
-
rerankApiKey: sno.apiKey,
|
|
2818
|
-
rerankTimeoutMs: settings.rerank.timeoutMs,
|
|
2819
|
-
rerankMaxCandidates: settings.rerank.maxCandidates
|
|
2753
|
+
rerankTimeoutMs: settings.rerank.timeoutMs
|
|
2820
2754
|
},
|
|
2821
2755
|
autoRecall: settings.recall.auto,
|
|
2822
2756
|
autoRecallTimeoutMs: settings.recall.prompt.timeoutMs,
|
|
@@ -2837,7 +2771,8 @@ function settingsToPluginConfig(settings) {
|
|
|
2837
2771
|
observe: settings.telemetry.observe,
|
|
2838
2772
|
extraction: { llm: {
|
|
2839
2773
|
baseURL: settings.snoGpu.baseUrl,
|
|
2840
|
-
apiKey: settings.snoGpu.apiKey
|
|
2774
|
+
apiKey: settings.snoGpu.apiKey,
|
|
2775
|
+
usageClass
|
|
2841
2776
|
} }
|
|
2842
2777
|
});
|
|
2843
2778
|
}
|
|
@@ -2997,4 +2932,4 @@ function readMaintenanceOverrides() {
|
|
|
2997
2932
|
};
|
|
2998
2933
|
}
|
|
2999
2934
|
//#endregion
|
|
3000
|
-
export { FIXED_IDX_MEMORY_ACTIVE_TASK_CURRENT_REVISION as $,
|
|
2935
|
+
export { FIXED_IDX_MEMORY_ACTIVE_TASK_CURRENT_REVISION as $, MEMORY_SHUTDOWN_TIMEOUT_MS as $n, FIXED_PROTOCOL_VALUE_79 as $t, modelCallDestination as A, DEFAULT_REFLECTION_ERROR_SCAN_MAX_CHARS as An, MEMORY_SKIN_HEADER as Ar, FIXED_MEMORY_PROFILE_RECOVERY_ENTRIES as At, FIXED_EXTERNAL_VALUE_49 as B, FTS_MERGE_INTERVAL_MS as Bn, FIXED_PROTOCOL_VALUE_63 as Bt, getSnoStationMemStateDir as C, CHUNK_OVERLAP_TOKENS as Cn, ensureModelDownloaded as Cr, FIXED_MEMORY_CHUNKS_MEM_FACET_IDX as Ct, settingsToPluginConfig as D, DEFAULT_IMPORTANCE as Dn, MEMORY_ERROR_STATUS as Dr, FIXED_MEMORY_MEMORIES_FACT_ID_INSERT_GUARD as Dt, defaultSettings as E, DEFAULT_BM25_WEIGHT as En, MEMORY_DEFAULT_SKIN_ID as Er, FIXED_MEMORY_MEMORIES as Et, observeConfigSchema as F, EMBEDDER_DIM as Fn, FIXED_MEMORY_SNO_AI_EXTRACT as Ft, FIXED_EXTERNAL_VALUE_55 as G, INTEGRITY_CHECK_INTERVAL_MS as Gn, FIXED_PROTOCOL_VALUE_68 as Gt, FIXED_EXTERNAL_VALUE_52 as H, HEAD_EXTRACT_OVERLAP_DROP_RATIO as Hn, FIXED_PROTOCOL_VALUE_65 as Ht, extractionConfigSchema as I, EMBEDDER_MODEL_DEFAULT as In, FIXED_MEMORY_SNO_EXTRACT_CHAT as It, FIXED_EXTERNAL_VALUE_58 as J, MAX_AGGREGATION_RESULT_TOKENS as Jn, FIXED_PROTOCOL_VALUE_74 as Jt, FIXED_EXTERNAL_VALUE_56 as K, INTRA_MEMORY_COSINE_THRESHOLD as Kn, FIXED_PROTOCOL_VALUE_69 as Kt, memoryReflectionConfigSchema as L, EMBEDDER_PROVIDER_DEFAULT as Ln, FIXED_MEMORY_SNO_EXTRACT_PROFILE as Lt, retrievalConfigSchema as M, DEFAULT_RERANK_TIMEOUT_MS as Mn, memoryMethod as Mr, FIXED_MEMORY_PROVIDER_PROJECT_AGENTS as Mt, isObserveAgentId as N, DEFAULT_SCOPE as Nn, FIXED_MEMORY_PROVIDER_PROJECT_MAPPINGS as Nt, MODEL_CALLS as O, DEFAULT_RECALL_LIFECYCLE as On, MEMORY_RECONNECT_INTERVAL_MS as Or, FIXED_MEMORY_MEMORIES_FACT_ID_UPDATE_GUARD as Ot, observeAgentId as P, DEFAULT_VECTOR_WEIGHT as Pn, FIXED_MEMORY_ROW_PATH_PATTERN as Pt, FIXED_IDX_MEMORY as Q, MAX_RECALLED_TODO_TOKENS as Qn, FIXED_PROTOCOL_VALUE_78 as Qt, selfImprovementConfigSchema as R, EVAL_QA_TRACES_FILENAME as Rn, FIXED_MEMORY_TASK_LIFECYCLE_COMMANDS as Rt, getSidecarSocketPath as S, CHUNK_MIN_TOKENS as Sn, LocalReranker as Sr, FIXED_MEMORY_CHUNKS_MEMORY_ID_IDX as St, readSettings as T, CHUNK_TOKENIZER_MODE as Tn, MEMORY_CANCEL_ON_DISCONNECT_HEADER as Tr, FIXED_MEMORY_EXTRACTION_TIMESTAMPS as Tt, FIXED_EXTERNAL_VALUE_53 as U, HEAD_EXTRACT_TOKEN_BUDGET as Un, FIXED_PROTOCOL_VALUE_66 as Ut, FIXED_EXTERNAL_VALUE_51 as V, HEAD_EXTRACT_MIN_CONTENT_TOKENS as Vn, FIXED_PROTOCOL_VALUE_64 as Vt, FIXED_EXTERNAL_VALUE_54 as W, IMPORTANCE_WEIGHT_BASE as Wn, FIXED_PROTOCOL_VALUE_67 as Wt, FIXED_EXTERNAL_VALUE_8 as X, MAX_CHUNK_FETCH_LIMIT as Xn, FIXED_PROTOCOL_VALUE_76 as Xt, FIXED_EXTERNAL_VALUE_62 as Y, MAX_CANDIDATE_POOL_SIZE as Yn, FIXED_PROTOCOL_VALUE_75 as Yt, FIXED_EXTERNAL_VALUE_9 as Z, MAX_LIST_LIMIT as Zn, FIXED_PROTOCOL_VALUE_77 as Zt, readRemTestHoldMs as _, BACKUP_MIN_FREE_DISK_RATIO as _n, CachedEmbeddingProvider as _r, FIXED_MEMORY_CHUNKS as _t, REM_MODEL_OUTPUT_TOKEN_CAP as a, PERSISTED_PROVIDER_SYSTEM as an, RECENCY_WEIGHT as ar, FIXED_IDX_MEMORY_MEMORIES_LANE_PROJECT as at, getPrincipal as b, CHUNKING_VERSION as bn, LOCAL_EMBEDDING_MODEL_REVISION as br, FIXED_MEMORY_CHUNKS_AU as bt, REM_SIDECAR_ORIGIN as c, SUPPORTED_LOCALES as cn, RETRIEVAL_STORAGE_CHUNK_PROFILE as cr, FIXED_IDX_MEMORY_MEMORIES_PROJECT_FACT_KEY_ACTIVE as ct, getRemDiscoveryPath as d, ADJACENCY_BONUS_PER_PAIR as dn, USAGE_EVENT_RETENTION_INTERVAL_MS as dr, FIXED_MEMORY_ACTIVE_TASK_EVIDENCE as dt, FIXED_VEC_MEMORY as en, MIN_RECALL_TOKEN_BUDGET as er, FIXED_IDX_MEMORY_ACTIVE_TASK_EVIDENCE_INSTANCE as et, getRemJobJournalPath as f, ATOMIC_CAPTURE_OUTPUT_TOKEN_BUDGET as fn, USAGE_OUTBOX_INTERVAL_MS as fr, FIXED_MEMORY_ACTIVE_TASK_INSTANCES as ft, readRemOperationalConfig as g, BACKUP_INTERVAL_MS as gn, recallLifecycleSchema as gr, FIXED_MEMORY_ACTIVE_TASK_TRANSITIONS as gt, readMaintenanceOverrides as h, ATOMIC_EXTRACTION_MAX_INPUT_TOKENS as hn, experimentMmrDisabled as hr, FIXED_MEMORY_ACTIVE_TASK_REVISIONS as ht, REM_JOBS_PATH_PREFIX as i, PERSISTED_CONTENT_HASH_V3 as in, PLANNER_STATISTICS_INTERVAL_MS as ir, FIXED_IDX_MEMORY_MEMORIES_FACT_ID as it, SESSION_STRATEGIES as j, DEFAULT_REFLECTION_SESSION_TTL_MS as jn, REM_SIDECAR_TOKEN_HEADER as jr, FIXED_MEMORY_PROVIDER_AGENT_MAPPINGS as jt, MODEL_CALL_WORKLOAD as k, DEFAULT_RECALL_TOKEN_BUDGET as kn, MEMORY_ROUTES as kr, FIXED_MEMORY_MIGRATION_MARKERS as kt, REM_SOURCE as l, isSupportedLocale as ln, SNO_OBSERVE_FLUSH_TIMEOUT_MS as lr, FIXED_IDX_MEMORY_MEMORIES_PROJECT_TIMESTAMP as lt, isRemTraceEnabled as m, ATOMIC_ENRICHMENT_OUTPUT_TOKEN_BUDGET as mn, experimentCandidatePoolOverride as mr, FIXED_MEMORY_ACTIVE_TASK_MIGRATION_MANIFESTS as mt, MEMORY_USAGE_FLUSH_INTERVAL_MS as n, PERSISTED_CANDIDATE_HASH_V1 as nn, MULTI_HIT_BONUS_CAP as nr, FIXED_IDX_MEMORY_MEMORIES_CATEGORY as nt, REM_RUN_PATH as o, embeddingConfigSchema as on, REFLECTION_SLICE_CACHE_TTL_MS as or, FIXED_IDX_MEMORY_MEMORIES_PROJECT as ot, getRemTraceLogPath as p, ATOMIC_CAPTURE_TIMEOUT_MS as pn, VECTOR_DIMENSION_DEFAULT as pr, FIXED_MEMORY_ACTIVE_TASK_MIGRATION_EVIDENCE as pt, FIXED_EXTERNAL_VALUE_57 as q, MAINTENANCE_TICK_MS as qn, FIXED_PROTOCOL_VALUE_73 as qt, REM_CORRELATION_ID_HEADER as r, PERSISTED_CONTENT_HASH_V1 as rn, MULTI_HIT_BONUS_PER_HIT as rr, FIXED_IDX_MEMORY_MEMORIES_CONTENT_HASH as rt, REM_SIDECAR_HOST as s, llmRoutingConfigSchema as sn, REM_TRIGGER_CHECK_INTERVAL_MS as sr, FIXED_IDX_MEMORY_MEMORIES_PROJECT_CONTENT_HASH as st, HEALTH_PATH as t, FIXED_VEC_MEMORY_CHUNKS as tn, MMR_LAMBDA as tr, FIXED_IDX_MEMORY_ACTIVE_TASK_INSTANCES_PROJECTION as tt, getRemChassisJournalPath as u, ADJACENCY_BONUS_CAP as un, TIME_DECAY_FLOOR as ur, FIXED_MEMORY as ut, SettingsUnavailableError as v, BONUS_TOTAL_INVARIANT as vn, LOCAL_EMBEDDING_CACHE_DIR_DEFAULT as vr, FIXED_MEMORY_CHUNKS_AD as vt, getStateDir as w, CHUNK_TARGET_TOKENS as wn, MEMORY_BODY_LIMIT_BYTES as wr, FIXED_MEMORY_CHUNKS_MEM_IDX as wt, getSettingsPath as x, CHUNK_MAX_TOKENS as xn, LocalEmbedProvider as xr, FIXED_MEMORY_CHUNKS_FTS as xt, getDiscoveryPath as y, CACHE_TTL_MS as yn, LOCAL_EMBEDDING_MODEL as yr, FIXED_MEMORY_CHUNKS_AI as yt, sessionMemoryConfigSchema as z, FORGET_QUERY_MIN_SCORE as zn, FIXED_MEMORY_UNPLACED_CANDIDATES as zt };
|