@snoai/memory 1.2.11 → 1.2.12

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 (51) hide show
  1. package/README.md +1 -1
  2. package/dist/{atomic-memory-extraction-o2v8mp7G.js → atomic-memory-extraction-B5FW2HhR.js} +4 -4
  3. package/dist/{config-C7LzSWhG.js → config-BWHnCb_Z.js} +32 -1
  4. package/dist/diagnostic-encoder.js +1 -1
  5. package/dist/index.js +4 -4
  6. package/dist/internal/config/settings.js +1 -1
  7. package/dist/internal/engine/bindings/memory-forget-tool.js +1 -1
  8. package/dist/internal/engine/bindings/memory-list-tool.js +1 -1
  9. package/dist/internal/engine/bindings/memory-recall-tool.js +1 -1
  10. package/dist/internal/engine/bindings/memory-reflection-resolve-tool.js +1 -1
  11. package/dist/internal/engine/bindings/memory-stats-tool.js +1 -1
  12. package/dist/internal/engine/bindings/memory-store-tool.js +3 -3
  13. package/dist/internal/engine/bindings/memory-tool-access.js +1 -1
  14. package/dist/internal/engine/bindings/memory-tool-results.js +1 -1
  15. package/dist/internal/engine/bindings/memory-tool-schemas.js +1 -1
  16. package/dist/internal/engine/bindings/memory-update-tool.js +2 -2
  17. package/dist/internal/engine/bindings/sno-station-mem-ambient-learning-hook.js +3 -3
  18. package/dist/internal/engine/bindings/sno-station-mem-auto-recall-hook.js +1 -1
  19. package/dist/internal/engine/bindings/sno-station-mem-insight-distill-factory.js +2 -2
  20. package/dist/internal/engine/bindings/sno-station-mem-message-transcript.js +2 -2
  21. package/dist/internal/engine/extraction/atomic-memory-extraction.js +1 -1
  22. package/dist/internal/engine/extraction/memory-temporality-classifier.js +1 -1
  23. package/dist/internal/engine/observability/observable-memory-store.js +1 -1
  24. package/dist/internal/engine/observability/runtime-diagnostics.js +2 -2
  25. package/dist/internal/engine/reflection/reflection-command-hooks.js +1 -1
  26. package/dist/internal/engine/reflection/reflection-embedded-generator.js +1 -1
  27. package/dist/internal/engine/reflection/reflection-injection-hooks.js +1 -1
  28. package/dist/internal/engine/reflection/reflection-lifecycle-hooks.js +1 -1
  29. package/dist/internal/engine/reflection/strategy-hook-runner.js +2 -2
  30. package/dist/internal/model/llm-client.js +1 -1
  31. package/dist/internal/model/llm-mode-routing.js +1 -1
  32. package/dist/internal/store/maintenance.js +2 -2
  33. package/dist/internal/store/store.js +1 -1
  34. package/dist/{llm-client-ConEyQEs.js → llm-client-DPBhPtmQ.js} +20 -3
  35. package/dist/{log-site-catalog.generated-Dzgj9o5c.js → log-site-catalog.generated-B4LkDXe0.js} +4 -4
  36. package/dist/log-site-catalog.json +1 -1
  37. package/dist/{memory-runtime-C8ZIW2WL.js → memory-runtime-D6cAHd34.js} +6 -6
  38. package/dist/{memory-temporality-classifier-MBJyJdvB.js → memory-temporality-classifier-Bm4-tqB5.js} +2 -2
  39. package/dist/{memory-tool-dependencies-DUMY8SwB.js → memory-tool-dependencies-R_yWuFEg.js} +1 -1
  40. package/dist/{model-call-table-BE97f37s.js → model-call-table-DoIl2S0P.js} +32 -1
  41. package/dist/{profile-section-writer-CmNa95uN.js → profile-section-writer-Cu3ND3j7.js} +2 -2
  42. package/dist/{reflection-command-hooks-CnTj8cKL.js → reflection-command-hooks-vKpljnqv.js} +3 -3
  43. package/dist/{reflection-embedded-generator-DR525Moy.js → reflection-embedded-generator-CwTXvERI.js} +1 -1
  44. package/dist/{rem-batch-executor-DbV8Y-B-.js → rem-batch-executor-Cn-MBe4m.js} +1 -1
  45. package/dist/{rem-trigger-BSrGyG0s.js → rem-trigger-B_S0CBa7.js} +20 -3
  46. package/dist/{server-CjwHZY1P.js → server-C2XTjGFr.js} +4 -4
  47. package/dist/sidecar/main.js +2 -2
  48. package/dist/{sno-station-mem-runtime-dependencies-DlvM6mL7.js → sno-station-mem-runtime-dependencies-BaaXGrZb.js} +5 -5
  49. package/dist/{store-BQxkgJTX.js → store-BzWYcvpF.js} +1 -1
  50. package/dist/{strategy-hook-runner-SvyyGBXw.js → strategy-hook-runner-GaJKb3O8.js} +1 -1
  51. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
