@snoai/memory 1.6.0 → 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.
Files changed (58) hide show
  1. package/README.md +1 -1
  2. package/dist/{atomic-extraction-reply-BJ9XV_9s.js → atomic-extraction-reply-DF_S9ROg.js} +6 -3
  3. package/dist/{atomic-memory-extraction-l65aofbl.js → atomic-memory-extraction-pL1_58Kw.js} +45 -6
  4. package/dist/{coding-skin-azRXA51Z.js → coding-skin-AW1UPUPY.js} +9 -1
  5. package/dist/coding-skin.d.ts +8 -0
  6. package/dist/coding-skin.js +2 -2
  7. package/dist/{config-CByvnX3d.js → config-BwUcq2zS.js} +12 -7
  8. package/dist/diagnostic-encoder.js +1 -1
  9. package/dist/index.js +5 -5
  10. package/dist/internal/config/settings.js +1 -1
  11. package/dist/internal/engine/bindings/memory-forget-tool.js +1 -1
  12. package/dist/internal/engine/bindings/memory-list-tool.js +1 -1
  13. package/dist/internal/engine/bindings/memory-recall-tool.js +1 -1
  14. package/dist/internal/engine/bindings/memory-reflection-resolve-tool.js +1 -1
  15. package/dist/internal/engine/bindings/memory-stats-tool.js +1 -1
  16. package/dist/internal/engine/bindings/memory-store-tool.js +3 -3
  17. package/dist/internal/engine/bindings/memory-tool-access.js +1 -1
  18. package/dist/internal/engine/bindings/memory-tool-results.js +1 -1
  19. package/dist/internal/engine/bindings/memory-tool-schemas.js +1 -1
  20. package/dist/internal/engine/bindings/memory-update-tool.js +2 -2
  21. package/dist/internal/engine/bindings/sno-station-mem-ambient-learning-hook.js +3 -3
  22. package/dist/internal/engine/bindings/sno-station-mem-auto-recall-hook.js +1 -1
  23. package/dist/internal/engine/bindings/sno-station-mem-insight-distill-factory.js +2 -2
  24. package/dist/internal/engine/bindings/sno-station-mem-message-transcript.js +2 -2
  25. package/dist/internal/engine/extraction/atomic-memory-extraction.js +1 -1
  26. package/dist/internal/engine/extraction/memory-temporality-classifier.js +1 -1
  27. package/dist/internal/engine/observability/observable-memory-store.js +1 -1
  28. package/dist/internal/engine/observability/runtime-diagnostics.js +3 -3
  29. package/dist/internal/engine/reflection/reflection-command-hooks.js +1 -1
  30. package/dist/internal/engine/reflection/reflection-embedded-generator.js +1 -1
  31. package/dist/internal/engine/reflection/reflection-injection-hooks.js +1 -1
  32. package/dist/internal/engine/reflection/reflection-lifecycle-hooks.js +1 -1
  33. package/dist/internal/engine/reflection/strategy-hook-runner.js +2 -2
  34. package/dist/internal/model/llm-client.js +1 -1
  35. package/dist/internal/model/llm-mode-routing.js +1 -1
  36. package/dist/internal/store/maintenance.js +3 -3
  37. package/dist/internal/store/store.js +1 -1
  38. package/dist/{llm-client-ByzZRemn.js → llm-client-Dq9FZPdC.js} +36 -6
  39. package/dist/{log-site-catalog.generated-DsvDgHJa.js → log-site-catalog.generated-Wze-GrOG.js} +90 -90
  40. package/dist/log-site-catalog.json +1 -1
  41. package/dist/{memory-runtime-DXr1VO1p.js → memory-runtime-B4A1t5DO.js} +139 -97
  42. package/dist/{memory-temporality-classifier-Bauwnls7.js → memory-temporality-classifier-CHcnOT5T.js} +2 -2
  43. package/dist/{memory-tool-dependencies-Cc4SJMtd.js → memory-tool-dependencies-CAVm0Sy4.js} +1 -1
  44. package/dist/{model-call-table-CPyQfBJ6.js → model-call-table-DjfbmUDl.js} +12 -7
  45. package/dist/{profile-section-writer-CR-WWIoB.js → profile-section-writer-3apndAJu.js} +2 -2
  46. package/dist/{reflection-command-hooks-Der9aX0e.js → reflection-command-hooks-B9UENMGV.js} +3 -3
  47. package/dist/{reflection-embedded-generator-BEdDusPV.js → reflection-embedded-generator-Do_r_LbU.js} +1 -1
  48. package/dist/{rem-batch-executor-DiU8hSGc.js → rem-batch-executor-BUgNyYLv.js} +1 -1
  49. package/dist/{rem-trigger-CBfyJVfh.js → rem-trigger-pg_cCp5U.js} +37 -7
  50. package/dist/{server-BlbG5uOM.js → server-CByyXSvp.js} +4 -4
  51. package/dist/sidecar/main.js +2 -2
  52. package/dist/{sno-station-mem-runtime-dependencies-DsidkZi2.js → sno-station-mem-runtime-dependencies-CgNS1dIM.js} +5 -5
  53. package/dist/{store-Bja1tVFw.js → store-DNgKOGWP.js} +1 -1
  54. package/dist/{strategy-hook-runner-F-ruiw48.js → strategy-hook-runner-Bg6rBY71.js} +1 -1
  55. package/package.json +1 -1
  56. package/settings.default.json +7 -7
  57. package/skills/extract-atomic-memory/SKILL.md +4 -3
  58. package/skills/extract-atomic-memory/references/capture.md +3 -2
