@snoai/memory 1.2.1 → 1.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/README.md +1 -1
  2. package/dist/{adapter-CeQ7rViY.d.ts → adapter-J6IQ0rvr.d.ts} +1 -0
  3. package/dist/{adapter-XaRHZWZ2.js → adapter-RxQ9CJ7f.js} +1 -1
  4. package/dist/diagnostic-encoder.js +1 -1
  5. package/dist/index.d.ts +1 -1
  6. package/dist/index.js +2 -1
  7. package/dist/internal/config/plugin-config-schema.js +1 -1
  8. package/dist/internal/config/settings.js +1 -1
  9. package/dist/internal/engine/bindings/sno-station-mem-ambient-learning-hook.d.ts +1 -1
  10. package/dist/internal/engine/bindings/sno-station-mem-ambient-learning-hook.js +1 -1
  11. package/dist/internal/engine/bindings/sno-station-mem-auto-recall-hook.d.ts +1 -1
  12. package/dist/internal/engine/bindings/sno-station-mem-auto-recall-hook.js +1 -1
  13. package/dist/internal/engine/bindings/sno-station-mem-insight-distill-factory.d.ts +2 -2
  14. package/dist/internal/engine/bindings/sno-station-mem-insight-distill-factory.js +1 -1
  15. package/dist/internal/engine/bindings/sno-station-mem-message-transcript.js +1 -1
  16. package/dist/internal/engine/bindings/sno-station-mem-reset-hook.d.ts +1 -1
  17. package/dist/internal/engine/bindings/sno-station-mem-runtime-mode.d.ts +1 -1
  18. package/dist/internal/engine/observability/adapter.d.ts +1 -1
  19. package/dist/internal/engine/observability/adapter.js +1 -1
  20. package/dist/internal/engine/observability/observable-embedder.d.ts +1 -1
  21. package/dist/internal/engine/observability/observable-llm-client.d.ts +1 -1
  22. package/dist/internal/engine/observability/observable-memory-store.d.ts +1 -1
  23. package/dist/internal/engine/observability/observable-retriever.d.ts +1 -1
  24. package/dist/internal/engine/observability/runtime-diagnostics.js +1 -1
  25. package/dist/internal/engine/shared/types.js +1 -1
  26. package/dist/internal/engine/telemetry/observe-ledger.d.ts +3 -2
  27. package/dist/internal/engine/telemetry/observe-ledger.js +3 -0
  28. package/dist/{log-site-catalog.generated-GhNOEd6q.js → log-site-catalog.generated-NI-E9zjv.js} +16 -16
  29. package/dist/log-site-catalog.json +1 -1
  30. package/dist/{memory-runtime-BUmrJcmt.js → memory-runtime-BKBFbD1E.js} +19 -19
  31. package/dist/{observable-embedder-CbFylzsx.d.ts → observable-embedder-rKGU0LqW.d.ts} +1 -1
  32. package/dist/{observable-llm-client-BC6Bc8t3.d.ts → observable-llm-client-Cw04DElM.d.ts} +1 -1
  33. package/dist/{observable-memory-store-BykVMQXt.d.ts → observable-memory-store-CHLQvW9E.d.ts} +1 -1
  34. package/dist/{observable-retriever-C-c9O83s.d.ts → observable-retriever-DJKBEkBC.d.ts} +1 -1
  35. package/dist/plugin-config-observe-schema-BORZ9_7q.js +54 -0
  36. package/dist/{plugin-config-schema-CTLb-ChF.js → plugin-config-schema-CC-2N9Xw.js} +4 -49
  37. package/dist/{rem-batch-executor-DdgZBL5K.js → rem-batch-executor-_J7QoDuG.js} +1 -1
  38. package/dist/{rem-batch-executor-Bdsf26tD.js → rem-batch-executor-vssXCmmE.js} +3 -1
  39. package/dist/{rem-trigger-6dmOjIU_.js → rem-trigger-BZBf_rmt.js} +1 -1
  40. package/dist/{server-CyB-SYM6.js → server-BkDfjx4w.js} +4 -4
  41. package/dist/sidecar/main.js +1 -1
  42. package/dist/{sno-station-mem-runtime-dependencies-Bzfg4hGZ.js → sno-station-mem-runtime-dependencies-DEdpOj7z.js} +1 -1
  43. package/dist/{sno-station-mem-runtime-dependencies-cFPSMqDD.d.ts → sno-station-mem-runtime-dependencies-DjA-KpD8.d.ts} +5 -5
  44. package/package.json +1 -1