- import { $ as renderAdapterAChatPrompt, $t as MEMORY_CATEGORIES, A as journalAtomicArrivalRetirementRefusal, B as StaleSupersedeTargetError, Bt as debugContentPreview, C as buildTaskLifecycleCommandClaim, Cn as withMemoryOperation, Ct as withProviderResponses, D as normalizeEntityName, E as listAtomicMemoryEntityCandidates, Et as appendAuditEntry, F as normalizeTopicToSectionName, Ft as CODING_SKIN_LEDGER_MAX_CHARS, G as loadSqliteVecExtension, Gt as redactSecrets, H as validateMemoryTelemetryMetadata, Ht as stripHtmlTags, I as getSnoStationMemDataDir, It as CODING_SKIN_SESSION_QUERY, J as adapterAViewFromRecord, Jt as stringifyInsightMetadata, Kt as buildInsightMetadata, L as AtomicExtractionCompletedElsewhere, Lt as HOST_MODEL_DEADLINE_HEADER, M as recordTokenCounter, Mt as runWithMemoryAuditSync, N as canExtractorWrite, Nt as runWithMutationAttempt, O as recordAtomicEntityIdentityJournal, P as canonicalizeProfileSectionName, Q as prospectiveProfileView, Qt as AGGREGATION_OPERATIONS, R as normalizeMemoryRelationPredicate, Rt as clamp01, S as admitTaskLifecycleAssertion, Sn as memoryOperationSignal, St as isTerminalLlmFailure, T as resolveHookAgentId, Tt as isTerminalLlmFailure$1, U as randomUUID$1, Ut as stripRoleLabelPrefix, V as TaskLifecycleStaleResolutionError, Vt as stableHash, W as readChunkVecTableState, Wt as truncateGraphemes, X as orderAdapterAPair, Xt as parseIsoDateTimeMs, Y as isAdapterAVerdictReply, Yt as normalizeIsoDateTimeString, Z as parseAdapterAChatVerdict, Zt as deriveFactKey, _ as acceptsTaskLifecycleJudgment, _n as initSqliteRuntime, _t as createScopePolicy, an as atomicExtractionSkillReference, at as resolveMemoryDate, b as resolveTaskLifecycle, bn as checkMemoryOperation, cn as state_vocabulary_default, ct as buildIndexedText, dn as calendarInstructionSchema, dt as ALL_RESOURCES, en as normalizeCategory, et as renderAdapterAPrompt, fn as isCalendarLabel, ft as RESOURCES_BY_LOCALE, g as Embedder, gn as isMemoryTelemetryEventType, gt as MemoryScopePolicy, h as AccessTracker, hn as MEMORY_TELEMETRY_DELETE_REASONS, ht as StorageError, in as ATOMIC_EXTRACTION_SKILL_HASH, it as serializeIntervalMetadata, j as readAtomicArrivalRetirementCandidateSet, jt as runWithMemoryAudit, k as closeAtomicArrivalRetirementTargets, kt as currentMutationAttemptId, ln as relations, lt as stripEnvelopeMetadata, m as DEFAULT_RETRIEVAL_CONFIG, mn as attribute_dictionary_default, mt as SnoStationMemError, nn as resolveLlmRoute, nt as readMemorySourceOrderOrOldest, on as modelReplyJsonCandidates, ot as unresolvedMemoryDate, p as MemoryRetriever, pn as sessionZoneCarriedBy, pt as RetrievalError, qt as parseInsightMetadata, rn as ATOMIC_EXTRACTION_SKILL, rt as parseSessionTimestamp, sn as readModelReplyJson, st as boundSectionContent, t as evaluateRemAutomaticTriggers, tn as pickLlmRoutingConfig, tt as compareMemorySourceOrder, un as calculateCalendarTime, ut as normalizeAmbientLearningText, v as buildTaskLifecycleCandidateSet, vn as openSqliteDatabase, vt as parseAgentIdFromSessionKey, w as resolveTaskLifecycleEffectiveTime, wn as forwardObserveLedgerUntilIdle, wt as classifyLlmFailure, x as taskLifecycleCandidateSetVersion, xn as memoryFileWrite, xt as createLlmClient, y as findUniqueActiveTaskByDescription, yn as openSqliteDatabaseReadonly, yt as LlmClientTerminalError, z as MemoryStore, zt as clampInt } from "./rem-trigger-BSrGyG0s.js";
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-C7LzSWhG.js";
1
+ import { $ as renderAdapterAChatPrompt, $t as MEMORY_CATEGORIES, A as journalAtomicArrivalRetirementRefusal, B as StaleSupersedeTargetError, Bt as debugContentPreview, C as buildTaskLifecycleCommandClaim, Cn as withMemoryOperation, Ct as withProviderResponses, D as normalizeEntityName, E as listAtomicMemoryEntityCandidates, Et as appendAuditEntry, F as normalizeTopicToSectionName, Ft as CODING_SKIN_LEDGER_MAX_CHARS, G as loadSqliteVecExtension, Gt as redactSecrets, H as validateMemoryTelemetryMetadata, Ht as stripHtmlTags, I as getSnoStationMemDataDir, It as CODING_SKIN_SESSION_QUERY, J as adapterAViewFromRecord, Jt as stringifyInsightMetadata, Kt as buildInsightMetadata, L as AtomicExtractionCompletedElsewhere, Lt as HOST_MODEL_DEADLINE_HEADER, M as recordTokenCounter, Mt as runWithMemoryAuditSync, N as canExtractorWrite, Nt as runWithMutationAttempt, O as recordAtomicEntityIdentityJournal, P as canonicalizeProfileSectionName, Q as prospectiveProfileView, Qt as AGGREGATION_OPERATIONS, R as normalizeMemoryRelationPredicate, Rt as clamp01, S as admitTaskLifecycleAssertion, Sn as memoryOperationSignal, St as isTerminalLlmFailure, T as resolveHookAgentId, Tt as isTerminalLlmFailure$1, U as randomUUID$1, Ut as stripRoleLabelPrefix, V as TaskLifecycleStaleResolutionError, Vt as stableHash, W as readChunkVecTableState, Wt as truncateGraphemes, X as orderAdapterAPair, Xt as parseIsoDateTimeMs, Y as isAdapterAVerdictReply, Yt as normalizeIsoDateTimeString, Z as parseAdapterAChatVerdict, Zt as deriveFactKey, _ as acceptsTaskLifecycleJudgment, _n as initSqliteRuntime, _t as createScopePolicy, an as atomicExtractionSkillReference, at as resolveMemoryDate, b as resolveTaskLifecycle, bn as checkMemoryOperation, cn as state_vocabulary_default, ct as buildIndexedText, dn as calendarInstructionSchema, dt as ALL_RESOURCES, en as normalizeCategory, et as renderAdapterAPrompt, fn as isCalendarLabel, ft as RESOURCES_BY_LOCALE, g as Embedder, gn as isMemoryTelemetryEventType, gt as MemoryScopePolicy, h as AccessTracker, hn as MEMORY_TELEMETRY_DELETE_REASONS, ht as StorageError, in as ATOMIC_EXTRACTION_SKILL_HASH, it as serializeIntervalMetadata, j as readAtomicArrivalRetirementCandidateSet, jt as runWithMemoryAudit, k as closeAtomicArrivalRetirementTargets, kt as currentMutationAttemptId, ln as relations, lt as stripEnvelopeMetadata, m as DEFAULT_RETRIEVAL_CONFIG, mn as attribute_dictionary_default, mt as SnoStationMemError, nn as resolveLlmRoute, nt as readMemorySourceOrderOrOldest, on as modelReplyJsonCandidates, ot as unresolvedMemoryDate, p as MemoryRetriever, pn as sessionZoneCarriedBy, pt as RetrievalError, qt as parseInsightMetadata, rn as ATOMIC_EXTRACTION_SKILL, rt as parseSessionTimestamp, sn as readModelReplyJson, st as boundSectionContent, t as evaluateRemAutomaticTriggers, tn as pickLlmRoutingConfig, tt as compareMemorySourceOrder, un as calculateCalendarTime, ut as normalizeAmbientLearningText, v as buildTaskLifecycleCandidateSet, vn as openSqliteDatabase, vt as parseAgentIdFromSessionKey, w as resolveTaskLifecycleEffectiveTime, wn as forwardObserveLedgerUntilIdle, wt as classifyLlmFailure, x as taskLifecycleCandidateSetVersion, xn as memoryFileWrite, xt as createLlmClient, y as findUniqueActiveTaskByDescription, yn as openSqliteDatabaseReadonly, yt as LlmClientTerminalError, z as MemoryStore, zt as clampInt } from "./rem-trigger-B_S0CBa7.js";
2
+ import { $n as MAX_CANDIDATE_POOL_SIZE, $t as FIXED_PROTOCOL_VALUE_79, A as modelCallDestination, An as DEFAULT_REFLECTION_ERROR_SCAN_MAX_CHARS, Bn as FORGET_QUERY_MIN_SCORE, Bt as FIXED_PROTOCOL_VALUE_63, C as getSnoStationMemStateDir, D as settingsToPluginConfig, Dn as DEFAULT_IMPORTANCE, E as defaultSettings, F as observeConfigSchema, Ft as FIXED_MEMORY_SNO_AI_EXTRACT, Gt as FIXED_PROTOCOL_VALUE_68, Ht as FIXED_PROTOCOL_VALUE_65, I as extractionConfigSchema, It as FIXED_MEMORY_SNO_EXTRACT_CHAT, Jt as FIXED_PROTOCOL_VALUE_74, Kn as INTEGRITY_CHECK_INTERVAL_MS, L as memoryReflectionConfigSchema, Lt as FIXED_MEMORY_SNO_EXTRACT_PROFILE, M as retrievalConfigSchema, N as isObserveAgentId, O as MODEL_CALLS, P as observeAgentId, Pt as FIXED_MEMORY_ROW_PATH_PATTERN, Qn as MAX_AGGREGATION_RESULT_TOKENS, Qt as FIXED_PROTOCOL_VALUE_78, R as selfImprovementConfigSchema, Sr as recallLifecycleSchema, T as readSettings, Ut as FIXED_PROTOCOL_VALUE_66, Vn as FTS_MERGE_INTERVAL_MS, Vt as FIXED_PROTOCOL_VALUE_64, Wt as FIXED_PROTOCOL_VALUE_67, Xt as FIXED_PROTOCOL_VALUE_76, Zn as MAINTENANCE_TICK_MS, Zt as FIXED_PROTOCOL_VALUE_77, _n as BACKUP_MIN_FREE_DISK_RATIO, _r as USAGE_EVENT_RETENTION_INTERVAL_MS, an as PERSISTED_PROVIDER_SYSTEM, b as getPrincipal, cr as PLANNER_STATISTICS_INTERVAL_MS, dr as REM_TRIGGER_CHECK_INTERVAL_MS, fn as ATOMIC_CAPTURE_OUTPUT_TOKEN_BUDGET, gn as BACKUP_INTERVAL_MS, h as readMaintenanceOverrides, hn as ATOMIC_EXTRACTION_MAX_INPUT_TOKENS, hr as SNO_OBSERVE_FLUSH_TIMEOUT_MS, ir as MIN_RECALL_TOKEN_BUDGET, j as SESSION_STRATEGIES, jn as DEFAULT_REFLECTION_SESSION_TTL_MS, kn as DEFAULT_RECALL_TOKEN_BUDGET, ln as isSupportedLocale, n as MEMORY_USAGE_FLUSH_INTERVAL_MS, on as embeddingConfigSchema, pn as ATOMIC_CAPTURE_TIMEOUT_MS, tr as MAX_LIST_LIMIT, vr as USAGE_OUTBOX_INTERVAL_MS, w as getStateDir, x as getSettingsPath, z as sessionMemoryConfigSchema } from "./config-BWHnCb_Z.js";
3
3
  import { n as DEGRADED_REASONS, t as ContractError } from "./error-D-wb-rZw.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";