@@ -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-CBfyJVfh.js";
2
- import { $t as FIXED_PROTOCOL_VALUE_79, A as modelCallDestination, An as DEFAULT_REFLECTION_ERROR_SCAN_MAX_CHARS, Bn as FTS_MERGE_INTERVAL_MS, 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, Gn as INTEGRITY_CHECK_INTERVAL_MS, Gt as FIXED_PROTOCOL_VALUE_68, Ht as FIXED_PROTOCOL_VALUE_65, I as extractionConfigSchema, It as FIXED_MEMORY_SNO_EXTRACT_CHAT, Jn as MAX_AGGREGATION_RESULT_TOKENS, Jt as FIXED_PROTOCOL_VALUE_74, 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, Qt as FIXED_PROTOCOL_VALUE_78, R as selfImprovementConfigSchema, T as readSettings, Ut as FIXED_PROTOCOL_VALUE_66, Vt as FIXED_PROTOCOL_VALUE_64, Wt as FIXED_PROTOCOL_VALUE_67, Xt as FIXED_PROTOCOL_VALUE_76, Yn as MAX_CANDIDATE_POOL_SIZE, Zn as MAX_LIST_LIMIT, Zt as FIXED_PROTOCOL_VALUE_77, _n as BACKUP_MIN_FREE_DISK_RATIO, an as PERSISTED_PROVIDER_SYSTEM, b as getPrincipal, dr as USAGE_EVENT_RETENTION_INTERVAL_MS, er as MIN_RECALL_TOKEN_BUDGET, fn as ATOMIC_CAPTURE_OUTPUT_TOKEN_BUDGET, fr as USAGE_OUTBOX_INTERVAL_MS, gn as BACKUP_INTERVAL_MS, gr as recallLifecycleSchema, h as readMaintenanceOverrides, hn as ATOMIC_EXTRACTION_MAX_INPUT_TOKENS, ir as PLANNER_STATISTICS_INTERVAL_MS, j as SESSION_STRATEGIES, jn as DEFAULT_REFLECTION_SESSION_TTL_MS, kn as DEFAULT_RECALL_TOKEN_BUDGET, ln as isSupportedLocale, lr as SNO_OBSERVE_FLUSH_TIMEOUT_MS, n as MEMORY_USAGE_FLUSH_INTERVAL_MS, on as embeddingConfigSchema, pn as ATOMIC_CAPTURE_TIMEOUT_MS, qn as MAINTENANCE_TICK_MS, sr as REM_TRIGGER_CHECK_INTERVAL_MS, w as getStateDir, x as getSettingsPath, z as sessionMemoryConfigSchema, zn as FORGET_QUERY_MIN_SCORE } from "./config-CByvnX3d.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-pg_cCp5U.js";
2
+ import { $t as FIXED_PROTOCOL_VALUE_79, A as modelCallDestination, An as DEFAULT_REFLECTION_ERROR_SCAN_MAX_CHARS, Bn as FTS_MERGE_INTERVAL_MS, 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, Gn as INTEGRITY_CHECK_INTERVAL_MS, Gt as FIXED_PROTOCOL_VALUE_68, Ht as FIXED_PROTOCOL_VALUE_65, I as extractionConfigSchema, It as FIXED_MEMORY_SNO_EXTRACT_CHAT, Jn as MAX_AGGREGATION_RESULT_TOKENS, Jt as FIXED_PROTOCOL_VALUE_74, 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, Qt as FIXED_PROTOCOL_VALUE_78, R as selfImprovementConfigSchema, T as readSettings, Ut as FIXED_PROTOCOL_VALUE_66, Vt as FIXED_PROTOCOL_VALUE_64, Wt as FIXED_PROTOCOL_VALUE_67, Xt as FIXED_PROTOCOL_VALUE_76, Yn as MAX_CANDIDATE_POOL_SIZE, Zn as MAX_LIST_LIMIT, Zt as FIXED_PROTOCOL_VALUE_77, _n as BACKUP_MIN_FREE_DISK_RATIO, an as PERSISTED_PROVIDER_SYSTEM, b as getPrincipal, dr as USAGE_EVENT_RETENTION_INTERVAL_MS, er as MIN_RECALL_TOKEN_BUDGET, fn as ATOMIC_CAPTURE_OUTPUT_TOKEN_BUDGET, fr as USAGE_OUTBOX_INTERVAL_MS, gn as BACKUP_INTERVAL_MS, gr as recallLifecycleSchema, h as readMaintenanceOverrides, hn as ATOMIC_EXTRACTION_MAX_INPUT_TOKENS, ir as PLANNER_STATISTICS_INTERVAL_MS, j as SESSION_STRATEGIES, jn as DEFAULT_REFLECTION_SESSION_TTL_MS, kn as DEFAULT_RECALL_TOKEN_BUDGET, ln as isSupportedLocale, lr as SNO_OBSERVE_FLUSH_TIMEOUT_MS, n as MEMORY_USAGE_FLUSH_INTERVAL_MS, on as embeddingConfigSchema, pn as ATOMIC_CAPTURE_TIMEOUT_MS, qn as MAINTENANCE_TICK_MS, sr as REM_TRIGGER_CHECK_INTERVAL_MS, w as getStateDir, x as getSettingsPath, z as sessionMemoryConfigSchema, zn as FORGET_QUERY_MIN_SCORE } from "./config-BwUcq2zS.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.6.0";
199
+ var version = "1.7.0";
200
200
  //#endregion
201
201
  //#region config/atomic-extraction-response.schema.json
