sensorium-mcp 3.1.3 → 3.1.4

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 (159) hide show
  1. package/Install-Sensorium.ps1 +251 -39
  2. package/dist/config/agent-settings.d.ts +11 -0
  3. package/dist/config/agent-settings.d.ts.map +1 -1
  4. package/dist/config/agent-settings.js +79 -0
  5. package/dist/config/agent-settings.js.map +1 -1
  6. package/dist/config/index.d.ts +1 -0
  7. package/dist/config/index.d.ts.map +1 -1
  8. package/dist/config/index.js +12 -0
  9. package/dist/config/index.js.map +1 -1
  10. package/dist/config/misc-settings.d.ts +6 -0
  11. package/dist/config/misc-settings.d.ts.map +1 -1
  12. package/dist/config/misc-settings.js +31 -0
  13. package/dist/config/misc-settings.js.map +1 -1
  14. package/dist/dashboard/routes/codex.d.ts +14 -0
  15. package/dist/dashboard/routes/codex.d.ts.map +1 -0
  16. package/dist/dashboard/routes/codex.js +92 -0
  17. package/dist/dashboard/routes/codex.js.map +1 -0
  18. package/dist/dashboard/routes/threads-read.d.ts +10 -7
  19. package/dist/dashboard/routes/threads-read.d.ts.map +1 -1
  20. package/dist/dashboard/routes/threads-read.js +21 -16
  21. package/dist/dashboard/routes/threads-read.js.map +1 -1
  22. package/dist/dashboard/routes.d.ts.map +1 -1
  23. package/dist/dashboard/routes.js +3 -0
  24. package/dist/dashboard/routes.js.map +1 -1
  25. package/dist/dashboard/spa.html +11 -11
  26. package/dist/data/memory/bootstrap.d.ts +1 -1
  27. package/dist/data/memory/bootstrap.d.ts.map +1 -1
  28. package/dist/data/memory/bootstrap.js +23 -14
  29. package/dist/data/memory/bootstrap.js.map +1 -1
  30. package/dist/data/memory/consolidation.d.ts +20 -1
  31. package/dist/data/memory/consolidation.d.ts.map +1 -1
  32. package/dist/data/memory/consolidation.js +53 -3
  33. package/dist/data/memory/consolidation.js.map +1 -1
  34. package/dist/data/memory/key-knowledge.d.ts +38 -0
  35. package/dist/data/memory/key-knowledge.d.ts.map +1 -0
  36. package/dist/data/memory/key-knowledge.js +118 -0
  37. package/dist/data/memory/key-knowledge.js.map +1 -0
  38. package/dist/data/memory/migration-runner.d.ts +1 -1
  39. package/dist/data/memory/migration-runner.d.ts.map +1 -1
  40. package/dist/data/memory/migration-runner.js +23 -1
  41. package/dist/data/memory/migration-runner.js.map +1 -1
  42. package/dist/data/memory/narrative-lint.d.ts +2 -2
  43. package/dist/data/memory/narrative-lint.d.ts.map +1 -1
  44. package/dist/data/memory/narrative-lint.js +23 -13
  45. package/dist/data/memory/narrative-lint.js.map +1 -1
  46. package/dist/data/memory/narrative-resolutions.d.ts +8 -1
  47. package/dist/data/memory/narrative-resolutions.d.ts.map +1 -1
  48. package/dist/data/memory/narrative-resolutions.js +12 -5
  49. package/dist/data/memory/narrative-resolutions.js.map +1 -1
  50. package/dist/data/memory/narrative-sources.d.ts +1 -1
  51. package/dist/data/memory/narrative-sources.d.ts.map +1 -1
  52. package/dist/data/memory/narrative-sources.js +8 -3
  53. package/dist/data/memory/narrative-sources.js.map +1 -1
  54. package/dist/data/memory/narrative-store.d.ts +14 -0
  55. package/dist/data/memory/narrative-store.d.ts.map +1 -1
  56. package/dist/data/memory/narrative-store.js +36 -0
  57. package/dist/data/memory/narrative-store.js.map +1 -1
  58. package/dist/data/memory/narrative.d.ts.map +1 -1
  59. package/dist/data/memory/narrative.js +45 -25
  60. package/dist/data/memory/narrative.js.map +1 -1
  61. package/dist/data/memory/note-archival.d.ts +1 -1
  62. package/dist/data/memory/note-archival.d.ts.map +1 -1
  63. package/dist/data/memory/note-archival.js +7 -3
  64. package/dist/data/memory/note-archival.js.map +1 -1
  65. package/dist/data/memory/schema-ddl.d.ts +1 -1
  66. package/dist/data/memory/schema-ddl.d.ts.map +1 -1
  67. package/dist/data/memory/schema-ddl.js +3 -1
  68. package/dist/data/memory/schema-ddl.js.map +1 -1
  69. package/dist/data/memory/semantic-notes.d.ts +9 -1
  70. package/dist/data/memory/semantic-notes.d.ts.map +1 -1
  71. package/dist/data/memory/semantic-notes.js +4 -2
  72. package/dist/data/memory/semantic-notes.js.map +1 -1
  73. package/dist/data/memory/thread-registry.d.ts +7 -1
  74. package/dist/data/memory/thread-registry.d.ts.map +1 -1
  75. package/dist/data/memory/thread-registry.js +14 -5
  76. package/dist/data/memory/thread-registry.js.map +1 -1
  77. package/dist/data/memory/utils.d.ts +6 -0
  78. package/dist/data/memory/utils.d.ts.map +1 -1
  79. package/dist/data/memory/utils.js +13 -0
  80. package/dist/data/memory/utils.js.map +1 -1
  81. package/dist/integrations/openai/speech.js +4 -4
  82. package/dist/integrations/openai/speech.js.map +1 -1
  83. package/dist/lib/http-retry.d.ts +91 -0
  84. package/dist/lib/http-retry.d.ts.map +1 -0
  85. package/dist/lib/http-retry.js +177 -0
  86. package/dist/lib/http-retry.js.map +1 -0
  87. package/dist/lib/usage-metering/pricing.js +1 -1
  88. package/dist/lib/usage-metering/pricing.js.map +1 -1
  89. package/dist/llm/prompts/narrative.d.ts.map +1 -1
  90. package/dist/llm/prompts/narrative.js +27 -86
  91. package/dist/llm/prompts/narrative.js.map +1 -1
  92. package/dist/services/claude-spawn.service.d.ts.map +1 -1
  93. package/dist/services/claude-spawn.service.js +6 -1
  94. package/dist/services/claude-spawn.service.js.map +1 -1
  95. package/dist/services/codex-spawn.service.d.ts +2 -2
  96. package/dist/services/codex-spawn.service.d.ts.map +1 -1
  97. package/dist/services/codex-spawn.service.js +64 -58
  98. package/dist/services/codex-spawn.service.js.map +1 -1
  99. package/dist/services/consolidation.service.d.ts.map +1 -1
  100. package/dist/services/consolidation.service.js +10 -1
  101. package/dist/services/consolidation.service.js.map +1 -1
  102. package/dist/services/copilot-spawn.service.d.ts.map +1 -1
  103. package/dist/services/copilot-spawn.service.js +6 -1
  104. package/dist/services/copilot-spawn.service.js.map +1 -1
  105. package/dist/services/daily-session.d.ts +21 -10
  106. package/dist/services/daily-session.d.ts.map +1 -1
  107. package/dist/services/daily-session.js +60 -15
  108. package/dist/services/daily-session.js.map +1 -1
  109. package/dist/services/http-retry.d.ts +1 -90
  110. package/dist/services/http-retry.d.ts.map +1 -1
  111. package/dist/services/http-retry.js +1 -176
  112. package/dist/services/http-retry.js.map +1 -1
  113. package/dist/services/mcp-config.service.d.ts.map +1 -1
  114. package/dist/services/mcp-config.service.js +14 -1
  115. package/dist/services/mcp-config.service.js.map +1 -1
  116. package/dist/services/memory-briefing.service.d.ts +1 -1
  117. package/dist/services/memory-briefing.service.d.ts.map +1 -1
  118. package/dist/services/memory-briefing.service.js +33 -30
  119. package/dist/services/memory-briefing.service.js.map +1 -1
  120. package/dist/services/memory-pruning.service.d.ts.map +1 -1
  121. package/dist/services/memory-pruning.service.js +22 -4
  122. package/dist/services/memory-pruning.service.js.map +1 -1
  123. package/dist/services/spawn-common.d.ts +10 -2
  124. package/dist/services/spawn-common.d.ts.map +1 -1
  125. package/dist/services/spawn-common.js +25 -4
  126. package/dist/services/spawn-common.js.map +1 -1
  127. package/dist/services/telegram.d.ts +7 -5
  128. package/dist/services/telegram.d.ts.map +1 -1
  129. package/dist/services/telegram.js +18 -13
  130. package/dist/services/telegram.js.map +1 -1
  131. package/dist/sessions/mcp-registry.d.ts +7 -2
  132. package/dist/sessions/mcp-registry.d.ts.map +1 -1
  133. package/dist/sessions/mcp-registry.js +52 -30
  134. package/dist/sessions/mcp-registry.js.map +1 -1
  135. package/dist/tools/defs/memory-defs.d.ts.map +1 -1
  136. package/dist/tools/defs/memory-defs.js +4 -0
  137. package/dist/tools/defs/memory-defs.js.map +1 -1
  138. package/dist/tools/delegate-tool.js +2 -2
  139. package/dist/tools/delegate-tool.js.map +1 -1
  140. package/dist/tools/memory-tools.d.ts.map +1 -1
  141. package/dist/tools/memory-tools.js +9 -1
  142. package/dist/tools/memory-tools.js.map +1 -1
  143. package/dist/tools/start-session-tool.js +1 -1
  144. package/dist/tools/start-session-tool.js.map +1 -1
  145. package/dist/tools/wait/consolidation-strategy.d.ts +42 -0
  146. package/dist/tools/wait/consolidation-strategy.d.ts.map +1 -0
  147. package/dist/tools/wait/consolidation-strategy.js +50 -0
  148. package/dist/tools/wait/consolidation-strategy.js.map +1 -0
  149. package/dist/tools/wait/drive-handler.d.ts +5 -7
  150. package/dist/tools/wait/drive-handler.d.ts.map +1 -1
  151. package/dist/tools/wait/drive-handler.js +44 -48
  152. package/dist/tools/wait/drive-handler.js.map +1 -1
  153. package/dist/tools/wait/message-processing.d.ts.map +1 -1
  154. package/dist/tools/wait/message-processing.js +2 -1
  155. package/dist/tools/wait/message-processing.js.map +1 -1
  156. package/dist/tools/wait/poll-loop.d.ts.map +1 -1
  157. package/dist/tools/wait/poll-loop.js +2 -8
  158. package/dist/tools/wait/poll-loop.js.map +1 -1
  159. package/package.json +1 -1
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Narrative quality lint — detects filler language, out-of-period dates, and
3
- * low-density sentences in generated narratives.
3
+ * low-density log entries in generated narratives.
4
4
  */