@@ -1,6 +1,6 @@
1
- import { $t as readModelReplyJson, A as canonicalizeProfileSectionName, At as CODING_SKIN_SESSION_QUERY, B as loadSqliteVecExtension, Bt as stringifyInsightMetadata, C as normalizeEntityName, D as readAtomicArrivalRetirementCandidateSet, Dt as classifyLlmFailure, E as journalAtomicArrivalRetirementRefusal, Et as withProviderResponses, F as StaleSupersedeTargetError, Ft as stripRoleLabelPrefix, G as orderAdapterAPair, Gt as MEMORY_CATEGORIES, Ht as parseIsoDateTimeMs, I as TaskLifecycleStaleResolutionError, It as truncateGraphemes, J as renderAdapterAChatPrompt, Jt as resolveLlmRoute, K as parseAdapterAChatVerdict, Kt as normalizeCategory, L as validateMemoryTelemetryMetadata, Lt as redactSecrets, M as getSnoStationMemDataDir, Mt as clampInt, N as normalizeMemoryRelationPredicate, Nt as stableHash, O as recordTokenCounter, Ot as isTerminalLlmFailure$1, P as MemoryStore, Pt as stripHtmlTags, Q as appendAuditEntry, Qt as modelReplyJsonCandidates, R as randomUUID$1, Rt as buildInsightMetadata, S as listAtomicMemoryEntityCandidates, St as LlmClientTerminalError, T as closeAtomicArrivalRetirementTargets, Tt as isTerminalLlmFailure, U as adapterAViewFromRecord, Ut as deriveFactKey, Vt as normalizeIsoDateTimeString, W as isAdapterAVerdictReply, Wt as AGGREGATION_OPERATIONS, X as compareMemorySourceOrder, Xt as ATOMIC_EXTRACTION_SKILL_HASH, Y as renderAdapterAPrompt, Yt as ATOMIC_EXTRACTION_SKILL, Z as readMemorySourceOrderOrOldest, Zt as atomicExtractionSkillReference, _ as taskLifecycleCandidateSetVersion, _t as SnoStationMemError, an as sessionZoneCarriedBy, b as resolveTaskLifecycleEffectiveTime, bt as createScopePolicy, cn as isMemoryTelemetryEventType, ct as resolveMemoryDate, d as AccessTracker, dn as openSqliteDatabaseReadonly, dt as buildIndexedText, en as state_vocabulary_default, et as currentMutationAttemptId, f as Embedder, fn as checkMemoryOperation, ft as stripEnvelopeMetadata, g as resolveTaskLifecycle, gn as forwardObserveLedgerUntilIdle, gt as RetrievalError, h as findUniqueActiveTaskByDescription, hn as withMemoryOperation, ht as RESOURCES_BY_LOCALE, in as isCalendarLabel, it as runWithMutationAttempt, j as normalizeTopicToSectionName, jt as clamp01, k as canExtractorWrite, kt as CODING_SKIN_LEDGER_MAX_CHARS, l as MemoryRetriever, ln as initSqliteRuntime, lt as unresolvedMemoryDate, m as buildTaskLifecycleCandidateSet, mn as memoryOperationSignal, mt as ALL_RESOURCES, nn as calculateCalendarTime, nt as runWithMemoryAudit, on as attribute_dictionary_default, ot as parseSessionTimestamp, p as acceptsTaskLifecycleJudgment, pn as memoryFileWrite, pt as normalizeAmbientLearningText, q as prospectiveProfileView, qt as pickLlmRoutingConfig, rn as calendarInstructionSchema, rt as runWithMemoryAuditSync, sn as MEMORY_TELEMETRY_DELETE_REASONS, st as serializeIntervalMetadata, tn as relations, u as DEFAULT_RETRIEVAL_CONFIG, un as openSqliteDatabase, ut as boundSectionContent, v as admitTaskLifecycleAssertion, vt as StorageError, w as recordAtomicEntityIdentityJournal, wt as createLlmClient, x as resolveHookAgentId, xt as parseAgentIdFromSessionKey, y as buildTaskLifecycleCommandClaim, yt as MemoryScopePolicy, z as readChunkVecTableState, zt as parseInsightMetadata } from "./rem-batch-executor-Bdsf26tD.js";
1
+ import { $t as readModelReplyJson, A as canonicalizeProfileSectionName, At as CODING_SKIN_SESSION_QUERY, B as loadSqliteVecExtension, Bt as stringifyInsightMetadata, C as normalizeEntityName, D as readAtomicArrivalRetirementCandidateSet, Dt as classifyLlmFailure, E as journalAtomicArrivalRetirementRefusal, Et as withProviderResponses, F as StaleSupersedeTargetError, Ft as stripRoleLabelPrefix, G as orderAdapterAPair, Gt as MEMORY_CATEGORIES, Ht as parseIsoDateTimeMs, I as TaskLifecycleStaleResolutionError, It as truncateGraphemes, J as renderAdapterAChatPrompt, Jt as resolveLlmRoute, K as parseAdapterAChatVerdict, Kt as normalizeCategory, L as validateMemoryTelemetryMetadata, Lt as redactSecrets, M as getSnoStationMemDataDir, Mt as clampInt, N as normalizeMemoryRelationPredicate, Nt as stableHash, O as recordTokenCounter, Ot as isTerminalLlmFailure$1, P as MemoryStore, Pt as stripHtmlTags, Q as appendAuditEntry, Qt as modelReplyJsonCandidates, R as randomUUID$1, Rt as buildInsightMetadata, S as listAtomicMemoryEntityCandidates, St as LlmClientTerminalError, T as closeAtomicArrivalRetirementTargets, Tt as isTerminalLlmFailure, U as adapterAViewFromRecord, Ut as deriveFactKey, Vt as normalizeIsoDateTimeString, W as isAdapterAVerdictReply, Wt as AGGREGATION_OPERATIONS, X as compareMemorySourceOrder, Xt as ATOMIC_EXTRACTION_SKILL_HASH, Y as renderAdapterAPrompt, Yt as ATOMIC_EXTRACTION_SKILL, Z as readMemorySourceOrderOrOldest, Zt as atomicExtractionSkillReference, _ as taskLifecycleCandidateSetVersion, _t as SnoStationMemError, an as sessionZoneCarriedBy, b as resolveTaskLifecycleEffectiveTime, bt as createScopePolicy, cn as isMemoryTelemetryEventType, ct as resolveMemoryDate, d as AccessTracker, dn as openSqliteDatabaseReadonly, dt as buildIndexedText, en as state_vocabulary_default, et as currentMutationAttemptId, f as Embedder, fn as checkMemoryOperation, ft as stripEnvelopeMetadata, g as resolveTaskLifecycle, gn as forwardObserveLedgerUntilIdle, gt as RetrievalError, h as findUniqueActiveTaskByDescription, hn as withMemoryOperation, ht as RESOURCES_BY_LOCALE, in as isCalendarLabel, it as runWithMutationAttempt, j as normalizeTopicToSectionName, jt as clamp01, k as canExtractorWrite, kt as CODING_SKIN_LEDGER_MAX_CHARS, l as MemoryRetriever, ln as initSqliteRuntime, lt as unresolvedMemoryDate, m as buildTaskLifecycleCandidateSet, mn as memoryOperationSignal, mt as ALL_RESOURCES, nn as calculateCalendarTime, nt as runWithMemoryAudit, on as attribute_dictionary_default, ot as parseSessionTimestamp, p as acceptsTaskLifecycleJudgment, pn as memoryFileWrite, pt as normalizeAmbientLearningText, q as prospectiveProfileView, qt as pickLlmRoutingConfig, rn as calendarInstructionSchema, rt as runWithMemoryAuditSync, sn as MEMORY_TELEMETRY_DELETE_REASONS, st as serializeIntervalMetadata, tn as relations, u as DEFAULT_RETRIEVAL_CONFIG, un as openSqliteDatabase, ut as boundSectionContent, v as admitTaskLifecycleAssertion, vt as StorageError, w as recordAtomicEntityIdentityJournal, wt as createLlmClient, x as resolveHookAgentId, xt as parseAgentIdFromSessionKey, y as buildTaskLifecycleCommandClaim, yt as MemoryScopePolicy, z as readChunkVecTableState, zt as parseInsightMetadata } from "./rem-batch-executor-vssXCmmE.js";
2
2
  import { A as SESSION_STRATEGIES, An as DEFAULT_REFLECTION_SESSION_TTL_MS, Bn as FTS_MERGE_INTERVAL_MS, Bt as FIXED_PROTOCOL_VALUE_64, C as getSnoStationMemStateDir, D as settingsToPluginConfig, E as defaultSettings, En as DEFAULT_IMPORTANCE, F as extractionConfigSchema, Ft as FIXED_MEMORY_SNO_EXTRACT_CHAT, Gn as INTEGRITY_CHECK_INTERVAL_MS, Ht as FIXED_PROTOCOL_VALUE_66, I as memoryReflectionConfigSchema, It as FIXED_MEMORY_SNO_EXTRACT_PROFILE, L as selfImprovementConfigSchema, M as isObserveAgentId, N as observeAgentId, Nt as FIXED_MEMORY_ROW_PATH_PATTERN, O as MODEL_CALLS, On as DEFAULT_RECALL_TOKEN_BUDGET, P as observeConfigSchema, Pt as FIXED_MEMORY_SNO_AI_EXTRACT, Qn as MAX_CANDIDATE_POOL_SIZE, Qt as FIXED_PROTOCOL_VALUE_79, R as sessionMemoryConfigSchema, T as readSettings, Ut as FIXED_PROTOCOL_VALUE_67, Vt as FIXED_PROTOCOL_VALUE_65, Wt as FIXED_PROTOCOL_VALUE_68, Xn as MAINTENANCE_TICK_MS, Xt as FIXED_PROTOCOL_VALUE_77, Yt as FIXED_PROTOCOL_VALUE_76, Zn as MAX_AGGREGATION_RESULT_TOKENS, Zt as FIXED_PROTOCOL_VALUE_78, _r as USAGE_OUTBOX_INTERVAL_MS, an as embeddingConfigSchema, b as getPrincipal, cn as isSupportedLocale, dn as ATOMIC_CAPTURE_OUTPUT_TOKEN_BUDGET, er as MAX_LIST_LIMIT, fn as ATOMIC_CAPTURE_TIMEOUT_MS, gn as BACKUP_MIN_FREE_DISK_RATIO, gr as USAGE_EVENT_RETENTION_INTERVAL_MS, h as readMaintenanceOverrides, hn as BACKUP_INTERVAL_MS, in as PERSISTED_PROVIDER_SYSTEM, j as retrievalConfigSchema, k as modelCallDestination, kn as DEFAULT_REFLECTION_ERROR_SCAN_MAX_CHARS, mn as ATOMIC_EXTRACTION_MAX_INPUT_TOKENS, mr as SNO_OBSERVE_FLUSH_TIMEOUT_MS, n as MEMORY_USAGE_FLUSH_INTERVAL_MS, qt as FIXED_PROTOCOL_VALUE_74, rr as MIN_RECALL_TOKEN_BUDGET, sr as PLANNER_STATISTICS_INTERVAL_MS, ur as REM_TRIGGER_CHECK_INTERVAL_MS, w as getStateDir, x as getSettingsPath, xr as recallLifecycleSchema, zn as FORGET_QUERY_MIN_SCORE, zt as FIXED_PROTOCOL_VALUE_63 } from "./config-CyH1VuJc.js";
