@snoai/memory 2.0.0 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -28,7 +28,7 @@ Who it is for: you do not use this package directly. Follow the
28
28
  plugins use to reach the service.
29
29
 
30
30
  ```bash
31
- npm install @snoai/memory@2.0.0
31
+ npm install @snoai/memory@2.0.1
32
32
  ```
33
33
 
34
34
  Needs Node.js 22.22.3+, 24.15.0+ or 25.9.0+. Licensed under Apache-2.0.
@@ -689,7 +689,7 @@ async function readAgentView(options = {}) {
689
689
  }
690
690
  }
691
691
  for (const row of view.agents) {
692
- row.work = view.work.filter((item) => item.owner === row.reachAddress);
692
+ row.work = view.work.filter((item) => item.owner === row.reachAddress && !(item.releasedAt && view.work.some((other) => other.message_id === item.handoff_message_id)));
693
693
  if (row.work.find((item) => item.blocked_on && item.blocked_on !== "-") && row.group === "Working") row.subgroup = "waiting on another agent";
694
694
  if (row.waitingForHuman !== "yes" && row.work.some((item) => item.handoff_to && !item.releasedAt)) {
695
695
  row.group = "Working";
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import { a as readAgentView, c as screenAgents, n as compactAgentView, o as recordAgentHandoff, r as markAgentResultSeen, s as renderAgentScreen } from "./agent-state-osRgfRdR.js";
2
+ import { a as readAgentView, c as screenAgents, n as compactAgentView, o as recordAgentHandoff, r as markAgentResultSeen, s as renderAgentScreen } from "./agent-state-BB-voJsF.js";
3
3
  import { execFile } from "node:child_process";
4
4
  import { emitKeypressEvents } from "node:readline";
5
5
  import { promisify } from "node:util";
@@ -1,4 +1,4 @@
1
- import { a as readAgentView, n as compactAgentView } from "./agent-state-osRgfRdR.js";
1
+ import { a as readAgentView, n as compactAgentView } from "./agent-state-BB-voJsF.js";
2
2
  import "./internal/engine/telemetry/observe-ledger.js";
3
3
  import "./internal/config/skill-categories.js";
4
4
  import "./internal/config/skin-defaults.js";
@@ -259,7 +259,7 @@ const CODING_SKIN_HOOKS = {
259
259
  UserPromptSubmit: {
260
260
  eventName: "user_prompt_submit",
261
261
  subcommand: "user-prompt-submit",
262
- timeout: 8
262
+ timeout: 30
263
263
  },
264
264
  Stop: {
265
265
  eventName: "stop",
@@ -279,7 +279,7 @@ const CODING_SKIN_HOOKS = {
279
279
  PostToolUse: {
280
280
  eventName: "post_tool_use",
281
281
  subcommand: "post-tool-use",
282
- timeout: 8
282
+ timeout: 30
283
283
  }
284
284
  };
285
285
  /** Cursor's hook events (`hooks.json` names); timeouts match the Claude/Codex event each one stands in for. */
@@ -290,7 +290,7 @@ const CODING_SKIN_CURSOR_HOOKS = {
290
290
  },
291
291
  beforeSubmitPrompt: {
292
292
  subcommand: "user-prompt-submit",
293
- timeout: 8
293
+ timeout: 30
294
294
  },
295
295
  afterAgentResponse: {
296
296
  subcommand: "after-agent-response",
@@ -169,7 +169,7 @@ export declare const CODING_SKIN_HOOKS: {
169
169
  readonly UserPromptSubmit: {
170
170
  readonly eventName: "user_prompt_submit";
171
171
  readonly subcommand: "user-prompt-submit";
172
- readonly timeout: 8;
172
+ readonly timeout: 30;
173
173
  };
174
174
  readonly Stop: {
175
175
  readonly eventName: "stop";
@@ -189,7 +189,7 @@ export declare const CODING_SKIN_HOOKS: {
189
189
  readonly PostToolUse: {
190
190
  readonly eventName: "post_tool_use";
191
191
  readonly subcommand: "post-tool-use";
192
- readonly timeout: 8;
192
+ readonly timeout: 30;
193
193
  };
194
194
  };
195
195
  export type CodingSkinHookName = keyof typeof CODING_SKIN_HOOKS;
@@ -201,7 +201,7 @@ export declare const CODING_SKIN_CURSOR_HOOKS: {
201
201
  };
202
202
  readonly beforeSubmitPrompt: {
203
203
  readonly subcommand: "user-prompt-submit";
204
- readonly timeout: 8;
204
+ readonly timeout: 30;
205
205
  };
206
206
  readonly afterAgentResponse: {
207
207
  readonly subcommand: "after-agent-response";
@@ -1,5 +1,5 @@
1
- import { a as readAgentView, d as foldActivity, f as isAgentText, i as observeAgentEvent, l as EMPTY_ACTIVITY_CURSOR, n as compactAgentView, p as readNewLines, r as markAgentResultSeen, t as agentProcessIdentity, u as activityCursorSchema } from "./agent-state-osRgfRdR.js";
2
- import { C as continuityBriefPath, E as renderAgentStatusLine, S as composeContinuityContext, T as composeAgentStatusLine, _ as CODING_SKIN_WORKER_LIFETIME_MS, a as CODING_SKIN_CURSOR_HOOKS, b as shellQuote, c as CODING_SKIN_LEDGER_MAX_CHARS, d as CODING_SKIN_MAX_PENDING_CAPTURES, f as CODING_SKIN_MODEL_COMMANDS, g as CODING_SKIN_SESSION_QUERY, h as CODING_SKIN_RETRY_DELAYS_MS, i as CODING_SKIN_CHILD_MAX_BUFFER_BYTES, l as CODING_SKIN_MANUAL_SESSION_ID, m as CODING_SKIN_RECALL_SENTENCE_MAX_CHARS, n as CODING_SKIN_CAPTURE_QUIET_MS, o as CODING_SKIN_HOOKS, p as CODING_SKIN_RECALL_ITEM_MAX_CHARS, r as CODING_SKIN_CHILD_DEADLINE_MS, s as CODING_SKIN_IMPORT_INTERVAL_MS, t as CODING_SKIN_CAPTURE_MAX_INPUT_TOKENS, u as CODING_SKIN_MAX_ATTEMPTS, v as codingSkinHookCommand, w as refreshContinuityBrief, x as snoProgramPath, y as isCodingSkinHookCommand } from "./coding-skin-D_2RbNDw.js";
1
+ import { a as readAgentView, d as foldActivity, f as isAgentText, i as observeAgentEvent, l as EMPTY_ACTIVITY_CURSOR, n as compactAgentView, p as readNewLines, r as markAgentResultSeen, t as agentProcessIdentity, u as activityCursorSchema } from "./agent-state-BB-voJsF.js";
2
+ import { C as continuityBriefPath, E as renderAgentStatusLine, S as composeContinuityContext, T as composeAgentStatusLine, _ as CODING_SKIN_WORKER_LIFETIME_MS, a as CODING_SKIN_CURSOR_HOOKS, b as shellQuote, c as CODING_SKIN_LEDGER_MAX_CHARS, d as CODING_SKIN_MAX_PENDING_CAPTURES, f as CODING_SKIN_MODEL_COMMANDS, g as CODING_SKIN_SESSION_QUERY, h as CODING_SKIN_RETRY_DELAYS_MS, i as CODING_SKIN_CHILD_MAX_BUFFER_BYTES, l as CODING_SKIN_MANUAL_SESSION_ID, m as CODING_SKIN_RECALL_SENTENCE_MAX_CHARS, n as CODING_SKIN_CAPTURE_QUIET_MS, o as CODING_SKIN_HOOKS, p as CODING_SKIN_RECALL_ITEM_MAX_CHARS, r as CODING_SKIN_CHILD_DEADLINE_MS, s as CODING_SKIN_IMPORT_INTERVAL_MS, t as CODING_SKIN_CAPTURE_MAX_INPUT_TOKENS, u as CODING_SKIN_MAX_ATTEMPTS, v as codingSkinHookCommand, w as refreshContinuityBrief, x as snoProgramPath, y as isCodingSkinHookCommand } from "./coding-skin-lewnGLT-.js";
3
3
  import { appendObserveLedgerRows } from "./internal/engine/telemetry/observe-ledger.js";
4
4
  import { SKILL_CATEGORIES, skillVersionFor } from "./internal/config/skill-categories.js";
5
5
  import { HOST_MODEL_CALLBACK_HOST, HOST_MODEL_CALLBACK_PATH, HOST_MODEL_DEADLINE_HEADER } from "./internal/config/skin-defaults.js";
@@ -2674,7 +2674,7 @@ function defaultSettings() {
2674
2674
  prompt: {
2675
2675
  limit: 3,
2676
2676
  maxChars: 1500,
2677
- timeoutMs: 4e3,
2677
+ timeoutMs: 25e3,
2678
2678
  minChars: 12,
2679
2679
  minScore: 0
2680
2680
  },
@@ -1,4 +1,4 @@
1
- import { n as version, t as logSiteCatalog } from "./log-site-catalog.generated-3zYckrtz.js";
1
+ import { n as version, t as logSiteCatalog } from "./log-site-catalog.generated-ClhbzmWf.js";
2
2
  import { diagnosticProcessInstanceId, encodeDiagnostic as encodeDiagnostic$1, writeEmergencyDiagnostic as writeEmergencyDiagnostic$1 } from "@snoai/utils/log-encoder";
3
3
  // src/engine/observability/early-diagnostics.ts
4
4
  function bindApplication(input) {
package/dist/index.js CHANGED
@@ -9,7 +9,7 @@ import { a as readTrustedUserId, c as inspectProviderProjects, o as resolveProvi
9
9
  import { debugContentPreview } from "./internal/engine/shared/utils.js";
10
10
  import { c as withMemoryOperation, t as checkMemoryOperation } from "./operation-cancellation-mqfQz0ka.js";
11
11
  import { pruneOldestEntries, setLruEntry } from "./internal/engine/shared/lru.js";
12
- import { c as CODING_SKIN_LEDGER_MAX_CHARS, g as CODING_SKIN_SESSION_QUERY } from "./coding-skin-D_2RbNDw.js";
12
+ import { c as CODING_SKIN_LEDGER_MAX_CHARS, g as CODING_SKIN_SESSION_QUERY } from "./coding-skin-lewnGLT-.js";
13
13
  import { defaultSettings } from "./internal/config/settings.js";
14
14
  import { t as appendAuditEntry } from "./runtime-audit-log-4NJsojEj.js";
15
15
  import { i as createLlmClient } from "./llm-client-DhBvu-U_.js";
@@ -151,7 +151,7 @@ function defaultSettings() {
151
151
  prompt: {
152
152
  limit: 3,
153
153
  maxChars: 1500,
154
- timeoutMs: 4e3,
154
+ timeoutMs: 25e3,
155
155
  minChars: 12,
156
156
  minScore: 0
157
157
  },
@@ -4,7 +4,7 @@ import { pickLlmRoutingConfig, resolveLlmRoute } from "../../model/llm-mode-rout
4
4
  import { n as ATOMIC_EXTRACTION_SKILL_HASH } from "../../../atomic-extraction-skill-5lAqr8BM.js";
5
5
  import { r as ATOMIC_EXTRACTION_RESPONSE_JSON_SCHEMA } from "../../../atomic-extraction-reply-CoxIGLmU.js";
6
6
  import { r as attribute_dictionary_default } from "../../../relation-dictionary-QVBewRQ1.js";
7
- import { n as version, t as logSiteCatalog } from "../../../log-site-catalog.generated-3zYckrtz.js";
7
+ import { n as version, t as logSiteCatalog } from "../../../log-site-catalog.generated-ClhbzmWf.js";
8
8
  import { configureLogger, createLogger, effectiveLogLevel, loggerFileStatus } from "@snoai/utils/logger";
9
9
  import { createHash } from "node:crypto";
10
10
  // src/engine/observability/runtime-diagnostics.ts
@@ -1,7 +1,7 @@
1
1
  import { BACKUP_INTERVAL_MS, BACKUP_MIN_FREE_DISK_RATIO, FTS_MERGE_INTERVAL_MS, INTEGRITY_CHECK_INTERVAL_MS, MAINTENANCE_TICK_MS, PLANNER_STATISTICS_INTERVAL_MS, REM_TRIGGER_CHECK_INTERVAL_MS, USAGE_EVENT_RETENTION_INTERVAL_MS, USAGE_OUTBOX_INTERVAL_MS } from "../config/index.js";
2
2
  import { REM_SIDECAR_TOKEN_HEADER } from "../contract/routes.js";
3
3
  import "../engine/shared/utils.js";
4
- import "../../coding-skin-D_2RbNDw.js";
4
+ import "../../coding-skin-lewnGLT-.js";
5
5
  import "../config/settings.js";
6
6
  import { n as appendAuditEntryStrict, p as readJsonlLines, s as getAuditPath, t as appendAuditEntry } from "../../runtime-audit-log-4NJsojEj.js";
7
7
  import { getDiscoveryPath, getSnoStationMemStateDir } from "../contract/profile.js";
@@ -1,5 +1,5 @@
1
1
  // package.json
2
- var version = "2.0.0";
2
+ var version = "2.0.1";
3
3
  // src/engine/observability/log-site-catalog.generated.ts
4
4
  const logSiteCatalog = {
5
5
  "build_id": "0c92bdd66ef1e0fe428b67b40d230015d829b64236db324460f31fa0237b766f",
@@ -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-BN6GCcnE.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-VPVf190N.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-BwdTBHtj.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-0oK6k24i.js";
3
3
  import { n as DEGRADED_REASONS, t as ContractError } from "./error-Dga5Ot1M.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";
@@ -194,7 +194,7 @@ function addNumber(target, key, value) {
194
194
  if (typeof value === "number" && Number.isFinite(value)) target[key] = value;
195
195
  }
196
196
  // package.json
197
- var version = "2.0.0";
197
+ var version = "2.0.1";
198
198
  // config/atomic-extraction-response.schema.json
199
199
  var atomic_extraction_response_schema_default = {
200
200
  $schema: "https://json-schema.org/draft/2020-12/schema",
@@ -1 +1 @@
1
- export { c as runRemProductionOrderedWave } from "./rem-trigger-BN6GCcnE.js";
1
+ export { c as runRemProductionOrderedWave } from "./rem-trigger-BwdTBHtj.js";
@@ -1,4 +1,4 @@
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 ensureModelDownloaded, Ct as FIXED_MEMORY_CHUNKS_MEM_FACET_IDX, D as settingsToPluginConfig, Dn as DEFAULT_IMPORTANCE, Dt as FIXED_MEMORY_MEMORIES_FACT_ID_INSERT_GUARD, En as DEFAULT_BM25_WEIGHT, Et as FIXED_MEMORY_MEMORIES, Fn as EMBEDDER_DIM, G as FIXED_EXTERNAL_VALUE_55, H as FIXED_EXTERNAL_VALUE_52, Hn as HEAD_EXTRACT_OVERLAP_DROP_RATIO, In as EMBEDDER_MODEL_DEFAULT, It as FIXED_MEMORY_SNO_EXTRACT_CHAT, J as FIXED_EXTERNAL_VALUE_58, K as FIXED_EXTERNAL_VALUE_56, Kn as INTRA_MEMORY_COSINE_THRESHOLD, Kt as FIXED_PROTOCOL_VALUE_69, Ln as EMBEDDER_PROVIDER_DEFAULT, Mn as DEFAULT_RERANK_TIMEOUT_MS, Mt as FIXED_MEMORY_PROVIDER_PROJECT_AGENTS, Nt as FIXED_MEMORY_PROVIDER_PROJECT_MAPPINGS, O as MODEL_CALLS, On as DEFAULT_RECALL_LIFECYCLE, Ot as FIXED_MEMORY_MEMORIES_FACT_ID_UPDATE_GUARD, P as observeAgentId, Pn as DEFAULT_VECTOR_WEIGHT, Q as FIXED_IDX_MEMORY, Rn as EVAL_QA_TRACES_FILENAME, Rt as FIXED_MEMORY_TASK_LIFECYCLE_COMMANDS, Sn as CHUNK_MIN_TOKENS, Sr as LocalReranker, St as FIXED_MEMORY_CHUNKS_MEMORY_ID_IDX, T as readSettings, Tn as CHUNK_TOKENIZER_MODE, Tt as FIXED_MEMORY_EXTRACTION_TIMESTAMPS, U as FIXED_EXTERNAL_VALUE_53, Un as HEAD_EXTRACT_TOKEN_BUDGET, V as FIXED_EXTERNAL_VALUE_51, Vn as HEAD_EXTRACT_MIN_CONTENT_TOKENS, W as FIXED_EXTERNAL_VALUE_54, Wn as IMPORTANCE_WEIGHT_BASE, X as FIXED_EXTERNAL_VALUE_8, Xn as MAX_CHUNK_FETCH_LIMIT, Y as FIXED_EXTERNAL_VALUE_62, Z as FIXED_EXTERNAL_VALUE_9, Zn as MAX_LIST_LIMIT, _r as CachedEmbeddingProvider, _t as FIXED_MEMORY_CHUNKS, a as REM_MODEL_OUTPUT_TOKEN_CAP, an as PERSISTED_PROVIDER_SYSTEM, ar as RECENCY_WEIGHT, at as FIXED_IDX_MEMORY_MEMORIES_LANE_PROJECT, bn as CHUNKING_VERSION$1, bt as FIXED_MEMORY_CHUNKS_AU, cn as SUPPORTED_LOCALES, cr as RETRIEVAL_STORAGE_CHUNK_PROFILE, 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, et as FIXED_IDX_MEMORY_ACTIVE_TASK_EVIDENCE_INSTANCE, ft as FIXED_MEMORY_ACTIVE_TASK_INSTANCES, g as readRemOperationalConfig, gt as FIXED_MEMORY_ACTIVE_TASK_TRANSITIONS, hr as experimentMmrDisabled, ht as FIXED_MEMORY_ACTIVE_TASK_REVISIONS, in as PERSISTED_CONTENT_HASH_V3, it as FIXED_IDX_MEMORY_MEMORIES_FACT_ID, jr as REM_SIDECAR_TOKEN_HEADER, jt as FIXED_MEMORY_PROVIDER_AGENT_MAPPINGS, k as MODEL_CALL_WORKLOAD, kt as FIXED_MEMORY_MIGRATION_MARKERS, lt as FIXED_IDX_MEMORY_MEMORIES_PROJECT_TIMESTAMP, mr as experimentCandidatePoolOverride, mt as FIXED_MEMORY_ACTIVE_TASK_MIGRATION_MANIFESTS, nn as PERSISTED_CANDIDATE_HASH_V1, nr as MULTI_HIT_BONUS_CAP, nt as FIXED_IDX_MEMORY_MEMORIES_CATEGORY, o as REM_RUN_PATH, ot as FIXED_IDX_MEMORY_MEMORIES_PROJECT, pt as FIXED_MEMORY_ACTIVE_TASK_MIGRATION_EVIDENCE, q as FIXED_EXTERNAL_VALUE_57, qt as FIXED_PROTOCOL_VALUE_73, r as REM_CORRELATION_ID_HEADER, rn as PERSISTED_CONTENT_HASH_V1, rr as MULTI_HIT_BONUS_PER_HIT, rt as FIXED_IDX_MEMORY_MEMORIES_CONTENT_HASH, s as REM_SIDECAR_HOST, sn as llmRoutingConfigSchema, st as FIXED_IDX_MEMORY_MEMORIES_PROJECT_CONTENT_HASH, tn as FIXED_VEC_MEMORY_CHUNKS, tr as MMR_LAMBDA, tt as FIXED_IDX_MEMORY_ACTIVE_TASK_INSTANCES_PROJECTION, un as ADJACENCY_BONUS_CAP, ur as TIME_DECAY_FLOOR, ut as FIXED_MEMORY, vn as BONUS_TOTAL_INVARIANT, vr as LOCAL_EMBEDDING_CACHE_DIR_DEFAULT, vt as FIXED_MEMORY_CHUNKS_AD, wn as CHUNK_TARGET_TOKENS, wt as FIXED_MEMORY_CHUNKS_MEM_IDX, xn as CHUNK_MAX_TOKENS, xr as LocalEmbedProvider, xt as FIXED_MEMORY_CHUNKS_FTS, yn as CACHE_TTL_MS, yr as LOCAL_EMBEDDING_MODEL, yt as FIXED_MEMORY_CHUNKS_AI, zt as FIXED_MEMORY_UNPLACED_CANDIDATES } from "./config-VPVf190N.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 ensureModelDownloaded, Ct as FIXED_MEMORY_CHUNKS_MEM_FACET_IDX, D as settingsToPluginConfig, Dn as DEFAULT_IMPORTANCE, Dt as FIXED_MEMORY_MEMORIES_FACT_ID_INSERT_GUARD, En as DEFAULT_BM25_WEIGHT, Et as FIXED_MEMORY_MEMORIES, Fn as EMBEDDER_DIM, G as FIXED_EXTERNAL_VALUE_55, H as FIXED_EXTERNAL_VALUE_52, Hn as HEAD_EXTRACT_OVERLAP_DROP_RATIO, In as EMBEDDER_MODEL_DEFAULT, It as FIXED_MEMORY_SNO_EXTRACT_CHAT, J as FIXED_EXTERNAL_VALUE_58, K as FIXED_EXTERNAL_VALUE_56, Kn as INTRA_MEMORY_COSINE_THRESHOLD, Kt as FIXED_PROTOCOL_VALUE_69, Ln as EMBEDDER_PROVIDER_DEFAULT, Mn as DEFAULT_RERANK_TIMEOUT_MS, Mt as FIXED_MEMORY_PROVIDER_PROJECT_AGENTS, Nt as FIXED_MEMORY_PROVIDER_PROJECT_MAPPINGS, O as MODEL_CALLS, On as DEFAULT_RECALL_LIFECYCLE, Ot as FIXED_MEMORY_MEMORIES_FACT_ID_UPDATE_GUARD, P as observeAgentId, Pn as DEFAULT_VECTOR_WEIGHT, Q as FIXED_IDX_MEMORY, Rn as EVAL_QA_TRACES_FILENAME, Rt as FIXED_MEMORY_TASK_LIFECYCLE_COMMANDS, Sn as CHUNK_MIN_TOKENS, Sr as LocalReranker, St as FIXED_MEMORY_CHUNKS_MEMORY_ID_IDX, T as readSettings, Tn as CHUNK_TOKENIZER_MODE, Tt as FIXED_MEMORY_EXTRACTION_TIMESTAMPS, U as FIXED_EXTERNAL_VALUE_53, Un as HEAD_EXTRACT_TOKEN_BUDGET, V as FIXED_EXTERNAL_VALUE_51, Vn as HEAD_EXTRACT_MIN_CONTENT_TOKENS, W as FIXED_EXTERNAL_VALUE_54, Wn as IMPORTANCE_WEIGHT_BASE, X as FIXED_EXTERNAL_VALUE_8, Xn as MAX_CHUNK_FETCH_LIMIT, Y as FIXED_EXTERNAL_VALUE_62, Z as FIXED_EXTERNAL_VALUE_9, Zn as MAX_LIST_LIMIT, _r as CachedEmbeddingProvider, _t as FIXED_MEMORY_CHUNKS, a as REM_MODEL_OUTPUT_TOKEN_CAP, an as PERSISTED_PROVIDER_SYSTEM, ar as RECENCY_WEIGHT, at as FIXED_IDX_MEMORY_MEMORIES_LANE_PROJECT, bn as CHUNKING_VERSION$1, bt as FIXED_MEMORY_CHUNKS_AU, cn as SUPPORTED_LOCALES, cr as RETRIEVAL_STORAGE_CHUNK_PROFILE, 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, et as FIXED_IDX_MEMORY_ACTIVE_TASK_EVIDENCE_INSTANCE, ft as FIXED_MEMORY_ACTIVE_TASK_INSTANCES, g as readRemOperationalConfig, gt as FIXED_MEMORY_ACTIVE_TASK_TRANSITIONS, hr as experimentMmrDisabled, ht as FIXED_MEMORY_ACTIVE_TASK_REVISIONS, in as PERSISTED_CONTENT_HASH_V3, it as FIXED_IDX_MEMORY_MEMORIES_FACT_ID, jr as REM_SIDECAR_TOKEN_HEADER, jt as FIXED_MEMORY_PROVIDER_AGENT_MAPPINGS, k as MODEL_CALL_WORKLOAD, kt as FIXED_MEMORY_MIGRATION_MARKERS, lt as FIXED_IDX_MEMORY_MEMORIES_PROJECT_TIMESTAMP, mr as experimentCandidatePoolOverride, mt as FIXED_MEMORY_ACTIVE_TASK_MIGRATION_MANIFESTS, nn as PERSISTED_CANDIDATE_HASH_V1, nr as MULTI_HIT_BONUS_CAP, nt as FIXED_IDX_MEMORY_MEMORIES_CATEGORY, o as REM_RUN_PATH, ot as FIXED_IDX_MEMORY_MEMORIES_PROJECT, pt as FIXED_MEMORY_ACTIVE_TASK_MIGRATION_EVIDENCE, q as FIXED_EXTERNAL_VALUE_57, qt as FIXED_PROTOCOL_VALUE_73, r as REM_CORRELATION_ID_HEADER, rn as PERSISTED_CONTENT_HASH_V1, rr as MULTI_HIT_BONUS_PER_HIT, rt as FIXED_IDX_MEMORY_MEMORIES_CONTENT_HASH, s as REM_SIDECAR_HOST, sn as llmRoutingConfigSchema, st as FIXED_IDX_MEMORY_MEMORIES_PROJECT_CONTENT_HASH, tn as FIXED_VEC_MEMORY_CHUNKS, tr as MMR_LAMBDA, tt as FIXED_IDX_MEMORY_ACTIVE_TASK_INSTANCES_PROJECTION, un as ADJACENCY_BONUS_CAP, ur as TIME_DECAY_FLOOR, ut as FIXED_MEMORY, vn as BONUS_TOTAL_INVARIANT, vr as LOCAL_EMBEDDING_CACHE_DIR_DEFAULT, vt as FIXED_MEMORY_CHUNKS_AD, wn as CHUNK_TARGET_TOKENS, wt as FIXED_MEMORY_CHUNKS_MEM_IDX, xn as CHUNK_MAX_TOKENS, xr as LocalEmbedProvider, xt as FIXED_MEMORY_CHUNKS_FTS, yn as CACHE_TTL_MS, yr as LOCAL_EMBEDDING_MODEL, yt as FIXED_MEMORY_CHUNKS_AI, zt as FIXED_MEMORY_UNPLACED_CANDIDATES } from "./config-0oK6k24i.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";
@@ -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-BN6GCcnE.js";
2
- import { $n as MEMORY_SHUTDOWN_TIMEOUT_MS, Ar as MEMORY_SKIN_HEADER, C as getSnoStationMemStateDir, Dr as MEMORY_ERROR_STATUS, Er as MEMORY_DEFAULT_SKIN_ID, Mr as memoryMethod, 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_ROUTES, l as REM_SOURCE, r as REM_CORRELATION_ID_HEADER, s as REM_SIDECAR_HOST, u as getRemChassisJournalPath, v as SettingsUnavailableError, y as getDiscoveryPath } from "./config-VPVf190N.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-BwdTBHtj.js";
2
+ import { $n as MEMORY_SHUTDOWN_TIMEOUT_MS, Ar as MEMORY_SKIN_HEADER, C as getSnoStationMemStateDir, Dr as MEMORY_ERROR_STATUS, Er as MEMORY_DEFAULT_SKIN_ID, Mr as memoryMethod, 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_ROUTES, l as REM_SOURCE, r as REM_CORRELATION_ID_HEADER, s as REM_SIDECAR_HOST, u as getRemChassisJournalPath, v as SettingsUnavailableError, y as getDiscoveryPath } from "./config-0oK6k24i.js";
3
3
  import { t as ContractError } from "./error-Dga5Ot1M.js";
4
4
  import { setImmediate } from "node:timers/promises";
5
5
  import { createLogger, currentLogContext, effectiveLogLevel, emitDiagnostic } from "@snoai/utils/logger";
@@ -331,7 +331,7 @@ async function startOwnedRemSidecar() {
331
331
  async open() {
332
332
  if (currentMemory) return currentMemory;
333
333
  if (settingsError) throw settingsError;
334
- openingMemory ??= import("./memory-runtime-CKIBXN_r.js").then((module) => module.MemoryRuntimePool.open()).then((pool) => {
334
+ openingMemory ??= import("./memory-runtime-DPrBxPA5.js").then((module) => module.MemoryRuntimePool.open()).then((pool) => {
335
335
  currentMemory = pool;
336
336
  if (stopping) pool.stopTimers();
337
337
  return pool;
@@ -726,7 +726,7 @@ async function runChassisJob(store, journal, waveId, holdMs, runtime) {
726
726
  cleanRefusalReasons.push(reason);
727
727
  await appendChassisRefusal(journal, queued, operation, "refused", reason);
728
728
  }
729
- const { runRemProductionOrderedWave } = await import("./rem-batch-executor-BHItPFZ8.js");
729
+ const { runRemProductionOrderedWave } = await import("./rem-batch-executor-CUD8VH49.js");
730
730
  const result = enabledOperations.length === 0 ? {
731
731
  decision: "allow",
732
732
  reasonCode: null,
@@ -1,4 +1,4 @@
1
- import { Or as MEMORY_RECONNECT_INTERVAL_MS, m as isRemTraceEnabled, p as getRemTraceLogPath, v as SettingsUnavailableError } from "../config-VPVf190N.js";
1
+ import { Or as MEMORY_RECONNECT_INTERVAL_MS, m as isRemTraceEnabled, p as getRemTraceLogPath, v as SettingsUnavailableError } from "../config-0oK6k24i.js";
2
2
  import { setTimeout } from "node:timers/promises";
3
3
  import { addLogFileTarget, closeLogger, createLogger } from "@snoai/utils/logger";
4
4
  // 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-BvEOkYis.js");
9
+ const { startRemSidecar, DuplicateSidecarError } = await import("../server-D7tIZPWW.js");
10
10
  let sidecar;
11
11
  for (let attempt = 1; !sidecar; attempt++) try {
12
12
  sidecar = await startRemSidecar();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@snoai/memory",
3
- "version": "2.0.0",
3
+ "version": "2.0.1",
4
4
  "license": "Apache-2.0",
5
5
  "publishConfig": { "access": "public" },
6
6
  "repository": {
@@ -197,7 +197,7 @@
197
197
  "prompt": {
198
198
  "limit": 3,
199
199
  "maxChars": 1500,
200
- "timeoutMs": 4000,
200
+ "timeoutMs": 25000,
201
201
  "minChars": 12,
202
202
  "minScore": 0
203
203
  },