@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
package/README.md CHANGED
@@ -28,7 +28,7 @@ Who it is for: you do not use this package directly. Follow the
28
28
  plugins use to reach the service.
29
29
 
30
30
  ```bash
31
- npm install @snoai/memory@1.6.0
31
+ npm install @snoai/memory@1.7.0
32
32
  ```
33
33
 
34
34
  Needs Node.js 22.22.3+, 24.15.0+ or 25.9.0+. Licensed under Apache-2.0.
@@ -48,8 +48,11 @@ var atomic_extraction_response_schema_default = {
48
48
  properties: {
49
49
  "claims_found": {
50
50
  "type": "array",
51
- "items": { "type": "string" },
52
- "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."
51
+ "items": {
52
+ "type": "integer",
53
+ "minimum": 0
54
+ },
55
+ "description": "For each claim the turns this call owns state, in the order they appear, the turn_index it came from: a number, never the claim's words; empty when they state none. Written before records so the list is read before the array is opened."
53
56
  },
54
57
  "records": {
55
58
  "type": "array",
@@ -720,7 +723,7 @@ const captureFactSchema = wireRecordSchema.pick({
720
723
  ended_at_phrase: wireRecordSchema.shape.ended_at_phrase.unwrap()
721
724
  });
722
725
  const captureReplySchema = z.object({
723
- claims_found: z.array(z.string().min(1)),
726
+ claims_found: z.array(z.number().int().nonnegative()),
724
727
  decisions: z.array(z.object({
725
728
  turn_index: z.number().int().nonnegative(),
726
729
  progress_only: z.boolean()
@@ -3,21 +3,21 @@ import "./internal/engine/i18n/locales.js";
3
3
  import { $ as FIXED_MEMORY_SNO_EXTRACT_PROFILE, Q as FIXED_MEMORY_SNO_EXTRACT_CHAT } from "./signed-registry-constants-yq3DlG3B.js";
4
4
  import { redactSecrets } from "./internal/engine/security/redact.js";
5
5
  import { t as appendAuditEntry } from "./runtime-audit-log-DK6xAYxh.js";
6
- import { a as isTerminalLlmFailure, i as createLlmClient, n as LlmClientTerminalError } from "./llm-client-ByzZRemn.js";
6
+ import { a as isTerminalLlmFailure, i as createLlmClient, n as LlmClientTerminalError } from "./llm-client-Dq9FZPdC.js";
7
7
  import { n as readModelReplyJson } from "./model-reply-text-CKopStP2.js";
8
8
  import { resolveLlmRoute } from "./internal/model/llm-mode-routing.js";
9
9
  import { n as ATOMIC_EXTRACTION_SKILL_HASH, r as atomicExtractionSkillReference, t as ATOMIC_EXTRACTION_SKILL } from "./atomic-extraction-skill-CcXmuCqL.js";
10
10
  import { stripEnvelopeMetadata } from "./internal/engine/extraction/extraction-text-sanitizer.js";
11
11
  import { a as sessionZoneCarriedBy, t as calculateCalendarTime } from "./calendar-instruction-CzqZbAPG.js";
12
- import "./memory-temporality-classifier-Bauwnls7.js";
13
- import { a as parseAtomicCaptureReply, c as atomic_extraction_response_schema_default, i as fallbackAtomicCapturedFact, l as excludeProgressRecords, n as ATOMIC_ENRICHMENT_RESPONSE_JSON_SCHEMA, o as parseAtomicEnrichmentReply, r as ATOMIC_EXTRACTION_RESPONSE_JSON_SCHEMA, s as parseAtomicExtractionReply, t as ATOMIC_CAPTURE_RESPONSE_JSON_SCHEMA } from "./atomic-extraction-reply-BJ9XV_9s.js";
12
+ import "./memory-temporality-classifier-CHcnOT5T.js";
13
+ import { a as parseAtomicCaptureReply, c as atomic_extraction_response_schema_default, i as fallbackAtomicCapturedFact, l as excludeProgressRecords, n as ATOMIC_ENRICHMENT_RESPONSE_JSON_SCHEMA, o as parseAtomicEnrichmentReply, r as ATOMIC_EXTRACTION_RESPONSE_JSON_SCHEMA, s as parseAtomicExtractionReply, t as ATOMIC_CAPTURE_RESPONSE_JSON_SCHEMA } from "./atomic-extraction-reply-DF_S9ROg.js";
14
14
  import { adapterAViewFromRecord, isAdapterAVerdictReply, parseAdapterAChatVerdict, renderAdapterAChatPrompt, renderAdapterAPrompt } from "./internal/engine/rem/index.js";
15
15
  import { n as state_vocabulary_default, r as attribute_dictionary_default, t as relations } from "./relation-dictionary-Cev1kyLe.js";
16
16
  import { g as randomUUID$1 } from "./memory-store-shared-pOb59ScU.js";
17
- import { b as normalizeMemoryRelationPredicate, d as normalizeEntityName, f as recordAtomicEntityIdentityJournal, g as readAtomicArrivalRetirementCandidateSet, h as journalAtomicArrivalRetirementRefusal, m as closeAtomicArrivalRetirementTargets, u as listAtomicMemoryEntityCandidates, v as AtomicExtractionCompletedElsewhere } from "./store-Bja1tVFw.js";
17
+ import { b as normalizeMemoryRelationPredicate, d as normalizeEntityName, f as recordAtomicEntityIdentityJournal, g as readAtomicArrivalRetirementCandidateSet, h as journalAtomicArrivalRetirementRefusal, m as closeAtomicArrivalRetirementTargets, u as listAtomicMemoryEntityCandidates, v as AtomicExtractionCompletedElsewhere } from "./store-DNgKOGWP.js";
18
18
  import { o as normalizeTopicToSectionName } from "./b-profile-section-dictionary-provider-BHkoNqgk.js";
19
19
  import { r as recordTokenCounter } from "./memory-store-write-validation-B_hDG2zf.js";
20
- import { i as prepareDeterministicTaskLifecycleWrite, t as PROFILE_IDENTITY_SECTION } from "./profile-section-writer-CR-WWIoB.js";
20
+ import { i as prepareDeterministicTaskLifecycleWrite, t as PROFILE_IDENTITY_SECTION } from "./profile-section-writer-3apndAJu.js";
21
21
  import { z } from "zod";
22
22
  import { countTokens } from "@snoai/chunking";
23
23
  import { createLogger, currentLogContext, privateLogReference, withLogContext } from "@snoai/utils/logger";
@@ -2604,10 +2604,49 @@ function parseAtomicConversationTurns(conversationText) {
2604
2604
  if (current) turns.push(current);
2605
2605
  return turns;
2606
2606
  }
2607
+ /**
2608
+ * A capture carries a whole session, so one window over the input budget would be left pending
2609
+ * unextracted: cut it into consecutive windows of whole user-started groups that each fit. A single
2610
+ * group over the budget stays alone.
2611
+ */
2612
+ function captureBatchWindows(turns, userIndexes) {
2613
+ const window = (from, until) => ({
2614
+ turns: turns.slice(from, until),
2615
+ contextTurns: [],
2616
+ followingTurns: [],
2617
+ startIndex: from,
2618
+ ownedTurnIndexes: Array.from({ length: until - from }, (_, offset) => from + offset)
2619
+ });
2620
+ const fits = (from, until) => {
2621
+ const slice = turns.slice(from, until);
2622
+ return Math.ceil(JSON.stringify({
2623
+ context: [],
2624
+ following: [],
2625
+ turns: slice
2626
+ }).length / 4) <= 4096 && countTokens(JSON.stringify({
2627
+ turns: numberAtomicTurns(slice),
2628
+ preceding: [],
2629
+ following: []
2630
+ })) <= 4096;
2631
+ };
2632
+ const starts = [0, ...userIndexes.filter((index) => index > 0)];
2633
+ const windows = [];
2634
+ let from = 0;
2635
+ for (let group = 1; group < starts.length; group += 1) {
2636
+ const start = starts[group] ?? turns.length;
2637
+ if (!fits(from, starts[group + 1] ?? turns.length)) {
2638
+ windows.push(window(from, start));
2639
+ from = start;
2640
+ }
2641
+ }
2642
+ windows.push(window(from, turns.length));
2643
+ return windows;
2644
+ }
2607
2645
  function atomicConversationWindows(turns, captureBatch = false) {
2608
2646
  const userIndexes = turns.flatMap((turn, index) => turn.role === "user" ? [index] : []);
2609
2647
  if (userIndexes.length === 0) return [];
2610
- if (captureBatch || userIndexes.length <= 2) return [{
2648
+ if (captureBatch) return captureBatchWindows(turns, userIndexes);
2649
+ if (userIndexes.length <= 2) return [{
2611
2650
  turns: [...turns],
2612
2651
  contextTurns: [],
2613
2652
  followingTurns: [],
@@ -159,6 +159,14 @@ const CODING_SKIN_WORKER_LIFETIME_MS = 54e4;
159
159
  const CODING_SKIN_RETRY_DELAYS_MS = [2e3, 1e4];
160
160
  const CODING_SKIN_MAX_ATTEMPTS = 3;
161
161
  const CODING_SKIN_MAX_PENDING_CAPTURES = 1e3;
162
+ /** A session's turns wait in the spool until the session ends or has had no new turn for this long, then go together. */
163
+ const CODING_SKIN_CAPTURE_QUIET_MS = 18e5;
164
+ /**
165
+ * Input per capture, estimated as UTF-8 bytes / 3 (at or above the sidecar's CJK-aware count). It keeps one capture to
166
+ * about one 4,096-token extraction window, so a capture ends well inside its route deadline and a failed one retries
167
+ * a small part; the rest is room for the window's JSON framing.
168
+ */
169
+ const CODING_SKIN_CAPTURE_MAX_INPUT_TOKENS = 3500;
162
170
  const CODING_SKIN_IMPORT_INTERVAL_MS = 2010;
163
171
  const CODING_SKIN_CHILD_MAX_BUFFER_BYTES = 8388608;
164
172
  const CODING_SKIN_MANUAL_SESSION_ID = "manual";
@@ -256,4 +264,4 @@ function isCodingSkinHookCommand(command, subcommand, harness) {
256
264
  return basename(snoProgramPath(program)) === "sno";
257
265
  }
258
266
  //#endregion
259
- export { isAgentText as C, foldActivity as S, isCodingSkinHookCommand as _, CODING_SKIN_IMPORT_INTERVAL_MS as a, EMPTY_ACTIVITY_CURSOR as b, CODING_SKIN_MAX_ATTEMPTS as c, CODING_SKIN_RECALL_ITEM_MAX_CHARS as d, CODING_SKIN_RECALL_SENTENCE_MAX_CHARS as f, codingSkinHookCommand as g, CODING_SKIN_WORKER_LIFETIME_MS as h, CODING_SKIN_HOOKS as i, CODING_SKIN_MAX_PENDING_CAPTURES as l, CODING_SKIN_SESSION_QUERY as m, CODING_SKIN_CHILD_MAX_BUFFER_BYTES as n, CODING_SKIN_LEDGER_MAX_CHARS as o, CODING_SKIN_RETRY_DELAYS_MS as p, CODING_SKIN_CURSOR_HOOKS as r, CODING_SKIN_MANUAL_SESSION_ID as s, CODING_SKIN_CHILD_DEADLINE_MS as t, CODING_SKIN_MODEL_COMMANDS as u, shellQuote as v, readNewLines as w, activityCursorSchema as x, snoProgramPath as y };
267
+ export { activityCursorSchema as C, readNewLines as E, EMPTY_ACTIVITY_CURSOR as S, isAgentText as T, CODING_SKIN_WORKER_LIFETIME_MS as _, CODING_SKIN_CURSOR_HOOKS as a, shellQuote as b, CODING_SKIN_LEDGER_MAX_CHARS as c, CODING_SKIN_MAX_PENDING_CAPTURES as d, CODING_SKIN_MODEL_COMMANDS as f, CODING_SKIN_SESSION_QUERY as g, CODING_SKIN_RETRY_DELAYS_MS as h, CODING_SKIN_CHILD_MAX_BUFFER_BYTES as i, CODING_SKIN_MANUAL_SESSION_ID as l, CODING_SKIN_RECALL_SENTENCE_MAX_CHARS as m, CODING_SKIN_CAPTURE_QUIET_MS as n, CODING_SKIN_HOOKS as o, CODING_SKIN_RECALL_ITEM_MAX_CHARS as p, CODING_SKIN_CHILD_DEADLINE_MS as r, CODING_SKIN_IMPORT_INTERVAL_MS as s, CODING_SKIN_CAPTURE_MAX_INPUT_TOKENS as t, CODING_SKIN_MAX_ATTEMPTS as u, codingSkinHookCommand as v, foldActivity as w, snoProgramPath as x, isCodingSkinHookCommand as y };
@@ -62,6 +62,14 @@ export declare const CODING_SKIN_WORKER_LIFETIME_MS: number;
62
62
  export declare const CODING_SKIN_RETRY_DELAYS_MS: readonly [2_000, 10_000];
63
63
  export declare const CODING_SKIN_MAX_ATTEMPTS = 3;
64
64
  export declare const CODING_SKIN_MAX_PENDING_CAPTURES = 1e3;
65
+ /** A session's turns wait in the spool until the session ends or has had no new turn for this long, then go together. */
66
+ export declare const CODING_SKIN_CAPTURE_QUIET_MS: number;
67
+ /**
68
+ * Input per capture, estimated as UTF-8 bytes / 3 (at or above the sidecar's CJK-aware count). It keeps one capture to
69
+ * about one 4,096-token extraction window, so a capture ends well inside its route deadline and a failed one retries
70
+ * a small part; the rest is room for the window's JSON framing.
71
+ */
72
+ export declare const CODING_SKIN_CAPTURE_MAX_INPUT_TOKENS = 3500;
65
73
  export declare const CODING_SKIN_IMPORT_INTERVAL_MS = 2010;
66
74
  export declare const CODING_SKIN_CHILD_MAX_BUFFER_BYTES: number;
67
75
  export declare const CODING_SKIN_MANUAL_SESSION_ID = "manual";
@@ -1,5 +1,5 @@
1
1
  import { appendObserveLedgerRows } from "./internal/engine/telemetry/observe-ledger.js";
2
2
  import { SKILL_CATEGORIES, skillVersionFor } from "./internal/config/skill-categories.js";
3
3
  import { HOST_MODEL_CALLBACK_HOST, HOST_MODEL_CALLBACK_PATH, HOST_MODEL_DEADLINE_HEADER } from "./internal/config/skin-defaults.js";
4
- import { C as isAgentText, S as foldActivity, _ as isCodingSkinHookCommand, a as CODING_SKIN_IMPORT_INTERVAL_MS, b as EMPTY_ACTIVITY_CURSOR, c as CODING_SKIN_MAX_ATTEMPTS, d as CODING_SKIN_RECALL_ITEM_MAX_CHARS, f as CODING_SKIN_RECALL_SENTENCE_MAX_CHARS, g as codingSkinHookCommand, h as CODING_SKIN_WORKER_LIFETIME_MS, i as CODING_SKIN_HOOKS, l as CODING_SKIN_MAX_PENDING_CAPTURES, m as CODING_SKIN_SESSION_QUERY, n as CODING_SKIN_CHILD_MAX_BUFFER_BYTES, o as CODING_SKIN_LEDGER_MAX_CHARS, p as CODING_SKIN_RETRY_DELAYS_MS, r as CODING_SKIN_CURSOR_HOOKS, s as CODING_SKIN_MANUAL_SESSION_ID, t as CODING_SKIN_CHILD_DEADLINE_MS, u as CODING_SKIN_MODEL_COMMANDS, v as shellQuote, w as readNewLines, x as activityCursorSchema, y as snoProgramPath } from "./coding-skin-azRXA51Z.js";
5
- export { CODING_SKIN_CHILD_DEADLINE_MS, CODING_SKIN_CHILD_MAX_BUFFER_BYTES, CODING_SKIN_CURSOR_HOOKS, CODING_SKIN_HOOKS, CODING_SKIN_IMPORT_INTERVAL_MS, CODING_SKIN_LEDGER_MAX_CHARS, CODING_SKIN_MANUAL_SESSION_ID, CODING_SKIN_MAX_ATTEMPTS, CODING_SKIN_MAX_PENDING_CAPTURES, CODING_SKIN_MODEL_COMMANDS, CODING_SKIN_RECALL_ITEM_MAX_CHARS, CODING_SKIN_RECALL_SENTENCE_MAX_CHARS, CODING_SKIN_RETRY_DELAYS_MS, CODING_SKIN_SESSION_QUERY, CODING_SKIN_WORKER_LIFETIME_MS, EMPTY_ACTIVITY_CURSOR, HOST_MODEL_CALLBACK_HOST, HOST_MODEL_CALLBACK_PATH, HOST_MODEL_DEADLINE_HEADER, SKILL_CATEGORIES, activityCursorSchema, appendObserveLedgerRows, codingSkinHookCommand, foldActivity, isAgentText, isCodingSkinHookCommand, readNewLines, shellQuote, skillVersionFor, snoProgramPath };
4
+ import { C as activityCursorSchema, E as readNewLines, S as EMPTY_ACTIVITY_CURSOR, T as isAgentText, _ as CODING_SKIN_WORKER_LIFETIME_MS, a as CODING_SKIN_CURSOR_HOOKS, b as shellQuote, c as CODING_SKIN_LEDGER_MAX_CHARS, d as CODING_SKIN_MAX_PENDING_CAPTURES, f as CODING_SKIN_MODEL_COMMANDS, g as CODING_SKIN_SESSION_QUERY, h as CODING_SKIN_RETRY_DELAYS_MS, i as CODING_SKIN_CHILD_MAX_BUFFER_BYTES, l as CODING_SKIN_MANUAL_SESSION_ID, m as CODING_SKIN_RECALL_SENTENCE_MAX_CHARS, n as CODING_SKIN_CAPTURE_QUIET_MS, o as CODING_SKIN_HOOKS, p as CODING_SKIN_RECALL_ITEM_MAX_CHARS, r as CODING_SKIN_CHILD_DEADLINE_MS, s as CODING_SKIN_IMPORT_INTERVAL_MS, t as CODING_SKIN_CAPTURE_MAX_INPUT_TOKENS, u as CODING_SKIN_MAX_ATTEMPTS, v as codingSkinHookCommand, w as foldActivity, x as snoProgramPath, y as isCodingSkinHookCommand } from "./coding-skin-AW1UPUPY.js";
5
+ export { CODING_SKIN_CAPTURE_MAX_INPUT_TOKENS, CODING_SKIN_CAPTURE_QUIET_MS, CODING_SKIN_CHILD_DEADLINE_MS, CODING_SKIN_CHILD_MAX_BUFFER_BYTES, CODING_SKIN_CURSOR_HOOKS, CODING_SKIN_HOOKS, CODING_SKIN_IMPORT_INTERVAL_MS, CODING_SKIN_LEDGER_MAX_CHARS, CODING_SKIN_MANUAL_SESSION_ID, CODING_SKIN_MAX_ATTEMPTS, CODING_SKIN_MAX_PENDING_CAPTURES, CODING_SKIN_MODEL_COMMANDS, CODING_SKIN_RECALL_ITEM_MAX_CHARS, CODING_SKIN_RECALL_SENTENCE_MAX_CHARS, CODING_SKIN_RETRY_DELAYS_MS, CODING_SKIN_SESSION_QUERY, CODING_SKIN_WORKER_LIFETIME_MS, EMPTY_ACTIVITY_CURSOR, HOST_MODEL_CALLBACK_HOST, HOST_MODEL_CALLBACK_PATH, HOST_MODEL_DEADLINE_HEADER, SKILL_CATEGORIES, activityCursorSchema, appendObserveLedgerRows, codingSkinHookCommand, foldActivity, isAgentText, isCodingSkinHookCommand, readNewLines, shellQuote, skillVersionFor, snoProgramPath };
@@ -1938,6 +1938,11 @@ const extract = {
1938
1938
  "agent-native": "host",
1939
1939
  "rem-enhanced": "sno-gpu"
1940
1940
  };
1941
+ const extractHost = {
1942
+ "local-first": "off",
1943
+ "agent-native": "host",
1944
+ "rem-enhanced": "host"
1945
+ };
1941
1946
  const host = {
1942
1947
  "local-first": "off",
1943
1948
  "agent-native": "host",
@@ -1987,7 +1992,7 @@ const MODEL_CALLS = {
1987
1992
  E2: {
1988
1993
  description: "fact enrichment",
1989
1994
  occasion: "memoryExtract",
1990
- destinations: extract,
1995
+ destinations: extractHost,
1991
1996
  snoPreset: chat,
1992
1997
  transport: {
1993
1998
  host: "agent-host-seam",
@@ -2023,7 +2028,7 @@ const MODEL_CALLS = {
2023
2028
  E4: {
2024
2029
  description: "compound record split",
2025
2030
  occasion: "memoryExtract",
2026
- destinations: extract,
2031
+ destinations: extractHost,
2027
2032
  snoPreset: chat,
2028
2033
  transport: {
2029
2034
  host: "agent-host-seam",
@@ -2041,7 +2046,7 @@ const MODEL_CALLS = {
2041
2046
  E5: {
2042
2047
  description: "missing half recovery",
2043
2048
  occasion: "memoryExtract",
2044
- destinations: extract,
2049
+ destinations: extractHost,
2045
2050
  snoPreset: chat,
2046
2051
  transport: {
2047
2052
  host: "agent-host-seam",
@@ -2059,7 +2064,7 @@ const MODEL_CALLS = {
2059
2064
  E6: {
2060
2065
  description: "subject check",
2061
2066
  occasion: "memoryExtract",
2062
- destinations: extract,
2067
+ destinations: extractHost,
2063
2068
  snoPreset: chat,
2064
2069
  transport: {
2065
2070
  host: "agent-host-seam",
@@ -2077,7 +2082,7 @@ const MODEL_CALLS = {
2077
2082
  E7: {
2078
2083
  description: "unresolved subject recovery",
2079
2084
  occasion: "memoryExtract",
2080
- destinations: extract,
2085
+ destinations: extractHost,
2081
2086
  snoPreset: chat,
2082
2087
  transport: {
2083
2088
  host: "agent-host-seam",
@@ -2095,7 +2100,7 @@ const MODEL_CALLS = {
2095
2100
  E8: {
2096
2101
  description: "same entity judgment",
2097
2102
  occasion: "memoryExtract",
2098
- destinations: extract,
2103
+ destinations: extractHost,
2099
2104
  snoPreset: chat,
2100
2105
  transport: {
2101
2106
  host: "agent-host-seam",
@@ -2167,7 +2172,7 @@ const MODEL_CALLS = {
2167
2172
  E12: {
2168
2173
  description: "background state keying",
2169
2174
  occasion: "memoryExtract",
2170
- destinations: extract,
2175
+ destinations: extractHost,
2171
2176
  snoPreset: chat,
2172
2177
  transport: {
2173
2178
  host: "agent-host-seam",
@@ -1,4 +1,4 @@
1
- import { n as version, t as logSiteCatalog } from "./log-site-catalog.generated-DsvDgHJa.js";
1
+ import { n as version, t as logSiteCatalog } from "./log-site-catalog.generated-Wze-GrOG.js";
2
2
  import { diagnosticProcessInstanceId, encodeDiagnostic as encodeDiagnostic$1, writeEmergencyDiagnostic as writeEmergencyDiagnostic$1 } from "@snoai/utils/log-encoder";
3
3
  //#region src/engine/observability/early-diagnostics.ts
4
4
  function bindApplication(input) {
package/dist/index.js CHANGED
@@ -9,24 +9,24 @@ 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-QcwC4mDX.js";
11
11
  import { pruneOldestEntries, setLruEntry } from "./internal/engine/shared/lru.js";
12
- import { m as CODING_SKIN_SESSION_QUERY, o as CODING_SKIN_LEDGER_MAX_CHARS } from "./coding-skin-azRXA51Z.js";
12
+ import { c as CODING_SKIN_LEDGER_MAX_CHARS, g as CODING_SKIN_SESSION_QUERY } from "./coding-skin-AW1UPUPY.js";
13
13
  import { defaultSettings } from "./internal/config/settings.js";
14
14
  import { t as appendAuditEntry } from "./runtime-audit-log-DK6xAYxh.js";
15
- import { i as createLlmClient } from "./llm-client-ByzZRemn.js";
15
+ import { i as createLlmClient } from "./llm-client-Dq9FZPdC.js";
16
16
  import { pickLlmRoutingConfig } from "./internal/model/llm-mode-routing.js";
17
17
  import { a as parseAgentIdFromSessionKey, n as createScopePolicy, t as MemoryScopePolicy } from "./memory-scope-policy--TiLZnrE.js";
18
- import { a as serializeIntervalMetadata, o as resolveMemoryDate } from "./memory-temporality-classifier-Bauwnls7.js";
18
+ import { a as serializeIntervalMetadata, o as resolveMemoryDate } from "./memory-temporality-classifier-CHcnOT5T.js";
19
19
  import { resolveAgentAccess, resolveAgentId } from "./internal/engine/bindings/memory-tool-access.js";
20
20
  import { r as retrieveForAutoRecall, t as isOpenRecallMetadata } from "./rem-consumer-retrieval-BhS1ivcd.js";
21
21
  import { executeMemoryRecallTool } from "./internal/engine/bindings/memory-recall-tool.js";
22
- import { t as createReflectionStrategyState } from "./strategy-hook-runner-F-ruiw48.js";
22
+ import { t as createReflectionStrategyState } from "./strategy-hook-runner-Bg6rBY71.js";
23
23
  import { buildInsightDistiller } from "./internal/engine/bindings/sno-station-mem-insight-distill-factory.js";
24
24
  import { onAgentEnd } from "./internal/engine/bindings/sno-station-mem-ambient-learning-hook.js";
25
25
  import { executeMemoryStoreTool } from "./internal/engine/bindings/memory-store-tool.js";
26
26
  import { executeMemoryForgetTool } from "./internal/engine/bindings/memory-forget-tool.js";
27
27
  import { executeMemoryUpdateTool } from "./internal/engine/bindings/memory-update-tool.js";
28
28
  import { executeMemoryReflectionResolveTool } from "./internal/engine/bindings/memory-reflection-resolve-tool.js";
29
- import { t as createRunMemoryReflection } from "./reflection-command-hooks-Der9aX0e.js";
29
+ import { t as createRunMemoryReflection } from "./reflection-command-hooks-B9UENMGV.js";
30
30
  import { createReflectionLifecycleHandler1, createReflectionLifecycleHandler2 } from "./internal/engine/reflection/reflection-lifecycle-hooks.js";
31
31
  import { createReflectionInjectionHandler1, createReflectionInjectionHandler2, createReflectionInjectionHandler3 } from "./internal/engine/reflection/reflection-injection-hooks.js";
32
32
  import { z } from "zod";
@@ -2,7 +2,7 @@ import { n as rerankModeSchema, r as rerankTimeoutSchema, t as pluginConfigSchem
2
2
  import { EMBEDDER_MODEL_DEFAULT } from "./index.js";
3
3
  import { SUPPORTED_LOCALES } from "../engine/i18n/locales.js";
4
4
  import { PRODUCT_MODES } from "./product-mode.js";
5
- import { t as MODEL_CALLS } from "../../model-call-table-CPyQfBJ6.js";
5
+ import { t as MODEL_CALLS } from "../../model-call-table-DjfbmUDl.js";
6
6
  import { z } from "zod";
7
7
  import { LOCAL_EMBEDDING_MODEL_REVISION } from "@snoai/embedder";
8
8
  import { isLowercaseCanonicalUUIDv7 } from "@snoai/common-core";
@@ -1,7 +1,7 @@
1
1
  import { FORGET_QUERY_MIN_SCORE, MAX_CANDIDATE_POOL_SIZE } from "../../config/index.js";
2
2
  import { SnoStationMemError } from "../shared/errors.js";
3
3
  import { clamp01, clampInt } from "../shared/utils.js";
4
- import "../../../memory-tool-dependencies-Cc4SJMtd.js";
4
+ import "../../../memory-tool-dependencies-CAVm0Sy4.js";
5
5
  import { assertAccessibleScopeForTool, isScopeAccessibleForTool, resolveReadableScopesForTool } from "./memory-tool-access.js";
6
6
  import { makeResult, runWithAudit } from "./memory-tool-results.js";
7
7
  import { forgetParamsSchema } from "./memory-tool-schemas.js";
@@ -3,7 +3,7 @@ import { normalizeCategory } from "../shared/types.js";
3
3
  import { SnoStationMemError } from "../shared/errors.js";
4
4
  import { clampInt } from "../shared/utils.js";
5
5
  import { readEstimatedSpendToday } from "../operations/daily-spend-estimator.js";
6
- import "../../../memory-tool-dependencies-Cc4SJMtd.js";
6
+ import "../../../memory-tool-dependencies-CAVm0Sy4.js";
7
7
  import { assertAccessibleScopeForTool, resolveReadableScopesForTool } from "./memory-tool-access.js";
8
8
  import { serializeMemory } from "./memory-tool-formatting.js";
9
9
  import { makeResult, runWithAudit } from "./memory-tool-results.js";
@@ -3,7 +3,7 @@ import { normalizeCategory } from "../shared/types.js";
3
3
  import { truncateGraphemes } from "../shared/i18n-text.js";
4
4
  import { clamp01, clampInt } from "../shared/utils.js";
5
5
  import { formatAtDepth } from "../retrieval/intent-analyzer.js";
6
- import { t as countTokens } from "../../../memory-tool-dependencies-Cc4SJMtd.js";
6
+ import { t as countTokens } from "../../../memory-tool-dependencies-CAVm0Sy4.js";
7
7
  import { assertAccessibleScopeForTool, resolveReadableScopesForTool } from "./memory-tool-access.js";
8
8
  import { episodicEventDate, safeParseMetadata, sanitizeRecalledText, serializeMemory } from "./memory-tool-formatting.js";
9
9
  import { makeResult, runWithAudit } from "./memory-tool-results.js";
@@ -1,5 +1,5 @@
1
1
  import { clampInt } from "../shared/utils.js";
2
- import "../../../memory-tool-dependencies-Cc4SJMtd.js";
2
+ import "../../../memory-tool-dependencies-CAVm0Sy4.js";
3
3
  import { assertAccessibleScopeForTool, isScopeAccessibleForTool, resolveReadableScopesForTool } from "./memory-tool-access.js";
4
4
  import { makeResult, runWithAudit } from "./memory-tool-results.js";
5
5
  import { t as parseReflectionMetadata } from "../../../entry-metadata-parser-BIVSMCIk.js";
@@ -1,6 +1,6 @@
1
1
  import { i as isSystemBypassId } from "../../../memory-scope-policy--TiLZnrE.js";
2
2
  import { readEstimatedSpendToday } from "../operations/daily-spend-estimator.js";
3
- import "../../../memory-tool-dependencies-Cc4SJMtd.js";
3
+ import "../../../memory-tool-dependencies-CAVm0Sy4.js";
4
4
  import { assertAccessibleScopeForTool, getStoreScopeFilterForTool, resolveReadableScopesForTool } from "./memory-tool-access.js";
5
5
  import { makeResult, runWithAudit } from "./memory-tool-results.js";
6
6
  import { statsParamsSchema } from "./memory-tool-schemas.js";
@@ -5,12 +5,12 @@ import { clamp01, stableHash } from "../shared/utils.js";
5
5
  import { t as appendAuditEntry } from "../../../runtime-audit-log-DK6xAYxh.js";
6
6
  import { a as detectCategory } from "../../../capture-policy-detector-DaMfy9CZ.js";
7
7
  import { stripEnvelopeMetadata } from "../extraction/extraction-text-sanitizer.js";
8
- import { a as serializeIntervalMetadata, o as resolveMemoryDate } from "../../../memory-temporality-classifier-Bauwnls7.js";
9
- import "../../../memory-tool-dependencies-Cc4SJMtd.js";
8
+ import { a as serializeIntervalMetadata, o as resolveMemoryDate } from "../../../memory-temporality-classifier-CHcnOT5T.js";
9
+ import "../../../memory-tool-dependencies-CAVm0Sy4.js";
10
10
  import { assertAccessibleScopeForTool, getDefaultScopeForTool } from "./memory-tool-access.js";
11
11
  import { makeResult, runWithAudit } from "./memory-tool-results.js";
12
12
  import { storeParamsSchema } from "./memory-tool-schemas.js";
13
- import { n as createRetireByNameRunBudget, r as runProfileSectionUpdate } from "../../../profile-section-writer-CR-WWIoB.js";
13
+ import { n as createRetireByNameRunBudget, r as runProfileSectionUpdate } from "../../../profile-section-writer-3apndAJu.js";
14
14
  //#region src/engine/bindings/memory-store-tool.ts
15
15
  /** @file memory-store-tool.ts
16
16
  * @purpose Registers the memory_store tool.
@@ -1,5 +1,5 @@
1
1
  import { SnoStationMemError } from "../shared/errors.js";
2
- import "../../../memory-tool-dependencies-Cc4SJMtd.js";
2
+ import "../../../memory-tool-dependencies-CAVm0Sy4.js";
3
3
  //#region src/engine/bindings/memory-tool-access.ts
4
4
  function assertAccessibleScope(scopePolicy, scope, agentId) {
5
5
  const normalized = scope.trim();
@@ -1,5 +1,5 @@
1
1
  import { RetrievalError, SnoStationMemError } from "../shared/errors.js";
2
- import { n as z } from "../../../memory-tool-dependencies-Cc4SJMtd.js";
2
+ import { n as z } from "../../../memory-tool-dependencies-CAVm0Sy4.js";
3
3
  import { createLogger } from "@snoai/utils/logger";
4
4
  //#region src/engine/bindings/memory-tool-results.ts
5
5
  /** @file memory-tool-results.ts
@@ -1,5 +1,5 @@
1
1
  import { AGGREGATION_OPERATIONS, MEMORY_CATEGORIES } from "../shared/types.js";
2
- import { n as z } from "../../../memory-tool-dependencies-Cc4SJMtd.js";
2
+ import { n as z } from "../../../memory-tool-dependencies-CAVm0Sy4.js";
3
3
  //#region src/engine/bindings/memory-tool-schemas.ts
4
4
  const TOOL_CATEGORY_INPUTS = [...MEMORY_CATEGORIES];
5
5
  const toolCategoryInputSchema = z.enum(TOOL_CATEGORY_INPUTS);
@@ -5,8 +5,8 @@ import { h as deriveFactKey } from "../../../memory-metadata-codec-DL1sbJiN.js";
5
5
  import { clamp01 } from "../shared/utils.js";
6
6
  import { t as appendAuditEntry } from "../../../runtime-audit-log-DK6xAYxh.js";
7
7
  import { stripEnvelopeMetadata } from "../extraction/extraction-text-sanitizer.js";
8
- import { a as serializeIntervalMetadata, o as resolveMemoryDate } from "../../../memory-temporality-classifier-Bauwnls7.js";
9
- import "../../../memory-tool-dependencies-Cc4SJMtd.js";
8
+ import { a as serializeIntervalMetadata, o as resolveMemoryDate } from "../../../memory-temporality-classifier-CHcnOT5T.js";
9
+ import "../../../memory-tool-dependencies-CAVm0Sy4.js";
10
10
  import { parseEntryMetadata } from "./memory-tool-formatting.js";
11
11
  import { makeResult, runWithAudit } from "./memory-tool-results.js";
12
12
  import { updateParamsSchema } from "./memory-tool-schemas.js";
@@ -1,13 +1,13 @@
1
1
  import { DEFAULT_IMPORTANCE } from "../../config/index.js";
2
2
  import { redactSecrets } from "../security/redact.js";
3
3
  import { t as checkMemoryOperation } from "../../../operation-cancellation-QcwC4mDX.js";
4
- import { r as modelCallDestination } from "../../../model-call-table-CPyQfBJ6.js";
4
+ import { r as modelCallDestination } from "../../../model-call-table-DjfbmUDl.js";
5
5
  import { t as appendAuditEntry } from "../../../runtime-audit-log-DK6xAYxh.js";
6
6
  import { t as normalizeAmbientLearningText } from "../../../ambient-learning-text-normalizer-CxjATmMp.js";
7
- import { a as serializeIntervalMetadata, i as parseSessionTimestamp, s as unresolvedMemoryDate } from "../../../memory-temporality-classifier-Bauwnls7.js";
7
+ import { a as serializeIntervalMetadata, i as parseSessionTimestamp, s as unresolvedMemoryDate } from "../../../memory-temporality-classifier-CHcnOT5T.js";
8
8
  import { resolveHookAgentId } from "./sno-station-mem-runtime-mode.js";
9
9
  import { c as shouldSkipReflectionMessage } from "../../../daily-log-generator-DEsiCs7o.js";
10
- import "../../../sno-station-mem-runtime-dependencies-DsidkZi2.js";
10
+ import "../../../sno-station-mem-runtime-dependencies-CgNS1dIM.js";
11
11
  import { buildConversationText, deriveSessionDateTime, extractAllMessageTexts, isAmbientLearningMessage, transcriptSessionDateTime } from "./sno-station-mem-message-transcript.js";
12
12
  import { createLogger, currentLogContext, withLogContext } from "@snoai/utils/logger";
13
13
  import { randomUUID } from "node:crypto";
@@ -8,7 +8,7 @@ import { episodicEventDate, saidOnDate, sourceQuote } from "./memory-tool-format
8
8
  import { r as retrieveForAutoRecall } from "../../../rem-consumer-retrieval-BhS1ivcd.js";
9
9
  import { isChatIdBasedAgentId, resolveHookAgentId } from "./sno-station-mem-runtime-mode.js";
10
10
  import { t as parseReflectionMetadata } from "../../../entry-metadata-parser-BIVSMCIk.js";
11
- import "../../../sno-station-mem-runtime-dependencies-DsidkZi2.js";
11
+ import "../../../sno-station-mem-runtime-dependencies-CgNS1dIM.js";
12
12
  import { resolveRuntimeSessionId } from "./sno-station-mem-session-state.js";
13
13
  import { createLogger, currentLogContext, withLogContext } from "@snoai/utils/logger";
14
14
  import { randomUUID } from "node:crypto";
@@ -1,7 +1,7 @@
1
1
  import { t as appendAuditEntry } from "../../../runtime-audit-log-DK6xAYxh.js";
2
2
  import { pickLlmRoutingConfig, resolveLlmRoute } from "../../model/llm-mode-routing.js";
3
- import { r as createSignedAtomicMemoryExtractionTransports, t as AtomicInsightDistiller } from "../../../atomic-memory-extraction-l65aofbl.js";
4
- import "../../../sno-station-mem-runtime-dependencies-DsidkZi2.js";
3
+ import { r as createSignedAtomicMemoryExtractionTransports, t as AtomicInsightDistiller } from "../../../atomic-memory-extraction-pL1_58Kw.js";
4
+ import "../../../sno-station-mem-runtime-dependencies-CgNS1dIM.js";
5
5
  import { createLogger } from "@snoai/utils/logger";
6
6
  //#region src/engine/bindings/sno-station-mem-insight-distill-factory.ts
7
7
  /** @file sno-station-mem-insight-distill-factory.ts
@@ -1,8 +1,8 @@
1
1
  import { nt as FIXED_PROTOCOL_VALUE_63, wt as PERSISTED_PROVIDER_SYSTEM } from "../../../signed-registry-constants-yq3DlG3B.js";
2
2
  import { parseIsoDateTimeMs } from "../shared/iso-date-time.js";
3
3
  import { t as normalizeAmbientLearningText } from "../../../ambient-learning-text-normalizer-CxjATmMp.js";
4
- import { a as escapeTranscriptRoleContinuations } from "../../../atomic-memory-extraction-l65aofbl.js";
5
- import "../../../sno-station-mem-runtime-dependencies-DsidkZi2.js";
4
+ import { a as escapeTranscriptRoleContinuations } from "../../../atomic-memory-extraction-pL1_58Kw.js";
5
+ import "../../../sno-station-mem-runtime-dependencies-CgNS1dIM.js";
6
6
  import { sanitizeContentIngress } from "@snoai/content-sanitizer";
7
7
  import { Temporal } from "@js-temporal/polyfill";
8
8
  //#region src/engine/bindings/sno-station-mem-message-transcript.ts
@@ -1,2 +1,2 @@
1
- import { i as runAtomicMemoryExtraction, n as createAtomicResplitTransport, r as createSignedAtomicMemoryExtractionTransports, t as AtomicInsightDistiller } from "../../../atomic-memory-extraction-l65aofbl.js";
1
+ import { i as runAtomicMemoryExtraction, n as createAtomicResplitTransport, r as createSignedAtomicMemoryExtractionTransports, t as AtomicInsightDistiller } from "../../../atomic-memory-extraction-pL1_58Kw.js";
2
2
  export { AtomicInsightDistiller, createAtomicResplitTransport, createSignedAtomicMemoryExtractionTransports, runAtomicMemoryExtraction };
@@ -1,2 +1,2 @@
1
- import { a as serializeIntervalMetadata, i as parseSessionTimestamp, n as inferExpiry, r as inferTemporalInterval, t as classifyTemporal } from "../../../memory-temporality-classifier-Bauwnls7.js";
1
+ import { a as serializeIntervalMetadata, i as parseSessionTimestamp, n as inferExpiry, r as inferTemporalInterval, t as classifyTemporal } from "../../../memory-temporality-classifier-CHcnOT5T.js";
2
2
  export { classifyTemporal, inferExpiry, inferTemporalInterval, parseSessionTimestamp, serializeIntervalMetadata };
@@ -1,7 +1,7 @@
1
1
  import { StorageError } from "../shared/errors.js";
2
2
  import { d as runWithMemoryAuditSync, u as runWithMemoryAudit } from "../../../runtime-audit-log-DK6xAYxh.js";
3
3
  import { getSnoStationMemStateDir } from "../../contract/profile.js";
4
- import { x as MemoryStore } from "../../../store-Bja1tVFw.js";
4
+ import { x as MemoryStore } from "../../../store-DNgKOGWP.js";
5
5
  import { t as countEmbeddingTokens } from "../../../token-counter-BD1f48Km.js";
6
6
  import { isAbsolute } from "node:path";
7
7
  import { detectProjectId } from "@snoai/observability";
@@ -1,10 +1,10 @@
1
- import { t as MODEL_CALLS } from "../../../model-call-table-CPyQfBJ6.js";
1
+ import { t as MODEL_CALLS } from "../../../model-call-table-DjfbmUDl.js";
2
2
  import { getStateDir } from "../../contract/profile.js";
3
3
  import { pickLlmRoutingConfig, resolveLlmRoute } from "../../model/llm-mode-routing.js";
4
4
  import { n as ATOMIC_EXTRACTION_SKILL_HASH } from "../../../atomic-extraction-skill-CcXmuCqL.js";
5
- import { r as ATOMIC_EXTRACTION_RESPONSE_JSON_SCHEMA } from "../../../atomic-extraction-reply-BJ9XV_9s.js";
5
+ import { r as ATOMIC_EXTRACTION_RESPONSE_JSON_SCHEMA } from "../../../atomic-extraction-reply-DF_S9ROg.js";
6
6
  import { r as attribute_dictionary_default } from "../../../relation-dictionary-Cev1kyLe.js";
7
- import { n as version, t as logSiteCatalog } from "../../../log-site-catalog.generated-DsvDgHJa.js";
7
+ import { n as version, t as logSiteCatalog } from "../../../log-site-catalog.generated-Wze-GrOG.js";
8
8
  import { configureLogger, createLogger, effectiveLogLevel, loggerFileStatus } from "@snoai/utils/logger";
9
9
  import { createHash } from "node:crypto";
10
10
  //#region src/engine/observability/runtime-diagnostics.ts
@@ -1,2 +1,2 @@
1
- import { t as createRunMemoryReflection } from "../../../reflection-command-hooks-Der9aX0e.js";
1
+ import { t as createRunMemoryReflection } from "../../../reflection-command-hooks-B9UENMGV.js";
2
2
  export { createRunMemoryReflection };
@@ -1,2 +1,2 @@
1
- import { a as resolveWorkspaceDirFromEvent, i as pruneReflectionState, n as createReflectionGenerator, r as isInternalReflectionSessionKey, t as DEFAULT_MEMORY_LLM_CONFIG } from "../../../reflection-embedded-generator-BEdDusPV.js";
1
+ import { a as resolveWorkspaceDirFromEvent, i as pruneReflectionState, n as createReflectionGenerator, r as isInternalReflectionSessionKey, t as DEFAULT_MEMORY_LLM_CONFIG } from "../../../reflection-embedded-generator-Do_r_LbU.js";
2
2
  export { DEFAULT_MEMORY_LLM_CONFIG, createReflectionGenerator, isInternalReflectionSessionKey, pruneReflectionState, resolveWorkspaceDirFromEvent };
@@ -1,5 +1,5 @@
1
1
  import { vt as FIXED_PROTOCOL_VALUE_79 } from "../../../signed-registry-constants-yq3DlG3B.js";
2
- import { c as getReflectionDerivedSuppression, d as getReflectionDerivedCacheEntry, r as isInternalReflectionSessionKey, s as deleteReflectionDerivedSuppression } from "../../../reflection-embedded-generator-BEdDusPV.js";
2
+ import { c as getReflectionDerivedSuppression, d as getReflectionDerivedCacheEntry, r as isInternalReflectionSessionKey, s as deleteReflectionDerivedSuppression } from "../../../reflection-embedded-generator-Do_r_LbU.js";
3
3
  import { createLogger, privateLogReference } from "@snoai/utils/logger";
4
4
  //#region src/engine/reflection/reflection-injection-hooks.ts
5
5
  const diagnosticLog = createLogger("sno-station-mem:reflection-injection-hooks");
@@ -1,6 +1,6 @@
1
1
  import { DEFAULT_REFLECTION_ERROR_SCAN_MAX_CHARS } from "../../config/index.js";
2
2
  import { a as sha256Hex, i as normalizeErrorSignature, o as summarizeErrorText, r as extractTextFromToolResult, t as containsErrorSignal } from "../../../error-signals-lMH2uAdV.js";
3
- import { r as isInternalReflectionSessionKey, s as deleteReflectionDerivedSuppression } from "../../../reflection-embedded-generator-BEdDusPV.js";
3
+ import { r as isInternalReflectionSessionKey, s as deleteReflectionDerivedSuppression } from "../../../reflection-embedded-generator-Do_r_LbU.js";
4
4
  //#region src/engine/reflection/reflection-lifecycle-hooks.ts
5
5
  /** @file reflection-lifecycle-hooks.ts
6
6
  * @purpose Tracks reflection error signals and clears per-session state.
@@ -1,3 +1,3 @@
1
- import { r as isInternalReflectionSessionKey } from "../../../reflection-embedded-generator-BEdDusPV.js";
2
- import { t as createReflectionStrategyState } from "../../../strategy-hook-runner-F-ruiw48.js";
1
+ import { r as isInternalReflectionSessionKey } from "../../../reflection-embedded-generator-Do_r_LbU.js";
2
+ import { t as createReflectionStrategyState } from "../../../strategy-hook-runner-Bg6rBY71.js";
3
3
  export { createReflectionStrategyState, isInternalReflectionSessionKey };
@@ -1,3 +1,3 @@
1
- import { a as isTerminalLlmFailure, i as createLlmClient, n as LlmClientTerminalError, r as ModelCallRefusedError, t as JSON_SYSTEM_CONTENT } from "../../llm-client-ByzZRemn.js";
1
+ import { a as isTerminalLlmFailure, i as createLlmClient, n as LlmClientTerminalError, r as ModelCallRefusedError, t as JSON_SYSTEM_CONTENT } from "../../llm-client-Dq9FZPdC.js";
2
2
  import { a as repairCommonJson, r as extractJsonFromResponse } from "../../model-reply-text-CKopStP2.js";
3
3
  export { JSON_SYSTEM_CONTENT, LlmClientTerminalError, ModelCallRefusedError, createLlmClient, extractJsonFromResponse, isTerminalLlmFailure, repairCommonJson };
@@ -1,5 +1,5 @@
1
1
  import { llmRoutingConfigSchema } from "../config/product-mode.js";
2
- import { r as modelCallDestination, t as MODEL_CALLS } from "../../model-call-table-CPyQfBJ6.js";
2
+ import { r as modelCallDestination, t as MODEL_CALLS } from "../../model-call-table-DjfbmUDl.js";
3
3
  //#region src/model/llm-mode-routing.ts
4
4
  /** @file llm-mode-routing.ts
5
5
  * @purpose Resolve one model call id to its configured destination and transport.
@@ -1,12 +1,12 @@
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-azRXA51Z.js";
4
+ import "../../coding-skin-AW1UPUPY.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-DK6xAYxh.js";
7
7
  import { getDiscoveryPath, getSnoStationMemStateDir } from "../contract/profile.js";
8
8
  import "../engine/shared/paths.js";
9
- import "../../llm-client-ByzZRemn.js";
9
+ import "../../llm-client-Dq9FZPdC.js";
10
10
  import "../model/llm-mode-routing.js";
11
11
  import { defineRemSafetyGuard, requireRemOwnerDecisions } from "../engine/rem/index.js";
12
12
  import { n as state_vocabulary_default, r as attribute_dictionary_default } from "../../relation-dictionary-Cev1kyLe.js";
@@ -14,7 +14,7 @@ import "../../memory-store-shared-pOb59ScU.js";
14
14
  import { n as loadSqliteVecExtension } from "../../unplaced-candidate-migration-BCcdQkcx.js";
15
15
  import { openSqliteDatabase } from "./sqlite-runtime.js";
16
16
  import "../../connection-BtK-3r-f.js";
17
- import "../../store-Bja1tVFw.js";
17
+ import "../../store-DNgKOGWP.js";
18
18
  import "../../embedding-provider-client-CgpUK_1G.js";
19
19
  import "../../retriever-C54bXeDh.js";
20
20
  import { t as recordMemoryTelemetryIncident } from "../../memory-telemetry-incidents-BWA9kcZx.js";
@@ -1,2 +1,2 @@
1
- import { C as TaskLifecycleCommandCollisionError, E as TaskLifecycleTimestampCollisionError, S as StaleSupersedeTargetError, T as TaskLifecycleStateCollisionError, _ as hashMemorySuppressionContent, b as normalizeMemoryRelationPredicate, p as ATOMIC_FACT_SURFACE_LANE, t as buildTaskLifecycleMigrationManifest, v as AtomicExtractionCompletedElsewhere, w as TaskLifecycleStaleResolutionError, x as MemoryStore, y as repairAtomicExtractionParameters } from "../../store-Bja1tVFw.js";
1
+ import { C as TaskLifecycleCommandCollisionError, E as TaskLifecycleTimestampCollisionError, S as StaleSupersedeTargetError, T as TaskLifecycleStateCollisionError, _ as hashMemorySuppressionContent, b as normalizeMemoryRelationPredicate, p as ATOMIC_FACT_SURFACE_LANE, t as buildTaskLifecycleMigrationManifest, v as AtomicExtractionCompletedElsewhere, w as TaskLifecycleStaleResolutionError, x as MemoryStore, y as repairAtomicExtractionParameters } from "../../store-DNgKOGWP.js";
2
2
  export { ATOMIC_FACT_SURFACE_LANE, AtomicExtractionCompletedElsewhere, MemoryStore, StaleSupersedeTargetError, TaskLifecycleCommandCollisionError, TaskLifecycleStaleResolutionError, TaskLifecycleStateCollisionError, TaskLifecycleTimestampCollisionError, buildTaskLifecycleMigrationManifest, hashMemorySuppressionContent, normalizeMemoryRelationPredicate, repairAtomicExtractionParameters };