sensorium-mcp 3.1.0-refactor.0 → 3.1.0-refactor.10
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 +113 -20
- package/dist/config/agent-settings.d.ts +7 -0
- package/dist/config/agent-settings.d.ts.map +1 -1
- package/dist/config/agent-settings.js +14 -0
- package/dist/config/agent-settings.js.map +1 -1
- package/dist/dashboard/log-parser.d.ts +3 -0
- package/dist/dashboard/log-parser.d.ts.map +1 -1
- package/dist/dashboard/log-parser.js +38 -4
- package/dist/dashboard/log-parser.js.map +1 -1
- package/dist/dashboard/routes/claude.d.ts.map +1 -1
- package/dist/dashboard/routes/claude.js +9 -1
- package/dist/dashboard/routes/claude.js.map +1 -1
- package/dist/dashboard/routes/threads.js +1 -1
- package/dist/dashboard/routes/threads.js.map +1 -1
- package/dist/dashboard/spa.html +11 -11
- package/dist/data/memory/bootstrap.d.ts +7 -0
- package/dist/data/memory/bootstrap.d.ts.map +1 -1
- package/dist/data/memory/bootstrap.js +45 -16
- package/dist/data/memory/bootstrap.js.map +1 -1
- package/dist/data/memory/consolidation.d.ts +9 -4
- package/dist/data/memory/consolidation.d.ts.map +1 -1
- package/dist/data/memory/consolidation.js +24 -12
- package/dist/data/memory/consolidation.js.map +1 -1
- package/dist/data/memory/index.d.ts +1 -2
- package/dist/data/memory/index.d.ts.map +1 -1
- package/dist/data/memory/index.js +1 -2
- package/dist/data/memory/index.js.map +1 -1
- package/dist/data/memory/migration-runner.d.ts +24 -1
- package/dist/data/memory/migration-runner.d.ts.map +1 -1
- package/dist/data/memory/migration-runner.js +85 -1
- package/dist/data/memory/migration-runner.js.map +1 -1
- package/dist/data/memory/narrative.d.ts.map +1 -1
- package/dist/data/memory/narrative.js +5 -1
- package/dist/data/memory/narrative.js.map +1 -1
- package/dist/data/memory/note-archival.d.ts +29 -4
- package/dist/data/memory/note-archival.d.ts.map +1 -1
- package/dist/data/memory/note-archival.js +55 -26
- package/dist/data/memory/note-archival.js.map +1 -1
- package/dist/data/memory/reflection-dedup.js +2 -2
- package/dist/data/memory/reflection-dedup.js.map +1 -1
- package/dist/data/memory/reflection.d.ts.map +1 -1
- package/dist/data/memory/reflection.js +7 -3
- package/dist/data/memory/reflection.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 +8 -8
- package/dist/data/memory/semantic-notes.d.ts +30 -2
- package/dist/data/memory/semantic-notes.d.ts.map +1 -1
- package/dist/data/memory/semantic-notes.js +94 -13
- package/dist/data/memory/semantic-notes.js.map +1 -1
- package/dist/data/memory/semantic-search.d.ts.map +1 -1
- package/dist/data/memory/semantic-search.js +6 -4
- package/dist/data/memory/semantic-search.js.map +1 -1
- package/dist/data/memory/thread-registry.d.ts.map +1 -1
- package/dist/data/memory/thread-registry.js +20 -4
- package/dist/data/memory/thread-registry.js.map +1 -1
- package/dist/data/memory/topic-shift.js +2 -2
- package/dist/data/memory/topic-shift.js.map +1 -1
- package/dist/index.js +19 -9
- package/dist/index.js.map +1 -1
- package/dist/integrations/openai/chat.d.ts +7 -1
- package/dist/integrations/openai/chat.d.ts.map +1 -1
- package/dist/integrations/openai/chat.js +19 -2
- package/dist/integrations/openai/chat.js.map +1 -1
- package/dist/integrations/openai/speech.d.ts +4 -1
- package/dist/integrations/openai/speech.d.ts.map +1 -1
- package/dist/integrations/openai/speech.js +6 -1
- package/dist/integrations/openai/speech.js.map +1 -1
- package/dist/integrations/telegram/types.d.ts +9 -0
- package/dist/integrations/telegram/types.d.ts.map +1 -1
- package/dist/lib/markdown.d.ts +0 -13
- package/dist/lib/markdown.d.ts.map +1 -1
- package/dist/lib/markdown.js +45 -0
- package/dist/lib/markdown.js.map +1 -1
- package/dist/lib/usage-metering/index.d.ts +13 -0
- package/dist/lib/usage-metering/index.d.ts.map +1 -0
- package/dist/lib/usage-metering/index.js +10 -0
- package/dist/lib/usage-metering/index.js.map +1 -0
- package/dist/lib/usage-metering/meter.d.ts +34 -0
- package/dist/lib/usage-metering/meter.d.ts.map +1 -0
- package/dist/lib/usage-metering/meter.js +28 -0
- package/dist/lib/usage-metering/meter.js.map +1 -0
- package/dist/lib/usage-metering/pricing.d.ts +39 -0
- package/dist/lib/usage-metering/pricing.d.ts.map +1 -0
- package/dist/lib/usage-metering/pricing.js +49 -0
- package/dist/lib/usage-metering/pricing.js.map +1 -0
- package/dist/lib/usage-metering/sink.d.ts +24 -0
- package/dist/lib/usage-metering/sink.d.ts.map +1 -0
- package/dist/lib/usage-metering/sink.js +56 -0
- package/dist/lib/usage-metering/sink.js.map +1 -0
- package/dist/server/factory.js +12 -9
- package/dist/server/factory.js.map +1 -1
- package/dist/server/http-server.d.ts +1 -0
- package/dist/server/http-server.d.ts.map +1 -1
- package/dist/server/http-server.js +45 -3
- package/dist/server/http-server.js.map +1 -1
- package/dist/services/background-runner.d.ts.map +1 -1
- package/dist/services/background-runner.js +11 -1
- package/dist/services/background-runner.js.map +1 -1
- package/dist/services/claude-spawn.service.d.ts.map +1 -1
- package/dist/services/claude-spawn.service.js +78 -4
- package/dist/services/claude-spawn.service.js.map +1 -1
- package/dist/services/codex-spawn.service.d.ts.map +1 -1
- 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 +51 -35
- 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 +8 -1
- package/dist/services/copilot-spawn.service.js.map +1 -1
- package/dist/services/dispatcher/broker.d.ts +6 -0
- package/dist/services/dispatcher/broker.d.ts.map +1 -1
- package/dist/services/dispatcher/broker.js.map +1 -1
- package/dist/services/dispatcher/poller.d.ts.map +1 -1
- package/dist/services/dispatcher/poller.js +15 -0
- package/dist/services/dispatcher/poller.js.map +1 -1
- package/dist/services/keeper.service.d.ts.map +1 -1
- package/dist/services/keeper.service.js +97 -1
- package/dist/services/keeper.service.js.map +1 -1
- package/dist/services/memory-pruning.service.d.ts.map +1 -1
- package/dist/services/memory-pruning.service.js +3 -1
- package/dist/services/memory-pruning.service.js.map +1 -1
- package/dist/services/process.service.d.ts +51 -0
- package/dist/services/process.service.d.ts.map +1 -1
- package/dist/services/process.service.js +247 -7
- package/dist/services/process.service.js.map +1 -1
- package/dist/services/spawn-common.d.ts.map +1 -1
- package/dist/services/spawn-common.js +9 -2
- package/dist/services/spawn-common.js.map +1 -1
- package/dist/services/thread-config.service.d.ts.map +1 -1
- package/dist/services/thread-config.service.js +1 -1
- package/dist/services/thread-config.service.js.map +1 -1
- package/dist/services/thread-health.service.d.ts +19 -1
- package/dist/services/thread-health.service.d.ts.map +1 -1
- package/dist/services/thread-health.service.js +74 -4
- package/dist/services/thread-health.service.js.map +1 -1
- package/dist/services/thread-lifecycle.service.d.ts.map +1 -1
- package/dist/services/thread-lifecycle.service.js +5 -0
- package/dist/services/thread-lifecycle.service.js.map +1 -1
- package/dist/services/worker-cleanup.service.d.ts +12 -0
- package/dist/services/worker-cleanup.service.d.ts.map +1 -1
- package/dist/services/worker-cleanup.service.js +281 -70
- package/dist/services/worker-cleanup.service.js.map +1 -1
- package/dist/sessions/mcp-registry.d.ts +6 -0
- package/dist/sessions/mcp-registry.d.ts.map +1 -1
- package/dist/sessions/mcp-registry.js +8 -0
- package/dist/sessions/mcp-registry.js.map +1 -1
- package/dist/tools/defs/session-defs.d.ts.map +1 -1
- package/dist/tools/defs/session-defs.js +20 -2
- package/dist/tools/defs/session-defs.js.map +1 -1
- package/dist/tools/delegate-tool.d.ts.map +1 -1
- package/dist/tools/delegate-tool.js +84 -4
- package/dist/tools/delegate-tool.js.map +1 -1
- package/dist/tools/memory-tools.d.ts +1 -1
- package/dist/tools/memory-tools.d.ts.map +1 -1
- package/dist/tools/memory-tools.js +4 -4
- package/dist/tools/memory-tools.js.map +1 -1
- package/dist/tools/utility-tools.d.ts.map +1 -1
- package/dist/tools/utility-tools.js +1 -1
- package/dist/tools/utility-tools.js.map +1 -1
- package/dist/tools/wait/drive-handler.js +1 -1
- package/dist/tools/wait/drive-handler.js.map +1 -1
- package/dist/tools/wait/media-processor.d.ts.map +1 -1
- package/dist/tools/wait/media-processor.js +2 -2
- package/dist/tools/wait/media-processor.js.map +1 -1
- package/dist/tools/wait/message-delivery.d.ts +10 -0
- package/dist/tools/wait/message-delivery.d.ts.map +1 -1
- package/dist/tools/wait/message-delivery.js +48 -1
- package/dist/tools/wait/message-delivery.js.map +1 -1
- package/dist/tools/wait/poll-loop.d.ts.map +1 -1
- package/dist/tools/wait/poll-loop.js +18 -0
- package/dist/tools/wait/poll-loop.js.map +1 -1
- package/package.json +3 -2
- package/templates/swarm.default.md +4 -1
- package/dist/data/memory/topic-index.d.ts +0 -20
- package/dist/data/memory/topic-index.d.ts.map +0 -1
- package/dist/data/memory/topic-index.js +0 -91
- package/dist/data/memory/topic-index.js.map +0 -1
|
@@ -46,6 +46,13 @@ export interface BootstrapContext {
|
|
|
46
46
|
reflections: BootstrapReflection[];
|
|
47
47
|
}
|
|
48
48
|
export declare function getMemoryStatus(db: Database, threadId: number): MemoryStatus;
|
|
49
|
+
/**
|
|
50
|
+
* Top topics, computed on demand over the active notes' keywords. This replaced
|
|
51
|
+
* the stored meta_topic_index aggregate (dropped in migration 29): the stored
|
|
52
|
+
* counters needed increment/decrement bookkeeping on every write, expiry and
|
|
53
|
+
* restore path, drifted whenever a path bypassed them, and fed nothing but
|
|
54
|
+
* this display. Aggregating a few thousand active notes takes milliseconds.
|
|
55
|
+
*/
|
|
49
56
|
export declare function getTopicIndex(db: Database): TopicEntry[];
|
|
50
57
|
export declare function getBootstrapContext(db: Database, threadId: number, memorySourceThreadId?: number): BootstrapContext;
|
|
51
58
|
export declare function getCompactRefreshNotes(db: Database, threadId: number): SemanticNote[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../../src/data/memory/bootstrap.ts"],"names":[],"mappings":"AAGA,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;
|
|
1
|
+
{"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../../src/data/memory/bootstrap.ts"],"names":[],"mappings":"AAGA,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;AAQlD,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,wBAAgB,mBAAmB,CACjC,EAAE,EAAE,QAAQ,EACZ,QAAQ,EAAE,MAAM,EAChB,oBAAoB,CAAC,EAAE,MAAM,GAC5B,gBAAgB,CAkFlB;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"}
|
|
@@ -3,7 +3,6 @@ import { homedir } from "node:os";
|
|
|
3
3
|
import { join } from "node:path";
|
|
4
4
|
import { getRecentEpisodes } from "./episodes.js";
|
|
5
5
|
import { getTopSemanticNotes, getGuardrailNotes, getPinnedNotes, } from "./semantic-notes.js";
|
|
6
|
-
import { decrementTopicIndexForKeywords } from "./topic-index.js";
|
|
7
6
|
import { getVoiceBaseline } from "./voice-sig.js";
|
|
8
7
|
import { parseJsonArray } from "./utils.js";
|
|
9
8
|
import { getNarrativesForBootstrap } from "./narrative.js";
|
|
@@ -13,15 +12,6 @@ import { log } from "../../lib/logger.js";
|
|
|
13
12
|
import { errorMessage } from "../../lib/utils.js";
|
|
14
13
|
export const MAX_BOOTSTRAP_CONVERSATION_CHARS = 100_000;
|
|
15
14
|
export const MAX_MESSAGE_CONTENT_CHARS = 500;
|
|
16
|
-
function rowToTopicEntry(row) {
|
|
17
|
-
return {
|
|
18
|
-
topic: row.topic,
|
|
19
|
-
semanticCount: row.semantic_count,
|
|
20
|
-
lastUpdated: row.last_updated ?? null,
|
|
21
|
-
avgConfidence: row.avg_confidence,
|
|
22
|
-
totalAccesses: row.total_accesses,
|
|
23
|
-
};
|
|
24
|
-
}
|
|
25
15
|
export function getMemoryStatus(db, threadId) {
|
|
26
16
|
const totalEpisodes = db.prepare(`SELECT COUNT(*) as cnt FROM episodes`).get().cnt;
|
|
27
17
|
const unconsolidatedEpisodes = db.prepare(`SELECT COUNT(*) as cnt FROM episodes WHERE consolidated = 0`).get().cnt;
|
|
@@ -50,11 +40,54 @@ export function getMemoryStatus(db, threadId) {
|
|
|
50
40
|
dbSizeBytes,
|
|
51
41
|
};
|
|
52
42
|
}
|
|
43
|
+
/**
|
|
44
|
+
* Top topics, computed on demand over the active notes' keywords. This replaced
|
|
45
|
+
* the stored meta_topic_index aggregate (dropped in migration 29): the stored
|
|
46
|
+
* counters needed increment/decrement bookkeeping on every write, expiry and
|
|
47
|
+
* restore path, drifted whenever a path bypassed them, and fed nothing but
|
|
48
|
+
* this display. Aggregating a few thousand active notes takes milliseconds.
|
|
49
|
+
*/
|
|
53
50
|
export function getTopicIndex(db) {
|
|
54
51
|
const rows = db
|
|
55
|
-
.prepare(`SELECT
|
|
52
|
+
.prepare(`SELECT keywords, confidence, access_count, updated_at FROM semantic_notes
|
|
53
|
+
WHERE valid_to IS NULL AND superseded_by IS NULL`)
|
|
56
54
|
.all();
|
|
57
|
-
|
|
55
|
+
const agg = new Map();
|
|
56
|
+
for (const row of rows) {
|
|
57
|
+
const keywords = parseJsonArray(row.keywords);
|
|
58
|
+
const seen = new Set();
|
|
59
|
+
for (const kw of keywords) {
|
|
60
|
+
if (typeof kw !== "string")
|
|
61
|
+
continue;
|
|
62
|
+
const normalised = kw.toLowerCase().trim();
|
|
63
|
+
if (normalised.length <= 1 || seen.has(normalised))
|
|
64
|
+
continue;
|
|
65
|
+
seen.add(normalised);
|
|
66
|
+
const entry = agg.get(normalised) ?? {
|
|
67
|
+
count: 0,
|
|
68
|
+
confSum: 0,
|
|
69
|
+
accesses: 0,
|
|
70
|
+
lastUpdated: null,
|
|
71
|
+
};
|
|
72
|
+
entry.count += 1;
|
|
73
|
+
entry.confSum += row.confidence ?? 0.5;
|
|
74
|
+
entry.accesses += row.access_count ?? 0;
|
|
75
|
+
if (row.updated_at && (!entry.lastUpdated || row.updated_at > entry.lastUpdated)) {
|
|
76
|
+
entry.lastUpdated = row.updated_at;
|
|
77
|
+
}
|
|
78
|
+
agg.set(normalised, entry);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
return [...agg.entries()]
|
|
82
|
+
.map(([topic, entry]) => ({
|
|
83
|
+
topic,
|
|
84
|
+
semanticCount: entry.count,
|
|
85
|
+
lastUpdated: entry.lastUpdated,
|
|
86
|
+
avgConfidence: entry.confSum / entry.count,
|
|
87
|
+
totalAccesses: entry.accesses,
|
|
88
|
+
}))
|
|
89
|
+
.sort((a, b) => b.totalAccesses - a.totalAccesses || b.semanticCount - a.semanticCount)
|
|
90
|
+
.slice(0, 50);
|
|
58
91
|
}
|
|
59
92
|
export function getBootstrapContext(db, threadId, memorySourceThreadId) {
|
|
60
93
|
const queryThreadId = memorySourceThreadId ?? threadId;
|
|
@@ -151,11 +184,9 @@ export function forgetMemory(db, memoryId, _reason) {
|
|
|
151
184
|
.get(memoryId);
|
|
152
185
|
if (!existing)
|
|
153
186
|
return { layer: "semantic", deleted: false };
|
|
154
|
-
const keywords = parseJsonArray(existing.keywords);
|
|
155
187
|
db.transaction(() => {
|
|
156
188
|
db.prepare(`DELETE FROM semantic_notes WHERE note_id = ?`).run(memoryId);
|
|
157
189
|
db.prepare(`DELETE FROM note_embeddings WHERE note_id = ?`).run(memoryId);
|
|
158
|
-
decrementTopicIndexForKeywords(db, keywords);
|
|
159
190
|
})();
|
|
160
191
|
return { layer: "semantic", deleted: true };
|
|
161
192
|
}
|
|
@@ -173,11 +204,9 @@ export function forgetMemory(db, memoryId, _reason) {
|
|
|
173
204
|
.prepare(`SELECT note_id, keywords FROM semantic_notes WHERE note_id = ?`)
|
|
174
205
|
.get(memoryId);
|
|
175
206
|
if (noteRow) {
|
|
176
|
-
const keywords = parseJsonArray(noteRow.keywords);
|
|
177
207
|
db.transaction(() => {
|
|
178
208
|
db.prepare(`DELETE FROM semantic_notes WHERE note_id = ?`).run(memoryId);
|
|
179
209
|
db.prepare(`DELETE FROM note_embeddings WHERE note_id = ?`).run(memoryId);
|
|
180
|
-
decrementTopicIndexForKeywords(db, keywords);
|
|
181
210
|
})();
|
|
182
211
|
return { layer: "semantic", deleted: true };
|
|
183
212
|
}
|
|
@@ -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,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,iBAAiB,EAAgB,MAAM,eAAe,CAAC;AAChE,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,GAEf,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../../src/data/memory/bootstrap.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { Database } from "./schema.js";
|
|
2
|
+
import { type ExpiryReason } from "./note-archival.js";
|
|
2
3
|
export interface ConsolidationReport {
|
|
3
4
|
episodesProcessed: number;
|
|
4
5
|
notesCreated: number;
|
|
@@ -42,12 +43,16 @@ export declare function getActiveNoteContent(db: Database, noteId: string): {
|
|
|
42
43
|
noteId: string;
|
|
43
44
|
content: string;
|
|
44
45
|
} | null;
|
|
45
|
-
export declare function expireNote(db: Database, noteId: string, now: string): void;
|
|
46
|
+
export declare function expireNote(db: Database, noteId: string, now: string, reason: Extract<ExpiryReason, "pruned" | "quality-gate">): void;
|
|
46
47
|
export declare function mergeDuplicateNote(db: Database, keepId: string, expireId: string, now: string, mergedContent?: string): void;
|
|
47
48
|
/**
|
|
48
|
-
* Delete note_embeddings rows
|
|
49
|
-
*
|
|
50
|
-
*
|
|
49
|
+
* Delete note_embeddings rows only for notes that are gone entirely or
|
|
50
|
+
* permanently dead (superseded / merged / pruned). Vectors of archived,
|
|
51
|
+
* worker-cleanup and legacy-expired notes are deliberately KEPT: those notes
|
|
52
|
+
* are restorable, and this sweep destroying their vectors is what turned the
|
|
53
|
+
* 2026 archiving incident into a store-wide embedding outage (re-embedding is
|
|
54
|
+
* expensive to notice needing; ~6 KB/note of disk is not). Expired vectors are
|
|
55
|
+
* already invisible to search — loadAllEmbeddings filters on the live note.
|
|
51
56
|
* Returns the number of rows deleted.
|
|
52
57
|
*/
|
|
53
58
|
export declare function sweepOrphanedEmbeddings(db: Database): number;
|
|
@@ -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;
|
|
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,CAcxF;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,CAIN;AAED,wBAAgB,kBAAkB,CAChC,EAAE,EAAE,QAAQ,EACZ,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,EACX,aAAa,CAAC,EAAE,MAAM,GACrB,IAAI,CAeN;AAED;;;;;;;;;GASG;AACH,wBAAgB,uBAAuB,CAAC,EAAE,EAAE,QAAQ,GAAG,MAAM,CAgB5D;AAED,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,QAAQ,GAAG,MAAM,CAmBvD"}
|
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
import { cleanupOldSentMessages } from "./schema.js";
|
|
2
|
-
import { archiveNotesForThread, getThreadIdsWithActiveNotes } from "./note-archival.js";
|
|
2
|
+
import { archiveNotesForThread, getThreadIdsWithActiveNotes, } from "./note-archival.js";
|
|
3
3
|
import { migrateInboundLinks } from "./semantic-notes.js";
|
|
4
4
|
import { log } from "../../lib/logger.js";
|
|
5
5
|
import { nowISO } from "./utils.js";
|
|
6
6
|
import { getAllThreads } from "./thread-registry.js";
|
|
7
|
-
|
|
7
|
+
// "archived" is deliberately absent: the operator archives threads for tidiness,
|
|
8
|
+
// not to declare their knowledge dead, so archiving must NOT expire a thread's
|
|
9
|
+
// notes. Only "expired"/"exited" are genuinely terminal. Unarchiving restores the
|
|
10
|
+
// notes via restoreNotesForThread (see note-archival.ts).
|
|
11
|
+
const TERMINAL_THREAD_STATUSES = new Set(["expired", "exited"]);
|
|
8
12
|
export function getUnconsolidatedThreadIds(db) {
|
|
9
13
|
const rows = db
|
|
10
14
|
.prepare(`SELECT DISTINCT e.thread_id
|
|
@@ -49,28 +53,36 @@ export function getActiveNoteContent(db, noteId) {
|
|
|
49
53
|
return null;
|
|
50
54
|
return { noteId: row.note_id, content: row.content };
|
|
51
55
|
}
|
|
52
|
-
export function expireNote(db, noteId, now) {
|
|
53
|
-
db.prepare(`UPDATE semantic_notes SET valid_to = ?, updated_at = ? WHERE note_id = ?`).run(now, now, noteId);
|
|
56
|
+
export function expireNote(db, noteId, now, reason) {
|
|
57
|
+
db.prepare(`UPDATE semantic_notes SET valid_to = ?, updated_at = ?, expiry_reason = ? WHERE note_id = ?`).run(now, now, reason, noteId);
|
|
54
58
|
}
|
|
55
59
|
export function mergeDuplicateNote(db, keepId, expireId, now, mergedContent) {
|
|
56
60
|
if (mergedContent) {
|
|
57
61
|
db.prepare(`UPDATE semantic_notes SET content = ?, updated_at = ? WHERE note_id = ?`).run(mergedContent, now, keepId);
|
|
58
62
|
}
|
|
59
|
-
db.prepare(`UPDATE semantic_notes SET valid_to = ?, superseded_by = ?, updated_at =
|
|
63
|
+
db.prepare(`UPDATE semantic_notes SET valid_to = ?, superseded_by = ?, updated_at = ?, expiry_reason = 'merged' WHERE note_id = ?`).run(now, keepId, now, expireId);
|
|
60
64
|
// Repoint inbound causal links from the merged-away note to the kept note.
|
|
61
65
|
migrateInboundLinks(db, expireId, keepId);
|
|
62
66
|
}
|
|
63
67
|
/**
|
|
64
|
-
* Delete note_embeddings rows
|
|
65
|
-
*
|
|
66
|
-
*
|
|
68
|
+
* Delete note_embeddings rows only for notes that are gone entirely or
|
|
69
|
+
* permanently dead (superseded / merged / pruned). Vectors of archived,
|
|
70
|
+
* worker-cleanup and legacy-expired notes are deliberately KEPT: those notes
|
|
71
|
+
* are restorable, and this sweep destroying their vectors is what turned the
|
|
72
|
+
* 2026 archiving incident into a store-wide embedding outage (re-embedding is
|
|
73
|
+
* expensive to notice needing; ~6 KB/note of disk is not). Expired vectors are
|
|
74
|
+
* already invisible to search — loadAllEmbeddings filters on the live note.
|
|
67
75
|
* Returns the number of rows deleted.
|
|
68
76
|
*/
|
|
69
77
|
export function sweepOrphanedEmbeddings(db) {
|
|
70
78
|
const result = db
|
|
71
|
-
.prepare(`DELETE FROM note_embeddings WHERE
|
|
72
|
-
SELECT note_id FROM semantic_notes
|
|
73
|
-
|
|
79
|
+
.prepare(`DELETE FROM note_embeddings WHERE
|
|
80
|
+
note_id NOT IN (SELECT note_id FROM semantic_notes)
|
|
81
|
+
OR note_id IN (
|
|
82
|
+
SELECT note_id FROM semantic_notes
|
|
83
|
+
WHERE valid_to IS NOT NULL
|
|
84
|
+
AND (superseded_by IS NOT NULL OR expiry_reason IN ('superseded','merged','pruned'))
|
|
85
|
+
)`)
|
|
74
86
|
.run();
|
|
75
87
|
if (result.changes > 0) {
|
|
76
88
|
log.info(`[memory] Embedding sweep: removed ${result.changes} orphaned embedding(s)`);
|
|
@@ -87,7 +99,7 @@ export function sweepOrphanedNotes(db) {
|
|
|
87
99
|
for (const threadId of threadIdsWithNotes) {
|
|
88
100
|
const status = threadStatusMap.get(threadId);
|
|
89
101
|
if (!status || TERMINAL_THREAD_STATUSES.has(status)) {
|
|
90
|
-
totalArchived += archiveNotesForThread(db, threadId);
|
|
102
|
+
totalArchived += archiveNotesForThread(db, threadId, "thread-terminal");
|
|
91
103
|
}
|
|
92
104
|
}
|
|
93
105
|
if (totalArchived > 0) {
|
|
@@ -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,
|
|
1
|
+
{"version":3,"file":"consolidation.js","sourceRoot":"","sources":["../../../src/data/memory/consolidation.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* a single path: `./data/memory/index.js`.
|
|
6
6
|
*
|
|
7
7
|
* Modules: utils, schema, episodes, semantic-notes, semantic-search,
|
|
8
|
-
* note-embeddings, note-archival,
|
|
8
|
+
* note-embeddings, note-archival, voice-sig, consolidation,
|
|
9
9
|
* reflection (+ gates, dedup, sources), narrative (+ lint,
|
|
10
10
|
* resolutions, store, sources), topic-shift, synthesis, bootstrap,
|
|
11
11
|
* thread-registry.
|
|
@@ -17,7 +17,6 @@ export * from "./semantic-notes.js";
|
|
|
17
17
|
export * from "./semantic-search.js";
|
|
18
18
|
export * from "./note-embeddings.js";
|
|
19
19
|
export * from "./note-archival.js";
|
|
20
|
-
export * from "./topic-index.js";
|
|
21
20
|
export * from "./voice-sig.js";
|
|
22
21
|
export * from "./consolidation.js";
|
|
23
22
|
export * from "./reflection.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/data/memory/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/data/memory/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC"}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* a single path: `./data/memory/index.js`.
|
|
6
6
|
*
|
|
7
7
|
* Modules: utils, schema, episodes, semantic-notes, semantic-search,
|
|
8
|
-
* note-embeddings, note-archival,
|
|
8
|
+
* note-embeddings, note-archival, voice-sig, consolidation,
|
|
9
9
|
* reflection (+ gates, dedup, sources), narrative (+ lint,
|
|
10
10
|
* resolutions, store, sources), topic-shift, synthesis, bootstrap,
|
|
11
11
|
* thread-registry.
|
|
@@ -17,7 +17,6 @@ export * from "./semantic-notes.js";
|
|
|
17
17
|
export * from "./semantic-search.js";
|
|
18
18
|
export * from "./note-embeddings.js";
|
|
19
19
|
export * from "./note-archival.js";
|
|
20
|
-
export * from "./topic-index.js";
|
|
21
20
|
export * from "./voice-sig.js";
|
|
22
21
|
export * from "./consolidation.js";
|
|
23
22
|
export * from "./reflection.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/data/memory/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/data/memory/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC"}
|
|
@@ -1,5 +1,28 @@
|
|
|
1
1
|
import type { Database } from "./db-types.js";
|
|
2
|
-
export declare const SCHEMA_VERSION =
|
|
2
|
+
export declare const SCHEMA_VERSION = 29;
|
|
3
3
|
export declare function rebuildThreadRegistryWithExitedStatus(db: Database, existingColumns: string[]): void;
|
|
4
|
+
/**
|
|
5
|
+
* Label pre-column tombstones (valid_to set, expiry_reason NULL) with the most
|
|
6
|
+
* that can be *proven* about who expired them — measured on the 2026-07-26
|
|
7
|
+
* incident DB, but every rule below is derived from writer code, not from that
|
|
8
|
+
* one dataset:
|
|
9
|
+
*
|
|
10
|
+
* 1. `superseded_by IS NOT NULL` → 'superseded'. Structural.
|
|
11
|
+
* 2. Bulk clusters (≥10 rows, same thread, byte-identical valid_to — the
|
|
12
|
+
* signature of a single-nowISO() loop):
|
|
13
|
+
* - on a dead/archived/unregistered thread, only archiveNotesForThread ever
|
|
14
|
+
* produced that → 'archived-legacy';
|
|
15
|
+
* - on a live thread the sweep never ran; if the cluster is 100%
|
|
16
|
+
* '[REFLECTION]%' rows it can only be enforceReflectionCap's buffer trim
|
|
17
|
+
* → 'reflection-cap' (e.g. the predicted 635-row trim of restored
|
|
18
|
+
* reflections on thread 1327 at 2026-07-26T01:02:55);
|
|
19
|
+
* - a mixed cluster on a live thread is ambiguous → falls through to 3.
|
|
20
|
+
* 3. Everything else → 'unknown-legacy'. Pruning singles, gate kills and
|
|
21
|
+
* small sweeps are indistinguishable after the fact; no guess is recorded
|
|
22
|
+
* as fact. These stay dead unless their thread is explicitly unarchived.
|
|
23
|
+
*
|
|
24
|
+
* Exported for tests; idempotent (only touches expiry_reason IS NULL rows).
|
|
25
|
+
*/
|
|
26
|
+
export declare function backfillExpiryReasons(db: Database): void;
|
|
4
27
|
export declare function runMigrations(db: Database): void;
|
|
5
28
|
//# sourceMappingURL=migration-runner.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migration-runner.d.ts","sourceRoot":"","sources":["../../../src/data/memory/migration-runner.ts"],"names":[],"mappings":"AAMA,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":"AAMA,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;AAicD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI,CAyDxD;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI,CAsBhD"}
|
|
@@ -4,7 +4,7 @@ import { join } from "node:path";
|
|
|
4
4
|
import { log } from "../../lib/logger.js";
|
|
5
5
|
import { errorMessage } from "../../lib/utils.js";
|
|
6
6
|
import { nowISO } from "./utils.js";
|
|
7
|
-
export const SCHEMA_VERSION =
|
|
7
|
+
export const SCHEMA_VERSION = 29;
|
|
8
8
|
function isDuplicateColumnError(err, columnName) {
|
|
9
9
|
const message = errorMessage(err).toLowerCase();
|
|
10
10
|
return message.includes(`duplicate column name: ${columnName}`.toLowerCase());
|
|
@@ -495,7 +495,91 @@ const MIGRATIONS = {
|
|
|
495
495
|
}
|
|
496
496
|
log.info("[migration-27] Added clean_shutdown column to thread_registry (default clean)");
|
|
497
497
|
},
|
|
498
|
+
28: (db) => {
|
|
499
|
+
// Expiry provenance: record WHY a note's valid_to was set, so unarchive can
|
|
500
|
+
// tell an archive-kill (restore it) from a pruning/gate/cap retirement
|
|
501
|
+
// (leave it dead). See ExpiryReason in note-archival.ts for the writer
|
|
502
|
+
// matrix; backfillExpiryReasons labels the pre-column tombstones.
|
|
503
|
+
try {
|
|
504
|
+
db.exec(`ALTER TABLE semantic_notes ADD COLUMN expiry_reason TEXT`);
|
|
505
|
+
}
|
|
506
|
+
catch (err) {
|
|
507
|
+
if (!isDuplicateColumnError(err, "expiry_reason"))
|
|
508
|
+
throw err;
|
|
509
|
+
}
|
|
510
|
+
db.exec(`CREATE INDEX IF NOT EXISTS idx_sem_expiry_reason ON semantic_notes(thread_id, expiry_reason) WHERE valid_to IS NOT NULL`);
|
|
511
|
+
backfillExpiryReasons(db);
|
|
512
|
+
log.info("[migration-28] Added expiry_reason column to semantic_notes");
|
|
513
|
+
},
|
|
514
|
+
29: (db) => {
|
|
515
|
+
// The topic index is now computed on demand from active notes
|
|
516
|
+
// (getTopicIndex in bootstrap.ts); the stored aggregate and its
|
|
517
|
+
// increment/decrement bookkeeping drifted repeatedly and fed only
|
|
518
|
+
// display surfaces. Dropping the table is safe: nothing reads it.
|
|
519
|
+
db.exec(`DROP TABLE IF EXISTS meta_topic_index`);
|
|
520
|
+
log.info("[migration-29] Dropped meta_topic_index (topics are computed on demand)");
|
|
521
|
+
},
|
|
498
522
|
};
|
|
523
|
+
/**
|
|
524
|
+
* Label pre-column tombstones (valid_to set, expiry_reason NULL) with the most
|
|
525
|
+
* that can be *proven* about who expired them — measured on the 2026-07-26
|
|
526
|
+
* incident DB, but every rule below is derived from writer code, not from that
|
|
527
|
+
* one dataset:
|
|
528
|
+
*
|
|
529
|
+
* 1. `superseded_by IS NOT NULL` → 'superseded'. Structural.
|
|
530
|
+
* 2. Bulk clusters (≥10 rows, same thread, byte-identical valid_to — the
|
|
531
|
+
* signature of a single-nowISO() loop):
|
|
532
|
+
* - on a dead/archived/unregistered thread, only archiveNotesForThread ever
|
|
533
|
+
* produced that → 'archived-legacy';
|
|
534
|
+
* - on a live thread the sweep never ran; if the cluster is 100%
|
|
535
|
+
* '[REFLECTION]%' rows it can only be enforceReflectionCap's buffer trim
|
|
536
|
+
* → 'reflection-cap' (e.g. the predicted 635-row trim of restored
|
|
537
|
+
* reflections on thread 1327 at 2026-07-26T01:02:55);
|
|
538
|
+
* - a mixed cluster on a live thread is ambiguous → falls through to 3.
|
|
539
|
+
* 3. Everything else → 'unknown-legacy'. Pruning singles, gate kills and
|
|
540
|
+
* small sweeps are indistinguishable after the fact; no guess is recorded
|
|
541
|
+
* as fact. These stay dead unless their thread is explicitly unarchived.
|
|
542
|
+
*
|
|
543
|
+
* Exported for tests; idempotent (only touches expiry_reason IS NULL rows).
|
|
544
|
+
*/
|
|
545
|
+
export function backfillExpiryReasons(db) {
|
|
546
|
+
const superseded = db
|
|
547
|
+
.prepare(`UPDATE semantic_notes SET expiry_reason = 'superseded'
|
|
548
|
+
WHERE valid_to IS NOT NULL AND expiry_reason IS NULL AND superseded_by IS NOT NULL`)
|
|
549
|
+
.run().changes;
|
|
550
|
+
const clusters = db
|
|
551
|
+
.prepare(`SELECT sn.thread_id AS threadId, sn.valid_to AS validTo, COUNT(*) AS total,
|
|
552
|
+
SUM(CASE WHEN sn.content LIKE '[REFLECTION]%' THEN 1 ELSE 0 END) AS reflections,
|
|
553
|
+
tr.status AS threadStatus
|
|
554
|
+
FROM semantic_notes sn
|
|
555
|
+
LEFT JOIN thread_registry tr ON tr.thread_id = sn.thread_id
|
|
556
|
+
WHERE sn.valid_to IS NOT NULL AND sn.expiry_reason IS NULL
|
|
557
|
+
GROUP BY sn.thread_id, sn.valid_to
|
|
558
|
+
HAVING COUNT(*) >= 10`)
|
|
559
|
+
.all();
|
|
560
|
+
const labelCluster = db.prepare(`UPDATE semantic_notes SET expiry_reason = ?
|
|
561
|
+
WHERE thread_id IS ? AND valid_to = ? AND expiry_reason IS NULL`);
|
|
562
|
+
let archivedLegacy = 0;
|
|
563
|
+
let reflectionCap = 0;
|
|
564
|
+
for (const cluster of clusters) {
|
|
565
|
+
const threadIsLive = cluster.threadStatus !== null &&
|
|
566
|
+
!["archived", "expired", "exited"].includes(cluster.threadStatus);
|
|
567
|
+
if (!threadIsLive) {
|
|
568
|
+
archivedLegacy += labelCluster.run("archived-legacy", cluster.threadId, cluster.validTo)
|
|
569
|
+
.changes;
|
|
570
|
+
}
|
|
571
|
+
else if (cluster.reflections === cluster.total) {
|
|
572
|
+
reflectionCap += labelCluster.run("reflection-cap", cluster.threadId, cluster.validTo)
|
|
573
|
+
.changes;
|
|
574
|
+
}
|
|
575
|
+
// live thread, mixed content: ambiguous — falls through to unknown-legacy.
|
|
576
|
+
}
|
|
577
|
+
const unknown = db
|
|
578
|
+
.prepare(`UPDATE semantic_notes SET expiry_reason = 'unknown-legacy'
|
|
579
|
+
WHERE valid_to IS NOT NULL AND expiry_reason IS NULL`)
|
|
580
|
+
.run().changes;
|
|
581
|
+
log.info(`[migration-28] Expiry-reason backfill: ${superseded} superseded, ${archivedLegacy} archived-legacy, ${reflectionCap} reflection-cap, ${unknown} unknown-legacy`);
|
|
582
|
+
}
|
|
499
583
|
export function runMigrations(db) {
|
|
500
584
|
const currentVersion = getCurrentSchemaVersion(db);
|
|
501
585
|
log.info(`[memory] Current schema version: ${currentVersion}, target: ${SCHEMA_VERSION}`);
|
|
@@ -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 +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;AAoCnF,wBAAgB,eAAe,CAC7B,EAAE,EAAE,QAAQ,EACZ,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,mBAAmB,GAC9B;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAgDhC;AA6QD;;;GAGG;AACH,wBAAsB,sBAAsB,CAC1C,EAAE,EAAE,QAAQ,EACZ,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GAC5B,OAAO,CAAC;IAAE,SAAS,EAAE,mBAAmB,EAAE,CAAC;IAAC,MAAM,EAAE,mBAAmB,EAAE,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CA4ChG;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,EAAE,EAAE,QAAQ,EACZ,QAAQ,EAAE,MAAM,GACf,MAAM,CAAC,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC,CAsB5C"}
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
*/
|
|
14
14
|
import { chatCompletion } from "../../integrations/openai/chat.js";
|
|
15
15
|
import { buildPrompt, buildHierarchicalPrompt } from "../../llm/prompts/narrative.js";
|
|
16
|
-
import { findFillerPhrase, findDateViolation, findLowDensitySentences
|
|
16
|
+
import { findFillerPhrase, findDateViolation, findLowDensitySentences } 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
18
|
import { getChildNarratives, getCurrentNarrative, getLastNarrative, isCooldownActive, } from "./narrative-store.js";
|
|
19
19
|
import { extractEpisodeText, formatChildNarrativesForLLM, formatEpisodeLine, formatEpisodesForLLM, formatNotesForLLM, getEarliestEpisodeDate, getEpisodesInPeriod, getHistorySpanDays, getNotesInPeriod, } from "./narrative-sources.js";
|
|
@@ -202,6 +202,8 @@ async function generateNarrative(db, threadId, resolution, periodOverride) {
|
|
|
202
202
|
}
|
|
203
203
|
const narrative = await chatCompletion([{ role: "user", content: prompt }], apiKey, {
|
|
204
204
|
model: NARRATIVE_MODEL,
|
|
205
|
+
category: "narrative",
|
|
206
|
+
threadId,
|
|
205
207
|
temperature: 0.3,
|
|
206
208
|
maxTokens: Math.round(OUTPUT_TOKEN_TARGETS[resolution] * 1.5),
|
|
207
209
|
timeoutMs: 60_000,
|
|
@@ -237,6 +239,8 @@ async function generateNarrative(db, threadId, resolution, periodOverride) {
|
|
|
237
239
|
" Every claim must reference a specific event or decision from the source data.";
|
|
238
240
|
const retried = await chatCompletion([{ role: "user", content: retryPrompt }], apiKey, {
|
|
239
241
|
model: NARRATIVE_MODEL,
|
|
242
|
+
category: "narrative",
|
|
243
|
+
threadId,
|
|
240
244
|
temperature: 0.3,
|
|
241
245
|
maxTokens: Math.round(OUTPUT_TOKEN_TARGETS[resolution] * 1.5),
|
|
242
246
|
timeoutMs: 60_000,
|