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
|
@@ -54,7 +54,7 @@ export declare function getMemoryStatus(db: Database, threadId: number): MemoryS
|
|
|
54
54
|
* this display. Aggregating a few thousand active notes takes milliseconds.
|
|
55
55
|
*/
|
|
56
56
|
export declare function getTopicIndex(db: Database): TopicEntry[];
|
|
57
|
-
export declare function getBootstrapContext(db: Database, threadId: number, memorySourceThreadId?: number): BootstrapContext
|
|
57
|
+
export declare function getBootstrapContext(db: Database, threadId: number, memorySourceThreadId?: number): Promise<BootstrapContext>;
|
|
58
58
|
export declare function getCompactRefreshNotes(db: Database, threadId: number): SemanticNote[];
|
|
59
59
|
export declare function forgetMemory(db: Database, memoryId: string, _reason: string): {
|
|
60
60
|
layer: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../../src/data/memory/bootstrap.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAqB,KAAK,OAAO,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,EAIL,KAAK,YAAY,EAClB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../../src/data/memory/bootstrap.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAqB,KAAK,OAAO,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,EAIL,KAAK,YAAY,EAClB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAgBlD,eAAO,MAAM,gCAAgC,SAAU,CAAC;AACxD,eAAO,MAAM,yBAAyB,MAAM,CAAC;AAE7C,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,YAAY;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,SAAS,EAAE,UAAU,EAAE,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,cAAc,EAAE,OAAO,EAAE,CAAC;IAC1B,UAAU,EAAE,YAAY,EAAE,CAAC;IAC3B,WAAW,EAAE,YAAY,EAAE,CAAC;IAC5B,YAAY,EAAE,YAAY,EAAE,CAAC;IAC7B,QAAQ,EAAE,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC;IAC9C,UAAU,EAAE,mBAAmB,GAAG,IAAI,CAAC;IACvC,WAAW,EAAE,mBAAmB,EAAE,CAAC;CACpC;AAQD,wBAAgB,eAAe,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,GAAG,YAAY,CAwC5E;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,QAAQ,GAAG,UAAU,EAAE,CAmDxD;AAED,wBAAsB,mBAAmB,CACvC,EAAE,EAAE,QAAQ,EACZ,QAAQ,EAAE,MAAM,EAChB,oBAAoB,CAAC,EAAE,MAAM,GAC5B,OAAO,CAAC,gBAAgB,CAAC,CAqF3B;AAED,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,GAAG,YAAY,EAAE,CAMrF;AAED,wBAAgB,YAAY,CAC1B,EAAE,EAAE,QAAQ,EACZ,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,GACd;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAgDrC"}
|
|
@@ -6,7 +6,8 @@ import { getVoiceBaseline } from "./voice-sig.js";
|
|
|
6
6
|
import { parseJsonArray } from "./utils.js";
|
|
7
7
|
import { getNarrativesForBootstrap } from "./narrative.js";
|
|
8
8
|
import { getThread } from "./thread-registry.js";
|
|
9
|
-
import {
|
|
9
|
+
import { selectKeyKnowledge } from "./key-knowledge.js";
|
|
10
|
+
import { getGuardrailsEnabled, getBootstrapMessageCount, getRelevanceAnchorThreshold, getKeyKnowledgeMax, getRelevanceAnchorTailEpisodes, config, } from "../../config/index.js";
|
|
10
11
|
import { log } from "../../lib/logger.js";
|
|
11
12
|
import { errorMessage } from "../../lib/utils.js";
|
|
12
13
|
export const MAX_BOOTSTRAP_CONVERSATION_CHARS = 100_000;
|
|
@@ -88,22 +89,32 @@ export function getTopicIndex(db) {
|
|
|
88
89
|
.sort((a, b) => b.totalAccesses - a.totalAccesses || b.semanticCount - a.semanticCount)
|
|
89
90
|
.slice(0, 50);
|
|
90
91
|
}
|
|
91
|
-
export function getBootstrapContext(db, threadId, memorySourceThreadId) {
|
|
92
|
+
export async function getBootstrapContext(db, threadId, memorySourceThreadId) {
|
|
92
93
|
const queryThreadId = memorySourceThreadId ?? threadId;
|
|
93
94
|
const knowledgeThreadId = queryThreadId;
|
|
94
95
|
const bootstrapMessageCount = getBootstrapMessageCount();
|
|
95
96
|
const threadEntry = getThread(db, queryThreadId);
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
97
|
+
// Recent conversation tail — always the last N messages by recency, regardless
|
|
98
|
+
// of session_reset_at. A restarted/rotated session MUST see where the previous
|
|
99
|
+
// session left off and continue from the briefing alone. Clamping this layer to
|
|
100
|
+
// `timestamp > session_reset_at` emptied it right after a daily rotation (which
|
|
101
|
+
// resets session_reset_at to now), so the fresh session had no recent context
|
|
102
|
+
// and produced nonsense/summaries — forcing the operator to manually ask it to
|
|
103
|
+
// re-read recent history. The layer is char-budgeted downstream, so the last N
|
|
104
|
+
// stays bounded; the render also tells the agent to only fetch OLDER episodes,
|
|
105
|
+
// so this never triggers over-reading.
|
|
106
|
+
const recentEpisodes = [...getRecentEpisodes(db, queryThreadId, bootstrapMessageCount)].reverse();
|
|
107
|
+
// Key Knowledge is relevance-anchored, not recency-ranked: embed the recent
|
|
108
|
+
// conversation tail and keep only notes clearing a cosine threshold, rendered
|
|
109
|
+
// in full ("maximally relevant or none"). Falls back to the freshest notes by
|
|
110
|
+
// updated_at when embedding is unavailable/empty/failing — see selectKeyKnowledge.
|
|
111
|
+
const keyKnowledgeNotes = await selectKeyKnowledge(db, {
|
|
103
112
|
threadId: knowledgeThreadId,
|
|
113
|
+
apiKey: config.OPENAI_API_KEY,
|
|
114
|
+
threshold: getRelevanceAnchorThreshold(),
|
|
115
|
+
maxResults: getKeyKnowledgeMax(),
|
|
116
|
+
tailEpisodes: getRelevanceAnchorTailEpisodes(),
|
|
104
117
|
});
|
|
105
|
-
const preferences = topNotes.filter((note) => note.type === "preference");
|
|
106
|
-
const otherNotes = topNotes.filter((note) => note.type !== "preference");
|
|
107
118
|
const pinnedNotes = getPinnedNotes(db, knowledgeThreadId);
|
|
108
119
|
const pinnedIds = new Set(pinnedNotes.map((note) => note.noteId));
|
|
109
120
|
let narratives = null;
|
|
@@ -149,9 +160,7 @@ export function getBootstrapContext(db, threadId, memorySourceThreadId) {
|
|
|
149
160
|
recentEpisodes,
|
|
150
161
|
guardrails: getGuardrailsEnabled() ? getGuardrailNotes(db) : [],
|
|
151
162
|
pinnedNotes,
|
|
152
|
-
keyKnowledge:
|
|
153
|
-
.slice(0, 20)
|
|
154
|
-
.filter((note) => !pinnedIds.has(note.noteId)),
|
|
163
|
+
keyKnowledge: keyKnowledgeNotes.filter((note) => !pinnedIds.has(note.noteId)),
|
|
155
164
|
baseline: getVoiceBaseline(db),
|
|
156
165
|
narratives,
|
|
157
166
|
reflections,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../../src/data/memory/bootstrap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,OAAO,EAAE,iBAAiB,EAAgB,MAAM,eAAe,CAAC;AAChE,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,GAEf,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../../src/data/memory/bootstrap.ts"],"names":[],"mappings":"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"}
|
|
@@ -44,7 +44,26 @@ export declare function getActiveNoteContent(db: Database, noteId: string): {
|
|
|
44
44
|
content: string;
|
|
45
45
|
} | null;
|
|
46
46
|
export declare function expireNote(db: Database, noteId: string, now: string, reason: Extract<ExpiryReason, "pruned" | "quality-gate">): void;
|
|
47
|
-
|
|
47
|
+
/**
|
|
48
|
+
* TTL sweep: soft-expire notes whose write-time `expires_at` has elapsed. Runs
|
|
49
|
+
* in the consolidation cycle alongside pruning. Reversible — sets valid_to +
|
|
50
|
+
* expiry_reason='ttl' and prepends [EXPIRED]; never hard-deletes. Applies to
|
|
51
|
+
* pinned/guardrail notes too (a soft expiry can be restored). Notes with
|
|
52
|
+
* expires_at IS NULL — the default — are never touched, so pre-TTL behavior is
|
|
53
|
+
* unchanged. Returns the number of notes expired.
|
|
54
|
+
*/
|
|
55
|
+
export declare function sweepExpiredNotes(db: Database): number;
|
|
56
|
+
/**
|
|
57
|
+
* Merge a duplicate note into a kept one, retiring the duplicate (expiry_reason
|
|
58
|
+
* 'merged'). Returns true if the merge happened, false if it was refused.
|
|
59
|
+
*
|
|
60
|
+
* A guardrail or pinned note is NEVER the retired side: dedup must not silently
|
|
61
|
+
* drop an enforced rule or a pinned invariant. When the expire target is
|
|
62
|
+
* protected the whole operation is a no-op (no content rewrite, no retirement) —
|
|
63
|
+
* the protected note stays active — mirroring supersedeNote's guard. This is the
|
|
64
|
+
* "exclude protected notes from the retired side" option.
|
|
65
|
+
*/
|
|
66
|
+
export declare function mergeDuplicateNote(db: Database, keepId: string, expireId: string, now: string, mergedContent?: string): boolean;
|
|
48
67
|
/**
|
|
49
68
|
* Delete note_embeddings rows only for notes that are gone entirely or
|
|
50
69
|
* permanently dead (superseded / merged / pruned). Vectors of archived,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consolidation.d.ts","sourceRoot":"","sources":["../../../src/data/memory/consolidation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,EAGL,KAAK,YAAY,EAClB,MAAM,oBAAoB,CAAC;AAM5B,MAAM,WAAW,mBAAmB;IAClC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAQD,wBAAgB,0BAA0B,CAAC,EAAE,EAAE,QAAQ,GAAG,MAAM,EAAE,CAUjE;AAED,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,gBAAgB,GAAG,IAAI,CAM5E;AAED,wBAAgB,gCAAgC,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI,CAEnE;AAED,wBAAgB,2BAA2B,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,GAAG,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"consolidation.d.ts","sourceRoot":"","sources":["../../../src/data/memory/consolidation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,EAGL,KAAK,YAAY,EAClB,MAAM,oBAAoB,CAAC;AAM5B,MAAM,WAAW,mBAAmB;IAClC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAQD,wBAAgB,0BAA0B,CAAC,EAAE,EAAE,QAAQ,GAAG,MAAM,EAAE,CAUjE;AAED,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,gBAAgB,GAAG,IAAI,CAM5E;AAED,wBAAgB,gCAAgC,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI,CAEnE;AAED,wBAAgB,2BAA2B,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,GAAG,UAAU,EAAE,CAiBxF;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAOnE;AAED,wBAAgB,oBAAoB,CAClC,EAAE,EAAE,QAAQ,EACZ,MAAM,EAAE,MAAM,GACb;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAQ5C;AAED,wBAAgB,UAAU,CACxB,EAAE,EAAE,QAAQ,EACZ,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,OAAO,CAAC,YAAY,EAAE,QAAQ,GAAG,cAAc,CAAC,GACvD,IAAI,CAUN;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,QAAQ,GAAG,MAAM,CAgBtD;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAChC,EAAE,EAAE,QAAQ,EACZ,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,EACX,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO,CA0BT;AAED;;;;;;;;;GASG;AACH,wBAAgB,uBAAuB,CAAC,EAAE,EAAE,QAAQ,GAAG,MAAM,CAgB5D;AAED,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,QAAQ,GAAG,MAAM,CAmBvD"}
|
|
@@ -27,13 +27,16 @@ export function cleanupConsolidationHousekeeping(db) {
|
|
|
27
27
|
cleanupOldSentMessages(db);
|
|
28
28
|
}
|
|
29
29
|
export function getCandidateNotesForPruning(db, maxNotes) {
|
|
30
|
+
// Guardrail and pinned notes are INTENTIONALLY candidates: the LLM judge is the
|
|
31
|
+
// only path that can catch a stale pin or a guardrail whose deadline has passed
|
|
32
|
+
// ("tonight", "in progress" from a past date). The judge stays conservative
|
|
33
|
+
// (see memory-pruning.service.ts) and expiry is soft/reversible, so surfacing
|
|
34
|
+
// them here does not endanger durable rules.
|
|
30
35
|
return db
|
|
31
36
|
.prepare(`
|
|
32
37
|
SELECT * FROM semantic_notes
|
|
33
38
|
WHERE valid_to IS NULL
|
|
34
39
|
AND superseded_by IS NULL
|
|
35
|
-
AND is_guardrail = 0
|
|
36
|
-
AND pinned = 0
|
|
37
40
|
ORDER BY access_count ASC, created_at ASC
|
|
38
41
|
LIMIT ?
|
|
39
42
|
`)
|
|
@@ -54,15 +57,62 @@ export function getActiveNoteContent(db, noteId) {
|
|
|
54
57
|
return { noteId: row.note_id, content: row.content };
|
|
55
58
|
}
|
|
56
59
|
export function expireNote(db, noteId, now, reason) {
|
|
57
|
-
|
|
60
|
+
// Prepend an [EXPIRED] marker so any later inspection of the tombstone reads as
|
|
61
|
+
// deliberately retired (consistent with the TTL sweep). `AND valid_to IS NULL`
|
|
62
|
+
// makes a double-mark / re-expiry structurally impossible — an already-expired
|
|
63
|
+
// note is never re-touched even if a caller passes one in.
|
|
64
|
+
db.prepare(`UPDATE semantic_notes
|
|
65
|
+
SET valid_to = ?, updated_at = ?, expiry_reason = ?, content = '[EXPIRED] ' || content
|
|
66
|
+
WHERE note_id = ? AND valid_to IS NULL`).run(now, now, reason, noteId);
|
|
58
67
|
}
|
|
68
|
+
/**
|
|
69
|
+
* TTL sweep: soft-expire notes whose write-time `expires_at` has elapsed. Runs
|
|
70
|
+
* in the consolidation cycle alongside pruning. Reversible — sets valid_to +
|
|
71
|
+
* expiry_reason='ttl' and prepends [EXPIRED]; never hard-deletes. Applies to
|
|
72
|
+
* pinned/guardrail notes too (a soft expiry can be restored). Notes with
|
|
73
|
+
* expires_at IS NULL — the default — are never touched, so pre-TTL behavior is
|
|
74
|
+
* unchanged. Returns the number of notes expired.
|
|
75
|
+
*/
|
|
76
|
+
export function sweepExpiredNotes(db) {
|
|
77
|
+
const now = nowISO();
|
|
78
|
+
const result = db
|
|
79
|
+
.prepare(`UPDATE semantic_notes
|
|
80
|
+
SET valid_to = ?, updated_at = ?, expiry_reason = 'ttl', content = '[EXPIRED] ' || content
|
|
81
|
+
WHERE expires_at IS NOT NULL
|
|
82
|
+
AND expires_at <= ?
|
|
83
|
+
AND valid_to IS NULL
|
|
84
|
+
AND superseded_by IS NULL`)
|
|
85
|
+
.run(now, now, now);
|
|
86
|
+
if (result.changes > 0) {
|
|
87
|
+
log.info(`[memory] TTL sweep: expired ${result.changes} note(s) past expires_at`);
|
|
88
|
+
}
|
|
89
|
+
return result.changes;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Merge a duplicate note into a kept one, retiring the duplicate (expiry_reason
|
|
93
|
+
* 'merged'). Returns true if the merge happened, false if it was refused.
|
|
94
|
+
*
|
|
95
|
+
* A guardrail or pinned note is NEVER the retired side: dedup must not silently
|
|
96
|
+
* drop an enforced rule or a pinned invariant. When the expire target is
|
|
97
|
+
* protected the whole operation is a no-op (no content rewrite, no retirement) —
|
|
98
|
+
* the protected note stays active — mirroring supersedeNote's guard. This is the
|
|
99
|
+
* "exclude protected notes from the retired side" option.
|
|
100
|
+
*/
|
|
59
101
|
export function mergeDuplicateNote(db, keepId, expireId, now, mergedContent) {
|
|
102
|
+
const expireRow = db
|
|
103
|
+
.prepare(`SELECT is_guardrail, pinned FROM semantic_notes WHERE note_id = ?`)
|
|
104
|
+
.get(expireId);
|
|
105
|
+
if (expireRow && (expireRow.is_guardrail === 1 || expireRow.pinned === 1)) {
|
|
106
|
+
log.warn(`[memory] Refusing to merge-away guardrail/pinned note ${expireId}; leaving it active`);
|
|
107
|
+
return false;
|
|
108
|
+
}
|
|
60
109
|
if (mergedContent) {
|
|
61
110
|
db.prepare(`UPDATE semantic_notes SET content = ?, updated_at = ? WHERE note_id = ?`).run(mergedContent, now, keepId);
|
|
62
111
|
}
|
|
63
112
|
db.prepare(`UPDATE semantic_notes SET valid_to = ?, superseded_by = ?, updated_at = ?, expiry_reason = 'merged' WHERE note_id = ?`).run(now, keepId, now, expireId);
|
|
64
113
|
// Repoint inbound causal links from the merged-away note to the kept note.
|
|
65
114
|
migrateInboundLinks(db, expireId, keepId);
|
|
115
|
+
return true;
|
|
66
116
|
}
|
|
67
117
|
/**
|
|
68
118
|
* Delete note_embeddings rows only for notes that are gone entirely or
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consolidation.js","sourceRoot":"","sources":["../../../src/data/memory/consolidation.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EACL,qBAAqB,EACrB,2BAA2B,GAE5B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAwCrD,iFAAiF;AACjF,+EAA+E;AAC/E,kFAAkF;AAClF,0DAA0D;AAC1D,MAAM,wBAAwB,GAAG,IAAI,GAAG,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;AAEhE,MAAM,UAAU,0BAA0B,CAAC,EAAY;IACrD,MAAM,IAAI,GAAG,EAAE;SACZ,OAAO,CACN;;;6EAGuE,CACxE;SACA,GAAG,EAA6B,CAAC;IACpC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,EAAY,EAAE,KAAuB;IACpE,EAAE,CAAC,OAAO,CACR;;yBAEqB,CACtB,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,KAAK,CAAC,iBAAiB,EAAE,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;AACjF,CAAC;AAED,MAAM,UAAU,gCAAgC,CAAC,EAAY;IAC3D,sBAAsB,CAAC,EAAE,CAAC,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,EAAY,EAAE,QAAgB;IACxE,OAAO,EAAE;SACN,OAAO,CACN
|
|
1
|
+
{"version":3,"file":"consolidation.js","sourceRoot":"","sources":["../../../src/data/memory/consolidation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Relevance-anchored Key-Knowledge selection for the bootstrap briefing.
|
|
3
|
+
*
|
|
4
|
+
* "Maximally relevant or none": instead of listing the top-N most recent notes
|
|
5
|
+
* (which still surfaces stale, off-topic ones), we anchor an embedding on the
|
|
6
|
+
* RECENT-CONVERSATION tail, cosine-score every active note for the thread, and
|
|
7
|
+
* keep only those clearing a similarity threshold — rendered fully, never
|
|
8
|
+
* truncated. A spike on thread 1327 (1789 notes) validated this: sim>=0.40 gave
|
|
9
|
+
* 23 tightly on-topic notes, 0.45 gave 9. So ~0.40 is a self-limiting, high
|
|
10
|
+
* quality cut.
|
|
11
|
+
*
|
|
12
|
+
* The selector NEVER throws or hangs: a missing API key, an embedding
|
|
13
|
+
* error/timeout, an empty tail (fresh thread), or zero matches all fall back to
|
|
14
|
+
* the historical recency selector so the briefing degrades gracefully.
|
|
15
|
+
*/
|
|
16
|
+
import type { Database } from "./schema.js";
|
|
17
|
+
import { type SemanticNote } from "./semantic-notes.js";
|
|
18
|
+
export interface KeyKnowledgeParams {
|
|
19
|
+
threadId: number;
|
|
20
|
+
/** OpenAI key; empty string forces the recency fallback. */
|
|
21
|
+
apiKey: string;
|
|
22
|
+
/** Minimum cosine similarity a note must clear to be included. */
|
|
23
|
+
threshold: number;
|
|
24
|
+
/** Upper bound on notes returned (also the fallback slice size). */
|
|
25
|
+
maxResults: number;
|
|
26
|
+
/** How many recent conversation episodes form the anchor. */
|
|
27
|
+
tailEpisodes: number;
|
|
28
|
+
}
|
|
29
|
+
/** Drop notes whose content exactly duplicates an earlier one, keeping the first. */
|
|
30
|
+
export declare function dedupeByContent(notes: SemanticNote[]): SemanticNote[];
|
|
31
|
+
/**
|
|
32
|
+
* Select the Key-Knowledge notes for a thread's bootstrap briefing.
|
|
33
|
+
*
|
|
34
|
+
* Relevance path when possible; otherwise the recency fallback. Guaranteed not
|
|
35
|
+
* to throw — every failure mode resolves to the fallback selection.
|
|
36
|
+
*/
|
|
37
|
+
export declare function selectKeyKnowledge(db: Database, params: KeyKnowledgeParams): Promise<SemanticNote[]>;
|
|
38
|
+
//# sourceMappingURL=key-knowledge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"key-knowledge.d.ts","sourceRoot":"","sources":["../../../src/data/memory/key-knowledge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAuB,KAAK,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAoB7E,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,4DAA4D;IAC5D,MAAM,EAAE,MAAM,CAAC;IACf,kEAAkE;IAClE,SAAS,EAAE,MAAM,CAAC;IAClB,oEAAoE;IACpE,UAAU,EAAE,MAAM,CAAC;IACnB,6DAA6D;IAC7D,YAAY,EAAE,MAAM,CAAC;CACtB;AAUD,qFAAqF;AACrF,wBAAgB,eAAe,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,YAAY,EAAE,CAOrE;AAmDD;;;;;GAKG;AACH,wBAAsB,kBAAkB,CACtC,EAAE,EAAE,QAAQ,EACZ,MAAM,EAAE,kBAAkB,GACzB,OAAO,CAAC,YAAY,EAAE,CAAC,CAuCzB"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Relevance-anchored Key-Knowledge selection for the bootstrap briefing.
|
|
3
|
+
*
|
|
4
|
+
* "Maximally relevant or none": instead of listing the top-N most recent notes
|
|
5
|
+
* (which still surfaces stale, off-topic ones), we anchor an embedding on the
|
|
6
|
+
* RECENT-CONVERSATION tail, cosine-score every active note for the thread, and
|
|
7
|
+
* keep only those clearing a similarity threshold — rendered fully, never
|
|
8
|
+
* truncated. A spike on thread 1327 (1789 notes) validated this: sim>=0.40 gave
|
|
9
|
+
* 23 tightly on-topic notes, 0.45 gave 9. So ~0.40 is a self-limiting, high
|
|
10
|
+
* quality cut.
|
|
11
|
+
*
|
|
12
|
+
* The selector NEVER throws or hangs: a missing API key, an embedding
|
|
13
|
+
* error/timeout, an empty tail (fresh thread), or zero matches all fall back to
|
|
14
|
+
* the historical recency selector so the briefing degrades gracefully.
|
|
15
|
+
*/
|
|
16
|
+
import { getTopSemanticNotes } from "./semantic-notes.js";
|
|
17
|
+
import { searchByEmbedding } from "./note-embeddings.js";
|
|
18
|
+
import { generateEmbedding } from "../../integrations/openai/chat.js";
|
|
19
|
+
import { parseJsonObject } from "./utils.js";
|
|
20
|
+
import { log } from "../../lib/logger.js";
|
|
21
|
+
import { errorMessage } from "../../lib/utils.js";
|
|
22
|
+
/** Max characters of anchor text sent for embedding (model caps at ~8191 tokens). */
|
|
23
|
+
const ANCHOR_TEXT_MAX_CHARS = 8000;
|
|
24
|
+
/**
|
|
25
|
+
* Hard wall-clock bound on the anchor embedding call. generateEmbedding has its
|
|
26
|
+
* own 30s abort, but the bootstrap must not block that long on a slow network —
|
|
27
|
+
* we cut over to the recency fallback well before then.
|
|
28
|
+
*/
|
|
29
|
+
const EMBED_TIMEOUT_MS = 12_000;
|
|
30
|
+
/** Episode types that make up the "conversation" used as the relevance anchor. */
|
|
31
|
+
const ANCHOR_EPISODE_TYPES = ["operator_message", "agent_action"];
|
|
32
|
+
/** Drop notes whose content exactly duplicates an earlier one, keeping the first. */
|
|
33
|
+
export function dedupeByContent(notes) {
|
|
34
|
+
const seen = new Set();
|
|
35
|
+
return notes.filter((note) => {
|
|
36
|
+
if (seen.has(note.content))
|
|
37
|
+
return false;
|
|
38
|
+
seen.add(note.content);
|
|
39
|
+
return true;
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
/** Historical selector: freshest active notes by updated_at, deduped and capped. */
|
|
43
|
+
function selectByRecency(db, threadId, limit) {
|
|
44
|
+
const notes = getTopSemanticNotes(db, { limit, sortBy: "updated_at", threadId });
|
|
45
|
+
return dedupeByContent(notes).slice(0, limit);
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Concatenate the last N conversation episodes (oldest → newest) into anchor
|
|
49
|
+
* text, mirroring the spike: pull operator/agent messages by recency, reverse
|
|
50
|
+
* to chronological, extract the human-readable field, and cap the length.
|
|
51
|
+
*/
|
|
52
|
+
function buildAnchorText(db, threadId, tailEpisodes) {
|
|
53
|
+
const typePlaceholders = ANCHOR_EPISODE_TYPES.map(() => "?").join(",");
|
|
54
|
+
const rows = db
|
|
55
|
+
.prepare(`SELECT content FROM episodes
|
|
56
|
+
WHERE thread_id = ? AND type IN (${typePlaceholders})
|
|
57
|
+
ORDER BY timestamp DESC LIMIT ?`)
|
|
58
|
+
.all(threadId, ...ANCHOR_EPISODE_TYPES, tailEpisodes);
|
|
59
|
+
return rows
|
|
60
|
+
.reverse()
|
|
61
|
+
.map((row) => {
|
|
62
|
+
const content = parseJsonObject(row.content);
|
|
63
|
+
return String(content.text || content.raw || content.caption || content.message || "");
|
|
64
|
+
})
|
|
65
|
+
.filter((text) => text.trim())
|
|
66
|
+
.join("\n")
|
|
67
|
+
.slice(0, ANCHOR_TEXT_MAX_CHARS);
|
|
68
|
+
}
|
|
69
|
+
/** Reject after `ms` so a slow embedding can't stall the bootstrap. */
|
|
70
|
+
function withTimeout(promise, ms, label) {
|
|
71
|
+
return new Promise((resolve, reject) => {
|
|
72
|
+
const timer = setTimeout(() => reject(new Error(`${label} timed out after ${ms}ms`)), ms);
|
|
73
|
+
promise.then((value) => {
|
|
74
|
+
clearTimeout(timer);
|
|
75
|
+
resolve(value);
|
|
76
|
+
}, (err) => {
|
|
77
|
+
clearTimeout(timer);
|
|
78
|
+
reject(err);
|
|
79
|
+
});
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Select the Key-Knowledge notes for a thread's bootstrap briefing.
|
|
84
|
+
*
|
|
85
|
+
* Relevance path when possible; otherwise the recency fallback. Guaranteed not
|
|
86
|
+
* to throw — every failure mode resolves to the fallback selection.
|
|
87
|
+
*/
|
|
88
|
+
export async function selectKeyKnowledge(db, params) {
|
|
89
|
+
const { threadId, apiKey, threshold, maxResults, tailEpisodes } = params;
|
|
90
|
+
const finish = (notes, source) => {
|
|
91
|
+
log.info(`[key-knowledge] thread ${threadId}: ${notes.length} notes via ${source} (threshold ${threshold})`);
|
|
92
|
+
return notes;
|
|
93
|
+
};
|
|
94
|
+
if (!apiKey)
|
|
95
|
+
return finish(selectByRecency(db, threadId, maxResults), "recency:no-api-key");
|
|
96
|
+
const anchorText = buildAnchorText(db, threadId, tailEpisodes);
|
|
97
|
+
if (!anchorText.trim()) {
|
|
98
|
+
return finish(selectByRecency(db, threadId, maxResults), "recency:empty-tail");
|
|
99
|
+
}
|
|
100
|
+
try {
|
|
101
|
+
const anchor = await withTimeout(generateEmbedding(anchorText, apiKey, threadId), EMBED_TIMEOUT_MS, "anchor embedding");
|
|
102
|
+
const hits = searchByEmbedding(db, anchor, {
|
|
103
|
+
threadId,
|
|
104
|
+
minSimilarity: threshold,
|
|
105
|
+
maxResults,
|
|
106
|
+
skipAccessTracking: true,
|
|
107
|
+
});
|
|
108
|
+
if (hits.length === 0) {
|
|
109
|
+
return finish(selectByRecency(db, threadId, maxResults), "recency:no-matches");
|
|
110
|
+
}
|
|
111
|
+
return finish(hits, "relevance");
|
|
112
|
+
}
|
|
113
|
+
catch (err) {
|
|
114
|
+
log.warn(`[key-knowledge] thread ${threadId}: relevance selection failed (${errorMessage(err)}); using recency`);
|
|
115
|
+
return finish(selectByRecency(db, threadId, maxResults), "recency:error");
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
//# sourceMappingURL=key-knowledge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"key-knowledge.js","sourceRoot":"","sources":["../../../src/data/memory/key-knowledge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,EAAE,mBAAmB,EAAqB,MAAM,qBAAqB,CAAC;AAC7E,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,qFAAqF;AACrF,MAAM,qBAAqB,GAAG,IAAI,CAAC;AAEnC;;;;GAIG;AACH,MAAM,gBAAgB,GAAG,MAAM,CAAC;AAEhC,kFAAkF;AAClF,MAAM,oBAAoB,GAAG,CAAC,kBAAkB,EAAE,cAAc,CAAU,CAAC;AAsB3E,qFAAqF;AACrF,MAAM,UAAU,eAAe,CAAC,KAAqB;IACnD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;QAC3B,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;YAAE,OAAO,KAAK,CAAC;QACzC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;AACL,CAAC;AAED,oFAAoF;AACpF,SAAS,eAAe,CAAC,EAAY,EAAE,QAAgB,EAAE,KAAa;IACpE,MAAM,KAAK,GAAG,mBAAmB,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC,CAAC;IACjF,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAChD,CAAC;AAED;;;;GAIG;AACH,SAAS,eAAe,CAAC,EAAY,EAAE,QAAgB,EAAE,YAAoB;IAC3E,MAAM,gBAAgB,GAAG,oBAAoB,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACvE,MAAM,IAAI,GAAG,EAAE;SACZ,OAAO,CACN;0CACoC,gBAAgB;uCACnB,CAClC;SACA,GAAG,CAAC,QAAQ,EAAE,GAAG,oBAAoB,EAAE,YAAY,CAA0B,CAAC;IAEjF,OAAO,IAAI;SACR,OAAO,EAAE;SACT,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACX,MAAM,OAAO,GAAG,eAAe,CAAC,GAAG,CAAC,OAAO,CAA4B,CAAC;QACxE,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;IACzF,CAAC,CAAC;SACD,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SAC7B,IAAI,CAAC,IAAI,CAAC;SACV,KAAK,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC;AACrC,CAAC;AAED,uEAAuE;AACvE,SAAS,WAAW,CAAI,OAAmB,EAAE,EAAU,EAAE,KAAa;IACpE,OAAO,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACxC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,oBAAoB,EAAE,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC1F,OAAO,CAAC,IAAI,CACV,CAAC,KAAK,EAAE,EAAE;YACR,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,CAAC;QACjB,CAAC,EACD,CAAC,GAAG,EAAE,EAAE;YACN,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,MAAM,CAAC,GAAG,CAAC,CAAC;QACd,CAAC,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,EAAY,EACZ,MAA0B;IAE1B,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,MAAM,CAAC;IAEzE,MAAM,MAAM,GAAG,CAAC,KAAqB,EAAE,MAAuB,EAAkB,EAAE;QAChF,GAAG,CAAC,IAAI,CACN,0BAA0B,QAAQ,KAAK,KAAK,CAAC,MAAM,cAAc,MAAM,eAAe,SAAS,GAAG,CACnG,CAAC;QACF,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IAEF,IAAI,CAAC,MAAM;QAAE,OAAO,MAAM,CAAC,eAAe,CAAC,EAAE,EAAE,QAAQ,EAAE,UAAU,CAAC,EAAE,oBAAoB,CAAC,CAAC;IAE5F,MAAM,UAAU,GAAG,eAAe,CAAC,EAAE,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;IAC/D,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC;QACvB,OAAO,MAAM,CAAC,eAAe,CAAC,EAAE,EAAE,QAAQ,EAAE,UAAU,CAAC,EAAE,oBAAoB,CAAC,CAAC;IACjF,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,WAAW,CAC9B,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,EAC/C,gBAAgB,EAChB,kBAAkB,CACnB,CAAC;QACF,MAAM,IAAI,GAAG,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAAE;YACzC,QAAQ;YACR,aAAa,EAAE,SAAS;YACxB,UAAU;YACV,kBAAkB,EAAE,IAAI;SACzB,CAAC,CAAC;QACH,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,OAAO,MAAM,CAAC,eAAe,CAAC,EAAE,EAAE,QAAQ,EAAE,UAAU,CAAC,EAAE,oBAAoB,CAAC,CAAC;QACjF,CAAC;QACD,OAAO,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IACnC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,IAAI,CACN,0BAA0B,QAAQ,iCAAiC,YAAY,CAAC,GAAG,CAAC,kBAAkB,CACvG,CAAC;QACF,OAAO,MAAM,CAAC,eAAe,CAAC,EAAE,EAAE,QAAQ,EAAE,UAAU,CAAC,EAAE,eAAe,CAAC,CAAC;IAC5E,CAAC;AACH,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Database } from "./db-types.js";
|
|
2
|
-
export declare const SCHEMA_VERSION =
|
|
2
|
+
export declare const SCHEMA_VERSION = 30;
|
|
3
3
|
export declare function rebuildThreadRegistryWithExitedStatus(db: Database, existingColumns: string[]): void;
|
|
4
4
|
/**
|
|
5
5
|
* Label pre-column tombstones (valid_to set, expiry_reason NULL) with the most
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migration-runner.d.ts","sourceRoot":"","sources":["../../../src/data/memory/migration-runner.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE9C,eAAO,MAAM,cAAc,KAAK,CAAC;AAkBjC,wBAAgB,qCAAqC,CACnD,EAAE,EAAE,QAAQ,EACZ,eAAe,EAAE,MAAM,EAAE,GACxB,IAAI,CA0DN;
|
|
1
|
+
{"version":3,"file":"migration-runner.d.ts","sourceRoot":"","sources":["../../../src/data/memory/migration-runner.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE9C,eAAO,MAAM,cAAc,KAAK,CAAC;AAkBjC,wBAAgB,qCAAqC,CACnD,EAAE,EAAE,QAAQ,EACZ,eAAe,EAAE,MAAM,EAAE,GACxB,IAAI,CA0DN;AAudD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI,CA+DxD;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI,CAsBhD"}
|
|
@@ -3,7 +3,7 @@ import { log } from "../../lib/logger.js";
|
|
|
3
3
|
import { dataPath } from "../../lib/paths.js";
|
|
4
4
|
import { errorMessage } from "../../lib/utils.js";
|
|
5
5
|
import { nowISO } from "./utils.js";
|
|
6
|
-
export const SCHEMA_VERSION =
|
|
6
|
+
export const SCHEMA_VERSION = 30;
|
|
7
7
|
function isDuplicateColumnError(err, columnName) {
|
|
8
8
|
const message = errorMessage(err).toLowerCase();
|
|
9
9
|
return message.includes(`duplicate column name: ${columnName}`.toLowerCase());
|
|
@@ -518,6 +518,28 @@ const MIGRATIONS = {
|
|
|
518
518
|
db.exec(`DROP TABLE IF EXISTS meta_topic_index`);
|
|
519
519
|
log.info("[migration-29] Dropped meta_topic_index (topics are computed on demand)");
|
|
520
520
|
},
|
|
521
|
+
30: (db) => {
|
|
522
|
+
// Optional write-time TTL. expires_at is an ISO timestamp after which the
|
|
523
|
+
// consolidation-cycle TTL sweep (sweepExpiredNotes) soft-expires the note.
|
|
524
|
+
// NULL — the default — means the note never expires on a timer, so an
|
|
525
|
+
// unset expires_at is byte-identical to pre-30 behavior. This is distinct
|
|
526
|
+
// from valid_to (the tombstone written AT expiry): expires_at is a future
|
|
527
|
+
// hint, valid_to is the past fact; the two must never be conflated. The
|
|
528
|
+
// partial index backs the sweep's hot predicate (expires_at set, still live).
|
|
529
|
+
try {
|
|
530
|
+
db.exec(`ALTER TABLE semantic_notes ADD COLUMN expires_at TEXT`);
|
|
531
|
+
}
|
|
532
|
+
catch (err) {
|
|
533
|
+
if (!isDuplicateColumnError(err, "expires_at"))
|
|
534
|
+
throw err;
|
|
535
|
+
}
|
|
536
|
+
db.exec(`CREATE INDEX IF NOT EXISTS idx_sem_expires_at ON semantic_notes(expires_at) WHERE expires_at IS NOT NULL AND valid_to IS NULL`);
|
|
537
|
+
log.info("[migration-30] Added expires_at column to semantic_notes");
|
|
538
|
+
},
|
|
539
|
+
// NOTE: the Agent Task Board deliberately does NOT take a number here — its
|
|
540
|
+
// DDL is versioned in board_schema_version (data/board/board-schema.ts,
|
|
541
|
+
// ensureBoardSchema) so a feature line can never collide with main's next
|
|
542
|
+
// migration number. No deployed DB ever recorded a v30 from the board branch.
|
|
521
543
|
};
|
|
522
544
|
/**
|
|
523
545
|
* Label pre-column tombstones (valid_to set, expiry_reason NULL) with the most
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migration-runner.js","sourceRoot":"","sources":["../../../src/data/memory/migration-runner.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"migration-runner.js","sourceRoot":"","sources":["../../../src/data/memory/migration-runner.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,10 @@
|
|
|
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
|
export declare function findFillerPhrase(text: string): string | null;
|
|
6
6
|
export declare function findDateViolation(text: string, periodStart: string, periodEnd: string): string | null;
|
|
7
|
-
export declare function
|
|
7
|
+
export declare function findLowDensityLines(text: string): {
|
|
8
8
|
count: number;
|
|
9
9
|
total: number;
|
|
10
10
|
examples: string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"narrative-lint.d.ts","sourceRoot":"","sources":["../../../src/data/memory/narrative-lint.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAoCH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAM5D;AAED,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,GAChB,MAAM,GAAG,IAAI,CA+Cf;AAED,wBAAgB,
|
|
1
|
+
{"version":3,"file":"narrative-lint.d.ts","sourceRoot":"","sources":["../../../src/data/memory/narrative-lint.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAoCH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAM5D;AAED,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,GAChB,MAAM,GAAG,IAAI,CA+Cf;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG;IACjD,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,CAuCA"}
|