@@ -196,7 +196,7 @@ function addNumber(target, key, value) {
196
196
  }
197
197
  //#endregion
198
198
  //#region package.json
199
- var version = "1.2.11";
199
+ var version = "1.2.12";
200
200
  //#endregion
201
201
  //#region config/atomic-extraction-response.schema.json
202
202
  var atomic_extraction_response_schema_default = {
@@ -1057,7 +1057,7 @@ function fallbackAtomicCapturedFact(fact) {
1057
1057
  //#endregion
1058
1058
  //#region src/engine/observability/log-site-catalog.generated.ts
1059
1059
  const logSiteCatalog = {
1060
- "build_id": "cfa0a6dc2622349a7cce144e91fc42d5d716fba04fbbad8133ae8a0627bc1150",
1060
+ "build_id": "a396e44ddf21082b9c9a4581b038ad8bcacd7fc51fb51aadfedcdadcc7f343db",
1061
1061
  "sites": {
1062
1062
  "memory.recall.budget.checked": {
1063
1063
  "file": "packages/memory/src/engine/bindings/memory-recall-tool.ts",
@@ -2616,9 +2616,9 @@ const logSiteCatalog = {
2616
2616
  "llm.transport.request.completed": {
2617
2617
  "file": "packages/memory/src/model/llm-provider-transport.ts",
2618
2618
  "function": "observeRequest",
2619
- "line": 68,
2619
+ "line": 82,
2620
2620
  "column": 4,
2621
- "file_hash": "7ba41a4716e6e6253bb9a6c89443cad659429a9bf924d7c30a7139ed434b8af2"
2621
+ "file_hash": "4779c2b9d4b4222719a8b1c1f65212b4235119c18db256d58072499140fd695d"
2622
2622
  },
2623
2623
  "memory.host.degraded": {
2624
2624
  "file": "packages/memory/src/model/registered-agent-port.ts",
@@ -1,7 +1,7 @@
1
1
  import { isSupportedLocale } from "./internal/engine/i18n/locales.js";
2
2
  import { parseIsoDateTimeMs } from "./internal/engine/shared/iso-date-time.js";
3
- import { n as modelCallDestination } from "./model-call-table-BE97f37s.js";
4
- import { a as isTerminalLlmFailure } from "./llm-client-ConEyQEs.js";
3
+ import { r as modelCallDestination } from "./model-call-table-DoIl2S0P.js";
4
+ import { a as isTerminalLlmFailure } from "./llm-client-DPBhPtmQ.js";
5
5
  import { n as readModelReplyJson } from "./model-reply-text-CKopStP2.js";
6
6
  import { n as RESOURCES_BY_LOCALE } from "./all-resources-BQK2ugjB.js";
7
7
  import { a as sessionZoneCarriedBy, n as calendarInstructionSchema, r as calendarSessionTimestamp, t as calculateCalendarTime } from "./calendar-instruction-CzqZbAPG.js";
@@ -8,7 +8,7 @@ import "./runtime-audit-log-DK6xAYxh.js";
8
8
  import "./all-resources-BQK2ugjB.js";
9
9
  import "./capture-policy-detector-DaMfy9CZ.js";
10
10
  import "./internal/engine/extraction/extraction-text-sanitizer.js";
11
- import "./memory-temporality-classifier-MBJyJdvB.js";
11
+ import "./memory-temporality-classifier-Bm4-tqB5.js";
12
12
  import "./internal/engine/operations/daily-spend-estimator.js";
13
13
  import "./internal/engine/operations/learning-file-maintenance.js";
14
14
  import "./scopes-a4Kly9n7.js";
@@ -570,8 +570,39 @@ const MODEL_CALLS = {
570
570
  }
571
571
  }
572
572
  };
573
+ /** Sno GPU workload label per call (GPU_REQUEST_METADATA_STANDARD): what the caller is doing, one stable value per group. */
574
+ const MODEL_CALL_WORKLOAD = {
575
+ E1: "station-extract",
576
+ E2: "station-extract",
577
+ E3: "station-extract",
578
+ E4: "station-extract",
579
+ E5: "station-extract",
580
+ E6: "station-subject",
581
+ E7: "station-subject",
582
+ E8: "station-subject",
583
+ E9: "station-profile-key",
584
+ E12: "station-profile-key",
585
+ E10: "station-verdict",
586
+ P1: "station-verdict",
587
+ P2: "station-profile-merge",
588
+ P3: "station-profile-merge",
589
+ P4: "station-profile-merge",
590
+ P5: "station-profile-merge",
591
+ P6: "station-profile-merge",
592
+ REM1: "station-rem-replace",
593
+ REM2: "station-rem-replace",
594
+ REM3: "station-rem-replace",
595
+ REM4: "station-rem-replace",
596
+ REM5: "station-rem-update",
597
+ REM6: "station-rem-update",
598
+ REM7: "station-rem-update",
599
+ REM8: "station-rem-update",
600
+ E11: "station-aux",
601
+ T1: "station-aux",
602
+ R1: "station-aux"
603
+ };
573
604
  function modelCallDestination(callId, mode, modelCalls) {
574
605
  return modelCalls[callId][mode];
575
606
  }
576
607
  //#endregion
577
- export { modelCallDestination as n, MODEL_CALLS as t };
608
+ export { MODEL_CALL_WORKLOAD as n, modelCallDestination as r, MODEL_CALLS as t };
@@ -2,11 +2,11 @@ import { MAX_LIST_LIMIT } from "./internal/config/index.js";
2
2
  import { SnoStationMemError, StorageError } from "./internal/engine/shared/errors.js";
3
3
  import { a as buildInsightMetadata, c as stringifyInsightMetadata, h as deriveFactKey, s as parseInsightMetadata } from "./memory-metadata-codec-DL1sbJiN.js";
4
4
  import { a as currentMutationAttemptId, f as runWithMutationAttempt } from "./runtime-audit-log-DK6xAYxh.js";
5
- import { n as LlmClientTerminalError } from "./llm-client-ConEyQEs.js";
5
+ import { n as LlmClientTerminalError } from "./llm-client-DPBhPtmQ.js";
6
6
  import { resolveLlmRoute } from "./internal/model/llm-mode-routing.js";
7
7
  import { boundSectionContent, buildIndexedText } from "./internal/engine/extraction/extraction-text-sanitizer.js";
8
8
  import { adapterAViewFromRecord, orderAdapterAPair, parseAdapterAChatVerdict, prospectiveProfileView, renderAdapterAChatPrompt, renderAdapterAPrompt } from "./internal/engine/rem/index.js";
9
- import { S as StaleSupersedeTargetError, a as resolveTaskLifecycle, c as buildTaskLifecycleCommandClaim, i as findUniqueActiveTaskByDescription, l as resolveTaskLifecycleEffectiveTime, n as acceptsTaskLifecycleJudgment, o as taskLifecycleCandidateSetVersion, r as buildTaskLifecycleCandidateSet, s as admitTaskLifecycleAssertion, w as TaskLifecycleStaleResolutionError } from "./store-BQxkgJTX.js";
9
+ import { S as StaleSupersedeTargetError, a as resolveTaskLifecycle, c as buildTaskLifecycleCommandClaim, i as findUniqueActiveTaskByDescription, l as resolveTaskLifecycleEffectiveTime, n as acceptsTaskLifecycleJudgment, o as taskLifecycleCandidateSetVersion, r as buildTaskLifecycleCandidateSet, s as admitTaskLifecycleAssertion, w as TaskLifecycleStaleResolutionError } from "./store-BzWYcvpF.js";
10
10
  import { o as canonicalizeProfileSectionName, r as recordTokenCounter } from "./memory-store-write-validation-B_hDG2zf.js";
11
11
  import { canExtractorWrite } from "./internal/engine/shared/memory-kind-policy.js";
12
12
  import { resolveHookAgentId } from "./internal/engine/bindings/sno-station-mem-runtime-mode.js";
@@ -3,14 +3,14 @@ import { a as buildInsightMetadata, c as stringifyInsightMetadata } from "./memo
3
3
  import { redactSecrets } from "./internal/engine/security/redact.js";
4
4
  import { t as checkMemoryOperation } from "./operation-cancellation-CTKWwNHk.js";
5
5
  import { setLruEntry } from "./internal/engine/shared/lru.js";
6
- import { i as createLlmClient } from "./llm-client-ConEyQEs.js";
6
+ import { i as createLlmClient } from "./llm-client-DPBhPtmQ.js";
7
7
  import { pickLlmRoutingConfig } from "./internal/model/llm-mode-routing.js";
8
8
  import { appendSelfImprovementEntry } from "./internal/engine/operations/learning-file-maintenance.js";
9
9
  import { getSnoStationMemDataDir } from "./internal/store/data-paths.js";
10
10
  import { resolveHookAgentId } from "./internal/engine/bindings/sno-station-mem-runtime-mode.js";
11
- import { n as createRetireByNameRunBudget, r as runProfileSectionUpdate } from "./profile-section-writer-CmNa95uN.js";
11
+ import { n as createRetireByNameRunBudget, r as runProfileSectionUpdate } from "./profile-section-writer-Cu3ND3j7.js";
12
12
  import { a as generateReflectionText, c as shouldSkipReflectionMessage, l as writeReflectionToFilesystem, s as readSessionConversationWithResetFallback, u as extractTextContent } from "./daily-log-generator-CH_KuWHs.js";
13
- import { a as resolveWorkspaceDirFromEvent, f as setReflectionDerivedCacheEntry, l as isSessionBoundaryReflectionAction, n as createReflectionGenerator, o as DEFAULT_REFLECTION_BOUNDARY_DERIVED_SUPPRESSION_MS, t as DEFAULT_MEMORY_LLM_CONFIG, u as setReflectionDerivedSuppression } from "./reflection-embedded-generator-DR525Moy.js";
13
+ import { a as resolveWorkspaceDirFromEvent, f as setReflectionDerivedCacheEntry, l as isSessionBoundaryReflectionAction, n as createReflectionGenerator, o as DEFAULT_REFLECTION_BOUNDARY_DERIVED_SUPPRESSION_MS, t as DEFAULT_MEMORY_LLM_CONFIG, u as setReflectionDerivedSuppression } from "./reflection-embedded-generator-CwTXvERI.js";
14
14
  import { i as buildReflectionMappedMetadata, n as createReflectionEventId, o as extractInjectableReflectionMappedMemoryItems, r as buildReflectionAntiPatternSignature, s as extractReflectionLearningGovernanceCandidates, t as storeReflectionEntries } from "./memory-entry-projector-DHo8jH10.js";
15
15
  import { createLogger, currentLogContext, privateLogReference, withLogContext } from "@snoai/utils/logger";
16
16
  import { basename, join } from "node:path";
@@ -1,5 +1,5 @@
1
1
  import { X as FIXED_MEMORY_SNO_AI_EXTRACT } from "./signed-registry-constants-yq3DlG3B.js";
2
- import { i as createLlmClient } from "./llm-client-ConEyQEs.js";
2
+ import { i as createLlmClient } from "./llm-client-DPBhPtmQ.js";
3
3
  //#region src/engine/reflection/derived-line-cache.ts
4
4
  /**
5
5
  * Returns reflection derived cache entry from reflection cache keys state without side effects.
@@ -1,2 +1,2 @@
1
- import { c as runRemProductionOrderedWave } from "./rem-trigger-BSrGyG0s.js";
1
+ import { c as runRemProductionOrderedWave } from "./rem-trigger-B_S0CBa7.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, N as observeAgentId, O as MODEL_CALLS, Ot as FIXED_MEMORY_MIGRATION_MARKERS, Pn as DEFAULT_VECTOR_WEIGHT, Pr as REM_SIDECAR_TOKEN_HEADER, 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, d as getRemDiscoveryPath, 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, o as REM_RUN_PATH, 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, r as REM_CORRELATION_ID_HEADER, rn as PERSISTED_CONTENT_HASH_V3, rt as FIXED_IDX_MEMORY_MEMORIES_FACT_ID, s as REM_SIDECAR_HOST, 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-C7LzSWhG.js";
1
+ import { $ as FIXED_IDX_MEMORY_ACTIVE_TASK_CURRENT_REVISION, A as modelCallDestination, At as FIXED_MEMORY_PROFILE_RECOVERY_ENTRIES, B as FIXED_EXTERNAL_VALUE_49, C as getSnoStationMemStateDir, Cn as CHUNK_OVERLAP_TOKENS, Cr as CachedEmbeddingProvider, Ct as FIXED_MEMORY_CHUNKS_MEM_FACET_IDX, D as settingsToPluginConfig, Dn as DEFAULT_IMPORTANCE, Dr as LocalEmbedProvider, Dt as FIXED_MEMORY_MEMORIES_FACT_ID_INSERT_GUARD, En as DEFAULT_BM25_WEIGHT, Et as FIXED_MEMORY_MEMORIES, Fn as DEFAULT_VECTOR_WEIGHT, Fr as REM_SIDECAR_TOKEN_HEADER, G as FIXED_EXTERNAL_VALUE_55, Gn as IMPORTANCE_WEIGHT_BASE, H as FIXED_EXTERNAL_VALUE_52, Hn as HEAD_EXTRACT_MIN_CONTENT_TOKENS, In as EMBEDDER_DIM, It as FIXED_MEMORY_SNO_EXTRACT_CHAT, J as FIXED_EXTERNAL_VALUE_58, Jn as LIGHTWEIGHT_COSINE_WEIGHT, K as FIXED_EXTERNAL_VALUE_56, Kt as FIXED_PROTOCOL_VALUE_69, Ln as EMBEDDER_MODEL_DEFAULT, Mn as DEFAULT_RERANK_MODEL, Mt as FIXED_MEMORY_PROVIDER_PROJECT_AGENTS, Nn as DEFAULT_RERANK_TIMEOUT_MS, Nt as FIXED_MEMORY_PROVIDER_PROJECT_MAPPINGS, O as MODEL_CALLS, On as DEFAULT_RECALL_LIFECYCLE, Or as ensureModelDownloaded, Ot as FIXED_MEMORY_MEMORIES_FACT_ID_UPDATE_GUARD, P as observeAgentId, Q as FIXED_IDX_MEMORY, Rn as EMBEDDER_PROVIDER_DEFAULT, Rt as FIXED_MEMORY_TASK_LIFECYCLE_COMMANDS, Sn as CHUNK_MIN_TOKENS, St as FIXED_MEMORY_CHUNKS_MEMORY_ID_IDX, T as readSettings, Tn as CHUNK_TOKENIZER_MODE, Tr as LOCAL_EMBEDDING_MODEL, Tt as FIXED_MEMORY_EXTRACTION_TIMESTAMPS, U as FIXED_EXTERNAL_VALUE_53, Un as HEAD_EXTRACT_OVERLAP_DROP_RATIO, V as FIXED_EXTERNAL_VALUE_51, W as FIXED_EXTERNAL_VALUE_54, Wn as HEAD_EXTRACT_TOKEN_BUDGET, X as FIXED_EXTERNAL_VALUE_8, Xn as LIGHTWEIGHT_RERANK_PENALTY, Y as FIXED_EXTERNAL_VALUE_62, Yn as LIGHTWEIGHT_FUSION_WEIGHT, Z as FIXED_EXTERNAL_VALUE_9, _t as FIXED_MEMORY_CHUNKS, a as REM_MODEL_OUTPUT_TOKEN_CAP, an as PERSISTED_PROVIDER_SYSTEM, ar as MMR_LAMBDA, at as FIXED_IDX_MEMORY_MEMORIES_LANE_PROJECT, bn as CHUNKING_VERSION$1, br as experimentCandidatePoolOverride, bt as FIXED_MEMORY_CHUNKS_AU, cn as SUPPORTED_LOCALES, ct as FIXED_IDX_MEMORY_MEMORIES_PROJECT_FACT_KEY_ACTIVE, d as getRemDiscoveryPath, dn as ADJACENCY_BONUS_PER_PAIR, dt as FIXED_MEMORY_ACTIVE_TASK_EVIDENCE, en as FIXED_VEC_MEMORY, er as MAX_CHUNK_FETCH_LIMIT, et as FIXED_IDX_MEMORY_ACTIVE_TASK_EVIDENCE_INSTANCE, fr as RERANK_BLEND_CROSS, ft as FIXED_MEMORY_ACTIVE_TASK_INSTANCES, g as readRemOperationalConfig, gr as TIME_DECAY_FLOOR, gt as FIXED_MEMORY_ACTIVE_TASK_TRANSITIONS, ht as FIXED_MEMORY_ACTIVE_TASK_REVISIONS, in as PERSISTED_CONTENT_HASH_V3, it as FIXED_IDX_MEMORY_MEMORIES_FACT_ID, jt as FIXED_MEMORY_PROVIDER_AGENT_MAPPINGS, k as MODEL_CALL_WORKLOAD, kt as FIXED_MEMORY_MIGRATION_MARKERS, lr as RECENCY_WEIGHT, lt as FIXED_IDX_MEMORY_MEMORIES_PROJECT_TIMESTAMP, mr as RETRIEVAL_STORAGE_CHUNK_PROFILE, mt as FIXED_MEMORY_ACTIVE_TASK_MIGRATION_MANIFESTS, nn as PERSISTED_CANDIDATE_HASH_V1, nt as FIXED_IDX_MEMORY_MEMORIES_CATEGORY, o as REM_RUN_PATH, or as MULTI_HIT_BONUS_CAP, ot as FIXED_IDX_MEMORY_MEMORIES_PROJECT, pr as RERANK_BLEND_VECTOR, pt as FIXED_MEMORY_ACTIVE_TASK_MIGRATION_EVIDENCE, q as FIXED_EXTERNAL_VALUE_57, qn as INTRA_MEMORY_COSINE_THRESHOLD, qt as FIXED_PROTOCOL_VALUE_73, r as REM_CORRELATION_ID_HEADER, rn as PERSISTED_CONTENT_HASH_V1, rt as FIXED_IDX_MEMORY_MEMORIES_CONTENT_HASH, s as REM_SIDECAR_HOST, sn as llmRoutingConfigSchema, sr as MULTI_HIT_BONUS_PER_HIT, st as FIXED_IDX_MEMORY_MEMORIES_PROJECT_CONTENT_HASH, tn as FIXED_VEC_MEMORY_CHUNKS, tr as MAX_LIST_LIMIT, tt as FIXED_IDX_MEMORY_ACTIVE_TASK_INSTANCES_PROJECTION, un as ADJACENCY_BONUS_CAP, ut as FIXED_MEMORY, vn as BONUS_TOTAL_INVARIANT, vt as FIXED_MEMORY_CHUNKS_AD, wn as CHUNK_TARGET_TOKENS, wr as LOCAL_EMBEDDING_CACHE_DIR_DEFAULT, wt as FIXED_MEMORY_CHUNKS_MEM_IDX, xn as CHUNK_MAX_TOKENS, xr as experimentMmrDisabled, xt as FIXED_MEMORY_CHUNKS_FTS, yn as CACHE_TTL_MS, yt as FIXED_MEMORY_CHUNKS_AI, zn as EVAL_QA_TRACES_FILENAME, zt as FIXED_MEMORY_UNPLACED_CANDIDATES } from "./config-BWHnCb_Z.js";
2
2
  import { createLogger, createLogger as createLogger$1, currentLogContext, privateLogReference, withLogContext } from "@snoai/utils/logger";
3
3
  import path, { dirname, join, resolve } from "node:path";
4
4
  import { appendFileSync, closeSync, createReadStream, existsSync, fstatSync, fsyncSync, ftruncateSync, mkdirSync, openSync, readFileSync, readSync, realpathSync, renameSync, rmSync, statSync, writeFileSync, writeSync } from "node:fs";
@@ -6655,11 +6655,23 @@ const providerResponses = new AsyncLocalStorage();
6655
6655
  function withProviderResponses(responses, run) {
6656
6656
  return providerResponses.run(responses, run);
6657
6657
  }
6658
+ /** Sno GPU request attribution (GPU_REQUEST_METADATA_STANDARD): self-reported labels, never identity. */
6659
+ const SNO_GPU_SOURCE = "sno-station";
6660
+ function snoGpuAttributionHeaders(clientRequestId, callId) {
6661
+ return {
6662
+ "X-Sno-Source": SNO_GPU_SOURCE,
6663
+ "X-Sno-Workload": callId ? MODEL_CALL_WORKLOAD[callId] : "station-aux",
6664
+ "X-Request-ID": clientRequestId
6665
+ };
6666
+ }
6658
6667
  async function observeRequest(input, run) {
6659
6668
  const route = createHash("sha256").update(input.endpoint).digest("hex");
6660
6669
  const inFlight = (routeInFlight.get(route) ?? 0) + 1;
6661
6670
  routeInFlight.set(route, inFlight);
6662
- const diagnostic = { started: performance.now() };
6671
+ const diagnostic = {
6672
+ started: performance.now(),
6673
+ clientRequestId: input.requestId ?? randomUUID()
6674
+ };
6663
6675
  return withLogContext({ attempt_id: randomUUID() }, async () => {
6664
6676
  let outcome = "failed";
6665
6677
  let failure;
@@ -6679,6 +6691,7 @@ async function observeRequest(input, run) {
6679
6691
  outcome,
6680
6692
  error: failure,
6681
6693
  call_id: input.slot ?? "unavailable",
6694
+ client_request_id: diagnostic.clientRequestId,
6682
6695
  destination: input.label ?? "unavailable",
6683
6696
  route_hash: route,
6684
6697
  transport: input.transport,
@@ -6689,6 +6702,7 @@ async function observeRequest(input, run) {
6689
6702
  prompt_template_unavailable_reason: input.promptTemplateHash ? void 0 : "caller_does_not_provide_template_identity",
6690
6703
  config_hash: createHash("sha256").update(JSON.stringify({
6691
6704
  ...input,
6705
+ requestId: void 0,
6692
6706
  endpoint: route
6693
6707
  })).digest("hex"),
6694
6708
  output_cap: input.cap ?? "unavailable",
@@ -6847,6 +6861,7 @@ async function callSnoProfileCompletion(request) {
6847
6861
  transport: "raw-completions",
6848
6862
  slot: request.callId,
6849
6863
  label: request.destination,
6864
+ requestId: request.requestId,
6850
6865
  timeout: request.timeoutMs,
6851
6866
  cap: request.singleTokenVerdict ? 1 : request.maxTokens,
6852
6867
  sampling: {},
@@ -6862,7 +6877,7 @@ async function callSnoProfileCompletion(request) {
6862
6877
  headers: {
6863
6878
  "Content-Type": "application/json",
6864
6879
  "X-Internal-Token": request.apiKey,
6865
- ...request.requestId ? { "X-Request-ID": request.requestId } : {},
6880
+ ...snoGpuAttributionHeaders(diagnostic.clientRequestId, request.callId),
6866
6881
  ...request.operationId ? { "X-Sno-Operation": request.operationId } : {}
6867
6882
  },
6868
6883
  body: JSON.stringify({
@@ -6942,6 +6957,7 @@ async function snoStationMemDispatch(ctx) {
6942
6957
  transport: "chat-completions",
6943
6958
  slot: cfgExt.callId,
6944
6959
  label: cfgExt.destination,
6960
+ requestId: typeof cfgExt.requestId === "string" ? cfgExt.requestId : void 0,
6945
6961
  timeout: timeoutMs,
6946
6962
  cap: typeof callBody.max_tokens === "number" ? callBody.max_tokens : typeof callBody.max_completion_tokens === "number" ? callBody.max_completion_tokens : void 0,
6947
6963
  sampling,
@@ -6961,6 +6977,7 @@ async function snoStationMemDispatch(ctx) {
6961
6977
  if (typeof cfgExt.requestId === "string") headers["X-Request-ID"] = cfgExt.requestId;
6962
6978
  if (provider === "sno-gpu") {
6963
6979
  headers["X-Internal-Token"] = ctx.apiKey;
6980
+ Object.assign(headers, snoGpuAttributionHeaders(diagnostic.clientRequestId, cfgExt.callId));
6964
6981
  if (typeof cfgExt.operationId === "string") headers["X-Sno-Operation"] = cfgExt.operationId;
6965
6982
  } else headers.Authorization = `Bearer ${ctx.apiKey}`;
6966
6983
  let response;
@@ -1,5 +1,5 @@
1
- import { At as getAuditPath, Dt as appendAuditEntryStrict, K as REM_BUILT_OPERATION_TYPES, Ot as compactAuditLog, Pt as readJsonlLines, bt as ModelCallRefusedError, d as RemJobStore, f as parseRemJobStats, n as remNeedsHost, q as parseRemOperationType } from "./rem-trigger-BSrGyG0s.js";
2
- import { Ar as MEMORY_ERROR_STATUS, C as getSnoStationMemStateDir, Fr as memoryMethod, Mr as MEMORY_ROUTES, Nr as MEMORY_SKIN_HEADER, 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, kr as MEMORY_DEFAULT_SKIN_ID, l as REM_SOURCE, nr as MEMORY_SHUTDOWN_TIMEOUT_MS, r as REM_CORRELATION_ID_HEADER, s as REM_SIDECAR_HOST, u as getRemChassisJournalPath, v as SettingsUnavailableError, y as getDiscoveryPath } from "./config-C7LzSWhG.js";
1
+ import { At as getAuditPath, Dt as appendAuditEntryStrict, K as REM_BUILT_OPERATION_TYPES, Ot as compactAuditLog, Pt as readJsonlLines, bt as ModelCallRefusedError, d as RemJobStore, f as parseRemJobStats, n as remNeedsHost, q as parseRemOperationType } from "./rem-trigger-B_S0CBa7.js";
2
+ import { Ar as MEMORY_DEFAULT_SKIN_ID, C as getSnoStationMemStateDir, Ir as memoryMethod, Nr as MEMORY_ROUTES, Pr as MEMORY_SKIN_HEADER, S as getSidecarSocketPath, _ as readRemTestHoldMs, c as REM_SIDECAR_ORIGIN, d as getRemDiscoveryPath, f as getRemJobJournalPath, g as readRemOperationalConfig, i as REM_JOBS_PATH_PREFIX, jr as MEMORY_ERROR_STATUS, l as REM_SOURCE, r as REM_CORRELATION_ID_HEADER, rr as MEMORY_SHUTDOWN_TIMEOUT_MS, s as REM_SIDECAR_HOST, u as getRemChassisJournalPath, v as SettingsUnavailableError, y as getDiscoveryPath } from "./config-BWHnCb_Z.js";
3
3
  import { t as ContractError } from "./error-D-wb-rZw.js";
4
4
  import { setImmediate } from "node:timers/promises";
5
5
  import { createLogger, currentLogContext, effectiveLogLevel, emitDiagnostic } from "@snoai/utils/logger";
@@ -334,7 +334,7 @@ async function startOwnedRemSidecar() {
334
334
  async open() {
335
335
  if (currentMemory) return currentMemory;
336
336
  if (settingsError) throw settingsError;
337
- openingMemory ??= import("./memory-runtime-C8ZIW2WL.js").then((module) => module.MemoryRuntimePool.open()).then((pool) => {
337
+ openingMemory ??= import("./memory-runtime-D6cAHd34.js").then((module) => module.MemoryRuntimePool.open()).then((pool) => {
338
338
  currentMemory = pool;
339
339
  if (stopping) pool.stopTimers();
340
340
  return pool;
@@ -729,7 +729,7 @@ async function runChassisJob(store, journal, waveId, holdMs, runtime) {
729
729
  cleanRefusalReasons.push(reason);
730
730
  await appendChassisRefusal(journal, queued, operation, "refused", reason);
731
731
  }
732
- const { runRemProductionOrderedWave } = await import("./rem-batch-executor-DbV8Y-B-.js");
732
+ const { runRemProductionOrderedWave } = await import("./rem-batch-executor-Cn-MBe4m.js");
733
733
  const result = enabledOperations.length === 0 ? {
734
734
  decision: "allow",
735
735
  reasonCode: null,
@@ -1,4 +1,4 @@
1
- import { jr as MEMORY_RECONNECT_INTERVAL_MS, m as isRemTraceEnabled, p as getRemTraceLogPath, v as SettingsUnavailableError } from "../config-C7LzSWhG.js";
1
+ import { Mr as MEMORY_RECONNECT_INTERVAL_MS, m as isRemTraceEnabled, p as getRemTraceLogPath, v as SettingsUnavailableError } from "../config-BWHnCb_Z.js";
2
2
  import { setTimeout } from "node:timers/promises";
3
3
  import { addLogFileTarget, closeLogger, createLogger } from "@snoai/utils/logger";
4
4
  //#region src/sidecar/main.ts
@@ -6,7 +6,7 @@ import { addLogFileTarget, closeLogger, createLogger } from "@snoai/utils/logger
6
6
  * @purpose Boots the standalone local REM sidecar process.
7
7
  * @boundary Process environment, sidecar lifecycle, and local request-log destination.
8
8
  */
9
- const { startRemSidecar, DuplicateSidecarError } = await import("../server-CjwHZY1P.js");
9
+ const { startRemSidecar, DuplicateSidecarError } = await import("../server-C2XTjGFr.js");
10
10
  let sidecar;
11
11
  for (let attempt = 1; !sidecar; attempt++) try {
12
12
  sidecar = await startRemSidecar();
@@ -4,12 +4,12 @@ import "./internal/engine/shared/types.js";
4
4
  import "./internal/engine/security/redact.js";
5
5
  import "./internal/engine/shared/utils.js";
6
6
  import "./runtime-audit-log-DK6xAYxh.js";
7
- import "./llm-client-ConEyQEs.js";
7
+ import "./llm-client-DPBhPtmQ.js";
8
8
  import "./capture-policy-detector-DaMfy9CZ.js";
9
9
  import "./ambient-learning-text-normalizer-CxjATmMp.js";
10
- import "./memory-temporality-classifier-MBJyJdvB.js";
10
+ import "./memory-temporality-classifier-Bm4-tqB5.js";
11
11
  import "./scopes-a4Kly9n7.js";
12
- import "./atomic-memory-extraction-o2v8mp7G.js";
12
+ import "./atomic-memory-extraction-B5FW2HhR.js";
13
13
  import "./internal/store/sqlite-runtime.js";
14
14
  import "./connection-PQcq3TPO.js";
15
15
  import "./internal/store/data-paths.js";
@@ -23,8 +23,8 @@ import "./retriever-Bzz6H8Mn.js";
23
23
  import "./internal/engine/observability/observable-retriever.js";
24
24
  import "./internal/engine/observability/session-registry.js";
25
25
  import "./daily-log-generator-CH_KuWHs.js";
26
- import "./reflection-embedded-generator-DR525Moy.js";
27
- import "./strategy-hook-runner-SvyyGBXw.js";
26
+ import "./reflection-embedded-generator-CwTXvERI.js";
27
+ import "./strategy-hook-runner-GaJKb3O8.js";
28
28
  import "./data-bootstrap-P8sie9WA.js";
29
29
  import "@snoai/sqlite-crypto";
30
30
  export {};
@@ -10,7 +10,7 @@ import { t as checkMemoryOperation } from "./operation-cancellation-CTKWwNHk.js"
10
10
  import { u as runWithMemoryAudit } from "./runtime-audit-log-DK6xAYxh.js";
11
11
  import { getSnoStationMemStateDir } from "./internal/contract/profile.js";
12
12
  import "./internal/engine/extraction/extraction-text-sanitizer.js";
13
- import "./memory-temporality-classifier-MBJyJdvB.js";
13
+ import "./memory-temporality-classifier-Bm4-tqB5.js";
14
14
  import { a as readMemorySourceOrder, i as readCorrectionMoment, n as compareMemoryRetirementOrder, o as readMemorySourceOrderOrOldest, r as compareMemorySourceOrder, s as sameSourceTurn, t as closeMemoryRow } from "./memory-source-order-YMRoeDLd.js";
15
15
  import { REM_UPDATE_LOCALES, deriveRemWriteIdentity, getRemUpdateLocaleResource, writeRemTwoFacetTransaction } from "./internal/engine/rem/index.js";
16
16
  import { n as state_vocabulary_default, r as attribute_dictionary_default, t as relations } from "./relation-dictionary-Cev1kyLe.js";
@@ -1,7 +1,7 @@
1
1
  import { DEFAULT_REFLECTION_SESSION_TTL_MS } from "./internal/config/index.js";
2
2
  import { setLruEntry, touchLruEntry } from "./internal/engine/shared/lru.js";
3
3
  import { n as createErrorSignalTracker } from "./error-signals-lMH2uAdV.js";
4
- import { i as pruneReflectionState } from "./reflection-embedded-generator-DR525Moy.js";
4
+ import { i as pruneReflectionState } from "./reflection-embedded-generator-CwTXvERI.js";
5
5
  import { a as loadAgentReflectionSlicesFromEntries } from "./memory-entry-projector-DHo8jH10.js";
6
6
  import { createLogger } from "@snoai/utils/logger";
7
7
  //#region src/engine/reflection/reflection-slice-loader.ts
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@snoai/memory",
3
- "version": "1.2.11",
3
+ "version": "1.2.12",
4
4
  "license": "Apache-2.0",
5
5
  "publishConfig": { "access": "public" },
6
6
  "repository": {