3
- import { i as DEGRADED_REASONS, r as ContractError, t as evaluateRemAutomaticTriggers } from "./rem-trigger-6dmOjIU_.js";
3
+ import { i as DEGRADED_REASONS, r as ContractError, t as evaluateRemAutomaticTriggers } from "./rem-trigger-BZBf_rmt.js";
4
4
  import { configureLogger, createLogger, currentLogContext, effectiveLogLevel, loggerFileStatus, privateLogReference, withLogContext } from "@snoai/utils/logger";
5
5
  import path, { basename, dirname, isAbsolute, join, posix, relative, resolve } from "node:path";
6
6
  import { existsSync, mkdirSync, readFileSync, readdirSync, realpathSync, renameSync, rmSync, statSync, statfsSync } from "node:fs";
@@ -195,7 +195,7 @@ function addNumber(target, key, value) {
195
195
  }
196
196
  //#endregion
197
197
  //#region package.json
198
- var version = "1.2.1";
198
+ var version = "1.2.3";
199
199
  //#endregion
200
200
  //#region config/atomic-extraction-response.schema.json
201
201
  var atomic_extraction_response_schema_default = {
@@ -1056,7 +1056,7 @@ function fallbackAtomicCapturedFact(fact) {
1056
1056
  //#endregion
1057
1057
  //#region src/engine/observability/log-site-catalog.generated.ts
1058
1058
  const logSiteCatalog = {
1059
- "build_id": "17c40497dbd06f5f417622c54c1db540856d7d5f024e7fa3719bdfd77f680c3c",
1059
+ "build_id": "e27169af4ffcc15a6403bd19b72f55b5daba806583a785f290564ca561e89ce8",
1060
1060
  "sites": {
1061
1061
  "memory.recall.budget.checked": {
1062
1062
  "file": "packages/memory/src/engine/bindings/memory-recall-tool.ts",
@@ -1796,44 +1796,44 @@ const logSiteCatalog = {
1796
1796
  "observability.emit.failed": {
1797
1797
  "file": "packages/memory/src/engine/observability/adapter.ts",
1798
1798
  "function": "PluginObservability.tryEmit",
1799
- "line": 126,
1799
+ "line": 127,
1800
1800
  "column": 4,
1801
- "file_hash": "8bf0aabdc5d8220ec5cfbbe70a5a75d0ae4a538aa24918f410166748ba47d8d1"
1801
+ "file_hash": "983c2252797e36db58d79c7707415222c69965de1325eecd0e0d99f9a8e1820c"
1802
1802
  },
1803
1803
  "adapter.<anonymous callback>.82f49c57a7": {
1804
1804
  "file": "packages/memory/src/engine/observability/adapter.ts",
1805
1805
  "function": "<anonymous callback>",
1806
- "line": 150,
1806
+ "line": 151,
1807
1807
  "column": 7,
1808
- "file_hash": "8bf0aabdc5d8220ec5cfbbe70a5a75d0ae4a538aa24918f410166748ba47d8d1"
1808
+ "file_hash": "983c2252797e36db58d79c7707415222c69965de1325eecd0e0d99f9a8e1820c"
1809
1809
  },
1810
1810
  "observability.background.timed_out": {
1811
1811
  "file": "packages/memory/src/engine/observability/adapter.ts",
1812
1812
  "function": "PluginObservability.runBackgroundTask",
1813
- "line": 204,
1813
+ "line": 205,
1814
1814
  "column": 7,
1815
- "file_hash": "8bf0aabdc5d8220ec5cfbbe70a5a75d0ae4a538aa24918f410166748ba47d8d1"
1815
+ "file_hash": "983c2252797e36db58d79c7707415222c69965de1325eecd0e0d99f9a8e1820c"
1816
1816
  },
1817
1817
  "adapter.<anonymous callback>.f036514cb8": {
1818
1818
  "file": "packages/memory/src/engine/observability/adapter.ts",
1819
1819
  "function": "<anonymous callback>",
1820
- "line": 241,
1820
+ "line": 242,
1821
1821
  "column": 9,
1822
- "file_hash": "8bf0aabdc5d8220ec5cfbbe70a5a75d0ae4a538aa24918f410166748ba47d8d1"
1822
+ "file_hash": "983c2252797e36db58d79c7707415222c69965de1325eecd0e0d99f9a8e1820c"
1823
1823
  },
1824
1824
  "adapter.<anonymous callback>.9aedc01548": {
1825
1825
  "file": "packages/memory/src/engine/observability/adapter.ts",
1826
1826
  "function": "<anonymous callback>",
1827
- "line": 280,
1827
+ "line": 281,
1828
1828
  "column": 9,
1829
- "file_hash": "8bf0aabdc5d8220ec5cfbbe70a5a75d0ae4a538aa24918f410166748ba47d8d1"
1829
+ "file_hash": "983c2252797e36db58d79c7707415222c69965de1325eecd0e0d99f9a8e1820c"
1830
1830
  },
1831
1831
  "adapter.<anonymous callback>.52f64c2607": {
1832
1832
  "file": "packages/memory/src/engine/observability/adapter.ts",
1833
1833
  "function": "<anonymous callback>",
1834
- "line": 322,
1834
+ "line": 323,
1835
1835
  "column": 9,
1836
- "file_hash": "8bf0aabdc5d8220ec5cfbbe70a5a75d0ae4a538aa24918f410166748ba47d8d1"
1836
+ "file_hash": "983c2252797e36db58d79c7707415222c69965de1325eecd0e0d99f9a8e1820c"
1837
1837
  },
1838
1838
  "observability.bestEffort.failed": {
1839
1839
  "file": "packages/memory/src/engine/observability/best-effort.ts",
@@ -2482,9 +2482,9 @@ const logSiteCatalog = {
2482
2482
  "observe.ledger.failed": {
2483
2483
  "file": "packages/memory/src/engine/telemetry/observe-ledger.ts",
2484
2484
  "function": "forwardObserveLedger",
2485
- "line": 58,
2485
+ "line": 61,
2486
2486
  "column": 7,
2487
- "file_hash": "7fd4a98768b857e018a442e875e35014cbe82951e3a23ef60a5da32bc8b22b1f"
2487
+ "file_hash": "9374989d9fd58dfd7e9c4f3e56afd751009d927831139809082f7674b2d88bac"
2488
2488
  },
2489
2489
  "shared.llm-client.resolveRequestTransport.8f631601af": {
2490
2490
  "file": "packages/memory/src/model/llm-client.ts",
@@ -12126,7 +12126,7 @@ var PluginObservability = class {
12126
12126
  event_type: input.eventType,
12127
12127
  ...input.tsEdgeMs !== void 0 ? { ts_edge_ms: input.tsEdgeMs } : {},
12128
12128
  ...input.eventId ? { event_id: input.eventId } : {},
12129
- agent_id: this.agentId,
12129
+ agent_id: input.agentId ?? this.agentId,
12130
12130
  lane: laneForEventType(input.eventType),
12131
12131
  ...scope ? { scope } : {},
12132
12132
  payload: input.payload
@@ -1,4 +1,4 @@
1
- import { n as PluginObservability } from "./adapter-CeQ7rViY.js";
1
+ import { n as PluginObservability } from "./adapter-J6IQ0rvr.js";
2
2
  import { r as EmbeddingConfig, t as Embedder } from "./embedding-provider-client-vynZMuit.js";
3
3
  //#region src/engine/observability/observable-embedder.d.ts
4
4
  type SessionUuidProvider = () => string | undefined;
@@ -1,5 +1,5 @@
1
1
  import { i as LlmClientConfig, r as LlmClient, s as MemoryLlmRequest } from "./plugin-config-schema-CCwv_K7R.js";
2
- import { n as PluginObservability } from "./adapter-CeQ7rViY.js";
2
+ import { n as PluginObservability } from "./adapter-J6IQ0rvr.js";
3
3
  import "./llm-client-PC0yQuCq.js";
4
4
  //#region src/engine/observability/observable-llm-client.d.ts
5
5
  type SessionUuidProvider = () => string | undefined;
@@ -1,5 +1,5 @@
1
1
  import { b as MemoryTier, g as MemoryEntry, v as MemoryMetadata, y as MemorySearchResult } from "./types-DvQ6nTNC.js";
2
- import { n as PluginObservability } from "./adapter-CeQ7rViY.js";
2
+ import { n as PluginObservability } from "./adapter-J6IQ0rvr.js";
3
3
  import { r as EmbeddingConfig } from "./embedding-provider-client-vynZMuit.js";
4
4
  import { C as MemoryStore, F as TaskLifecycleBatchWriteResult, M as SupersedeClose, N as SupersedePreserveExisting, P as TaskLifecycleBatchWriteInput, at as ListOptions, dt as RecordUnplacedCandidateResult, f as AtomicExtractionWriteResult, ft as SearchOptions, gt as StoreResult, ht as StoreInput, j as SupersedeActiveFactGuard, mt as StoreConfig, ot as MemoryRow, rt as ChunkSearchResult, u as AtomicExtractionWriteInput, ut as RecordUnplacedCandidateInput, w as MemoryStoreInternals, yt as UpdateChanges } from "./memory-store-base-Dx6oSqiv.js";
5
5
  import "./store-Dbo7MIzt.js";
@@ -1,5 +1,5 @@
1
1
  import { x as RetrievalResult } from "./types-DvQ6nTNC.js";
2
- import { n as PluginObservability } from "./adapter-CeQ7rViY.js";
2
+ import { n as PluginObservability } from "./adapter-J6IQ0rvr.js";
3
3
  import { r as EmbeddingConfig, t as Embedder } from "./embedding-provider-client-vynZMuit.js";
4
4
  import { d as RetrievalConfig, f as RetrievalContext, t as MemoryRetriever } from "./retriever-CXeB7-A2.js";
5
5
  import { C as MemoryStore } from "./memory-store-base-Dx6oSqiv.js";
@@ -0,0 +1,54 @@
1
+ import { SNO_OBSERVE_DEFAULT_AGENT_ID, SNO_OBSERVE_DEFAULT_BASE_URL } from "./internal/config/index.js";
2
+ import { dt as FIXED_PROTOCOL_VALUE_72, lt as FIXED_PROTOCOL_VALUE_70, ut as FIXED_PROTOCOL_VALUE_71, wt as PERSISTED_PROVIDER_SYSTEM } from "./signed-registry-constants-yq3DlG3B.js";
3
+ import { z } from "zod";
4
+ //#region config/plugin-config-observe-schema.ts
5
+ const AGENT_IDS = [
6
+ PERSISTED_PROVIDER_SYSTEM,
7
+ FIXED_PROTOCOL_VALUE_70,
8
+ FIXED_PROTOCOL_VALUE_71,
9
+ FIXED_PROTOCOL_VALUE_72
10
+ ];
11
+ const observeAgentIdSchema = z.enum(AGENT_IDS, { error: () => `observe.agentId must be one of ${AGENT_IDS.join(", ")}` });
12
+ /** The observe agent id a skin reports under; a skin id outside the SDK's set is a hard error. */
13
+ function observeAgentId(skinId) {
14
+ return observeAgentIdSchema.parse(skinId);
15
+ }
16
+ function isLoopbackUrl(url) {
17
+ return url.hostname === "localhost" || url.hostname === "127.0.0.1" || url.hostname === "::1" || url.hostname === "[::1]";
18
+ }
19
+ function validateObserveBaseUrl(value, ctx) {
20
+ let parsed;
21
+ try {
22
+ parsed = new URL(value);
23
+ } catch {
24
+ ctx.addIssue({
25
+ code: z.ZodIssueCode.custom,
26
+ path: ["baseUrl"],
27
+ message: `Invalid observe.baseUrl: "${value}"`
28
+ });
29
+ return;
30
+ }
31
+ const normalized = parsed.origin;
32
+ if (process.env.SNO_STATION_MEM_NODE_ENV === "test" && isLoopbackUrl(parsed)) {
33
+ if (parsed.protocol !== "http:" && parsed.protocol !== "https:") ctx.addIssue({
34
+ code: z.ZodIssueCode.custom,
35
+ path: ["baseUrl"],
36
+ message: "observe.baseUrl test fixture must use http or https"
37
+ });
38
+ return;
39
+ }
40
+ if (normalized !== "https://www.sno.ai") ctx.addIssue({
41
+ code: z.ZodIssueCode.custom,
42
+ path: ["baseUrl"],
43
+ message: `observe.baseUrl must be ${SNO_OBSERVE_DEFAULT_BASE_URL} outside loopback tests`
44
+ });
45
+ }
46
+ const observeConfigSchema = z.object({
47
+ enabled: z.boolean().default(true),
48
+ baseUrl: z.string().default(SNO_OBSERVE_DEFAULT_BASE_URL),
49
+ agentId: observeAgentIdSchema.default(SNO_OBSERVE_DEFAULT_AGENT_ID)
50
+ }).prefault({}).superRefine((value, ctx) => {
51
+ if (value.enabled) validateObserveBaseUrl(value.baseUrl, ctx);
52
+ });
53
+ //#endregion
54
+ export { observeConfigSchema as n, observeAgentId as t };
@@ -1,7 +1,8 @@
1
- import { DEFAULT_AUTO_RECALL_MAX_QUERY_LENGTH, DEFAULT_BM25_WEIGHT, DEFAULT_REFLECTION_MAX_INPUT_CHARS, DEFAULT_REFLECTION_TIMEOUT_MS, DEFAULT_RERANK_MODEL, DEFAULT_RERANK_TIMEOUT_MS, DEFAULT_SCOPE, DEFAULT_VECTOR_WEIGHT, RECENCY_WEIGHT, RECENCY_WEIGHT_MAX, SNO_OBSERVE_DEFAULT_AGENT_ID, SNO_OBSERVE_DEFAULT_BASE_URL, VECTOR_DIMENSION_DEFAULT, recallLifecycleSchema } from "./internal/config/index.js";
1
+ import { DEFAULT_AUTO_RECALL_MAX_QUERY_LENGTH, DEFAULT_BM25_WEIGHT, DEFAULT_REFLECTION_MAX_INPUT_CHARS, DEFAULT_REFLECTION_TIMEOUT_MS, DEFAULT_RERANK_MODEL, DEFAULT_RERANK_TIMEOUT_MS, DEFAULT_SCOPE, DEFAULT_VECTOR_WEIGHT, RECENCY_WEIGHT, RECENCY_WEIGHT_MAX, VECTOR_DIMENSION_DEFAULT, recallLifecycleSchema } from "./internal/config/index.js";
2
2
  import { SUPPORTED_LOCALES } from "./internal/engine/i18n/locales.js";
3
- import { $ as FIXED_MEMORY_SNO_EXTRACT_PROFILE, Q as FIXED_MEMORY_SNO_EXTRACT_CHAT, X as FIXED_MEMORY_SNO_AI_EXTRACT, Z as FIXED_MEMORY_SNO_CONFLICT_VERDICT, dt as FIXED_PROTOCOL_VALUE_72, lt as FIXED_PROTOCOL_VALUE_70, ut as FIXED_PROTOCOL_VALUE_71, wt as PERSISTED_PROVIDER_SYSTEM } from "./signed-registry-constants-yq3DlG3B.js";
3
+ import { $ as FIXED_MEMORY_SNO_EXTRACT_PROFILE, Q as FIXED_MEMORY_SNO_EXTRACT_CHAT, X as FIXED_MEMORY_SNO_AI_EXTRACT, Z as FIXED_MEMORY_SNO_CONFLICT_VERDICT } from "./signed-registry-constants-yq3DlG3B.js";
4
4
  import { DEFAULT_MODEL_MODE, PRODUCT_MODES, modelCallsConfigSchema, remEnhancedConfigSchema } from "./internal/config/product-mode.js";
5
+ import { n as observeConfigSchema } from "./plugin-config-observe-schema-BORZ9_7q.js";
5
6
  import { z } from "zod";
6
7
  import { createLogger } from "@snoai/utils/logger";
7
8
  //#region config/session-strategy.ts
@@ -116,52 +117,6 @@ const memoryReflectionConfigSchema = z.object({
116
117
  agentId: z.string().optional()
117
118
  }).prefault({});
118
119
  //#endregion
119
- //#region config/plugin-config-observe-schema.ts
120
- const AGENT_IDS = [
121
- PERSISTED_PROVIDER_SYSTEM,
122
- FIXED_PROTOCOL_VALUE_70,
123
- FIXED_PROTOCOL_VALUE_71,
124
- FIXED_PROTOCOL_VALUE_72
125
- ];
126
- const observeAgentIdSchema = z.enum(AGENT_IDS, { error: () => `observe.agentId must be one of ${AGENT_IDS.join(", ")}` });
127
- function isLoopbackUrl(url) {
128
- return url.hostname === "localhost" || url.hostname === "127.0.0.1" || url.hostname === "::1" || url.hostname === "[::1]";
129
- }
130
- function validateObserveBaseUrl(value, ctx) {
131
- let parsed;
132
- try {
133
- parsed = new URL(value);
134
- } catch {
135
- ctx.addIssue({
136
- code: z.ZodIssueCode.custom,
137
- path: ["baseUrl"],
138
- message: `Invalid observe.baseUrl: "${value}"`
139
- });
140
- return;
141
- }
142
- const normalized = parsed.origin;
143
- if (process.env.SNO_STATION_MEM_NODE_ENV === "test" && isLoopbackUrl(parsed)) {
144
- if (parsed.protocol !== "http:" && parsed.protocol !== "https:") ctx.addIssue({
145
- code: z.ZodIssueCode.custom,
146
- path: ["baseUrl"],
147
- message: "observe.baseUrl test fixture must use http or https"
148
- });
149
- return;
150
- }
151
- if (normalized !== "https://www.sno.ai") ctx.addIssue({
152
- code: z.ZodIssueCode.custom,
153
- path: ["baseUrl"],
154
- message: `observe.baseUrl must be ${SNO_OBSERVE_DEFAULT_BASE_URL} outside loopback tests`
155
- });
156
- }
157
- const observeConfigSchema = z.object({
158
- enabled: z.boolean().default(true),
159
- baseUrl: z.string().default(SNO_OBSERVE_DEFAULT_BASE_URL),
160
- agentId: observeAgentIdSchema.default(SNO_OBSERVE_DEFAULT_AGENT_ID)
161
- }).prefault({}).superRefine((value, ctx) => {
162
- if (value.enabled) validateObserveBaseUrl(value.baseUrl, ctx);
163
- });
164
- //#endregion
165
120
  //#region config/plugin-config-retrieval-schema.ts
166
121
  const log = createLogger("sno-station-mem:config:retrieval");
167
122
  const retrievalConfigSchema = z.object({
@@ -354,4 +309,4 @@ const pluginConfigSchema = z.object({
354
309
  }).strict().optional()
355
310
  }).strict();
356
311
  //#endregion
357
- export { memoryReflectionConfigSchema as a, embeddingConfigSchema as c, extractionConfigSchema as i, SESSION_STRATEGIES as l, retrievalConfigSchema as n, selfImprovementConfigSchema as o, observeConfigSchema as r, sessionMemoryConfigSchema as s, pluginConfigSchema as t };
312
+ export { selfImprovementConfigSchema as a, SESSION_STRATEGIES as c, memoryReflectionConfigSchema as i, retrievalConfigSchema as n, sessionMemoryConfigSchema as o, extractionConfigSchema as r, embeddingConfigSchema as s, pluginConfigSchema as t };
@@ -1,2 +1,2 @@
1
- import { o as runRemProductionOrderedWave } from "./rem-batch-executor-Bdsf26tD.js";
1
+ import { o as runRemProductionOrderedWave } from "./rem-batch-executor-vssXCmmE.js";
2
2
  export { runRemProductionOrderedWave };
@@ -1,4 +1,4 @@
1
- import { $ as FIXED_IDX_MEMORY_ACTIVE_TASK_EVIDENCE_INSTANCE, $n as MAX_CHUNK_FETCH_LIMIT, $t as FIXED_VEC_MEMORY, At as FIXED_MEMORY_PROVIDER_AGENT_MAPPINGS, B as FIXED_EXTERNAL_VALUE_51, C as getSnoStationMemStateDir, Cn as CHUNK_TARGET_TOKENS, Cr as LOCAL_EMBEDDING_CACHE_DIR_DEFAULT, Ct as FIXED_MEMORY_CHUNKS_MEM_IDX, D as settingsToPluginConfig, Dn as DEFAULT_RECALL_LIFECYCLE, Dr as ensureModelDownloaded, Dt as FIXED_MEMORY_MEMORIES_FACT_ID_UPDATE_GUARD, En as DEFAULT_IMPORTANCE, Er as LocalEmbedProvider, Et as FIXED_MEMORY_MEMORIES_FACT_ID_INSERT_GUARD, Fn as EMBEDDER_DIM, Ft as FIXED_MEMORY_SNO_EXTRACT_CHAT, G as FIXED_EXTERNAL_VALUE_56, Gt as FIXED_PROTOCOL_VALUE_69, H as FIXED_EXTERNAL_VALUE_53, Hn as HEAD_EXTRACT_OVERLAP_DROP_RATIO, In as EMBEDDER_MODEL_DEFAULT, J as FIXED_EXTERNAL_VALUE_62, Jn as LIGHTWEIGHT_FUSION_WEIGHT, K as FIXED_EXTERNAL_VALUE_57, Kn as INTRA_MEMORY_COSINE_THRESHOLD, Kt as FIXED_PROTOCOL_VALUE_73, Ln as EMBEDDER_PROVIDER_DEFAULT, Lt as FIXED_MEMORY_TASK_LIFECYCLE_COMMANDS, Mn as DEFAULT_RERANK_TIMEOUT_MS, Mt as FIXED_MEMORY_PROVIDER_PROJECT_MAPPINGS, O as MODEL_CALLS, Ot as FIXED_MEMORY_MIGRATION_MARKERS, Pn as DEFAULT_VECTOR_WEIGHT, Q as FIXED_IDX_MEMORY_ACTIVE_TASK_CURRENT_REVISION, Rn as EVAL_QA_TRACES_FILENAME, Rt as FIXED_MEMORY_UNPLACED_CANDIDATES, Sn as CHUNK_OVERLAP_TOKENS, Sr as CachedEmbeddingProvider, St as FIXED_MEMORY_CHUNKS_MEM_FACET_IDX, T as readSettings, Tn as DEFAULT_BM25_WEIGHT, Tt as FIXED_MEMORY_MEMORIES, U as FIXED_EXTERNAL_VALUE_54, Un as HEAD_EXTRACT_TOKEN_BUDGET, V as FIXED_EXTERNAL_VALUE_52, Vn as HEAD_EXTRACT_MIN_CONTENT_TOKENS, W as FIXED_EXTERNAL_VALUE_55, Wn as IMPORTANCE_WEIGHT_BASE, X as FIXED_EXTERNAL_VALUE_9, Y as FIXED_EXTERNAL_VALUE_8, Yn as LIGHTWEIGHT_RERANK_PENALTY, Z as FIXED_IDX_MEMORY, _n as BONUS_TOTAL_INVARIANT, _t as FIXED_MEMORY_CHUNKS_AD, a as REM_MODEL_OUTPUT_TOKEN_CAP, ar as MULTI_HIT_BONUS_CAP, at as FIXED_IDX_MEMORY_MEMORIES_PROJECT, bn as CHUNK_MAX_TOKENS, br as experimentMmrDisabled, bt as FIXED_MEMORY_CHUNKS_FTS, cr as RECENCY_WEIGHT, ct as FIXED_IDX_MEMORY_MEMORIES_PROJECT_TIMESTAMP, dr as RERANK_BLEND_CROSS, dt as FIXED_MEMORY_ACTIVE_TASK_INSTANCES, en as FIXED_VEC_MEMORY_CHUNKS, er as MAX_LIST_LIMIT, et as FIXED_IDX_MEMORY_ACTIVE_TASK_INSTANCES_PROJECTION, fr as RERANK_BLEND_VECTOR, ft as FIXED_MEMORY_ACTIVE_TASK_MIGRATION_EVIDENCE, g as readRemOperationalConfig, gt as FIXED_MEMORY_CHUNKS, hr as TIME_DECAY_FLOOR, ht as FIXED_MEMORY_ACTIVE_TASK_TRANSITIONS, in as PERSISTED_PROVIDER_SYSTEM, ir as MMR_LAMBDA, it as FIXED_IDX_MEMORY_MEMORIES_LANE_PROJECT, jn as DEFAULT_RERANK_MODEL, jt as FIXED_MEMORY_PROVIDER_PROJECT_AGENTS, k as modelCallDestination, kt as FIXED_MEMORY_PROFILE_RECOVERY_ENTRIES, ln as ADJACENCY_BONUS_CAP, lt as FIXED_MEMORY, mt as FIXED_MEMORY_ACTIVE_TASK_REVISIONS, nn as PERSISTED_CONTENT_HASH_V1, nt as FIXED_IDX_MEMORY_MEMORIES_CONTENT_HASH, on as llmRoutingConfigSchema, or as MULTI_HIT_BONUS_PER_HIT, ot as FIXED_IDX_MEMORY_MEMORIES_PROJECT_CONTENT_HASH, pr as RETRIEVAL_STORAGE_CHUNK_PROFILE, pt as FIXED_MEMORY_ACTIVE_TASK_MIGRATION_MANIFESTS, q as FIXED_EXTERNAL_VALUE_58, qn as LIGHTWEIGHT_COSINE_WEIGHT, rn as PERSISTED_CONTENT_HASH_V3, rt as FIXED_IDX_MEMORY_MEMORIES_FACT_ID, sn as SUPPORTED_LOCALES, st as FIXED_IDX_MEMORY_MEMORIES_PROJECT_FACT_KEY_ACTIVE, tn as PERSISTED_CANDIDATE_HASH_V1, tt as FIXED_IDX_MEMORY_MEMORIES_CATEGORY, un as ADJACENCY_BONUS_PER_PAIR, ut as FIXED_MEMORY_ACTIVE_TASK_EVIDENCE, vn as CACHE_TTL_MS, vt as FIXED_MEMORY_CHUNKS_AI, wn as CHUNK_TOKENIZER_MODE, wr as LOCAL_EMBEDDING_MODEL, wt as FIXED_MEMORY_EXTRACTION_TIMESTAMPS, xn as CHUNK_MIN_TOKENS, xt as FIXED_MEMORY_CHUNKS_MEMORY_ID_IDX, yn as CHUNKING_VERSION$1, yr as experimentCandidatePoolOverride, yt as FIXED_MEMORY_CHUNKS_AU, z as FIXED_EXTERNAL_VALUE_49 } from "./config-CyH1VuJc.js";
1
+ import { $ as FIXED_IDX_MEMORY_ACTIVE_TASK_EVIDENCE_INSTANCE, $n as MAX_CHUNK_FETCH_LIMIT, $t as FIXED_VEC_MEMORY, At as FIXED_MEMORY_PROVIDER_AGENT_MAPPINGS, B as FIXED_EXTERNAL_VALUE_51, C as getSnoStationMemStateDir, Cn as CHUNK_TARGET_TOKENS, Cr as LOCAL_EMBEDDING_CACHE_DIR_DEFAULT, Ct as FIXED_MEMORY_CHUNKS_MEM_IDX, D as settingsToPluginConfig, Dn as DEFAULT_RECALL_LIFECYCLE, Dr as ensureModelDownloaded, Dt as FIXED_MEMORY_MEMORIES_FACT_ID_UPDATE_GUARD, En as DEFAULT_IMPORTANCE, Er as LocalEmbedProvider, Et as FIXED_MEMORY_MEMORIES_FACT_ID_INSERT_GUARD, Fn as EMBEDDER_DIM, Ft as FIXED_MEMORY_SNO_EXTRACT_CHAT, G as FIXED_EXTERNAL_VALUE_56, Gt as FIXED_PROTOCOL_VALUE_69, H as FIXED_EXTERNAL_VALUE_53, Hn as HEAD_EXTRACT_OVERLAP_DROP_RATIO, In as EMBEDDER_MODEL_DEFAULT, J as FIXED_EXTERNAL_VALUE_62, Jn as LIGHTWEIGHT_FUSION_WEIGHT, K as FIXED_EXTERNAL_VALUE_57, Kn as INTRA_MEMORY_COSINE_THRESHOLD, Kt as FIXED_PROTOCOL_VALUE_73, Ln as EMBEDDER_PROVIDER_DEFAULT, Lt as FIXED_MEMORY_TASK_LIFECYCLE_COMMANDS, Mn as DEFAULT_RERANK_TIMEOUT_MS, Mt as FIXED_MEMORY_PROVIDER_PROJECT_MAPPINGS, N as observeAgentId, O as MODEL_CALLS, Ot as FIXED_MEMORY_MIGRATION_MARKERS, Pn as DEFAULT_VECTOR_WEIGHT, Q as FIXED_IDX_MEMORY_ACTIVE_TASK_CURRENT_REVISION, Rn as EVAL_QA_TRACES_FILENAME, Rt as FIXED_MEMORY_UNPLACED_CANDIDATES, Sn as CHUNK_OVERLAP_TOKENS, Sr as CachedEmbeddingProvider, St as FIXED_MEMORY_CHUNKS_MEM_FACET_IDX, T as readSettings, Tn as DEFAULT_BM25_WEIGHT, Tt as FIXED_MEMORY_MEMORIES, U as FIXED_EXTERNAL_VALUE_54, Un as HEAD_EXTRACT_TOKEN_BUDGET, V as FIXED_EXTERNAL_VALUE_52, Vn as HEAD_EXTRACT_MIN_CONTENT_TOKENS, W as FIXED_EXTERNAL_VALUE_55, Wn as IMPORTANCE_WEIGHT_BASE, X as FIXED_EXTERNAL_VALUE_9, Y as FIXED_EXTERNAL_VALUE_8, Yn as LIGHTWEIGHT_RERANK_PENALTY, Z as FIXED_IDX_MEMORY, _n as BONUS_TOTAL_INVARIANT, _t as FIXED_MEMORY_CHUNKS_AD, a as REM_MODEL_OUTPUT_TOKEN_CAP, ar as MULTI_HIT_BONUS_CAP, at as FIXED_IDX_MEMORY_MEMORIES_PROJECT, bn as CHUNK_MAX_TOKENS, br as experimentMmrDisabled, bt as FIXED_MEMORY_CHUNKS_FTS, cr as RECENCY_WEIGHT, ct as FIXED_IDX_MEMORY_MEMORIES_PROJECT_TIMESTAMP, dr as RERANK_BLEND_CROSS, dt as FIXED_MEMORY_ACTIVE_TASK_INSTANCES, en as FIXED_VEC_MEMORY_CHUNKS, er as MAX_LIST_LIMIT, et as FIXED_IDX_MEMORY_ACTIVE_TASK_INSTANCES_PROJECTION, fr as RERANK_BLEND_VECTOR, ft as FIXED_MEMORY_ACTIVE_TASK_MIGRATION_EVIDENCE, g as readRemOperationalConfig, gt as FIXED_MEMORY_CHUNKS, hr as TIME_DECAY_FLOOR, ht as FIXED_MEMORY_ACTIVE_TASK_TRANSITIONS, in as PERSISTED_PROVIDER_SYSTEM, ir as MMR_LAMBDA, it as FIXED_IDX_MEMORY_MEMORIES_LANE_PROJECT, jn as DEFAULT_RERANK_MODEL, jt as FIXED_MEMORY_PROVIDER_PROJECT_AGENTS, k as modelCallDestination, kt as FIXED_MEMORY_PROFILE_RECOVERY_ENTRIES, ln as ADJACENCY_BONUS_CAP, lt as FIXED_MEMORY, mt as FIXED_MEMORY_ACTIVE_TASK_REVISIONS, nn as PERSISTED_CONTENT_HASH_V1, nt as FIXED_IDX_MEMORY_MEMORIES_CONTENT_HASH, on as llmRoutingConfigSchema, or as MULTI_HIT_BONUS_PER_HIT, ot as FIXED_IDX_MEMORY_MEMORIES_PROJECT_CONTENT_HASH, pr as RETRIEVAL_STORAGE_CHUNK_PROFILE, pt as FIXED_MEMORY_ACTIVE_TASK_MIGRATION_MANIFESTS, q as FIXED_EXTERNAL_VALUE_58, qn as LIGHTWEIGHT_COSINE_WEIGHT, rn as PERSISTED_CONTENT_HASH_V3, rt as FIXED_IDX_MEMORY_MEMORIES_FACT_ID, sn as SUPPORTED_LOCALES, st as FIXED_IDX_MEMORY_MEMORIES_PROJECT_FACT_KEY_ACTIVE, tn as PERSISTED_CANDIDATE_HASH_V1, tt as FIXED_IDX_MEMORY_MEMORIES_CATEGORY, un as ADJACENCY_BONUS_PER_PAIR, ut as FIXED_MEMORY_ACTIVE_TASK_EVIDENCE, vn as CACHE_TTL_MS, vt as FIXED_MEMORY_CHUNKS_AI, wn as CHUNK_TOKENIZER_MODE, wr as LOCAL_EMBEDDING_MODEL, wt as FIXED_MEMORY_EXTRACTION_TIMESTAMPS, xn as CHUNK_MIN_TOKENS, xt as FIXED_MEMORY_CHUNKS_MEMORY_ID_IDX, yn as CHUNKING_VERSION$1, yr as experimentCandidatePoolOverride, yt as FIXED_MEMORY_CHUNKS_AU, z as FIXED_EXTERNAL_VALUE_49 } from "./config-CyH1VuJc.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, createReadStream, existsSync, mkdirSync, readFileSync, realpathSync, writeFileSync } from "node:fs";
@@ -40,6 +40,7 @@ var __exportAll = (all, no_symbols) => {
40
40
  const log$22 = createLogger("sno-station-mem:observe-ledger");
41
41
  const rowSchema = z.object({
42
42
  ts_ms: z.number().int().nonnegative(),
43
+ agent_id: z.string().transform(observeAgentId).optional(),
43
44
  event_type: z.string(),
44
45
  lane: z.string(),
45
46
  project_id: z.string().min(1).optional(),
@@ -117,6 +118,7 @@ async function forwardObserveLedger(options) {
117
118
  try {
118
119
  if (await observe.tryEmit({
119
120
  eventType: row.event_type,
121
+ agentId: row.agent_id,
120
122
  payload: row.payload,
121
123
  tsEdgeMs: row.ts_ms,
122
124
  ...row.project_id ? { scope: { project_id: row.project_id } } : {}
@@ -1,4 +1,4 @@
1
- import { $ as appendAuditEntryStrict, r as enumerateRemCandidateScopes, tt as getAuditPath } from "./rem-batch-executor-Bdsf26tD.js";
1
+ import { $ as appendAuditEntryStrict, r as enumerateRemCandidateScopes, tt as getAuditPath } from "./rem-batch-executor-vssXCmmE.js";
2
2
  import { s as REM_SIDECAR_TOKEN_HEADER } from "./routes-DLHT__Ay.js";
3
3
  import { d as getRemDiscoveryPath, o as REM_RUN_PATH, r as REM_CORRELATION_ID_HEADER, s as REM_SIDECAR_HOST } from "./config-CyH1VuJc.js";
4
4
  import { createLogger } from "@snoai/utils/logger";
@@ -1,7 +1,7 @@
1
- import { $ as appendAuditEntryStrict, Ct as ModelCallRefusedError, H as parseRemOperationType, V as REM_BUILT_OPERATION_TYPES, at as readJsonlLines, tt as getAuditPath } from "./rem-batch-executor-Bdsf26tD.js";
1
+ import { $ as appendAuditEntryStrict, Ct as ModelCallRefusedError, H as parseRemOperationType, V as REM_BUILT_OPERATION_TYPES, at as readJsonlLines, tt as getAuditPath } from "./rem-batch-executor-vssXCmmE.js";
2
2
  import { a as MEMORY_ROUTES, c as memoryMethod, n as MEMORY_DEFAULT_SKIN_ID, o as MEMORY_SKIN_HEADER, r as MEMORY_ERROR_STATUS } from "./routes-DLHT__Ay.js";
3
3
  import { C as getSnoStationMemStateDir, 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, 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-CyH1VuJc.js";
4
- import { n as remNeedsHost, r as ContractError } from "./rem-trigger-6dmOjIU_.js";
4
+ import { n as remNeedsHost, r as ContractError } from "./rem-trigger-BZBf_rmt.js";
5
5
  import { setImmediate } from "node:timers/promises";
6
6
  import { createLogger, currentLogContext, effectiveLogLevel, emitDiagnostic } from "@snoai/utils/logger";
7
7
  import path from "node:path";
@@ -650,7 +650,7 @@ async function startOwnedRemSidecar() {
650
650
  async open() {
651
651
  if (currentMemory) return currentMemory;
652
652
  if (settingsError) throw settingsError;
653
- openingMemory ??= import("./memory-runtime-BUmrJcmt.js").then((module) => module.MemoryRuntimePool.open()).then((pool) => {
653
+ openingMemory ??= import("./memory-runtime-BKBFbD1E.js").then((module) => module.MemoryRuntimePool.open()).then((pool) => {
654
654
  currentMemory = pool;
655
655
  if (stopping) pool.stopTimers();
656
656
  return pool;
@@ -1044,7 +1044,7 @@ async function runChassisJob(store, journal, waveId, holdMs, runtime) {
1044
1044
  cleanRefusalReasons.push(reason);
1045
1045
  await appendChassisRefusal(journal, queued, operation, "refused", reason);
1046
1046
  }
1047
- const { runRemProductionOrderedWave } = await import("./rem-batch-executor-DdgZBL5K.js");
1047
+ const { runRemProductionOrderedWave } = await import("./rem-batch-executor-_J7QoDuG.js");
1048
1048
  const result = enabledOperations.length === 0 ? {
1049
1049
  decision: "allow",
1050
1050
  reasonCode: null,
@@ -7,7 +7,7 @@ import { addLogFileTarget, closeLogger, createLogger } from "@snoai/utils/logger
7
7
  * @purpose Boots the standalone local REM sidecar process.
8
8
  * @boundary Process environment, sidecar lifecycle, and local request-log destination.
9
9
  */
10
- const { startRemSidecar, DuplicateSidecarError } = await import("../server-CyB-SYM6.js");
10
+ const { startRemSidecar, DuplicateSidecarError } = await import("../server-BkDfjx4w.js");
11
11
  let sidecar;
12
12
  while (!sidecar) try {
13
13
  sidecar = await startRemSidecar();
@@ -13,7 +13,7 @@ import "./atomic-memory-extraction-By0axKHc.js";
13
13
  import "./internal/store/sqlite-runtime.js";
14
14
  import "./connection-C9YD5sgm.js";
15
15
  import "./internal/store/data-paths.js";
16
- import "./adapter-XaRHZWZ2.js";
16
+ import "./adapter-RxQ9CJ7f.js";
17
17
  import "./internal/engine/observability/memory-snapshot.js";
18
18
  import "./internal/engine/observability/observable-embedder.js";
19
19
  import "./internal/engine/observability/observable-llm-client.js";
@@ -1,6 +1,6 @@
1
1
  import "./types-DvQ6nTNC.js";
2
2
  import "./index-DL8AVj0Z.js";
3
- import "./adapter-CeQ7rViY.js";
3
+ import "./adapter-J6IQ0rvr.js";
4
4
  import "./embedding-provider-client-vynZMuit.js";
5
5
  import "./retriever-CXeB7-A2.js";
6
6
  import "./connection-3IVXpuPE.js";
@@ -14,10 +14,10 @@ import "./runtime-audit-log-CIYiNvwf.js";
14
14
  import "./atomic-memory-extraction-BT8lFE5t.js";
15
15
  import "./llm-client-PC0yQuCq.js";
16
16
  import "./memory-snapshot-shzK-0C8.js";
17
- import "./observable-embedder-CbFylzsx.js";
18
- import "./observable-llm-client-BC6Bc8t3.js";
19
- import "./observable-memory-store-BykVMQXt.js";
20
- import "./observable-retriever-C-c9O83s.js";
17
+ import "./observable-embedder-rKGU0LqW.js";
18
+ import "./observable-llm-client-Cw04DElM.js";
19
+ import "./observable-memory-store-CHLQvW9E.js";
20
+ import "./observable-retriever-DJKBEkBC.js";
21
21
  import "./reflection-embedded-generator-Dk7sL8uy.js";
22
22
  import "./strategy-hook-runner-C6qUCnzY.js";
23
23
  import "./data-bootstrap-Bl3lthzE.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@snoai/memory",
3
- "version": "1.2.1",
3
+ "version": "1.2.3",
4
4
  "license": "Apache-2.0",
5
5
  "publishConfig": { "access": "public" },
6
6
  "repository": {