5
5
  const NARRATIVE_FILLER_PHRASES = [
6
6
  /\bsignificant progress\b/i,
@@ -89,29 +89,39 @@ export function findDateViolation(text, periodStart, periodEnd) {
89
89
  }
90
90
  return null;
91
91
  }
92
- export function findLowDensitySentences(text) {
93
- const sentences = text.split(/(?<=[.!?])\s+/).filter((s) => s.length > 20);
94
- if (sentences.length === 0)
92
+ export function findLowDensityLines(text) {
93
+ // Narratives are dated event logs — one self-contained entry per line, each
94
+ // guaranteed to carry a concrete identifier (LOG_STYLE). Score density per
95
+ // LINE, not per sentence: a well-formed entry like
96
+ // "2026-08-14 — Fixed the poller (thread 1327). It retried too fast. Now stable."
97
+ // legitimately has a "why"/"result" clause with no identifier of its own, and
98
+ // splitting on sentences would flag those and force needless regeneration. A
99
+ // line is low-density only when the WHOLE entry carries no identifier at all.
100
+ const lines = text
101
+ .split(/\r?\n/)
102
+ .map((s) => s.trim())
103
+ .filter((s) => s.length > 20);
104
+ if (lines.length === 0)
95
105
  return { count: 0, total: 0, examples: [] };
96
106
  const identifierPattern = /\b(?:\d{4}[-/]\d{2}[-/]\d{2}|\d{1,2}:\d{2}|v\d+\.\d+|#\d+|ID\s*\d+|\d{3,}|(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\w*\s+\d{1,2}|(?:Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday))/i;
97
107
  const quotedNamePattern = /['"][^'"]+['"]|`[^`]+`/;
98
108
  const namedEntityPattern = /thread\s*\d+|ID\s*\d+|(?:MCP|API|LLM|GPT|SQL|WAL|CLI|SDK|PR|CI|CD)\b/i;
99
- const midSentenceProperNoun = (s) => {
109
+ const midEntryProperNoun = (s) => {
100
110
  const afterFirst = s.replace(/^\S+\s+/, "");
101
111
  return /\b[A-Z][a-z]{2,}/.test(afterFirst);
102
112
  };
103
113
  const hasNumber = (s) => /\d+/.test(s);
104
114
  const lowDensity = [];
105
- for (const sentence of sentences) {
106
- const hasIdentifier = identifierPattern.test(sentence);
107
- const hasProperNoun = midSentenceProperNoun(sentence);
108
- const hasQuotedName = quotedNamePattern.test(sentence);
109
- const hasEntity = namedEntityPattern.test(sentence);
110
- const hasNum = hasNumber(sentence);
115
+ for (const line of lines) {
116
+ const hasIdentifier = identifierPattern.test(line);
117
+ const hasProperNoun = midEntryProperNoun(line);
118
+ const hasQuotedName = quotedNamePattern.test(line);
119
+ const hasEntity = namedEntityPattern.test(line);
120
+ const hasNum = hasNumber(line);
111
121
  if (!hasIdentifier && !hasProperNoun && !hasQuotedName && !hasEntity && !hasNum) {
112
- lowDensity.push(sentence.slice(0, 80));
122
+ lowDensity.push(line.slice(0, 80));
113
123
  }
114
124
  }
115
- return { count: lowDensity.length, total: sentences.length, examples: lowDensity.slice(0, 3) };
125
+ return { count: lowDensity.length, total: lines.length, examples: lowDensity.slice(0, 3) };
116
126
  }
117
127
  //# sourceMappingURL=narrative-lint.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"narrative-lint.js","sourceRoot":"","sources":["../../../src/data/memory/narrative-lint.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"narrative-lint.js","sourceRoot":"","sources":["../../../src/data/memory/narrative-lint.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,14 @@
5
5
  import type { NarrativeResolution } from "./narrative-types.js";
6
6
  /** Cooldown per resolution before regenerating */
7
7
  export declare const COOLDOWNS: Record<NarrativeResolution, number>;
8
- /** Target output token count per resolution */
8
+ /** Target output token count per resolution.
9
+ * Recent-favoring (inverted from the old pyramid): the resolutions the operator
10
+ * actually resumes from — today/this-week — get the most words, while the
11
+ * least-resume-relevant long-range summaries are terse digests. The old pyramid
12
+ * was inverted the wrong way (half_year 4000 vs day 400), which made stale
13
+ * long-range narration 41-53% of the briefing at GENERATION time. Shrinking it
14
+ * at the source (rather than truncating at render) keeps every narrative a
15
+ * complete, coherent summary — just proportioned to how far back it reaches. */
9
16
  export declare const OUTPUT_TOKEN_TARGETS: Record<NarrativeResolution, number>;
10
17
  export declare const INPUT_CHAR_BUDGETS: Record<NarrativeResolution, {
11
18
  episodes: number;
@@ -1 +1 @@
1
- {"version":3,"file":"narrative-resolutions.d.ts","sourceRoot":"","sources":["../../../src/data/memory/narrative-resolutions.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAEhE,kDAAkD;AAClD,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,mBAAmB,EAAE,MAAM,CAMzD,CAAC;AAEF,+CAA+C;AAC/C,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,mBAAmB,EAAE,MAAM,CAMpE,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,mBAAmB,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAO7F,CAAC;AAEJ,eAAO,MAAM,gBAAgB,EAAE,OAAO,CAAC,MAAM,CAAC,mBAAmB,EAAE,mBAAmB,CAAC,CAItF,CAAC;AAEF;;;;6EAI6E;AAC7E,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,mBAAmB,EAAE,MAAM,CAMhE,CAAC;AAEF,eAAO,MAAM,eAAe,QACgD,CAAC;AAiB7E,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,mBAAmB,EAC/B,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,GAChB,KAAK,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,CAmBvC"}
1
+ {"version":3,"file":"narrative-resolutions.d.ts","sourceRoot":"","sources":["../../../src/data/memory/narrative-resolutions.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAEhE,kDAAkD;AAClD,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,mBAAmB,EAAE,MAAM,CAMzD,CAAC;AAEF;;;;;;;iFAOiF;AACjF,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,mBAAmB,EAAE,MAAM,CAMpE,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,mBAAmB,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAO7F,CAAC;AAEJ,eAAO,MAAM,gBAAgB,EAAE,OAAO,CAAC,MAAM,CAAC,mBAAmB,EAAE,mBAAmB,CAAC,CAItF,CAAC;AAEF;;;;6EAI6E;AAC7E,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,mBAAmB,EAAE,MAAM,CAMhE,CAAC;AAEF,eAAO,MAAM,eAAe,QACgD,CAAC;AAiB7E,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,mBAAmB,EAC/B,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,GAChB,KAAK,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,CAmBvC"}
@@ -10,13 +10,20 @@ export const COOLDOWNS = {
10
10
  quarter: 7 * 24 * 60 * 60 * 1000, // 7 days
11
11
  half_year: 14 * 24 * 60 * 60 * 1000, // 14 days
12
12
  };
13
- /** Target output token count per resolution */
13
+ /** Target output token count per resolution.
14
+ * Recent-favoring (inverted from the old pyramid): the resolutions the operator
15
+ * actually resumes from — today/this-week — get the most words, while the
16
+ * least-resume-relevant long-range summaries are terse digests. The old pyramid
17
+ * was inverted the wrong way (half_year 4000 vs day 400), which made stale
18
+ * long-range narration 41-53% of the briefing at GENERATION time. Shrinking it
19
+ * at the source (rather than truncating at render) keeps every narrative a
20
+ * complete, coherent summary — just proportioned to how far back it reaches. */
14
21
  export const OUTPUT_TOKEN_TARGETS = {
15
22
  day: 400,
16
- week: 800,
17
- month: 1600,
18
- quarter: 3000,
19
- half_year: 4000,
23
+ week: 500,
24
+ month: 500,
25
+ quarter: 450,
26
+ half_year: 400,
20
27
  };
21
28
  export const INPUT_CHAR_BUDGETS = {
22
29
  day: { episodes: 30_000, notes: 10_000 },
@@ -1 +1 @@
1
- {"version":3,"file":"narrative-resolutions.js","sourceRoot":"","sources":["../../../src/data/memory/narrative-resolutions.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,kDAAkD;AAClD,MAAM,CAAC,MAAM,SAAS,GAAwC;IAC5D,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,UAAU;IACnC,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,WAAW;IACtC,KAAK,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,WAAW;IACvC,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,SAAS;IAC3C,SAAS,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,UAAU;CAChD,CAAC;AAEF,+CAA+C;AAC/C,MAAM,CAAC,MAAM,oBAAoB,GAAwC;IACvE,GAAG,EAAE,GAAG;IACR,IAAI,EAAE,GAAG;IACT,KAAK,EAAE,IAAI;IACX,OAAO,EAAE,IAAI;IACb,SAAS,EAAE,IAAI;CAChB,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAC7B;IACE,GAAG,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;IACxC,IAAI,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;IACzC,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;IAC1C,OAAO,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;IAC5C,SAAS,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE;CAChD,CAAC;AAEJ,MAAM,CAAC,MAAM,gBAAgB,GAA8D;IACzF,KAAK,EAAE,MAAM;IACb,OAAO,EAAE,OAAO;IAChB,SAAS,EAAE,SAAS;CACrB,CAAC;AAEF;;;;6EAI6E;AAC7E,MAAM,CAAC,MAAM,gBAAgB,GAAwC;IACnE,GAAG,EAAE,CAAC;IACN,IAAI,EAAE,CAAC;IACP,KAAK,EAAE,CAAC;IACR,OAAO,EAAE,EAAE;IACX,SAAS,EAAE,EAAE;CACd,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAC1B,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,QAAQ,CAAC;AAE7E,SAAS,kBAAkB,CAAC,UAA+B;IACzD,QAAQ,UAAU,EAAE,CAAC;QACnB,KAAK,MAAM;YACT,OAAO,CAAC,CAAC;QACX,KAAK,OAAO;YACV,OAAO,CAAC,CAAC;QACX,KAAK,SAAS;YACZ,OAAO,EAAE,CAAC;QACZ,KAAK,WAAW;YACd,OAAO,EAAE,CAAC;QACZ;YACE,OAAO,CAAC,CAAC;IACb,CAAC;AACH,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,UAA+B,EAC/B,WAAmB,EACnB,SAAiB;IAEjB,MAAM,QAAQ,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;IAC9C,IAAI,CAAC,QAAQ;QAAE,OAAO,EAAE,CAAC;IACzB,MAAM,UAAU,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;IAClD,IAAI,UAAU,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAEhC,MAAM,OAAO,GAA0C,EAAE,CAAC;IAC1D,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC;IACjC,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC;IAClC,GAAG,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAE5B,OAAO,GAAG,GAAG,IAAI,EAAE,CAAC;QAClB,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;QAC3B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,UAAU,CAAC,CAAC;QAChD,IAAI,IAAI,GAAG,IAAI;YAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAC9C,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,WAAW,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QACpE,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,UAAU,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"narrative-resolutions.js","sourceRoot":"","sources":["../../../src/data/memory/narrative-resolutions.ts"],"names":[],"mappings":"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"}
@@ -10,7 +10,7 @@ export declare function getEarliestEpisodeDate(db: Database, threadId: number):
10
10
  /** Days of episode history a thread has (earliest episode → now); 0 if none. */
11
11
  export declare function getHistorySpanDays(db: Database, threadId: number): number;
12
12
  export declare function getEpisodesInPeriod(db: Database, threadId: number, start: string, end: string): Episode[];
13
- export declare function getNotesInPeriod(db: Database, threadId: number, start: string): SemanticNote[];
13
+ export declare function getNotesInPeriod(db: Database, threadId: number, start: string, end: string): SemanticNote[];
14
14
  export declare function extractEpisodeText(ep: Episode): string;
15
15
  export declare function formatEpisodeLine(ep: Episode, text: string): string;
16
16
  export declare function formatEpisodesForLLM(episodes: Episode[], maxChars: number): string;
@@ -1 +1 @@
1
- {"version":3,"file":"narrative-sources.d.ts","sourceRoot":"","sources":["../../../src/data/memory/narrative-sources.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAKxD,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAKpF;AAED,gFAAgF;AAChF,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAIzE;AAID,wBAAgB,mBAAmB,CACjC,EAAE,EAAE,QAAQ,EACZ,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,GACV,OAAO,EAAE,CAyBX;AAED,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,YAAY,EAAE,CA+B9F;AAID,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,OAAO,GAAG,MAAM,CAItD;AAED,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAMnE;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAyClF;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAYjF;AAED,wBAAgB,2BAA2B,CAAC,UAAU,EAAE,iBAAiB,EAAE,GAAG,MAAM,CAYnF"}
1
+ {"version":3,"file":"narrative-sources.d.ts","sourceRoot":"","sources":["../../../src/data/memory/narrative-sources.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAKxD,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAKpF;AAED,gFAAgF;AAChF,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAIzE;AAID,wBAAgB,mBAAmB,CACjC,EAAE,EAAE,QAAQ,EACZ,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,GACV,OAAO,EAAE,CAyBX;AAED,wBAAgB,gBAAgB,CAC9B,EAAE,EAAE,QAAQ,EACZ,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,GACV,YAAY,EAAE,CAoChB;AAID,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,OAAO,GAAG,MAAM,CAItD;AAED,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAMnE;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAyClF;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAYjF;AAED,wBAAgB,2BAA2B,CAAC,UAAU,EAAE,iBAAiB,EAAE,GAAG,MAAM,CAYnF"}
@@ -41,12 +41,16 @@ export function getEpisodesInPeriod(db, threadId, start, end) {
41
41
  createdAt: r.created_at,
42
42
  }));
43
43
  }
44
- export function getNotesInPeriod(db, threadId, start) {
44
+ export function getNotesInPeriod(db, threadId, start, end) {
45
+ // Bounded by [start, end] so a past-ending band (the non-overlapping narrative
46
+ // resolutions all end before "now") does not pull in newer notes that belong
47
+ // to a finer band — that would both re-duplicate recent content into a
48
+ // historical narrative and trip the date-violation gate on out-of-range dates.
45
49
  const rows = db
46
50
  .prepare(`SELECT * FROM semantic_notes
47
- WHERE thread_id = ? AND valid_to IS NULL AND created_at >= ?
51
+ WHERE thread_id = ? AND valid_to IS NULL AND created_at >= ? AND created_at <= ?
48
52
  ORDER BY access_count DESC LIMIT 30`)
49
- .all(threadId, start);
53
+ .all(threadId, start, end);
50
54
  return rows.map((r) => ({
51
55
  noteId: r.note_id,
52
56
  type: r.type,
@@ -68,6 +72,7 @@ export function getNotesInPeriod(db, threadId, start) {
68
72
  isGuardrail: r.is_guardrail === 1,
69
73
  pinned: r.pinned === 1,
70
74
  qualityScore: r.quality_score ?? null,
75
+ expiresAt: r.expires_at ?? null,
71
76
  }));
72
77
  }
73
78
  // ─── Content Extraction ──────────────────────────────────────────────────────
@@ -1 +1 @@
1
- {"version":3,"file":"narrative-sources.js","sourceRoot":"","sources":["../../../src/data/memory/narrative-sources.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"narrative-sources.js","sourceRoot":"","sources":["../../../src/data/memory/narrative-sources.ts"],"names":[],"mappings":"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"}
@@ -8,4 +8,18 @@ export declare function getChildNarratives(db: Database, threadId: number, resol
8
8
  export declare function getLastNarrative(db: Database, threadId: number, resolution: NarrativeResolution): TemporalNarrative | null;
9
9
  export declare function getCurrentNarrative(db: Database, threadId: number, resolution: NarrativeResolution): TemporalNarrative | null;
10
10
  export declare function isCooldownActive(db: Database, threadId: number, resolution: NarrativeResolution): boolean;
11
+ /**
12
+ * Whether a resolution's inputs changed since its last narrative was generated.
13
+ *
14
+ * Cooldowns bound how *often* a narrative may regenerate, not whether its source
15
+ * data actually changed — so a lapsed cooldown otherwise re-summarises identical
16
+ * episodes at OpenAI cost. A rolling narrative is only worth regenerating when a
17
+ * new episode landed in the period, or (for composed month+ resolutions) a child
18
+ * narrative was (re)generated more recently than the parent.
19
+ *
20
+ * Returns true when no prior narrative exists (first-ever generation must run).
21
+ * Comparisons use julianday() so ISO episode timestamps ("...T..Z") and the
22
+ * space-separated datetime('now') stored on narratives compare on one UTC scale.
23
+ */
24
+ export declare function hasNewNarrativeInput(db: Database, threadId: number, resolution: NarrativeResolution, start: string, end: string): boolean;
11
25
  //# sourceMappingURL=narrative-store.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"narrative-store.d.ts","sourceRoot":"","sources":["../../../src/data/memory/narrative-store.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAGnF,wBAAgB,kBAAkB,CAChC,EAAE,EAAE,QAAQ,EACZ,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,mBAAmB,EAC/B,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,GACV,iBAAiB,EAAE,CAwBrB;AAED,wBAAgB,gBAAgB,CAC9B,EAAE,EAAE,QAAQ,EACZ,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,mBAAmB,GAC9B,iBAAiB,GAAG,IAAI,CAuB1B;AAED,wBAAgB,mBAAmB,CACjC,EAAE,EAAE,QAAQ,EACZ,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,mBAAmB,GAC9B,iBAAiB,GAAG,IAAI,CA0B1B;AAED,wBAAgB,gBAAgB,CAC9B,EAAE,EAAE,QAAQ,EACZ,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,mBAAmB,GAC9B,OAAO,CAMT"}
1
+ {"version":3,"file":"narrative-store.d.ts","sourceRoot":"","sources":["../../../src/data/memory/narrative-store.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAGnF,wBAAgB,kBAAkB,CAChC,EAAE,EAAE,QAAQ,EACZ,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,mBAAmB,EAC/B,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,GACV,iBAAiB,EAAE,CAwBrB;AAED,wBAAgB,gBAAgB,CAC9B,EAAE,EAAE,QAAQ,EACZ,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,mBAAmB,GAC9B,iBAAiB,GAAG,IAAI,CAuB1B;AAED,wBAAgB,mBAAmB,CACjC,EAAE,EAAE,QAAQ,EACZ,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,mBAAmB,GAC9B,iBAAiB,GAAG,IAAI,CA0B1B;AAED,wBAAgB,gBAAgB,CAC9B,EAAE,EAAE,QAAQ,EACZ,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,mBAAmB,GAC9B,OAAO,CAMT;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,oBAAoB,CAClC,EAAE,EAAE,QAAQ,EACZ,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,mBAAmB,EAC/B,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,GACV,OAAO,CA0BT"}
@@ -77,4 +77,40 @@ export function isCooldownActive(db, threadId, resolution) {
77
77
  const elapsed = Date.now() - new Date(last.createdAt).getTime();
78
78
  return elapsed < COOLDOWNS[resolution];
79
79
  }
80
+ /**
81
+ * Whether a resolution's inputs changed since its last narrative was generated.
82
+ *
83
+ * Cooldowns bound how *often* a narrative may regenerate, not whether its source
84
+ * data actually changed — so a lapsed cooldown otherwise re-summarises identical
85
+ * episodes at OpenAI cost. A rolling narrative is only worth regenerating when a
86
+ * new episode landed in the period, or (for composed month+ resolutions) a child
87
+ * narrative was (re)generated more recently than the parent.
88
+ *
89
+ * Returns true when no prior narrative exists (first-ever generation must run).
90
+ * Comparisons use julianday() so ISO episode timestamps ("...T..Z") and the
91
+ * space-separated datetime('now') stored on narratives compare on one UTC scale.
92
+ */
93
+ export function hasNewNarrativeInput(db, threadId, resolution, start, end) {
94
+ const last = getLastNarrative(db, threadId, resolution);
95
+ if (!last)
96
+ return true;
97
+ const newEpisode = db
98
+ .prepare(`SELECT 1 FROM episodes
99
+ WHERE thread_id = ? AND timestamp >= ? AND timestamp <= ?
100
+ AND julianday(timestamp) > julianday(?)
101
+ LIMIT 1`)
102
+ .get(threadId, start, end, last.createdAt);
103
+ if (newEpisode !== undefined)
104
+ return true;
105
+ const child = CHILD_RESOLUTION[resolution];
106
+ if (!child)
107
+ return false;
108
+ const newChild = db
109
+ .prepare(`SELECT 1 FROM temporal_narratives
110
+ WHERE thread_id = ? AND resolution = ? AND period_start >= ? AND period_start <= ?
111
+ AND julianday(created_at) > julianday(?)
112
+ LIMIT 1`)
113
+ .get(threadId, child, start, end, last.createdAt);
114
+ return newChild !== undefined;
115
+ }
80
116
  //# sourceMappingURL=narrative-store.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"narrative-store.js","sourceRoot":"","sources":["../../../src/data/memory/narrative-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"narrative-store.js","sourceRoot":"","sources":["../../../src/data/memory/narrative-store.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAEzE,MAAM,UAAU,kBAAkB,CAChC,EAAY,EACZ,QAAgB,EAChB,UAA+B,EAC/B,KAAa,EACb,GAAW;IAEX,MAAM,KAAK,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;IAC3C,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC;IAEtB,MAAM,IAAI,GAAG,EAAE;SACZ,OAAO,CACN;;iCAE2B,CAC5B;SACA,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,CAA8B,CAAC;IAEjE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACtB,EAAE,EAAE,CAAC,CAAC,EAAY;QAClB,QAAQ,EAAE,CAAC,CAAC,SAAmB;QAC/B,UAAU,EAAE,CAAC,CAAC,UAAiC;QAC/C,WAAW,EAAE,CAAC,CAAC,YAAsB;QACrC,SAAS,EAAE,CAAC,CAAC,UAAoB;QACjC,SAAS,EAAE,CAAC,CAAC,SAAmB;QAChC,kBAAkB,EAAE,CAAC,CAAC,oBAA8B;QACpD,eAAe,EAAE,CAAC,CAAC,iBAA2B;QAC9C,KAAK,EAAE,CAAC,CAAC,KAAsB;QAC/B,SAAS,EAAE,CAAC,CAAC,UAAoB;KAClC,CAAC,CAAC,CAAC;AACN,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,EAAY,EACZ,QAAgB,EAChB,UAA+B;IAE/B,MAAM,GAAG,GAAG,EAAE;SACX,OAAO,CACN;;0CAEoC,CACrC;SACA,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAwC,CAAC;IAEpE,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IAEtB,OAAO;QACL,EAAE,EAAE,GAAG,CAAC,EAAY;QACpB,QAAQ,EAAE,GAAG,CAAC,SAAmB;QACjC,UAAU,EAAE,GAAG,CAAC,UAAiC;QACjD,WAAW,EAAE,GAAG,CAAC,YAAsB;QACvC,SAAS,EAAE,GAAG,CAAC,UAAoB;QACnC,SAAS,EAAE,GAAG,CAAC,SAAmB;QAClC,kBAAkB,EAAE,GAAG,CAAC,oBAA8B;QACtD,eAAe,EAAE,GAAG,CAAC,iBAA2B;QAChD,KAAK,EAAE,GAAG,CAAC,KAAsB;QACjC,SAAS,EAAE,GAAG,CAAC,UAAoB;KACpC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,EAAY,EACZ,QAAgB,EAChB,UAA+B;IAE/B,MAAM,GAAG,GAAG,EAAE;SACX,OAAO,CACN;;;;;eAKS,CACV;SACA,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAwC,CAAC;IAEpE,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IAEtB,OAAO;QACL,EAAE,EAAE,GAAG,CAAC,EAAY;QACpB,QAAQ,EAAE,GAAG,CAAC,SAAmB;QACjC,UAAU,EAAE,GAAG,CAAC,UAAiC;QACjD,WAAW,EAAE,GAAG,CAAC,YAAsB;QACvC,SAAS,EAAE,GAAG,CAAC,UAAoB;QACnC,SAAS,EAAE,GAAG,CAAC,SAAmB;QAClC,kBAAkB,EAAE,GAAG,CAAC,oBAA8B;QACtD,eAAe,EAAE,GAAG,CAAC,iBAA2B;QAChD,KAAK,EAAE,GAAG,CAAC,KAAsB;QACjC,SAAS,EAAE,GAAG,CAAC,UAAoB;KACpC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,EAAY,EACZ,QAAgB,EAChB,UAA+B;IAE/B,MAAM,IAAI,GAAG,gBAAgB,CAAC,EAAE,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;IACxD,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IAExB,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC;IAChE,OAAO,OAAO,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC;AACzC,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,oBAAoB,CAClC,EAAY,EACZ,QAAgB,EAChB,UAA+B,EAC/B,KAAa,EACb,GAAW;IAEX,MAAM,IAAI,GAAG,gBAAgB,CAAC,EAAE,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;IACxD,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IAEvB,MAAM,UAAU,GAAG,EAAE;SAClB,OAAO,CACN;;;eAGS,CACV;SACA,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAC7C,IAAI,UAAU,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IAE1C,MAAM,KAAK,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;IAC3C,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IAEzB,MAAM,QAAQ,GAAG,EAAE;SAChB,OAAO,CACN;;;eAGS,CACV;SACA,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IACpD,OAAO,QAAQ,KAAK,SAAS,CAAC;AAChC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"narrative.d.ts","sourceRoot":"","sources":["../../../src/data/memory/narrative.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAG5C,OAAO,KAAK,EAAE,mBAAmB,EAAqB,MAAM,sBAAsB,CAAC;AAoCnF,wBAAgB,eAAe,CAC7B,EAAE,EAAE,QAAQ,EACZ,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,mBAAmB,GAC9B;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAgDhC;AA6QD;;;GAGG;AACH,wBAAsB,sBAAsB,CAC1C,EAAE,EAAE,QAAQ,EACZ,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GAC5B,OAAO,CAAC;IAAE,SAAS,EAAE,mBAAmB,EAAE,CAAC;IAAC,MAAM,EAAE,mBAAmB,EAAE,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CA4ChG;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,EAAE,EAAE,QAAQ,EACZ,QAAQ,EAAE,MAAM,GACf,MAAM,CAAC,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC,CAsB5C"}
1
+ {"version":3,"file":"narrative.d.ts","sourceRoot":"","sources":["../../../src/data/memory/narrative.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAG5C,OAAO,KAAK,EAAE,mBAAmB,EAAqB,MAAM,sBAAsB,CAAC;AAqCnF,wBAAgB,eAAe,CAC7B,EAAE,EAAE,QAAQ,EACZ,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,mBAAmB,GAC9B;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CA0DhC;AA6RD;;;GAGG;AACH,wBAAsB,sBAAsB,CAC1C,EAAE,EAAE,QAAQ,EACZ,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GAC5B,OAAO,CAAC;IAAE,SAAS,EAAE,mBAAmB,EAAE,CAAC;IAAC,MAAM,EAAE,mBAAmB,EAAE,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CA4ChG;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,EAAE,EAAE,QAAQ,EACZ,QAAQ,EAAE,MAAM,GACf,MAAM,CAAC,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC,CAsB5C"}
@@ -13,9 +13,9 @@
13
13
  */
14
14
  import { chatCompletion } from "../../integrations/openai/chat.js";
15
15
  import { buildPrompt, buildHierarchicalPrompt } from "../../llm/prompts/narrative.js";
16
- import { findFillerPhrase, findDateViolation, findLowDensitySentences } from "./narrative-lint.js";
16
+ import { findFillerPhrase, findDateViolation, findLowDensityLines } from "./narrative-lint.js";
17
17
  import { CHILD_RESOLUTION, INPUT_CHAR_BUDGETS, MIN_HISTORY_DAYS, NARRATIVE_MODEL, OUTPUT_TOKEN_TARGETS, enumerateChildWindows, } from "./narrative-resolutions.js";
18
- import { getChildNarratives, getCurrentNarrative, getLastNarrative, isCooldownActive, } from "./narrative-store.js";
18
+ import { getChildNarratives, getCurrentNarrative, getLastNarrative, hasNewNarrativeInput, isCooldownActive, } from "./narrative-store.js";
19
19
  import { extractEpisodeText, formatChildNarrativesForLLM, formatEpisodeLine, formatEpisodesForLLM, formatNotesForLLM, getEarliestEpisodeDate, getEpisodesInPeriod, getHistorySpanDays, getNotesInPeriod, } from "./narrative-sources.js";
20
20
  import { getThread } from "./thread-registry.js";
21
21
  import { errorMessage } from "../../lib/utils.js";
@@ -26,6 +26,22 @@ const DAY_GAP_MAX_LOOKBACK_MS = 3 * 24 * 60 * 60 * 1000;
26
26
  export function getPeriodBounds(db, threadId, resolution) {
27
27
  const now = new Date();
28
28
  const end = now.toISOString();
29
+ // Non-overlapping bands: each coarser resolution covers ONLY the slice of time
30
+ // older than the next-finer one, so the five narratives read as a single
31
+ // continuous, duplication-free timeline instead of five nested re-tellings of
32
+ // the same recent events. day = today, week = the 7 days before today, month =
33
+ // the ~3 weeks before that, quarter = the ~2 months before that, half_year =
34
+ // the ~3 months before that. Boundaries are UTC midnights; a band ends 1ms
35
+ // before the next-finer band starts, so an episode on the border lands in
36
+ // exactly one band under the inclusive [start,end] episode query.
37
+ const midnightDaysAgo = (daysAgo) => {
38
+ const d = new Date(now);
39
+ d.setUTCDate(d.getUTCDate() - daysAgo);
40
+ d.setUTCHours(0, 0, 0, 0);
41
+ return d;
42
+ };
43
+ // End a band 1ms before the finer band's start-of-day boundary.
44
+ const bandEndBefore = (finerStartDaysAgo) => new Date(midnightDaysAgo(finerStartDaysAgo).getTime() - 1).toISOString();
29
45
  if (resolution === "day") {
30
46
  const midnight = new Date(now);
31
47
  midnight.setUTCHours(0, 0, 0, 0);
@@ -45,28 +61,20 @@ export function getPeriodBounds(db, threadId, resolution) {
45
61
  return { start: start.toISOString(), end };
46
62
  }
47
63
  if (resolution === "week") {
48
- const start = new Date(now);
49
- start.setDate(start.getDate() - 7);
50
- start.setUTCHours(0, 0, 0, 0);
51
- return { start: start.toISOString(), end };
64
+ // 7 days before today, up to (but not including) today — today is `day`.
65
+ return { start: midnightDaysAgo(7).toISOString(), end: bandEndBefore(0) };
66
+ }
67
+ if (resolution === "month") {
68
+ // The ~3 weeks before this week (excludes the last 7 days — that's `week`).
69
+ return { start: midnightDaysAgo(30).toISOString(), end: bandEndBefore(7) };
52
70
  }
53
71
  if (resolution === "quarter") {
54
- const start = new Date(now);
55
- start.setDate(start.getDate() - 90);
56
- start.setUTCHours(0, 0, 0, 0);
57
- return { start: start.toISOString(), end };
72
+ // The ~2 months before this month (excludes the last 30 days — that's `month`).
73
+ return { start: midnightDaysAgo(90).toISOString(), end: bandEndBefore(30) };
58
74
  }
59
75
  if (resolution === "half_year") {
60
- const start = new Date(now);
61
- start.setDate(start.getDate() - 180);
62
- start.setUTCHours(0, 0, 0, 0);
63
- return { start: start.toISOString(), end };
64
- }
65
- if (resolution === "month") {
66
- const start = new Date(now);
67
- start.setDate(start.getDate() - 30);
68
- start.setUTCHours(0, 0, 0, 0);
69
- return { start: start.toISOString(), end };
76
+ // The ~3 months before this quarter (excludes the last 90 days — that's `quarter`).
77
+ return { start: midnightDaysAgo(180).toISOString(), end: bandEndBefore(90) };
70
78
  }
71
79
  const _exhaustive = resolution;
72
80
  throw new Error(`Unhandled narrative resolution: ${_exhaustive}`);
@@ -77,7 +85,7 @@ function buildFlatPrompt(db, knowledgeThreadId, resolution, start, end, periodLa
77
85
  const minEpisodes = resolution === "day" ? 3 : 5;
78
86
  if (episodes.length < minEpisodes)
79
87
  return null;
80
- const notes = getNotesInPeriod(db, knowledgeThreadId, start);
88
+ const notes = getNotesInPeriod(db, knowledgeThreadId, start, end);
81
89
  const budget = INPUT_CHAR_BUDGETS[resolution];
82
90
  const episodesText = formatEpisodesForLLM(episodes, budget.episodes);
83
91
  if (episodesText.length < 200 && notes.length === 0)
@@ -133,8 +141,20 @@ async function generateNarrative(db, threadId, resolution, periodOverride) {
133
141
  let prompt;
134
142
  let sourceEpisodeCount;
135
143
  let sourceNoteCount;
144
+ // Backfill child narratives up front so genuine gaps are filled and any
145
+ // freshly (re)generated child counts as changed input for the skip gate below.
136
146
  if (childRes) {
137
147
  await backfillChildNarratives(db, threadId, resolution, start, end);
148
+ }
149
+ // Cooldowns only bound regeneration frequency, not whether the source data
150
+ // changed — so a lapsed cooldown would re-summarise identical episodes at
151
+ // OpenAI cost. Skip when nothing new landed since the last narrative. Backfill
152
+ // windows (periodOverride) are first-ever for their period and bypass this.
153
+ if (!periodOverride && !hasNewNarrativeInput(db, knowledgeThreadId, resolution, start, end)) {
154
+ log.info(`[narrative] ${resolution}: inputs unchanged since last narrative — skipping regeneration`);
155
+ return null;
156
+ }
157
+ if (childRes) {
138
158
  const children = getChildNarratives(db, knowledgeThreadId, resolution, start, end);
139
159
  if (children.length > 0) {
140
160
  const childText = formatChildNarrativesForLLM(children);
@@ -214,7 +234,7 @@ async function generateNarrative(db, threadId, resolution, periodOverride) {
214
234
  let finalNarrative = narrative.trim();
215
235
  const fillerMatch = findFillerPhrase(finalNarrative);
216
236
  const dateViolation = findDateViolation(finalNarrative, start, end);
217
- const density = findLowDensitySentences(finalNarrative);
237
+ const density = findLowDensityLines(finalNarrative);
218
238
  const densityRatio = density.total > 0 ? density.count / density.total : 0;
219
239
  const hasDensityProblem = densityRatio > 0.35;
220
240
  if (fillerMatch || dateViolation || hasDensityProblem) {
@@ -224,7 +244,7 @@ async function generateNarrative(db, threadId, resolution, periodOverride) {
224
244
  if (dateViolation)
225
245
  issues.push(`date violation: ${dateViolation}`);
226
246
  if (hasDensityProblem)
227
- issues.push(`${density.count}/${density.total} sentences lack identifiers (${(densityRatio * 100).toFixed(0)}%)`);
247
+ issues.push(`${density.count}/${density.total} log entries lack identifiers (${(densityRatio * 100).toFixed(0)}%)`);
228
248
  log.warn(`[narrative] quality issue in ${resolution} narrative (${issues.join(", ")}) — retrying`);
229
249
  const corrections = [];
230
250
  if (fillerMatch)
@@ -232,7 +252,7 @@ async function generateNarrative(db, threadId, resolution, periodOverride) {
232
252
  if (dateViolation)
233
253
  corrections.push(`Fix date error: ${dateViolation}. Only reference dates within the period ${start.slice(0, 10)} to ${end.slice(0, 10)}. Do NOT substitute the current year for dates in earlier periods.`);
234
254
  if (hasDensityProblem)
235
- corrections.push(`${density.count} sentences contain no identifiers (names, dates, numbers, IDs). Examples: ${density.examples.map((s) => `"${s}..."`).join("; ")}. Every sentence must contain at least one concrete identifier.`);
255
+ corrections.push(`${density.count} log entries contain no identifiers (names, dates, numbers, IDs). Examples: ${density.examples.map((s) => `"${s}..."`).join("; ")}. Every entry must contain at least one concrete identifier.`);
236
256
  const retryPrompt = prompt +
237
257
  "\n\n" +
238
258
  corrections.join(" ") +
@@ -248,7 +268,7 @@ async function generateNarrative(db, threadId, resolution, periodOverride) {
248
268
  if (retried?.trim()) {
249
269
  const retryFiller = findFillerPhrase(retried.trim());
250
270
  const retryDate = findDateViolation(retried.trim(), start, end);
251
- const retryDensity = findLowDensitySentences(retried.trim());
271
+ const retryDensity = findLowDensityLines(retried.trim());
252
272
  const retryDensityRatio = retryDensity.total > 0 ? retryDensity.count / retryDensity.total : 0;
253
273
  if (retryFiller || retryDate || retryDensityRatio > 0.35) {
254
274
  log.warn(`[narrative] retry still has issues in ${resolution} — keeping original`);
@@ -1 +1 @@
1
- {"version":3,"file":"narrative.js","sourceRoot":"","sources":["../../../src/data/memory/narrative.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"narrative.js","sourceRoot":"","sources":["../../../src/data/memory/narrative.ts"],"names":[],"mappings":"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"}
@@ -10,7 +10,7 @@ import type { Database } from "./schema.js";
10
10
  * `*-legacy` values are written only by the migration-28 backfill over rows
11
11
  * that predate the column; live code never writes them.
12
12
  */
13
- export type ExpiryReason = "thread-terminal" | "thread-archived" | "worker-cleanup" | "pruned" | "quality-gate" | "reflection-cap" | "superseded" | "merged" | "archived-legacy" | "unknown-legacy";
13
+ export type ExpiryReason = "thread-terminal" | "thread-archived" | "worker-cleanup" | "pruned" | "quality-gate" | "ttl" | "reflection-cap" | "superseded" | "merged" | "archived-legacy" | "unknown-legacy";
14
14
  /**
15
15
  * Expire all active semantic notes belonging to a given thread, recording why.
16
16
  * Sets valid_to = NOW(). Returns the count of archived notes.
@@ -1 +1 @@
1
- {"version":3,"file":"note-archival.d.ts","sourceRoot":"","sources":["../../../src/data/memory/note-archival.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAI5C;;;;;;GAMG;AACH,MAAM,MAAM,YAAY,GACpB,iBAAiB,GACjB,iBAAiB,GACjB,gBAAgB,GAChB,QAAQ,GACR,cAAc,GACd,gBAAgB,GAChB,YAAY,GACZ,QAAQ,GACR,iBAAiB,GACjB,gBAAgB,CAAC;AAgBrB;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,EAAE,EAAE,QAAQ,EACZ,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,OAAO,CAAC,YAAY,EAAE,iBAAiB,GAAG,gBAAgB,CAAC,GAClE,MAAM,CAgBR;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,qBAAqB,CACnC,EAAE,EAAE,QAAQ,EACZ,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE;IAAE,oBAAoB,CAAC,EAAE,OAAO,CAAA;CAAE,GAC3C,MAAM,CAmBR;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,EAAE,EAAE,QAAQ,GAAG,MAAM,EAAE,CAQlE"}
1
+ {"version":3,"file":"note-archival.d.ts","sourceRoot":"","sources":["../../../src/data/memory/note-archival.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAI5C;;;;;;GAMG;AACH,MAAM,MAAM,YAAY,GACpB,iBAAiB,GACjB,iBAAiB,GACjB,gBAAgB,GAChB,QAAQ,GACR,cAAc,GACd,KAAK,GACL,gBAAgB,GAChB,YAAY,GACZ,QAAQ,GACR,iBAAiB,GACjB,gBAAgB,CAAC;AAgBrB;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,EAAE,EAAE,QAAQ,EACZ,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,OAAO,CAAC,YAAY,EAAE,iBAAiB,GAAG,gBAAgB,CAAC,GAClE,MAAM,CAoBR;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,qBAAqB,CACnC,EAAE,EAAE,QAAQ,EACZ,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE;IAAE,oBAAoB,CAAC,EAAE,OAAO,CAAA;CAAE,GAC3C,MAAM,CAmBR;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,EAAE,EAAE,QAAQ,GAAG,MAAM,EAAE,CAQlE"}
@@ -6,9 +6,9 @@ import { nowISO } from "./utils.js";
6
6
  import { log } from "../../lib/logger.js";
7
7
  /**
8
8
  * Reasons restoreNotesForThread revives unconditionally: kills that archived a
9
- * thread's knowledge rather than retiring it. `pruned`/`quality-gate`/
9
+ * thread's knowledge rather than retiring it. `pruned`/`quality-gate`/`ttl`/
10
10
  * `reflection-cap`/`superseded`/`merged` stay dead through unarchive — those
11
- * notes were individually judged, not swept. `thread-terminal` also stays dead:
11
+ * notes were individually judged or timed out, not swept. `thread-terminal` also stays dead:
12
12
  * terminal threads cannot be unarchived, so a terminal-swept note reappearing
13
13
  * via some later unarchive would be a bug, not a restore.
14
14
  */
@@ -23,9 +23,13 @@ const RESTORABLE_EXPIRY_REASONS = [
23
23
  */
24
24
  export function archiveNotesForThread(db, threadId, reason) {
25
25
  const now = nowISO();
26
+ // `thread_id IS NOT NULL` is a hard guard: global notes (thread_id NULL) must
27
+ // NEVER be swept by a per-thread archive, even if a NULL threadId ever reached
28
+ // here — `thread_id = NULL` already matches nothing, but the explicit clause
29
+ // makes the global-safety invariant impossible to break by accident.
26
30
  const result = db
27
31
  .prepare(`UPDATE semantic_notes SET valid_to = ?, updated_at = ?, expiry_reason = ?
28
- WHERE thread_id = ? AND valid_to IS NULL`)
32
+ WHERE thread_id = ? AND thread_id IS NOT NULL AND valid_to IS NULL`)
29
33
  .run(now, now, reason, threadId);
30
34
  if (result.changes > 0) {
31
35
  log.info(`[memory] Archived ${result.changes} semantic notes for thread ${threadId} (${reason})`);
@@ -1 +1 @@
1
- {"version":3,"file":"note-archival.js","sourceRoot":"","sources":["../../../src/data/memory/note-archival.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAqB1C;;;;;;;GAOG;AACH,MAAM,yBAAyB,GAA4B;IACzD,iBAAiB;IACjB,iBAAiB;IACjB,gBAAgB;CACjB,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CACnC,EAAY,EACZ,QAAgB,EAChB,MAAmE;IAEnE,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC;IAErB,MAAM,MAAM,GAAG,EAAE;SACd,OAAO,CACN;8CACwC,CACzC;SACA,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IAEnC,IAAI,MAAM,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC;QACvB,GAAG,CAAC,IAAI,CACN,qBAAqB,MAAM,CAAC,OAAO,8BAA8B,QAAQ,KAAK,MAAM,GAAG,CACxF,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC,OAAO,CAAC;AACxB,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,qBAAqB,CACnC,EAAY,EACZ,QAAgB,EAChB,OAA4C;IAE5C,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC;IAErB,MAAM,kBAAkB,GAAG,yBAAyB,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC9E,MAAM,aAAa,GAAG,OAAO,EAAE,oBAAoB;QACjD,CAAC,CAAC,+DAA+D;QACjE,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,MAAM,GAAG,EAAE;SACd,OAAO,CACN;;gCAE0B,kBAAkB,IAAI,aAAa,GAAG,CACjE;SACA,GAAG,CAAC,GAAG,EAAE,QAAQ,EAAE,GAAG,yBAAyB,CAAC,CAAC;IAEpD,IAAI,MAAM,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC;QACvB,GAAG,CAAC,IAAI,CAAC,qBAAqB,MAAM,CAAC,OAAO,8BAA8B,QAAQ,EAAE,CAAC,CAAC;IACxF,CAAC;IACD,OAAO,MAAM,CAAC,OAAO,CAAC;AACxB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,2BAA2B,CAAC,EAAY;IACtD,MAAM,IAAI,GAAG,EAAE;SACZ,OAAO,CACN;sDACgD,CACjD;SACA,GAAG,EAA6B,CAAC;IACpC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AACtC,CAAC"}
1
+ {"version":3,"file":"note-archival.js","sourceRoot":"","sources":["../../../src/data/memory/note-archival.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAsB1C;;;;;;;GAOG;AACH,MAAM,yBAAyB,GAA4B;IACzD,iBAAiB;IACjB,iBAAiB;IACjB,gBAAgB;CACjB,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CACnC,EAAY,EACZ,QAAgB,EAChB,MAAmE;IAEnE,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC;IAErB,8EAA8E;IAC9E,+EAA+E;IAC/E,6EAA6E;IAC7E,qEAAqE;IACrE,MAAM,MAAM,GAAG,EAAE;SACd,OAAO,CACN;wEACkE,CACnE;SACA,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IAEnC,IAAI,MAAM,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC;QACvB,GAAG,CAAC,IAAI,CACN,qBAAqB,MAAM,CAAC,OAAO,8BAA8B,QAAQ,KAAK,MAAM,GAAG,CACxF,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC,OAAO,CAAC;AACxB,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,qBAAqB,CACnC,EAAY,EACZ,QAAgB,EAChB,OAA4C;IAE5C,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC;IAErB,MAAM,kBAAkB,GAAG,yBAAyB,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC9E,MAAM,aAAa,GAAG,OAAO,EAAE,oBAAoB;QACjD,CAAC,CAAC,+DAA+D;QACjE,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,MAAM,GAAG,EAAE;SACd,OAAO,CACN;;gCAE0B,kBAAkB,IAAI,aAAa,GAAG,CACjE;SACA,GAAG,CAAC,GAAG,EAAE,QAAQ,EAAE,GAAG,yBAAyB,CAAC,CAAC;IAEpD,IAAI,MAAM,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC;QACvB,GAAG,CAAC,IAAI,CAAC,qBAAqB,MAAM,CAAC,OAAO,8BAA8B,QAAQ,EAAE,CAAC,CAAC;IACxF,CAAC;IACD,OAAO,MAAM,CAAC,OAAO,CAAC;AACxB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,2BAA2B,CAAC,EAAY;IACtD,MAAM,IAAI,GAAG,EAAE;SACZ,OAAO,CACN;sDACgD,CACjD;SACA,GAAG,EAA6B,CAAC;IACpC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AACtC,CAAC"}