202
202
  var atomic_extraction_response_schema_default = {
@@ -209,8 +209,11 @@ var atomic_extraction_response_schema_default = {
209
209
  properties: {
210
210
  "claims_found": {
211
211
  "type": "array",
212
- "items": { "type": "string" },
213
- "description": "One short string for each claim the turns this call owns state, in the order they appear; empty when they state none. Written before records so the list is read before the array is opened."
212
+ "items": {
213
+ "type": "integer",
214
+ "minimum": 0
215
+ },
216
+ "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."
214
217
  },
215
218
  "records": {
216
219
  "type": "array",
@@ -915,7 +918,7 @@ const captureFactSchema = wireRecordSchema.pick({
915
918
  ended_at_phrase: wireRecordSchema.shape.ended_at_phrase.unwrap()
916
919
  });
917
920
  const captureReplySchema = z.object({
918
- claims_found: z.array(z.string().min(1)),
921
+ claims_found: z.array(z.number().int().nonnegative()),
919
922
  decisions: z.array(z.object({
920
923
  turn_index: z.number().int().nonnegative(),
921
924
  progress_only: z.boolean()
@@ -1057,7 +1060,7 @@ function fallbackAtomicCapturedFact(fact) {
1057
1060
  //#endregion
1058
1061
  //#region src/engine/observability/log-site-catalog.generated.ts
1059
1062
  const logSiteCatalog = {
1060
- "build_id": "e19cc255ce05970a5fa88efbbcede55cc9bbdf9eb349e39cc93a9daebd4f8985",
1063
+ "build_id": "adc3f82ce64373cc97694ab820cb8be47d6786fb3a73a9048b88607316796a38",
1061
1064
  "sites": {
1062
1065
  "memory.recall.budget.checked": {
1063
1066
  "file": "packages/memory/src/engine/bindings/memory-recall-tool.ts",
@@ -1218,56 +1221,56 @@ const logSiteCatalog = {
1218
1221
  "function": "wireTimeSchema",
1219
1222
  "line": 90,
1220
1223
  "column": 2,
1221
- "file_hash": "090ab63c76950a7f85119c50ba2486b686609ff0ae09fceaa10c22a4c1a48ad8"
1224
+ "file_hash": "f67c8fce474fc8cd1bc945ed4c941a8bad627faabafde35bc4600de914de97b2"
1222
1225
  },
1223
1226
  "extraction.atomic-extraction-reply.projectRecord.327508ac5f": {
1224
1227
  "file": "packages/memory/src/engine/extraction/atomic-extraction-reply.ts",
1225
1228
  "function": "projectRecord",
1226
1229
  "line": 145,
1227
1230
  "column": 3,
1228
- "file_hash": "090ab63c76950a7f85119c50ba2486b686609ff0ae09fceaa10c22a4c1a48ad8"
1231
+ "file_hash": "f67c8fce474fc8cd1bc945ed4c941a8bad627faabafde35bc4600de914de97b2"
1229
1232
  },
1230
1233
  "extraction.atomic-extraction-reply.omitted_time": {
1231
1234
  "file": "packages/memory/src/engine/extraction/atomic-extraction-reply.ts",
1232
1235
  "function": "projectRecord",
1233
1236
  "line": 152,
1234
1237
  "column": 3,
1235
- "file_hash": "090ab63c76950a7f85119c50ba2486b686609ff0ae09fceaa10c22a4c1a48ad8"
1238
+ "file_hash": "f67c8fce474fc8cd1bc945ed4c941a8bad627faabafde35bc4600de914de97b2"
1236
1239
  },
1237
1240
  "extraction.atomic-extraction-reply.projectRecord.aac5440fc2": {
1238
1241
  "file": "packages/memory/src/engine/extraction/atomic-extraction-reply.ts",
1239
1242
  "function": "projectRecord",
1240
1243
  "line": 157,
1241
1244
  "column": 3,
1242
- "file_hash": "090ab63c76950a7f85119c50ba2486b686609ff0ae09fceaa10c22a4c1a48ad8"
1245
+ "file_hash": "f67c8fce474fc8cd1bc945ed4c941a8bad627faabafde35bc4600de914de97b2"
1243
1246
  },
1244
1247
  "extraction.atomic-extraction-reply.projectRecord.b92c90f285": {
1245
1248
  "file": "packages/memory/src/engine/extraction/atomic-extraction-reply.ts",
1246
1249
  "function": "projectRecord",
1247
1250
  "line": 164,
1248
1251
  "column": 3,
1249
- "file_hash": "090ab63c76950a7f85119c50ba2486b686609ff0ae09fceaa10c22a4c1a48ad8"
1252
+ "file_hash": "f67c8fce474fc8cd1bc945ed4c941a8bad627faabafde35bc4600de914de97b2"
1250
1253
  },
1251
1254
  "extraction.atomic-extraction-reply.salvage_ids": {
1252
1255
  "file": "packages/memory/src/engine/extraction/atomic-extraction-reply.ts",
1253
1256
  "function": "parseAtomicCaptureReply",
1254
- "line": 318,
1257
+ "line": 319,
1255
1258
  "column": 4,
1256
- "file_hash": "090ab63c76950a7f85119c50ba2486b686609ff0ae09fceaa10c22a4c1a48ad8"
1259
+ "file_hash": "f67c8fce474fc8cd1bc945ed4c941a8bad627faabafde35bc4600de914de97b2"
1257
1260
  },
1258
1261
  "extraction.atomic-extraction-reply.salvage_spans": {
1259
1262
  "file": "packages/memory/src/engine/extraction/atomic-extraction-reply.ts",
1260
1263
  "function": "parseAtomicCaptureReply",
1261
- "line": 323,
1264
+ "line": 324,
1262
1265
  "column": 4,
1263
- "file_hash": "090ab63c76950a7f85119c50ba2486b686609ff0ae09fceaa10c22a4c1a48ad8"
1266
+ "file_hash": "f67c8fce474fc8cd1bc945ed4c941a8bad627faabafde35bc4600de914de97b2"
1264
1267
  },
1265
1268
  "extraction.atomic-extraction-reply.unresolved_enrichment_time": {
1266
1269
  "file": "packages/memory/src/engine/extraction/atomic-extraction-reply.ts",
1267
1270
  "function": "warnUnresolvedEnrichmentTime",
1268
- "line": 349,
1271
+ "line": 350,
1269
1272
  "column": 3,
1270
- "file_hash": "090ab63c76950a7f85119c50ba2486b686609ff0ae09fceaa10c22a4c1a48ad8"
1273
+ "file_hash": "f67c8fce474fc8cd1bc945ed4c941a8bad627faabafde35bc4600de914de97b2"
1271
1274
  },
1272
1275
  "extraction.atomic-generic-extractor.enrichAtomicBatch": {
1273
1276
  "file": "packages/memory/src/engine/extraction/atomic-generic-extractor.ts",
@@ -1335,79 +1338,79 @@ const logSiteCatalog = {
1335
1338
  "extraction.atomic-memory-extraction.extractAndPersist.7e1c9d2660": {
1336
1339
  "file": "packages/memory/src/engine/extraction/atomic-memory-extraction.ts",
1337
1340
  "function": "extractAndPersist",
1338
- "line": 720,
1341
+ "line": 754,
1339
1342
  "column": 4,
1340
- "file_hash": "155293bf20505f110c69df5e852c49e67411c80b8b9fb3b8c5390b82e2fc47cc"
1343
+ "file_hash": "5f221e7113dda2bdc416f439d1e225fb46765e185d078f6d3062bc0075fe892e"
1341
1344
  },
1342
1345
  "memory.capture.completed": {
1343
1346
  "file": "packages/memory/src/engine/extraction/atomic-memory-extraction.ts",
1344
1347
  "function": "extractAndPersist",
1345
- "line": 877,
1348
+ "line": 911,
1346
1349
  "column": 4,
1347
- "file_hash": "155293bf20505f110c69df5e852c49e67411c80b8b9fb3b8c5390b82e2fc47cc"
1350
+ "file_hash": "5f221e7113dda2bdc416f439d1e225fb46765e185d078f6d3062bc0075fe892e"
1348
1351
  },
1349
1352
  "extraction.atomic-memory-extraction.readStandingSubjectCandidates.b88c6fb3aa": {
1350
1353
  "file": "packages/memory/src/engine/extraction/atomic-memory-extraction.ts",
1351
1354
  "function": "readStandingSubjectCandidates",
1352
- "line": 1015,
1355
+ "line": 1049,
1353
1356
  "column": 5,
1354
- "file_hash": "155293bf20505f110c69df5e852c49e67411c80b8b9fb3b8c5390b82e2fc47cc"
1357
+ "file_hash": "5f221e7113dda2bdc416f439d1e225fb46765e185d078f6d3062bc0075fe892e"
1355
1358
  },
1356
1359
  "extraction.atomic-memory-extraction.reaskStandingSubjects.1288498dec": {
1357
1360
  "file": "packages/memory/src/engine/extraction/atomic-memory-extraction.ts",
1358
1361
  "function": "reaskStandingSubjects",
1359
- "line": 1269,
1362
+ "line": 1303,
1360
1363
  "column": 4,
1361
- "file_hash": "155293bf20505f110c69df5e852c49e67411c80b8b9fb3b8c5390b82e2fc47cc"
1364
+ "file_hash": "5f221e7113dda2bdc416f439d1e225fb46765e185d078f6d3062bc0075fe892e"
1362
1365
  },
1363
1366
  "extraction.atomic-memory-extraction.reaskStandingSubjects.2b8785b171": {
1364
1367
  "file": "packages/memory/src/engine/extraction/atomic-memory-extraction.ts",
1365
1368
  "function": "reaskStandingSubjects",
1366
- "line": 1278,
1369
+ "line": 1312,
1367
1370
  "column": 2,
1368
- "file_hash": "155293bf20505f110c69df5e852c49e67411c80b8b9fb3b8c5390b82e2fc47cc"
1371
+ "file_hash": "5f221e7113dda2bdc416f439d1e225fb46765e185d078f6d3062bc0075fe892e"
1369
1372
  },
1370
1373
  "extraction.atomic-memory-extraction.runAtomicMemoryExtraction.304a5a8d5c": {
1371
1374
  "file": "packages/memory/src/engine/extraction/atomic-memory-extraction.ts",
1372
1375
  "function": "runAtomicMemoryExtraction",
1373
- "line": 1548,
1376
+ "line": 1582,
1374
1377
  "column": 3,
1375
- "file_hash": "155293bf20505f110c69df5e852c49e67411c80b8b9fb3b8c5390b82e2fc47cc"
1378
+ "file_hash": "5f221e7113dda2bdc416f439d1e225fb46765e185d078f6d3062bc0075fe892e"
1376
1379
  },
1377
1380
  "extraction.atomic-memory-extraction.over_token_ceiling": {
1378
1381
  "file": "packages/memory/src/engine/extraction/atomic-memory-extraction.ts",
1379
1382
  "function": "runAtomicMemoryExtraction",
1380
- "line": 1630,
1383
+ "line": 1664,
1381
1384
  "column": 3,
1382
- "file_hash": "155293bf20505f110c69df5e852c49e67411c80b8b9fb3b8c5390b82e2fc47cc"
1385
+ "file_hash": "5f221e7113dda2bdc416f439d1e225fb46765e185d078f6d3062bc0075fe892e"
1383
1386
  },
1384
1387
  "extraction.atomic-memory-extraction.runAtomicMemoryExtraction.0d9673d494": {
1385
1388
  "file": "packages/memory/src/engine/extraction/atomic-memory-extraction.ts",
1386
1389
  "function": "runAtomicMemoryExtraction",
1387
- "line": 1704,
1390
+ "line": 1738,
1388
1391
  "column": 4,
1389
- "file_hash": "155293bf20505f110c69df5e852c49e67411c80b8b9fb3b8c5390b82e2fc47cc"
1392
+ "file_hash": "5f221e7113dda2bdc416f439d1e225fb46765e185d078f6d3062bc0075fe892e"
1390
1393
  },
1391
1394
  "memory.extraction.window.completed": {
1392
1395
  "file": "packages/memory/src/engine/extraction/atomic-memory-extraction.ts",
1393
1396
  "function": "runAtomicMemoryExtraction",
1394
- "line": 1730,
1397
+ "line": 1764,
1395
1398
  "column": 3,
1396
- "file_hash": "155293bf20505f110c69df5e852c49e67411c80b8b9fb3b8c5390b82e2fc47cc"
1399
+ "file_hash": "5f221e7113dda2bdc416f439d1e225fb46765e185d078f6d3062bc0075fe892e"
1397
1400
  },
1398
1401
  "extraction.atomic-memory-extraction.judgeArrivalRetirementPair.call_failed": {
1399
1402
  "file": "packages/memory/src/engine/extraction/atomic-memory-extraction.ts",
1400
1403
  "function": "judgeArrivalRetirementPair",
1401
- "line": 1767,
1404
+ "line": 1801,
1402
1405
  "column": 3,
1403
- "file_hash": "155293bf20505f110c69df5e852c49e67411c80b8b9fb3b8c5390b82e2fc47cc"
1406
+ "file_hash": "5f221e7113dda2bdc416f439d1e225fb46765e185d078f6d3062bc0075fe892e"
1404
1407
  },
1405
1408
  "extraction.atomic-memory-extraction.judgeArrivalRetirementPair.reply_invalid": {
1406
1409
  "file": "packages/memory/src/engine/extraction/atomic-memory-extraction.ts",
1407
1410
  "function": "judgeArrivalRetirementPair",
1408
- "line": 1775,
1411
+ "line": 1809,
1409
1412
  "column": 3,
1410
- "file_hash": "155293bf20505f110c69df5e852c49e67411c80b8b9fb3b8c5390b82e2fc47cc"
1413
+ "file_hash": "5f221e7113dda2bdc416f439d1e225fb46765e185d078f6d3062bc0075fe892e"
1411
1414
  },
1412
1415
  "extraction.atomic-progress-boundary.salvage_decisions": {
1413
1416
  "file": "packages/memory/src/engine/extraction/atomic-progress-boundary.ts",
@@ -2455,121 +2458,121 @@ const logSiteCatalog = {
2455
2458
  "shared.llm-client.resolveRequestTransport.8f631601af": {
2456
2459
  "file": "packages/memory/src/model/llm-client.ts",
2457
2460
  "function": "resolveRequestTransport",
2458
- "line": 411,
2461
+ "line": 413,
2459
2462
  "column": 4,
2460
- "file_hash": "d9d56c4cbf4aa62794b80e977ce914700f23fd3faaa2ddafa6d7e4e2ce05a6c7"
2463
+ "file_hash": "edf46e9d2b7aec1e71c7630f6d7b55d3fd4a1328fd82ecff0bf864fe8ec51d71"
2461
2464
  },
2462
2465
  "shared.llm-client.resolveRequestTransport.ffa933b519": {
2463
2466
  "file": "packages/memory/src/model/llm-client.ts",
2464
2467
  "function": "resolveRequestTransport",
2465
- "line": 417,
2468
+ "line": 419,
2466
2469
  "column": 4,
2467
- "file_hash": "d9d56c4cbf4aa62794b80e977ce914700f23fd3faaa2ddafa6d7e4e2ce05a6c7"
2470
+ "file_hash": "edf46e9d2b7aec1e71c7630f6d7b55d3fd4a1328fd82ecff0bf864fe8ec51d71"
2468
2471
  },
2469
2472
  "llm.host.request.completed": {
2470
2473
  "file": "packages/memory/src/model/llm-client.ts",
2471
2474
  "function": "requestContent",
2472
- "line": 470,
2475
+ "line": 472,
2473
2476
  "column": 6,
2474
- "file_hash": "d9d56c4cbf4aa62794b80e977ce914700f23fd3faaa2ddafa6d7e4e2ce05a6c7"
2477
+ "file_hash": "edf46e9d2b7aec1e71c7630f6d7b55d3fd4a1328fd82ecff0bf864fe8ec51d71"
2475
2478
  },
2476
2479
  "llm.client.host_cancelled": {
2477
2480
  "file": "packages/memory/src/model/llm-client.ts",
2478
2481
  "function": "requestContent",
2479
- "line": 492,
2482
+ "line": 494,
2480
2483
  "column": 5,
2481
- "file_hash": "d9d56c4cbf4aa62794b80e977ce914700f23fd3faaa2ddafa6d7e4e2ce05a6c7"
2484
+ "file_hash": "edf46e9d2b7aec1e71c7630f6d7b55d3fd4a1328fd82ecff0bf864fe8ec51d71"
2482
2485
  },
2483
2486
  "llm.client.host_error": {
2484
2487
  "file": "packages/memory/src/model/llm-client.ts",
2485
2488
  "function": "requestContent",
2486
- "line": 507,
2489
+ "line": 509,
2487
2490
  "column": 5,
2488
- "file_hash": "d9d56c4cbf4aa62794b80e977ce914700f23fd3faaa2ddafa6d7e4e2ce05a6c7"
2491
+ "file_hash": "edf46e9d2b7aec1e71c7630f6d7b55d3fd4a1328fd82ecff0bf864fe8ec51d71"
2489
2492
  },
2490
2493
  "shared.llm-client.requestContent.ff17976562": {
2491
2494
  "file": "packages/memory/src/model/llm-client.ts",
2492
2495
  "function": "requestContent",
2493
- "line": 545,
2496
+ "line": 547,
2494
2497
  "column": 5,
2495
- "file_hash": "d9d56c4cbf4aa62794b80e977ce914700f23fd3faaa2ddafa6d7e4e2ce05a6c7"
2498
+ "file_hash": "edf46e9d2b7aec1e71c7630f6d7b55d3fd4a1328fd82ecff0bf864fe8ec51d71"
2496
2499
  },
2497
2500
  "llm.client.raw_pipeline_failed": {
2498
2501
  "file": "packages/memory/src/model/llm-client.ts",
2499
2502
  "function": "requestContent",
2500
- "line": 568,
2503
+ "line": 570,
2501
2504
  "column": 5,
2502
- "file_hash": "d9d56c4cbf4aa62794b80e977ce914700f23fd3faaa2ddafa6d7e4e2ce05a6c7"
2505
+ "file_hash": "edf46e9d2b7aec1e71c7630f6d7b55d3fd4a1328fd82ecff0bf864fe8ec51d71"
2503
2506
  },
2504
2507
  "llm.client.chat_pipeline_failed": {
2505
2508
  "file": "packages/memory/src/model/llm-client.ts",
2506
2509
  "function": "requestContent",
2507
- "line": 596,
2510
+ "line": 598,
2508
2511
  "column": 4,
2509
- "file_hash": "d9d56c4cbf4aa62794b80e977ce914700f23fd3faaa2ddafa6d7e4e2ce05a6c7"
2512
+ "file_hash": "edf46e9d2b7aec1e71c7630f6d7b55d3fd4a1328fd82ecff0bf864fe8ec51d71"
2510
2513
  },
2511
2514
  "llm.client.empty_reply": {
2512
2515
  "file": "packages/memory/src/model/llm-client.ts",
2513
2516
  "function": "requestContent",
2514
- "line": 610,
2517
+ "line": 612,
2515
2518
  "column": 4,
2516
- "file_hash": "d9d56c4cbf4aa62794b80e977ce914700f23fd3faaa2ddafa6d7e4e2ce05a6c7"
2519
+ "file_hash": "edf46e9d2b7aec1e71c7630f6d7b55d3fd4a1328fd82ecff0bf864fe8ec51d71"
2517
2520
  },
2518
2521
  "shared.llm-client.requestContentRetryingEmpty.cd874fefff": {
2519
2522
  "file": "packages/memory/src/model/llm-client.ts",
2520
2523
  "function": "requestContentRetryingEmpty",
2521
- "line": 653,
2524
+ "line": 655,
2522
2525
  "column": 5,
2523
- "file_hash": "d9d56c4cbf4aa62794b80e977ce914700f23fd3faaa2ddafa6d7e4e2ce05a6c7"
2526
+ "file_hash": "edf46e9d2b7aec1e71c7630f6d7b55d3fd4a1328fd82ecff0bf864fe8ec51d71"
2524
2527
  },
2525
2528
  "llm.client.fallback.answered": {
2526
2529
  "file": "packages/memory/src/model/llm-client.ts",
2527
2530
  "function": "requestContentWithHostFallback",
2528
- "line": 709,
2531
+ "line": 711,
2529
2532
  "column": 6,
2530
- "file_hash": "d9d56c4cbf4aa62794b80e977ce914700f23fd3faaa2ddafa6d7e4e2ce05a6c7"
2533
+ "file_hash": "edf46e9d2b7aec1e71c7630f6d7b55d3fd4a1328fd82ecff0bf864fe8ec51d71"
2531
2534
  },
2532
2535
  "llm.client.fallback.failed": {
2533
2536
  "file": "packages/memory/src/model/llm-client.ts",
2534
2537
  "function": "requestContentWithHostFallback",
2535
- "line": 726,
2538
+ "line": 728,
2536
2539
  "column": 3,
2537
- "file_hash": "d9d56c4cbf4aa62794b80e977ce914700f23fd3faaa2ddafa6d7e4e2ce05a6c7"
2540
+ "file_hash": "edf46e9d2b7aec1e71c7630f6d7b55d3fd4a1328fd82ecff0bf864fe8ec51d71"
2538
2541
  },
2539
2542
  "llm.client.json.deadline_exhausted": {
2540
2543
  "file": "packages/memory/src/model/llm-client.ts",
2541
2544
  "function": "completeJson",
2542
- "line": 755,
2545
+ "line": 757,
2543
2546
  "column": 7,
2544
- "file_hash": "d9d56c4cbf4aa62794b80e977ce914700f23fd3faaa2ddafa6d7e4e2ce05a6c7"
2547
+ "file_hash": "edf46e9d2b7aec1e71c7630f6d7b55d3fd4a1328fd82ecff0bf864fe8ec51d71"
2545
2548
  },
2546
2549
  "shared.llm-client.completeJson.e04c8e7e82": {
2547
2550
  "file": "packages/memory/src/model/llm-client.ts",
2548
2551
  "function": "completeJson",
2549
- "line": 771,
2552
+ "line": 773,
2550
2553
  "column": 5,
2551
- "file_hash": "d9d56c4cbf4aa62794b80e977ce914700f23fd3faaa2ddafa6d7e4e2ce05a6c7"
2554
+ "file_hash": "edf46e9d2b7aec1e71c7630f6d7b55d3fd4a1328fd82ecff0bf864fe8ec51d71"
2552
2555
  },
2553
2556
  "llm.client.json.request_failed": {
2554
2557
  "file": "packages/memory/src/model/llm-client.ts",
2555
2558
  "function": "completeJson",
2556
- "line": 777,
2559
+ "line": 779,
2557
2560
  "column": 5,
2558
- "file_hash": "d9d56c4cbf4aa62794b80e977ce914700f23fd3faaa2ddafa6d7e4e2ce05a6c7"
2561
+ "file_hash": "edf46e9d2b7aec1e71c7630f6d7b55d3fd4a1328fd82ecff0bf864fe8ec51d71"
2559
2562
  },
2560
2563
  "shared.llm-client.completeText.ffa933b519": {
2561
2564
  "file": "packages/memory/src/model/llm-client.ts",
2562
2565
  "function": "completeText",
2563
- "line": 801,
2566
+ "line": 803,
2564
2567
  "column": 5,
2565
- "file_hash": "d9d56c4cbf4aa62794b80e977ce914700f23fd3faaa2ddafa6d7e4e2ce05a6c7"
2568
+ "file_hash": "edf46e9d2b7aec1e71c7630f6d7b55d3fd4a1328fd82ecff0bf864fe8ec51d71"
2566
2569
  },
2567
2570
  "llm.transport.request.completed": {
2568
2571
  "file": "packages/memory/src/model/llm-provider-transport.ts",
2569
2572
  "function": "observeRequest",
2570
2573
  "line": 84,
2571
2574
  "column": 4,
2572
- "file_hash": "860dc857386796ceee42e10d7f118e3701543f6413e89a85f54fb5caff6863eb"
2575
+ "file_hash": "fb6b7573a0391e630d315f0797908c89c850381d12cd5382d3312ce99d0f3460"
2573
2576
  },
2574
2577
  "memory.host.degraded": {
2575
2578
  "file": "packages/memory/src/model/registered-agent-port.ts",
@@ -2604,140 +2607,140 @@ const logSiteCatalog = {
2604
2607
  "function": "engineLog",
2605
2608
  "line": 62,
2606
2609
  "column": 2,
2607
- "file_hash": "20eee889d95043ec22e9e8129aa8a57107e1ed4b8a7c0ee27fe2e5bbb5697b40"
2610
+ "file_hash": "91ed13824d55b8f09b1e3095dacf1484c189b58ac8938cb522509fe2535c59a5"
2608
2611
  },
2609
2612
  "memory.sidecar.pending_capture.pruned": {
2610
2613
  "file": "packages/memory/src/sidecar/memory-runtime.ts",
2611
2614
  "function": "constructor",
2612
2615
  "line": 115,
2613
2616
  "column": 15,
2614
- "file_hash": "20eee889d95043ec22e9e8129aa8a57107e1ed4b8a7c0ee27fe2e5bbb5697b40"
2617
+ "file_hash": "91ed13824d55b8f09b1e3095dacf1484c189b58ac8938cb522509fe2535c59a5"
2615
2618
  },
2616
2619
  "memory.sidecar.model.prepare.failed": {
2617
2620
  "file": "packages/memory/src/sidecar/memory-runtime.ts",
2618
2621
  "function": "prepareModel",
2619
2622
  "line": 129,
2620
2623
  "column": 4,
2621
- "file_hash": "20eee889d95043ec22e9e8129aa8a57107e1ed4b8a7c0ee27fe2e5bbb5697b40"
2624
+ "file_hash": "91ed13824d55b8f09b1e3095dacf1484c189b58ac8938cb522509fe2535c59a5"
2622
2625
  },
2623
2626
  "memory.sidecar.pending_capture.replay.failed": {
2624
2627
  "file": "packages/memory/src/sidecar/memory-runtime.ts",
2625
2628
  "function": "invoke",
2626
- "line": 340,
2629
+ "line": 341,
2627
2630
  "column": 65,
2628
- "file_hash": "20eee889d95043ec22e9e8129aa8a57107e1ed4b8a7c0ee27fe2e5bbb5697b40"
2631
+ "file_hash": "91ed13824d55b8f09b1e3095dacf1484c189b58ac8938cb522509fe2535c59a5"
2629
2632
  },
2630
2633
  "memory.sidecar.usage.failed": {
2631
2634
  "file": "packages/memory/src/sidecar/memory-runtime.ts",
2632
2635
  "function": "<anonymous callback>",
2633
- "line": 460,
2636
+ "line": 461,
2634
2637
  "column": 5,
2635
- "file_hash": "20eee889d95043ec22e9e8129aa8a57107e1ed4b8a7c0ee27fe2e5bbb5697b40"
2638
+ "file_hash": "91ed13824d55b8f09b1e3095dacf1484c189b58ac8938cb522509fe2535c59a5"
2636
2639
  },
2637
2640
  "rem-batch-executor.onStageError.d5f24d50d3": {
2638
2641
  "file": "packages/memory/src/sidecar/rem-batch-executor.ts",
2639
2642
  "function": "onStageError",
2640
2643
  "line": 374,
2641
2644
  "column": 6,
2642
- "file_hash": "cbd7a38e31659fd8fec98475eb99aec72dd80b5345bcf008a53939f1844bf3c2"
2645
+ "file_hash": "95c82d4fa8fff7b00ec0c2e8e5ba6398be530ad806bd243d473c36bd0e6a3f89"
2643
2646
  },
2644
2647
  "rem-batch-executor.runRemBatchJobUnlocked.55c52b91cf": {
2645
2648
  "file": "packages/memory/src/sidecar/rem-batch-executor.ts",
2646
2649
  "function": "runRemBatchJobUnlocked",
2647
2650
  "line": 521,
2648
2651
  "column": 5,
2649
- "file_hash": "cbd7a38e31659fd8fec98475eb99aec72dd80b5345bcf008a53939f1844bf3c2"
2652
+ "file_hash": "95c82d4fa8fff7b00ec0c2e8e5ba6398be530ad806bd243d473c36bd0e6a3f89"
2650
2653
  },
2651
2654
  "sidecar.batch.completed": {
2652
2655
  "file": "packages/memory/src/sidecar/rem-batch-executor.ts",
2653
2656
  "function": "runRemBatchJobUnlocked",
2654
2657
  "line": 592,
2655
2658
  "column": 4,
2656
- "file_hash": "cbd7a38e31659fd8fec98475eb99aec72dd80b5345bcf008a53939f1844bf3c2"
2659
+ "file_hash": "95c82d4fa8fff7b00ec0c2e8e5ba6398be530ad806bd243d473c36bd0e6a3f89"
2657
2660
  },
2658
2661
  "rem-batch-executor.openBatchRuntime.86fa720e8f": {
2659
2662
  "file": "packages/memory/src/sidecar/rem-batch-executor.ts",
2660
2663
  "function": "openBatchRuntime",
2661
2664
  "line": 658,
2662
2665
  "column": 3,
2663
- "file_hash": "cbd7a38e31659fd8fec98475eb99aec72dd80b5345bcf008a53939f1844bf3c2"
2666
+ "file_hash": "95c82d4fa8fff7b00ec0c2e8e5ba6398be530ad806bd243d473c36bd0e6a3f89"
2664
2667
  },
2665
2668
  "rem-batch-executor.onProviderResponse.df4f2d4fa1": {
2666
2669
  "file": "packages/memory/src/sidecar/rem-batch-executor.ts",
2667
2670
  "function": "onProviderResponse",
2668
2671
  "line": 682,
2669
2672
  "column": 5,
2670
- "file_hash": "cbd7a38e31659fd8fec98475eb99aec72dd80b5345bcf008a53939f1844bf3c2"
2673
+ "file_hash": "95c82d4fa8fff7b00ec0c2e8e5ba6398be530ad806bd243d473c36bd0e6a3f89"
2671
2674
  },
2672
2675
  "rem-batch-executor.runUpdate.dbf2a836db": {
2673
2676
  "file": "packages/memory/src/sidecar/rem-batch-executor.ts",
2674
2677
  "function": "runUpdate",
2675
2678
  "line": 940,
2676
2679
  "column": 3,
2677
- "file_hash": "cbd7a38e31659fd8fec98475eb99aec72dd80b5345bcf008a53939f1844bf3c2"
2680
+ "file_hash": "95c82d4fa8fff7b00ec0c2e8e5ba6398be530ad806bd243d473c36bd0e6a3f89"
2678
2681
  },
2679
2682
  "rem-batch-executor.runUpdate.7dfc387204": {
2680
2683
  "file": "packages/memory/src/sidecar/rem-batch-executor.ts",
2681
2684
  "function": "runUpdate",
2682
2685
  "line": 1018,
2683
2686
  "column": 4,
2684
- "file_hash": "cbd7a38e31659fd8fec98475eb99aec72dd80b5345bcf008a53939f1844bf3c2"
2687
+ "file_hash": "95c82d4fa8fff7b00ec0c2e8e5ba6398be530ad806bd243d473c36bd0e6a3f89"
2685
2688
  },
2686
2689
  "rem-batch-executor.runUpdate.7ffc737c24": {
2687
2690
  "file": "packages/memory/src/sidecar/rem-batch-executor.ts",
2688
2691
  "function": "runUpdate",
2689
2692
  "line": 1065,
2690
2693
  "column": 4,
2691
- "file_hash": "cbd7a38e31659fd8fec98475eb99aec72dd80b5345bcf008a53939f1844bf3c2"
2694
+ "file_hash": "95c82d4fa8fff7b00ec0c2e8e5ba6398be530ad806bd243d473c36bd0e6a3f89"
2692
2695
  },
2693
2696
  "rem-batch-executor.runReplace.e1e35e40e9": {
2694
2697
  "file": "packages/memory/src/sidecar/rem-batch-executor.ts",
2695
2698
  "function": "runReplace",
2696
2699
  "line": 2414,
2697
2700
  "column": 3,
2698
- "file_hash": "cbd7a38e31659fd8fec98475eb99aec72dd80b5345bcf008a53939f1844bf3c2"
2701
+ "file_hash": "95c82d4fa8fff7b00ec0c2e8e5ba6398be530ad806bd243d473c36bd0e6a3f89"
2699
2702
  },
2700
2703
  "rem-batch-executor.runReplace.de3a5f3ce3": {
2701
2704
  "file": "packages/memory/src/sidecar/rem-batch-executor.ts",
2702
2705
  "function": "runReplace",
2703
2706
  "line": 2622,
2704
2707
  "column": 4,
2705
- "file_hash": "cbd7a38e31659fd8fec98475eb99aec72dd80b5345bcf008a53939f1844bf3c2"
2708
+ "file_hash": "95c82d4fa8fff7b00ec0c2e8e5ba6398be530ad806bd243d473c36bd0e6a3f89"
2706
2709
  },
2707
2710
  "rem-batch-executor.runReplace.e4be8cfe8f": {
2708
2711
  "file": "packages/memory/src/sidecar/rem-batch-executor.ts",
2709
2712
  "function": "runReplace",
2710
2713
  "line": 2868,
2711
2714
  "column": 4,
2712
- "file_hash": "cbd7a38e31659fd8fec98475eb99aec72dd80b5345bcf008a53939f1844bf3c2"
2715
+ "file_hash": "95c82d4fa8fff7b00ec0c2e8e5ba6398be530ad806bd243d473c36bd0e6a3f89"
2713
2716
  },
2714
2717
  "memory.rem.refusal.release_failed": {
2715
2718
  "file": "packages/memory/src/sidecar/rem-batch-executor.ts",
2716
2719
  "function": "runReplace",
2717
2720
  "line": 2993,
2718
2721
  "column": 6,
2719
- "file_hash": "cbd7a38e31659fd8fec98475eb99aec72dd80b5345bcf008a53939f1844bf3c2"
2722
+ "file_hash": "95c82d4fa8fff7b00ec0c2e8e5ba6398be530ad806bd243d473c36bd0e6a3f89"
2720
2723
  },
2721
2724
  "rem-batch-executor.buildRemReplaceCandidateQueue.25aa1a67a6": {
2722
2725
  "file": "packages/memory/src/sidecar/rem-batch-executor.ts",
2723
2726
  "function": "buildRemReplaceCandidateQueue",
2724
2727
  "line": 3222,
2725
2728
  "column": 3,
2726
- "file_hash": "cbd7a38e31659fd8fec98475eb99aec72dd80b5345bcf008a53939f1844bf3c2"
2729
+ "file_hash": "95c82d4fa8fff7b00ec0c2e8e5ba6398be530ad806bd243d473c36bd0e6a3f89"
2727
2730
  },
2728
2731
  "rem-batch-executor.buildRemReplaceCandidateQueue.lookup_failed": {
2729
2732
  "file": "packages/memory/src/sidecar/rem-batch-executor.ts",
2730
2733
  "function": "buildRemReplaceCandidateQueue",
2731
2734
  "line": 3304,
2732
2735
  "column": 3,
2733
- "file_hash": "cbd7a38e31659fd8fec98475eb99aec72dd80b5345bcf008a53939f1844bf3c2"
2736
+ "file_hash": "95c82d4fa8fff7b00ec0c2e8e5ba6398be530ad806bd243d473c36bd0e6a3f89"
2734
2737
  },
2735
2738
  "rem-batch-executor.reserveReplaceStage.4e67e45fd5": {
2736
2739
  "file": "packages/memory/src/sidecar/rem-batch-executor.ts",
2737
2740
  "function": "reserveReplaceStage",
2738
2741
  "line": 3751,
2739
2742
  "column": 2,
2740
- "file_hash": "cbd7a38e31659fd8fec98475eb99aec72dd80b5345bcf008a53939f1844bf3c2"
2743
+ "file_hash": "95c82d4fa8fff7b00ec0c2e8e5ba6398be530ad806bd243d473c36bd0e6a3f89"
2741
2744
  },
2742
2745
  "rem-job-store.readCompletedJobs.invalid-line": {
2743
2746
  "file": "packages/memory/src/sidecar/rem-job-store.ts",
@@ -10885,10 +10888,49 @@ function parseAtomicConversationTurns(conversationText) {
10885
10888
  if (current) turns.push(current);
10886
10889
  return turns;
10887
10890
  }
10891
+ /**
10892
+ * A capture carries a whole session, so one window over the input budget would be left pending
10893
+ * unextracted: cut it into consecutive windows of whole user-started groups that each fit. A single
10894
+ * group over the budget stays alone.
10895
+ */
10896
+ function captureBatchWindows(turns, userIndexes) {
10897
+ const window = (from, until) => ({
10898
+ turns: turns.slice(from, until),
10899
+ contextTurns: [],
10900
+ followingTurns: [],
10901
+ startIndex: from,
10902
+ ownedTurnIndexes: Array.from({ length: until - from }, (_, offset) => from + offset)
10903
+ });
10904
+ const fits = (from, until) => {
10905
+ const slice = turns.slice(from, until);
10906
+ return Math.ceil(JSON.stringify({
10907
+ context: [],
10908
+ following: [],
10909
+ turns: slice
10910
+ }).length / 4) <= 4096 && countTokens(JSON.stringify({
10911
+ turns: numberAtomicTurns(slice),
10912
+ preceding: [],
10913
+ following: []
10914
+ })) <= 4096;
10915
+ };
10916
+ const starts = [0, ...userIndexes.filter((index) => index > 0)];
10917
+ const windows = [];
10918
+ let from = 0;
10919
+ for (let group = 1; group < starts.length; group += 1) {
10920
+ const start = starts[group] ?? turns.length;
10921
+ if (!fits(from, starts[group + 1] ?? turns.length)) {
10922
+ windows.push(window(from, start));
10923
+ from = start;
10924
+ }
10925
+ }
10926
+ windows.push(window(from, turns.length));
10927
+ return windows;
10928
+ }
10888
10929
  function atomicConversationWindows(turns, captureBatch = false) {
10889
10930
  const userIndexes = turns.flatMap((turn, index) => turn.role === "user" ? [index] : []);
10890
10931
  if (userIndexes.length === 0) return [];
10891
- if (captureBatch || userIndexes.length <= 2) return [{
10932
+ if (captureBatch) return captureBatchWindows(turns, userIndexes);
10933
+ if (userIndexes.length <= 2) return [{
10892
10934
  turns: [...turns],
10893
10935
  contextTurns: [],
10894
10936
  followingTurns: [],
@@ -19277,7 +19319,7 @@ var MemoryRuntimePool = class MemoryRuntimePool {
19277
19319
  static async open() {
19278
19320
  const settings = readSettings();
19279
19321
  const storePath = settings.store.path;
19280
- const config = settingsToPluginConfig(settings, "product");
19322
+ const config = settingsToPluginConfig(settings, process.env.SNO_USAGE_CLASS === "research" ? "research" : "product");
19281
19323
  try {
19282
19324
  emitRuntimeStartSnapshot({
19283
19325
  runtimeMode: "sidecar",
@@ -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 { r as modelCallDestination } from "./model-call-table-CPyQfBJ6.js";
4
- import { a as isTerminalLlmFailure } from "./llm-client-ByzZRemn.js";
3
+ import { r as modelCallDestination } from "./model-call-table-DjfbmUDl.js";
4
+ import { a as isTerminalLlmFailure } from "./llm-client-Dq9FZPdC.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-Bauwnls7.js";
11
+ import "./memory-temporality-classifier-CHcnOT5T.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";