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.
- package/Install-Sensorium.ps1 +251 -39
- package/dist/config/agent-settings.d.ts +11 -0
- package/dist/config/agent-settings.d.ts.map +1 -1
- package/dist/config/agent-settings.js +79 -0
- package/dist/config/agent-settings.js.map +1 -1
- package/dist/config/index.d.ts +1 -0
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +12 -0
- package/dist/config/index.js.map +1 -1
- package/dist/config/misc-settings.d.ts +6 -0
- package/dist/config/misc-settings.d.ts.map +1 -1
- package/dist/config/misc-settings.js +31 -0
- package/dist/config/misc-settings.js.map +1 -1
- package/dist/dashboard/routes/codex.d.ts +14 -0
- package/dist/dashboard/routes/codex.d.ts.map +1 -0
- package/dist/dashboard/routes/codex.js +92 -0
- package/dist/dashboard/routes/codex.js.map +1 -0
- package/dist/dashboard/routes/threads-read.d.ts +10 -7
- package/dist/dashboard/routes/threads-read.d.ts.map +1 -1
- package/dist/dashboard/routes/threads-read.js +21 -16
- package/dist/dashboard/routes/threads-read.js.map +1 -1
- package/dist/dashboard/routes.d.ts.map +1 -1
- package/dist/dashboard/routes.js +3 -0
- package/dist/dashboard/routes.js.map +1 -1
- package/dist/dashboard/spa.html +11 -11
- package/dist/data/memory/bootstrap.d.ts +1 -1
- package/dist/data/memory/bootstrap.d.ts.map +1 -1
- package/dist/data/memory/bootstrap.js +23 -14
- package/dist/data/memory/bootstrap.js.map +1 -1
- package/dist/data/memory/consolidation.d.ts +20 -1
- package/dist/data/memory/consolidation.d.ts.map +1 -1
- package/dist/data/memory/consolidation.js +53 -3
- package/dist/data/memory/consolidation.js.map +1 -1
- package/dist/data/memory/key-knowledge.d.ts +38 -0
- package/dist/data/memory/key-knowledge.d.ts.map +1 -0
- package/dist/data/memory/key-knowledge.js +118 -0
- package/dist/data/memory/key-knowledge.js.map +1 -0
- package/dist/data/memory/migration-runner.d.ts +1 -1
- package/dist/data/memory/migration-runner.d.ts.map +1 -1
- package/dist/data/memory/migration-runner.js +23 -1
- package/dist/data/memory/migration-runner.js.map +1 -1
- package/dist/data/memory/narrative-lint.d.ts +2 -2
- package/dist/data/memory/narrative-lint.d.ts.map +1 -1
- package/dist/data/memory/narrative-lint.js +23 -13
- package/dist/data/memory/narrative-lint.js.map +1 -1
- package/dist/data/memory/narrative-resolutions.d.ts +8 -1
- package/dist/data/memory/narrative-resolutions.d.ts.map +1 -1
- package/dist/data/memory/narrative-resolutions.js +12 -5
- package/dist/data/memory/narrative-resolutions.js.map +1 -1
- package/dist/data/memory/narrative-sources.d.ts +1 -1
- package/dist/data/memory/narrative-sources.d.ts.map +1 -1
- package/dist/data/memory/narrative-sources.js +8 -3
- package/dist/data/memory/narrative-sources.js.map +1 -1
- package/dist/data/memory/narrative-store.d.ts +14 -0
- package/dist/data/memory/narrative-store.d.ts.map +1 -1
- package/dist/data/memory/narrative-store.js +36 -0
- package/dist/data/memory/narrative-store.js.map +1 -1
- package/dist/data/memory/narrative.d.ts.map +1 -1
- package/dist/data/memory/narrative.js +45 -25
- package/dist/data/memory/narrative.js.map +1 -1
- package/dist/data/memory/note-archival.d.ts +1 -1
- package/dist/data/memory/note-archival.d.ts.map +1 -1
- package/dist/data/memory/note-archival.js +7 -3
- package/dist/data/memory/note-archival.js.map +1 -1
- package/dist/data/memory/schema-ddl.d.ts +1 -1
- package/dist/data/memory/schema-ddl.d.ts.map +1 -1
- package/dist/data/memory/schema-ddl.js +3 -1
- package/dist/data/memory/schema-ddl.js.map +1 -1
- package/dist/data/memory/semantic-notes.d.ts +9 -1
- package/dist/data/memory/semantic-notes.d.ts.map +1 -1
- package/dist/data/memory/semantic-notes.js +4 -2
- package/dist/data/memory/semantic-notes.js.map +1 -1
- package/dist/data/memory/thread-registry.d.ts +7 -1
- package/dist/data/memory/thread-registry.d.ts.map +1 -1
- package/dist/data/memory/thread-registry.js +14 -5
- package/dist/data/memory/thread-registry.js.map +1 -1
- package/dist/data/memory/utils.d.ts +6 -0
- package/dist/data/memory/utils.d.ts.map +1 -1
- package/dist/data/memory/utils.js +13 -0
- package/dist/data/memory/utils.js.map +1 -1
- package/dist/integrations/openai/speech.js +4 -4
- package/dist/integrations/openai/speech.js.map +1 -1
- package/dist/lib/http-retry.d.ts +91 -0
- package/dist/lib/http-retry.d.ts.map +1 -0
- package/dist/lib/http-retry.js +177 -0
- package/dist/lib/http-retry.js.map +1 -0
- package/dist/lib/usage-metering/pricing.js +1 -1
- package/dist/lib/usage-metering/pricing.js.map +1 -1
- package/dist/llm/prompts/narrative.d.ts.map +1 -1
- package/dist/llm/prompts/narrative.js +27 -86
- package/dist/llm/prompts/narrative.js.map +1 -1
- package/dist/services/claude-spawn.service.d.ts.map +1 -1
- package/dist/services/claude-spawn.service.js +6 -1
- package/dist/services/claude-spawn.service.js.map +1 -1
- package/dist/services/codex-spawn.service.d.ts +2 -2
- package/dist/services/codex-spawn.service.d.ts.map +1 -1
- package/dist/services/codex-spawn.service.js +64 -58
- package/dist/services/codex-spawn.service.js.map +1 -1
- package/dist/services/consolidation.service.d.ts.map +1 -1
- package/dist/services/consolidation.service.js +10 -1
- package/dist/services/consolidation.service.js.map +1 -1
- package/dist/services/copilot-spawn.service.d.ts.map +1 -1
- package/dist/services/copilot-spawn.service.js +6 -1
- package/dist/services/copilot-spawn.service.js.map +1 -1
- package/dist/services/daily-session.d.ts +21 -10
- package/dist/services/daily-session.d.ts.map +1 -1
- package/dist/services/daily-session.js +60 -15
- package/dist/services/daily-session.js.map +1 -1
- package/dist/services/http-retry.d.ts +1 -90
- package/dist/services/http-retry.d.ts.map +1 -1
- package/dist/services/http-retry.js +1 -176
- package/dist/services/http-retry.js.map +1 -1
- package/dist/services/mcp-config.service.d.ts.map +1 -1
- package/dist/services/mcp-config.service.js +14 -1
- package/dist/services/mcp-config.service.js.map +1 -1
- package/dist/services/memory-briefing.service.d.ts +1 -1
- package/dist/services/memory-briefing.service.d.ts.map +1 -1
- package/dist/services/memory-briefing.service.js +33 -30
- package/dist/services/memory-briefing.service.js.map +1 -1
- package/dist/services/memory-pruning.service.d.ts.map +1 -1
- package/dist/services/memory-pruning.service.js +22 -4
- package/dist/services/memory-pruning.service.js.map +1 -1
- package/dist/services/spawn-common.d.ts +10 -2
- package/dist/services/spawn-common.d.ts.map +1 -1
- package/dist/services/spawn-common.js +25 -4
- package/dist/services/spawn-common.js.map +1 -1
- package/dist/services/telegram.d.ts +7 -5
- package/dist/services/telegram.d.ts.map +1 -1
- package/dist/services/telegram.js +18 -13
- package/dist/services/telegram.js.map +1 -1
- package/dist/sessions/mcp-registry.d.ts +7 -2
- package/dist/sessions/mcp-registry.d.ts.map +1 -1
- package/dist/sessions/mcp-registry.js +52 -30
- package/dist/sessions/mcp-registry.js.map +1 -1
- package/dist/tools/defs/memory-defs.d.ts.map +1 -1
- package/dist/tools/defs/memory-defs.js +4 -0
- package/dist/tools/defs/memory-defs.js.map +1 -1
- package/dist/tools/delegate-tool.js +2 -2
- package/dist/tools/delegate-tool.js.map +1 -1
- package/dist/tools/memory-tools.d.ts.map +1 -1
- package/dist/tools/memory-tools.js +9 -1
- package/dist/tools/memory-tools.js.map +1 -1
- package/dist/tools/start-session-tool.js +1 -1
- package/dist/tools/start-session-tool.js.map +1 -1
- package/dist/tools/wait/consolidation-strategy.d.ts +42 -0
- package/dist/tools/wait/consolidation-strategy.d.ts.map +1 -0
- package/dist/tools/wait/consolidation-strategy.js +50 -0
- package/dist/tools/wait/consolidation-strategy.js.map +1 -0
- package/dist/tools/wait/drive-handler.d.ts +5 -7
- package/dist/tools/wait/drive-handler.d.ts.map +1 -1
- package/dist/tools/wait/drive-handler.js +44 -48
- package/dist/tools/wait/drive-handler.js.map +1 -1
- package/dist/tools/wait/message-processing.d.ts.map +1 -1
- package/dist/tools/wait/message-processing.js +2 -1
- package/dist/tools/wait/message-processing.js.map +1 -1
- package/dist/tools/wait/poll-loop.d.ts.map +1 -1
- package/dist/tools/wait/poll-loop.js +2 -8
- package/dist/tools/wait/poll-loop.js.map +1 -1
- 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
|
|
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
|
|
93
|
-
|
|
94
|
-
|
|
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
|
|
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
|
|
106
|
-
const hasIdentifier = identifierPattern.test(
|
|
107
|
-
const hasProperNoun =
|
|
108
|
-
const hasQuotedName = quotedNamePattern.test(
|
|
109
|
-
const hasEntity = namedEntityPattern.test(
|
|
110
|
-
const hasNum = hasNumber(
|
|
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(
|
|
122
|
+
lowDensity.push(line.slice(0, 80));
|
|
113
123
|
}
|
|
114
124
|
}
|
|
115
|
-
return { count: lowDensity.length, total:
|
|
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":"AAAA;;;GAGG;AAEH,MAAM,wBAAwB,GAAa;IACzC,2BAA2B;IAC3B,4BAA4B;IAC5B,uBAAuB;IACvB,2BAA2B;IAC3B,oDAAoD;IACpD,yCAAyC;IACzC,4CAA4C;IAC5C,wCAAwC;IACxC,kDAAkD;IAClD,yCAAyC;IACzC,+CAA+C;IAC/C,+CAA+C;IAC/C,oDAAoD;IACpD,wCAAwC;IACxC,8DAA8D;IAC9D,4BAA4B;IAC5B,+BAA+B;IAC/B,wCAAwC;IACxC,2BAA2B;IAC3B,wBAAwB;IACxB,gCAAgC;IAChC,qBAAqB;IACrB,2BAA2B;IAC3B,6BAA6B;IAC7B,uBAAuB;IACvB,kCAAkC;IAClC,0BAA0B;IAC1B,sBAAsB;IACtB,0CAA0C;IAC1C,wBAAwB;IACxB,oBAAoB;CACrB,CAAC;AAEF,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,KAAK,MAAM,OAAO,IAAI,wBAAwB,EAAE,CAAC;QAC/C,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,KAAK;YAAE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;IAC7B,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,IAAY,EACZ,WAAmB,EACnB,SAAiB;IAEjB,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC;IACxC,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC;IACpC,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;IACrC,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC,WAAW,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,EAAE;QAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAEzF,iEAAiE;IACjE,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IACpD,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAChC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;YACvB,OAAO,QAAQ,IAAI,wBAAwB,CAAC,GAAG,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IAC3E,CAAC;IAED,0DAA0D;IAC1D,MAAM,UAAU,GAAG;QACjB,SAAS;QACT,UAAU;QACV,OAAO;QACP,OAAO;QACP,KAAK;QACL,MAAM;QACN,MAAM;QACN,QAAQ;QACR,WAAW;QACX,SAAS;QACT,UAAU;QACV,UAAU;KACX,CAAC;IACF,MAAM,YAAY,GAChB,0JAA0J,CAAC;IAC7J,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;QAC5C,MAAM,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAChD,MAAM,QAAQ,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;QACvE,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAChC,IAAI,QAAQ,KAAK,CAAC,CAAC;YAAE,SAAS;QAC9B,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;QAC7C,MAAM,WAAW,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC;QACxC,WAAW,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;QAC/C,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;QACpC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;QAC3C,IAAI,OAAO,GAAG,WAAW,IAAI,OAAO,GAAG,SAAS,EAAE,CAAC;YACjD,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,8BAA8B,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;QACvG,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,
|
|
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
|
|
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:
|
|
17
|
-
month:
|
|
18
|
-
quarter:
|
|
19
|
-
half_year:
|
|
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
|
|
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,
|
|
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":"AAAA;;;GAGG;AAMH,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7D,gFAAgF;AAEhF,MAAM,UAAU,sBAAsB,CAAC,EAAY,EAAE,QAAgB;IACnE,MAAM,GAAG,GAAG,EAAE;SACX,OAAO,CAAC,qEAAqE,CAAC;SAC9E,GAAG,CAAC,QAAQ,CAA4C,CAAC;IAC5D,OAAO,GAAG,EAAE,QAAQ,IAAI,IAAI,CAAC;AAC/B,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,kBAAkB,CAAC,EAAY,EAAE,QAAgB;IAC/D,MAAM,QAAQ,GAAG,sBAAsB,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;IACtD,IAAI,CAAC,QAAQ;QAAE,OAAO,CAAC,CAAC;IACxB,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC,GAAG,UAAU,CAAC;AAClE,CAAC;AAED,gFAAgF;AAEhF,MAAM,UAAU,mBAAmB,CACjC,EAAY,EACZ,QAAgB,EAChB,KAAa,EACb,GAAW;IAEX,MAAM,IAAI,GAAG,EAAE;SACZ,OAAO,CACN;;8BAEwB,CACzB;SACA,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAG,CAA8B,CAAC;IAE1D,kDAAkD;IAClD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACtB,SAAS,EAAE,CAAC,CAAC,UAAoB;QACjC,SAAS,EAAE,CAAC,CAAC,UAAoB;QACjC,QAAQ,EAAE,CAAC,CAAC,SAAmB;QAC/B,SAAS,EAAE,CAAC,CAAC,SAAmB;QAChC,IAAI,EAAE,CAAC,CAAC,IAAuB;QAC/B,QAAQ,EAAE,CAAC,CAAC,QAA+B;QAC3C,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,OAAiB,CAAC;QAC7C,SAAS,EAAE,cAAc,CAAC,CAAC,CAAC,UAAoB,CAAC;QACjD,UAAU,EAAE,CAAC,CAAC,UAAoB;QAClC,YAAY,EAAG,CAAC,CAAC,YAAuB,KAAK,CAAC;QAC9C,aAAa,EAAE,CAAC,CAAC,cAAwB;QACzC,YAAY,EAAE,CAAC,CAAC,aAA8B;QAC9C,SAAS,EAAE,CAAC,CAAC,UAAoB;KAClC,CAAC,CAAC,CAAC;AACN,CAAC;AAED,MAAM,UAAU,gBAAgB,
|
|
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":"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"}
|
|
@@ -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;
|
|
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,
|
|
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
|
-
|
|
49
|
-
start
|
|
50
|
-
|
|
51
|
-
|
|
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
|
-
|
|
55
|
-
start
|
|
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
|
-
|
|
61
|
-
start
|
|
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 =
|
|
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}
|
|
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}
|
|
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 =
|
|
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,
|
|
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;
|
|
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"}
|